Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Протоколы информационного обмена

.pdf
Скачиваний:
102
Добавлен:
10.05.2014
Размер:
1.77 Mб
Скачать

Переводит числовое значение открытого текста M1 в строковое

значение. Для этого нужно воспользоваться формой «Перевод числа в строку» специализированного вычислителя. В поле «Число» указать значение 1953550 и нажать кнопку «Перевести». Результат появится в правой части экрана:

1953550 => оа

Строковое представление M1 = «oa» является бессмысленным

набором символов.

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

Повторяет процедуру получения исходного текста с применением открытого ключа 3-го абонента (злоумышленника) в процессе вычислений.

Снимает подпись с криптограммы C23 с использованием открытого ключа 3-го абонента и получает криптограмму:

C22 =C23e3 modn3

C22 = 1149353 953 mod 2566873 C22 = 1340734

Расшифровывает криптограмму C22 с применением своего секретного ключа d2 и получает числовое представление открытого текста:

M 2 =C22(d2 ) mod n2

M 2 = 1340734 1428929 mod 2199473

M 2 = 201119

Переводит числовое значение открытого текста M 2 в строковое значение:

201119 => РИС

Строковое представление M 2 является осмысленным словом.

Следовательно, именно 3-й абонент (злоумышленник) является автором сообщения, так как именно его открытый ключ использовался в процессе вычислений.

Очевидно, что полученный вывод относительно авторства исходного сообщения «РИС» является ошибочным. Таким образом,

99

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

РАБОТА 6 Типовой пример протокола Диффи-Хеллмана

на эллиптической кривой с атакой «посередине»

Участники информационного обмена

Абонент А

Абонент B

Злоумышленник C

Протокол

Участники информационного обмена используют общую эллиптическую кривую E: y 2 = x3 + x + 4 , определенную над полем

Галуа GF(23). Ранг кривой N = 29. В качестве общей точки выбрана точка Q(11, 9).

1.Абонент А

Выбирает секретное значение ka = 17.

Вычисляет значение KA = kaQ = 17*(11,9) = (15,17).

Посылает точку KA абоненту B.

2.Абонент B

Выбирает секретное значение kb = 13.

Вычисляет значение KB = kbQ = 13*(11,9) = (22,5).

Посылает точку KB абоненту A.

3.Злоумышленник C

Выбирает секретное значение kc = 5.

Перехватывает и блокирует дальнейшее продвижение значений

KA и KB.

Вычисляет общий с абонентом A секрет – точку KAC(xac, yac):

KAC(xac, yac) = kcKA = 5*(15,17) = (9,12)

xac = 9

Вычисляет общий с абонентом B секрет – точку KBC(xbc, ybc):

KBC(xbc, ybc) = kcKB = 5*(22,5) = (14,18) xbc = 14

Вычисляет значение KC = kcQ = 5*(11,9) = (18,14).

Посылает точку KC абонентам A и B.

4.Абонент А

100

Вычисляет общий со злоумышленником C секрет – точку

KAC(xac, yac):

KAC(xac, yac) = kaKC=17*(18,14) = (9,12)

xac = 9

5.Абонент B

Вычисляет общий со злоумышленником C секрет – точку

KBC(xbc, ybc):

KBC(xbc, ybc) = kbKC= 13*(18,14) = (14,18) xbc = 14

6.Абонент А

Выбирает точку Pm(1, 12) на эллиптической кривой, соответствующую некоторому сообщению m.

Зашифровывает точку Pm и получает криптограмму:

СAC = xacPm = 9*(1,12) = (15,6)

Посылает криптограмму CAC абоненту B.

7.Злоумышленник C

Перехватывает и блокирует дальнейшее прохождение криптограммы CAC.

Вычисляет число xac* , такое, что

xac xac* 1mod N

9 xac* 1mod 29

xac* =13

Дешифрует криптограмму CAC и узнает точку Pm, соответствующую секретному сообщению m:

Pm = xac* CCA =13 (15,6) = (1,12)

Перешифровывает точку Pm на секретном ключе xbc:

СBC=xbcPm= 14*(1,12) = (13,11)

Отправляет криптограмму абоненту B.

8.Абонент B

Вычисляет число xbc* , такое, что

xbc xbc* 1mod N

14 xbc* 1mod 29

x ac* = 27

Расшифровывает криптограмму CBC и узнает точку Pm, соответствующую секретному сообщению m:

101

Pm = xbc* CBC = 27 (13,11) = (1,12)

РАБОТА 7 Типовой пример протокола Месси-Омуры

Участники информационного обмена

Абонент А

Абонент B

Протокол

Участники информационного обмена используют общую эллиптическую кривую E: y2 = x3 + x +12 , определенную над конечным полем F331 . Коэффициенты эллиптической кривой: a =1 , b =12 . Модуль p = 331. Ранг кривой N = 361 считается автоматически.

1.Абонент А

Раскладывает на множители значение ранга кривой.

Для этого можно воспользоваться формой «Разложение на множители» специализированного вычислителя для эллиптических кривых. Нужно ввести значение ранга кривой 361 в поле «Число» и нажать кнопку «Разложить на множители». Результат появится в правой части экрана:

N = 361 =19 19

Выбирает секретное значение ea = 51 по принципу НОД(e, N) =1

Вычисляет второе секретное значение da из уравнения ea da + Ny =1

Для этого можно воспользоваться формой «Решение уравнения ax +by =1 » специализированного вычислителя. Нужно ввести

значение числа ea = 51 в поле «a:» и числа N = 361 в поле «b:».

Нажать кнопку «Найти решение». Результат появится в правой части экрана:

a = 51; b = 361; x = 269; y = −38 .

Значение x = 269 и есть искомое значение: da = 269 .

102

2.Абонент B

Вычисляет секретные значения e b и db аналогично абоненту А. Выбирает eb =118 .

Вычисляет значение db из уравнения eb db + Ny =1 :

db = 309 .

3.Абонент A

Выбирает в качестве сообщения M , которое будет отослано абоненту В, букву «G»:

M = «G»

Связывает выбранное сообщение с точкой, принадлежащей эллиптической кривой.

Для этого нужно воспользоваться формой «Перевод строки в числовую форму» специализированного вычислителя для эллиптических кривых. Нужно ввести букву «G» в поле «Строка:» и нажать кнопку «В точки». Результат появится в правой части экрана:

G => (59, 237)

Сообщению M = «G» соответствует точка Pm (59, 237) на эллип-

тической кривой E .

Вычисляет значение точки Q1 = ea Pm .

Для этого нужно воспользоваться формой «Математические операции с числами и точками» специализированного вычислителя для эллиптических кривых. Нужно ввести значение ea = 51 в по-

ле «x» и значение точки Pm (59, 237) в поле «y». Выбрать опера-

цию умножения «*» в выпадающем списке. После этого нажать кнопку «Вычислить». Результат появится в правой части экрана:

(59, 237) * 51 = (28, 133)

Значение точки Q1 = (28, 133).

Отсылает координаты точки Q1 абоненту В.

4.Абонент B

Вычисляет значение точки

Q2 = ebQ1 = 118*(28, 133) = (265, 168)

Отсылает координаты точки Q2 абоненту А.

5.Абонент A

Вычисляет значение точки

103

Q3 = daQ2 =269*(265, 168) = (4, 61)

Отсылает координаты точки Q3 абоненту B.

6.Абонент B

Вычисляет значение точки

Q4 = dbQ3 = 309*(4, 61) = (59, 237)

Переводит точку Q4 в открытый текст m .

Для этого нужно воспользоваться формой «Перевод точек в строку» специализированного вычислителя для эллиптических кривых. Нужно указать координаты точки (59, 237) в поле «Массив точек» и нажать кнопку «Перевести». Результат появится в правой части экрана:

(59, 237) => G

Сообщение M представляет собой букву «G».

Абонент В прочитал исходное сообщение, выбранное абонентом А.

РАБОТА 8 Типовой пример схемы электронной цифровой подписи

Генерация ключей

1.Выбор модуля эллиптической кривой

Открыть «Таблицу простых чисел», выбрать простое число.

Выбрали 1021, p = 1021.

2.Выбор эллиптической кривой

Выбрали (случайным образом) a = 1, b = 1.

Ввести данные в поля формы «Параметры эллиптической кривой» и нажать кнопку «Вывести точки кривой».

Получили список точек, принадлежащих эллиптической кривой.

3.Выбор точки P

Ранг точки q – простое число.

Выбираем любую точку. Для этого необходимо поставить курсор в поле «х» формы «Математические операции с числами и точками» и выбрать точку из имеющихся в выпадающем списке: выбранная точка будет вставлена автоматически в поля ввода формы. Выбрали точку P =(500, 587).

Выбрать оператор «rang(x)». Нажать кнопку «Вычислить»:

Ранг точки (500, 587) равен 1042.

104

1042 не является простым числом. По стандарту q – простое число. Необходимо выбрать другую точку.

Выбрали точку P =(752, 453). Нажать кнопку «Вычислить»:

Ранг точки (752, 453) равен 521.

521 – простое число.

P = (752, 453).

q= 521.

4.Выбор значения d

Выбрать случайным образом уникальное число d. Пусть d = 111.

5.Вычисление Q = dP

Воспользоваться формой «Математические операции с числами и точками», ввести координаты точки d, выбрать оператор и нажать кнопку «Вычислить»:

(752, 453) * 111 = (272, 824).

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

a= 1, b = 1

p = 1021

P= (752, 453) q = 521

Q= (272, 824)

Секретный ключ d = 111

Подпись сообщения

6.Исходное сообщение

Подпишем слово «ГОСТ». При выборе подписываемого сообщения необходимо ограничится строкой, длина которой не более 9 символов. Это обусловлено работой функции хеширования:

M = «ГОСТ»

Использовать форму «Перевод строки в числовую форму». Ввести сообщение и нажать кнопку «В число»:

ГОСТ => 21201705

Получили числовую форму сообщения:

M = 21201705

7.Определение хэш-значения от сообщения

105

Вычислить хэш-код e сообщения M . Для этого воспользоваться формой «Перевод числа в строку и хеширование по Флетчеру»:

H(21201705) = 240.

e= 240.

8.Выбор k

Выбрать случайным образом число k из интервала (1, q) :

k= 211.

9.Вычислить C = kP

Использовать форму «Математические операции с числами и точками». Ввести точку и k = 211, выбрать оператор «*», нажать кнопку «Вычислить»:

(752, 453) * 211 = (787, 220) kP = (787, 220)

10.Определение r

Определить с помощью формы «Математические операции с чис-

лами и точками» r = xc mod q :

r = 787 mod 521= 266,

если r = 0, вернуться к шагу 3.

11.Определение s

Вычислить

s = (ek + dr) mod q = (240*211 + 111*266) mod 521 = 453.

Если s = 0, перейти к шагу 2.

Подпись для сообщения m: ( r = 266, s = 453).

Проверка подписи сообщения

12.Исходные данные

Сообщение M = 21201705.

Подпись для сообщения m: { r = 266, s = 453}. Открытый ключ:

a = 1, b = 1 p = 1021

P = (752, 453) q = 521

Q= (272, 824)

13.Определение хэш-значения от сообщения

Вычислить хэш-код сообщения m. Для этого воспользоваться формой «Перевод числа в строку и хеширование по Флетчеру»:

106

H(21201705) = 240.

e= 240.

14.Вычисление v

Вычислить с помощью формы «Математические операции с числами и точками»:

v= e1 mod q

т.е. решить уравнение v = 1e mod q .

Ввести данные: 1, e , q в поля «x», «y» и «Модуль» соответст-

венно.

Выбрать оператор «/».

Нажать кнопку «Вычислить». Получили: (1/240) mod 521 = 432

v= e1 mod q = 432

15.Вычисление остальных данных

При прохождении шагов 3-6 использовать форму «Математические операции с числами и точками».

Вычислить

z1 = sv mod q z1 = 453 * 432 mod 521 = 321.

Вычислить

z2 = −rv mod q z2 = ((0-266) mod q * 432) mod 521 = 229.

Вычислить

C= z1P + z2Q = (x0 , y0 ) = (683, 384) + (864, 236) = (787, 220).

16.Вычисление R

Вычислить R = xc mod q R = 787 mod 521 = 266.

R= 266 = r .

Процедура верификации прошла успешно. Подпись верна.

РАБОТА 9 Типовой пример схемы разделения секрета Шамира

Разделение секрета

1. Определение конечного поля Fp

107

Пусть всего в сети девять участников информационного обмена, один из которых выполняет роль дилера. Общее количество абонентов, среди которых будет разделен секрет, n = 8 .

Открыть «Таблицу простых чисел», выбрать простое число в интервале от 31 до 991, которое будет характеристикой конечного поля Fp .

Выбрали p = 41 .

2. Распределение элементов ri конечного поля

Среди восьми абонентов сети распределили элементы ri {1, 2, 3, 4, 5, 6, 7, 8} , i =[1, 8]

3.Выбор секрета S

Дилеру выбрать элемент S F41 , соответствующий некоторому секретному сообщению.

Выбрали S = 24 .

4.Выбор многочлена f (x)

Выбрать степень m многочлена f (x) , так чтобы m +1 было

кратно значению n .

Выбрали m = 3 . Это означает, что для восстановления секрета S необходимо будет объединение не менее четырех абонентов сети из восьми.

Выбрать коэффициенты a j , j =[0, 3] многочлена f (x) . При

этом S = a0 .

Выбрали коэффициенты a0 = 24 , a1 =19 , a2 =12 , a3 =35 .

Многочлен f (x) = 35x3 +12x2 +19x + 24 .

5. Разделение секрета

Вычислить значения частей секрета si = f (ri ) , i =[1, 8] :

s1 = f (r1) = f (1) = (35 13 +12 12 +19 1 + 24)mod 41 = 8 ,

s2 = f (r2 ) = f (2) = (35 23 +12 22 +19 2 + 24)mod 41 = 21,

s3

=

f (r3 ) = f (3) = (35 33 +12 32 +19 3 + 24)mod 41 = 27 ,

s4

= f (r4 ) = f (4) = (35 43 +12 42 +19 4 + 24)mod 41 = 31,

s5

=

f (r5 ) = f (5) = (35 53 +12 52 +19 5 + 24)mod 41 = 38 ,

s6

= f (r6 ) = f (6) = (35 63 +12 62 +19 6 + 24)mod 41 =12 ,

 

 

108