Добавил:
донатики - https://qiwi.com/n/1ZOMBIE1 Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Бунина Алёна_ОИБ_RSA

.docx
Скачиваний:
4
Добавлен:
10.12.2022
Размер:
23.68 Кб
Скачать

Минобрнауки России

Юго-Западный государственный университет

Кафедра информационной безопасности

Лабораторная работа № 3

RSA

Выполнил:

студент группы ИБ-01б Бунина А.В.

Проверил:

к.т.н., доцент Марухленко А.Л.

Курск, 2020

Индивидуальное задание.

Исходные данные:

номер по списку: 6

[P,Q,E]: [2897, 5531, 3617]

формула для смещения: 1000*n+19*n + 666= 6 780 = 1A7C

размер блока данных: 6 байт.

Формируем входной файл для обработки:

039.mp3.block [6 байт]

байты (hex-код) 7F 9B 23 94 C9 53

Данные об RSA-объекте:

Создан по значениям [P, Q, E]: [2897, 5531, 3617]

1. Вычисляем закрытый ключ.

В связи с тем, что требованием к закрытому числу является выполнение e*d mod f = 1, целесообразно использование расширенного алгоритма Евклида, определяющего поиск решений выражения e*d + x (p-1) *(q-1) = 1.

Вычисляем закрытый ключ:

1) a=16014880 b=3617, div=4427 mod=2421

|0 1

|1 -4427

2) a=3617 b=2421, div=1 mod=1196

|1 -1

|-4427 4428

3) a=2421 b=1196, div=2 mod=29

|-1 3

|4428 -13283

4) a=1196 b=29, div=41 mod=7

|3 -124

|-13283 549031

5) a=29 b=7, div=4 mod=1

|-124 499

|549031-2209407

6) a=7 b=1, div=7 mod=0

|499 -3617

|-2209407 16014880

Рассчитан закрытый ключ [D, N]: (16014880, 16023307)

2. Определяем длину блока.

размерность блока при шифровании, бит:

len = [log216023307] = 23 бита.

3. Формируем исходные блоки и производим шифрование.

Для формирования десятичного представления исходных блоков по len бит запишем исходные данные последовательностью ASCII-кодов:

127,155,35,148,201,83,

формируем двоичную последовательность старшими битами вправо:

11111110 11011001 11000100 00101001 10010011 11001010 00000000 00000000 00000

Блочная обработка ШИФРОВАНИЕ

1) ст-> 11111110110110011100010 мл-> 01000111001101101111111 = 2333567

2333567^3617 mod 16023307 = 687356 - 000010100111110011111100

2) ст-> 00010100110010011110010 мл-> 01001111001001100101000 = 2593576

2593576^3617 mod 16023307 = 15241330 - 111010001001000001110010

3) ст-> 10000000000000000000000 мл-> 00000000000000000000001= 1

1^3617 mod 16023307 = 1 – 000000000000000000000001

4.Результат представляем в виде 16-битных блоков в шестнадцатиричной системе счисления.

Учитывая, что для учета каждого выходного блока потребуется len+1 бит, формируем результирующую двоичную последовательность (нормируем по 16 бит):

00111111 00111110 01010000 01001110 00001001 00010111 10000000 00000000 00000000

Результат обработки:

байты (десятичный код)

11111100 01111100 00001010 01110010 10010000 11101000 00000001 00000000 00000000

байты (двоичный код)

252 124 10 114 144 232 1 0 0

байты (hex-код)

FC7C0A7290E8010000

Соседние файлы в предмете Основы информационной безопасности