RSA-Berechnung d
Nicht sicher, ob dies ist der richtige Ort, um Fragen einer Krypto-Frage, aber hier geht.
Ich bin versuchen zu arbeiten, "d", "RSA", " ich habe gearbeitet, aus p, q, e, n und øn;
p = 79, q = 113, e = 2621
n = pq øn = (p-1)(q-1)
n = 79 x 113 = 8927 øn = 78 x 112 = 8736
e = 2621
d =
Ich kann nicht scheinen, um herauszufinden, d, ich weiß, dass d gemeint ist ein Wert,.. ed mod-ø(n) = 1. Jede Hilfe wird dankbar sein
edit: ein Beispiel wäre z.B. e = 17, d = 2753, øn = 3120
17 * 2753 mod 3120 = 1
- Diese Frage scheint off-topic, weil es um Kryptographie
- Die Frage verschoben werden soll crypto.stackexchange.com
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du suchst die modulare inverse von e (mod n), die berechnet werden können mit dem erweiterten euklidischen Algorithmus:
So, in Ihren Beispielen
inverse(17, 3120)
= 2753 undinverse(2621, 8736)
= 4373. Wenn Sie nicht möchten, die den Algorithmus implementieren, können Sie Fragen, Wolfram|Alpha für die Antwort.Den Algorithmus, den Sie brauchen, ist die Erweiterten Euklidischen Algorithmus. Dies ermöglicht Ihnen, die Berechnung der Koeffizienten von Bézout Identität, die besagt, dass für zwei beliebige nicht-null-Ganzzahlen
a
undb
gibt es ganze zahlenx
undy
so dass:Dies mag nicht unmittelbar nützlich, aber wir wissen, dass
e
undφ(n)
sind coprime,gcd(e,φ(n)) = 1
. Also der Algorithmus gibt unsx
undy
so dass:Dies ist äquivalent zu sagen
ex mod φ(n) = 1
, sox = d
.d
Sie brauchen.Beispielsweise die Sie brauchen, um d in die nächste:
3*d = 1 (mod 9167368)
ist das ebenso:
3*d = 1 + k * 9167368, wo k = 1, 2, 3, ...
umschreiben:
d = (1 + k * 9167368)/3
Ihre d muss die ganze Zahl mit dem niedrigsten k.
Schreiben wir die Formel:
d = (1 + k * fi)/e
let ' s test folgenden code: