Universita¨tPaderborn Fakulta¨tfu¨rElektrotechnik,InformatikundMathematik Institutfu¨rMathematik Elementare Kryptographie KaiGehrs [email protected] Paderborn,9.Juli2007 Inhaltsverzeichnis 1 Grundlagen:(Computer)Algebra 3 1.1 AdditionundMultiplikation . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 “RepeatedSquaring”(EffizientesPotenzieren) . . . . . . . . . . . . . . . . . 4 1.3 DivisionmitRest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.4 DerEuklidischeAlgorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.5 BerechnungmodularerInverser . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.6 DerChinesischeRestsatz . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.7 DieEulerscheϕ-Funktion . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.7.1 DiedurchschnittlicheOrdnungvonϕ(n) . . . . . . . . . . . . . . . 15 1.8 Kettenbru¨che . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 1.9 EinigegruppentheoretischeResultate. . . . . . . . . . . . . . . . . . . . . . 24 1.9.1 DerSatzvonLagrange . . . . . . . . . . . . . . . . . . . . . . . . . 24 1.9.2 DerSatzvonEulerundderkleineSatzvonFermat . . . . . . . . . . 25 2 GrundlagenausderZahlentheorie 27 2.1 FindenvonPrimzahlenundPrimzahltest . . . . . . . . . . . . . . . . . . . . 27 2.2 FaktorisierungganzerZahlen . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.2.1 DiePollardρ-MethodezurFaktorisierungganzerZahlen . . . . . . . 31 2.2.2 Dixon’sZufallsquadrate . . . . . . . . . . . . . . . . . . . . . . . . 34 3 DiskreteLogarithmen 37 3.1 GrundlegendeDefinitionen . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.2 Der“Baby-Schritt-Riesen-Schritt”Algorithmus . . . . . . . . . . . . . . . . 38 3.3 DerGeburtstagsangriffaufdendiskretenLogarithmus. . . . . . . . . . . . . 39 3.4 DiePollardρ-Methode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.5 Der“Chinese-Remaindering”Algorithmus . . . . . . . . . . . . . . . . . . . 43 3.6 DerAlgorithmusvonPohlig&Hellman . . . . . . . . . . . . . . . . . . . . 45 3.7 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 3.8 Index-Kalku¨lfu¨rdendiskretenLogarithmusinZ× . . . . . . . . . . . . . . 47 p 3.9 ArithmetischeSchaltkreise . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.9.1 (Deterministische)arithmetischeSchaltkreise . . . . . . . . . . . . . 49 1 3.9.2 ProbabilistischearthmetischeSchaltkreise . . . . . . . . . . . . . . . 51 4 EinigeKryptosysteme 53 4.1 Vorbemerkungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.1.1 SymmetrischeundAsymmetrischeKryptosysteme . . . . . . . . . . 53 4.1.2 Alice,BobundEve . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 4.1.3 “BlockCiphers”und“StreamCiphers” . . . . . . . . . . . . . . . . 54 4.2 Rijndael . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 4.2.1 AlgebraischeGrundlagen. . . . . . . . . . . . . . . . . . . . . . . . 56 4.2.2 EinigeszurSpezifikation . . . . . . . . . . . . . . . . . . . . . . . . 57 4.2.3 Verschlu¨sselungvonNachrichtenmitRijndael . . . . . . . . . . . . 57 4.3 DasRSA-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 4.3.1 DerAngriffvonWieneraufRSA . . . . . . . . . . . . . . . . . . . 61 4.4 DiffieundHellmanSchlu¨sselaustauschverfahren . . . . . . . . . . . . . . . 62 4.4.1 “Woman-in-the-Middle”Angriff . . . . . . . . . . . . . . . . . . . . 63 4.5 DasKryptosystemvonEl’Gamal . . . . . . . . . . . . . . . . . . . . . . . . 64 4.6 “SecretSharing” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 5 Unterschriften(Signaturen) 67 5.1 ZumKonzeptvonUnterschriftenverfahren . . . . . . . . . . . . . . . . . . . 67 5.2 DasUnterschriftenverfahrenvonElGamal . . . . . . . . . . . . . . . . . . . 68 5.3 Fa¨lschungssicherheit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 5.3.1 DieAngriffevonMitchellaufElGamalUnterschriften . . . . . . . . 69 5.3.2 Zur unvorsichtigen Benutzung des Unterschriftenverfahrens von El- Gamal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 5.4 SchnorrUnterschriften . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 6 Hash-Funktionen 73 6.1 EinespezielleHash-Funktion . . . . . . . . . . . . . . . . . . . . . . . . . . 74 6.2 HashingvonBlocknachrichten . . . . . . . . . . . . . . . . . . . . . . . . . 75 6.2.1 KryptosystemeundHash-Funktionen . . . . . . . . . . . . . . . . . 76 6.3 Zeitstempel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 7 IdentifikationundAuthentifikation 77 7.1 DasIdentifikationsverfahrenvonSchnorr . . . . . . . . . . . . . . . . . . . 78 7.2 DasIdentifikationsverfahrenvonOkamoto . . . . . . . . . . . . . . . . . . . 79 7.3 EinRSA-basiertesIdentifikationsschema. . . . . . . . . . . . . . . . . . . . 80 7.4 EinsicheresSchlu¨sselaustauschverfahren . . . . . . . . . . . . . . . . . . . 81 Literaturverzeichnis 83 2 Kapitel 1 Grundlagen aus Algebra und Computeralgebra IndiesemKapitelwerdendiegrundlegendentheoretischenHilfsmittelausderComputeralge- bradiskutiert,dieno¨tigsind,umdieKorrektheitdesRSAVerfahrens4.1beweisenzuko¨nnen. Ferner werden wir Algorithmen zitieren und ihre Laufzeiten analysieren, um begru¨nden zu ko¨nnen, dass die vorgestellten Kryptosysteme fu¨r ihre berechtigten Benutzer effizient ver- wendetwerdenko¨nnen.Laufzeitenwerdenwieu¨blichinderO-Notationangegeben: Definition 1.1. Seien f,g:Z→R Funktionen mit f(n),g(n)≥0 fu¨r alle n(cid:29)0. Dann gilt g∈O(f),fallsg(n)≤c· f(n)fu¨rallen≥N mitN ∈Nundc∈R. Damit bedeutet g∈O(f) im wesentlichen nichts anderes, als dass g bis auf Multiplikation miteinerKonstantenc∈R“ho¨chstenssoschnellwa¨chst”wie f. 1.1 Addition und Multiplikation Wir werden uns in der Regel auf die Addition und Multiplikation von ganzen Zahlen oder Polynomen u¨ber einem kommutativen Ring beschra¨nken. Zur Addition zweier Polynome f,g ∈ R[x] mit f = ∑ni=0ai·xi und g = ∑mi=0bi·xi u¨ber einem kommutativen Ring R mit Einselement werden O(max{m,n}) Operationen in R beno¨tigt. Fu¨r die Multiplikation von f undgbeno¨tigenwirmittelsbloßemAusmultiplizierenderSummendarstellungenO(m·n) RingoperationeninR. Jede ganze Zahl x∈Z ko¨nnen wir in Bina¨rdarstellung in der Form x=∑ni=−01xi·2i mit xi ∈ {0,1}fu¨ri=0,...,n−1schreiben.DieZahlnheißtdanndieBina¨rla¨ngevonx. Lemma 1.2. Addition zweier n-Bit Zahlen x,y∈Z ist mit O(n) Bit-Operationen durchfu¨hr- bar. Beweis. Wir schreiben x=∑ni=−01xi·2i sowie y=∑ni=−01yi·2i mit xi,yi ∈{0,1} fu¨r alle i= 0,...,n−1.AdditionvonxundywirdkomponentenweiseaufdenBitsdurchgefu¨hrt.Daraus folgtdieBehauptung. 3 4 KAPITEL1. GRUNDLAGEN:(COMPUTER)ALGEBRA Lemma 1.3. Multiplikation zweier n-Bit Zahlen x,y ∈ Z ist mit O(n2) Bit-Operationen durchfu¨hrbar. Beweis. Wir schreiben x=∑ni=−01xi·2i sowie y=∑ni=−01yi·2i mit xi,yi ∈{0,1} fu¨r alle i= 0,...,n−1. Analog zur Multiplikation von Polynomen beno¨tigt man O(n·n)=O(n2) Bit- Operationen. Bemerkung 1.4. Es sind schnellere Methoden zur Multiplikation zweier n-Bit Zahlen be- kannt. So beno¨tigt z.B. ein Algorithmus, der auf Scho¨nhage und Strassen zuru¨ckgeht, nur O(nlognloglogn)Bit-Operationen. 1.2 “Repeated Squaring” (Effizientes Potenzieren) IneinerReihekryptographischerVerfahrenistesvonessentiellerWichtigkeit,dassmaneffi- zientauchgroßePotenzenvonGruppenelementenberechnenkann.DasindiesemAbschnitt kurzvorgestellteVerfahrenkannuniversellineinerbeliebigenGruppeGverwendetwerden, um xk fu¨r ein Element x ∈ G und k ∈ N zu berechnen. Aus diesem Grund geben wir den AlgorithmuszurBerechnungsolcherPotenzenauchzuna¨chstinsehrallgemeinerForman. Algorithmus 1.5. (“Repeated Squaring”) Sei G eine Gruppe, x∈G und k∈N. Ferner sei k=∑ni=−01ki·2i dieBina¨rdarstellungderZahlkmitkn−1=1. (1) Setzey:=x. (2) Fu¨ri=n−2,...,0berechne: y:=y2 Istk =1,soberechnezusa¨tzlichy:=y·x. i (3) Gebey=xk aus. AnstatteinesKorrektheitsbeweises,beidemmandieGu¨ltigkeiteinerentsprechendgeschickt gewa¨hltenInvariantenachweist,betrachtenwireinkleinesBeispiel: Beispiel 1.6. Sei G eine Gruppe und x∈G. Wir wollen x20 mit Hilfe von Algorithmus 1.5 berechnen.Esistk k k k k =10100dieBina¨rdarstellungderZahl20.Zuerstsetzenwiry:= 4 3 2 1 0 x. Wegen k =0 setzen wir y:=y2 =x2 und verzichten auf eine zusa¨tzliche Multiplikation 3 mitx.Imna¨chstenSchrittistk =1zubetrachten.Wirberechnenalsozuersty:=y2=x4und 2 dann zusa¨tzlich y:=y·x=x5. Wegen k =k =0 sind die na¨chsten beiden auszufu¨hrenden 1 0 Schrittey:=y2=x10undzuletztistderWertvonyeinweiteresMalzuquadrieren:y:=y2= x20. InderNotationvon1.5erhaltenwirfu¨rdieLaufzeitdesAlgorithmus: Korollar1.7. Algorithmus1.5berechnetinSchritt(2)O(n)-maldasQuadratdesElementes yundO(n)-maldasProduktvonymitx.InsgesamtergibtsichdamiteineLaufzeitvonO(n· M ),wobeiM dieLaufzeitfu¨reineMultiplikationzweierElementeinGbeschreibt. G G 1.3. DIVISIONMITREST 5 1.3 Division mit Rest SowohlimRingderganzenZahlenalsauchimPolynomringu¨bereinemKo¨rperko¨nnenwir stets Division mit Rest durchfu¨hren. Division mit Rest ist essentieller Bestandteil des Eu- klidischen Algorithmus und von modularer Arithmetik. Es soll an dieser Stelle weniger auf algorithmischeDetailseingegangenwerden.AlsBeispielbetrachtenwirhiernurdieDivisi- on mit Rest fu¨r Polynome u¨ber einem Ko¨rper. Auf a¨hnliche, aber ein wenig kompliziertere Weise, lassen sich auch Algorithmen zur Division mit Rest von ganzen Zahlen angeben, die aufihrenBina¨rdarstellungenoperieren. Algorithmus 1.8. (Division mit Rest) Seien f =∑ni=0ai·xi und g=∑mi=0bi·xi Polynome ausF[x],FeinKo¨rper. (1) Setzer:= f. (2) Fu¨ri=n−m,...,0wiederhole: Wenndegr=m+i,sosetzeq := lc(r) undr:=r−q ·xi·g. i bm i Andernfallssetzeq :=0. i (3) Gebeq=∑ni=−0mqi·xi aus. Danngilt f =q·g+rmitdegr<degg. Algorithmus1.8beno¨tigtimwesentlichen(n−m+1)·(2m)AdditionenundMultiplikationen inF.Damitfolgt: Lemma1.9. DivisionmitResteinesPolynoms f vomGradndurcheinPolynomgvomGrad mmitn>mbeno¨tigtO(n2)OperationenimzugrundeliegendenKoeffizientenring. A¨hnlicheResultatelassensichauchfu¨rganzeZahlenangeben.OhneBeweisgebenwiran: Lemma 1.10. Sind a,b∈Z mit Bina¨rla¨ngen n bzw. m, so ist Division mit Rest a=q·b+r mit q,r∈Z und 0≤r<|b| mit O(m·(n−m)) Bit-Operationen durchfu¨hrbar, wobei n−m imwesentlichendieBina¨rla¨ngedesQuotientenqbeschreibt. 1.4 Der Euklidische Algorithmus ZurErinnerungstellenwirdiesemAbschnittdiefolgendenbeidenelementarenDefinitionen voran: Definition 1.11. Sei R ein Ring. Dann heißt a ein Teiler von b, a|b, falls es ein r∈R gibt mitb=r·a. Definition 1.12. Sei R ein euklidischer Ring (d.h. ein Ring, in dem man zwei Elemente per DivisionmitRestdurcheinanderdividierenkann). 6 KAPITEL1. GRUNDLAGEN:(COMPUTER)ALGEBRA (i) Dannheißtd∈Reingro¨ßtergemeinsamerTeilervona,b∈R,d=ggT(a,b),fallsd|a undd|bundfu¨ralles∈Rmits|aunds|bstetss|d folgt. (ii) EinElementk∈RheißtkleinstesgemeinsamesVielfachesvonaundb,k=kgV(a,b), fallsa|kundb|kundfu¨rallel∈Rmita|l undb|l stetsk|l folgt. Fu¨rR=Zsprechenwirha¨ufigvon“dem”gro¨ßtengemeinsamenTeilerundmeinendamitden eindeutigbestimmtenpositivengro¨ßtengemeinsamenTeilerzweierganzerZahlen.Gleiches giltfu¨rdaskleinstegemeinsameVielfachezweierganzerZahlen.ImfolgendenLemmafassen wir ohne Beweis einige der wesentlichen Eigenschaften des gro¨ßten gemeinsamen Teilers ganzerZahlenzusammen: Lemma1.13. Seiena,b,c∈Z.Danngilt: (i) ggT(a,b)=|a|genaudann,wenna|b. (ii) ggT(a,a)=ggT(a,0)=|a|undggT(a,1)=1. (iii) Kommutativita¨t:ggT(a,b)=ggT(b,a). (iv) Assoziativita¨t:ggT(a,ggT(b,c))=ggT(ggT(a,b),c). (v) Distributivita¨t:ggT(c·a,c·b)=|c|·ggT(a,b). (vi) Gilt|a|=|b|,sofolgtstetsggT(a,c)=ggT(b,c). (vii) Istg=ggT(a,b),g>0,soexistierens,t ∈Zmitg=s·a+t·b. Die Darstellung Lemma 1.13 (vii) liefert der Erweiterte Euklidische Algorithmus, der in ei- nembeliebigeneuklidischenRingdurchgefu¨hrtwerdenkann.WirgebenihnderEinfachheit halbernurfu¨rganzeZahlenan.DiehiervorgestellteVersionkannaberleichtineineVersion fu¨r Polynome “umgeschrieben” werden, wenn man die entsprechenden Ungleichungen als Ungleichungenu¨berdenGradderbetrachtetenPolynomeinterpretiert. Vorab aber noch ein kleines Lemma, das uns beim Beweis der Korrektheit des Algorithmus sehrnu¨tzlichseinwird: Lemma1.14. Seiena,b∈Z.Danngilt:ggT(a,b)=ggT(amodb,b). Beweis. Division mit Rest liefert a = q·b+(amodb). Es gilt: ggT(a,b) teilt sowohl a als auch b, also auch amodb = a−q·b und damit ggT(amodb,b). Umgekehrt teilt ggT(amodb,b)sowohlamodbalsauchbunddamitaucha=q·b+(amodb).Wirerhalten alsoggT(a,b)|ggT(amodb,b)undggT(amodb,b)|ggT(a,b).DarausfolgtdieBehauptung. Algorithmus 1.15. (Erweiterter Euklidischer Algorithmus (EEA)) Seien a,b ∈ Z mit |a|≥|b|. 1.4. DEREUKLIDISCHEALGORITHMUS 7 (1) Setzer :=a,r :=b,s :=1,s :=0,t :=0,t :=1undi:=1. 0 1 0 1 0 1 (2) WiederholedenfolgendenSchritt,bisr =0giltfu¨reinl∈N : l+1 0 Berechneq :=r divr alsganzzahligenQuotientenvonr undr. i i−1 i i−1 i r :=r −q ·r (d.h.r =r modr) i+1 i−1 i i i+1 i−1 i s :=s −q ·s i+1 i−1 i i t :=t −q ·t i+1 i−1 i i i:=i+1 (3) Geber ,s undt aus. l l l Dannistr eingro¨ßtergemeinsamerTeilervonaundbundesgiltr =s ·a+t ·b. l l l l Beweis. (Korrektheit) Der Erweiterte Euklidische Algorithmus 1.15 terminiert, denn es gilt fu¨r r mit i≥2 die Ungleichung 0≤r =r modr <r ≤a. Damit bilden die Reste i i i−2 i−1 i−1 r eine streng monoton fallende Folge ganzer Zahlen, die nach unten durch 0 beschra¨nkt ist, i d.h.derAlgorithmusmussterminieren.Wirzeigennun,dassfu¨ralleigilt: s ·a+t ·b=r. i i i Fu¨ri=0undi=1istdieBehauptungklarperDefinitionvonr ,r ,s ,s ,t ,t .Seinuni≥2. 0 1 0 1 0 1 DannfolgtperInduktion: s ·a+t ·b=(s −q ·s )·a+(t −q ·t )·b i i i−2 i−1 i−1 i−2 i−1 i−1 =(s ·a+t ·b)−(q ·s ·a+q ·t ·b) i−2 i−2 i−1 i−1 i−1 i−1 =r −q ·(s ·a+t ·b) i−2 i−1 i−1 i−1 =r −q ·r i−2 i−1 i−1 =r i Damit folgt fu¨r i=l mit s ·a+t ·b=r die behauptete Darstellung. Es bleibt zu zeigen, l l l dass r in der Tat ein gro¨ßter gemeinsamer Teiler von a und b ist. Mit Lemma 1.14 und l a = (adivb)·b+(amodb) = q ·b+r folgt ggT(a,b) = ggT(amodb,b) = ggT(r ,b) = 1 2 2 ggT(r ,r ).Wegenr =r modr folgtggT(r ,r)=ggT(r modr,r)=ggT(r ,r). 2 1 i+1 i−1 i i−1 i i−1 i i i+1 i Wegenr =0undr =ggT(r ,r )folgtperRekursionr =ggT(r ,r )=ggT(a,b). l+1 l l+1 l l 2 1 WirbetrachteneinBeispiel: Beispiel1.16. Seiena=126undb=35.zuna¨chstdefinierenwirr :=126,r :=35,s :=1, 0 1 0 8 KAPITEL1. GRUNDLAGEN:(COMPUTER)ALGEBRA s :=0,t :=0undt :=1.DannfolgenwirderVorschriftaus1.15: 1 0 1 i=1 q =r divr =126div35=3 1 0 1 r =r −q ·r =126−3·35=21 2 0 1 1 s =s −q ·s =1−3·0=1 2 0 1 1 t =t −q ·t =0−3·1=−3 2 0 1 1 i=2 q =r divr =35div21=1 2 1 2 r =r −q ·r =35−1·21=14 3 1 2 2 s =s −q ·s =0−1·1=−1 3 1 2 2 t =t −q ·t =1−1·(−3)=4 3 1 2 2 i=3 q =r divr =21div16=1 3 2 3 r =r −q ·r =21−1·14=7 4 2 3 3 s =s −q ·s =1−1·(−1)=2 4 2 3 3 t =t −q ·t =−3−1·4=−7 4 2 3 3 i=4 q =r divr =14div7=2 4 3 4 r =r −q ·r =14−2·7=0 5 3 4 4 Damitfolgt:ggT(126,35)=r =7und7=2·126+(−7)·35. 4 Nun wollen wir uns u¨berlegen, welche Kosten der Erweiterte Euklidische Algorithmus fu¨r zweiganzeZahlenaundbbeansprucht. Theorem 1.17. Der Erweiterte Euklidische Algorithmus 1.15 fu¨r zwei Zahlen a,b∈Z mit |a|≥|b|undn:=blog |a|c+1beno¨tigtO(n)WiederholungenvonSchritt(2)undinsgesamt 2 eineLaufzeitvonO(n2)Bit-Operationen. Beweis. Im folgenden setzen wir o.E. a,b≥0 voraus. Es sei l die Anzahl der Schritte, die der Erweiterte Euklidische Algorithmus bei Eingabe a und b beno¨tigt, bis er s ,t ,r ausgibt l l l mitr =ggT(a,b)undr =s ·a+t ·b.DannerhaltenwirinderNotationvon1.15 l l l l r =q ·r +r ≥r +r >2·r , i−1 i i i+1 i i+1 i+1 dadieFolgederResteeinestrengmonotonfallendeFolgenichtnegativerganzerZahlenbil- det.Alsofolgt l−1 l−1 ∏r >2l−2·∏r . i−1 i+1 i=2 i=2