Для группы точек эллиптической кривой над конечным полем E существует быстро выполнимая операция – умножение целого числа x на точку A (суммирование точки самой с собой целое число раз): B = x*A.
И получение исходной точки A при известных B и x (деление точки на целое число), и получение целого числа x при известных A и B являются сложными задачами. На этом и основаны алгоритмы шифрования и электронной подписи с использованием эллиптических кривых над конечными полями.
Схема ECIES (англ. Elliptic Curve Integrated Encryption Scheme) является частью сразу нескольких стандартов, в том числе ANSI X9.63, IEEE 1363a, ISO 18033-2 и SECG SEC 1. Эти стандарты по-разному описывают выбор параметров схемы:
14) ENC(англ.Encryption)–блочныйрежимшифрования
15) KA (англ. Key Agreement) – метод для генерации общего секрета двумя сторонами (оригинальный метод, описанный в протоколе Диффи Хеллмана либо его модифика- ции)
16) KDF (англ. Key Derivation Function) – метод получения ключей из ключевой и дополнительной информации;
17) HASH – криптографическая хэш-функция (SHA-1, SHA-2, RIPEMD, SHA-1);
18) MAC (англ. Message Authentication Code) – функция вычисления имитовставки
К параметрам относится выбор группы точек над эллиптиче-ской кривой E, а также некоторой большой циклической подгруппы G в группе E, задаваемой точкой-генератором G. Мощность циклической группы обозначается n.
Предположим, что в нашем сценарии Алиса хочет послать сообщение Бобу. У Алисы есть открытый ключ Боба PB, а у Боба – соответствующий ему закрытый ключ pB. Для отправки сообщения Алиса также сгенерирует временную (англ. ephemeral) пару из открытого (PA) и закрытого (pA) ключей.
Закрытыми ключами являются некоторые натуральные числа, меньшие n, а открытыми ключами является произведение закрытого на точку-генератор G:
• С помощью метода генерации общего секрета KA Алиса вычисляет общий секрет s. В случае использования оригинального протокола Диффи Хеллмана общим секретом будет являться результат умножения закрытого ключа Алисы на открытый ключ Боба s = pa*PB .
• Используя полученный общий секрет s и метод получения ключей из ключевой и дополнительной информации KDF, Алиса получает ключ шифрования kENC, а также ключ для вычисления имитовставки kMAC.
• С помощью симметричного алгоритма шифрования ENC Алиса шифрует открытое сообщение m ключом kENC и получает шифротекст c.
• Взяв ключ kMAC, зашифрованное сообщение c и другие заранее обговорённые сторонами параметры, Алиса вычисляет тэг сообщения (tag) с помощью функции MAC.
• Алиса отсылает Бобу {PA, tag, c}.
• В процессе расшифровки Боб последовательно получает общий секрет s = pb*PA, ключи шифрования kENC и имитовстав-ки kMAC, вычисляет тэг сообщения и сверяет его с полученным. В случае совпадения вычисленного и полученного тэгов Боб расшифровывает исходное сообщение m из шифротекста c с помощью ключа шифрования kENC.