Krypthographie Franziska Bartonek, Katharina Rasch 30. Juni 2015 1 Einleitung Die Kryptologie besteht aus 2 Hauptbereichen: der Kryptographie und der Kryptoanalyse. Bei der Kryptographie geht es darum eine Kommunikation zwischen zwei Partnern sicher zu gestalten, sodass ein Angreifer nicht herausfinden kann was bei der Kommunikation gesprochen wird. Die Kryptoanalyse widmet sich den Methoden um eine Verschlüsselung von geheimen Kommunikationen herauszufinden. In diesem Vortrag widmen wir uns hauptsächlich der Kryptographie und insbesonder dem RSA-Verschlüsselungsverfahren. Definition 1.1. (KRYPTOSYSTEM) Ein Kryptosystem ist ein 5-Tupel (P, C, K, E, D) bestehend aus: • P ... endliche Menge von Klartexten {a,b,c,d, ... ,z} • C ... endliche Menge von Chiffretexten {A,B,C, ... ,Z} • E ... Verschlüsselungsfunktion ek , k ∈ K • D ... Entschlüsselungsfunktion dk , k ∈ K • K ... endliche Menge von Schlüsseln Definition 1.2. (RSA-KRYPTOSYSTEM) Es sei n eine Zahl, welche das Produkt zweier ungerader Primzahlen p und q ist: n = p · q mit p ̸= q . Sei ϕ (n) die Eulersche Phi-Funktion von n. Seien P = C = Zn und sei K die Menge der Tupel {(n, e, p, q, d)|e, d ∈ {2, ..., ϕ(n) − 1} ∧ e · d ≡ 1 mod (ϕ(n)). 1 Für einen Schlüssel K = (n, e, p, q, d) definieren wir Ver- und Entschlüsselungsfunktion: ek (x) = xe mod (n) und dk (x) = y d mod (n), für alle x, y ∈ Zn . Bemerkung 1.3. (EUKLIDISCHER ALGORITHMUS) Gegeben sind zwei Zahlen x, y ∈ N mit x ≤ y. Ausgegeben wird eine Zahl d ∈ N. 1. Finde q ∈ N und r ∈ 0, 1, ..., x − 1 mit y = q · x + r. 2. Ist r=0, dann setze d:= x und beende. 3. Rufe den Algorithmus rekursiv mit y:=x und x:=r auf und gebe das berechnete d zurück. 2 Hauptresultat Bemerkung 2.1. Für eine Primzahl p gilt ϕ (p) = p − 1. Satz 2.2. (CHINESISCHER RESTSATZ) Es sei k ∈ N und m1 , ..., mk ∈ N\ {1} relativ prim (also ggT (mi , mj ) = 1 ∀1 ≤ i < j ≤ k). Dann gibt es zu beliebigen ganzen Zahlen r1 , ..., ∏krk mit 0 ≤ ri < mi für i = 1, ..., k genau eine ganze Zahl x mit 0 ≤ x < i=1 mi , sodass x mod (mi ) = ri für i = 1, ..., k. ∏ Beweis: Es sei n = ki=1 mi Wir betrachten die beiden Mengen A := {0, 1, ..., n − 1} und B := {(r1 , ..., rk ) ∈ Zk |0 ≤ ri < mi für i = 1, ...k} Nach Definition sind A und B gleichmächtig es gilt also |A| = |B| = n Wir betrachten nun die Abbildung f : A → B mit f (x) := (x mod (m1 ), ..., x mod (mk )) für x ∈ A. Falls die Abbildung f bijektiv ist, dann gibt es zu jedem (r1 , ..., rk ) ∈ B genau ein x ∈ A mit f (x) = (r1 , ...rk ). Das impliziert dann sofort die Behauptung des Satzes. zz.: Abbildung f ist bijektiv Die Abbildung f ist bijektiv, falls f injektiv und surjektiv ist. Injektivität: Es seien x, y ∈ A mit f (x) = f (y). Dann gilt x mod (mi ) = y mod (mi ) für i = 1, ..., k 2 ∏ zz.: n = ki=1 mi | x − y Wir beweisen mittels Induktion: ∏1 I.A.: k=1: n = i=1 mi = m1 x mod (m1 ) = y mod (m1 ) ⇔ m1 · l1 + x = m1 · l2 + y mit l1 , l2 ∈ Z ⇔ m1 · (l1 − l2 ) = x − y wobei l1 − l2 ∈ Z ⇔ m1 | x − y I.V.: n = ∏k i=1 mi |x − y I.S.: ∏ k →k+1 ∏ n = k+1 mk+1 · ki=1 mi i=1 mi = ∏ nach I.V. gilt ki=1 mi | x − y und wegen x mod (mk+1 )= y mod (mk+1 ) gilt auch mk+1∏ |x−y Da mk+1 und ki=1 mi nach Voraussetzung des Satzes teilerfremd sind folgt mit folgendem Satz: Falls a und b teilerfremd sind und a | c, b | c gilt folgt a · b | c. ⇒n= ∏k i=1 mi | x − y, was mit Induktion zu zeigen war. Da x, y ∈ A gilt −n < x − y < n und damit folgt aus n | (x − y) sofort x − y = 0, also x = y. Daraus folgt, dass die Abbildung f injektiv ist, was zu beweisen war. Algorithmus 2.3. (HERSTELLUNG RSA-SYSTEM) 1. 2 Primzahlen p und q werden generiert 2. setze n := p · q und ϕ (n) := (p − 1) (q − 1) 3. wähle einen Exponent e mit 2 ≤ e ≤ ϕ (n) und ggT (e, ϕ (n)) = 1 4. setze d := e−1 mod (ϕ(n)) 5. der öffentliche Schlüssel lautet:(n, e), der private Schlüssel lautet: (p, q, d) 6. Verschlüsselung mittels ek 7. Entschlüsselung mittels dk 3 Korollar 2.4. (RECHNEN MODULO n UND MODULO ni ) Seien ggT (mi , mj ) = 1, 1 ≤ r < j < k und n = m1 · ... · mk dann gilt: a ≡ x mod (m1 ) .. a ≡ x mod (n) ⇔ . a ≡ x mod (mk ) Korollar 2.5. (MULTIPLIKATIVITÄT VON ϕ) Seien n1 , ..., nk paarweise teilerfremde natürliche Zahlen. Dann gilt: ϕ(n1 , ..., nk ) = ϕ(n1 ) · ... · ϕ(nk ). Satz 2.6. (SATZ VON EULER) Sei a, n ∈ N dann gilt: ggT (a, n) = 1 ⇒ aϕ(n) ≡ 1 mod (n). Satz 2.7. (SATZ VON FERMAT) Sei p eine Primzahl. Dann gilt für alle a ∈ N, die nicht durch p teilbar sind: ap−1 ≡ 1 mod (p) (Der Beweis folgt direkt aus dem Satz von Euler, da für Primzahlen p ϕ(p) = p − 1 gilt) Satz 2.8. (KORREKTHEIT VON RSA) Für alle x ∈ Zn , gilt dk (ek (x)) = x, dh. dk (ek (x)) ≡ x mod (n) Beweis: Da n = p · q mit Primzahlen p, q gilt und wegen dem Korollar 2.5: ϕ(n) = ϕ(p · q) = ϕ(p) · ϕ(q) = (p − 1) · (q − 1). Wegen ed ≡ 1 mod (ϕ(n)) gilt: ϕ(n) |(1 − ed) ⇔ k ·ϕ(n) = 1 − ed für k ∈ Z ⇔ 1+k ·ϕ(n) = ed ⇔ ed = 1+ k ·(1 − p) · (1 − q), also kann ed als ed = 1 + k(p − 1)(q − 1) für eine ganze Zahl k geschrieben werden. Sei x ∈ Zn beliebig. Falls p ∤ x, dann gilt: (xe )d = xed = x1+k(p−1)(q−1) = x · xk(p−1)(q−1) = x · (xp−1 )k(q−1) ≡ x mod (p) Falls aber p | x, dann gilt ebenfalls (xe )d ≡ x mod (p), weil beide Seiten ≡ 0 mod (p) sind. Genauso zeigt man, dass (xe )d ≡ x mod (q) für alle x ∈ Zn gilt. Nach dem Korollar 2.5 (Rechnen modulo N und modulo ni ) zum 4 Chinesischen Restsatz gilt dann auch (xe )d ≡ x war. 3 mod (n), was zu zeigen Beispiele Beispiel 3.1. (RSA SYSTEM AUFSETZEN) 1. p= 101, q=113 2. daraus folgt n = p · q = 11413, ϕ (n) = (p − 1) (q − 1) = 11200 3. es gilt: 112000 = 26 52 7, wähle e= 3533 ist nicht teilbar durch 2,5,7 4. e−1 mod (11200) = 6597 ⇒ d=6597 ist Entschlüsselungsschlüssel 5. Veröffentlichung des öffentlichen Schlüssels (n, e) = (11413, 3533) der private Schlüssel (p, q, d) = (101, 113, 6597) wird geheim gehalten 6. Verschlüsseln von x=9726: 97263533 mod (11413) = 5761, der Chiffretext lautet also 5761 7. Entschlüsseln von 5761: 57616597 ten die Originalnachricht. mod (11413) = 9726 und wir erhal- Literatur [1] M.Skutella, Mathematik für Informatik , Universität Dortmund (2007), 52–70. [2] E.Best, Kryptographie , Universität Oldenburg (2004), 52–70. 5