dh-Materialien Einführung in Maple    Anwendungen
|  Home  |  Back  |  <   >  |

Informatik
 

Einführung in Maple
  Hinweise
  Übersicht
  Übungen
  Anwendungen
  Stichworte
  Download
 

Public-Key-Verschlüsselung

restart;

Die zu verschlüsselnde Nachricht, die Alice an Bob schicken möchte:

Nachricht:= "I love you";

Umwandeln der Nachricht in eine Zahl m (message ):

c:= convert (Nachricht, bytes);
z:= 0:
for i from 1 to nops(c) do z:= 256*z + c[i]; od:
m:= z;


Berechnen der Schlüssel von Alice:

p:= nextprime (43672342156995):
q:= nextprime (271141486213133):
public1[A]:= p*q;                       # öffentlich
h:= (p-1)*(q-1) + 1:
ifactor (h);
public2[A]:= op(1, op(3, ifactor (h))); # öffentlich
secret[A]:= h/public2[A];               # geheim




Berechnen der Schlüssel von Bob:

p:= nextprime (7858462424243636):
q:= nextprime (1237432424242):
public1[B]:= p*q;                       # öffentlich
h:= (p-1)*(q-1) + 1:
ifactor (h);
public2[B]:= op(1, op(3, ifactor (h))); # öffentlich
secret[B]:= h/public2[B];               # geheim



public2[B] := 139
secret[B] := 69959109413285411384914015

Signieren von m durch Alice:

m_signiert:= m &^ secret[A] mod public1[A];

Versiegeln von m_signiert durch Alice mit Hilfe des öffentlichen Schlüssels von Bob:

m_signiert_versiegelt:= m_signiert &^public2[B] mod public1[B];

Entschlüsseln dieser Zahl durch Bob:

m_sign:= m_signiert_versiegelt &^ secret[B] mod public1[B];

Entfernen der Signatur durch Bob:

m_orig:= m_sign &^ public2[A] mod public1[A];

Umwandeln dieser Zahl in die ursprüngliche Nachricht:

z:= m_orig:
i:= 0:
while z > 0 do
  i:= i + 1:
  cod[i]:= z mod 256:
  z:= (z - cod[i])/256: 
end:
cod:= [seq(cod[i-j+1], j=1..i)];
convert (cod, bytes);

Copyright

Valid HTML 4.01 Transitional

|  Home  |  Back  |  Top  |