Materialien zum Unterricht

Verschlüsseln

1. Funktion schluessel() umschreiben

Die Funktion schluessel() aus der letzten Übung wird umgeschrieben. Sie heißt jetzt mache_schluessel() und gibt nur die drei Schlüssel zurück. Da mit return nur ein Wert zurückgegeben werden kann, müssen die drei Zahlen in einem Array verpackt werden:

schl[0]=e;
schl[1]=N;
schl[2]=d;
return schl;

2. Verschlüsseln

Das Verschlüsseln erfolgt erfolgt in einer neuen Funktion verschluesseln(). Zu Beginn soll einfach eine Ziffer verschlüsselt werden. Wähle eine kleine Ziffer, z.B. 8.

Die Verschlüsslungsfunktion hat die Form:

C ≡ Ke mod N

Das heißt: der Klartext K (also z.B. die 8) wird hoch e genommen. Diese Zahl wird modulo N gerechnet. Der dann verbleibende Rest ist der Geheimtext C. Wichtig: K muss kleiner als N sein.

Das Problem: Das Potenzieren des Klartextes K mit e liefert ruck zuck Zahlen mit mehr als 17 Stellen. Dann geht aber JavaScript in die Knie und die Verschlüsslung wird unbrauchbar.

Die Lösung: Die Funktion potenz_modulo(b, e, mo) erwarte die drei Werte Basis b, Exponent e und Modulo mo. Sie liefert den Rest, also das C, für die Verschlüsslung zurück.

3. Entschlüsseln

Die Entschlüsslungsfunktion hat die Form:

K ≡ Cdmod N

Dazu wird wieder die Funktion potenz_modulo(b,e,mo) verwendet.
Wenn alles ordentlich funktioniert, sollte die 8 wieder erscheinen. Gib im Browser den öffentlichen und privaten Schlüssel, den Geheimtext und den dechiffrierten Klartext aus.

4. Zusatz

* eine interaktive übung zur RSA-Verschlüsslung

zurück