понедельник, 15 октября 2012 г.

DES или ГОСТ 28147-89

Сегодня тупанул на работе и согласился что наш ГОСТовский алгоритм это просто Triple DES переписанный. Это совсем не так, исправляюсь.
ГОСТ - это блочный 64-битный алгоритм с 256-битным ключом плюс добавочный ключ.
Алгоритм предусматривает 32 раунда. Текст бьётся на левую L и правую R части. на каждом раунде используется ключ Ki. Раунд:
Li = Ri-1
Ri = Li-1 xor f(Ri-1, Ki)
Функция f складывает аргументы по модулю 2^32, а результат бьётся на восем 4-битных блоков которые поступают на "узел замены" (S-блоки).

Если сравнивать с DES, то получаем:

  • в DES сложная генерация подключей из ключей, а в ГОСТ простая.
  • в DES 56-битный ключ, а ГОСТ 256-битный + секретные S-блоки.
  • в DES 16 раундов, а в ГОСТ - 32 раунда.
  • в DES используются нерегулярные перестановки (P-блоки), а в ГОСТ 11-битный циклический сдвиг.

Самое слабое место ГОСТ - это циклические сдвиги на фоне нерегулярных перестановок DES, но это компенсируется с лихвой 32 проходами. ГОСТ устойчивее DES к дифференциальному и линейному криптоанализу.
Итого получаем, что в 2 раза больше раундов, сильно длинее ключ, устойчивость к линейному и дифференциальному криптоанализу. Итого ГОСТ рвёт DES, причём никак не копируя его.

Правда есть, как всегда, и минус, причём очень жирный - качественные S-таблицы засекречены и отсутствует алгоритм оценки существующих/опубликованных.
Это означает, что когда вам понадобится таблица, то вам могут специально выдать слабую, чтобы иметь возможность взлома, а проверить стойкость невозможно.


Комментариев нет: