Для проверки подписи, используя открытый ключ y=40, необходимо произвести следующие вычисления:
1. Вычислить хеш сообщения, для этого необходимо применить к сообщению алгоритм хеширования, указанный в стандарте. В данном случае используется алгоритм SHA-1.
Пример: Дано сообщение "Hello". Вычислим его хеш-значение:
SHA-1("Hello") = 0x8B1A9953C4611296A827ABF8C47804D7E4851D0BC5CD9827C
(значение получено в шестнадцатеричном формате)
2. Вычислить число s на основе подписи, полученной от отправителя. Подпись представляет собой пару чисел (r, s), где r - случайное число, сгенерированное при выработке подписи. В данном случае s=34.
3. Найти обратный элемент к числу s по модулю q. Для этого необходимо воспользоваться расширенным алгоритмом Евклида. В результате находим значение s'=27.
4. Вычислить две точки на эллиптической кривой по следующим формулам:
- точка U = (x1, y1), где x1=(s'y) mod p, y1=(rs') mod p
- точка V = (x2, y2), где x2=((a^(u1) * y^(u2)) mod p) mod q, y2=((r^u1) * (s'^u2) mod p) mod q
где u1=(H(m)/q) mod p, u2=(s*u1) mod q
Пример: H(m) = 0x8B1A9953C4611296A827ABF8C47804D7E4851D0BC5CD9827C (значение получено на предыдущем шаге), u1=550538510074121443272854612423839229092145814717, u2=367932306474583093883258086776820697283141674661, r=7, s'=27, y=40, a=25, p=56, q=11.
Вычисляем x1=(s'y) mod p=20, y1=(rs') mod p=1, x2=10, y2=5.
5. Вычислить точку W = U + V на эллиптической кривой.
W = (x3, y3), где x3=((y1-y2)*((x1-x2))^(-1) mod p)^2 - x1 - x2 mod p, y3=((x1-x3)*((y1* (x1-x2) - x1*(y1-y2))^-1 mod p)) mod p
Пример: x3=10, y3=6.
6. Если x3=r, то подпись действительна, иначе - недействительна.
В данном случае x3=7 ≠ r, следовательно подпись недействительна.
Таким образом, проверка подлинности подписи с помощью открытого ключа y=40 не прошла успешно, что может свидетельствовать о том, что подпись была сформирована некорректно или же подделана.