Форум: "Основная";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
ВнизШифрование (REDOC) Найти похожие ветки
← →
NataliaC (2004-05-11 22:38) [0]Здравствуйте, Уважаемые.
Возникла такая необходимость - в программе написанной на Delphi использовать шифрование именно с помощью алгоритма REDOC. Но вместе с тем и проблема - об этом алгоритме мало что известно и уж тем более как его реализовать в виде программного кода. Я немало времени провела в поисках и нашла только одностраничное описание в книге Брюса Шнайера "Прикладная криптография" (приведу ниже) и реализацию на C. Был ещё документ на английском языке. Я его переводила, прочитала, с трудом осознавая что хотели сказать :), показала преподавателю, на что был дан ответ типа «не подходит, здесь только 1 часть».
И теперь я не знаю что делать... :-/ Исходники на С непонятны в силу абсолютного незнания языка… Алгоритмы мы изучали только самые простые и полностью расписанные как и что (манипуляции с ASCII-кодом). Теперь вот такая задачка…
Возможно, что кто-то знает что-нибудь ещё об этом алгоритме? Поможет разобраться в том, что написано в книге, т.е. как это реализовать? Как переделать С в Delphi? Реально?
Надеюсь на помощь и благодарю за внимание…
--------------------------------------------
Gleam of hope act of faith
← →
NataliaC (2004-05-11 22:45) [1]Текст из книги
----------------------------------------
13. 5 REDOC
REDOC II представляет собой другой блочный алгоритм, разработанный Майклом Вудом (Michael Wood) для Cryptech, Inc. В нем используются 20-байтовый (160-битовый) ключ и 80-битовый блок.
REDOC II выполняет все манипуляции - перестановки, подстановки и XOR с ключом - с байтами, этот алгоритм эффективен при программной реализации. REDOC II использует меняющиеся табличные функции. В отличие от DES, имеющего фиксированный (хотя и оптимизированных для безопасности) набор таблиц подстановок и перестановок REDOC II использует зависимые от ключа и открытого текста наборы таблиц (по сути S-блоков). У REDOC II 10 этапов, каждый этап представляет собой сложную последовательность манипуляций с блоком.
Другой уникальной особенностью является использование масок, которые являются числами, полученными из таблицы ключей, и используются для выбора таблиц данной функции для данного этапа. Для выбора таблиц функции используются как значение данных, так и маски.
При условии, что самым эффективным средством вскрытия этого алгоритма является грубая сила, REDOC II очень надежен: для вскрытия ключа требуется 21б0 операций. Томас Кузик (Thomas Cusick) выполнил крипто анализ одного этапа REDOC II, но ему не удалось расширить вскрытие на несколько этапов. Используя дифференциальный криптоанализ, Бихам и Шамир достигли успеха в криптоанализе одного этапа REDOC II с помощью 2300 выбранных открытых текстов. Они не смогли расширить это вскрытие на несколько этапов, но им удалось получить три значения маски после 4 этапов.
REDOC III
REDOC представляет собой упрощенную версию REDOC II, также разработанную Майклом Вудом. Он работает с 80-битовым блоком. Длина ключа может меняться и достигать 2560 байтов (20480 битов). Алгоритм состоит только из операций XOR для байтов ключа и открытого текста, перестановки или подстановки не используются.
(1) Создать таблицу ключей из 256 10-байтовых ключей, используя секретный ключ.
(2) Создать 2 10-байтовых блока маски М1 и М2. М1 представляет собой XOR первых 128 10-байтовых ключей, а М2 - XOR вторых 128 10-байтовых ключей.
(3) Для шифрования 10-байтового блока:
(a) Выполнить XOR для первого байта блока данных и первого байта М1. Выбрать ключ из таблицы ключей, рассчитанной на этапе (1). Использовать вычисленное значение XOR в качестве индекса таблицы. Выполнить XOR каждого, кроме первого, байта блока данных с соответствующим байтом выбранного ключа.
(b) Выполнить XOR для второго байта блока данных и второго байта M1. Выбрать ключ из таблицы ключей, рассчитанной на этапе (1). Использовать вычисленное значение XOR в качестве индекса таблицы. Выполнить XOR каждого, кроме второго, байта блока данных с соответствующим байтом выбранного ключа.
(c) Продолжать для всего блока данных (для байтов с 3 по 10), пока каждый байт не будет использован для выбора ключа из таблицы после выполнения для него XOR с соответствующим значением М1.Затем выполнить XOR с ключом для каждого, кроме использованного для выбора ключа, байта.
(d) Повторить для М2 этапы (а) - (с).
Этот алгоритм быстр. На 33 мегагерцовом процессоре 80386 он шифрует данные со скоростью 2,75 Мбит/с. Вуд оценил, что конвейеризированная реализация на СБИС с 64 битовой шиной данных могла бы шифровать данные со скоростью свыше 1,28 Гбит/с при тактовой частоте 20 МГц.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.037 c