В алгоритме ECES (Elliptic Curve Encryption Scheme) на первом этапе должны быть определены параметры, являющиеся общей открытой информацией, для всех пользователей системы:
· подгруппа точек эллиптической кривой q (в данном примере примем q = р);
· конечное поле GF(q);
· эллиптическая кривая E(GF(q));
· точка Р, координаты которой имеют порядок, что и число р.
Каждый пользователь системы генерирует пару ключей следующим образом:
· выбирает случайное целое число d, 1 < d < р-1
· вычисляет точку О = dP.
При этом секретным ключом пользователя является число d, открытым ключом – точка Q. Обмен конфиденциальной информацией производится в два этапа. Рассмотрим детально процесс обмена информацией между пользователями сети (а точнее между отправителем и получателем В). Методика выполнения пунктов 1-6 подробно описана в предыдущем алгоритме.
Действия отправителя:
1. Выбираем случайным образом число р, с учетом вьшолнения условий: р>3;
2. Выбор коэффициениов эллиптической кривой а и b:
3. Проверяем выполнение условия
4. Выбираем случайным образом координату X точки эллиптической кривой;
5. Вычисляем значение координаты точки У,
;
6. Определяем поле Галуа GF(p), а также количество точек на эллиптической кривой p.
7. Выбираем точку Р, координаты которой имеют порядок, что и число p
8. Определяет порядок подгруппы группы точек эллиптической кривой q;
9. После чего отправитель пересылает получателю следующие данные:
· конечное поле GF(q);
· эллиптическую кривая E(GF(q));
· порядок подгруппы группы точек эллиптической кривой q;
· точку Р.
10. Выбираем случайное число КсA - секретный ключ отправителя,
1 < КсА < p-1;
11. Вычисляем точку КоА - открытый ключ отправителя КоА = КсAР;
12. Выбираем случайное число k (2-й секретный ключ отправителя),
1 < k < p-1;
13. Вычисляем точку кР (которая является первой точкой криптограммы);
Действия получателя:
14. Выбираем случайное число КсB - секретный ключ получателя, 1 < КсВ <p - 1;
15. Вычисляем точку КоВ - открытый ключ отправителя КсB = КсB Р;
16. Отправляем получателю свой открытый ключ КoB;
Действия отправителя:
17. Разбиваем исходное сообщение на блоки (символы ASCII (CP Win 1251));
18. Шифруем исходное сообщение в точки эллиптической кривой (вторая часть криптограммы),
;
19. Отправляем криптограмму C,
;
Действия получателя:
20. Получатель получив криптограмму, умножает ее первую часть (первую точку кР) на собственный секретный ключ КсВ и получает результат КсВ(кР);
21. Вычитает полученный результат КсВ(кР) из точек второй части криптограммы в результате чего получает исходное сообщение.
Специальный раздел