![]() КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Основы стандарта AES (длины ключей, размер блока, последовательность шифрования, операции шифрования, криптостойкость).AES [1] представляет собой алгоритм шифрования 128-битных блоков данных клю- чами по 128, 192 и 256 бит. AES является упрощенной версией алгоритма Rijndael [2].
Для шифрования в алгоритме AES применяются следующие процедуры преобразо- вания данных: 1. ExpandKey — Вычисление раундных ключей для всех раундов. 2. SubBytes — Подстановка байтов с помощью таблицы подстановок; 3. ShiftRows — Циклический сдвиг строк в форме на различные величины; 4. MixColumns — Смешивание данных внутри каждого столбца формы; 5. AddRoundKey — Сложение ключа раунда с формой. Порядок выполнения процедур 2 и 3 можно поменять местами в силу опеределения этих операций. Процедуры 4 и 5 тоже можно выполнять в разном порядке, но при этом изменяется количество их вызовов, поскольку MixColumns(AddRoundKey(A, B)) = AddRoundKey(MixColumns(A), MixColumns(B)). Шифрование производится по алгоритму, приведенному на Риc. 1. AES является стандартом, основанным на алгоритме Rijndael. Для AES длина input(блока входных данных) и State(состояния) постоянна и равна 128 бит, а длина шифроключа K составляет 128, 192, или 256 бит. При этом, исходный алгоритм Rijndael допускает длину ключа и размер блока от 128 до 256 бит с шагом в 32 бита. Для обозначения выбранных длин input, State и Cipher Key в байтах используется нотация Nb = 4 для input и State, Nk = 4, 6, 8 для Cipher Key соответственно для разных длин ключей. В начале шифрования input копируется в массив State по правилу Отдельные трансформации SubBytes(), ShiftRows(), MixColumns(), и AddRoundKey() — обрабатывают State. Массив w[] — содержит key schedule.
Преобразование ShiftRows заключается в циклическом сдвиге влево строк формы. Преобразование схематично представлено на Риc. 2. Первая строка остается неизменной. Во второй производится сдвиг на 1 байт, то есть первый байт переносится в конец. В третьей ― сдвиг на 2 байта, в четветрой ― на 3. Преобразование MixColumns заключается в умножении квадратной матрицы 4-го порядка на каждый столбец формы. В преобразовании AddRoundKey 32-битные слова раундного ключа прибавляются к столбцам формы с помощью побитовой операцииXOR. В алгоритме AES генерируются раундные ключи на основе ключа шифрования с помощью процедуры ExpandKey. Процедура ExpandKey создает Nb * (Nr + 1) слов: алгоритму требуется начальный ключ размером Nb, плюс каждый из Nr раундов требует ключ из Nb слов. • InvSubBytes ― Подстановка байтов с помощью обратной таблицы подстановок; • InvShiftRows ― Циклический сдвиг строк в форме на различные величины; • InvMixColumns ― Смешивание данных внутри каждого столбца формы;
|