Опубликован: 19.01.2010 | Доступ: свободный | Студентов: 1540 / 216 | Оценка: 4.33 / 4.00 | Длительность: 18:53:00
Лекция 2:

Криптографические хэш-функции

< Лекция 1 || Лекция 2: 123456 || Лекция 3 >

2.3. Whirlpool

Whirlpool разработан Винсентом Риджменом (Vincent Rijmen) и Пауло Баретто (Paolo Barreto). Он одобрен европейской организацией NESSIE ( New European Schemes for Signature, Integrity and Encryption - Новые европейские схемы подписей, целостности и шифрования ).

Whirlpool - итеративная функция криптографического хэширования, основанная на схеме Миагучи-Пренеля, которая использует блочный шифр с симметричными ключами вместо функции сжатия. Блочный шифр в данном случае является измененным шифром AES, который был приспособлен для этой цели. рис. 2.12 показывает хэш-функции Whirlpool.

Whirlpool  хэш-функция

увеличить изображение
Рис. 2.12. Whirlpool хэш-функция

Подготовка

Перед стартом алгоритма хэширования сообщение должно быть готово к процессу. Whirlpool требует, чтобы длина первоначального сообщения была меньше, чем 2256 бита. Сообщение должно быть дополнено прежде, чем начать обработку. Дополнение содержит единственный бит, равный 1, а затем следует необходимое чисел нулевых битов, чтобы сделать длину дополнения нечетным числом, кратным 256 битам. После дополнения добавляется блок 256 битов, чтобы указать длину первоначального сообщения. Этот блок обрабатывается как число без знака.

После дополнения первоначального сообщения и присоединения поля длины увеличенный размер сообщения становится кратным 256 битам или кратным 512 битам. Whirlpool создает дайджест 512 из сообщения, состоящего из многих блоков по 512 бит. Дайджест из 512 бит, H0, начинается всеми нулями. Это становится ключом шифра для шифрования первого блока. Из зашифрованного текста каждого зашифрованного блока получают ключ шифра для следующего блока после того, как его складывают по модулю два с предыдущим ключом шифра и блоком исходного текста. Дайджест сообщения - конечный зашифрованный текст на 512 битов после последней операции ИСКЛЮЧАЮЩЕЕ ИЛИ.

Шифр Whirlpool

Шифр Whirlpool - шифр не-Файстеля, похож на AES и был главным образом, разработан как блочный шифр, который используется в алгоритме хэширования. Вместо того чтобы дать полное описание этого шифра, мы будем исходить из того, что читатель знаком с AES по материалам Главы 7. Ниже только приводится сравнение шифра Whirlpool с шифром AES и отмечается их отличие.

Раунды

Whirlpool - шифр, который использует 10 раундов. Размер блока и ключевой размер - 512 битов. Шифр применяет 11 ключей раунда K0 - K10, каждый по 512 битов. рис. 2.13 показывает общий вид процесса шифрования шифром Whirlpool.

Общая идея шифра Whirlpool

Рис. 2.13. Общая идея шифра Whirlpool

Матрицы состояний и блоки

Подобно шифру AES, шифр Whirlpool использует матрицы состояний и блоки. Однако размер блока или матрицы состояний - 512 битов. Блок рассматривается как строка матрицы длиной 64 байта; матрица состояний - как квадратная матрица 8 x 8 байтов. В отличие от AES преобразование "блок - матрица состояний" или "матрица состояний - блок" происходят строка за строкой. рис. 2.14 показывает блок, матрицу состояний и преобразование в шифр Whirlpool.

Блок и матрица состояний шифра Whirlpool

увеличить изображение
Рис. 2.14. Блок и матрица состояний шифра Whirlpool

Структура каждого раунда

Рис. 2.15 показывает структуру каждого раунда. Каждый раунд использует четыре преобразования.

SubBytes. Подобно AES, SubBytes обеспечивает нелинейное преобразование. Байт представлен как две шестнадцатеричных цифры. Левая цифра определяет строку, а правая - столбец таблицы подстановки. Две шестнадцатеричных цифры в пересечении строки и столбца - новый байт. рис. 2.16 иллюстрирует идею.

Преобразование SubBytes шифра Whirlpool

увеличить изображение
Рис. 2.16. Преобразование SubBytes шифра Whirlpool

В преобразовании SubBytes матрица состояний обрабатывается как матрица байтов 8 x 8. Преобразование делается одновременно только с одним байтом. Содержание каждого байта изменяется, но порядок следования байтов в матрице остается тем же самым. В процессе каждый байт преобразуется независимо; мы имеем 64 различных преобразований байт-к-байту.

< Лекция 1 || Лекция 2: 123456 || Лекция 3 >
Наталья Шульга
Наталья Шульга

Курс "информационная безопасность" .

Можно ли на него записаться на ПЕРЕПОДГОТОВКУ по данному курсу? Выдается ли диплом в бумажном варианте и высылается ли он по почте?

Мария Архипова
Мария Архипова