И с точки зрения безопасности увеличение случайности не должно иметь значения.
Есть две причины «вернуться назад», а не заниматься какой-то специальной логикой.
Первая причина заключается в уменьшении количества «трудно тестируемого» кода специального назначения. Любой способ увеличения $к$' будет включать в себя код, который крайне редко запускается (и для которого было бы трудно разработать модульные тесты). Любой такой труднодоступный код является благодатной почвой для необнаруженных ошибок кодирования, и поэтому его следует избегать, если это вообще возможно. Напротив, возврат и повторный запуск по существу одной и той же процедуры значительно менее подвержен ошибкам.
Другая причина заключается в том, что повторное использование данных, которые считались «неприемлемыми», может привести к утечке.
В качестве примера предположим, что злоумышленник может обнаружить, когда происходит такое приращение (например, внимательно отслеживая время, необходимое для создания такой подписи), и это действительно происходит, потому что $с=0$. Если так, то мы только что слили закрытый ключ.
Вот как это происходит: на первой итерации мы вычисляем $s = k^{-1}(z + rd_A)$ и находим, что это 0. Итак, мы такие $r' = ((k+1)G)_x$ вместо этого и выведите это (и продолжайте вычислять $s'$, который эта атака не использует).
Что злоумышленник может сделать, так это восстановить точку $(к+1)G$ из координаты x, которую мы ему только что дали (на самом деле, это одна из двух точек; это просто означает, что он пробует обе); что затем позволяет ему пересчитать $кГ$, а значит и оригинал $г$
Теперь он знает, что $k^{-1}(z + rd_A) = 0$, в настоящее время $k^{-1} \ne 0$ (обратные никогда не равны нулю), и поэтому $d_A = -r^{-1}z$; он знает $z$ (из сообщения, которое было подписано) и $г$, что дает ему закрытый ключ $d_A$.
Теперь, если мы выберем совершенно случайное $к$ каждый раз нам не нужно беспокоиться о таких неочевидных атаках.
Теперь на практике это $с=0$ Условие по существу никогда не происходит (это происходит с той же вероятностью, что случайное угадывание закрытого ключа просто оказывается правильным), поэтому может показаться, что нам не нужно беспокоиться об этом. Я бы по-прежнему доверял менее подверженному ошибкам и более безопасному методу, даже если он занимает больше времени (а если это почти никогда не происходит, время, которое это занимает, обычно не имеет значения).