stringtranslate.com

МУЛЬТИ2

MULTI2блочный шифр , разработанный компанией Hitachi в 1988 году. Разработанный для криптографии общего назначения, в настоящее время он используется для шифрования телепередач высокой четкости в Японии .

Детали шифрования

MULTI2 — это алгоритм симметричного ключа с переменным количеством раундов. Он имеет размер блока 64 бита и размер ключа 64 бита. Во время ключевого расписания используется 256-битная константа подстановки , зависящая от реализации . Скремблирование и дескремблирование осуществляется путем повторения четырех основных функций (инволюций).

История

Криптоанализ

В блочном шифре Multi2 существует большой класс эквивалентных ключей. Самый большой класс (найденный на данный момент) обусловлен тем, что функция раунда Pi3 в ключевом расписании не является биективной . Например, со следующим 40-байтовым входным ключом для расписания ключей:

45 ес 86 d8b6 5e 24 d538 фе 1д 90се ФК А4 223e 39 1b е3да 03 0f КБ9с 9е d7 с61с е4 73 61d0 фа 39 8658 5д 5б 90

Вы можете выполнить следующие однобайтовые модификации (здесь модификация означает XOR против исходного ключа байта):

Можно модифицировать байт 5 с помощью CFМожно модифицировать байт 7 с 77Можно модифицировать байт 20 с помощью 9АМожно модифицировать байт 20 с помощью A9Можно модифицировать байт 20 с помощью D7Можно модифицировать байт 21 с 35Можно модифицировать байт 21 с помощью 6АМожно модифицировать байт 21 с помощью 9FМожно модифицировать байт 21 с помощью CCМожно модифицировать байт 22 с помощью 4DМожно модифицировать байт 22 с помощью 7AМожно модифицировать байт 22 с помощью A7Можно модифицировать байт 23 с 53Можно модифицировать байт 23 с помощью AE

В этом случае имеется 15 различных ключей, которые будут назначены одним и тем же 8 32-битным раундовым ключам для пути массового шифрования шифров. Все ключи различаются в первом ключевом слове, используемом в функции раунда Pi3 (клавиши k[1] и k[5]). Коллизия возникает потому, что разница в один байт превращается в шаблон типа 0X0X0000 (с поворотом на 0, 8, 16 или 24 бита), который затем расширяется до варианта 0X000X00 и, наконец, во предпоследней строке (с поворотом на 16 и XOR) различия компенсируются. Превращаемся в ноль-дельту.

Проблема связана с тем, что функция

x = ROL(x, y) ^ x

Где ROL означает поворот влево на y бит, не является биективным для любого значения y. Аналогичные проблемы существуют и с функциями Pi2 и Pi4, но их, по-видимому, труднее использовать, поскольку значение вращения меньше.

Есть и другие наблюдения, например

х = РОЛ(х, 1) - х

В Pi3 это тождественная функция для 50% значений x (где старший байт равен нулю).

Это также означает, что возможны слабые ключи, где вместо того, чтобы принудительно использовать однобайтовые различия в ключе, они находятся в открытом тексте в Pi3, что дает выходной сигнал с нулевой дельтой и, возможно, приводит к дифференциалу 1R.

Смотрите также

Внешние ссылки