Ich bemerkte, dass der öffentliche Schlüssel immer auf 17 festgelegt ist = 11 und als ich sah in die rsa.cpp in Crypto ++, dass der öffentliche Schlüssel ist behoben!
... mein Projekt funktioniert gut, aber ich möchte nur wissen, warum ..
, dass der öffentliche Exponent ist, und Sie können es ändern. Siehe InvertibleRSAFunction Class Reference.
InvertibleRSAFunction
ist ein seltsamer Name, wenn Sie nicht mit der Bibliothek vertraut sind, aber es gibt einen Typ definieren für typedef InvertibleRSAFunction PrivateKey
in rsa.h
. RSA::PrivateKey
‚s Initialize
Funktion, die die RandomNumberGenerator
nimmt, ist derjenige, der Schlüssel erstellt:
void Initialize (RandomNumberGenerator &rng, unsigned int modulusBits, const Integer &e=17)
Die einzige Voraussetzung für den öffentlichen Exponenten (e
) ist es phi co-prime oder prim sein. Phi ist Eulers Φ-Funktion, und es ist definiert als (p-1)*(q-1)
. Es stellt sicher, dass es eine Umkehrung gibt (der private Exponent d
).
Der öffentliche Exponent wird normalerweise für ein niedriges Hamming-Gewicht ausgewählt, um öffentliche Schlüsseloperationen schneller zu machen. Ein niedriges Hamming-Gewicht bedeutet, dass es sehr wenige Einsen hat, und typische Werte sind 3 (0x3), 17 (0x11) und 65537 (0x10001). Weniger 1 macht die Exponentiation für die Public-Key-Operationen schnell.
Zur Vollständigkeit der öffentliche Schlüssel ist {n,e}
. Der private Schlüssel ist {n,e,d}
. Private Schlüssel mit CRT-Parametern sind {n,e,d,p,q,dp,dp,u}
.
Das ist nur der Exponent. Der Modul sollte unterschiedlich sein. – hammar
Cross-Site-Duplikat: [In RSA-Verschlüsselung, muss der Wert von E zufällig sein?] (Http://crypto.stackexchange.com/q/5572/13022) –
Danke, ich habe es durch Lesen der verlinkten Artikel. .. – Mona