Контрольная работа по "Информатике". 21
Кафедра Телекоммуникационных Систем
КУРСОВАЯ РАБОТА
По дисциплине:
«Защита информации
в телекоммуникационных
Выполнил: ст. гр. Агаханова Евгения
№ зач.кн. 123070
Алматы, 2013
Содержание
Введение
В данной курсовой работе рассматриваются симметричные и несимметричные системы шифрования. Задание №1 посвящено шифрованию по алгоритму RSA, а также предлагаются расчеты по электронной подписи с использованием хеш-функции.
Задание №2 посвящено асимметричному шифрованию или шифрованию с открытым ключом. Рассматриваются алгоритмы Диффи–Хелмана, Шамира и Эль-Гамаля.
Создание алгоритмов
асимметричного шифрования является величайшим
и, возможно, единственным революционным
достижением в истории
Алгоритмы шифрования с открытым ключом разрабатывались для того, чтобы решить две наиболее трудные задачи, возникшие при использовании симметричного шифрования.
Первой задачей является распределение ключа. При симметричном шифровании требуется, чтобы обе стороны уже имели общий ключ, который каким-то образом должен быть им заранее передан.
Второй задачей является необходимость создания таких механизмов, при использовании которых невозможно было бы подменить кого-либо из участников, т.е. нужна цифровая подпись.
Диффи и Хеллман достигли значительных результатов, предложив способ решения обеих задач, который радикально отличается от всех предыдущих подходов к шифрованию.
Шифр предложенный Шамиром, был первым позволяющим организовать обмен секретными сообщениями по открытой линии связи для лиц, которые не имеют ни каких защищенных каналов и секретных ключей и возможно ни когда не видели друг друга.
Задание 1.1
Несимметричное шифрование-дешифрование.
Зашифровать информацию по методу RSA для последующей передачи. Вариант задания определяется последними цифрами номера студенческого билета. По номеру i (предпоследняя цифра) студент выбирает сообщение для зашифровывания, по j – требуемые для реализации этого алгоритма числа р и q.
Одним из наиболее распространенных
методов несимметричного
Алгоритм основан на использовании операции возведения в степень модульной арифметики. Его можно представить в виде следующей последовательности шагов:
Шаг 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).
Исходные данные:
Текст для шифрования: Книга
p = 7
q=11
- Вычислим открытую компонента ключа n:
n=7*11=77
- Находится функция Эйлера по формуле
Функция Эйлера показывает количество целых положительных чисел от1 до n, которые не имеют ни одного общего делителя, кроме 1.
- Выбирается число е, которое должно быть взаимно простым со значением функции Эйлера и меньшим, чем f(р q.)
Предположим, что е=13.
4.Выберем число d по следующей формуле: е * d(mod f(р q.))=1 d будет равно 37: (d=37).
Числа е и n принимаются в качестве открытого ключа. В качестве секретного ключа используются числа d и n.
- Исходная информация независимо от её физической природы представляется в числовом двоичном виде. Последовательность бит разделяется на блоки длиной L бит, где L – наименьшее целое число, удовлетворяющее условию
L=6
Каждый
блок рассматривается как
- Представим шифруемое сообщение как последовательность чисел в диапазоне от 0 до 32:
Представим
шифруемое сообщение как
Буквы алфавита |
А |
Б |
В |
Г |
Д |
Е |
Ж |
З |
И |
Й |
К |
Л |
М |
Н |
О |
П |
Р |
Номер буквы |
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 |
диапазоне от 0 до 32:
11, 14, 9, 4, 1
Для
представления чисел в
К |
11 |
001011 |
Н |
14 |
001110 |
И |
9 |
001001 |
Г |
4 |
000110 |
А |
1 |
000001 |
- Зашифрованная информация получается в виде последовательности чисел
Зашифруем сообщение, используя открытый ключ {13,77}
- Расшифруем полученные данные, используя закрытый ключ {37,77}.
Вывод:
Данные расшифрованы, сопоставим последовательность <11,14,9,4,1> с последовательностью букв нашего алфавита. Получили слово Книга.
Наиболее популярная криптосистема RSA, разработанная в 1977 году, получила название в честь ее создателей: Рона Ривеста, Ади Шамира и Леонарда Эйдельмана.
Они воспользовались тем фактом, что нахождение больших простых чисел в вычислительном отношении осуществляется легко, но разложение на множители произведения двух таких чисел практически невыполнимо.
Задание 1.2. Хеширование и цифровая подпись документов
Используя данные задания 1, получить хеш – код m для сообщения М при помощи хеш – функции Н, взятой из рекомендаций МККТТ Х.509. Вектор инициализации Н0 выбрать равным нулю.
Вычислить цифровую подпись методом RSA под электронным документом М, используя рассчитанный хеш – код m и секретный ключ d.
Представить схему цифровой подписи с подробным описанием ее функционирования.
Хеш – функцию МККТТ Х.509 запишем следующим образом:
,
где - вектор инициализации;
- длина блока.
Все блоки
делят пополам и к каждой
половине прибавляют
Необходимо получить хеш – код сообщения Каримова при помощи хеш функции Х.509 с параметрами p=7, q=11.
- Получить значение модуля:
- Представить сообщение в виде номеров букв русского алфавита в десятичном и двоичном видах:
К |
11 |
00001011 |
Н |
14 |
00001110 |
И |
9 |
00001001 |
Г |
4 |
00000110 |
А |
1 |
00000001 |
- Разбить байт пополам, добавив в начало полубайта единицы и получить хешируемые блоки Мi:
M1 |
M2 |
M3 |
M4 |
M5 |
|
11110000 |
11111011 |
11110000 |
11111110 |
11110000 |
M6 |
M7 |
M8 |
M9 |
M10 |
|
11111001 |
11110000 |
11110110 |
11110000 |
11110001 |
- Выполним интеративные шаги:
1 интерация:
M1 |
1111 0000 |
|
|
|
H0 |
0000 0000 |
|
1111 0000=24010 |
|
|
2402mod77=4 |
H1 |
410= 000001002 |
2 интерация:
M2 |
11111011 |
|
|
|
H1 |
00000100 |
|
11111111=25510 |
|
|
2552 mod77=3710 |
|
H2 |
3710 =001001012 |
3 интерация:
M3 |
11110000 |
|
|
|
H2 |
00100101 |
|
01010101=8510 |
|
|
852 mod77=6410 |
|
H3 |
6410 = 010000002 |
4 интерация:
M4 |
11111110 |
|
|
|
H3 |
01000000 |
|
10111110=19010 |
|
|
1902 mod77=6410 |
|
H4 |
6410 = 010000002 |
5 интерация:
M5 |
11110000 |
|
|
|
H4 |
01000000 |
|
10110000=17610 |
|
|
1762 mod77=22 |
H5 |
2210 = 00010110 |
6 интерация:
M6 |
11111001 |
|
|
|
H5 |
00010110 |
|
11101111=23910 |
|
|
2392 mod77=6410 |
|
H6 |
6410 = 010000002 |
7 интерация:
M7 |
11110000 |
|
|
|
H6 |
01000000 |
|
10110000=17610 |
|
|
1762 mod77=22 |
H7 |
2210=00010110 |
8 интерация:
M8 |
11110110 |
|
|
|
H7 |
00010110 |
|
11100000=22410 |
|
|
2242 mod77=39 |
H8 |
4910 =00110001 |
9 интерация:
M9 |
1111 0000 |
|
|
|
H8 |
00110001 |
|
11000001=19310 |
|
|
1932 mod77=58 |
H9 |
5810 = 00111010 |
10 интерация:
M10 |
11110001 |
|
|
|
H9 |
00111010 |
|
11001011=20310 |
|
|
2032 mod91=14 |
H10 |
1410 = 00001110 |
Вывод:
Таким образом, исходное сообщение «Каримова» имеет хеш – код m=14
Для вычисления цифровой подписи используем следующую формулу:
56
Пара (M, S) передается получателю как электронный документ М, подписанный цифровой подписью S, причем подпись S сформирована обладателем секретного ключа d.
Получив пару (M, S), получатель вычисляет хеш – код сообщения М двумя способами:
Восстанавливает хеш – код m’, применяя криптографическое преобразование подписи S с использованием открытого ключа e:
Находит
результат хеширования
При равенстве вычисленных значений m’ и m получатель признает пару (M, S) подлинной.
Задача 2. Шифрование по алгоритму Шамира
Зашифровать сообщение по алгоритму Шамира для трех абонентов, взяв значение сообщения m и значение p из таблицы 2. По номеру i (предпоследняя цифра) студент выбирает сообщение для зашифровывания, по j – требуемые для реализации этого алгоритма число р. Выбор данных для других абонентов произвести циклически согласно процедуре (i + 1) и (g + 1).
Последние цифры номера зачетной книжки – (17). Выбираем для трех абонентов (сообщение, p) - (14,51), (16,53), (18,57).
Таблица 2.3 – Исходные данные
I |
0 |
1 |
2 |
3 |
4 |
Сообщение |
12 |
14 |
16 |
18 |
20 |
G |
0 |
1 |
2 |
3 |
4 |
p |
29 |
31 |
37 |
41 |
43 |
I |
5 |
6 |
7 |
8 |
9 |
Сообщение |
22 |
24 |
26 |
28 |
30 |
G |
5 |
6 |
7 |
8 |
9 |
p |
47 |
49 |
51 |
53 |
57 |
Перейдем к описанию системы. Пусть есть два абонента А и В, соединенные линией связи. А хочет передать сообщение m абоненту Б так, чтобы никто не узнал его содержание. А выбирает случайное большое простое число р и открыто передает его В. Затем А выбирает два числа сА и dA , такие, что
сАdA mod (р - 1) = 1.
Эти числа А держит в секрете и передавать не будет. В тоже выбирает два числа св dв, такие, что
св<dв mod (p - 1) = 1,
и держит их в секрете.
После этого А передает свое сообщение m, используя трехступенчатый протокол. Если m < р (m рассматривается как число), то сообщение т передается сразу , если же т р, то сообщение представляется в виде m1, m2,..., mt, где все mi < р, и затем передаются последовательно m1, m2,..., mt. При этом для кодирования каждого mi лучше выбирать случайно новые пары (cA,dA) и (cB,dB) — в противном случае надежность системы понижается. В настоящее время такой шифр, как правило, используется для передачи чисел, например, секретных ключей, значения которых меньше р. Таким образом, мы будем рассматривать только случай m < р.
Описание протокола.
Шаг 1. А вычисляет число: Х1 =mСА
modp (2.3),
Шаг 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 = 26. А выбирает р = 29,
сАdA mod (р - 1) = 1.
сА = 3, dA = 19.
Аналогично, В выбирает параметры
свdв mod (p - 1) = 1
cB = 11 и dB = 23. Переходим к протоколу Шамира.
Шаг 1. x1 = 263mod 29 =2.
Шаг 2. х2 = 211 mod 29 = 18.
ШагЗ. x3= 1819 mod 29 =288.
Шаг 4. х4 = 28823 mod 29 = 26.
Таким образом, В получил передаваемое сообщение m = 26.
Пусть B хочет передать C сообщение m = 28. B выбирает р = 31,
СBdB mod (р - 1) = 1.
СB = 13, dB = 7.
Аналогично. C выбирает параметры
Сcdc mod (p - 1) = 1
Cc = 7 и dc = 9. Переходим к протоколу Шамира.
Шаг 1. x1 = 2813mod 31 =21.
Шаг 2. х2 = 217 mod 31 = 11.
ШагЗ. x3= 117 mod 31 =13.
Шаг 4. х4 = 139 mod 31 =28.
Таким образом, C получил передаваемое сообщение m = 28.
- Пусть R хочет передать A сообщение m = 30. C выбирает р = 37,
СRdR mod (р - 1) = 1.
СR = 7 , dR = 31.
Аналогично. В выбирает параметры
СAdA mod (p - 1) = 1
CA = 17 и dA = 17. Переходим к протоколу Шамира.
Шаг 1. x1 = 307mod 37 =3.
Шаг 2. х2 = 317 mod 37 = 25.
ШагЗ. x3= 2531 mod 37 = 13.
Шаг 4. х4 = 137 mod 37 =30.
Таким образом, A получил передаваемое сообщение m = 30.
Задача 3. Шифрование по алгоритму Эль - Гамаля
По таблице 3, выбрать сообщение m и секретный ключ x и провести шифрование по методу Эль-Гамаля для пяти абонентов. Вариант задания определяется последними цифрами номера студенческого билета. По номеру i (предпоследняя цифра) студент выбирает сообщение для зашифровывания, по j (последняя цифра) – требуемые для реализации этого алгоритма секретный ключ x. Исходные данные для других четырех секретных ключей x выбираются циклически по процедуре (i+1) и (j+1).
I |
0 |
1 |
2 |
3 |
4 |
Сообщение |
5 |
7 |
9 |
11 |
13 |
G |
0 |
1 |
2 |
3 |
4 |
X |
29 |
11 |
13 |
7 |
19 |
I |
5 |
6 |
7 |
8 |
9 |
Сообщение |
3 |
15 |
11 |
15 |
13 |
G |
5 |
6 |
7 |
8 |
9 |
X |
31 |
37 |
43 |
47 |
51 |
Пусть имеются абоненты А, В, С, D, E которые хотят передавать друг другу зашифрованные сообщения, не имея никаких защищенных каналов связи. Шифр Эль – Гамаля решает эту задачу, используя, в отличие от шифра Шамира, только одну пересылку сообщения. Фактически здесь используется схема Диффи – Хеллмана, чтобы сформировать общий секретный ключ для двух абонентов, передающих друг другу сообщение, и затем сообщение шифруется путем умножения его на этот ключ. Для каждого следующего сообщения секретный ключ вычисляется заново.
Для всей группы абонентов выбираются некоторое большое простое число р и число g, такие, что различные степени g суть различные числа по модулю р. Числа р и g передаются абонентам в открытом виде (они могут использоваться всеми абонентами сети).
Нам необходимо выбрать числа p и g так, чтобы они отвечали следующим требованиям:
gq mod p
где p=2q+1.
Возьмем p=61 и g=11.
2q+1=71 q=35
Проверим соотношение:
735 mod 61= 60
Затем каждый абонент группы выбирает свое секретное число ci:
(см. таблицу 5.1), и вычисляет соответствующее ему открытое число di:
Т а б л и ц а 5.1 – Ключи пользователей в системе Эль – Гамаля
Абонент |
Секретный ключ |
Открытый ключ |
A |
43 |
50 |
B |
47 |
50 |
C |
51 |
50 |
D |
29 |
11 |
E |
11 |
50 |

- Контрольная работа по "Информатике"
- Контрольная работа по "Информатике"
- Контрольная работа по "Информатике"
- Контрольная работа по "Информатике"
- Контрольная работа по "Информатике"
- Контрольная работа по "Информатике"
- Контрольная работа по "Информатике"
- Контрольная работа по "Информатике"
- Контрольная работа по "Информатике"
- Контрольная работа по "Информатике"
- Контрольная работа по "Информатике"
- Контрольная работа по "Информатике"
- Контрольная работа по "Информатике"
- Контрольная работа по "Информатике"