Прежде всего задается большое простое число M, а также параметры a и b для определения эллиптической группы EM(a,b). Затем выбирается генерирующая точка G такая, чтобы с, для которого cG = O, было большим простым числом с «хорошими алгебраическими свойствами». Размер числа с на практике довольно велик (). Параметры EM(a,b) и G открыты для всех.
Процедура обмена ключами между пользователями A и B:
Пользователь A выбирает целое число nA такое, что nA < M. nA – секретный ключ пользователя А. Затем пользователь A генерирует открытый ключ PA =
= nAG. Заметим, что PA – точка из группы EM(a,b).
Пользователь B выполняет те же действия для получения своего секретного ключа nB и открытого ключа PB.
Пользователь A генерирует общий секретный ключ K = nAPB, а пользователь B генерирует тот же секретный ключ K= nBPA.
Легко показать, что nAPB = nA(nB G) = nB(nA G) = nBPA.
Для взлома третья сторона должна вычислить k (nA или nB) на основании G и kG, т.е. решить задачу дискретного логарифмирования в эллиптической группе.
Пример. Пусть M = 211, E211(0,–4) и G = (2,2). Легко проверить, что 241G = O, а 241 является простым числом.
Секретный ключ nA = 121, тогда открытый ключ PA = nAG = 121*(2,2) =
= (115,48).
Секретный ключ nB = 203, открытый ключ PB = nBG = 203*(2,2) = (130,203).