Pull to refresh

Comments 9

Для проверки подписи нужно выполнить следующие шаги:
По полученной подписи восстановить числа r и s. Если не выполнены неравенства 0<r<q и 0<s<q, тогда вернуть «подпись не верна»;
Вычислить хеш сообщения M: H=h(M);
Вычислить целое число α, двоичным представлением которого является H;
Определить e=α mod q, если e=0, задать e=1;
Вычислить v = e-1 mod q;
Вычислить значения z1 = s*v mod q и z2 = -r*v mod q;
Вычислить точку эллиптической кривой C = z1*G + z2*Q;
Определить R = xc mod q, где xc — x-координата точки C;
Если R=r, то подпись верна. В противном случае подпись не принимается.

Этот алгоритм не безопасный.
Вы используете в самом начале делаете ранний выход из алгоритма, то есть сообщаете злоумышленнику дополнительную информацию о том, что именно не верно.
Более правильно если неравенство не выполняется взять какие-то другие числа r и s чтобы неравенство выполнялось и продолжить алгоритм до конца (естественно отметив что в результате возвращать мы будем сообщение подпись не валидна).
А каким образом злоумышленник узнает, что выход произошёл именно на этом этапе? Время ответа?
Да, mird имеет в виду возможность успешной тайминг атаки.
Я понимаю о чем вы говорите и в общем случае это верно: операции, зависящие от секретных данных должны выполняться за константу. Но какую дополнительную информацию может извлечь злоумышленник в данном, конкретном случае? Только то, что длина подписи больше длины числа q? Но это можно проверить самостоятельно, параметр q — публичный. На мой взгляд, это вполне безобидный способ сэкономить немного процессорного времени.
На pure Python есть реализации этого алгоритма ещё в пакете pygost доступного через PyPI: https://pypi.python.org/pypi/pygost/. Кроме 34.10-2001/2012 в нём есть поддержка VKO Диффи-Хельман функции на основе 34.10-2001.
UFO just landed and posted this here
Ага, как вижу сине-желтые цвета, сразу финал ЧМ по футболу 1994 года вспоминаю. Бразилия-Италия, тоска смертная, а не футбол.
А есть ли примеры реализации для Казахстана?
К сожалению нет.
Если у вас есть текст стандарта можете поделиться для ознакомления?
Sign up to leave a comment.