Twofish - Twofish

Twofish
Twofishalgo.svg
Алгоритм Twofish
Общий
Дизайнеров Брюс Шнайер
Впервые опубликовано 1998 г.
Полученный из Blowfish , БЕЗОПАСНЕЕ , Квадрат
Относится к Три рыбы
Сертификация Финалист AES
Детали шифра
Ключевые размеры 128, 192 или 256 бит
Размеры блоков 128 бит
Структура Сеть Фейстеля
Раундов 16
Лучший публичный криптоанализ
Усеченный дифференциальный криптоанализ, требующий примерно 2 51 выбранных открытых текстов. Невозможная дифференциальная атака, которая разбивает 6 раундов из 16 версии с 256-битным ключом за 2 256 шагов.

В криптографии , Twofish является симметричным ключом блочного шифра с размером блока 128 бит и размером ключа до 256 бит. Он был одним из пяти финалистов конкурса Advanced Encryption Standard , но не был выбран для стандартизации. Twofish связан с более ранним блочным шифром Blowfish .

Отличительные особенности Twofish - это использование предварительно вычисленных S-блоков , зависящих от ключа , и относительно сложное расписание ключей . Одна половина n-битного ключа используется как фактический ключ шифрования, а другая половина n-битного ключа используется для модификации алгоритма шифрования (S-блоки, зависящие от ключа). Twofish заимствует некоторые элементы из других дизайнов; например, преобразование псевдо-Адамара (PHT) из семейства шифров SAFER . Twofish имеет структуру Фейстеля, как и DES . Twofish также использует матрицу с разделением на максимальное расстояние .

Когда он был представлен в 1998 году, Twofish был немного медленнее, чем Rijndael (выбранный алгоритм для Advanced Encryption Standard ) для 128-битных ключей , но несколько быстрее для 256-битных ключей. С 2008 года практически все процессоры AMD и Intel включают аппаратное ускорение алгоритма Rijndael с помощью набора инструкций AES ; Реализации Rijndael, использующие набор команд, теперь на порядки быстрее, чем (программные) реализации Twofish.

Twofish был разработан Брюсом Шнайером , Джоном Келси , Дугом Уайтингом , Дэвидом Вагнером , Крисом Холлом и Нильсом Фергюсоном : «расширенная команда Twofish», которая собралась для дальнейшего криптоанализа Twofish. Среди других участников конкурса AES были Стефан Лакс , Тадаёши Коно и Майк Стэй .

Шифр Twofish не был запатентован , а эталонная реализация была размещена в открытом доступе . В результате алгоритм Twofish может использовать любой желающий без каких-либо ограничений. Это один из немногих шифров, включенных в стандарт OpenPGP (RFC 4880). Однако Twofish получил меньшее распространение, чем Blowfish , который был доступен дольше.

Представление

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

Существует множество компромиссов между пространством и временем, как в программном, так и в аппаратном для Twofish. Примером такого компромисса может быть предварительное вычисление круглых подключей или s-блоков, что может привести к увеличению скорости в два или более раз. Однако это происходит за счет увеличения объема оперативной памяти, необходимой для их хранения.

Все оценки в таблице ниже основаны на существующей КМОП- технологии 0,35 мкм .

Аппаратные компромиссы (128-битный ключ)
Количество ворот h блоков Тактов
на блок

Уровни конвейера
Тактовая частота Пропускная способность
(Мбит / с)

Часы запуска
Комментарии
14000 1 64 1 40 МГц 80 4 подключи на лету
19000 1 32 1 40 МГц 160 40
23000 2 16 1 40 МГц 320 20
26000 2 32 2 80 МГц 640 20
28000 2 48 3 120 МГц 960 20
30000 2 64 4 150 МГц 1200 20
80000 2 16 1 80 МГц 640 300 Оперативная память S-box

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

В 1999 году Нильс Фергюсон опубликовал невозможную дифференциальную атаку, которая разбивает 6 раундов из 16 версии с 256-битным ключом, используя 2 256 шагов.

По состоянию на 2000 год лучшим опубликованным криптоанализом блочного шифра Twofish является усеченный дифференциальный криптоанализ полной 16-раундовой версии. В документе утверждается, что вероятность усеченных дифференциалов составляет 2 -57,3 на блок и что потребуется примерно 2 51 выбранных открытых текстов ( объемом данных 32  петабайта ), чтобы найти хорошую пару усеченных дифференциалов.

Брюс Шнайер ответил в записи в блоге 2005 года, что в этой статье не представлена ​​полная криптоаналитическая атака, а представлены только некоторые предполагаемые дифференциальные характеристики: «Но даже с теоретической точки зрения Twofish даже отдаленно не сломан. Эти результаты не были расширены. так как они были опубликованы в 2000 году ».

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

использованная литература

Статьи

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