Передача дискретных сообщений
Система с открытым ключом Диффи-Хелмана. Шифрование по алгоритму Шамира. Шифрование по алгоритму Эль-Гамаля. Защита информации без использования секретных ключей, передаваемых по защищенным каналам. Формирование общего секретного ключа для двух абонентов.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 05.05.2012 |
Размер файла | 305,9 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Задание 1. Несимметричное шифрование - дешифрование
Зашифровать информацию по методу RSA для последующей передачи. Вариант задания определяется последними цифрами номера студенческого билета. По номеру i (предпоследняя цифра) студент выбирает сообщение для зашифровывания, по j - требуемые для реализации этого алгоритма числа р и q.
Исходные данные:
I |
4 |
|
Сообщение |
Плюс |
|
G |
2 |
|
p q |
3.11 |
Методические указания к решению задания 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 и q=11.
2)Вычислим открытую компоненту ключа: n= 3*11=33.
3) Определим функцию Эйлера: (p-1)*(q-1)=20. Следовательно, e будет равно, например, 3: (e=3).
4) Выберем число d по следующей формуле: (d*3) mod 20=1.Подбор подходящего числа d , которое удовлетворяло бы соотношению d *3 mod(20)=1 и d<192. Подбор подходящего числа d производится по выражению e*d=k*f(p,q)) + 1, то есть 3* d = к* 20+1. соответствующее значением будет d =7 , так как (d будет равно 7: (d =7).
Выбирается число е, которое должно взаимно простым со значением функции Эйлера и меньшим, чем f(р q.)
Возьмем e=3, тогда по ф-ле
, выполним
k=1, 3•d = 1•20 + 1, откуда d = 7
Проверим условие е * d(mod f(р q.))=1 для найденных e и d:
3•7(mod 20) = 1 (т.е условие выполняется)
Числа е и n принимаются в качестве открытого ключа, d и n используются в качестве секретного ключа.
Буквы алфавита |
А |
Б |
В |
Г |
Д |
Е |
Ж |
З |
И |
Й |
К |
Л |
М |
Н |
О |
П |
Р |
|
Номер буквы |
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 до 220: 16, 12, 31,23.
Для представления чисел в двоичном виде требуется 6 двоичных разрядов, так как в русском алфавите используются 33 буквы, поэтому исходный текст имеет вид: 010000,001100,011111,010111.
Длина блока L определяется как минимальное число из целых чисел, удовлетворяющих условию L log2(33+1); L=7
Теперь зашифруем сообщение, используя открытый ключ {3,33}
Y1 = (163) mod 33 =4;
Y2 = (123) mod 33 =12;
Y3 = (313) mod 33 =25;
Y4 = (233) mod 33 =23.
Расшифруем полученные данные, используя закрытый ключ {7,33}.
Y1 = (47) mod 33 =16;
Y2 = (127) mod 33 =12;
Y3 = (257) mod 33 =31;
Y4 = (237) mod 33 =23.
Данные расшифрованы, сопоставим последовательность <16,12,31,23> с последовательностью букв нашего алфавита. Получили слово ПЛЮС.
Задание 2. Хеширование и цифровая подпись документов.
Используя данные задания 2, получить хеш - код m для сообщения М при помощи хеш - функции Н, взятой из рекомендаций МККТТ Х.509. Вектор инициализации Н0 выбрать равным нулю.
Вычислить цифровую подпись методом RSA под электронным документом М, используя рассчитанный хеш - код m и секретный ключ d.
Представить схему цифровой подписи с подробным описанием ее функционирования.
Хеш - функцию МККТТ Х.509 запишем следующим образом:
Hi=[(Hi-1 Mi)2] (mod n),
где i=l,n, H0 - вектор инициализации, Мi =М1,М2,М3…,Мn - -длина блока.
Все блоки делят пополам и к каждой половине прибавляют равноценное количество единиц. С преобразованными таким образом блоками производят интеграционные действия.
Необходимо получить хеш - код сообщения ПЛЮС при помощи хеш функции Х.509 с параметрами p=3, q=11.
Порядок вычисления хеш - кода:
А) получить значение модуля: n=pq= 3*11=33
Б)Представить сообщение в виде номеров букв русского алфавита в десятичном и двоичном видах:
П Л Ю С
16 12 31 23
00010000, 00001100, 00011111, 00010111
В) Разбить байт пополам, добавив в начало полубайта единицы и получить хешируемые блоки Мi:
M1 |
M2 |
M3 |
M4 |
|
11110001 |
11110000 |
11110000 |
11111100 |
|
M5 |
M6 |
M7 |
M8 |
|
11110001 |
11111111 |
11110001 |
11110111 |
Г) Выполнить интеративные шаги:
Первая интерация
М1 |
11110001 |
|
Н0=0 |
00000000 |
|
Н0 М1 |
11110001=24110 |
|
[(H0 M1)2] (mod 221) |
241 mod 33 = 10 |
|
Н1 |
1010=00001010 |
Вторая интерация
М2 |
11110000 |
|
Н1 |
00001010 |
|
Н1 М2 |
11111010=25010 |
|
[(H1 M2)2] (mod 221) |
250 mod 33 = 19 |
|
Н2 |
1910=00010011 |
Третья интерация
М3 |
11110000 |
|
Н2 |
00010011 |
|
Н2 М3 |
11100011=22710 |
|
[(H2 M3)2] (mod 221) |
227mod 33 = 29 |
|
Н3 |
2910=00011101 |
Четвертая интерация
М4 |
11111100 |
|
Н3 |
00011101 |
|
Н3 М4 |
11100001=22510 |
|
[(H3 M4)2](mod 221) |
225 mod 33 = 27 |
|
Н4 |
2710=00011011 |
Пятая интерация
М5 |
11110001 |
|
Н4 |
00011011 |
|
Н4 М5 |
11101010=10 |
|
[(H4 M5)2](mod 221) |
234 mod 33 = 3 |
|
Н5 |
310=00000011 |
Шестая интерация
М6 |
11111111 |
|
Н5 |
00000011 |
|
Н5 М6 |
11111100=25210 |
|
[(H5 M6)2](mod 221) |
252 mod 33 =21 |
|
Н6 |
2110=00010101 |
Седьмая интерация
М7 |
11110001 |
|
Н6 |
00010101 |
|
Н6 М7 |
11100100= 22810 |
|
[(H6 M7)2](mod 221) |
228mod 33 =30 |
|
Н7 |
3010=00011110 |
Восьмая интерация
М8 |
11110111 |
|
Н7 |
00011110 |
|
Н7 М8 |
11101001= 23310 |
|
[(H7 M8)2](mod 221) |
233 mod 33= 2 |
|
Н8 |
210=00000010 |
Таким образом, исходное сообщение ПЛЮС имеет хеш - код m=2.
Для вычисления цифровой подписи используем следующую формулу:
S=md (mod n) = 27 mod 33 = 29
Пара (M, S) передается получателю как электронный документ М, подписанный цифровой подписью S, причем подпись S сформирована обладателем секретного ключа d.
Получив пару (M, S), получатель вычисляет хеш - код сообщения М двумя способами:
1) Восстанавливает хеш - код m', применяя криптографическое преобразование подписи S с использованием открытого ключа e:
m'=Se (mod n) =293 mod 33 = 2
2) Находит результат хеширования принятого сообщения с помощью той же хеш - функции: m=H(M) =2.
При равенстве вычисленных значений m' и m получатель признает пару (M, S) подлинной.
Задание №2.1
2.1 Система с открытым ключом Диффи-Хелмана
Задание 1. Система с открытым ключом Диффи-Хелмана
Сгенерировать секретные ключи для пяти абонентов по методу Диффи-Хеллмана (DH). Для этого взять значение секретного ключа x из таблицы 1. Соответствующие значения открытого ключа вычислить и результаты внести в таблицу. Вариант задания определяется по номеру i (предпоследняя цифра) и j (последняя цифра зачетной книжки) - требуемая для реализации этого алгоритма число x . Число j - начальный номер для второго абонента при выборе числа x. Для выбора x для связи с пятью абонентами необходимо по циклической процедуре выбрать x по последней цифре зачетки. Рекомендуемые значения p = 30803, g = 2.
Таблица 1. Исходные данные:
I |
1 |
2 |
3 |
4 |
5 |
|
x |
19 |
31 |
17 |
29 |
37 |
Пусть строится система связи для абонентов А,В,С,... .У каждого абонента есть своя секретная и открытая информация. Для организации этой системы выбирается большое простое число р и некоторое число g, 1 < g < р -- 1, такое, что все числа из множества {1, 2, • • • ,р -- 1} могут быть представлены как различные степени g mod p (известны различные подходы для нахождения таких чисел g, один из них будет представлен ниже). Числа р и g известны всем абонентам.
Абоненты выбирают большие числа Xa,Xb,Xc,которые хранят в секрете (обычно такой выбор рекомендуется проводить случайно, используя датчики случайных чисел). Каждый абонент вычисляет соответствующее число Y, которое открыто, передается другим абонентам:
YА = gXa mod р,
YB = gXb mod р,
Yс = gXc mod р.
В результате получаем следующую таблицу.
Таблица 2. Ключи пользователей в системе Диффи-Хеллмана
Абонент |
Секретный ключ |
Открытый ключ |
|
ABCDE |
XAXBXCXDXE |
YAYBYCYDYE |
1.2 Число Р выбирается таким,чтобы выполнялось равенство:
P=2q+1 (где q-так же простое число)
и были справедливы неравенства
1<g<р-1 и gq mod р 1.
По варианту g=3.Если возьмем q = 91, тогда р=2•91+1 = 183
391mod183 =3 1. Р = 183
Решение:
Р |
G |
ХА |
ХВ |
ХС |
ХД |
ХЕ |
|
183 |
3 |
19 |
31 |
17 |
29 |
37 |
Для 5 абонентов Y:
Ya = gXa mod р = 319 mod 183 = 102
Yb = gXb mod р = 331 mod 183 = 3
Yc = gXc mod р = 317 mod 183 = 174
Yd = gXd mod р = 329 mod 183 = 102
Ye = gXe mod р = 337 mod 183 = 174
1) Допустим, абонент А решил организовать сеанс связи с В, при этом обоим абонентам доступна открытая информация из табл. 2. Абонент А сообщает В по открытому каналу, что он хочет передать ему сообщение. Затем абонент А вычисляет величину:
ZAB = (YB)XAmod p = (3)19mod 183 = 102
(никто другой кроме А этого сделать не может, так как число Хa секретно). В свою очередь, абонент В вычисляет число
ZBA = (YA)XBmod p = (102)31mod 183 = 102.
Утверждение Zab = Zba - доказательство. Действительно,
Zab = (Yb)Xa mod p = (gXB)ХA mod p=gХAХBmod p=(YA)XB mod p = ZBA.
Отметим главные свойства системы:
1) абоненты А и В получили одно и то же число Z = Zab=Zва, которое не передавалось по открытой линии связи;
2) Ева не знает секретных чисел Ха,Хв,..., поэтому не может вычислить число Zab (вообще говоря, она могла бы попытаться найти секретное число ХA по YA, однако при больших р это практически невозможно (требуются миллионы лет)).
Абоненты А и В могут использовать Zab в качестве секретного ключа для шифрования и дешифрования данных. Таким же образом любая пара абонентов может вычислить секретный ключ, известный только им.
2) абонент В решил организовать сеанс связи с С:
Абонент В сообщает С по открытому каналу, что он хочет передать ему сообщение. Затем абонент В вычисляет величину:
ZBС = (YС)Xвmod p = (174)31mod 183 = 174
Абонент С вычисляет число:
ZСВ = (YВ)Xсmod p = (3)17mod 183 = 174.
ZBС= ZСВ.
3) абонент С решил организовать сеанс связи с D:
Абонент C сообщает D по открытому каналу, что он хочет передать ему сообщение. Затем абонент C вычисляет величину:
ZСD = (YD)Xcmod p = (102)17mod 183 = 27
Абонент D вычисляет число:
ZDC = (YC)Xdmod p = (174)29mod 183 = 27.
ZСD= ZDC.
4) абонент D решил организовать сеанс связи с E:
Абонент D сообщает E по открытому каналу, что он хочет передать ему сообщение. Затем абонент D вычисляет величину:
ZDE = (YE)Xdmod p = (174)29mod 183 = 27
Абонент E вычисляет число:
ZED = (YD)Xemod p = (102)37mod 183 = 27.
ZDE= ZED.
5) абонент E решил организовать сеанс связи с A:
Абонент E сообщает A по открытому каналу, что он хочет передать ему сообщение. Затем абонент E вычисляет величину:
ZEA = (YA)Xemod p = (102)37mod 183 = 27
Абонент A вычисляет число:
ZAE = (YE)Xamod p = (174)19mod 183 = 27.
ZEA= ZAE.
Задание 2.2
2.2 Шифрование по алгоритму Шамира
2Зашифровать сообщение по алгоритму Шамира для трех абонентов, взяв значение сообщения m и значение p из таблицы №3. По номеру i (предпоследняя цифра) студент выбирает сообщение для зашифровывания, по j - требуемые для реализации этого алгоритма число р. Выбор данных для других абонентов произвести циклически согласно процедуре (I + 1) и (g + 1).
Таблица №3 - исходные данные
I |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
|
Сообщение |
12 |
14 |
16 |
18 |
20 |
22 |
24 |
26 |
28 |
30 |
|
G |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
|
p |
29 |
31 |
37 |
41 |
43 |
47 |
49 |
51 |
53 |
57 |
Выбираем для трех абонентов (сообщение, p) - (20,37), (22,41), (24,43).
Пусть есть два абонента А и В, соединенные линией связи. А хочет передать сообщение m абоненту B так, чтобы никто не узнал его содержание. А выбирает случайное большое простое число р и открыто передает его В. Затем А выбирает два числа сА и dA , такие, что
сАdA mod (р - 1) = 1.
Эти числа А держит в секрете и передавать не будет. В тоже выбирает два числа св dв, такие, что
свdв mod (p - 1) = 1,
и держит их в секрете.
После этого А передает свое сообщение m, используя трехступенчатый протокол. Если m < р (m рассматривается как число), то сообщение m передается сразу , если же m р, то сообщение представляется в виде m1, m2,..., mi, где все mi < р, и затем передаются последовательно m1, m2,..., mi. При этом для кодирования каждого mi лучше выбирать случайно новые пары (cA,dA) и (cB,dB) -- в противном случае надежность системы понижается. В настоящее время такой шифр, как правило, используется для передачи чисел, например, секретных ключей, значения которых меньше р. Таким образом, мы будем рассматривать только случай m < р.
1) А хочет передать В сообщение m = 20. А выбирает р = 37
2) , сА = 5 (gcd(5,36) = 1) и затем вычисляем dA с помощью обобщенного алгоритма Евклида..
Обобщенный алгоритм Евклида
ВХОД: Положительные целые числа a, b, .
ВЫХОД: gcd(a,b), x, y, удовлетворяющие (1).
1. .
2. WHILE u10 DO
3. u1 div v1;
4. T( u1 mod v2, u2-qu2, u3-qv3);
5. UV, VT.
6. RETURN U= (gcd(a,b), x, y).
Вычислим 5-1 mod 36.
36 0
5 1
1 -7 q=7 ОТВЕТ
0 36 q=5
Получаем d= -7 и d mod 36 = 36-7=29, т.е. 5-1 mod 36 = 29. Проверим результат: 5*29 = 145 mod 36= 1. сА = 5 , dA = 29
В выбирает параметры cB = 13 (взаимно простое с 36) и затем вычисляет dВ ..
Вычислим 13-1 mod 36.
36 0
13 1
10 -2 q=2
3 3 q=1
1 -11 q=3 ОТВЕТ
0 36 q=3.
Получаем d= -11 и d mod 36 = 36-11=25, т.е. 13-1 mod 36 = 25. Проверим результат: 13*25 = 325 mod 36= 1. cB = 13 , dB = 25
Переходим к протоколу Шамира.
Шаг 1. А вычисляет число
Х1 = mСА modp
Х1 = 205 mod 37 = 18
где m -- исходное сообщение, и пересылает х1 к В.
Шаг 2. В, получив х1, вычисляет число
X2 = х1CB mod p
Х2 = 1813 mod 37 = 32
и передает х2 к А.
Шаг 3. А вычисляет число
X3 = х2dA mod p
Х3 = 3229 mod 37 = 2
и передает его В.
Шаг 4. В, получив х3, вычисляет число
X4 = x3dB mod p.
Х4 = 225 mod 37 = 20 Таким образом, В получил передаваемое сообщение m =20.
2) А хочет передать В сообщение m = 22. А выбирает р = 41, сА = 11 (gcd(11,40) = 1) и затем вычисляем dA с помощью обобщенного алгоритма Евклида..
Обобщенный алгоритм Евклида
ВХОД: Положительные целые числа a, b, .
ВЫХОД: gcd(a,b), x, y, удовлетворяющие (1).
1. .
2. WHILE u10 DO
3. u1 div v1;
4. T( u1 mod v2, u2-qu2, u3-qv3);
5. UV, VT.
6. RETURN U= (gcd(a,b), x, y).
Вычислим 11-1 mod 40.
40 0
11 1
7 -3 q=3
4 4 q=1
3 - 7 q=1 ОТВЕТ
1 11 q=1
0 -40 q=3
Получаем d= 11 и d mod p-1 = 11mod40 = 11, т.е. 11-1 mod 40 = 11. Проверим результат: 11*11 = 121 mod 40= 1.
сА = 11 , dA = 11
В выбирает параметры cB = 17 (взаимно простое с 40) и затем вычисляет dВ Вычислим 17-1 mod 40.
40 0
17 1
6 -2 q=2
5 5 q=2 ОТВЕТ
1 -7 q=1
0 40 q=5
Получаем d= -7 и d mod p-1 = 40-7 =33, т.е. 17-1 mod 40 = 33. Проверим результат: 17*33 = 561 mod 40= 1. cB = 17, dB = 33
Переходим к протоколу Шамира.
Шаг 1. А вычисляет число
Х1 = mСА modp
Х1 = 2211 mod 41 = 7
где m -- исходное сообщение, и пересылает х1 к В.
Шаг 2. В, получив х1, вычисляет число
X2 = х1CB mod p
Х2 = 717 mod 41 = 30
и передает х2 к А.
Шаг 3. А вычисляет число
X3 = х2dA mod p
Х3 = 3011 mod 41 = 24
и передает его В.
Шаг 4. В, получив х3, вычисляет число
X4 = x3dB mod p.
Х4 = 2433 mod 41 = 22. Таким образом, В получил передаваемое сообщение m = 22.
3) А хочет передать В сообщение m = 24. А выбирает р = 43, сА = 13 (gcd(13,42) = 1) и затем вычисляем dA с помощью обобщенного алгоритма Евклида..
Обобщенный алгоритм Евклида
ВХОД: Положительные целые числа a, b, .
ВЫХОД: gcd(a,b), x, y, удовлетворяющие (1).
1. .
2. WHILE u10 DO
3. u1 div v1;
4. T( u1 mod v2, u2-qu2, u3-qv3);
5. UV, VT.
6. RETURN U= (gcd(a,b), x, y).
Вычислим 13-1 mod 42.
42 0
13 1
3 -3 q=3 ОТВЕТ
1 13 q=4
0 -42 q=3
Получаем d= 13 и d mod р-1 = 13mod42 =13, т.е. 13-1 mod 42 = 13. Проверим результат: 13*13 = 169 mod 42= 1. сА = 13 , dA = 13
В выбирает параметры cB = 17 (взаимно простое с 30) и затем вычисляет dВ
Вычислим 17-1 mod 42.
42 0
17 1
8 -2 q=2
1 5 q=2 ОТВЕТ
0 -42 q=8
Получаем d= 5 и d mod р-1 = 5mod42 =5, т.е. 17-1 mod 42 = 5. Проверим результат: 17*5 = 85 mod 42= 1. cB = 17, dB = 5
Переходим к протоколу Шамира.
Шаг 1. А вычисляет число
Х1 = mСА modp
Х1 = 2413 mod 43 = 23
где m -- исходное сообщение, и пересылает х1 к В.
Шаг 2. В, получив х1, вычисляет число
X2 = х1CB mod p
Х2 = 2317 mod 43 = 14
и передает х2 к А.
Шаг 3. А вычисляет число
X3 = х2dA mod p
Х3 = 1413 mod 43 = 25
и передает его В.
Шаг 4. В, получив х3, вычисляет число
ключ шифрование алгоритм открытый
X4 = x3dB mod p.
Х4 = 255 mod 43 = 24. Таким образом, В получил передаваемое сообщение m = 24.
2.3 Шифрование по алгоритму Эль-Гамаля
По таблице №4 выбрать сообщение m и секретный ключ x и провести шифрование по методу Эль-Гамаля для пяти абонентов. Вариант задания определяется последними цифрами номера студенческого билета. По номеру i (предпоследняя цифра) студент выбирает сообщение для зашифровывания, по j (последняя цифра) - требуемые для реализации этого алгоритма секретный ключ x. Исходные данные для других четырех секретных ключей x выбираются циклически по процедуре (i+1) и (j+1). Результаты заносятся в таблицу по схеме «абонент - секретный ключ - открытый ключ». Аналогично таблице №5. Рекомендуемые значения для p = 30803, g = 2.
Таблица №4 Исходные данные
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 |
Номер зачетной книжки №42. Выбираем для пяти абонентов- (сообщение, x) - (13,13), (3,7), (15,19), (11,31), (15,37).p=183, g =11
Для всей группы абонентов выбираются некоторое большое простое число р и число g, такие, что различные степени g суть различные числа по модулю р. Числа р и g передаются абонентам в открытом виде (они могут использоваться всеми абонентами сети). Затем каждый абонент группы выбирает свое секретное число ci, 1 < Ci < р - 1, и вычисляет соответствующее ему открытое число di,
di=gcimodp
в результате получаем таблицу 5.
Таблица 5. Ключи пользователей в системе Эль-Гамаля
Абонент |
Секретный ключ |
Открытый ключ |
|
ABCDE |
61718191101 |
1150115011 |
1) Передадим сообщение m - 13 от А к В. Возьмем р = 183, g = 11. Пусть абонент A выбрал для себя секретное число сa = 61 и вычислил:
Da =gCamod p = 1161 mod 183 = 11.
Абонент А выбирает случайно число k, например k = 7, и вычисляет:
г = gk mod p = 117 mod 183 =50,
е = m dak mod p = 13 117 mod 183 = 101
Теперь A посылает к В зашифрованное сообщение в виде пары чисел (r, е).
m' = е rp-1-camod р = 101 50183-1-61 mod 183= 143.
Мы видим, что A смог расшифровать переданное сообщение.
2) Передадим сообщение m - 3 от В к C. Возьмем р = 183, g = 11. Пусть абонент B выбрал для себя секретное число св =71 и вычислил:
Dв =gCвmod p = 1171 mod 183 = 50.
Абонент B выбирает случайно число k, например k = 4, и вычисляет:
г = gk mod p = 114 mod 183 =1,
е = m dвk mod p = 3 504 mod 183 = 3.
Теперь B посылает к C зашифрованное сообщение в виде пары чисел (r, е).
m' = е rp-1-cвmod р = 3 1183-1-71 mod 183= 3.
m/=m. Мы видим, что B смог расшифровать переданное сообщение.
3) Передадим сообщение m - 15 от C к D. Возьмем р = 183, g = 11. Пусть абонент C выбрал для себя секретное число сс =81 и вычислил:
Dc =gCcmod p = 1181 mod 183 = 11.
Абонент C выбирает случайно число k, например k = 16, и вычисляет:
г = gk mod p = 1116 mod 183 =1,
е = m dck mod p = 15 1116 mod 183 = 15.
Теперь C посылает к D зашифрованное сообщение в виде пары чисел (r, е).
m' = е rp-1-ccmod р = 15 1183-1-81 mod 183= 15.
m/=m.
Мы видим, что C смог расшифровать переданное сообщение.
4) Передадим сообщение m - 11 от D к E. Возьмем р = 183, g = 11. Пусть абонент D выбрал для себя секретное число сd =91 и вычислил:
Dd =gCdmod p = 1191 mod 183 = 50.
Абонент C выбирает случайно число k, например k = 16, и вычисляет:
г = gk mod p = 1116 mod 183 =1,
е = m ddk mod p = 11 5016 mod 183 = 11.
Теперь C посылает к A зашифрованное сообщение в виде пары чисел (r, е).
A, получив (r,е), вычисляет
m' = е rp-1-cAmod р = 11 1183-1-91 mod 183= 11.
m/=m. Мы видим, что A смог расшифровать переданное сообщение.
5) Передадим сообщение m - 15 от E к A. Возьмем р = 183, g = 11. Пусть абонент E выбрал для себя секретное число сс =101 и вычислил:
De =gCemod p = 11101 mod 183 = 11.
Абонент C выбирает случайно число k, например k = 16, и вычисляет:
г = gk mod p = 1116 mod 183 =1,
е = m dek mod p = 15 1116 mod 183 = 15.
Теперь C посылает к A зашифрованное сообщение в виде пары чисел (r, е).
A, получив (r,е), вычисляет
m' = е rp-1-cemod р = 15 1183-1-101 mod 183= 15.
m/=m. Мы видим, что A смог расшифровать переданное сообщение.
Утверждение (свойства шифра Эль-Гамаля),
1) Абонент В получил сообщение, т.е. m/=m;
2) противник, зная р, g, dB, r и е, не может вычислить m.
Доказательство:
m' = m dBk rp-1-CB mod p.
Теперь вместо r подставим (3.2), а вместо dB - (3.1):
m' = m (gCB)k (gk)p-1-cB mod p = m gCBk=k(p-1)-kcBmod p =mgk(p-1)mod p
По теореме Ферма
gk(p-1)mod p=1kmod p = 1
и таким образом, мы получаем первую часть утверждения.
Для доказательства второй части заметим, что противник не может вычислить k в равенстве (3.2), так как это задача дискретного логарифмирования. Следовательно, он не может' вычислить m в равенстве (3.3), так как m было умножено на неизвестное ему чисто Противник также не может воспроизвести действия законного получателя сообщения (абонента В), так как ему не известно секретное число св (вычисление св на основании - также задача дискретного логарифмирования).
Ясно, что по аналогичной схеме могут передавать сообщения все абоненты в сети. Заметим, что любой абонент, знающий открытый ключ абонента В, может посылать ему сообщения, зашифрованные с помощью открытого ключа dB. Но только абонент В, и никто другой, может расшифровать эти сообщения, используя известный только ему секретный ключ сВ. Отметим также, что объем шифра в два раза превышает объем сообщения, но требуется только одна передача данных (при условии, что таблица с открытыми ключами заранее известна всем абонентам).
Заключение
Таким образом, мы закончили выполнение заданий данной работы. Научились шифровать информацию по методу RSA для заданной передачи. Так же получили хеш - код m для сообщения М при помощи хеш - функции Н, взятой из рекомендаций МККТТ Х.509.
Первая система с открытым ключом -- система Диффи-Хеллмана.
Эта криптосистема была открыта в середине 70-х годов американскими учеными Диффи (Whitfield Diffie) и Хеллманом (Martin Hell-man) и привела к настоящей революции в криптографии и ее практических применениях. Это первая система, которая позволяла защищать информацию без использования секретных ключей, передаваемых по защищенным каналам. Для того чтобы продемонстрировать одну из схем применения таких систем, рассмотрим сеть связи с N пользователями, где N -- большое число. Пусть мы хотим организовать секретную связь для каждой пары из них. Если мы будем использовать обычную систему распределения секретных ключей, то каждая пара абонентов должна быть снабжена своим секретным ключом, т.е. всего потребуется ключей.
Если абонентов 100, то требуется 5000 ключей, если же абонентов 104 , то ключей должно быть 5•107. Мы видим, что при большом числе абонентов система снабжения их секретными ключами становится очень громоздкой и дорогостоящей.
Диффи и Хеллман решили эту проблему за счет открытого распространения и вычисления ключей.
Шифр, предложенный Шамиром {Adi Shamir), был первым, позволяющим организовать обмен секретными сообщениями по открытой линии связи для лиц, которые не имеют никаких защищенных каналов и секретных ключей и, возможно, никогда не видели друг друга. (Напомним, что система Диффи-Хеллмана позволяет сформировать только секретное слово, а передача сообщения потребует использования некоторого шифра, где это слово будет использоваться как ключ.)
Пусть имеются абоненты А, В, С, ..., которые хотят передавать друг другу зашифрованные сообщения, не имея никаких защищенных каналов связи. Шифр, предложенный Эль-Гамалем (Tahcr ElGamal), который решает эту задачу, используя, в отличие от шифра Шамира, только одну пересылку сообщения. Фактически здесь используется схема Диффи-Хеллмана, чтобы сформировать общий секретный ключ для двух абонентов, передающих друг другу сообщение, и затем сообщение шифруется путем умножения его на этот ключ. Для каждого следующего сообщения секретный ключ вычисляется заново.
Список литературы
1. Романец Ю. В. Защита информации в компьютерных системах и сетях. /Под ред. В.Ф. Шаньгина. - М: Радио и связь 1999
2. Петраков А.В. Основы практической защиты информации. 2-е издание Учебн. Пособие. - М: Радио и связь 200
3. Защита информации в телекоммуникационных системах. Программа, метод. указ. и контр. Задания АИЭС 2006
Размещено на Allbest.ru
Подобные документы
Формирование ключей для шифрования сообщения. Описание алгоритма RSA: шифрование и дешифрование. Понятие и история изобретения криптосистемы с открытым ключом. Свойства односторонней функции и сложность раскрытия шифра. Сущность цифровой подписи.
лабораторная работа [326,0 K], добавлен 04.11.2013Изучение основных методов и алгоритмов криптографии с открытым ключом и их практического использования. Анализ и практическое применение алгоритмов криптографии с открытым ключом: шифрование данных, конфиденциальность, генерация и управление ключами.
дипломная работа [1,2 M], добавлен 20.06.2011Обмен информации, защищенной от фальсификаций и незаконных пользователей. Распределение секретных ключей с помощью системы с открытым ключом. Разработка модулей системы генерации ключей и обмена конфиденциальной информацией для группы пользователей.
курсовая работа [2,0 M], добавлен 17.11.2011Симметричные и асиметричные методы шифрования. Шифрование с помощью датчика псевдослучайных чисел. Алгоритм шифрования DES. Российский стандарт цифровой подписи. Описание шифрования исходного сообщения асимметричным методом с открытым ключом RSA.
курсовая работа [101,1 K], добавлен 09.03.2009История возникновения криптографии. Открытый ключ криптосистемы. Шифрование секреторного ключа. Математические методы обеспечения конфиденциальности и аутентичности информации. Преобразование текста на основе секретного алгоритма в шифрованный текст.
презентация [260,8 K], добавлен 11.10.2015Модифицированный шифр Цезаря. Особенности алгоритмов Энигма и Виженера. Алгоритм рекурсивного вычисления наибольшего общего делителя. Генератор псевдослучайной последовательности. Шифрование мультипликативным ключом. Вычисление первообразного корня.
лабораторная работа [1,0 M], добавлен 04.11.2014Статистический анализ текстов, созданных программой симметричного шифрования. Реализация симметричного криптоалгоритма. Основные шаги в использовании криптосистемы PGP. Генерация ключей, шифрование и расшифровка сообщений. Защита от сетевых атак.
лабораторная работа [1,7 M], добавлен 06.07.2009Основные способы криптографии, история ее развития. Принцип шифрования заменой символов, полиалфавитной подстановкой и методом перестановки. Симметричный алгоритм шифрования (DES). Открытое распределение ключей. Шифры Ривеста-Шамира-Алдемана и Эль Гамаля.
реферат [39,3 K], добавлен 22.11.2013Комбинированное использование симметричного и асимметричного шифрования. Зависимость между открытым и закрытым ключами. Основные недостатки симметричного шифрования. Схема двухстороннего конфиденциального обмена. Концепция шифрования по алгоритму DES.
презентация [1,4 M], добавлен 20.12.2012Генератор псевдослучайной последовательности в системах защиты информации. Шифрование мультимедийных данных. Вероятностное шифрование и алгоритм Эль-Гамаля. Основные понятия теории конечных полей. Алгоритм нахождения циклического избыточного кода.
дипломная работа [1,7 M], добавлен 19.07.2013