
Протоколы информационного обмена
.pdf
*(ab)
/ |
( a b ) |
^ (ab )
sqrt ( a )
Нажать кнопку .
Рис.13
Для выполнения операций модулярной математики ввести a , b , модуль, выбрать математическую операцию (за исключением извлечения квадратного корня – эта операция не определена) и нажать кнопку
.
Входные данные: a , b , модуль. Каждое не больше 2147483647. Хеширование по Флетчеру. Вычисляет хэш-значение введенного
числа (рис.14). Максимальный размер входных данных
36893488147419103230.
Рис.14
Результат хэширования лежит в интервале от 1 до 255.
Результат, например, для числа 35484443013547604452 выглядит следующим образом: H(35484443013547604452) = 156.
19

Генерация параметров. В этом блоке специализированного вычислителя находятся поля для генерации исходных параметров для двух криптографических схем (рис.15): RSA и Эль-Гамаля.
|
Рис.15 |
Параметры для протокола RSA. Для этого используйте (рис.16) |
|
кнопку |
. |
Если |
p и q не заданы пользователем, тогда система сама генерирует |
эти параметры случайным образом и вычисляет необходимые величины. Например, результат может выглядеть следующим образом:
Параметры для алгоритма RSA: p = 509
q = 967
n = 492203 phi = 490728 e = 557
d = 356813
Если пользователь введет p и q , тогда остальные параметры будут просчитаны с их учетом.
Рис.16
После нажатия кнопки получим следующий результат в окне вывода:
Параметры для алгоритма RSA: p = 199
q = 211 n = 41989
phi = 41580 e = 409
d = 25009
20

Параметры для схемы Эль-Гамаля. Для генерации параметров для
схемы Эль-Гамаля используйте кнопку . После нажатия этой кнопки в окне вывода вы получите набор параметров, которые были сгенерированы системой автоматически. Напри-
мер:
Параметры для алгоритма Эль-Гамаля: p = 1103
q = 1063 x = 690 y = 361
Генерация случайным образом простого числа. В работе с протоко-
лами часто необходимо использовать простые числа. Для этого воспользуйтесь таблицей простых чисел или генерацией простых чисел.
Нажмите кнопку . Результат получите, например, такой:
Простое число 1223
Специализированный вычислитель для эллиптических кривых. Ок-
но калькулятора разделено на две области (рис.17): область ввода данных и область вывода результата.
Рис.17
Приведем доступные функции калькулятора для эллиптических кривых.
21

Параметры эллиптической кривой. Форма предназначена для зада-
ния параметров эллиптической кривой вида y2 = x3 + ax +b , определенной в конечном поле Fp , с характеристикой p > 3 . Каждое из чисел a и b должно быть не больше 9999. Значение модуля p не должно превы-
шать 1200.
После задания параметров кривой нажмите кнопку
.
В окне вывода результата вы увидите выпадающий список с массивом точек, принадлежащих заданной эллиптической кривой. Также выводится строка с сообщением об общем числе точек кривой, т.е. значение ранга кривой подсчитывается автоматически.
Например, если ЭК задана такими параметрами, как на рис.18, получите результат в окне вывода, приведенный на рис.19.
Рис.18
Рис.19
Математические операции с числами и точками. Форма предна-
значена для работы с числами и точками (рис.20).
22

Рис.20
Доступные операции зависят от заданных аргументов.
1.Целые числа.
2.Модулярная математика.
3.Точки эллиптической кривой.
Выпадающий список содержит возможный набор операций:
+(x + y)
-(x − y)
*(xy)
/(x / y)
^(x y )
sqrt |
( x ) |
rang(x) |
(вычисление ранга точки, x – точка, принадлежащая ЭК) |
Работа с целыми числами. Для выполнения обычных арифметических операций необходимо ввести числа x , y и выбрать операцию в
выпадающем списке. Доступны все операции, кроме вычисления ранга точки, принадлежащей эллиптической кривой.
Нажать кнопку .
Входные данные: x и y . Каждое не больше 2147483647.
Вычисления по модулю. Эта функциональность аналогична работе с целыми числами, за исключением того, что все операции производятся по модулю.
23

Для выполнения обычных арифметических операций необходимо ввести числа x , y , модуль p и выбрать операцию в выпадающем списке.
Доступны все операции, кроме вычисления ранга точки, принадлежащей эллиптической кривой, и вычисления квадратного корня из числа.
Нажать кнопку .
Входные данные: x , y и p . Каждое не больше 2147483647.
Работа с точками. Для вычисления суммы и разности двух точек, умножения точки на целое число, вычисления ранга точки ЭК используй-
те поля x, y и кнопку , а также следующие операторы:
+ |
(X +Y ) |
X ,Y Fp (E) |
* |
( yX ) |
X Fp (E) , y – целое число |
- |
(X −Y ) |
X ,Y Fp (E) |
rang(x) |
(вычисление ранга точки) |
X Fp (E) |
Точка ЭК задается двумя своими координатами, заключенными в круглые скобки и разделенными « ; », в виде (x; y) , например, как на рис.21.
Рис.21
При работе с точками, ЭК должна быть задана параметрами a , b , p .
При этом генерация всех точек ЭК необязательна. Достаточно, чтобы нужные параметры были введены в поля формы «Параметры эллиптической кривой».
Если точки кривой выведены в выпадающий список в окне вывода, тогда вы можете поставить курсор в окно x или y , в которое нужно ввести
точку, а затем выбрать нужную точку в выпадающем списке точек. Выбранная точка будет вставлена в окно x или y автоматически.
24

Перевод строки в числовую форму. Реализует перевод введенной строки текста, состоящей из символов кириллицы или пробела, в числовую форму или представление строки текста в виде набора точек заданной эллиптической кривой.
Максимальная длина строки 40 символов.
Для представления строки в виде набора точек необходимо ввести
строку (рис.22) и нажать кнопку . Кроме того, в соответствующих полях формы «Параметры эллиптической кривой» должны быть заданы параметры ЭК.
Рис.22
Перевод точек в строку. Реализует перевод массива точек в строку (рис.23). В форме «Параметры эллиптической кривой» должны быть введены параметры a , b , p .
Рис.23 |
|
Введите массив точек и нажмите кнопку |
. Каждая точ- |
ка должна быть представлена в виде (x, y) , где x , y |
– координаты точки. |
Результат будет представлен, как показано на на рис.24.
(202, 889) (230, 148) (220, 191) (236, 294) (225, 645) (217, 460) (30, 475) (231, 634) (230, 29) (225, 645) (230, 29) (219, 498) (225, 594) (217, 460) (237, 778) (30, 475) (220, 871) (220, 191) (225, 409) (217, 460) => Пришла холодная зима
Рис.24
Если вы введете точку без открывающей скобки, например «222, 662)», тогда она будет пропущена при переводе.
25

Если вы введете точку без закрывающей скобки, например «(222, 662», система сообщит вам об этом и будет ждать исправлений.
Перевод числа в строку и хэширование по Флетчеру. Осуществляет перевод введенного числа в строку текста или хэширование числа по Флетчеру (рис.25).
Максимальная длина числа 80 символов.
Рис.25
Чтобы перевести число в строку, введите число и нажмите кнопку
.
Чтобы найти хэш-значение числа, введите число и нажмите кнопку
. Введенное число не должно быть больше
36893488147419103231.
Разложение на множители. Чтобы разложить некоторое число на множители, воспользуйтесь данной формой (рис.26).
Максимальная длина числа 4 символа.
Рис.26
Результатом работы этой функции является набор множителей заданного числа.
Дополнительные функции. В правом верхнем углу окна расположены следующие функции:
1. Очистить окно вывода. Доступна только в случае, если окно вывода не пустое. Очищает окно вывода.
26

2. Таблица простых чисел (рис.27). Выводит дополнительное окно с таблицей простых чисел в интервале от 1 до 2437.
Рис.27
3. На главную страницу. Ссылка ведет на первую страницу подсистемы специализированного вычислителя.
27

Р а б о т а 1
КРИПТОСИСТЕМЫ С ОТКРЫТЫМ КЛЮЧЕМ
Цель: освоение работы на специализированном вычислителе; практическое изучение криптографии с открытым ключом на примере криптосхемы RSA.
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
В криптографии понятие «системы шифрования с открытыми ключами» было введено в 1976 г. американскими учеными Диффи и Хеллманом (Diffie, Hellman), опубликовавшими основные требования к таким системам [15]. Спустя некоторое время, в 1978 г. была предложена и опубликована наиболее известная и распространенная на сегодняшний день криптосистема с открытыми ключами RSA [21]. Название системы образовано по первым буквам ее разработчиков Ривеста, Шамира и Адлемана (Rivest, Shamir, Adleman).
Термин «открытый ключ» отражает суть дела, которая заключается в том, что в криптосистемах шифрования с открытыми ключами или просто в криптографии с открытыми ключами некоторые ключи являются общеизвестными, т.е. открыты, опубликованы, доступны всем участникам информационного обмена. Зашифрование сообщений происходит именно с использованием таких открытых ключей. При этом безопасность систем заключается в том, что общеизвестный ключ используется только для зашифрования сообщений. Для расшифрования сообщения, зашифрованного с помощью открытого ключа, используется другой, парный ему, но секретный ключ. Таким образом, у каждого участника информационного обмена есть пара из двух ключей: открытого и секретного. По причине того, что для процессов зашифрования и расшифрования используются различные ключи, криптосистемы с открытыми ключами иногда называют еще асимметричными криптосистемами. Абоненты сети используют открытые ключи для того, чтобы передавать друг другу зашифрованные сообщения, а свой секретный ключ каждый абонент использует для того, чтобы расшифровывать получаемые им криптограммы.
28