Опубликован: 19.01.2010 | Доступ: свободный | Студентов: 3224 / 453 | Оценка: 4.28 / 4.00 | Длительность: 26:16:00
ISBN: 978-5-9963-0242-0
Специальности: Математик
Лекция 9:

Преобразования

< Лекция 8 || Лекция 9: 12345 || Лекция 10 >

Единицы данных

AES использует пять единиц для представления данных: биты, байты, слова, блоки и массивы состояний. Бит — наименьшая и элементарная единица; другие единицы могут быть выражены в терминах меньших единиц Рисунок 9.2 показывает единицы неэлементарных данных: байт, слово, блок, массив состояний (state).

Бит

В AES бит — двоичная цифра со значением 0 или 1. Мы используем строчные буквы для обозначения бит.

Байт

Байт — группа из восьми битов, которая может быть обработана как единый объект: матрица из одной строки (1 \times 8) восьми битов или столбец матрицы (8 \times 1) из восьми битов. Когда информация байта обрабатываются как матрица строки, то биты вставляются в матрице слева направо. Когда байт обрабатывается как матрица столбца, биты вставляются в матрице сверху вниз. Мы будем использовать строчную "жирную" букву (Bold) для обозначения байта.

Слово

Слово — группа из 32 битов, которая может быть обработана как единый объект. Это матрица из строки в четыре байта или столбец матрицы из четырех байтов. Когда слово обрабатывается как матрица-строка, байты вставляются слева направо. Когда слово представляется матрицей-колонкой, байты вставляются сверху вниз. Мы будем использовать строчную "жирную" букву W для обозначения слова.

 Единицы данных, используемых в AES

Рис. 9.2. Единицы данных, используемых в AES
Блок

AES зашифровывает и расшифровывает блоки данных. Блок в AES — группа 128 битов. Однако блок может быть представлен как матрица-строка из 16-ти байтов.

Матрица состояний

AES использует несколько раундов, каждый раунд состоит из несколько каскадов. Блок данных преобразовывается от одного каскада к другому. В начале и в конце шифра AES применяется термин блок данных; до и после каждого каскада блок данных называется матрицей состояний. Мы используем "жирную" заглавную букву, чтобы обозначить эту матрицу. Хотя матрица состояний на различных каскадах обычно обозначается S, мы иногда применяем букву T, чтобы обозначить временную матрицу состояний. Матрицы состояний, подобно блокам, состоят из 16 байтов, но обычно обрабатываются как матрицы 4 \times 4 байтов. В этом случае каждый элемент матрицы состояний обозначается как Sr,c, где r (от 0 до 3) определяет строку и c (от 0 до 3) определяет столбец. Иногда матрица состояний обрабатывается как матрица-строка слов (1 \times 4
). Это имеет смысл, если мы представляем слово как матрицу-столбец. В начале шифра байты в блоке данных вставляются в матрицу состояний столбец за столбцом, в каждом столбце — сверху вниз. В конце шифра байты в матрице состояний извлекаются, как это показано на рис. 9.3.

 Преобразование блок – матрица состояний и матрица состояний в блок

Рис. 9.3. Преобразование блок – матрица состояний и матрица состояний в блок

Пример 9.1

Рассмотрим, как можно изобразить блок с 16 символами в виде матрицы 4 \times 4. Предположим, что текстовый блок — "AES uses a matrix". Добавим два фиктивных символа в конце и получим "AESUSESAMATRIXZZ". Теперь мы заменим каждый символ целым числом между 00 и 25. Представим каждый байт как целое число с двумя шестнадцатеричными цифрами. Например, символ "S" сначала поменяем на 18, а затем запишем в шестнадцатеричном изображении как 12. Матрица состояний тогда заполняется столбец за столбцом, как это показано на рис. 9.4.

 Переход шифрованного текста в матрицу состояний

Рис. 9.4. Переход шифрованного текста в матрицу состояний

Структура каждого раунда

Рисунок 9.5 показывает структуру каждого раунда на стороне шифрования. Каждый раунд, кроме последнего, использует четыре преобразования, которые являются обратимыми. Последний раунд имеет только три преобразования.

Как показывает рис. 9.5, каждое преобразование принимает матрицу состояний и создает другую матрицу состояний, которая применяется для следующего преобразования или следующего раунда. Секция, предваряющая раунд, использует только одно преобразование (AddRoundKey); последний раунд использует только три преобразования (MixColumns — преобразование отсутствует).

 Структура каждого раунда на стороне шифрования

Рис. 9.5. Структура каждого раунда на стороне шифрования
< Лекция 8 || Лекция 9: 12345 || Лекция 10 >
Наталья Шульга
Наталья Шульга

Курс "информационная безопасность" .

Можно ли на него записаться на ПЕРЕПОДГОТОВКУ по данному курсу? Выдается ли диплом в бумажном варианте и высылается ли он по почте?

Дмитрий Плешаков
Дмитрий Плешаков

Здравствуйте. На данныйц момент я изучаю курс Математика криптографии и теория шифрования. Стоимость обучения на данном курсе указана 1 руб., но, при этом доступ к лекциям указан платный. Не могли бы Вы прояснить данный момент, и, если доступ платный, какова стоимость лекций и общая стоимость курса.

Заранее благодарен.