Прошел экстерном экзамен по курсу перепордготовки "Информационная безопасность". Хочу получить диплом, но не вижу где оплатить? Ну и соответственно , как с получением бумажного документа? |
Криптографические хэш-функции
Таблица 2.4 показывает таблицу подстановки (S-блок) для преобразования подбайтов. Преобразование обеспечивает эффект перемешивания. Например, два байта, 5A16 и 5B16, которые отличаются только одним битом (самый правый бит), преобразованы к 5B16 и 8816, которые отличаются пятью битами.
Входы в табл. 2.4 могут быть вычислены алгебраически, используя поле G(24) с неприводимым полиномом (x4 + x + 1), как показано на рис. 2.17. Каждая шестнадцатеричная цифра в байте вводится в миниблок ( E и E-1 ). Результаты передаются в другой миниблок R. E -блоки вычисляют степень, равную шестнадцатеричному значению входа; R -миниблок использует псевдослучайный генератор чисел.
E-1 -блок - это только инверсия E -блока, где роли входов и выходов изменились. Значения входа-выхода для блоков сведены в таблицу на рис. 2.17.
ShiftColumns . Чтобы обеспечить перестановку, Whirlpool использует преобразование ShiftColumns , которое является подобным преобразованию ShiftRows в AES, за исключением того, что вместо строк сдвигаются столбцы. Смещение зависит от позиции столбца. Столбец 0 сдвигается на 0 байтов (смещения нет), в то время как столбец 7 сдвигается на 7 байтов. рис. 2.18 показывает преобразование смещения.
MixRows.Преобразование MixRows имеет тот же самый эффект, что и преобразование MixColumns в AES: оно рассеивает биты. Преобразование MixRows - матричное преобразование, где байты интерпретируются как слова по 8 битов (или полиномы) с коэффициентами в GF(28). Умножение байтов проводится в GF(28), но модуль отличается от используемого в AES. Шифр Whirlpool применяет ( 0x11 D ) или ( x8 + x4 + x3 + x2 + 1 ) как модуль. Сложение слов по 8 битов - то же самое, что ИСКЛЮЧАЮЩЕЕ ИЛИ. На рис. 2.19 представлено преобразование MixRows.
Рисунок показывает умножение единственной строки на матрицу констант; умножение можно провести, умножая всю матрицу состояний на матрицу констант. Обратите внимание, что в матрице констант каждая строка получена с помощью циркулярного сдвига вправо предыдущей строки.
AddRoundKey. Преобразование AddRoundKey в шифре Whirlpool делается байт за байтом, потому что каждый ключ раунда - матрица состояний 8 x 8 байт. рис. 2.20 показывает этот процесс. Байт матрицы состояний данных складывается в поле GF(28) с соответствующим байтом матрицы состояний ключей раунда. Результат - новый байт в новой матрице состояний.