ANSÂ X9.31:1988 Цифровые подписи с использованием обратимого открытого ключа
Криптография для индустрии финансовых услуг (rDSA) (судя по названию на моем экземпляре, купленном в прошлом веке) начинается в
Этот стандарт, адаптированный из ИСО/МЭК 9796-2 и ИСО/МЭК 14888-3, определяет метод генерации и проверки цифровой подписи (подписи) для защиты финансовых сообщений и данных с использованием систем обратимой криптографии с открытым ключом без восстановления сообщений. Кроме того, этот стандарт rDSA предоставляет критерии для генерации открытых и закрытых ключей, требуемых алгоритмом, и процедурные элементы управления, необходимые для безопасного использования алгоритма.
Схема подписи все еще упоминается (не описывается) в FIPS 186-4. При создании с помощью SHA-1, RSA и $n$ из $8k$-бит, сообщение $м$ дополнен как $8k-1$-кусочек
$$R\gets\mathtt{6B}\,\mathtt{BB}\,\mathtt{BB}\ldots\mathtt{BB}\,\mathtt{BA}\mathbin\|\operatorname{SHA-1}( м)\|\mathtt{33}\,\mathtt{CC}$$
тогда подпись $к$-байтовое представление с обратным порядком байтов$$\Sigma\gets\min((R^d\bmod n),n-(R^d\bmod n))$$
Проверка эквивалентна проверке подлинности подписи. $к$-байт и кодирование в представлении с обратным порядком байтов целым числом $\Сигма'$ с $0\le\Sigma'<n/2$, вычисления $R'\gets{\Sigma'}^e\bmod n$, вычисления $R$ от $м$ как указано выше, затем проверка $R'$ один из $R$ или же $n-R$ (думал, что это не совсем так, как говорится в стандарте).
Этот стандарт не уловил почти столько же, сколько RSASSA-PKCS1-v1_5, который использует немного другое заполнение, не использует $\мин$ трюк, и устранены положения даже для $е$ (не описано выше для упрощения).
Схема генерации ключей теперь по существу заменена на FIPS 186-4 приложение B3.
Существует также часто упоминаемое «Приложение A: Генерация случайных чисел». Он официально похоронен FIPS 186-4:
ANS X9.31 содержит приложение по генерации случайных чисел. Однако реализации ANS X9.31 должны использовать утвержденные методы генерации случайных чисел.
Из тела вопроса не ясно, имеет ли он отношение к тому, что задано. Если это так, пожалуйста, укажите, какой подраздел в комментарии. Если это неизвестно, забудьте об этом и используйте /dev/urandom или местный эквивалент.