Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Проектирование блочного шифра



Проектировать блочный шифр нетрудно. Если вы рассматривает 64-битовый блочный шифр как перестано в-ку 64-битовых чисел, ясно, что почти все эти перестановки безопасны. Трудность состоит в проектировании блочного шифра, который не только безопасен, но также может быть легко описан и просто реализован.

Легко можно спроектировать блочный шифр, если вы используете память, достаточную для размещения S-блоков 48*32. Трудно спроектировать небезопасный вариант DES, если вы собираетесь использовать в нем 128 этапов. При длине ключа 512 битов не стоит беспокоиться о том, нет ли какой-либо зависящей от ключа ко м-плиментарности.

14.11 Использование однонаправленных хэш-функций

Сымым простым способом использовать для шифрования однонаправленную хэш-функцию является хэш и-рование предыдущего блока шифротекста, объединенного с ключом, а затем выполнение XOR результата с т е-кущим блоком открытого текста:

Q = Pi®H{K,Q.i)

Pi = Ci®H{K, Pi.l)

Установите длину блока равной длине результата однонаправленной хэш-функции. По сути это приводит к использованию однонаправленной хэш-функции как блочного шифра в режиме CFB. При помощи аналогичной конструкции можно использовать однонаправленную хэш-функцию и в режиме OFB:

Ci = Pi®Si; Si = H(K, Ci.1)

Pi = Ci®Si = H(K, Ci.{)

Надежность такой схемы определяется безопасностью однонаправленной хэш-функции.

Кат

Этот метод, изобретенный Филом Карном (Phil Каш) и открытый им для свободного использования, создает обратимый алгоритм шифрования из определенных однонаправленных хэш-функций.

Алгоритм работает с 32-байтовыми блоками открытого текста и шифротекста. Длина ключа может быть произвольной, хотя определенные дины ключей более эффективны для конкретных однонаправленных хэш-функций. Для однонаправленных хэш-функций MD4 и MD5 лучше всего подходят 96-байтовые ключи.

Для шифрования сначала разбейте открытый текст на две 16-байтовых половины: Р, и Рг. Затем разбейте на две 48-байтовых половины ключ: К, и Кг.

Р= Pi, Рг,

к = к,,кг

Добавьте К,кР,и выполните хэширование однонаправленной хэш-функцией, затем выполните XOR резул ь-тата с Рг, получая Сг, правую половину шифротекста. Затем, добавьте Кг к Сг выполните хэширование однона­правленной хэш-функцией. Выполните XOR результата с Р,, получая С,. Наконец, объедините Сг и С,, получая шифротекст.

Cr = Pr ® H(Ph К,)

Ci= Pi®H{Cr, Kr)

С = С/, Сг

Для дешифрирования просто инвертируйте процесс. Добавьте Кг к Сг, выполните хэширование и XOR ре­зультата с С/, получая Pi. Добавьте Кг к Ph выполните хэширование и XOR результата с Сг, получая Рг.


Pi=d® H(Cr, Kr) Pr = Cr®H{PhKi)

P = Pi, Pr

Общая структура Karn совпадает с структурой множества других блочных алгоритмов, рассмотренных в этом разделе. У алгоритма только два этапа, так как его сложность определяется однонаправленной хэш-функцией. А, так как ключ используется только как вход хэш-функции, он не может быть раскрыт даже при помощи вскрытия с выбранным открытым текстом, если, конечно, безопасна используемая однонаправленная хэш-функция.





Дата публикования: 2014-11-04; Прочитано: 242 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...