Вперед: 5.2.8 MDC
Вверх: 5.2 Методы построения криптографических хэш-функций
Назад: 5.2.6 HAVAL
  Содержание
  Предметный указатель
Идея использовать алгоритм блочного шифрования
[Schnr], в стойкости которого мы уверены, для
построения надежных схем хэширования выглядит естественной.
Напрашивается мысль использовать алгоритм блочного
шифрования в режиме "с зацеплением" при нулевой
синхропосылке. При этом считать хэш-кодом последний
шифрблок. Именно такой подход, использующий DES-алгоритм,
описан в предложенном стандарте США: FIPS 113 [NBS1].
Очевидно, что на роль DES-алгоритма здесь годится
произвольный блочный шифр [BPS], [DGV2],
[Kn].
Однако при таком подходе возникают две проблемы. Во-первых,
размер блока большинства блочных шифров (для DESа --
64 бита) недостаточен для того, чтобы хэш-функция была
устойчива против метода на основе парадокса дня рождения.
Во-вторых, предлагаемый метод требует задания некоторого
ключа, на котором происходит шифрование. В дальнейшем этот
ключ необходимо держать в секрете, ибо злоумышленник, зная
этот ключ и хэш-значение, может выполнить процедуру в
обратном направлении. Следующим шагом в развитии идеи
использовать блочный шифр для хэширования является подход,
при котором очередной блок текста подается в качестве
ключа, а хэш-значение предыдущего шага -- в качестве
входного блока. Выход алгоритма блочного шифрования
является текущим хэш-значением (схема Рабина).
Существует масса модификаций этого метода, в том числе
хэш-функции, выход которых в два раза длиннее блока. В ряде
модификаций промежуточное хэш-значение суммируется
покоординатно по модулю 2 с блоком текста. В этом случае
подразумевается, что размер ключа и блока у шифра
совпадают. В литературе встречаются 12 различных схем
хэширования для случая, когда размер ключа и блока у шифра
совпадают:
1)
(схема
Дэвиса -- Мейера);
2)
(схема Миягучи);
3)
(схема Матиаса,
Мейера, Осиаса);
4)
;
5)
;
6)
;
7)
;
8)
;
9)
;
10)
;
11)
;
12)
,
где обозначает результат применения алгоритма
блочного шифрования с ключом к блоку .
Во всех подобных схемах полагают , где --
начальное значение.
Для алгоритмов блочного шифрования с размером ключа в два раза
большим чем размер шифруемого блока (например, IDEA) в
1992 году была предложена модифицированная схема
Дэвиса -- Мейера:
, где -- начальное значение;
.
Стойкость подобных схем зависит от криптографических и иных
свойств алгоритмов блочного шифрования, лежащих в их
основе. В частности, даже если алгоритм шифрования является
стойким, некоторые из предложенных схем обладают коллизиями
[MOI]. К подобным эффектам могут приводить такие
свойства алгоритма шифрования как комплиментарность
(шифрование инвертированного открытого текста на
инвертированном ключе приводит к инвертированному
шифртексту), наличие слабых и полуслабых ключей и т. п.
Еще одной слабостью указанных выше схем хэширования
является то, что размер хэш-кода совпадает с размером
блока алгоритма шифрования. Чаще всего размер блока
недостаточен для того, чтобы схема была стойкой против
атаки на базе "парадокса дня рождения". Поэтому были
предприняты попытки построения хэш-алгоритмов на базе
блочного шифра с размером хэш-кода в раз (как правило,
) большим, чем размер блока алгоритма шифрования:
Схема Приниля -- Босселэра --
Гувертса -- Вандервалле [PrBGV]
, где -- начальное значение;
, где -- еще одно начальное значение;
;
,
где , -- левая и правая половины
очередного блока хэшируемого текста. Хэш-кодом является
конкатенация последних значений , .
Вскоре после опубликования данной схемы появились работы,
показавшие, что схема слабая (см. [Lai], [LaM]).
Схема Кискате -- Жиро
[QG]
, где -- начальное значение;
, где -- еще одно начальное значение;
;
;
,
где , -- соседние блоки хэшируемого
текста. Хэш-кодом является конкатенация последних значений
, .
В 1989 году данный алгоритм рассматривался в качестве
проекта стандарта ISO. В дальнейшем были выявлены его
слабости (см. [Co], [Lai]) и от него отказались.
Сдвоенная схема Дэвиса -- Мейера
[PS], [Pr]
, где -- начальное значение;
, где -- еще одно начальное значение;
;
;
.
Хэш-кодом является конкатенация последних значений ,
.
В оригинальной работе (см. [LaM], [Lai])
предложено в качестве алгоритма шифрования использовать
схему IDEA. В таком варианте, на сегодняшний день не
известно результатов, предлагающих метод построения
коллизий, эффективнее, чем метод, основанный на "парадоксе
дня рождения".
Последовательная схема Дэвиса --
Мейера [PS], [Pr]
, где -- начальное значение;
, где -- еще одно начальное значение;
;
.
Хэш-кодом является конкатенация последних значений , .
В оригинальной работе (см. [LaM], [Lai])
предложено в качестве алгоритма шифрования использовать
схему IDEA. В таком варианте, на сегодняшний день не
известно результатов, предлагающих метод построения
коллизий, эффективнее, чем метод, основанный на "парадоксе
дня рождения".
Вперед: 5.2.8 MDC
Вверх: 5.2 Методы построения криптографических хэш-функций
Назад: 5.2.6 HAVAL
  Содержание
  Предметный указатель
|