ANSÂ X9.31:1988 Semnături digitale folosind cheia publică reversibilă
Criptografie pentru industria serviciilor financiare (rDSA) (după numele de pe copia mea achiziționată în secolul trecut) începe în
Acest standard, adaptat de la ISO/IECÂ 9796-2 și ISO/IECÂ 14888-3, definește o metodă de generare și verificare a semnăturii digitale (semnături) pentru protecția mesajelor și datelor financiare folosind sisteme de criptare cu cheie publică reversibilă fără recuperare a mesajelor. În plus, acest standard rDSA oferă criteriile pentru generarea cheilor publice și private cerute de algoritm și controalele procedurale necesare pentru utilizarea în siguranță a algoritmului.
Schema de semnătură este încă referită (nu este descrisă) în FIPSÂ 186-4. Când este instanțiat cu SHA-1, RSA și $n$ de 8k $-bit, un mesaj $m$ este căptușită ca și 8.000 - 1$-pic
$$R\gets\mathtt{6B}\,\mathtt{BB}\,\mathtt{BB}\ldots\mathtt{BB}\,\mathtt{BA}\mathbin\|\operatorname{SHA-1}( m)\|\mathtt{33}\,\mathtt{CC}$$
atunci semnătura este $k$-byte reprezentare big-endian a$$\Sigma\gets\min((R^d\bmod n),n-(R^d\bmod n))$$
Verificarea este echivalentă cu verificarea semnăturii $k$-octet și codificare în reprezentare big-endian a unui număr întreg $\Sigma'$ cu $0\le\Sigma'<n/2$, tehnica de calcul $R'\gets{\Sigma'}^e\bmod n$, tehnica de calcul $R$ din $m$ ca mai sus, apoi verific $R'$ este unul din $R$ sau $n-R$ (cred că nu așa spune standardul).
Acest standard nu a prins aproape la fel de mult ca RSASSA-PKCS1-v1_5, care folosește o umplutură ușor diferită, nu folosește $\min$ truc, și a eliminat prevederile pentru par $e$ (nu este descris mai sus pentru simplificare).
Schema de generare a cheilor este acum înlocuită în esență de FIPSÂ 186-4 apendicele B3.
Există, de asemenea, adesea referită „Anexa A: Generarea numerelor aleatorii”. Este îngropat oficial de FIPSÂ 186-4:
ANS X9.31 conține o anexă privind generarea numerelor aleatorii. Cu toate acestea, implementările ANS X9.31 vor utiliza metode aprobate de generare a numerelor aleatorii.
Nu este clar din corpul întrebării că aceasta este relevantă pentru ceea ce este întrebat. Dacă este, vă rugăm să spuneți ce subsecțiune în comentariu. Dacă nu se știe, uită de asta și folosește /dev/urandom sau echivalentul local.