Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Multiplikativ Inverses berechnen
detlef-d - Di 07.09.10 15:20
Titel: Multiplikativ Inverses berechnen
http://de.wikipedia.org/wiki/RSA-Kryptosystem#Beispiel
hi ich würde gerne eine rsa verschlüsselung programmieren zur übung, leider weis ich nicht wie ich das Multiplikativ Inverses berechnen kann. also quasi
gibt es dafür einen trick?
gruß
Moderiert von
Narses: Überflüssige Zeilenumbrüche/Leerzeilen entfernt.
Gammatester - Di 07.09.10 16:11
Warum einen Trick? Weshalb reicht Dir der erweiterte Euklidische Algorithmus wie im Wiki-Beitrag nicht?
yogo - Di 07.09.10 16:38
schau mal weiter unten im beispiel:
http://upload.wikimedia.org/math/5/6/2/562ed638eaf446f294076a996cbf4890.png
für e wählst du einfach eine primzahl(schau aber, ob der Wert der eulerschen Funktion nicht zufällig eine Vielfaches von e ist).
dann must du nur noch d und k ausrechnen. (e=23) * d + k *(φ(N)=120) = 1
das geht mit euklid:
http://de.wikipedia.org/wiki/Erweiterter_euklidischer_Algorithmus
der einfachste weg ist dort auf der seite beschrieben:
http://de.wikipedia.org/wiki/Erweiterter_euklidischer_Algorithmus#Rekursive_Variante_2
das müsste in delphi etwa so aussehen:(bestimmt keine gute lösung, hier gibt es aber bestimmt viele gute vorschläge, den dort beschriebenen algoritmus umzusetzen)
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29:
| type TEu = class(Tobject) d: integer; s: integer; t: integer; procedure fill(a: integer; b: integer; c: integer); end;
procedure TEu.fill(a: integer; b: integer; c: integer); begin d := a; s := b; t := c; end;
function euclid(a: integer; b: integer): TEu; var tmpeu: TEu; begin tmpeu := TEu.Create; if b = 0 then begin tmpeu.fill(a, 1, 0); end else begin tmpeu := euclid(b, a mod b); tmpeu := tmpeu.fill(tmpeu.d, tmpeu.t, tmpeu.s - floor(a / b) * tmpeu.t); end; result := tmpeu; end; |
hoffe das hilft, yogo
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!