Bănuiesc că aceasta este mai degrabă o problemă de matematică într-un context criptografic, așa că îmi cer scuze înainte dacă nu este locul potrivit pentru a întreba.Practic, trebuie să verific dacă o anumită implementare a generării perechilor de chei RSA aderă la FIPS 186-4. Mai precis, Anexa B-3-1.
FIPS 186-4 necesită acest lucru $d$ (exponentul privat) să fie creat astfel:
$d = (e^{-1})\bmod(\text{LCM}(p-1, \space q-1))$
Biblioteca în cauză (openssl v1.0.1) calculează $d$ ca astfel:
$d = (e^{-1})\bmod((p-1)(q-1))$
Nu pot dovedi sau infirma dacă acestea două creează același set de răspunsuri pentru $d$.
Condiția de generare a $p$ și $q$ este asta $(p-1)$ și $(q-1)$ ambele sunt relativ prime pentru $e$ (exponentul public) deci ambele formule au răspunsuri.
Tot de atunci $p$ și $q$ ambele sunt prime, $(p-1)$ și $(q-1)$ vor fi ambele numere pare și de la $a \times b=\text{GDC}(a, \space b) \times \text{LCM}(a, \space b)$ noi stim aia $\text{GCD}(p-1, \space q-1) \geq 2$ asa de $\text{LCM}(p-1, \space q-1) \neq (p-1)(q-1)$.
Întrebarea mea este sunt aceleași sau diferite?
De asemenea, aș aprecia dacă ați putea să mă îndreptați în direcția corectă din punct de vedere matematic, astfel încât să pot rezolva singur acest lucru.
P.S.: Am înțeles că pentru openssl v1 există un modul FIPS și, de asemenea, că openssl v3.0 va încerca să aplice pentru un certificat FIPS 140-2. Din păcate, am rămas blocat cu versiunea pe care am menționat-o și nu o pot schimba (nu depinde de mine).