· Замечания:
· Для того, чтобы точно знать, какой квадратный корень выбрать, до зашифрования абонент A в сообщение вносит избыточность. Это может быть дублирование части сообщения или добавление каких - либо определенных байтов, что позволит с высокой вероятностью выбрать правильный корень.
· Квадратный корень из числа c по модулю составного числа n=pq вычисляется следующим образом:
Вычисляются квадратные корни r и - r числа c по модулю p
Вычисляются квадратные корни s и - s числа c по модулю q.
По расширенному алгоритму Евклида вычисляются числа a и b такие, px + qy = 1. Далее находим c = x mod q, d = y mod p.
Вычисляются x = spc + rqd mod n и y = rpc-sqd mod n.
Возвращаются ±x, ±y.
3.2.2. Пример.
Генерация ключей:
p = 10157438609
q = 117964818158489
n = 1198220398466700449701801
Шифрование:
m = 11314
c=m2 mod n = 128006596
Расшифрование:
· r= 11314
-r = 10157427295
· s = 11314
-s = 117964818147175
· a = 84176603217166
b = 2909356572
· x = spc + rqd = 11314 = m
y = rpc - sqd mod n = 302094485170523072729029
· -x = 1150880419845999097305062
-y = 127041953438175906753751
3.2.3. Задание.
· Спроектировать систему по следующим параметрам.
Сгенерировать и сохранить p= p((1[k(n)]6)10),
Сгенерировать и сохранить q= p((1[k(n)]6)10+4),
Вычислить n=p×q.
· Взять сообщение m=k(n).
Вычислить шифробозначение (криптограмму) c= c=m2 mod n.
Вычислить m’ как один из четырех квадратных корней числа с по модулю n
Убедиться, что m’=m.
· Тестирование реального примера
Взять открытый текст c, например, как в случае RSA.
Разбить текст m на блоки длины, допускающей зашифрование полученной криптосистемой и произвести поблочное зашифрование. Затем произвести поблочное расшифрование.
3.3. Криптосистема Эль - Гамаля.
3.3.1. Описание системы.
Генерация ключей:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.