Несимметричное шифрование – дешифрование.
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Зашифровать информацию по методу RSA для последующей передачи. Вариант задания определяется последними цифрами номера студенческого билета. По номеру i (предпоследняя цифра) студент выбирает сообщение для зашифровывания, по j – требуемые для реализации этого алгоритма числа р и q.

Таблица 1.1 - Исходные данные:

i 0 1 2 3 4
Сообщение Принтер Интеграл Минус Модуль Плюс
j 0 1 2 3 4
p q 7.11 5.17 3.11 11.19 13.17

Продолжение таблицы 1.1

i 5 6 7 8 9
Сообщение Число Дробь Корень Остаток Степень
j 0 1 2 3 4
p q 7.17 5.11 7.13 11.17 5.13

Методические указания к решению задания 1.1

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

Алгоритм основан на использовании операции возведения в степень модульной арифметики. Его можно представить в виде следующей последовательности шагов:

Шаг 1. Выбирается два больших простых числа числа р и q. Простыми называются числа, которые делятся на самих себя и на 1. На практике для обеспечения криптостойкости системы величина этих чисел должна быть длиной не менее двухсот десятичных разрядов.

Шаг 2. Вычисляется открытая компонента ключа n

 

n = р q .

 

Шаг 3. Находится функция Эйлера по формуле

 

f (р q .)=(р-1)( q -1)

Функция Эйлера показывает количество целых положительных чисел от1 до n, которые не имеют ни одного общего делителя, кроме 1.

 

Шаг 4. Выбирается число е, которое должно взаимно простым со значением функции Эйлера и меньшим, чем f(р q.)

 

Шаг 5. Определяется число d, удовлетворяющее соотношению

 

е * d ( mod f (р q .))=1

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

Шаг 6. Исходная информация независимо от её физической природы представляется в числовом двоичном виде. Последовательность бит разделяется на блоки длиной L бит, где L – наименьшее целое число, удовлетворяющее условию L ³ log2(n.+1); Каждый блок рассматривается как целое положительное число X(i), принадлежащее интервалу (0, n-1). Таким образом, исходная информация представляется последовательностью чисел X(i), (i = 1.I).Значение I определяется длиной шифруемой последовательности.

 

Шаг 7. Зашифрованная информация получается в виде последовательности чисел Y(i)= (Y(i)) e (mod n).

 

Шаг 8. Для расшифрования информации используется следующая зависимость Х(i)= (Y(i)) e (mod n).

 

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

 

Сообщение: ПРЕДЕЛ

Простые числа p и q - 3,11

Зашифруем и расшифруем сообщение "ПРЕДЕЛ" по алгоритму RSA:

1) Выберем p=3 and q=11.

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

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

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

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

Таблица 1.2 – Позиции букв в алфавите

Буквы алфавита

А

Б

В

Г

Д

Е

Ж

З

И

Й

К

Л

М

Н

О

П

Р

Номер буквы

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

Буквы алфавита

С

Т

У

Ф

Х

С

Ч

Ш

Щ

Ъ

Ы

Ь

Э

Ю

Я

Номер буквы

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

5) Представим шифруемое сообщение как последовательность чисел в диапазоне от 0 до 32: 16, 17, 6, 5, 6, 12,ПРЕДЕЛ

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

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

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

Y 1 = (167) mod 33 = ;

Y2 = (177) mod 33 = ;

Y3 = (67) mod 33 = ;

Y4 = (57) mod 33 = ;

Y 5 = (67) mod 33 = ;

Y 6 = (12^7) mod 33 = ;

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

Y1 = (253) mod 33 = ;

Y2 = (83) mod 33 = ;

Y3 = (303) mod 33 = ;

Y4 = (143) mod 33 = ;

Y5 = (303) mod 33 = ;

Y6 = (123) mod 33 = ;

Данные расшифрованы, сопоставим последовательность <16, 17, 6, 5, 6, 12> с последовательностью букв нашего алфавита. Получили слово ПРЕДЕЛ

Хеш-функции. Хеширование

Содержание:

Дата: 2019-11-01, просмотров: 204.