Курсовая работа по «Защите информации в телекоммуникационных системах»

НЕКОММЕРЧЕСКОЕ АКЦИОНЕРНОЕ  ОБЩЕСТВО АЛМАТИНСКИЙ УНИВЕРСИТЕТ  ЭНЕРГЕТИКИ И СВЯЗИ

Кафедра Телекоммуникационных Систем

 

 

 

 

 

КУРСОВАЯ РАБОТА

По дисциплине: «Защита  информации в телекоммуникационных                                                                                           системах»

 

 

 

 

 

Выполнил: ст. гр.  БРЭ-10-00

                                                                                            

               №  зач.кн.                                                                                                          Проверил: ст. пр. Якубов Б. М

Дата:___________________

 

 

 

 

 

 

 

Алматы, 2012

 

Содержание

Введение……………………………………………………….…………………..3

Задание №1……………………………………………………………………...…4

Задача 1…………………………………….........................................................…4

Задача 2……………………………………………………………...………….....7  

Задание № 2…...…………………………………………………………...……..12

  Задача 1...………………………………………………...……………………....12

Задача 2………………………………………………………...…………………14

Задача 3…………………………………..……………………..………………..18

Заключение……………………………………………………………………….22

Список  литературы……………………………………...…………….…………23

 

 

 

 

 

 

 

 

 

 

Введение 

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

Задание № 1

 

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

 

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

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

 

i

4

Сообщение

Плюс

j

0

p q

7, 11


 

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

1) Вычислим открытую компоненту  ключа:  n=p*q=7*11=77                                       2) Определим функцию Эйлера:f(р q.)=(р-1)(q-1)=(7-1)(11-1)=60; Пусть d=43;          3) Выберем число е по следующей формуле: е * 43(mod 60)=1; 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


 

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

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

6) Длина блока L определяется как минимальное число из целых чисел, удовлетворяющих условию L ³ log2(77+1);  L=7                                                                  7) Теперь зашифруем сообщение, используя открытый ключ {7,77}:                              Y1 = (167) mod 77 = 58                                                                                                          Y2 = (127) mod 77 = 12                                                                                                              Y3 = (317) mod 77 = 59                                                                                                                Y4 = (187) mod 77 = 39                                                                                                        8) Расшифруем полученные данные, используя закрытый ключ {43,77}:                      Y1 = (5843) mod 77 = 16                                                                                                                 Y2 = (1243) mod 77 = 12                                                                                                          Y3 = (5943) mod 77 = 31                                                                                                                 Y4 = (3943) mod 77 = 18

Данные расшифрованы, сопоставим последовательность <16,12,31,18> с последовательностью букв нашего алфавита. Получили слово ПЛЮС.

 

 

Задача 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=7*11=77

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

П  Л  Ю  С

         16  12  31  18

     00010000     00001100    00011111   00010010

 

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

 

M1

M2

M3

M4

11110001

11110000

11110000

11111100

M7

M8

M9

M10

11110001

11111111

11110001

11110010


 

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

 

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

М

11110001

Å

 

Н0=0

00000000

Н0 Å М1

11110001=24110

[(H0Å M1)2] (mod 77)

241 mod 77 = 10

Н1

00001010


 

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

М

11110000

Å

 

Н1

00001010

Н1 Å М2

11111010=25010

[(H1Å M2)2] (mod 77)

250 mod 77 = 19

Н2

00010011


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

М

11110000

Å

 

Н2

00010011

Н2 Å М3

11011101=22110

[(H2Å M3)2] (mod 77)

221 mod 77 = 67

Н3

01000011


 

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

М

11111100

Å

 

Н3

01000011

Н3 Å М4

10111001=18510

[(H3Å M4)2] (mod 77)

185 mod 77 = 31

Н4

00011111


 

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

М

11110001

Å

 

Н4

00011111

Н4 Å М5

11010010=21010

[(H4Å M5)2] (mod 77)

210 mod 77 = 56

Н5

00111000


 

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

М

11111111

Å

 

Н5

00111000

Н5 Å М6

11000111=19910

[(H5Å M6)2] (mod 77)

199 mod 77 =45

Н6

00101101


 

 

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

М

11110001

Å

 

Н6

00101101

Н6 Å М7

11000100 = 19610

[(H6Å M7)2] (mod 77)

196 mod 77 = 42

Н7

00101010


 

 

 

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

М

11110010

Å

 

Н7

00101010

Н7 Å М8

11001000= 200

[(H7Å M8)2] (mod 77)

200 mod 77 = 46

Н8

00101110


 

Таким образом, исходное сообщение  ПЛЮС имеет хеш – код m=46.

 

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

 

S=md (mod n) = 4643 mod 77 = 74

 

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

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

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

 

m’=Se (mod n) =747 mod 77 = 46

 

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

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

 

Контрольные вопросы

1. Какими преимуществами  перед другими алгоритмами с  закрытым ключом обладает система  Диффи-Хеллмана?

2. Дайте краткую характеристику  системы Диффи-Хеллмана.

3. Объясните, почему число  р, необходимое при вычислении  секретных ключей, следует выбирать  большим?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Задание №2

 

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

 

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

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

i

j

23

7


Xa=7

Xb=11

Xc=13

Xd=17

Xe=19

 

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

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

1<g<p-1  и gqmodp≠1

1<23<3566  и  231783 mod 3567=605

 

 

 

 

Решение:

 

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

Ya = gXa mod р = 27mod 3567 = 128

Yb = gXb mod р = 211mod 3567 = 2048

Yc = gXc mod р = 213mod 3567 = 1058

Yd = gXd mod р= 217mod 3567 = 2660

Ye = gXe mod р = 219mod 3567 = 3506

 

 

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

Абонент

Секретный ключ

Открытый ключ

A

7

        128

B

11

        2048

C

13

        1058

D

17

        2660

E

19

        3506


 

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

ZAB = (YB)XAmodp = (2048)7 mod 3567 = 1061                                                                                               

ZBA = (YA)XBmodp = (128)11 mod 3567 = 1061

Z = Zab=Zва

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

Задача 2. Шифрование по алгоритму Шамира

 

Зашифровать сообщение по алгоритму Шамира для трех абонентов,  взяв значение сообщения m и значение p из таблицы 2. По номеру i (предпоследняя цифра) студент выбирает сообщение для зашифровывания, по j – требуемые для реализации этого алгоритма число р. Выбор данных для других абонентов произвести циклически согласно процедуре (i + 1) и (g + 1).

Таблица 2  Исходные данные для выбора сообщений (m)

i

4

5

6

Сообщение

20

22

24

j

0

1

2

p

29

31

37


 

Решение:

Перейдем к описанию системы. Пусть есть два абонента Аи В, соединенные  линией связи. А хочет передать сообщение m абоненту Б так, чтобы никто не узнал его содержание. А выбирает случайное большое простое число р и открыто передает его В. Затем А выбирает два числа сА и dA , такие, что

сАdA mod (р - 1) = 1.                                         (2.1)

Эти числа А держит в секрете и передавать не будет. В тоже выбирает два числа св    dв, такие, что

св<dв mod (p - 1) = 1,                                        (2.2)

и держит их в секрете.

После этого А передает свое сообщение m, используя трехступенчатый протокол. Если m < р (m рассматривается как число), то сообщение т передается сразу , если же      т р, то сообщение представляется в виде m1, m2,..., mt, где все mi < р, и затем передаются последовательно m1, m2,..., mt. При этом для кодирования каждого mi лучше выбирать случайно новые пары (cA,dA) и (cB,dB) — в противном случае надежность системы понижается. В настоящее время такой шифр, как правило, используется для передачи чисел, например, секретных ключей, значения которых меньше р. Таким образом, мы будем рассматривать только случай m < р.

 

 

Описание протокола.

Шаг 1.  А вычисляет число: Х1 =mСА modp  (2.3),                                              где m — исходное сообщение, и пересылает х1 к В.

Шаг 2.   В, получив х1, вычисляет число: X2 = х1CB mod p (2.4),                                                                                                          

и передает х2 к А.

Шаг 3.  А вычисляет число: X3 = х2dA mod p (2.5),                                                                                       

и передает его В.

Шаг 4.   В, получив х3, вычисляет число X4 = x3dB mod p (2.6).      

                                                                               

Утверждение  (свойства протокола Шамира).

1)   х4 = m, т.е. в результате реализации протокола от А к В действительно передается исходное сообщение;

2)   злоумышленник не может, узнать, какое сообщение было передано.

Доказательство. Вначале  заметим, что любое целое число  е  0 может быть представлено в виде е = k(р-1)+r, где r = е mod (p-1). Поэтому на основании теоремы Ферма:     (2.7).                                        

Справедливость первого  пункта утверждения вытекает из следующей цепочки равенств:

(предпоследнее равенство  следует из (2.7), а последнее выполняется  в силу (2.1) и (2.2)).

Доказательство второго  пункта утверждения основано на предположении, что для злоумышленника, пытающегося определить m, не существует стратегии более эффективной, чем следующая. Вначале он вычисляет CB из (2.4), затем находит dB и, наконец, вычисляет Х4 = m по (2.6). Но для осуществления этой стратегии злоумышленник должен решить задачу дискретного логарифмирования (2.4), что практически невозможно при больших р.           

Опишем метод нахождения пар cA,dA и сB,dB, удовлетворяющих (2.1) и (2.2). Достаточно описать только действия для абонента А. так как действия для В совершенно аналогичны. Число сA выбираем случайно так, чтобы оно было взаимно простым с р-1 (поиск целесообразно вести среди нечетных чисел, так как р - 1 четно), Затем вычисляем dA с помощью обобщенного алгоритма Евклида.

Теорема  Пусть a и b – два целых положительных числа. Тогда существуют целые (не обязательно положительные) числа x и y, такие, что

 

ax + by = gcd(a, b).     (1)

 

Обобщенный алгоритм Евклида  служит для отыскания gcd(a,b) и x,y, удовлетворяющих (1). Введем три строки U=(u1, u2, u3), V=(v1, v2, v3) и Т=(t1, t2, t3). Тогда алгоритм записывается следующим образом.

 

Решение:

Пусть А хочет передать В сообщение m = 20. А выбирает р = 29,

сАdA mod (р - 1) = 1.                                        

сА = 5 , dA = 17.

Аналогично,  В выбирает параметры

свdв mod (p - 1) = 1

cB = 3 и dB = 19. Переходим к протоколу Шамира.

Шаг 1. x1 = 205mod 29 =24.

Шаг 2. х2 = 243 mod 29 = 20.

ШагЗ.  x3= 2017 mod 29 = 25.

Шаг 4. х4 = 2519 mod 29 = 20.

Таким образом, В получил  передаваемое сообщение m = 20.      

Пусть B хочет передать C сообщение m = 22. B выбирает р = 31,

СBdB mod (р - 1) = 1.                                        

СB = 7 , dB = 13.

Аналогично. C выбирает параметры

Сcdc mod (p - 1) = 1

Cc = 11 и dc = 11. Переходим к протоколу Шамира.

Шаг 1. x1 = 227mod 31 =21.

Шаг 2. х2 = 2111 mod 31 = 12.

ШагЗ.  x3= 1213 mod 31 =17.

Шаг 4. х4 = 1711 mod 31 =22.

Таким образом, C получил передаваемое сообщение m = 22.      

  1. Пусть R хочет передать A сообщение m = 24. C выбирает р = 37,

СRdR mod (р - 1) = 1.                                        

СR = 5 , dR = 29.

Аналогично. В выбирает параметры

СAdA mod (p - 1) = 1

CA = 7 и dA = 31. Переходим к протоколу Шамира.

Шаг 1. x1 = 245mod 37 =2.

Шаг 2. х2 = 27 mod 37 = 17

ШагЗ.  x3= 1729 mod 37 = 5.

Шаг 4. х4 = 531 mod 37 =24.

Таким образом, A получил передаваемое сообщение m = 24.      

 

Задача 3. Шифрование по алгоритму Эль- Гамаля

 

По таблице 3 выбрать сообщение  m и секретный ключ x  и провести шифрование по методу Эль-Гамаля для пяти абонентов. Вариант задания определяется последними цифрами номера студенческого билета. По номеру i (предпоследняя цифра) студент выбирает сообщение для зашифровывания, по j (последняя цифра) – требуемые для реализации этого алгоритма секретный ключ x. Исходные данные для других четырех секретных ключей x выбираются циклически по процедуре (i+1) и (j+1).

 

Таблица 4 Исходные данные для  выбора сообщений и числа х.

i

4

5

6

7

8

Сообщение

13

3

15

11

15

j

0

1

2

3

4

х

29

11

13

7

19


 

 

Решение:

 

Пусть имеются абоненты А, В, С, D, которые хотят передавать друг другу зашифрованные сообщения, не имея никаких защищенных каналов связи. Шифр Эль – Гамаля  решает эту задачу, используя, в отличие от шифра Шамира, только одну пересылку сообщения. Фактически здесь используется схема Диффи – Хеллмана, чтобы сформировать общий секретный ключ для двух абонентов, передающих друг другу сообщение, и затем сообщение шифруется путем умножения его на этот ключ. Для каждого следующего сообщения секретный ключ вычисляется заново.

Для всей группы абонентов  выбираются некоторое большое простое число р и число g, такие, что различные степени g суть различные числа по модулю р. Числа р и g передаются абонентам в открытом виде (они могут использоваться всеми абонентами сети).

Нам необходимо выбрать числа  p и g так, чтобы они отвечали следующим требованиям:

gq mod p

1,

где p=2q+1.

Возьмем p=29 и g=11.

2q+1=29  q=14

Проверим соотношение:

1114 mod 29= 28

1 – выполняется.

Затем каждый абонент группы выбирает свое секретное число ci:

                                     1 < Ci < р – 1

(см. таблицу 5.1), и вычисляет соответствующее ему открытое число di:

                                                     di=gci mod p        (3.1)

 

 

 

Т а б л и ц а 5.1 – Ключи пользователей в системе  Эль – Гамаля

Абонент

Секретный ключ

Открытый ключ

A

3

26

B

5

14

C

7

12

D

11

10

Курсовая работа по «Защите информации в телекоммуникационных системах»