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

На сортировку / 5 / 77730 / Alish_LABA_2_Zivts

.docx
Скачиваний:
3
Добавлен:
12.12.2017
Размер:
42.94 Кб
Скачать

Введение

В зависимости от структуры используемых ключей методы шифрования подразделяются на:

1) симметричное шифрование: посторонним лицам может быть известен алгоритм шифрования, но неизвестна небольшая порция секретной информации — ключа, одинакового для отправителя и получателя сообщения; Примеры: DES, 3DES, AES, Blowfish, Twofish, ГОСТ 28147-89

2) асимметричное шифрование: посторонним лицам может быть известен алгоритм шифрования, и, возможно открытый ключ, но неизвестен закрытый ключ, известный только получателю. Криптографические системы с открытым ключом в настоящее время широко применяются в различных сетевых протоколах, в частности, в протоколах TLS и его предшественнике SSL (лежащих в основе HTTPS), а так же SSH, PGP, S/MIME и т. д. Российский стандарт, использующий асимметричное шифрование - ГОСТ Р 34.10-2001.

На данный момент асимметричное шифрование на основе открытого ключа RSA (расшифровывается, как Rivest, ShamirandAldeman - создатели алгоритма) использует большинство продуктов на рынке информационной безопасности.

Его криптостойкость основывается на сложности разложения на множители больших чисел, а именно - на исключительной трудности задачи определить секретный ключ на основании открытого, так как для этого потребуется решить задачу о существовании делителей целого числа. Наиболее криптостойкие системы используют 1024-битовые и большие числа.[2]

Цель работы:

Изучить принцип работы асимметричных алгоритмов шифрования на примере алгоритма RSA. Освоить методику создания комбинированных алгоритмов шифрования, которые совмещают достоинства методов симметричной и асимметричной криптографии.

Алгоритм шифрования RSA

Алгоритм RSA был разработан в 1977 году РономРивестом, Ади Шамиром и Леном Адлеманом и опубликован в 1978 году. С тех пор алгоритм Rivest-Shamir-Adleman (RSA) широко применяется практически во всех приложениях, использующих криптографию с открытым ключом.

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

При рассмотрении метода RSA необходимо вспомнить не­которые школьные термины. [1]

Под простым числом понимают такое число, которое делится толь­ко на 1 и на само себя. Взаимно простыми числами называют такие числа, которые не имеют ни одного общего делителя, кроме 1. Под результатом операции i modj понимают остаток от целочисленного де­ления i на j.

Чтобы использовать алгоритм RSA, надо сначала сгенерировать от­крытый и секретный ключи, выполнив следующие шаги.

1. Выбрать два очень больших простых числа р и q.

2. Определить п как результат умножения р на q(n = pq).

3.Выбрать большое случайное число d. Оно должно быть взаимно простым с результатом умножения (р — l)(g — 1).

4. Определить такое число е, для которого является истинным сле­дующее соотношение: edmod((p — l)(g — 1)) = 1.

5.Назвать открытым ключом числа е и п, а секретным ключом — числа d и п.

Далее, чтобы зашифровать данные по известному ключу {е n}, необходимо разбить шифруемый текст на блоки, каждый из которых может быть представлен в виде числа М( i ) = 0, 1,...,п — 1; заши­фровать текст, рассматриваемый как последовательность чисел М(i) по формуле

С(i= M(i)emod(n).

Чтобы расшифровать эти данные, используя секретный ключ {d,n}, необходимо выполнить следующие вычисления: М(i) = C(i)dmod(n). В результате будет получено множество чисел М(i), которое предста­вляет собой исходный текст.

Зашифруем и расшифруем сообщение "ДРОБЬ" по алгоритму RSA:

1) Выберем p=5 and q=13.

2)Вычислим открытую компоненту ключа:  n = 5*13=65.

3) Определим функцию Эйлера:  (p-1)*(q-1)=48. Следовательно, d будет равно, например, 29: (d=29).

4) Выберем число е по следующей формуле: (e*29) mod 48=1. е будет равно 5: (e=5).

Числа е и n принимаются в качестве открытого ключа, d и n используются в качестве секретного ключа.

Представим шифруемое сообщение как последовательность чисел в диапазоне от 0 до 32: 5, 17, 15, 2, 29,

Для представления чисел в двоичном виде требуется 6 двоичных разрядов, так как в русском алфавите используются 33 буквы, поэтому исходный текст имеет вид: 000101, 010001, 001111, 000010, 011101.

Длина блока L определяется как минимальное число из целых чисел, удовлетворяющих условию L  log2(65+1); L=6

Теперь зашифруем сообщение, используя открытый ключ {5,65}

Y1 = (55) mod 65 =5;

Y2 = (175) mod 65 = 62;

Y3 = (155) mod 65 = 45;

Y4 = (25) mod 65 = 32;

Y5 = (295) mod 65 = 9;

Расшифруем полученные данные, используя закрытый ключ {29,65}.

Y1 = (529) mod 65 = 5;

Y2 = (6229) mod 65 =17;

Y3 = (4529) mod 65 =15;

Y4 = (3229) mod 65 =2;

Y5 = (929) mod 65 =29;

Данные расшифрованы, сопоставим последовательность <5, 17, 15, 2, 29> с последовательностью букв нашего алфавита. Получили слово ДРОБЬ.

Хеширование и цифровая подпись документов.

Используя данные задания 1.1, получить хеш – код m для сообщения М при помощи хеш – функции Н, взятой из рекомендаций МККТТ Х.509. Вектор инициализации Н0 выбрать равным нулю.

Вычислить цифровую подпись методом RSA под электронным документом М, используя рассчитанный хеш – код m и секретный ключ d.

Представить схему цифровой подписи с подробным описанием ее функционирования.

Хеш – функцию МККТТ Х.509 запишем следующим образом:

Hi=[(Hi-1  Mi)2] (mod n), где i=l,n, H0 – вектор инициализации, Мi123…,Мn - -длина блока.

Все блоки делят пополам и к каждой половине прибавляют равноценное количество единиц. С преобразованными таким образом блоками производят интеграционные действия.

Необходимо получить хеш – код сообщения ДРОБЬ при помощи хеш функции Х.509 с параметрами p=5, q=13.

Порядок вычисления хеш – кода:

а) получить значение модуля: n=pq= 5*13=65;

б)Представить сообщение в виде номеров букв русского алфавита в десятичном и двоичном видах:

               Д               Р              0                Б               Ь

   5           17             15               2                29

00000101, 00010001, 00001111, 00000010, 00011101:

в) Разбить байт пополам, добавив в начало полубайта единицы и получить хешируемые блоки Мi:

M1

M2

M3

M4

M5

11110000

11110101

11110001

11110001

11110000

M6

M7

M8

M9

M10

11111111

11110000

11110010

11110001

11111101

г) Выполнить интеративные шаги:

Первая интерация

М1 

11110000

 

 

 Н0=0

00000000

 Н0  М1

11110000=24010

 [(H0 M1)2] (mod 65)

2402 mod 65 = 10

 Н1

1010=00001010

Вторая интерация

М2 

11110101

 

 

 Н1

00001010

 Н1  М2

11111111=25510

 [(H1 M2)2] (mod 65)

2552 mod 65 = 25

 Н2

2510=00011001

Третья интерация

М3 

11110001

 

 

 Н2

00011001

 Н2  М3

11101000=23210

 [(H2 M3)2] (mod 65)

2322 mod 65 = 4

 Н3

00000100

Четвертая интерация

М4 

11110001

 

 

 Н3

00000100

 Н3  М4

11110101=24510

 [(H3 M4)2] (mod 65)

2452 mod 65 = 30

 Н4

00011110

Пятая интерация

М5 

11110000

 

 

 Н4

00011110

 Н4  М5

11101110=23810

 [(H4 M5)2] (mod 65)

2382 mod 65 = 29

 Н5

00011101

Шестая интерация

М6 

11111111

 

 

 Н5

00011101

 Н5  М6

11100010=22610

 [(H5 M6)2] (mod 65)

2262 mod 65 =51

 Н6

00110011

Седьмая интерация

М7 

11110000

 

 

 Н6

00110011

 Н6  М7

11000011 = 19510

 [(H6 M7)2] (mod 65)

1952 mod 65 = 0

 Н7

00000000

Восьмая интерация

М8 

11110010

 

 

 Н7

00000000

 Н7  М8

11110010= 24210

 [(H7 M8)2] (mod 65)

2422 mod 65 = 64

 Н8

01000000

 Девятая интерация

М9 

11110001

 

 

 Н8

01000000

 Н8  М9

10110001 = 17710

 [(H8 M9)2] (mod 65)

1772 mod 65 = 64

 Н9

01000000

Десятая интерация

М10 

11111101

 

 

 Н9

01000000

 Н9  М10

10111101= 18910

 [(H9 M10)2] (mod 65)

1892 mod 65 = 36

 Н10

00100100

Таким образом, исходное сообщение ДРОБЬ имеет хеш – код m=36

Для вычисления цифровой подписи используем следующую формулу:

S=md (mod n) = 3629 mod 65 = 56

Пара (M, S) передается получателю как электронный документ М, подписанный цифровой подписью S, причем подпись S сформирована обладателем секретного ключа d.

Получив пару (M, S), получатель вычисляет хеш – код сообщения М двумя способами:

1) Восстанавливает хеш – код m’, применяя криптографическое преобразование подписи S с использованием открытого ключа e:

m’=Se (mod n) =565 mod 65 = 36

2) Находит результат хеширования принятого сообщения с помощью той же хеш – функции: m=H(M) =36.

При равенстве вычисленных значений m’ и m получатель признает пару (M, S) подлинной.

Ответы на вопросы:

1. В чём заключается алгоритм RSA?

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

Криптосистема RSA стала первой системой, пригодной и для шифрования, и для цифровой подписи. Алгоритм используется в большом числе криптографических приложений.[3]

2. Для чего и почему используют криптоалгоритмы?

Защита информации методами криптографического преобразования заключается в изменении ее составных частей (слов, букв, слогов, цифр) с помощью специальных алгоритмов либо аппаратных решений и кодов ключей, то есть в приведении ее к неявному виду.[4]

3. В чём заключаются достоинства и недостатки асимметричных исимметричных алгоритмов?

Основной недостаток симметричного шифрования заключается в необходимости публичной передачи ключей – "из рук в руки". Первый недостаток ассиметричного шифрования заключается в низкой скорости выполнения операций зашифровки и расшифровки, что обусловлено необходимостью обработки ресурсоемких операций. Как следствие, требования к аппаратной составляющей такой системы часто бывают неприемлемы. [5]

Выводы

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

Список использованных источников:

1. Якубова М. З. Методическое указание для лабораторной работы №2 по теме «Ассиметричный алгоритм шифрования RSA», 2017.

2. http://www.e-nigma.ru/stat/rsa

3. http://www.paveldvlip.ru/algorithms/rsa.html

3

Соседние файлы в папке 77730