![]() |
![]() |
||
| RSA |
[modulo-Rechnen]
[modulares Potenzieren]
[Algorithmus von Euklid]
[Euler-Funktion]
[Satz von Euler]
[modulares Inverses]
[Primzahlen finden]
[Schlüsselpaar]
[Angriff]
[Sicherheit]
|
||
|
Hohenstaufen-Gymnasium Kaiserslautern |
|

// Herrmann, Algorithmen Arbeitsbuch, S.133
type
tP = array[1..50] of integer;
tH = array[1..50] of integer;
procedure primfak(n : longint; var p : tP; var h : tH);
var
t,w : longint;
diff,i : integer;
begin
for i := 1 to 50 do h[i] := 0;
i := 0;
for t := 2 to 3 do
if n mod t = 0
then
begin
i := i+1; p[i] := t;
while n mod t = 0 do
begin
n := n div t;
h[i] := h[i] + 1;
end;
end;
t := 5; diff := 2;
w := round(sqrt(n));
while t <= w do
begin
if n mod t = 0
then
begin
i := i+1; p[i] := t;
while n mod t = 0 do
begin
n := n div t;
h[i] := h[i] + 1;
end;
end;
t := t + diff; diff := 6 - diff;
end;
if n > 1
then
begin
i := i + 1; p[i] := n; h[i] := h[i] + 1;
end;
end;