Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Задача 1. Система с открытым ключом Диффи-Хелмана




Введение

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

Задача данной курсовой работы – научить студентов практическим навыкам ассиметричного и симметричного шифрования-дешифрования информации.

 

Задание № 1

Задача 1. Несимметричное шифрование – дешифрование.

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

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

I  
Сообщение Число
J  
p q 11.17

 

Методические указания к решению задания 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 – 11 и 17

1) Вычислим открытую компоненту ключа: n=p*q=11*17=187

2) Определим функцию Эйлера:f(р q.)=(р-1)(q-1)=(11-1)(17-1)=160; Пусть d=7;

3) Выберем число е по следующей формуле: е * 7(mod 160)=1; e=23

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

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

Буквы алфавита А Б В Г Д Е Ж З И Й К Л М Н О П
Номер буквы                                
Буквы алфавита Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я
Номер буквы                                

 

4) Представим шифруемое сообщение как последовательность чисел в диапазоне от 0 до 32: 24 9 18 12 15

5) Для представления чисел в двоичном виде требуется 6 двоичных разрядов, так как в русском алфавите используются 33 буквы, поэтому исходный текст имеет вид: 011000 001001 010010 001100 001111

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

7) Теперь зашифруем сообщение, используя открытый ключ {23,187}: Y1 = (2423) mod 187 = 63 Y2 = (923) mod 187 = 36 Y3 = (1823) mod 187 = 35 Y4 = (1223) mod 187 = 177

Y5 = (1523) mod 187 = 42

8) Расшифруем полученные данные, используя закрытый ключ {7,187}: Y1 = (637) mod 187 = 24 Y2 = (367) mod 187 = 9 Y3 = (357) mod 187 = 18 Y4 = (1777) mod 187 = 12

Y5 = (427) mod 187 = 15

Данные расшифрованы, сопоставим последовательность <24 9 18 12 15> с последовательностью букв нашего алфавита. Получили слово ЧИСЛО.

 

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

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

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

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

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

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

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

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

а) Получить значение модуля: n=p*q=11*17=187

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

Ч И С Л О

24 9 18 12 15

00011000 00001001 00010010 00001100 00001111

 

 

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

 

M1 M2 M3 M4 M5 M6 M7
             
M8 M9 M10  
     

 

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

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

М1  
Å  
Н0=0  
Н0 Å М1 11110001= 24110
[(H0Å M1)2] (mod187) 241 mod 187 = 54
Н1  

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

М2  
Å  
Н1  
Н1 Å М2 11001110 = 20610
[(H1Å M2)2] (mod187) 206 mod 187 = 19
Н2  

 

 

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

М3  
Å  
Н2  
Н2 Å М3 11100011 = 22710
[(H2Å M3)2] (mod187) 227 mod 187 = 40
Н3  

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

М4  
Å  
Н3  
Н3 Å М4 11010001 = 20910
[(H3Å M4)2] (mod209) 209 mod 187 = 22
Н4  

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

М5  
Å  
Н4  
Н4 Å М5 11100111 = 23110
[(H4Å M5)2] (mod187) 231 mod 187 = 44
Н5  

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

М6  
Å  
Н5  
Н5 Å М6 11011110 = 22210
[(H5Å M6)2] (mod187) 222 mod 187 = 35
Н6  

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

М7  
Å  
Н6  
Н6 Å М7 11010011 = 21110
[(H6Å M7)2] (mod187) 211 mod 187 = 24
Н7  

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

М8  
Å  
Н7  
Н7 Å М8 11100100 = 22810
[(H7Å M8)2] (mod187) 228 mod 187 = 41
Н8  

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

М9  
Å  
Н8  
Н8 Å М9 11011001 = 21710
[(H8Å M9)2] (mod187) 217 mod 187 = 30
Н9  

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

М10  
Å  
Н9  
Н9 Å М10 11100001 = 22510
[(H9Å M10)2](mod187) 225 mod 187 = 38
Н10  

Таким образом, исходное сообщение ЧИСЛО имеет хэш – код m=38.

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

 

S=md (mod n) = 387 mod 187 = 47

 

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

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

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

 

m’=Se (mod n) =4723 mod 187 = 38

 

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

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

 

Задание №2

Задача 1. Система с открытым ключом Диффи-Хелмана

Сгенерировать секретные ключи для пяти абонентов по методу Диффи-Хеллмана (DH). Для этого взять значение секретного ключа x из таблицы 1. Соответствующие значения открытого ключа вычислить и результаты внести в таблицу. Вариант задания определяется по номеру i (предпоследняя цифра) и j (последняя цифра зачетной книжки)– требуемая для реализации этого алгоритма число x. Число j – начальный номер для второго абонента при выборе числа x. Для выбора x для связи с пятью абонентами необходимо по циклической процедуре выбрать x по последней цифре зачетки.

Значения согласно варианту:

 

I j
   

 

Xa=39

Xb=41

Xc=7

Xd=11

Xe=13

 

Число р выбирается таким, чтобы выполнялось равенство

р=2q+1 (где q- также простое число)

и были справедливы неравенства

1 < g < р - 1 и gq mod р 1.

 

Так как g=29, пусть q=1783, тогда p=3567.

Проверим выполнение условий данных в методических указаниях:

1<g<p-1 и gqmodp≠1

1<29<3566 и 291783 mod 3567=1769≠1

Решение:

Вычислим открытые числа Y для пяти абонентов по следующей формуле:

Ya = gXa mod р =2939mod 3567 = 1247

Yb = gXb mod р =2941mod 3567 = 29

Yc = gXc mod р = 297mod 3567 = 3422

Yd = gXd mod р= 2911mod 3567 = 2639

Ye = gXe mod р = 2913mod 3567 = 725

 

Таблица1.3 Ключи пользователей в системе Диффи-Хеллмана

Абонент Секретный ключ Открытый ключ
A    
B    
C    
D    
E    

 

Приведем пример работы алгоритма Диффи-Хеллмана. Покажем как абонент A и B смогут вычислить секретные ключи, благодаря открытым числам Ya и Yb. Вычислим следующие величины:

ZAB = (YB)XAmodp = (29)39 mod 3567 = 1247

ZBA = (YA)XBmodp = (1247)41 mod 3567 =1247

Z = Zab=Zва

Таким образом, любая пара абонентов может вычислить свой секретный ключ, который в нашем примере является Z.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...