[Mathe] So richtig?
Von: Markus Wichmann (nullplan@gmx.net) [Profil]
Datum: 03.06.2007 15:36
Message-ID: <f3ug59$bjo$1@online.de>
Newsgroup: de.comp.lang.pascal
Datum: 03.06.2007 15:36
Message-ID: <f3ug59$bjo$1@online.de>
Newsgroup: de.comp.lang.pascal
Hi all,
mir ist gerade nicht ganz klar, ob ich die diskrete Exponentialfunktion
richtig verstanden habe. Es geht um meine RSA-Implementation, und da
baut sich eigentlich alles auf diesen Algorithmus auf. Also schrub ich
folgendes zusammen (mit Numerix hat irgendwie nichts so richtig
geklappt, bevor einer fragt):
function powermod(b, x, m: longword):longword;
{Berechnet b^x mod m, ohne Umweg über b^x}
begin
powermod := 1;
while x > 1 do begin
if x mod 2 = 1 then powermod := (powermod * b) mod m;
b := (b * b) mod m;
x := x div 2;
end;
end;
Das kompiliert auch, aber es kommen irgendwie zuviele 0en raus. Ich
lasse die Dateien binär byteweise verschlüsseln und schreibe das
Ergebnis in eine Textdatei, in der die Zahlen also in Strings
umgewandelt werden. Ich frage mich jetzt: Liegen die vielen 0en daran,
dass ich kleine Zahlen (longwords) benutze, oder ist der obige Algo
fehlerhaft? Wenn gewünscht, poste ich nochmehr Quelltext. Dazu wäre es
ganz gut zu wissen, _was_ zu posten ist.
TIA und tschö,
Markus
[ Auf dieses Posting antworten ]Antworten
- Wolf Behrenhoff (03.06.2007 17:49)
- Markus Wichmann (03.06.2007 21:58)
- bmahn (20.07.2007 17:53)
