Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

522_Lebedjantsev_v._V._Izuchenie_metoda_shifrovanija_AES_

.pdf
Скачиваний:
1
Добавлен:
12.11.2022
Размер:
521.69 Кб
Скачать

В преобразовании ShiftRows (рисунок 3) байты массива State циклически сдвигаются влево на расстояние, равное номеру строки (для нулевой строки величина сдвига равна нулю, т.е. байты сдвигаются только в последних трех строках). Преобразование ShiftRows выполняется следующим образом:

Рисунок 3 – Преобразование ShiftRows циклически сдвигает три последних строки в массиве State

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

Процедура MixColumns обрабатывает столбцы массива state. В результате этого преобразования байты массива state заменяются следующими:

s 0, c ({02} s 0, c ) ({03} s 1, c ) s 2, c s 3, c s 1, c s 0, c ({02} s 1, c ) ({03} s 2, c ) s 3, c s 2, c s 0, c s 1, c ({02} s 2, c ) ({03} s 3, c ) s 3, c ({03} s 0, c ) s 1, c s 2, c ({02} s 3, c ).

11

Рисунок 4 отображает преобразование MixColumns.

Рисунок 4 – Преобразование MixColumns

В преобразовании AddRoundKey ключ раунда Round Key прибавляется к массиву State с помощью операции простого побитового сложения XOR (сложения по модулю 2). Каждый ключ раунда Round Key состоит из Nb слов, взятых из набора ключей (key schedule), содержащихся в массиве w. Эти Nb слов суммируются со столбцами массива State, как показано на рисунке 5.

Рисунок 5 – преобразование AddRoundKey

Блок-схема алгоритма шифрования представлена на рис. 6.

12

Начало

Input;

Cipher Key

KeyExpansion

Циклически

Round=0 повторяющиесяраундыот

1доNr-1

AddRoundKey

Впоследнемраунде Round=1;Nr-1;1 отсутствуетпроцедура

MixColumns

SubBytes Round=Nr

ShiftRows SubBytes

MixColumns ShiftRows

 

AddRoundKey

 

AddRoundKey

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Output

Конец

Рисунок 6 – Блок-схема алгоритма шифрования

3.2 Дешифрование

Для осуществления процедуры дешифрования инвертируются и затем выполняются в обратном порядке преобразования шифрования, описанные выше. При дешифровании массив State обрабатывается совокупностью преобразований InvShiftRows, InvSubBytes, InvMixColumns и AddRoundKey.

Блок-схема алгоритма дешифрования представлена на рисунке 7.

13

 

 

Начало

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Input;

 

 

 

 

 

 

Cipher Key

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

KeyExpansion

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Round=0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

AddRoundKey

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Round=1;Nr-1;1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

InvShiftRows

 

Round=Nr

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

InvSubBytes

 

InvShiftRows

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

AddRoundKey

 

InvSubBytes

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

InvMixColumns

 

AddRoundKey

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ioutput

 

 

 

 

 

Конец

Рисунок 7 – Блок-схема алгоритма дешифрования

3.3 Применение алгоритма AES

Стандарт шифрования AES является официальным стандартом правительства США для симметричного шифрования. Стандарт определяется публикацией FIPS #197 (2001) и используется в разнообразных приложениях, где предъявляются повышенные требования к производительности и безопасности.

Примеры использования AES:

-в ОС Windows 7 используется шифрование диска методом AES с помощью процедуры BitLocker;

-интернет-система поддержки абонентов (ИСПА) компании «Ростелеком» защищает подключение шифром AES с ключом 256 бит;

-новейшие серверные процессоры Intel поддерживают алгоритм AES (и только AES) на уровне микропроцессорных команд;

-Wi-Fi, GPON.

14

4 Выполнение лабораторной работы

В лабораторной работе предстоит исследовать алгоритм AES с ключом шифрования 128 бит. Следует отметить, что программа создавалась не только для шифрования данных, но и для исследования самого алгоритма. Предполагается анализ на уровне байтов, поэтому входными данными не является текст, представленный в ASCII, Unicode и т.п., а являются байты информации, представленные в шестнадцатеричном формате.

Интерфейс программы изображен на рисунке 8.

Рисунок 8 – Интерфейс программы AES-128

Назначение элементов:

1.Входной блок данных – последовательность бит в шестнадцатеричном представлении, которую нужно зашифровать иди расшифровать. Длина блока для стандарта AES – 128 бит (32 символа в шестнадцатеричном представлении).

2.Секретный ключ – ключ, используемый для шифрования/дешифрования входного блока данных. Данная программа поддерживает только 128-битные ключи.

3.Режим: данный переключатель определяет назначение кнопки «зашифровать» и надпись на ней.

15

4.Кнопка «Зашифровать» («Расшифровать», если выбран режим дешифрования): запускает алгоритм шифрования (или дешифрования), в ходе выполнения которого выводятся промежуточные результаты.

5.Результат: в эту строку выводится результат шифрования или дешифрования.

6.Кнопка «Подсчитать количество символов» сделана для 2-й части лабораторной работы. Подсчитывает, сколько раз каждый символ (от 0 до f) встречается в результате.

7.Поле для вывода промежуточных результатов шифрования/дешифрования.

Обозначения для процедуры шифрования: -Input – входной блок данных;

-Cipher Key – секретный ключ; -RoundKey – ключ раунда;

-Start – массив state на начало раунда;

-SubBytes – массив state после процедуры SubBytes; -ShiftRows – массив state после процедуры ShiftRows; -MixColumns – массив state после процедуры MixColumns; -Output – результат шифрования.

Обозначения для процедуры дешифрования: -iInput – входной блок данных;

-Cipher Key – секретный ключ; -iRoundKey – ключ раунда;

-iStart – массив state на начало раунда;

-iShiftRows – массив state после процедуры invShiftRows; -iSubBytes – массив state после процедуры invSubBytes; -AddRoundKey – массив state после процедуры AddRoundKey; -iOutput – результат дешифрования.

4.1 Исследование стойкости шифра к атаке методом анализа частоты появления символов

Все естественные языки имеют характерное частотное распределение символов. Например, буква "О" - встречается в русском языке чаще других, а буква "Ф" - самая редкая (см. таблицу 2).

Моноалфавитные подстановки обладают важным свойством: они не нарушают частот появления символов, характерных для данного языка. Это позволяет криптоаналитику легко получить открытый текст при помощи частотного анализа. Для этого нужно сопоставить частоты появления символов шифра с вероятностями появления букв используемого алфавита (в данном случае русского). После этого наиболее частые символы криптограммы заменяются на наиболее вероятные символы алфавита, остальные замены производятся на основе вероятных слов и знания, синтаксических правил используемого языка.

16

Таблица 2 - Вероятности встречаемости букв русского языка

Символ

Вероятность

Символ

Вероятность

Символ

Вероятность

пробел

0.175

К

0.028

Ч

0.012

О

0.089

М

0.026

Й

0.010

Е

0.072

Д

0.025

Х

0.009

А

0.062

П

0.023

Ж

0.007

И

0.062

У

0.021

Ю

0.006

Н

0.053

Я

0.018

Ш

0.006

Т

0.053

Ы

0.016

Ц

0.004

С

0.045

З

0.016

Щ

0.003

Р

0.040

Ь

0.014

Э

0.003

В

0.038

Б

0.014

Ф

0.002

Л

0.035

Г

0.013

 

 

1.Запустить программу AES-128.

2.В поле «входной блок данных» ввести 32 одинаковых шестнадцатеричных символа, например: 00000000000000000000000000000000.

3.Ввести ключ шифрования следующего вида: 2b7e151628aed2a6abf7158809cf4f3c.

4.Выбрать режим «шифрование».

5.Зашифровать блок данных нажатием кнопки «зашифровать»;

6.Построить таблицу следующего вида:

Таблица 3 – Число символов на входе и на выходе

Символ

Количество на входе

Количество на выходе

Для подсчета количества символов в результате шифрования использовать соответствующую кнопку. В данной лабораторной работе не обязательно переводить количество тех или иных символов в вероятность их появления, т.к. соотношение между их количеством и их вероятностями будет одинаковым.

7.Построить гистограмму частоты появления символов шифротекста. Пример гистограммы показан на рисунке 9.

8.Убедиться в приблизительной равновероятности появления символов в шифротексте.

9.Ввести блок данных в виде двух повторяющихся символов,

например: 0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f. Ключ оставить прежним.

10.Повторить п.3-8.

17

11.Ввести блок данных следующего вида: 0123456789abcdef0123456789abcdef. Ключ оставить прежним.

12.Повторить п.3-7.

Количество

Символ

Рисунок 9 – Пример гистограммы частоты появления символов

13. На основании анализа результатов шифрования трех видов текста сделать вывод о выравнивании частоты появления символов шифротекста. Сделать вывод о возможности или невозможности применения метода частотного анализа для расшифровки сообщений, защищенных методом AES.

4.2 Исследование наличия слабых ключей шифра AES

1.Ввести блок данных в виде 32-х одинаковых символов, например:

ddddd…

2.Ввести ключ шифрования, состоящий из 32-х одинаковых символов, например: 99999…

3.Зашифровать блок данных.

4.Проанализировать характер появления символов в шифротексте:

-состоит ли шифротекст из одинаковых символов?

-какова вероятность появления разных символов в шифротексте (примерно одинаковая или разная)?

5.Зашифровать прежний блок данных другим ключом, представляющим собой чередование двух разных шестнадцатеричных символов, например: cdcdcd…

6.Проанализировать характер появления символов в шифротексте. Произошло ли выравнивание вероятностей появления символов?

7.Зашифровать прежний блок данных ключом со сложной структурой: d183fa67295be7c48e2c45b409a63d1f.

8.Оценить, как такой псевдослучайный ключ улучшил равновероятность появления символов шифротекста.

18

4.3 Исследование чувствительности шифротекста к изменениям шифруемого текста

1.Ввести блок данных в виде 32-х повторяющихся символов «a».

2.Ввести ключ (случайный).

3.Зашифровать. Записать результат.

4.Изменить первый символ на «b» (при этом меняется только 1 бит во

входном блоке: a(16)=1010(2), b(16)=1011(2)).

5.Зашифровать. Записать результат шифрования. Сравнить с предыдущим. Определить степень несовпадения результатов шифрования в виде количества несовпадающих символов.

6.Восстановить исходный блок данных, 16-й символ заменить на «b». Зашифровать, результат сравнить с первоначальным. Определить степень несовпадения результатов шифрования в виде количества несовпадающих символов.

7.Восстановить исходный блок данных, 32-й символ заменить на «b». Зашифровать, результат сравнить с первоначальным. Определить степень несовпадения результатов шифрования в виде количества несовпадающих символов.

8.Сделать выводы о степени чувствительности результатов шифрования к структуре шифруемого текста (хороший шифр должен иметь высокую чувствительность к изменениям во входных данных).

5 Содержание отчета

Отчет должен содержать:

1.Цель работы.

2.Краткую характеристику шифра AES и область его применения.

3.Выводы по результатам исследований:

-о применимости метода частотного анализа к вскрытию шифра AES; -о наличии слабых ключей в шифре AES;

-о чувствительности шифротекста, сформированного шифром AES, к изменениям входного текста.

4.Общие выводы об эффективности шифра AES.

6 Контрольные вопросы

1.Какая информационная система называется безопасной? Какими свойствами она обладает?

2.Дайте следующие определения: конфиденциальность, доступность, целостность.

3.Системный подход к обеспечению безопасности. Какие меры он

включает?

4.Базовые технологии безопасности.

19

5.Стандарт AES. Какие длины блоков и ключей поддерживает данный алгоритм и сколько раундов преобразований включает? Сколько процедур в каждом раунде?

6.Расскажите о сущности процедур SubBytes, ShiftRows, MixColumns

иAddRoundKey.

7.Где применяется алгоритм AES?

Список литературы

1.Хорев П.Б. Методы и средства защиты информации в компьютерных системах: учеб. Пособие для студ. высш. учеб. заведений. – М.: Издательский центр «Академия», 2006. – 256 с.

2.Шаньгин В.Ф. Информационная безопасность в компьютерных системах и сетях. – М.: Издательство «ФОРУМ»: ИНФА – 2008. – 416 с.

20