Elementare Zahlentheorie und Kryptographie
Elementare Zahlentheorie und Kryptographie
Elementare Zahlentheorie und Kryptographie
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Entschlüsselung: Alice empfängt c ∈ Z/N <strong>und</strong> berechnet die (bis zu) vier<br />
Wurzeln sqrt(c). Sie kann dazu den chinesischen Restsatz verwenden, weil sie p<br />
<strong>und</strong> q kennt. Die Nachricht muß eine dieser bis zu 3 vier Wurzeln sein.<br />
Beispiel: Alice hat als öffentlichen Schlüssel N = 77 gewählt 4 . Bob will die<br />
Nachricht m = [10] an Alice schicken. Die Verschlüsselung von m ist m 2 =<br />
[100] = [23]. Bob schickt also [23] an Alice. □<br />
Beispiel: Alice kennt die Primfaktorzerlegung von 77 = pq; p = 7, q = 11.<br />
Sie erhält die Nachricht c = [23]. Um dies zu entschlüsseln muß sie sqrt([23] 77 )<br />
berechnen. Sie kann von vorne herein davon ausgehen, daß X 2 = [23] 77 lösbar<br />
ist - das liegt hier in der Natur des Verfahrens.<br />
Eine Lösung von X 2 = [23] 7 (= [2] 7 ) über F 7 ist (beachte 7 = 3 mod 4)<br />
w 7 := [2] (7+1)/4<br />
7 = [4] 7 .<br />
Eine Lösung von X 2 = [23] 11 (= [1] 11 ) über F 11 ist w 11 = [1] 11 (offensichtlich).<br />
Alice löst das System<br />
u = 4 mod 7<br />
u = 1 mod 11<br />
<strong>und</strong> findet die Lösung u = 67-<br />
Dann löst sie das System v = −4 mod 7<br />
v = 1 mod 11<br />
<strong>und</strong> findet die Lösung v = 45.<br />
Also gilt<br />
sqrt([23] 77 ) = {[67] 77 , [−67] 77 , [45] 77 , [−45] 77 } = {[10] 77 , [32] 77 , [45] 77 , [67] 77 }.<br />
Welcher dieser vier Werte der Klartext ist, kann sie nicht rekonstruieren. Wir<br />
werden unten erläutern, wie man diesen “Mißstand” beheben kann. □<br />
Der entscheidende Vorteil des Rabin-Verfahrens ist, daß man wirklich beweisen<br />
kann, daß das Berechnen der Wurzeln aus einem Geheimtext c ∈ (Z/N) ×<br />
genauso schwer ist, wie das Faktorisieren von N.<br />
In Anwendungen benötigt man geeignete Padding-Abbildungen pad : A ∗ →<br />
(Z/N) ∗ <strong>und</strong> repad : (Z/N) ∗ → A ∗ mit repad ◦ pad = Id, wobei A = {0, 1} oder<br />
A = ASCII gilt. pad verwandelt einen Bitvektor oder ASCII-Text in einen<br />
Vektor von Elementen in Z/N, der dann blockweise mit Rabin verschlüsselt<br />
<strong>und</strong> übertragen werden kann. Nach dem Entschlüsseln entsteht ein Vektor über<br />
Z/N, aus dem mit der Routine repad der ursprüngliche Bitvektor oder ASCII-<br />
Text gewonnen werden kann.<br />
Wer eine nicht randomisierte Padding-Abbildung verwendet, hat keinen Schutz<br />
gegen Wörterbuchangriffe der folgenden Form: Nimm an, Oskar kann alles<br />
abhören. Er will herausfinden, ob jemand den Text “Ich liebe Dich” an Alice<br />
3 Höchstwahrscheinlich werden es genau vier Wurzeln sein.<br />
4 Dies ist viel zu klein, um sicher zu sein.<br />
95