вопрос по ГОСТ 28147-89

Тема в разделе "WASM.CRYPTO", создана пользователем metcenger, 18 сен 2008.

  1. irrona

    irrona Member

    Публикаций:
    0
    Регистрация:
    26 май 2004
    Сообщения:
    178
    Адрес:
    Тирасполь
    Таблица из книги:
    Код (Text):
    1. C9FE813A274D60B5
    2. 42F59108E3BCD7A6
    3. E9B25F710DC6A438
    4. D8EC739A15246F0B
    5. 8F6B19C5D37A0E24
    6. 3E59680DAB7C21F4
    7. C652B09D3E7AF418
    8. 9BC0367548EF1A2D
     
  2. kapger

    kapger New Member

    Публикаций:
    0
    Регистрация:
    18 фев 2009
    Сообщения:
    135
    irrona
    Спасибо! Буду пробовать...
    Еще вопросы по этой книге:
    В указанной таблице в книге порядок строк описан, а порядок столбцов имеется ввиду 0,1,...,15 или наоборот?
    В указанных ключах в примере книги при простой замене порядок имеется ввиду k0,k1,...,k7 или наоборот?
    В исходных (открытых) данных в примере книги при простой замене указаны два значения ulong. Значит ли это, что первое значение - это старшие 32 бита шифруемых данных, а второе значение - это младшие 32 бита шифруемых данных или наоборот?
     
  3. kapger

    kapger New Member

    Публикаций:
    0
    Регистрация:
    18 фев 2009
    Сообщения:
    135
    Ну ничего не получается, чтобы добиться того, как указано в примере в книге!
    Ау, специалисты! Подскажите, где собака порылась...
    И ключи в обратном порядке подавал, и таблицу замен задом наперед, и исходные значения старшую с младшей частью местами менял (включая полный комплект перестановок из указанных объектов) - не получается того результата простой замены как в книге!

    Задача (дословно из книги, таблица приведена двумя сообщениями выше):
    =================================================================
    Приведем тестовый пример, который позволит проверять правильность реализации ГОСТ. Пусть содержание подстановок (описанный выше массив compuz) соответствует данным таблицы 5-3 (первый столбец - номер узла замены, остальные — шестнадцатеричный номер соответствующего элемента подстановки).
    Тогда при указании исходного блока в виде двух чисел
    0x55555555 0xAAAAAAAA (unsigned long)
    и ключа
    unsigned long Key[8]=
    {
    0x11111111, 0x22222222, 0x33333333, 0x44444444,
    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF
    };
    зашифрованный текст должен получиться таким:
    0х3113А05Е, 0xC4F6F857 (два числа unsigned long)
    =================================================================

    Причем не факт, что все вышеприведенное кем-то когда-то верно отсканировано и распознано - качество книги сильно страдает, однако!
     
  4. kapger

    kapger New Member

    Публикаций:
    0
    Регистрация:
    18 фев 2009
    Сообщения:
    135
    Ну приведу еще раз эту таблицу из книги, чтобы номера узлов показать в первом столбце:
    0 C 9 F E 8 1 3 A 2 7 4 D 6 0 B 5
    1 4 2 F 5 9 1 0 8 E 3 B C D 7 A 6
    2 E 9 B 2 5 F 7 1 0 D C 6 A 4 3 8
    3 D 8 E C 7 3 9 A 1 5 2 4 6 F 0 B
    4 8 F 6 B 1 9 C 5 D 3 7 A 0 E 2 4
    5 3 E 5 9 6 8 0 D A B 7 C 2 1 F 4
    6 C 6 5 2 B 0 9 D 3 E 7 A F 4 1 8
    7 9 B C 0 3 6 7 5 4 8 E F 1 A 2 D
     
  5. irrona

    irrona Member

    Публикаций:
    0
    Регистрация:
    26 май 2004
    Сообщения:
    178
    Адрес:
    Тирасполь
    хз. пробуй. я бросил это дурное дело, поскольку не сходилось.
     
  6. kapger

    kapger New Member

    Публикаций:
    0
    Регистрация:
    18 фев 2009
    Сообщения:
    135
    irrona
    Вот и правильно! Я уже также для себя решил - бросить эти примеры из этой книги. Не факт, что у них правильно! Самое главное, что сошлось на примерах из ГОСТ 34.11, а это уже показатель... Ну а гаммирование добьем совместными усилиями. Ведь если у нескольких человек будет одинаковые результаты, то вероятность того, что это правильная реализация гораздо выше...
     
  7. kapger

    kapger New Member

    Публикаций:
    0
    Регистрация:
    18 фев 2009
    Сообщения:
    135
    metcenger
    А что-то мой оппонент сегодня молчит... Усиленно вникает в ГОСТ? :)
     
  8. metcenger

    metcenger New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2008
    Сообщения:
    87
    kapger
    :)
    порадовал...
    Привет!
    Я сегодня в Казань только приехал в командировку, не до того пока было... Да и у меня компилятор что- то ругается на переменную на ровном месте- надо разобраться. Здесь жарища +37, ничего не соображаю. Сейчас займусь вопросом. Надо немного в проге моей порядок навести. Отпишусь как что. У тебя по времени как? когда защита?
     
  9. kapger

    kapger New Member

    Публикаций:
    0
    Регистрация:
    18 фев 2009
    Сообщения:
    135
    metcenger
    Да времени у меня еще много... Защита не скоро еще, только год прошел аспирантуры, еще три можно максимум. Так что будем биться с ГОСТом!
     
  10. metcenger

    metcenger New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2008
    Сообщения:
    87
    kapger
    вот и славненько :)
    тогда я потихоньку разберусь, отпишу. Еадо ещё разок документы все перечитать
     
  11. metcenger

    metcenger New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2008
    Сообщения:
    87
    kapger
    несмотря на жару, любопытство своё взяло )))
    добил я прогу свою- все ок теперь.
    ну так что? таблицу из сообщ 79 берем и ключ последний тогда там. 4-й. с 7 до 0 счет там идет.

    синхропосылка какая?
    и, как я понимаю, мы должны выдать, например 5 подряд данных по 64 бита, что посчитает прога.
    поехали.
     
  12. kapger

    kapger New Member

    Публикаций:
    0
    Регистрация:
    18 фев 2009
    Сообщения:
    135
    metcenger
    В сообщении 137 описано что и как. И ключ №1. Я уже для этого набора ключевых параметров все результаты выдал в сообщении №137
     
  13. metcenger

    metcenger New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2008
    Сообщения:
    87
    kapger
    запутал совсем )))
    давай проще. Вырабатываем гамму. Синхропосылка 0x104BD8E832B1A503. Таблица из поста 79. ключ первый от 7 до 0.
    просто приводим первых три гаммы. Накладывать её потом будем.
    мой вариант
    401FBDA6C00F9B38
    FE3222F0FFA0D1EB
    2FAF1014603F8A85
     
  14. OLS

    OLS New Member

    Публикаций:
    0
    Регистрация:
    8 янв 2005
    Сообщения:
    322
    Адрес:
    Russia
    есть еще вот такая реализация :
    http://popoff.donetsk.ua/text/work/delphi/GOSTEncryption.html
     
  15. kapger

    kapger New Member

    Публикаций:
    0
    Регистрация:
    18 фев 2009
    Сообщения:
    135
    metcenger
    Давай уж тогда с первой гаммы и начнем... Что толку приводить первые N гамм, если у нас уже первая - разная!

    Проверимся:
    Таблица замен берется из сообщения №79 данной темы. Ключ шифрования используем один из тех, что описаны в этом же сообщении №79, а именно:
    K1=0x733D2C20 65686573 74746769 79676120 626E7373 20657369 326C6568 33206D54
    (порядок расположения элементов в ключе: k7, k6, ... ,k0)
    Синхропосылка в открытом виде 104BD8E832B1A503.

    Шаги по выработке гаммы №1:
    1. Шифруем синхропосылку по циклу 32-З с указанными ключевыми данными, результат равен FEFEFEFB4DA15E7C.
    2. Входное значение для генерации гаммы FEFEFEFB4DA15E7C
    3. Выходное значение полученной гаммы FFFFFFFF4EA25F7D
    4. Зашифрованное значение полученной гаммы, которое и используется для наложения гаммы на открытые данные - гамма равна 9D9BA7C74D32B3A9

    Давай искать где различия...
     
  16. kapger

    kapger New Member

    Публикаций:
    0
    Регистрация:
    18 фев 2009
    Сообщения:
    135
    OLS
    Спасибо за ссылку!
    Почитал, увидел много знакомых букв :) Из тех, что на ассемблере...

    А вот готовой программы, которая бы дала возможность проверить правильность любой реализации - не найдено. Ее нет и на этом сайте, причем вопрос такой задавался автору:
     
  17. metcenger

    metcenger New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2008
    Сообщения:
    87
    kapger
    проверился по ключам- все так.
    у меня наводка тебе- скажи пож-ста результат первого шага по выработке гаммы, если синхропосылку взять равной
    0x00000000 00000000 ???
     
  18. kapger

    kapger New Member

    Публикаций:
    0
    Регистрация:
    18 фев 2009
    Сообщения:
    135
    metcenger
    А смысл брать именно 0x00000000 00000000 ???
    Давай уж по шагам по указанному примеру?

    Но если уж очень надо, то:
    Ключевые данные:
    Таблица замен - из сообщения №79 http://www.wasm.ru/forum/viewtopic.php?pid=322460#p322460 данной темы. Ключ шифрования используем один из тех, что описаны в этом же сообщении №79, а именно:
    K1=0x733D2C20 65686573 74746769 79676120 626E7373 20657369 326C6568 33206D54
    (порядок расположения элементов в ключе: k7, k6, ... ,k0)
    Синхропосылка в открытом виде 0x0000000000000000.

    Шаги по выработке гаммы №1:
    1. Шифруем синхропосылку по циклу 32-З с указанными ключевыми данными, результат равен 42ABBCCE32BC0B1B.
    2. Входное значение для генерации гаммы 42ABBCCE32BC0B1B
    3. Выходное значение полученной гаммы 43ACBDD233BD0C1C
    4. Зашифрованное значение полученной гаммы, которое и используется для наложения гаммы на открытые данные - гамма равна 07B2908B33041F8E
     
  19. metcenger

    metcenger New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2008
    Сообщения:
    87
    kapger
    что- то меня уже глючит...
    показался, да и был у нас резный результат после первого пункта. решил его проверить на сообщ. 79.
    теперь сходится. погодь ещё- проверяю
     
  20. kapger

    kapger New Member

    Публикаций:
    0
    Регистрация:
    18 фев 2009
    Сообщения:
    135
    metcenger
    Тогда описывай свои результаты подробно, чтобы было понятно - какие ключевые данные, какая синхропосылка и что в итоге получилось в гамме №1, иначе мы совсем запутаемся...