Здавалка
Главная | Обратная связь

Победитель AES – шифр Rijndael



Данный алгоритм разработан двумя специалистами по криптографии из Бельгии. Он является нетрадиционным блочным шифром, поскольку не использует сеть Фейштеля для криптопреобразований. Алгоритм представляет каждый блок кодируемых данных в виде двумерного массива байт размером 4х4, 4х6 или 4х8 в зависимости от установленной длины блока. Далее на соответствующих этапах преобразования производятся либо над независимыми столбцами, либо над независимыми строками, либо вообще над отдельными байтами в таблице.

Все преобразования в шифре имеют строгое математическое обоснование. Сама структура и последовательность операций позволяют выполнять данный алгоритм эффективно как на 8-битных так и на 32-битных процессорах. В структуре алгоритма заложена возможность параллельного исполнения некоторых операций, что на многопроцессорных рабочих станциях может еще поднять скорость шифрования в 4 раза.

Алгоритм состоит из некоторого количества раундов (от 10 до 14 – это зависит от размера блока и длины ключа), в которых последовательно выполняются следующие операции :

· ByteSub – табличная подстановка 8х8 бит (рис.5.6),


Рис.5.6.

· ShiftRow – сдвиг строк в двумерном массиве на различные смещения (рис.5.7),


Рис.5.7.

· MixColumn – математическое преобразование, перемешивающее данные внутри столбца (рис.5.8),


Рис.5.8.

· AddRoundKey – добавление материала ключа операцией XOR (рис.5.9).


Рис.5.9.

В последнем раунде операция перемешивания столбцов отсутствует, что делает всю последовательность операций симметричной.

 


Поточные шифры

Поточные шифры преобразуют открытый текст в шифротекст по одному биту за операцию. Генератор потока ключей (иногда называемый генератором с бегущим ключом) выдает поток битов: k1, k2, …, ki. Этот поток битов (иногда называемый бегущим ключом) и поток битов открытого текста, p1, p2, …, pi, подвергаются операции XOR, и в результате получается поток битов шифротекста: ci = piki (рис.6.1)

Рис.6.1.

 

При дешифровании, для восстановления битов открытого текста, операция XOR выполняется над битами шифротекста и тем же самым потоком ключей: pi = ciki.

Отметим, что ki = pici. Безопасность системы полностью зависит от свойств генератора потока ключей. Если генератор потока ключей выдает бесконечную строку нулей, шифротекст будет совпадать с открытым текстом и преобразование будет бессмысленным. Если генератор потока ключей выдает повторяющийся 16-битовый шаблон, криптостойкость будет пренебрежимо мала. В случае бесконечного потока случайных битов криптостойкость поточного шифра будет эквивалентна криптостойкости одноразового блокнота. Генератор потока ключей создает битовый поток, который похож на случайный, но в действительности детерминирован и может быть безошибочно воспроизведен при дешифровании. Чем ближе выход генератора потока ключей к случайному, тем выше трудоемкость криптоаналитической атаки.

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







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.