Geben Sie bei einer positiven Ganzzahl ein RSA-Schlüsselpaar (sowohl den privaten als auch den öffentlichen Schlüssel) aus, dessen Schlüssellänge Bits beträgt .
Der Algorithmus zur RSA-Schlüsselgenerierung lautet wie folgt:
- Wählen Sie eine Bit-Semiprime . Die Primfaktoren von seien und .
- Berechnen Sie .
- Wählen Sie eine ganze Zahl so dass und .
- Berechnen Sie .
Der öffentliche Schlüssel besteht aus und . Der private Schlüssel ist .
Regeln
- Sie können davon ausgehen, dass mindestens ein Semiprime mit der Bitlänge .
- Die Ausgabe kann in einem konsistenten und eindeutigen Format erfolgen.
- und müssen aus diskreten Gleichverteilungen ausgewählt werden.
- Sie können davon ausgehen, dass kleiner oder gleich der maximalen Anzahl von Bits für in Ihrer Sprache darstellbare Ganzzahlen ist, wenn Ihre Sprache eine solche Einschränkung aufweist.
Antworten:
JavaScript (ES7), 190 Byte
Rückgabe
[n,e,d]
.Probieren Sie es online aus!
Aufgrund der begrenzten Größe des Aufrufstapels kann dies für fehlschlagen .N.> 13
Kommentiert
quelle
Gelee ,
30292726 BytesProbieren Sie es online aus!
Erläuterung
quelle
Axiom, 230 Bytes
b in b (x) würde das Bit len von x finden; Randnum (x) mit x einer positiven ganzen Zahl wäre eine Funktion, die eine Pseudozufallszahl im Bereich 0 .. (x-1) zurückgibt; P in P (n) würde eine pseudozufällige Primzahl im Bereich 2 ^ (n-1) finden. (2 ^ n-1) [Länge dieses Bereichs 2 ^ n-1-2 ^ (n-1) = 2 ^ (n-1) -1]; R in R (n) würde [n, e, d] finden, wie die Übung sagt.
quelle