Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Luby-Rackoff




Кат

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

Проектировать блочный шифр нетрудно. Если вы рассматривает 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 совпадает с структурой множества других блочных алгоритмов, рассмотренных в этом разделе. У алгоритма только два этапа, так как его сложность определяется однонаправленной хэш-функцией. А, так как ключ используется только как вход хэш-функции, он не может быть раскрыт даже при помощи вскрытия с выбранным открытым текстом, если, конечно, безопасна используемая однонаправленная хэш-функция.

Майкл Любы (Michael Luby) и Чарльз Ракофф (Charles Rackoff) показали, что Каш не является безопасным [992]. Рассмотрим два одноблочных сообщения: АВ и АС. Если криптоаналитику известны открытый текст и шифротекст первого сообщения, а также первая половина открытого текста второго сообщения, то он может легко вычислить все второе сообщение. Хотя такое вскрытие с известным открытым текстом работает только при определенных условиях, оно представляет собой главную проблему в безопасности алгоритма.

Ее удается избежать при помощи трехэтапного алгоритма шифрования [992,1643,1644]. Он использует три различных хэш-функции: Яь Я2 и Я3. Дальнейшие исследования показали, что Нх может совпадать с Я2, или Я2 может совпадать с Я3, но не одновременно [1193]. Кроме того, Яь Я2 и Я3 не могут быть основаны на итераци­ях одной и той же базовой функции [1643]. В любом случае при условии, что Щк,х) ведет себя как псевдослу­чайная функция, трехэтапная версия выглядит следующим образом:

(1) Разделите ключ на две половины: К, и Кг.

(2) Разделите блок открытого текста на две половины: L0 и R0.

(3) Объедините К, и L0 и выполните хэширование. Выполните XOR результата хэширования с R0, получая Rx: Ri= R0 © H(Kh L0)

(4) Объедините ^ifilH выполните хэширование. Выполните XOR результата хэширования с U, получая U LX=U® ЩКГ, 7?0

(5) Объедините К, и Lx и выполните хэширование. Выполните XOR результата хэширования с Rb получая R2: R2= Rl © ЩК,, L^

(6) Объедините U и R2, получая сообщение.

Шифр краткого содержания сообщения

Шифр краткого содержания coo6nieHM(Message Digest Cipher, M DC), изобретенный Питером Гутманном (Peter Cutmann) [676], представляет собой способ превратить однонаправленные хэш-функции в блочный шифр, работающий в режиме CFB. Шифр работает почти также быстро, как и хэш-функция, и по крайней мере н а-столько же безопасен. Оставшаяся часть этого раздела предполаг ает знакомство с главой 18.

Хэш функции, например MD5 и SHA, используют 512-битовый текстовый блок для преобразования входн о-го значения (128 битов в MD5, и 160 битов в SHA) в результат того же размера. Это преобразование необрат и-мо, но прекрасно подходит для режима CFB: и для шифрования, и для дешифрирования используется одна и та же операция.

Рассмотрим MDC с SHA. MDC использует 160-битовый блок и 512-битовый ключ. Используется побочный эффект хэш-функции, когда в качестве прежнего хэш-значения берется входной блок открытого текста (160 б и-тов), а 512-битовый вход хэш-функции играет роль ключа (см. Рис 14.5). Обычно при использовании хэш-функции для хэширования некоторого входа 512-битовый вход меняется при хэшировании каждого нового 512-битового блока. Но в данном случае 512-битовый вход становится неизменяемым ключом.

MDC можно использовать с любой однонаправленной хэш-функцией: MD4, MD5, Snefru, и т.д. Он незап а-тентован и может быть совершенно бесплатно использован кем угодно когда угодно и для чего угодно [676 ].

Однако лично я не верю в эту схему. Можно подобрать такой способ взлома, на противостояние которому хэш-функция не была рассчитана. Хэш-функции не обязаны противостоять вскрытию с выбранным открытым текстом, когда криптоаналитик выбирает некоторые начальные 160-битовые значения, получает их "зашифрованными" одним и тем же 512-битовым "ключом" и пользуется этим для получения некоторой и н-формации об используемом 512-битовом ключе. Так как разработчики хэш-функций не должны беспокоиться о такой возможности, считать ваш шифр безопасным по отношению к приведенному способу вскрытия - не лу ч-


шая идея.




Поделиться с друзьями:


Дата добавления: 2014-11-29; Просмотров: 359; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.