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

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

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

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

1-й абонент

2-й абонент

Протокол

1.1-й абонент

Генерирует параметры схемы Эль-Гамаля в автоматическом режиме. Для этого необходимо нажать кнопку «Эль-Гамаля – параметры» специализированного вычислителя. Результат появится в правой части экрана.

Параметры для алгоритма Эль-Гамаля:

p1 = 1069 q1 = 997 x1 = 122 y1 = 598

Отсылает 2-му абоненту открытую информацию о параметрах схемы, состоящую из значений чисел { p1, q1, y1 }.

2.2-й абонент

Генерирует параметры схемы Эль-Гамаля в автоматическом режиме.

Параметры для алгоритма Эль-Гамаля:

p2 = 1181 q2 = 1171 x2 = 909 y2 = 657

Отсылает 1-му абоненту открытую информацию о параметрах схемы, состоящую из значений чисел { p2 , q2 , y2 }.

3.1-й абонент

Выбирает два сообщения M11 и M12 . Пусть M11 = «ДОМ» и M12 = «МИР».

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

89

ДОМ => 151706 МИР => 191115

Числовая форма сообщений:

M11 = 151706

M12 = 191115

4.2-й абонент

Выбирает два сообщения M 21 и M 22 . Пусть M 21 = «КОД» и M 22 = «ГЕН». Переводит эти сообщения в числовую форму. Числовая форма сообщений:

M21 = 61713

M22 = 160705

5.1-й абонент

Решает сформировать электронную цифровую подпись для 2-го из выбранных им сообщений M12 .

Вычисляет хэш-значение m1 от сообщения M12 . Для этого следует воспользоваться формой «Хэширование по Флетчеру» специализированного вычислителя. В поле «Число» нужнно ввести значение M12 = 191115 и нажать кнопку «Найти хэш-значение». Результат появится в правой части экрана:

H(191115) = 120

Хэш-значение m1 = 120.

Выбирает случайное число k1 , которое будет использоваться в процессе вычисления электронной цифровой подписи. Число k1 должно удовлетворять условию НОД(k1, p1 1) =1, т.е. k1 должно быть взаимно простым с числом p1 1 =1068.

Для выбора k1 можно воспользоваться таблицей простых чисел специализированного вычислителя. Нужно нажать кнопку «Таблица простых чисел». В появившейся таблице выбрать любое значение в интервале (1, 1068).

Пусть k1 = 113.

6.2-й абонент

Решает сформировать электронную цифровую подпись для 1-го из выбранных им сообщений M 21 .

90

Вычисляет хэш-значение m2 от сообщения M 21 по алгоритму Флетчера.

Хэш-значение m2 = 3.

Выбирает случайное число k2 , которое будет использоваться в процессе вычисления электронной цифровой подписи. Число k2 должно удовлетворять условию НОД(k2 , p2 1) =1, т.е. k2 должно быть взаимно простым с числом p2 1 = 1180.

Пусть k2 = 773.

7.1-й абонент

Подготавливает значение k11 , которое будет использоваться в

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

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

a = 113; b = 1068; x = 293; y = –31.

В данном случае значение x и будет являться искомой величиной k11 =293.

8.2-й абонент

Подготавливает значение k21 , которое будет использоваться в процессе вычисления подписи. Результат вычислений специализированного вычислителя:

a = 773; b = 1180; x = 777; y = –509.

В данном случае значение x и будет являться искомой величиной

k21 = 777.

9.1-й абонент

Вычисляет значение a1 , являющееся первым из двух чисел, представляющих собой значение электронной цифровой подписи, выбранного им сообщения M12 :

a1 = q1k1 mod p1

91

Для этого следует воспользоваться формой «Математические операции с числами» специализированного вычислителя. Введите значение q1 в поле «а», значение k1 – в поле «b», значение p1

вполе «модуль» и выберите операцию возведения в степень « ^ »

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

(997 ^ 113) mod 1069 = 494 a1 = 997113 mod 1069

a1 = 494

10.2-й абонент

Вычисляет значение a2 , являющееся первым из двух чисел, представляющих собой значение электронной цифровой подписи, выбранного им сообщения M 21 :

a2 = q2k2 mod p2

a2 = 1171773 mod 1181

a2 = 496

11.1-й абонент

Вычисляет значение b1 , являющееся вторым из двух чисел, представляющих собой значение электронной цифровой подписи, выбранного им сообщения M12 :

b1 = k11(m1 a1x1)(mod( p1 1))

С помощью формы «Математические операции с числами» специализированного вычислителя необходимо выполнить две операции умножения и одну операцию вычитания по модулю.

b1 = 293(120 – 494*122) (mod 1068) b1 = 772

Значением электронной цифровой подписи для сообщения M12 = «МИР» является пара чисел (a1,b1) = (494, 772).

Отправляет 2-му абоненту два сообщения {«ДОМ», «МИР»} и значение электронной цифровой подписи (494, 772), сформированной для сообщения «МИР». При этом 2-й абонент не знает, какое именно из двух сообщений было подписано 1-м абонентом.

12. 2-й абонент

92

Вычисляет значение b2 , являющееся вторым из двух чисел, пред-

ставляющих собой значение электронной цифровой подписи, выбранного им сообщения M 21 .

b2 = k21(m2 a2 x2 )(mod( p2 1)) b2 = 777(3 – 496*909)(mod 1180)

b2 = 583

Значением электронной цифровой подписи для сообщения M 21 = «КОД» является пара чисел (a2 ,b2 ) = (496, 583).

Отправляет 1-му абоненту два сообщения {«КОД», «ГЕН»} и значение электронной цифровой подписи (496, 583), сформированной для сообщения «КОД». При этом 1-й абонент не знает, какое именно из двух сообщений было подписано 2-м абонентом.

13.1-й абонент

Верифицирует значение электронной цифровой подписи для сообщения M 21 .

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

M 21 = 61713

Определяет хэш-значение от этого сообщения m21 по алгоритму Флетчера с помощью специализированного вычислителя:

m21 = h(M 21) = h(61713) = 3

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

V21 = y2a2 a2b2 mod p2

Для этого нужно сделать две операции возведения в степень и одну операцию умножения по модулю с помощью формы «Математические операции с числами» специализированного вычислителя:

V21 = 657496*496583 mod 1181

V21 = 181

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

W21 = q2 m21 mod p2

W21 = 11713 mod 1181

W21 = 181

Подпись верна для сообщения M 21 , так как V21 =W21 .

14. 2-й абонент

93

Верифицирует значение электронной цифровой подписи для сообщения M11 .

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

M11 = 151706.

Определяет хэш-значение от этого сообщения m11 по алгоритму Флетчера:

m11 = h(M11) = h(151706) = 236

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

V11 = y1a1 a1b1 mod p1

V11 = 598494*494772 mod 1069

V11 = 149

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

W11 = q1m11 mod p1

W11 = 997236 mod 1069

W11 = 229

Процедура верификации подписи для сообщения M11 дала отрицательный результат, так как V11 W11 .

15.1-й абонент

Верифицирует значение электронной цифровой подписи для сообщения M 22 .

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

M 22 = 160705.

Определяет хэш-значение от этого сообщения m22 по алгоритму Флетчера:

m22 = h(M 22 ) = h(160705) = 55

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

V22 =V21 = y2a2 a2b2 mod p2

V22 = 181

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

W22 = q2 m22 mod p2

W22 = 117155 mod 1181 W22 = 1059

94

Процедура верификации подписи для сообщения M 22 дала отрицательный результат, так как V22 W22 .

16.2-й абонент

Верифицирует значение электронной цифровой подписи для сообщения M12 .

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

M12 = 191115

Определяет хэш-значение от этого сообщения m12 по алгоритму Флетчера:

m12 = h(M12 ) = h(191115) =120

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

V12 =V11 = y1a1 a1b1 mod p1

V12 = 149

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

W12 = q1m12 mod p1

W12 = 997120 mod 1069 W12 = 149

Подпись верна для сообщения M12 , так как V12 =W12 .

В результате выполнения рассмотренного примера 1-й абонент делает вывод о том, что 2-й абонент подписал сообщение M 21 . Аналогично, 2-й абонент делает вывод о том, что 1-й абонент подписал сообщение M12 . Что соответствует действительности.

РАБОТА 4 Типовой пример несостоятельности протокола

электронной цифровой подписи на RSA

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

1-й абонент

2-й абонент

злоумышленник (3-й абонент)

95

Протокол

1.1-й абонент

Генерирует параметры схемы RSA в полуавтоматическом режиме.

Выбрать 4-значные множители p и q по таблице простых чисел специализированного вычислителя. Пусть p = 1213, q = 1399.

Ввести выбранные значения в поля ввода «p» и «q» формы «Генерация параметров» соответственно. Нажать кнопку «RSAпараметры». Результат появится в правой части экрана:

Параметры для алгоритма RSA: p = 1213

q = 1399

n1 = 1696987

ϕ(n1) = 1694376 e1 = 479

d1 = 254687

Отсылает свой открытый ключ и модуль шифрования {e1, n1} 2-му абоненту и злоумышленнику.

2.2-й абонент

Генерирует параметры схемы RSA в полуавтоматическом режи-

ме, аналогично тому, как это делал 1-й абонент. Пусть p = 1747, q = 1259.

Параметры для алгоритма RSA: p = 1747

q = 1259

n2 = 2199473

ϕ(n2 ) = 2196468 e2 = 269

d2 = 1428929

Отсылает свой открытый ключ и модуль шифрования {e2 , n2} 1-му абоненту и злоумышленнику.

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

Генерирует параметры схемы RSA в полуавтоматическом режиме.

Пусть p = 1301, q = 1973.

Параметры для алгоритма RSA:

96

p = 1301 q = 1973

n3 = 2566873

ϕ(n3 ) = 2563600 e3 = 953

d3 = 1452617

Отсылает свой открытый ключ и модуль шифрования {e3 , n3} 2-му абоненту.

4.1-й абонент

Выбирает исходное сообщение M . Пусть M = «РИС».

Переводит это сообщение в числовую форму.

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

РИС => 201119

Числовая форма сообщения M = 201119.

Зашифровывает сообщение M на открытом ключе e2 и получает криптограмму:

C2 = M e2 mod n2

Для этого следует воспользоваться формой «Математические операции с числами» специализированного вычислителя. Введите числовое значение M в поле «а», значение открытого ключа e2 – в поле «b», значение модуля шифрования n2 – в поле «мо-

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

(201119 ^ 269) mod 2199473 = 1340734 C2 = 201119269 mod 2199473

C2 = 1340734

Подписывает криптограмму C2 на своем секретном ключе d1 и получает криптограмму:

C21 =C2d1 mod n1

97

Аналогично предыдущей операции зашифрования, для подписи криптограммы C2 можно воспользоваться возможностями спе-

циализированного вычислителя:

C21 = 1340734 254687 mod 1696987

C21 = 756306

Отсылает криптограмму C21 злоумышленнику.

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

Получает (перехватывает) криптограмму C21 и снимает с нее подпись 1-го абонента с помощью его открытого ключа e1 . Получает значение криптограммы:

C2 = C21e1 mod n1

C2 = 756306 479 mod 1696987 C2 = 1340734

Подписывает значение криптограммы C2 на своем секретном ключе d3 и получает криптограмму:

C23 =C2d3 mod n3

C23 = 1340734 1452617 mod 2566873

C23 = 1149353

Отсылает криптограмму C23 2-му абоненту.

6.2-й абонент

Получает криптограмму C23 .

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

C12 = C23e1 modn1

C12 = 1149353 479 mod 1696987 C12 = 679762

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

M1 = C12(d2 ) mod n2

M1 = 679762 1428929 mod 2199473 M1 = 1953550

98