Таблица из книги: Код (Text): C9FE813A274D60B5 42F59108E3BCD7A6 E9B25F710DC6A438 D8EC739A15246F0B 8F6B19C5D37A0E24 3E59680DAB7C21F4 C652B09D3E7AF418 9BC0367548EF1A2D
irrona Спасибо! Буду пробовать... Еще вопросы по этой книге: В указанной таблице в книге порядок строк описан, а порядок столбцов имеется ввиду 0,1,...,15 или наоборот? В указанных ключах в примере книги при простой замене порядок имеется ввиду k0,k1,...,k7 или наоборот? В исходных (открытых) данных в примере книги при простой замене указаны два значения ulong. Значит ли это, что первое значение - это старшие 32 бита шифруемых данных, а второе значение - это младшие 32 бита шифруемых данных или наоборот?
Ну ничего не получается, чтобы добиться того, как указано в примере в книге! Ау, специалисты! Подскажите, где собака порылась... И ключи в обратном порядке подавал, и таблицу замен задом наперед, и исходные значения старшую с младшей частью местами менял (включая полный комплект перестановок из указанных объектов) - не получается того результата простой замены как в книге! Задача (дословно из книги, таблица приведена двумя сообщениями выше): ================================================================= Приведем тестовый пример, который позволит проверять правильность реализации ГОСТ. Пусть содержание подстановок (описанный выше массив 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) ================================================================= Причем не факт, что все вышеприведенное кем-то когда-то верно отсканировано и распознано - качество книги сильно страдает, однако!
Ну приведу еще раз эту таблицу из книги, чтобы номера узлов показать в первом столбце: 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
irrona Вот и правильно! Я уже также для себя решил - бросить эти примеры из этой книги. Не факт, что у них правильно! Самое главное, что сошлось на примерах из ГОСТ 34.11, а это уже показатель... Ну а гаммирование добьем совместными усилиями. Ведь если у нескольких человек будет одинаковые результаты, то вероятность того, что это правильная реализация гораздо выше...
kapger порадовал... Привет! Я сегодня в Казань только приехал в командировку, не до того пока было... Да и у меня компилятор что- то ругается на переменную на ровном месте- надо разобраться. Здесь жарища +37, ничего не соображаю. Сейчас займусь вопросом. Надо немного в проге моей порядок навести. Отпишусь как что. У тебя по времени как? когда защита?
metcenger Да времени у меня еще много... Защита не скоро еще, только год прошел аспирантуры, еще три можно максимум. Так что будем биться с ГОСТом!
kapger вот и славненько тогда я потихоньку разберусь, отпишу. Еадо ещё разок документы все перечитать
kapger несмотря на жару, любопытство своё взяло ))) добил я прогу свою- все ок теперь. ну так что? таблицу из сообщ 79 берем и ключ последний тогда там. 4-й. с 7 до 0 счет там идет. синхропосылка какая? и, как я понимаю, мы должны выдать, например 5 подряд данных по 64 бита, что посчитает прога. поехали.
metcenger В сообщении 137 описано что и как. И ключ №1. Я уже для этого набора ключевых параметров все результаты выдал в сообщении №137
kapger запутал совсем ))) давай проще. Вырабатываем гамму. Синхропосылка 0x104BD8E832B1A503. Таблица из поста 79. ключ первый от 7 до 0. просто приводим первых три гаммы. Накладывать её потом будем. мой вариант 401FBDA6C00F9B38 FE3222F0FFA0D1EB 2FAF1014603F8A85
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 Давай искать где различия...
OLS Спасибо за ссылку! Почитал, увидел много знакомых букв Из тех, что на ассемблере... А вот готовой программы, которая бы дала возможность проверить правильность любой реализации - не найдено. Ее нет и на этом сайте, причем вопрос такой задавался автору:
kapger проверился по ключам- все так. у меня наводка тебе- скажи пож-ста результат первого шага по выработке гаммы, если синхропосылку взять равной 0x00000000 00000000 ???
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
kapger что- то меня уже глючит... показался, да и был у нас резный результат после первого пункта. решил его проверить на сообщ. 79. теперь сходится. погодь ещё- проверяю
metcenger Тогда описывай свои результаты подробно, чтобы было понятно - какие ключевые данные, какая синхропосылка и что в итоге получилось в гамме №1, иначе мы совсем запутаемся...