PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RSA programmieren



Schakal_No1
25-12-2007, 20:17
Hi,

ich muss für die Schule ein kleines RSA-Script schreiben. Soll nix aufwendiges sein, einfach nur Zahlen in kleinem Bereich verschlüsseln um zu sehen, wie das ganze funktioniert.
Aufgebaut habe ich das Programm nach diesem (http://de.wikipedia.org/wiki/RSA-Kryptosystem#Erzeugung_des_.C3.B6ffentlichen_und_p rivaten_Schl.C3.BCssels) Verfahren.
Das klappt auch alles soweit ganz gut, nur wenn ich Zahlen größer als 19 verschlüsseln will, streikt das Programm schon, da die Werte einfach zu groß werden, selbst für int64 (int128 kann TPascal nicht, allerdings wär das immer noch nicht groß genug).
Weiß jemand Abhilfe? Extended kann ich nicht nehmen, da das nicht mehr auf ganze Zahlen genau ist, der rundet ab einem bestimmten Wert, wodurch man die ganze Rechnung vergessen kann.
Falls jemand braucht, kann ich auch den Programmcode posten.

jan61
31-12-2007, 12:47
Moin,

Du solltest den Wikipedia-Artikel noch mal genau lesen, im Abschnitt "Beispiel" steht nämlich Folgendes:
Zur Berechnung von 7^23 mod 143 kann die Kongruenzarithmetik (http://de.wikipedia.org/wiki/Kongruenz_%28Zahlentheorie%29) verwendet werden. Mit Hilfe der modularen Exponentiation (http://de.wikipedia.org/wiki/Modulare_Exponentiation) berechnet man schnell:
http://upload.wikimedia.org/math/8/f/d/8fd3b2d294ceebbd9249cc89859a3df0.png Dabei wendet man nach jedem Rechenschritt auf die zu handhabenden Zahlen die Modulo (http://de.wikipedia.org/wiki/Modulo)-Operation (kurz: mod) an, um die Ergebnisse möglichst „klein“ zu halten.Jan