ZI-LR&PZ / Shifr-blok / ac_11_14
.pdfPl = Cl H(Cr, Kr)
Pr = Cr H(Pl, Kl)
P = Pl, Pr
Общая структура Karn совпадает с структурой множества других блочных алгоритмов, рассмотренных в этом разделе. У алгоритма только два этапа, так как его сложность определяется однонаправленной хэшфункцией. А, так как ключ используется только как вход хэш-функции, он не может быть раскрыт даже при помощи вскрытия с выбранным открытым текстом, если, конечно, безопасна используемая однонаправленная хэш-функция.
Luby-Rackoff
Майкл Любы (Michael Luby) и Чарльз Ракофф (Charles Rackoff) показали, что Karn не является безопасным [992]. Рассмотрим два одноблочных сообщения: AB и AC. Если криптоаналитику известны открытый текст и шифротекст первого сообщения, а также первая половина открытого текста второго сообщения, то он может легко вычислить все второе сообщение. Хотя такое вскрытие с известным открытым текстом работает только при определенных условиях, оно представляет собой главную проблему в безопасности алгоритма.
Ее удается избежать при помощи трехэтапного алгоритма шифрования [992,1643,1644]. Он использует три различных хэш-функции: H1, H2 è H3. Дальнейшие исследования показали, что H1 может совпадать с H2, èëè H2 может совпадать с H3, но не одновременно [1193]. Кроме того, H1, H2 è H3 не могут быть основаны на итерациях одной и той же базовой функции [1643]. В любом случае при условии, что H(k,x) ведет себя как псевдослу- чайная функция, трехэтапная версия выглядит следующим образом:
(1)Разделите ключ на две половины: Kl è Kr.
(2)Разделите блок открытого текста на две половины: L0 è R0.
(3)Объедините Kl è L0 и выполните хэширование. Выполните XOR результата хэширования с R0, получая R1:
R1= R0 H(Kl, L0)
(4)Объедините Kr è R1 и выполните хэширование. Выполните XOR результата хэширования с L0, получая L1
L1 = L0 H(Kr, R1)
(5)Объедините Kl è L1 и выполните хэширование. Выполните XOR результата хэширования с R1, получая R2:
R2= R1 H(Kl, L1)
(6)Объедините L1 è R2, получая сообщение.
Шифр краткого содержания сообщения
Шифр краткого содержания сообщения(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-битовом ключе. Так как разработчики хэш-функций не должны беспокоиться о такой возможности, считать ваш шифр безопасным по отношению к приведенному способу вскрытия - не лу ч-
øàÿ èäåÿ.
Безопасность шифров, основанных на однонаправленных хэш-функциях
Хотя эти конструкции и могут быть безопасными, они зависят от используемой однонаправленной хэшфункции. Хорошая однонаправленная хэш-функция не обязательно дает безопасный алгоритм шифрования. Существуют различные криптографические требования. Например, линейный криптоанализ бесполезен против однонаправленных хэш-функциях, но действенен против алгоритмов шифрования. Однонаправленная хэшфункция, такая как SHA, может обладать определенными линейными характеристиками, которые, не влияя на ее безопасность как однонаправленной хэш-функции, могут сделать небезопасным ее использование в таком алгоритме шифрования, как MDC. Мне неизвестно ни о каких результатах криптоанализа использования ко н- кретной однонаправленной хэш-функции в качестве блочного шифра. Прежде чем использовать их дождитесь проведения подобного анализа.
Áëîê |
|
сообщения |
Êëþ÷ |
Выходное |
|
Õýø- |
|
Выходное |
Õýø- |
|
|
|
функция |
|
функция |
|
|||
значение |
значение |
|
|||||
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Открытый текст Шифротекст
(a) Хэш-функция |
(b) Хэш-функция как блочный шифр в режимеCFB |
Рис. 14-5. Шифр краткого содержания сообщения (MDC).
14.12 Выбор блочного алгоритма
Это очень трудное решение. DES почти наверняка небезопасен при использовании против правительств в е- ликих держав, если только вы не шифруете одним ключом очень малые порции данных. Возможно этот алг о- ритм пока неплох против кого-нибудь другого, но вскоре и это изменится. Машины для вскрытия ключа DES грубой силой скоро станут по карману всем организациям.
Предложенные Бихамом зависимые от ключа S-блоки DES будут безопасны в течение по крайней мере н е- скольких лет, может быть за исключением использования против самых хорошо обеспеченных противников. Если необходимая безопасность должна быть обеспечена на десятилетия, или вы опасаетесь криптоаналитич е- ских усилий правительств великих держав, воспользуйтесь тройным DES с тремя независимыми ключами.
Небеполезны и другие алгоритмы. Мне нравится Blowfish, потому что он быстр, и потому что я его прид у- мал. Неплохо выглядит 3-WAY, возможно все в порядке и с ГОСТом. Проблема посоветовать что-нибудь с о- стоит в том, что NSA почти наверняка обладает набором эффективных криптоаналитических приемов, которые до сих пор засекречены, и я не знаю, какие алгоритмы могут быть вскрыты. В Табл. 14.3 для сравнения прив е- дены временные соотношения для некоторых алгоритмов.
Мой любимый алгоритм - IDEA. Его 128-битовый ключ в сочетании с устойчивостью к общеизвестным средствам криптоанализа - вот источники моего теплого и нежного чувства к этому алгоритму. Этот алгоритм анализировался различными группами, и никаких серьезных замечаний не было опубликовано. В отсутствие необычайных криптоаналитических прорывов я сегодня ставлю на IDEA.
Òàáë. 14-3.
Скорости шифрования для некоторых блочных шифров наi486SX/33 МГц
Алгоритм |
Скорость шифрования |
Алгоритм |
Скорость шифрования |
|
(Кбайт/с) |
|
(Кбайт/с) |
Blowfish (12 этапов) |
182 |
MDC (ñ MD4) |
186 |
Blowfish (16 этапов) |
135 |
Blowfish (20 этапов) |
110 |
DES |
35 |
FEAL-8 |
300 |
FEAL-16 |
161 |
FEAL-32 |
91 |
ÃÎÑÒ |
53 |
IDEA |
70 |
Khufu (16 этапов) |
221 |
Khufu (24 этапов) |
153 |
Khufu (32 этапов) |
115 |
Luby-Rackoff (ñ MD4) |
47 |
Luby-Rackoff (ñ MD5) |
34 |
Luby-Rackoff (ñ SHA) |
11 |
Lucifer |
52 |
MDC (ñ MD5) |
135 |
MDC (ñ SHA) |
23 |
NewDES |
233 |
REDOC II |
1 |
REDOC III |
78 |
RC5-32/8 |
127 |
RC5-32/12 |
86 |
RC5-32/16 |
65 |
RC5-32/20 |
52 |
SAFER (6 этапов) |
81 |
SAFER (8 этапов) |
61 |
SAFER (10 этапов) |
49 |
SAFER (12 этапов) |
41 |
3-Way |
25 |
Тройной DES |
12 |