Применение эллиптических кривых в криптографии. Алгоритм шифрования на основе эллиптических кривых.

• Шифрование/дешифрование с использованием эллиптических кривых:

• Задача состоит в том, чтобы зашифровать сообщение М, которое может быть представлено в виде точки на эллиптической кривой Pm (x,y).

• В качестве параметров рассматривается эллиптическая кривая Ep(a,b) и точка G на ней.

• Участник B выбирает закрытый ключ nB и вычисляет открытый ключ PB = nB × G.

• Чтобы зашифровать сообщение Pm используется открытый ключ получателя B PB.

• Участник А выбирает случайное целое положительное число k и вычисляет зашифрованное сообщение Cm, являющееся точкой на эллиптической кривой.

• Cm = {k × G, Pm + k × PB}

• Для расшифровки участник В умножает первую координату точки на свой закрытый ключ и вычитает результат из второй координаты:

• Pm + k × PB - nB × (k × G) = Pm + k × (nB × G) - nB × (k × G) = Pm

• Участник А зашифровал сообщение Pm добавлением к нему k × PB.

• Никто не знает значения k, поэтому, хотя PB и является открытым ключом, никто не знает k × PB.

• Противнику для восстановления сообщения придется вычислить k, зная G и k × G. Сделать это будет нелегко.

• Получатель также не знает k, но ему в качестве подсказки посылается k × G.

• Умножив k × G на свой закрытый ключ, получатель получит значение, которое было добавлено отправителем к незашифрованному сообщению.

• Тем самым получатель, не зная k, но имея свой закрытый ключ, может восстановить незашифрованное сообщение.