RichardK wrote:RSA Key selber basteln wär ja mal was...
Oh, weh ... RSA ist schon etwas schwiriger ...
RSA ist zunächst einmal asymmetrisch, d.h. ein Schlüssel zum Ver-, einer zum Entschlüsseln der Nachricht. Man erzeugt (oder nutzt) die allgemeinen Parameter p, q; erzeugt den öffentlichen Schlüssel d und den geheimen Schlüssel e.
Mit dem allgemeinen Parameter und dem öffentlichen Schlüssel lässt sich nun eine Nachricht verschlüsseln, die dann mittels e vom Empfänger wieder entschlüsselt werden kann.
Das ganze basiert darauf, dass man eine hohe Zahl aus zwei Priemfaktoren p und q errechnet:
n = p * q
phi(n) = (p-1)(q-1)
p, q brauchste dann nicht mehr.
Danach denkt man sich zwei weitere Zahlen aus:
d, e | ggt(d, phi(n)) = ggt(e, phi(n)) = 1 (d.h. es gibt nur den gemeinsamen Teiler 1, d und e sind teilerfremd zu phi(n)
weiter d * e kongruent 1 mod phi(n)
Jetzt erzeugt man die verschlüsselte Nachricht (N = originalnachricht)
X = N^d mod n, und veröffentlicht X und N (bzw. verschickt dies)
per X^e kongruent N^(d*e) kongruent N^1 mod n (e ist der geheime schlüssel) kann der empfänger (=besitzer des geheimen schlüssel) die Nachricht wieder entschlüsseln.
Ähnlich lässt sich hiermit eine Signatur erzeugen:
X = N^e mod n
N = X^d mod n (jeder, der den öffentlichen Schlüssel d kennt, kann die Signatur prüfen.
Die Priemzahlen sind hier so interessant, da sich teilerfremde Zahlen erzeugen lassen. D.h. mit mathematischen Verfahren (z.B. Potenzieren) erzeugte verschlüsselte nachrichten lassen sich eindeutig zurückrechnen, und die chance, Angriffspunkte im Verfahren zu finden, sinkt.
---
keine Garantie auf Richtigkeit, das war ein grober Abriss
