Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ZI-LR&PZ / Shifr-blok / ac_11_14

.pdf
Скачиваний:
8
Добавлен:
02.02.2015
Размер:
550.59 Кб
Скачать

Pl = 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