Вы находитесь на странице: 1из 13

Федеральное государственное бюджетное образовательное учреждение

высшего образования
«МИРЭА – Российский технологический университет»
РТУ МИРЭА
Институт комплексной безопасности и специального
приборостроения

Кафедра КБ-1 «Защита информации»

Доклад
По теме “RSA/AES шифрование, сравнение, использование”

Выполнил:
Студент 1 курса
Группы БАСО-04-19
Орехов Андрей Сергеевич

Москва, 2020
AES-(N) N - длина ключа в выбранном алгоритме - симметричный
алгоритм блочного шифрования. Используется для совершенно
секретных документов США, в процессорах intel. Является одним из
самых распространенных алгоритмов шифрования.

AES
AES остается симметричным ключом, то есть ему требуется некий
сгенерированный ключ для шифровки. Звучит все довольно сложно,

давайте посмотрим на примере:


Изначально мы берем некоторый ключ: в нашем случае он 128-и
битный, кодировка ASCII -> 1 байт (8 бит) на символ -> получаем 16
символов

Далее для каждого раунда (далее) по 4 элемента делаем таблицу


Проходим 1-ый этап генерации ключа

Продолжается процесс генерации ключа:


Сдвигаем столбик на один элемент вверх с заменой последнего
выпавшим (ROR/ROL)
По заранее известной таблице значение, лежащее в клеточке,
раскладываем на 2 и ищем соответствие:
Первое значение 32 -> 30 и 02 -> 30 - столбик в таблице, 02 - строчка
Получаем 23 и тд:

Далее
первую колонку ксорим с полученным столбиком и первым столбиком
RCON таблицы для AES (заранее сделанная таблица)
Получаем первый столбик ключа
Далее проделываем эту операцию, используя полученные столбики и
изначальные:

Второй

Третий
Четвертый

Мы получили ключ для первого прохода, который будем использовать


далее

Каждый раз использую первую матрицу как ключ-1, получаем:


Это все подключи
Теперь начинаются
раунды: а AES их
всего три: initial, main,
final
Входящий массив
данных разбивается
на блоки (в нашем
случае 128 бит - 16
элементов / букв) и
просто ксорится на соответствующий ключ, полученный ранее
Далее идет main

Теперь начинаем шифровать


Сообщение, которое будем шифровать: MESSAGEENCRPTION
Делаем так же, как в ключе:

4 шага:
1) add round key
2) sub bytes
3) shift rows
4) mix columns

Поэлементно ксорим с нулевым ключом:


Завершающий этап на столбика

И так далее, пока не закончится переданная алгоритму информация

Если говорить про AES, то его нельзя использовать в коммуникациях


между пользователями, которые не могут обменяться заранее
известными ключами или матрицами цифр / чисел

Для этого используется алгоритм под название RSA

RSA
Названный в честь своих изобретателей (Rivest–Shamir–Adleman).
Идея алгоритма довольно проста: у нас есть операция логарифма,
которую просто вычислить в одну сторону и для больших чисел почти
невозможно в другую
Для лучшего понимания обычно приводят Боба и Алису с почтой или
чем-то таким, но существует загадка, хорошо описывающая этот
алгоритм.
Сундук, в котором лежат сокровища, отправляют на корабле в другую
страну, как же закрыть сундук так, чтобы пираты на корабле не смогли
похитить богатства? Ответ прост: сундук закрывается на 2 замка
Сначала отправитель закрывает сундук и отправляет получателю, затем
получатель вешает свой замок на сундук и отправляет обратно, первый
замок открывает изначальный отправитель, второй замок открывает
изначальный получатель

Попробую привести пример на практике:

В примере будет использован термин мультипликативной обратное.


Раскроем его:

2 * 4 mod 7 = 1
4 * 4 mod 15 = 1
5 * 3 mod 7 = 1
и тд

Далее используем расширенный


алгоритм Евклида
Возьмем 4-ый пример из таблицы

17 = 3*5 + 2 17 - 3*5 = 2
3*1 - (17 -3*5)*1 = 1
3 = 2*1 + 1 3*1 - 2*1 = 1
3*1 - 17 + 3*5 = 1
Итог:
-1 * 17 + 3 * 6 = 1
Теперь к RSA
Берем некоторые 2 простых числа (заведомо берем маленькие числа
для демонстрации реальной работы алгоритма)

p=3
q = 11

Они должны быть простыми относительно друг друга


n = p * q = 3 * 11 = 33

Далее находим функцию Эйлера


fi(n) = (p-1)*(q-1) = 20
Доказательство довольно просто: для простого числа функция Эйлера =
p-1, так как если p - простое, все числа до него взаимно просты с ним

Соответственно для p = 3: p-1 = 2


p = 11: p-1 = 10 -> 2*10 = 20
Выбирается e
1 < e < fi(n) взаимно простое с fi(n)
e=3
d = мультипликативной обратное числу e
d * e mod fi(n) ≡ 1

20 = 3*6 + 2 20 - 3*6 = 2 3*1 - (20 - 3*6) = 1


3 = 2*1 + 1 3 - 2*1 = 1 20 * -1 + 3*7 = 1

d = 7 - секретная экспонента
p = {e, n} - открытый ключ
s = {d, n} - секретный ключ

Теперь шифруем
Будем вместо значений ASCII (довольно большие для наглядного
примера) брать индекс в алфавите

Bi = Ai^e mod n B = {27, 24, 16, 4, 14, 9}


A = {C, R, Y, P, T, O} Пример: 27 = 3^3 mod 33
B = {3, 18, 25, 16, 20, 15} 24 = 18^3 mod 33
А теперь дешифруем:

Ai = Bi^d mod n Пример: 27^7 mod 33 = 3


B = {27, 24, 16, 4, 14, 9} 24^7 mod 33 = 18
A = {3, 18, 25, 16, 20, 15} 4^7 mod 33 = 16

4^7 = 16384
16384 |_33__
- 16368 |496
———
16