Функционирование криптографических систем при конкретных параметрах, страница 5

·  Замечания:

·  Для того, чтобы точно знать, какой квадратный корень выбрать, до зашифрования абонент 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. Описание     системы.

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