Сгенерировать и сохранить p=p(p((1[k(n)]3)10)),
Найти α (для этого использовать факторизацию порядка p-1 группы).
Выбрать и сохранить a , 1 < a < p-2.
Вычислить и сохранить β.
· Взять сообщение m = 1 [k(n)]4 .
Выбрать случайно число k, 0<k<p-1.
Вычислить шифробозначение (криптограмму) (d,e).
Вычислить m’ m = (d-a)e mod p.
Убедиться, что m’=m.
· Взять открытый текст, например, как в предыдущем случае.
Разбить текст m на блоки длины, допускающей зашифрование полученной криптосистемой и произвести поблочное зашифрование. Затем произвести поблочное расшифрование и убедиться в правильности расшифрования.
3.4. Криптосистема Голдвассер - Микали.
3.4.1. Описание системы.
Генерация ключей:
Абонент A:
· Генерирует два простых числа p и q примерно одинакового размера.
· Вычисляет n = p*q.
· Выбирает число yÎZn, такое, что y является квадратичным невычетом по модулю числа p и по модулю числа q, т.е. leg (y,p) = leg (y,q) = -1.
· Открытым ключом объявляет пару чисел (n,y), в качестве секретного ключа сохраняет пару (p,q).
Шифрование:
Абонент B:
· Получает авторизированную копию открытого ключа (n,y) абонента А.
· Представляет сообщение m, как бинарную строку m=m1 m2 …mt длины t.
· Для i=1…t
Выбирает случайно xÎZ*n.
Если mi=1, то сi = yx2 mod n, иначе сi=x2 mod n.
· Посылает шифртекст c=(c1, c2… ct) абоненту А.
Расшифрование.
Абонент A:
· Для i = 1…t
Используя секретный ключ (p,q) вычисляет символ Лежандра ei=Leg(ci, p).
Если ei=1, то mi=0, иначе mi=1.
· Образует расшифрованное сообщение m=m1 m2 …mt.
3.4.2. Пример.
Абонент А.
· Получает два простых числа p=61, q=71.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.