Как функционира AES?
Основна операция
AES може да бъде описан като итеративен и симетричен криптиран блок. AES използва структура на контурите, за да извършва многократно пренареждания на данни или пермутации. Контурът заменя един информационен елемент с друг за входни данни. Криптирането използва същия ключ за криптиране и декриптиране на данните и прилага този ключ към блоковете с данни с фиксирана дължина.
Ключова програма
В рутината за шифроване на AES се съхранява основният ключ за шифроване в масив. Матрицата е група от обекти със същите атрибути, които могат да бъдат разгледани поотделно. Матрицата се състои от четири реда, всяка от които съдържа четири, шест или осем байта, в зависимост от размера на ключа. Зад кулисите, рутинното кодиране използва тази матрица за генериране на таблица, известна като ключова програма, която съдържа няколко клавиша. Тези клавиши се наричат кръгли клавиши, за да се различават от първоначалния главен ключ.
Матрица на състоянието
AES използва ключ за шифроване, който може да бъде 128, 192 или 256 бита, и се прилага в блокове за данни, наречени блокове, всяка от които е с дължина 128 бита. Алгоритъмът AES започва, като копира всеки 16-битов блок в двуизмерен масив, наречен State, за да създаде масив от 4х4 байта. Алгоритъмът изпълнява изключителна операция "О", която връща "true", ако един или друг от нейните операнди е вярно. Това е известно като "AddRoundKey" и е между първите четири реда на програмата ключ и държавната матрица.
Математически операции
След изключителната първоначална операция "О" алгоритъмът за кодиране AES навлиза в главната му линия, където многократно изпълнява четири математически операции в държавната матрица: "SubBytes", "ShiftRows", "MixColumns" и "AddRoundKey", Тези операции използват комбинация от добавяне, умножение, ротация и заместване за криптиране на всеки байт в държавната матрица. Основният цикъл е 10, 12 или 14 пъти в зависимост от размера на криптиращия ключ. След като изпълнението приключи, алгоритъмът копира държавната матрица в изхода си под формата на криптиран текст.