Протоколы информационного обмена
.pdfУчастники информационного обмена
•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-й абонент
Подготавливает значение k1−1 , которое будет использоваться в
процессе вычисления подписи. Для этого следует воспользоваться формой «Решение уравнения вида ax + by = 1» специализированного вычислителя. В поле «a» укажите значение k1 , а в поле «b» – значение p1 −1 . Нажмите кнопку «Найти
решение». Результат появится в правой части экрана:
a = 113; b = 1068; x = 293; y = –31.
В данном случае значение x и будет являться искомой величиной k1−1 =293.
8.2-й абонент
Подготавливает значение k2−1 , которое будет использоваться в процессе вычисления подписи. Результат вычислений специализированного вычислителя:
a = 773; b = 1180; x = 777; y = –509.
В данном случае значение x и будет являться искомой величиной
k2−1 = 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 = k1−1(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 = k2−1(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
