11.07.2015 Aufrufe

Kryptologie und Datensicherheit - Diskrete Mathematik - Universität ...

Kryptologie und Datensicherheit - Diskrete Mathematik - Universität ...

Kryptologie und Datensicherheit - Diskrete Mathematik - Universität ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Universität TübingenWilhelm-Schickard-InstitutArbeitsbereich <strong>Diskrete</strong> <strong>Mathematik</strong>Leitung: Prof. Dr. Peter HauckVorlesung WS 2008/2009Stand: 26. Januar 2009<strong>Kryptologie</strong> <strong>und</strong> <strong>Datensicherheit</strong>Die Vorlesung wurde für Diplom- <strong>und</strong> Masterstudierendemit 4 SWS, für Bachelorstudierende mit 3 SWSgehalten.Die Teile, die für die Bachelorstudierenden entfallen,sind im Inhaltsverzeichnis mit (∗) gekenntzeichnet.Herstellung der TeX-Fassung des Vorlesungsskripts: Jürgen SommerÜberarbeitung: Jonas Bochtler


4.4 Hintereinanderausführung von Blockchiffren, Diffusion <strong>und</strong>Konfusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494.5 Feistel-Chiffren . . . . . . . . . . . . . . . . . . . . . . . . . . 504.6 Der ’Data Encryption Standard’ DES . . . . . . . . . . . . . 534.6.1 R<strong>und</strong>enschlüsselerzeugung . . . . . . . . . . . . . . . . 554.6.2 Beschreibung der Verschlüsselungsfunktion f Ki . . . . . 564.6.3 Sicherheit des DES . . . . . . . . . . . . . . . . . . . . 594.6.4 Effizienz der DES-Verschlüsselung . . . . . . . . . . . . 65(∗) 4.7 Differentielle Kryptoanalyse am Beispiel des DES . . . . . . . 654.8 Endliche Körper . . . . . . . . . . . . . . . . . . . . . . . . . . 754.9 Der Advanced Encryption Standard (AES)Das Rijndael-Verfahren . . . . . . . . . . . . . . . . . . . . . . 784.10 Andere Blockchiffren . . . . . . . . . . . . . . . . . . . . . . . 865 Betriebsarten von Blockchiffren 885.1 Electronic Codebook Mode (ECB Mode) . . . . . . . . . . . . 885.2 Cipherblock Chaining Mode (CBC Mode) . . . . . . . . . . . 885.3 Cipher Feedback Mode (CFB Mode) . . . . . . . . . . . . . . 905.4 Output Feedback Mode (OFB Mode) . . . . . . . . . . . . . 926 Stromchiffren 936.1 Synchrone Stromchiffren . . . . . . . . . . . . . . . . . . . . . 936.2 Selbstsynchronisierende Stromchiffren . . . . . . . . . . . . . . 946.3 Schieberegister . . . . . . . . . . . . . . . . . . . . . . . . . . 966.4 Lineare Schieberegister . . . . . . . . . . . . . . . . . . . . . . 976.5 Eigenschaften von linearen Schieberegistern . . . . . . . . . . 986.6 Lineare Komplexität . . . . . . . . . . . . . . . . . . . . . . . 1003


Abbildungsverzeichnis1 Gr<strong>und</strong>schema einer Verschlüsselung zwischen Alice <strong>und</strong> Bob . 92 Die Teildisziplinen Kryptographie <strong>und</strong> Kryptoanalyse . . . . . 113 Strom- vs Block-, Substitutions- vs Transpositionschiffre . . . 144 Zuordnung bei homophoner Substitutionschiffre . . . . . . . . 225 Glättung der Buchstabenhäufigkeiten bei Vigenère-Verschlüsselung . . . . . . . . . . . . . . . . . . . . . . . . . . 266 Schematischer Signallaufplan ENIGMA . . . . . . . . . . . . . 277 Schematischer Ablauf einer Feistel-Chiffrierung . . . . . . . . . 508 R<strong>und</strong>enschlüsselerzeugung . . . . . . . . . . . . . . . . . . . . 559 Schematische Darstellung der Berechnung von f K (R) . . . . . 5910 Schematischer Ablauf des Rijndael-Verfahrens . . . . . . . . . 7911 Transformationen . . . . . . . . . . . . . . . . . . . . . . . . . 8012 Verschlüsselung selbstsynchronisierender Stromchiffren . . . . 9413 Entschlüsselung selbstsynchronisierender Stromchiffren . . . . 9414 Rückgekoppeltes Schieberegister . . . . . . . . . . . . . . . . . 9615 Binäres lineares Schieberegister der Länge n . . . . . . . . . . 9716 Nichtlineare Kombination von linearen Schieberegistern . . . . 10417 Nichtlineare Filtergeneratoren . . . . . . . . . . . . . . . . . . 10518 Stop-and-Go-Generator . . . . . . . . . . . . . . . . . . . . . . 1055


Tabellenverzeichnis1 Häufigkeitsverteilung der Buchstaben in deutschsprachigenTexten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 Häufigste Digramme in deutschsprachigen Texten . . . . . . . 183 Exemplarische Zeichenfolgeabstände, Ermittlung v. d nachKasiski . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304 Teiltexte 1-5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 Die 8 S-Boxen des DES, repräsentiert durch acht 4×16 Matrizen 586 Output-Differenzen der S-Box S 1 für Input-Differenz B ′ =(010100) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 677 Anzahl der verschiedenen Output-Differenzen der S-Box S 1 beiInput-Differenz (010100) . . . . . . . . . . . . . . . . . . . . . 678 Input-/Output-Differenzen bei S-Box S 1 . . . . . . . . . . . . 696


Einleitung<strong>Kryptologie</strong>: Wissenschaft von der sicheren Übermittlung (oder Speicherung)von Daten.Übermittlung erfolgt über Kanäle: Kupferleitung, Glasfaser, drahtlose Kommunikation,etc.Folgende Beeinträchtigungen sind möglich:• zufällige Störungen• systematische (physikalisch bedingte Störungen)• passive Beeinträchtigungen (Abhören von Telefongesprächen, Lesen vonMails, Speichermedien)• aktive Beeinflussung (Verändern von Daten, Nachrichten)Die ersten beiden Punkte sind Thema der Codierungstheorie <strong>und</strong> der Signalverarbeitung.Die letzten beiden betreffen die <strong>Kryptologie</strong>.Praktisch alle kryptologischen Verfahren haben die Aufgabe, eine (oder mehrere)der folgenden fünf Anforderungen an die Übermittlung bzw. Speicherungvon Nachrichten zu gewährleisten:• Geheimhaltung (Lesen der Nachricht für Unbefugte unmöglich bzw.schwierig zu machen)• Authentifizierung (Identitätsbeweis einer Person oder eines Rechnersgegenüber einer anderen (Teilnehmerauthentizität) oder Nachweis desUrsprungs einer Nachricht (Nachrichtenauthentizität))• Integrität (Nachricht darf während ihrer Übermittlung nicht (von Unbefugten)verändert werden, ohne dass dies bemerkt wird.)• Verbindlichkeit (Der Sender kann später nicht leugnen, die Nachrichtabgeschickt zu haben)• Anonymität (In manchen Situationen soll der Sender oder Empfängeranonym bleiben)7


Früher: Vor allem Geheimhaltung wichtig; hauptsächlich im militärischenBereich; Bsp.: Strategische Bedeutung der legendären ChiffriermaschineENIGMA während des 2. Weltkrieges; führende Beteiligung AlanTurings am Brechen der Verschlüsselung.Heute: Zivile Anwendungen noch wichtiger, insbesondere wegen des enormenWachstums netzgestützter Kommunikation (Internet).Inhalt der Vorlesung• Symmetrische Verschlüsselungsverfahren• Asymmetrische Verschlüsselungsverfahren (Public Key Systeme)• Theoretische Gr<strong>und</strong>lagen: Kryptographisch sichere Pseudozufallsfolgengeneratoren,Einwegfunktionen, kryptologische Hash-Funktionen• Digitale Signaturen <strong>und</strong> Authentifizierung• Zero-Knowledge-Verfahren• Multiparty-Protokolle• Anonymität8


1 Gr<strong>und</strong>begriffeKlartext (plaintext)Zeichenfolge über Alphabet RSender(Alice)SchlüsselVerschlüsselungChiffrierung(encryption)Geheimtext, Chiffretext(ciphertext), Kryptogramm:Zeichenfolge über Alphabet S (ggf. R=S)Empfänger(Bob)SchlüsselEntschlüsselungDechiffrierung(decryption)KlartextAbbildung 1: Gr<strong>und</strong>schema einer Verschlüsselung zwischen Alice <strong>und</strong> BobDie Verschlüsselung geschieht mit einem Verschlüsselungsverfahren, Chiffrieralgorithmus.Die Verschlüsselung eines Klartextes durch diesen Algorithmus erfolgt mitHilfe eines Schlüssels k e (key, encryption key).Das Verschlüsselungsverfahren ist dann eine Funktion E, die jedem beliebigenKlartext m (message) einen Chiffretext c in Abhängigkeit vom Chiffrierschlüsselk e zuordnet:c = E(m, k e )Dabei muss gelten: Für jeden Schlüssel k e istE(m 1 , k e ) ≠ E(m 2 , k e ) falls m 1 ≠ m 2 ,d.h. E(., k e ) ist injektiv; sonst könnte man nicht eindeutig entschlüsseln.Schlüssel sind ebenfalls Zeichenfolgen (Passwort, Geheimzahl, Bitfolge ...).Die Entschlüsselung des Chiffretextes c erfolgt dann mit einem zum Verschlüsselungsverfahrengehörenden Entschlüsselungsverfahren mit Hilfe einesDechiffrierschlüssels k d (decryption key), der von k e abhängt.9


Entschlüsselungsfunktion D:D(c, k d ) = m[Häufig schreiben wir auch E ke (m) statt E(m, k e ) <strong>und</strong> D kd (c) statt D(c, k d ).]Ist k d = k e (oder lässt sich k d leicht aus k e bestimmen), so spricht man vonsymmetrischen Verschlüsselungsverfahren. Ist k d aus k e nicht oder nur mitsehr großem Aufwand berechenbar, so kann man k e auch öffentlich machen:asymmetrische Verschlüsselungsverfahren oder Public-Key-Verfahren.Die Gesamtheit aus Verschlüsselungsverfahren <strong>und</strong> aller Schlüssel wird Kryptosystemgenannt.Beispiel:R = S = {0, 1, . . ., 25}Verfahren: Verschiebeschiffre (Shift Cipher)Verschlüsselung: x ∈ R, x → x + i mod 26 für ein i ∈ {0, 1, . . ., 25}Schlüssel: iEntschlüsselung: x → x − i mod 26(Symmetrisches Verfahren)Ist m = k 1 . . .k r , k i ∈ R,so E(m, i) = ((k 1 + i) mod 26) . . .((k r + i) mod 26) = l 1 . . .l r = cD(C, i) = ((l 1 − i) mod 26) . . .((l r − i) mod 26) = m.(Caesarchiffre: i = 3)Ein Verschlüsselungsverfahren beinhaltet i. Allg. sehr viele verschiedene Verschlüsselungsmöglichkeiten,die jeweils durch einen Schlüssel festgelegt sind.Kommunikationspartner müssen sich gr<strong>und</strong>sätzlich über das Verschlüsselungsverfahreneinigen <strong>und</strong> vor der Übertragung die Schlüssel vereinbaren(entfällt bei Public-Key-Verfahren).Geheimgehalten werden muss der Schlüssel k d (d.h. bei symmetrischen Verfahrender gemeinsame Schlüssel). Das Verfahren lässt sich i. Allg. nichtgeheimhalten (<strong>und</strong> sollte auch nicht geheimgehalten werden).Kerkhoff’sches Prinzip:Die Sicherheit eines Verschlüsselungsverfahrens darf nur von der Geheimhaltungdes Schlüssels abhängen, nicht jedoch von der Geheimhaltung desAlgorithmus.10


Bei symmetrischen Verschlüsselungsverfahren muss daher der Schlüssel k(=k e = k d ) auf sicherem Weg übermittelt werden.Weshalb dann nicht gleich die ganze Nachricht auf sicherem Wege übermitteln?• Nachricht lang, Schlüssel kurz• Zeitpunkt der Schlüsselübergabe ist frei wählbar.• Mehrere Nachrichten können mit gleichem Schlüssel verschlüsselt werden.Mit Hilfe der Public-Key-Verfahren (asymmetrische Verfahren) hat man dieMöglichkeit, die Schlüssel ohne Gefahr auszutauschen.Beispiel:Biryukov, Shamir <strong>und</strong> Wagner haben 1999 den Verschlüsselungsalgorithmus(A5) geknackt, der GSM-Handy-Telefonate auf der Funkstrecke zur Mobiltelefon-Basisstationschützt. GSM-Association hat den Algorithmus geheimgehalten(GSM-Group Special Mobile Standard für Funktelefone).<strong>Kryptologie</strong>Kryptographiebeschäftigt sich mitdem Entwurf von VerschlüsselungsverfahrenKryptoanalyseuntersucht, wie Verschlüsselungsverfahrenzu brechen sindAbbildung 2: Die Teildisziplinen Kryptographie <strong>und</strong> KryptoanalyseHeute wird häufig der Begriff ”Kryptographie” synonym mit ”<strong>Kryptologie</strong>”verwendet.Die Kryptoanalyse prüft, wie schwer ein Kryptosystem zu knacken ist. Hinsichtlichder Schwere eines Angriffs können folgende qualitative Unterscheidungenin absteigender Reihenfolge getroffen werden:• Vollständiges Aufbrechen:Schlüssel k d wird gef<strong>und</strong>en. Dann kann jede Nachricht, die mit demzugehörigen Schlüssel k e verschlüsselt wurde, entschlüsselt werden.11


• Globale Deduktion:Finden einer zu D(., k d ) äquivalenten Funktion ohne Kenntnis des Schlüssels(ggf. nur für gewisse k e ).• Lokale Deduktion:Finden des Klartextes für nur einen abgefangenen Chiffretext.Wichtige Arten von Angriffen:(Angreifer heisst oft Mallory (malicious) - aktiv, oder Eve (eavesdropper,Lauscher) - passiv.)• Ciphertext-Only-Attack:Der Kryptoanalytiker verfügt über eine bestimmte Menge Chiffretext.• Known-Plaintext-Attack:Der Kryptoanalytiker kennt zusätzlich den zum Chiffretext gehörendenKlartext.• Chosen-Plaintext-Attack:Der Kryptoanalytiker kann einen beliebigen Klartext vorgeben <strong>und</strong> hatdie Möglichkeit, den zugehörigen Chiffretext zu erhalten (relevant v.a.bei Public-Key-Systemen).• Chosen-Ciphertext-Attack:Kryptoanalytiker kann bel. Chiffretext vorgeben <strong>und</strong> erhält zug. Klartext.Aus dieser Kenntnis versucht er dann, k d zu bestimmen, oder zueinem anderen Chiffretext den Klartext zu erhalten.Daneben: Angriffe, die auf physikalisch-technischen Gegebenheiten der Kommunikationberuhen. Oder Angriffe durch Gewalt, Bestechung, Erpressung.Diese Angriffe sind oft sehr wirkungsvoll. Der Besitzer des Schlüssels stellt(neben fehlerhaften Implementierungen von Verschlüsselungsverfahren) diegrößte Sicherheitsgefahr dar.Ein Angriff, bei dem alle möglichen Schlüssel durchprobiert werden, heisstBrute-Force-Angriff.Daher: Menge der Schlüssel sollte möglichst groß sein (d.h. Schlüssellängemuss genügend groß sein!)Unterschied zwischen sicheren <strong>und</strong> uneingeschränkt sicheren Kryptosystemen:12


• Uneingeschränkt sicher:Auch bei Kenntnis von beliebig viel Chiffretext kann (beweisbar!) nichtgenug Information gewonnen werden, um daraus den Klartext oder denSchlüssel zu rekonstruieren (theoretisch sicher).• Sicher:Aufwand zur Entschlüsselung ist mit vertretbaren Kosten, Speicherkapazität,Zeitdauer zu groß (komplexitätstheoretisch sicher oder auchnur praktisch sicher beim Stand der jetzigen Kenntnis).Beispiel:Schlüssellänge 128 Bit. 2 128 ≈ 2, 5 · 10 38 Schlüssel.Seien 10 12 Schlüssel pro Sek<strong>und</strong>e testbar.Ang. 50 % der Schlüssel müssen getestet werden.Aufwand: 1, 25 · 10 26 Sek. ≈ 4 · 10 18 Jahre.Rechenzeit dauert etwa 400 Millionen mal länger als das Alter des Universums(≈ 10 10 Jahre).Demgegenüber:Schlüssellänge 56 Bit (z.B. DES, s. Kap. 4.6). 2 56 ≈ 7, 2 · 10 16 Schlüssel.Aufwand: 3, 6 · 10 4 Sek. = 10 St<strong>und</strong>en.13


2 Klassische symmetrische VerschlüsselungsverfahrenKlassisch: Verfahren vor 1970Es gibt zwei Typen von Unterscheidungen symmetrischer Verschlüsselungsverfahren:1. Unterscheidung:Stromchiffren (stream ciphers)Blockchiffren (block ciphers)in Verbindungmit2. Unterscheidung:SubstitutionschiffrenTranspositionschiffrenPermutationschiffrenAbbildung 3: Strom- vs Block-, Substitutions- vs TranspositionschiffreStromchiffre:Jedes Zeichen (oder jeder kurze Block) des Klartextes wird einzeln verschlüsselt.Blockchiffre:Klartext wird in Blöcke einer festen (i.a. nicht zu kleinen) Länge n zerlegt,<strong>und</strong> jeder Block wird einzeln verschlüsselt. (Es gibt auch Verfahren mit variablerBlocklänge.)Stromchiffren lassen sich nach dieser Definition als Blockchiffren mit derLänge 1 auffassen. In der Regel spricht man aber nur von Blockchiffren,wenn die Blöcke größere Länge haben.Darüber hinaus sind Stromchiffren in der Regel dadurch gekennzeichnet, dassaus einem Ausgangsschlüssel k ein Schlüsselstrom k i , k 2 , . . . erzeugt wird,wobei in einem Klartext m = m 1 m 2 . . . dann m 1 mit k 1 , m 2 mit k 2 , . . .verschlüsselt wird.Zweite Unterscheidungsmöglichkeit symmetrischer Verfahren:Substitutionschiffre:Jedes Zeichen des Klartextes wird durch ein Zeichen des Geheimtextalphabetsersetzt, die Position bleibt unverändert. Substitutionschiffren kommensowohl als Stromchiffren als auch als Blockchiffren vor.Transpositionschiffre:Der Klartext wird in Blöcke zerlegt, <strong>und</strong> die Zeichen innerhalb des Blocks14


werden permutiert. Zeichen bleiben also unverändert, Positionen werden verändert.Transpositionschiffren sind in der Regel Blockchiffren. (Es gibt allerdingsauch Transpositionschiffren, die ohne Blockzerlegung den gesamtenKlartext permutieren.)Substitutionschiffren <strong>und</strong> Transpositionschiffren sind die Urtypen symmetrischerVerfahren. Es gibt Verallgemeinerungen, die sich keiner dieser beidenTypen mehr zuordnen lassen, <strong>und</strong> Kombinationen dieser beiden Typen.Wir behandeln in diesem Kapitel zwei Typen von Substitutionschiffren, nämlichmonoalphabetische <strong>und</strong> polyalphabetische Substitutionen. Auf Transpositionschiffrenwerden wir kurz in Kapitel 4 über symmetrische Blockchiffreneingehen. Stromchiffren sind Gegenstand von Kapitel 6.2.A Monoalphabetische SubstitutionschiffrenEine Substitutionschiffre heißt monoalphabetisch, wenn jedes Klartextzeichenaus R immer auf dasselbe Chiffretextzeichen aus S abgebildet wird <strong>und</strong> dieseZuordnung injektiv ist.Wir nehmen der Einfachheit halber R = S an (keine wesentliche Einschränkung).|R| = n(z.B. n = 26, natürlichsprachiges Alphabet)Chiffrierverfahren:Anwendung einer Permutation σ von R auf die Buchstaben des Klartextes:m 1 . . .m k → σ(m 1 ) . . .σ(m k )Schlüssel: Permutation σAlso gibt es z.B. 26! ≈ 4 · 10 26 monoalphabetische Chiffrierungen über demnatürlichen Alphabet R = {a, b, . . .,z} (bzw. R = {0, 1, . . ., 25}).Sei R = {0, 1, . . ., n − 1}.Häufig wird nicht die gesamte Schlüsselmenge benutzt.15


2.1 Beispiele(a) Verschiebechiffre 1 :m → m + i mod nn verschiedene Schlüssel (nämlich alle i ∈ {0, 1, . . ., n − 1}.)(b) Affine Chiffren:Affine Chiffren sind eine Verallgemeinerung von Verschiebechiffren:m → am + b mod n, a, b ∈ {0, 1, . . ., n − 1}Diese Zuordnung ist bijektiv, falls ggT(a, n) = 1.Dann existiert nämlich a ′ ∈ {0, . . .,n−1} mit aa ′ ≡ 1 (mod n), <strong>und</strong> dieZuordnung m → a ′ m −a ′ b mod n ist die Inverse zu m → am+b mod n(m → am + b mod n → a ′ (am + b) − a ′ b mod n = m).Wie bestimmt man a ′ , das multiplikative Inverse mod n zu a?Erweiterter Euklidischer Algorithmus liefert s, t ∈mit as+nt = 1, daggT(a, n) = 1. Dann 1 = as mod n = a(s mod n), d.h. a ′ = s mod n.Die Umkehrung gilt ebenfalls, d.h. m → am + b mod n bijektiv ⇔ggT(a, n) = 1.Damit hat man ϕ(n) Möglichkeiten für a <strong>und</strong> insgesamt n·ϕ(n) Schlüssel(a, b). (ϕ ist die Eulersche ϕ-Funktion, d.h. für n ∈Æist ϕ(n) =|{i ∈Æ:1≤i≤n, ggT(i, n) = 1}|.)n = 26 :Beispiel:R= {0,1,. . .25}↑ ↑ ↑ ↑ ↑⏐ ⏐ ⏐ ⏐R= {a,b,. . . z }12 · 26 = 312 Schlüssel⏐⏐codierem → 7m + 12 mod 261 s. Kap. 1TEXT codiere−−−−→ 19, 4, 23, 19 chiffriere−−−−−−→ 15, 14, 17, 15 decodiere−−−−−→ PORP16


2.2 Kryptoanalyse monoalphabetischer SubstitutionschiffrenMonoalphabetische Verschlüsselungen natürlichsprachiger Texte sind kryptologischnicht sicher, selbst unter der schwächsten Annahme einer Ciphertextonly-attack.Dies liegt an der charakteristischen Häufigkeitsverteilung der Buchstabenin natürlichsprachigen Texten. Diese Häufigkeitsverteilung insgesamt ändertsich bei monoalphabetischen Verfahren nicht (es ändert sich nur die Häufigkeitder einzelnen Buchstaben), <strong>und</strong> das erlaubt in der Regel die Rekonstruktionder Klartexte schon aus Chiffretexten mit ca. 500 Buchstaben.Noch einfacher ist die Analyse bei Verschiebe- oder allgemeiner affinen Chiffren:Hier genügt die Identifikation eines bzw. zweier Buchstaben, um denSchlüssel zu knacken.Die Kryptoanalyse monoalphabetischer Substitutionschiffren beruht auf derHäufigkeitsanalyse von Chiffretextzeichen bzw. -digrammen (Digramm: Paaraufeinander folgender Zeichen).Natürliche Sprachen haben eine charakteristische Häufigkeitsverteilung vonBuchstaben <strong>und</strong> Digrammen (siehe Tabellen 1 u. 2).Buchstabe HäufigkeitE 17,5 % 27 %N 9,8 %I 7,7 %R 7,2 %S 7,1 % 35 %A 6,5 %T 6,1 %D 4,9 %H 4,5 %U 4,3 %L 3,5 % 28 %G 3,0 %C 2,9 %O 2,7 %M 2,5 %Buchstabe HäufigkeitB 1,9 %F 1,7 %W 1,7 %K 1,3 %Z 1,1 %P 0,9 %V 0,8 %J 0,3 %Y zus.X 0,1 %QTabelle 1: Häufigkeitsverteilung der Buchstaben in deutschsprachigen Texten17


Paar en er ch de te nd ei ie in esHäufigkeit(unter den 26 2 jeweilsjeweils2,5 - 3 %3,5 - 4,5 % 1,5 - 2,5 %= 676 Paaren)Tabelle 2: Häufigste Digramme in deutschsprachigen TextenBei monoalphabetischen Substitutionen bleiben diese Häufigkeitsverteilungenals Ganzes erhalten <strong>und</strong> erlauben die Rekonstruktion von Klartexten ausschon relativ kurzen Chiffretexten (ca. 500 Buchstaben).Beispiel:Gesucht wird ein Klartext in deutscher Sprache, der mittels monoalphabetischerSubstitution verschlüsselt wurde:upu ovkt hpe puvkjskvikwiku zkseswdzku nvwi, qkt gpsiik. akcsww cstq qktjkwkt bktwiokuqusw qoypkt zovku, qoww sdz ktwi ksueoj ksusak vkektfpuakupkvkt puwkt hcksipuvkjskvikwikw nvwi, qku fpktvsw, eodzk. qskwkujskvi lo wdzskt uskeouq. su untqoektsfo swi kw pkvjsdz, se nfinvkt fpktvswwkbnt wksuk zopwipktk hp jkaku, pe qku opinyoztktu hp wsauojswsktku, qowwkw nfinvkt swi. hp zojjnckku znji eou wsk qouu suw zopw puq jokwwi wskpuikt ouiksjuozek qkt aouhku yoesjsk yksktjsdz bktyopjku. upt <strong>und</strong>z ksusakitoqsisnuojswiku eodzku wsdz qsk epkzk, fpktvswintik hp vodfku, ckjdzkqouu su ojpesuspeynjsk akcsdfkji su qku fpkzjwdztouf akakvku cstq, pe qouuksusak cndzku wxokikt esi atnwwke zojjn puq sasii ajksdzyojjw su qku ovyojjhp couqktu.Zur Kryptoanalyse werden die Häufigkeitsverteilung der Buchstaben <strong>und</strong> Digrammein deutschsprachigen Texten mit der Verteilung im vorliegendenChiffretext verglichen.Buchstabe Anzahl Häufigkeit Buchstabe Anzahl HäufigkeitK 102 16,60% I 32 5,20%U 62 10,10% J 29 4,70%S 59 9,60% Q 24 3,90%W 44 7,20% Z 24 3,90%O 40 6,50% V 20 3,30%T 36 5,90% E 19 3,10%P 33 5,40% N 18 2,90%18


Buchstabe Anzahl Häufigkeit Buchstabe Anzahl HäufigkeitD 15 2,40% B 3 0,50%A 14 2,30% G 1 0,20%F 11 1,80% L 1 0,20%C 9 1,50% X 1 0,20%H 8 1,30% M - -Y 8 1,30% R - -Buchstabenhäufigkeiten im ChiffretextIm Chiffretext sind 503 Digramme enthalten.Digramm Anzahl HäufigkeitKU 20 4,00%KS 10 2,00%KW 8 1,60%KO - -KT 26 5,20%KP - -KI 1 0,20%Digramm Anzahl HäufigkeitUK 1 0,20%SK 13 2,60%WK 6 1,20%OK 3 0,60%TK 3 0,60%PK 9 1,80%IK 10 2,00%Häufigkeit der relevanten Digramme, die den Buchstaben K enthaltenAus der Buchstabenhäufigkeit entnimmt man:K wird dechiffriert zu E.Ferner zeigt sich, dass sehr wahrscheinlich U oder S zu N dechiffriert wird.Da bei den Digrammen KU doppelt so häufig vorkommt wie KS, nehmen wiran:U wird dechiffriert zu N.Unter allen relevanten Digrammen, die K enthalten, treten einzig im Paar(KS,SK) beide Digramme mit einer Häufigkeit von jeweils mindestens 2 %auf. Es ist daher plausibel anzunehmen:S wird dechiffriert zu I.Aus der Digrammhäufigkeit von KT ergibt sich:T wird dechiffriert zu R.19


Ersetzt man im Chiffretext die Chiffretextbuchstaben k,u,s,t durch die ihnenvermutlich zugeordneten Klartextbuchstaben E,N,I,R, so ergibt sich:NpN ovER hpe pNvEjIEviEwiEN zEIeIwdzEN nvwi, qER gpIiiE. aEcIwwcIRq qER jEwER bERwioENqNIw qoypER zovEN, qoww Idz ERwi EINeojEINIaE vEeERfpNaEN pEvER pNwER hcEIipNvEjIEviEwiEw nvwi, qENfpERvIw, eodzE. qIEwEN jIEvi lo wdzIER NIEeoNq. IN NnRqoeERIfo IwiEw pEvjIdz, Ie nfinvER fpERvIwwE bnR wEINE zopwipERE hp jEaEN, peqEN opinyozRERN hp wIaNojIwIEREN, qoww Ew nfinvER Iwi. hp zojjncEENznji eoN wIE qoNN INw zopw pNq joEwwi wIE pNiER oNiEIjNozeEqER aoNhEN yoeIjIE yEIERjIdz bERyopjEN. NpR Nndz EINIaE iRoqIi-InNojIwiEN eodzEN wIdz qIE epEzE, fpERvIwinRiE hp vodfEN, cEjdzEqoNN IN ojpeINIpeynjIE aEcIdfEji IN qEN fpEzjwdzRoNf aEaEvEN cIRq,pe qoNN EINIaE cndzEN wxoEiER eIi aRnwwEe zojjn pNq IaIii ajEIdzyojjwIN qEN ovyojj hp coNqERN.Nun ergeben sich unmittelbar weitere Ersetzungen:P wird dechiffriert zu U, W wird dechiffriert zu S, O wird dechiffriert zu A,etc.Es ist dann einfach, die vollständige Dechiffrierung vorzunehmen:ChiffretextABCDEFGHIJKL(M)KlartextGVWCMKQZTLEJChiffretextNOPQ(R)STUVWXYZKlartextOAUDIRNBSPFHDer dechiffrierte Text lautet also:Nun aber zum unbeliebtesten heimischen Obst, der Quitte. Gewiss wird derLeser Verstaendnis dafuer haben, dass ich erst einmal einige Bemerkungen20


1 2 n.. . . . . . ... .. . .. .. f(r ) . .f(r )f(r )12 n. . . ...... . . .. .Abbildung 4: Zuordnung bei homophoner SubstitutionschiffreVerfahren: Ein Klartext m = r 1 r 2 . . . wird chiffriert in c = c 1 c 2 . . .,wobei c i zufällig aus f(r i ) gewählt wird.Schlüssel: Abb. f, d.h. {f(r)|r ∈ R}(Dieses Verfahren wurde schon um 1400 in Italien verwendet.)Vorteil der homophonen Substitution:Die Häufigkeitsverteilung der Klartextbuchstaben wird zerstört.Ist r ∈ R <strong>und</strong> p(r) die Häufigkeit, in der r im Klartext auftaucht, wählt manf(r) so groß, dassp(r)≈ c Konstante, unabhängig von r|f(r)|Man benötigt dazu ein großes Alphabet S.In einem Chiffretext treten dann alle Buchstaben aus ∪r∈Rf(r) etwa gleichoft auf. Damit ist keine direkte Häufigkeitsanalyse mehr möglich. Dennochwerden auch hier z.B. Digramme zur Kryptoanalyse verwendet.Wir machen dies an einem Beispiel klar:Angenommen die homophone Substitution f eines deutschsprachigen Texteswurde so gewählt, dass im Chiffretext alle Buchstaben mit etwa gleicherHäufigkeit vorkommen.D.h. |f(Buchstabe)| ∼ Häufigkeit des Buchstabens in Texten der deutschenSprache.Ist z.B. |f(c)| = α ∈Æ, so folgt aus der Häufigkeit von e, n, r, h in deutschsprachigenTexten, dass annähernd Folgendes gilt:|f(e)| = 6α, |f(n)| = 3, 5α, |f(r)| = 2, 5α, |f(h)| = 1, 5α22


Das Digramm ’en’ wird also auf 21α 2 viele Arten als Digramm eines Buchstabenaus f(e) <strong>und</strong> eines aus f(n) chiffriert, <strong>und</strong> bei zufälliger Auswahl tretendiese Digramme im Chiffretext etwa gleich häufig auf.Dagegen wird das Digramm ’ch’ nur auf 1, 5α 2 viele Arten chiffriert. Da’en’ im Klartext etwa 4% aller Digramme ausmacht <strong>und</strong> ’ch’ etwa 2, 75%,tritt jetzt jedes Digramm im Chiffretext, welchen ’en’ verschlüsselt, mit einerHäufigkeit von 4 % ≈ 0, 2% auf. Jedes Digramm im Chiffretext, welches ’ch’21verschlüsselt, tritt dagegen mit einer Häufigkeit von 2,75 % ≈ 1, 8% auf. Keine1,5anderen Digramme im Chiffretext treten mit einer derartig hohen Häufigkeitauf (Digramme, die ’nd’ verschlüsseln, sind die zweit häufigsten). Auf dieseWeise lassen sich die Mengen f(c) <strong>und</strong> f(h) bestimmen. Der Gr<strong>und</strong> hierfürist also, dass die Einzelhäufigkeiten von ’c’ <strong>und</strong> ’h’ relativ gering, die Digrammhäufigkeitvon ’ch’ aber relativ hoch ist, während bei allen anderenhäufigen Digrammen auch die Häufigkeit wenigstens eines beteiligten Buchstabensrelativ hoch ist.Mit ähnlichen Methoden der Digrammanalyse (<strong>und</strong> geschicktem Raten) lassensich auch die Teilmengen des Chiffretextalphabets B, die anderen Klartextbuchstabenzugeordnet sind, ermitteln.Allerdings: Man benötigt deutlich längere Chiffretexte für diese Analysenals es bei Texten der Fall ist, die mittels monoalphabetischer Substitutionverschlüsselt wurden.2.B Polyalphabetische VerschlüsselungenBei polyalphabetischen Verschlüsselungen wird ein Klartextzeichen durchverschiedene Chiffretextzeichen verschlüsselt, <strong>und</strong> ein <strong>und</strong> dasselbe Chiffretextzeichenkann für verschiedene Klartextzeichen stehen (in Abhängigkeitvon ihrer Position im Text).Sei R das Klartextalphabet,S 0 , . . .,S d−1 Chiffretextalphabete.f j : R → S j bijektive Abbildungen (j = 0, . . .,d − 1) <strong>und</strong>h:Æ→ {0, . . .,d − 1} (i.d.R. h(x) = x mod d)Klartext m = r 1 . . .r t (r i ∈ R) wird verschlüsselt inChiffretext c = f h(1) (r 1 ) f h(2) (r 2 ) . . .f h(t) (r t ).Schlüssel = h, f 0 , . . ., f d−1Man sagt: h erzeugt den Schlüsselstrom f h(1) , f h(2) , . . .23


Eine solche Chiffrierung heißt polyalphabetische Substitution (im engeren Sinne).Es handelt sich um eine Stromchiffre. Sie ist also eine Folge von monoalphabetischenSubstitutionen mit wechselnden Schlüsseln, die durch dieAuswahlfunktion h bestimmt werden.Ist h(x) = x mod d, so wiederholen sich die Schlüssel nach jeweils d verschlüsseltenKlartextzeichen. Man nennt die Chiffre dann periodisch. Dannsind f 0 , . . .,f d−1 die Schlüssel, die periodisch angewendet werden.Annahme für diesen Abschnitt: R = S 0 = S 1 = . . . = S d−12.4 Beispiel: Vigenère-Chiffre 3R = {0, 1, . . ., n − 1} (z.B. n = 26)h(x) = x mod df j (r) = (r + k j ) mod n, k j ∈ R fest (jedes einzelne f j Verschiebechiffre)Schlüssel: k 0 , . . .k d−1Man nennt k o k 1 . . .k d−1 auch Schlüsselwort.Insgesamt gibt es also n d verschiedene Schlüsselworte.konkretes Beispiel:R = {0, 1, . . ., 25}(Codierung von {A, B, C, . . ., Z})Schlüsselwort:KRYPTO codiert−−−−→ 10, 17, 24, 15, 19, 14 (d = 6)Klartext:KOMMEMORGENNICHT codiert −−−−→ 10,14,12,12,4, 12, 14,17,6,4,13, 13, 8, 2, 7,19Die periodische Addition (modulo 26) des Schlüsselworts wird meist in folgenderWeise geschrieben:3 nach Blaise de Vigenère, 1523-1596;französischer Diplomat, veröffentlichte die nach ihm benannte Chiffre 1586. Die Chiffrewar aber vorher schon bekannt (um 1500): Johannes Trithemius, Giovanni Battista DellaPorta24


SchlüsselwortfortlaufenderKlartext inZeilen derLänge d = 6✲✘✿✘✘✘ ✲❳ ❳❳ ❳310 17 24 15 19 1410 14 12 12 4 1220 5 10 1 23 014 17 6 4 13 1324 8 4 19 6 18 2 7 1918 19 5 8❳2 ❳ ❳ ❳✛✘✾ ✘ ✘ ✘fortlaufenderChiffretextin Zeilen derLänge d = 6Decodiert: UFKBXAYIETGBSTFIBeachte: Es ist die Regel, dass der gleiche Chiffretextbuchstabe für verschiedeneKlartextbuchstaben steht (z.B. 1 für 12 <strong>und</strong> 13). Ebenso wird ein <strong>und</strong>derselbe Klartextbuchstabe i.Allg. in verschiedene Chiffretextbuchstaben verschlüsselt(z.B. 12 in 0, 1, 10).Polyalphabetische Substitutionen führen i.Allg. zur Glättung der Buchstabenhäufigkeiten.Wir machen dies am Beispiel der Vigenère-Chiffre von Seite 24plausibel, indem wir den Chiffretextbuchstaben I analysieren:Hat das Schlüsselwort d ′ ≤ d verschiedene Buchstaben, so kann jeder Chiffretextbuchstabeaus d ′ verschiedenen Klartextbuchstaben entstehen.Chiffretextbuchstabe 8 ∧ = Ienstanden aus Klartextbuchstaben8 in der 1. Spalte Y = ∧ 24 = 8 − 10 (mod 26)8 in der 2. Spalte R = ∧ 17 = 8 − 17 (mod 26)8 in der 3. Spalte K = ∧ 10 = 8 − 24 (mod 26)8 in der 4. Spalte T = ∧ 19 = 8 − 15 (mod 26)8 in der 5. Spalte P = ∧ 15 = 8 − 19 (mod 26)8 in der 6. Spalte U = ∧ 20 = 8 − 14 (mod 26)Bei längeren Klartexten kann man davon ausgehen, dass sich die Häufigkeitder Buchstaben im Klartext der Häufigkeit der Klartextbuchstaben in deneinzelnen Spalten annähert. (Das sind in der ersten Spalte die Buchstabenan Position 1, d + 1, 2d + 1, . . . des Klartextes, in der zweiten Spalte die anPosition 2, d + 2, 2d + 2, . . .)25


Also entspricht die Häufigkeit eines Chiffretextbuchstabens der durchschnittlichenHäufigkeit von d ′ verschiedenen Klartextbuchstaben. Diese mittelt sichaus.In obigem Beispiel entspricht die Häufigkeit von I im Chiffretext der durchschnittlichenHäufigkeit von Y, R, K, T, P, U im Klartext, also von relativselten vorkommenden Buchstaben wie Y, P, K <strong>und</strong> relativ häufigen wie R,T <strong>und</strong> U.Abbildung 5: Glättung der Buchstabenhäufigkeiten bei Vigenère-Verschlüsselungmit Schlüsselwort aus d verschiedenen BuchstabenZur Kryptoanalyse periodischer polyalphabetischer Verschlüsselungen ist eszunächst notwendig, die Periodenlänge d (also bei Vigenère-Chiffren dieSchlüsselwortlänge) zu bestimmen. Wie das möglich ist, werden wir im nächstenAbschnitt beleuchten.Ist d bekannt, so sind d monoalphabetische Substitutionschiffren zu entschlüsseln.Dies geht, falls Chiffretexte genügend groß (im Vergleich zur Periodenlänged) sind, wie in 2.2 beschrieben. Bei der Vigenère-Chiffre sinddie zu entschlüsselnden, monoalphabetisch verschlüsselten Texte die in jederSpalte. Sie beruhen auf Verschiebechiffren <strong>und</strong> sind deshalb besonderseinfach zu knacken. Man beachte jedoch: Die Klartexte in den Spalten sindkeine sinnvollen Texte (diese ergeben sich zeilenweise).Bevor wir auf die Kryptoanalyse periodischer polyalphabetische Verschlüsselungeneingehen, sei ein historisches Beispiel vorgestellt:26


2.5 Beispiel: ENIGMAChiffriermaschine, von der deutschen Wehrmacht im 2. Weltkrieg eingesetzt,die 1920 von Arthur Scherbius zunächst für den zivilen Bereich entwickeltwurde. Sie beruht auf polyalphabetischer Verschlüsselung.Funktionsprinzip:• Der Klartext wird über eine Tastatur eingegeben, die mittels elektrischerKontakte Signale an das Steckbrett weiter gibt.• Auf dem Steckbrett kann jede Permutation, die aus 5 (disjunkten) 2erZyklen besteht, geschaltet werden (andere Versionen wurden ebenfallskonstruiert). Damit existieren( 262)( 242)( 222)( 202)( 182)≈ 6 · 10 11 Steckbrettmöglichkeiten.• Auf jeder Walze ist eine Permutation verdrahtet. Nach Eingabe einesZeichens dreht sich die 1. Walze um eine Position, so dass eine neuePermutation entsteht. Nach 26 Drehschritten geht sie wieder in ihreursprüngliche Position <strong>und</strong> die 2. Walze dreht sich um eine Position.Nach 26 Drehschritten der 2. Walze beginnt die 3. Walze sich um einePosition zu drehen. (Auch andere Versionen mit 4 <strong>und</strong> 5 Walzen)• Der Reflektor ist eine fest verdrahtete Permutation von 13 disjunkten2er Zyklen.• Auf dem Rückweg werden die Permutationen der 3., 2., 1. Walze nochmalsdurchlaufen. Dadurch wird kein Klartextzeichen auf sich abgebildet.(Dasstellte sich als Schwachpunkt heraus.)Periodenlänge: 26 · 26 · 26 = 17576• Die Ausgabe erfolgt über ein leuchtendes Buchstabenlämpchen.Steckbrett 1. Walze 2. Walze 3. Walze ReflektorAbbildung 6: Schematischer Signallaufplan ENIGMAJe nach Steckbrettverschaltung <strong>und</strong> Ausgangsstellung der Walzen gibt es damit17576·602350749000 ≈ 1, 06·10 17 viele Schlüssel. Diese wurden zunächst27


alle drei Monate, dann jeden Tag, dann alle acht St<strong>und</strong>en gewechselt. Bei dergroßen Periodenlänge (in der Regel größer als die Klartextlänge) waren dieanschließend dargestellten kryptoanalytischen Verfahren nicht anwendbar.Dennoch wurde die ENIGMA-Verschlüsselung durch die Gruppe von Rejewskiin Polen geknackt <strong>und</strong> danach von den Briten durch die Gruppe um AlanTuring in Bletchley Park. (Entwicklung der BOMB - erster elektromagnetischerComputer, später COLOSSUS - erster programmierbarer Computer) 42.6 Kryptoanalyse periodischer polyalphabetischer VerschlüsselungenBei der Kryptoanalyse sind zwei Schritte erforderlich:a) Bestimmung der Periode db) Kryptoanalyse der monoalphabetisch verschlüsselten Teiltexte, die durchdie Buchstaben des Chiffretextes gegeben sind, die an der Stelle1, d + 1, 2d + 1, . . .2, d + 2, 2d + 2, . . ..d, 2d, 3d, . . .stehen.Ist der Chiffretext genügend lang, so lässt sich der zweite Schritt wie in2.2 behandeln. Insbesondere bei Vigenère-Verschlüsselungen, wo die monoalphabetischenVerschlüsselungen Verschiebechiffren sind, ist dies besonderseinfach.Wir kümmern uns also jetzt um den ersten Schritt, wie man die Periode dbestimmen kann.Vermutet man, dass ein kleines d gewählt wurde, kann man folgendermaßenvorgehen:Man teste nacheinander d = 1, 2, . . . solange, bis sich in den Teiltexten ausSchritt 2 eine Häufigkeitsverteilung ergibt, die der Häufigkeitsverteilung einesnatürlichsprachigen (etwa deutschen) Textes entspricht. Ist der Chiffretext4 Einzelheiten hierzu in den Werken von Bauer <strong>und</strong> Kahn [5], [6], [7], [30], [31] oder inder Turing-Biographie von A. Hodges [28]28


im Vergleich zur Periodenlänge genügend groß <strong>und</strong> ist d relativ klein, so funktioniertdiese Methode (insbesondere mit Computerunterstützung) gut. Beieiner falschen Wahl von d entstehen Teiltexte mit Häufigkeitsverteilungen,die in der Regel deutlich glatter sind als die Häufigkeitsverteilung in einemnatürlichsprachigen Text. 5Die nächsten beiden Methoden geben Hinweise auf die Größe von d <strong>und</strong>können sinnvoll in Kombination mit Methode 1 eingesetzt werden.2.7 Kasiski-TestDer Kasiski 6 -Test beruht auf folgender Überlegung:Wiederholt sich eine Zeichenfolge im Klartext mit einem Abstand, der einVielfaches der Periodenlänge ist, so werden diese Zeichenfolgen gleich verschlüsselt,so dass sich Wiederholungen von Zeichenfolgen im Chiffretext ergeben,deren Abstand ein Vielfaches der Periodenlänge ist.Solche Wiederholungen von Zeichenfolgen können im Chiffretext natürlichauch zufällig auftreten, wobei der Abstand dann kein Vielfaches der Periodenlängeist. Dies tritt aber deutlich seltener auf als die erstgenanntenWiederholungen.Der Kasiski-Test beruht nun darin, den Chiffretext auf Wiederholungen vonZeichenfolgen mit mindestens drei Zeichen zu untersuchen <strong>und</strong> die jeweiligenAbstände zu bestimmen. Bei längeren Texten gibt dies deutliche Hinweiseauf die Periodenlänge. In aller Regel bleiben nur wenige Möglichkeiten, diedann näher zu untersuchen sind.Beispiel:Mit Vigenère-Chiffrierung verschlüsselter deutschsprachiger Text (die Aufteilungin Blöcke dient nur der besseren Übersicht):FSGEXV EVIISA MGYFNX EJTMUR MPNYME FMPSIH EFIXUE HQFOOUPGIAVI KJSWLT IIZJIJ ELXVOT YBKMEC GYUELW RHEHOR ONIFVSEHKCJS WLFEEL JIBNTS VTIMGY JSNECT IBRQVE HXJDHF YVTSYP5 Visualisierungen dieses Verfahrens sind daher oft hilfreich. Siehe z.B. http://math.ucsd.edu/~crypto/ (Java Applet)6 Diese Methode stammt in Ansätzen von dem englischen <strong>Mathematik</strong>er <strong>und</strong> ÖkonomCharles Babbage (1792-1871) aus dem Jahr 1854. Sie wurde 1863 von dem preußischenMajor Friedrich Kasiski (1805- 1881) veröffentlicht.29


EEIYWX JLNRRU UYVCJC BELDHZ YVSKFE IUERXV TGCFKF IHIZOFUGYFSP IIGABV VOGYRL FGYRUL AHKVOK FEIUER XRVFTY XFHIIIJGEIZU ZOIZOE LFVLAH RKFNMT IBCBIQ VUHXVS SOGOFN ILEFSYMEFSSR KBXORU TEGEEU IEDLCE NVRDHN IEl = 320 BuchstabenKasiski-Test:Zeichenfolge Position 1 Position 2 AbstandMGY 13 118 105 = 3 · 5 · 7GYF 14 194 180 = 2 2 · 3 2 · 5YMEF 28 288 260 = 2 2 · 5 · 13JSWL 56 101 45 = 3 2 · 5TIB 126 264 138 = 2 · 3 · 23KFEIUERX 172 222 50 = 2 · 5 2IZO 189 249 60 = 2 2 · 3 · 5GYR 207 212 5LAH 216 256 40 = 2 3 · 5EFS 280 285 5Tabelle 3: Exemplarische Zeichenfolgeabstände, Ermittlung v. d nach KasiskiDa die lange Zeichenfolge KFEIUERX mit großer Wahrscheinlichkeit sichnicht zufällig wiederholt, kann man davon ausgehen, dass die Schlüsselwortlängeein Teiler von 50 ist. Da 5 in neun Fällen die auftretenden Abständeteilt, 2 aber nur in sechs Fällen (<strong>und</strong> 25 überhaupt nur in einem Fall), ist esplausibel anzunehmen, dass das Schlüsselwort Länge d = 5 hat. Die ZeichenfolgeTIB hätte sich dann als einzige zufällig wiederholt.2.8 Friedman-TestZentral für den Friedman 7 -Test (1922) ist der sog. Koinzidenzindex.Koinzidenzindex κ(m) einer Zeichenfolge m über einem Alphabet R (|R| = n)ist die Wahrscheinlichkeit, dass an zwei zufälligen Positionen des Textes dieZeichen gleich sind.7 William Frederic Friedman (1891-1969) hat statistische Methoden in die <strong>Kryptologie</strong>eingeführt.30


Sei R = {r 1 , . . .,r n }. Sei l die Länge der Zeichenfolge m <strong>und</strong> l i die Häufigkeitdes Auftretens von r i in m.Also: l = n ∑l ii=1Gesamtzahl aller (ungeordneten) Paare von Positionen in m ist ( )l2 =l(l−1)Gesamtzahl aller (ungeordneten) Paare von Positionen mit gleichen Zeichenn∑ (istlin∑2)=i=1i=1l i (l i −1)2.Die Wahrscheinlichkeit, dass an zwei zufällig gewählten Positionen in m dergleiche Buchstabe steht, ist also:2.κ(m) =n∑l i (l i − 1)i=1l(l − 1)Ist l groß <strong>und</strong> setzen wir p i = l ilfür die Wahrscheinlichkeit des Auftretens∑des Zeichens r i , so gilt: κ(m) ≈ n p 2 i .i=1i=1∑(Tatsächlich ist n p 2 i die Wahrscheinlichkeit, an zwei (nicht notwendig verschiedenen!)zufällig gewählten Positionen ein gleiches Zeichen zu finden.Durch leichte Umformungen in der Definition von κ(m) zeigt manκ(m) =n∑p 2 ii=11 − 1 l− 1l − 1≈l großn∑p 2 i .)i=1Wir nehmen jetzt n = 26 an, R = {0, 1, . . ., 25} als Codierung für {A, ...,Z}.In langen deutschsprachigen Texten m ist κ(m) ≈ κ d := 0, 0762 (ergibt sichaus den Buchstabenhäufigkeiten in deutschen Texten).Für lange Texte m mit l 1 = l 2 = . . .l 26 (Zufallstexte) gilt: κ(m) ≈ κ z :=26∑i=1( 1 26 )2 = 1 26≈ 0, 0385.Also: In deutschsprachigen Texten treten gleiche Buchstaben an zwei zufällig(unabhängig) gewählten Positionen etwa doppelt so häufig auf wie in zufällig31


erzeugten Texten.(zum Vergleich: κ engl ≈ 0, 0669, κ russ ≈ 0, 0561, κ holl ≈ 0, 0798)Was hilft der Koinzidenzindex zur Bestimmung der Periode d einer polyalphabetischenVerschlüsselung?Zerlege den Chiffretext c in die d monoalphabetisch verschlüsselten Teiltexte:(Pos. 1, d + 1, 2d + 1, . . . Pos. 2, d + 2, 2d + 2, . . . Pos. d, 2d, 3d, . . .)Wir nehmen an, dass diese verschieden monoalphabetisch verschlüsselt wurden.(Bei Vigenère bedeutet dies, dass das Schlüsselwort aus lauter verschiedenenBuchstaben besteht.) Wählt man zwei Positionen innerhalb eines solchenTeiltextes, so ist die Wahrscheinlichkeit für zwei gleiche Buchstaben≈ κ d = 0, 0762. Wählt man zwei Positionen, die in verschiedenen Teiltextenliegen, so ist die Wahrscheinlichkeit für zwei gleiche Buchstaben annähernddie eines Zufallstextes, also ≈ κ z = 0, 0385.[Anmerkung: Letztere Aussage trifft nur zu, wenn die Permutationen, die diemonoalphabetischen Substitutionen bewirken, die Häufigkeit jedes Buchstabeninsgesamt gleichmäßig verteilen, d.h. für jedes r ∈ R soll gelten:1 ∑p(σ −1 (r)) ≈ 1 |M|26 ,σ∈Mwobei M die Menge der auftretenden Permutationen <strong>und</strong> p(x) für x ∈ R dierelative Häufigkeit des Buchstabens x in (langen) deutschsprachigen Textenbezeichnet.Begründung:Sei M = {σ 1 , . . .,σ d }, also |M| = d. Die Wahrscheinlichkeit für zwei gleicheBuchstaben in zwei zufällig gewählten Positionen in verschiedenen Teiltextenist:=≈V or.1d(d − 1)1d(d − 1)1d(d − 1)∑(r∈R∑d∑i,j=1r∈R(( ∑ ip(σ −1ip(σ −1i(r))p(σj−1 (r)) −(r)) · ∑∑ 1(d ·26 · d · 126 − ∑ ir∈Rjd∑i=1p(σ −1j (r)) − ∑ ip(σ −1i (r)) 2 )p(σ −1i (r)) 2 )p(σ −1i (r)) 2 )32


==≈1d(d − 1)1d(d − 1)1d(d − 1)[ d226 − ∑ i[ d226 − ∑ i∑r∈Rp(σ −1i (r)) 2 ]∑p(r) 2 ]r∈R} {{ }≈κ d ≈ 226[ d226 − 2d26 ] = d − 2d − 1 ·126≈ 1 26für große d. ]Sei nun l die Länge des Chiffretextes c, sein Koinzidenzindex κ(c). Da es dTeiltexte mit je etwa l Zeichen gibt, gibt es insgesamt ungefährd12 · ld ( l l(l − d)− 1) · d =d 2d(ungeordnete) Paare von Positionen in c innerhalb der Teiltexte <strong>und</strong>12 · }{{} lAnz. Mögl.an 1. Pos.· ( l − l ) = l2 (d − 1)} {{ d}2dAnz. Mögl.an 2. Pos.(ungeordnete) Paare von Positionen in c aus verschiedenen Teiltexten. DieZahl der (ungeordneten) Paare von Positionen innerhalb c mit gleichen Buchstabenist danach ungefähr:l(l − d)2d· 0, 0762 + l2 (d − 1)2d· 0, 0385l(l−1)Dividiert man durch die Gesamtzahl aller (ungeordneten) Paare, so2erhält man eine Approximation von κ(c):κ(c) ≈l − d l(d − 1)· 0, 0762 + · 0, 0385(l − 1)d (l − 1)dDiese ”Gleichung “ läßt sich nach d auflösen. Es ergibt sich33


d ≈0, 0377l(l − 1)κ(c) − 0, 0385l + 0, 0762Da sichκ(c) =26∑i=1l i (l i − 1), l i = Anzahl des Buchstabens r i in c,l(l − 1)berechnen lässt, erhält man damit eine Abschätzung für d. Diese Abschätzunggibt jedenfalls die Größenordnung von d an <strong>und</strong> kann mit den beiden anderenMethoden zur Bestimmung von d kombiniert werden.Beispiel:Wir verwenden wieder den Text von Seite 29 <strong>und</strong> bestimmen die Häufigkeitsverteilungder Buchstaben.Häufigkeitsverteilung der Buchstaben:Buchstabe Anzahl rel. Buchstabe Anzahl rel.l 1 − l 13 Häufigkeit l 14 − l 26 HäufigkeitA 5 1,60% N 10 3,10%B 8 2,50% O 13 4,10%C 8 2,50% P 5 1,60%D 4 1,30% Q 3 0,90%E 32 10,00% R 15 4,70%F 22 6,90% S 16 5,00%G 13 4,10% T 11 3,40%H 14 4,40% U 14 4,40%I 30 9,40% V 19 5,90%J 11 3,40% W 4 1,30%K 9 2,80% X 11 3,40%L 13 3,10% Y 15 4,70%M 9 2,80% Z 6 1,90%Koinzidenzindex des verschlüsselten Textes c:κ(c) = ( ∑ l i (l i − 1))/l(l − 1) = 0, 04834


Es handelt sich also nicht um einen monoalphabetisch verschlüsselten Text(d.h. die Länge des Schlüsselworts ist größer als 1).Die Anwendung der Friedman-Formeld ≈ 0, 0377 · l/((l − 1) · κ(c) − 0, 0385 · l + 0, 0762)auf den Chiffretext von Seite 29 mit den Werten l = 320 <strong>und</strong> κ(c) = 0, 048liefert die Abschätzung d ≈ 3, 93.Wir nehmen jetzt (unter Berücksichtigung des Kasiski-Tests aus 2.7) d = 5 an<strong>und</strong> ermitteln die Buchstabenhäufigkeiten der fünf Teiltexte, die sich aus denBuchstaben an den Positionen i, d + i, 2d + i, . . . für i = 1, 2, 3, 4, 5 ergeben.Tabelle 4: Teiltexte 1-5Da der Gesamttext mit Vigenère-Chiffrierung verschlüsselt wurde, entstandendie Teiltexte durch Verschiebe-Chiffren aus den entsprechenden Teiltextendes Klartextes.Teiltext 1: Offenbar steht F für den Klartextbuchstaben E. Verschiebungum 1 ∧ = B.Teiltext 2: Aus der Häufigkeit von E entnimmt man, dass hier keine Verschiebung,d.h. Verschiebung um 0 ∧ = A vorliegt. (Ist das der Fall, so35


kommt allerdings der in deutschen Texten relativ häufige Buchstabe Rin dem zweiten Klartextstück überhaupt nicht vor.)Teiltext 3: Dieser Teiltext hat keine typische Häufigkeitsverteilung. Kandidatenfür den Klartextbuchstaben E sind die Chiffretextbuchstaben Hoder Y. Im ersten Fall würde Q für N stehen, d.h. der zweithäufigsteBuchstabe in deutschen Texten würde in diesem Klartextstück nichtauftauchen. Die Wahl von Y für E ist plausibler. Dann Verschiebungum 20 ∧ = U.Teiltext 4: Offenbar steht I für den Klartextbuchstaben E. Verschiebungum 4 ∧ = E.Teiltext 5: Am wahrscheinlichsten ist, dass V für den KlartextbuchstabenE steht. Verschiebung um 17 ∧ = R.Demnach ist das Schlüsselwort BAUER <strong>und</strong> der Klartext lautet (mit Satzzeichen):Es mag ueberraschen, dass man von einem vorgelegten monoalphabetischchiffrierten Text leichter sagen kann, ob er englischoder franzoesisch ist, als ihn zu entschluesseln. Dies gilt natuerlichauch fuer Klartext: es gibt ein einfaches Verfahren, genuegendlangen Klartext auf Zugehoerigkeit zu einer bekannten Sprachezu untersuchen, ohne seine Syntax oder Semantik zu betrachten.(Aus: F.L.Bauer, Entzifferte Geheimnisse [5])Aufgabe:Der folgende Chiffretext entstand durch polyalphabetische periodische Verschlüsselungeines deutschsprachigen Texts. Versuchen Sie ihn zu entschlüsseln.GQGOEQ RYZOEJ DJGBGT OPCBDJ WAHYHT WPCYHT FYZCWF DLVRJG WBCJDGXYGDHJ OYZEHY GOVVIT XOKVHT ULRIFI MBWPTW MMVGVI REXGWZ OXTPHNRYGPTW GTCRHT FYZCWF DLVRJZ PYYUDJ HEYOAF RYZFPF GLCFBO OYWYWCCVCLET CTEHVI YOUUWT HLCHVI DORIFF WYHGZH XVCMWC CBRTOJ OPIBEZWMROCV NCVRWA MBRKTZ SEZVTT UMCRIT OBLSTA DMCJUC CLVOUZ GLKSUFMJXIFZ WYEFUF ZYXVZT BYGDPT XOCRGH GKZOTW RYZEDG DWVRCF RYZRECCTRIFF GOVOOT UCRVBL YOYMDG DVCADQ RZTRET YPXOAT XGKDBV UYGFDZDQWCBS OTUPKY GQXNWT HMCJFT OPXOTW UEHVDZ TEGRKH XMKJJK DYZDDQ36


XYGBWT NEYRDF FECRQT UEVLQT XYGBDJ WAHYHT WPCYJT WWCHVI GTIHUFTICRTT XZTRQG SLTCEF GORREL HYZJDT HYGGHI GEVLQT XJCFZG QKCRGTBYGPTV UBVRQZ DYEYDB GPJAEN ZBAOAW GOAOTQ REGRGG UXEHVI GQGCELGQGOCJ OPCRUG DJKVWV XEVLBJ OBIDPT XOCRQG GSCHQT XPVNDJ QKCLUZEGTGBE OBCHTH XMCGBT HYPKTG GTCRXT RYGLEL HPAOAW GOXHDQ OAHVQKUAHDPE SLREWT UBCJVI HJCJUT HZCGBT OLVRJZ NYJAEQ OPWOTW MTKRJTCQGBDJ D2.9 Nichtperiodische polyalphabetische VerschlüsselungenNichtperiodische polyalphabetische Verschlüsselungsverfahren, auch Lauftextverschlüsselungengenannt, erfüllen die EigenschaftLänge Schlüsselfolge ≥ Länge Klartext.Man bezeichnet sie auch als Vernam-Chiffren 8 , insbesondere wenn das Alphabet{0, 1} zugr<strong>und</strong>e liegt.Wird eine Vigenère-Chiffre mit genügend langem ’Schlüsselwort’gewählt (d.h.Länge Schlüsseltext ≥ Länge Klartext), so bestehen kryptoanalytische Möglichkeiten,falls das Schlüsselwort ein sinnvoller Text ist (z.B. fortlaufenderText eines Buches; als auszutauschenden Schlüssel benötigt man dann nurSeite, Zeile <strong>und</strong> Position des ersten Schlüsselwortbuchstabens in der Zeile).Dies beruht auf einer Beobachtung des Kryptologen William Friedman(1891 – 1969), dass in diesem Fall ein hoher Anteil der Geheimtextbuchstabendurch Addition häufig auftretender Klartextbuchstaben mit häufigauftretenden Schlüsseltextbuchstaben entsteht. 9In jedem Fall sollten daher bei Lauftextverschlüsselungen durch Addition vonSchlüsseltexten Zufallsfolgen von Buchstaben als Schlüsseltexte genommenwerden. 10Bei der Wahl von Zufallsfolgen als Schlüsseltexte lassen sich tatsächlich theoretischsichere Kryptosysteme konstruieren.8 nach G. Vernam (AT&T)9 siehe z.B. Bauer [5]10 Auf die Problematik der Erzeugung von Zufallsfolgen werden wir an späterer Stelleeingehen.37


Zur Verdeutlichung dieser Tatsache nehmen wir an, dass alle Nachrichtenbinär kodiert sind, d.h. R = {0, 1}, <strong>und</strong> der ’Schlüsseltext’ ebenfalls eine Folgevon Bits ist. Die Verschlüsselung erfolgt dann durch stellenweise Additionmodulo 2 (XOR, ⊕) von Klartextbits <strong>und</strong> Schlüsseltextbits.Ist der Schlüsseltext eine echte Zufallsfolge, so nennt man dieses Verfahrenone-time-pad.Was heißt Zufallsfolge von Bits?Von einer Folge (von Nullen oder Einsen) zu sagen, sie sei eine Zufallsfolge,ist eigentlich sinnlos. Entscheidend ist vielmehr, wie sie erzeugt wurde.Eine Zufallsfolge (a n ) n∈Æoder (a n ) n=1,...,m , a n ∈ {0, 1}, ist eine Folge vonWerten unabhängiger, gleichverteilter binärer Zufallsvariablen, also der Outputeiner binären symmetrischen Quelle. D.h. jedes a n ist mit Wahrscheinlichkeit1 2 gleich 0 oder 1; der Wert jedes a n ist unabhängig von den Wertenvon a 1 , . . .,a n−1 (Münzwurf).Das one-time-pad ist (unter gewissen Voraussetzungen) perfekt sicher. Washeißt das? Diese Frage behandeln wir im nächsten Kapitel.38


3 Perfekte Sicherheit von ChiffrierverfahrenGegeben sei ein Chiffrierverfahren <strong>und</strong> eine Verschlüsselungsfunktion E.M sei die Menge aller möglichen Klartexte; M sei endlich.K sei die Menge aller möglichen Schlüssel des Verfahrens; K sei endlich.C sei die Menge aller möglichen Chiffretexte, d.h. C = {c : ∃ x ∈ M, k ∈K mit E(x, k) = c}.Für Klartexte gebe es eine Wahrscheinlichkeitsverteilung pr M . Schlüssel werdenunabhängig von den Klartexten entsprechend einer Wahrscheinlichkeitsverteilungpr K gewählt.Dann haben wir eine Wahrscheinlichkeitsverteilung auf M × K:pr(x, k) = pr M (x)pr K (k) für x ∈ M, k ∈ K.Wir setzenpr(x) := pr({(x, k) : k ∈ K}) = pr M (x) <strong>und</strong>pr(k) := pr({(x, k) : x ∈ M}) = pr K (k).Für einen Chiffretext c ∈ C setzen wirpr(c) := pr({(x, k) : x ∈ M, k ∈ K, E(x, k) = c}),die Wahrscheinlichkeit, dass c als Chiffretext bei einer Verschlüsselung erscheint.3.1 DefinitionEin Chiffrierverfahren heißt perfekt sicher, wenn für jeden Klartext m <strong>und</strong>jeden Chiffretext c gilt:pr(m|c) = pr(m).Bedeutung:pr(m) ist wie oben die a-priori-Wahrscheinlichkeit für Klartext m.pr(m|c) ist die a-posterio-Wahrscheinlichkeit für Klartext m, wenn man weiß,dass der Chiffretext c ist.39


Dies ist eine bedingte Wahrscheinlichkeit:pr(m|c) ===pr(“m <strong>und</strong> c“)pr(c)pr({(m, k) : k ∈ K} ∩ {(x, k) : x ∈ M, k ∈ K, E(x, k) = c})pr(c)pr({(m, k) : k ∈ K, E(m, k) = c})pr(c)Beispiel: Verschiebechiffre: m = HALLO, c = XRYTY. Dann pr(m|c) = 0.Bedingung für perfekte Sicherheit besagt:Wenn ich c kenne, ist die Wahrscheinlichkeit dafür, dass m der zugehörigeKlartext ist genauso groß wie sie es war, bevor ich c kannte. Kenntnis von cmacht keinen Klartext wahrscheinlicher oder unwahrscheinlicher.Satz von Bayes: Perfekte Sicherheit ⇔ pr(c) = pr(c|m) ∀ m ∀ c, Wahrscheinlichkeitvon c ist unabhängig vom Klartext.3.2 Satz (Shannon 11 , 1949)Die Bezeichnungen seien wie oben gewählt.Ist pr K die Gleichverteilung auf K <strong>und</strong> existiert zu jedem Klartext m <strong>und</strong>jedem Chiffretext c genau ein Schlüssel k ∈ K mit E(m, k) = c, so ist dasVerschlüsselungsverfahren perfekt sicher.(Ist pr M (m) > 0 ∀ m ∈ M <strong>und</strong> |K| = |C|, C die Menge aller Chiffretexte, sogilt auch die Umkehrung.)Beweis:Für jeden Klartext m <strong>und</strong> jeden Schlüsseltext c gibt es genau einen Schlüsselk = k(m, c) mit E(m, k) = c.pr(m)pr(c|m)pr(m|c) ==Bayes pr(c)= ∑pr(m)pr(x) = pr(m).x∈M11 Claude Shannon, 1916 - 2001, u.a. MIT∑x∈Mpr(m) 1|K|pr(x) pr(k(x, c))} {{ }1|K|□40


Ist das one-time-pad perfekt sicher? Nicht, wenn wir beliebige (ggf. nachoben beschränkte) Längen von Klartexten zulassen; denn ist l(m) ≠ l(c),so ist pr(m|c) = 0, egal welche Wahrscheinlichkeit m hatte. Halten wir dieKlartextlänge aber fest, so gilt perfekte Sicherheit.3.3 SatzSei n ∈Æ. Sei E n : {0, 1} n → {0, 1} n das Verschlüsselungsverfahren mit demone-time-pad, d.h. M ⊆ {0, 1} n , K = {0, 1} n = C.Wird bei der Verschlüsselung von Klartexten immer ein Schlüssel (aufs Neue)gleichverteilt zufällig gewählt, so ist das one-time-pad perfekt sicher.Beweis:Das folgt sofort aus 3.2.□Wichtig: Schlüssel darf nur einmal verwendet werden!Wird ein Schlüssel zweimal verwendet,m 1 ⊕ k = c 1m 2 ⊕ k = c 2 ,so ist c 1 ⊕c 2 = m 1 ⊕m 2 ; dies ist eine Vernam-Verschlüsselung eines sinnvollenTextes (m 1 ) mit einem sinnvollen Text (m 2 ), Ergebnis c 1 ⊕ c 2 bekannt. Diesliefert Angriffsmöglichkeiten (siehe 2.9).Außerdem:Bei Mehrfachverwendung des Schlüssels k wird das System bei einem Knownplaintext-Angriffsofort gebrochen: Ist m ⊕ k = c, m, c bekannt, so auchk = m ⊕ c bekannt.41


4 Symmetrische BlockchiffrenWir betrachten im Folgenden Blockchiffren über einem Alphabet R (Klartextalphabet= Chiffretextalphabet = R). Klartexte sind Folgen von Zeichenaus R, im wichtigen Fall R =2 = {0, 1} also Bitfolgen (z.B. durch Codierungmit ASCII-Code entstanden). Eine solche Zeichenfolge wird in Blöckeeiner festen Länge n zerlegt. Diese Blöcke werden verschlüsselt.Wir betrachten zunächst die Situation, dass zwei gleiche Blöcke des Klartextesauch gleich verschlüsselt werden (d.h. dies entspricht einer monoalphabetischenSubstitution über dem Alphabet R n ). Es gibt andere Betriebsartenvon Blockchiffren, bei denen die Verschlüsselung eines Blocks von der Verschlüsselungder vorangehenden Blöcke abhängt (also von seiner Position imText; vgl. polyalphabetische Verschlüsselungen). Auf diese Betriebsarten vonBlockchiffren werden wir später eingehen.Wir beschränken uns für den Moment auf R =2 <strong>und</strong> nehmen ferner an, dassBlöcke der Länge n über2 wieder in Blöcke der Länge n über2 verschlüsseltwerden (was häufig der Fall ist). Dann gibt es also (2 n )! Blockchiffren (mitBlöcken der Länge n über2), nämlich alle Permutationen der 2 n Blöcke derLänge n.Wenn man alle diese Permutationen der 2 n möglichen Klartextblöcke über2zur Verschlüsselung zulässt, so besteht die Schlüsselmenge aus allen (2 n )! dieserPermutationen. Die Codierung einer Permutation (also eines Schlüssels)erfordert dann mindestens s Bits, wobei 2 s−1 ≤ (2 n )! < 2 s .Nach der Stirling-Approximation ist (2 n )! ≈ √ π · 2 n+1 ( 2n e )2n , alsos ≈ log 2 ( √ π · 2 n+1 · ( 2n e )2n )= 1 2 (n + 1) + 1 2 log 2π + 2 n · (n − log 2 e)≈ 1 2 (n + 2) + 2n · (n − 1, 44)[ Die übliche Codierung eines Schlüssels (= Permutation der 2 n Blöcke) wäre,die Permutation so anzugeben, dass zunächst das Bild des Blockes (0, . . .,0)←n→angegeben wird (n Bits), dann das Bild des Blockes (0, . . ., 0, 1), . . ., schließlichdas Bild des Blockes (1, . . ., 1). Dies erfordert n · 2 n Bits. ]Bei der in der Praxis üblichen Blocklänge von n = 64 oder n = 128 (odersogar mehr) sind solche Schlüssellängen natürlich illusorisch.Beispiel: n = 64Schlüssellänge: s = 2 64·2 6 = 2 70 ≈ 10 21 Bits; die etwas schärfere Abschätzung42


mit der Stirling-Approximation liefert eine Schlüssellänge von ≈ 1, 95 · 2 69Bits, also keine entscheidende Verbesserung.Zur Speicherung eines Schlüssels werden ca. 700 Millionen Festplatten miteiner Kapazität von je 200 GByte benötigt.Daher beschränkt man sich in der Praxis auf kleine Teilmengen von Blockchiffren,für die die Schlüssel (also die Permutationen) mit geringer Bitlänge codiertwerden können. Wir geben im Folgenden ein erstes Beispiel an, nämlichaffin-lineare Chiffren. Sie beruhen, wie viele andere Chiffren auch, auf Alphabeten,die kommutative Ringe sind. Dies hat den Vorteil, dass man dieElemente des Alphabets addieren <strong>und</strong> multiplizieren kann. Bei den affinenSubstitutionschiffren in 2.1(b) haben wir hiervon schon Gebrauch gemacht.Die affinen Blockchiffren, die wir jetzt behandeln, sind eine Verallgemeinerung(von “Blöcken“ der Länge 1 auf Blöcke der Länge n ∈Æ). Sie beruhenauf Operationen, die aus der linearen Algebra bekannt sind, nur dass die dortauftretenden Körper auch kommutative Ringe sein können. Wir stellen daherzunächst einmal die wesentlichen Hilfsmittel aus der linearen Algebra überkommutativen Ringen zusammen, wobei wir auf Beweise verzichten.4.1 Lineare Algebra über kommutativen RingenIm folgenden sei R immer ein kommutativer Ring mit 1. D.h. R erfüllt alleAxiome eines Körpers, nur müssen die von 0 verschiedenen Elemente von Rnicht notwendig ein Inverses bezüglich der Multiplikation besitzen. DiejenigenElemente, die ein multiplikatives Inverses besitzen, nennt man Einheiten vonR. Die Menge aller Einheiten des Rings R bezeichnet man mit R ∗ .Beispiele:a)ist kommutativer Ring mit 1. Die Einheiten sind 1 <strong>und</strong> −1, also∗ = {1, −1}.b) Sei n eine natürliche Zahl.n = {0, . . ., n − 1} ist der Ring der ganzen Zahlen modulo n. Manaddiert <strong>und</strong> multipliziert modulo n: Addition (Multiplikation) wie in, dann Division durch n mit Rest r, 0 ≤ r ≤ n − 1; der Rest ist dasErgebnis der Addition (Multiplikation) inn. Das additive Inverse voni ist also n − i.Welches sind die Einheiten inn?43


Das haben wir schon in 2.1(b) überlegt:a Einheit inn ⇔ ggT(a, n) = 1Z.B.: Einheiten in10:∗ 10 = {1, 3, 7, 9}Ist n = p eine Primzahl, so sind alle von 0 verschiedenen Elemente Einheiten:p ist Körper.Die Berechnung der multiplikativen Inversen der Einheiten in∗ n geschiehtz.B. mit dem erweiterten Euklidischen Algorithmus, wie in 2.1(b) beschrieben.Wie über Körpern kann man über Ringen Vektoren <strong>und</strong> Matrizen bilden:R n = {(r 1 , . . .,r n )|r i ∈ R}R (n,k) =⎧⎛⎪⎨⎜⎝⎪⎩r 11.r n1⎞ ⎫. . . r 1k ⎪⎬⎟. ⎠ | r ij ∈ R. . . r⎪⎭ .nkAlso: Rn = R (1,n)Matrizenaddition <strong>und</strong> -multiplikation wie über Körpern.Ebenso kann man die Determinante einer quadratischen Matrix berechnen:n = 1 : A = (a 11 ) = (a) : det(a) = an > 1 : A ∈ R (n,n) :∑det A = nj=1(−1) i+j a ij det A i,j ∈ R(Entwicklung nach der i-ten Zeile)A i,j entsteht aus A durch Streichen der i-ten Zeile <strong>und</strong> j-ten Spalte.Ebenso:∑det A = n (−1) i+j a ij det A i,j (Entwicklung nach der j-ten Spalte)i=1Beispiel: R =6⎛ ⎞0 2 5A = ⎝ 1 3 1 ⎠ Rechne über, reduziere dann modulo 6.4 3 144


det Adet A( 3 1= 0 · det3 1)( 1 1− 2 · det4 1)( 1 3+ 5 · det4 3= −2 · (1 − 4) + 5 · (3 − 12) = 6 − 45 = −39 ≡ 3 (mod 6)= 3 (in6))Wann besitzt eine Matrix A ∈ R (n,n) eine Inverse A −1 ?Forderung:A · A −1 = A −1 · A = E n =⎛⎜⎝1 0. ..0 1⎞⎟⎠Kriterium: A ∈ R (n,n) besitzt Inverse ⇔ det A ist Einheit in R.Setzt man b ij = (−1) i+j det A j,i , A j,i wie oben, B = (b ij ),so gilt A −1 = (det A) −1 · B.Beispiel: R =6a) Die obige 3 × 3-Matrix ist nicht invertierbar, da det A = 3, <strong>und</strong> 3 istkeine Einheit in6.( )1 3b) A =2 − 9 = −7 ≡ 5 (mod 6) ,3 2d.h. det A = 5 <strong>und</strong> A ist invertierbar in R (2,2) .(det A) −1 = 5 (denn 5 · 5 mod 6 = 1)( ) ( ) (2 −3 2 3 4 3A −1 = 5 · = 5 · =−3 1 3 1 3 5)4.2 Affine BlockchiffrenKlartexte seien codiert über einem Alphabetk für ein k ∈Æ. Klartextewerden zerlegt in Blöcke der Länge n, d.h. in Elemente ausn k . Die Blöckewerden einzeln in derselben Weise verschlüsselt:Eine affine Blockchiffre ordnet jedem v = (r 1 , . . .,r n ) ∈n k das ElementvA + b ∈n k zu, wobei A ∈(n,n)k, b ∈n k . Schlüssel ist das Paar (A, b).Damit die Chiffrierung v ↦→ vA+b injektiv ist, muss die Matrix A in(n,n)kinvertierbarsein, d.h. det A muss eine Einheit ink sein (also ggT(det A, k) = 1).45


Die Dechiffrierung von w = vA + b erfolgt dann durchv = (w − b)A −1 .Wird der Schlüsselraum eingeschränkt auf alle (A, b) mit b = 0 (v ↦→ vA,A Schlüssel), so spricht man von linearen Blockchiffren. Sie werden auchHill-Chiffren genannt. 12Beachte:Ist v = (r 1 , . . .,r n ), vA + b = (s 1 , . . .,s n ), so hängt jedes s i in der Regel vonallen r 1 , . . .,r n ab. Es handelt sich bei affinen Blockchiffren also nicht umSubstitutionschiffren, die jedes Element des Alphabetsk einzeln substituieren.Beispiel: R =6, n = 2( )1 3Wir wählen A = aus dem zweiten Beispiel am Ende von 4.1. A ist3 2( )4 3in(2,2)6 invertierbar, A −1 = . Sei b = (3, 5).3 5Verschlüsselung( des Klartextblockes ) v = (1, 2):1 3vA + b = (1, 2) + (3, 5) = (1, 1) + (3, 5) = (4, 0) = w.3 2Entschlüsselung:(w − b)A −1 = ((4, 0) − (3, 5))(4 33 5)(4 3= (1, 1)3 5)= (1, 2) = v.Wie groß ist die Anzahl der Schlüssel bei linearen Blockchiffren?Beispiel: R =2, n = 64Schlüssel A 64 × 64 -Matrix über2 mit Determinante 1Schlüssellänge: 64 2 = 2 12 = 4096 Bits(falls man die Matrix als 64 × 64 -array speichert.)Anzahl der Schlüssel: |GL(64, 2)| = (2 64 − 1)(2 64 − 2) . . .(2 64 − 2 63 )≈ 0, 29 · 2 4096[Winzig im Vergleich zu 2 64 ! ≈ 2 264·62,56 ≈ 2 1021 , der Anzahl aller Blockchiffrender Länge 64.]Einige spezielle Chiffrierverfahren lassen sich als affine Blockchiffren auffassen:12 Lester S. Hill (1891-1961), 192946


Beispiele:a) Die Vigenère-Chiffre ist eine affine Blockchiffre über26. Als Schlüsselwerden sämtliche (E n , b), b ∈n 26 verwendet:v ↦→ v + b(b ist das ”Schlüsselwort“,n ist die Periode der Vigenère-Chiffre.)b) Zu Beginn von Kapitel 2 hatten wir sog. (Block-) Transpositionschiffrenerwähnt. Der Schlüssel ist eine Permutation σ auf {1, . . ., n}. Ein Block(r 1 , . . ., r n ) wird verschlüsselt zu (r σ(1) , . . .,r σ(n) ). Diese Chiffren lassensich als lineare Blockchiffren auffassen:Sei P σ = (p ij ) die folgende Permutationsmatrix.p ij ={0 für i ≠ σ(j)1 für i = σ(j)Dann ist (r 1 , . . .,r n )P σ = (r σ(1) , . . .,r σ(n) )P −1σ = P σ −1 (gilt über jedem Ring R, z.B. R =26)4.3 Kryptoanalyse affiner BlockchiffrenDie Kryptoanalyse affiner Blockchiffren kann bei einem Ciphertext-only-Angriffschwierig sein. Bei einem Known-Plaintext-Angriff sind sie jedoch leichtzu knacken:Ausgangssituation: Schlüssel (A, b) ist festgelegt worden, A ∈(n,n)k, b ∈n k .Verschlüsselungsfunktion: v ↦→ vA + b, v ∈n kAngreifer will (A, b) bestimmen.Wir gehen davon aus, dass er n + 1 Klartextblöcke v 0 , . . .,v n <strong>und</strong> die zugehörigenchiffrierten Blöcke w 0 , . . .,w n kennt.⎛ ⎞v 1 − v 0⎜ ⎟Wir nehmen an, dass det ⎝ . ⎠ eine Einheit ink ist.v n − v 0(Das passiert häufig, da ϕ(k) = k ·∏p Primzahlp|kp−1p≥k6 ln(ln(k))für k ≥ 5 nacheinem Satz von Rosser <strong>und</strong> Schoenfeld; überdies ist limk→∞ϕ(k)k 1−δ = ∞ für jedes47


δ > 0.Bei einem Chosen-Plaintext-Angriff kann man natürlich sicherstellen, dassdie angegebene Determinante eine Einheit ist.)⎛⎛Setze V =⎜⎝⎞v 1 − v 0⎟. ⎠, W =v n − v 0⎜⎝⎞w 1 − w 0⎟.w n − w 0⎠ ∈(n,n)kDann gilt: V A = W. Da det V eine Einheit ink ist, existiert V −1 .Es folgt:A = V −1 W <strong>und</strong> b = w 0 − v 0 A(Ist die Chiffre sogar linear, so benötigt man nur v 1 , . . .,v n <strong>und</strong> bestimmt awie oben (mit v 0 = w 0 = 0).)Beispiel:Ang.: Blocklänge n = 2, k = 26Angenommen wir wissen, dass der Klartext HERBST in den ChiffretextNEBLIG verschlüsselt wurde.D.h.:V =7 4 17 1 18 19 −→ 13 4 1 11 8 6v 0 v 1 v 2 w 0 w 1 w 2( ) (v1 − v 0 10 23=v 2 − v 0 11 15)W =( ) (w1 − w 0 14 7=w 2 − w 0 21 210 · 15 − 23 · 11 = 150 − 253 = −103 ≡ 1 (mod 26), det V = 1 in26( ) ( )15 −23 15 3V −1 ==−11 10 15 10A = V −1 W=(15 315 10) (14 721 2(13 7b = w 0 − v 0 A = (13, 4) − (7, 4)4 21) ( ) ( )210 + 63 105 + 6 13 7==210 + 210 105 + 20 4 21)= (13, 4) − (107, 133) = (10, 1)Test: ( ) 13 7v 1 A + b = (17, 1) + (10, 1) = (225, 140) + (10, 1) = (1, 11) = w4 211( ) 13 7v 2 A + b = (18, 19) + (10, 1) = (310, 525) + (10, 1) = (8, 6) = w4 21248)


4.4 Hintereinanderausführung von Blockchiffren, Diffusion<strong>und</strong> KonfusionDie Sicherheit von Blockchiffren kann erhöht werden, indem mehrere Blockchiffrenhintereinander ausgeführt werden (Produkt von Blockchiffren, Überchiffrierung).Wichtig dabei ist, dass die Hintereinanderausführung zweierBlockchiffren nicht wieder eine Blockchiffre derselben Art ist (Gruppeneigenschaftdarf nicht erfüllt sein). Z.B. ist die Hintereinanderausführungzweier affiner oder linearer Blockchiffren wieder eine affine oder lineare Blockchiffre;hier bringt die Hintereinanderausführung nichts.Ziel solcher Hintereinanderschachtelungen ist es u.a., zwei Eigenschaften vonBlockchiffren sicherzustellen, die Claude Shannon in einer seiner gr<strong>und</strong>legendenArbeiten zur Kryptographie 1949 als wesentlich für die Sicherheit von(Block-)Chiffren formuliert hat:Diffusion:Statistische Auffälligkeiten (Häufigkeiten von Einzelzeichen etc.) eines Klartextessollen im Chiffretext “verwischt“ werden. Dies bedeutet, dass jedesZeichen eines Chiffretextblockes von mehreren Zeichen des Klartextblockesabhängen soll <strong>und</strong> umgekehrt soll jede Änderung eines Zeichens des KlartextblockesÄnderungen von mehreren Zeichen im Chiffretextblock zur Folgehaben (bei gleichem Schlüssel).Konfusion:Aus statistischen Eigenschaften des Chiffretextes soll nicht in einfacher Weiseauf den verwendeten Schlüssel zu schließen sein. Insbesondere soll jedes Zeicheneines Chiffretextblockes von mehreren Zeichen des Schlüssels abhängen.Beispiel:Lineare Chiffren: v → vA, n × n-Matrix A als Schlüssel.Lineare Chiffren haben die Eigenschaft der Diffusion.Konfusion: Chiffretextbit an Stelle i hängt von allen Einträgen der i-tenSpalte von A ab (schwache Form der Konfusion).Wir vermerken an dieser Stelle, dass in der Literatur die Begriffe “Diffusion“<strong>und</strong> “Konfusion“ nicht immer einheitlich verwendet werden.Eine der wichtigsten Typen von Blockchiffren, die durch Hintereinanderschachtelungenmehrerer einfacherer Blockchiffren entstehen, behandeln wirim folgenden Abschnitt.49


4.5 Feistel-ChiffrenFeistel-Chiffren sind benannt nach dem IBM-Ingenieur Horst Feistel (1915-1990), der 1971 einen Chiffrieralgorithmus namens LUCIFER entwickelte,welcher als Vorläufer des DES (Data Encryption Standard) anzusehen ist.Das typische Konstruktionsprinzip von LUCIFER ist in der Definition vonFeistel-Chiffren beinhaltet. Auf den DES werden wir im nächsten bzw. übernächstenAbschnitt eingehen.Feistel-Chiffren realisieren den Vorschlag Shannons, alternierendeFolgen von Block-Substitutionen <strong>und</strong> Transpositionenzur Diffusions- <strong>und</strong> Konfusionserzeugung zu verwenden,<strong>und</strong> beruhen außerdem auf der Idee, aus einem(kurzen) Ausgangsschlüssel eine Folge von Schlüsseln fürdie Substitutionen zu erzeugen.Zutaten für eine Feistel-Chiffre:Eine Menge K der möglichen sogenannten R<strong>und</strong>enschlüssel<strong>und</strong> zu jedem K ∈ K eine Funktion f K :t 2 →t 2 .Konstruktion der Feistel-Chiffre (zur gegebenen Blockchiffre):Feistel-Chiffre ist Blockchiffre über2, Blocklänge 2t.Festlegung einer R<strong>und</strong>enzahl r ≥ 1 <strong>und</strong> eines SchlüsselraumsK F (i. Allg. K F ≠ K).Wahl einer Methode, die aus einem Schlüssel k ∈ K F eineFolge K 1 , . . .K r ∈ K von R<strong>und</strong>enschlüsseln erzeugt. 13Verschlüsselungsfunktion E k (zum Schlüssel k ∈ K F ) derFeistel-Chiffre:Sei v ein Klartextblock der Länge 2t (d.h. v ∈2t2 ).Teile v in zwei Hälften der Länge t auf:v = (L 0 , R 0 )↑ ↑linke Hälfte rechte HälfteKonstruiere eine Folge (L i , R i ), i = 1, . . ., r − 1 nach folgenderVorschrift:(L i , R i ) = (R i−1 , L i−1 ⊕ f Ki (R i−1 ))L+L 1+Klartextblockv0RKfKf12RL 2R 2L r-1+LrKfChiffretextblockE (v) krR01R rAbbildung 7:Schematischer Ablaufeiner Feistel-Chiffrierungr-113 Wie eine solche Methode realisiert werden kann, sehen wir im nächsten Abschnitt.50


[Also:(L i−1 , R i−1 )Substitution des linken Teilblocksdurch Addition des” Schlüsselworts“ f K i(R i−1 )−−−−−−−−−−−−−−−−−−→ (L i−1 ⊕ f Ki (R i−1 ), R i−1 )Transposition(Vertauschen derbeiden Teilblöcke)−−−−−−−−−−−−→ (R i−1 , L i−1 ⊕ f Ki (R i−1 )) = (L i , R i ) ]Schließlich in der r-ten R<strong>und</strong>e:(L r , R r ) = (L r−1 ⊕ f Kr (R r−1 ), R r−1 )[Hier keine Transposition mehr.]E k (v) = (L r , R r ), ChiffretextblockEntschlüsselung:Wie Verschlüsselung, nur mit der Schlüsselfolge (K r , K r−1 , . . .,K 1 ).Begründung: Wir setzen L ′ 0 = L r, R 0 ′ = R r, K i ′ = K r+1−i, i = 1, . . ., r.Wir verschlüsseln (L ′ 0, R 0) ′ mit der Folge (K 1, ′ . . .,K r) ′ <strong>und</strong> betrachten dieZwischenresultate (L ′ i , R′ i ), i = 1, . . ., r.1. R<strong>und</strong>e:(L ′ 1, R ′ 1) = (R ′ 0, L ′ 0 ⊕ f K ′1(R ′ 0)) = (R r , L r ⊕ f Kr (R r ))2. R<strong>und</strong>e:= (R}{{} r−1 , L r−1 ⊕ f Kr (R r−1 )} {{ }R rL r⊕ f Kr (R r−1}{{}R r) = (R r−1 , L r−1 )} {{ }(0,...0)←−t−→(L ′ 2 , R′ 2 ) = (R′ 1 , L′ 1 ⊕ f K ′ 2 (R′ 1 )) = (L r−1, R r−1 ⊕ f Kr−1 (L r−1 ))= (R}{{} r−2 , L r−2 ⊕ f Kr−1 (R r−2 )} {{ }L r−1R r−1⊕ f Kr−1 (R r−2}{{}L r−1)) = (R r−2 , L r−2 )Am Ende der (r − 1)-ten R<strong>und</strong>e hat man dann:51


(L ′ r−1 , R′ r−1 ) = (R 1, L 1 )r-te R<strong>und</strong>e:(L ′ r , R′ r ) = (L′ r−1 ⊕ f K ′ r (R′ r−1 ), R′ r−1 ) = (R 1 ⊕ f K1 (L 1 ), L 1 )= (L 0 ⊕ f K1 (R 0 ) ⊕f} {{ }K1 ( R 0 ), R }{{} 0 ) = (L }{{} 0 , R 0 ) = v=R 1 L 1 L 1Bemerkung:Die Rechnung zur Entschlüsselung zeigt, dass jede VerschlüsselungsfunktionE k :2t2 →2t2 einer Feistel-Chiffre (<strong>und</strong> auch jede R<strong>und</strong>enfunktion(L i−1 , R i−1 ) → (L i , R i )) bijektiv ist, gleichgültig, ob die f Ki bijektiv sindoder nicht. Damit hat man natürlich eine große Anzahl an Wahlmöglichkeitenfür die Substitutionsfunktionen f Ki .Beachte:Man muss bei Feistel-Chiffren dafür sorgen, dass nicht alle Substitutionen(L i−1 , R i−1 ) → (L i−1 ⊕ f Ki (R i−1 ), R i−1 ) affin (oder sogar linear) sind, dennsonst ist die gesamte Feistel-Chiffre affin (bzw. linear) (Transpositionen sindlinear nach Beispiel b) auf Seite 47). Dies bedeutet, dass nicht alle R i−1 →f Ki (R i−1 ) affin sind. Denn:Istso istf Ki (R i−1 ) = R i−1 A i + b i , A i ∈(t,t)2 , b i ∈t 2 ,(L i−1 ⊕ f Ki (R i−1 ), R i−1 ) = (L i−1 , R i−1 ) ·⎛⎜⎝1⎞. .. 01 ⎟1⎠ + (b i , 0, . . .0).. ..←−t−→1A i52


4.6 Der ’Data Encryption Standard’ DESBemerkungen zur Historie:15.5.1973 Ausschreibung des NBS (National Bureau of Standards,heute NIST, National Institute of Standards and Technology)für einen standardisierten kryptologischen Algorithmus;keine geeigneten Kandidaten.27.8.1974 Zweite Ausschreibung;einziger akzeptabler Vorschlag kommt von IBM, ist eineWeiterentwicklung von LUCIFER.1974/75 Begutachtung des Verfahrens durch die NSA (National SecurityAgency), es werden Modifikationen <strong>und</strong> insbesondereeine Überarbeitung der Substitutionen vorgenommen.Gerüchte: Wurden dadurch Hintertüren von IBM-Mitarbeitern verhindert? Oder etwa eigene Hintertüreneingebaut?Entwurfskriterien wurden als “geheim“ eingestuft.Ferner: Reduktion der Schlüssellänge gegenüber LUCIFERvon 128 Bit auf 56 Bit!17.3.1975 Veröffentlichung von Einzelheiten des Algorithmus1976 Zwei Workshops des NBS zur Evaluation15.1.1977 Als DES in der FIPS (Federal Information Processing Standards)Publ. 46 veröffentlicht.15.7.1977 Standard tritt in Kraft.1978 Überprüfung durch ein Komitee des US-Senats;nur Zusammenfassung veröffentlicht: DES frei von mathematischen<strong>und</strong> statistischen Schwächen.1982, 1987,1992, 19975-jährige Überprüfungen, jeweils Verlängerung des Standardsum 5 Jahre1990 Biham, Shamir: Differentielle Kryptoanalyse1994 Coppersmith (aus dem IBM-Entwicklerteam) publiziertEinzelheiten über die Entwurfskriterien des DES.1993 Für 1 Mio US-Dollar lässt sich ein Computer bauen, der dengesamten Schlüsselraum in 7 St<strong>und</strong>en durchsucht; daher inder Folgezeit verstärkte Verwendung des Triple-DES.26.5.2002 DES wird durch AES ersetzt.DES ist (leicht modifizierte) Feistel-Chiffre. Klartextblöcke <strong>und</strong> Chiffretextblöckebestehen aus 64 Bits.Ein Schlüssel k hat 56 Bits, wird aber als 64-Bit-String beschrieben; die Bits53


an den Positionen 8, 16, 24, . . ., 64 werden so gewählt, dass die 8 Teilblöcke zu8 Bits jeweils - gemäß FIPS-Standard - ungerade Anzahl von Einsen enthalten(fehlerentdeckende Codierung). Damit gibt es 2 56 ≈ 7, 2 · 10 16 verschiedeneSchlüssel.R<strong>und</strong>enschlüssel K i haben jeweils 48 Bits.Die Modifikation des DES im Vergleich zu reiner Feistel-Chiffre besteht darin,dass der Klartextblock zunächst einer festen Eingangspermutation IP (initialpermutation) unterworfen wird, dann eine Feistel-Chiffre mit 16 R<strong>und</strong>endurchgeführt wird <strong>und</strong> schließlich eine Schlusspermutation IP −1 (Inverse derEingangspermutation) angewandt wird.Eingangspermutation IP 1458 50 42 34 26 18 10 260 52 44 36 28 20 12 462 54 46 38 30 22 14 664 56 48 40 32 24 16 857 49 41 33 25 17 9 159 51 43 35 27 19 11 361 53 45 37 29 21 13 563 55 47 39 31 23 15 7Schlusspermutation IP −140 8 48 16 56 24 64 3239 7 47 15 55 23 63 3138 6 46 14 54 22 62 3037 5 45 13 53 21 61 2936 4 44 12 52 20 60 2835 3 43 11 51 19 59 2734 2 42 10 50 18 58 2633 1 41 9 49 17 57 25IP <strong>und</strong> IP −1 haben keine kryptologische Bedeutung.Zur Beschreibung des DES fehlen jetzt nur noch1. Erzeugung der R<strong>und</strong>enschlüssel2. Angabe der f K14 Diese <strong>und</strong> folgende Tabellen sind zeilenweise von links oben nach rechts unten zulesen. Steht eine Zahl z an der Position i, so heißt das, dass das Bit an der Position z imEingabestring auf die Position i im Ausgabestring abgebildet wird.54


4.6.1 R<strong>und</strong>enschlüsselerzeugungSei k ∈642 der DES-Schlüssel (mit den Parity-Bits wie oben beschrieben).Zu Beginn wird k durch eine Schlüsselpermutation auf einen 56-Bit-Stringverkürzt. (Man spricht von Permutation, da die 8 Parity-Bits von k an derStelle 8, 16, . . .64 unberücksichtigt bleiben <strong>und</strong> die übrigen 56 Positionenpermutiert werden.)Dieser 56-Bit-String wird in 2 28-Bit Hälften geteilt: (C 0 , D 0 ).In R<strong>und</strong>e i (i = 1, . . .,16) werden aus C i−1 , D i−1 ∈282 neue C i , D i ∈282erzeugt, aus diesen wird dann der R<strong>und</strong>enschlüssel K i ∈482 erzeugt.Def. zunächst v i für 1 ≤ i ≤16 durch{1 für i = 1, 2, 9, 16v i =2 sonstC i entsteht aus C i−1 durch zyklischenLinksshift um v i Stellen.D i entsteht aus D i−1 inder gleichen Weise.(Also: In R<strong>und</strong>e 1, 2, 9 <strong>und</strong>16 Linksshift um eine Stelle,in den übrigen R<strong>und</strong>en Linksshiftum zwei.)Auf (C i , D i ) ∈562 wird eineKompressionsabbildung angewandt,die aus (C i , D i ) denR<strong>und</strong>enschlüssel K i ∈482 herstellt.[Die Kompressionsabbildungwählt 48 der 56 Bits von(C i , D i ) aus <strong>und</strong> permutiertdiese.]Eingabe R<strong>und</strong>e 1:Eingabe R<strong>und</strong>e i:Eingabe R<strong>und</strong>e i+1:zykl. Linksshiftum v Stellen ikC0D0C i-1 Di-1C i Dif KiCiKi642562562zykl. Linksshiftum v Stellen iSchlüsselpermutationKompressionsabb.Di482562Abbildung 8: R<strong>und</strong>enschlüsselerzeugung55


Schlüsselpermutation57 49 41 33 25 17 9 158 50 42 34 26 18 10 259 51 43 35 27 19 11 360 52 44 36 63 55 47 3931 23 15 7 62 54 46 3830 22 14 6 61 53 45 3729 21 13 5 28 20 12 4Kompressionsabbildung14 17 11 24 1 5 3 2815 6 21 10 23 19 12 426 8 16 7 27 20 13 241 52 31 37 47 55 30 4051 45 33 48 44 49 39 5634 53 46 42 50 36 29 324.6.2 Beschreibung der Verschlüsselungsfunktion f KiWie bei jeder Feistelchiffre wird aus der Ausgabe (L i−1 , R i−1 ) ∈642 der(i−1)-ten R<strong>und</strong>e die Ausgabe (L i , R i ) ∈642 der i-ten R<strong>und</strong>e erhalten durch:L i = R i−1R i = L i−1 ⊕ f Ki (R i−1 )[Ausnahme R<strong>und</strong>e 16; dort R 16 = R 15 , L 16 = L 15 ⊕ f K16 (R 15 ).]Sei also R ∈322 , K ∈482 ein R<strong>und</strong>enschlüssel. (Wir lassen den R<strong>und</strong>enindexder besseren Übersichtlichkeit wegen jetzt weg.)1. Schritt:Anwendung der Expansionsabbildunge :322 →482 :R → e(R)Expansionsabbildung32 1 2 3 4 54 5 6 7 8 98 9 10 11 12 1312 13 14 15 16 1716 17 18 19 20 2120 21 22 23 24 2524 25 26 27 28 2928 29 30 31 32 12. Schritt:Schlüsseladdition: e(R) ⊕ K = (B 1 , B 2 , . . .,B 8 ) ∈482B j ∈6 2 , j = 1, . . .,83. Schritt:8 S-Boxen S 1 , . . ., S 8 . Jede S-Box besteht aus vier Zeilen, jede der Zeilenenthält die Zahlen {0, 1, . . ., 15} in einer gewissen Reihenfolge.B j ist Input für die S-Box S j . Ist B j = (b 1 b 2 b 3 b 4 b 5 b 6 ), so wird durch b 1 b 6 dieZeile von S j festgelegt: b 1 b 6 ist die Binärdarstellung einer Zahl a ∈ {0, 1, 2, 3}.Wähle die (a + 1)-te Zeile von S i . b 2 b 3 b 4 b 5 legt den Eintrag in der gewählten56


Zeile fest. b 2 b 3 b 4 b 5 ist die Binärdarstellung einer Zahl b ∈ {0, . . .15}.Wähle (b + 1)-te Position in der betreffenden Zeile.Schreibe den Eintrag an der ausgewählten Position binär. Dies ist C j =S j (B j ) ∈4 2 , die S-Box-Substitution von B j .4. Schritt:(C 1 , C 2 , . . .C 8 ) ∈322 wird abschließendeiner sogenanntenP-Box-Permutation unterworfen;das Ergebnis ist f K (R) ∈322 .(Die P-Box-Permutation dientder gleichmäßigen Verteilungder Output-Bits der S-Boxennach R<strong>und</strong>e i auf die S-Boxenin R<strong>und</strong>e i + 1; sie sorgt fürKonfusion <strong>und</strong> Diffusion.)P-Box-Permutation16 7 20 21 29 12 28 171 15 23 26 5 18 31 102 8 24 14 32 27 3 919 13 30 6 22 11 4 25S-Box 114 4 13 1 2 15 11 8 3 10 6 12 5 9 0 70 15 7 4 14 2 13 1 10 6 12 11 9 5 3 84 1 14 8 13 6 2 11 15 12 9 7 3 10 5 015 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13S-Box 215 1 8 14 6 11 3 4 9 7 2 13 12 0 5 103 13 4 7 15 2 8 14 12 0 1 10 6 9 11 50 14 7 11 10 4 13 1 5 8 12 6 9 3 2 1513 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9S-Box 310 0 9 14 6 3 15 5 1 13 12 7 11 4 2 813 7 0 9 3 4 6 10 2 8 5 14 12 11 15 113 6 4 9 8 15 3 0 11 1 2 12 5 10 14 71 10 13 0 6 9 8 7 4 15 14 3 11 5 2 1257


S-Box 47 13 14 3 0 6 9 10 1 2 8 5 11 12 4 1513 8 11 5 6 15 0 3 4 7 2 12 1 10 14 910 6 9 0 12 11 7 13 15 1 3 14 5 2 8 43 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14S-Box 52 12 4 1 7 10 11 6 8 5 3 15 13 0 14 914 11 2 12 4 7 13 1 5 0 15 10 3 9 8 64 2 1 11 10 13 7 8 15 9 12 5 6 3 0 1411 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3S-Box 612 1 10 15 9 2 6 8 0 13 3 4 14 7 5 1110 15 4 2 7 12 9 5 6 1 13 14 0 11 3 89 14 15 5 2 8 12 3 7 0 4 10 1 13 11 64 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13S-Box 74 11 2 14 15 0 8 13 3 12 9 7 5 10 6 113 0 11 7 4 9 1 10 14 3 5 12 2 15 8 61 4 11 13 12 3 7 14 10 15 6 8 0 5 9 26 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12S-Box 813 2 8 4 6 15 11 1 10 9 3 14 5 0 12 71 15 13 8 10 3 7 4 12 5 6 11 0 14 9 27 11 4 1 9 12 14 2 0 6 10 13 15 3 5 82 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11Tabelle 5: Die 8 S-Boxen des DES, repräsentiert durch acht 4 × 16 MatrizenDie Substitutionsfunktionen f K im DES sind nicht bijektiv, was, wie in 4.5erwähnt, keinen Einfluss auf die Bijektivität der GesamtverschlüsselungsfunktionE k hat. Es ist relativ einfach, Beispiele R ≠ R ′ mit f K (R) = f K (R ′ )zu konstruieren (Übungsaufgabe).58


RZZ322eExpansionsabb.e(R)ZZ482+KZZ482BB1 2B3BBB4 5 6B7B8BjZZ62S-BoxenS S S S S S S S1 2 3 45 6 78ccccc1 2 3 4 5 6 7 8c jcccZZ 42P-BoxP-Box-Permutationf K(R)ZZ322Abbildung 9: Schematische Darstellung der Berechnung von f K (R)4.6.3 Sicherheit des DESa) Beim DES sind die Prinzipien der Diffusion <strong>und</strong> Konfusion verwirklicht.• Die Änderung eines Input-Bits einer S-Box ändert den Output derS-Box um mindestens zwei Bits.• Jedes Output-Bit hängt nach 5 R<strong>und</strong>en von jedem Klartextbit<strong>und</strong> jedem Schlüsselbit ab (Lawineneffekt).(Dazu trägt auch die P-Box-Permutation bei, die für eine gleichmäßigeVerteilung der Output-Bits der S-Boxen in R<strong>und</strong>e i auf59


die S-Boxen in R<strong>und</strong>e i + 1 sorgt.)Wir verdeutlichen dies an einem Beispiel:Diffusion bei DESKlartext 100000000 00000000 00000000 0000000000000000 00000000 00000000 00000000Klartext 200000000 00000000 00000000 0000000000000000 00000000 00000000 00000001Schlüssel00000001 00100011 01000101 0110011110001001 10101011 11001101 11101111Chiffretext 111010101 11010100 01001111 1111011100100000 01101000 00111101 00001101Chiffretext 211110000 10001100 01010111 0010000010010101 10010011 11111110 10110011Unterschiede an 36 Stellen.Anzahl der unterschiedlichen Bits bei der Verschlüsselung der Klartextblöcke1 <strong>und</strong> 2 nach den einzelnen DES-R<strong>und</strong>en:zu Beginn 1Nach R<strong>und</strong>e 1 1 Nach R<strong>und</strong>e 9 40Nach R<strong>und</strong>e 2 7 Nach R<strong>und</strong>e 10 34Nach R<strong>und</strong>e 3 18 Nach R<strong>und</strong>e 11 31Nach R<strong>und</strong>e 4 25 Nach R<strong>und</strong>e 12 34Nach R<strong>und</strong>e 5 26 Nach R<strong>und</strong>e 13 34Nach R<strong>und</strong>e 6 29 Nach R<strong>und</strong>e 14 31Nach R<strong>und</strong>e 7 32 Nach R<strong>und</strong>e 15 32Nach R<strong>und</strong>e 8 37 Nach R<strong>und</strong>e 16 3660


Konfusion bei DESKlartext (wie oben Klartext 1)00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000Schlüssel 1 (wie oben)00000001 00100011 01000101 0110011110001001 10101011 11001101 11101111Schlüssel 200000001 00100011 01000101 0110011110001001 10101011 11001101 11101100Verschlüsselung des Klartextesmit Schlüssel 1111010101 11010100 01001111 1111011100100000 01101000 00111101 00001101Verschlüsselung des Klartextesmit Schlüssel 211101010 00111011 00101011 0100101011101001 00110110 00010111 10000111Unterschiede an 37 Stellen.Anzahl der unterschiedlichen Bits bei der Verschlüsselung des Klartextblockesmit den Schlüsseln 1 <strong>und</strong> 2 nach den einzelnen DES-R<strong>und</strong>en:Nach R<strong>und</strong>e 1 2 Nach R<strong>und</strong>e 9 35Nach R<strong>und</strong>e 2 12 Nach R<strong>und</strong>e 10 30Nach R<strong>und</strong>e 3 24 Nach R<strong>und</strong>e 11 34Nach R<strong>und</strong>e 4 28 Nach R<strong>und</strong>e 12 39Nach R<strong>und</strong>e 5 29 Nach R<strong>und</strong>e 13 37Nach R<strong>und</strong>e 6 33 Nach R<strong>und</strong>e 14 31Nach R<strong>und</strong>e 7 34 Nach R<strong>und</strong>e 15 36Nach R<strong>und</strong>e 8 37 Nach R<strong>und</strong>e 16 37b) Das Design des DES erfordert R<strong>und</strong>enschlüssel mit 48 Bits. Diese hätteman auch mit einem 48-Bit-Master-Key erzeugen können. Das wäreaber schon damals unsicher gewesen ( 1 Aufwand zum Durchsuchen256des gesamten Schlüsselraums!). Man hätte solche R<strong>und</strong>enschlüssel aberauch aus längeren Master-Keys erzeugen können. Damit hätte man die61


Sicherheit erhöhen können. Dies wurde aber 1975 nicht für notwendig(oder wünschenswert) gehalten.Als der DES später hard- <strong>und</strong> softwaremäßig weit verbreitet war, wareine solche Änderung schwierig. Man entschied sich daher dann für einvöllig neues Verfahren (AES).c) Bei vollständiger Durchsuchung des Schlüsselraums müssen im schlimmstenFall (bei einem Ciphertext-Only-Angriff) 2 56 Schlüssel ausprobiertwerden. Der DES hat jedoch folgende Symmetrieeigenschaft:Sei m ein Klartextblock, k ein Schlüssel, c = E k (m) der durch DESverschlüsselte Block. Bezeichnet man mit ¯m, ¯k, ¯c die zu m, k <strong>und</strong> ckomplementären Blöcke (Nullen <strong>und</strong> Einsen vertauschen), so gilt ¯c =E¯k( ¯m). Dies führt zu folgendem Angriff, bei dem nur 2 55 Schlüssel zutesten sind, wenn für einen Klartext m sowohl c = E k (m) als auch c ∗ =E k ( ¯m) bekannt sind (z.B. bei einem Chosen-Plaintext-Angriff). Mantestet dann 2 55 Schlüssel, wobei nie ein Schlüssel <strong>und</strong> sein Komplementgetestet werden (z.B. alle Schlüssel mit 0 als erstem Bit). Erhält manein ˜k mit E˜k(m) = c, so ist (sehr wahrscheinlich) k = ˜k; erhält man ein˜k mit E˜k(m) = ¯c ∗ , so ist (sehr wahrscheinlich) k = ¯˜k.d) Zur Zeit der Einführung des DES (1975) war eine vollständige Schlüsselsuchekaum denkbar. Dennoch zeigten W. Diffie <strong>und</strong> M. Hellman ineiner Arbeit 1977, dass es möglich ist, für 20 Millionen US-$ eine Maschinezu bauen, die einen DES-Schlüssel innerhalb eines Tages ermittelnwürde. (Kritik von Diffie <strong>und</strong> Hellman: Kurze Schlüssellänge von56 Bits)1997: RSA Data Security bot 10.000 US-$ demjenigen, der zuerst einenDES-chiffrierten Text knacken würde. Nach fünf Monaten wurde derSchlüssel von R. Vesper ermittelt. Methode: Tausende über das Internetverb<strong>und</strong>ene Rechner arbeiteten zusammen. (25 % des Schlüsselraumsmussten durchsucht werden.)1998: Zweites DES-Challenge durch RSA Data Security. Nach 39 Tagenwurde der Schlüssel von Distributed Computing Technologies ermittelt(81 % des Schlüsselraums wurden durchsucht).1998/1999: DES-Cracker von Electronic Frontier Fo<strong>und</strong>ation (EEF):1536 parallel arbeitende spezielle Chips (40 MHz). Benötigt im Schnittviereinhalb Tage, um DES-Schlüssel zu ermitteln. 1515 Einzelheiten siehe Trappe <strong>und</strong> Washington [43], S. 118-12262


e) Es gibt vier sog. schwache Schlüssel beim DES. Sie haben die Eigenschaft,dass alle erzeugten R<strong>und</strong>enschlüssel gleich sind. Die schwachenSchlüssel sind: (00000001) 8 , (11111110) 8 , (00011111) 4 (00001110) 4 ,(11100000) 4 (11110001) 4Für diese schwachen Schlüssel gilt: E k (E k (m)) = mSchwache Schlüssel müssen vermieden werden. Außerdem gibt es insgesamt12 Schlüssel, die nur zwei verschiedene R<strong>und</strong>enschlüssel erzeugen.Diese heißen semischwache Schlüssel <strong>und</strong> sollten ebenfalls vermiedenwerden. Diese 12 Schlüssel lassen sich in 6 Paare (k 1 , k 2 ) aufteilen, sodass E k1 (E k2 (m)) = m.f) Keine der S-Boxen beschreibt eine (affin-) lineare Funktion, ebensowenigwie das gesamte DES als (affin-) lineare Funktion (bei gegebenemSchlüssel) beschrieben werden kann. Der DES ist also gegen die einfachenAngriffe, die bei (affin-) linearen Blockchiffren möglich sind, sicher.Auch gegen kryptoanalytische Angriffe, die darauf beruhen, das Verschlüsselungsverfahren(bei festem Schlüssel) durch eine lineare Funktionzu approximieren – sogenannte lineare Kryptoanalyse (Known-Plaintext-Angriff) 16 – erwies sich DES als ausreichend sicher: Für das16-R<strong>und</strong>en DES werden 2 43 Klartext-Chiffretextblockpaare benötigt,um mit dieser Methode den Schlüssel zu bestimmen 17 . Allerdings istsie besser als differentielle Kryptoanalyse (die wir in 4.10 behandeln)<strong>und</strong> vollständige Durchsuchung des Schlüsselraums. Man beachte: 2 43Blockpaare entsprechen ca. 140 TByte, das ist in etwa der Inhalt von200 Millionen Büchern.Beachte: Die Methode der linearen Kryptoanalyse war den Designernvon DES (im Gegensatz zur differentiellen Kryptoanalyse) nicht bekannt.Die S-Boxen sind bezüglich linearer Kryptoanalyse nicht optimiert.g) Jedes Chiffretextverfahren, das die Gruppeneigenschaft besitzt, wo alsodie Hintereinanderausführung zweier Verschlüsselungen mit den Schlüsselnk 1 , k 2 einer Verschlüsselung mit einem Schlüssel k 3 entspricht, hateine gewisse innere Symmetrie, die für kryptoanalytische Angriffe nutzbargemacht werden kann. Das DES hat jedoch nicht diese Eigenschaft,d.h. für die Schlüssel k 1 , k 2 ist i.a. E k1 ◦ E k2 ≠ E k3 für alle Schlüssel k 3 .16 M. Mitsui; Linear cryptoanalysis method for DES cipher, Adv. in Cryptology-EUROCRYPT ’93, Springer LNCS 765, 1994, S. 386-397.17 vgl. [38]63


Die 2 56 DES -Verschlüsselungsfunktionen erzeugen also eine größereGruppe (innerhalb der Gruppe S 2 64 aller Permutationen der 2 64 Blöckeder Länge 64 über2). Tatsächlich folgt aus Arbeiten von Coppersmith(1992) <strong>und</strong> Campbell/Wiener (1993), dass die von den DES-Verschlüsselungsfunktionen erzeugte Gruppe mindestens Ordnung 1, 94·10 2499 hat. (Beachte: |S 2 64| = (2 64 )! > 10 (1020) .)h) Aufgr<strong>und</strong> von g) kann man die Sicherheit des DES erhöhen, indem man(mit verschiedenen Schlüsseln) einen Klartext mehrmals chiffriert. Allerdingsbringt doppelte DES-Verschlüsselung kaum mehr Sicherheit.Tatsächlich hat der Schlüsselraum jetzt zwar die Größe 2 112 , aber mankann ein Schlüsselpaar (k 1 , k 2 ) mit 2 57 einfachen DES-Verschlüsselungenermitteln (mit einem enormen Aufwand an Speicherplatz). Diesgeschieht mit Hilfe des sog. Meet-in-the-Middle Angriffs, der für alleMehrfachhintereinanderausführungen symmetrischer Verschlüsselungsverfahrenfunktioniert.Wir beschreiben ihn kurz:Angenommen: Eve kennt Klartext m <strong>und</strong> doppelt chiffrierten Textc = E k1 (E k2 (m)). Sie will (k 1 , k 2 ) bestimmen.Sie berechnet <strong>und</strong> speichert alle E k (m) für alle Schlüssel k. Dann berechnet<strong>und</strong> speichert sie alle D k (c).(D k (c) = Entschlüsselung von c; bei DES: verwende die durch k erzeugtenR<strong>und</strong>enschlüssel k 1 , . . .k 16 in umgekehreter Reihenfolge.)Dann vergleicht sie die beiden Listen. Ist E k2 (m) = D k1 (c), so istE k1 (E k2 (m)) = c. Erhält man mehrere mögliche Paare (k 1 , k 2 ), so wähleweiteres Klartext-Chiffretextpaar <strong>und</strong> teste, welches der Schlüsselpaare(k 1 , k 2 ) den Klartext auf den Chiffretext abbildet.Bei N Schlüsseln (N = 2 56 bei DES) sind also 2N Berechnungen erforderlich(+N 2 Vergleiche durchzuführen). Dies ist deutlich wenigeraufwändig als N 2 Berechnungen für vollständige Schlüsselsuche. Derbenötigte Speicherplatz ist allerdings extrem groß. 18i) Aufgr<strong>und</strong> von h) wird zur Erhöhung der Sicherheit in der Praxis oftdas Triple-DES benutzt.Zwei typische Varianten:E k1 ◦ E k2 ◦ E k3 für drei Schlüssel k 1 , k 2 , k 3E k1 ◦ D k2 ◦ E k1 für zwei Schlüssel k 1 , k 2(Bei k 1 = k 2 hat man wieder das einfache DES.)18 Für Überlegungen zum Time-Space-Tradeoff vgl. Stinson [42]64


Meet-in-the-Middle Angriff erfordert jetzt etwa 2 113 Berechnungen, <strong>und</strong>der benötigte Speicherplatz ist exorbitant.4.6.4 Effizienz der DES-VerschlüsselungBei Software-Implementation ist (abhängig vom jeweils verwendeten Compiler)eine Verschlüsselungsrate von ca. 100 Mbit/sec möglich. Hardware-Implementationen sind ca. um einen Faktor 10 schneller.(∗) 4.7Differentielle Kryptoanalyse am Beispiel des DESa) Die Differentielle Kryptoanalyse ist ein Chosen-Plaintext-Angriff, der vonE. Biham <strong>und</strong> A. Shamir 1990 vorgestellt wurde ([11], [12]), aber offenbarden Entwicklern des DES schon bekannt war (siehe [18] 19 ). Wir stellen dasVerfahren zunächst für den DES mit wenigen R<strong>und</strong>en vor (ohne IP, IP −1 )<strong>und</strong> zeigen dann, wie es auf größere R<strong>und</strong>enzahlen ausgedehnt werden kann.Wir beschreiben zunächst die Gr<strong>und</strong>überlegung.Da affin-lineare Chiffren leicht zu brechen sind (vgl. 4.3), enthält der DESnicht-lineare Anteile. In jeder R<strong>und</strong>e ist die einzige Nichtlinearität (bis aufdie R<strong>und</strong>enschlüsseladdition - diese ist aber affin) in den S-Boxen enthalten,d.h. im Allgemeinen giltS i (B ⊕ B ∗ ) ≠ S i (B) ⊕ S i (B ∗ ).Dennoch ist die Betrachtung der binären Summen (=binären Differenzen)B ⊕ B ∗ sinnvoll. Der Gr<strong>und</strong> ist folgender: In einer R<strong>und</strong>e des DES ist derR<strong>und</strong>enschlüssel K für den Angreifer die einzige Unbekannte. Kennt er denInput R ∈322 (vgl. Abbildung 9, S. 59), so auch E = e(R), aber nichtE⊕K, <strong>und</strong> daher auch nicht den Input für die S-Boxen, die P-Box, die nächsteR<strong>und</strong>e. Betrachtet man jedoch Inputs R, R ∗ <strong>und</strong> deren “Differenz“ R⊕R ∗ , sokennt man e(R)⊕e(R ∗ ) = e(R⊕R ∗ ) <strong>und</strong> e(R)⊕K⊕e(R ∗ )⊕K = e(R)⊕e(R ∗ ),d.h. für die Differenz spielt die Schlüsseladdition keine Rolle.Also:R ⊕ R ∗ bekannt ⇔B i ⊕ Bi ∗ , i = 1, . . .,8 bekannt(B i , Bi ∗ Input von S-Box S i )(α)19 online unter http://www.research.ibm.com/journal/rd/383/coppersmith.pdf65


Da S-Boxen nichtlinear sind, kann gleiche Eingabedifferenz zu verschiedenenAusgabedifferenzen führen, d.h. durch B i ⊕ B ∗ i ist S i (B i ) ⊕ S i (B ∗ i ) = c i ⊕ c ∗ inicht festgelegt.Im Anschluss an die S-Boxen gilt wieder:c i ⊕ c ∗ i , i = 1, . . .,8 bekannt ⇔ f K(R) ⊕ f K (R ∗ )(= P(C) ⊕ P(C ∗ )= P(C ⊕ C ∗ (β))) bekannt(C = (c 1 , . . .,c 8 ), C ∗ = (c ∗ 1, . . .,c ∗ 8))Damit:Bei Betrachtung der Differenzen R ⊕ R ∗ beim Durchgang durch eine R<strong>und</strong>eist einzig der ÜbergangB i ⊕ Bi ∗ → c i ⊕ c ∗ i , i = 1, . . ., 8nicht eindeutig festgelegt. B i ⊕ B ∗ i heißt Input-Differenz für die S-Box S i ,c i ⊕ c ∗ i = S i(B i ) ⊕ S i (B ∗ i ) heißt Output-Differenz der S-Box S i.Beachte: Es gibt 64 mögliche Input-Differenzen, aber nur 16 mögliche Output-Differenzen.Man untersucht nun für jede S-Box S i den Zusammenhang zwischen Input-Differenzen <strong>und</strong> Output-Differenzen. Sei B ′ ∈6 2 eine vorgegebene Input-Differenz. Es gibt 64 Paare (B, B ∗ ) ∈6 2 ×6 2 mit Differenz B ′ : B ⊕B ∗ = B ′ ,nämlich alle (B, B ⊕ B ′ ), B ∈6 2 . (Für B ′ ≠ 0 sind das 32 verschiedeneungeordnete Paare, denn (B ⊕ B ′ ) ⊕ B ′ = B.)Wir geben exemplarisch eine solche Tabelle für die S-Box S 1 an mit B ′ =(010100).B B ∗ S 1 (B) ⊕ S 1 (B ∗ )(000000) (010100) (1110) ⊕ (0110) = (1000)(000001) (010101) (0000) ⊕ (1100) = (1100)(000010) (010110) (0100) ⊕ (1100) = (1000)(000011) (010111) (1111) ⊕ (1011) = (0100)(000100) (010000) (1101) ⊕ (0011) = (1110)(000101) (010001) (0111) ⊕ (1010) = (1101)(000110) (010010) (0001) ⊕ (1010) = (1011)(000111) (010011) (0100) ⊕ (0110) = (0010)(001000) (011100) (0010) ⊕ (0000) = (0010)(001001) (011101) (1110) ⊕ (0011) = (1101)(001010) (011110) (1111) ⊕ (0111) = (1000)(001011) (011111) (0010) ⊕ (1000) = (1010)66


(001100) (011000) (1011) ⊕ (0101) = (1110)(001101) (011001) (1101) ⊕ (1001) = (0100)(001110) (011010) (1000) ⊕ (1001) = (0001)(001111) (011011) (0001) ⊕ (0101) = (0100)(100000) (110100) (0100) ⊕ (1001) = (1101)(100001) (110101) (1111) ⊕ (0011) = (1100)(100010) (110110) (0001) ⊕ (0111) = (0110)(100011) (110111) (1100) ⊕ (1110) = (0010)(100100) (110000) (1110) ⊕ (1111) = (0001)(100101) (110001) (1000) ⊕ (0101) = (1101)(100110) (110010) (1000) ⊕ (1100) = (0100)(100111) (110011) (0010) ⊕ (1011) = (1001)(101000) (111100) (1101) ⊕ (0101) = (1000)(101001) (111101) (0100) ⊕ (0110) = (0010)(101010) (111110) (0110) ⊕ (0000) = (0110)(101011) (111111) (1001) ⊕ (1101) = (0100)(101100) (111000) (0010) ⊕ (0011) = (0001)(101101) (111001) (0001) ⊕ (1010) = (1011)(101110) (111010) (1011) ⊕ (1010) = (0001)(101111) (111011) (0111) ⊕ (0000) = (0111)(+ 32 weitere Paare, wobei Rolle von B, B ∗ vertauscht;Output-Differenzen analog)Tabelle 6: Output-Differenzen der S-Box S 1 für Input-Differenz B ′ =(010100)(0000) 0 (1000) 8(0001) 8 (1001) 2(0010) 8 (1010) 2(0011) 0 (1011) 4(0100) 10 (1100) 4(0101) 0 (1101) 8(0110) 4 (1110) 4(0111) 2 (1111) 0Tabelle 7: Anzahl der verschiedenen Output-Differenzen der S-Box S 1 beiInput-Differenz (010100)Wären die S-Boxen linear, so würde in den 64 Paaren mit gleicher Input-Differenz (im obigen Beispiel (010100)) jeweils die gleiche Output-Differenz67


auftreten. Die Nichtlinearität wäre am größten, wenn zu gegebener Input-Differenz jedes c ′ ∈4 2 gleich oft (also 4 mal) als Output-Differenz auftretenwürde.Dies ist aber im obigen Beispiel nicht der Fall. Die Diskrepanz von derGleichverteilung aller möglichen Output-Differenzen ist für manche Input-Differenzen größer, für manche geringer. In der folgenden Tabelle ist für dieS-Box S 1 angegeben, wie sich für jede Input-Differenz die Anzahl der Output-Differenzen verteilt.Input-Output-Differenz (Hexadezimal)Differenz 0 1 2 3 4 5 6 7 8 9 A B C D E F000000 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000001 0 0 0 6 0 2 4 4 0 10 12 4 10 6 2 4000010 0 0 0 8 0 4 4 4 0 6 8 6 12 6 4 2000011 14 4 2 2 10 6 4 2 6 4 4 0 2 2 2 0000100 0 0 0 6 0 10 10 6 0 4 6 4 2 8 6 2000101 4 8 6 2 2 4 4 2 0 4 4 0 12 2 4 6000110 0 4 2 4 8 2 6 2 8 4 4 2 4 2 0 12000111 2 4 10 4 0 4 8 4 2 4 8 2 2 2 4 4001000 0 0 0 12 0 8 8 4 0 6 2 8 8 2 2 4001001 10 2 4 0 2 4 6 0 2 2 8 0 10 0 2 12001010 0 8 6 2 2 8 6 0 6 4 6 0 4 0 2 10001011 2 4 0 10 2 2 4 0 2 6 2 6 6 4 2 12001100 0 0 0 8 0 6 6 0 0 6 6 4 6 6 14 2001101 6 6 4 8 4 8 2 6 0 6 4 6 0 2 0 2001110 0 4 8 8 6 6 4 0 6 6 4 0 0 4 0 8001111 2 0 2 4 4 6 4 2 4 8 2 2 2 6 8 8010000 0 0 0 0 0 0 2 14 0 6 6 12 4 6 8 6010001 6 8 2 4 6 4 8 6 4 0 6 6 0 4 0 0010010 0 8 4 2 6 6 4 6 6 4 2 6 6 0 4 0010011 2 4 4 6 2 0 4 6 2 0 6 8 4 6 4 6010100 0 8 8 0 10 0 4 2 8 2 2 4 4 8 4 0010101 0 4 6 4 2 2 4 10 6 2 0 10 0 4 6 4010110 0 8 10 8 0 2 2 6 10 2 0 2 0 6 2 6010111 4 4 6 0 10 6 0 2 4 4 4 6 6 6 2 0011000 0 6 6 0 8 4 2 2 2 4 6 8 6 6 2 2011001 2 6 2 4 0 8 4 6 10 4 0 4 2 8 4 0011010 0 6 4 0 4 6 6 6 6 2 2 0 4 4 6 8011011 4 4 2 4 10 6 6 4 6 2 2 4 2 2 4 268


011100 0 10 10 6 6 0 0 12 6 4 0 0 2 4 4 0011101 4 2 4 0 8 0 0 2 10 0 2 6 6 6 14 0011110 0 2 6 0 14 2 0 0 6 4 10 8 2 2 6 2011111 2 4 10 6 2 2 2 8 6 8 0 0 0 4 6 4100000 0 0 0 10 0 12 8 2 0 6 4 4 4 2 0 12100001 0 4 2 4 4 8 10 0 4 4 10 0 4 0 2 8100010 10 4 6 2 2 8 2 2 2 2 6 0 4 0 4 10100011 0 4 4 8 0 2 6 0 6 6 2 10 2 4 0 10100100 12 0 0 2 2 2 2 0 14 14 2 0 2 6 2 4100101 6 4 4 12 4 4 4 10 2 2 2 0 4 2 2 2100110 0 0 4 10 10 10 2 4 0 4 6 4 4 4 2 0100111 10 4 2 0 2 4 2 0 4 8 0 4 8 8 4 4101000 12 2 2 8 2 6 12 0 0 2 6 0 4 0 6 2101001 4 2 2 10 0 2 4 0 0 14 10 2 4 6 0 4101010 4 2 4 6 0 2 8 2 2 14 2 6 2 6 2 2101011 12 2 2 2 4 6 6 2 0 2 6 2 6 0 8 4101100 4 2 2 4 0 2 10 4 2 2 4 8 8 4 2 6101101 6 2 6 2 8 4 4 4 2 4 6 0 8 2 0 6101110 6 6 2 2 0 2 4 6 4 0 6 2 12 2 6 4101111 2 2 2 2 2 6 8 8 2 4 4 6 8 2 4 2110000 0 4 6 0 12 6 2 2 8 2 4 4 6 2 2 4110001 4 8 2 10 2 2 2 2 6 0 0 2 2 4 10 8110010 4 2 6 4 4 2 2 4 6 6 4 8 2 2 8 0110011 4 4 6 2 10 8 4 2 4 0 2 2 4 6 2 4110100 0 8 16 6 2 0 0 12 6 0 0 0 0 8 0 6110101 2 2 4 0 8 0 0 0 14 4 6 8 0 2 14 0110110 2 6 2 2 8 0 2 2 4 2 6 8 6 4 10 0110111 2 2 12 4 2 4 4 10 4 4 2 6 0 2 2 4111000 0 6 2 2 2 0 2 2 4 6 4 4 4 6 10 10111001 6 2 2 4 12 6 4 8 4 0 2 4 2 4 4 0111010 6 4 6 4 6 8 0 6 2 2 6 2 2 6 4 0111011 2 6 4 0 0 2 4 6 4 6 8 6 4 4 6 2111100 0 10 4 0 12 0 4 2 6 0 4 12 4 4 2 0111101 0 8 6 2 2 6 0 8 4 4 0 4 0 12 4 4111110 4 8 2 2 2 4 4 14 4 2 0 2 0 8 4 4111111 4 8 4 2 4 0 2 4 4 2 4 8 8 6 2 2Tabelle 8: Input-/Output-Differenzen bei S-Box S 1Die differentielle Kryptoanalyse beruht darauf, dass für jede S-Box bei manchenInput-Differenzen gewisse Output-Differenzen besonders häufig auftre-69


ten; die S-Box verhält sich für solche Input-Differenzen “etwas linearer“.Dazu muss für jede S-Box <strong>und</strong> jede Input-Differenz eine Tabelle entsprechendTabelle 6 erstellt werden (insgesamt 8 · 2 6 = 512 Tabellen).Wir zeigen jetzt, wie die differentielle Kryptoanalyse funktioniert <strong>und</strong> betrachtendazu zunächst einmal den DES mit wenigen R<strong>und</strong>en, weil hier dieSituation noch überschaubar ist.b) Analyse einer DES-R<strong>und</strong>eHier spielt die Abweichung der Output-Differenzen von der Gleichverteilung(bei gegebener Input-Differenz) noch keine Rolle.Der Chosen-Plaintext-Angriff versucht aus der Kenntnis von (R, f K (R)),(R ∗ , f K (R ∗ )), . . . auf den R<strong>und</strong>enschlüssel K zu schließen. Was man dazubenötigt ist die Kenntnis von R, R ∗ <strong>und</strong> von f K (R) ⊕ f K (R ∗ ) (evtl. für meherePaare (R, R ∗ )).Bekannt sind R, R ∗ , also auch(1) e(R) = (e 1 , . . .,e 8 ) <strong>und</strong> e(R ∗ ) = (e ∗ 1 , . . .,e∗ 8 )Außerdem(2) B 1 ⊕ B ∗ 1(= e 1 ⊕ e ∗ 1), . . ., B 8 ⊕ B ∗ 8(= e 8 ⊕ e ∗ 8)(aber nicht B 1 , . . .,B 8 , B ∗ 1 , . . .,B∗ 8 )(nach (α))<strong>und</strong>(3) c 1 ⊕ c ∗ 1 , . . .,c 8 ⊕ c ∗ 8 (nach (β))Der R<strong>und</strong>enschlüssel sei K = (k 1 , . . .,k 8 ), k i ∈6 2 .Es ist(4) k i = e i ⊕ B i = e ∗ i ⊕ B∗ i , i = 1, . . .,8(da B i = e i ⊕ k i , Bi ∗ = e ∗ i ⊕ k i )70


Betrachte i = 1:B ′ 1 := B 1 ⊕ B ∗ 1 bekannt.Das Paar (B 1 , B ∗ 1 ) taucht in der Tabelle für S 1 zur Input-Differenz B ′ 1 auf.Daher kennt man alle Möglichkeiten für (B 1 , B ∗ 1 ) mit Output-Differenz c 1 ⊕c ∗ 1 =: c ′ 1.Damit erhält man für jedes mögliche B 1 einen Kandidaten e 1 ⊕ B 1 für den↑bekanntTeilschlüssel k 1 (bei e ∗ 1 ⊕ B1 ∗ ergibt sich dasselbe).Damit sind die Möglichkeiten für die ersten 6 Bit von K (das ist k 1 ) eingeschränkt.Beispiel:Angenommen R = (00101∗. . .∗1), R ∗ = (10001∗. . .∗1) <strong>und</strong> c 1 ⊕c ∗ 1 = (0110).Danne 1 = (100101), e ∗ 1 = (110001)B 1 ⊕ B1 ∗ = e 1 ⊕ e ∗ 1 = (010100) Input-Differenzc 1 ⊕ c ∗ 1 = (0110) Output-DifferenzDer Tabelle 6 entnimmt man:Möglichkeiten für (B 1 , B1 ∗) : (100010),(110110),(101010),(111110),Kandidaten für k 1 : e 1 ⊕ B 1 = (000111)(010011)(001111)(011011)⎡⎢⎣⎫⎪⎬⎪⎭(110110)(100010)(111110)(101010)⎤⎥⎦einer davon istder richtige k 1Von 2 6 = 64 Kandidaten für k 1 sind nur 4 Möglichkeiten geblieben.Wiederholt man das für ein anderes Paar R, R ∗ , so erhält man eine weitereKandidatenmenge für k 1 , die ebenfalls den richtigen k 1 enthält. Nach wenigenVersuchen hat man im Allgemeinen nur noch eine Möglichkeit für k 1 .Fortsetzung Beispiel:Angenommen ¯R = (01001∗. . .∗1), ¯R∗ = (00000∗. . .∗1) <strong>und</strong> ¯c 1 ⊕ ¯c ∗ 1 = (0001).Dannē 1 = (101001), ē ∗ 1 = (100000)¯B 1 ⊕ ¯B ∗ 1 = ē 1 ⊕ ē ∗ 1 = (001001) 71


Nur 2 Möglichkeiten für ( ¯B 1 , ¯B 1 ∗) : (111010), [ (110011)(110011), (111010)Kandidaten für k 1 : ē 1 ⊕ ¯B 1 = (010011) ← nur dieser taucht(011010) auch oben aufAlso: k 1 = (010011).Dasselbe führt man für k 2 , . . ., k 8 durch. Dann ist der R<strong>und</strong>enschlüssel Kbestimmt.c) Analyse des DES mit 3 R<strong>und</strong>en]L0 R0Man wählt Klartexte (L 0 , R 0 ) <strong>und</strong> (L ∗ 0 , R∗ 0 ) mit R 0 =R0, ∗ die zu (L 3 , R 3 ) bzw. (L ∗ 3, R3) ∗ verschlüsselt werden.+K1Ziel ist die Bestimmung des 56-Bit-Schlüssels k, aus demK 1 , K 2 <strong>und</strong> K 3 entstehen.L 1K2R1Tatsächlich benötigt man zur Bestimmung von K 3 (dasist das erste Ziel) nur die Kenntnis von L 0 ⊕L ∗ 0 , L 3 ⊕L ∗ 3 ,R 3 , R ∗ 3 <strong>und</strong> dass R 0 = R ∗ 0 (der Wert von R 0 wird nichtbenötigt).+Nun gilt:L 3 = L 2 ⊕ f K3 (R 2 ) = R 1 ⊕ f K3 (R 2 )= L 0 ⊕ f K1 (R 0 ) ⊕ f K3 (R 2 )L 2R 2+K3<strong>und</strong> analogL ∗ 3 = L ∗ 0 ⊕ f K1 (R ∗ 0) ⊕ f K3 (R ∗ 2).LR3 3Dann folgt (da R 0 = R ∗ 0):L 3 ⊕ L ∗ 3 = L} {{ } 0 ⊕ L ∗ 0 ⊕f} {{ }K3 (R 2 ) ⊕ f K3 (R2 ∗ )=: L ′ 3 =: L ′ 0bekannt bekanntDamit ist f K3 (R 2 ) ⊕ f K3 (R ∗ 2) bekannt <strong>und</strong> R 2 = R 3 , R ∗ 2 = R ∗ 3 sind bekannt.Die Analyse einer DES-R<strong>und</strong>e wie in b) (angewandt auf die 3. R<strong>und</strong>e) liefertjetzt den Schlüssel K 3 . (Dazu benötigt man geeignete R 2 , R2 ∗ ; daher verwendetman viele (L 0 , R 0 ), (L ∗ 0, R0), ∗ um geeignete R 2 = R 3 , R2 ∗ = R3 ∗ zuerhalten.)72


Vom 56-Bit-Schlüssel k sind damit (durch K 3 ) 48 Bit bestimmt. Die restlichen8 Bit erhält man durch 256 Versuche, indem man testet, wann (L 0 , R 0 ) auf(L 3 , R 3 ) abgebildet wird.d) Analyse des DES mit 4 R<strong>und</strong>enHier kommen nun die Nicht-Gleichverteilungen der Output-Differenzen derS-Boxen bei gegebener Input-Differenz zum Tragen. Daher ist jetzt die Wahlvon Klartextblöcken mit geeigneten Differenzen wichtig. Wir demonstrierendas Verfahren mit solch einer geeigneten Wahl.Wähle (L 0 , R 0 ) <strong>und</strong> (L ∗ 0, R ∗ 0) so, dass--R 0 ⊕ R0∗L 0 ⊕ L ∗ 0==(0100 ............ 0000)(0 ... 0 1↑230 . . .0 1↑310 ... 0)e(R 0 ) ⊕ e(R0 ∗ ) = (0010000 ... 0 ... 0 ... 0)Input-Differenzen für S-Boxen in der 1. R<strong>und</strong>e:S 1 : (001000)S i : (000000), i = 2, . . .8.Tabelle der Output-Differenzen von S 1 bei Input-Differenz (001000) :Mit Wahrscheinlichkeit 12 = 3 (relativ groß) ist Output-Differenz (0011).64 16Bei allen S i , i = 2, . . .8: Output-Differenz (0000).Anwendung P-Box Permutation:f K1 (R 0 ) ⊕ f K1 (R0) ∗ hat mit Wahrscheinlichkeit 3 an den Stellen 23 <strong>und</strong> 3116eine Eins, sonst Nullen. (An den Stellen 9, 17, 23, 31 stehen die Einträge derOutput-Differenz von S 1 .)Nach Addition von L 0 ⊕L ∗ 0 ergibt sich daher, dass R 1 ⊕R1 ∗ = (0, . . ., 0) (d.h.R 1 = R1 ∗) mit Wahrscheinlichkeit 3 gilt. 16Jede andere Kombination als 0011 an den Stellen 9, 17, 23, 31 tritt mitgeringerer Wahrscheinlichkeit auf. (An den Stellen ≠ 9, 17, 23, 31 stehen injedem Fall Nullen.)Auch mit anderer Input-Differenz R 0 ⊕ R0 ∗ <strong>und</strong> dazu passend gewähltenL 0 ⊕ L ∗ 0 kann man mit ähnlichen Wahrscheinlichkeiten R 1 ⊕ R1 ∗ = (0, . . .,0)erhalten.73


Wendet man mit solchen Klartextblöcken die 3-R<strong>und</strong>en-Kryptoanalyse aufdie R<strong>und</strong>en 2, 3, 4 an (beachte: L 1 = R 0 , L ∗ 1 = R∗ 0 , L 4, L ∗ 4 , R 4, R4 ∗ bekannt)[dort wird vorausgesetzt, dass R 1 = R1, ∗ 3was in ca. der Fälle16zutrifft], so erhalten wir Kandidatenmengen, die in etwa 3 der Fälle den16richtigen R<strong>und</strong>enschlüssel K 4 enthalten. In den übrigen 13 der Fälle liefert16die 3-R<strong>und</strong>en-Kryptoanalyse irgendwelche Kandidatenmengen von zufälligen48-Bit-Strings.Daher: Bei genügend vielen Versuchen tritt K 4 deutlich häufiger auf als alleübrigen 48-Bit-Strings <strong>und</strong> wird erkannt.e) Differentielle Kryptoanalyse bei größeren R<strong>und</strong>enzahlenMan gibt gewisse L ′ 0, R ′ 0, . . .,L ′ t, R ′ t vor <strong>und</strong> berechnet Wahrscheinlichkeitenp i folgendermaßen:Falls nach R<strong>und</strong>e i−1 zwei Blöcke (L i−1 , R i−1 ), (L ∗ i−1, Ri−1) ∗ mit L i−1 ⊕L ∗ i−1 =L ′ i−1 <strong>und</strong> R i−1 ⊕ Ri−1 ∗ = R′ i−1 in R<strong>und</strong>e i verschlüsselt werden, so ist dieWahrscheinlichkeit, dassgilt, gerade p i .L i ⊕ L ∗ i = L′ i <strong>und</strong> R i ⊕ R ∗ i = R′ iDie Liste L ′ 0, R ′ 0, L ′ 1, R ′ 1, p 1 , . . .,L ′ t, R ′ t, p t heißt t-R<strong>und</strong>en-Charakteristik.Sind die p i unabhängig voneinander (nicht streng erfüllt, da R<strong>und</strong>enschlüsselnicht voneinander unabhängig), so ist ∏ ti=1 p i die Wahrscheinlichkeit, dassaus L ′ 0 , R′ 0 am Ende L′ t , R′ t entsteht.Wähle bei R<strong>und</strong>enzahl r eine (r − 3)-R<strong>und</strong>en-Charakteristik mit möglichsthohem p = ∏ r−3i=1 p i <strong>und</strong> wende 3-R<strong>und</strong>en-Kryptoanalyse auf die letzten 3R<strong>und</strong>en an.Macht man das mit sehr vielen Klartext-Chiffretext-Paaren, sollte der letzteR<strong>und</strong>enschlüssel in den Kandidatenmengen häufiger auftauchen als dieübrigen 48-Bit-Strings.Beachte: Je größer r, desto kleiner p, also umso mehr Paare erforderlich.Bei r = 16 ist differentielle Kryptoanalyse nicht (wesentlich) effektiver alsvollständige Schlüsselsuche. Dies zeigt auch, dass das Design der S-Boxen<strong>und</strong> die R<strong>und</strong>enanzahl von den Entwicklern der DES aufgr<strong>und</strong> der Kenntnisder differentiellen Kryptoanalyse gewählt wurde (vgl. [18]).74


(Mit geeigneten Verbesserungen benötigt man 2 47 gewählte Klartexte; diesist besser als 2 55 Versuche bei vollständiger Schlüsselsuche.)Weitere Einzelheiten: [13], [27, Kapitel 3.4] 20 , [38, Kapitel 5].Zur Beschreibung des AES benötigen wir einige Hilfsmittel über endlicheKörper.4.8 Endliche Körpera) Ein Körper K ist ein kommutativer Ring mit Eins, in dem jedes Elementb ≠ 0 ein Inverses b −1 bezüglich der Multiplikation besitzt.b) Ist |K| endlich, so ist |K| = p a , p eine Primzahl. Dann ist 1 + . . . + 1←− p −→0.c) Zu jeder Primzahlpotenz gibt es genau einen Körper dieser Ordnung(bis auf Isomorphie).d) Für |K| = p ist K ∼ =p.e) Konstruktion von Körpern der Ordnung p a , a > 1 (Bezeichnung:p a):Sei m(x) ∈p[x] ein (überp) irreduzibles Polynom vom Grad a.Ein Körper mit p a Elementen ist dannp a = {Polynome inp[x] vomGrad < a}, versehen mit der üblichen Addition. Die Multiplikation ⊙geschieht wie üblich, mit anschließender Reduktion mod m(x); dabeiliefert die Reduktion eines Polynoms a(x) (mod m(x)) den Rest r(x)bei der Division von a(x) durch m(x): Ist also a(x) = q(x) · m(x) +r(x), Grad r(x) < Grad m(x) (wobei Grad 0 = −1), dann ist r(x) =a(x) mod m(x).Beispiel: Konstruktion von2 8:m(x) = x 8 + x 4 + x 3 + x + 1 ist irreduzibel über2.(x 6 + x 4 + x 2 + x + 1) ⊙ (x 7 + x + 1)= x 13 + x 11 + x 9 + x 8 + x 7 + x 7 + x 5 + x 3 + x 2 + x ++ x 6 + x 4 + x 2 + x + 1 mod m(x)= x 13 + x 11 + x 9 + x 8 + x 6 + x 5 + x 4 + x 3 + 1 mod m(x)20 dort werden auch Design-Prinzipien für S-Boxen angegeben: Kapitel 3.6=75


Wie oben geschildert ist x 13 +x 11 +x 9 +x 8 +x 6 +x 5 +x 4 +x 3 +1 mod m(x)der Rest bei der Division durch m(x). Also rechne:(x 13 +x 11 +x 9 + x 8 + x 6 +x 5 +x 4 + x 3 +1) : (x 8 + x 4 + x 3 + x + 1)x 13 +x 9 + x 8 + x 6 +x 5 = x 5 + x 3x 11 +x 4 + x 3 +1 Rest x 7 + x 6 + 1x 11 +x 7 + x 6 +x 4 + x 3 +1Damit ist insgesamt:x 7 + x 6 +1(x 6 + x 4 + x 2 + x + 1) ⊙ (x 7 + x + 1) = x 7 + x 6 + 1Oft schreibt man die Elemente ausp a auch als a-Tupel überp :b a−1 x a−1 +. . .b 1 x+b 0 ↔ (b a−1 , . . .b 1 , b 0 ). Addition dann komponentenweise,Multiplikation nach obiger Regel.Also in8 2 (mit obigem m(x)):(0, 1, 0, 1, 0, 1, 1, 1) ⊙ (1, 0, 0, 0, 0, 0, 1, 1) = (1, 1, 0, 0, 0, 0, 0, 1)Beachte:Wählt man ein anderes irreduzibles Polynom ˜m(x) vom Grad a, soist das Ergebnis der Multiplikation (mod ˜m(x)) zweier Polynome vomGrad ≤ a−1 ein anderes. Die entstehenden Körper sind aber isomorph.f) Die multiplikativen Inversen eines Elements ≠ 0 inpa bestimmt manmit dem erweiterten Euklidischen Algorithmus inp[x]. Dieser wird imFolgenden vorgestellt.Für zwei Polynome a(x), 0 ≠ b(x) ∈p[x] berechnet der erweiterteEuklidische Algorithmus ggT(a(x), b(x)) <strong>und</strong> bestimmt Polynomeu(x) <strong>und</strong> v(x) mit ggT(a(x), b(x)) = u(x)a(x) + v(x)b(x). Dabei istggT(a(x), b(x)) normiert (d.h. der höchste Koeffizient ist 1).Zur verwendeten Schreibweise:Ist bei der Division mit Rest a(x) = q(x) · b(x) + r(x), Grad r(x)


(1) Setzes(x) := a(x), t(x) := b(x),u 1 (x) := 1, u 2 (x) := 0, u(x) := 0,v 1 (x) := 0, v 2 (x) := 1, v(x) := 1(2) Solange s(x) mod t(x) ≠ 0, wiederhole:q(x) := s(x) div t(x), r(x) := s(x) mod t(x)u(x) := u 1 (x) − q(x)u 2 (x), v(x) := v 1 (x) − q(x)v 2 (x)u 1 (x) := u 2 (x), u 2 (x) := u(x)v 1 (x) := v 2 (x), v 2 (x) := v(x)s(x) := t(x), t(x) := r(x)(3) Sei a der höchste Koeffizient ≠ 0 von t(x).t(x) := t(x) u(x) v(x), u(x) := , v(x) :=a a aAusgabe:t(x) (ggT(a(x), b(x)))u(x), v(x) (t(x) = u(x)a(x) + v(x)b(x))Beispiel:(m(x) =)a(x) = x 8 + x 4 + x 3 + x + 1 , b(x) = x 7 + x 6 + x 3 + x + 1in2[x]s(x) t(x) u 1 (x) u 2 (x) u(x) v 1 (x) v 2 (x) v(x)x 8 + x 4 + x 3 + x + 1 x 7 + x 6 + x 3 + x + 1 1 0 0 0 1 1x 7 + x 6 + x 3 + x + 1 x 6 + x 2 + x 0 1 1 1 x + 1 x + 1x 6 + x 2 + x 1 1 x + 1 x + 1 x + 1 x 2 x 2x 8 + x 4 + x 3 + x + 1 : x 7 + x 6 + x 3 + x + 1 = x + 1 Rest x 6 + x 2 + xx 7 + x 6 + x 3 + x + 1 : x 6 + x 2 + x = x + 1 Rest 1Also ist<strong>und</strong> giltggT(a(x), b(x)) = 11 = (x + 1) · (x 8 + x 4 + x 3 + x + 1) + x 2 · (x 7 + x 6 + x 3 + x + 1) (∗)Sei nun2 8 wie in (e) wieder mit m(x) = a(x) = x8 + x 4 + x 3 + x + 1gebildet. Für die Polynome x 2 <strong>und</strong> x 7 + x 6 + x 3 + x + 1 bedeutet dieGleichung (∗) dannx 2 ⊙ (x 7 + x 6 + x 3 + x + 1) = 1.77


Als Element von2 8 ist also x2 das multiplikative Inverse von x 7 +x 6 +x 3 + x + 1 (<strong>und</strong> umgekehrt).In der Tupelschreibweise: (11001011) −1 = (00000100).Bei der Konstruktion vonp a ist das Polynom m(x) irreduzibel, jedesPolynom 0 ≠ b(x) ∈p a ist daher teilerfremd zu m(x) (d.h.ggT(m(x), b(x)) = 1). In der eben beschriebenen Weise lässt sich dahermit dem erweiterten Euklidischen Algorithmus das multiplikativeInverse von b(x) inp a bestimmen.4.9 Der Advanced Encryption Standard (AES) - DasRijndael-Verfahrena) 1997: US-Standardisierungsbehörde NIST (National Institute of Standardsand Technology) startet öffentliche Ausschreibung für Nachfolgeverfahren desDES.Anforderungen: öffentlich, lizenzfrei, weltweit verfügbar, schneller als TRIPLE-DES. Blocklänge mind. 128 Bit, variable Schlüssellängen von 128, 192, 256Bit.1998: 15 AES-Kandidaten werden eingereicht (darunter ’Magenta’, DeutscheTelekom) <strong>und</strong> begutachtet.1999: Auswahl von 5 Algorithmen für die letzte R<strong>und</strong>e:• Twofish (s. 4.10)• RC6 (s. 4.10)• MARS (IBM, D. Coppersmith) 21• Serpent (R. Anderson, E. Biham, L. Knudsen; 32-R<strong>und</strong>en Feistel-Chiffre,DES-ähnlich) 22• Rijndael (J. Daemen, V. Rijmen)2000: Wahl von Rijndael als neuen AES (vor Twofish <strong>und</strong> Serpent)Mai 2002: AES (Rijndael) wird zum Federal Information Processing Standard(FIPS 197) in den USA.21 http://domino.research.ibm.com/comm/research_projects.nsf/pages/security.mars.html22 http://www.cl.cam.ac.uk/~rja14/serpent.html78


Klartextblock128 BitSchlüssel128 BitSchlüsselexpansionauf 128 * 11= 1408 Bit+K 0128 BitS 0128 BitR<strong>und</strong>e 1+128 BitK 1S 1 128 BitR<strong>und</strong>e 2+ K 3128 Bit128 BitR<strong>und</strong>e 10S 9K 10+128 BitChiffretextblock128 BitAbbildung 10: Schematischer Ablauf des Rijndael-Verfahrens79


) Rijndael ist eine iterierte Blockchiffre, aber keine Feistel-Chiffre. Es handeltsich um ein sogenanntes Substitutions-Permutations-Netzwerk (SP-Netzwerk).Blocklänge b <strong>und</strong> Schlüssellänge k können unabhängig voneinander aufeinen der Werte 128, 192, 256 Bit gesetzt werden. Die Zahl der R<strong>und</strong>en r istabhängig von diesen Werten 10, 12 oder 14.Im FIPS-Standard ist b = 128, k = 128, r = 10.(Wir verwenden im Folgenden auch diese Parameter.)Der Ablauf des Rijndael-Verfahrens ist auf Seite 79 skizziert. Die ZwischenergebnisseS 0 , S 1 , . . ., S 9 werden in Rijndael Zustände (states) genannt.Jede R<strong>und</strong>e, bis auf die zehnte, besteht aus drei Transformationen (s. Abb.11):SubBytes-Transformation: Nichtlineare Transformation; dient dem Schutzgegen differentielle <strong>und</strong> lineare Kryptoanalyse.ShiftRows-Transformation: Dient der Diffusion.MixColumns-Transformation: Dient ebenfalls der Diffusion.SSi-1SubBytesShiftRowsMixColumnsK+ iiR<strong>und</strong>e ientfällt füri = 10In R<strong>und</strong>e 10 werden nur die SubBytes-Transformation<strong>und</strong> die ShiftRows-Transformationvorgenommen.Die Schlüsseladdition (bin.Add.,XOR) Add-Ro<strong>und</strong>Key wird vor der ersten R<strong>und</strong>e <strong>und</strong>in jeder R<strong>und</strong>e jeweils nach den oben genanntenTransformationen durchgeführt.Dass vor der ersten <strong>und</strong> nach der letztenR<strong>und</strong>e eine Schlüsseladdition durchgeführtwird, bezeichnet man als Whitening. Dieserschwert einen Known-Plaintext-Angriff,da dem Angreifer der Input der ersten R<strong>und</strong>e<strong>und</strong> der Output der letzten R<strong>und</strong>e unbekanntsind. Die Schlüsseladdition vor derersten R<strong>und</strong>e sorgt außerdem dafür, dassAuffälligkeiten im Klartext verwischt werden.Abbildung 11: Transformationenc) Wir beschreiben nun die drei Transformationen SubBytes, ShiftRows <strong>und</strong>MixColumns <strong>und</strong> danach die R<strong>und</strong>enschlüsselerzeugung.80


Zunächst aber zwei Vorbemerkungen:Die Klar- <strong>und</strong> Chiffretextblöcke <strong>und</strong> sämtliche Zustände in Rijndael werdenals 4x4 Matrizen geschrieben, wobei jeder Eintrag a ij ein Byte, d.h. einen8-Bit-String ist:⎛⎜⎝⎞a 00 a 01 a 02 a 03a 10 a 11 a 12 a 13⎟a 20 a 21 a 22 a 23⎠a 33 a 31 a 32 a 33Die Bytes sind spaltenweise ein- <strong>und</strong> auszulesen, d.h. der Block hat die Form:a 00 a 10 a 21 a 20 a 01 . . .a 33An einigen Stellen muss man Bytes (d.h. 8-Bit-Strings) als Elemente in2 8auffassen: (b 7 b 6 . . .b 0 ) ↔ b 7 x 7 + b 6 x 6 + . . . + b 0 . Addition entspricht XOR,Multiplikation Körpermultiplikation. In Rijndael ist28 bezüglich des irreduziblenPolynoms x 8 + x 4 + x 3 + x + 1 gegeben.d) SubBytes-TransformationEingabe:Zustand S i =⎛⎜⎝⎞b 00 . . . b 03⎟. . ⎠ , b ij Bytes. . . b 33b 30Jedes Byte b ij wird einzeln verändert; dies liefert eine neue 4 × 4-Matrix, dieAusgabe der SubBytes-Transformation.Sei g = b 7 b 6 . . . b 0 ein Byte.Die SubBytes-Transformation umfasst zwei Schritte:1. Schritt: Fasse g als Element in2 8 auf <strong>und</strong> berechne g−1 in28, fallsg ≠ 00 . . .0. Falls g = 00 . . .0, so bleibt g ungeändert.2. Schritt: Fasse das nach dem ersten Schritt erzeugte Byte c 7 c 6 . . .c 0 alsBit-Folge (also Element in8 2 ) auf <strong>und</strong> unterwerfe es der folgenden affinenTransformation des8 2 :81


⎛⎜⎝1 0 0 0 1 1 1 11 1 0 0 0 1 1 11 1 1 0 0 0 1 11 1 1 1 0 0 0 11 1 1 1 1 0 0 00 1 1 1 1 1 0 00 0 1 1 1 1 1 00 0 0 1 1 1 1 1⎞ ⎛⎟ ⎜⎠ ⎝⎞c 0c 1c 2c 3c 4c 5⎟c 6⎠c 7⎛+⎜⎝11000110⎞⎛=⎟ ⎜⎠ ⎝⎞d 0d 1d 2d 3d 4d 5⎟d 6⎠d 7d 7 d 6 d 5 d 4 d 3 d 2 d 1 d 0 ist dann das Ergebnis der SubBytes-Transformation vong = b 7 b 6 . . .b 0 .Bsp.:g = (11001011) g −1 = (00000100) (siehe S. 78)⎛⎞ ⎛1 0 0 0 1 1 1 11 1 0 0 0 1 1 11 1 1 0 0 0 1 11 1 1 1 0 0 0 11 1 1 1 1 0 0 0⎜0 1 1 1 1 1 0 0⎟ ⎜⎝0 0 1 1 1 1 1 0⎠⎝0 0 0 1 1 1 1 100100000⎞⎛+⎟ ⎜⎠ ⎝11000110⎞⎛=⎟ ⎜⎠ ⎝11111000⎞⎟⎠Also: (11001011) → (00011111)In Rijndael ist die SubBytes-Transformation durch eine S-Box beschrieben.Die S-Box ist eine 16×16 Matrix, deren Einträge die Zahlen von 0 bis 255 (ineiner gewissen Reihenfolge) sind. Ein Byte b 7 . . .b 0 bestimmt durch b 7 b 6 b 5 b 4die Zeile <strong>und</strong> durch b 3 b 2 b 1 b 0 die Spalte (Zeilen u. Spalten mit 0, . . .15 nummeriert).Der Eintrag an der entsprechenden Stelle ist die Zahl, die binärcodiert die SubBytes-Transformation von b 7 . . .b 0 angibt. (Schneller als jedesmalInverse <strong>und</strong> affine Transformation zu berechnen.)In SubBytes wird durch g → g −1 die Nichtlinearität (über2) sichergestellt.Die Einfachheit dieser Abbildung könnte ggf. kryptoanalytische Angriffeermöglichen; daher ist eine affine Abbildung nachgeschaltet. Sie dientauch der Konfusion <strong>und</strong> Diffusion <strong>und</strong> sorgt dafür, dass der Output von Sub-Bytes nie mit dem Input oder dem Komplement des Inputs übereinstimmt(Byte-weise).82


e) ShiftRows-TransformationJede der vier Zeilen der 4 ×4-Matrix, die man nach SubBytes erhält, werdenzyklisch verschoben:Die 1. Zeile bleibt unverändert, die 2. Zeile wird um eine Stelle nach links,die 3. Zeile um zwei Stellen nach links <strong>und</strong> die 4. Zeile um drei Stellen nachlinks verschoben.f) MixColumns-TransformationJedes der Bytes in der Input 4 ×4-Matrix wird als Element in2 8 aufgefasst.Diese 4 × 4-Matrix wird von links mit⎛⎞x x + 1 1 1⎜ 1 x x + 1 1⎟⎝ 1 1 x x + 1 ⎠x + 1 1 1 xmultipliziert, wobei x ↔ 00000010 <strong>und</strong> 1 ↔ 00000001 gilt. Ist c i die i-teSpalte der Inputmatrix, d i die i-te Spalte der Outputmatrix, so ist⎛⎞x x + 1 1 1d i = ⎜ 1 x x + 1 1⎟⎝ 1 1 x x + 1 ⎠ · c i.x + 1 1 1 xDie Matrizenmultiplikation erfolgt über2 8.g) SchlüsselerzeugungAusgangsschlüssel hat 128 Bit. Er wird als 4 × 4-Matrix von Bytes geschrieben,spaltenweise zu lesen. Seien w(0), w(1), w(2), w(3) diese Spalten. Es werden40 weitere Spalten à vier Bytes definiert.Sei w(i − 1) schon definiert.Ist i ≢ 0 (mod 4), so w(i) = w(i − 4) ⊕ w(i − 1) (d.h. die 4 Einträge jeweilsXOR-verknüpfen).Ist i ≡ 0 (mod 4) , so w(i) = w(i − 4) ⊕ T(w(i − 1)),wobei T folgende Transformation ist:⎛ ⎞aSei w(i − 1) = ⎜b⎟⎝c⎠ ,da, b, c, d Bytes.83


Wende auf b, c, d, a die SubBytes-Transformation an.Dies liefert vier Bytes, e, f, g, h.Berechne r(i) = (00000010) i−44 in28 (beachte i ≡ 0 (mod 4))⎛ ⎞e ⊕ r(i)Dann T(w(i − 1)) = ⎜ f⎟⎝ g ⎠hDer R<strong>und</strong>enschlüssel K i besteht dann aus der 4 × 4-Matrix(w(4i), w(4i + 1), w(4i + 2), w(4i + 3)), i = 0, 1, . . ., 10.h) EntschlüsselungAlle einzelnen Transformationen in Rijndael sind invertierbar. Kehre Algorithmusum <strong>und</strong> ersetze alle Transformationen durch ihre Inverse. (Einzelheiten:FIPS-Standard 197 oder [38]).(Die Tatsache, dass alle Einzeltransformationen bijektiv sind, ist typischfür Substitutions-Permutations-Netzwerke; dies unterscheidet sie von Feistel-Chiffren; vgl. Bemerkung am Ende von 4.5.)Für Details zu Design <strong>und</strong> Implementierung von Rijndael siehe [20].Über generelle Eigenschaften von SP-Netzwerken verweisen wir auf [32].i) SchnelligkeitRijndael ist deutlich schneller als DES (bei Software-Implementierung). Auf1 GHz-Rechner sind Verschlüsselungen (abhängig vom C-Compiler) von ca.200 MBit/sec. bis 2 GBit/sec. möglich. Bei Hardware-Implementierung 2GBit/sec. bis 70 GBit/sec.j) SicherheitNach zwei R<strong>und</strong>en hat man vollständige Diffusion: Jedes der 128 Output-Bits nach R<strong>und</strong>e 2 hängt von jedem der 128 Klartextblockbits ab. Rijndaelist gegen differentielle <strong>und</strong> lineare Kryptoanalyse sicher. ShiftRows wurdeeingefügt, um gegen zwei relativ neue kryptoanalytische Angriffe ( ”truncateddifferentials“<strong>und</strong> ”Square-attack“ – ’Square’ war ein Vorläufer von Rijndael)sicher zu sein.Die Schlüsselerzeugung mittels SubBytes soll verhindern, dass bei Kenntnisvon Teilen des Schlüssels die übrigen Bits einfach zu ermitteln sind. Außerdemsorgt dies dafür, dass verschiedene Ausgangsschlüssel nie viele R<strong>und</strong>enschlüsselgemeinsam haben.84


Nach einigen Jahren der Existenz von Rijndael gibt es mittlerweile einigeneue kryptoanalytische Ansätze gegen das Verfahren.Eine Idee stammt von Courtois <strong>und</strong> Pieprzyk (2002). Sie besteht darin, Rijndaeldurch ein überdefiniertes System quadratischer Gleichungen in mehrerenVariablen zu beschreiben (ca. 8000 Gleichungen in ca. 1600 Variablen).Dieses soll dann (mittels des XL-Algorithmus, extended linearization) in einlineares Gleichungssystem umgewandelt <strong>und</strong> schließlich gelöst werden. DieseIdee führte auf folgende Kontroverse: Kann man Gleichungssysteme zurBeschreibung des AES finden, welche eine eindeutige Lösung haben?Näheres zum XL-Verfahren <strong>und</strong> der genannten Kontroverse (speziell Courtoisversus Moh):Courtois: Is AES a secure cipher?http://www.cryptosystem.net/aes/ <strong>und</strong> dortige LinksMoh: On the Courtois-Pieprzyk‘s attack on Rijndael (2002)http://www.usdsi.com/aes.htmlsiehe auch Crypto-Gram von Bruce Schneier:http://www.schneier.com/crypto-gram-0209.htmlhttp://www.schneier.com/crypto-gram-0210.htmlEin anderer kryptoanalytischer Ansatz gegen Rijndael ist der 2005 von Bernsteinvorgestellte Timing-Angriff. Er beruht darauf, dass die AES-Berechnungenwesentlich vom Auslesen der Einträge in größeren Arrays abhängen.Die Table-Lookup-Zeit hängt dabei vom Index des Arrays ab. So sind Rückschlüssedarüber möglich, was in den L 2 -Cache (braucht mehr Zeit) <strong>und</strong> wasin den L 1 -Cache kommt (braucht weniger Zeit).Für erfolgreiche Timing-Angriffe wurden 2 27 Blöcke benötigt. Allerdings hatder Angreifer selten die Möglichkeit, so genaue Aussagen über die CPU-Zeilen zu gewinnen. Darüber hinaus sind AES-Implementierungen mit konstantenZeiten für die Array-Zugriffe möglich; diese verlangsamen aber dieVerschlüsselung.Nähere Informationen:Bernstein: Cache-timing attacks on AEShttp://cr.yp.to/antiforgery/cachetiming-20050414.pdfWeitere Angriffe beruhen auf Modifikationen der differentiellen Kryptoanalyse(Boomerang-Attack, Related-Key-Attack) <strong>und</strong> sind bisher für AES-Versionenmit kleineren als den empfohlenen R<strong>und</strong>enzahlen erfolgreich.85


Als Beispiel sei genannt:M. Gorski, S. Lucks: New Related-Key Boomerang Attacks on AEShttp://eprint.iacr.org/2008/4384.10 Andere BlockchiffrenNeben dem DES <strong>und</strong> dem AES gibt es eine Reihe weiterer gebräuchlicherBlockchiffren. Wir beschreiben knapp die wichtigsten.1) IDEAAnfang der 90er Jahre von Xuejia Lai <strong>und</strong> James Massey entwickelt(IDEA wird auch von PGP verwendet)Länge Klartext-/Chiffretextblöcke 64 BitSchlüssellänge 128 BitFunktionsweise:Aufteilen der 64 Bits eines Klartextblocks auf vier Blöcke 16 Bit.Diese vier Blöcke werden in acht R<strong>und</strong>en bearbeitet. In jeder dieserR<strong>und</strong>en werden aus den vier Eingabeblöcken <strong>und</strong> jeweils sechs Teilschlüsselnder Länge 16 mittels 4 Additionen (modulo 2 16 ) <strong>und</strong> 4 Multiplikationen23 (modulo 2 16 + 1) die vier Eingabeblöcke für die nächsteR<strong>und</strong>e erzeugt. Am Ende nochmals je zwei weitere Additionen <strong>und</strong>Multiplikationen mit 16 Bit-Schlüsseln <strong>und</strong> Zusammensetzen der resultierenden4 Blöcke zum Chiffretextblock. IDEA ist keine Feistel-Chiffre.IDEA hat bisher keine Sicherheitsrisiken aufgewiesen <strong>und</strong> ist etwa doppeltso schnell wie DES. 242) RC2, RC5, RC6Wichtige Blockverschlüsselungsverfahren aus der RC-Familie, entwickeltvon Ron Rivest (vertrieben von RSA Data Security).RC2 (Anfang der 90’er Jahre entwickelt, 1997 veröffentlicht)Variable Schlüssellänge (40 Bits bis 1024 Bits), Blocklänge 64 Bit, wirdunter anderem im S/MIME-Standard verwendet. 2523 genauer: modifizierte Multipliktion modulo 2 16 +1; 0 muss gesondert behandelt werden24 Details siehe Schmeh [40], S. 84-85, oderhttp://www.informationsuebertragung.ch, Link ‘Algorithmen‘ (mit Applets)25 Details: http://www.tools.ietf.org/html/rfc226886


RC5 (1995 veröffentlicht)Variable Schlüssellänge, Klartextblocklänge, R<strong>und</strong>enzahl (z.B. Klartextblocklänge32 Bit, Schlüssellänge 128 Bit, 12 R<strong>und</strong>en)Kombiniert Add. mod 2 w (w = Klartextblocklänge), binäre Add. XOR,zyklische Shifts (abhängig von Klartextblöcken). RC5 scheint gegen differentielleKryptoanalyse <strong>und</strong> lineare Kryptoanalyse sicher zu sein. 26RC6 (1998 veröffentlicht)Erreichte die Auswahlr<strong>und</strong>e der letzten AES-Kandidaten. Schnell <strong>und</strong>einfach zu implementieren. Variable Schlüssellängen <strong>und</strong> Blocklängen. 273) Blowfish, TwofishBlowfish (1994) <strong>und</strong> Twofish (1998) sind von B. Schneier entwickelteFeistel-Chiffren.Blowfish hat variable Schlüssellänge (bis 448 Bit), S-Boxen sind schlüsselabhängig,16 R<strong>und</strong>en, Blocklänge 64. Blowfish ist ein schneller <strong>und</strong>einfach zu implementiernder Algorithmus (da nur XOR <strong>und</strong> + von32 Bit-Worten). Gegen Blowfish sind bisher keine erfolgversprechendenAngriffe bekannt. 28Twofish erreichte die Auswahlr<strong>und</strong>e der letzten fünf AES-Kandidaten.Twofish ist Feistel-Chiffre. 8 × 8 S-Boxen, arithmetische Operationenz.T. in2 8.294) Weitere gebräuchliche Blockchiffren sind• CAST (C. Adams, S. Tavares 1990; 1997. Wird auch von PGPverwendet.) 30• MISTY (Fa. Mitsubishi, 1996); Weiterentwicklung: KASUMI (mitA5/3 identisch); wird verwendet für die symmetrische Verschlüsselungbei UMTS (Universal Mobile Telecommunication System). 3126 Details siehe Menezes, van Oorschott, Vanstone [37], S. 269-270, oderhttp://www.tools.ietf.org/html/rfc204027 Details: http://citeseer.ist.psu.edu/317403.html28 Details: http://www.schneier.com/blowfish.html29 Details: http://www.schneier.com/twofish.html30 Details: http://tools.ietf.org/html/rfc214431 Infos: http://www.3gpp.org/TB/other/algorithms/35202-311.pdf oder Buch vonSchneier [41]87


5 Betriebsarten von BlockchiffrenBlockchiffren können bei der Verschlüsselung längerer Klartexte in verschiedenenWeisen eingesetzt werden. Wir beschreiben im Folgenden die wichtigstendieser Betriebsarten (’modes of operation’).Sei also eine Blockchiffre gegeben, die Klartextblöcke der Länge n über AlphabetR verschlüsselt. Schlüsselmenge K, k ∈ K, so E k Verschlüsselungsfunktion,D k Entschlüsselungsfunktion.5.1 Electronic Codebook Mode (ECB Mode)Beliebig langer Klartext wird in Blöcke der Länge n zerlegt. Ggf. Klartextergänzen, dass durch n teilbare Länge entsteht (z.B. zufällige Zeichen amEnde, padding). Chiffrierter Text ist dann Folge der chiffrierten Blöcke. (Fürfeste Schlüssel könnte man eine Tabelle der Klartext-Chiffretext-Paare anlegen:electronic codebook; daher diese Bezeichnung.)Probleme:• Regelmäßigkeiten des Klartextes führen zu Regelmäßigkeiten des chiffriertenTextes, denn gleiche Klartextblöcke werden immer in gleicheChiffretextblöcke verschlüsselt. Kann die Kryptoanalyse erleichtern; etwawenn Klartextnachrichten immer in der gleichen Weise beginnen(z.B. e-mail).• Angreifer kann die Nachricht ändern, indem er Chiffretext einfügt, dermit dem gleichen Schlüssel verschlüsselt worden ist; oder er kann dieReihenfolge der Chiffretextblöcke ändern. Daher sollten z.B. in einerDatenbank die Felder nicht als Block verschlüsselt werden.Man kann die Sicherheit des ECB Mode steigern, wenn Blöcke nur teilweiseaus dem Klartext <strong>und</strong> teilweise aus zufälligen Zeichen gebildet werden.5.2 Cipherblock Chaining Mode (CBC Mode)Diese Betriebsart wurde erf<strong>und</strong>en, um einige der Probleme des ECB Modezu beseitigen.88


Im CBC Mode hängt die Verschlüsselung eines Blocks auch von den vorhergegangenenBlöcken ab (kontextabhängige Verschlüsselung).Es sei R = {0, 1}.CBC Mode benötigt festen Initialisierungsvektor IV ∈ {0, 1} nVerschlüsselung:Klartextblöcke m 1 , . . .,m tSetze c 0 = IV , c j = E k (c j−1 ⊕ m j ).Chiffretextblöcke c 1 , . . .,c tEntschlüsselung:Gegeben c 1 , . . .c tSetze c 0 = IV .Dann m j = c j−1 ⊕ D k (c j )Beispiel:n = 5Permutationschiffre b 1 b 2 b 3 b 4 b 5 → b π(1) b π(2) b π(3) b π(4) b π(5) (Transpositionschiffre)Schlüsselraum: S 5Sei m = 10100 01110 1100. Padding: Letzten Block zu 11000 erweitern.( ) ( )1 2 3 4 5 1 2 3 4 5Verwende Schlüssel k =, k3 4 2 5 1−1 =.5 3 1 2 4IV = 11001 = c 0c 1 = E k (c 0 ⊕ m 1 ) = E k (01101) = 10110c 2 = E k (c 1 ⊕ m 2 ) = E k (11000) = 00101c 3 = E k (c 2 ⊕ m 3 ) = E k (11101) = 10111c = (11001) 10110 00101 10111Entschlüsselung:c 0 ⊕ D k (c 1 ) = 11001 ⊕ D k (10110) = 11001 ⊕ 01101 = 10100 = m 1Vorteile:Gleiche Klartextblöcke in unterschiedlichem Kontext werden i. Allg. verschiedenverschlüsselt.Änderung eines Chiffretextblockes c i führt bei Entschlüsselung zu falschemm i <strong>und</strong> m i+1 . Diese sind dann in der Regel unverständlich, Änderung wirdbemerkt.Andererseits: Tritt eine zufällige Störung in c i bei der Übertragung auf, so89


sind nur m i <strong>und</strong> m i+1 beeinflusst, m i+2 , . . . sind wieder korrekt (CBC istselbstsynchronisierend).Entfernen eines c i führt bei Entschlüsselung zu unverständlichem ˜m i = c i−1 ⊕D k (c i+1 ) anstelle von m i , m i+1 = c i ⊕ D k (c i+1 ) fehlt, ab m i+2 korrekt.Einfügen eines ˜c (zwischen c i−1 <strong>und</strong> c i ) führt bei Entschlüsselung zu unverständlichem˜m i = c i−1 ⊕ D k (˜c), neuem unverständlichem ˜m = ˜c ⊕ D k (c i )<strong>und</strong> danach zu m i+1 , . . ..Wie bei ECB besteht auch bei CBC der Nachteil, dass (ohne Verwendungvon padding) stets abgewartet werden muss, bis ein vollständiger Block derLänge n vorhanden ist, bevor verschlüsselt werden kann. CBC ist also v.a.bei Verschlüsselungen langer Klartexte gut geeignet.5.3 Cipher Feedback Mode (CFB Mode)Hier wieder R = {0, 1}.CFB Mode ist eine stromchiffreähnliche Betriebsart von Blockchiffren, dieeine Verschlüsselung von Klartexten ermöglicht, ohne abwarten zu müssen,bis ein Block der Länge n vorliegt. Dies ist insbesondere bei interaktiverComputerkommunikation nützlich.Der Klartext wird in Blöcke p 1 , p 2 , . . . der Länge r für ein festes r mit1 ≤ r ≤ n aufgeteilt (typisch: r = 8). Benötigt wird außerdem ein InitialisierungsvektorIV ∈ {0, 1} n .Setze I 1 = IV .Dann für j = 1, 2, 3, . . .c j = p j ⊕ L r (E k (I j )) ∈ {0, 1} rI j+1 = R n−r (I j )|c j ∈ {0, 1} nDabei bezeichnet L r (X) die r linksstehenden Bits eines Blocks X der Längen, R n−r (X) die n − r rechtsstehenden Bits von X.X|Y ist das Hintereinanderschreiben der Strings X <strong>und</strong> Y .c 1 , c 2 , c 3 , . . . sind die verschlüsselten p 1 , p 2 , p 3 , . . . .Entschlüsselung:I 1 = IVDann für j = 1, 2, . . .p j = c j ⊕ L r (E k (I j )) (keine Entschlüsselung mit D k !)90


I j+1 = R n−r (I j )|c j(Beachte: c j ⊕ L r (E k (I j )) = p j ⊕ L r (E k (I j )) ⊕ L r (E k (I j )) = p j )Beispiel:Sei m wie in 5.2, ebenso E k .Weiter sei IV = 11001 = I 1 <strong>und</strong> r = 2.10 10 00 11 10↓ ↓ ↓ ↓ ↓p 1 p 2 p 3 p 411 00↓ ↓p5 p6E k (I 1 ) = 00111p 7 c 1 = p 1 ⊕ 00 = 10I 2 = 001|10 E k (I 2 ) = 11000c 2 = p 2 ⊕ 11 = 01I 3 = 110|01 E k (I 3 ) = 00111c 3 = p 3 ⊕ 00 = 00I 4 = 001|00 E k (I 4 ) = 10000c 4 = p 4 ⊕ 10 = 01I 5 = 100|01 E k (I 5 ) = 00011c 5 = p 5 ⊕ 00 = 10I 6 = 001|10 E k (I 6 ) = 11000c 6 = p 6 ⊕ 11 = 00I 7 = 110|00 E k (I 7 ) = 00101c 7 = p 7 ⊕ 00 = 00c 1 , . . .,c 7 : 10 01 00 01 10 00 00Man sieht an der Beschreibung, dass der CFB Mode wie eine Stromchiffre(auf r-Bit Strings) funktioniert, wobei der Schlüsselstrom L r (E k (I j )), j =1, 2, 3, . . ., mittels Blockchiffrierung aus I 1 <strong>und</strong> den vorher verschlüsseltenr-Bits erzeugt wird.CFB Mode ist sehr schnell <strong>und</strong> kann von Sender <strong>und</strong> Empfänger fast simultanausgeführt werden. Sobald c j vorliegt, kann der Empfänger I j+1 <strong>und</strong> dannL r (E k (I j+1 )) berechnen <strong>und</strong> dann bei Empfang von c j+1 sofort durch XORp j+1 entschlüsseln. Beachte: CFB Mode hängt nur von der Geschwindigkeitder Blockverschlüsselung (nicht Entschlüsselung) ab.Übertragungsfehler oder Änderungen in einem Chiffretextblock wirken sich91


solange aus, bis der fehlerhafte Block aus I j herausgeschoben wurde, d.h. aufdie nächsten ⌈ n ⌉ Blöcke. CFB ist also auch selbstsynchronisierend.rDas Verhalten bei Einfügen bzw. Entfernen von Chiffretextblöcken ist wiebei CBC (mit längerer Auswirkung entsprechend der vorigen Bemerkung).Da Sender <strong>und</strong> Empfänger nur über die Verschlüsselungsfunktion E k verfügenmüssen, ist der CFB Mode bei Public-Key-Systemen (siehe später) nichtanwendbar, denn dort ist E k als öffentlicher Schlüssel jedem bekannt. CFBMode wird häufig im Internet eingesetzt.Spezialfall: r = n, c 0 = IV , c j = m j ⊕ E k (c j−1 ) (vgl. CBC).5.4 Output Feedback Mode (OFB Mode)Wieder R = {0, 1}.Ähnlich wie CFB, nur I j+1 = R n−r (I j )|L r (E k (I j )).Dann c j = p j ⊕ L r (E k (I j )).Die I j hängen nur von k <strong>und</strong> IV ab <strong>und</strong> können von Sender <strong>und</strong> Empfängerparallel berechnet werden.Verschlüsselung von p j hängt nur von seiner Position, nicht von den vorangegangenenBlöcken ab.Änderung eines c j bewirkt nur Änderung bei der Entschlüsselung diesesBlockes.Aber: Wird ein Chiffretextblock entfernt, so werden alle folgenden Chiffretextblöckefalsch entschlüsselt. OFB ist nicht selbstsynchronisierend.OFB ist schnell; wird z.B. zur Verschlüsselung gesprochener Sprache in Echtzeitverwendet.Spezialfall: r = n.Dann I j+1 = E k (I j ), c j = m j ⊕ E k (I j ) = m j ⊕ E j k (I 1).92


6 StromchiffrenIn Abschnitt 2.B hatten wir polyalphabetische Substitutionen, insbesondereLauftextverschlüsselungen (z.B. One-Time-Pad) als Beispiele von Stromchiffrenkennengelernt.Wir wollen jetzt Stromchiffren etwas genauer betrachten. Sie spielten (<strong>und</strong>spielen) in militärischen Anwendungen eine große Rolle, werden aber auchfür zivile Zwecke häufig verwendet.Man unterscheidet zwei Typen: synchrone <strong>und</strong> selbstsynchronisierende Stromchiffren.6.1 Synchrone StromchiffrenSie sind dadurch gekennzeichnet, dass der Schlüsselstrom unabhängig vonKlar- <strong>und</strong> Chiffretext erzeugt wird.Beschreibung:Ausgangsschlüssel kFunktion zur Erzeugung des Schlüsselstroms g(i, k) = k i (i = 0, 1, 2, . . .)Verschlüsselungsfunktion E: E(m i , k i ) = c i(verschlüsselt Klartextbit resp. Klartextblock m i mit k i zu Chiffretextbitresp. Chiffretextblock c i )Notwendig:Sender <strong>und</strong> Empfänger müssen synchronisiert sein. Geht die Sychronisationverloren (z.B. weil Chiffretextbits während der Übermittlung verloren gehen),so schlägt die Entschlüsselung fehl (allerdings tritt sehr viel häufiger dieÄnderung eines Bits als ein Verlust auf!).Fehlerfortpflanzung:Die Änderung eines Chiffretextbits bei der Übertragung hat keine Auswirkungenauf die korrekte Entschlüsselung der folgenden Bits.Falls Bits durch binäre Addition (XOR) mit Schlüsselbits k i verschlüsseltwerden (d.h. E(m i , k i ) = m i ⊕ k i ), so spricht man von binären additivenStromchiffren (Bsp. One-Time-Pad).(Synchrone Stromchiffren entsprechen z.B. OFB Mode bei Blockchiffren.)93


6.2 Selbstsynchronisierende StromchiffrenSie sind dadurch gekennzeichnet, dass der Schlüsselstrom als Funktion desAusgangsschlüssels <strong>und</strong> einer festen Zahl vorheriger Chiffretextbits (oder-blöcke) erzeugt wird.Beschreibung:Ausgangsschlüssel kz 0 = (c −t , c −t+1 , . . .,c −1 ) Anfangszustand (nicht geheim)z i = (c i−t , c i−t+1 , . . .,c i−1 ), i ≥ 1k i = g(z i , k), i ≥ 0, Funktion zur Erzeugung des Schlüsselstromsc i = E(m i , k i ), i ≥ 0, Verschlüsselungsfunktionm i = D(c i , k i ), i ≥ 0, Entschlüsselungsfunktionzici-tci-t+1... ci-1kgk iE.cim iAbbildung 12: Verschlüsselungz ici-tci-t+1... ci-1.cikgk iDm iAbbildung 13: Entschlüsselung94


Typische Vertreter selbstsynchronisierender Stromchiffren sind Blockchiffrenim 1-Bit CFB Mode (d.h. r = 1 im CFB Mode; s. Abschnitt 5.3; die Funktiong wird durch die Blockchiffre realisiert. E ist dann einfach XOR.)Selbstsynchronisation:Geht ein Chiffretextbit bei der Übertragung verloren, so synchronisiert sichdas System selber; nur ein Klartextbit geht verloren <strong>und</strong> t Bits werden falschentschlüsselt.Bsp: t = 2Verschl.:. . . m 8 m 9 m 10 m 11 m 12 m⏐13⏐ ⏐ ⏐ ⏐ ⏐↓k 8 =g(c 6 ,c 7 ,k) ↓· ↓· ↓· ↓·. . . c 8 c 9 c///}{{} 10geht verlorenc 11 c 12 c 13⏐↓k 13 =g(c 11 ,c 12 ,k)Entschl.:. . . c 8 c 9 c 11 c 12 c⏐13⏐ ⏐ ⏐ ⏐↓k 8 =g(c 6 ,c 7 ,k) ↓· ↓g(c 8 ,c 9 ,k) ↓g(c 9 ,c 11 ,k)⏐↓k 13 =g(c 11 ,c 12 ,k). . . m 8 m 9 ˜m 11 ˜m 12 m 13Diese Selbstsynchronisation hat aber auch zur Folge, dass Einfügen <strong>und</strong> Entfernenvon Chiffretextbits durch Angreifer schwerer erkannt werden (andersals bei synchronen Stromchiffren).Fehlerfortpflanzung:Wird ein c i bei der Übertragung verändert, so wird nur die Entschlüsselungder nächsten t Bits ggf. verfälscht, danach wird wieder korrekt entschlüsselt.(Bei synchronen Stromchiffren wird sofort das nächste Bit wieder korrekt entschlüsselt;daher lassen sich – speziell bei größeren t – absichtliche Änderungenvon Chiffretextbits durch einen Angreifer bei selbstsynchronisierendenStromchiffren leichter erkennen.)Sowohl bei synchronen als auch bei selbstsynchronisierenden Stromchiffren istdie Schlüsselstromerzeugung (beschrieben durch die Funktion g) die entscheidendeKomponente. In vielen Systemen spielen bei der SchlüsselstromerzeugungSchieberegister eine wichtige Rolle. Wir geben im Folgenden eine kurzeBeschreibung allgemeiner Schieberegister <strong>und</strong> wenden uns dann den am einfachstenzu implementierenden Typen zu, den linearen Schieberegistern.95


6.3 SchieberegisterDef.:Ein (rückgekoppeltes) Schieberegister (feedback shift register) über dem endlichenKörper K ist eine Maschine, die aus n Registern R 0 , . . .,R n−1 (stages)besteht, die einen Input <strong>und</strong> eine Output besitzen <strong>und</strong> ein Element aus Kspeichern können; einer Uhr, die den Transport der Daten (= Elemente ausK) kontrolliert; <strong>und</strong> einer Recheneinheit, die eine fest vorgegebene Funktionf : K n → K berechnet. n heißt Länge des Schieberegisters.Recheneinheitf (a j-1 , a j-2 , ... , a j-n)a j a j-1a j-2a j-n+1a j-n. . . .R n-1 R n-2R 1R 0OutputVerzögerungsgliederAbbildung 14: Rückgekoppeltes SchieberegisterWährend jeder Zeiteinheit werden folgende Operationen durchgeführt:• Der Inhalt von R 0 wird ausgegeben <strong>und</strong> ist Teil der Output-Folge.• Der Inhalt von R i wird an R i−1 weitergegeben, i = n − 1, . . ., 1.• Der neue Inhalt von R n−1 ist a j = f(a j−1 , . . .,a j−n ), wobei a j−i derfrühere Inhalt von R n−i ist, i = 1, . . .,n (Rückkopplung).Zu Beginn enthält jedes S i einen Anfangswert a i , i = 0, . . .,n − 1; (a 0 , . . .,a n−1 )heißt der Anfangszustand des Schieberegisters.Die Inhalte (a j−n+1 , a j−n+2 , . . .,a j ) der R i (im (j − n + 1)-ten Zeittakt)j = n + 1, n + 2, . . . heißen die Zustände des Schieberegisters.Also: Inhalt vonR n−1 R n−2 . . . R 1 R 00. Zeittakt a n−1 a n−2 . . . a 1 a 01. Zeittakt a n = f(a n−1 , . . ., a 0 ) a n−1 . . . a 2 a 1 → Output a 02. Zeittakt a n+1 = f(a n , . . ., a 1 ) a n . . . a 3 a 2 → Output a 1 a 096


Die Outputfolge ist also eindeutig bestimmt durch den Anfangszustand(a 0 , . . .,a n−1 ) <strong>und</strong> die Rekursionsvorschrift a j = f(a j−1 , . . .,a j−n ).Schieberegister der Länge n sind also nichts anderes als eine maschinelleVeranschaulichung von Rekursionen (der Ordnung n).Zu jedem Zeitpunkt befindet sich ein Schieberegister der Länge n in einemvon |K| n möglichen Zuständen.Daher gibt es Zeitpunkte t 1 < t 2 , in denen sich das Schieberegister im gleichenZustand befindet. Dann stimmt die Outputfolge betrachtet ab Zeitpunkt t 1mit der ab Zeitpunkt t 2 überein.Also:Die Outputfolge eines Schieberegisters ist ab einem a j0 periodisch mit Perioded, d.h. a i = a i+d für alle i ≥ j 0 (d kleinstmöglich).6.4 Lineare SchieberegisterDef.:Ist in einem Schieberegister der Länge n die Funktion f von der Formf(x n−1 , . . ., x 0 ) = c n−1 x n−1 + . . . + c 0 x 0 für feste c n−1 , . . .,c 0 ∈ K, so heißtdas Schieberegister ein lineares Schieberegister (LSR).(Die c j heißen dann auch Rückkopplungskoeffizienten.)Es gilt also: a j = n−1 ∑i=0c i a j−n+iIm wichtigsten Fall K =2 lässt sich ein lineares Schieberegister also folgendermaßendarstellen (binäres LSR):XOR-Gattera ja j-2c n-1c n-2a.j-1.c 1 c 0R n-1 R n-2 R 1 R 0AND-Gatter(sind nur dorterforderlich,wo c =1)i.a j-n+1a.j-nOutputiAbbildung 15: Binäres lineares Schieberegister der Länge n97


Beispiele:Sei K =2.a) f(x 3 , x 2 , x 1 , x 0 ) = x 2 + x 0Anfangszustand (a 0 , a 1 , a 2 , a 3 ) = (1011)t R 3 R 2 R 1 R 0 Output0 1 1 0 11 0 1 1 0 12 1 0 1 1 03 1 1 0 1 1 ← wie AnfangszustandOutput-Folge ist periodisch mit Periode 3: 101101101 . . .b) f(x 1 , x 0 ) = x 1 + x 0Anfangszustand (a 0 , a 1 ) = (10)t R 1 R 0 Output0 0 11 1 0 12 1 1 03 0 1 1 ← wie AnfangszustandSelbe Output-Folge wie in a).6.5 Eigenschaften von linearen Schieberegisterna) Bei einem LSR der Länge n gilt:Ist c 0 = 0, so stimmt die Output-Folge (bis auf a 0 ) mit der des LSR derLänge n−1 überein, das gegeben ist durch f(x n−2 , . . .,x 0 ) = c n−1 x n−2 +. . . + c 1 x 0 ) <strong>und</strong> Anfangszustand (a 1 , . . .,a n−1 ).Wir nehmen im Folgenden daher stets c 0 ≠ 0 an. Solche LSR heißendann nicht-singulär.b) Ein (nicht-singuläres) LSR ist periodisch (ab a 0 ), d.h. es ex. d mita i = a i+d für alle i ≥ 0.[Wähle j minimal mit a j+i = a j+i+d für alle i ≥ 0.Ang. j > 0. Dann a j−1 ≠ a j−1+d .Es ist a j−1+n = c 0 a j−1 + c 1 a j + . . . + c n−1 a j−2+n98


<strong>und</strong> a j −1+n}{{}≥0= a j−1+n+d = c 0 a j−1+d + c 1 a j+d}{{}a j+ . . . + c n−1 a j−2+n+d .} {{ }a j−2+nAlso c 0 a j−1 = c 0 a j−1+d <strong>und</strong> wegen c 0 ≠ 0 dann a j−1 = a j−1+d , Widerspruch.]c) Kommt unter den Zuständen eines LSR einmal (0, . . ., 0) vor, so verbleibtdas LSR immer im Zustand (0, . . .,0).Also nach b): Ein nicht singuläres LSR der Länge n mit dem Anfangszustand≠ (0, . . ., 0) hat eine Periode ≤ |K| n − 1, im binären Fall also≤ 2 n − 1.d) Man ist interessiert daran, LSR mit möglichst großer Periode zu konstruieren.Wir beschränken uns jetzt auf den binären Fall (der Fallallgemeiner endlicher Körper ist analog).Es stellt sich heraus, dass es für jedes n binäre LSR gibt, die die Periode2 n − 1 haben. Welche sind das?Dazu betrachtet man das sog. charakteristische Polynom des binärenLSR:p(t) = c 0 + c 1 t + . . . + c n−1 t n−1 + t n(Dies ist gerade das charakteristische Polynom der linearen Abbildungn2 →n 2 gegeben durch⎛⎞⎛⎞ ⎛⎞ ⎛ ⎞0 1 0 . . . 0 x 0x 1x 10 0 1 0 . . . 0.... ... ... .⎜0 . . . 0 1 0.=.=.,⎟⎜⎟ ⎜⎟ ⎜ ⎟⎝0 . . . 0 1 ⎠⎝. ⎠ ⎝ x n−1 ⎠ ⎝ . ⎠c 0 c 1 . . . c n−1 x n−1 c 0 x 0 + . . . + c n−1 x n−1 x ndie den Zustandsübergang des binären LSR beschreibt.)Man kann zeigen:Genau dann hat das (nicht singuläre) binäre LSR der Länge n Periode2 n − 1 (<strong>und</strong> das gilt dann für jeden Anfangszustand ≠ (0, . . ., 0)), falls(1) p(t) irreduzibel(2) p(t) ∤ t r − 1 für alle 1 ≤ r < 2 n − 1.[Bemerkung: (1) <strong>und</strong> (2) bedeuten, dass im Körper2n, der durch dasirreduzible Polynom p(t) definiert wird (siehe Seite 75), das Element tein erzeugendes Element der zyklischen Gruppe (2n\{0}, ·) ist.]99


Es gilt: Es gibt genau ϕ(2n −1)n. 32nprimitive Polynome über2 von Grade) Ein binäres LSR der Länge n mit primitivem charakteristischen Polynomerzeugt für jeden Anfangszustand ≠ (0, . . .,0) eine periodischeFolge mit Periode 2 n −1. Solche Folgen heißen m-Folgen (m = maximalePeriode).f) m-Folgen haben gewisse statistische Eigenschaften, die sie als Pseudozufallsfolgengeeignet erscheinen lassen. Z. B. sind Einsen <strong>und</strong> Nullen(annähernd) gleich verteilt, ebenso die Paare 00, 01, 10, 11 etc.Für kryptographische Zwecke sind sie dennoch nicht tauglich. Aus einerTeilfolge der Länge 2n (deutlich kleiner als die Periode 2 n −1) lässt sichnämlich die gesamte Folge ermitteln, wie wir in Kürze sehen werden(Unterkapitel 6.6).6.6 Lineare KomplexitätIst (a 0 , a 1 , . . .) eine binäre Folge mit Periode d, so gibt es immer mindestensein binäres LSR, das diese Folge erzeugt:Wähle LSR von Länge d, c 0 = 1, c 1 = . . . = c d−1 = 0Anfangszustand (a 0 , a 1 , . . .,a d−1 )[I. Allg. gibt es mehrere: siehe Bsp. von Seite 98]Man kann zeigen: Ist (a 0 , a 1 , . . .) eine binäre periodische Folge, so gibt es eineindeutig bestimmtes binäres LSR von minimaler Länge n, so dass (a 0 , a 1 , . . .)als Outputfolge dieses LSR (mit Anfangszustand (a 0 , a 1 , . . ., a n−1 )) auftritt.Man sagt auch: n ist die lineare Komplexität von (a 0 , a 1 , . . .).[Beachte: Erzeugt ein LSR der Länge n eine Folge der Periode 2 n − 1, so hatdie Folge lineare Komplexität n.]Dieses binäre LSR minimaler Länge lässt sich folgendermaßen beschreiben:Hat (a 0 , a 1 , . . .) Periode d, so setze[36]a(t) = a 0 + a 1 t + . . . + a d−1 t d−132 Beweis: z.B. Lidl, Niederreiter: Introduction to Finite Fields and their applications100


<strong>und</strong>q(t) =t d + 1ggT(a(t), t d + 1)Ist Grad q(t) = n, so ist p(t) = t n q( 1 ) (das reziproke Polynom von q) dastcharakteristische Polynom des LSR von minimaler Länge (= Grad p(t) = n),das (a 0 , a 1 , . . .) erzeugt. 33Es gilt nun:6.6.1 SatzSei (a 0 , a 1 , . . .) eine periodische binäre Folge, die von einem LSR der Längen erzeugt wird. Sei außerdem m ∈Æ0.Dann sind gleichwertig:(1) (a 0 , a 1 , . . .) hat lineare Komplexität n(2) Die n aufeinanderfolgenden ’Zustandsvektoren’(a m , a m+1 , . . ., a m+n−1 ), . . ., (a m+n−1 , a m+n , . . .,a m+2n−2 )der Länge n sind linear unabhängig.Beweis:(1) ⇒ (2): Sei f(x 0 , . . .,x n−1 ) = n−1 ∑c i x i die zum LSR der Länge n, das(a 0 , a 1 , . . .) erzeugt, gehörende Funktion. Setze⎛⎞ ⎛ ⎞0 1 0 . . . 0a i0 0 1 0 . . . 0..C =. .. . .. .<strong>und</strong> v i =⎜0 . . . 0 1 0.für i ≥ 0.⎟ ⎜ ⎟⎝ 0 . . . 0 1 ⎠ ⎝ . ⎠c 0 c 1 . . . c n−1 a n+i−1i=0Det C = + − c 0 <strong>und</strong> c 0 ≠ 0, da n minimal für die Erzeugung von (a 0 , a 1 , . . .).Also ist C invertierbar.33 Literatur z.B. H. Beker, F. Pieper, Cipher Systems, Northwood Books, 1982101


C m v 0 = v m . Daher:v m , . . .,v m+n−1 linear unabhängig⇔ C −m v } {{ m , . . .,C −m v }m+n−1 linear unabhängig} {{ }= v 0 = v n−1Angenommen v 0 , . . .,v n−1 sind linear abhängig.Wähle t ≤ n − 1 minimal mit v 0 , . . .,v t linear abhängig. Dann existierend 0 , . . .,d t ∈2 mit d 0 v 0 + . . . + d t v t = 0, d t = 1.Also: v t = t−1 ∑j=0d j v j .Dann gilt für alle i ≥ 0 : v t+i = C i v t = t−1 ∑Daher: a t+i = t−1 ∑j=0j=0d j C i v j = t−1 ∑j=0d j v j+i .d j a j+i für alle i ≥ 0 (1. Komponente betrachten).Also wird (a 0 , a 1 , . . .) von einem LSR der Länge t ≤ n − 1 erzeugt, Widerspruch.(2) ⇒ (1): Angenommen nicht. Sei g(x 0 , . . .,x r−1 ) = r−1 ∑des kürzesten LSR, das (a 0 , a 1 , . . .) erzeugt. Also d 0 ≠ 0.Es ist a r+i = r−1 ∑j=0abhängig sind, Widerspruch.j=0d j x j die Funktiond j a j+i für alle i ≥ 0. Das bedeutet, dass v m , . . ., v m+r linear6.6.2 SatzSei (a 0 , a 1 , . . .) eine binäre periodische Folge der linearen Komplexität n (alsoPeriode maximal 2 n − 1).Dann lässt sich das zugehörige minimale Schieberegister der Länge n ausbeliebigen 2n aufeinanderfolgenden Folgengliedern bestimmen.Beweis:Bekannt seien a r , a r+1 , . . .,a r+2n−1 . Seien c 0 , . . .,c n−1 die Koeffizienten desminimalen LSR, das die Folge erzeugt.102


Dann ist a t+n = n−1 ∑c i a t+i , t = r, r + 1, . . ., r + n − 1, d.h.i=0⎛ ⎞ ⎛⎞ ⎛ ⎞a r+n a r . . . a r+n−1 c 0⎜⎝ . ⎟⎠ = a r+1 . . . a r+n⎜⎟ ⎜⎝ . . ⎠ ⎝ . ⎟⎠a r+2n−1 a r+n−1 . . . a r+2n−2 c n−1} {{ }=: ADie Matrix A ist bekannt <strong>und</strong> nach 6.6.1 invertierbar.⎛ ⎞ ⎛ ⎞c 0 a r+n⎜ ⎟Damit lässt sich ⎝ . ⎠ = A −1 ⎜ ⎟⎝ . ⎠ bestimmen.c n−1 a r+2n−1Es bleibt allerdings folgendes Problem:Wenn der Angreifer ein Teilstück der Schieberegisterfolge kennt, so kanner i. Allg. nicht wissen, ob dieses Teilstück mindestens Länge 2n, n lineareKomplexität der Schieberegisterfolge, hat oder nicht. Und selbst wenn dasTeilstück mindestens Länge 2n besitzt, so kennt er zunächst einmal n nicht.Für das letztgenannte Problem gibt es jedoch eine Lösung:Man kann auch für endliche Bitfolgen (a 0 , . . .,a r ) den Begriff der linearenKomplexität definieren: Dies ist die kleinste Länge eines LSR, dessen Output-Folge mit (a 0 , . . ., a r ) beginnt. Es gibt einen Algorithmus von Berlekamp <strong>und</strong>Massey, der zu gegebener Bitfolge (a 0 , . . ., a r ) deren lineare Komplexität mitO(r 2 ) Bit-Operationen bestimmt. Ist also r ≥ 2n, so bestimmt der Berlekamp-Massey-Algorithmusnach 6.6.2 auch die lineare Komplexität der gesamtenSchieberegisterfolge <strong>und</strong> das minimale LSR kann bestimmt werden. 346.7 Schieberegister zur SchlüsselstromerzeugungWir hatten in Unterkapitel 6.6 gesehen, dass LSR zur Erzeugung von Schlüsselströmenkaum geeignet sind. Dies ist insbesondere bei additiven binärenStromchiffren der Fall, wo Mallory bei einer Known-Plaintext-Attack beigenügend langem Klartext (Länge ≥ 2·lineare Komplexität der Schieberegisterfolge)durch m i ⊕c i (m 1 , m 2 , . . . Klartextfolge, c 1 , c 2 , . . . zugehörige Chiffretextfolge)einen Teil des Schlüsselstroms ermitteln kann, der ausreicht, um34 Literatur: Lidl, Niederreiter [36] oder Menezes et al. [37]103


mit den am Ende von 6.6 beschriebenen Methoden das (minimale) LSR fürden gesamten Schlüsselstrom zu ermitteln.Statt LSR könnte man Schieberegister mit einer nicht-linearen Rückkopplungsfunktionf verwenden oder geeignete Konstruktionen mit LSR.Wir geben einige Beispiele:a) Nichtlineare Kombination von linearen SchieberegisternLSR 1LSR 2fSchlüsselstromLSRAbbildung 16: Nichtlineare Kombination von linearen Schieberegisternf ist nicht-lineare Funktionk 2 →2f muss allerdings sorgfältig gewählt werden, um das System gegen sogenannteKorrelationsangriffe sicher zu machen. Diese bestehen darin,Zusammenhänge (Korrelationen) zwischen dem Schlüsselstrom <strong>und</strong>den Outputfolgen einzelner LSR zu ermitteln (statistische Methoden).Die lineare Komplexität einer solchen nicht-linearen Kombination kannsehr groß gemacht werden.b) Nichtlineare Filtergeneratorenf erzeugt aus den Zuständen des LSR den Schlüsselstrom, ist also einenicht-lineare Funktion f :n 2 →2 (siehe Abbildung 17).104


LSR:a = c a + ... + c aj 0 j-nn-1 j-1a ja j-n+1 a j-na j-1a j-2S 1S n-1 S n-2 S 0fSchlüsselstromAbbildung 17: Nichtlineare Filtergeneratorenc) Takt-gesteuerte GeneratorenIn den beiden bisher genannten Ansätzen sind alle Systemkomponentengleich getaktet. Takt-gesteuerte Generatoren erzeugen Nichtlinearitätauf folgende Weise: Der Output eines LSR bestimmt den Takt einesanderen LSR.Wir beschreiben ein Beispiel, den alternierenden Stop-and-Go-Generator:3 LSR unterschiedlicher LängeLSR 2 wird getaktet, wenn LSR 1 Output 1 liefert.LSR 3 wird getaktet, wenn LSR 1 Output 0 liefert.Ausgabe des Generators ist XOR-Verknüpfung von LSR 2 <strong>und</strong> LSR 3:.Uhr (Taktgeber)LSR 1NOT -GatterLSR 2LSR 3OutputAND -GatterAbbildung 18: Stop-and-Go-GeneratorDieser Typ von Generatoren ist gegen Korrelationsangriffe relativ sicher<strong>und</strong> hat i.d.R. große Periode <strong>und</strong> große lineare Komplexität.105


6.8 Spezielle Stromchiffrena) A5-Familie (A5/1, A5/2, A5/3):Beruht auf Takt-gesteuerten Kombinationen von LSR. Eingesetzt etwabei der Verschlüsselung von Verbindungen zwischen Handy <strong>und</strong> Basisstationnach GSM-Standard (wurde zunächst geheimgehalten).A5/1 <strong>und</strong> A5/2 sind unsicher.b) SEAL (Software-optimized Encryption Algorithm):Beruht nicht auf LSR. Wurde 1993 von IBM entwickelt.Gilt als sicher.c) RC 4:Beruht nicht auf LSR. Wurde 1987 von Ron Rivest entwickelt <strong>und</strong> bis1994 geheimgehalten. Weit verbreitet.Gilt inzwischen nicht mehr als sicher. 35d) Im Rahmen des EU ECRYPT-Netzwerks gab es von 2004 bis 2008das eSTREAM-Projekt, in dem eine Ausschreibung für Stromchiffrenerfolgte. Das Begutachtungs- <strong>und</strong> Auswahlverfahren ist inzwischen abgeschlossen,wobei vier Chiffren für Software- <strong>und</strong> drei für Hardwareimplementationenam Ende in der engeren Wahl verblieben. Eine Empfehlungfür eine dieser Stromchiffren als (EU-)Standard gibt es nochnicht. Dazu sollen noch weitere Analysen abgewartet werden.Näheres unter http://www.ecrypt.eu.org/stream/.35 genauere Beschreibung: Menezes et al. [37], Schmeh [40], Schneier [41]106


(∗) 7 Kryptographisch sichere Pseudozufallsfolgen- Generatoren <strong>und</strong> EinwegfunktionenFür Stromchiffren (aber auch in anderen kryptologischen Zusammenhängen)werden häufig ‘Zufallsfolgen’ von Bits benötigt.Frage: Was versteht man unter einer Zufallsfolge?Eine Zufallsfolge stellt man sich vor als Folge von Werten unabhängiger,gleich verteilter Boolescher Zufallsvariablen, d.h. als Output einer Quelle,die mit gleicher Wahrscheinlichkeit Bits 0 <strong>und</strong> 1 unabhängig von den schonerzeugten Bits ausgibt (binäre symmetrische Quelle).Dann sind aber zwei Bitfolgen gleicher (endl.) Länge gleich wahrscheinlich.Da wir es stets nur mit endlichen Folgen zu tun haben, legt dieser Bef<strong>und</strong>nahe, dass man den Begriff endlicher Zufallsfolgen nicht sinnvoll definierenkann.Andererseits folgt aus dem Gesetz der großen Zahlen, dass bei genügendlangen Folgen, die von einer binären symmetrischen Quelle erzeugt werden,z.B. annähernd gleich viele Einsen <strong>und</strong> Nullen vorkommen oder dass diePaare 00, 01, 10, 11 annähernd gleich oft auftreten, etc.Darauf beruhen Tests auf Zufälligkeit. Mögliche Vorgehensweisen sind z.B.:• Möglichst genaue Übereinstimmung von Merkmalen einer endlichenbinären Folge mit dem Erwartungswert. Beispiele sind m-Folgen einesLSR (siehe 6.5); sie erfüllen die sog. Golomb-Postulate. Diese fordernfür eine Zufallsfolge z.B., dass die Anzahl der Einsen <strong>und</strong> die Anzahlder Nullen sich um höchstens 1 unterscheiden. Außerdem wird eine genaueÜbereinstimmung der Anzahl der sog. runs (maximale Teilfolgenaufeinanderfolgender Einsen/Nullen) gegebener Länge mit dem Erwartungswertgefordert, <strong>und</strong> die Unabhängigkeit der Folgenglieder wirddurch die Konstanz der sog. Autokorrelationsfunktion beschrieben.(Näheres siehe Beker, Piper [8]...)• Keine extrem hohe Abweichung einzelner Merkmale vom Erwartungswert.Dazu führt man statistische Tests durch (z.B. den χ 2 -Test beimTest auf Häufigkeit von Einsen oder von Paaren).(Näheres siehe z.B. Knuth [33, Chapter 3] oder Menezes et al. [37]...)In jedem Fall besteht eine gewisse Willkür, welche Eigenschaften man testet.Eine Folge kann viele Tests bestehen, einen weiteren vielleicht nicht.107


Ein anderer Punkt ist außerdem von Bedeutung:In aller Regel werden ‘Zufallsfolgen’ algorithmisch erzeugt (vgl. Schieberegisterfolgen).Was immer man auch unter ‘Zufall’ versteht, eine deterministischeErzeugung wird man nicht als zufällig ansehen. Aus diesem Gr<strong>und</strong>spricht man in diesem Fall von Pseudozufallsfolgen. Es bleibt aber die Frage,was man unter Pseudozufallsfolgen verstehen soll.Ein sinnvoller Ansatz, diese Frage anzugehen, ist der folgende:Man testet nicht eine Folge, sondern vergleicht die Verteilung der vom Algorithmusproduzierten Folgen (einer gewissen Länge) mit der Gleichverteilungauf der Menge dieser Folgen (die von einer binären symmetrischen Quelleerzeugt wird). Dieser Ansatz liegt auch der Definition von Pseudozufälligkeitin einer für die Kryptographie geeigneten Weise zu Gr<strong>und</strong>e. Er hat seineWurzeln in der Komplexitätstheorie <strong>und</strong> wurde in Arbeiten von Goldwasser/Micali,Blum/Micali <strong>und</strong> Yao im Jahr 1982 begründet.Gr<strong>und</strong>idee: Die von einem 0-1-Folgen-Generator erzeugte Verteilung von 0-1-Folgen wird als pseudozufällig angesehen, wenn sie sich von der Gleichverteilungnicht durch einen effizienten Algorithmus unterscheiden lässt.Effiziente Algorithmen sind Algorithmen, die polynomiale Zeitkomplexitäthaben. Neben deterministischen polynomialen Algorithmen betrachten wirauch probabilistische Algorithmen mit polynomialer Zeitkomplexität.Probabilistische Algorithmen können bei gegebenem Input während der Berechnungdes Outputs endlich oft Zufallswahlen (Münzwurf) ausführen, sodass der nächste Schritt des Algorithmus vom Ausgang dieses Zufallsexperimentsabhängt. Daher: Bei gleichem Input kann ein probabilistischer Algorithmusverschiedene Outputs liefern.Probabilistische Algorithmen mit polynomialer Zeitkomplexität sind solche,für die die Anzahl der Schritte (jeder Münzwurf zählt als ein Schritt) durchein Polynom in der Länge des Inputs beschränkt ist.7.1 Wahrscheinlichkeitstheoretische Bezeichnungena) Ist p eine Wahrscheinlichkeitsverteilung auf {0, 1} n , dem Raum der 0-1-Folgen der Länge n, so bedeutet x p ← {0, 1} n , dass Elemente x ∈ {0, 1} nzufällig bezüglich der Wahrscheinlichkeitsverteilung p ausgewählt werden.{0, 1} n mit der Gleichverteilung (p(x) = ( 1 2 )n ) bezeichnen wir mitΩ n <strong>und</strong> schreiben x ← Ω n , wenn Elemente x zufällig <strong>und</strong> mit gleicherWahrscheinlichkeit aus {0, 1} n ausgewählt werden.108


) Ist B: {0, 1} n → {0, 1}, p eine Wahrscheinlichkeitsverteilung auf{0, 1} n , so schreiben wirfür p({x ∈ {0, 1} n | B(x) = 1}) =pr(B(x) = 1| x p ← {0, 1} n )∑x∈{0,1} nB(x)=1p(x).Also: pr(B(x) = 1| x ← Ω n ) = |{x∈{0,1}n | B(x)=1}|2 nc) Wir haben auch den Fall zu betrachten, dass B keine Funktion (bei unsimmer beschrieben durch einen deterministischen Algorithmus) sondernein probabilistischer Algorithmus ist.In diesem Fall steht pr(B(x) = 1| x ← p ∑{0, 1} n ) für p(x) ·x∈{0,1} npr(B(x) = 1), wobei pr(B(x) = 1) die Wahrscheinlichkeit angibt, dassB bei Input x den Wert 1 ausgibt. Diese Wahrscheinlichkeit ist überdie Gleichverteilung der Zufallswahlen in B gegeben.Hierzu ein Bemerkung: Bei gegebenem x kann die Anzahl der Zufallswahlenvom Ausgang vorheriger Zufallswahlen abhängen. Sie ist aber injedem Fall durch eine Konstante t x beschränkt. Indem ggf. Zufallswahlenzusätzlich durchgeführt werden, die keinen Einfluss auf den Ablaufdes Algorithmus haben, wird die Gleichverteilung auf {0, 1} tx betrachtet.7.2 DefinitionEin kryptographisch sicherer Pseudozufallsfolgen-Generator (ks PZG) ist eineFunktion G : {0, 1} ∗ → {0, 1} ∗ mit folgenden Eigenschaften:(1) Es existiert eine Erweiterungsfunktion l :Æ→Æ(d.h. l(n) > n für allen ∈Æ), so dassG(u n ) ∈ {0, 1} l(n) für alle u n ∈ {0, 1} n .[G entspricht einer Familie von Funktionen {0, 1} n → {0, 1} l(n) , n ∈Æ.](2) G ist durch einen deterministischen polynomialen Algorithmus berechenbar.109


(3) Für jeden probabilistischen polynomialen Algorithmus D, der für jedeendliche 0-1-Folge als Input den Wert 0 oder 1 ausgibt, <strong>und</strong> jedes positivePolynom P ∈[x] (d.h. P(a) > 0 für a > 0) gilt für genügendgroße n:|pr(D(G(x)) = 1| x ← Ω n ) − pr(D(z) = 1| z ← Ω l(n) )| < 1P(n)7.3 Bedeutung von Definition 7.2• Wir identifizieren im Folgenden G mit dem polynomialen Algorithmus,der G berechnet. Der Pseudozufallsfolgen-Generator soll also effizientsein.• Die Erweiterungsfunktion l beschreibt, dass der Algorithmus G aus 0-1-Folgen der Länge n (den ‘seeds’) 0-1-Folgen der (größeren) Länge l(n)produziert. Beachte: l(n) ist polynomial beschränkt, da G deterministischerpolynomialer Algorithmus.• Bedeutung von Bedingung (3):Ein Angreifer kann bei Einsatz eines beliebigen probabilistischen polynomialenAlgorithmus D die von G erzeugte Verteilung G(Ω n ) auf{0, 1} l(n) (bis auf einen vernachlässigbaren Rest) nicht von der Gleichverteilungauf {0, 1} l(n) , also Ω l(n) , unterscheiden.Beachte: Natürlich sind G(Ω n ) <strong>und</strong> Ω l(n) Wahrscheinlichkeitsräume mitunterschiedlicher Verteilung, denn G, als deterministischer Algorithmus,produziert aus den 2 n 0-1-Folgen in Ω n nur maximal 2 n verschiedene0-1-Folgen der Länge l(n). Also haben mindestens (2 l(n) − 2 n )0-1-Folgen der Länge l(n) unter der durch G erzeugten WahrscheinlichkeitsverteilungWahrscheinlichkeit 0. Dieser Unterschied lässt sichentsprechend der Def. mit beschränkten Ressourcen (d.h. probabilistischempolynomialem Algorithmus) nicht (d.h. in nicht vernachlässigbarerWeise) aufklären.• Ein möglicher Unterscheidungsalgorithmus D 1 könnte z.B. folgendermaßenaussehen:D 1 gibt 1 aus, falls Anzahl der Einsen größer als Anzahl der Nullen,sonst 0.Bei Anwendung auf Ω l(n) wird er mit Wahrscheinlichkeit 1 2 1 oder 0ausgeben. Wenn es in G(Ω n ) eine deutliche Abweichung der Gleichverteilungvon 1 <strong>und</strong> 0 in den Folgen gibt, so wird D 1 das erkennen.110


Allgemeiner ist jeder statistische Test, der als polynomialer Algorithmusimplementierbar ist (z.B. χ 2 -Tests), ein möglicher Algorithmus D,gegen den der ks PZG ‘resistent‘ sein muss.• Mit größerem Aufwand lassen sich G(Ω n ) <strong>und</strong> Ω l(n) unterscheiden, denn|G(Ω n )| ≤ 2 n , |Ω l(n) | = 2 l(n) :Der Algorithmus D G erzeugt zunächst (mit exponentiellem Aufwand)alle Folgen in G(Ω n ) (G ist bekannt) <strong>und</strong> testet dann, ob z ∈ Ω l(n) inder Liste vorkommt (Ausgabe 1) oder nicht (Ausgabe 0).Dannpr(D G (G(x)) = 1| x ← Ω n ) = 1pr(D G (z) = 1| z ← Ω l(n) ) = |G(Ω n)|2 l(n) ≤ 2n2 l(n)|pr(D G (G(x)) = 1| x ← Ω n ) − pr(D G (z) =1| z ← Ω l(n) )|≥ 1 − 2n2 l(n) ≥ 1 2• Wieso wird in 7.2 nicht etwa die Forderung < 12 n gestellt, oder sogar 0?Weil es dann keinen ks PZG geben würde! Denn:Erzeuge eine 2-elementige Teilmenge W ⊆ G(Ω n ).{1 für u ∈ W,Sei D W (u) =D W ist ein polynomialer Algorithmus.0 sonst.Dannpr(D W (G(x)) = 1| x ← Ω n ) ≥ 2 2 = 1n 2 n−1pr(D W (z) = 1| z ← Ω l(n) ) = 22 = 1l(n) 2 l(n)−1|pr(D W (G(x)) = 1| x ←Ω n ) − pr(D W (z) = 1| z ← Ω l(n) )|≥ 12 − 1n−1 2 ≥ 1l(n)−1 2 − 1 n−1 2 = 1 n 2 n[Selbst wenn G nicht bekannt ist, gibt es einen solchen Algorithmus.Man bildet alle Algorithmen D W mit |W | = 2 <strong>und</strong> W ⊆ {0, 1} l(n) wieoben; von diesen haben solche mit W ⊆ G(Ω n ) die oben angegebeneEigenschaft.]111


• Die Bedingung in 7.2 für den vernachlässigbaren Rest ‘|pr(. . .)−pr(. . .)|< 1 ’ impliziert, dass diese Bedingung erhalten bleibt, wenn Unterscheidungsversuchemit D mit ‘vertretbarem’ Aufwand (d.h. polynomi-P(n)al oft) wiederholt werden.Kryptographisch sichere Pseudozufallsfolgen-Generatoren im obigen Sinnekönnen auch auf andere Weise charakterisiert werden.Sei dazu G ein deterministischer polynomialer Algorithmus mit Erweiterungsfunktionl :Æ→N, der aus 0-1-Folgen der Länge n 0-1-Folgen derLänge l(n) erzeugt.Für eine 0-1-Folge x, sei G(x) i das i-te Bit der 0-1-Folge G(x).7.4 DefinitionG besteht alle Next-Bit-Tests, falls für jeden probabilistischen polynomialenAlgorithmus A, der für jede endliche 0-1-Folge als Input den Wert 0 oder 1ausgibt, <strong>und</strong> jedes positive Polynom P ∈[x] für alle genügend großen ngilt:pr(A(G(x) 1 G(x) 2 . . . G(x) i ) = G(x) i+1 |x ← Ω n ) ≤ 1 2 + 1P(n)für alle 0 ≤ i < l(n).7.5 Bedeutung von Definition 7.4• Der Algorithmus A versucht aus der Kenntnis der ersten i Bits derFolge G(x) das (i + 1)-te Bit von G(x) vorauszusagen.• G besteht alle Next-Bit-Tests, wenn mit vertretbarem Aufwand ( ∧ = polynomialemprobabilistischem Algorithmus) das nächste Bit i.W. nichtbesser bestimmt werden kann als durch Münzwurf (Wahrscheinlichkeit12 ).• Wie zu Definition 7.2 kann man sich auch hier überlegen, dass es nichtpolynomialeAlgorithmen A gibt, die für gewisse Stellen i das nächsteBit mit größerer Wahrscheinlichkeit als 1 + 1 voraussagen können.2 P(n)Ebenso kann man zeigen, dass es immer polynomiale Algorithmen Agibt, die für gewisse Stellen i das nächste Bit mit Wahrscheinlichkeit≥ 1 + 1 voraussagen können.2 2 n112


7.6 Satz (Yao; 1982)Genau dann ist G ein krytographisch sicherer Pseudozufallsfolgen-Generator,wenn G alle Next-Bit-Tests besteht.Beweisidee:=⇒ :Wenn G nicht alle Next-Bit-Tests besteht, so gibt es einen probabilistischenAlgorithmus A, ein positives Polynom Q <strong>und</strong> eine unendliche Teilmenge Kvon N, so dass A für jedes n ∈ K für jeweils eine Position i n < l(n) aus derKenntnis von G(x) 1 , . . .,G(x) in das nächste Bit G(x) in+1 mit Wahrscheinlichkeit> 1 2 + 1Q(n)voraussagen kann. Bei zufälliger Wahl einer Folge ausΩ l(n) lässt sich deren (i n + 1)-tes Bit aber nicht mit Wahrscheinlichkeit > 1 2voraussagen.Definiere einen probabilistischen polynomialen Algorithmus D durch{1, falls A(z1 , . . .,zD(z 1 , . . .,z l(n) ) =in ) = z in+10, sonstfür (z 1 , . . .,z l(n) ) ∈ {0, 1} l(n) , n ∈ K. (Für alle übrigen Längen von {0, 1}-Folgen kann man z.B. D(z 1 , . . ., z m ) = 0 definieren.)Dann ist anschaulich klar (<strong>und</strong> kann mit etwas Rechnung auch präzise nachgewiesenwerden), dass mit diesem D die Bedingung eines kryptographischsicheren Pseudozufallsfolgen-Generators verletzt ist.⇐= :Ang., G ist kein kryptographisch sicherer Pseudozufallsfolgen-Generator. Dannexistiert ein probabilistischer polynomialer Algorithmus D, ein positives PolynomQ(x) <strong>und</strong> eine unendliche Teilmenge K von N, so dass| pr(D(G(x)) = 1 | x ←− Ω n ) − pr(D(z)) = 1 | z ←− Ω l(n) | ≥ 1Q(n) füralle n ∈ K.Sei p i die Gleichverteilung auf {0, 1} i , d.h. ({0, 1} i , p i ) = Ω i . Für jedes n ∈ Kdefinieren wir jetzt Wahrscheinlichkeitsverteilungen ˜p 0 , . . ., ˜p l(n) auf {0, 1} l(n)in folgender Weise:˜p 0 ((b 1 , . . .,b l(n) )) = p l(n) ((b 1 , . . .,b l(n) )) = 12 l(n)˜p 1 ((b 1 , . . .,b l(n) )) = pr(G(x) 1 = b 1 |x ← Ω n ) · p l(n)−1 (b 2 , . . .,b l(n) ))˜p 2 ((b 1 , . . .,b l(n) )) = pr(G(x) 1 = b 1 , G(x) 2 = b 2 |x ← Ω n ) · p l(n)−2 ((b 3 , . . .,b l(n) )).˜p l(n) ((b 1 , . . .,b l(n) )) = pr(G(x) 1 = b 1 , . . .,G(x) l(n) = b l(n) |x ← Ω n )Also: ˜p 0 Gleichverteilung auf {0, 1} l(n) , ˜p l(n) die durch G(Ω n ) erzeugte Ver-113


teilung auf {0, 1} l(n) . D kann ˜p 0 <strong>und</strong> ˜p l(n) unterscheiden (im obigen Sinne).Sei pr(D(G(x)) = 1 | x ←− Ω n ) ≥ pr(D(z) = 1 | z ←− Ω l(n) ) (ansonstenbetrachte man im Folgenden die umgekehrten Differenzen).Man sieht dann leicht, dasspr(D(G(x)) = 1 | x ←− Ω n ) − pr(D(z) = 1 | z ←− Ω l(n) ) =∑ l(n)−1j=0(pr(D(z) = 1 | z ˜p j+1←− {0, 1} l(n) ) − pr(D(z) = 1 | z ˜p j←− {0, 1} l(n) )).Also existiert zu jedem n ∈ K ein i n , 0 ≤ i n < l(n), mit| pr(D(z) = 1 | z ˜p in+1←− {0, 1} l(n) ) − pr(D(z) = 1 | z ˜p in←− {0, 1} l(n) )| ≥1. Q(n)l(n)Beachte, dass l(n) durch ein positives Polynom nach oben beschränkt ist, daG ein polynomialer Algorithmus ist.Es folgt, dass D für z = (G(x) 1 , . . .,G(x) in , b, b in+2, . . .,b l(n) ) mit b =G(x) in+1 den Wert 1 mit nicht-vernachlässigbarer höherer Wahrscheinlichkeitliefert, als wenn b zufällig (mit Wahrscheinlichkeit 1 ) gewählt wird.2Damit kann man dann aus D leicht einen probabilistischen polynomialenAlgorithmus A konstruieren, so dass G den Next-Bit-Test bzgl. dieses Algorithmusnicht besteht. 36Offen bleibt die Frage: Gibt es kryptographisch sichere Pseudozufallsfolgen-Generatoren? Es stellt sich heraus, dass dies äquivalent zur Existenz sogenannterEinwegfunktionen ist.Einwegfunktionen sind Funktionen, die leicht zu berechnen, aber schwierigzu invertieren sind.7.7 DefinitionEine Funktion f : {0, 1} ∗ → {0, 1} ∗ heißt Einwegfunktion, falls gilt:(1) Es existiert ein deterministischer polynomialer Algorithmus F, der beiInput x ∈ {0, 1} ∗ den Wert f(x) ausgibt (d.h. F(x) = f(x)).(2) Für jeden probabilistischen polynomialen Algorithmus A <strong>und</strong> jedes positivePolynom P ∈[x] gilt für alle genügend großen n:pr(A(f(x), 1 n ) ∈f −1 (f(x)) |x ← Ω} {{ } n ) < 1P(n)Urbild von f(x)36 Ausführlicher Beweis bei Delfs, Knebl, Introduction to Cryptography [21], Goldreich,Fo<strong>und</strong>ations of Cryptography [24] oder Stinson, Cryptography-Theory and Practice [42]114


[1 n bezeichnet einen String aus n Einsen.]7.8 Bedeutung von Definition 7.7• Der Hilfs-Input 1 n bei A, der die Länge des gewünschten Urbilds angibt,dient dazu, gewisse Funktionen als Einwegfunktionen auszuschließen.Ausgeschlossen werden solche Funktionen f, bei denen die Länge vonf(x) so drastisch gesenkt wird, dass A keine Chance hat, ein Urbild inpolynomialer Zeit in der Größe des Inputs f(x) auszugeben.Bsp:x ∈ {0, 1} n , f(x) = Binärdarstellung von n (der Länge von x)Dann f(x) ∈ {0, 1} ⌈log 2n⌉Kein polynomialer Algorithmus kann f(x) invertieren; aber natürlichkann man in polynomialer Zeit in n ein Urbild zu f(x) ∈ {0, 1} ⌈log 2n⌉hinschreiben, z.B. (0, . . ., 0) .←−n−→• Der Algorithmus A, der ein Urbild rät, hat Wahrscheinlichkeit vonmindestens 1 , ein richtiges Urbild zu finden. Also kann man die Wahrscheinlichkeitsschrankenicht durch (oder sogar 0) ersetzen.2 n 11P(n) 2 n• Ein Algorithmus kann sich bis zu einem n 0 eine Liste {(f(x), x)| Längevon x ≤ n 0 } erstellen. Für solche f(x) findet er dann schnell ein Urbild.Daher kann man die Forderung in 7.7 (2) nur für alle genügend großenn stellen (abhängig vom Algorithmus A <strong>und</strong> dem Polynom P).Einer der wichtigsten Sätze der komplexitätstheoretisch orientierten <strong>Kryptologie</strong>,der frühere Ergebnisse von Blum/Micali, Yao, Goldreich/Krawcyk/Luby verallgemeinert, ist der folgende:7.9 Satz (Håstad, Impagliazzo, Levin, Luby; 1999)Genau dann existieren kryptographisch sichere Pseudozufallsfolgen-Generatoren,wenn Einwegfunktionen existieren.Der Beweis dieses Satzes ist kompliziert, vor allem die Richtung, wie man ausEinwegfunktionen kryptographisch sichere Pseudozufallsfolgen-Generatorengewinnt.Wir beschreiben einige wesentliche Punkte:115


a) Kryptographisch sichere Pseudozufallsfolgen-Generatoren ⇒ Einwegfunktionen:Wir nehmen der Einfachheit halber an, dass G ein kryptographischsicherer Pseudozufallsfolgen-Generator ist mit Erweiterungsfunktionl(n) = 2n.⋃Dann definiert man eine Funktion f : 1}n∈Æ{0, 2n →n∈Æ{0, ⋃ 1} 2ndurch f(x, y) = G(x) für x, y ∈ {0, 1} n .Dann erfüllt f die Bedingung einer Einwegfunktion:Polynomiale Berechenbarkeit folgt aus der von G.Ang. f ist keine Einwegfunktion. Dann existiert probabilistischer polynomialerAlgorithmus <strong>und</strong> positives Polynom Q, so dassfür unendlich viele n.pr(A(f(x), 1 2n ) ∈ f −1 (f(x))| x ← Ω 2n ) > 1Q(2n)Man benötigt jetzt einen probabilistischen polynomialen AlgorithmusD, der Ω 2n <strong>und</strong> G(Ω n ) ‘unterscheidet’.Bei Eingabe von α ∈ {0, 1} 2n nutzt D den Algorithmus A. D gibt 1aus, falls A ein Urbild von F zu α findet, sonst 0.Wegen f(Ω 2n ) = G(Ω n ) [denn für β ∈ {0, 1} 2n ist|{α ∈ {0, 1} 2n |f(α) = β}| = 2 n · |{γ ∈ {0, 1} n |G(γ) = β}|] istpr(D(G(x)) = 1|x ← Ω n ) =pr(D(f(z)) = 1|z ← Ω 2n ) =pr(A(f(z), 1 2n ) ∈ f −1 (f(z))|z ← Ω 2n ) > 1Q(2n)für unendlich viele n.Andererseits gibt es nur maximal 2 n viele Elemente in {0, 1} 2n , dieUrbilder unter f haben können (denn G hat nur 2 n viele Bilder in{0, 1} 2n ); also wird D nur bei maximal 2 n vielen Elementen aus {0, 1} 2nWert 1 ausgeben. Also pr(D(z) = 1| z ← Ω 2n ) ≤ 2n = 12 2n 2 nDamit: pr(D(G(x)) = 1| x ← Ω n ) − pr(D(z) = 1| z ← Ω 2n )≥ 1 − 1 ≥ 1 für unendlich viele n, Widerspruch.Q(2n) 2 n 2Q(2n)Man kann schließlich mit einfachen Techniken, auf die hier nicht eingegangenwird, aus f eine Funktion f ′ : {0, 1} ∗ → {0, 1} ∗ konstruieren,die eine Einwegfunktion ist. 3737 s. Goldreich [24], S. 36ff.116


) Einwegfunktionen ⇒ kryptographisch sichere Pseudozufalls-Generatoren:Zunächst Begriff des Hard-Core-Prädikats einer Einwegfunktion.Bei einer Einwegfunktion f ist es so gut wie nicht möglich, ein Urbildx aus y = f(x) mit einem effizienten Algorithmus zu bestimmen.Dennoch tritt oft der Fall auf, dass einzelne Bits von x leichtzu berechnen sind. (Z.B. g Einwegfunktion; für x = (x 1 , . . .,x n ) seif(x, x n+1 ) = (g(x), x n+1 ). Dann f Einweg, aber x n+1 leicht zu bestimmen.)Andererseits können bei einer Einwegfunktion nicht alle Bits vonx aus f(x) leicht zu berechnen sein, denn sonst wäre x leicht zu berechnen.Welche Bits schwierig zu bestimmen sind, könnte allerdingsbei jedem x unterschiedlich sein. Jedenfalls ist es plausibel, dass es einegewisse Boolesche Funktion h : {0, 1} ∗ → {0, 1} gibt, so dass h(x) ausf(x) im Wesentlichen genauso schwierig zu bestimmen ist wie x, d.h.die Schwierigkeit, x aus f(x) zu bestimmen, manifestiert sich schon ineinem Bit h(x). Dies ist die Idee der Hard-Core-Prädikate.Def.:Sei h : {0, 1} ∗ → {0, 1} durch einen deterministischen polynomialenAlgorithmus berechenbar. h heißt Hard-Core-Prädikat einer Funktionf : {0, 1} ∗ → {0, 1} ∗ , falls für jeden probabilistischen polynomialenAlgorithmus A (Input Elemente aus {0, 1} ∗ , Output 0 oder 1) <strong>und</strong>jedes positive Polynom P für alle genügend großen n gilt:Bedeutung:pr(A(f(x)) = h(x)| x ← Ω n ) ≤ 1 2 + 1P(n)• Beachte zunächst:Die Bedingung pr(A(f(x)) = h(x)| x ← Ω n ) ≤ 1 + P(n) <strong>und</strong> die2entsprechende Bedingung für den Algorithmus A ′ = 1 + A implizieren,dass |pr(h(x) = 0| x ← Ω n ) − pr(h(x) = 1| x ← Ω n )|vernachlässigbar klein ist, d.h. h verhält sich fast wie Münzwurfauf Ω n .Daher besagt die Bedeutung von Hard-Core-Prädikaten, dass dieBestimmung von h(x) aus f(x) durch einen effizienten Algorithmusbis auf einen vernachlässigbaren Rest nicht besser ist als h(x)durch Münzwurf zu ‘raten’.• Für die Existenz eines Hard-Core-Prädikats kann es zwei Gründegeben:117


(a) Informationsverlust von f (d.h. f ist nicht injektiv)z.B. f(z 1 , . . .,z n ) = (0, z 2 , . . .,z n ), h(z 1 , . . .,z n ) = z 1(b) f ist EinwegfunktionWir sind am zweiten Fall interessiert.Tatsächlich kann man zu jeder Einwegfunktion eine eng mit dieser verwandteEinwegfunktion konstruieren, die ein Hard-Core-Prädikat besitzt:Satz (Goldreich, Levin; 1989)Sei f : {0, 1} ∗ ⋃→ {0, 1} ∗ eine Einwegfunktion.Definiere g : 1}n∈Æ{0, 2n → {0, 1} ∗ durch g(x, y) = (f(x), y), x, y ∈ {0, 1} n .Ist x = (x 1 , . . .,x n ), y = (y 1 , . . .,y n ), so sei h(x, y) = ∑ x i y i mod 2.Dann ist g eine Einwegfunktion <strong>und</strong> h ist ein Hard-Core-Prädikat für g. 38[Es ist nicht schwierig, aus g eine Einwegfunktion ˜g : {0, 1} ∗ → {0, 1} ∗ zukonstruieren, die ein Hard-Core-Prädikat besitzt.]Wir können also annehmen, dass wir eine Einwegfunktion f mit Hard-Core-Prädikat h vorliegen haben.Wir beschreiben die Konstruktion eines kryptographisch sicheren Zufallszahlen-Generatorsjetzt nur für den Fall, dass f eine bijektive <strong>und</strong> längenerhaltende(d.h. x ∈ {0, 1} n ⇒ f(x) ∈ {0, 1} n für alle n ∈Æ) Einwegfunktionist.Sei l ein Polynom mit l(n) > n für alle n.Definiere G auf folgende Weise: Sei s 0 ∈ {0, 1} n ein Input für G (seed).Für j = 1, . . ., l(n) sei s j = f(s j−1 ).Definiere nun G(s 0 ) = (h(s 1 ), . . .,h(s l(n) )) ∈ {0, 1} l(n) .Wir zeigen, dass G ein kryptographisch sicherer Pseudozufallsfolgen-Generatorist.Dies beweist man, indem man nachweist, dass G alle Next-Bit-Tests besteht(<strong>und</strong> zwar von rechts nach links!).Angenommen, man kann bei zufällig <strong>und</strong> gleichverteiltem ‘seed‘ s 0 ∈ {0, 1} nfür unendlich viele n die Bits h(s in ) (für mindestens ein i n ∈ {1, . . ., l(n)})aus h(s in+1), . . .,h(s l(n) ) mit einer Wahrscheinlichkeit > 1 + 1 (für ein festespositives Polynom Q)2 Q(n)vorhersagen.38 s. Goldreich [24], S. 66 ff.118


Wir behaupten nun: Wenn s 0 zufällig <strong>und</strong> gleichverteilt aus {0, 1} n gewähltwird, so kann man h(s in ) aus f(s in ) mit Wahrscheinlichkeit > 1 + 1 vorhersagen:2 Q(n)Es sind nämlich f(s in ) = s in+1, . . .,f(s l(n)−1 ) = s l(n) aus f(s in ) berechenbar.Aus diesen erhält man h(s in+1), . . .,h(s l(n) ) <strong>und</strong> aus diesen ist nach obigerAnnahme h(s in ) mit Wahrscheinlichkeit > 1 + 1 vorhersagbar.2 Q(n)Da f längenerhaltend <strong>und</strong> bijektiv ist, gilt dies auch für f in , d.h. es istf in ({0, 1} n ) = {0, 1} n . Daher folgt aus s 0 ← Ω n auch s in = f in (s 0 ) ← Ω n .Damit widerspricht die vorher bewiesene Aussage der Definition des Hard-Core-Prädikats.Obige Annahme ist also nicht aufrechtzuhalten, d.h. G besteht alle Next-Bit-Tests (von rechts nach links). Nach dem Satz von Yao (siehe 7.6) ist G daherein kryptographisch sicherer Pseudozufallsfolgen-Generator.7.10 Die Frage nach der Existenz von EinwegfunktionenEs bleibt die Frage, ob Einwegfunktionen existieren. Dies ist nicht bekannt.Eine notwendige Bedingung für die Existenz von Einwegfunktionen ist P ≠NP. (Ob dies gilt, ist eines der berühmtesten offenen Probleme der Komplexitätstheorie.)Sei nämlich f eine polynomial berechenbare Funktion. Dann kann man inpolynomialer Zeit entscheiden, ob für gegebene x <strong>und</strong> y gilt: f(x) = y. Daherliegt die Berechnung eines Urbilds von y in NP (eine Lösung lässt sich inpolynomialer Zeit verifizieren). Ist also P = NP, so lässt sich jede polynomialberechenbare Funktion auch in polynomialer Zeit invertieren, <strong>und</strong> es gibtkeine Einwegfunktionen.Tatsächlich ist bei unserer Definition von Einwegfunktionen, in der die Invertierung(bis auf einen vernachlässigbaren Rest) auch durch probabilistischepolynomiale Algorithmen unmöglich sein muss, sogar eine weitergehende Bedingungnotwendig, nämlich NP BPP.BPP steht für Bo<strong>und</strong>ed-Probability Polynomial Time.BPP ist die Klasse aller Sprachen, die von einer probabilistischen, polynomiallaufzeitbeschränkten Turing-Maschine M (also von einem polynomialprobabilistischen Algorithmus) erkannt werden. Dies bedeutet:Für alle x ∈ L : pr[M(x) = 1] ≥ 2 3119


Für alle x ∉ L : pr[M(x) = 0] ≥ 2 3(bo<strong>und</strong>ed: Wahrscheinlichkeit wegbeschränkt von 1 2 )Äquivalent:Ersetze 2 durch 1 − 1 , |x| = Länge von x.3 2 |x|(sogar 1 − 1 , Q ein beliebiges positives Polynom)2 Q(|x|)Klar: P ⊆ BPP.Also: NP BPP ⇒ NP ≠ P. Nicht bekannt ist auch, ob BPP ⊆ NP.Die obige Forderung verbietet die umgekehrte Inklusion.P ≠ NP bedeutet nur, dass es NP-Probleme gibt, die Instanzen besitzen,die nicht effizient (deterministisch) lösbar sind (worst case).Wir benötigen Funktionen, die im Durchschnitt nicht effizient zu invertierensind. Es ist nicht bekannt, ob aus der Annahme P ≠ NP (oder sogar NP BPP) die Existenz von Einwegfunktionen folgt. Im nächsten Kapitel werdenwir Kandidaten für Einwegfunktionen kennenlernen.120


Literatur[1] Charlisle Adams and Steve Lloyd. Understanding Public-Key Infrastructure.Technology Series. New Riders Publishing, Indianapolis, USA, 2edition, 1999.[2] Leonard Adleman, Ronald L. Rivest and Adi Shamir. On Digital Signaturesand Public Key Cryptosystems. MIT Laboratory for ComputerScience Technical Memorandum, (82), April 1977.[3] William R. Alford, Andrew Granville and Carl Pomerance. There areinfinitely many Carmichael numbers. Annals of Mathematics, (140):703–722, 1994.[4] Doris Baker and H. X. Mel. Cryptography decrypted. Addison Wesley,Boston, 2001.[5] Friedrich L. Bauer. Entzifferte Geheimnisse. Springer, 3. Auflage, 2000.[6] Friedrich L. Bauer. <strong>Mathematik</strong> besiegte in Polen die unvernünftig gebrauchteENIGMA - Teil 1. Informatik Spektrum, 28(6):493–497, 2005.[7] Friedrich L. Bauer. <strong>Mathematik</strong> besiegte in Polen die unvernünftig gebrauchteENIGMA - Teil 2. Informatik Spektrum, 29(1):53–60, 2006.[8] Henry Beker and Fred Piper. Cipher Systems: The protection of communications.Northwood Books, London, 1982.[9] Albrecht Beutelspacher, Heike B. Neumann <strong>und</strong> Thomas Schwarzpaul.Kryptographie in Theorie <strong>und</strong> Praxis. Vieweg, Braunschweig, 2005.[10] Albrecht Beutelspacher, Jörg Schwenk <strong>und</strong> Klaus-Dieter Wolfenstetter.Moderne Verfahren der <strong>Kryptologie</strong>. Vieweg, Braunschweig, 4. Auflage,2001.[11] Eli Biham and Adi Shamir. Differential Cryptanalysis of DES-like Cryptosystems.Journal of Cryptology, 4(1):3–72, 1991.[12] Eli Biham and Adi Shamir. Differential Cryptanalysis of the Data EncryptionStandard. Springer, 1993.[13] Alex Biryukov, Christophe de Cannière and Bart Preneel. An Introductionto Block Cipher Cryptanalysis. Proceedings of the IEEE, 94(2):346–356, 2006.121


[14] Leonore Blum, Manuel Blum and Mike Shub. A Simple UnpredictableRandom Number Generator. SIAM Journal on Computing, (15):364–383, 1986.[15] Johannes Buchmann. Einführung in die Kryptographie. Springer, Berlin,2. Auflage, 2001.[16] Steve Burnett and Stephen Paine. Kryptographie. mitp, Bonn, 2001.[17] Komaravolu Chandrasekharan. Einführung in die analytische Zahlentheorie.Lecture notes in mathematics 29, Springer, Berlin, 1966.[18] Don Coppersmith. The data encryption standard (DES) and its strengthagainst attacks. IBM Journal of Research and Development, 38(3):243–250, 1994.[19] Richard Crandall and Carl Pomerance. Prime Numbers - A ComputationalPerspective. Springer, New York, 2001.[20] Joan Daemen and Vincent Rijmen. The Design of Rijndael. AES - TheAdvanced Encryption Standard. Springer, Berlin, 2002.[21] Hans Delfs and Helmut Knebl. Introduction to Cryptography. Springer,Berlin, Heidelberg, 2002.[22] Whitfield Diffie and Martin E. Hellman. New Directions in Cryptography.IEEE Transactions on Information Theory, 22:644–654, 1976.[23] Wolfgang Ertel. Angewandte Kryptographie. Fachbuchverl. Leipzig imCarl-Hanser-Verl., München, 2001.[24] Oded Goldreich. Fo<strong>und</strong>ations of Cryptography, Vol. 1 - Basic Tools.Cambridge University Press, Cambridge, 2001.[25] Oded Goldreich. Fo<strong>und</strong>ations of Cryptography, Vol. 2 - Basic Applications.Cambridge University Press, Cambridge, 2004.[26] Max Goldt. Quitten für die Menschen zwischen Emden <strong>und</strong> Zittau.Haffmans Verlag, Zürich, 1993.[27] Thomas Hardjono, Josef Pieprzyk and Jennifer Seberry. F<strong>und</strong>amentalsof Computer Security. Springer, Berlin, 2003.[28] Andrew Hodges. Alan Turing: the Enigma. Simon Schuster, New York,1983.122


[29] Patrick Horster. <strong>Kryptologie</strong>. Bibliographisches Institut, Mannheim,1985.[30] David Kahn. The Codebreakers. MacMillan, New York, 1967.[31] David Kahn. Seizing the Enigma. Houghton Miffin, Boston, 1991.[32] Jonathan Katz and Yehuda Lindell. Introduction to Modern Cryptography.Chapman & Hall/CRC, Boca Raton, 2008.[33] Donald E. Knuth. The Art of Computer Programming, volume 2. AddisonWesley, Reading, Mass., 2 edition, 1998.[34] Neal Koblitz. A course in number theory and cryptography. Springer,New York, 2 edition, 1994.[35] Neal Koblitz. Algebraic aspects of cryptography. Springer, Berlin u.a., 2edition, 1999.[36] Rudolf Lidl and Harald Niederreiter. Introduction to finite fields andtheir applications. Cambridge University Press, Cambridge, 1986.[37] Alfred J. Menezes, Paul C. van Oorschot and Scott A. Vanstone. Handbookof Applied Cryptography. CRC Press, London, 1997.[http://www.cacr.math.uwaterloo.ca/hac/].[38] Michael Miller. Symmetrische Verschlüsselungsverfahren. Teubner,Stuttgart/Leipzig/Wiesbaden, 2003.[39] Hans Riesel. Prime Numbers and computer methods for factorizations.Birkhäuser, Boston, 2 edition, 1994.[40] Klaus Schmeh. Kryptografie <strong>und</strong> Public-Key-Infrastrukturen im Internet.dpunkt, Heidelberg, 2. Auflage, 2001.[41] Bruce Schneier. Angewandte Kryptographie. Addison Wesley, Bonn u.a.,1997.[42] Douglas Stinson. Cryptography - Theory and Praxis. Chapman &Hall/CRC, Boca Raton, 3 edition, 2006.[43] Wade Trappe and Lawrence C. Washington. Introduction to Cryptographywith Coding Theory. Prentice Hall, New Jersey, 2002.[44] Serge Vaudenay. A Classical Introduction to Cryptography: Applicationsfor Communications Security. Springer, New York, 2006.123


[45] Michael Welschenbach. Kryptographie in C <strong>und</strong> C++. Springer, Berlinu.a., 2. Auflage, 2001.[46] Michael J. Wiener. Cryptanalysis of short RSA secret exponents. IEEETransactions on Information Theory, 36(3):553–558, 1990.124

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!