LU06g - RSA-Verfahren im Detail
Entstehung
Whitfield Diffie und Martin Hellman hatten in den 1970er Jahren eine Theorie zur Public-Key-Krytographie veröffentlicht. Die drei Mathematiker Rivest, Shamir und Adleman versuchten diese Theorie zu widerlegen. Dabei stiessen sie auf ein Verfahren, bei dem sie keine Angriffspunkte fanden.
Aus diesem Verfahren entstand 1977 RSA, das erste veröffentlichte Verschlüsselungsverfahren.
Funktionsweise
RSA basiert auf einem privaten Schlüssel (private key) und einem öffentlichen Schlüssel (public key).
Beide Schlüssel bestehen aus jeweils zwei Zahlen, die mit den Variablen d
, e
und N
bezeichnet werden:
- Der public key besteht aus
e
undN
- Der private key besteht aus
d
undN
- N ist bei beiden Schlüsseln gleich und wird
RSA-Modul
genannt.
Um die Schlüssel zu berechnen, geht man wie folgt vor:
- Wähle zwei unabhängige, unterschiedliche Primzahlen
p
undq
.- Zum Beispiel:
p = 11
undq = 13
- Berechne das RSA-Modul:
N = p * q
.- N = 11 * 13 = 143
- Berechne die Eulersche ϕ-Funktion von
N
:ϕ(N) = (p-1) * (q-1)
- ϕ(N) = 10 * 12 = 120
-
- e = 23
- Berechne die Zahl
d
mit Hilfe des erweiterten euklidischen Algorithmus anhand der Formele * d + k * ϕ(N) = 1
.- 23 * 47 + (-9) * 120 = 1
Somit erhalten wir den private key (47, 143) und den public key (23, 143).
Verschlüsseln
Der Absender möchte die Klartext-Nachricht t
verschlüsseln und dabei den Chiffre-Text c
erhalten.
Er berechnet c = ( t
e
) mod N
Beispiel
Der Absender möchte die Zahl 7 verschlüsselt senden.
- Der public key ist (e=23, N=143)
c = ( 7
23
) mod 143 = 2
Entschlüsseln
Der Empfänger erhält den Chiffre-Text c
und möchte den Klartext t
erhalten.
Er berechnet t = ( c
d
) mod N
.
Beispiel
Der Empfänger erhält den Chiffre-Text 2
.
- Der private key ist (d=47, N=143)
t = ( 2
47
) mod 143 = 7