18.11.2013 Aufrufe

Elementare Zahlentheorie und Kryptographie

Elementare Zahlentheorie und Kryptographie

Elementare Zahlentheorie und Kryptographie

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!