ify"> nQ O .
. Якщо хоча б одна з перевірок пройшла невдало, то повернути ( Invalid ); інакше повернути ( Valid ).
Алгоритм цифрового підпису на еліптичних кривих є аналогом алгоритму цифрового підпису DSA. Він є самим стандартизованим алгоритмом, що використовують еліптичні криві, і занесений в такі стандарти, як ANSI X9.62, FIPS 186-2, IEEE 1363-2000 і ISO/IEC 15946-2. У подальшому описі алгоритму через H позначається криптографічний хеш-функція, вихідне значення якої не перевищує числа n (якщо ця умова не виконується, то значення хеш-функції можуть бути усічені).
Алгоритм генерації цифрового підпису:
Вхід : Параметри еліптичної кривої D = (a, b, p) , секретний ключ d , повідомлення m , що породжує точка G та її порядок q .
Вихід: Підпис (r, s).
Алгоритм: 1. Вибрати k ? R [1, q? 1].
. Обчислити kG = (x1, y1). p align="justify">. Обчислити r = x1 mod q. Якщо r = 0 повернутися до кроку 1. p align="justify">. Обчислити h = H (m). p align="justify">. Обчислити s = k? 1 (h + d * r) mod q. Якщо s = 0 повернутися до кроку 1. p align="justify"> Повернути: (r, s).
Алгоритм запевнення цифрового підпису:
Вхід : Параметри кривої D = (a, b, p) span> , відкритий ключ Q , повідомлення m , підпис (r, s), породжує точка < i align = "justify"> G та її порядок q .
Вихід: Засвідчення або відкидання підпису.
Алгоритм : 1. Обчислити h = H (m) .
. Обчислити w = s ? 1 mod q .
. Обчислити