Прошел экстерном экзамен по курсу перепордготовки "Информационная безопасность". Хочу получить диплом, но не вижу где оплатить? Ну и соответственно , как с получением бумажного документа? |
Преобразования
Единицы данных
AES использует пять единиц для представления данных: биты, байты, слова, блоки и массивы состояний. Бит — наименьшая и элементарная единица; другие единицы могут быть выражены в терминах меньших единиц Рисунок 9.2 показывает единицы неэлементарных данных: байт, слово, блок, массив состояний (state).
Бит
В AES бит — двоичная цифра со значением 0 или 1. Мы используем строчные буквы для обозначения бит.
Байт
Байт — группа из восьми битов, которая может быть обработана как единый объект: матрица из одной строки () восьми битов или столбец матрицы () из восьми битов. Когда информация байта обрабатываются как матрица строки, то биты вставляются в матрице слева направо. Когда байт обрабатывается как матрица столбца, биты вставляются в матрице сверху вниз. Мы будем использовать строчную "жирную" букву (Bold) для обозначения байта.
Слово
Слово — группа из 32 битов, которая может быть обработана как единый объект. Это матрица из строки в четыре байта или столбец матрицы из четырех байтов. Когда слово обрабатывается как матрица-строка, байты вставляются слева направо. Когда слово представляется матрицей-колонкой, байты вставляются сверху вниз. Мы будем использовать строчную "жирную" букву W для обозначения слова.
Блок
AES зашифровывает и расшифровывает блоки данных. Блок в AES — группа 128 битов. Однако блок может быть представлен как матрица-строка из 16-ти байтов.
Матрица состояний
AES использует несколько раундов, каждый раунд состоит из несколько каскадов. Блок данных преобразовывается от одного каскада к другому. В начале и в конце шифра AES применяется термин блок данных; до и после каждого каскада блок данных называется матрицей состояний. Мы используем "жирную" заглавную букву, чтобы обозначить эту матрицу. Хотя матрица состояний на различных каскадах обычно обозначается S, мы иногда применяем букву T, чтобы обозначить временную матрицу состояний. Матрицы состояний, подобно блокам, состоят из 16 байтов, но обычно обрабатываются как матрицы байтов. В этом случае каждый элемент матрицы состояний обозначается как Sr,c, где r (от 0 до 3) определяет строку и c (от 0 до 3) определяет столбец. Иногда матрица состояний обрабатывается как матрица-строка слов (). Это имеет смысл, если мы представляем слово как матрицу-столбец. В начале шифра байты в блоке данных вставляются в матрицу состояний столбец за столбцом, в каждом столбце — сверху вниз. В конце шифра байты в матрице состояний извлекаются, как это показано на рис. 9.3.
Пример 9.1
Рассмотрим, как можно изобразить блок с 16 символами в виде матрицы . Предположим, что текстовый блок — "AES uses a matrix". Добавим два фиктивных символа в конце и получим "AESUSESAMATRIXZZ". Теперь мы заменим каждый символ целым числом между 00 и 25. Представим каждый байт как целое число с двумя шестнадцатеричными цифрами. Например, символ "S" сначала поменяем на 18, а затем запишем в шестнадцатеричном изображении как 12. Матрица состояний тогда заполняется столбец за столбцом, как это показано на рис. 9.4.
Структура каждого раунда
Рисунок 9.5 показывает структуру каждого раунда на стороне шифрования. Каждый раунд, кроме последнего, использует четыре преобразования, которые являются обратимыми. Последний раунд имеет только три преобразования.
Как показывает рис. 9.5, каждое преобразование принимает матрицу состояний и создает другую матрицу состояний, которая применяется для следующего преобразования или следующего раунда. Секция, предваряющая раунд, использует только одно преобразование (AddRoundKey); последний раунд использует только три преобразования (MixColumns — преобразование отсутствует).