Kryptologie Vorlesungsskript
Dietmar W¨atjen
Institut f¨ur Theoretische Informatik Technische Universit¨at Braunschwei...
176 downloads
1483 Views
1MB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
Kryptologie Vorlesungsskript
Dietmar W¨atjen
Institut f¨ur Theoretische Informatik Technische Universit¨at Braunschweig
Oktober 2000
Stand: 7. Februar 2001
Vorwort Kryptographie und Kryptologie stellen, wie man vielleicht anschaulich sagen kann, die Lehre vom geheimen Schreiben dar. Die Kryptographie hat schon seit langem die Menschen ¨ interessiert. Erste Anf¨ange gab es bereits in Agypten und Mesopotamien. Damals wurde Lesen und Schreiben ohnehin nur von wenigen beherrscht, und so war die Kryptographie zun¨achst wohl mehr eine Spielerei, um z.B. irgendwelche Aussagen okkulten Inhalts vor den anderen Lesern zu verbergen und damit als noch wichtiger erscheinen zu lassen. Aber bald fand auch schon aus gesch¨aftlichem Interesse eine Anwendung der Kryptographie statt. In Mesopotamien hat man z.B. auf einer kleinen Schreibtafel eine verschl¨usselte Anweisung entdeckt, wie man die Glasur von T¨opfen macht. Auch von Staaten wurde das geheime Schreiben fr¨uh benutzt, vor allem f¨ur diplomatische und milit¨arische Zwecke. Aus Griechenland und Rom sind dazu einige Beispiele bekannt. Nach dem Zerfall des R¨omischen Reichs wird in Europa erst seit der RenaissanceZeit die Kryptologie weiter entwickelt. Es geht dabei immer um das Verschl¨usseln von Nachrichten und ihre Entschl¨usselung, die in st¨andigem Wettstreit liegen. Wir wollen hier nicht weiter auf die Geschichte der Kryptographie eingehen, sondern auf die sehr interessanten B¨ucher von David Kahn [49] oder Simon Singh [109] verweisen, in denen sie, unter anderem auch im Hinblick auf die beiden Weltkriege, sehr ausf¨uhrlich dargestellt ist. Wir leben heute in einer Welt, in der Information und Informationsaustausch eine zentrale Rolle spielen, und wir stehen erst am Anfang des Informationszeitalters. Der Schutz von Informationen und das Wissen u¨ ber Kryptologie wird immer wichtiger. Die Kryptologie umfaßt zwei Gebiete: die Kryptographie, d.h. die Wissenschaft des Datenschutzes durch Verschl¨usselung, und die Kryptoanalyse, d.h. die Kunst, ohne die Kenntnis des Schl¨ussels an geheime Informationen zu gelangen. Die Kryptographie wurde in der Vergangenheit haupts¨achlich zu milit¨arischen, geheimdienstlichen und diplomatischen Zwecken verwendet. Heute kommt ihr jedoch durch die weite Verbreitung und Vernetzung von Computern eine immer st¨arkere Bedeutung zu. So wie man Briefe bei der Versendung zuklebt und vielleicht sogar versiegelt, die empfangenen Briefe und auch Akten wegschließt, so m¨ochte man in analoger Weise elektronische Daten vor unerlaubter Einsicht sch¨utzen. Was m¨ochte man u¨ berhaupt erreichen? Die Sicherheit beim elektronischen Transport der Daten, z.B. u¨ ber das Internet, muß gew¨ahrleistet sein. Es darf einem elektronischen Lauscher, der irgendwo die Leitung anzapft, nicht m¨oglich sein, die eigentlichen Daten zu lesen. Dazu m¨ussen die Texte verschl¨usselt werden. Aber die Verschl¨usselung ist eigentlich nicht nur beim Transport, sondern auch bei der Verwahrung der Daten erforderlich. Zum einen hat n¨amlich der Superuser, also der Systemadministrator, immer Zugang zu allen Daten in seinem System. Vor ihm lassen sich unverschl¨usselte Texte auch durch Paßw¨orter nicht verbergen, Paßw¨orter sch¨utzen einen h¨ochstens vor anderen Nutzern, wenn u¨ berhaupt. Zum anderen k¨onnen nat¨urlich auch Platten oder B¨ander gestohlen werden, und dann ben¨otigt der Dieb nach Integration der gestohlenen Platten oder B¨ander in sein eigenes System keine Paßw¨orter, um die gestohlenen Daten zu lesen. Neben der Verschl¨usselung der Daten ist es ein weiteres wichtiges Problem, daß sie nicht verf¨alscht werden. Wenn z.B. an einer Universit¨at Pr¨ufungsergebnisse zentral gespeichert werden, so kann man sich vorstellen, daß der Eintrag in die entsprechenden Listen oder ¨ auch ein Anderungseintrag von außen durch die jeweiligen Veranstalter der entsprechenden i
Vorwort Lehrveranstaltungen erfolgt. Dies kann direkt oder auch durch Senden einer E-Mail geschehen. Wie kann man aber sicher sein, daß die Daten wirklich von dem behaupteten Absender stammen und nicht z.B. ein Student eine 5 in eine 1 ab¨andern m¨ochte? Man muß also f¨ur die Authentizit¨at der Nachrichten sorgen, was durch eine sogenannte digitale Unterschrift erreicht werden kann. Im Bankwesen und ganz allgemein im Gesch¨aftswesen gibt es ein weites Feld von Anwendungen der Kryptographie. Jeder hat schon bei einem Geldautomaten Geld von seinem Konto abgehoben. Wie kann man sicher sein, daß der richtige Betrag abgebucht wird und keine anderen Personen das Konto pl¨undern? In der letzten Zeit sind doch einige Mißbr¨auche bekannt geworden, die deutlich machen, daß hier die kryptographischen Sicherheitsanforderungen noch erh¨oht werden m¨ussen. Verwunderlich ist allerdings auch nicht, daß die Verschl¨usselung der in den Computernetzen versendeten Daten manchen staatlichen Stellen, insbesondere Polizei und Geheimdiensten, nicht gef¨allt. Verbrecherische Organisationen bedienen sich leider sehr viel schneller technologisch fortschrittlicher Methoden, als es die h¨aufig sehr schwerf¨alligen staatlichen Organisationen tun. In den USA ist es z.B. nur erlaubt, ein Verschl¨usselungssystem zu benutzen, das von der Regierung genehmigt ist und von dem man annehmen darf, daß die National Security Agency mitlesen kann. Auch in der Bundesrepublik Deutschland gibt es Versuche in dieser Richtung, die Benutzung der Kryptologie einzuschr¨anken. Da andererseits in allen Computernetzen Krypto-Systeme als freie Software erh¨altlich sind, ist es zu hoffen, daß die staatlichen Stellen sich mit ihren restriktiven Forderungen nicht durchsetzen k¨onnen. Selbst bei einem Verbot der Verwendung sicherer Schl¨ussel (d.h. gen¨ugend langer Schl¨ussel) gibt es Verfahren, wie man trotzdem Sicherheit erreichen kann. Die bekannteste solche Methode ist die Steganographie, bei der die geheime Information in digitalen Bildern versteckt wird. Wir werden hier auf diese Technik nicht n¨aher eingehen. Eine erste Einf¨uhrung dazu findet sich z.B. in [28]. Wir wollen in der Vorlesung nach einf¨uhrenden Begriffen erst einige a¨ ltere Verfahren der Kryptographie besprechen, um danach auf verschiedene neuere Verfahren einzugehen, wie sie heute in der Praxis benutzt werden. Besonders interessant sind in diesem Zusammenhang die Public-Key-Kryptosysteme, bei denen jeder Benutzer einen Verschl¨usselungsalgorithmus o¨ ffentlich bekanntmacht, mit dem ihm jeder andere Teilnehmer Nachrichten schicken kann. Nur der Benutzer selbst kann jedoch diese Nachrichten in angemessener Zeit entschl¨usseln. Dieses Skript dient als Grundlage f¨ur eine vierst¨undige Vorlesung im Wintersemester. Bei der Ausarbeitung der Vorlesung wurden vor allem die Lehrb¨ucher von Dorothy E. Denning [19], Arto Salomaa [93], Douglas R. Stinson [111], Reinhard Wobst [117] und Bruce Schneier [96] benutzt, außerdem auch der von Gustavus J. Simmons herausgegebenen Sammelband [108] sowie das empfehlenswerte Handbuch von Menezes, Oorschot und Vanstone [63]. Beim Durchblick dieser B¨ucher werden Sie feststellen, daß dieses Skript nur einen kleinen Teil der Kryptologie abdeckt. Es gibt noch viele weitere Verfahren, aber auch bei den behandelten Verfahren gibt es zum Teil neuere Erkenntnisse, die hier nicht alle ber¨ucksichtigt werden k¨onnen. Zur Vertiefung sei auf die eben genannten B¨ucher, aber auch die hier oder in den B¨uchern genannten Literaturverzeichnisse verwiesen. Insbesondere soll angemerkt werden, daß es jedes Jahr einige Krypto-Tagungen gibt (vor allem CRYPTO, EUROCRYPT, ASIACRYPT), deren Proceedings in der Reihe Lecture Notes in Computer Science im Springer-Verlag, Berlin, erscheinen.
ii
Inhaltsverzeichnis 1 Grundlagen 1.1 Erste Grundbegriffe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Kryptographische Systeme . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Informationstheoretische Grundlagen . . . . . . . . . . . . . . . . . . . . 2 Klassische kryptographische Verfahren 2.1 Transpositionschiffren . . . . . . . . 2.2 Chiffren mit einfacher Substitution . . 2.3 Chiffren mit homophoner Substitution 2.4 Polyalphabetische Substitution . . . . 2.5 Quantenkryptographie . . . . . . . . 2.6 Chiffren mit Polygramm-Substitution 2.7 Produktchiffren und Rotormaschinen .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
1 1 2 4 15 15 16 21 22 32 36 37
3 Zahlentheoretische Grundlagen
39
4 Moderne symmetrische Verfahren 4.1 Der DES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 IDEA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 Blockchiffren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51 51 60 62
5 Public-Key-Kryptosysteme und Exponentiationschiffren 5.1 Public-Key-Kryptosysteme . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Exponentiationschiffren . . . . . . . . . . . . . . . . . . . . . . . . . . . .
71 71 74
6 Hashfunktionen 6.1 Signaturen und Hashfunktionen . . 6.2 Kollisionsfreie Hashfunktionen . . . 6.3 Der Geburtstagsangriff . . . . . . . 6.4 Erweiterung von Hashfunktionen . . 6.5 Hashfunktionen aus Kryptosystemen 6.6 MD5 und SHA-1 . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
7 Diskreter Logarithmus, Schlusselverwaltung ¨ und weitere Systeme 7.1 Primitive Wurzeln und der diskrete Logarithmus . . . . . . . . . 7.2 Schl¨usselverwaltung . . . . . . . . . . . . . . . . . . . . . . . 7.3 ElGamal-Public-Key-Verfahren . . . . . . . . . . . . . . . . . . 7.4 Digital Signature Algorithm (DSA) . . . . . . . . . . . . . . . . 7.5 Zeitstempel bei Signaturverfahren . . . . . . . . . . . . . . . . 7.6 Eine weitere Hashfunktion . . . . . . . . . . . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
91 91 92 94 96 99 100
. . . . . .
105 105 111 115 124 127 129 iii
Inhaltsverzeichnis 8 Kryptographische Protokolle 8.1 Mental Poker (Kopf-Poker) . . . . . . . ¨ 8.2 Vergeßliche Ubertragung . . . . . . . . 8.3 Das Rabin-Schema . . . . . . . . . . . 8.4 Protokoll zum Altersvergleich . . . . . 8.5 Protokolle f¨ur Auktionen und Gesch¨afte 8.6 Ein Protokoll f¨ur Wahlen . . . . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
133 133 137 151 154 156 160
9 Ein Protokoll fur ¨ Kreditkartenzahlungen 167 9.1 Zertifikate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 9.2 SET-Protokolle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 10 Zero-Knowledge-Protokolle 175 10.1 Komplexit¨atstheorie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 10.2 Zero-Knowledge-Beweise . . . . . . . . . . . . . . . . . . . . . . . . . . 176 11 Knapsacksysteme 11.1 Merkle-Hellman-Knapsacks . . . . . . . . 11.2 Brechen des Merkle-Hellman-Knapsacks . 11.3 Shamir-Knapsacks f¨ur Authentizit¨at . . . . 11.4 Ein brechbarer NP-vollst¨andiger Knapsack .
. . . .
187 187 190 193 196
12 Vermischtes 12.1 Pretty Good Privacy (PGP) . . . . . . . . . . . . . . . . . . . . . . . . . . 12.2 Key-Escrow-Systeme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.3 Ein Kryptosystem mit formalen Sprachen . . . . . . . . . . . . . . . . . .
199 199 203 210
Anhang: H¨aufigkeitstabellen
215
Literaturverzeichnis
227
Index
234
iv
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
1 Grundlagen 1.1 Erste Grundbegriffe Zun¨achst sollen einige grundlegende Begriffe der Kryptologie aufgef¨uhrt und kurz erl¨autert werden. – – – – – – –
Kryptographie: Wissenschaft vom geheimen Schreiben Chiffre (cipher): eine geheime Methode des Schreibens (Methode des Verschl¨usselns) Klartext (plaintext, cleartext): unverschl¨usselter Text Chiffretext (ciphertext, cryptotext, cryptogram): verschl¨usselter Text Chiffrieren: verschl¨usseln (to encode, to encipher, to encrypt) Dechiffrieren: entschl¨usseln (to decode, to decipher, to decrypt) Schl¨ussel (key): kontrolliert die Ver- und Entschl¨usselung, er ist der Informationstr¨ager f¨ur die Verschl¨usselung des Klartextes bzw. Entschl¨usselung des Chiffretextes
Die Zusammenh¨ange werden durch das folgende Bild verdeutlicht.
chiffrieren
Klartext
Schl¨ussel
Chiffretext
dechiffrieren
Es gibt zwei prinzipielle Arten des Chiffrierens, und zwar Transposition und Substitution. Eine Transpositionschiffre stellt die Bits oder Zeichen des Textes um, eine Substitutionschiffre ersetzt Bits, Zeichen oder Bl¨ocke von Zeichen durch andere Symbole. Beispiel 1.1.1 Wir betrachten als Beispiel einer Transpositionschiffre einen Zaun“ der Tie” fe 3. Der Klartext lautet DIESISTEINEGUTEVORLESUNG. Das Chiffrierverfahren ist durch die Art des Zauns und dessen Tiefe gegeben, n¨amlich D
I I U O S I S S E N G T V R E U G E T E E L N .
Daraus ergibt sich der Chiffretext DIIUOSISSENGTVREUGETEELN.
1
1. Grundlagen Beispiel 1.1.2 Wir betrachten die C¨asar-Chiffre, die eine Substitutionschiffre ist. Jeder Buchstabe des Alphabets wird dabei um , , Pl¨atze verschoben (Verschiebechiffre). Mit (dieser Fall wurde von C¨asar benutzt) wird der Klartext aus Beispiel 1.1.1 zu GLHVLVWHLQHJXWHYRUOHVXQJ.
Die Kryptoanalyse ist die Wissenschaft des Brechens“ von Chiffren. Eine Chiffre ist ” dann zu brechen, wenn der Klartext bzw. der Schl¨ussel vom Chiffretext oder der Schl¨ussel von Klartext-Chiffretext-Paaren bestimmt werden kann. Der Kryptoanalytiker, der z.B. ein elektronischer Lauscher sein kann, kennt i. allg. das Chiffrierverfahren, etwa den Zaun aus Beispiel 1.1.1, aber nicht den Schl¨ussel dazu, d.h. die Tiefe des Zauns. Es ist nicht abwegig anzunehmen, daß der Kryptoanalytiker das Chiffrierverfahren kennt. H¨aufig bedingt ein bestimmtes Informationssystem auch ein bestimmtes Chiffrierverfahren. Es gibt drei typische Anfangssituationen, denen ein Kryptoanalytiker gegen¨ubersteht, und aus denen er seine Schl¨usse ziehen muß: (a) nur Chiffretext (nur-Chiffretext-Angriff): Der Kryptoanalytiker kann den Klartext nur aus dem abgefangenen Chiffretext bestimmen. Bei einem Chiffretext, der z.B. den Weg zu einem versteckten Schatz beschreibt, sind W¨orter wie Schatz“, vergraben“, ” ” s¨udlich“, usw. zu erwarten. Dies geht u¨ ber zum n¨achsten Fall. ” (b) bekannter Klartext: Die Kenntnis von Klartext-Chiffretext-Paaren kann zum Entschl¨usseln des ganzen Textes hilfreich sein. So gibt es etwa bei Briefen feststehende Anfangs- und Schlußformeln. Bei verschl¨usselten Programmen kann der Kryptoanalytiker eventuell Programmsymbole wie begin, end sofort erkennen. (c) gew¨ahlter Klartext: Er erh¨alt den Chiffretext zu von ihm selbst gew¨ahltem Klartext. Datenbanksysteme sind gegen¨uber diesen Versuchen anf¨allig, da ein Benutzer etwas in die Datenbank einf¨ugen und dann beobachten kann, wie sich der gespeicherte Chiffretext a¨ ndert. Public-Key-Kryptosysteme erlauben noch andere Vorgehensweisen des Kryptoanalytikers, auf die wir sp¨ater eingehen werden. Kryptoanalyse wird nat¨urlich auch benutzt, um zu zeigen, daß gewisse Chiffrierverfahren sicher“ sind. Dabei gilt eine Chiffre als unein” geschr¨ankt sicher, wenn unabh¨angig von der Menge des empfangenen Chiffretextes dieser nicht ausreichend Informationen liefert, um den Klartext eindeutig zu bestimmen, und als berechnungs-sicher, wenn sie nicht mit tats¨achlichen“ Zeit- und Rechnerm¨oglichkeiten ge” brochen werden kann. Die Kryptologie umfaßt nun genau die Kryptographie und die Kryptoanalyse.
1.2 Kryptographische Systeme Ein kryptographisches System (kurz Kryptosystem) besteht aus f¨unf Komponenten, und zwar 1. einem Klartextraum , 2. einem Chiffretextraum , 3. einem Schl¨usselraum , 4. einer Familie von Chiffriertransformationen mit und 5. einer Familie von Dechiffriertransformationen und . wird durch einen Dabei sind , , h¨ochstens abz¨ahlbar. Jede Chiffriertransformation Schl¨ussel und einen Chiffrieralgorithmus definiert, der f¨ur jede Transformation der
2
1.2. Kryptographische Systeme Familie gleich ist. Entsprechendes gilt f¨ur jede Dechiffriertransformation benes und f¨ur alle gilt
. F¨ur ein gege-
Kryptosysteme m¨ussen auf jeden Fall drei Eigenschaften erf¨ullen: (1) Chiffrier- und Dechiffriertransformationen m¨ussen f¨ur alle Schl¨ussel effizient berechnet werden k¨onnen. (2) Die Systeme m¨ussen leicht zu benutzen sein. Es muß also leicht sein, einen Schl¨ussel und zu finden. sowie die Abbildungen (3) Die Sicherheit des Systems sollte auf der Geheimhaltung der Schl¨ussel und nicht auf der Geheimhaltung der Algorithmen beruhen. Das bedeutet, daß aufgrund der Kenntnis der Methode des Chiffrierens und Dechiffrierens noch nicht der Klartext zu gewinnen ist.
F¨ur Geheimhaltung und Authentizit¨at gibt es spezielle Forderungen. Geheimhaltung verlangt, daß ein Kryptoanalytiker nicht in der Lage ist, Klartext aus abgefangenem Chiffretext zu bestimmen. Authentizit¨at erfordert, daß der Kryptoanalytiker ohne Entdeckung keinen falschen Chiffretext f¨ur einen Chiffretext einsetzen kann. Wir formulieren zun¨achst die Geheimhaltungsanforderungen: Es sollte einem Kryptoanalytiker berechnungsm¨aßig praktisch unm¨oglich sein, aus abgefangenem Chiffretext zu bestimmen, selbst dann, wenn (1) systematisch bekannt ist, und der Klartext mit (2) den Klartext aus zu bestimmen.
F¨ur die Geheimhaltung muß nur gesch¨utzt werden, sofern kann also publik gemacht werden. Weiter erhalten wir die
nicht
verr¨at.
Authentizit¨atsanforderungen: Es sollte einem Kryptoanalytiker berechnungsm¨aßig praktisch unm¨oglich sein, mit (1) systematisch aus zu bestimmen, selbst dann, wenn der Klartext bekannt ist, oder (2) einen Chiffretext zu finden, so daß ein g¨ultiger Klartext aus ist. Dies ist bei numerischen Daten denkbar.
Durch (1) wird gesichert, daß der Kryptoanalytiker keinen falschen Klartext durch einschieben kann. F¨ur die Authentizit¨at muß nur gesch¨utzt werden, wenn nicht verr¨at. kann also publik gemacht werden.
Wir haben gesehen, daß der Schl¨ussel aufgeteilt werden kann in einen Chiffrier- und einen Dechiffrierschl¨ussel. Speziell erhalten wir Ein-Schlu¨ ssel-Kryptosysteme, wenn Chiffrier- und Dechiffrierschl¨ussel gleich sind bzw. leicht auseinander bestimmt werden k¨onnen. Daher sind und auch leicht auseinander abzuleiten. Die Geheimhaltung und Authentizit¨at k¨onnen nicht voneinander getrennt werden. Damit ist dieses System gut geeignet f¨ur private Files oder Informationen, die u¨ ber ein Rechnernetz u¨ bertragen werden. Bei einem Ein-Schl¨ussel-Kryptosystem spricht man auch von einer symmetrischen Chiffre. Bei ZweiSchl¨ussel-Kryptosystemen unterscheiden sich Chiffrier- und Dechiffrierschl¨ussel derart, daß ein Schl¨ussel nicht aus dem anderen bestimmt werden kann. Eine der Transformationen
3
1. Grundlagen
oder kann ver¨offentlicht werden, ohne die zweite Transformation zu gef¨ahrden. Ein solches System ist gut geeignet zur Sicherung von Datenbanken. Bei der read-only authority“ ” besitzt der Benutzer , bei der write-only authority“ besitzt er . Bei Zwei-Schl¨ussel” Kryptosystemen wird auch der Name asymmetrische Chiffre verwendet.
1.3 Informationstheoretische Grundlagen Die Shannonsche Informationstheorie (siehe [106], [107]) behandelt zwei verwandte Probleme, n¨amlich das des gest¨orten Kanals und das der Geheimhaltung. Eine St¨orung im gest¨orten Kanal entspricht einer Chiffrierfunktion. Die Informationstheorie mißt die Menge von Informationen in einer Nachricht durch die durchschnittliche Anzahl von Bits, die notwendig sind, um alle m¨oglichen Nachrichten (einer gewissen Art) in einer optimalen Codierung darzustellen. Diese durchschnittliche Anzahl von Bits in einer optimalen Codierung wird als Entropie bezeichnet.
Definition 1.3.1 Es seien mit den Wahrscheinlichkeiten
die Nachrichten einer Nachrichtenquelle
, die
auftreten. Die Entropie der Nachrichtenquelle wird definiert als
Die Entropie kann anschaulich als mittlerer Informationsgehalt pro Nachricht aufgefaßt wird auch geschrieben als werden.
gibt die Anzahl der Bits an, die zur Darstellung von in einer Jeder der Terme also optimalen Codierung notwendig sind. In einer optimal codierten Nachricht ist die zu erwartende Anzahl von Bits. Beispiel 1.3.1 Wir wollen das Geschlecht von Personen in einer Datenbank darstellen. Es bestehen die zwei M¨oglichkeiten weiblich“ und m¨annlich“, die mit der Wahrscheinlich m¨annlich ” angenommen”werden. Dann ist keit weiblich
Daraus folgt, daß mit nur einem Bit von Information das Geschlecht dargestellt werden kann.
4
1.3. Informationstheoretische Grundlagen
, und die Buchstaben A, B, C werden mit der Wahrscheinlichkeit und
Beispiel 1.3.2 Es sei
angenommen. Dann folgt
Eine optimale Codierung c ordnet einen 1-Bit-Code
Code zu, z. B.
,
und
einen 2-Bit-
c( )=0, c( )=10 und c( )=11.
Damit wird etwa c( )=010001101011. Die durchschnittliche Anzahl von Bits pro Buchstabe f¨ur dieses Wort betr¨agt gerade . Wir sehen, daß nicht durch 1 codiert werden kann, da dann keine Decodierung m¨oglich ist. Man kann feststellen, daß ein optimaler Code kurze Codew¨orter f¨ur h¨aufig auftretende Nachrichten und lange f¨ur seltene Nachrichten verwendet. Dieses Prinzip wurde z. B. beim Morsealphabet realisiert.
, gelte . Dann folgt
ergibt sich .
Beispiel 1.3.3 F¨ur Nachrichten
Speziell f¨ur
Beispiel 1.3.4 Aus
und
folgt
Der Informationsgehalt dieser Nachricht ist gleich Null, da es keine andere Wahlm¨oglichkeit gibt.
Es l¨aßt sich zeigen, daß maximal ist f¨ur , . Die Entropie einer Nachricht mißt deren Unsicherheit und gibt die Anzahl der Bits an, die man kennen muß, um die Nachricht zu rekonstruieren, wenn sie durch einen gest¨orten Kanal oder durch Chiffrierung ver¨andert wurde. In Beispiel 1.3.1 sei dem Kryptoanalytiker bekannt, daß der Chiffretext Z$JP7K dem Klartext weiblich oder m¨annlich entspricht. Die Unsicherheit betr¨agt ein Bit. Es muß nur ein Buchstabe (z. B. der erste, also w“ oder m“) und davon nur ” ” das unterscheidende Bit bestimmt werden. Definition 1.3.2 Es sei eine Sprache mit Buchstaben. ten, die Buchstaben lang sind. Dann bezeichnet
sei die Menge aller Nachrich-
die Rate oder Dichte von f¨ur Nachrichten der L¨ange die absolute Rate oder absolute Dichte von und
die Redundanz von .
,
5
1. Grundlagen
mißt die durchschnittliche Anzahl von Bits von Informationen in jedem Buchstaben. Nimmt zu, dann nimmt die Entropie pro Buchstabe ab, da die Anzahl sinnvoller Nachrichten, relativ zur L¨ange gesehen, abnimmt. Die Sch¨atzungen f¨ur die Sprache Englisch und f¨ur große sind 1,0 bis 1,5 Bits pro Buchstaben. Die Sch¨atzung f¨ur die deutsche Sprache liegt auch in diesem Bereich. ist die maximale Anzahl von Bits von Informationen in einem Buchstaben, wenn alle Buchstabenfolgen gleichwahrscheinlich sind. Dann ist gleich der maximalen Entropie der jeweiligen Buchstaben (siehe Beispiel 1.3.3). Bei einem 26 Buch Bits pro Buchstaben. Aus der staben umfassenden Alphabet ist die absolute Rate Absch¨atzung folgt, daß die Redundanz ist; d. h., bei dieser Absch¨atzung sind Englisch und Deutsch zu 68% redundant. Wir betrachten dazu etwa den Satz
Vrlsngn snd ncht lngwlg. Die Redundanz einer Sprache ergibt sich aus deren Struktur und spiegelt sich in ihren statistischen Eigenschaften wider. Die H¨aufigkeitsverteilungen f¨ur einzelne Buchstaben, Digramme, usw. in der deutschen (englischen) Sprache sind so gegeben, daß (1) als einzelne Buchstaben E, N und I (E, T und A) h¨aufiger als andere auftreten, (2) bei Digrammen (Paaren) ER, EN und CH (TH und EN) h¨aufiger als andere erscheinen, w¨ahrend QZ nie in sinnvollen Nachrichten vorkommt, (3) bei Trigrammen EIN, ICH, DER (THE und ING) h¨aufiger als andere vorhanden sind, aber der Anteil sinnvoller Nachrichten geringer als bei Digrammen ist, und (4) bei N-Grammen der Anteil sinnvoller Nachrichten mit wachsendem N zunehmend geringer wird. Solche Informationen sind f¨ur Kryptoanalytiker a¨ ußerst n¨utzlich. Entsprechende H¨aufigkeitstabellen befinden sich im Anhang auf den Seiten 215 bis 226. Die Unsicherheit einer Nachricht (Entropie) kann durch zus¨atzliche Informationen ver . Falls alle Elemente ringert werden. Es sei die Menge von 32-Bit-Integer mit von gerade sind, kann die Entropie um ein Bit verringert werden. Das niedrigste Bit ist dann immer gleich Null.
Definition 1.3.3 Es seien richtenquellen bzw. mit
und
Nachrichten von Nach-
sei die bedingte Wahrscheinlichkeit des Auftretens der Nachricht bei einer gege die Wahrscheinlichkeit des gemeinsamen Auftretens von benen Nachricht und und . Dann heißt
¨ Aquivokation (equivocation, bedingte Entropie von Wegen
6
unter
).
ist
1.3. Informationstheoretische Grundlagen
Wenn die bekannte Information ist, dann verbleiben als Unsicherheit u¨ ber Bit Information. Dieses Wissensdefizit muß ein Kryptoanalytiker u¨ berbr¨ucken, wenn er aus einem Chiffretext den zugeh¨origen Klartext x gewinnen will.
woraus
Beispiel 1.3.5 Es sei
, und es gelte
f¨ur alle
folgt. Weiter sei
f¨ur alle
und
Falls gilt, dann gelte auch , beide mit gleicher Wahrscheinlichkeit. Entsprechendes gelte f¨ur , , . Insgesamt schreiben wir dies als
Es ergibt sich
und
Entsprechend erhalten wir die anderen bedingten Wahrscheinlichkeiten. Es folgt
Die Kenntnis von M¨oglichkeiten.
reduziert also die Unsicherheit von
auf ein Bit, d. h. auf zwei
F¨ur Nachrichten und Schl¨ussel aus den verwendeten Kryptosystemen benutzen wir folgende Vereinbarungen: kommen mit der Wahrscheinlichkeit vor. (1) Klartextnachrichten (2) Chiffretextnachrichten kommen mit der Wahrscheinlichkeit vor. gew¨ahlt. (3) Schl¨ussel werden mit der Wahrscheinlichkeit
die Wahrscheinlichkeit daf¨ur, daß eine Nachricht gesenDefinition 1.3.4 Es sei det worden ist, falls empfangen wurde. Ein Kryptosystem unterliegt perfekter Geheimhaltung (ist absolut sicher), wenn f¨ur alle
und
gilt.
7
1. Grundlagen
Das bedeutet, daß der Chiffretext dem Kryptoanalytiker keine neue Information liefert. die Wahrscheinlichkeit, daß und sind unabh¨angig voneinander. Es sei weiter empfangen wurde, falls gesendet worden ist. Dann gilt
In den meisten F¨allen existiert h¨ochstens ein Schl¨ussel mit dieser Eigenschaft. Aus der Un folgt, daß ein Kryptosystem auch perfekter Geheimhaltung unabh¨angigkeit von und terliegt, wenn
f¨ur alle und gilt. Dies bedeutet, daß die Wahrscheinlichkeit, einen speziellen Chiffretext zu empfangen, nicht vom Klartext abh¨angt. Wir stellen fest, daß eine perfekte Geheimhaltung dann m¨oglich ist, wenn zuf¨allige Schl¨ussel benutzt werden, die mindestens ebenso lang sind wie die Nachrichten, die sie verschl¨usseln. Beispiel 1.3.6 Das Bild von Seite 9 illustriert ein Kryptosystem, das perfekter Geheimhal und gilt tung unterliegt. F¨ur alle
bzw.
Wird z. B. der Chiffretext empfangen, so ist es v¨ollig unklar, welche der Nachrichten oder chiffriert worden ist. Eine perfekte Geheimhaltung verlangt, daß die Anzahl der Schl¨ussel mindestens ebenso groß ist wie die Anzahl der m¨oglichen Nachrichten. Ist dagegen die Anzahl der Schl¨ussel kleiner als die Anzahl der m¨oglichen Nachrichten, so existiert eine Nachricht , bei der es f¨ur einen gegebenen Chiffretext keinen Schl¨ussel mit gibt. Dies wird durch das folgende Bild veranschaulicht:
? Dann folgt ßen.
8
. Dadurch ist es m¨oglich, denkbare Klartexte f¨ur
auszuschlie-
1.3. Informationstheoretische Grundlagen
Schl¨ussel
2 3 4 2 3 4 1 3 4 1 2 4 1 2 3
1
KlartextNachrichten
ChiffretextNachrichten
Perfekte Geheimhaltung
9
1. Grundlagen
Schl¨ussel Nachricht 0 L Z W J WA K F G G L Z W J D S F YM S YW T M L X J W F U Z 1 K Y V I V Z J E F F K Y V I C R E X L R X V S L KW I V E T Y 2 J X U H U Y I D E E J X U H B Q DWK QWU R K J V H U D S X 3 I W T G T X H C D D I W T G A P C V J P V T Q J I U G T C RW 4 H V S F S WG B C C H V S F Z O B U I O U S P I H T F S B Q V G U R E R V F A B B G U R E Y N A T H N T R O H G S E R A P U 5 6 F T Q D Q U E Z A A F T Q D XM Z S GM S Q N G F R D Q Z O T E S P C P T D Y Z Z E S P CW L Y R F L R P M F E Q C P Y N S 7 8 D R O B O S C X Y Y D R O B V K X Q E K Q O L E D P B O XM R C Q N A N R BWX X C Q N A U J W P D J P N K D C O A NW L Q 9 10 B P M Z M Q A V WW B P M Z T I V O C I O M J C B N Z M V K P A O L Y L P Z U V V A O L Y S H U N B H N L I B AMY L U J O 11 12 Z N K X K O Y T U U Z N K X R G T MA GMK H A Z L X K T I N 13 YM J W J N X S T T YM J WQ F S L Z F L J G Z Y KW J S HM X L I V I MW R S S X L I V P E R K Y E K I F Y X J V I R G L 14 15 WK H U H L V Q R RWK H U O D Q J X D J H E XW I U H Q F K 16 V J G T G K U P Q Q V J G T N C P I WC I G DWV H T G P E J 17 U I F S F J T O P P U I F S M B O H V B H F C V U G S F O D I T H E R E I S N O O T H E R L A N G U A G E B U T F R E N C H 18 19 S G D Q D H R MN N S G D Q K Z M F T Z F D A T S E Q DM B G R F C P C G Q L MM R F C P J Y L E S Y E C Z S R D P C L A F 20 21 Q E B O B F P K L L Q E B O I X K D R X D B Y R Q C O B K Z E 22 P D A N A E O J K K P D A N HW J C QWC A X Q P B N A J Y D 23 O C Z M Z D N I J J O C Z MG V I B P V B Z W P O AM Z I X C N B Y L Y C MH I I N B Y L F U H A O U A Y V O N Z L Y HWB 24 25 MA X K X B L G H HMA X K E T G Z N T Z X U NMY K X G V A
L¨osung der Substitutionschiffre
10
1.3. Informationstheoretische Grundlagen Beispiel 1.3.7 Der Chiffretext =LZWJWAKFGGLZWJDSFYMSYWTMLXJWFUZ, der aus 31 Buchstaben besteht, wurde mit durch eine C¨asar-Chiffre erzeugt. Da die Anzahl der m¨oglichen Schl¨ussel (26) kleiner ist als die Anzahl der m¨oglichen S¨atze der L¨ange 31, gibt es keine perfekte Geheimhaltung. Die Chiffre wird durch Probieren aller 26 Schl¨ussel gebrochen, was wir mit Hilfe der Tabelle auf Seite 10 durchf¨uhren. Wir erkennen, daß die L¨osung durch den Schl¨ussel 18 erfolgt:
=THEREISNOOTHERLANGUAGEBUTFRENCH.
Da sich nur f¨ur den Schl¨ussel 18 ein sinnvoller Text ergibt, gilt
und f¨ur sowie und f¨ur
¨ Beispiel 1.3.8 Durch eine kleine Anderung wird perfekte Geheimhaltung erreicht: Jeder ist durch einen Strom Buchstabe wird um ein zuf¨alliges St¨uck verschoben. gegeben, wobei jedes der eine zuf¨allige Zahl mit ist. Ein Chiffretext kann damit jeden m¨oglichen Klartext liefern. Mit dem Schl¨usselstrom
10, 8, 22, 15, 9, 8, 8, 24, 10, 2, 3, 19, 18, 18, 11, 25, 11, 21, 8, 5, 5, 18, 6, 20, 3, 10, 6, 12, 20, 0, 19
wird der Chiffretext aus Beispiel 1.3.7 zu BRAUNSCHWEIGERSTUDENTENSINDKLUG dechiffriert. Der Schl¨usselstrom darf nicht wiederholt oder f¨ur eine andere Nachricht verwendet werden, da sonst durch Korrelation der beiden Chiffretexte eventuell die Chiffre gebrochen werden kann. Diese Schl¨usselart wird als one-time pad bezeichnet.
Definition 1.3.5 Es sei Dann wird
eine Menge von Schl¨usseln und eine Menge von Chiffretexten.
als Schl¨ussel¨aquivokation (key equivocation) von
unter der Bedingung bezeichnet.
gibt die Wahrscheinlichkeit daf¨ur an, daß bei einem empfangenen Chiffretext der Schl¨ussel zur Verschl¨usselung verwendet wurde. Die Schl¨ussel¨aquivokation gibt die erwartete Anzahl von Bits an, die zur Bestimmung eines Schl¨ussels bekannt sein m¨ussen, sofern ein Chiffretext gegeben ist. ist also ein Maß f¨ur die Unsicherheit des Schl¨ussels. Sei eine Menge von Chiffretexten der L¨ange . Mit wachsendem wird meistens kleiner. Ist , dann besteht keine Unsicherheit mehr und die Chiffre ist unter der Voraussetzung, daß ausreichende Rechnerleistung zur Verf¨ugung steht, theoretisch zu brechen. Im folgenden ben¨otigen wir einige Definitionen“. Die Eindeutigkeitsdistanz (unicity ” distance) eines Kryptosystems bezeichnet die Menge des Chiffretextes, die notwendig ist,
11
1. Grundlagen um den Schl¨ussel eindeutig bestimmen zu k¨onnen. Wenn die Anzahl der empfangenen Chiffretextzeichen ist, so ist die Eindeutigkeitsdistanz durch das kleinste gegeben, f¨ur das ”nahe 0“ ist. sich auch f¨ur große nicht Eine Chiffre gilt als uneingeschr¨ankt sicher, wenn 0 n¨ahert. Die meisten Chiffren sind zu komplex, um die Wahrscheinlichkeiten zu berechnen, mit deren Hilfe dann die Eindeutigkeitsdistanz bestimmt werden k¨onnte. Shannon [107] zeigte jedoch, daß es m¨oglich ist, die Eindeutigkeitsdistanz f¨ur gewisse Kryptosysteme unter Benutzung eines random-cipher“-Modells abzusch¨atzen. Wir folgen den etwas anderen ” Betrachtungen von Hellman [44]. Er nimmt an, daß jeder Klartext und jeder Chiffretext aus einem endlichen Alphabet von Symbolen stammt. Dann existieren Nachrichten der L¨ange , die in zwei Teilmengen aufgeteilt werden, und zwar in die (1) Menge von sinnvollen Nachrichten mit der Wahrscheinlichkeit und in die (2) Menge von sinnlosen Nachrichten mit der Wahrscheinlichkeit 0. die absolute Rate und die Rate der Sprache. Außerdem Dabei ist werde ange nommen, daß gleichwahrscheinliche Schl¨ussel existieren, wobei die Schl¨usselEntropie (erwartete Anzahl von Bits im Schl¨ussel bei einer optimalen Codierung) ist. Wir kommen nun zum Begriff der zuf¨alligen Chiffre. Dabei sei f¨ur jeden Schl¨ussel eine unabh¨angige Zufallsvariable, die und jeden Chiffretext die Dechiffrierung gleichm¨aßig u¨ ber alle Nachrichten (sinnvoll oder sinnlos) verteilt ist. Intuitiv bedeutet das, daß f¨ur gegebenes und die Dechiffrierung mit derselben Wahrscheinlichkeit den einen Klartext wie jeden anderen Klartext produziert. Tats¨achlich ist sie aber nicht ganz unabh¨angig, da ein Schl¨ussel eindeutig eine gegebene Nachricht chiffrieren muß, d. h., folgen. aus muß . Gegeben sei ein Schl¨ussel und Klartext mit zugeh¨origem Chiffretext und einen Schl¨ussel Gibt es zu diesem Chiffretext einen Klartext mit oder , so liegt eine falsche Schl¨usselDechiffrierung (spurious key decipherment) vor. Das Bild von Seite 14 zeigt zwei falsche Schl¨ussel-Dechiffrierungen. Eine falsche Schl¨usseldechiffrierung resultiert aus dem Chiffretext , eine andere aus . Ein Kryptoanalytiker, der erh¨alt, kennt nicht den zugeh¨ori mit Schl¨ussel 2 oder mit Schl¨ ussel 1?). Bei kennt er nicht gen Klartext (war es den Schl¨ussel (war es mit Schl¨ussel 1 oder mit Schl¨ ussel 2?). F¨ur jede richtige L¨osung (Schl¨ussel) eines speziellen Chiffretextes gibt es weitere Schl¨ussel. Jeder dieser Schl¨ussel hat dieselbe Wahrscheinlichkeit , eine falsche Schl¨ussel-Dechiffrierung von zu liefern. Eine falsche Schl¨ussel-Dechiffrierung liegt aber nur dann vor, wenn sich dabei ein sinnvoller Klartext ergibt. Nach unserem Modell der zuf¨alligen Chiffre ist diese Wahrscheinlichkeit
Da mit wachsendem schnell gegen 0 strebt und gilt, folgt f¨ur die erwartete Anzahl der Fehlentscheidungen, also der falschen Schl¨ussel-Dechiffrierungen,
Aufgrund der starken Abnahme von mit wachsendem wird durch der Punkt festgelegt, ab dem die Anzahl der falschen Schl¨ussel-Dechiffrierungen klein genug ist, um gilt die Chiffre zu brechen. F¨ur
12
1.3. Informationstheoretische Grundlagen
Damit ist
der approximative Wert f¨ur die Eindeutigkeitsdistanz. ist die Anzahl der Chiffretextzeichen, die wenigstens erforderlich sind, um die Chiffre zu brechen. Ein System wird also unsicher, falls die Anzahl der Chiffretextzeichen diesen Wert u¨ berschreitet. Falls bei einem gegebenen die Anzahl der m¨oglichen Schl¨ussel mindestens so groß wie die Anzahl der m¨oglichen Nachrichten ist, also
gilt, dann folgt
Das bedeutet, daß bei nur einmaliger Anwendung der Chiffre diese theoretisch nicht gebrochen werden kann. Dies ist das Prinzip, das hinter dem one-time pad“ steckt (siehe ” Beispiel 1.3.8). Beispiel 1.3.9 Im DES (Data Encryption Standard, siehe Abschnitt 4.1) werden 64-BitBl¨ocke (8 Zeichen) durch einen 56-Bit Schl¨ussel chiffriert. Der DES entspricht einer ver und n¨unftigen Approximation des Modells der zuf¨alligen Chiffre mit
(f¨ur Englisch). Daraus folgt Zeichen.
Beispiel 1.3.10 Wir betrachten die C¨asar-Chiffre mit ,
und damit
. Dann folgt
Zeichen.
Wir wissen jedoch, daß keine C¨asar-Chiffre mit nur ein oder zwei Zeichen gel¨ost werden kann. Der Grund daf¨ur ist hier die schlechte Approximation des Modells der zuf¨alligen Chiffre. Die meisten Chiffretexte k¨onnen nicht durch einen sinnvollen Klartext erzeugt werden. Zum Beispiel kann QQQQ nur durch AAAA, BBBB, CCCC, . . . erzeugt werden. Das ist gleichbedeutend damit, daß die Dechiffrierung nicht gleichm¨aßig u¨ ber alle Nachrichten verteilt ist.
ist nur eine Absch¨atzung f¨ur die Anzahl der Chiffretextzeichen, die ben¨otigt wer den, um eine Chiffre zu brechen. Allgemein haben aber Chiffren eine Eindeutigkeitsdistanz, die wenigstens ist. Trotzdem ist dieser Wert eine gute Approximation. F¨ur wird selbst eine C¨asar-Chiffre unbrechbar. Dies ist u. a. der Fall, wenn Zahlen chiffriert werden, bei denen jede Ziffer z¨ahlt. Dann ist keine Redundanz vorhanden.
13
1. Grundlagen
1
2
2
1
sinnvolle Nachrichten
1
2
1
2
ChiffretextNachrichten
sinnlose Nachrichten
Zuf¨allige Chiffre
14
2 Klassische kryptographische Verfahren 2.1 Transpositionschiffren Transpositionschiffren ordnen die Buchstaben oder Bits des Klartextes nach irgendeinem Schema oder einer geometrischen Figur um. H¨aufig ist dieses Schema eine zweidimensionale Matrix. Bei einer Spaltentransposition wird der Klartext zeilenweise in die Matrix eingeschrieben. Der Chiffretext ergibt sich aus den Spalten, die in irgendeiner Weise angeordnet sind. Beispiel 2.1.1 Der Klartext VORLESUNGEN werde in eine getragen: V O R L E S U N G E N
Matrix zeilenweise ein-
Die Spalten in der Ordnung 2-4-1-3 ergeben den Chiffretext OSELNVEGRUN.
Viele Transpositionschiffren permutieren die Zeichen des Klartextes mit einer festen . Periode . Es sei sei eine Permutation. Der Schl¨ussel einer Transpositionschiffre ist dann durch ein Paar gegeben. Aus dem Klartext
ergibt sich der Chiffretext
Die Dechiffrierung erfolgt durch die inverse Permutation. Beispiel 2.1.2 Es sei
gegeben. Der Klartext
und
durch
1 2
2 3 4 4 1 3
VORLESUNGEN liefert den Chiffretext
OLVRSNEUEGN.
Beispiel 2.1.2 ergibt sich auch a¨ hnlich wie Beispiel 2.1.1. Der Klartext wird zeilenweise -Matrix eingetragen: in eine
V E G
O R S U E N
L N
15
2. Klassische kryptographische Verfahren Deren Spalten werden gem¨aß
permutiert, also in der Reihenfolge 2-4-1-3:
O S E
L V N E G
R U N
aus Beispiel 2.1.2. F¨ur dieses Zeilenweises Auslesen ergibt den Chiffretext Vorgehen muß eine Matrix aufgestellt werden. Das Beispiel 2.1.2 kann dagegen direkt berechnet werden und ist daher effizienter. ¨ Durch Uberpr¨ ufung der relativen H¨aufigkeiten der Buchstaben kann festgestellt werden, ob es sich bei der Chiffre um eine Transpositionschiffre handelt. Der Wert muß dem erwarteten Wert der jeweiligen Buchstaben im Klartext entsprechen. Diese Chiffren werden h¨aufig durch anagramming“ gebrochen (siehe [110], [32]). Dies ist ein Prozeß, der die ” Buchstaben wieder an die richtige Stelle bringt. Er wird durch den Einsatz von Tafeln f¨ur die H¨aufigkeit von Di- und Trigrammen erleichtert (Tafeln auf den Seiten 215 bis 226). Wir wollen nun die erwartete Anzahl von Buchstaben bestimmen, die zum Brechen einer Permutationschiffre der Periode n¨otig sind. Es sind Schl¨ussel vorhanden. Aus der Annahme, daß alle Schl¨ussel gleichwahrscheinlich sind, folgt und damit
ergibt sich die Eindeutigkeitsdistanz Mit der Stirlingschen Approximation f¨ur
, und damit die Eindeutig
Beispiel 2.1.3 Es sei . Dann folgt keitsdistanz
2.2 Chiffren mit einfacher Substitution Es gibt vier Typen von Substitutionschiffren: (1) Einfache Substitution: Jeder Buchstabe des Klartextes wird durch einen Buchstaben des Chiffretextes ersetzt. Dabei wird eine bijektive Abbildung zwischen Klartext- und Chiffretextalphabet benutzt. (2) Homophone Substitution: Jeder Buchstabe des Klartextes kann durch verschiedene Buchstaben des Chiffretextes ersetzt werden. (3) Polyalphabetische Substitution: Die Buchstaben des Klartextes werden in irgendeiner Reihenfolge (z. B. periodisch) durch verschiedene Abbildungen chiffriert. (4) Polygramm-Substitution: Ganze Bl¨ocke von Buchstaben des Klartextes werden gemeinsam ersetzt.
Definition 2.2.1 Es seien und Alphabete gleicher M¨achtigkeit (Klartext- bzw. Chiffretextalphabet). Eine Chiffre mit einfacher Substitution wird durch eine bijektive Abbildung gegeben. Dabei ist der Schl¨ussel der Chiffre.
16
2.2. Chiffren mit einfacher Substitution Die Chiffrierung erfolgt durch den durch demselben Symbol als
bestimmten Homomorphismus, den wir mit
schreiben. Beispiel 2.2.1 Es sei
gegeben durch:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z KLUGES T DNABC F H I J MOPQRVWXYZ
Der Klartext
=VORLESUNGEN wird zum Chiffretext
=VIOCEPRHTEH.
Das Beispiel benutzt das Schl¨usselwort KLUGESTUDENTEN, das zun¨achst im Chiffretextalphabet aufgelistet wird, wobei Duplikate (U, E, T, N) nat¨urlich nur einmal eingetragen werden. Die nicht im Schl¨ussel vorkommenden Buchstaben werden dahinter aufgelistet.
Beispiel 2.2.2 Wir betrachten Verschiebechiffren. Gegeben sei und . Dabei ist sowohl Buchstabe als auch Position in . gibt die Gr¨oße der Verschiebung an. Die Position der Buchstaben liefert die folgende Tabelle:
0 A
1 B
25 Z
Damit entspricht das Beispiel der C¨asar-Chiffre aus Beispiel 1.1.2.
Beispiel 2.2.3 Gegeben sei mit ggt bilden eine vollst¨andige Menge von Resten. Wir w¨ahlen
. Die Buchstaben unter
Beispiel 2.2.4
und
ABC DEF GHI JKL MNO PQR STU VWX YZ AJS BKT CLU DMV ENW FOX GPY HQZ IR .
Falls ggt gilt, werden verschiedene Buchstaben von ben aus chiffriert. F¨ur und ergibt sich
und erhalten
durch denselben Buchsta-
(a) Chiffren durch affine Transformation sind durch
mit ggt
definiert. Dies entspricht einer Kombination von Beispiel 2.2.2 mit Beispiel 2.2.3. 17
2. Klassische kryptographische Verfahren (b) Chiffren durch polynomiale Transformation vom Grad sind durch
, erf¨ullen m¨ussen, so daß hierdurch definiert. Eine Bedingung, die die ,
¨ tats¨achlich eine Bijektion gegeben wird, ist allgemein nicht bekannt. Durch Uberpr¨ufung stellt man jedoch fest, daß etwa
eine Bijektion ist. Ebenso sind zum Beispiel und Bijektionen. Man kann zeigen (siehe Satz 3.10), daß f¨ur alle f¨ur alle mit ggt
durch Primzahlen und Zahlen f¨ur alle eine Bijektion gegeben wird.
f¨ur alle
Beispiel 2.2.5 Einige Substitutionschiffren benutzen un¨ubliche Chiffretext-Alphabete. Ein Beispiel ist die Friedhofchiffre, die sich auf einem Grabstein des Trinity-Friedhofes in New York befindet. Der Grabstein wurde bereits 1794 aufgestellt, die L¨osung jedoch erst 1896 im New York Herald ver¨offentlicht:
T
U
V
W
X
Y
Z
Chiffretext A
B
C
K
D
E
F
N
G
H
I-J
Q
L
O
R
M
P
S
Friedhofchiffre
Es wurden zum Teil auch musikalische Symbole als Chiffre verwendet, zum Teil ernsthaft, aber auch als Spaß. Bach hat z. B. seinen Namen in der Kunst der Fuge kodiert. Wir wollen nun die Anzahl der Buchstaben bestimmen, die n¨otig sind, eine allgemeine Substitutionschiffre zu brechen. Es sei ein Alphabet der Gr¨oße gegeben. Folglich sind Schl¨ussel vorhanden. Falls alle Schl¨ussel gleichwahrscheinlich sind, gilt
18
2.2. Chiffren mit einfacher Substitution F¨ur Englisch ist die Eindeutigkeitsdistanz
Dies erk¨art die Schwierigkeit, die Friedhofchiffre zu brechen. Chiffren mit polynomialer Transformation haben kleinere Eindeutigkeitsdistanzen. Bei Verschiebechiffren ist (siehe Beispiel 1.3.10), obwohl zum Brechen der Chiffre mehr Chiffretext erforderlich ist. Chiffren mit einfacher Substitution sind unter Benutzung der H¨aufigkeitsverteilung der einzelnen Buchstaben i. allg. leicht mit einem nur-Chiffretext-Angriff zu brechen. Die zweite Spalte der ersten Tabelle von Seite 20 zeigt die erwartete H¨aufigkeitsverteilung der einzelnen Buchstaben der englischen Sprache. Die dritte Spalte enth¨alt die H¨aufigkeitsverteilung f¨ur einen speziellen englischen Text mit 67375 Buchstaben, die auch durch die Anzahl der Sterne angedeutet wird. Aus dem aktuellen Text sind E und T sicher herauszufinden. A, O, N, I, R und S weisen dagegen gewisse Abweichungen auf. Mit Di- und Trigrammverteilungen kommt man dann weiter. Computerfiles dagegen haben sicher andere H¨aufigkeitsverteilungen. Das Leerzeichen ist darin am h¨aufigsten vertreten! Verschiebechiffren sind leichter zu brechen (siehe Beispiel 1.3.7). Die zweite Tabelle von Seite 20 gibt die erwartete H¨aufigkeitsverteilung der einzelnen Buchstaben der deutschen Sprache an. Die verschiedenen Tabellen befinden sich auch im Anhang (siehe Seite 215 bis Seite 226). Man beachte, daß je nach Art der benutzten Texte in der Literatur sehr unterschiedliche H¨aufigkeitstabellen erscheinen.
Beispiel 2.2.6 Es sei eine Chiffre durch eine affine Transformation definiert. Wir wollen ein Verfahren zum Brechen solcher Chiffren darstellen. Gegeben seien vermutete Zuord . Ggf. ist das nungen von Klartext- und Chiffretextbuchstaben Gleichungssystem
zur Bestimmung von
und
l¨osbar. Speziell betrachen wir die Zuordnung Klartext E (4) J (9) N (13)
Daraus folgt das Gleichungssystem
Chiffretext K (10) T (19) U (20) .
Gleichung (1) von (2) subtrahiert ergibt
. Da ggt gilt, ist eindeutig bestimmt. Andernfalls w¨aren
und daraus folgt mehr Gleichungen zur Berechnung von
n¨otig. Einsetzen in (1) liefert
19
H¨aufigkeitsverteilung der Buchstaben f¨ur Englisch
Zeichen erwartet in % A 6,43 B 1,85 C 3,26 D 5,12 E 17,74 F 1,56 G 2,69 H 5,22 I 7,60 J 0,23 K 1,40 L 3,49 M 2,75 N 10,01 O 2,39 P 0,64 Q 0,01 R 6,98 S 6,88 T 5,94 U 4,27 V 0,64 W 1,73 X 0,02 Y 0,04 Z 1,10 Jeder repr¨asentiert 0,5% Anzahl der Buchstaben = 224826 H¨aufigkeitsverteilung der Buchstaben f¨ur Deutsch
2. Klassische kryptographische Verfahren
20 Zeichen erwartet aktuell % A 8,17 7,5 B 1,49 1,4 C 2,78 4,1 D 4,25 3,2 E 12,70 12,7 F 2,23 2,3 G 2,02 1,9 H 6,09 3,8 I 6,97 7,7 J 0,15 0,2 K 0,77 0,4 L 4,03 3,8 M 2,41 3,0 N 6,75 7,0 O 7,51 7,5 P 1,93 3,0 Q 0,08 0,2 R 5,99 6,7 S 6,33 7,3 T 9,06 9,2 U 2,76 2,8 V 0,98 1,0 W 2,36 1,4 X 0,15 0,3 Y 1,97 1,6 Z 0,07 0,1 Jeder repr¨asentiert 0,5% des aktuellen Textes Anzahl der Buchstaben des aktuellen Textes= 67375
2.3. Chiffren mit homophoner Substitution
und damit . Jetzt muß noch u¨ berpr¨uft werden, ob (3) erf¨ullt ist. Das ist hier nicht der Fall. Falls (3) nicht erf¨ullt ist, ist eine der drei Korrespondenzen falsch oder die Chiffre ist nicht durch eine affine Transformation gegeben.
Allgemeine Verfahren zum L¨osen von Substitutionschiffren finden sich in [77].
2.3 Chiffren mit homophoner Substitution Definition 2.3.1 Es seien durch eine Abbildung sowie die Beziehung Ein Klartext f¨ur .
und
Alphabete. Eine Chiffre mit homophoner Substitution ist f¨ur die f¨ur alle , gegeben, gilt.
wird also chiffriert als
mit zuf¨alligem
Beispiel 2.3.1 Die Buchstaben werden chiffriert als Zahlen zwischen 0 und 99. Die Anzahl der Zahlen, die einem Buchstaben zugeordnet werden, ist proportional zur relativen H¨aufigkeit des Auftretens dieses Buchstabens (gem¨aß der deutschen Sprache, siehe Tabelle auf Seite 20). Wir w¨ahlen: Buchstaben Homophone D E G K L N S T U
15 02 01 44 04 08 10 03 07
22 05 86
43 14 88
28 21 18 11 25
82 42 36 12 60
87 17
98 19
24
26
34
46
50
45 39 23 70
53 61 30
66 83 85
72 93
77
92
95
57
63
68
75
80
81
91
99
Als Beispiel einer Chiffrierung erhalten wir:
=K L U = 44 82 25
G E S T 01 57 61 23
U D E N 70 43 17 92
T E N 85 34 21
Man erkennt, daß die H¨aufigkeitsverteilung von Einzelbuchstaben hierbei nicht n¨utzt, um die Chiffre zu brechen. Unter Umst¨anden ist dies jedoch durch Digrammverteilungen m¨oglich. Falls dagegen jedem Buchstaben des Klartextes ein jeweils anderes Chiffresymbol zugeordnet wird, kann eine Chiffre unbrechbar sein. Unter der Voraussetzung, daß gen¨ugend viel Chiffretext empfangen worden ist und zus¨atzlich beliebig viel Zeit zur Verf¨ugung steht, sind fast alle Chiffren brechbar. Der Grund daf¨ur ist, daß es in der Regel nur einen Schl¨ussel gibt, der in einen sinnvollen Text dechiffriert. Daraus ergibt sich, daß eine Chiffre so zu konstruieren ist, daß ein Chiffretext unter verschiedenen Schl¨usseln zu verschiedenen sinnvollen Nachrichten dechiffriert werden kann (siehe [42]). Wir gehen nun von einem Klartextalphabet
aus und konstruieren eine Matrix K 21
2. Klassische kryptographische Verfahren
Trage alle Zahlen
.. . .. .
Zu jedem n¨amlich
zuf¨allig in das Schema ein
von 1 bis
, gibt es jetzt zwei S¨atze von Homophonen (zwei Schl¨ussel), als Menge der Elemente der -ten Zeile und als Menge der Elemente der -ten Spalte.
Gegeben seien der Klartext
und eine Dummy-Nachricht ebenfalls einen sinnvollen Klartext darstellt. Dann setze man
, die
Es gilt . wird mit dem Schl¨ussel zu und mit zu dechiffriert. Nur der legale Empf¨anger weiß, daß der richtige Schl¨ussel ist. Beispiel 2.3.2 Es sei . Im folgenden wird eine Matrix f¨ur das 5-elementige
mit
Klartextalphabet E, I, L, M, S beschrieben: E E 10 I 12 L 19 M 03 S 17
I 22 01 06 16 09
L 18 25 23 08 21
M 02 05 13 24 14
S 11 20 07 15 04
Die Nachricht SMILE wird durch die Dummy-Nachricht LIMES wie folgt chiffriert:
= S M I L = L I M E = 21 16 05 19
E S 11
2.4 Chiffren mit polyalphabetischer Substitution Chiffren mit polyalphabetischer Substitution verbergen die Verteilung der Buchstaben, indem sie verschiedene Substitutionen benutzen. Leon Battista Alberti beschrieb bereits 1568 eine Chiffrierscheibe (siehe Abbildung auf Seite 23). Sie besitzt 24 m¨ogliche Substitutionen von Klartextbuchstaben des a¨ ußeren Ringes in Chiffretextbuchstaben des inneren Ringes. Die Chiffrierung ist dabei abh¨angig von der Position des beweglichen inneren Ringes. Die meisten Chiffren mit polyalphabetischer Substitution sind Chiffren mit periodischer Substitution.
Definition 2.4.1 Es sei ein Klartextalphabet und seien Chiffretextalphabete. Eine Chiffre mit periodischer Substitution ist durch bijektive Abbildungen , , gegeben. Ein Klartext wird chiffriert durch
22
2.4. Polyalphabetische Substitution
F
G
I
E
D
O
L
A
I
Z
Y
L
C
M
M
2
F
D
Q
3
S
H
P
4
X
R
G
O
A
B
E
N
B
V
P R
K
T C
S
Q
&
N
1 Z
T V
X
Chiffrierscheibe
F¨ur Substitution.
ist die Chiffre monoalphabetisch und ist somit eine Chiffre mit einfacher
Beispiel 2.4.1 Die Vigen`ere-Chiffre beruht auf verschobenen Alphabeten. Eine Folge von ist der Schl¨ussel, wobei , Buchstaben , die Gr¨oße der Verschiebung im -ten Alphabet der Gr¨oße angibt, d. h.
Bei gleichem Klartext- und Chiffretextalphabet erh¨alt man z. B.
VORL BAND WOEO
ESUN GEN BAND BAN FSHQ HEA.
, der In jeder Gruppe von jeweils vier Buchstaben wird der erste Buchstabe um und der vierte um Positionen verschoben. zweite um 0, der dritte um Die Dechiffrierung erfolgt mit Hilfe des Vigen`ere-Tableaus (siehe Seite 25), das 1868 von Lewis Caroll publiziert wurde (Mathematikprofessor in Oxford und Autor von Alice im ” Wunderland“). F¨ur die Chiffrierung des Klartextbuchstabens mit dem Schl¨usselbuchstaben findet man den Chiffretextbuchstaben in Spalte der Zeile . Die Dechiffrierung des Chiffretextbuchstabens mit dem Schl¨usselbuchstaben liefert den Klartextbuchstaben der Spalte , die in Zeile enth¨alt.
23
2. Klassische kryptographische Verfahren Beispiel 2.4.2 Wir betrachten die Beaufort-Chiffre. Die Chiffrierung erfolgt durch
die Dechiffrierung durch
l¨aßt sich auch als
schreiben. Das bedeutet, daß die Beaufort-Chiffre die Reihenfolge der Buchstaben umdreht (A Z, B Y, . . . ) und sie dann um Positionen nach rechts verschiebt. Wir betrachten speziell , also
Dies wird auch durch die Tabelle
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z D C B A Z Y X W V U T S R Q P O N M L K J I H G F E
ausgedr¨uckt. Um eine Beaufort-Chiffre zu chiffrieren bzw. zu dechiffrieren, kann das Vigen`ere-Tableau benutzt werden. F¨ur die Chiffrierung des Klartextbuchstabens mit dem Schl¨usselbuchstaben ist der Chiffretextbuchstabe durch die Zeile gegeben, die den Schl¨usselbuchstaben in der Spalte enth¨alt. Dies ergibt sich aus der Gleichung bei der Vigen`ere-Chiffre , wenn man sie mit vergleicht. F¨ur die Dechiffrierung des Chiffrebuchstabens mit dem Schl¨usselbuchstaben ist der Klartext durch die Spalte gegeben, die den Schl¨usselbuchstaben in der Zeile enth¨alt.
Beispiel 2.4.3 Wir betrachten die Variante der Beaufort-Chiffre. Sie ist durch
gegeben. Wegen
ist die Variante der BeaufortChiffre a¨ quivalent zu einer Vigen`ere-Chiffre mit dem Schl¨ussel . Sie ist damit das Inverse der Vigen`ere-Chiffre. Die beiden Chiffren k¨onnen paarweise zum Chiffrieren und Dechiffrieren benutzt werden.
Wir wollen nun die Eindeutigkeitsdistanz f¨ur Chiffren mit periodischer Substitution bestimmen. Es sei die Anzahl der m¨oglichen Schl¨ussel f¨ur jede einfache Substitution und damit die Anzahl der m¨oglichen Schl¨ussel bei benutzten Substitutionen. Daraus ergibt sich
Im Vergleich zu einer individuellen Substitutionschiffre werden hier also -mal so viele Buchstaben zum Brechen ben¨otigt. F¨ur Vigen`ere-Chiffren mit der Periode und folgt
24
2.4. Polyalphabetische Substitution
A B C D E F G H I J K L Schl¨ussel M N O P Q R S T U V W X Y Z
A A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
B B C D E F G H I J K L M N O P Q R S T U V W X Y Z A
C C D E F G H I J K L M N O P Q R S T U V W X Y Z A B
D D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
E E F G H I J K L M N O P Q R S T U V W X Y Z A B C D
F F G H I J K L M N O P Q R S T U V W X Y Z A B C D E
G G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
H H I J K L M N O P Q R S T U V W X Y Z A B C D E F G
I I J K L M N O P Q R S T U V W X Y Z A B C D E F G H
J J K L M N O P Q R S T U V W X Y Z A B C D E F G H I
K K L M N O P Q R S T U V W X Y Z A B C D E F G H I J
L L M N O P Q R S T U V W X Y Z A B C D E F G H I J K
Klartext M N M N N O O P P Q Q R R S S T T U U V V W W X X Y Y Z Z A A B B C C D D E E F F G G H H I I J J K K L L M
O O P Q R S T U V W X Y Z A B C D E F G H I J K L M N
P P Q R S T U V W X Y Z A B C D E F G H I J K L M N O
Q Q R S T U V W X Y Z A B C D E F G H I J K L M N O P
R R S T U V W X Y Z A B C D E F G H I J K L M N O P Q
S S T U V W X Y Z A B C D E F G H I J K L M N O P Q R
T T U V W X Y Z A B C D E F G H I J K L M N O P Q R S
U U V W X Y Z A B C D E F G H I J K L M N O P Q R S T
V V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
W W X Y Z A B C D E F G H I J K L M N O P Q R S T U V
X X Y Z A B C D E F G H I J K L M N O P Q R S T U V W
Y Y Z A B C D E F G H I J K L M N O P Q R S T U V W X
Z Z A B C D E F G H I J K L M N O P Q R S T U V W X Y
Vigen`ere-Tableau
Zeichen Prozent % A 4,0 B 0,9 C 6,1 D 2,0 E 4,9 F 3,5 G 4,0 H 3,2 I 3,5 J 4,6 K 5,2 L 5,8 M 3,2 N 4,6 O 4,0 P 2,0 Q 3,8 R 8,7 S 4,3 T 2,0 U 3,5 V 4,0 W 1,7 X 0,6 Y 6,1 Z 3,8 Anzahl Zeichen = 346 Koinzidenzindex = 0,0434
H¨aufigkeitsverteilung der Buchstaben aus Beispiel 2.4.4
25
2. Klassische kryptographische Verfahren Um Chiffren mit periodischer Substitution zu brechen, ist es n¨otig, zuerst die Periode zu ermitteln. Danach kann mit Hilfe der u¨ blichen H¨aufigkeitsverteilungen der Buchstaben die L¨osung bestimmt werden. Dazu sind zwei Mittel hilfreich, und zwar der Koinzidenzindex und die Methode von Kasiski. Wir gehen zun¨achst auf den Koinzidenzindex ein, der von Friedman [30] eingef¨uhrt wurde. Der Koinzidenzindex mißt die Variation der H¨aufigkeiten der Buchstaben im Chiffretext. Mit wachsender Periode wird der Koinzidenzindex kleiner. Bevor wir ihn genauer definie , welches die ren, geben wir zun¨achst, Sinkov [110] folgend, das Maß der Rauheit Varianz der H¨aufigkeiten der einzelnen Buchstaben relativ zu einer gleichm¨aßigen Verteilung mißt, durch
an. Dabei ist die Wahrscheinlichkeit, daß ein beliebig gew¨ahlter Buchstabe aus einem zuf¨alligen Chiffretext gleich dem -ten Buchstaben , , des Chiffretextal phabetes ist. Es gilt also . F¨ur das u¨ bliche Alphabet erhalten wir
W¨are , so k¨amen alle aus der Tabelle f¨ur die relativen H¨aufigkeiten auf Seite 20 vor, ggf. in einer anderen Reihenfolge. Da die Periode unbekannt ist, sind jedoch auch die kann nicht berechnet werden. Aber unter Benutzung der H¨aufigkeitsunbekannt und mit Hilfe von verteilung der Buchstaben im Chiffretext kann
abgesch¨atzt werden. Aus der Summendarstellung ergibt sich, daß dies die Wahrscheinlichkeit ist, daß zwei beliebig gew¨ahlte Buchstaben aus einem beliebigen Chiffretext gleich sind. Es sei ein Chiffretext mit der L¨ange gegeben. Dann ist
die Anzahl der Buchstabenpaare, die aus gew¨ahlt werden k¨onnen. Weiterhin sei H¨aufigkeit des -ten Buchstabens im Chiffretext, so daß
26
die
2.4. Polyalphabetische Substitution gilt. Dann folgt, daß
die Anzahl der Paare ist, bei denen beide Buchstaben genau dem -ten Chiffretextbuchstaben gleichen. Der Koinzidenzindex
. Damit ist ¨ gleich sind. Nach der obigen Uberlegung ist dies eine Approximation f¨ur
auch eine Sch¨atzung f¨ur . Der Koinzidenzindex ist aber im Gegensatz zum Maß der Rauheit aus dem Schl¨usseltext zu berechnen. den Wert 0, da alle Buchstaben gleichF¨ur hat das Maß der Rauheit wahrscheinlich vorkommen (alle ). Es steigt bis auf 0,03887 (bzw. 0,02706) an bei und der deutschen (bzw. englischen) Sprache ( siehe Tabelle auf Seite 20, f¨ur Deutsch bzw. f¨ur Englisch). Entsprechend nimmt der Koinzidenzindex die Werte 0,03846 f¨ur bzw. 0,07733 (deutsch) oder an. F¨ur Chiffren mit der Periode kann der Erwartungswert 0,06552 (englisch) f¨ur gibt also die relative H¨aufigkeit daf¨ur an, daß zwei zuf¨allig gew¨ahlte Buchstaben aus
des Koinzidenzindex durch
approximiert werden [46] (f¨ur Deutsch, f¨ur Englisch muß 0,07733 durch 0,06552 ersetzt werden). Nachfolgend sind einige Werte f¨ur den Erwartungswert ( ) angegeben:
1 2 3 4 5 6 7 8 9 10
(deutsch) 0,07733 0,05770 0,05115 0,04788 0,04592 0,04461 0,04368 0,04297 0,04243 0,04199 0,03846
(englisch) 0,06552 0,05185 0,04730 0,04502 0,04365 0,04274 0,04209 0,04160 0,04122 0,04092 0,03846
Die Sch¨atzung der Periode einer gegebenen Chiffre erfolgt nun durch (1) Messung der H¨aufigkeiten der Buchstaben des Chiffretextes, (2) Berechnung des Koinzidenzindex und danach (3) Vergleich mit dem oben ermittelten Erwartungswert des Koinzidenzindex. Da der Koinzidenzindex nur eine statistische Gr¨oße ist, ergibt sich nicht notwendigerweise die exakte Periode. Wenn außerdem eine einfache Substitution innerhalb der Periode ¨ mehrfach auftritt, sind die obigen Uberlegungen nicht mehr richtig. Im allgemeinen wird
27
2. Klassische kryptographische Verfahren dann der Koinzidenzindex gr¨oßer ausfallen als es der Periode entspricht. Die Sch¨atzung der Periode wird in diesem Fall also zu klein sein. Der Koinzidenzindex liefert jedoch zumindestens einen Hinweis auf die Gr¨oße der Periode. Nun betrachten wir die Kasiski-Methode, die 1863 von Friedrich W. Kasiski [52], einem preußischen Offizier, eingef¨uhrt wurde, jedoch auch schon einige Jahre zuvor, ohne weiter Beachtung zu finden, von Charles Babbage vermutlich 1854 entdeckt worden war. Zur Bestimmung der exakten Periode werden alle Wiederholungen des Chiffretextes analysiert. Es sei z. B. ein Text mit der Vigen`ere-Chiffre und dem Schl¨ussel MEPH chiffriert.
I M U
C E G
H P W
B H I
I M U
N E R
D P S
E H L
R M D
G E K
E P T
I H P
S M E
T E X
D P S
E H L
R M D
S E W
T P I
... ... ...
Dieser Chiffretext enth¨alt zwei Wiederholungen der Zeichenfolge SLD mit einem Abstand von acht Buchstaben. Wiederholungen kommen im Chiffretext vor, wenn das Klartextmuster sich in einem Abstand wiederholt, der ein Vielfaches der Schl¨ussell¨ange ist. Zuf¨allige Wiederholungen von mehr als zwei Chiffresymbolen sind unwahrscheinlich. Bei Chiffretextwiederholungen mit den Intervall¨angen , , ist die Periode wahrscheinlich , und die Zahl, die die meisten teilt. Im obigen Beispiel betr¨agt die Intervall¨ange daraus ergibt sich eine mutmaßliche Periode von 1, 4, oder 8 (hier 4). Zur Best¨atigung der so bestimmten Periode ist der oben beschriebene Koinzidenzindex n¨utzlich. Es sei . . . der Chiffretext. Man berechnet f¨ur jeden der Texte
den Koinzidenzindex. Wenn jede Folge mit demselben Schl¨ussel chiffriert worden ist, haben alle einen Koinzidenzindex . In diesem Fall ist die Periode richtig bestimmt worden, und jeder Teil muß als einfache Substitution einzeln analysiert werden.
Beispiel 2.4.4 Wir betrachten den Chiffretext: ZHYME QZCGR TFRTR JWMIK YTHGV NRZOL XRCRL
ZVELK NNCAW YEJZS QKUBP VCKHC CYUZS GQARZ
OJUBW JALUH RVNCI SAYOJ JEQGO FKOQR OLKHY
CEYIN GJPJR HYJNM RRQYI LKALV YRYAR KSNFN
CUSML YGEGQ ZDCRO NRNYC OSJED ZFGKI RRNCZ
RAVSR FULUS DKHCR YQZSY WEAKS QKRSV TWUOC
YARNH QFFPV MMLNR EDNCA GJHYC IRCEY JNMKC
CEARI EYEDQ FFLFN LEILX LLFTY USKVT MDEZP
UJPGP GOLKA QGOLK RCHUG IGSVT MKHCR IRJEJ
VARDU LVOSJ ALVOS IEBKO FVPMZ MYQIL W
Daraus entnehmen wir die H¨aufigkeitsverteilung der Buchstaben zur Bestimmung des Koinzidenzindex. Die entsprechende Tabelle ist auf Seite 25 dargestellt. Die Berechnung des . Koinzidenzindexes ergibt
28
Folge (1)
Zeichen Prozent % A 9,6 B 0,9 C 1,7 D 2,6 E 10,4 F 2,6 G 2,6 H 8,7 I 5,2 J 0,0 K 0,9 L 1,7 M 1,7 N 9,6 O 12,2 P 1,7 Q 0,0 R 4,3 S 8,7 T 5,2 U 4,3 V 0,9 W 0,9 X 0,0 Y 3,5 Z 0,0 Anzahl Zeichen der Folge = 115 Koinzidenzindex = 0,06499
Folge (2)
Zeichen Prozent % A 2,6 B 1,7 C 10,4 D 1,7 E 0,0 F 2,6 G 7,0 H 0,0 I 0,0 J 5,2 K 0,9 L 13,9 M 7,0 N 3,5 O 0,0 P 1,7 Q 9,6 R 12,2 S 4,3 T 0,0 U 0,9 V 0,0 W 2,6 X 0,0 Y 10,4 Z 1,7 Anzahl Zeichen der Folge = 115 Koinzidenzindex = 0,07597
Folge (3)
29
2.4. Polyalphabetische Substitution
Zeichen Prozent % A 0,0 B 0,0 C 6,0 D 1,7 E 4,3 F 5,2 G 2,6 H 0,9 I 5,2 J 8,6 K 13,8 L 1,7 M 0,9 N 0,9 O 0,0 P 2,6 Q 1,7 R 9,5 S 0,0 T 0,9 U 5,2 V 11,2 W 1,7 X 1,7 Y 4,3 Z 9,5 Anzahl Zeichen der Folge = 116 Koinzidenzindex = 0,06747
2. Klassische kryptographische Verfahren
Aus ergibt sich die Sch¨atzung . Wir bestimmen nun die Periode nach der Kasiski-Methode. In diesem Chiffretext treten drei Wiederholungen des Chiffretextes QGOLKALVOSJ auf. Der Abstand zwischen dem ersten und zweiten Auftreten betr¨agt 51, zwischen dem zweiten und dritten Auftreten 72 Buchstaben. Da drei der einzige gemeinsame Teiler von 51 und 72 ist, ist die Gr¨oße der Periode h¨ochstwahrscheinlich drei. F¨ur die Chiffretextfolgen
muß jetzt jeweils der berechnet werden. F¨ur die Folge (1) bis (3) sind die H¨aufigkeitsverteilung auf Seite 29 dargestellt. Jede der drei Folgen hat einen Koinzidenzindex nahe oder gr¨oßer als . Dies best¨atigt die Annahme, daß ist. Als n¨achstes muß der Typ der Chiffre bestimmt werden. Zun¨achst muß festgestellt werden, ob es sich um eine Vigen`ere- oder Beaufort-Chiffre handelt. Die Folge (2) zeigt eine H¨aufigkeitsverteilung, die der Verteilung der Buchstaben in der englischen Sprache (siehe Tabelle auf Seite 20) sehr a¨ hnlich ist. Daraus folgt, daß es sich wohl um eine Vigen`ereChiffre mit A als zweitem Buchstaben des Schl¨ussels handelt. In der Folge (1) sind K, V, R und Z die h¨aufigsten Buchstaben, in (3) sind es L, R, C und Y. Die Buchstaben E, T und A sind im Englischen am h¨aufigsten. Die Verteilung der Spitzen l¨aßt darauf schließen, daß in der Folge (1) A auf R bzw. in der Folge (3) A auf Y abgebildet wird. Damit lautet der Schl¨ussel RAY. Durch die Anwendung dieses Schl¨ussels auf das Vigen`ere-Tableau (Tabelle auf Seite 25) ergibt sich der folgende Klartext:
I have been told by learned sources that when a truely great musician plays and his playing sounds so free and spontaneous that the listener has no idea of the amount of nonspontaneous work, study, scholarship analysis and planning required to achieve these spontaneous effects. I shall not argue the point, I only wish to say that if it is true it leads me to the amazing realization that spontaneity does not come by itself. Dieser Text konnte nur deshalb so einfach gebrochen werden, weil der zugeh¨orige Schl¨ussel sehr kurz ist.
Die Sicherheit einer Substitutionschiffre w¨achst mit zunehmender Schl¨ussell¨ange. In einer Chiffre mit laufendem Schl¨ussel (running-key cipher) ist der Schl¨ussel mindestens genauso lang wie der Klartext. Die Kasiski-Methode hat dann keinen Erfolg, sofern der Schl¨ussel nicht wiederholt wird. Gern wird der Text eines Buches als Schl¨ussel einer Substitutionschiffre benutzt, die auf verschobenem Alphabet beruht, die also eine nichtperiodische Vigen`ere-Chiffre ist. Der Schl¨ussel wird durch den Titel des Buches und die Startposition spezifiziert. Falls der Schl¨ussel jedoch noch einmal eingesetzt wird und dadurch der Chiffretext l¨anger wird als der Schl¨ussel, kann die Kasiski-Methode eventuell zum Erfolg f¨uhren. Aber auch bei einmaliger Anwendung des Schl¨ussels ist eine perfekte Geheimhaltung nicht gew¨ahrleistet, da der Text als deutscher oder englischer Text eine sprachabh¨angige Redundanz besitzt. Mit dem Ansatz von Friedman [29] kann gegebenenfalls eine solche Chiffre gebrochen werden. Große Teile der Buchstaben des Chiffretextes entsprechen hierbei Chiffrierungen, 30
2.4. Polyalphabetische Substitution bei denen sowohl Klartext- als auch Schl¨usselbuchstaben in die Kategorie h¨aufigsten Buchstaben fallen. Im Englischen sind dies die Buchstaben E, T, A, O, N, I, R, S und H. Ausgegangen wird von der Annahme, daß alle Chiffretextbuchstaben Paaren von Klartext- und Schl¨usselbuchstaben der h¨aufigsten Kategorie entsprechen. Diese urspr¨unglichen Annahmen werden mit Di- bzw. Trigrammverteilungen und wahrscheinlichen Worten in Beziehung gesetzt, um daraus die tats¨achlichen Paare zu bestimmen. Beispiel 2.4.5 Mit dem Klartext The treasure ist buried . . . “ und dem Schl¨usseltext The ” ” second cipher is an . . . “ erhalten wir
T HETR E A S UR E I S BUR I E D T HES E CONDC I P HE R I S AN MO I LVGO F XTMX Z F L ZA E Q
Die Paare der h¨aufigsten Verteilungen sind hier unterstrichen. Wir betrachten die ersten drei Chiffretextbuchstaben MOI. Bei einer (nichtperiodischen) Vigen`ere-Chiffre gibt es f¨ur jeden Chiffretextbuchstaben 26 m¨ogliche Paare von Klartext- und Chiffretextbuchstaben. In der folgenden Tabelle stehen in der ersten Zeile die Klartextbuchstaben, in der zweiten die entsprechenden Schl¨usselbuchstaben f¨ur den Chiffretextbuchstaben M, in der dritten und vierten die f¨ur O bzw. I. Klartextbuchstaben M O I
A M O I
B L N H
C K M G
D J L F
E I K E
F H J D
G G I C
H F H B
I E G A
J D F Z
K C E Y
L B D X
M A C W
N Z B V
O Y A U
P X Z T
Q W Y S
R V X R
S U W Q
T T V P
U S U O
V R T N
W Q S M
X P R L
Y O Q K
Z N P J
Auch hier sind die Paare der h¨aufigsten Verteilungen durch Unterstreichung der entsprechenden Schl¨usselbuchstaben markiert. F¨ur die Chifftretextzeichen MOI ergeben sich also folgende Paare von Klartext- und Schl¨usselbuchstaben der h¨aufigsten Kategorie: M E-I I-E T-T
Es existieren somit
O A-O O-A H-H
I A-I I-A E-E R-R
.
m¨ogliche Kombinationen der Paare:
Klartext: EAA EAI Schl¨ussel: IOI IOA Chiffre: MOI MOI
THE THR THE THR MOI MOI
EAE EAR IOE IOR MOI MOI
Einerseits sind viele der Trigramme des Klartextes und des Schl¨ussels sehr unwahrscheinlich. Andererseits ist die Zuordnung des Klartextes THE zu dem Schl¨ussel THE sehr wahrscheinlich. Daraus l¨aßt sich schließen, daß das erste Wort des Schl¨ussels sowie des Klartextes richtig geraten worden ist.
Als one-time pad werden Schl¨ussel bezeichnet, die eine zuf¨allige Folge von Buchstaben sind und nicht wiederholt werden. Wir betrachen dazu 31
2. Klassische kryptographische Verfahren Beispiel 2.4.6 Es handelt sich hier um die Vernam-Chiffre. Es sei ein Schl¨ussel aus Bits. Dann setze man Klartext und
ein
mit
Damit entspricht die Vernam-Chiffre einer Vigen`ere-Chiffre mit einem Chiffretextalphabet . Die Chiffre kann durch das exklusive Oder ( ) dargestellt werden, da gilt. Das l¨aßt sich direkt durch eine Hardwareschaltung realisieren und ist daher sehr schnell zu berechnen. Die Dechiffrierung erfolgt durch dieselbe Operation, und zwar
Falls der Schl¨ussel der Vernam-Chiffre mehrmals benutzt wird, ist die Chiffre a¨ quivalent und Klartexte, die mit zu einer Chiffre mit laufendem Schl¨ussel . Seien n¨amlich demselben Schl¨ussel die Chiffretexte und liefern. Dann gilt
Wird nun durch
bzw.
gebildet, so ist das gleichbedeutend mit einer Chiffrierung des Klartextes durch den Schl¨ussel . kann eventuell durch den Ansatz von Friedman gebrochen werden. Die Berechnung des Schl¨ussels erfolgt dann durch .
2.5 Quantenkryptographie In diesem Abschnitt wollen wir kurz auf die Quantenkryptographie eingehen, die seit 1984 von Bennett und Brassard ([6], [7]) entwickelt wurde und nat¨urlich nicht zum Gebiet der klassischen Kryptographie geh¨ort. Andererseits ist es aber m¨oglich (bzw. wird bald m¨oglich sein), mit ihrer Hilfe auch klassische one-time-pad-Verfahren wie die eben in Beispiel 2.4.6 besprochene Vernam-Chiffre in vielen Situationen anzuwenden. Deswegen soll die Quantenkryptographie, obwohl keineswegs klassisch, in diesem Kapitel besprochen werden. Das Problem bei der Vernam-Chiffre ist, daß der Empf¨anger einer verschl¨usselten Nachricht den Chiffrier- und Dechiffrierschl¨ussel besitzen muß, der dieselbe L¨ange wie der Klartext hat. In geheimdienstlichen, diplomatischen und a¨ hnlichen Zusammenh¨angen sind gen¨ugend Situationen vorstellbar, wo so etwas erreicht werden kann. Beim Einsatz der Kryptographie im privaten, gesch¨aftlichen und auch in den meisten Situationen des staatlichen Umfelds wird eine solche Schl¨ussel¨ubergabe bisher nicht sicher m¨oglich sein. Es bleibt immer ein Restrisiko, ob diese Schl¨ussel¨ubergabe wirklich ohne ein Belauschen stattgefunden hat. Die Quantenkryptographie l¨ost dieses Problem. Zus¨atzlich ist es dabei immer m¨oglich festzustellen, ob ein Lauscher, ob nun mit oder ohne Erfolg, den Datenverkehr abgeh¨ort hat. Dabei wird sich das fundamentale Prinzip der Quantentheorie, die Heisenbergsche 32
2.5. Quantenkryptographie Unsch¨arferelation, zunutze gemacht. Danach ruft jede Messung an einem quantenmechanischen System eine St¨orung dieses Systems hervor. Speziell verbietet die Theorie eine gleichzeitige Messung sogenannter komplement¨arer Paare wie etwa Zeit und Energie oder Ort und Impuls von Teilchen. Die Messung der einen Eigenschaft zerst¨ort die (vollst¨andige) Messung der anderen Eigenschaft. Bei der Quantenkryptographie wird polarisiertes Licht f¨ur die Informations¨ubertragung verwendet. Photonen, also Lichtquanten, schwingen senkrecht zu ihrer Ausbreitungsrichtung in bestimmten Richtungen. Dies Ph¨anomen nennt man Polarisation. Durch Polarisationsfilter lassen sich wohlbestimmte Richtungen gewinnen und die Polarisation eintreffender Photonen ermitteln. Es wird jedoch die Durchlaßwahrscheinlichkeit verringert, wenn der Filter nicht im voraus auf die korrekte Schwingungsrichtung des Photons eingestellt wurde.
Bild 2.5.1: Meßanordnung f¨ur polarisiertes Licht Horizontal polarisiertes Licht tritt ungebrochen hindurch, vertikal polarisiertes Licht wird abgelenkt. Mit einem Photonendetektor kann festgestellt werden, welche Polarisation einfallendes Licht hat. Zwischen einer Senderin, sagen wir Alice, und dem Empf¨anger, nennen wir ihn Bob, ¨ sei nun ein Ubertragungskanal f¨ur solche Photonen, ein sogenannter Quantenkanal, aufgebaut. Alice u¨ bermittelt Photonen bestimmter Polarisationsrichtungen, und Bob mißt diese mit seinem Filter. Man kann dazu einen doppeltbrechenden Kristall (z.B. Kalkspat) verwenden, der zwischen horizontal und vertikal polarisiertem Licht eindeutig unterscheiden kann: Horizontal polarisierte Photonen (0 Grad) werden geradlinig durchgelassen, vertikal polarisierte Photonen (90 Grad) treten in einem verschobenen Strahl aus. Mit Hilfe zweier Photonendetektoren kann die Unterscheidung getroffen werden (siehe Bild 2.5.1). Entscheidend ist, daß schr¨ag polarisiertes Licht (45 Grad oder 135 Grad) mit gleicher Wahrscheinlichkeit entweder horizontal oder vertikal umpolarisiert wird, wobei im vertikalen Fall es wieder zu einer Verschiebung des Strahls kommt. Wenn von vornherein bekannt ist, daß die Photonen entweder horizontal oder vertikal polarisiert sind, dann kann man mit dieser Anordnung 33
2. Klassische kryptographische Verfahren feststellen, welcher von beiden F¨allen zutrifft. Bei schr¨ag einfallender Polarisation ist das so nicht m¨oglich, der Filter muß um 45 Grad gedreht werden, damit wieder eine korrekte Bestimmung der Polarisation erfolgen kann.
! " !
#
#
Bild 2.5.2: Schl¨usselvereinbarung
Die Vereinbarung geheimer Informationen zwischen Alice und Bob, also etwa die Vereinbarung eines Schl¨ussels f¨ur die Vernam-Chiffre, verl¨auft wie folgt (siehe Bild 2.5.2): Alice erzeugt zun¨achst eine Folge von Photonen mit Polarisationen, die zuf¨allig die Werte 0, 45, 90 und 135 Grad annehmen k¨onnen. Diese Folge u¨ bermittelt sie an Bob. Bob w¨ahlt f¨ur jedes eintreffende Photon zuf¨allig die Anordnung seines Filters, mit der er entweder innerhalb der geraden Richtungen (0 und 90 Grad) oder innerhalb der schr¨agen Richtungen (45 oder 135 Grad) richtig messen kann, jedoch nie bei beiden Richtungstypen gleichzeitig. Das liegt daran, daß gerade und schr¨age Polarisation im Sinne der Unsch¨arferelation zueinander komplement¨ar sind. Bob teilt Alice u¨ ber einen o¨ ffentlichen Kanal mit, wie sein Filter bei den einzelnen gemessenen Photonen eingestellt war, worauf Alice ihm meldet, welche Stellungen die richtigen waren. Die jeweiligen (richtigen) Meßergebnisse halten sie jedoch beide geheim. Aus den nur Alice und Bob bekannten, sonst aber geheimen, Polarisationsrichtungen der richtigen Messungen k¨onnen sie eine Bitfolge definieren, indem sie zum Beispiel 0 und 135 Grad als Null und 90 und 45 Grad als Eins vereinbaren. 34
2.5. Quantenkryptographie Da die Filteranordnung von Bob statistisch gesehen nur in der H¨alfte der F¨alle mit der Polarisation der Photonen u¨ bereinstimmt, wird nur die H¨alfte aller Photonen richtig gemessen. Daneben k¨onnen auch einige Photonen aus technischen Gr¨unden nicht richtig gemessen werden.
"
#
Bild 2.5.3: Lauschversuch Jeder Versuch eines Lauschers, sagen wir Oskar, im Quantenkanal die Polarisation eines Photons zu messen, w¨urde bei richtig eingestelltem Filter von Oskar die korrekte Polarisation wiedergeben. Bei falsch eingestelltem Filter von Oskar w¨urde bei jeder richtigen Messung von Bob das Photon in einer der beiden zu Bobs Filter geh¨origen Polarisationsrichtungen mit jeweils gleicher Wahrscheinlichkeit eintreffen. Eine davon entspricht jedoch nur der Polarisation des von Alice gesendeten Photons. Durch diesen doppelten Meßprozeß w¨urde also ein Viertel aller Bits verf¨alscht werden (siehe Bild 2.5.3 f¨ur senkrecht polarisierte Photonen, bei anderen Polarisationen ergibt sich ein analoges Ergebnis). Um diesen eventuellen Betrug festzustellen, vergleichen Alice und Bob o¨ ffentlich eine zuf¨allige Teilmenge der u¨ bermittelten Bits. Stimmen sie u¨ berein, gehen sie davon aus, daß kein Lauschen stattgefunden hat, sie werfen die verglichenen Bits weg und k¨onnen die restlichen Bits als Schl¨ussel bei der Vernam-Chiffre verwenden. Stimmen sie nicht u¨ berein, starten sie einen neuen Versuch, eine zuf¨allige Bitfolge zu erzeugen. Ungew¨ohnlich ist, daß die Informationen, die durch die Polarisationsrichtungen dargestellt werden, gar nicht chiffriert werden, sondern offen u¨ bertragen werden. Alice und Bob u¨ berzeugen sich o¨ ffentlich, ob ihre Bitfolgen nicht abgeh¨ort wurden. Die ersten Prototypen dieser Technik hatten eine Reichweite von nur etwa 30 cm. Mit Hilfe von Glasfaserkabeln kommt man heute schon auf mehr als 20 km. Anders als bei der gew¨ohnlichen Daten¨ubertragung ist es bei der Quantenkryptographie nicht m¨oglich, das 35
2. Klassische kryptographische Verfahren Signal in gewissen Abst¨anden zu verst¨arken, da es dadurch, wie oben geschildert, ja zerst¨ort w¨urde. Detailliertere Darstellungen der Quantenkryptographie kann man zum Beispiel in [6], [7] oder [8] finden.
2.6 Chiffren mit Polygramm-Substitution Die Chiffren der vorhergehenden Abschnitte haben jeweils einen einzelnen Klartextbuchstaben chiffriert. Chiffren mit Polygramm-Substitution ersetzen dagegen zusammenh¨angende Folgen von Buchstaben, also Bl¨ocke von Buchstaben. Dadurch wird die Bedeutung der H¨aufigkeitsverteilung der einzelnen Buchstaben verringert. Wir betrachten zun¨achst die Playfair-Chiffre (1854). Sie wurde von den Briten noch w¨ahrend des ersten Weltkriegs benutzt. Sie ist eine Digramm-Substitutionschiffre. Der Schl¨ussel ist eine Matrix, in die die Buchstaben des Alphabets (ohne J) eingetragen werden. Jedes Klartextbuchstabenpaar wird nach folgenden Regeln durch ein Chiffretextpaar chiffriert.
(1) Wenn sich und in derselben Zeile befinden, dann steht rechts neben und rechts neben (wobei die erste Spalte auch rechts neben der letzten Spalte steht). (2) Wenn sich und in derselben Spalte befinden, dann steht unter und unter (wobei die erste Zeile auch unter der letzten Zeile steht). (3) Wenn sich und in verschiedenen Zeilen bzw. Spalten befinden, dann bilden und zwei Ecken eines Rechtecks. Die beiden anderen Eckpunkte werden durch und bestimmt. Hierbei steht in derselben Zeile wie bzw. in derselben Zeile wie . gilt, dann muß ein vorher festgelegter Dummy-Buchstabe in den (4) Wenn Klartext eingef¨ugt werden. (5) Wenn der Klartext eine ungerade Anzahl von Buchstaben enth¨alt, dann muß am Ende des Klartextes ebenfalls der Dummy-Buchstabe angeh¨angt werden.
Beispiel 2.6.1 Die Matrix werde zun¨achst durch das Schl¨usselwort BRAUNSCHWEIGERSTUDENTENSINDKLUG zeilenweise fortlaufend von links nach rechts gef¨ullt. Duplikate werden nur beim ersten Auftreten eingesetzt. Der verbleibende Rest der Buchstaben wird in beliebiger Reihenfolge angeh¨angt: B R A U N S C H W E I G T D K L F Z Y M X Q O P V
Es sei =VORLESUNGENX (X Dummy-Buchstabe) der Klartext. Dann ergibt sich der Chiffretext =XPBFSCNBKCBV. F¨ur das zweite Buchstabenpaar (RL) muß die Regel (3) benutzt werden. Die entsprechenden Buchstaben sind in der obigen Matrix markiert und liefern den Chiffretext BF.
36
2.7. Produktchiffren und Rotormaschinen
Die Hill-Chiffre (1929) [45] f¨uhrt eine lineare Abbildung auf Klartextbuchstaben durch, um Chifftretextbuchstaben zu erhalten. Als Schl¨ wird eine -dimensionale u sselexistiert. und d¨urfen quadratische Matrix benutzt, zu der die inverse Matrix nur Zahlen modulo beinhalten, wobei die Gr¨oße des Alphabets ist. Die Chiffrierung erfolgt durch
die Dechiffrierung durch
Beispiel 2.6.2 Es sei und
Es folgt
(modulo 26).
kodiert wird. Wir erhalten und
Wir betrachten den Klartext KARL, der als
(¨ubliches Alphabet). Wir w¨ahlen
Dann ist
und damit der Chiffretext JALR.
Die Kryptoanalyse dieser Chiffre ist nicht leicht, wenn nur der Chiffretext bekannt ist. Die Chiffre ist jedoch oft zu brechen, falls einige Buchstaben des Klartextes bekannt sind. Diese kann der Kryptoanalytiker erhalten, wenn er z. B. die Chiffrierung eines von ihm gew¨ahlten Klartextes veranlassen kann. Hat der Kryptoanalytiker die Klartexte und und mit den zugeh¨origen Chiffretexten , dann kann er
und
bilden. Ist die Matrix (modulo 26) regul¨ar, so kann die Schl¨usselmatrix durch berechnet werden. Die Berechnung ist durch einen Algorithmus der Ordnung m¨oglich.
2.7 Produktchiffren und Rotormaschinen Eine Produktchiffre ist die Komposition von Funktionen (Chiffren) , wo bei jedes der , eine Substitutionschiffre oder Transpositionschiffre ist. Als Beispiel betrachten wir kurz die Rotormaschinen. . Eine Rotormaschine besteht aus nebeneinander aufgebauten Rotoren , Bei der von Arthur Scherbius in den zwanziger Jahren erfundenen ENIGMA bestand jeder Rotor aus einer Scheibe von etwa 10 cm Durchmesser und 2 cm Dicke. Auf jeder Seite
37
2. Klassische kryptographische Verfahren hat ein solcher Rotor 26 Kontakte, f¨ur jeden Buchstaben des Alphabets genau einen. Im Inneren des Rotors ist jeder Kontakt der linken Seite mit irgendeinem Kontakt der rechten realisiert somit durch die regellose Verdrahtung Seite elektrisch verbunden. Jeder Rotor in seinem Inneren eine Permutation der Buchstaben des Alphabets. Jeder Rotor kann innerhalb von 26 Positionen rotieren, wobei jede Position die Abbildung a¨ ndert. Wenn sich in der Position befindet, wird durch einen solchen Rotor die Abbildung
realisiert. Da die Kontakte der nebeneinander aufgestellten Rotoren jeweils miteinander Ber¨uhrung haben, tritt ein Klartextbuchstabe als ein elektrisches Signal bei einem entsprechenden Kontakt des ersten Rotors in die Rotormaschine ein, durchl¨auft die Rotoren und tritt als Chiffretextbuchtabe an einem Kontakt des letzten Rotors wieder aus. Folglich stellt dar. Der -te Klartextbuchstabe eine Maschine mit Rotoren eine Produktchiffre einer Nachricht wird als
chiffriert, wobei der Schl¨ussel aus den verdrahteten Abbildungen und den Po der Rotoren besteht. Die Verdrahtung und die initiale Positionen sitionen der Rotoren bestimmen den Startschl¨ussel. Nach Verschl¨usselung eines Klartextbuchstabens werden einer oder mehrere Rotoren bewegt. Dadurch ergeben sich insgesamt verschiedene Schl¨ussel. Bei der ENIGMA, die von den Deutschen im zweiten Weltkrieg benutzt wurde, wurden zun¨achst drei und sp¨ater bei der Marine auch vier Rotoren benutzt. Wenn ein Buchstabe verschl¨usselt wird, r¨uckt der erste Rotor eine Position weiter, bis schließlich alle Positionen benutzt sind. Dann r¨uckt auch der zweite Rotor eine Position weiter (wie bei jedem u¨ blichen Z¨ahlwerk) und ganz zuletzt auch der dritte. Die Anfangsstellung der Rotoren ist frei w¨ahlbar. In der Anwendung wurden diese Anfangsstellungen t¨aglich gewechselt. Trotzdem steckten in den von der ENIGMA produzierten Geheimnachrichten mehr Regelm¨aßigkeiten, als ihre Anwender ahnten. Es gelang vor allem den Engl¨andern in Bletchley Park, diese Regelm¨aßigkeiten auszunutzen, wobei sie computer¨ahnlich Spezialger¨ate einsetzten. Alan Turing hat dabei die entscheidende Rolle gespielt. W¨ahrend des Krieges entzifferte die Gruppe in Bletchley Park unter gr¨oßter Geheimhaltung etwa 300000 Meldungen der Deutschen. Diese konnten beim Afrikafeldzug, bei der Landung der Alliierten in der Normandie und vor allem beim U-Boot-Krieg ausgenutzt werden. Dies hat sicherlich zu einer Verk¨urzung des Krieges beigetragen und damit einen Atombombenabwurf u¨ ber Deutschland verhindert. Erst 1975 wurde ver¨offentlicht, daß die Alliierten die ENIGMA gebrochen hatten. Auch einige moderne heutige Verfahren sind Produktchiffre. Wir werden in Kapitel 4 auf das DES-Verfahren und auf IDEA eingehen.
38
3 Zahlentheoretische Grundlagen Die Konzepte der Zahlentheorie, die in den weiteren Abschnitten ben¨otigt werden, sollen hier zusammengefaßt werden. Mit bezeichnen wir die Menge der nat¨urlichen Zahlen und mit die Menge der ganzen Zahlen. Weiter ist .
Definition 3.1 Es seien ), wenn es ein
und gibt mit
.
heißt kongruent .
modulo
(in Zeichen:
Die Bedingung der Definition ist auch gleichwertig damit, daß die Zahl teilt (in Zeichen: ). Dabei heißt Rest von modulo und Rest von modulo .
heißt
Definition 3.2 Es seien und . Die Menge vollst¨andige Menge von Resten modulo , wenn es f¨ur alle genau ein mit gibt.
F¨ur jedes bildet eine vollst¨andige Menge von Resten modulo . kann auch als Menge der Kongruenzklassen von aufgefaßt werden. Sie werden als Restklassen modulo bezeichnet.
Definition 3.3 Mit .
bezeichnen wir den Rest von
modulo
im Intervall
Aus erhalten wir
. Die Umkehrung gilt jedoch nicht. Weiter
folgt offenbar
d.h., kongruente Zahlen haben denselben Rest im Intervall eindeutig die folgenden Verkn¨upfungen definieren:
Damit ist
eine algebraische Struktur.
. Auf f¨ur alle
k¨onnen wir
der Ring der ganzen Zahlen. Dann wird durch
definiert. und . Wir Beweis. Gezeigt werden muß
Satz 3.1 Es sei und ein Homomorphismus
beweisen die erste Gleichung, also
Es gelte und 3.3 und nach Definition 3.1 folgt
. Nach der Bemerkung im Anschluß an Definition
und
39
3. Zahlentheoretische Grundlagen Wir erhalten
und damit
Wegen
ergibt sich nach der Definition von
weiter
¨ womit insgesamt die gew¨unschte Gleichung bewiesen ist. Ahnlich erhalten wir die zweite Gleichung.
Als homomorphes Bild eines Ringes ist auch ein Ring (siehe z.B. 21, Satz 1 in [47]). Aus Satz 3.1 ergibt sich das folgende Prinzip der modularen Arithmetik, wobei op den jeweiligen Operator darstellt:
,
Reduktion
,
op
op
op
Reduktion
op
op
op
= =
Modulare Arithmetik kann auch auf die Exponentiation angewendet werden. Wir erhalten dann
Man beachte, daß f¨ur
i. allg.
. ist, so z. B.
kann durch wiederholtes Quadrieren Beispiel 3.1 Die Berechnung des Ausdrucks
und Multiplizieren auf zwei unterschiedliche Arten erfolgen: (a) 1. Quadriere 3:
2. Quadriere das Ergebnis: 40
3. Zahlentheoretische Grundlagen
4. Reduziere modulo 7: (b) 1. Quadriere 3: 2. Quadriere das Ergebnis: 3. Multipliziere mit
Falls aus Bits besteht, , bewirkt die modulare Arithmetik, daß das Ergebnis nach der Addition, Subtraktion oder Multiplikation zweier Werte h¨ochstens
3. Multipliziere mit 3:
Bits umfaßt. Die Rechnungen werden damit einfacher. Wir geben einen entsprechenden Algorithmus f¨ur die Exponentiation an.
Algorithmus 3.1 ); schnelle Exponentiation fastexp( begin liefert
while do Schleifeninvariante:
while do ; end; end; fastexp:= end
Satz 3.2 Algorithmus 3.1 terminiert und liefert
als Ergebnis.
Beweis. Die a¨ ußere Schleife wird verlassen, wenn wird. Diese Bedingung tritt, da fortlaufend verkleinert wird, immer ein. Damit ist die Terminierung gesichert. Es muß noch die Richtigkeit der Schleifeninvariante nachgewiesen werden. Dies geschieht durch Induktion. Beim erstmaligen Eintritt in die Schleife ist die Schleifeninvariante offenbar erf¨ullt. Vor einem Durchlauf der a¨ ußeren Schleife habe den Wert , den Wert und den Wert . Die innere Schleife werde nun -mal durchlaufen. Dann ist und . Anschließend wird
und
(laut Induktionsannahme).
gebildet. Damit gilt nach diesem einmaligen Durchlauf der a¨ ußeren Schleife
41
3. Zahlentheoretische Grundlagen
. Da
Der Abbruch der a¨ ußeren Schleife erfolgt mit feninvariante, daß dann als Ergebnis geliefert wird.
gilt, folgt aus der Schlei-
Die bin¨are Darstellung von sei . Der Algorithmus verarbeitet die Bits in
der Reihenfolge . Dabei wird quadriert, wenn ein Bit 0 ist, und multipliziert und quadriert, wenn ein Bit 1 ist. In der Hardware-Implementierung k¨onnen diese Bits direkt angesprochen werden, so daß die Rechnungen
und
entfallen k¨onnen.
Satz 3.3 Es sei die Anzahl der Multiplikationen, Es folgt und
der Exponent von Algorithmus 3.1
Beweis. Nach den Satz 3.3 vorangehenden Ausf¨uhrungen veranlaßt jedes 0-Bit eine Multiplikation, jedes 1-Bit zwei Multiplikationen. Eine Ausnahme stellt das am weitesten links gelegene 1-Bit dar, welches nur eine Multiplikation bewirkt. Es folgt .
Die erwartete Anzahl von Multiplikationen ist . Ein naiver Algorithmus f¨ur die Exponentiation ben¨otigt dagegen Multiplikationen, ist also exponentiell in der L¨ange von . Im folgenden interessieren wir uns f¨ur das multiplikative Inverse in .
Satz 3.4 Es sei ,
, ,
gilt.
. Dann folgt, daß f¨ur alle
, und es gelte ggt
. Wegen . , und es gelte ggt
. Die ,
,
Beweis. Wir nehmen das Gegenteil an. Dann folgt . Dies ist ein Widerspruch zu ggt erhalten wir
Folgerung Es sei , liefern jeweils verschiedene Reste modulo
Unter der Annahme von Satz 3.4 hat
und bilden die Menge
ein multiplikatives Inverses. Dies zeigt
, und es gelte ggt
. Dann existiert genau ein
. Beweis. Nach der Folgerung gibt es genau ein mit Satz 3.5 Es sei ,
, , mit
,
42
3. Zahlentheoretische Grundlagen ¨ Die folgenden Uberlegungen f¨uhren zu einem Algorithmus zur Berechnung des Inversen.
Definition 3.4 dulo .
ggt
heißt die reduzierte Menge der Reste mo-
Beispiel 3.2 Die reduzierte Menge der Reste modulo 10 ist te Menge der Reste modulo , wobei eine Primzahl ist, ist
, die reduzier .
Definition 3.5 ( Eulersche Funktion) bezeichnet die Anzahl der Elemente der redu , mit zierten Menge der Reste modulo . Sie ist gleich der Anzahl der Zahlen . ggt
Satz 3.6 Es sei , multiplikative Gruppe.
. Dann ist die reduzierte Menge
der Reste modulo
eine
und . Dann gilt ggt . Wir schlieBeweis. Es sei ßen, daß f¨ur alle , , ggt gilt und ein , , existiert Das Produkt zweier Zahlen aus geh¨ort also wieder zu . Diese mit sind (siehe Folgerung zu Satz 3.4) f¨ur verschiedene paarweise verschieden. Somit erhalten wir
gilt, existiert ein mit . ist somit das Inverse von .
Weil also eine multiplikative Gruppe.
ist
Satz 3.7 Es sei eine Primzahl. Dann gilt: (a) . . (b) Ist , dann folgt , dann folgt (c) Ist eine Primzahl mit
.
Beweis. (a) trivial. (b) Von den
Zahlen von 1 bis sind genau die Zahlen
Vielfache von . Die u¨ brigen sind zu teilerfremd. Daraus folgt (c) Von den Zahlen von 1 bis sind genau die Zahlen nicht in und und Vielfache von bzw. . Da der Primteiler vorkommt und entsprechend nicht in und , sind diese Zahlen paarweise verschieden. Somit ist
43
3. Zahlentheoretische Grundlagen Aus der Primfaktorzerlegung [20] nachlesen kann,
einer Zahl
ergibt sich, wie man z.B. in
. Dann folgt Satz 3.8 (Fermat) Es sei eine Primzahl und mit ggt
Der Beweis folgt aus Satz 3.9 Es seien
und
. Dann folgt mit ggt
Beweis. Nach dem Beweis von Satz 3.6 betrachten wir die Menge
Dann ist Dabei sind und Produkte in . K¨urzen in der multiplikativen Gruppe liefert die . Gleichung mit ggt und . Dann Folgerung Es seien gilt . Falls prim ist, folgt Offenbar ist das Inverse von . Speziell betrachten wir mit
. Dann wird nach der Folgerung das Inverse von modulo durch ggt bestimmt. Dies wird in dem folgenden Satz benutzt. . Dann ist die Abbildung Satz 3.10 Es seien , und es gelte ggt
f¨ur alle mit eine Bijektion.
. Damit definieren wir Beweis. Es gelte mit
f¨ur alle . F¨ur alle gilt
mit einem geeigneten , da f¨ur nach Satz 3.9 die Beziehung gilt. Folglich ist das Inverse von . Falls eine Primzahl ist, gilt
. Dann kann zu einer bijektiven Abbildung auf erweitert werden.
44
3. Zahlentheoretische Grundlagen
praktisch berechnen. Die erste M¨oglichkeit gilt und bekannt ist. Dann erhalten wir fastexp
Wir wollen nun das Inverse von kann angewendet werden, wenn ggt
mit Hilfe von Algorithmus 3.1. Die zweite M¨oglichkeit benutzt die iterative Version des Euklidischen Algorithmus zur Bestimmung des ggt: Algorithmus 3.2 ggt( , ); begin
do ;
end; ggt:=
while
end
Dieser Algorithmus wird so erweitert, wie es in [53], S. 325, beschrieben ist. Dann kann auch berechnet werden.
Algorithmus 3.3 inv( , ); begin liefert mit
while do Schleifeninvariante:
div ; ganzahlige Division, Rest vergessen
end; if then inv:= else inv:= end
end
, .
Satz 3.11 Es sei 3.3 das Inverse von
,
, und ggt . Dann berechnet Algorithmus
Beweis. Offensichtlich terminiert der Algorithmus, und es ist bekannt, daß f¨ur die Gleichung ggt( ) gilt. Falls ggt ist, folgt unter Beachtung der Schleifeninvariante f¨ur
45
3. Zahlentheoretische Grundlagen
Nach Definition 3.1 ist dann
ist ein Inverses von . Es l¨aßt sich zeigen, daß gilt, so daß die letzte Zeile des Algorithmus das Ergebnis liefert. Somit muß nur noch die Schleifeninvariante u¨ berpr¨uft werden. Dies erfolgt durch Induktion. F¨ur und ist sie erf¨ullt. Bei Eintritt in die while-Schleife gilt . Es ist zu zeigen, daß gilt. Spe ziell f¨ur div gilt aufgrund der Zuweisungen in der Schleife und der G¨ultigkeit der Schleifeninvariante f¨ur und
Knuth hat gezeigt, daß die durchschnittliche Anzahl von Divisionen im Algorithmus 3.3 ist. Man erkennt, daß statt und auch drei ungef¨ahr gleich und lokale Variablen verwendet werden k¨onnen. F¨ur gilt entsprechendes. Die Variablen k¨onnen entfallen. Der Algorithmus 3.3 kann zur L¨osung des folgenden Problems erweitert werden: Gege . Gesucht ist ein mit und mit ggt ben seien
mit Algorithmus 3.3 werden folgenBeispiel 3.3 Bei der Berechnung von de Werte durchlaufen:
f¨ur ein
L¨osung in Dann gilt
Die L¨osung lautet Falls ggt
ggt
. Dazu muß eine L¨osung von gefunden werden. Aus folgt n¨amlich , also ist eine . Sie ist auch die einzige L¨osung. Es sei n¨amlich eine weitere L¨osung. . Wegen ggt folgt und damit .
.
0 1 2 3
7 3 1 0
1 0 1
0 1
2 3
ist, dann hat die Gleichung entgegen dem Fall mehr als eine bzw. keine L¨osung. Dieser Fall wird im folgenden Satz betrach-
tet.
Satz 3.12 Es seien Gleichung
46
und
. Es gelte
,
ggt(
). Aus
folgt, daß die
3. Zahlentheoretische Grundlagen genau L¨osungen der Form
hat. Dabei ist
Aus
die L¨osung von
folgt, daß
keine L¨osung hat.
Beweis. Falls eine L¨osung in Definition 3.1 . Aus und folgt keine L¨osung existiert. Weiter gilt
ggt
besitzt, dann ergibt sich nach . Wir erkennen daraus, daß f¨ur
im Intervall . Nach eine eindeutige L¨osung
Dann besitzt eine eindeutige L¨osung ¨ den Uberlegungen vor Beispiel 3.3 ist damit von
im Intervall
. Es existiert also ein
mit
Durch Multiplikation mit erhalten wir
. Jedes mit ist d. h., ist eine L¨osung von . Alle anderen sind keine L¨osungen, da sonst ebenfalls eine L¨osung von , ebenfalls eine L¨osung der Gleichung
w¨are. Alle L¨osungen von
lauten also
Beispiel 3.4 Gegeben sei die Gleichung . Dann gilt Wegen existieren zwei L¨osungen. Wir l¨osen zun¨achst
ggt
.
47
3. Zahlentheoretische Grundlagen Es folgt
und damit
die L¨osung und f¨ur
die L¨osung
Damit erhalten wir f¨ur
Die L¨osung von erfolgen. Es sei
kann auch durch eine Primfaktorzerlegung von
mit mit jeweils verschiedenen Primzahlen . Damit gilt ggt
f¨ur
ergibt sich aus dem allgemeineren
. Die L¨osung
mit ggt f¨ur . Es sei
. Dann gilt
Satz 3.13 Gegeben seien ein Polynom und
Beweis. Aufgrund der Voraussetzungen gilt
Damit erhalten wir eine weitere M¨oglichkeit zur L¨osung von Gleichungen der Form . Wir betrachten . Die L¨osung ist eine gemeinsame , die a¨ quivalent zu den Gleichungen L¨osung der Gleichungen ,
sind. Wir wollen nun eine gemeinsame L¨osung zu den Gleichungen von struieren, und zwar aus unabh¨angigen L¨osungen
ist eine L¨osung von . Nach Satz 3.13 folgt, Jedes mit ist, wenn daß genau dann eine L¨osung von , gilt. Die Berechnung einer gemeinsamen L¨osung erfolgt nun nach dem Chinesischen
Restesatz.
Satz 3.14 (Chhin Chiu Shao, 1247) Es seien , , , mit ggt . Dann besitzt das System f¨ur . Es sei der Gleichungen
genau eine L¨osung .
48
kon-
3. Zahlentheoretische Grundlagen
, gilt ggt . Dann folgt (siehe Schleifeninvariante des , existieren mit
Beweis. F¨ur alle , Algorithmus 3.3), daß
Somit ist Da
gilt, folgt
f¨ur
. Wir setzen
also ist eine Dann ergibt sich
L¨osung. Aus der Annahme, daß , zwei verschiedene L¨osungen sind, . Wir schließen Da die paarweise folgt relativ prim sind, erhalten wir
. Somit existiert genau eine Dies ist ein Widerspruch zu L¨osung.
Aus dem Beweis ergibt sich der folgende Algorithmus 3.4 L¨osung des Kongruenzsystems nach dem Chinesischen Restesatz. ); crt( liefert mit
begin for to do Algorithmus 3.3 inv end;
for to do end; crt:= end
Beispiel 3.5 Wir betrachten die Gleichung
Wir werden sie mit Hilfe des Chinesischen Restesatzes l¨osen. Wegen Die L¨osung ist nach Satz 3.13 eine gemeinsame L¨osung von
und
folgt
,
49
3. Zahlentheoretische Grundlagen
Nach Algorithmus 3.4 berechnen wir und
aus und Es folgt und . Damit erhalten wir
Die erste Gleichung hat die L¨osung , die zweite . Die gemeinsame L¨osung wird mit dem Chinesischen Restesatz konstruiert. Wir betrachten
Beispiel 3.6 Die Gleichung
aus Beispiel 3.4 soll auf andere Weise gel¨ost werden. L¨osungen sind nach Satz 3.13 gemeinsame L¨osungen von
Die erste Gleichung hat die L¨osung . Die zweite besitzt wegen ggt nach Satz 3.12 genau zwei L¨osungen, und zwar sind dies und . Die zwei L¨osungen der gegeben Gleichung ergeben sich aus den beiden Gleichungssystemen
und
Das erste System liefert die L¨osung
50
, das zweite .
4 Moderne symmetrische Verfahren 4.1 Der DES Der Data Encryption Standard (DES) ist auch heute noch eines der popul¨arsten modernen Chiffrierverfahren. Der DES ist eine Transpositionschiffre, die aus einer Komposition von Substitutions- und Transpositionschiffren besteht. Der DES wurde vom National Bureau of Standards 1977 angek¨undigt [67] und von IBM entwickelt. Der DES chiffriert je 64-BitBl¨ocke von Daten mit einem 56-Bit-Schl¨ussel. Es ist umstritten, ob 56 Bit als Schl¨ussel gen¨ugen, um diese Chiffre berechnungs-sicher zu machen. Der Algorithmus arbeitet nach dem in Bild 4.1.2 auf Seite 54 beschriebenen Schema. Im wesentlichen erfolgt auch die Dechiffrierung nach diesem Schema, so daß es sich beim DES um ein symmetrisches Verfahren handelt. Dabei wird zun¨achst ein Eingabeblock einer initialen Permutation unterwor fen, also . und die sp¨ater benutzte inverse Permutation sind durch die folgenden Tafeln gegeben:
58 60 62 64 57 59 61 63
50 52 54 56 49 51 53 55
42 44 46 48 41 43 45 47
34 36 38 40 33 35 37 39
26 28 30 32 25 27 29 31
18 20 22 24 17 19 21 23
10 12 14 16 9 11 13 15
Tafel 4.1.1: Initiale Permutation
40 39 38 37 36 35 34 33
8 7 6 5 4 3 2 1
48 47 46 45 44 43 42 41
16 15 14 13 12 11 10 9
56 55 54 53 52 51 50 49
24 23 22 21 20 19 18 17
64 63 62 61 60 59 58 57
Tafel 4.1.2: Finale Permutation
Zur Verdeutlichung merken wir an, daß der Eingabeblock Permutation in
2 4 6 8 1 3 5 7
32 31 30 29 28 27 26 25
durch die initiale
abgebildet wird. Die Tafeln m¨ussen also zeilenweise von links nach rechts gelesen werden. 51
4. Moderne symmetrische Verfahren
durchl¨auft dann, wie in Bild 4.1.2 von Seite 54 dargestellt, 16 Iterationen einer Funktion . Um das Endergebnis zu erhalten, wird das letzte Zwischenresultat der inversen Per mutation u¨ bergeben. mit Die Funktion kombiniert Substitution und Transposition. Es sei und das Ergebnis der -ten Iteration, . Dann gilt
wobei die Bildung des exklusiven Oder bedeutet und ein sp¨ater beschriebener 48-Bit Schl¨ussel ist. Nach der letzten Iteration wird nicht mehr mit vertauscht, d. h.
. Als n¨achstes betrachten wir die Berechnung der Funktion . Dies geschieht mit Hilfe der sogenannten -Boxen. Die Berechnung wird durch Bild 4.1.1 skizziert (siehe Seite 53). Es wird zun¨achst durch die Tafel zu einem 48-Bit-Block erweitert. Dies und
geschieht mit der folgenden Bit-Auswahl-Tafel. 32 4 8 12 16 20 24 28
1 5 9 13 17 21 25 29
2 6 10 14 18 22 26 30
3 7 11 15 19 23 27 31
4 8 12 16 20 24 28 32
5 9 13 17 21 25 29 1
Tafel 4.1.3: Bit-Auswahl Tafel
wird also . Anschließend wird berechnet wird, wird weiter unter beschrieben) und das Ergebnis in acht aufgeteilt, also
Jeder dieser 6-Bit-Bl¨ocke
, wird an die entsprechende -Box als Ergebnis u¨ bergeben. Eine -Box ist eine Substitution, die einen 4-Bit-Block liefert. Dabei ist durch eine -Matrix dargestellt (siehe Tafel 4.1.4 auf Seite 55), ist die Zahl, und die der 4-Bit-Darstellung desjenigen Elements in dieser Matrix Aus gebildet (wie 6-Bit-Bl¨ocke
(dezimal zwischen 0 und 3) und dessen Spalte entspricht, dessen Zeile aus den Bits aus den Bits (dezimal zwischen 0 und 15) berechnet wird (Es sei . Daraus ergibt sich die Zeile 1 (bin¨ar 01) und die Spalte 9 (bin¨ar 1001) und damit ). Danach wird die Permutation auf die Konkatenation aller 4-Bit-Bl¨ocke angewandt. wird durch die Tafel 4.1.5 auf Seite 55 definiert. Als Ergebnis der Funktion ergibt sich also
52
4.1. Der DES
Bild 4.1.1: Berechnung von
53
4. Moderne symmetrische Verfahren
T
!
""
" "# # # "
##
##
## ""
""
!
Ausgabe
Bild 4.1.2: DES Verschl¨usselungsalgorithmus 54
""
##
!
4.1. Der DES
Zeile 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3
0 14 0 4 15 15 3 0 13 10 13 13 1 7 13 10 3 2 14 4 11 12 10 9 4 4 13 1 6 13 1 7 2
1 4 15 1 12 1 13 14 8 0 7 6 10 13 8 6 15 12 11 2 8 1 15 14 3 11 0 4 11 2 15 11 1
2 13 7 14 8 8 4 7 10 9 0 4 13 14 11 9 0 4 2 1 12 10 4 15 2 2 11 11 13 8 13 4 14
3 1 4 8 2 14 7 11 1 14 9 9 0 3 5 0 6 1 12 11 7 15 2 5 12 14 7 13 8 4 8 1 7
4 2 14 13 4 6 15 10 3 6 3 8 6 0 6 12 10 7 4 10 1 9 7 2 9 15 4 12 1 6 10 9 4
5 15 2 6 9 11 2 4 15 3 4 15 9 6 15 11 1 10 7 13 14 2 12 8 5 0 9 3 4 15 3 12 10
6 11 13 2 1 3 8 13 4 15 6 3 8 9 0 7 13 11 13 7 2 6 9 12 15 8 1 7 10 11 7 14 8
Spalte 7 8 8 3 1 10 11 15 7 5 4 9 14 12 1 5 2 11 5 1 10 2 0 11 7 4 10 1 3 4 13 15 8 9 6 8 1 5 8 15 13 6 8 0 5 6 3 7 10 11 13 3 10 14 14 10 7 9 1 10 4 12 2 0 13 15
9 10 6 12 11 7 0 8 6 13 8 1 15 2 7 1 4 5 0 9 15 13 1 0 14 12 3 15 5 9 5 6 12
10 6 12 9 3 2 1 12 7 12 5 2 14 8 2 3 5 3 15 12 0 3 13 4 1 9 5 6 0 3 6 10 9
11 12 11 7 14 13 10 6 12 7 14 12 3 5 12 14 11 15 10 5 9 4 14 10 7 7 12 8 15 14 11 13 0
12 5 9 3 10 12 6 9 0 11 12 5 11 11 1 5 12 13 3 6 10 14 0 1 6 5 2 0 14 5 0 15 3
13 9 5 10 0 0 9 3 5 4 11 10 5 12 10 2 7 0 9 3 4 7 11 13 0 10 15 5 2 0 14 3 5
14 0 3 5 6 5 11 2 14 2 15 14 2 4 14 8 2 14 8 0 5 5 3 11 8 6 8 9 3 12 9 5 6
15 7 8 0 13 10 5 15 9 8 1 7 12 15 9 4 14 9 6 14 3 11 8 6 13 1 6 2 12 7 2 8 11
Tafel 4.1.4: Auswahlfunktion ( -Boxes) 16 29 1 5 2 32 19 22
7 12 15 18 8 27 13 11
20 28 23 31 24 3 30 4
21 17 26 10 14 9 6 25
Tafel 4.1.5: Permutation
Es fehlt noch die Berechnung der Schl¨ussel
, aus dem initialen Schl¨ussel . besteht aus 56 Bits. Jede Iteration benutzt einen anderen 48-Bit-Schl¨ussel . Die Berechnung ist in Bild 4.1.3 von Seite 57 graphisch dargestellt. Zun¨achst wird durch acht Parity-Bits (an den Positionen 8, 16, . . . , 64) auf 64 Bits erweitert und in dieser Form an u¨ bergeben. Die Permutation ( permuted choice) streicht diese Parity Bits wieder und vertauscht die u¨ brigen 56 Bits, wie es durch die Tafel 4.1.6 angegeben wird.
55
4. Moderne symmetrische Verfahren 57 1 10 19 63 7 14 21
49 58 2 11 55 62 6 13
41 50 59 3 47 54 61 5
33 42 51 60 39 46 53 28
25 34 43 52 31 38 45 20
17 26 35 44 23 30 37 12
9 18 27 36 15 22 29 4
Tafel 4.1.6: Schl¨usselpermutation
Das Ergebnis wird in , werden dann durch
und
bzw.
zu je 28 Bits aufgeteilt.
und
berechnet. ist eine zirkul¨are Linksverschiebung um eine Anzahl von Positionen, die durch die folgende Tafel angegeben ist: Iteration Anzahl von zirkul¨aren Linksverschiebungen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1
1
2
2
2
2
2
2
1
2
2
2
2
2
2
1
Tafel 4.1.7: Anzahl der Linksverschiebungen f¨ur verschiedene Schl¨ussel
, ergibt sich nun durch Dabei ist die Permutation durch die folgende Tafel dargestellt: Der Schl¨ussel
14 3 23 16 41 30 44 46
17 28 19 7 52 40 49 42
11 15 12 27 31 51 39 50
24 6 4 20 37 45 56 36
1 21 26 13 47 33 34 29
5 10 8 2 55 48 53 32
Tafel 4.1.8: Schl¨usselpermutation
Durch werden die Bits auf den Positionen 9, 18, 22, 25, 35, 38, 43 und 54 entfernt. Insgesamt ist damit die Chiffrierung dargestellt.
56
4.1. Der DES
Bild 4.1.3: Schl¨usselberechnung
57
4. Moderne symmetrische Verfahren Die Dechiffrierung erfolgt nach demselben Schema (siehe Bild 4.1.2). Dabei werden die Schl¨ussel allerdings in der umgekehrten Reihenfolge benutzt: in der ersten, in der zweiten, . . . , in der sechzehnten Iteration. Wir wollen uns klarmachen, daß hierdurch tats¨achlich die Dechiffrierung bestimmt ist. Bei der Berechnung von kommt in der Mitte vor. Nach der Ausf¨uhrung von 16 Iterationen von kann also die erste Iteration von angewendet werden, was durch das folgende Bild dargestellt wird.
!
Allgemein gilt nach dem Bild 4.1.2 von Seite 54 f¨ur
exklusives Oder).
Nach der sechzehnten Iteration, die mit dem Schl¨ussel mehr vertauscht. Daraus folgt
Die Anwendung von
und
auf
erfolgt, werden
und
nicht
liefert dann .
Der DES ist als injektive Abbildung von 64-Bit-Bl¨ocken auf 64-Bit-Bl¨ocke eine Permutation. Folglich ergibt sich bei wiederholter Anwendung irgendwann wieder der urspr¨ungliche Klartext. Die kleinste Anzahl von Anwendungen, bei der wir wieder den Klartext erhalten, nennen wir die Zyklenl¨ange. Es gibt Schl¨ussel mit kleiner Zyklenl¨ange. So existieren zum Beispiel 4 Schl¨ussel mit Zyklenl¨ange 2. Die Wahl eines solchen Schl¨ussels ist jedoch sehr unwahrscheinlich. Der DES ist sowohl in Soft- als auch in Hardware implementiert. Bei der HardwareImplementierung liegt die Chiffrierungsrate bei einigen Millionen Bits pro Sekunde (bps). M¨ogliche Schw¨achen des DES bestehen darin, daß 58
4.1. Der DES (1) die Schl¨usselgr¨oße von 56 Bits eventuell nicht ausreichend ist, um den DES berechnungs-sicher zu machen und (2) die -Boxen vielleicht versteckte Fallt¨uren (trapdoors) enthalten, mit deren Hilfe die Chiffre auch ohne Kenntnis des Schl¨ussels zu brechen ist.
¨ Durch systematisches Probieren aller m¨oglichen Schl¨ussel und Uberpr¨ ufung, ob sich dadurch ein vern¨unftiger Klartext ergibt, k¨onnte die Chiffre gebrochen werden. In der Tat ist die Schl¨usselgr¨oße von 56 Bits eine Schw¨ache. Diffie und Hellman [23] haben gezeigt,
Schl¨ussel an eidaß ein Spezialrechner mit einer Million LSI-Chips alle nem Tag probieren kann. Ein Chip probiert dabei einen Schl¨ussel pro Mikrosekunde, was Schl¨usseln pro Tag entspricht. Die Kosten einer solchen Maschine betragen nach ihrer Absch¨atzung 20 Millionen US-Dollar. Amortisiert u¨ ber 5 Jahre sind dies 10000 USDollar pro Tag, also auch 10000 US-Dollar f¨ur eine L¨osung. Dieser Wert reduziert sich auf etwa 5000 US-Dollar, da im Mittel nur die H¨alfte aller Schl¨ussel durchsucht zu werden braucht. Die Absch¨atzung der durchschnittlichen Suchzeit wurde sp¨ater [21] auf zwei Tage erh¨oht. Dabei wurde der Einsatz einer Maschine, die dem technologischen Stand von 1980 entsprach, angenommen. Zum damaligen Zeitpunkt h¨atte sie etwa 50 Millionen USDollar gekostet. Mit der heutigen VLSI-Technologie, den schnelleren und billigeren Rechnern und gr¨oßeren Speicherkapazit¨aten sind die Kosten deutlich geringer anzusetzen. 1993 sch¨atzte man den Preis einer Maschine, die innerhalb von Stunden mit diesem BruteForce-Angriff aus dem Chiffretext den Klartext liefert, auf 1 Million Dollar. 1998 wurde f¨ur die US-B¨urgerrechtsorganisation Electronic Frontier Foundation (EFF) f¨ur 250000 Dollar ein Spezialrechner mit fast 2000 Prozessoren gebaut, der in 56 Stunden den DES-Code knacken kann. Bei tats¨achlich wichtigen Texten w¨urde sich der Aufwand der Benutzung dieser Maschine lohnen, auch im Zusammenhang mit dem elektronischen Zahlungsverkehr, sicherlich jedoch nicht f¨ur harmlose E-Mails. Der DES kann also eigentlich nicht mehr als sicher angesehen werden. Dar¨uber hinaus sind inzwischen weitere Ans¨atze zur Kryptoanalyse des DES vorgeschlagen worden (siehe z.B. [9], [10]), die eine wesentliche Verbesserung gegen¨uber der oben beschriebenen ausf¨uhrlichen Suche darstellen. Diesen Suchstrategien kann allerdings zum Teil mit dem Cipher-Block-Chaining (siehe Abschnitt 4.3) entgegengewirkt werden.
Zur gr¨oßeren Sicherheit wurde eine Verdoppelung der Schl¨usselgr¨oße auf 112 Bits empfohlen. Da die Suchzeit exponentiell mit der Anzahl der Bits steigt, kann die Chiffre berechnungs-sicher werden. Eine andere Empfehlung [113] besteht darin, das Chiffreschema mit zwei unterschiedlichen Schl¨usseln wie in dem Bild von Seite 59 zu benutzen. Dies Verfahren wird auch Tripel-DES genannt. Ein Brute-Force-Angriff hat hier keine Chance
mehr, denn der Aufwand ist sehr viel gr¨oßer als beim normalen DES (wenn auch nicht mal so groß, wie man vielleicht zun¨achst denken m¨ochte).
59
4. Moderne symmetrische Verfahren
Verschl¨usselung
Klartext
Chiffretext
Entschl¨usselung
Bild 4.1.4: Mehrfachchiffrierung mit DES
4.2 IDEA Beliebt ist heute auch ein anderes Chiffrierverfahren, und zwar der IDEA (International Data Encryption Algorithm) aus dem Jahre 1992 (siehe z.B. [117], [96]), der auch in der Software PGP (Pretty Good Privacy) verwendet wird. Der IDEA verschl¨usselt Klartextbl¨ocke der L¨ange 64 Bit mit einem Schl¨ussel von 128 Bit. Auch hier findet eine Vermischung unterschiedlicher Operationen statt. Chiffrierung und Dechiffrierung erfolgen wie bei dem DES mit demselben Schl¨ussel. Es handelt sich also auch hier um ein symmetrisches Chiffrierverfahren. Ein wesentliches Konzept von IDEA ist es, daß Operationen aus verschiedenen alge
braischen Gruppen der Ordnung gemischt werden. Die entsprechenden Operationen auf Teilbl¨ocken der Bitl¨ange 16 sind die folgenden: (1) Das exklusive Oder . In der entsprechenden Gruppe ist das Nullelement und jedes Element ist sein eigenes Inverses.
. (2) Die Addition modulo , d.h. die u¨ bliche Addition in der zyklischen Gruppe (die reduzierte Menge der (3) Die (modifizierte) Multiplikation in der Gruppe
Reste modulo ), die ebenfalls Elemente besitzt, da eine Primzahl ist. Dabei wird die Zahl , falls sie sich bei Rechnungen in den beiden vorhergehenden
Gruppen ergibt, durch ersetzt. Ergibt sich bei Rechnungen in dieser Gruppe ,
so wird sie durch ersetzt. In diesem Sinn werden und identifiziert. Man kann zeigen, daß zwischen den verschiedenen Operationen keine Distributiv- oder Assoziativgesetze gelten. Diese Operationen sind die einzigen, die in IDEA vorkommen. Es gibt keine Vertauschungen auf Bitebene, wie es im DES der Fall war. Der gegebene Klartext aus 64 Bits wird in vier 16-Bitbl¨ocke , , und aufgeteilt und in das Sche ma von Bild 4.2.1 eingegeben. Insgesamt werden 8 Runden mit jeweils 6 verschiedenen
60
4.2. IDEA 16-Bit-Teilschl¨usseln ausgef¨uhrt. Bei der abschließenden Ausgabetransformation werden 4 Teilschl¨ussel verwendet. Es werden 4 16-Bitbl¨ocke ausgegeben, die zusammen den Chiffretext bestimmen. M1
M3
M2
K 1(1)
K 2(1)
M4
K 3(1)
K 4(1)
K 5(1)
Runde 1 K 6(1)
Runde r (2 ≤ r ≤ 8)
K 1(9)
K 2(9)
C1
C2
K 3(9)
K 4(9)
C3
Ausgabetransformation
C4
Bild 4.2.1: Berechnungen bei IDEA Wir m¨ussen noch sagen, wie die insgesamt 52 16-Bit-Teilschl¨ussel aus dem 128-BitSchl¨ussel bestimmt werden. Dies geschieht nach dem folgenden
Algorithmus 4.2.1 Eingabe: 128-Bit-Schl¨ussel Ausgabe: 52 16-Bit-Teilschl¨ussel in der Reihenfolge
(1) Teile in acht 16-Bit-Teilschl¨ussel auf und weise diese direkt den ersten 8 Teilschl¨usseln zu. (2) Bis alle 52 Teilschl¨ussel zugewiesen sind, f¨uhre die folgenden Schritte wiederholt aus: f¨uhre auf einen zyklischen Linksshift um 25 Positionen durch;
61
4. Moderne symmetrische Verfahren teile das Ergebnis in acht 16-Bitbl¨ocke ein; weise das Ergebnis den n¨achsten 8 Teilschl¨usseln zu.
Die Dechiffrierung erfolgt bei IDEA nach demselben Schema wie die Verschl¨usselung, wobei die Teilschl¨ussel im wesentlichen in der umgekehrten Reihenfolge verwendet werden, wird ein Teilschl¨ussel jedoch zum Teil auch ihre Inversen. F¨ur jeden Teilschl¨ussel nach dem folgenden Schema bestimmt: Runde
das additive Inverse von modulo und das multiDabei ist , das gem¨aß Algorithmus 3.3 bestimmt wird. Anplikative Inverse von modulo schließend wird im Schema von Bild 4.2.1 der Schl¨ussel anstelle von benutzt. Daß dadurch tats¨achlich das Inverse bestimmt wird, ist nicht so unmittelbar wie bei dem DES zu erkennen. Bei einer Vorl¨auferversion von IDEA (siehe [57]) war das noch der Fall. Das Schema war im wesentlichen dasselbe, allerdings mit etwas anderen Verbindungen von Runde zu Runde. Wegen einer Schw¨ache gegen¨uber einem bestimmten Ansatz der Kryptoanalyse wurde das Verfahren dann umge¨andert.
4.3 Blockchiffren Zwar hat IDEA eine Schl¨ussell¨ange von 128 Bits und ist daher als viel sicherer anzusehen als der DES. Eine Schw¨ache von beiden Verfahren ist jedoch die geringe Anzahl von Bits, die jeweils chiffriert werden, n¨amlich 64. Das bedeutet, daß nur 8 Buchstaben gemeinsam verschl¨usselt werden. Beide Verfahren geh¨oren zur Klasse der Blockchiffren. in aufeinanderfolgende Bl¨ocke , auf Eine Blockchiffre bricht den Klartext mit demselben Schl¨ussel , d. h. und chiffriert jedes
Jeder Block ist normalerweise mehrere Zeichen lang. Diese Art des Vorgehens wird auch Chiffrieren im ECB-Modus (Electronic-Codebook) genannt. Beispiel 4.3.1 Chiffre Transposition mit Periode einfache Substitution homophone Substitution Playfair-Chiffre -Matrix Hill-Chiffre mit DES, IDEA Exponentiation (siehe Kapitel 5.2) Knapsack der L¨ange (siehe Kapitel 11)
62
Blockgr¨oßen Buchstaben 1 Buchstabe 1 Buchstabe 2 Buchstaben Buchstaben 64 Bits Bits (Empfehlung: 1028 Bits)
Bits (Empfehlung: 200 Bits)
4.3. Blockchiffren
keine ¨ Bei Blockchiffren im ECB-Modus hat ein Ubertragungsfehler in einem Block Auswirkungen auf die anderen Bl¨ocke. Blockchiffren sind teilweise anf¨allig f¨ur Kryptoanalyse, da gleiche Klartextbl¨ocke auch gleiche Chiffretextbl¨ocke liefern. Dies kann bedeuten, daß ggf. Bl¨ocke von Leerzeichen oder Schl¨usselw¨ortern identifiziert und f¨ur einen Angriff mit bekanntem Klartext verwendet werden k¨onnen. Wir u¨ berlegen uns, was passieren kann, wenn eine Blockchiffre in einem Datenbanksystem verwendet wird. Die Chiffrierung eines jeden Feldes in einem Record als einzelner Block ist ung¨unstig. Falls die Felder nicht vollst¨andig belegt sind, m¨ussen sie durch Leerzeichen aufgef¨ullt werden. Damit sind i. allg. Platzprobleme verbunden, und es bestehen, wie oben erw¨ahnt, unter Umst¨anden Identifizierungsm¨oglichkeiten. Wird die Chiffrierung mit kleineren Bl¨ocken durchgef¨uhrt, ist sie leichter zu brechen. Selbst wenn die Felder gef¨ullt sind und eine Kryptoanalyse nicht m¨oglich ist, kann durch Betrachtung des Chiffretextes eventuell Information zur¨uckgewonnen werden. Man betrachte in diesem Zusammenhang eine Datenbank mit pers¨onlichen Daten. Sie beinhalte u. a. ein unverschl¨usseltes Namensfeld und ein verschl¨usseltes Gehaltsfeld. Die Gehaltsfelder sind mit demselben Schl¨ussel in einem Block chiffriert. Ein Benutzer kann jeden pers¨onlichen Record identifizieren und so feststellen, ob zwei Mitarbeiter jeweils das gleiche Gehalt verdienen. Daraus wird deutlich, daß auch nichtvertrauliche Information verschl¨usselt werden muß. Eine Block-Chiffrierung ist anf¨allig gegen ein Replay“. Falls jeder Block unabh¨an” gig mit demselben Schl¨ussel chiffriert wird, kann ein Block f¨ur einen anderen eingesetzt werden.
vor Replay Gehalt
Meier
5000 DM
Gehalt
M¨uller
1000 DM
5000 DM
Gehalt
M¨uller
5000 DM
nach Replay Gehalt
Meier
Bild 4.3.1: Replay In einer Gehaltsdatenbank kann ein Benutzer sich selber eine Gehaltserh¨ohung verschaffen, indem er das Gehaltsfeld eines besser bezahlten Mitarbeiters auf sein eigenes Gehaltsfeld kopiert. Eine Blockchiffrierung ist somit anf¨allig f¨ur das Einf¨ugen und L¨oschen von Blocks, da keine umgebenden Bl¨ocke beeinflußt werden. Es ist sicherlich schwierig, einen falschen Chiffretext f¨ur einen normalen Text zu erzeugen. Bei numerischen Daten ist das dagegen einfach. Wenn z. B. eine Zahl nur sein muß, reicht irgendeine Zahl, die verschl¨usselt wird. Zur Verhinderung eines solchen Vorgehens werden z. B. Pr¨ufsummen benutzt.
63
4. Moderne symmetrische Verfahren Im folgenden werden Verfahren vorgestellt, die Blockchiffren gegen¨uber Kryptoanalyse und Chiffretextsubstitution, einschließlich Replay, sicherer machen. Wir beginnen mit dem Cipher-Block-Chaining (CBC) (betrachte dazu das Bild 4.3.2). Algorithmus 4.3.1 (CBC) Eingabe: -Bit-Schl¨ussel
. (2) Dechiffrierung:
; for to do .
,
-Bit Initialisierungsvektor IV,
-Bit-Klartextbl¨ocke
(1) Chiffrierung: ; for to do
Offenbar gilt tats¨achlich
Jeder Chiffretextblock wird aus und dem vorhergehenden Chiffretextblock berechnet. Jedes ist damit funktional abh¨angig von allen anderen vorhergehenden Chiffretextbl¨ocken. Eine Umordnung der Chiffretextbl¨ocke ber¨uhrt die Dechiffrierung. Korrekte Dechiffrierung eines korrekten Chiffretextblocks verlangt, wie man sofort sieht, einen korrekten vorhergehenden Chiffretextblock. Die statistischen Eigenschaften des Klartextes werden u¨ ber den ganzen Chiffretext verstreut, wodurch die Kryptoanalyse schwieriger wird.
IV
IV
Bild 4.3.2: Cipher-Block-Chaining 64
FeedbackRegister
4.3. Blockchiffren
¨ Die Ubertragung eines einzigen falschen Bits in ber¨uhrt bei der Dechiffrierung die Bl¨ocke und . Der Klartextblock , den man dann erh¨alt, ist typischerweise v¨ollig zuf¨allig, wohingegen offenbar die Bitfehler an genau denselben Stellen wie hat. Ein Gegner kann so durch Manipulation an vorhersagbare Bitfehler in veranlassen. Der CBC-Modus ist selbstsynchronisierend in dem Sinn, daß, falls ein Fehler (ebenso bei Verlust eines oder mehrerer ganzer Bl¨ocke) in Block auftritt, aber nicht in , wieder korrekt zu dechiffriert wird (s.o.). Das Chaining kann auf einzelne Records oder auf eine Menge von Records (RecordChaining) angewendet werden. Im ersten Fall wird ein Feedback-Register zu Beginn eines jeden Records auf gesetzt. Im zweiten Fall beh¨alt das Feedback-Register seinen Wert u¨ ber die Recordgrenzen hinaus. Gleiche Zeilen eines Files werden verborgen. Bei einem Zugriff auf einzelne Records m¨ussen jedoch erst alle vorhergehenden Records dechiffriert werden. W¨ahrend bei einer -Bit-Chiffre beim CBC-Modus Bits auf einmal behandelt werden, , -Bit-Klartexteinheiten verschl¨usselt gibt es Anwendungen, wo f¨ur ein festes , und ohne Verz¨ogerung u¨ bertragen werden m¨ussen (oft ). In diesen F¨allen oder kann der Cipher-Feedback-Modus (CFB) verwendet werden (betrachte dazu das Bild 4.3.3).
Algorithmus 4.3.2 (CFB) ussel , -Bit Initialisierungsvektor IV, -Bit-Klartextbl¨ocke Eingabe: -Bit-Schl¨ ( ) (1) Chiffrierung: ; ist der Eingabewert eines Shiftregisters for to do begin ; Berechne die Ausgabe mit Hilfe der Blockchiffre (a) (b) die linkesten Bits von Annahme: linkestes Bit ist 1 (c) ; Gebe den -Bit-Chiffretextblock weiter (d) Schiebe in das rechte Ende des Registers end. (2) Dechiffrierung: ; for to do nach jeweiligem Erhalt von : , wobei , und wie in (1) berechnet werden.
Offensichtlich gilt
da das bei der Dechiffrierung genauso wie bei der Chiffrierung berechnet wird und so denselben Wert hat. und ¨ Ahnlich wie bei der CBC-Verschl¨usselung h¨angt jeder Chiffretextblock von den vorhergehenden Klartextbl¨ocken ab. Eine Umordnung der Chiffretextbl¨ocke ber¨uhrt die Dechiffrierung. Korrekte Dechiffrierung eines korrekten Chiffretextblocks verlangt, daß die vorhergehenden Chiffretextbl¨ocke korrekt sind. In diesem Fall enth¨alt das Schieberegister die richtigen Werte. Wie der CBC-Modus ist der CFB-Modus selbstsynchronisierend. Es werden jedoch korrekte Bl¨ocke verlangt.
65
4. Moderne symmetrische Verfahren
Bild 4.3.3: Cipher-Feedback
Da die Chiffrierfunktion sowohl zur Chiffrierung als auch zur Dechiffrierung benutzt wird, kann der CFB-Modus nicht benutzt werden, wenn die Blockchiffre ein Public-KeyAlgorithmus (siehe z.B. Kapitel 5.2) ist. In diesem Fall muß der CBC-Modus verwendet werden. Ein oder mehrere Fehler in einem einzigen Chiffretextblock pflanzen sich bei der Dechiffrierung zu Fehlern von und den folgenden Klartextbl¨ocken fort. un an genau den fehlerhaften Bitpositionen von , wohingegen die terscheidet sich von anderen Bl¨ocke v¨ollig zuf¨allig sind. Ein Gegner kann also durch Manipulation an den Bits veranlassen. von einen vorhersagbaren Bitfehler an ¨ F¨ur Anwendungen, bei denen solche Fortpflanzungen von Ubertragungsfehlern vermieden werden m¨ussen, ist der Output-Feedback-Modus (OFB) geeignet. Er ist a¨ hnlich dem CFB-Modus, erlaubt wie dieser die Chiffrierung von Bl¨ocken verschiedener Gr¨oße, aber f¨ur den Feedback wird der Chiffretext u¨ berhaupt nicht mehr benutzt (betrachte dazu auch das Bild 4.3.4).
Algorithmus 4.3.3 (OFB) ussel , -Bit Initialisierungsvektor IV, -Bit-Klartextbl¨ocke Eingabe: -Bit-Schl¨ ( ) (1) Chiffrierung: ; ist der Eingabewert eines Shiftregisters for to do begin (a) ; Berechne die Ausgabe mit Hilfe der Blockchiffre (b) die linkesten Bits von Annahme: linkestes Bit ist 1 (c) ; Gebe den -Bit-Chiffretextblock weiter (d) Bereite die Blockchiffre-Eingabe f¨ur den n¨achsten Block vor end.
66
4.3. Blockchiffren
(2) Dechiffrierung: ; for to do nach jeweiligem Erhalt von : , wobei , und wie in (1) berechnet werden.
Bild 4.3.4: Output-Feedback
Der Schl¨usselstrom, der hier f¨ur die Bildung des exklusiven Oders verwendet wird, ist v¨ollig unabh¨angig vom Klartext. Das bedeutet, daß der Initialisierungsvektor IV ge¨andert werden sollte, wenn derselbe Schl¨ussel verwendet wird. Man erh¨alt sonst denselben ¨ Schl¨usselstrom, und es kann eventuell einen erfolgreichen Angriff nach den Uberlegungen von Seite 30 und den folgenden Seiten geben. Es ist klar, daß es beim OFB-Modus keine Fehlerfortpflanzung gibt, sondern daß ein nur an genau denselben Bitpositionen wie in vorkommen kann. Ein Verlust Fehler in von Bits bringt jedoch die Zuordnung des u¨ brigen Textes zum Schl¨usselstrom durcheinander, so daß in diesem Fall eine explizite Resynchronisation erforderlich wird. Als n¨achstes betrachten wir Blockchiffren mit Teilschlu¨ sseln [18]. Eine Datenbank wird als Menge von Records zu je Feldern modelliert. Jedes Record wird als Einheit chiffriert, dabei sind alle Felder u¨ ber den Chiffretext verstreut. Die individuellen Felder k¨onnen getrennt dechiffriert werden, obwohl daf¨ur der Zugang zum ganzen Chiffretextrecord erforderlich ist. Diese Methode ist sicher gegen¨uber vielen denkbaren Angriffen. F¨ur den Zugang zu den speziellen Feldern sind Teilschl¨ und zwar Leseteilschl¨ussel und Schreibteilschl¨ussel u ssel erforderlich, . Diese Teilschl¨ussel sind global f¨ur die Datenbank, d. h., alle Records werden mit denselben Teilschl¨usseln chiffriert. Jeder Benutzer besitzt nur die Teilschl¨ussel f¨ur die Felder, die er lesen oder beschreiben darf. Zun¨achst folgt eine vereinfachte, aber unsichere Version des
67
4. Moderne symmetrische Verfahren
Schemas, die auf dem Chinesischen Restesatz (Satz 3.14) beruht. Jedes wird als zuf¨allige Primzahl, die gr¨oßer als der maximal m¨ogliche Wert des Feldes ist, gew¨ahlt. Es sei . Die m¨ussen paarweise verschieden (also teilerfremd) sein. Dann setzen wir
wobei inv habe die Felder
Hilfe von Algorithmus 3.3 bestimmt wird. Der Klartextrecord
mit . Die Chiffrierung wird durch
beschrieben. Nach dem Beweis von Satz 3.14 ist die L¨osung des Gleichungssystems
KlartextRecord
. . .
. . .
. . .
. . .
Verschl¨usselung
ChiffretextRecord
KlartextFeld
Entschl¨usselung
Bild 4.3.5: Chiffrierung und Dechiffrierung mit Teilschl¨usseln 68
4.3. Blockchiffren
Damit ist gesichert, daß das -te Feld nur mit dem Teilschl¨ussel dechiffriert werden kann. Das -te Feld kann ge¨andert werden, wenn und zusammen bekannt sind, n¨amlich
Dabei ist
der neue Wert des -ten Feldes.
,
Beispiel 4.3.2 Es seien . Dann folgt
,
inv inv
inv
Damit erhalten wir
Der Klartextrecord sei
und
gegeben. Es ist also
inv inv inv
. Dann ergibt die Chiffrierung
Die Dechiffrierung der Felder liefert
¨ Die Anderung des Inhalts des zweiten Feldes von 10 auf 8 wird durch
¨ chiffriert. Nach dieser Anderung gilt
Das beschriebene Schema hat zwei Schw¨achen: 69
4. Moderne symmetrische Verfahren
(1) Es sei der Wert des -ten Feldes im -ten Record. Wenn ein Benutzer f¨ur zwei die Werte und kennt, dann kann er den Leseteilschl¨ussel Records und aus den Chiffretexten und bestimmen. Aus der Gleichung folgt n¨amlich
mit geeigneten Werten f¨ur bzw. . Mit großer Wahrscheinlichkeit ist nun ggt
Diese Schw¨ache kann durch das Anh¨angen eines zuf¨alligen 32- oder gr¨oßeren BitWertes an vor der Chiffrierung behoben werden. Damit wird zu . Die Chiffrierung erfolgt durch
¨ (2) Durch individuelle Anderungen der einzelnen Felder k¨onnen ggf. Leseteilschl¨ussel aufgedeckt werden. Abhilfe schafft hier die Neuchiffrierung des ganzen Records mit neuen zuf¨alligen Werten f¨ur alle Felder. Zum Beschreiben eines Feldes werden sowohl der Lese- als auch der Schreibteilschl¨ussel ben¨otigt. Mit der Erlaubnis zum Beschreiben eines Feldes hat ein Benutzer A auch automatisch die Erlaubnis zum Lesen. Dies ist auch sonst u¨ blich. Zum Beschreiben eines Feldes ben¨otigt A zus¨atzlich . Damit kann A mit Hilfe der Definition von auf Seite 68 auch die Schreibteilschl¨ussel f¨ur solche Felder berechnen, f¨ur die A nur Leseteilschl¨ussel besitzt. Das ist allerdings un¨ublich. Um das zu verhindern, muß in dem Programm, das den Zugang zu der Datenbank gew¨ahrt, verborgen sein. Zum Lesen eines Feldes ruft A eine Leseprozedur auf und u¨ bergibt dabei den Leseteilschl¨ussels . Zum Beschreiben eines Feldes ruft A eine Schreibprozedur auf und u¨ bergibt dabei die Parameter , und . Da aus und berechnet wird, kann jede Gruppe von Benutzern, die Zugang zu allen und damit alle Schreibteilschl¨ussel beLeseteilschl¨usseln hat, die Zahl rechnen. Zur Verhinderung werden in jedes Record Dummy-Felder eingef¨ugt. Die Lese- und Schreibteilschl¨ussel dieser Felder sind f¨ur keinen Benutzer zug¨anglich.
70
5 Public-Key-Kryptosysteme und Exponentiationschiffren 5.1 Public-Key-Kryptosysteme Public-Key-Kryptosysteme wurden 1976 von Diffie und Hellman [22] eingef¨uhrt. Jeder Benutzer eines solchen Systems hat einen o¨ ffentlichen und einen privaten Schl¨ussel. Die Kommunikation zweier Benutzer erfolgt unter der Kenntnis der gegenseitigen o¨ ffentlichen Schl¨ussel. Jeder Benutzer A besitzt eine o¨ ffentliche Chiffriertransformation und eine private Dechiffriertransformation . wird durch den zugeh¨origen privaten Schl¨ussel, durch den zugeh¨origen o¨ ffentlichen Schl¨ussel beschrieben. Das System stellt allen Benutzern zur Verf¨ugung (z. B. durch Registrierung in einem o¨ ffentlichen Directory), ist dagegen nur A bekannt. Die Chiffriertransformation muß aus leicht berechenbar sein, die Umkehrung sollte jedoch schwer sein, d. h. praktisch nicht berechenbar. Die Geheimhaltung (siehe Abschnitt 1.2) in einem Public-Key-Kryptosystem wird durch das folgende Bild veranschaulicht:
o¨ ffentlich
privat
Benutzer A
Benutzer B
Alice (A) m¨ochte an Bob (B) eine private Nachricht schicken. A kennt B’s o¨ ffentlichen Schl¨ussel und damit . A bildet den Chiffretext und sendet ihn B. Nur B kennt die Dechiffrierfunktion und kann damit den Text entschl¨usseln:
Allerdings kann B nicht sicher sein, daß der Text von A stammt. Die Authentizit¨at (ohne Geheimhaltung) ergibt sich aus dem folgenden Bild:
privat
Benutzer A
o¨ ffentlich
Benutzer B
71
5. Public-Key-Kryptosysteme und Exponentiationschiffren Dabei sind gegen¨uber den Ausf¨uhrungen u¨ ber Authentizit¨at in Abschnitt 1.2 die Abbildun zu B. Durch die o¨ ffentliche Transformagen und vertauscht. A sendet tion kann B den Klartext zur¨uckgewinnen, n¨amlich
kennt, kann diese Nachricht
Jeder Benutzer, der lesen. Sollen nun Geheimhaltung und Authentizit¨at gleichzeitig gew¨ahrleistet werden, so werden folgende Forderungen an die Public-Key-Transformationen gestellt: Geheimhaltung
Authentizit¨at
Geheimhaltung & Authentizit¨at
Die Voraussetzung f¨ur gleichzeitige Geheimhaltung und Authentizit¨at ist, daß der Chiffreraum und der Nachrichtenraum u¨ bereinstimmen. Die Vorgehensweise erl¨autert das folgende Bild:
privat
o¨ ffentlich
privat
o¨ ffentlich
Benutzer A
Benutzer B Geheimhaltung Benutzerauthentizit¨at
Einige Systeme, die diesen Forderungen gen¨ugen, werden in den n¨achsten Abschnitten diskutiert. Wir kommen nun auf Anwendungen von Public-Key-Kryptosystemen zu sprechen. Wir betrachten zun¨achst digitale Signaturen. Eine elektronische Unterschrift muß sowohl von der Nachricht als auch vom Unterzeichner abh¨angen. Anderenfalls k¨onnte der Empf¨anger ja die Nachricht ab¨andern oder die Signatur an eine beliebige Nachricht anh¨angen, bevor er das Paar aus Nachricht und Signatur im Streitfall einem Richter vorweist. Wir geben jetzt ein Protokoll an, wie Alice (A) an Bob (B) eine unterzeichnete Nachricht schicken kann. Protokoll 5.1.1 durch die Berechnung von (1) Alice unterzeichnet . (2) Bob pr¨uft die Unterschrift von Alice durch die Berechnung von . Ist ein vern¨unftiger Klartext, so weiß Bob, daß Alice ihm geschickt hat, denn niemand erzeugen. anders als Alice kennt und kann (3) In einem Streitfall zwischen Alice und Bob kann ein neutraler Richter u¨ berpr¨ufen, ob gilt.
72
5.1. Public-Key-Kryptosysteme Damit ist die Authentizit¨at von Nachricht und Signatur gew¨ahrleistet. Durch zus¨atzliche Verwendung der Schl¨ussel von Bob kann auch wie oben die Geheimhaltung erreicht werden. Konventionelle Systeme wie der DES gew¨ahrleisten die Datenauthentizit¨at, nicht jedoch die Authentizit¨at des Senders. Empf¨anger und Sender teilen jeweils denselben Schl¨ussel, und der Empf¨anger k¨onnte die Signatur des Senders f¨alschen, da beide und kennen. Um Abhilfe zu schaffen, muß eine vertrauensw¨urdige dritte Partei S zur Verf¨ugung stehen. Jeder Benutzer A l¨aßt seine privaten Transformationen und bei S registrieren. Die Vorgehensweise wird durch das folgende Bild erl¨autert:
A
B
S
B
an B, der an S zur Entschl¨usselung verm¨oge weitergibt. A sendet Dadurch u¨ berpr¨uft S die Authentizit¨at des Senders. B erh¨alt von S die verschl¨usselte Nach , aus der er den Klartext gewinnen kann. richt Wir wollen noch Anwendungen von digitalen Signaturen angeben.
Beispiel 5.1.1 Alice Bank erh¨alt auf elektronischem Weg den Auftrag, 100000 DM abzubuchen. Nach Anwendung des oben beschriebenen Authentifizierungsverfahrens kann die Bank sicher sein, daß Alice die Auftraggeberin ist. In einem Streitfall kann die Bank den Beweis f¨ur den Auftrag liefern. Hierbei m¨ussen zus¨atzlich auch die Geheimhaltungsanforderungen erf¨ullt sein.
Beispiel 5.1.2 Zwei L¨ander schließen ein Nuklearteststop-Abkommen. Es wird ein System zur Kontrolle dieses Abkommens angegeben. Jede Nation installiert im anderen Land ei¨ ne seismische Uberwachungsstation. Sie u¨ bermittelt die Daten an eine Kontrollinstanz im eigenen Land. Es werden drei Forderungen gestellt: (1) Die Kontrollinstanz muß sicher sein, daß die empfangene Information aus der eigenen Station stammt und nicht ver¨andert wurde. Dies ist die Forderung der Sender- und Datenauthentizit¨at. (2) Das Land, in dem die Station steht, muß sicher sein, daß diese nicht f¨ur andere Zwecke benutzt wird. Es muß die u¨ bertragenen Nachrichten lesen k¨onnen. (3) Keine der Nationen darf Nachrichten produzieren k¨onnen, die aus irgendeiner dieser Stationen stammen k¨onnten. Die Vereinten Nationen m¨ussen einen Streit schlichten k¨onnen. Die Forderungen sind erf¨ullt, falls ein Public-Key-Authentifizierungssystem benutzt wird, bei dem der private Schl¨ussel keiner Nation bekannt ist und beide den o¨ ffentlichen Schl¨ussel kennen.
Wir werden sp¨ater sehen, wie einige Probleme, die bei diesen Protokollen offen bleiben und in der tats¨achlichen Praxis von sehr großer Bedeutung sind, gel¨ost werden k¨onnen. So 73
5. Public-Key-Kryptosysteme und Exponentiationschiffren
stellt sich zum Beispiel die Frage, ob das Schl¨usselpaar tats¨achlich zu Alice geh¨ort und nicht zu dem Betr¨uger Oskar, der behauptet, Alice zu sein. Diese Fragen werden wir in den Abschnitten 7.2, 9.1 und 12.1 behandeln. Außerdem ist der Rechenaufwand bei der direkten Durchf¨uhrung von Protokoll 5.1.1 in den meisten F¨allen zu aufwendig. Daher wird in der Praxis ein abgewandeltes Authentifizierungsverfahren verwendet, das wir in Kapitel 6 in Protokoll 6.1.1 darstellen werden. Daneben werden wir in Abschnitt 8.2 Protokolle betrachten, die es erm¨oglichen, elektronisch Vertr¨age auszutauschen. Da dieser Austausch gleichzeitig“ erfolgen muß, reicht Protokoll ” 5.1.1 (oder Protokoll 6.1.1) f¨ur diese Aufgabe nicht aus.
5.2 Exponentiationschiffren Eine Exponentiationschiffre verschl¨usselt einen Nachrichtenblock
durch
wobei , die Schl¨ussel der Chiffre sind. Die Dechiffrierung erfolgt mit einem weiteren Exponenten durch
, und m¨ussen so gew¨ahlt werden, daß die Dechiffrierung das Inverse der Chiffrierung ist. Chiffrierung und Dechiffrierung k¨onnen durch den schnellen Exponentiationsalgorithmus (Algorithmus 3.1) implementiert werden, also
fastexp
und
fastexp
Die Werte , und k¨onnen verschieden gew¨ahlt werden, jedoch so, daß sie die Voraussetzungen des folgenden Satzes erf¨ullen.
Satz 5.2.1 Gegeben seien , , mit Nachricht mit ggt . Dann folgt
Beweis. Aus folgt, daß ein
existiert mit
Damit schließen wir
. Es sei eine
74
(Satz 3.9)
5.2. Exponentiationschiffren
Aufgrund der Symmetrie von und sind die Chiffrierung und die Dechiffrierung kommutativ. Es gilt also auch
Diese Symmetrie erm¨oglicht es, das in Algorithmus 5.2.4 und Algorithmus 5.2.5 beschriebene Verfahren sowohl f¨ur Geheimhaltung als auch f¨ur Authentizit¨at in einem Public-KeyKryptosystem zu benutzen. Zun¨achst betrachten wir jedoch ein symmetrisches Chiffrierverfahren. Algorithmus 5.2.1 (Schl¨usselerzeugung f¨ur das Pohlig-Hellman-Schema) Es wird ein (geheimes) Schl¨usselpaar f¨ur die Teilnehmer erzeugt Primzahl . (1) Erzeuge eine große ggt (2) W¨ahle eine Zahl mit und als Chiffrierschl¨ussel. (3) Berechne den Dechiffrierschl¨ussel mit Hilfe von Algorithmus 3.3. , der Dechiffrierschl¨ gegeben. (4) Der Chiffrierschl¨ussel ist durch ussel durch
Wie man eine große Primzahl erh¨alt, werden wir ab Seite 79 ausf¨uhrlich darstellen.
f¨ur Alice, die diese dechiffriert Algorithmus 5.2.2 Bob chiffriert eine Nachricht (1) Zur Chiffrierung f¨uhrt Bob die folgenden Schritte aus: als Zahl im Bereich (a) stellt dar. (b) berechnet . (c) u¨ bermittelt an . (2) Zur Dechiffrierung f¨uhrt Alice den folgenden Schritt aus: .
F¨ur alle Nachrichten
. Nach der Wahl von und gilt ggt in Algorithmus 5.2.1 und der G¨ultigkeit von (siehe Satz 3.7(a)) sind dann die entsprechenden Voraussetzungen von Satz 5.2.1 erf¨ullt, so daß Alice in Schritt 2 von gilt trivialer Algorithmus 5.2.2 tats¨achlich den urspr¨unglichen Klartext erh¨alt. F¨ur Weise . Alle Rechnungen erfolgen im K¨orper . Da bei Kenntnis von
mit Hilfe von Algorithmus 3.3 sofort berechnet werden kann (und umgekehrt), ist das Pohlig-Hellman-Schema nur f¨ur die konventionelle Chiffrierung nutzbar. und m¨ussen also beide geheim gehalten werden.
Beispiel 5.2.1 Es sei und
. Dann gilt folgt inv inv F¨ur
liefert die Chiffrierung
ergibt wieder den Klartext.
. Dann
Die Dechiffrierung
und ggt
75
5. Public-Key-Kryptosysteme und Exponentiationschiffren Die Sicherheit des Schemas basiert auf der Komplexit¨at der Berechnung diskreter Lo garithmen in . Dies ergibt sich daraus, daß bei einem Angriff mit bekanntem Klartext bekannt ist und aus in ergibt. Der das Paar in sich Kryptoanalytiker kann dabei ggf. aus der Beobachtung der Gr¨oßen der Klartext- und Chiffretextbl¨ocke schließen. Pohlig und Hellman [78] zeigen, daß, falls nur kleine Primfaktoren enth¨alt, der zu berechnen ist (siehe diskrete Logarithmus mit einem Zeitbedarf der Ordnung Seite 110). Auch f¨ur große ist dieser Zeitbedarf ziemlich unbefriedigend. Es wird daher empfohlen, als eine Primzahl mit zu w¨ahlen, wobei eine große Primzahl ist. Der schnellste 1979 bekannte Algorithmus zur Berechnung des diskreten Logarithmus in (Adleman, [1]) ben¨otigt etwa
Berechnungsschritte. Inzwischen gibt es bessere Algorithmen, die jedoch immer noch einen entsprechenden subexponentiellen Aufwand haben.
Beispiel 5.2.2 Es sei 200 Bits lang. Dann ben¨otigt der Algorithmus von Adleman etwa Schritte. Bei Schritten pro Tag, das entspricht ungef¨ahr 1 Schritt pro sec, sind dies 2,7 Tage. Wird jedoch auf 664 Bits (200 Dezimalstellen) erweitert, so Schritte bzw. Tage ben¨otigt. werden
Wir kommen nun zum Rivest-Shamir-Adleman-Schema (RSA-Schema) [88], das ein Public-Key-Kryptosystem ist. Es wurde 1977 von Ronald Rivest, Adi Shamir und Leonard Adleman gefunden, wobei die eigentliche Idee von Rivest stammt, der aber ohne st¨andige Diskussionen mit den beiden anderen nicht diesen Erfolg gehabt h¨atte. Es soll erw¨ahnt werden, daß Ende 1997 bekannt wurde, daß Clifford Cocks von den britischen Government Communications Headquarters (GCHQ) bereits Ende 1975 dieselbe Idee hatte, die aber strenger Geheimhaltung unterlag. Algorithmus 5.2.3 (Schl¨usselerzeugung f¨ur das RSA-Public-Key-Kryptosystem) Alice ( ) erzeugt sich einen o¨ ffentlichen und einen zugeh¨origen privaten Schl¨ussel (1) Alice erzeugt zwei große Primzahlen und von ungef¨ahr der gleichen L¨ange. . und (siehe (2) berechnet Satz 3.7(c)) , mit ggt (3) w¨ahlt eine Zahl , . , mit (4) Mit Hilfe von Algorithmus 3.3 berechnet die eindeutige Zahl , . , der private . (5) Der o¨ ffentliche Schl¨ussel von ist
Der Benutzer Bob ( ) schickt mit dem o¨ ffentlichen Schl¨ussel von Alice dieser eine Nachricht nach dem folgenden Algorithmus 5.2.4 (RSA-Public-Key-Verschl¨usselung) f¨ur Alice, die diese dechiffriert Bob ( ) chiffriert eine Nachricht (1) Zur Chiffrierung f¨uhrt Bob die folgenden Schritte aus: (a) besorgt sich den authentischen o¨ ffentlichen Schl¨ussel als Zahl im Bereich (b) stellt dar.
76
von .
5.2. Exponentiationschiffren
(c) berechnet mit Hilfe von Algorithmus 3.1. an . (d) u¨ bermittelt (2) Zur Dechiffrierung f¨uhrt Alice den folgenden Schritt aus: Mit ihrem privaten Schl¨ussel berechnet sie
.
Alice signiert eine Nachricht f¨ur Bob mit ihrem geheimen Schl¨ussel mit Hilfe von Algorithmus 5.2.5 (RSA-Public-Key-Signierung) f¨ur Bob, die dieser verifiziert und dadurch erh¨alt Alice signiert eine Nachricht (1) Zur Signierung f¨uhrt Alice die folgenden Schritte aus: (a) stellt als Zahl im Bereich dar. (b) berechnet mit Hilfe von Algorithmus 3.1. (d) u¨ bermittelt die Signatur an . (2) Zur Verifizierung und zum Erhalt der Nachricht f¨uhrt Bob die folgenden Schritte aus: (a) Bob besorgt sich den authentischen o¨ ffentlichen Schl¨ ussel von . (b) berechnet . Wenn kein vern¨unftiger Klartext ist, wird die Signatur abgelehnt, anderenfalls wird sie akzeptiert und anerkannt. als
Falls ggt gilt, erhalten wir und mit Hilfe von Satz 5.2.1. Daß Chiffrierung und Dechiffrierung beim RSA-Schema in allen F¨allen funktioniert, wird durch den folgenden Satz gezeigt. Satz 5.2.2 Es sei
und es sei
mit Primzahlen und ,
eine Nachricht. Dann folgt
. Es gelte weiter ,
mit
. Gilt , so ist nichts zu beweisen. Im folgenden folgt, daß ein existiert mit
Beweis. Zu zeigen ist sei . Aus
Da
Wir nehmen zun¨achst
Wegen
ist und und prim sind, gilt
, und wir schließen nach Satz 3.9
an. Dann ist ggt
folgt dann
77
5. Public-Key-Kryptosysteme und Exponentiationschiffren Diese Gleichung gilt auch f¨ur daß ein existiert mit
, also f¨ur
. Wir erhalten also in jedem Fall,
Bei entsprechender Argumentation f¨ur schließen wird die Existenz eines
folgt . Da Aus diesen beiden Gleichungen f¨ur mit und
Somit ist
und damit
mit
und prim sind, existiert ein
. Dann ergibt sich
(speziell gilt hier ). Die Wir w¨ahlen und berechnen inv
liefert Chiffrierung von
Beispiel 5.2.3 Es sei
und
mit
Die Dechiffrierung ergibt wieder
und und damit
und berechnen inv Wir w¨ahlen
Beispiel 5.2.4 Es sei
. Daraus folgt
. Der gew¨ahlte Klartext
RENAISSANCE
wird so eingeteilt, daß je zwei Buchstaben einen Block von vier Ziffern liefern: A=00, B=01, . . . , Z=25, =26. In der Praxis wird jeder Buchstabe durch einen 8-Bit-ASCII-Code dargestellt. Damit erhalten wir f¨ur unseren Klartext die Codierung
78
=
RE NA IS SA NC E 1704 1300 0818 1800 1302 0426 .
5.2. Exponentiationschiffren Die Chiffrierung erfolgt blockweise. F¨ur RE erhalten wir
f¨ur NA Insgesamt ergibt sich
kann ohne Kenntnis der Primfaktoren und praktisch nicht bestimmt werden. Dadurch kann auch dann geheimgehalten werden, wenn und o¨ ffentlich sind. Die Sicherheit des Systems basiert auf der Schwiergkeit, in und zu faktorisieren. Der schnellste 1979 bekannte Faktorisierungsalgorithmus (Schroeppel) ben¨otigt
Schritte. Dies ist von der gleichen Ordnung, die zum Berechnen des diskreten Logarithmus nach dem auf Seite 76 genannten Algorithmus von Adleman erforderlich ist. Wie das Beispiel 5.2.2 zeigt, w¨urde die Faktorisierung bei 1 Schritt pro sec etwa Tage dauern, wenn f¨ur und je 100-stellige Zahlen gew¨ahlt werden, also 200-stellig ist. Aufgrund dieser langen Rechenzeiten hat es Rivest 1977 gewagt, einen kurzen Text mit einer Zahl von 428 Bits (129 Dezimalstellen) zu verschl¨usseln und als R¨atsel zu ver¨offentlichen, mit ) einem L¨osungsanreiz von einigen Dollars. Er hielt eine Zeit von 40 Quadrillionen ( Jahre zur Dechiffrierung dieses Textes f¨ur notwendig. Nun kann man aber die Entwicklung der Mathematik nicht außer acht lassen. 1994 wurde die Zahl , unter Verwendung neuerer mathematischer Ergebnisse, zerlegt und damit der Text geknackt. Mit 1600 Rechnern im Internet wurde innerhalb von 8 Monaten der Klartext ermittelt. Die Faktorisierung einer 512-Bit-Zahl h¨atte noch 100-mal so lange gedauert. Inzwischen gibt es noch etwas bessere mathematische Theorien zur Faktorisierung, aber bei 1024 Bits f¨ur die Zahl ist man hoffentlich auch in Zukunft auf der sicheren Seite. Schnelleren Rechnern kann man durch gr¨oßere Schl¨ussell¨ange begegnen. Problematisch w¨are nur ein großer mathematischer Durchbruch, der zu einem neuen schnellen Faktorisierungsalgorithmus f¨uhren w¨urde. Wenn ein solcher Algorithmus gefunden wird, ist das RSA-Verfahren hinf¨allig und große Teile des Gesch¨afts- und Bankwesens brechen zusammen. Wenn wir jedoch mit einem solchen Durchbruch nicht rechnen, ist das RSA-Verfahren gut f¨ur Public-Key-Kryptosysteme geeignet. Die Frage ist nat¨urlich, wie man so große Primzahlen erh¨alt. Die Suche großer Primzahlen wird im folgenden beschrieben. Aufgrund des Primzahlsatzes, der etwas u¨ ber die Dichte der Primzahlen aussagt, kann der folgende heuristische Algorithmus zum Finden großer Primzahlen mit z. B. bin¨aren Stellen benutzt werden. Man erzeuge zuf¨allig eine Folge
und
und betrachte als eine Bin¨arzahl. Wir nehmen an, daß gerade ist. Dann m¨ussen fort gebildet werden. F¨ur jedes der wird ein Primlaufend die Summen zahltest durchgef¨uhrt, wie er z. B. unten in Algorithmus 5.2.6 beschrieben ist. Die Dichte der Primzahlen um liegt bei
79
5. Public-Key-Kryptosysteme und Exponentiationschiffren Dadurch ist eine Abbruchregel motiviert. Wenn innerhalb von 500 Versuchen keine Primzahl gefunden wurde, dann wird das Verfahren mit einer neuen zuf¨alligen Folge begonnen. Ein Primzahltest kann mit dem folgenden probabilistischem Algorithmus ([80], [82]) durchgef¨uhrt werden. Algorithmus 5.2.6 (Rabin-Miller) Es sei ungerade mit W¨ahle zuf¨allig ein mit ;
if or
ungerade).
then write( ist eine Primzahl“); ” goto ENDE end; for to do
; if
then write( ist eine Primzahl“); ” goto ENDE else if then write( ist zusammengesetzt“); sicher ” goto ENDE end end end; write( ist zusammengesetzt“); sicher ” ENDE:
Dieser Algorithmus ist eine Verfeinerung von Algorithmus 5.2.7 Es sei gegeben. W¨ahle zuf¨allig , ; if then write( ist zusammengesetzt“) ” else write( ist eine Primzahl“) ” end Dabei ist
(a) (b)
( )
oder ( ) es existiert ein mit
und
ggt
Man sagt, daß ein Zeuge der Zusammengesetztheit von ist. Wenn die Bedingung gilt, dann kann nach der Fermatschen Relation (Satz 3.8) keine Primzahl sein. Weiter ist erf¨ullt, ebenfalls keine Primzahl klar ersichtlich, daß eine Zahl , die die Bedingung sein kann. Falls erf¨ullt ist, ist also die Antwort ” ist zusammengesetzt“ in jedem
80
5.2. Exponentiationschiffren Fall richtig. Andernfalls wird ist eine Primzahl“ ausgegeben. Das kann aber auch dann ” eintreten, wenn zusammengesetzt ist. Wir wollen uns u¨ berlegen, warum Algorithmus 5.2.6 ein entsprechendes Verhalten wie
Algorithmus 5.2.7 hat. Gilt , so folgt . Wegen ist weiter ggt . Insgesamt ist also die Bedingung (b) nicht erf¨ullt, und der Schluß von Algorithmus 5.2.6 in diesem Fall, daß prim ist, ist gleich dem Schluß von Algorithmus 5.2.7. Es sei nun eine Primzahl mit . Dann endet die Folge
gilt. Die einzige Zahl, die quadriert mit 1, da nach Satz 3.8 1 liefert, ist außer 1 die Zahl . Da n¨amlich eine Primzahl ist, hat die Gleichung
genau zwei L¨osungen, und zwar und . Der ersten 1 in dieser Folge geht also die Zahl unmittelbar voran. Deswegen wird im Algorithmus, falls auftaucht (auch, falls
), ” ist eine Primzahl“ ausgegeben. Diese Aussage kann jedoch falsch sein. Geht dagegen der 1 nicht unmittelbar voran, so ist man sicher, daß zusammengesetzt ist. Das ergibt sich im Algorithmus, falls man f¨ur auf st¨oßt. Das ist nur , da andernfalls f¨ur die Schleife abgebrochen worden w¨are. m¨oglich f¨ur
, , dann folgt, Wird die Schleife bis zum Ende durchlaufen und gilt
und zwar unabh¨angig davon, ob oder gilt, daß zusammengesetzt ist. Berechnungsschritte. Wenn Satz 5.2.3 Der Algorithmus 5.2.6 ben¨otigt h¨ochstens eine Primzahl ist, dann ist die Aussage des Algorithmus immer richtig. Ist dagegen zusammengesetzt, so ist die Wahrscheinlichkeit eines Irrtums .
Beweis. Wenn bei einer Multiplikation eine Zahl erhalten wird, so muß bestimmt und damit fortgefahren werden. Somit kommen nur Multiplikationen von Zahlen durch mit Rest vor. F¨ur jede Multiplikation werden und Divisionen von also zwei Schritte ben¨otigt. Von ausgehend sind noch Multiplikationen erforderlich. erfolgt nach Satz 3.3 mit h¨ochstens Die Berechnung von
Multiplikationen. Daraus ergibt sich, daß die Anzahl der Schritte
ist. Die weiteren Aussagen werden in [82] bewiesen.
Es ist also m¨oglich, daß der Algorithmus 5.2.6 eine Zahl als Primzahl erkennt, obwohl die Zahl zusammengesetzt ist. Wird der Test 100-mal wiederholt, dann sinkt die Irrtumswahrscheinlichkeit auf ab. Die Antwort ” ist zusammengesetzt“ ist immer richtig. Wenn ein Primzahlkandidat nach diesem Verfahren gefunden ist, kann man zur Best¨atigung den deterministischen Primzahltest von Rumeley-Adleman anwenden, der, falls er h¨alt, die Schritten liefert (siehe z. B. [56], S. 76). Antwort in O
81
5. Public-Key-Kryptosysteme und Exponentiationschiffren Wir wollen einige weitere Sicherheits¨uberlegungen in Verbindung mit dem RSASchema anstellen. Einige Angriffe, die in der Literartur betrachtet wurden, werden zusam men mit entsprechenden Gegenmaßnahmen vorgestellt. F¨ur die Aufgabe, aus einem Chiffretext bei gegebenem o¨ ffentlichen Schl¨ussel des Empf¨angers den Klartext zur¨uckzugewinnen, ist kein effizienter Algorithmus bekannt. Eine Faktorisierung von w¨urde, wie schon oben dargestellt, zur Berechnung von f¨uhren und damit zur Dechiffrierung aller f¨ur bestimmten Nachrichten. Wenn andererseits mit Hilfe einer anderen Methode Oskar berechnen k¨onnte, dann k¨onnte er anschließend auch auf effiziente Weise faktorisieren. Dies sehen wir wie folgt ein. Wegen . Es folgt (siehe Beweis von Satz 5.2.1) gibt es eine Zahl mit
f¨ur alle , d.h. f¨ur alle mit ggt . Es sei , wobei ungerade ist. Dann kann gezeigt werden, H¨alfte aller ein daß f¨ur mindestens die
, existiert mit
und
. Ausgehend von teilt Oskar so lange den Exponenten durch , bis er einen entsprechenden Index (in mindestens der H¨alfte der F¨alle) gefunden hat. Wir setzen , wobei gilt. Wegen folgt mit einem geeigneten . kommt nicht in Frage. Wegen m¨ussen die Primfaktoren von auf und verteilt werden. Es ein nichttrivialer Faktor von ist. Oskar muß also nur wiederholt folgt, daß ggt eine zuf¨allige Zahl w¨ahlen. Dann wird er in mindestens der H¨alfte der F¨alle ein
¨ berechnen. Aus diesen Uberlegungen ergibt
wie oben finden und damit einen Teiler von sich die folgende Aussage:
Satz 5.2.4 Das Problem, die Dechiffrierfunktion aus dem o¨ ffentlichen Schl¨ussel berechnen, ist berechnungsm¨aßig a¨ quivalent zu dem Faktorisierungsproblem von .
zu
F¨ur die Chiffrierung in Schritt (1)(c) von Algorithmus 5.2.4 wird der Algorithmus 3.1 zur schnellen Exponentiation verwendet, der bei einer Bitl¨ange der Zahl insgesamt otigt modulare Quadratbildungen und erwartete weitere modulare Multiplikationen ben¨ (siehe Beweis von Satz 3.3). Die Chiffrierung kann beschleunigt werden, wenn klein oder mit einer kleinen Anzahl von 1-Bits gew¨ahlt wird. In der Praxis wird h¨aufig der usselungsexponent verwendet. In diesem Fall ist es wegen der Bedingung Verschl¨ ggt notwendig, daß weder noch durch 3 teilbar sind. Dies ergibt eine sehr schnelle Verschl¨usselungsoperation mit nur einer modularen Multiplikation und einer modularen Quadratbildung. Ein anderer h¨aufig verwendeter Verschl¨usselungsexponent
ist . Diese Zahl hat nur 2 Einsen in ihrer bin¨aren Darstellung, und folglich werden nur 16 modulare Quadratbildungen und eine weitere modulare Multiplikation ben¨otigt. Der Vorteil dieses Exponenten gegen¨uber dem Verschl¨usselungsexponenten 3 liegt darin, daß er gegen¨uber dem folgenden Angriff immun ist. Wenn eine Gruppe von Benutzern alle denselben kleinen Chiffrierschl¨ussel benutzen, , dann muß jeder Benutzer, wie wir in Satz 5.2.5 sehen werden, seinen eigenen, z.B. von denen der anderen Benutzer verschiedenen Modulus haben. Wenn Alice die Nachricht
82
5.2. Exponentiationschiffren
an drei Benutzer mit den o¨ ffentlichen Schl¨usseln m¨ochte, dann sendet Alice
,
und
schicken
Die Moduli sind mit sehr großer Wahrscheinlichkeit paarweise teilerfremd. Folglich kann der elektronische Lauscher Oskar, der , und abf¨angt, mit Hilfe des Chinesischen Restesatzes (Satz 3.14) eine gemeinsame L¨osung , , des Gleichungssy stems
bestimmen. Wegen . Durch ist diese gemeinsame L¨osung, also erhalten. Berechnung der ganzzahligen Kubikwurzel von kann Oskar den Klartext Das bedeutet, daß kleine Exponenten nicht benutzt werden d¨urfen, wenn dieselbe Nachricht oder dieselbe Nachricht mit einigen Variationen an viele Benutzer geschickt wird. Alternativ kann man sich gegen den geschilderten Angriff sch¨utzen, indem eine zuf¨allig erzeugte Bitfolge geeigneter L¨ange, z.B. mindestens 64 Bits, vor Chiffrierung an den Klar angeh¨angt wird. F¨ur jede Chiffrierung, also f¨ur jedes der , muß ein anderer Bittext string gew¨ahlt werden. Dieser Prozeß wird gelegentlich salting“ genannt, also Salzen oder ” W¨urzen des gegebenen Klartextes . Kleine Verschl¨usselungsexponenten sind auch ein Problem f¨ur kleine Nachrichten . , dann kann aus dem Chiffretext Ist einfach durch Berechnung der ganzzahligen -ten Wurzel von berechnet werden. Durch Salzen der Klartextnachricht kann einem solchen Angriff begegnet werden. Eine weitere Angriffsm¨oglichkeit besteht, wenn der Nachrichtenraum klein oder vorhersagbar ist. Dann kann Oskar einen Chiffretext dechiffrieren, indem er alle m¨oglichen Klartextnachrichten chiffriert, bis er den Chiffretext erh¨alt. Auch hier ist das Salzen eine einfache Methode, einem solchen Angriff entgegenzutreten. W¨unschenswert ist es sicherlich auch, kleine Dechiffrierexponenten verwenden zu das zu erreichen, kann man Algorithmus 5.2.3 so ab¨andern, daß erst gew¨ahlt k¨onnen. Um klein ist, was typischer Weise und dann berechnet wird. Wenn jedoch ggt der Fall ist, und ungef¨ahr h¨ochstens der Bits des Modulus hat, dann gibt es einen effizienten Algorithmus (siehe [115]) zur Berechnung von aus dem o¨ ffentlichen Schl¨ussel . Dieser Algorithmus kann nicht auf den Fall u¨ bertragen werden, bei dem ungef¨ahr dieselbe Gr¨oße wie hat. Deswegen sollte also ungef¨ahr so groß sein wie . und Klartextnachrichten und und ihre RSA-Verschl¨usselungen mit Sind dem Modulus , dann gilt
den Chiffretext
Das bedeutet, daß der Klartext liefert. Dies ist die Homomorphismuseigenschaft des RSA-Verfahrens. Sie kann f¨ur den folgenden Angriff mit angepaßtem gew¨ahlten Klartext benutzt werden. Wir nehmen an, daß Oskar einen speziellen Chiffretext dechiffrieren m¨ochte, der f¨ur Alice bestimmt ist. Wir nehmen weiter an, daß Alice bereit ist, jeden Chiffretext mit Ausnahme von f¨ur Oskar zu dechiffrieren. Dann kann Oskar verbergen,
mit und ggt w¨ahlt. Er berechnet indem er eine Zufallszahl
83
5. Public-Key-Kryptosysteme und Exponentiationschiffren und l¨aßt Alice dechiffrieren, d.h. den Wert
bestimmen. Da
gilt, kann Oskar den Klartext
berechnen. Um einen solchen Angriff zu verhindern, m¨ussen einige strukturelle Einschr¨ankungen f¨ur die Klartextnachrichten vereinbart werden. Wenn ein Chiffretext zu einem Klartext dechiffriert wird, der nicht diesen Einschr¨ankungen gen¨ugt, dann wird als gef¨alscht abge diese sorgf¨altig gew¨ahlten Einschr¨ankungen erf¨ullt, lehnt. Falls eine Klartextnachricht dann wird das mit großer Wahrscheinlichkeit nicht f¨ur gelten. In diesem Fall wird Alice den Text nicht f¨ur Oskar dechiffrieren. Das RSA-Verfahren kann auch in einer Umgebung angewendet werden, in der die Moduli und die o¨ ffentlichen und die geheimen Transformationen durch ein Vertrauenszentrum verteilt werden. Dabei ist jedoch darauf zu achten, daß die verschiedenen Benutzer paarweise verschiedene Moduli erhalten. Anderenfalls k¨onnen die geheimen Transformationen leicht berechnet werden. Dies zeigt
mit dem gemeinsamen Modulus benutzt. Alice Satz 5.2.5 Es werde das RSA-Verfahren kenne , , und , Bob kenne , , und . Mit einem Algorithmus der Komple kann Alice und Bob berechnen (ohne zu faktorisieren). xit¨at
Beweis. Wir zeigen, wie Bob ein mit
berechnen kann. Es sei
berechnen kann. Wegen
Bob kennt zwar nicht , jedoch , , von mit der Eigenschaft
F¨ur
definieren wir induktiv
und
existiert
. Wir zeigen zun¨achst, wie Bob einen Teiler
und ggt
erhalten damit . F¨ur F¨ur setzen wir
und gilt . Folglich findet man in Schritten. In jedem Schritt wird der Euklidische Algorithmus 3.2 aufgerufen, der, wie im Anschluß an den Beweis von hat. F¨ur die Berechnung von ben¨otigt Satz 3.11 angemerkt wurde, den Zeitbedarf Bob also Schritte. 84
5.2. Exponentiationschiffren
Anschließend berechnet Bob mit dem Euklidischen Algorithmus 3.3 Zahlen ,
mit
at. Diese Rechnungen haben wieder einen Zeitbedarf der angegebenen Komplexit¨ Da jeder Primteiler von nach der obigen Konstruktion zu geh¨ort, folgt aus ggt auch die G¨ultigkeit von ggt . Das bedeutet, daß in der Gleichung
ist und somit
Folglich kann
die Zahl
als
teilt. Wir erhalten damit
benutzt werden.
Man kann zeigen (siehe [93], Theorem 4.1, p. 143), daß sich dieser Algorithmus in einen probabilistischen Algorithmus zur Faktorisierung von verwandeln l¨aßt, der polynomialen Zeitbedarf hat. Wir wollen einige weitere Bemerkungen zur Wahl des Modulus machen. und sollten, wenn 1024 Bits haben soll, ungef¨ahr 512 Bits haben, jedoch sollte ihre Differenz und damit nicht zu klein sein. Wenn klein ist, ist . Folglich k¨onnte effizient faktorisiert werden, indem man versucht, durch alle ungeraden Zahlen in der N¨ahe von zu teilen. Wenn dagegen und zuf¨allig gew¨ahlt werden, jedoch mit einer gen¨ugend groß. kleinen Differenz in der L¨ange der Darstellung, dann ist Viele Autorem empfehlen, daß und starke Primzahlen sind, d.h. die folgenden drei Bedingungen erf¨ullen: besitzt einen großen Primfaktor, mit bezeichnet. (1) besitzt einen großen Primfaktor. (2) besitzt einen großen Primfaktor (3) Wie findet man Primzahlen, die diese Eigenschaften erf¨ullen? Dies geschieht mit dem folgenden Algorithmus.
Algorithmus 5.2.8 (Erzeugung einer starken Primzahl) ¨ (1) Erzeuge (gem¨aß den Uberlegungen von Seite 79 und dem Primzahltest gem¨aß Algorithmus 5.2.6) zwei große Primzahlen und von ungef¨ahr derselben Bitl¨ange. (2) W¨ahle ein . Finde eine Primzahl in der Folge
f¨ur
(nach 500 Versuchen Abbruch und Wahl eines neuen mit . (3) Berechne . (4) W¨ahle ein . Finde eine Primzahl in der Folge
). Bezeichne diese Primzahl
(nach 500 Versuchen Abbruch und Wahl eines neuen ). Bezeichne diese Primzahl mit .
(5) Gebe als starke Primzahl aus.
f¨ur
85
5. Public-Key-Kryptosysteme und Exponentiationschiffren Satz 5.2.6 Algorithmus 5.2.8 liefert eine starke Primzahl. Beweis. Wegen der jeweiligen zuf¨alligen Wahl bei den Primzahlsuchen kann man davon . Nach Satz 3.8 ergibt sich ausgehen, daß gilt und so auch die Beziehung ggt
Es folgt
und
Dann erhalten wir
d.h., besitzt den Primfaktor ,
d.h., besitzt den Primfaktor ,
d.h., besitzt den Primfaktor .
Wenn gen¨ugend groß gew¨ahlt wird, kann man in der Regel davon ausgehen, daß eine starke Primzahl ist. Die Verwendung von starken Primzahlen hilft z.B. gegen den folgenden Angriff. F¨ur gewisse Schl¨ussel ergibt eine mehrfache Anwendung der Chiffrierung den Klartext. Es sei etwa der Chiffretext und der o¨ ffentliche Schl¨ussel. Ein Kryptoanalytiker erh¨alt vielleicht durch
f¨ur irgendein einen sinnvollen Klartext. Das ist aber nur dann n¨utzlich, wenn vern¨unftig“ ”
klein ist, etwa . Rivest [86] hat gezeigt, daß die Wahrscheinlichkeit eines entsprechenden erfolgreichen Angriffs sehr klein ist, falls eine starke Primzahl ist. F¨ur
hat die Wahrscheinlichkeit f¨ur das Brechen der Chiffre einen Wert . Nach Blakley, Blakley und Borosh ([11], [12]) gilt f¨ur alle und , daß f¨ur wenigstens 9 Nachrichten ist. Offensichtlich sind , und solche Nachrichten. Insgesamt gibt es genau
solcher Nachrichten. Da , und gerade sind, ergibt sich die untere
Schranke 9 wie angegeben. Die Wahrscheinlichkeit, gerade eine derartige Nachricht zu senden, ist sehr klein. Zur Abhilfe wird die Wahl einer sicheren Primzahl empfohlen. Eine ist, wobei eine ungerade Primzahl ist. Primzahl gilt als sicher, wenn Wir gehen jetzt noch auf gleichzeitige Geheimhaltung und Authentizit a¨ t ein. Daf¨ur sen durch det Alice an Bob eine signierte und geheime Nachricht . Ein Problem stellen jedoch die i. allg. verschiedenen Moduli und dar. Unter der Annah gilt, kann sich auch ergeben. me, daß liefert eine falsche Dechiffrierung. Dies wollen wir an einem Beispiel verdeutlichen.
86
und sowie
. F¨ur den Klartext bildet Alice
Beispiel 5.2.5 Es sei
und
5.2. Exponentiationschiffren Bob dechiffriert und verifiziert f¨alschlich den Text zu
Der Grund f¨ur diese falsche Dechiffrierung ist die Tatsache, daß gilt. Die
Wahrscheinlichkeit des Vorkommens einer falschen Dechiffrierung ist .
Dieses Problem kann nie eintreten, wenn der kleinere Modulus zuerst ausgef¨uhrt wird. F¨ur Schl¨ussel w¨urde Alice die Nachricht also zun¨achst mit Bobs o¨ ffentlichem chiffrieren und dann mit ihrem privaten Schl¨ussel signieren, also bilden. Bob k¨onnte dann korrekt bestimmen. Dieses Vorgehen ist aber auf keinen Fall zu empfehlen. Oskar k¨onnte die Signatur entfernen und durch seine eigene Signatur ersetzen, also
bilden und diesen Wert an Bob schicken und behaupten, er, Oskar, h¨atte die Nachricht unterschrieben. Obwohl er nicht weiß, was er unterschrieben hat, kann es Situationen geben, wo ein solches Vorgehen f¨ur ihn von Vorteil sein kann. Eine L¨osung dieses Problems wird dadurch gefunden, daß jeder Benutzer zwei Trans und formationspaare
mit
hat, das erste f¨ur die Signatur, das zweite f¨ur die Geheimhaltung. F¨ur jeden Benutzer gilt, daß sein Modulus f¨ur die Geheimhaltung gr¨oßer sein muß als alle m¨oglichen Signatur-Moduli aller weiteren beteiligten Benutzer. Dies kann erreicht werden, wenn alle Moduli zur Geheimhaltung mindestens Bits haben m¨ussen und alle Moduli zur Signatur h¨ochstens Bits. So wie die RSA-Public-Key-Signierung in Algorithmus 5.2.5 gegeben ist, ist ein Angriff m¨oglich, bei dem Oskar f¨ur (mindestens) eine Nachricht eine Signatur f¨alschen kann (exi stential forgery). Er schickt einfach eine Zahl aus dem Bereich . Oskar hat allerdings keine Kontrolle u¨ ber die gef¨alschte Nachricht. Gelegentlich ben¨otigt man auch bei Angriffen mit existential“ forgery den legitimen Unterzeichner, um einen solchen Be” trug durchzuf¨uhren. Einem solchen Angriff kann man durch eine o¨ ffentlich bekannte Red entgegenwirken, die die Nachrichten des Klartextraumes undanzfunktion in eine Teilmenge abbildet. In [63], Abschnitt 11.3.5, wird eine solche Funktion angegeben, die als internationaler Standard akzeptiert ist und sowohl beim RSA- als auch beim Rabin-Verfahren (siehe Algorithmus 8.3.3) verwendet wird. Vor Si gnierung in Schritt (1)(b) von Algorithmus 5.2.5 wird die Funktion angewendet, und bei der Verifizierung erh¨alt man die urspr¨ungliche Nachricht durch Anwendung der inversen im Anschluß an Schritt (2)(b) zur¨uck. Außerdem wird in Schritt (2)(b) die Funktion Signatur abgelehnt, wenn sich nach Anwendung des o¨ ffentlichen Schl¨ussels nicht ein Wert ergibt. Wenn die Funktion geschickt gew¨ahlt ist, kann Oskar i. allg. keine Zahl aus mit finden. Wichtig ist, daß die Redundanzfunktion nicht multiplika erf¨ullt. Antiv ist, also f¨ur fast alle die Eigenschaft derenfalls w¨are wegen der Homomorphieeigenschaft, die f¨ur die Dechiffrierung nat¨urlich ebenso gilt wie f¨ur die Chiffrierung (siehe Seite 83), folgender Betrug m¨oglich. Es seien und und Signaturen der Nachrichten . Bei multiplikativer Redundanzfunktion folgt
87
5. Public-Key-Kryptosysteme und Exponentiationschiffren
Es ist also eine g¨ultige Unterschrift f¨ur . Dieser Angriff gilt auch, wenn keine spezielle Redundanzfunktion gegeben ist und somit die Identit¨atsfunktion ist. Daß die Redundanzfunktion nicht multiplikativ ist, ist zwar notwendig, um einen Angriff der eben geschilderten Art abzuwenden, aber diese Eigenschaft ist nicht hinreichend, wie das folgende Beispiel zeigt.
Beispiel 5.2.6 Es sei ein RSA-Modulus und der private Schl¨ussel. Dann ist die Bitl¨ange von . Es sei fest gew¨ahlt mit . Setze . Nachrichten seien
Zahlen im Intervall . Als Redundanzfunktion w¨ahlen wir
Das bedeutet, daß die letzten Bits von jeweils sind. F¨ur die meisten Wahlen von Nachrichten und ist , so daß die Bin¨ardarstellung von fast immer nicht mit Nullen endet und somit , wie gew¨unscht, besitzt. Oskar kann weiter nur mit Wahrscheinlichkeit nicht die multiplikative Eigenschaft eine Zahl so w¨ahlen, daß mit Nullen endet. Trotzdem kann in diesem Fall seiner Wahl sogar ein Angriff erfolgen, bei dem Oskar eine Signatur f¨ur eine Nachricht f¨alscht, wobei er aber auch den legitimen Unterzeichner ben¨otigt. Wir nehmen an, daß Oskar kennt, aber nicht . Wir wenden den erweiterten Euklidi und an. In schen Algorithmus, also Algorithmus 3.3, auf jeder Schleife des Algorithmus werden Zahlen , und berechnet mit
Man kann zeigen, daß unter der Voraussetzung , die hier erf¨ullt ist, in einigen Schleifendurchl¨aufen f¨ur und die Bedingungen und gleichzeitig gelten. Ist , so bildet Oskar und Ist , so setzt er und
In beiden F¨allen haben und die verlangte Redundanzeigenschaft. Nun muß Oskar den legitimen Unterzeichner veranlassen, ihm die Signaturen
und
zu schicken. Dann kann Oskar eine Signatur f¨ur (a) Ist , so berechnet er
(b) Ist
88
wie folgt bestimmen:
, so berechnet er
5.2. Exponentiationschiffren
Man beachte, daß gilt. Die Gleichung ist richtig, da wegen immer ungerade ist. Das jeweils letzte Gleichheitszeichen ist wegen erf¨ullt. In jedem Fall besitzt Oskar eine signierte Nachricht seiner Wahl mit der verabredeten Redundanz. Dies macht noch einmal deutlich, daß die Wahl einer geeigneten Redundanzfunktion sehr sorgf¨altig erfolgen muß.
Wir gehen jetzt kurz auf den Speicher- und Zeitbedarf des RSA-Verfahrens ein. Es seien und je 1024 Bits groß. Dann m¨ussen ungef¨ahr Bits pro Benutzer gespeichert werden. Da und o¨ ffentlich sind, ist es n¨otig, ungef¨ahr 2000 Bits pro Benutzer im o¨ ffentlichen Directory abzulegen. Der DES ben¨otigt dagegen nur 56 (bzw. 112) Bits pro Benutzer. Zum Chiffrieren oder Dechiffrieren einer 1024-Bit-Zahl werden etwa 1000 Multiplika durchgef¨uhrt. Rivest [87] hat 1980 einen speziellen Chip entwickelt, der tionen einige 1000 Bits/Sekunde verarbeiten kann. Sedlak (TU Braunschweig, Diplomarbeit 1985, [100], siehe auch [101], [102]) entwickelte einen Chip, der im ung¨unstigsten Fall 64000 Bits/Sekunde verarbeitet. Dabei handelt es sich um einen aus 80000 Transitoren bestehenden VLSI-Chip in 2- m-CMOS-Technologie mit einer Chipfl¨ache von mm mm. Darauf aufbauend wurden von der Firma Siemens verschiedene Chips entwickelt (z.B. SLE44C200), die in verschiedene Smart Cards integriert worden sind. Der Zeitbedarf f¨ur die Ver- und Entschl¨usselung des RSA-Verfahrens ist f¨ur eine sehr ¨ schnelle Ubertragung von Daten, insbesondere von großen Datenmengen, zur Zeit nicht geeignet. Die schnellsten DES-Implementierungen schaffen dagegen viele Millionen von Bits pro Sekunde. Deswegen wird das RSA-Verfahren u¨ berwiegend nur zur Signatur von Nachrichten verwendet, jedoch meistens in einer anderen Form als hier besprochen (siehe auch Abschnitt 6.1). Auf diesem Feld wird auch der oben erw¨ahnte Chip von Sedlak eingesetzt. Außerdem werden h¨aufig hybride Verfahren verwendet (siehe die Abschnitte 7.2 und 12.1), ¨ bei denen z.B. das RSA-Verfahren nur am Anfang zur Ubermittlung des Schl¨ussels f¨ur ein symmetrisches Verfahren, z.B. dem DES oder IDEA, benutzt wird. Anschließend wird dann mit dem symmetrischen Verfahren die Kommunikation fortgesetzt.
89
5. Public-Key-Kryptosysteme und Exponentiationschiffren
90
6 Hashfunktionen 6.1 Signaturen und Hashfunktionen In Kapitel 5 haben wir in Protokoll 5.1.1 gezeigt, wie mit Hilfe eines Public-KeyKryptosystems eine digitale Unterschrift geliefert werden kann. Speziell f¨ur das RSAVerfahren wurde dies in Algorithmus 5.2.5 angegeben. Wir wissen, daß wir in diesem Fall sehr lange Signaturen erhalten, die genau so lang sind wie das zu unterzeichnende Dokument. Es ist, wie wir schon erw¨ahnt haben, der Zeitbedarf sehr groß. Außerdem ist das RSA-Verfahren eine Blockchiffre, bei der jeweils eine feste Anzahl von Bits, etwa 1024, gemeinsam chiffriert wird. So ist es, sofern man nicht die Chiffrierung im CBC–Modus (siehe Abschnitt 4.3) durchf¨uhrt, ggf. m¨oglich, einzelne Bl¨ocke der Signatur zu entfernen und trotzdem einen vern¨unftigen Klartext zu erhalten. Dann hat man eine legale Signatur f¨ur einen abgek¨urzten und eventuell sinnentstellten Text erzeugt. Die L¨osung all dieser Probleme ist die Verwendung einer sehr schnellen kryptographi einer beliebigen L¨ange als Eingabe hat und schen Hashfunktion , die eine Nachricht der Nachricht (message digest), auch Fingerabruck genannt, ein Zusammenfassung einer festgelegten Gr¨oße (z.B. 160 Bits) erzeugt. Dieser Wert h¨angt von der gesamten Nach richt ab. Nur der Fingerabdruck wird signiert. Wir werden in sp¨ateren Abschnitten dieses Kapitels sehen, wie die Hashfunktionen gew¨ahlt werden m¨ussen, damit die Fingerabdr¨ucke nicht gef¨alscht werden k¨onnen. Auf jeden Fall muß eine Hashfunktion die Bedingungen der folgenden etwas informalen Definition erf¨ullen. Definition 6.1.1 Eine Hashfunktion ist eine Funktion , die zumindest die folgenden beiden Eigenschaften erf¨ullt: (1) bildet Eingaben einer beliebigen Bitl¨ange auf Ausgaben einer festen Bitl¨ange ab. (2) Es seien und gegeben. Dann ist leicht zu berechnen.
Leicht zu berechnen bedeutet z.B., daß die Rechnung in polynomialer Zeit in bezug auf die Bitl¨ange von durchzuf¨uhren ist. Wir geben zun¨achst ein Protokoll an, das die Authentifizierung unter Verwendung einer Hashfunktion beschreibt. Es sei etwa der o¨ ffentliche und der geheime Schl¨ussel von Alice bei einem Public-Key-System, z.B. dem RSA-Verfahren.
Protokoll 6.1.1 (digitale Signatur) (1) Alice bildet den Fingerabdruck (message digest) tur und sendet Bob
(2)
ihrer Nachricht und die Signa-
den Fingerabdruck zur¨uck und Bob gewinnt durch Berechnung von . Er u¨ berpr¨uft, ob beide Werte gleich sind. Im positiven Fall h¨alt berechnet dann er f¨ur authentisch.
91
6. Hashfunktionen Mit Hilfe einer dualen Signatur ist es m¨oglich, zwei getrennte Nachrichten mit einer gemeinsamen Unterschrift so zu verbinden, daß sie nicht aus dem Zusammenhang gerissen werden k¨onnen. Jede Nachricht soll nur jeweils ein Empf¨anger lesen k¨onnen. Beide Nach¨ richten m¨ussen tats¨achlich erzeugt worden sein, damit die Uberpr¨ ufung der Signatur einer beliebigen der beiden Nachrichten positiv ausgeht. Wir nehmen an, daß Alice eine signier an Bob und eine signierte Nachricht an Charles schicken m¨ochte. te Nachricht sei wieder die Hashfunktion und und die Transformationen von Alice bei einem Public-Key-System.
Protokoll 6.1.2 (duale Signatur) und ihrer Nachrichten und , (1) Alice bildet die Fingerabdr¨ucke konkateniert sie und bildet vom Ergebnis erneut einen Fingerabdruck. Vom Resultat erzeugt sie die Signatur
wobei
(2)
die Konkatenation der beiden Strings bedeutet. Sie sendet Bob
Bob gewinnt durch rechnet dann
den Fingerabdruck zur¨uck und be , da er und kennt. Er u¨ berpr¨uft, ob beide
Werte gleich sind. (3) Charles kann auf analoge Weise eine Signatur von
erhalten.
Bob weiß nichts u¨ ber die Nachricht , er besitzt jedoch eine g¨ultige Unterschrift dieser Nachricht, die er Charles vorlegen kann. Umgekehrt kann Charles Bob die Unter vorlegen. schrift ¨ Wir wollen in diesem Kapitel allgemeine Uberlegungen zu Hashfunktionen anstellen und auch spezielle Hashfunktionen besprechen, die in der Praxis verwendet werden.
6.2 Kollisionsfreie Hashfunktionen Man muß darauf achten, daß der Gebrauch einer Hashfunktion nicht die Sicherheit des benutzten Signaturschemas gef¨ahrdet, da ja nur der Fingerabdruck, nicht jedoch die Nachricht signiert wird. Deshalb muß einige Eigenschaften erf¨ullen, damit verschiedene Betrugsm¨oglichkeiten verhindert werden. Der offensichtlichste Angriff eines Gegners, sagen wir Oskar, w¨urde wie folgt aussehen: , wobei zum Beispiel Oskar beginnt mit einer g¨ultigen signierten Nachricht wie in Protokoll 6.1.1 gilt. Das kann irgendeine Nachricht sein, zuvor, wie die hier angegeben, von Alice signiert wurde. Dann berechnet Oskar und versucht mit ein zu finden. Wenn er das tun kann, ist eine g¨ultige Signatur, also eine F¨alschung. Zur Vermeidung eines solchen Angriffs verlangen wir, daß die folgende Eigenschaft erf¨ullt.
Definition 6.2.1 Es sei eine Nachricht. Eine Hashfunktion ist schwach kollisionsfrei mit f¨ur , wenn es berechnungsm¨aßig praktisch unm¨oglich ist, eine Nachricht zu finden.
92
6.2. Kollisionsfreie Hashfunktionen
Ein anderer m¨oglicher Angriff ist der folgende: Oskar findet zun¨achst zwei Nachrichten mit . Oskar gibt an Alice und u¨ berredet sie, den Fingerabdruck durch zu signieren. Dann ist eine g¨ultige F¨alschung. Dadurch wird die n¨achste Definition motiviert.
Definition 6.2.2 Eine Hashfunktion heißt stark kollisionsfrei, wenn es berechnungsm¨aßig und mit und praktisch unm¨oglich ist, Nachrichten zu finden.
Wir stellen fest, daß eine Hashfunktion stark kollosionsfrei ist, wenn es berech zu finden, f¨ur die nicht schwach nungsm¨aßig praktisch unm¨oglich ist, eine Nachricht ist. kollosionsfrei f¨ur Wir betrachten jetzt einen dritten m¨oglichen Angriff, bei dem das RSASignaturverfahren durch Alice verwendet wird. Dabei w¨ahlt Oskar einen beliebigen zuf¨alligen Wert und berechnet damit . Da gilt, kann er behaupten, daß die Signatur von Alice auf ist. Wenn er nun noch eine (praktisch n¨utzliche) Nachricht mit finden kann, kann er sogar behaupten, daß Alice unterzeichnet hat. Zur Vermeidung dieses Angriffs sollte die Hashfunktion die folgende Eigenschaft erf¨ullen.
Definition 6.2.3 Eine Hashfunktion ist eine Ein-Weg-Funktion (one-way function), wenn es f¨ur einen gegebenen Fingerabdruck berechnungsm¨aßig praktisch unm¨oglich ist, eine mit Nachricht zu finden.
Wir wollen zeigen, daß aus der Eigenschaft einer Hashfunktion , stark kollisionsfrei zu sein, auch schon folgt, daß eine Ein-Weg-Funktion ist. Dabei machen wir eine relativ schwache Annahme u¨ ber die Gr¨oßen des Definitions- und Bildbereichs der Funktion . Es sollen und endlich sein (in diesem Fall wird auch Kompressionsfunktion genannt) und erf¨ullen. Diese Annahme ist vern¨unftig. Wir k¨onnen uns ein Element als eine Bitfolge der L¨ange vorstellen, und der Fingerabdruck sollte von wenigstens einige Bits k¨urzer sein. Nat¨urlich wollen wir eigentlich auch einen unendlichen Definitionsbereich zulassen, da wir Nachrichten beliebiger L¨ange betrachten wollen. Die Argumente des folgenden Satzes k¨onnen auch auf diese Situation u¨ bertragen werden. Der folgende Satz liefert die Kontraposition der obigen Behauptung.
Satz 6.2.1 Es sei eine Hashfunktion mit endlichen Mengen und und . Wir nehmen an, daß ein Algorithmus existiert, der f¨ur ein gegebenes ein mit Dann existiert ein probabilistischer (Las Vegas) Algorith findet. und mit einer Erfolgswahrmus, der Kollisionen mit scheinlichkeit findet.
Beweis. Wir betrachten den folgenden Algorithmus : (1) W¨ahle ein zuf¨alliges (2) Berechne . (3) Berechne mit ein
. mit
. 93
6. Hashfunktionen (4) if
und
then kollidieren bei (Erfolg) else Mißerfolg. Offensichtlich ist ein probabilistischer Algorithmus vom Las-Vegas-Typ, da er entweder eine Kollision findet oder keine Antwort liefert. Wir m¨ussen seine Erfolgswahrscheinlichkeit berechnen. , wenn gilt. Wir sehen sofort, F¨ur definieren wir ¨ daß eine Aquivalenzrelation ist. Wir setzen
¨ Jede Aquivalenzklasse ist das inverse Bild eines Elementes . Folglich gibt es ¨ h¨ochstens Aquivalenzklassen. Sei die Menge dieser Klassen. Nehmen wir an, daß Schritt 1 von Algorithmus gew¨ahlt wurde. F¨ur dieses gibt es m¨ogliche , diein im Schritt 3 des Algorithmus bestimmt werden k¨onnen. und f¨uhren zum Erfolg Davon sind verschieden von in Schritt 4. Bei einer speziellen Wahl von ist die Erfolgswahrscheinlichkeit . Bei Durchschnitts erhalten wir als Erfolgswahrscheinlichkeit bildung u¨ ber alle m¨oglichen Wahlen von des Algorithmus den Wert
Im folgenden beschr¨anken wir uns auf stark kollisionsfreie Hashfunktionen, da diese auch Ein-Weg-Funktionen und schwach kollisionsfrei sind.
6.3 Der Geburtstagsangriff Wir bestimmen in diesem Abschnitt eine notwendige Bedingung f¨ur die Sicherheit von Hashfunktionen, die nur auf der Anzahl der m¨oglichen Fingerabdr¨ucke beruht. Diese notwendige Bedingung r¨uhrt von einer einfachen Methode her, mit der man Kollisionen finden kann, dem Geburtstagsangriff. Dieser Name stammt von dem Geburtstagsparadoxon, das behauptet, daß in einer Gruppe von 23 zuf¨allig gew¨ahlten Personen mit Wahrscheinlichkeit mindestens zwei am selben Tag Geburtstag haben. In Wirklichkeit ist dies kein Paradoxon, wir werden uns am Ende dieses Abschnitts davon u¨ berzeugt haben, aber es widerspricht sicherlich der Intuition.
94
6.3. Der Geburtstagsangriff
Wie im vorangegangenen Abschnitt nehmen wir an, daß eine Hashfunktion ist mit endlichen Mengen und , wobei gilt. Wir setzen und . Es ist klar, daß mindestens Kollisionen existieren. Wie werden sie gefunden? Ein naiver Versuch besteht darin, zuf¨allig verschiedene Elemente zu w¨ahlen, festzustellen, ( ) zu berechnen und dann, zum Beispiel durch Sortieren, ob dabei eine Kollision eintritt. Dieser Prozeß ist analog dazu, Kugeln zuf¨allig in Urnen zu werfen und zu u¨ berpr¨ufen, ob einige Urnen wenigstens zwei Kugeln enthalten. Wir berechnen im folgenden eine untere Schranke f¨ur die Wahrscheinlichkeit, mit dieser Methode eine Kollision zu finden. Diese untere Schranke h¨angt von und ab, aber nicht von . Wir machen die Annahme, daß die Werte in ungef¨ahr gleichverteilt sind, also
f¨ur alle gilt. zuf¨allig gew¨ahlt Da die inversen Bilder ungef¨ahr von derselben Gr¨oße sind und die als zuf¨allige, nicht notwendig verschiedene Elemente von werden, k¨onnen die aufgefaßt werden. Wir berechnen die Wahrscheinlichkeit, daß zuf¨allig gew¨ahlte Elemente geordnet. Die aus paarweise verschieden sind. Sie seien in der Reihenfolge Wahrscheinlichkeit, daß gilt, ist , daß zus¨atzlich und gilt, ist , usw. Folglich sch¨atzen wir die Wahrscheinlichkeit, daß keine Kollision stattfindet, ab zu
F¨ur kleine Zahlen gilt
Keine Kollision findet folglich mit einer Wahrscheinlichkeit von
statt. Daher k¨onnen wir die Wahrscheinlichkeit von mindestens einer Kollision durch
absch¨atzen. Wenn wir diese Wahrscheinlichkeit mit bezeichnen, k¨onnen wir die letzte Gleichung als Funktion , abh¨angig von den Variablen und , aufl¨osen, und zwar:
Unter Außerachtlassung von
erhalten wir
Bei Wahl von
ergibt sich die Sch¨atzung
95
6. Hashfunktionen Das bedeutet, daß man bei ungef¨ahr zuf¨allig gew¨ahlten Elementen aus eine Kollision mit einer Wahrscheinlichkeit gr¨ oßer als erh¨alt. Die Wahl eines anderen f¨uhrt zu einem anderen konstanten Faktor von . Wenn die Menge aller Menschen darstellt und die den Geburtstag von dar. Wir Menge aller Tage eines dann stelle Nichtschaltjahres, Dies liefert den anfangs dieses Abschnitts erw¨ahnten erhalten Wert. Dieser Geburtstagsangriff bestimmt eine untere Grenze f¨ur die Gr¨oße der Fingerabdr¨ucke. Ein 40-Bit-Fingerabdruck w¨are sehr unsicher, da eine Kollision mit Wahrscheinlich(etwa einer Million) zuf¨alligen Wahlen eines gefunden w¨urde. keit bei etwas u¨ ber
Die minimale Gr¨oße eines Fingerabdrucks sollte schon 128 Bits sein, wobei immerhin zuf¨allige Wahlen von Elementen aus notwendig sind, um mit Wahrscheinlichkeit eine Kollision zu erhalten. Die Hashfunktion SHA-1, die wir in Abschnitt 6.6 betrachten werden, arbeitet mit 160 Bits.
6.4 Erweiterung von Hashfunktionen Wir zeigen in diesem Abschnitt, wie eine stark kollisionsfreie Hashfunktion mit endlichem Definitionsbereich (also eine Kompressionsfunktion) zu einer stark kollisionsfreien Hashfunktion mit unendlichem Definitionsbereich erweitert werden kann. Es sei
eine stark kollisionsfreie Hashfunktion mit kollisionsfreie Hashfunktion
. Wir benutzen
, um eine stark
zu konstruieren. Wir betrachten zun¨achst den Fall . Es sei die L¨ange von als Bitfolge. Mit bezeichnen wir wie zuvor die
Konkatenation der Bitfolgen und . Es sei . Dann k¨onnen wir
schreiben mit
96
to ;
wird durch den folgenden Algorithmus berechnet.
Algorithmus 6.4.1 , und die Funktion funktion wird f¨ur 1. for
und
Folglich ist
Die Hashfunktion
do
¨ seien die Werte aus den vorstehenden Uberlegungen. Die Hashberechnet
6.4. Erweiterung von Hashfunktionen
;
Bin¨ardarstellung von ; Auff¨ ullung links durch Nullen, damit ; 4.
2. 3.
to do ; .
5. for
6.
Wenn wir Injektion ist.
Satz 6.4.1 Es sei Dann ist die Abbildung frei.
setzen, ist klar, daß die Abbildung
eine
eine stark kollisionsfreie Hashfunktion.
aus Algorithmus 6.4.1 stark kollisionsmit
finden k¨onnen. Dann konstru mit Beweis. Wir nehmen an, daß wir ieren wir eine Kollision f¨ur in polynomialer Zeit. Dies ist ein Widerspruch dazu, daß als stark kollisionsfrei angenommen wurde. Es sei und
wobei und in Schritt 2 des Algorithmus mit bzw. Nullen aufgef¨ullt sind. Die Werte, bzw. . Wir betrachten zwei die in Schritt 5 berechnet werden, heißen
F¨alle, n¨amlich je nachdem, ob gilt oder nicht.
. Dann ist Als ersten Fall betrachten wir und . Es folgt ist dies eine Kollision f¨ur . Wegen und
. Dazu betrachten wir zwei Es sei weiter Teilf¨alle. Zun¨achst sei . Dann ist und . Wie im ersten Fall
erhalten wir Falls ist
gilt, haben wir schon eine Kollision gefunden. Anderenfalls sei
. Dann
Entweder finden wir hier eine Kollision f¨ur , oder es ist und . Immer dann, wenn wir keine Kollision finden, wird dieses Verfahren fortgesetzt, bis wir schließlich
zu
gelangen. F¨ur f¨ur alle der Widerspruch
ist eine Kollision f¨ur gefunden. Ist dagegen , dann gilt
und folglich . Da injektiv ist, folgt . 97
6. Hashfunktionen
Es bleibt noch der Teilfall zu betrachten. Ohne Beschr¨ankung der Allgemeinheit sei und damit . Zun¨achst wird so wie im vorangegangenen Teilfall verfahren. Wenn wir zuvor keine Kollision f¨ur bekommen, erreichen wir die Situation
Das -te Bit des Wortes ist , das entsprechende Bit von ist . Somit ist eine Kollision f¨ur gefunden. Da nach Definition 6.1.1 in polynomialer Zeit in bezug auf die L¨ange seiner Eingaben berechnet werden kann, kann auch in polynomialer Zeit eine Kollision f¨ur gefunden werden.
Die Konstruktion von Algorithmus 6.4.1 funktioniert nur, wenn wollen nun auch den Fall behandeln. Wie zuvor sei
durch eine Funktion kodiert, und zwar
Die Hashfunktion
und
gilt. Wir . Zun¨achst wird
wird f¨ur
berechnet
; wobei ;
to do ; .
1. 2. 3. for 4.
wird durch den folgenden Algorithmus berechnet.
Algorithmus 6.4.2 Die Hashfunktion
mit geeignetem
gilt
Die Kodierung aus Schritt 1 erf¨ullt zwei Eigenschaften: ist eine Injektion. (1) und ein weiteres Wort mit (2) Es existieren keine zwei W¨orter (d.h., keine Kodierung ist ein Postfix einer anderen Kodierung). mit beginnt und dies wegen Die Eigenschaft (2) ergibt sich daraus, daß jedes Wort der Definition von die einzige Stelle in mit zwei aufeinander folgenden Einsen ist.
eine stark kollisionsfreie Hashfunktion. Dann ist die aus Algorithmus 6.4.2 stark kollisionsfrei.
Satz 6.4.2 Es sei Abbildung
mit
und
Beweis. Wir nehmen an, daß wir
finden k¨onnen. Wir setzen
Wir betrachten zwei F¨alle. . Wie im ersten Teilfall des zweiten Falls Zun¨achst sei im Beweis von Satz 6.4.1 finden wir entweder eine Kollision f¨ur , oder wir erhalten . Dann folgt jedoch , ein Widerspruch.
98
6.5. Hashfunktionen aus Kryptosystemen
Es bleibt zu untersuchen. Ohne Beschr¨ankung der Allgemeinheit sei . Dann wird a¨ hnlich wie zuvor verfahren. Falls wir keine Kollisionen f¨ur finden, erhalten wir die folgenden Gleichungen:
.. .
Dies widerspricht der vor dem Satz genannten Eigenschaft (2).
Zusammenfassend formulieren wir den folgenden Satz.
Satz 6.4.3 Es sei mit eine stark kollisionsfreie Hashfunktion. Dann existiert eine stark kollosionsfreie Hashfunktion
Die Anzahl der Anwendungen von
bei der Berechnung von
ist.
falls falls
ist f¨ur
h¨ochstens
gilt, bzw.
6.5 Hashfunktionen aus Kryptosystemen Die im vorhergehenden Abschnitt 6.4 beschriebene Methode zur Erzeugung neuer Hashfunktionen liefert wahrscheinlich zu langsame Hashfunktionen. Ein anderer Ansatz ist es, ein existierendes Kryptosystem zur Konstruktion einer Hashfunktion zu benutzen. Dabei wollen wir zur Vereinfachung annehmen, daß gilt. Es sollte gelten, damit ein Geburtstagsangriff keine Chance hat. Wir sehen also, daß DES hierf¨ur nicht verwendet werden kann, wohl aber IDEA. Wir nehmen an, daß eine Bitfolge
gegeben ist. Wenn die Anzahl der Bits kein Vielfaches von ist, muß wie in Abschnitt 6.4 z.B. mit Nullen aufgef¨ullt werden. Man beginnt mit einem festen Anfangswert“ mit ” (auch initialer Vektor), danach werden der Reihe nach
konstruiert, wobei eine Abbildung ist, die die Chiffrierfunktion des hier benutzten Kryp . tosystems beinhaltet. Der Fingerabdruck ist schließlich Es wurden mehrere Hashfunktionen dieser Art vorgeschlagen, und viele von ihnen waren, auch bei sicherem unterliegenden Kryptosystem, unsicher. Vier Varianten scheinen jedoch sicher zu sein, die hier angegeben werden. Mit wird der Chiffrieralgorithmus be-
99
6. Hashfunktionen zeichnet. Man beachte, daß jedes berechnete
auch als Schl¨ussel verwendet werden kann.
6.6 MD5 und SHA-1 1990 wurde von Rivest die MD4-Hashfunktion vorgeschlagen und 1991 die verbesserte Version MD5. MD stehr f¨ur message digest und die 4 bzw. 5 f¨ur die Nummer in einer Reihe vorgeschlagener Hashfunktionen. Beide liefern eine 128-Bit-Hashfunktion. Das Finden
einer Kollision sollte daher etwa Rechnungen erfordern, bei vorgegebenem sollte das Finden eines mit erst mit etwa Versuchen m¨oglich sein. Inzwischen ist gezeigt worden, daß sich bei MD4 Kollisionen schon mit Rechnungen ergeben, so daß eine Verwendung von MD4 nicht mehr empfohlen werden kann. Wir besprechen in diesem Abschnitt MD5 und die ebenfalls auf MD4 aufbauende Hashfunktion SHA-1 (secure hash algorithm). Wir stellen zun¨achst in einer Tabelle verschiedene Bezeichnungen zusammen, die in den Algorithmen zur Berechnung der Hashfunktionen verwendet werden.
Bezeichnung
Bedeutung Variablen, die 32-Bit-Folgen repr¨asentieren Hexadezimaldarstellung einer 32-Bit-Zahl (01 Byte kleinster Ordnung) Addition modulo bitweises Komplement von Ergebnis eines zirkul¨aren Linksshifts von um Positionen bitweises (Und) bitweises Oder bitweises exklusives Oder
gleichzeitige Zuweisung , , wobei vor der Zuweisung ausgewertet sein m¨ussen (auch f¨ur mehr Komponenten)
und
Die Funktionen , , , und bewirken Kompressionen. Mit ihrer Hilfe werden, in komplizierterer Weise als in Abschnitt 6.4, die Hashfunktionen konstruiert. Wir beginnen mit dem MD5-Algorithmus. In diesem Zusammenhang ist die Darstellung von 32-BitZahlen f¨ur Rechner in little-endian-Architektur (z.B. Intel 80xxx) von einem gewissen Interesse. Dabei repr¨asentiert ein Wort, das durch die vier Bytes (jedes eine Zahl
100
6.6. MD5 und SHA-1
zwischen und
darstellend) gegeben ist, die Zahl
Folglich ist 01 in der Tabelle das Byte dieser Darstellung. Die vertrautere Zahldarstellung
findet sich bei Rechnern in big-endian-Architektur (wie z.B. bei einer Sun SPARCstation). Ein Wort mit Bytes repr¨asentiert die Zahl
Die Operationen von MD5 werden zwar zumeist in big-endian“-Form angegeben, einige ” Elemente sind aber little-endian“. ”
Algorithmus 6.6.1 (MD5) beliebiger L¨ange Eingabe: Bitfolge Ausgabe: 128-Bit-Hashwert 1. Definition von Konstanten Definiere vier 32-Bit Anfangswerte:
Definiere additive 32-Bit-Konstanten:
erste 32 Bits des bin¨aren Wertes von , , wobei Bogenmaß ist. : Definiere die Werte , , , , . Definiere die Anzahl von zirkul¨aren Linksshifts , : , , , .
2.
im
Vorberechnungen F¨ulle wie folgt auf, damit seine Bitl¨ange ein Vielfaches ( -faches) von 512 wird: ; Bin¨ardarstellung von ; mit dem Byte kleinster Ordnung beginnend, little-endian“-Darstellung ” ; beachte: Es ist jetzt
eine Darstellung von durch 32-BitW¨orter do for to Vertauschung der 4 Bytes von .
Initialisierung:
.
101
6. Hashfunktionen 3.
4.
Berechnungen (Kompressionsschleife): for to do begin for to do
;
; for to do begin ; end;
to do for begin ; end; for to do begin ; end; to do for
begin ; end;
end; Abschluß: Vertausche die Reihenfolge der Bytes innerhalb von , . Das erste Byte ist das Byte der kleinsten Ordnung von Ordnung von
, , ; , das letzte das der gr¨oßten
MD5 ist sehr schnell. Bei Implementierung auf einer SPARCstation verarbeitet MD5 ungef¨ahr 0,9 Mbytes/sec. Die Darstellung der Hashfunktion SHA-1 geht von einer big-endian-Architektur der Rechner aus (wie z.B. bei einer Sun SPARCstation).
Algorithmus 6.6.2 (SHA-1) beliebiger L¨ange Eingabe: Bitfolge Ausgabe: 160-Bit-Hashwert 1. Definition von Konstanten Definiere f¨unf 32-Bit Anfangswerte:
Definiere additive 32-Bit-Konstanten:
. 102
6.6. MD5 und SHA-1
2.
Vorberechnungen wie folgt auf, damit seine Bitl¨ange ein Vielfaches ( -faches) von 512 wird: F¨ulle ;
Bin¨ardarstellung von ; mit dem Byte gr¨oßter Ordnung beginnend . beachte: eine Darstellung von durch 32-BitEs ist jetzt W¨orter Initialisierung: . Berechnungen (Kompressionsschleife): for to do begin for to do
; Erweitere 16-Wortbl¨ocke in 80-Wortbl¨ocke: for to do ; ; for to do begin ;
3.
end; for to do begin end; to do for
begin end; for to do begin end;
end; Abschluß:
4.
. Das erste Byte ist das Byte der gr¨oßten Ordnung von Ordnung von
;
;
;
, das letzte das der kleinsten
Aufgrund des 160-Bit-Hashwertes liefert SHA-1 eine gr¨oßere Sicherheit gegen Geburtstagsangriffe. Diese Funktion gilt als st¨arker als MD5. Ein Vorteil der Expansion der 16-WortBl¨ocke in 80-Wort-Bl¨ocke wird darin gesehen, daß zwei verschiedene 16-Wort-Bl¨ocke zwei 103
6. Hashfunktionen 80-Wort-Bl¨ocke liefern, die in einer noch gr¨oßeren Zahl von Bitpositionen unterschiedlich sind. Dadurch wird die Anzahl der Bitunterschiede der Teilnachrichten, die zur Kompression anstehen, in deutlicher Weise erh¨oht. Diese Redundanz erh¨oht offensichtlich die Sicherheit. SHA-1 ist etwas langsamer als MD5. Auf einer SPARCstation verarbeitet SHA-1 etwa 0,2 Mbytes/sec.
104
7 Diskreter Logarithmus, Schl¨usselverwaltung und weitere Systeme 7.1 Primitive Wurzeln und der diskrete Logarithmus In diesem Kapitel werden wir ein Schl¨usselaustauschprotokoll sowie weitere Systeme betrachten, deren Sicherheit auf der Schwierigkeit beruhen, den diskreten Logarithmus (siehe auch S. 76) zu berechnen. Außerdem ben¨otigen wir den Begriff einer primitiven Wurzel. Es sei eine Primzahl und
sowie f¨ur jedes , F¨ur sei eine Zahl mit . Dann sagen wir, daß modulo zum Exponenten geho¨ rt. Die Existenz von ist durch Satz 3.8 (Satz von Fermat) gesichert, der liefert. Wir definieren gesetzt wird. Wir erhalten wobei , und geh¨ore modulo zum Exponenten . Satz 7.1.1 Es sei eine Primzahl, Dann gilt: (1)
. (2) ist eine zyklische Untergruppe von . (3) .
, , Beweis. Zum Beweis von (1) nehmen wir an, daß Zahlen
existieren mit . Es folgt . Wegen ist dies ein Widerspruch zu der Voraussetzung, daß modulo zum Exponenten geh¨ort. Also gilt . Wir betrachten weiter zwei beliebige Elemente . Dann kann mit angenommen werden. Ihr Produkt ist , anderenfalls . F¨ur liegt es offensichtlich in gilt mit . wegen die Beziehung ist also unter Multiplikation abgeschlossen und ist somit eine Untergruppe von (die von erzeugte zyklische Untergruppe von ). Dies beweist (2). Schließlich ist aus der Gruppentheorie bekannt (siehe z.B. [47], S. 36, Satz 3), daß die Ordnung (die Anzahl der Elemente) einer Untergruppe die Ordnung der ganzen Gruppe teilt. Die Ordnung von ist , die von ist .
Definition 7.1.1 Es sei eine Primzahl. Dann heißt primitive Wurzel modulo .
geh¨ore modulo
zum Exponenten
.
Satz 7.1.2 Es sei eine Primzahl und eine primitive Wurzel modulo . Dann gilt (d.h., jedes , , besitzt eine eindeutige Darstellung f¨ur ein , .).
105
7. Diskreter Logarithmus, Schl¨usselverwaltung und weitere Systeme Beweis. Nach Satz 7.1.1 gilt . Es folgt .
, und
Eine primitive Wurzel modulo erzeugt die ganze Gruppe
ist eine Untergruppe von
.
Satz 7.1.3 Es sei eine Primzahl, und besitze verschiedene Primfaktoren, die bekannt sind. Dann gilt: ( Eulersche Funktion, (1) Die Anzahl der primitiven Wurzeln modulo ist siehe Definition 3.5). (2) Der Test, ob ein gegebenes , , eine primitive Wurzel modulo ist, kann in Schritten durchgef¨uhrt werden.
Beweis. Zum Beweis von (1) benutzen wir, daß wegen nach Satz 2, S. 221, aus existiert. [47] zyklisch ist. Das bedeutet, daß ein mit Es ist also eine primitive Wurzel modulo . Folglich gilt f¨ur genau die mit einem , die sich als darstellen lassen. F¨ur jedes , , ist nach Definition 7.1.1 genau dann keine primitive Wurzel modulo , wenn ein , , mit existiert. Da eine primitive Wurzel ist, ist dies nach der oben angegebenen Eigenschaft . Wegen von a¨ quivalent zu muß dabei ein Primfaktor von folgt auch in vorkommen. Aus . Gilt umgekehrt
somit ggt ggt , so k¨onnen wir w¨ahlen. Dann gilt und ¨ , also . Durch Negation dieser Aquivalenzen erhalten wir, daß f¨ur jedes , , genau dann eine primitive Wurzel modulo ist, wenn ggt erf¨ullt ist. Es gibt genau Zahlen mit dieser Eigenschaft, was die Aussage (1) des Satzes beweist. Wir betrachten (2). Wenn modulo zum Exponenten geh¨ort, erhalten wir nach Satz . Dabei ist genau dann keine primitive Wurzel modulo , wenn 7.1.1
gilt. Das ist jedoch genau dann der Fall, wenn f¨ur einen Primfaktor von gilt,
. Somit ist genau dann eine primitive Wurzel modulo , also genau f¨ur
f¨ur jeden Primfaktor von gilt. Diese Bedingung kann nach Satz wenn Multiplikationen u¨ berpr¨uft werden. Offenbar ist 3.3 f¨ur jeden der Faktoren mit
, so daß sich insgesamt Schritte ergeben. Wenn speziell gilt mit einer Primzahl (d.h., ist eine sichere Primzahl, siehe auch Seite 86), dann ist es nicht schwer, f¨ur ein gegebenes den zugeh¨origen Exponenten modulo zu bestimmen. Es muß gelten, also kommen nur oder in Frage. Außerdem ist es hier leicht, modulo zu finden. Es gilt
primitive Wurzeln . F¨ur große hat also ein zuf¨allig gew¨ahltes Element aus ungef¨ahr die Wahrscheinlichkeit , eine primitive Wurzel modulo zu sein.
Mit einem Vorgriff auf Abschnitt 8.1 k¨onnen wir den folgenden Satz beweisen.
Satz 7.1.4 Es sei eine Primzahl, eine primitive Wurzel modulo Dann gilt: . (1) (2) ist ein quadratischer Nichtrest modulo .
106
und
.
7.1. Primitive Wurzeln und der diskrete Logarithmus
Beweis. Wegen und gilt . Nach Satz 8.1.4 kommt dann nur der Wert in Frage, womit nach Satz 8.1.4 auch die Aussage (2) erf¨ullt ist.
F¨ur den Rest dieses Abschnitts nehmen wir an, daß eine Primzahl ist und eine primitive Wurzel modulo . Das Problem des diskreten Logarithmus kann wie folgt gestellt werden. Es sei . Finde den eindeutigen Exponenten , , f¨ur den gilt. Bei vollst¨andiger Suche kann dieses Problem in der Zeit mit Platz gel¨ost werden, wenn wir logarithmische Faktoren außer Acht lassen. Wenn wir alle m¨oglichen Werte zuvor berechnen und die Paare nach ihrer zweiten Komponente sortieren, k¨onnen wir (wieder ohne Ber¨ucksichtigung logarithmischer Faktoren) das Problem in der Zeit mit Vorberechnungen und Platz berechnen. Als ersten nichttrivialen Algorithmus beschreiben wir den Algorithmus von Shanks.
Algorithmus 7.1.1 Shanks Algorithmus zum Berechnen des diskreten Logarithmus Eingabe: Ein primitives Element modulo und ein Element . Ausgabe: Der diskrete Logarithmus (1) Berechne . f¨ur alle . (2) Berechne (3) Sortiere die geordneten Paare bez¨uglich ihrer zweiten Komponente (ergibt eine Liste ).
(4) Berechne f¨ur alle .
(5) Sortiere die geordneten Paare bez¨uglich ihrer zweiten Komponente (ergibt eine Liste ). und ein Paar (Paare mit gleicher zweiter Kom(6) Finde ein Paar ponente). . (7) Definiere
gilt, ist in Schritt (7) die Modulo-Bildung erforderlich. Da im allgemeinen
mit gilt Wegen
wobei das zweite Gleichheitszeichen wegen Satz 3.8 (Satz von Fermat) gilt. Entsprechende Gleichungen werden in diesem Kapitel noch h¨aufiger auftreten. Die Schritte (1) und (2) k¨onnen vorberechnet werden, wodurch die asymptotische Laufzeit des Algorithmus aber nicht ver¨andert wird.
Satz 7.1.5 Algorithmus 7.1.1 bestimmt den diskreten Logarithmus bez¨uglich dem Modulus , bei Nichtber¨ u cksichtigung von logarithmischen Faktoren, in der Zeit mit Platz.
Beweis. Die Aussagen u¨ ber die Laufzeit und den Platzbedarf sind offensichtlich richtig. Gilt und , dann folgt
107
7. Diskreter Logarithmus, Schl¨usselverwaltung und weitere Systeme und damit
Umgekehrt existieren wegen mit
und f¨ur jeden Wert Zahlen . Die Suche in (6) ist daher erfolgreich.
Ein kleines Beispiel soll den Algorithmus verdeutlichen:
, und wir m¨ochten bestimmen. Es gilt also
und
Beispiel 7.1.1 Wir w¨ahlen
Es ist . Wir berechnen die geordneten Paare
Nach Sortierung erhalten wir . Liste enth¨alt alle geordneten Paare Die zweite , also
f¨ur alle
und erhalten
f¨ur alle
Nach Sortierung erhalten wir . Nun durchlaufen wir gleichzeitig beide sortierten Listen, in und in finden. Damit ist gem¨aß Schritt (7) des Algobis wir bestimmt. Zur Probe kann u¨ berpr¨uft werden, daß rithmus
gilt.
Als n¨achstes betrachten wir den Pohlig-Hellman-Algorithmus. Der Wert wird ¨ eindeutig modulo bestimmt (siehe Uberlegungen im Anschluß an Algorithmus 7.1.1).
Algorithmus 7.1.2 Pohlig-Hellman-Algorithmus zur Bestimmung des diskreten Logarithmus Eingabe: Ein primitives Element modulo und ein Element . Ausgabe: Der diskrete Logarithmus
(1) Finde die Primfaktorisierung , wobei f¨ur f¨uhre die folgenden Schritte durch: (2) F¨ur alle
berechne
, wobei gilt (a) ; vereinfache die Notation . (b) ; .
108
gilt.
7.1. Primitive Wurzeln und der diskrete Logarithmus
(c) . (d) Berechnung der for from 0 to begin
do ;
; mit Hilfe von Algorithmus 7.1.1
. (e)
(3) Mit Hilfe von Algorithmus Restesatz) berechne , , mit f¨u3.4r (Chinesischer
.
. (4) und eine primitive 7.1.6 Algorithmus 7.1.2 berechnet f¨ur Wurzel modulo Satz den diskreten Logarithmus . Falls die Faktorisierung von vorgegeben ist, Schritte. ben¨otigt er daf¨ur
. Wir setzen , . Mit den vereinfachenden Beweis. Es sei
Bezeichnungen aus dem Algorithmus sei
,
. In -adischer Darstellung k¨onnen wir als
ist. Wir bemerken, daß schreiben, wobei f¨ur f¨ur ein geeignetes gilt. Wir beweisen zun¨achst, daß der Algorithmus in (2) tats¨achlich diese Werte berechnet. end
Im Iterationsschritt von (2)(d) gilt offenbar
Weiter erf¨ullt der Wert dieses Schrittes aufgrund der zuvor angegebenen Gleichungen
wobei die vorletzte Gleichung richtig ist, da nach Schritt (2)(c) des Algorithmus die Ordnung hat. Somit ist tats¨achlich durch gegeben, und in Schritt (2)(e) wird genau der zu Beginn des Beweises angegebene Wert bestimmt. In Schritt (3) wird der eindeutige Wert , , mit , , errechnet. Folglich wird der gesuchte Logarithmus in Schritt (4) durch diesen Wert festgelegt.
109
7. Diskreter Logarithmus, Schl¨usselverwaltung und weitere Systeme
der Schleifen in (2)(d) des Algorithmus ben¨otigt f¨ur die Exponentiationen Jede Schritte und, da die Ordung von jeweils ist, Schritte f¨ur
die jeweilige Bestimmung des diskreten Logarithmus. Insgesamt ergibt sich die angegebene Anzahl von Schritten.
Der Satz zeigt, daß der Pohlig-Hellman-Algorithmus nur dann effizient ist, wenn die Primteiler relativ klein sind. Als Beispiel betrachten wir die multiplikative Gruppe , wobei die folgende 107-stellige Zahl ist:
Der gr¨oßte Prim Die Ordnung von ist
teiler ist nur , so daß in dieser Gruppe der diskrete Logarithmus mit dem PohligHellman-Algorithmus relativ einfach zu berechnen ist. Der Zeitbedarf wird in diesen F¨allen beschrieben ( Primfaktoren mit jeweils im wesentlichen durch Zeitbedarf). Man kann zun¨achst versuchen, in Schritt (1) des Algorithmus kleine Primfaktoren zu finden. Wenn dies nicht gelingt, arbeitet der Algorithmus ohnehin ineffizient. Wir geben ein Beispiel f¨ur den Pohlig-Hellman-Algorithmus an.
, so daß bestimmen. Wir berechnen erst gilt. Es sei , und wir wollen
. und dann
. Im ersten Wir setzen und . Es ist Beispiel 7.1.2 Wir w¨ahlen
Schleifendurchlauf von (2)(d) ist
und
Es wird dann
berechnet. Im zweiten Schleifendurchlauf ergibt sich
und
Es ist also
. Im Schließlich setzen wir
und . Es ist
und wir erhalten
ersten und einzigen Schleifendurchlauf von (2)(d) ist
110
7.2. Schl¨usselverwaltung Es folgt
und damit Das Gleichungssystem
wird mit Hilfe des Chinesischen Restesatzes gel¨ost und liefert die eindeutige L¨osung . Dieser Wert ist der gesuchte diskrete Logarithmus.
Neben diesen Algorithmen gibt es noch viele weitere Algorithmen f¨ur das Problem des diskreten Logarithmus, z.B. den Index-Kalkulus-Algorithmus. Um sich gegen die M¨oglichkeiten zu sch¨utzen, die durch Algorithmus 7.1.2 und andere Algorithmen gegeben werden, wird die Sicherheitsforderung gestellt, daß einen großen“ Primfaktor enthalten sollte. Groß heißt hier, daß die Berechnungen f¨ur prak”
angenommen werden kann. Daraus ergibt tisch nicht durchf¨uhrbar sind, was f¨ur sich der folgende Algorithmus zur Bestimmung von und , der speziell eine sichere Prim zahl (d.h., auch ist prim) findet. Dabei ist noch zu beachten, daß f¨ur eine sichere Primzahl nach dem Beweis von Satz 7.1.3(2) ein genau dann eine primitive Wurzel ist, wenn und gilt. Genau f¨ur und erhalten wir . Somit ist genau dann eine primitive Wurzel, wenn und gilt.
Algorithmus 7.1.3 Eingabe: die gew¨unschte Bitl¨ange der Primzahl Ausgabe: eine sichere Primzahl mit prim und eine primitive Wurzel
repeat w¨ahle eine (mutmaßliche) Primzahl mit Bits nach Algorithmus 5.2.6 und ¨ den davor stehenden Uberlegungen; ; teste mit Hilfe von Algorithmus 5.2.6, ob prim ist until prim; repeat w¨ahle ein zuf¨alliges Element until ; gib aus
7.2 Schlusselverwaltung ¨ Bei der Verwendung eines Kryptosystems, auch bei einem Public-Key-Kryptosystem, stellt sich prinzipiell die Frage nach der Authenzit¨at der Personen, die gewisse Schl¨ussel oder Schl¨usselpaare verwenden. Wieso kann ein Benutzer sicher sein, daß z.B. das Paar im RSA-Verfahren wirklich zum Benutzer geh¨ort? Deswegen m¨ussen die Schl¨ussel im Netzwerk durch entsprechende vertrauensw¨urdige Instanzen so verwaltet werden, daß diese Authentizit¨at gew¨ahrleistet ist.
111
7. Diskreter Logarithmus, Schl¨usselverwaltung und weitere Systeme Bevor wir auf einige Protokolle zur Schl¨usselverteilung zu sprechen kommen, wollen wir zun¨achst das o¨ ffentliche Schl¨usselaustauschsystem von Whitfield Diffie und Martin Hellman von 1976 angeben (siehe [22]), bei dem der Schl¨usselaustausch durch Exponentiation erfolgt. Die Authentizit¨at der Teilnehmer, d.h., ob sie die Personen sind, die sie behaupten, ist dabei nicht gew¨ahrleistet. Fast gleichzeitig wurde dies Verfahren auch im Geheimen von James Ellis, Clifford Cocks und Malcolm Williamson am GCHQ (siehe Seite 76) entdeckt. Wir kommen nun zu dem o¨ ffentlichen Schl¨usselaustauschsystem. Es wird angenommen, daß sich Alice und Bob auf eine gemeinsame große Primzahl und eine gemeinsame primitive Wurzel modulo verst¨andigt haben. Sowohl und k¨onnen o¨ ffentlich bekannt sein.
Protokoll 7.2.1 (1) Alice w¨ahlt zuf¨allig eine Zahl
Sie h¨alt geheim und sendet (2) Bob w¨ahlt zuf¨allig eine Zahl
Er h¨alt geheim und sendet (3) Alice berechnet
und berechnet
an Bob. und berechnet
an Alice.
Bob erh¨alt denselben Wert durch
(4) Alice und Bob benutzen Nachrichtenaustausch.
als einen geheimen Schl¨ussel f¨ur den weiteren
Durch ein entsprechendes Herausgreifen von Bits k¨onnen Alice und Bob z.B. als Schl¨ussel im DES verwenden. Wie wir wissen, sind die Rechnungen aus Protokoll 7.2.1 schnell durchzuf¨uhren. Andererseits sind f¨ur die Berechnung von die geheimen Werte von bzw. notwendig. Dazu muß man wohl, eine andere M¨oglichkeit ist jedenfalls nicht bekannt, die Logarithmen von bzw. modulo berechnen. Wir wissen, daß dieses Problem praktisch nicht zu l¨osen ist. Um eine sichere Schl¨usselverteilung in einem gr¨oßeren Netzwerk zu erreichen, ist ein Schl¨usselverteilungszentrum (key distribution center, KDC) erforderlich, das eine vertrauensw¨urdige Netzwerkresource sein muß. In Protokoll 7.2.2 geben wir zun¨achst ein Verfahren an, das kein Public-Key-Kryptosystem benutzt. mit jedem Benutzer . Das KDC teilt einen gemeinsamen Schl¨ u ssel Es benutzt , um zus¨atzliche Schl¨ussel bei Bedarf zuzuteilen. Wenn ein Teilnehmer sicher mit einem anderen kommunizieren m¨ochte, wendet er sich an das KDC, um einen Schl¨ussel f¨ur diese spezielle Unterhaltung“ zu erhalten. Dies kann mit vielen unterschiedli” chen Schl¨usselverteilungsprotokollen erreicht werden. Die Unterschiede sind abh¨angig von den erlaubten Kosten der Nachrichten oder davon, ob mehrere gleichzeitige Verbindungen
112
7.2. Schl¨usselverwaltung verf¨ugbar sein sollen, ob die Teilnehmer synchronisierte Uhren haben oder ob das KDC auch berechtigt sein soll, Kommunikationen zu erlauben oder zu verbieten. Unser Protokoll 7.2.2 ist typisch und benutzt eine wichtige Eigenschaft der kryptographischen Authentifizierung. Es benutzt das Konzept eines Zertifikats“. Es handelt sich da” bei um eine kryptographisch authentische Nachricht, die den Schl¨ussel f¨ur die Kommunikation enth¨alt. Nur das vertrauensw¨urdige KDC konnte das Zertifikat erzeugen. Protokoll 7.2.2 (1) Alice m¨ochte einen sicheren Nachrichtenaustausch mit Bob er¨offnen. Sie wendet sich an das KDC und bittet um einen Schl¨ussel zur Kommunikation mit Bob. aus und schickt Alice ein Paar von (2) Das KDC w¨ahlt einen Schl¨ussel Zertifikaten, n¨amlich . Die erste Komponente kann nur von Alice, die zweite nur von Bob entschl¨usselt werden. (3) Alice berechnet und sendet die andere Komponente an Bob. Damit f¨uhrt sie sich bei Bob (und nur bei Bob) ein. Bob berechnet . (4) Alice und Bob beginnen die sichere Kommunikation mit diesem Sitzungsschl¨ussel.
Alice und Bob m¨ussen nicht bei jeder Kommunikation das ganze Protokoll wiederholen, sondern k¨onnen f¨ur sp¨ateren Gebrauch die Zertifikate aufheben. So muß nicht jedes Mal das KDC angerufen werden. Trotzdem ist die Anzahl der KDC-Anrufe proportional der Anzahl der verschiedenen Paare von Benutzern, die miteinander kommunizieren wollen. Außerdem sollten die Benutzer immer mal wieder die Schl¨ussel wechseln. Ein ernsterer Nachteil des Protokolls ist jedoch, daß die Benutzer das Geheimnis ihrer verschiedenen Schl¨ussel mit dem KDC teilen m¨ussen. Gelingt ein Einbruch in das KDC, sind auch die Schl¨ussel der Benutzer aufgedeckt. Das folgende Protokoll 7.2.3 beruht auf der ein Kommunikation der Teilnehmer durch und Public-Key-Kryptosystem. Jeder Teilnehmer besitzt einen o¨ ffentlichen Schl¨ussel einen geheimen Schl¨ussel , die entsprechenden Schl¨ussel f¨ur das KDC werden mit und bezeichnet.
Protokoll 7.2.3 (1) Jeder Teilnehmer teilt dem KDC seinen o¨ ffentlichen Schl¨ussel mit. stellt das Zertifikat f¨ur den o¨ ffentlichen Schl¨ussel von dar. Dabei kann durch zus¨atzliche Informationen erg¨anzt werden. (2) Das KDC sendet jedem Teilnehmer sein zugeh¨origes Zertifikat. Durch Anwendung von kann u¨ berpr¨ufen, ob es tats¨achlich enth¨alt. (3) Alice und Bob m¨ochten miteinander einen sicheren Nachrichtenaustausch er¨offnen. Alice sendet ihr Zertifikat an Bob und Bob sendet sein Zertifikat an Alice. (4) Alice und Bob pr¨ufen die Authentizit¨at der Zertifikate durch Anwendung von . (5) Alice und Bob beginnen ihre Kommunikation mit den in den Zertifikaten enthaltenen Schl¨usseln.
Protokoll 7.2.3 hat viele Vorteile gegen¨uber Protokoll 7.2.2. F¨ur jeden Benutzer reicht ein Zertifikat, mit dem er sich bei allen anderen Benutzern (durch Schritt 3 des Protokolls) einf¨uhren kann. Vor einer speziellen Kommunikation muß also das KDC nicht angerufen werden. Da das Zertifikat den o¨ ffentlichen, aber nicht den geheimen Schl¨ussel enth¨alt, muß 113
7. Diskreter Logarithmus, Schl¨usselverwaltung und weitere Systeme man es nicht unbedingt sicher verwahren. Auch das KDC kann, im Gegensatz zu Protokoll 7.2.2, die zwischen Alice und Bob ausgetauschten Nachrichten nicht lesen. Das hat den Vorteil, daß auch ein Eindringling in das KDC keinen direkten Zugang zu den geheimen Nachrichten hat. Besitzt ein Eindringling den geheimen Schl¨ussel , so muß er, um eine Nachricht von Alice an Bob zu erhalten, zun¨achst die Nachricht von Bob an Alice abfangen, in der und damit ein Zertifikat Bob Alice sein Zertifikat mitteilt. erzeugt ein Paar und sendet dieses an Stelle von Bobs Zertifikat an Alice. Damit kann jede Nachricht von Alice an Bob lesen. Wenn jedoch eine so mit falsch chiffrierte Nachricht Bob erreicht, so kann er Alice darauf aufmerksam machen. Deswegen muß die Nachrichten von Alice an Bob, die jetzt mit verschl¨usselt sind, auffangen, sie entschl¨usseln und dann mit Bobs o¨ ffentlichem Schl¨ussel chiffrieren und an Bob weitersenden, um den Betrug aufrechtzuerhalten. Wenn Bobs Antworten verstehen will, muß er dieselbe Prozedur mit Bob durchf¨uhren. Die angegebene Prozedur ist auf jeden Fall sehr schwerf¨allig. Damit die Kontrolle beh¨alt, insbesondere, wenn er mehrere Teilnehmer ausspionieren will, muß er an vielen Stellen im Netz eingreifen. Wenn die Nachrichten u¨ ber Radiowellen u¨ bertragen werden, ist eine Ersetzung der Nachrichten a¨ ußerst schwierig. Man kann Protokoll 7.2.3 in ein hybrides System umwandeln, indem in Schritt 5 Alice und Bob mit Hilfe der gegenseitigen o¨ ffentlichen Schl¨ussel einen geheimen Schl¨ussel f¨ur z.B. den DES austauschen. In diesem Fall hat es der Eindringling jedoch etwas leichter. Nach Wahl des DES-Schl¨ussels, den er nach der obigen Methode abfangen kann, muß er den Kanal zwischen Alice und Bob nicht mehr kontrollieren, er muß nur noch ihre Nachrichten lesen. Dieser Gefahr k¨onnen jedoch Alice und Bob entgegenwirken, indem sie immer wieder unter Benutzung der o¨ ffentlichen Schl¨ussel neue Sitzungsschl¨ussel vereinbaren. Aufgedeckte Schl¨ussel sind eine große Gefahr, da damit auch die Nachrichten gelesen werden k¨onnen, die damit in der Vergangenheit verschl¨usselt wurden. Deswegen m¨ussen nicht mehr gebrauchte Schl¨ussel zerst¨ort werden. Dieses Problem wird gel¨ost in einem sicheren Telefon, das bei Bell-Northern Research entwickelt wurde (siehe [24], [75]) und im ISDN-Telefonnetz verwendet werden kann. Jedes sichere ISDN-Telefon besitzt ein Paar aus einem o¨ ffentlichen und einem geheimen Schl¨ussel, wobei der o¨ ffentliche Schl¨ussel wieder in einem Zertifikat enthalten ist, das, zusammen mit Telefonnummer und Name des Benutzers, von der Schl¨usselverwaltungsstelle mit Hilfe eines Public-Key-Systems signiert wurde.
Protokoll 7.2.4 (1) Die Telefone f¨uhren Protokoll 7.2.1 aus, um den Sitzungsschl¨ussel (eines konventionellen Kryptosystems) f¨ur die aktuelle Verbindung zu bestimmen. Der weitere Nachrichtenaustausch erfolgt ab sofort mit diesem Sitzungsschl¨ussel. (2) Jedes Telefon sendet dem anderen sein Zertifikat. (3) Jedes Telefon u¨ berpr¨uft die Signatur des Zertifikats und entnimmt ihm den o¨ ffentlichen Schl¨ussel des anderen Telefons. (4) Die Telefone fordern sich jeweils auf, Testnachrichten mit den jeweiligen geheimen Schl¨usseln zu chiffrieren, und sie u¨ berpr¨ufen die Authentizit¨at des anderen Telefons durch Anwendung des o¨ ffentlichen Schl¨ussels aus dem u¨ bermittelten Zertifikat auf die chiffrierte Testnachricht. (5) Jedes Telefon stellt f¨ur seinen Benutzer auf dem Display die Telefonnummer und den Benutzernamen des anderen Telefons dar. (6) Der geheime Nachrichtenaustausch (Telefongespr¨ach) der Benutzer beginnt. 114
7.3. ElGamal-Public-Key-Verfahren (7) Nach Beendigung der Verbindung wird der Sitzungsschl¨ussel zerst¨ort.
Auch die sp¨atere Aufdeckung des im Telefon vorhandenen Paars aus o¨ ffentlichem und geheimen Schl¨ussel kann nicht zur Entschl¨usselung der zuvor gef¨uhrten Gespr¨ache f¨uhren.
7.3 ElGamal-Public-Key-Verfahren Wir beschreiben zun¨achst das grundlegende ElGamal-Verschl¨usselungsverfahren, das auf der Schwierigkeit beruht, diskrete Logarithmen zu berechnen. Zuerst geben wir an, wie sich Alice ( ) einen o¨ ffentlichen und einen privaten Schl¨ussel verschafft. Algorithmus 7.3.1 (Schl¨usselerzeugung f¨ur die ElGamal Public-Key-Verschl¨usselung) Es wird ein o¨ ffentlicher Schl¨ussel f¨ur Alice und ein zugeh¨origer privater Schl¨ussel erzeugt (1) Erzeuge eine sichere große Primzahl und eine primitive Wurzel der multiplikativen Gruppe gem¨aß Algorithmus 7.1.3. (2) W¨ahle eine Zufallszahl , , und berechne mit Hilfe von Algorithmus 3.1. (3) Der o¨ ffentliche Schl¨ussel von ist , der private ist .
Der Benutzer Bob ( ) schickt mit dem o¨ ffentlichen Schl¨ussel von Alice dieser eine Nachricht nach dem folgenden Algorithmus 7.3.2 (ElGamal Public-Key-Verschlu¨ sselung) f¨ur Alice, die diese dechiffriert Bob chiffriert eine Nachricht (1) Zur Chiffrierung f¨uhrt Bob die folgenden Schritte aus: (a) besorgt sich den authentischen o¨ ffentlichen Schl¨ussel als Zahl im Bereich (b) stellt dar. (c) w¨ahlt eine zuf¨allige Zahl , . (d) berechnet und . (e) u¨ bermittelt an . (2) Zur Dechiffrierung f¨uhrt Alice die folgenden Schritte aus: (a) Mit ihrem privaten Schl¨ussel berechnet sie den Wert
. durch (b) erh¨alt den Klartext
.
von .
Satz 7.3.1 Beim Vorgehen nach Algorithmus 7.3.1 und Algorithmus 7.3.2 gilt f¨ur jede . Nachricht die Gleichung
Beweis. Es gilt
gilt, da eine Gruppe der Ordnung ist. wobei
Wir sehen sofort, daß die ElGamal-Verschl¨usselung einen doppelt so großen Chiffretext wie den Klartext erzeugt. Dies ist zum Beispiel bei dem RSA-Verfahren nicht der Fall. 115
7. Diskreter Logarithmus, Schl¨usselverwaltung und weitere Systeme Außerdem erkennen wir, daß Randomisierung im Chiffrierprozeß verwendet wird, indem eine zuf¨allige Zahl verwendet wird. Es gibt viele Chiffrierverfahren, die mit einer solchen probabilistischen Verschl¨usselung arbeiten. Die grundlegende Idee ist dabei, daß die kryptographische Sicherheit durch eine oder mehrere der folgenden Methoden erh¨oht wird: (1) Es wird die effektive Gr¨oße des Klartextraumes vergr¨oßert. (2) Ausschließen oder zumindest Verringern der Effizienz von Angriffen mit gew¨ahltem Klartext, indem ein Klartext auf viele Weisen in einen Chiffretext u¨ berf¨uhrt werden kann. (3) Ausschließen oder zumindest Verringern der Effizienz von statistischen Angriffen, indem die a-priori-Wahrscheinlichkeitsverteilung der Eingaben der Gleichverteilung angen¨ahert wird. ¨ Die Sicherheit des Verfahrens beruht auf den Uberlegungen aus Abschnitt 7.1, wobei eine sichere Primzahl und eine primitive Wurzel gem¨aß Algorithmus 7.1.3 bestimmt wird. Es ist wichtig, daß verschiedene zuf¨allige Zahlen benutzt werden, um verschiedene und zu chiffrieren. Anderenfalls gilt f¨ur die Chiffretextpaare Nachrichten und die Gleichung
in
. Dann l¨aßt sich bei bekanntem die Nachricht sofort berechnen.
Beispiel 7.3.1 Wir betrachten ein kleines“ Beispiel mit einer sicheren Primzahl ” . ist nach Algorithmus 7.1.3 wegen eine primitive Wurzel. Wir w¨ahlen eine Zufallszahl und berechnen
Der o¨ ffentliche Schl¨ussel wird durch und der private durch gegeben. an Alice schicken. Er w¨ahlt die zuf¨allige Zahl Bob m¨ochte die Nachricht
und berechnet und dechiffriert ihn durch Alice erh¨alt den Chiffretext
Nach den letzten Fortschritten auf dem Gebiet, diskrete Logarithmen in zu berechnen, kann ein 512-Bit-Modulus nicht mehr als sicher angesehen werden, wenn ein konzertierter Angriff verschiedener Personen und Rechner erfolgt. 1996 wurden 768 Bits empfohlen und f¨ur gr¨oßere l¨angerw¨ahrende Sicherheit 1024. Alle Teilnehmer k¨onnen, wenn sie wollen, dieselbe Primzahl und dieselbe primitive Wurzel w¨ahlen, so daß und nicht als Teil des o¨ ffentlichen Schl¨ussels ver¨offentlicht werden m¨ussen. Nun gibt es aber Algorithmen, die in dieser Situation, selbst bei mehr als 1024 Bits f¨ur , eine Reihe der o¨ ffentlichen Schl¨ussel aufdecken k¨onnen (siehe [63], S. 296, und die dortigen Verweise).
116
7.3. ElGamal-Public-Key-Verfahren Das ElGamal-Verschl¨usselungsverfahren kann leicht verallgemeinert werden, so daß es in anderen endlichen zyklischen Gruppen arbeitet. Die Sicherheit beruht auch hier auf der Schwierigkeit, den diskreten Logarithmus in der Gruppe zu bestimmen. Die Gruppe muß sorgf¨altig gew¨ahlt werden, damit die beiden folgenden Bedingungen erf¨ullt sind: (1) Aus Gr¨unden der Effizienz m¨ussen die Gruppenoperationen in leicht auszuf¨uhren sein. (2) Um die Sicherheit zu gew¨ahrleisten, muß das Berechnen des diskreten Logarithmus in praktisch unm¨oglich sein. Wir geben einige Gruppen an, die diese Kriterien wohl erf¨ullen, wobei die ersten drei die meiste Beachtung gefunden haben. Es gibt noch weitere Gruppen, die in Frage kommen, die wir aber nicht nennen, da schon ihre Definition u¨ ber den Rahmen dieser Vorlesung hinausgeht. der Zahlen modulo einer Primzahl (s.o.). (1) Die multiplikative Gruppe (2) Die multiplikative Gruppe F des endlichen K¨orpers F der Charakteristik 2. (3) Die Gruppe der Punkte auf einer elliptischen Kurve u¨ ber einem endlichen K¨orper. (4) Die multiplikative Gruppe F des endlichen K¨orpers F , wobei mit einer Primzahl gilt.
Algorithmus 7.3.3 (Schl¨usselerzeugung f¨ur die verallgemeinerte ElGamal Public-KeyVerschl¨usselung) Es wird ein o¨ ffentlicher Schl¨ussel f¨ur Alice und ein zugeh¨origer privater Schl¨ussel erzeugt (1) W¨ahle eine geeignete zyklische Gruppe der Ordnung mit erzeugendem Element .
, und berechne das Gruppenelement . (2) W¨ahle eine Zufallszahl , (3) Der o¨ ffentliche Schl¨ussel von ist , zusammen mit einer Beschreibung, wie in multipliziert wird. Der private Schl¨ussel ist .
Der Benutzer Bob ( ) schickt mit dem o¨ ffentlichen Schl¨ussel von Alice dieser eine Nachricht nach dem folgenden Algorithmus 7.3.4 (Verallgemeinerte ElGamal Public-Key-Verschlu¨ sselung) f¨ur Alice, die diese dechiffriert Bob chiffriert eine Nachricht (1) Zur Chiffrierung f¨uhrt Bob die folgenden Schritte aus: von . (a) besorgt sich den authentischen o¨ ffentlichen Schl¨ussel als ein Element von dar. (b) stellt (c) w¨ahlt eine zuf¨allige Zahl , in . . (d) berechnet und (e) u¨ bermittelt an . (2) Zur Dechiffrierung f¨uhrt Alice die folgenden Schritte den aus: in . (a) Mit ihrem privaten Schl¨ u ssel berechnet Wert durch . (b) erh¨alt den Klartext
Satz 7.3.2 Beim Vorgehen nach Algorithmus 7.3.3 und Algorithmus 7.3.4 gilt f¨ur jede Nachricht die Gleichung .
Beweis. Es gilt
117
7. Diskreter Logarithmus, Schl¨usselverwaltung und weitere Systeme da
ist.
Als Beispiel betrachten wir eine multiplikative Gruppe F mit unrealistisch kleinen Parametern. Zuvor geben wir kurz an, wie eine solche Gruppe definiert wird. Es sei eine Primzahl und ein irreduzibles Polynom vom Grad (ein Polynom ist irreduzibel, wenn es nicht als Produkt zweier Polynome des Grades dargestellt werden kann). Dann ist
das durch bestimmte Ideal ist) ein endlicher (Quotientenringbildung, wobei K¨orper der Ordnung . Addition und Multiplikation werden modulo durchgef¨uhrt. werden also als gleich im Quotientenring angesehen, Zwei Polynome wenn gilt. Das bedeutet, daß durch die Menge der Polynomit einem me dargestellt wird. F¨ur jedes existiert ein irreduzibles Polynom vom Grad u¨ ber . Beispiel 7.3.2 Es kann u¨ berpr¨uft werden, daß irreduzibel u¨ ber ist. w¨ahlt die multiplikative Gruppe des endlichen K¨orpers F wobei die Multiplikation modulo dem irreduziblen Polynom durchgef¨uhrt wird. Zur Vereinfachung werde ein Polynom durch den Bin¨arstring , und dargestellt. hat die Ordnung ein erzeugendes Element ist . w¨ahlt . Der o¨ ffentliche Schl¨ussel von
und berechnet ist zusammen mit dem Polynom , das die Multiplikation bestimmt. Wir nehmen an, daß die Nachricht
verschl¨usselt werden soll. w¨ahlt zuf¨allig und berechnet und
und sendet diese Werte an . Zur Dechiffrierung berechnet
und erh¨alt dadurch
Wir kommen jetzt zu dem ElGamal-Signaturschema. Algorithmus 7.3.5 (Schl¨usselerzeugung f¨ur das ElGamal Public-Key-Signaturschema) Es wird ein o¨ ffentlicher Schl¨ussel f¨ur Alice und ein zugeh¨origer privater Schl¨ussel erzeugt (1) Erzeuge eine große Primzahl und eine primitive Wurzel der multiplikativen Gruppe gem¨aß Algorithmus 7.1.3. (2) W¨ahle eine Zufallszahl , , und berechne mit Hilfe von Algorithmus 3.1. , der private ist . (3) Der o¨ ffentliche Schl¨ussel von ist
118
7.3. ElGamal-Public-Key-Verfahren Diese Schl¨usselerzeugung ist genau dieselbe wie bei der ElGamal-Public-KeyVerschl¨usselung (Algorithmus 7.3.1). Der folgende Algorithmus zeigt, wie Alice eine Nach richt signiert und wie Bob mit Hilfe des o¨ ffentlichen Schl¨ussels von Alice diese Nachricht verifizieren kann.
Algorithmus 7.3.6 (ElGamal Public-Key-Signaturverfahren) Alice signiert eine Nachricht , die Bob verifiziert (1) Zur Signierung f¨uhrt Alice die folgenden Schritte aus: . (a) w¨ahlt eine zuf¨allige Zahl mit und ggt (b) berechnet . .
(c) berechnet (d) stellt die Nachricht als ein Element dar.
(e) berechnet . sowie die zugeh¨ . (f) u¨ bermittelt den Klartext orige Signatur auf zu u¨ berpr¨ufen, f¨uhrt Bob die folgenden Schritte durch: (2) Um ’s Signatur von . (a) besorgt sich den authentischen o¨ ffentlichen Schl¨ussel (b) u¨ berpr¨uft, ob gilt. Anderenfalls bricht er das Verfahren ab. (c) berechnet und . (d) akzeptiert genau dann die Signatur, falls gilt.
Satz 7.3.3 Beim Vorgehen nach Algorithmus 7.3.5 und Algorithmus 7.3.6 gilt die Glei zu geh¨ort. chung , wenn die Signatur
Beweis. Wenn die Signatur von Multiplikation mit liefert
Es folgt
erzeugt wurde, gilt
Die Verifikation ergibt dann
und damit
.
f¨ur ein
, und . Dann folgt
Beispiel 7.3.3 Alice w¨ahlt
Der o¨ ffentliche Schl¨ussel ist also
Alice m¨ochte die Nachricht Es gilt, wie verlangt, ggt
Sie w¨ahlt einen zuf¨alligen Wert signieren. . Sie berechnet und
. 119
7. Diskreter Logarithmus, Schl¨usselverwaltung und weitere Systeme
Dann berechnet sie
.
Alice u¨ bermittelt Bob neben dem Klartext die Signatur der Wert von Bob stellt fest, daß wegen berechnet
und wegen ist die Signatur verifiziert.
und
im richtigen Bereich liegt. Er
Wir betrachten die Sicherheit des ElGamal-Signaturschemas. Wir u¨ berlegen, warum in ¨ Schritt (2)(b) von Algorithmus 7.3.6 die Uberpr¨ ufung vorgenommen wird. Wenn das nicht geschieht, kann Oskar, sofern er nur eine g¨ultige Signatur einer Nachricht mit ggt von Alice erh¨alt, jede beliebige Nachricht als Alice signieren. Es sei n¨amlich eine Signatur von . Dann w¨ahlt Oskar die Nachricht seiner Wahl modulo existiert, und berechnet, da wegen ggt das Inverse von die Werte
Da ggt ist, bestimmt er mit Hilfe des Chinesischen Restesatzes (Algorithmus , des Gleichungssystems 3.4) eine gemeinsame L¨osung ,
Falls (2)(b) nicht u¨ berpr¨uft wird, kann als Signatur f¨ur ausgegeben werden, denn mit Hilfe des Gleichungssystems (wobei die erste Gleichung die Existenz eines mit impliziert) erhalten wir
Wir nehmen weiter an, daß Oskar eine Signatur f¨ur eine gegebene Nachricht f¨alschen m¨ochte, ohne daß er kennt. Wenn er einen Wert w¨ahlt und dann versucht, einen entsprechenden Wert zu finden, so muß er, da gelten muß, modulo den diskreten Logarithmus
berechnen. Wenn er umgekehrt erst er die Gleichung
w¨ahlt und dann versucht, zu bestimmen, dann muß
f¨ur die Unbekannte“ l¨osen. Dies ist ein Problem, f¨ur das kein L¨osungsalgorithmus in ” vern¨unftiger Zeit bekannt ist. Es scheint jedoch nicht mit dem gut untersuchten Problem des Berechnens des diskreten Logarithmus verwandt zu sein. Außerdem bleibt die M¨oglichkeit offen, daß auf irgendeine Weise und gleichzeitig so berechnet werden k¨onnen, daß eine Signatur ist. Niemand kennt eine solche Methode, aber es hat auch niemand bewiesen, daß dies nicht m¨oglich ist.
120
7.3. ElGamal-Public-Key-Verfahren
Wenn Oskar w¨ahlt und versucht, eine passende Nachricht zu finden, deren Signatur durch gegeben ist, dann hat er wieder einen Fall des Problems des diskreten Logarithmus zu l¨osen, n¨amlich
Auf diese Weise kann er also keine zuf¨allige“ Nachricht signieren. Durch gleichzeitige, ist ihm dies jedoch m¨oglich. Nehmen wir an, ” voneinander abh¨angige Wahl von , und daß f¨ur die Beziehungen
und ggt
gelten. Dann f¨uhrt Oskar die folgenden Berechnungen durch:
Dabei wird bez¨uglich dem Modulus berechnet.
ist dabei eine g¨ultige Unterschrift von
, denn es ist
Man beachte, daß die zweite Gleichung wegen ( ) gilt,
entsprechend folgt die vorletzte Gleichung. Durch ein Beispiel verdeutlichen wir diese Vorgehensweise.
, und . Wir nehmen an, daß
. Oskar berechnet
Beispiel 7.3.4 Wie in Beispiel 7.3.3 sei
Oskar und w¨ahlt. Dann gilt
Es ist
eine g¨ultige Signatur f¨ur die Nachricht 331, was durch
verifiziert wird.
Wir geben noch eine zweite Art des Betrugs an, bei dem Oskar mit einer zuvor durch eine g¨ultige Signatur eiAlice signierten Nachricht beginnt. Nehmen wir an, daß ner Nachricht ist. Dann kann Oskar verschiedene andere Nachrichten signieren. Seien Zahlen mit
Oskar bestimmt
und ggt
121
7. Diskreter Logarithmus, Schl¨usselverwaltung und weitere Systeme
wieder modulo berechnet wird. Dann kann wobei f¨ur gew¨ahlt werden. Daf¨ur muß die Gleichheit von
mit
nachgewiesen werden. Dies ist der Fall, wenn
erhalten wir aus der rechten erf¨ullt ist. Unter Verwendung von Seite
als eine Signatur
Wegen
sind die rechte und linke Seite des obigen Ausdrucks gleich. Beide Methoden liefern g¨ultige gef¨alschte Signaturen, aber sie erm¨oglichen es wohl nicht, eine Signatur f¨ur eine Nachricht der eigenen Wahl zu f¨alschen, ohne das Problem des diskreten Logarithmus l¨osen zu k¨onnen. Folglich scheinen diese Methoden keine ernsthafte Bedrohung des ElGamal-Signaturschemas darzustellen. Dar¨uberhinaus ist es m¨oglich, die aus Algorithmus 7.3.6 sowohl in sen Angriffen dadurch zu begegnen, daß die Nachricht ersetzt wird, wobei (1)(e) als auch in (2)(c) durch den Wert eine (beiden Teilnehmern bekannte) Hashfunktion ist (zu Hashfunktionen siehe Kapitel 6). Dann bzw. zu ist es zwar a¨ hnlich wie eben angegeben m¨oglich, g¨ultige Hashwerte bestimmen, jedoch praktisch unm¨oglich (siehe Kapitel 6), die zugeh¨origen Nachrichten bzw. zu ermitteln, die bei einem Signaturverfahren ja auch mitgegeben werden m¨ussen. Wir geben schließlich noch einige M¨oglichkeiten an, wie das Schema gebrochen werden kann, wenn es sorglos benutzt wird. Der Zufallswert aus Algorithmus 7.3.6(1)(a) muß geheim gehalten werden. Bei bekanntem kann sofort aus der Gleichung aus Algorithmus 7.3.6(1)(e)
berechnet werden. Wenn bekannt ist, kann Oskar nach Lust und Laune jede Nachricht im Namen von Alice signieren. Ein weiterer falscher Gebrauch des Systems liegt vor, wenn man denselben Wert f¨ur die Signatur von zwei verschiedenen Nachrichten benutzt. Wieder kann Oskar berechnen und damit das System brechen. Dies sehen wir wie folgt ein. Es wird offenbar in beiden F¨allen derselbe Wert im Schritt (1)(b) des Algorithmus bestimmt. Es sei insgesamt und eine Signatur von . Dann gilt eine Signatur von und
Es folgt
122
7.3. ElGamal-Public-Key-Verfahren Wenn wir kannten :
schreiben, dann erhalten wir die folgende Gleichung in der Unbe-
Diese ist, da eine primitive Wurzel ist, a¨ quivalent zu
Es sei ggt definieren
. Wegen und folgt
Dadurch wird die Gleichung zu Wegen ggt
kann
berechnet werden. Es folgt
. Wir
Wir erhalten somit Kandidaten als Werte f¨ur , n¨amlich
. Genau einer davon ist der korrekte Wert von
f¨ur der Bedingung
¨ , der durch Uberpr¨ ufung
bestimmt werden kann. Wie beim ElGamal-Verschl¨usselungsverfahren k¨onnen auch beim Signaturverfahren andere zyklische Gruppen als Basis des Verfahrens gew¨ahlt werden. Hier ben¨otigen wir jedoch in jedem Fall eine Hashfunktion , wobei die Anzahl der Elemente der benutzten Gruppe ist. Es wird angenommen, daß jedes Element bin¨ar so dargestellt werden kann, daß definiert ist. Genauer k¨onnen wir auch eine Funktion definieren, wobei wir anstelle von schreiben m¨ußten.
Algorithmus 7.3.7 (Schl¨usselerzeugung f¨ur das verallgemeinerte ElGamal Public-KeySignaturverfahren) Es wird ein o¨ ffentlicher Schl¨ussel f¨ur Alice und ein zugeh¨origer privater Schl¨ussel erzeugt (1) W¨ahle eine geeignete zyklische Gruppe der Ordnung mit erzeugendem Element . (2) W¨ahle eine Zufallszahl , , und berechne das Gruppenelement . (3) Der o¨ ffentliche Schl¨ussel von ist , zusammen mit einer Beschreibung, wie in multipliziert wird. Der private Schl¨ussel ist .
Diese Schl¨usselerzeugung ist genau dieselbe wie bei der verallgemeinerten ElGamalPublic-Key-Verschl¨usselung (Algorithmus 7.3.3). Der folgende Algorithmus zeigt, wie Alice eine Nachricht signiert und wie Bob mit Hilfe des o¨ ffentlichen Schl¨ussels von Alice diese Nachricht verifizieren kann. 123
7. Diskreter Logarithmus, Schl¨usselverwaltung und weitere Systeme
Algorithmus 7.3.8 (verallgemeinertes ElGamal Public-Key-Signaturverfahren) Alice signiert eine Nachricht , die Bob verifiziert (1) Zur Signierung f¨uhrt Alice die folgenden Schritte aus: . (a) w¨ahlt eine zuf¨allige Zahl mit
und ggt . (b) berechnet das Gruppenelement
(c) berechnet . und . (d) berechnet (e) berechnet . . (f) u¨ bermittelt den Klartext sowie die zugeh¨orige Signatur auf zu u¨ berpr¨ufen, f¨uhrt Bob die folgenden Schritte durch: (2) Um Alice Signatur von . (a) besorgt sich den authentischen o¨ ffentlichen Schl¨ussel und . (b) berechnet (c) berechnet und . (d) akzeptiert genau dann die Signatur, falls gilt.
Beispiel 7.3.5 Wir betrachten den endlichen K¨orper F , der mit Hilfe des irreduziblen Polynoms u¨ ber konstruiert wird. Die Elemente k¨onnen (¨ahn lich wie in Beispiel 7.3.2) vereinfacht als bin¨are 5-Tupel dargestellt werden. Das Element ist ein Generator von F , der multiplikativen zyklischen Gruppe des K¨orpers. Die Ordnung von ist 31. Weiter sei eine Hashfunktion, die wir f¨ur dieses Beispiel nicht n¨aher festlegen werden. Alice w¨ahlt einen privaten Schl¨ussel . Der o¨ ffentliche Schl¨ussel ist und berechnet . Um die Nachricht zu signieren, w¨ahlt Alice eine zuf¨allige Zahl und berechnet und
und Dann bestimmt Alice worden) sowie
(diese Werte sind hier beliebig gew¨ahlt ist folglich . Die Signatur f¨ur die Nachricht und . Dann wird Zur Verifikation berechnet Bob zun¨achst und
bestimmt. Wegen
akzeptiert Bob die Signatur.
7.4 Digital Signature Algorithm (DSA) Im August 1991 schlug das National Institute of Standards and Technology den Digital Signature Algorithm (DSA) f¨ur den Einsatz im Digital Signature Standard (DSS) vor. Am 19. Mai 1994 wurde der Standard offiziell festgelegt. Der Algorithmus ist eine Variante des ElGamal-Signaturschemas und verlangt eine Hashfunktion f¨ur eine geeignete Zahl . Im Standard wird explizit die Verwendung des Secure Hash Algorithm (SHA-1, siehe Algorithmus 6.6.2) verlangt.
124
7.4. Digital Signature Algorithm (DSA)
Algorithmus 7.4.1 (Schl¨usselerzeugung f¨ur den DSA) Es wird ein o¨ ffentlicher Schl¨ussel f¨ur Alice und ein zugeh¨origer privater Schl¨ussel erzeugt
(1) Erzeuge eine große Primzahl mit . und eine Primzahl mit (2) W¨ahle mit mit der Eigenschaft . (3) W¨ahle ein erzeugendes Element der eindeutigen zyklischen Untergruppe der Ordung in
(a) W¨ahle ein Element und berechne . (b) Falls , gehe zur¨uck nach Schritt (a). (4) W¨ahle eine Zufallszahl , . (5) Berechne . , der private ist . (6) Der o¨ ffentliche Schl¨ussel von ist
In Algorithmus 7.4.1 muß zun¨achst die Primzahl gew¨ahlt werden. Anschließend muß zu finden. Algorithmus 4.56 aus [63] wird versucht werden, eine Primzahl mit von DSS f¨ur diese Aufgabe empfohlen. Warum f¨uhrt die Methode in (3) zu einem erzeugenden Element der zyklischen Un tergruppe der Ordnung in ? F¨ur jedes ist ein Element dieser zyklischen Untergruppe. In jedem Fall gilt . Ist und f¨ur , so teilt die Gruppenordnung . Da prim ist, folgt . Damit ist ein erzeugendes Element gefunden.
Algorithmus 7.4.2 (Digital Signature Algorithm) Alice signiert eine Nachricht , die Bob verifiziert (1) Zur Signierung f¨uhrt Alice die folgenden Schritte aus: (a) w¨ahlt eine zuf¨allige Zahl mit . (b) berechnet .
(c) berechnet . . (d) berechnet . (e) u¨ bermittelt den Klartext sowie die zugeh¨orige Signatur auf zu u¨ berpr¨ufen, f¨uhrt Bob die folgenden Schritte durch: (2) Um ’s Signatur von . (a) besorgt sich den authentischen o¨ ffentlichen Schl¨ussel und (b) u¨ berpr¨uft, ob gilt. Anderenfalls bricht er das Verfahren ab. .
und (c) berechnet und . (d) berechnet
(e) berechnet . gilt. (f) akzeptiert die Signatur genau f¨ur
Satz 7.4.1 Beim Vorgehen nach Algorithmus 7.4.1 und Algorithmus 7.4.2 gilt die Glei , wenn die Signatur zu geh¨ort. chung
Beweis. Es sei eine legitime Signatur von . Aus der Gleichung aus Algorithmus 7.4.2(1)(d) folgt durch Multiplikation mit
125
7. Diskreter Logarithmus, Schl¨usselverwaltung und weitere Systeme Nach Definition von
Somit existiert ein
und
mit
Dies impliziert wie verlangt
die Ordnung hat,
Hieraus folgt, da in
ist dies a¨ quivalent zu
Beispiel 7.4.1 Wir geben ein Beispiel an, bei dem und nicht die Bedingungen aus Algorithmus 7.4.1(1) und (2) erf¨ullen. , wobei Zur Schl¨usselerzeugung w¨ahlt Alice Primzahlen und
und berechnet gilt. Alice w¨ahlt ein zuf¨alliges Element Da gilt, ist es ein erzeugendes Element f¨ur die eindeutige zyklische Untergruppe mit , der Ordnung in . Dann w¨ahlt Alice eine Zufallszahl berechnet
Alice o¨ ffentlicher Schl¨ussel ist
ihr privater Schl¨ussel ist . w¨ahlt Alice eine Zufallszahl Zum Signieren einer Nachricht rechnet
Anschließend bestimmt sie und hier einfach beliebig gew¨ahlt wurde. Schließlich bestimmt sie
, wobei dieser Hashwert
ist durch bestimmt.
Die Signatur f¨ur Zur Verifizierung berechnet Bob
126
aus und be-
7.5. Zeitstempel bei Signaturverfahren Dann bestimmt Bob
Da
gilt, akzeptiert Bob die Signatur von Alice.
Die Sicherheit des DSA beruht, a¨ hnlich wie die des ElGamal-Verfahrens, auf dem Problem des diskreten Logarithmus in als auch in der zyklischen Untergruppe der Ordnung .
7.5 Zeitstempel bei Signaturverfahren Ein Problem bei Signaturschemata wie z.B. dem DSA (siehe Algorithmus 7.4.2) ist es, daß der Signierschl¨ussel bekannt werden k¨onnte. Beim DSA w¨are dies der private Exponent aus Schritt 4 von Algorithmus 7.4.1. Dann kann Oskar Alice Signatur auf jeder Nachricht f¨alschen. Dazu kommt, was vielleicht noch schlimmer ist, daß damit die Authentizit¨at aller bisher signierten Nachrichten von Alice in Frage gestellt wird, einschließlich derjenigen, die sie unterzeichnet hat, bevor Oskar den Wert gestohlen hat. Eine andere unerw¨unschte Situation ist es, daß Alice eine Nachricht unterzeichnet und diese sp¨ater nicht anerkennen m¨ochte. Sie braucht dann nur f¨ur eine Ver¨offentlichung ihres privaten Exponenten zu sorgen und behaupten, daß ihre eigene Unterschrift auf der fraglichen Nachricht eine F¨alschung ist. Diese Situationen k¨onnen eintreten, wenn nicht bestimmt werden kann, wann eine Nachricht signiert wurde. Daher werden wir Zeitstempel auf signierten Nachrichten betrachten. Ein Zeitstempel soll beweisen, daß eine Nachricht zu einer bestimmten Zeit signiert wurde. Wenn also z.B. Alice privater Exponent bekannt wird, werden nicht alle zuvor geleisteten Unterschriften ung¨ultig. Das ist a¨ hnlich wie bei Kreditkarten. Wenn jemand eine Kreditkarte verliert und dies der ausgebenden Bank mitteilt, wird die Karte ung¨ultig. K¨aufe vor dem Verlust der Karte (bzw. der Benachrichtigung der Bank) werden davon nicht ber¨uhrt. Als erstes zeigen wir, wie Alice sich einen u¨ berzeugenden Zeitstempel selbst erzeugen kann. Alice verschafft sich eine sich st¨andig a¨ ndernde o¨ ffentlich erh¨altliche Information, die nicht vorausgesagt werden kann. Es kann sich z.B. um die Bundesligatabelle der Woche oder die Kurse der Frankfurter B¨orse vom Vortag handeln. Diese Information heiße pub. Dann kann Alice nach dem folgenden Algorithmus ihre Nachricht mit einem Zeitstempel versehen.
Algorithmus 7.5.1 eine Nachricht, eine o¨ ffentlich bekannte Hashfunktion, pub die o¨ ffentliche Es sei Information, die private Signierfunktion von Alice gem¨aß einem Signaturverfahren (z.B. im RSA- oder ElGamal-Verfahren) (1) Alice berechnet ; ; (2) Alice berechnet (3) Alice berechnet ; in der Zeitung des n¨achsten Tages. (4) Alice ver¨offentlicht
127
7. Diskreter Logarithmus, Schl¨usselverwaltung und weitere Systeme
Die Pr¨asenz von pub bedeutet, daß Alice den Wert nicht vor dem aus pub ersichtlichen Termin berechnet haben kann. Und die Tatsache, daß in der Zeitung des n¨achsten Tages ver¨offentlicht wird, beweist, daß nicht sp¨ater berechnet wurde. Somit ist Alice Signatur f¨ur diesen einen Tag g¨ultig. Die Nachricht wird nicht aufgedeckt. Falls notwendig, kann Alice dies jedoch tun, um zu beweisen, daß die von ihr unterzeichnete und mit einem Zeitstempel versehene Nachricht ist. Wenn es einen vertrauensw¨urdigen Zeitstempeldienst (ZSD) gibt, k¨onnen nach dem folgenden Verfahren Zeitstempel vergeben werden.
Algorithmus 7.5.2 eine Nachricht, eine o¨ ffentlich bekannte Hashfunktion, Es sei bzw. die private Signierfunktion von Alice bzw. dem ZSD gem¨aß einem Signaturverfahren ; (1) (a) Alice berechnet (b) Alice berechnet ; an den ZSD. (c) Alice sendet und (2) Der ZSD berechnet mit dem aktuellen Datum den Wert schickt ihn an Alice. als eine mit einem Zeitstempel versehene Signatur (3) Alice kann verwenden. ihrer Nachricht
nicht kompromittiert wird. Außerdem Dieser Algorithmus funktioniert gut, wenn muß vorausgesetzt werden, daß der ZSD nicht verleitet werden kann, eine Zeit zur¨uckzudatieren. Mit diesem Algorithmus kann jedoch nur bewiesen werden, daß Alice die Nachricht vor einer bestimmten Zeit signiert hat. Wenn sie dann zus¨atzlich noch beweisen will, daß erst nach einem bestimmten Zeitpunkt unterzeichnet hat, kann sie den Schritt (1)(a) sie des Algorithmus durch die Schritte (1) und (2) von Algorithmus 7.5.1 ersetzen. Wenn man dem ZSD nicht unbeschr¨ankt trauen m¨ochte, kann man die Sicherheit dadurch erh¨ohen, daß alle Nachrichten, die mit einem Zeitstempel versehen werden, sequentiell miteinander verbunden werden. Hierbei sei ID die Identifikationsinformation des Benut zers , der die -te Zeitstempelanforderung t¨atigt. Weiter sei eine Dummy-Information, um den folgenden Algorithmus zu starten. ist eine Information, die die -te Anforderung mit den vorhergehenden verbindet.
Algorithmus 7.5.3 eine Nachricht, die im -ten Schritt einen Zeitstempel erhalten soll. Es sei sei eine o¨ ffentlich bekannte Hashfunktion, bzw. des ZSD sei die private Signierfunktion des -ten Benutzers bzw. . (1) (a) berechnet (b) berechnet . (c) sendet an den ZSD. (2) (a) Der ZSD berechnet unter Verwendung der vorhergehenden Werte
. (b) ZSD berechnet unter Verwendung der aktuellen Zeit . . (c) ZSD berechnet an . (d) ZSD sendet den Zeitstempel
128
7.6. Eine weitere Hashfunktion
Man beachte, daß der Benutzer erst dann seinen Zeitstempel in Schritt (2)(d) des Algorithmus erhalten kann, wenn die Identit¨atsinformation des n¨achsten Benutzers auch die Identit¨
sowie desbekannt ist. Durch seinen Zeitstempel erf¨ahrt at von
sen Fingerabdruck , die zugeh¨orige Signatur und die zugeh¨orige Zeit . Er
u¨ berpr¨ufen, auch muß die kann zumindest seine NachZeit kleiner als seine Zeit sein. Wenn er aufgefordert wird, kann offenlegen, und mit Hilfe seines Zeitstempels kann die Signatur des Fingerricht abdrucks verifiziert werden. Als n¨achstes kann auch die Signatur des ZSD verfiziert
und werden. Wenn gew¨unscht, k¨onnen auch gebeten werden, ihre Zeitstem
pel und zu ver¨offentlichen. Auch hier kann die Si¨ gnatur des ZSD verifiziert werden und andere Uberpr¨ ufungen (z.B. bez¨uglich der Zeit der Zeitstempel) vorgenommen werden. Dieses Verfahren kann vor- und r¨uckw¨arts so weit wie gew¨unscht fortgesetzt werden. Wegen des Zusammenhangs der verschiedenen Daten und der Vielzahl der beteiligten Teilnehmer muß sich der ZSD auch an die richtigen Zeiten hal ¨
sind ein weiteres Indiz daf¨ur, ten. Die positiven Uberpr¨ ufungen von daß kein Betrug vorkommt.
7.6 Eine weitere Hashfunktion Wir wollen in diesem Abschnitt eine Hashfunktion angeben, die von Chaum, van Heijst und Pfitzmann stammt. Sie ist sicher, wenn ein bestimmtes Problem des diskreten Logarithmus nicht effizient gel¨ost werden kann.
Definition 7.6.1 Es sei eine große Primzahl, so daß auch eine Primzahl ist (das heißt, sei eine sichere Primzahl). Es seien und primitive Wurzeln modulo . Der Wert ist nicht o¨ ffentlich bekannt, und es sei berechnungsm¨aßig praktisch unm¨oglich, ihn zu berechnen. Dann definieren wir eine Hashfunktion
durch
Satz 7.6.1 Es sei eine Kollision f¨ur die Hashfunktion aus Definition 7.6.1 gegeben. Dann kann der diskrete Logarithmus effizient berechnet werden. Beweis. Es sei folgt
mit
die gegebene Kollision. Es
(Bemerkung: f¨ur kann durch ersetzt werden). Wir setzen Wegen und prim kommt nur in Frage. Diese vier M¨oglichund damit
keiten f¨ur
werden nun der Reihe nach betrachtet.
129
7. Diskreter Logarithmus, Schl¨usselverwaltung und weitere Systeme
. Dann setzen wir
leicht zu berechnen ist. Es folgt was wegen Zun¨achst sei
Somit k¨onnen wir
effizient berechnen. Wir betrachten den Fall . Wegen
wird
erhalten wir
. Es
. Wegen
gesetzt. Es gilt also
f¨ur ein geeignetes folgt daher
Damit ergibt sich auch
oder ist. Die zweite dieser M¨oglichkeiten erhalten wir wegen
Wir schließen, daß
(siehe Satz 7.1.4)
und
. Wir k¨onnen leicht
u¨ berpr¨ufen, welche der beiden M¨oglichkeiten den richtigen diskreten Logarithmus liefert. beachten wir, daß nach der Definition von die Ungleichungen F¨ur
und
gelten. Damit erhalten wir
einen Widerspruch zu ggt . Dieser Fall kann also nicht eintreten. Schließlich bleibt noch zu betrachten. Wegen ist dies nur m¨oglich f¨ur . Dann folgt
und damit, da
130
eine Gruppe ist,
7.6. Eine weitere Hashfunktion und so auch
. Es ergibt sich der Widerspruch .
Damit ist also stark kollisionsfrei, sofern das spezielle Problem des diskreten Logarithmus nicht effizient gel¨ost werden kann. Diese Hashfunktion ist allerdings f¨ur praktische Zwecke zu langsam, sie ist aber konzeptionell sehr einfach und liefert ein sch¨ones Beispiel einer Hashfunktion, f¨ur die bewiesen werden kann, daß sie unter vern¨unftigen Bedingungen sicher ist. Wir geben noch ein Beispiel an. Beispiel 7.6.1 Es sei Mit
und damit . Weiter gelte
erhalten wir die Kollision
und
.
. Wir berechnen daher Es ist ggt
Damit gewinnen wir
In dem hier betrachteten Fall ist
verschieden von
. Da
ist, muß
gelten. Die Probe liefert
131
7. Diskreter Logarithmus, Schl¨usselverwaltung und weitere Systeme
132
8 Kryptographische Protokolle 8.1 Mental Poker (Kopf-Poker) Der vielleicht erste Versuch, im Kopf Poker zu spielen, wurde 1933 von Niels Bohr w¨ahrend eines Ski-Urlaubs in Oberaudorf gemacht. Bohr, sein Sohn Christian sowie Felix Bloch, Carl Friedrich von Weizs¨acker und Werner Heisenberg versuchten, ohne Karten zu pokern. Der Erfolg soll allerdings nicht allzu groß gewesen sein. Da die Beteiligten sich sp¨ater anderen wichtigen Aufgaben widmeten, wurde das Kopf-Poker-Spiel von ihnen nicht weiterentwickelt. Das Poker stellt ein Modell f¨ur ein System dar, in dem Benutzer nur partielle Informationen u¨ ber die dynamische Zuordnung der Resourcen haben. Die Regeln sind wie beim u¨ blichen Poker gegeben, jedoch existieren keine Karten, und ¨ die Kommunikation zwischen den Spielern findet ausschließlich durch die Ubertragung von Nachrichten statt. Jegliche andere verbale Kommunikation ist untersagt. Den Spielern ist es nicht verboten, die anderen Spieler zu betr¨ugen. Jedoch m¨ussen gewisse Fairplay-Regeln eingehalten werden. (1) Das Spiel beginnt mit dem fairen Austeilen der Karten“. Wenn dies durch den Aus” tausch einer Folge von Nachrichten erreicht ist, muß gelten: (a) Die Spieler sollten ihre eigenen, aber nicht die Karten der anderen kennen. (b) Jede Hand muß zu den anderen H¨anden disjunkt sein. Das ist gleichbedeutend damit, daß jede Karte nur einmal vergeben wird. (c) Alle m¨oglichen H¨ande m¨ussen f¨ur jeden Spieler gleichwahrscheinlich sein. (2) Die Verteilung neuer Karten w¨ahrend des Spiels muß ebenso fair erfolgen wie unter (1) beschrieben. Die Spieler m¨ussen ihre Karten aufdecken k¨onnen, ohne die Sicherheit der u¨ brigen Karten zu gef¨ahrden. (3) Am Ende jedes Spiels m¨ussen die Spieler pr¨ufen k¨onnen, ob das Spiel fair verlaufen ist und ihre Gegner nicht betrogen haben. Rivest, Shamir und Adleman ([90], [105]) haben 1978 ein Modell f¨ur Kopf-Poker angegeben, das eine kommutative Chiffre benutzt, wie z. B. eine Exponentiationschiffre, bei der die Spieler denselben Modulus verwenden. Folgende vereinfachende Annahmen wurden getroffen: Am Spiel nehmen nur zwei Spieler teil, und zwar Alice und Bob. Jeder der Spieler hat einen geheimen Schl¨ussel, der erst am Ende des Spiels aufgedeckt wird. Die geheimen Transformationen bzw. von Alice und bzw. von Bob liefern kommutative Chiffriertransformationen, also
Die 52 Karten werden durch Nachrichten dargestellt, n¨amlich
:
Karo 2“, ” : Karo 3“, ” ... : Kreuz As“ . ” Bob beginnt das Spiel mit der Verteilung der Karten. Ein Protokoll zum fairen Austeilen der Karten sieht nun so aus:
133
8. Kryptographische Protokolle Protokoll 8.1.1 (1) Bob chiffriert die 52 Nachrichten (Karten) durch
Anschließend mischt er zuf¨allig den Stapel der chiffrierten Nachrichten und sendet ihn an Alice. (2) Alice w¨ahlt zuf¨allig 5 der chiffrierten Nachrichten aus und sendet sie an Bob zur¨uck. Bob dechiffriert sie und erh¨alt dadurch seine eigene Hand. (3) Danach w¨ahlt Alice zuf¨allig f¨unf weitere chiffrierte Nachrichten . Sie bildet
und sendet die an Bob. (4) Bob dechiffriert jede der Nachrichten durch
und sendet das Ergebnis zur¨uck an Alice. f¨ur 5 durch Alice Wahl bestimmte
(5) Alice dechiffriert sie mit
und erh¨alt ihre eigene Hand.
W¨ahrend des Spiels k¨onnen zus¨atzliche Karten durch Wiederholung derselben Prozedur ausgeteilt werden. Am Ende des Spiels werden die Schl¨ussel aufgedeckt, und durch Nachrechnen kann bewiesen werden, ob jemand betrogen hat. Wie schon oben gesagt wurde, kann Kopf-Poker mit einer Exponentiationschiffre gespielt werden. Bob und Alice einigen sich auf einen großen Modulus , z.B. auf eine mit große Primzahl, mit entsprechendem . Jeder bestimmt ein privates Paar . Mit dem Paar sind wie u¨ blich auch und bzw. und bestimmt. Lipton [60] zeigt jedoch, daß bei dieser Chiffriermethode ein Betrug m¨oglich ist. Eine der M¨oglichkeiten benutzt quadratische Reste.
Definition 8.1.1 Ein heißt quadratischer Rest modulo , wenn ggt und ein mit existiert. Ist die Bedingung nicht erf¨ullt, heißt quadratischer Nichtrest modulo . Man setze
Ist
ist ein quadratischer Rest modulo ,
ein quadratischer Rest modulo , so ist
Beweis. Es gelte
die Quadratwurzel von
gegeben. F¨ur seien
. Dann gilt
Satz 8.1.1 Es sei mit bestimmt, und es gelte
134
und mit
gilt ein
modulo .
. Dann existiert ein mit
. Wegen
8.1. Mental Poker (Kopf-Poker)
folgt . Es sei umgekehrt Wegen
folgt
. Dann existiert ein mit .
ist 3 ein quadratischer Rest modulo ebenfalls ein quadratischer Rest. In der Tat
Beispiel 8.1.1 Es sei . Wegen 11. F¨ur ist nach Satz 8.1.1 gilt .
Wenn Alice feststellen kann (siehe Satz 8.1.4), welche Karten Nachrichten aus beinhalten, kann sie das Ergebnis aus Satz 8.1.1 ausnutzen. Nachdem Bob die Nachrichten chiffriert und gemischt hat, kann Alice sie zwar nicht dechiffrieren, sie weiß jedoch, welche der stammen. Falls der Modulus prim Nachrichten bzw. der chiffrierten Nachrichten aus liegt, ist (Pohlig-Hellman-Schema), ist die Wahrscheinlichkeit, daß eine Nachricht in gleich (siehe Satz 8.1.3). Dieses Ergebnis liefert Alice ein zus¨atzliches Bit an Information pro Karte, das dazu beitragen kann, das Spiel zu gewinnen. Falls sie z. B. feststellt, daß die Klartextnachrichten f¨ur alle vier Asse ein quadratischer Rest sind, w¨ahlt sie nat¨urlich quadratische Reste f¨ur sich und quadratische Nichtreste f¨ur Bob. Wir beweisen die f¨ur diese ¨ Uberlegungen notwendigen S¨atze.
und Satz 8.1.2 Es sei zwei, f¨ur eine Primzahl f¨ur keine L¨osungen.
Beweis. Es sei
mit
. Dann besitzt
. Nach Definition 8.1.1 existiert eine L¨osung
. Dann folgt
Damit ist ebenfalls eine L¨osung. Die L¨osungen sind jedoch verschieden, weil h¨ochstens f¨ur m¨oglich w¨are. Weitere L¨osungen gibt es nicht, da im K¨orper h¨ochstens zwei Nullstellen hat. F¨ur existiert aufgrund von Definition 8.1.1 keine L¨osung.
Satz 8.1.3 Es sei eine Primzahl. Dann existieren
und quadratische Nichtreste modulo .
Beweis. Die Reste
quadratische Reste modulo
sind offenbar quadratische Reste. Sie sind alle voneinander verschieden, da jedes wenigstens eine genau die verschiedenen L¨osungen und hat. Da f¨ur jedes und in liegt, existieren keine weiteren quadratischen Reste. der Wurzeln kommen Alle also in der obigen Folge vor.
135
8. Kryptographische Protokolle Satz 8.1.4 Es sei
eine Primzahl und
. Dann folgt f¨ur sonst.
,
Beweis. Nach dem Satz 3.8 (Fermat) gilt
Da ungerade ist, ergibt sich
Da die Differenz der beiden Terme 2 ist, kann nicht beide teilen, und es folgt
Somit folgt
Weiterhin sei
. Dann existiert ein mit . Wir erhalten
da die Ordnung der multiplikativen Gruppe ist. Daraus folgt, daß die qua dratischen Reste L¨osungen von sind. Da diese Gleichung im K¨orper
h¨ochstens L¨osungen besitzt, sind die Nichtreste wegen L¨osungen von
Mit Hilfe dieses Satzes kann Alice, wie oben schon gesagt wurde, sehr einfach feststel stammt. len, welche der Karten aus Wir geben an dieser Stelle noch einen weiteren Satz u¨ ber quadratische Reste an, den wir sp¨ater ben¨otigen werden.
Satz 8.1.5 Es seien scher Rest modulo ist.
, , Zahlen mit ggt . Ein
genau dann, wenn
ein quadratischer Rest modulo
ist quadratiund modulo
Beweis. Es sei ein quadratischer Rest modulo . Dann existiert ein mit und . Somit gilt erst recht . Folglich ist sowohl ein quadratischer Rest modulo als auch modulo . und Umgekehrt seien Zahlen mit . Wegen und ggt existiert nach Satz 3.14 ein mit . Es folgt . Das bedeutet, daß sowohl als auch und damit die Zahl teilen. Wegen ggt erhalten wir daraus . Somit ist ein quadratischer Rest modulo .
136
¨ 8.2. Vergeßliche Ubertragung Wir wollen nun noch weitere Bemerkungen zum Mental-Poker machen. Eine Chiffrier transformation kann auch andere Informationen u¨ ber eine Nachricht bewahren, z. B. sei . Dann gilt
Lipton [61] schl¨agt daher Modifikationen vor, die erzwingen, daß alle Nachrichten quadratische Reste sind. anzuh¨angen, die Eine erste Methode besteht darin, weitere Bits an jede Nachricht sie zu einem quadratischen Rest machen. Die urspr¨ungliche Nachricht wird durch Streichen dieser Bits zur¨uckgewonnen. Bei der zweiten Methode wird jede Nichtrestnachricht mit einem festen Nichtrest multipliziert. Das Produkt zweier Nichtreste ist nat¨urlich ein
quadratischer Rest. Die urspr¨ungliche Nachricht wird durch Multiplizieren mit zur¨uckgewonnen. Das Modell des Kopf-Pokers zeigt, daß es Anwendungen gibt, f¨ur die es nicht ausreicht, daß der Chiffrieralgorithmus schwer berechenbar ist. Eine solche Anwendung ben¨otigt einen Algorithmus, der nicht nur die Nachrichten, sondern auch deren mathematische Eigenschaften verbirgt. Aber auch Liptons Methoden bieten keine Garantie daf¨ur, daß das Verfahren sicher ist. Goldwasser und Micali [36] haben 1982 ein Protokoll f¨ur Kopf-Poker ver¨offentlicht, das beweisbar sicher ist. Allerdings funktioniert ihr Protokoll nur f¨ur zwei Spieler. Barany und F¨uredi [3] lieferten 1983 ein einfaches Protokoll f¨ur drei und mehr Spieler. Die Voraussetzungen f¨ur ein faires Spiel sind jedoch, daß kein Spieler mit einem anderen eine geheime Absprache getroffen hat. Fortune und Merritt [27] stellten 1984 ein Protokoll vor, bei dem die Sicherheit auch in diesem Fall gew¨ahrleistet ist. Allerdings wird jetzt ein vertrauensw¨urdiger Kartenverteiler ben¨otigt. Solange dieser und mindestens ein weiterer Spieler fair spielen, k¨onnen keine weiteren Spieler oder Gruppen von zusammenarbeitenden Spielern Informationen u¨ ber die Karten erhalten, die nicht in ihren H¨anden sind.
¨ 8.2 Vergeßliche Ubertragung (Oblivious Transfer) 1981 wurde von Rabin [83] ein Protokoll vorgeschlagen, mit dem Alice an Bob, falls beide sich an das Protokoll halten, ein beliebiges Geheimnis mit der Wahrscheinlichkeit u¨ bermitteln kann. Das bedeutet, daß Bob mit der Wahrscheinlichkeit das Geheimnis empf¨angt bzw. mit derselben Wahrscheinlichkeit nicht empf¨angt. Die Schwierigkeit liegt darin, daß Alice nicht weiß, ob Bob das Geheimnis empfangen hat oder nicht. Diese Unsicherheit muß von beiden akzeptiert werden. Nach Blum [14] wird dies beschrieben durch das Oblivious-Transfer-Protokoll.
Protokoll 8.2.1 . und sind ungerade Primzahlen mit , die Alice (1) Alice sendet an Bob Geheimnis darstellen. Das k¨onnten z. B. die geheimen Parameter f¨ur das RSA-Schema sein. (2) Bob w¨ahlt zuf¨allig ein , mit ggt und sendet Alice
( )
. 137
8. Kryptographische Protokolle
(3) Alice, die und kennt, berechnet die vier Wurzeln von , n¨amlich
Danach w¨ahlt sie zuf¨allig eine der Wurzeln aus und sendet sie an Bob. (4) Falls Bob oder empf¨angt, kann er und aus und ( hat er selber in (2) gew¨ahlt) durch ggt oder berechnen. Falls er oder empf¨angt, lernt er nichts.
M. Fisher hat bez¨uglich der Wahl von in Schritt (2) den Einwand erhoben, daß es eventuell eine Methode geben kann, mit deren Hilfe Bob f¨ur ein die Quadrateigenschaft feststellen kann, ohne zu kennen. Wenn also jemand eine solche Methode finden w¨urde, dann w¨are Protokoll 8.2.1 nicht mehr fair. Zur Vermeidung dieser Unsicherheit k¨onnte man in Schritt (2) verlangen, daß Bob seine Kenntnis von mit der Eigenschaft ( ) beweist (siehe Protokoll 10.2.1). Dies Protokoll stellt keine Einschr¨ankung des allgemeinen Problems dar. Mit Hilfe der geheimen Primzahlen und kann ja jede beliebige Nachricht verschl¨usselt werden, die dann das eigentlich zu u¨ bermittelnde Geheimnis darstellt. Wir geben zun¨achst einen Algorithmus an, wie Alice in (3) die Wurzeln berechnen kann. Danach wird gezeigt, wie Bob, so wie es in (4) angegeben ist, oder ermitteln kann.
Algorithmus 8.2.1 Es sei , mit zwei Primfaktoren und , und , die vier verschiedenen Quadratwurzeln modulo werden geliefert, also die vier Zahlen mit (1) Mit Hilfe von Algorithmus 8.2.2 (s.u.) bestimme die beiden Quadratwurzeln und von modulo . (2) Mit Hilfe von Algorithmus 8.2.2 bestimme die beiden Quadratwurzeln und von modulo . (3) Stelle die vier Gleichungssysteme
mit und
auf. (4) L¨ose diese Gleichungssysteme jeweils mit Hilfe von Algorithmus 3.4 (Chinesischer Restesatz).
.
mit zwei Primfaktoren und , und Satz 8.2.1 Es sei , 8.2.1 berechnet die vier Quadratwurzeln modulo in der Zeit
. Algorithmus
hat vier Wurzeln, denn nach Satz 3.13 ist jede Wurzel und (a) (b) Nach Satz 8.1.2 besitzt (a) die zwei L¨osungen und im Intervall und (b) die zwei L¨osungen und im Intervall . Ihre Berechnung kann nach dem unten Beweis. Die Gleichung eine gemeinsame L¨osung von
138
¨ 8.2. Vergeßliche Ubertragung angegebenen Algorithmus 8.2.2 durchgef¨uhrt werden. Gemeinsame L¨osungen in ergeben sich nach dem Chinesischen Restesatz (Satz 3.14) durch
wobei f¨ur die L¨osungen und und f¨ur die L¨osungen und eingesetzt werden k¨onnen. Die Kombination der jeweils zwei L¨osungen ergibt vier Gleichungssysteme, die nach Satz 3.14 jeweils genau eine L¨osung in besitzen. Die L¨osungen sind verschieden, da die rechten Seiten der vier Gleichungssysteme jeweils verschieden sind. , der von Algorithmus Der Zeitbedarf von Algorithmus 8.2.2 ist von der Ordnung 3.4 ist offenbar von noch kleinerer Ordnung.
Bevor wir auf die Bestimmung der beiden Quadratwurzeln einer Zahl , prim, eingehen, zeigen wir, wie Bob in Schritt (4) von Protokoll 8.2.1 oder ermitteln kann. Die vier Gleichungssysteme aus Algorithmus 8.2.1 bzw. Satz 8.2.1 seien
L¨osung L¨osung
L¨osung
L¨osung Da die Bezeichnung von mit sowie die von mit vertauscht werden kann, kann o.B.d.A. das von Bob gew¨ahlte als L¨osung des linken Systems angenommen werden. Dann ist offenbar wegen ¨ die L¨osung des Systems ganz rechts. Entsprechende Uberlegungen gelten f¨ur die beiden mittleren Gleichungssysteme. Da alle L¨osungen voneinander verschieden sind (siehe Beweis von Satz 8.2.1), gilt insbesondere (
und
)
Es folgt
W¨urde gelten, so erhielten wir wegen , im Widerspruch zu die Gleichungen oder
. F¨ur erg¨abe sich . Wir schließen, daß oder und daraus
gilt. Somit folgt
ggt
oder
Falls Bob in (4) oder empf¨angt, dann kann er ohne die Kenntnis von und die nicht berechnen. W¨urde er zuf¨allig als ein Vielfaches andere L¨osung von von (oder ) w¨ahlen, dann k¨onnte er ggt (oder ) berechnen und damit auch die
139
8. Kryptographische Protokolle Faktorisierung von . Um dies zu vermeiden, wird in (2) von Protokoll 8.2.1 die Forderung ggt gestellt. Die Wahrscheinlichkeit einer solchen Wahl ist allerdings auch sehr gering. , prim, k¨onnen wir den folZur Bestimmung der Quadratwurzeln von einem genden probabilistische Algorithmus (siehe [56]) verwenden, der im Mißerfolgsfall (Wahrscheinlichkeit ) wiederholt bis zur Berechnung des dann immer richtigen angewendet wird.
Algorithmus 8.2.2 , mit Wahrscheinlichkeit Es sei eine Primzahl und wird ein mit geliefert begin w¨ahle zuf¨ mit . allig
if then bestimme , ungerade, mit ; ; ; suche das kleinste mit ; while do ;
; suche das kleinste mit end;
; for downto do ; end; ; else write( kein Erfolg“) ” end
;
. Algorithmus 8.2.2 liefert mit Wahr
. Der Zeit- und Platzbedarf des Algo
Satz 8.2.2 Es sei eine Primzahl und scheinlichkeit ein mit rithmus ist polynomial in .
Beweis. Nach Satz 8.1.4 wird durch den ersten Test gepr¨uft, ob ein quadratischer Nichtrest ist. Nach Satz 8.1.3 ist dies mit Wahrscheinlichkeit der Fall. Dann durchl¨auft die Variable quadratischer Reste modulo , und die Werte der Variablen , eine Folge , sind Zahlen mit den Bezeichnungen . Nach Algorithmus 8.2.2 gilt dabei
und f¨ur
erhalten wir
kleinstes mit
140
¨ 8.2. Vergeßliche Ubertragung
ist wegen
, , durch gesichert, bei bereits definiertem die von mit
ist Dabei gilt die vorletzte Gleichheit, weil die kleinste Zahl mit und bei Rechnungen modulo außer nur quadriert liefert. Die Existenz von
mit
¨ Aufgrund der vorstehenden Uberlegungen ist
, , mit . Dann gilt nach der obigen Gleichung f¨ur Folglich existiert ein
mit Multiplikation mit liefert also Es ist somit eine Quadratwurzel von . von quadratischen WurAnschließend durchl¨auft die Variable eine Folge zeln modulo . Dabei gilt und . Zwischen den und bestehen die Beziehungen f¨ur
f¨ur
Dies beweisen wir durch Induktion. F¨ur f¨ur mit richtig. Dann folgt
ist die Aussage erf¨ullt. Es sei nun die Aussage
Insbesondere gilt
.
141
8. Kryptographische Protokolle
W¨ahrend des Algorithmus m¨ussen sich Variablen der Gr¨oße gemerkt werden, so daß der Platzbedarf ist. Die beiden Schleifen werden -mal Multiplikationen von Zahdurchlaufen. Die Exponentiationen ben¨otigen jeweils , also jeweils Schritte. Auch die Bildung des Inversen, die len der L¨ange mit Hilfe des Algorithmus 3.1 (siehe Bemerkung auf Seite 45) durchgef¨uhrt werden kann, hat dieselbe Komplexit¨at. Das Suchen aller kleinsten erfordert, falls man die Suche f¨ur von oben bei startet und die Suche f¨ur mit wegen bei . ¨
Uberpr¨ ufungen der jeweiligen Komplexit¨at , insgesamt h¨ochstens Insgesamt ist der Zeitbedarf also durch gegeben.
Endet Algorithmus 8.2.2 mit kein Erfolg“, so wird er wiederholt. Mit großer Wahr” scheinlichkeit hat man nach wenigen Versuchen ein mit bestimmt. Viel einfacher k¨onnen die Quadratwurzeln berechnet werden, wenn und gilt. Da ein quadratischer Rest modulo ist, folgt aus Satz 8.1.4 zun¨achst
und analog Somit ist eine L¨osung von . eine L¨osung von Beispiel 8.2.1 Es seien und
. Dann ergibt sich . Bob w¨ahlt
an Alice. Wegen und berechnet Alice die und sendet Damit erhalten wir
Wurzeln
bzw.
Mit dem Chinesischen Restesatz (Algorithmus 3.4) werden die vier gemeinsamen L¨osungen berechnet: crt crt crt crt
¨ Wegen der obigen Uberlegungen gilt bzw. , d. h. und k¨onnen direkt ohne Benutzung des Chinesischen Restesatzes bestimmt werden. Falls Alice nun an Bob sendet, kann er und durch ggt( ) ermitteln, n¨amlich
ggt
Damit berechnet er
ggt
142
ggt
¨ 8.2. Vergeßliche Ubertragung Das Oblivious-Transfer-Protokoll kann z.B. benutzt werden, um durch das Telephon M¨unzen zu werfen“. Jeder der beiden Teilnehmer soll 50% Gewinnchancen haben. Die ” M¨unzen k¨onnen selbstverst¨andlich nicht unverschl¨usselt geworfen werden, da sonst die M¨oglichkeit eines Betruges besteht. Wir erhalten folgendes Protokoll zum Werfen von M u¨ nzen [15].
Protokoll 8.2.2 (1) Alice w¨ahlt zwei große Primzahlen und und sendet an Bob. (2) Bob pr¨uft, ob eine Primzahl oder gerade ist. Ist dies der Fall, so hat Alice betrogen. Bob w¨ahlt ein , mit ggt und sendet an Alice. (3) Alice berechnet die vier Wurzeln von , w¨ahlt zuf¨allig eine aus und schickt sie an Bob. (4) Bob gewinnt, wenn er faktorisieren kann. Dies ist m¨oglich, wenn er oder empf¨angt. Nach dem Spiel k¨onnen und offengelegt werden. Damit kann dann u¨ berpr¨uft werden, ob Alice betrogen hat.
Ein Protokoll, das ein allgemeineres Problem als das oben angegebene Oblivious-Transfer-Protokoll 8.2.1 behandelt, beruht auf einem Vorschlag von Micali und wurde in [25] vorgestellt. Die Eigenschaften sind wie folgt gegeben: Alice sendet zwei Nachrichten an Bob, wobei die folgenden Bedingungen erf¨ullt sein sollen: (1) Falls Alice das Protokoll richtig ausf¨uhrt, dann kann Bob genau eine Nachricht lesen. Die Wahrscheinlichkeit f¨ur den Erhalt jeder dieser Nachrichten betr¨agt . Falls Bob keine Nachricht lesen will, dann kann er bei der Ausf¨uhrung des Protokolls auch keine Informationen u¨ ber die Nachrichten herausfinden. (2) Alice weiß jeweils mit Wahrscheinlichkeit , daß Bob die erste (bzw. die zweite) Nachricht erhalten hat. (3) Falls Alice versucht, diese Voraussagewahrscheinlichkeit u¨ ber die von Bob erhaltene Nachricht zu erh¨ohen, dann kann Bob dieses mit einer Wahrscheinlichkeit von mindestens feststellen.
Da eine von zwei Nachrichten empfangen wurde, spricht man auch von einem 1-von-2” Oblivious-Transfer-Protokoll“. Mit Hilfe eines solchen Protokolls kann auch das urspr¨ungliche Oblivious-Transfer-Protokoll simuliert werden. Dies ist sofort einzusehen. Eine der beiden von Alice gesendeten Nachrichten sei o¨ ffentlich, w¨ahrend die andere von Alice geheim gew¨ahlt wird. Diese geheime Nachricht empf¨angt Bob dann mit einer Wahrscheinlichkeit . Wenn er stattdessen die o¨ ffentliche Nachricht empf¨angt, erf¨ahrt er nichts Neues. Wir beschreiben das 1-von-2-Oblivious-Transfer-Protokoll. Wir gehen davon aus, daß es auf dem RSA-Verfahren beruht (man kann auch ein anderes Public-Key-Kryptosystem ist. Wie u¨ blich sei die o¨ ffentliche und die w¨ahlen), wobei das Produkt geheime Transformation von Alice.
143
8. Kryptographische Protokolle
Protokoll 8.2.3 und soll Bob von Alice durch Anwendung des Protokolls Eine von 2 Nachrichten erhalten. (1) Alice w¨ahlt zuf¨allig zwei weitere Nachrichten und aus und sendet sie an Bob. (2) Bob w¨ahlt zuf¨allig ein sowie eine zuf¨allige Nachricht und sendet
an Alice. (3) Alice berechnet
f¨ur Anschließend w¨ahlt sie zuf¨allig ein und u¨ bermittelt Bob (4) Bob berechnet
Wir zeigen, daß dieses Protokoll den obigen Eigenschaften gen¨ugt. Bob hat zuf¨allig und gew¨ahlt und weiß, daß
gelten muß. kennt er nicht. Bob kann durch Abziehen von in (4) genau eine der . Die andere Nachricht bleibt ihm aufgrund seiner beiden Nachrichten lesen, und zwar Unkenntnis von verborgen. Wegen der zuf¨alligen Wahlen von und erh¨alt er jede der beiden Nachrichten mit Wahrscheinlichkeit . Damit ist die erste geforderte Eigenschaft des Protokolls erf¨ullt. Wenn beide das Protokoll richtig ausf¨uhren, ist die einzige Information, die Alice von Bob erh¨alt, . Alice kennt zwar und , sie weiß jedoch nicht, welcher dieser Werte gleich ist. Somit hat sie auch keine Information u¨ ber , was sonst in der ersten Berechnung von (3) feststellbar w¨are. Ist n¨amlich , so muß sein. ist. Außerdem muß sie auch und Also weiß sie nicht, welche der Nachrichten in (3) benutzen, da Bob sonst ggf. gar keine sinnvolle Nachricht erh¨alt. Folglich ist auch die zweite geforderte Eigenschaft des Protokolls erf¨ullt. Einen Betrug gem¨aß der dritten Forderung kann Alice nur erreichen, wenn sie f¨ur dieselbe Nachricht w¨ahlt. Ein solcher Betrug ist jedoch mit Wahrscheinlichkeit 1 und sowie aufzudecken. Da Bob die Gr¨oßen , , bekannt sind, kann er immer
berechnen. Damit gilt
144
mit ¨ Wegen der Aquivalenz von folgt dann
¨ 8.2. Vergeßliche Ubertragung so daß Bob durch Nachrechnen der rechten Gleichung sofort einen Betrugsversuch feststellen kann. Als Beispiel f¨ur die Anwendung von Oblivious-Transfer-Protokollen wollen wir nun den Austausch von Geheimnissen behandeln. Hierdurch kann beispielsweise der Austausch von geheimen Schl¨usseln realisiert werden, die bei der Benutzung von Kryptosystemen ben¨otigt werden. Es werde vorausgesetzt, daß alle Geheimnisse in bin¨ar kodierter Form vorliegen. Die beteiligten Parteien seien, wie u¨ blich, mit Alice und Bob benannt. Alice besitze Paare von Geheimnissen der L¨ange Bits, die mit
bezeichnet sind. Bob kennt genau ein Geheimnis von jedem dieser Paare, wobei Alice nicht weiß, um welches Geheimnis es sich handelt. Diese Bedingung kann am besten durch ein 1von-2-Oblivious-Transfer-Protokoll erreicht werden. Dieses garantiert, daß Bob genau eines von zwei Geheimnissen erf¨ahrt. Analog besitze Bob Paare von Geheimnissen der L¨ange Bits
von denen Alice auch jeweils nur eines kennt. Beide wollen nun das ihnen jeweils unbekannte Geheimnis eines jeden Paares herausfinden. Dabei wird vorausgesetzt, daß das Be” rechnen“ eines Geheimnisses nur durch eine vollst¨andige Suche in der Menge aller W¨orter von Bits m¨oglich ist. In [25] findet sich das folgende Protokoll, mit dessen Hilfe die gleichzeitige Kenntnis eines Paares von Geheimnissen erreichbar ist. Protokoll 8.2.4 for to do Alice sendet das -te Bit von jedem Bob sendet das -te Bit von jedem end.
Eine unehrliche Partei, die verhindern m¨ochte, daß die Gegenseite irgendein Geheimnis erh¨alt, muß unkorrekte Bits f¨ur mindestens ein Element eines jeden Paares senden. Die Wahrscheinlichkeit, dies mit Erfolg durchzuf¨uhren, ist allerdings nur , da die Gegenseite ja ein Element eines jeden Paares kennt. Um sich vor Betrug zu sch¨utzen, sollte also jede Partei u¨ berpr¨ufen, ob die Bits der Geheimnisse, die sie bereits durch Anwendung des Oblivious-Transfer-Protokolls kennt, mit den jetzt gesendeten Werten u¨ bereinstimmen. Sie sollte sofort die weitere Ausf¨uhrung des Protokolls beenden, sobald sie einen versuchten Betrug der anderen Partei entdeckt. Falls beide Parteien den Regeln folgen und keine die andere durch Senden von falschen Werten betr¨ugt, kennen beide nach Ablauf des Protokolls alle Geheimnis-Paare der anderen Partei. Protokoll 8.2.4 hat allerdings den Nachteil, daß es nicht gerecht ist. Falls n¨amlich Bob die Durchf¨uhrung des Protokolls abbricht, nachdem Alice ihm die k-ten Bits gesendet hat, besitzt er einen 2-zu-1-Berechnungsvorteil. Um ein Paar berechnen“ zu k¨onnen, muß er
” m¨oglichen Geheimnissen untersuchen, w¨ahrend Alice danoch eine Teilmenge von
gegen eine Teilmenge der Gr¨oße zu betrachten hat. Diese Menge ist aber gerade
145
8. Kryptographische Protokolle doppelt so groß wie Bobs Menge. Im folgenden wird eine Methode von Tedrick [112] vorgestellt, bei der Bobs Berechnungsvorteil zu jedem Zeitpunkt durch einen vorgegebenen Wert beschr¨ankt ist. Dieses Verfahren wird zun¨achst anhand eines Beispiels erl¨autert. Beispiel 8.2.2 Bob und Alice einigen sich zuerst darauf, daß Bobs Berechnungsvorteil nur noch 5 zu 4 betr¨agt und nicht mehr 2 zu 1 wie im obigen Protokoll 8.2.4. Dann speichert Alice f¨ur jedes die Folge der bin¨aren W¨orter (in aufsteigender Reihenfolge bez¨uglich des Zahlenwertes)
Genau eines dieser W¨orter stimmt exakt mit den ersten drei Bits von u¨ berein. Dieses Wort sei beispielsweise 010, das bereits durch Unterstreichung gekennzeichnet ist. Bob verf¨ahrt ebenso. Anschließend wird eine Reihe von Nachrichten ausgetauscht. F¨ur jedes sendet Alice die Nachricht
Die ersten drei Bits von werden nicht durch die -te ” Bitfolge dargestellt.“
Bob antwortet analog. Wir stellen fest, daß Bob, nachdem Alice ihre Mitteilungen an Bob gesendet hat, zun¨achst einen 8-zu-7-Vorteil besitzt. Das bedeutet, daß Alice, falls sie betr¨ugen will, das Geheimnis unter 8 W¨ortern suchen muß, Bob dagegen nur unter 7 W¨ortern. Nach dem n¨achsten Durchgang hat Bob einen 7-zu-6-, dann einen 6-zu-5- und schließlich einen 5-zu-4-Vorteil. Wenn Bob dann auch seine Nachricht geschickt hat, stehen nur noch die H¨alfte der W¨orter zur Verf¨ugung, und der Nachrichtenaustausch wird zun¨achst unterbrochen. Wir nehmen zum Beispiel an, daß nur noch die folgenden vier W¨orter zur Auswahl stehen:
Aus diesen werden acht neue W¨orter erzeugt, indem an jedes von ihnen 0 und 1 angeh¨angt wird:
Genau eines von ihnen stimmt mit den ersten vier Bits von u¨ berein. Der obige Nach richtenaustausch wird wiederholt (wobei Die ersten drei “ durch Die ersten vier “ ” ” ersetzt wird), bis f¨ur jedes wieder nur noch vier W¨orter zur Auswahl stehen. Aus diesen werden wiederum acht neue W¨orter gebildet, und das Verfahren wird wiederholt. Bis einschließlich zur Wiederholung des Verfahrens mit W¨ortern der L¨ange Bits hat Bob immer nur einen maximalen Vorteil von 5 zu 4, so wie es vorher vereinbart wurde. Dann stehen noch vier W¨orter zur Auswahl. Eine Berechnung des jeweiligen Geheimnisses ist f¨ur beide jetzt nicht mehr schwer. So k¨onnen zum Abschluß noch ohne Bedenken wechselseitig die jeweils drei falschen W¨orter ausgetauscht werden, obwohl sich dabei der Berechnungsvorteil zugunsten von Bob erh¨oht.
In dem nachstehenden Protokoll wird das in dem Beispiel beschriebene Verfahren systematisiert. Protokoll 8.2.5 (1) Zun¨achst wird ein f¨ur beide Teilnehmer akzeptabler Wert maximale Berechnungsvorteil zu betr¨agt.
146
so festgelegt, daß der
¨ 8.2. Vergeßliche Ubertragung
(2) F¨ur jedes und , , , werden die der Gr¨oße nach geordneten Folgen aller Bin¨arw¨orter der L¨ange abgespeichert. (3) while noch nicht alle Bits gesendet wurden do ; for to do Alice sendet f¨ur jedes ein , , , so daß das -te Wort der Folge kein Pr¨afix von ist, und bildet ; ein , , , Bob sendet f¨ur jedes so daß das -te Wort der Folge kein Pr¨afix von ist, und bildet ; end; Alice und Bob bilden W¨orter f¨ur jedes und , indem sie 0 und 1 an die nicht gesendeten W¨orter anh¨angen end.
Jede Partei muß in jedem Schritt des Protokolls 8.2.5 W¨orter von h¨ochstens Bits L¨ange speichern. Folglich ist der Platzbedarf des Protokolls . Da nicht mehr als Durchg¨ange durchgef¨uhrt werden, ist der Zeitbedarf .
Im folgenden wollen wir die Anwendung der Protokolle 8.2.3 und 8.2.4 bzw. 8.2.5 f¨ur die Signierung von Vertr¨agen sowie f¨ur die Simulierung des Sendens von Einschreiben“ ” betrachten. F¨ur Gesch¨aftsbeziehungen ist es von großer Bedeutung, daß Vertr¨age und Abkommen durch eine Unterschrift best¨atigt werden. Mit der zunehmenden Verbreitung von Computernetzen ist man daran interessiert, daß solche Aufgaben auch auf elektronischem Weg erledigt werden k¨onnen. F¨ur dieses Problem werden wir ein sicheres Protokoll angeben, das in [25] beschrieben ist. Ein solches Protokoll f¨ur die Unterzeichnung eines Vertrages sollte die folgenden Bedingungen erf¨ullen: (1) Nach Beendigung der richtigen Ausf¨uhrung des Protokolls muß jede Partei von dem Gesch¨aftspartner eine Unterschrift unter dem Vertrag haben. (2) Falls die Partei das Protokoll richtig ausf¨uhrt, dann kann die Gegenpartei die Unterschrift von nicht erhalten, wenn sie selbst nicht den Vertrag unterzeichnet. Einfache Protokolle f¨ur die Unterzeichnung von Vertr¨agen, die diese Bedingungen erf¨ullen, lassen sich schnell konzipieren, wenn eine dritte, vertrauensw¨urdige Partei, z.B. ein Notar, vorhanden ist. Die Gesch¨aftspartner brauchen dann nur ihre unterschriebenen Vertr¨age f¨ur die jeweils andere Partei an diese dritte Person zu senden, die die Vertr¨age erst dann entsprechend weiterleiten wird, wenn sie beide Vertr¨age erhalten hat. Erh¨alt sie dagegen von einem Teilnehmer keinen unterschriebenen Vertrag in einem gewissen Zeitraum, bekommt der andere seinen bereits unterzeichneten Vertrag zur¨uck. Im folgenden soll nun aber ein Protokoll vorgestellt werden, das keine dritte Partei ben¨otigt und trotzdem die beiden Bedingungen gew¨ahrleistet. Es sei ein Vertrag, den Alice und Bob abschließen wollen. Sie haben den Vertrag bereits ausgehandelt und stehen vor seiner Unterzeichnung. Das unten angegebene Protokoll 8.2.6 garantiert ihnen den Austausch der Unterschriften zu diesem Vertrag. Das Wesentliche des Protokolls besteht darin, daß Alice zuf¨allig eine Menge von Geheimnis-Paaren w¨ahlt und erkl¨art, daß sie selbst den
147
8. Kryptographische Protokolle Vertrag als von ihr unterzeichnet anerkennt, falls Bob eines ihrer Geheimnispaare kennt. Eine entsprechende Aussage gilt auch umgekehrt f¨ur Bob. Die Menge der Geheimnis-Paare wird dann beispielsweise durch Anwendung eines der vorstehenden Protokolle 8.2.4 oder 8.2.5 ausgetauscht, je nach Wahl des Berechnungsvorteils. Vorausgesetzt wird in diesem Protokoll ein Public-Key-Signatur-Schema, wie es bei spielsweise das RSA-Schema ist. Außerdem wird ein weiteres, sicheres Kryptosystem sowie Schl¨ussel ben¨otigt. ist sicher, wenn es in unm¨oglich ist, eine Nachricht und so zu finden, daß gilt. Dies Kryptosystem kann z.B. das Pohlig-Hellman-Schema sein, wenn die Nachrichten 0 und 1 ausgeschlossen werden. Ist die Primzahl ver¨offentlicht, so k¨onnen wir den Schl¨ussel durch angeben, kann dann leicht berechnet werden (siehe Seite 75). Allgemein sei mit einem Schl¨ussel auch bekannt. Wir sagen, der Schl¨ussel ist die L¨osung des -Puzzles , falls gilt. Weiterhin seien die Rechnerkapazit¨aten beider Parteien ungef¨ahr gleich. Wir erhalten nun das folgende Vertragsunterzeichnungsprotokoll:
Protokoll 8.2.6 eine beliebige zuvor verabredete Nachricht. Außerdem werde eine beliebige Zahl Es sei gemeinsam festgelegt. und berech(1) Alice w¨ahlt zuf¨allig Paare von Schl¨usseln net
Anschließend gibt sie die folgende Erkl¨arung ab: Die (formalen) Symbole sind L¨osungen der zugeh¨origen -Puzzles , ” , . Der Vertrag ist von mir unterzeichnet,wenn Bob f¨ur ein , beide Symbole und -ten Puzzles kennt.“ nennen kann, d. h., wenn er die L¨osung des -ten und Alice unterzeichnet diese Erkl¨arung und schickt sie an Bob. von Schl¨usseln Bob verf¨ahrt analog. Er erzeugt Paare als , , und bezeichnet die L¨osung des -Puzzles . (Zu diesem Zeitpunkt besitzen also beide Parteien eine unterzeichnete Erkl¨arung der Gegenpartei, in der genau angegeben wird, wie deren Unterschrift zu dem Vertrag zustande kommt. Wir wissen, daß kein Gegner eine Unterschrift f¨ur diese Erkl¨arungen f¨alschen kann, wenn ein Public-Key-Kryptosystem verwendet wird.) (2) Durch Anwendung des 1-von-2-Oblivious-Transfer-Protokolls 8.2.3 erh¨alt jede Partei zun¨achst von jedem Geheimnis-Paar
bzw.
f¨ur
genau ein Geheimnis, wobei der Sender nicht weiß, welches bekannt wird. (3) Anschließend wird eins der Protokolle 8.2.4 oder 8.2.5 f¨ur den geheimen Nachrichtenaustausch angewendet, um auch die jeweils noch fehlenden Geheimnisse zu u¨ bermitteln.
Wir wollen keinen exakten Beweis f¨uhren, daß dieses Protokoll auch bei versuchtem Betrug das angegebene Problem zufriedenstellend l¨osen kann. Wir wollen jedoch einige Plausibilit¨atsbetrachtungen daf¨ur anstellen. Wir haben angenommen, daß Alice und Bob 148
¨ 8.2. Vergeßliche Ubertragung nur gleichartige Rechnerkapazit¨aten zur Verf¨ugung haben. Auch sei die Zeit beschr¨ankt, um -ten und -ten Puzzles zu nennen. die L¨osung des Nach Anwendung des 1-von-2-Oblivious-Transfer-Protokolls kann zum Beispiel Bob mit den ihm u¨ bersandten Schl¨usseln u¨ berpr¨ufen. Mit Wahrscheinlichkeit (man w¨ahle gen¨ugend groß) entdeckt er einen Betrugsversuch. In diesem Fall bricht er das Protokoll ab. Die Berechnung der fehlenden Schl¨ussel ist dann f¨ur Alice, aber auch f¨ur Bob, praktisch undurchf¨uhrbar. Beim anschließenden Geheimnisaustausch wird ein Betrug immer entdeckt. Auch dann wird das Protokoll abgebrochen, und beide Teilnehmer k¨onnen nun versuchen, durch Testen der fehlenden Bits das Geheimnis zu ergr¨unden. Weiter untersucht werden m¨ussen nur die Paare, bei denen vor Abbruch kein Betrug entdeckt wurde. Nat¨urlich k¨onnen darunter auch gef¨alschte Werte sein. Ein Betr¨uger darf aber nicht zu fr¨uh falsche Werte schicken, da sonst mit großer Wahrscheinlichkeit zu fr¨uh abgebrochen w¨urde und dann die Schl¨ussel nicht berechnet werden k¨onnten. Somit hat auch die andere Partei sp¨ater gute Chancen, mindestens einen fehlenden Schl¨ussel zu berechnen, d.h., f¨ur -ten und -ten Puzzles anzugeben. mindestens ein die L¨osung des
Nun betrachten wir noch die elektronische Versendung von Einschreiben. Alice m¨ochte als Einschreiben schicken. Sie m¨ochte eine Best¨atigung haben, daß Bob die Nachricht nur genau dann die Post bei Bob angekommen ist. Außerdem soll Bob den Inhalt von lesen k¨onnen, wenn Alice diese Empfangsbescheinigung erhalten hat. Ein Protokoll aus [25] erf¨ullt diese Eigenschaften. Dabei sendet Alice zun¨achst eine Chiffrierung der Post an Bob, und Bob best¨atigt anschließend diese chiffrierte Mitteilung. Zeitgleich mit der Best¨atigung erh¨alt er den Schl¨ussel , der f¨ur die Chiffrierung verwendet wurde. Auch hier wird deshalb jede Partei zuf¨allig eine Menge von Geheimnissen erzeugen. Die Kenntnis eines GeheimnisPaares von Alice liefert den Schl¨ussel , w¨ahrend das Wissen eines von Bobs GeheimnisPaaren einen Teil der Best¨atigung darstellt. Der andere Teil f¨ur die Best¨atigung besteht darin, daß Bob nachpr¨ufen kann, ob Alice ihre Geheimnis-Paare so gew¨ahlt hat, daß diese alle den Schl¨ussel spezifizieren. Auch hier wird wieder ein sicheres Kryptosystem vorausgesetzt. Es ist also in sowie Schl¨ussel und so zu finden, daß unm¨oglich, eine Nachricht gilt.
Protokoll 8.2.7 Es sei eine beliebige zuvor verabredete Nachricht. Außerdem werde der gew¨unschten Sicherheit gew¨ahlt. (1) Alice erzeugt zuf¨allig Schl¨ussel
, , wobei
f¨ur und berechnet modulo 2 bezeichnet. Anschließend berechnet sie
und
entsprechend
die bitweise Addition
Alice u¨ bermittelt Bob durch ein sicheres Signaturschema die Nachrichten , , , sowie . (Zu diesem Zeitpunkt besitzt Bob also mit eine Verschl¨usselung der Post.)
149
8. Kryptographische Protokolle (2) Bob w¨ahlt zuf¨allig
Paare von Schl¨usseln
f¨ur und berechnet , , . Bob u¨ bermittelt Alice durch ein sicheres Signaturschema die Nachrichten , , . Bob erkl¨art: und sind L¨osungen der zugeh¨origen S-Puzzles Die (formalen) Symbole ” bzw. , , . Das Symbol bezeichnet den Schl¨ussel zur Chiffrierung und Dechiffrierung von und muß die folgende Bedingung (b) erf¨ullen. Ich best¨atige den Empfang der Nachricht dadurch, daß durch die Anwendung von entschl¨usselt wird und daß Alice zum Nachweis meiner Best¨atigung folgende Bedingungen erf¨ullt: vorweisen f¨ur ein , . (a) Alice kann , (b) Alice kann , , vorweisen, so daß f¨ur jedes , , gilt.“ Bob unterzeichnet diese Erkl¨arung und schickt sie Alice.
(Zu diesem Zeitpunkt besitzt Alice also eine von Bob unterschriebene Erkl¨arung, die eindeutig festlegt, wie Bob den Empfang der Post best¨atigt. Diese Erkl¨arung kann nicht gef¨alscht werden, da ein sicheres Signatur-Schema vorausgesetzt worden ist.) (3) Durch Anwendung des 1-von-2-Oblivious-Transfer-Protokolls 8.2.3 erh¨alt jede Partei zun¨achst von jedem Geheimnis-Paar
bzw.
f¨ur
genau ein Geheimnis, wobei der Sender nicht weiß, welches bekannt wird. (4) Anschließend wird Protokoll 8.2.4 bzw. Protokoll 8.2.5 f¨ur den (fairen) Nachrichtenaustausch angewendet, um die noch jeweils fehlenden Geheimnisse eines jeden Paares auszutauschen.
Nach Anwendung des 1-von-2-Oblivious-Transfer-Protokolls in Schritt (3) k¨onnen bei bzw. f¨ur alle , de Parteien durch Test von , und jeweils ein , , mit Wahrscheinlichkeit entdecken, ob schon in diesem Schritt ein Betrug versucht wurde. Bob ist nach Ausf¨ u hrung von Schritt (3) noch der Lage, zu bestimmen. Erst wenn er beide Teile eines Geheimnis-Paares nicht inkennt, kann ¨ er einfach bestimmen. Uber die Betrugsm¨oglichkeiten bzw. deren Entdeckung in Schritt (4) haben wir oben unter Protokoll 8.2.6 gesprochen. Wir k¨onnen davon ausgehen, daß nach bzw. Ausf¨ u hrung von (4) sowohl Alice als auch Bob jeweils mindestens ein Paar zu berechnen kennen. Dadurch ist Bob in der Lage, durch und damit zu entschl¨usseln. Da Alice f¨ur mindestens ein empfangen hat, ist sie sicher, daß auch Bob ein entsprechendes Paar erhalten hat und damit die Nachricht unabh¨angig von den bestimmt, so h¨atte Bob lesen konnte. H¨atte Alice jedoch nicht berechnen k¨onnen. Zu einer g¨ultigen Best¨atigung geh¨ort deshalb also auch, daß mit den authentisch in Schritt Alice die Bedingung (b) erf¨ullt. Dann kann (1) u¨ bermittelten verglichen werden. Sind diese Werte in Ordnung, dann h¨atte Bob einen Betrugsversuch von Alice mit großer Wahrscheinlichkeit (s.o.) schon vorher entdeckt.
150
8.3. Das Rabin-Schema
8.3 Das Rabin-Schema Das Brechen des RSA-Schemas kann nicht schwieriger als die Faktorisierung sein, da ein schneller Faktorisierungsalgorithmus auch eine effiziente kryptoanalytische Prozedur liefert. Rabin hat eine Variante des RSA-Verfahrens geliefert [81], bei der die kryptoanalytische Prozedur, also die Gewinnung des Klartextes aus dem Chiffretext (bei bekanntem Modulus ), a¨ quivalent zur Faktorisierung ist. Algorithmus 8.3.1 (Schl¨usselerzeugung f¨ur das Rabin-Kryptosystem) Alice ( ) erzeugt sich einen o¨ ffentlichen und einen zugeh¨origen privaten Schl¨ussel (1) Alice erzeugt sich zwei große Primzahlen und von ungef¨ahr der gleichen L¨ange. . (2) berechnet (3) Der o¨ ffentliche Schl¨ussel von ist , der private .
Der Benutzer Bob ( ) schickt mit dem o¨ ffentlichen Schl¨ussel von Alice dieser eine Nachricht nach dem folgenden Algorithmus 8.3.2 (Rabin-Public-Key-Verschlu¨ sselung) f¨ur Alice, die diese dechiffriert Bob ( ) chiffriert eine Nachricht (1) Zur Chiffrierung f¨uhrt Bob die folgenden Schritte aus: (a) besorgt sich den authentischen o¨ ffentlichen Schl¨ussel von . (b) stellt als Zahl im Bereich dar. (c) berechnet . an . (d) u¨ bermittelt (2) Zur Dechiffrierung f¨uhrt Alice den folgenden Schritt aus: (a) Mit Hilfe von Algorithmus 8.2.1 berechnet Alice die vier Wurzeln der Gleichung
(b) Die gesendete Nachricht ist eine dieser Wurzeln. Alice kann geeignet entschei ist. den, welche von ihnen
Wenn jemand den Klartext aus dem Chiffretext bestimmen will, dann muß er die Quadratwurzel bestimmen k¨onnen. Wir zeigen zun¨achst die Gleichwertigkeit des Berechnens der quadratischen Wurzel modulo mit der Faktorisierung von .
Satz 8.3.1 Es sei das Produkt zweier Primzahlen und . Bei unbekannten Zahlen und ist das Problem SQRT, eine Quadratwurzel modulo zu bestimmen, berechnungsm¨aßig a¨ quivalent zu dem Problem PRIMFAKTORISIERUNG, die Primfaktoren und von zu berechnen.
¨ Beweis. Berechnungsm¨aßige Aquivalenz bedeutet, daß jedes der beiden Probleme auf das jeweils andere Problem in polynomialer Zeit reduziert werden kann (zum Begriff der polynomialen Reduzierbarkeit, siehe z.B. [116]). Bei bekannten Primfaktoren und von k¨onnen mit Hilfe von Algorithmus 8.2.1 in polynomialer Zeit die vier Quadratwurzeln gefunden werden (d.h.: SQRT PRIMFAKTO ein Polynomialzeitalgorithmus zum L¨osen des QuadratRISIERUNG). Es sei umgekehrt wurzelproblems. Mit Hilfe von kann wie folgt faktorisiert werden. Wir w¨ahlen zuf¨allig
151
8. Kryptographische Protokolle
ein , , mit ggt und berechnen . Dann lassen wir den Algorithmus mit und laufen und erhalten in polynomialer Zeit eine Quadratwurzel von modulo . Falls oder gilt, ist dies ein Fehlversuch, und die Prozedur wird mit einem neuen zuf¨alligen wiederholt. Anderenfalls gilt und
. Wie auf Seite 139 erhalten wir
oder
Da vier Quadratwurzeln modulo hat, ist die Erfolgswahrscheinlichkeit f¨ur jeden Versuch . Die erwartete Anzahl von Versuchen, bis ein Faktor von gefunden wurde, ist 2. Folglich erhalten wir in erwarteter polynomialer Zeit das Ergebnis. Das bedeutet PRIMFAKTORISIERUNG SQRT.
Wir erinnern noch einmal an Satz 5.2.4, nach dem beim RSA-Verfahren die Faktorisierung von a¨ quivalent zur Berechnung des Dechiffrierschl¨ussels aus dem o¨ ffentlichen ist. Wenn man beim RSA-Verfahren allein bei Kenntnis von jeden ChifSchl¨ussel fretext in polynomialer Zeit entziffern kann, dann ist es nicht klar, ob man dadurch auch eine Faktorisierung von in polynomialer Zeit berechnen kann. Satz 8.3.1 zeigt unter der Annahme, daß Faktorisierung berechnungsm¨aßig praktisch nicht gel¨ost werden kann, die beweisbare Sicherheit der Rabin-Public-Key-Verschl¨usselung. Das Verfahren ist jedoch nicht sicher gegen¨uber einem Angriff mit gew¨ahltem Chiffretext. Oskar w¨ahlt eine zuf¨allige Zahl und berechnet . Oskar veranlaßt Alice, zu dechiffrieren und erh¨alt einen Klartext . Da Alice nicht kennt, ist nicht notwendig gleich . Mit Wahrscheinlichkleit ist und
. In diesem Fall ist wie im Beweis von Satz 8.3.1
oder
Anderenfalls wird der Angriff mit einem anderen wiederholt. Die RSA-Public-Key-Verschl¨usselung ist auch anf¨allig gegen¨uber einigen Angriffen, die schon beim RSA-Verfahren genannt wurden. So sollte man dieselbe Nachricht nicht an viele Benutzer schicken, da sonst Oskar den Klartext gewinnen kann. Durch Salzen der Nachricht, wie auf Seite 83 geschildert, kann diesem Angriff abgeholfen werden. Auch zu kleine Nachrichten (siehe Seite 83) stellen ein Problem dar, auch hier kann man durch Salzen das Problem l¨osen. Ein Nachteil des Schemas ist, daß Alice, die Empf¨angerin der Nachricht, den korrekten Klartext unter vier M¨oglichkeiten ausw¨ahlen muß. Diese Mehrdeutigkeit bei der Dechiffrierung kann in der Praxis leicht beseitigt werden, indem man dem Klartext vor Chiffrierung eine gemeinsam zuvor verabredete Redundanz zuf¨ugt. Man kann zum Beispiel die letzten 64 Bits der Nachricht wiederholen. Dann wird mit hoher Wahrscheinlichkeit nur einer , , und diese Redundanz besitzen. Alice wird genau der m¨oglichen Klartexte diesen als den gesendeten Klartext identifizieren. Wenn keine der Quadratwurzeln diese Eigenschaft hat, wird sie als gef¨alscht ablehnen. Wenn die eben geschilderte Redundanz verwendet wird, ist das Rabin-Schema nicht mehr gegen¨uber einem Angriff mit gew¨ahltem Chiffretext anf¨allig. Wenn Oskar eine Nachricht mit der verabredeten Redundanz w¨ahlt und an Alice u¨ bermittelt, dann wird sie mit hoher Wahrscheinlichkeit den Klartext an Oskar zur¨uckgeben, weil die drei anderen Wurzeln die Redundanzeigenschaft wahrscheinlich nicht erf¨ullen. Somit erh¨alt
152
8.3. Das Rabin-Schema Oskar keine neue Information. Wenn Oskar dagegen eine Nachricht w¨ahlt, die nicht die Redundanzeigenschaft erf¨ullt, dann wird mit großer Wahrscheinlichlkeit auch keine der drei anderen Quadratwurzeln von diese Eigenschaft erf¨ullen. In diesem Fall wird Alice Oskar keine Antwort geben. Man beachte, daß das Brechen des modifizierten Systems nicht mehr a¨ quivalent zur Faktorisierung von ist, da der Algorithmus aus dem Beweis von Satz 8.3.1 nur bei g¨ultiger Redundanzeigenschaft eine Wurzel liefert. Das Rabin-Schema ist also, wenn man es durch Hinzuf¨ugung geeigneter Redundanz a¨ ndert, von großem praktischen Interesse.
Beispiel 8.3.1 Zur Schl¨usselerzeugung w¨ahlt Alice die Primzahlen und . Der o¨ ffentliche Schl¨ussel ist , der private ist und berechnet . Wir verlangen, damit Redundanz gew¨ahrleistet ist, daß die letzten 6 Bits der Originalnachricht wiederholt werden. Bob m¨ochte die 10-Bit-Nachricht ver schl¨usseln. Folglich bildet er die 16-Bit-Nachricht , die in dezi hat. Er berechnet maler Notation den Wert
und sendet diesen Wert an Alice. Alice berechnet mit Hilfe von Algorithmus 8.2.1 unter Kenntnis der Faktoren von die vier Quadratwurzeln von , n¨amlich
und
die in Bin¨ardarstellung durch
gegeben sind. Nur erf¨ullt die geforderte Redundanzeigenschaft, Alice setzt also und erh¨alt nach Entfernung der letzten 6 Bits die urspr¨ungliche Nachricht .
Die Rabin-Public-Key-Verschl¨usselung arbeitet außerordentlich schnell, da nur ein modulares Quadrieren durchgef¨uhrt wird. Die Dechiffrierung ist langsamer als die Chiffrierung, jedoch vergleichbar zur RSA-Dechiffrierung. Wir kommen nun zum Rabin-Public-Key-Signaturverfahren. Es ist klar, daß die zu si sein m¨ussen, also aus der Menge der quadratischen Residugnierenden Nachrichten aus en modulo . Signaturen sind entsprechende Quadratwurzeln. Da Nachrichten von vornher stammen und um auch einigen Angriffsm¨oglichkeiten entgegenzuwirken, ein nicht aus wird eine o¨ ffentlich bekannte Redundanzfunktion gew¨ahlt, die die Nach abbilden. In [63], richten des Klartextraumes in eine Teilmenge Abschnitt 11.3.5, wird eine solche Funktion angegeben, die als internationaler Standard akzeptiert ist und sowohl beim Rabin- als auch beim RSA-Verfahren verwendet wird.
153
8. Kryptographische Protokolle Algorithmus 8.3.3 (Rabin-Public-Key-Signierung) f¨ur Bob, die dieser verifiziert und dadurch erh¨alt Alice signiert eine Nachricht (1) Zur Signierung f¨uhrt Alice die folgenden Schritte aus: . (a) berechnet (Quadratwurzel) mit Hilfe von (b) berechnet eine L¨osung von Algorithmus 8.2.1. an . (d) u¨ bermittelt die Signatur von (2) Zur Verifizierung und zum Erhalt der Nachricht f¨uhrt Bob die folgenden Schritte aus: (a) Bob besorgt sich den authentischen o¨ ffentlichen Schl¨ussel von . (b) berechnet . Wenn gilt, wird die Signatur abgelehnt. durch . (c) verschafft sich
und und berechnet
. Es ist
Beispiel 8.3.2 Alice w¨ahlt die Primzahlen o¨ ffentlicher Schl¨ussel ist , ihr privater
. Ihr
. Anschlie
. Daraus gewinnt
gilt, akzeptiert
Zur Vereinfachung w¨ahlen wir und als Identit¨atsfunktion. Um eine Nachricht zu signieren, berechnet Alice ßend findet sie die Quadratwurzeln und . sie oder . Als Signatur f¨ur w¨ahlt sie Bob berechnet . Da
Bob die Signatur und gewinnt daraus .
Die Wahl einer geeigneten Redundanzfunktion ist sehr wichtig f¨ur die Sicherheit der Rabin-Public-Key-Signierung. Wenn wie im Beispiel als Identit¨atsfuktion gew¨ahlt wird, dann kann Oskar eine beliebige Zahl w¨ahlen, durch Quadrieren ausgeben. Oskar hat also eine F¨alschung bilden und als g¨ultige Signatur von einer Signatur auf triviale Weise erzeugt, er hat jedoch wenig Kontrolle u¨ ber die zugeh¨orige Nachricht .
8.4 Protokoll zum Altersvergleich Das folgende Protokoll stammt von Yao [118]. Zwei Personen, Alice und Bob, m¨ochten herausfinden, wer von ihnen a¨ lter ist, ohne sich gegenseitig das Alter zu verraten. Alice ist Jahre, Bob Jahre alt. Am Ende wissen Alice und Bob, ob oder gilt, ohne jedoch weitere Eigenschaften von bzw. zu kennen. Es wird angenommen, daß das Alter der Spieler zwischen 1 und 100 Jahren liegt. Das Protokoll beruht auf einem Public-KeyKryptosystem. Alice ver¨offentlicht dabei ihren Chiffrierschl¨ussel . Es wird angenommen, ”vern¨unftig zuf¨allige“ Werte f¨ur zuf¨allig gew¨ahlte Werte von annimmt. Wir daß erhalten folgendes
Protokoll 8.4.1 (1) Bob w¨ahlt zuf¨allig eine große Zahl , deren Anzahl von Bits zuvor festgelegt wurde, und berechnet .
154
8.4. Protokoll zum Altersvergleich (2) Bob sendet Alice die Zahl (3) Alice berechnet
.
Hierbei muß f¨ur alle gelten. Anderenfalls muß das Protokoll mit einem neuen von vorne beginnen. Alice w¨ahlt eine große Primzahl , deren Anzahl von Bits ebenfalls vorher festgelegt wurde, und zwar etwas kleiner als die Anzahl der Bits von . Daraus berechnet Alice
f¨ur alle . Falls f¨ur und
Es gilt ist, hat Alice ein richtiges gew¨ahlt, andernfalls muß die Berechnung mit einem anderen erneut durchgef¨uhrt werden. (4) Alice sendet Bob die Folge der Zahlen
(5) Bob pr¨uft, ob f¨ur die -te Zahl schließt Bob, daß gilt. Andernfalls gilt (6) Bob teilt Alice seinen Schluß mit.
der Folge gilt. Falls das der Fall ist, .
Wir diskutieren dieses Protokoll. Wir betrachen den Schritt (5). Die Zahl auf Bobs Alter. F¨ur gilt
F¨ur
gilt
bezieht sich
Damit ist gezeigt, daß Bob die richtigen Schl¨usse gezogen hat. Wir u¨ berlegen uns weiter, warum Alice in Schritt (3)
bildet. Wenn wir
annehmen, daß Alice Bob direkt die Folge
mitteilt, dann erh¨alt Bob durch die Anwendung von
ergibt sich aus dem Index des Folgegliedes , dessen Nachfolger sich erstmalig von unterscheidet. Die Anwendung von auf liefert dagegen nicht die Werte Wegen der Modulo-Bildung gibt es i. allg. viele verschiedene Spr¨unge. ein richtiges f¨ur und Warum hat Alice in (3) bei gew¨ahlt? F¨ur kommt dadurch in der in (4) an Bob gesendeten Folge nicht
direkt vor, denn es gilt
155
8. Kryptographische Protokolle
Andere Werte der Folge unterscheiden sich davon um mindestens 2. Das verhindert, daß Bob anderenfalls das an der Stelle, die eventuell liefert, als sein Alter angibt, was ihm nach (5) den Schluß erlauben w¨urde, obwohl das Gegenteil richtig ist. Dar¨uberhinaus ist nicht sicher, daß Bob in (6) die Wahrheit sagt. Es kann aber ein noch ausgekl¨ugelteres Protokoll angegeben werden, bei dem die Wahrscheinlichkeit eines Betruges verschwindend klein wird. Das oben beschriebene ist ein Spezialfall des folgenden allgemeinen Problems. Problem , die Es gebe Parteien alle die Definition einer Funktion von Variablen kennen, also . Zur Vereinfachung nehmen wir an, daß alle Variablen und auch der Funktionswert aus der gleichen endlichen Menge stammen. Jeder der , kennt nur den Wert von , nicht aber mit . Die Teilnehmer m¨ochten den Funktionswert berechnen, ohne dabei den , Informationen mitzuteilen, die den Wert ihrer Variablen betreffen. anderen Das obige Beispiel mit Alice und Bob wird hier durch und
dargestellt. F¨ur diesen allgemeinen Fall kann ein recht kompliziertes Protokoll entworfen werden. Die notwendigen Maßnahmen zur Gew¨ahrleistung der Sicherheit sind schwierig zu formalisieren. Insbesondere sind die Maßnahmen zur Verhinderung des kollektiven Betruges, bei dem sich mehrere Parteien verb¨unden, um die anderen zu betr¨ugen, schwer zu beschreiben. Auf jeden Fall er¨offnen solche Protokolle neue Ausblicke auf M¨oglichkeiten der vertraulichen Kommunikation. Im folgenden Abschnitt werden wir sehen, wie Protokoll 8.4.1 auf einige Probleme des Wirtschaftslebens angewendet werden kann.
8.5 Protokolle fur ¨ Auktionen und Gescha¨ fte Wir beginnen mit Auktionen. Im wesentlichen sind zwei Typen von Auktionen bekannt. Bei der englischen Auktion rufen die Bieter ihre Gebote f¨ur ein angebotenes Objekt (alte Fahrr¨ader, Schmuck, Kunstobjekte, Immobilien usw.) laut in aufsteigender Ordnung des Wertes aus, und der Auktionator schl¨agt das Objekt dem Bieter zu, der am Ende das h¨ochste Gebot abgeben hat. Dies h¨ochste Gebot stellt dann auch den Preis dar. Bei der holl¨andischen Auktion, die oft bei Fisch- oder Tulpenversteigerungen angewendet wird, ruft der Auktionator den Preis in absteigender Ordnung aus, bis der erste Bieter den gerade genannten Preis akzeptiert. Dann erh¨alt er das Objekt zu diesem Preis. ¨ Uber Auktionen gibt es verschiedene theoretische Untersuchungen. Vickrey [114] hat gezeigt, daß diese m¨undlich gef¨uhrten Auktionen auch in versiegelter Form gef¨uhrt werden k¨onnen. Bei der versiegelten Form werden die Gebote innerhalb einer bestimmten Frist beim Auktionator versiegelt eingereicht. Die englische Auktion entspricht dann der Zweiten-Preis-Auktion. Bei diesem Auktions-Typ erh¨alt derjenige Bieter den Zuschlag, der das h¨ochste Gebot abgegeben hat, und er muß als Preis den Betrag des zweith¨ochsten Gebots bezahlen. Die holl¨andische Auktion entspricht der Ersten-Preis-Auktion, wo der Meistbietende zum Preis seines Gebots den Zuschlag erh¨alt. In welchem Sinn entsprechen die versiegelten Auktionen den m¨undlichen? Das Problem eines Bieters bei einer holl¨andischen Auktion ist es doch, sich vorab festzulegen, zu welchem Preis er das Objekt erwerben m¨ochte. Genau dasselbe Problem stellt sich ihm bei der 156
8.5. Protokolle f¨ur Auktionen und Gesch¨afte Ersten-Preis-Auktion. Unber¨ucksichtigt bleibt dabei nat¨urlich, daß man sich in der Atmosph¨are eines Versteigerungssaales dazu hinreißen lassen kann, fr¨uher das Gebot anzunehmen als eigentlich geplant. Bei einer englischen Auktion wird sich der Bieter im vorab dar¨uber klar sein m¨ussen, welchen Wert das Objekt hat oder f¨ur ihn darstellt. Nur bis zu diesem Betrag wird er mitbieten, danach ist es f¨ur ihn sinnlos. Wenn nur noch zwei Bieter im Rennen sind und einer aufgibt, dann muß der Meistbietende also nur wenig u¨ ber diesen Betrag gehen, um den Zuschlag zu erhalten. Im wesentlichen erh¨alt er das Objekt zu dem Preis des zweith¨ochsten Gebots. Er kann also ggf. weit unter dem Preis bleiben, den er vorab gewillt w¨are zu zahlen. Somit entspricht die englische Auktion der Zweiten-Preis-Auktion. Bei der o¨ ffentlichen Version k¨onnen jedoch Koalitionen von Bietern unter Umst¨anden den Preis hochtreiben. Insofern sind die o¨ ffentliche und versiegelte Version doch nicht a¨ quivalent. Die versiegelten Auktionstypen werden auch in der Realit¨at abgehalten. So werden z.B. Sch¨urfrechte auf L¨andereien, die der US-Regierung geh¨oren, durch Erste-Preis-Auktionen vergeben. Bei der Ersten-Preis-Auktion ist es sicher nicht die Hauptstrategie, als Gebot den Preis anzugeben, den man f¨ur den wahren Wert des Objekts h¨alt. Gelegentlich werden Autographen oder Briefmarken durch Zweite-Preis-Auktionen verkauft. Es wurde gezeigt ([114], [89]), daß die Zweite-Preis-Auktion einige sch¨one Eigenschaften hat. Unter anderem ist es die beste Strategie, die ein Bieter verfolgen kann, ein ehrliches Gebot abzugeben, das heißt ein Gebot zu einem Preis, der dem Bieter angemessen f¨ur das gebotene Objekt erscheint. Dies gilt unabh¨angig davon, ob auch die anderen Bieter ebenso ehrlich verfahren. Die Voraussetzungen, unter denen dies gilt, sind: 1. Die Bieter verhalten sich rational. 2. Die Werte, die die Bieter den Objekten zuordnen, sind privat und statistisch unabh¨angig. 3. Die Bieter sind symmetrisch, d.h. voneinander ununterscheidbar. 4. Der Preis bestimmt sich nur aus den Geboten. Abgesehen vom letzten und, schon mit Einschr¨ankungen, vom ersten Punkt, charakterisieren diese Voraussetzungen selten Auktionen der realen Welt. Zur weiteren Information verweisen wir auf [70], wo auch noch weitere Literatur zu dieser Problematik genannt wird. Im folgenden werden wir zeigen, wie Erste-Preis- und Zweite-Preis-Auktionen mit Hilfe von Protokoll 8.4.1 implementiert werden k¨onnen. Bei den traditionellen versiegelten Auktionen werden die Gebote zur praktisch selben Zeit ge¨offnet. Die kryptographische Form besitzt demgegen¨uber den Vorteil, daß nur wenige Gebote den Bietern und dem Auktionator aufgedeckt werden m¨ussen, die meisten Gebote werden nicht ge¨offnet. Dies hat viele Vorteile. Oftmals m¨ochte man, wenn man schon nicht den Zuschlag erhalten hat, sein Gebot geheim halten, weil daraus ggf. R¨uckschl¨usse auf die eigenen finanziellen M¨oglichkeiten gezogen werden k¨onnten. Außerdem k¨onnen bei der normalen versiegelten Zweiten-PreisAuktion die Bieter bef¨urchten, daß der Auktionator sie betr¨ugt. Das kann er dadurch erreichen, daß er zun¨achst die eingegangenen Gebote o¨ ffnet und dann einen Komplizen auffordert, ein m¨oglichst hohes Gebot abzugeben, das nur knapp unter dem h¨ochsten Gebot liegt. Diese M¨oglichkeit k¨onnte die Bieter davon abhalten, ehrliche Gebote abzugeben. Dieser Nachteil entf¨allt bei der kryptographischen Version. Außerdem k¨onnen die kryptographischen Erste- und Zweite-Preis-Auktionen in einem Computer-Netzwerk gef¨uhrt werden, man ben¨otigt weder die Post noch Kuriere. Wir geben nun eine kryptographische Version der Ersten-Preis-Auktion an (siehe auch seien f¨ur , , die Bieter. Die [70]). Es sei der Auktionator und
157
8. Kryptographische Protokolle
entsprechenden geheimen Dechiffrierfunktionen seien , , die o¨ ffentlichen Chiffrierfunktionen seien durch , gegeben. Das Gebot von werde mit bezeichnet.
Protokoll 8.5.1 (1) Die Bieter melden sich bei an, der sie ohne Beschr¨ankung der Allgemeinheit in der Reihenfolge anordnet. informiert u¨ ber die folgenden Bieter , . Die m¨oglichen Gebote werden durch Zahlen aus im Intervall dargestellt, also f¨ u r . (2) bis geben ihr Gebot bei ab, indem sie jeweils die Nachricht
schicken. Dabei ist eine von geheim gew¨ahlte Zahl. Diese Nachrichten sind in ungeordneter Form allen Bietern zug¨anglich. (3) Bob“ ; Alice“ ” ” for to do (4) Alice“ und Bob“ f¨uhren Protokoll 8.4.1 aus. Dabei teilt Bob“ seinen Schluß ” ” ” dagegen in der Form du Alice“ in der Form ich gewinne“ mit, den Schluß ” ” ” gewinnst“. (5) if
then if du gewinnst“ then Bob“ Alice“; end; ” ” ” Alice“ ” end end.
(6) if du gewinnst“ then Alice“ else Bob“ end. ” ” ” (7) Der Gewinner sei . teilt sich als Gewinner mit. verlangt von den geheimen Schl¨ u ssel , der mit auch allen Bietern mitgeteilt wird. Mit und kann die Zahlen und und damit das Gebot von , also den Preis des Objekts, berechnen.
Das Protokoll l¨auft so ab, daß ein Bieter, der einen Vergleich als Alice“ durchf¨ uhrt, ” aufgrund von (1) nicht die Identit¨at von Bob“ kennt. Somit kennt f¨ur nur den ” Gewinner, eventuell auch (dann muß seinen ersten Vergleich gewonnen und den zweiten mit verloren haben). Durch Anwendung der Schl¨ussel und auf alle in (2) eingereichten Nachrichten ergibt genau eine von ihnen einen vern¨unftigen Klartext, aus dem dann der Preis des Objektes bestimmt werden kann. Existieren mehrere Bieter, die dasselbe Gebot abgegeben haben, so wird durch Protokoll 8.5.1 genau derjenige mit dem h¨ochsten Index als Gewinner bestimmt. Offensichtlich ist der kritische Punkt des Protokolls die Mitteilung von Bob“ jeweils in Schritt (4). Niemand kann den jeweiligen Bieter ” Bob“ daran hindern zu l¨ugen. Von einer L¨uge hat Bob“ jedoch keinen Vorteil. Behauptet ” ” er f¨alschlich, daß sein Gebot niedriger ist als das von Alice“ ist, so verzichtet er zu sei” nen Ungunsten auf eine weitere Beteiligung an der Auktion. Falls er f¨alschlich sagt, daß sein Gebot h¨oher ist, kann jeder unterlegene Bieter durch Ver¨offentlichung seines geheimen Schl¨ussels diesen Betrugsversuch aufdecken. Andererseits m¨ochte der Gewinner einen m¨oglichst niedrigen Preis zahlen. Da das Gebot vorab schon dem Auktionator als auch allen
158
8.5. Protokolle f¨ur Auktionen und Gesch¨afte anderen Bietern in verschl¨usselter Form u¨ bergeben wurde, muß der Gewinner sich an sein Gebot halten, aber auch der Auktionator kann es z.B. nicht f¨ur einen Freund erniedrigen. F¨ur eine kryptographische Version der Zweiten-Preis-Auktion werden dieselben Vorbedingungen wie in Protokoll 8.5.1 vorausgesetzt. Protokoll 8.5.2 (1) Es wird Protokoll 8.5.1 bis auf Schritt (7) durchgef¨uhrt. teilt sich als Gewinner mit. (2) Der Gewinner sei . (3) Protokoll 8.5.1 wird von Schritt (3) bis Schritt (6) wiederholt, wobei sein Gebot in ein verlierendes Gebot ge¨andert hat (z.B. ). (4) Der Gewinner sei . u¨ bergibt sowie allen anderen Bietern seinen Schl¨ussel . Damit wird das zweith¨ochste Gebot und damit der Preis des Objekts bestimmt, f¨ur den das Objekt erwirbt.
¨ Die Uberlegungen f¨ur die erste Runde (Schritt (1)) sind dieselben wie in Protokoll 8.5.1. F¨ur die zweite Runde soll angenommen werden, daß alle Bieter sich daran beteiligen, obwissen, daß sie nicht den Zuschlag erhalten. Sollte im wohl alle bis auf den Gewinner Gegensatz zu dieser Annahme ein Bieter die Teilnahme sabotieren, so k¨onnte durch die Verabredung, daß dann alle Schl¨ussel und Identit¨aten offengelegt werden, das zweith¨ochste Gebot herausgefunden werden. Dann w¨are allerdings der Vorteil der kryptographischen Version verloren. Ist dabei jemand nicht zu der Offenlegung bereit, so kann er mit Hilfe der Anmeldungsliste herausgefunden und von k¨unftigen Auktionen ausgeschlossen werden. Diese Verabredung kann aber zur Folge haben, daß sich einige Bieter, die ihre Anonymit¨at gewahrt wissen wollen, sich von vornherein nicht an der Auktion beteiligen. Deshalb k¨onnte diese Offenlegung vielleicht gegen¨uber einer weiteren vertrauensw¨urdigen Partei erfolgen. Bei einer derartigen Verabredung werden in der Regel alle Bieter an der zweiten Runde teilnehmen. Außerdem kann ein Bieter in der zweiten Runde l¨ugen. Dadurch k¨onnte es zu einer Erniedrigung des Preises kommen, also zu einem Nachteil f¨ur den Auktionator. Einem Konkurrenten das Objekt g¨unstiger zukommen zu lassen, wird jedoch nicht im Interesse eines Bieters liegen. Außerdem kann dann jeder Bieter, der ein h¨oheres Gebot abgegeben hat, diesen Betrugsversuch aufdecken. Es kann weiter versucht werden, z.B. durch Komplizen des Auktionators, einen Preis knapp unter dem Gebot des Hauptinteressenten zu erreichen, von dem vielleicht bekannt ist, daß er das Objekt unbedingt erwerben m¨ochte. Dann m¨ußten die Komplizen ihre Preise aber schon ganz am Anfang als Nachrichten an senden. Das k¨onnte dazu f¨uhren, daß sie selber aus der ersten Runde als Gewinner hervorgehen. Wir sehen also, daß es im Interesse aller Bieter liegt, sich an das Protokoll zu halten. Als letztes wollen wir den Fall betrachten, daß ein potentieller K¨aufer und ein Verk¨aufer eines Objekts feststellen wollen, ob es zwischen ihnen u¨ berhaupt zu einem Gesch¨aft kommen kann. Wir nehmen an, daß h¨ochstens bereit ist, den Betrag zu zahlen, wohingegen mindestens den Betrag verlangen will. Nur f¨ur kann ein Gesch¨aft stattfinden. Offenbar k¨onnen sie das mit Hilfe von Protokoll 8.4.1 feststellen. Was sind ihre Anreize, sich an das Protokoll zu halten? Gilt Bob“ und ist , so kann ein ” Gesch¨aft nicht zustande kommen und hat kein Interesse daran, dar¨uber im Unklaren , so ist ein Gesch¨aft m¨oglich, warum sollte das nicht wissen? Entsprezu lassen. Ist ¨ chende Uberlegungen gelten, wenn Bob“ ist. Erst wenn so festgestellt wurde, daß ein ”
159
8. Kryptographische Protokolle Gesch¨aft zustande kommen k¨onnte, gehen und ein, um den Preis des Objekts zu bestimmen.
in m¨uhevollere Detailverhandlungen
8.6 Ein Protokoll fur ¨ Wahlen Im folgenden soll ein Protokoll zur Durchf¨uhrung von geheimen Wahlen vorgestellt wer¨ den, daß im wesentlichen von Nurmi und Salomaa [72] vorgestellt wurde. Ahnliche Protokolle, von denen einige Aspekte zus¨atzlich u¨ bernommen wurden , befinden sich in [71], [73] und [69]. Das System erf¨ullt die folgenden Bedingungen: (1) Die Stimmabgabe ist geheim in dem Sinne, daß nur der W¨ahler die von ihm ausge¨ubte Wahl (oder allgemeiner die Wahlstrategie) kennt. (2) Nur legitimierte W¨ahler k¨onnen w¨ahlen. (3) Jeder W¨ahler kann nur eine Stimme abgeben. (4) Die Wahl kann in einem Rechnernetz stattfinden. (5) Jeder W¨ahler kann u¨ berpr¨ufen, ob seine Stimme richtig gez¨ahlt wurde. (6) Jeder W¨ahler kann Fehler des Stimmenz¨ahlsystems bez¨uglich seiner eigenen Wahl korrigieren. (7) Ein W¨ahler kann nach Stimmabgabe bis zu einem vorher bestimmten Zeitpunkt seine Wahl a¨ ndern. ¨ Es ist klar, daß eventuelle Anderungen der abgegebenen Stimme erfolgen m¨ussen, bevor Ergebnisse der Wahl ver¨offentlicht werden. Das Protokoll kann leicht so abge¨andert werden, ¨ daß diese Anderungen nicht zul¨assig sind. Die folgenden Teilprotokolle werden f¨ur jeden W¨ahler durchgef¨uhrt. Dabei sei ein ¨ spezieller W¨ahler, das System zum Z¨ahlen der Stimmen und das System zur Uberwa chung des Wahlrechts von . und k¨onnen Rechner sein, ggf. auch ein einziger Rechner. Es wird ein Public-Key-Kryptosystem benutzt, z.B. das RSA-Verfahren. Dabei ist der o¨ ffentliche und der geheime Schl¨ussel von . Entsprechend sind , , und gegeben. Die Stimme, also der Name des Kandidaten oder allgemeiner die Wahlstrategie, werden als Zahlen kodiert. Die Stimmabgabe wird gem¨aß dem folgenden Protokoll durchgef¨uhrt.
Protokoll 8.6.1 (Stimmabgabe und Ver¨offentlichung des Wahlresultats) (1) und w¨ahlen eine große Menge großer Zahlen, deren Kardinalit¨at sehr viel gr¨oßer ist als die Anzahl der W¨ahler. (2) Jeder W¨ahler sendet die Nachricht
(3)
der Name von ist und die Nachricht Mein Name wobei (in kodierter Form) ” ist , ich m¨ochte w¨ahlen“. berechnet aus der ersten Komponente und kann so bestimmen.
160
8.6. Ein Protokoll f¨ur Wahlen
u¨ berpr¨uft, ob wahlberechtigt ist. Falls das nicht der Fall ist, wird zur¨uckgewiesen. Anderenfalls bietet dem W¨ahler die Auswahl einer der Zahlen aus an, . sucht genau eine Zahl aus, wobei nicht weiß, um welches es sich etwa handelt (siehe Protokoll 8.6.4, mit dem diese Bedingungen erf¨ullt werden k¨onnen). (5) Jeder W¨ahler sendet seine Stimme in der Form
(4)
Dabei ist seine numerisch kodierte Stimme, und ist eine von gew¨ahlte Einweg und Permutation (d.h.: selbst wenn die Definition von sowie die Werte gegeben sind, ist es in vern¨unftiger Zeit
nicht m¨oglich, zu berechnen, wohingegen diese Aufgabe leicht wird, wenn bekannt ist. Als Beispiel einer geeigneten Einweg-Permutation kann das RSA-Schema gew¨ahlt werden, s.u.). berechnen und schickt eine Quittung“ (6) kann und ”
(7)
u ¨ ber das ganze Rechnernetz. sendet
wobei in numerischer Form angegeben ist, damit anwendbar ist.
(8) erh¨alt damit und kann so aus der zweiten Komponente des Paares aus (5)
(9)
und damit (s.o. unter (5)) bestimmen. ver¨offentlicht die Wahlresultate, indem f¨ur jeden Kandidaten (oder allgemeiner f¨ur jede Wahlstrategie ) die Liste der angegeben wird, f¨ur die gilt.
Wir geben nun einige Erl¨auterungen zu diesem Protokoll. Wenn z.B. W¨ahler teilnehmen, dann ist eine Menge mit Elementen als groß genug aufzufassen. Es ist, trotz des Geburtstagsparadoxons, in h¨ochstem Maße unwahrscheinlich, daß zwei W¨ahler dieselbe Wahllegitimation erhalten (um mit Wahrscheinlichkeit eine Kollision zu erhalten, m¨ußte die absurde Anzahl von W¨ahlern vorhanden sein) . Es ist nicht n¨otig, daß und die Menge Zahl f¨ur Zahl kennen, sondern sie m¨ussen sich nur auf Prinzipien zur Zugeh¨origkeit von Zahlen zu einigen. Sollte eine Wahllegitimation zweimal auftauchen, so k¨onnen die zugeh¨origen Stimmen nicht ber¨ucksichtigt werden, weil beide Stimmen von demselben W¨ahler stammen k¨onnten. Die erste Komponente der Nachricht in (2) erlaubt in Schritt (3) die Berechnung von . Bei kleinen W¨ahlergruppen ist die erste Komponente u¨ berfl¨ussig, da in diesem Fall alle Schl¨ussel aller W¨ahler durchprobieren kann und nur der liefert. Auf diese Schl¨ussel von einen vern¨unftigen Klartext und damit die Nachricht Weise kann von u¨ berpr¨ufen. Ein anderer W¨ahler kann sich in (4) die Wahlberechtigung nicht als ausgeben, sofern er von nicht den geheimen Schl¨ussel erhalten hat. Auf die damit verbundene Problematik werden wir sp¨ ater eingehen. Durch die Kenntnis von weist sich in (5) gegen¨uber als legitimer W¨ahler kann weder den Namen von noch seine Stimme entnehmen. Als aus. Aus Beispiel einer Einweg-Permutation kann
161
8. Kryptographische Protokolle
gew¨ahlt werden, wobei gelten muß und und gem¨aß dem RSA-Schema
gilt. Bei Kenntnis von kann gew¨ahlt sind. Dabei ist darauf zu achten, daß ggt
zun¨ berechnet werden. Wenn gegeben ist, dann kann nach Satz 3.11
a chst
eindeutig bestimmt werden. Nach Ausf¨uhrung von und damit
Schritt (6) weiß , daß seine Stimme bei eingetroffen ist, ohne daß seine Identit¨at durch Schicken einer pers¨onlichen Quittung von an aufgedeckt werden m¨ußte. Nur wenn diese Quittung erfolgt, wird in (7) die inverse Permutation an schicken. Anderenfalls wird er den Schritt (5) wiederholen. In Schritt (8) erh¨alt die Stimme des W¨ahlers mit der , wobei jedoch nicht den Namen von kennt. Auch wenn Wahllegitimation und ihr Wissen teilen, k¨onnen sie den Namen von nicht herausfinden, da ab Schritt (5) die Chiffrierfunktion nicht benutzt wird und somit kein Zusammenhang zu dem zu geh¨origen Namen aus Schritt (1) bis (4) hergestellt werden kann. Nach der Ver¨offentlichung des Wahlresultats in (9) kann u¨ berpr¨ufen, ob seine Stimme f¨ur den Kandidaten korrekt in der Liste f¨ur vorhanden ist. zugeordnet wurde. Er muß nur u¨ berpr¨ufen, ob Außerdem kann von jedem, der in (6) die Quittungen sammelt, festgestellt werden, ob alle quittierten Stimmabgaben ber¨ucksichtigt wurden. Wenn in dem gesamten Protokoll die Anzahl der abgegebenen Stimmen gr¨oßer als die Anzahl der W¨ahler ist, hat ersichtlich ein Betrug stattgefunden, ohne daß man jedoch den Betr¨uger ermitteln k¨onnte. Wenn jeder W¨ahler w¨ahlt, ist ein solcher Betrug sofort feststell eine zus¨atzliche Stimme wie bar. In jedem Fall muß ein Betr¨uger mit einem g¨ultigen in (5) an schicken. Das kann ein W¨ahler, der keinen Zugang zu hat, im allgemeinen nicht erreichen. Es bleibt noch die M¨oglichkeit eines Betrugs durch oder , entweder bei der Wahlzulassung (Zulassung von unberechtigten W¨ahlern) oder bei Ver¨offentlichung der Wahlresultate. Wenn und unter Aufsicht eines unabh¨angigen Wahlausschusses arbeiten, denen Sympathisanten von allen Kandidaten angeh¨oren, kann dies (vielleicht) vermieden werden. Unabh¨ angig von einem Wahlausschuß, der vielleicht nicht alle Fehler von bemerkt, kann , falls seine Stimme beabsichtigt oder unbeabsichtigt f¨ur einen falschen Kandidaten gez¨ahlt hat, Protest einlegen und eine Verbesserung der falschen Zuordnung verlangen. Dies geschieht durch
Protokoll 8.6.2 (Verbesserung von falschen Zuordnungen) (10) protestiert, indem er die Nachricht
schickt. aus der Liste der Stimmen f¨ur den falschen Kandidaten und (11) entfernt erg¨anzt stattdessen die Liste f¨ur den richtigen Kandidaten durch den in (10) gesen. deten Wert von (12) Falls nicht die korrekte Zuordnung beobachtet (oder er es so behauptet), wird das Protokoll wiederholt. Trifft dies wiederholt zu, so wird der folgende Schritt durchgef¨ uhrt. Anderenfalls wird das Protokoll beendet. (13) muß
ver¨offentlichen. Jeder kann u¨ berpr¨ufen, ob die Stimme richtig zugeordnet hat.
162
8.6. Ein Protokoll f¨ur Wahlen
Die erste Komponente in (10) zeigt, daß ein legitimer W¨ahler ist, die zweite, daß er die Einweg-Permutation kennt deren Inverses kennt. Nur kann und die dritte,¨ daß er auch dies alles wissen, so daß nur eine solche Anderung veranlassen kann. Probleme k¨onnen bei diesem Protokoll auftreten. Zum einen kann absichtlich ’s Zwei Stimme falsch z¨ahlen oder zum anderen kann versuchen, die Wahl zu sabotieren, indem er betr¨ugerisches Verhalten vorwirft. In diesen F¨allen wird (13) durchgef¨uhrt. muß sich dabei an seine zuerst abgegebene Stimme halten, da diese bereits in Schritt (6) von Protokoll 8.6.1 quittiert wurde und er keine andere bereits quittierte g¨ultige Stimme zusammen mit einem entsprechenden Tripel erzeugen kann. muß hier der Allgmeinheit mehr preisgeben als in Protokoll 8.6.1, jedoch nicht seinen Namen. Daf¨ur ist aber jetzt ¨ verpflichtet, die Anderung korrekt durchzuf¨uhren. Schließlich soll noch der Fall betrachtet werden, daß seine Stimme in einem vorher bestimmten Zeitraum a¨ ndern m¨ochte. Daf¨ur kann es verschiedene Gr¨unde geben. So kann er bei der ersten Stimmabgabe einfach einen Fehler gemacht haben, oder aufgrund neuer Informationen m¨ochte er nun doch eine andere Stimme abgeben. Protokoll 8.6.3 ¨ (Anderung der Stimme) (14) sendet die Nachricht
wobei eine andere Einweg-Permutation und (15) schickt eine Quittung
u ¨ ber das ganze Rechnernetz. (16) sendet die Nachricht (17)
die neue Stimme von
ist.
berechnet aufgrund in (14) und (16) erhaltenen Werte die Stimme . ent von derder fernt Liste der Stimmen f¨ur und f¨ugt in die Liste der Stimmen f¨ur ein.
Da nach Ausf¨uhrung von Schritt (14) drei Komponenten erh¨
alt, weiß er, daß es sich ¨ um eine Anderung der Stimme handelt. Nach Erhalt von und u¨ berzeugt sich, daß diese ¨ Anderung veranlassen m¨ o chte. Niemand, der irgendwie eine Wahllegitimation von kennt, kann eine Anderung
¨ im Namen von veranlassen. Er m¨ußte kennen, das schon zuvor in Schritt (8) von Protokoll 8.6.1 erhalten hat und mit dessen Hilfe sich u¨ ber dieselbe Wahllegitimation zeugen kann, daß auch in der zu a¨ ndernden Stimme vorkommt. Nur wenn ein W¨ahler Schritt (13) durchgef¨uhrt hat, kann ein anderer in seinem Namen Protokoll 8.6.3 durchf¨uhren. Wenn jedoch als ehrlicher W¨ahler Schritt (13) durchf¨uhren muß, dann ist das Vertrauen in das Z¨ahlsystem ohnehin verloren gegangen. Am Ende des Protokolls kann u¨ berpr¨ufen, ob sein Stimmwechsel korrekt in der Liste der Wahlresultate erscheint. Anderenfalls kann er entsprechend Protokoll 8.6.2 verfahren. Kein anderer kann erkennen, welcher W¨ahler seine Stimme ge¨andert hat. Wir geben jetzt das Protokoll an, mit dessen Hilfe in Schritt (4) von Protokoll 8.6.1 seine Wahllegitimation erh¨alt. Es ist ein ANDOS-Protokoll (all-or-nothing disclosure of
163
8. Kryptographische Protokolle secrets-protocol), das von Renvall [85] vorgestellt wurde. besitzt eine Menge von Geheimnissen. Die allgemeine Natur der Geheimnisse ist bekannt. So weiß vielleicht jeder, daß die Klausur zu einer Vorlesung ist, die Klausur zu einer Vorlesung , der Kontostand einer bestimmten Person bei seiner Bank, usw. Wir nehmen an, daß an einem dieser Geheimnisse interessiert ist, aber nicht verraten m¨ochte, welches Geheimnis er wissen m¨ochte. Nehmen wir an, daß an dem Geheimnis interessiert ist, card ¨ gilt und jedes Geheimnis als eine -Bit-Zahl dargestellt werden kann. Um die Ubermittlung der Nachrichten im folgenden Protokoll vor Dritten zu sch¨utzen und die Authentizit¨at zu gew¨ahrleisten, sollten die Nachrichten entsprechend mit den Schl¨usseln , , und chiffriert werden.
Protokoll 8.6.4 (Geheimes Verkaufen von Geheimnissen) (1) Nachdem festgestellt hat, daß wahlberechtigt ist und noch keine Wahllegitimation erhalten hat, u¨ bermittelt die Einwegfunktionen und an . h¨alt deren
Inverse und geheim. (2) w¨ahlt zuf¨allig eine -Bit-Zahl und eine Menge
von zuf¨alligen -Bit-Zahlen. Er m¨ochte das -te Geheimnis als Wahllegitimation erhalten. Er schickt an die Folge
(3)
(4)
berechnet
f¨ur
berechnet
und ( ) und sendet
mit
.
die Folge
kann die Berechnung in (4) durchf¨uhren, und es gilt in der Tat
Dabei wird das zweite Gleichheitszeichen mit der Hilfe der Gleichung aus (2) und das letzte mit der aus (3) bewiesen. Es ist klar, daß nicht ’s Interesse, also seinen Wert , erfah an gibt. Alle diese bis auf ren kann. Das liegt daran, daß alle Zahlen sind zuf¨allige Zahlen, und ist aus diesen und dem ebenfalls zuf¨alligen vollst¨andig bestimmt, wobei nicht aufgedeckt wird. Wenn sicher sein will, daß ein bestimmtes erh¨ alt, dann muß er, da er nicht kennt, in (3) immer setzen. F¨ur ein solches kann den Wert
und nach Anwendung von schließlich den Wert berechnen, den er mit dem Wert vergleicht, den er selbst durch die Wahl der verschiedenen Gr¨oßen in (2) bestimmt hat direkt berechnen kann. Geht dieser Test f¨ur mindestens und durch zwei verschiedene positiv aus, dann hat betrogen. Kann mehr als ein Geheimnis durch dies Protokoll erfahren? Wenn dies der Fall w¨are, also etwa und diese Geheimnisse sind und und die entsprechenden Werte in (2),
164
8.6. Ein Protokoll f¨ur Wahlen
so m¨ußte gem¨aß (2) diese Werte und , die zugeh¨origen und kennen, die das folgende Gleichungssystem erf¨ullen:
sowie
Wenn die Funktionen und nicht invertieren kann, besteht der einzige Weg, das Gleichungssystem zu l¨osen, wohl darin, , , und festzuhalten. Dann kann aus der ersten und aus der zweiten Gleichung berechnet werden. Diese Werte erf¨ullen. Die Wahrscheinlichkeit, daß diese Gleichung m¨ussen aber auch gilt, ist praktisch 0, da und zuf¨allige Zahlen sind. Ein ernstes Problem in Zusammenhang mit Protokoll 8.6.4 ist sofort zu erkennen. Wenn etwa , wie auf Seite 161 gesagt, Elemente hat, also so riesig ist, dann ist Protokoll 8.6.4 nicht mehr durchzuf¨uhren. Es ist also unmittelbar nur f¨ur kleinere W¨ahlergruppen anzuwenden, wo die Werte entsprechend kleiner angesetzt werden k¨onnen. Zur Verringerung des Wertes im obigen Protokoll k¨onnte man bei einer landesweiten Wahl wenigstens bei der Registrierung Stimmbezirke einf¨uhren, wobei in den Bezirken paarweise disjunkte Mengen verwendet werden. Mit diesen Maßnahmen l¨aßt sich die gesamte Wahl praktikabel in einem Rechnernetz durchf¨uhren, und die zu Beginn dieses Abschnitts genannten Eigenschaften (1) bis (7) sind erf¨ullt. Diese Eigenschaften sind jedoch nicht alle Eigenschaften, die man von einer fairen Wahl fordern sollte. Bei einer u¨ blichen geheimen Wahl treten die W¨ahler in eine Wahlkabine, und niemand darf einen W¨ahler dabei begleiten. Dies sichert, daß Stimmen nicht gekauft werden k¨onnen, da der eventuelle K¨aufer der Stimme am Gesamtergebnis der Wahl nicht ablesen kann, ob die gekaufte Stimme tats¨achlich in seinem Sinne abgegeben wurde. Ganz anders liegen leider die Verh¨altnisse in dem hier vorgestellten Protokoll. Der K¨aufer braucht sich nur zum Verk¨aufer der Stimme mit an den Rechner zu setzen, um die Stimmabga¨ kann der K¨aufer sogar die gesamte Wahl f¨ur be zu beobachten. Bei Uberlassung von durchf¨ uhren. In [69] werden Protokolle vorgestellt, die diesen Stimmenkauf verhindern. Leider sind sie nicht f¨ur große W¨ahlergruppen durchf¨uhrbar.
165
8. Kryptographische Protokolle
166
9 Ein Protokoll f¨ur Kreditkartenzahlungen Die Unternehmen MasterCard und VISA haben Secure Electronic Transaction (SET) entwickelt, einen offenen Standard f¨ur sichere Kreditkartenzahlungen. Urspr¨unglich (1995) pr¨asentierten beide Organisationen einen eigenen Standard, doch Anfang 1996 einigten sich beide auf einen gemeinsamen, der unter anderem auch von American Express unterst¨utzt wird. Der Sinn von SET ist es, zur gr¨oßeren Akzeptanz von Kreditkarten im Internet beizutragen. Dabei wird durch den Einsatz der Kryptologie die Vertraulichkeit von Informationen (Nachrichtenverschl¨usselung), die Integrit¨at von Zahlungen sowie die Identit¨at von H¨andlern und Kartenhaltern (digitale Unterschrift mit Zertifikat) gew¨ahrleistet. SET kann auf allen m¨oglichen Hard- und Softwareplattformen implementiert werden und erh¨alt dabei die Kompatibilit¨at. SET erfaßt die sichere Abwicklung von Kaufvorg¨angen von der Bestellung bis zur Quittung. Dar¨uber hinaus werden auch Prozeduren f¨ur die Erteilung von Zertifikaten beschrieben, die Hierarchie der Zertifizierungsstellen wird angegeben. Eine ausf¨uhrliche Beschreibung von SET ist im Internet [62] abrufbar. Inzwischen wird in Deutschland begonnen, SET in der Praxis einzusetzen. Die Volksund Raiffeisenbanken haben SET u¨ ber ein Jahr lang mit ihrer Shopping Mail“ My Shop ” getestest, in der besonders mittelst¨andische Unternehmen ihre Ware anbieten. Die Resonanz bei Privat- und Firmenkunden soll sehr gut gewesen sein. Die Vertraulichkeit der Versendung von Nachrichten wird in SET durch die DESVerschl¨usselung der Nachrichten durch einen zuf¨allig erzeugten 56-Bit-DES-Schl¨ussel gegeben. Sehr sensible Daten wie Kreditkartennummer und Kontoinformationen werden dabei jedoch RSA-verschl¨usselt, wobei Schl¨ussel mit 1024 Bits verwendet werden. Die Integrit¨at der Nachrichten und die Authentizit¨at wird durch digitale Signaturen gew¨ahrleistet, die durch den Fingerabdruck einer Nachricht (message digest) und die anschließende Anwendung des privaten Schl¨ussels ausgef¨uhrt werden. In diesem Zusammenhang werden auch duale Signaturen (siehe Protokoll 6.1.2) verwendet. Im folgenden wollen wir zun¨achst einige spezielle Eigenschaften von SET schildern und schließlich die Protokolle f¨ur Bestellung (purchase request), Zahlungsauthorisierung (payment authorization) und die Abrechnung des H¨andlers mit der Kundenbank (payment capture) ausf¨uhrlich darstellen.
9.1 Zertifikate Das RSA-Verfahren verlangt die Kenntnis der o¨ ffentlichen Schl¨ussel des Kommunikationspartners. SET h¨angt die ben¨otigten o¨ ffentlichen Schl¨ussel in Form von Zertifikaten an jede unterschriebene Nachricht an. Empf¨angt man eine Nachricht, wird zuerst das Zertifikat u¨ berpr¨uft. Im Zertifikat befinden sich die Daten und die Signatur der ausstellenden Zertifizierungsstelle. Die Daten bestehen unter anderem aus dem Schl¨ussel, dem Namen der Zertifizierungsstelle und der G¨ultigkeitsdauer des Zertifikats. Wir wollen hier kurz und sehr vereinfacht beschreiben, wie ein Zertifikat eines Kartenhalters durch eine Kartenhalterzertifizierungsstelle (CCA, cardholder certificate authority) ausgegeben werden kann. (1) Der Kartenhalter bittet das CCA um ein Zertifikat. (2) Das CCA antwortet mit einem Zertifikat zur Verschl¨usselung, das der Kartenhalter 167
9. Ein Protokoll f¨ur Kreditkartenzahlungen benutzen kann, um dem CCA geheim Informationen schicken zu k¨onnen. (3) Der Kartenhalter chiffriert seine Kreditkartennummer und schickt sie an das CCA. (4) Das CCA antwortet mit dem kartenspezifischen Registrierungsformblatt. (5) Der Kartenhalter vervollst¨andigt dieses Formblatt, wozu auch sein o¨ ffentlicher Signaturschl¨ussel geh¨ort, und sendet es zur Zertifizierung an das CCA. (6) Das CCA u¨ berpr¨uft die Informationen des Kartenhalters mit dem Ausgeber der Kreditkarte, erzeugt das Zertifikat, signiert es und schickt es an den Kartenhalter. In a¨ hnlicher Form werden auch Zertifikate f¨ur H¨andler und Banken durch eine H¨andlerzertifizierungsstelle (MCA, merchant certificate authority) und eine Bankenzertifizierungsstelle (PCA, payment gateway certificate authority) erzeugt, die jedoch jeweils neben dem o¨ ffentlichen Signaturschl¨ussel auch einen o¨ ffentlichen Schl¨ussel zum Austausch von symmetrischen DES-Schl¨usseln enthalten m¨ussen. Das Zertifikat des Kartenhalters dient zum Nachweis seiner Authentizit¨at, es ist mit dem Pr¨asentieren der Plastikkarte zu vergleichen. Das Zertifikat des H¨andlers kann man mit dem Aufkleber Wir akzeptiern MasterCard“ an ” der Ladent¨ur vergleichen. Jede Zertifizierungsstelle kann ein Zertifikat einer u¨ bergeordneten Zertifizierungsstelle vorweisen. Dadurch ergibt sich insgesamt eine Vertrauenshierarchie. Dies wird durch das folgende Bild verdeutlicht. Root Signature R
Brand Signature R
GCA Signature B
PCA Signature
MCA Signature
CCA Signature
G
G
Cardholder Signature
Merchant Key Exchange
Merchant Signature CA
G
CA
CA
Payment Gateway Signature
Payment Gateway Key Exchange CA
CA
Die Siegel geben an, mit welchen privaten Schl¨ usseln die jeweiligen Zertifikate signiert wur den. Ein durch eine Zertifizierungsstelle signierter o¨ ffentlicher Signaturschl¨ussel ei darstellen, wobei nes Kartenhalters k¨onnen wir sehr vereinfacht als der geheime Schl¨ussel der Zertifizierungsstelle ist und die Hashfunktion SHA ist. Nur jemand, der den geheimen Schl¨ussel von kennt, kann dieses Zertifikat erzeu gen. Zur Abk¨urzung werden wir es in den folgenden Protokollen mit bezeichnen. Neben den bereits erw¨ahnten Stellen ist noch die geopolitische Zertifizierungsstelle (GCA, geopolitical certificate authority), die Markenzertifizierungsstelle (BCA, brand certificate authority), wobei eine Marke z.B. MasterCard oder VISA sein kann, und die Wurzelzer-
168
9.2. SET-Protokolle tifizierungsstelle (RCA, root certificate authority) aufgef¨uhrt. Die GCA erlauben es den Marken, in verschiedenen Regionen verschiedene Strategien f¨ur weitere Zertifizierungsstellen zu verwenden. Der Wurzelschl¨ussel hat eine L¨ange von 2048 Bits und wird mit einem selbstsignierten Zertifikat verteilt. Es steht Softwareverk¨aufern zur Verf¨ugung, um es in ihre Software zu integrieren, und es kann auch weltweit in der Presse ver¨offentlicht werden. Ein Kartenhalter u¨ berpr¨uft nun das Zertifikat der Kartenhalterzertifizierungsstelle, indem er alle Zertifikate mit Hilfe der Vertrauenskette zur¨uck bis hin zur Wurzel verifiziert, d.h. alle Zertifikate auf dem Pfad zur¨uck bis zur Wurzel.
9.2 SET-Protokolle Wir geben zun¨achst an, wie eine Kundenbestellung abl¨auft. Bevor das eigentliche SETProtokoll durchgef¨uhrt wird, hat der bestellende Kunde (cardholder) sich u¨ ber die zu bestellende Ware informiert. Er hat ein Bestellformular vervollst¨andigt und ist mit dessen Inhalt und Bedingungen einverstanden, z.B. mit der Anzahl der Ratenzahlungen, falls der H¨andler (merchant) solche akzeptiert. Er hat eine Kreditkarte zur Bezahlung ausgew¨ahlt. Neben dem Zertifikat des Kunden f¨ur die Signatur benutzen wir auch die Zertifi und des H¨andles f¨ur die Signatur bzw. den Schl¨usselaustausch kate und die Zertifikate und der Bezahlungszugangsstelle“ (payment ga” teway) des Bankinstituts des H¨ a ndlers f¨ u r die Signatur bzw. den Schl¨usselaustausch. Wir nach unserer Vertrauenshierarchie f¨ur verschiedene Zertifizierungsstelmerken an, das len steht.
Protokoll 9.2.1 (purchase request, Bestellung) eine Initialisierungsnachricht (initiate request), (1) Der Kunde schickt dem H¨andler in der er um eine Kopie des Zertifikats des payment gateway des Bankinstituts von bittet. erzeugt eine Antwort (einschließlich einer Transaktionskennzeich(2) Der H¨andler nung (transaction identifier)) und signiert sie durch
(3)
an den Kunden . u¨ berpr¨uft die Zertifikate und mit Hilfe der Vertrauenskette bis zur Wurzel. u¨ berpr¨uft die Signatur von durch Berechnung von und
schickt
die beide gleich sein m¨ussen. erzeugt eine Bestellinformation (order information) sowie eine Instruktionen u¨ ber die Zahlweise (payment instructions), wobei in beiden F¨allen die Transaktidazugeh¨ort. onskennzeichnung (5) erzeugt die duale Signatur (4)
von
und
. 169
9. Ein Protokoll f¨ur Kreditkartenzahlungen (6)
und berechnet Der Schl¨ussel und eine Kreditkarteninformation werden durch den digitalen ” Umschlag“ (digital envelope)
erzeugt zuf¨allig einen DES-Schl¨ussel
verschl¨usselt. (7) u¨ bermittelt dem H¨andler die Nachricht
u¨ berpr¨uft das Zertifikat (8) Der H¨andler zur Wurzel. Er kennt jetzt , , und und
mit Hilfe der Vertrauenskette bis und kann damit
berechnen, die beide gleich sein m¨ussen. Damit ist die Signatur des Kunden pr¨uft. sendet neben anderen Informationen (9)
an das payment gateway noch lesen). (10) erzeugt eine Quittung
seiner Bank (siehe Protokoll 9.2.2, und sendet
u¨ ber-
kann weder
an den Kunden . (11) Wenn das payment gateway der Bank des H¨andlers die Zahlungsanweisung des Kunden akzeptiert (siehe Protokoll 9.2.2), wird bei u¨ bereinstimmenden Transakti erf¨ullt. onskennzeichnungen die Bestellung von des H¨andlers mit Hilfe der Ver(12) Der Kunde u¨ berpr¨uft das Zertifikat durch Vergleich von trauenskette bis zur Wurzel. Er u¨ berpr¨uft die Signatur von
(13) Abh¨angig vom Inhalt von Datenbank).
f¨uhrt
und
¨ einige Aktionen durch (z.B.: Anderung einer
In Schritt (9) von Protokoll 9.2.1 fragt der H¨andler bei seiner Bank an, ob sie die Zahlungsanweisung des Kunden akzeptiert. Die notwendigen Schritte beschreiben wir mit dem Protokoll zur payment authorization. Protokoll 9.2.2 (payment authorization, Zahlungsauthorisierung) bereitet die Anfrage auf Zahlungsfreigabe (authorization request) (1) Der H¨andler bei dem payment gateway seiner Bank vor und signiert durch Bildung von
170
9.2. SET-Protokolle
erzeugt zuf¨allig einen DES-Schl¨ussel . Der Schl¨ussel wird durch verschl¨usselt. friert und die signierte Anfrage durch (3) u¨ bermittelt dem payment gateway die Nachricht (2)
chif-
wobei die dritte und vierte Komponente in Schritt (6) von Protokoll 9.2.1 vom Kunden erzeugt wurden (verschl¨usselte Zahlungsanweisung des Kunden) und in der letzten Komponente sein Zertifikat f¨ur den Schl¨usselaustausch u¨ bermittelt wird. (4) Das payment gateway u¨ berpr¨uft die drei Zertifikate mit Hilfe der Vertrauenskette bis zur Wurzel. (5) erh¨alt den symmetrischen Schl¨ussel des H¨andlers durch Berechnung von und kann damit
bestimmen.
(6)
u¨ berpr¨uft die Signatur von
durch Berechnung von
und
die beide gleich sein m¨ussen. erh¨alt den symmetrischen Schl¨ussel sowie die Kreditkarteninformation und kann damit Kunden durch Berechnung von
des
durch Berechnung und
bestimmen. (7) u¨ berpr¨uft die duale Signatur von
auf
mit Hilfe von
die beide gleich sein m¨ussen. (8) pr¨uft, ob die Zahlungsanweisung des Kunden mit den Angaben des H¨andlers aus zusammenpassen. Insbesondere muß das Transaktionskennzeichen aus den Wert von aus der Bestellinformation auch in genannt sein, wobei entnehmen kann. (9) sendet die Anfrage u¨ ber ein Bankennetzwerk an die Bank des Kunden. eine (10) Nach Erhalt einer positiven Antwort von der Bank des Kunden erzeugt Authorisierungs-Antwort und signiert diese durch
erzeugt zuf¨allig einen DES-Schl¨ussel . Der Schl¨ussel und die Kontoinformation des H¨andlers wird durch chiffriert und die signierte Antwort durch verschl¨usselt. (12) erzeugt ein capture token , das unter anderem das Transaktionskennzeichen aus enth¨alt und in Protokoll 9.2.3 zur Abrechnung ben¨otigt wird, und signiert es durch (11)
171
9. Ein Protokoll f¨ur Kreditkartenzahlungen
erzeugt zuf¨allig einen DES-Schl¨ussel . Der Schl¨ussel und die Kreditkarteninfor chiffriert und das signierte capture mation des Kunden werden durch token durch verschl¨usselt. (14) u¨ bermittelt dem H¨andler die Nachricht (13)
u¨ berpr¨uft das Zertifikat mit Hilfe der Vertrauenskette bis zur Wurzel. Durch Berechnung von erh¨alt den Schl¨ussel sowie seine Kontoinformation. Mit Hilfe von bestimmt die Authorisierungs-Antwort u¨ berpr¨uft die Signatur von durch Berechnung und Vergleich von und speichert die signierte Antwort sowie das verschl¨usselte capture token und den digitalen Umschlag zur sp¨ateren Verwendung (siehe auch Protokoll 9.2.3). erf¨ullt den Auftrag des Kunden. Der H¨andler
(15) (16)
(17)
(18)
(19)
Als letztes geben wir an, wie der H¨andler mit seiner Bank u¨ ber das entsprechende payment gateway zu einem sp¨ateren Zeitpunkt abrechnet (payment capture). Dabei verwendet er das capture token. Er kann dabei eine, wie unten dargestellt, oder auch mehrere Zahlungen abrechnen. Protokoll 9.2.3 (payment capture, Abrechnung) erzeugt eine Anfrage (capture request) , die unter anderem den (1) Der H¨andler Endbetrag und das Transaktionskennzeichen enth¨alt. chif erzeugt zuf¨allig einen DES-Schl¨ussel . Deraus (2) Schl¨ussel wird durch verschl¨usselt. friert und die signierte Anfrage durch u¨ bermittelt dem payment gateway seiner Bank die Nachricht (3)
wobei die dritte und vierte Komponente das verschl¨usselte capture token aus Schritt (18) von Protokoll 9.2.2 ist. und mit Hilfe der Vertrauenskette bis (4) u¨ berpr¨uft die Zertifikate zur Wurzel. und kann dann (5) bestimmt den symmetrischen Schl¨ussel
bestimmen. 172
9.2. SET-Protokolle (6)
(7)
u¨ berpr¨uft die Signatur von
durch Berechnung und Vergleich von
und
bestimmt den symmetrischen Schl¨ussel aus das capture token
und kann dann
bestimmen. und u¨ bereinstimmen (unter anderem dasselbe Transaktions(8) u¨ berpr¨uft, ob kennzeichen enthalten). (9) sendet u¨ ber ein Bankennetzwerk an die Bank des Kunden (clearing request). ) (10) erzeugt eine f¨ur den H¨andler bestimmte Antwort (capture response message und signiert sie durch
erzeugt zuf¨allig einen DES-Schl¨ussel . Der Schl¨ussel wird durch chif durch friert und die signierte Nachricht verschl¨usselt. (12) u¨ bermittelt dem H¨andler die Nachricht
(11)
(14)
u¨ berpr¨uft das Zertifikat mit Hilfe der Vertrauenskette bis Der H¨andler zur Wurzel. berechnet den symmetrischen Schl¨ussel und kann dann die
(13)
signierte capture response message
(15)
(16)
bestimmen. u¨ berpr¨uft die Signatur von
sichert kann.
durch Berechnung und Vergleich von
und
, die er zum Ausgleich von Zahlungen mit seiner Bank benutzen
Neben den hier durch die Protokolle angegebenen Transaktionen gibt es noch weitere Transaktionen in SET. Besonders wichtig sind nat¨urlich die Protokolle, um ein Zertifikat von einer Zertifizierungsstelle zu erhalten. Als weitere Transaktionen nennen wir credit, wodurch ein H¨andler dem Konto eines Kunden einen Kredit gew¨ahren kann, wenn z.B. Waren zur¨uckgegeben werden oder w¨ahrend des Transports besch¨adigt wurden. Das Protokoll kann nur durch den H¨andler initiiert werden. Alle Verhandlungen zwischen dem H¨andler und dem Kunden, die zu diesem Kredit f¨uhren, finden außerhalb von SET statt. Zur Korrektur von Anfragen aus den vorhergehenden Protokollen gibt es die Transaktionen authorization reversal, capture rerversal und auch credit reversal. Die Sicherheit der kritischen Daten ist in SET durch die Verwendung des RSAVerfahrens mit Schl¨usseln von 1024 Bits L¨ange gew¨ahrleistet. SET wurde f¨ur den weltweiten Einsatz entwickelt und beruht auf bew¨ahrter Kreditkartenzahlung. F¨ur kleine Zahlungen ist es ungeeignet. Auch die Anonymit¨at der Kunden ist nicht gegeben. Weitere Zahlungssysteme im Internet werden in [98] angesprochen. 173
9. Ein Protokoll f¨ur Kreditkartenzahlungen
174
10 Zero-Knowledge-Protokolle 10.1 Komplexit¨atstheorie Dieser Abschnitt erkl¨art die wichtigsten Begriffe der Komplexit¨atstheorie. In der Komplexit¨atstheorie werden Probleme unter anderem bez¨uglich der (Rechen-)Zeit oder des (Speicher-)Platzes klassifiziert, die oder den ein Algorithmus f¨ur die ung¨unstigsten F¨alle des Problems zur L¨osung ben¨otigt. So gibt es z. B. Probleme mit mindestens exponentiel , wobei lem Zeitbedarf bzgl. der L¨ange der Darstellung des Problems (d. h. Zeitbedarf die L¨ange der Darstellung des Problems ist). Wir wollen hier die Klassen und betrachten. Es ist
Klasse aller Entscheidungsprobleme, die durch deterministische Turingmaschinen in polynomialer Zeit l¨osbar sind.
Dabei hat ein Entscheidungsproblem als L¨osung f¨ur jeden speziellen Fall (jede Eingabe) des Problems die m¨oglichen Antworten ja“ oder nein“. Der Zeitbedarf der Turingmaschine ” ” f¨ur die ung¨unstigsten F¨alle des Problems, also ihre Zeitkomplexit¨at, ist durch ein Polynom in der L¨ange der Eingabe nach oben beschr¨ankt. Eine solche Turingmaschine h¨alt immer und liefert f¨ur jeden Fall des Problems die Antwort ja“ oder nein“. Weiter ist ” ”
Klasse aller Entscheidungsprobleme, die durch nichtdeterministische Turingmaschinen in polynomialer Zeit l¨osbar sind.
Eine nichtdeterministische Turingmaschine hat nach jedem Schritt in nichtdeterministischer Weise mehrere Zwischenergebnisse (als Zust¨ande) zur Verf¨ugung. Sie kann diejenigen Zwischenergebnisse erraten“, die sie zu einer L¨osung des Problems f¨uhren. Sie h¨alt f¨ur jeden ” Fall, der die Antwort ja“ liefert, in polynomialer Zeit. Der Zeitbedarf richtet sich nach ” der k¨urzesten m¨oglichen Rechnung, die zu dieser L¨osung f¨uhrt. In anderen F¨allen muß die Turingmaschine nicht halten. Eine Turingmaschine ist ein formales Modell f¨ur den Algorithmusbegriff. Sie kann durch jeden realen Universalrechner ersetzt werden. Offenbar gilt . Weiter kann ein nichtdeterministischer Algorithmus f¨ur ein Problem aus mit Hilfe eines deterministischen Algorithmus mit exponentiellem Zeitbedarf simuliert werden. Dieser deterministische Algorithmus ist im allgemeinen sehr ineffizient und kaum handhabbar. Wir betrachten das Knapsack-Problem (Rucksackproblem): Beispiel 10.1.1 Gegeben mitsei Gesucht ist ein
mit
und
.
Jedes der repr¨asentiert einen Gegenstand mit dem Volumen . Es stellt sich die Frage, ob ein des Volumens ohne Platz zu verschenken gef¨ullt werden kann. Da f¨ur jedes Rucksack die Uberpr¨ ¨ ufung
175
10. Zero-Knowledge-Protokolle
.
in polynomialer Zeit durchgef¨uhrt werden kann, geh¨ort das Problem in die Klasse Ein deterministischer Algorithmus f¨ur dieses Problem kann alle M¨oglichkeiten durchprobieren. Seine Zeitkomplexit¨at betr¨agt .
Die Probleme aus sind f¨ur vern¨unftig große Eingaben in vern¨unftiger Zeit l¨osbar. Sie werden auch als handhabbar (tractable) bezeichnet. Probleme aus werden als unhandhabbar (untractable) oder schwer (hart, hard) bezeichnet. Die Frage, ob oder gilt, ist offen. Allgemein wird angenommen, daß ist. Diese Annahme wird durch die Existenz von mehr als 1000 -vollst¨andigen Problemen gest¨utzt. Ein Problem (oder formaler eine entsprechende Sprache) heißt vollst¨andig, wenn es zur Klasse geh¨ort und sich jedes andere Problem aus in polynomialer Zeit auf reduzieren l¨aßt, d.h., wenn ein Polynomialzeitalgorithmus existiert, der jede Eingabe von in eine Eingabe von transformiert, so daß gilt:
liefert die Antwort ”ja“. liefert die Antwort ja“ ” Wenn f¨ur ein einziges dieser Probleme nachgewiesen wird (siehe [17]), daß es sich in polynomialer Zeit durch einen deterministischen Algorithmus l¨osen l¨aßt, so gilt dies f¨ur alle . Dann w¨urde gelten. Ein -vollst¨andiges Problem ist also Probleme aus mindestens genauso schwer, wie jedes andere Problem aus . Das erste -vollst¨andige Problem wurde 1971 von Cook [17] angegeben. Dabei handelt es sich um das Erf¨ullbarkeitsproblem f¨ur Boolesche Ausdr¨ucke in konjunktiver Normalform. -vollst¨andig ist, ist es ausreichend zu zeigen, daß Um zu zeigen, daß ein Problem ein bekanntes -vollst¨andiges Problem in polynomialer Zeit auf das Problem zur¨uckgef¨uhrt werden kann. Das oben erw¨ahnte Knapsack-Problem ist -vollst¨andig. Weitere Informationen u¨ ber -vollst¨andige Probleme kann man dem Buch von Garey und Johnson [33] entnehmen.
10.2 Zero-Knowledge-Beweise Neue kryptographische Protokolle basieren auf sogenannten Zero-Knowledge-Beweisen (Beweise ohne Wissensvermittlung), die von Goldwasser, Micali und Rackoff eingef¨uhrt wurden [37]. Durch einen Zero-Knowledge-Beweis kann Alice Bob davon u¨ berzeugen, daß sie u¨ ber ein bestimmtes geheimes Wissen verf¨ugt, ohne dieses Wissen preiszugeben. Dies wollen wir uns an einem ersten anschauli chen Beispiel klarmachen, das von J.-J. Quisquater und L. Guillou [79] stammt. Die nebenstehende Abbildung zeigt eine H¨ohle, die ein Geheimnis birgt, und zwar eine und . Alice kennt die Zaugeheime T¨ur zwischen ¨ berformel zum Offnen der T¨ur und will dieses Wissen Bob beweisen, ohne ihm jedoch die Zauberformel sagen und zu wollen. Am Anfang befindet sich Bob am Punkt Alice in der H¨ohle, entweder am Punkt oder . Wenn Alice in der H¨ohle ist, geht Bob auch hinein, und zwar zum Punkt . Bob ruft nun Alice zu, ob sie aus dem rechten oder linken Gang erscheinen soll. Dies ist f¨ur sie kein Problem, wo-
176
10.2. Zero-Knowledge-Beweise
bei sie mit Wahrscheinlichkeit die geheime T¨ur mit Hilfe ihrer Zauberformel o¨ ffnen muß. Wenn sie dieses Spiel zehnmal wiederholt haben, mußte Alice mit einer Wahrscheinlichkeit ihre Zauberformel nicht benutzen. Das bedeutet, daß ein Betrug von Alice, also von das Vort¨auschen der Kenntnis der Zauberformel, bei zehn Versuchen nur mit einer Wahrscheinlichkeit von m¨oglich ist. Bei gen¨ugend vielen Versuchen ist also Bob u¨ berzeugt, daß Alice das Geheimnis kennt, ohne es jedoch selbst zu kennen. Nehmen wir an, daß Bob mit einer Videokamera alles aufnimmt, was er sieht. Es wird also f¨ur alle Durchg¨ange aufgenommen, wie Alice in der H¨ohle verschwindet, was Bob Alice zuruft und aus welchem Gang Alice herauskommt. Kann er mit diesem Film einer weiteren Person, sagen wir Charles, beweisen, daß Alice die Zauberformel kennt? Sicherlich nicht, denn Alice und Bob k¨onnten vorher abgesprochen haben, aus welchem Gang Alice jeweils erscheinen soll. Es ist also Bob unm¨oglich, eine dritte Person von der Richtigkeit des Beweises zu u¨ berzeugen. Eine echte Aufnahme und eine F¨alschung sind voneinander nicht zu unterscheiden. Folglich kann auch Bob aus dem echten Beweis nichts u¨ ber das Geheimnis erfahren. Es ist somit ein echter Zero-Knowledge-Beweis. Viele Zero-Knowledge-Verfahren beruhen auf der Schwierigkeit, quadratische Kongru dieselben Forderungen wie im RSA-Verfahren enzen modulo zu l¨osen, wobei an gestellt werden. Wir erinnern daran, daß nach Satz 8.3.1 bei unbekanntem und das Finden der Primfaktorzerlegung ebenso schwierig ist wie das L¨osen der quadratischen Kongruenz
f¨ur eine beliebige Zahl . ¨ Mit dem folgenden Protokoll kann aufgrund dieser Aquivalenz Alice auch indirekt be kennt, indem ihr Bob eine Zahl nennt, weisen, daß sie eine Primfaktorzerlegung f¨ur die Alice dann den Nachweis liefert, daß sie eine Wurzel kennt, ohne den Wert preiszugeben. Das Protokoll kann auch, wie in Abschnitt 8.2 erw¨ahnt wurde, zur Verbesserung von Protokoll 8.2.1 verwendet werden. Man beachte, daß gilt.
Protokoll 10.2.1 Alice m¨ochte Bob beweisen, daß sie ein mit kennt, ohne daß Bob Beide einigen sich auf ein (je nach gew¨unschter Sicherheit). for to do (1) Alice w¨ahlt eine Zufallszahl , , und sendet
erf¨ahrt.
an Bob. (2) Bob w¨ahlt ein zuf¨alliges Bit und sendet es an Alice. (3) Alice sendet
an Bob. (4) Bob pr¨uft, ob gilt. end. (5) Bob akzeptiert Alice Beweis, wenn in jeder Runde der Test in (4) positiv ausgeht.
In Schritt (3) sendet Alice, falls ist, die Quadratwurzel von
ist, die Quadratwurzel von . Eine Quadratwurzel von
an Bob und, falls erf¨ahrt Bob auf 177
10. Zero-Knowledge-Protokolle diese Weise nicht. Wird der obige Dialog jedoch oft genug wiederholt, dann kann Bob sich davon u¨ berzeugen, daß Alice eine solche Quadratwurzel kennt. Dies sehen wir wie folgt ein. Wir nehmen zun¨achst an, daß Alice keine Quadratwurzel kennt. W¨ußte sie schon in Schritt bereits in Schritt (1) (1), welches Bit Bob in Schritt (2) w¨ahlt, so w¨urde sie im Fall f¨ur Schritt (3) einfach eine beliebige Zahl w¨ahlen, dann die in lineare Kongruenz
l¨osen (siehe Satz 3.12 bzw. Satz 3.13 mit Satz 3.14) und schließlich in Schritt (1) statt an Bob senden. Bob k¨onnte in Schritt (4) keinen Betrug entdecken. Im Fall w¨urde sie in Schritt (1) und in Schritt (3) einfach senden. Wieder w¨are ein Betrug nicht festzustellen. Nun wird jedoch das Bit von Bob zuf¨allig gew¨ahlt. Falls Alice keine Quadratwurzel kennt, dann kann sie nur mit Wahrscheinlichkeit ein geeignetes angeben. Vermutet sie n¨amlich , dann w¨ahlt sie in Schritt (1) . Erh¨alt sie anschließend das Bit , nennen. Dazu muß sie diese quadratische Kongrudann muß sie in (3) ein mit enz l¨osen k¨onnen oder ein mit kennen, was jedoch nicht der Fall ist. Vermutet sie dagegen und erh¨alt , so hat sie bereits in Schritt (1) ein wie oben angegeben gew¨ahlt. Dann muß sie ein mit berechnen. Das L¨osen einer solchen quadratischen Kongruenz ist jedoch ebenso schwierig wie die Primfaktorzerlegung von , also praktisch undurchf¨uhrbar. Wird der Dialog -mal wiederholt, so ist die Wahrscheinlichkeit, daß Alice Bob betr¨ugen kann, gleich . Anstatt den Dialog -mal zu wiederholen, kann Alice auch parallel f¨ur verschiedene Zahlen nachweisen, daß sie eine Quadratwurzel modulo kennt. Davon wird bei dem im folgenden beschriebenen Fiat-Shamir-Verfahren [26] Gebrauch gemacht. Dieses Verfahren kann zur interaktiven Identifikation benutzt werden, also z.B. zur gegenseitigen Identifikation von Rechnern oder zur Benutzeridentifikation mit leistungsf¨ahigen Chipkarten. Wir nehmen an, daß ein Vertrauenszentrum (Trust Center), z.B. ein Kreditkartenunternehmen, eine Bank oder ein Rechenzentrum, Chipkarten herausgibt. Mit Hilfe dieses Zentrums k¨onnen sich die Benutzer einem Rechnersystem gegen¨uber identifizieren. Dazu w¨ahlt das Vertrauenszentrum zun¨achst einen Modulus , der das Produkt zweier geheimer, nur ihm bekannten Primzahlen und ist, und eine Pseudozufallsfunktion , die eine beliebige Zeichenkette auf eine ganze Zahl im Intervall abbildet. Dann ver¨offentlicht es und . Die Benutzer arbeiten alle mit diesem Modulus und dieser Pseudozufallsfunktion . Wenn ein Benutzer eine Chipkarte beantragt, die ihm Zugang zu dem System verschaffen soll, u¨ berpr¨uft das Vertrauenszentrum die Angaben des Benutzers und erstellt einen Identifikationsstring , der die relevanten Informationen u¨ ber den Benutzer (z.B. Name, Anschrift, Benutzernummer, Zugriffsrechte) enth¨alt. Dann berechnet das Zentrum Zahlen (f¨ur kleine Zahlen ) und w¨ahlt paarweise verschiedene dieser aus, f¨ur die ein quadratischer Rest modulo ist. Aufgrund der Kenntnis der Primfaktoren und k¨onnen die leicht auf diese Eigenschaft hin untersucht werden (Satz 8.1.4
mit Satz 8.1.5). Zu diesen Zahlen berechnet das Zentrum die Inversen (siehe Algorithmus 3.3) sowie deren kleinsten Quadratwurzeln , also
Abschließend erstellt das Vertrauenszentrum eine Chipkarte, die den Identifikationsstring , die nat¨urlichen Zahlen und die zugeh¨origen Werte enth¨alt. Nach Aush¨andigung der 178
10.2. Zero-Knowledge-Beweise Chipkarte an den Benutzer sind auch schon alle T¨atigkeiten des Vertrauenszentrums abgeschlossen. Auf das Zentrum k¨onnte ganz verzichtet werden, wenn wie beim RSA-Verfahren jeder Benutzer seinen eigenen Modulus benutzen w¨urde. Aber offensichtlich ist es wesentlich effizienter, wenn z.B. ein Geldautomat nur den einen Modulus des Kreditunternehmens und nicht alle Moduli der einzelnen Kreditkartenbenutzer kennen muß. Wir nehmen also an, daß das Identifizierungsger¨at (einer elektronischen Kasse, eines Geldautomaten oder Rechnersystems) nur den Modulus und die Funktion kennt. Damit kann es mit Hilfe des folgenden Protokolls u¨ berpr¨ufen, ob eine eingef¨uhrte Chipkarte die kennt, ohne die Zahlen selbst zu erfahren. Im Protokoll wird das IdentifiZahlen zierungsger¨at durch Bob dargestellt.
Protokoll 10.2.2 (1) Alice sendet Bob den Identifikationsstring sowie die Werte . f¨ur (2) Bob berechnet for to do begin (3) Alice w¨ahlt eine Zufallszahl , , und sendet
an Bob. (4) Bob w¨ahlt Zufallbits (5) Alice sendet
.
und sendet Alice den Vektor .
an Bob. (6) Bob berechnet
und u¨ berpr¨uft, ob gilt. end. ¨ (7) Bob akzeptiert die Identifizierung, wenn alle Uberpr¨ ufungen positiv ausgehen.
Sind Alice und Bob dem Protokoll korrekt gefolgt, so berechnet Bob in Schritt (6)
Das Vertrauenszentrum wird nur zur Ausstellung der Chipkarten gebraucht, anschließend kann sich Alice jedem anderen gegen¨uber (z.B. Bob) ausweisen. Bob akzeptiert Alice Identit¨at nur dann, wenn alle Protokolldurchl¨aufe erfolgreich waren. Die Wahrscheinlichkeit, daß Oskar (der dann und die kennen muß) behauptet, Alice zu sein, und so Bob betr¨ugen kann, ist . Ein Wert von wird bei den meisten Anwendungen als ausreichend zu w¨ahlen. Damit brauchen sowohl Alice angesehen. Dazu gen¨ugt es, und Multiplikationen, um ein solches Identifikationsals auch Bob durchschnittlich protokoll -mal zu durchlaufen. Zum Vergleich geben wir an, daß eine digitale Signatur mit dem RSA-Verfahren 768 Multiplikationen ben¨otigt.
179
10. Zero-Knowledge-Protokolle Weder ein Dritter, der die Kommunikation zwischen Alice und Bob abh¨ort, noch Bob selbst erhalten Informationen, die es ihm erlauben w¨urden, sich sp¨ater als Alice auszugeben, da das Protokoll jedesmal mit anderen Zufallszahlen abl¨auft. Das Protokoll kann jedoch nicht als Nachweis dienen, daß tats¨achlich eine solche Kommunikation zwischen Alice und Bob stattgefunden hat. Bob hat n¨amlich die M¨oglichkeit, ein solches Protokoll vorzut¨auschen, wenn er den Identifikationsstring von Alice erfahren hat. Bereits bei dem zuerst angef¨uhrten Protokoll 10.2.1 ist angegeben, daß Alice in Schritt (1) und (3) geeignete Zahlen und angeben kann, ohne eine Quadratwurzel von zu kennen, wenn sie vorher weiß, welches Bit Bob in Schritt (2) ausw¨ahlen wird. Auch hier k¨onnte Bob also solche Zahlen und in Abh¨angigkeit von den Bits berechnen und damit vort¨auschen, daß ein Dialog zur Identifikation mit Alice stattgefunden hat. Man kann sagen, daß Bob sich selbst gegen¨uber sich als Alice ausgeben kann. Man spricht in diesem Fall von einem Identifikationsschema. Protokoll 10.2.2 kann zu einem Protokoll f¨ur digitale Signaturen erweitert werden. Dabei , wird Bobs Rolle ge¨andert. In Protokoll 10.2.2 hat er zuf¨allige Werte , , gew¨ahlt. Diese Werte werden im wesentlichen durch gewisse Bits ersetzt, die sich ergeben. bei Anwendung einer Hashfunktion auf die Nachricht
Protokoll 10.2.3 Alice signiert eine Nachricht, die Bob verifiziert zuf¨allige Zahlen , (1) (a) Alice w¨ahlt f¨ur
, und berechnet . F¨ur , , (b) Alice berechnet den Hashwert , verwendet sie die ersten Bits des Hashwertes. , berechnet Alice (c) F¨ur alle ,
(d) Alice sendet ihren Identifikationsstring , die Werte die Werte . und alle an Bob. (2) (a) Bob berechnet f¨ur (b) Bob berechnet
, die Nachricht
,
f¨ur alle . identisch zu den (c) Bob u¨ berpr¨uft, ob die ersten Bits von Elementen , , , sind. Er akzeptiert die Signatur, wenn gilt. außerdem auch f¨ur alle
Wenn das Protokoll korrekt ausgef¨uhrt wird, also auch folgt , wobei die ersten Elementegilt, den Wer ten , , , entsprechen. Die Wahrscheinlichkeit, einen Klartext zu finden, der zu einem Hashwert mit genau denselben ersten Bits f¨uhrt, ist . Das ist derselbe Wert, mit dem Oskar dieses Protokoll im Namen von Alice durchf¨uhren kann. 180
10.2. Zero-Knowledge-Beweise In der Praxis h¨angt die Wahl von und davon ab, welche Sicherheit gew¨unscht wird. Auf jeden Fall ist die Anzahl der mathematischen Operationen bei diesem Signaturverfahren geringer als zum Beispiel bei der Signatur mit Hilfe des RSA- oder des ElGamal-Verfahrens. Wir geben jetzt ein Zero-Knowledge-Protokoll f¨ur ein Entscheidungsproblem an, daß mit dem Problem des diskreten Logarithmus zusamenh¨angt. Zun¨achst formulieren wir das Entscheidungsproblem.
Definition 10.2.1 Das Untergruppenelementproblem ist wie folgt definiert: Es seien und . Die Ordnung von in sei . Ist ein Element derjenigen Untergruppe von , die von erzeugt wird? (In anderen Worten: gilt f¨ur ein , ?)
Es ist klar, daß die Zahl , falls sie existiert, der diskrete Logarithmus
ist.
Protokoll 10.2.4 Die Werte , , und aus Definition 10.2.1 sind o¨ ffentlich. Alice m¨ochte Bob beweisen, daß sie ein mit kennt, ohne daß Bob erf¨ahrt. Beide einigen sich auf ein (je nach gew¨unschter Sicherheit). for to do , und sendet (1) Alice w¨ahlt eine Zufallszahl ,
an Bob. (2) Bob w¨ahlt ein zuf¨alliges Bit und sendet es an Alice. (3) Alice berechnet
wobei (4) Bob pr¨uft, ob
ist, und sendet
an Bob.
gilt. end. Bob akzeptiert Alice Beweis, wenn in jeder Runde der Test in (4) positiv ausgeht.
Die Analyse dieses Protokolls ist a¨ hnlich wie die von Protokoll 10.2.1. Wenn Alice wirklich ein wie angegeben kennt, berechnet Bob wegen (mit geeignetem ) in Schritt (4)
Wegen der m¨oglichen Wahl von muß Alice sich an das anfangs an Bob geschickte halten. Sonst k¨onnte sie n¨amlich im Fall
, wenn sie nicht kennt, bereits in Schritt (1)
f¨ur den Schritt (3) ein beliebiges w¨ahlen und daf¨ur
berechen, wobei das Inverse leicht bestimmen kann. Diesen Wert sie wegen ggt m¨ußte sie
dann in Schritt (1) schicken. Im folgenden wollen wir einige allgemeine Ideen angeben, die f¨ur Zero-Knowledge-Be. Die Hauptidee der weise benutzt werden k¨onnen, insbesondere auch f¨ur Probleme in
181
10. Zero-Knowledge-Protokolle Konstruktion besteht in der von abschließbaren Schachteln (lockable boxes), in die Peter (prover), der den Beweis f¨uhrt, entsprechende Informationen einschließt. Vera (verifier), die von der Richtigkeit des Beweises u¨ berzeugt werden soll, kann die Schachteln nicht o¨ ffnen, da Peter den Schl¨ussel besitzt. Peter ist jedoch dem Inhalt der Schachteln gegen¨uber ver¨ pflichtet, d.h., er kann durch Offnen der Schachteln ihren Inhalt nicht a¨ ndern. Vera kann ¨ Peter beim Offnen beobachten. Die Schachteln k¨onnen mit Hilfe des RSA-Verfahrens oder mit diskreten Logarithmen konstruiert werden, wobei man nat¨urlich annimmt, daß Faktorisierung oder Berechnung diskreter Logarithmen schwierige Probleme sind, also praktisch undurchf¨uhrbar sind. Wir werden darauf noch eingehen. Wir betrachten das Problem der 3-F¨arbbarkeit eines Graphen G. Eine 3-F¨arbung von besteht in einer F¨arbung der Knoten von mit den Farben (Blau), (Rot) und (Weiß), so daß Knoten, die durch eine Kante verbunden sind, nicht dieselbe Farbe haben. 3-F¨arbbarkeit ist ein -vollst¨andiges Problem. Das folgende Protokoll stammt von [39] und ist auch in [93] dargestellt.
Protokoll 10.2.5 Peter m¨ochte Vera u¨ berzeugen, daß er eine 3-F¨arbung eines Graphen mit Knoten kennt for s:=1 to k do (1) Peter bereitet folgende abgeschlossene Schachteln vor: , , , , und jede der . Jede der Schachteln enth¨alt genau einen Knoten Schachteln genau eine Farbe, und zwar so, daß f¨ur jedes Paar mit und ein existiert mit aus und aus . Dabei treten die Paare in den Paaren von Schachteln in zuf¨alliger Ordnung auf. Jede der Schachteln enth¨alt entweder 0 oder 1. Sie enth¨alt 1 genau dann, wenn beide der folgenden Bedingungen erf¨ullt sind: (a) Ist aus und aus , so existiert eine Kante zwischen und in . (b) Die Farbe, die in Peters 3-F¨arbung dabei dem Knoten bzw. zugeordnet ist, erscheint in bzw. . Die Schachteln , und werden als Knoten-, Farb- bzw. Kantenschachteln bezeichnet. Peter u¨ bermittelt Vera diese Schachteln. (2) Vera w¨ahlt zuf¨allig ein Bit und teilt es Peter mit. (3) (a) Ist , so o¨ ffnet Peter alle Knoten- und Kantenschachteln. (b) Ist , so o¨ ffnet Peter alle Farbschachteln und alle diejenigen Kantenschach teln , f¨ur die die Farben aus und u¨ bereinstimmen. (4) Vera u¨ berpr¨uft, ob im Fall (a) sie eine Kopie von sowie isolierte Punkte erhalten hat (ist dies nicht der Fall, so bricht sie das
Protokoll ab), (b) alle ge¨offneten Kantenschachteln 0 enthalten, ob die Farben entsprechend (3)(b) u¨ bereinstimmen und ob jede Farbe -mal in den Farbschachteln vorkommt (ist dies nicht der Fall, so bricht sie das Protokoll ab). end. ¨ Vera ist u¨ berzeugt, daß Peter eine 3-F¨arbung der Knoten kennt, wenn alle Uberpr¨ ufungen positiv ausgehen.
182
10.2. Zero-Knowledge-Beweise
Zun¨achst u¨ berlegen wir uns, warum in (4)(b) genau Kantenschachteln ge¨offnet werden. Jeweils Farbschachteln m¨u ssen jeweils dieselbe Farbe enthalten. Die Indizes
dieser Schachteln bestimmen die jeweils zu o¨ ffnenden Kantenschachteln (jeder der Knoten einer festen Farbe muß mit jedem anderen Knoten derselben Farbe verbunden werden). Insgesamt m¨ussen also Kantenschachteln ge¨offnet werden. Offensichtlich k¨onnen die zugeh¨origen Knoten der nicht ge¨offneten Kantenschachteln jeweils nur verschieden gef¨arbt sein. ¨ Die folgenden Uberlegungen sind nun leicht einzusehen. Die Schachteln m¨ussen in jeder Runde des Protokolls neu konstruiert werden, da sonst Vera in der ersten Runde w¨ahlt und damit eine Kopie von erh¨alt und ihr in der zweiten Runde bei Wahl von die zugeh¨orige F¨arbung bekannt wird. Werden die Schachteln immer neu konstruiert, so empf¨angt ¨ sie im Fall (b) nach den vorstehenden Uberlegungen die Information, daß zwei benachbarte Knoten (durch einige der nicht ge¨offneten Kantenschachteln repr¨asentiert) verschieden gef¨arbt sind und folglich Peters 3-F¨arbung korrekt sein muß. Wenn Peter eine 3-F¨arbung ¨ von kennt, gehen die Uberpr¨ ufungen des Protokolls immer positiv aus. Er kann nur auf zwei verschiedene Arten betr¨ugen.
(1) Peter verschließt in den Schachteln nicht eine Beschreibung von , sondern die eines anderen Graphen mit derselben Anzahl von Knoten , dessen 3-F¨arbung er kennt. Falls Vera gew¨ahlt hat, stellt sie diesen Betrug in Schritt (4)(a) sofort fest. W¨ahlt sie dagegen das Bit , so kann sie diesen T¨auschungsversuch nicht erkennen. (2) Ein anderer Betrugsversuch ist m¨oglich, wenn Peter zwar den richtigen Graphen w¨ahlt, aber eine falsche 3-F¨arbung benutzt, indem er eine falsche Anzahl von Farben w¨ahlt oder aber benachbarte Knoten gleich f¨arbt. Die Wahl des richtigen Graphen ¨ bedeutet, daß Peter nach den Uberlegungen in unmittelbarem Anschluß an das Protokoll diejenigen Knoten, die zu den Kantenschachteln mit geh¨oren, also ¨ die Knoten von , verschieden f¨arben muß, wenn Veras Uberpr¨ ufung in (4)(b) positiv ausgehen soll. Eine falsche F¨arbung erkennt sie also bei Wahl von sofort.
Die Wahrscheinlichkeit, daß Peter ohne Entdeckung eine falsche 3-F¨arbung des Graphen behaupten kann, ist somit .
Beispiel 10.2.1 Es sei . Der gegebene Graph ist unten dargestellt. Dabei sind die Knoten bereits mit ihren Namen und mit der Peter bekannten 3-F¨arbung versehen.
Peter bereitet die folgenden Knoten- und Farbschachteln vor:
1 2
2 1
3 1
4 4
5 2
6 4
7 3
8 3
9 4
10 11 1 2
12 3
183
10. Zero-Knowledge-Protokolle Peter bereitet
Kantenschachteln
vor, und zwar so, daß die 5 Schachteln
und
den Wert 1 enthalten und alle anderen 61 Schachteln den Wert 0. Wird gem¨aß (a) vorgegangen, so erh¨alt Vera den Graphen 3
9
11
1
2
4
5
12
6
7
8
10
Hierbei benutzen wir die Indizes der Knotenschachteln als Marken. Den ge¨offneten Knotenschachteln kann Vera entnehmen, daß diese Marken 3, 11, 12, 9 in dieser Reihenfolge den Knoten 1, 2, 3, 4 entsprechen. Somit erh¨alt Vera den originalen Graphen ohne F¨arbung der Knoten. Außerdem erh¨alt sie 8 isolierte Knoten. Kantenschachteln Wird gem¨aß (b) vorgegangen, so werden die folgenden
ge¨offnet. Alle diese Schachteln enthalten 0.
Jetzt wollen wir auf die Konstruktion der abschließbaren Schachteln eingehen. Wir k¨onnen das RSA-Verfahren verwenden (Verschließen mit dem o¨ ffentlichen Schl¨ussel ), wobei jedoch das Problem besteht, z.B. bei der Schachtel die einzigen Inhalte 0 oder 1 durch Zusatzinformation so zu chiffrieren, daß nicht nur zwei verschiedene chiffrierte Werte der Schachtelinhalte entstehen. Eine andere Methode beruht auf der Annahme, daß die Berechnung diskreter Logarithmen modulo praktisch undurchf¨uhrbar ist (siehe auch Seite 76). Ohne Beschr¨ankung der Allgemeinheit kann dabei angenommen werden, daß jede Schachtel nur ein Bit enth¨alt. Wenn sie eigentlich mehr Information enthalten soll, kann sie durch mehrere Schachteln ersetzt werden, die gleichzeitig zu o¨ ffnen sind. Zun¨achst werde eine große Primzahl und eine primitive Wurzel modulo (siehe Definition 7.1.1) gew¨ahlt, also eine Zahl , die ein erzeugendes Element von ist. Das bedeutet, daß f¨ur alle , , ein mit
existiert (siehe Satz 7.1.2). ist der diskrete Logarithmus von zur Basis . Es ist be erzeugende Elemente von kannt, daß genau existieren (siehe Satz 7.1.3, Eulersche Funktion). Peter und Vera einigen sich auf die Zahlen und . Sie werden ver¨offentlicht. Allgemeiner k¨onnen und von allen Parteien genutzt werden, die ein solches Zero-Knowledge-Protokoll verwenden m¨ochten. 184
10.2. Zero-Knowledge-Beweise
Zu Beginn w¨ahlt Vera ein zuf¨alliges , , und teilt es Peter mit. Peter kann mit nicht berechnen. Um ein Bit in einer Schachtel zu verschließen, w¨ahlt Peter zuf¨allig und geheim eine Zahl und u¨ bermittelt Vera die Schachtel“ ”
Offenbar ist jedes Element geeignetes sowohl von der Form ,, daf¨ur ein als auch von der Form , eine multiplikative Gruppe ist. Folglich wird durch nichts u¨ ber verraten. Wenn Peter f¨ur Vera die Schachtel o¨ ffnen will, oder dann teilt er ihr den Schl¨ussel mit. Vera kann dann u¨ berpr¨ufen, ob
gilt. Peter ist auch auf das Bit verpflichtet. Er kann die Schachtel nicht wunschweise als 0 oder 1 o¨ ffnen. Anderenfalls k¨onnte Peter n¨amlich zwei Zahlen und w¨ahlen mit
Sp¨ater k¨onnte er, je nach gew¨unschtem Resultat 0 oder 1, Aus dieser Gleichung folgt
oder
als Schl¨ussel nennen.
Damit kann Peter den diskreten Logarithmus von berechnen. Wir haben jedoch angenommen, daß dies praktisch undurchf¨uhrbar ist. Allgemein kann man nun formulieren:
Satz 10.2.1 F¨ur jede ja“-L¨osung eines Problems aus ” Beweis, falls sichere Kryptosysteme existieren.
gibt es einen Zero-Knowledge-
Beweis. Es sei ein Fall des betrachteten Problems. Nach Abschnitt 10.1 existiert ein de des -vollst¨andigen 3-F¨arbbarterministischer Algorithmus , der auf einen Fall keitsproblems in polynomialer Zeit reduziert. ist also ein Graph. Dabei gilt
3-f¨arbbar. ja“-Fall ” Wir k¨onnen annehmen, daß Vera und Peter beide den Algorithmus kennen. Somit stehen beiden und zur Verf¨ugung. Wenn Peter eine L¨osung f¨ur kennt, dann kennt er auch ist daher aufgrund der eine f¨ur den Graphen . Ein Zero-Knowledge-Beweis f¨ur ¨ Aquivalenz auch einer f¨ur .
Ein Zero-Knowledge-Beweis f¨ur das folgende Problem kann gem¨aß Satz 10.2.1 auf einen entsprechenden Beweis f¨ur das 3-F¨arbbarkeit-Problem zur¨uckgef¨uhrt werden. Wir wollen jedoch einen direkten Beweis angeben (siehe [39]), der nicht auf Zahlentheorie be ein ungerichteter ruht, sondern unmittelbar auf der Graphentheorie. Es sei und Graph mit der Knotenmenge und der Kantenmenge . Zwei Graphen heißen isomorph, wenn eine Bijektion existiert mit
Das Graphisomorphismus-Problem besteht darin zu entscheiden, ob zwei vorgegebene Graund isomorph sind. Es ist bekannt, daß dieses Problem aus stammt, jedoch phen ist ungekl¨art, ob es -vollst¨andig ist.
185
10. Zero-Knowledge-Protokolle Protokoll 10.2.6 Peter m¨ochte Vera davon u¨ berzeugen, daß er einen Isomorphismus zwischen zwei Graphen und kennt. for i:=1 to k do (1) Peter berechnet einen Zufallsgraphen , der isomorph zu ist, und teilt ihn Vera mit. (2) Vera w¨ahlt ein zuf¨alliges Bit und sendet es an Peter. (3) Peter teilt Vera einen Isomorphismus zwischen und mit. (4) Vera u¨ berpr¨uft diese Isomorphie. end. Vera ist u¨ berzeugt, daß Peter eine Isomorphismus zwischen und kennt, wenn alle ¨ Uberpr¨ufungen positiv ausgehen.
Wenn Peter tats¨achlich einen Isomorphismus zwischen den beiden Graphen kennt, dann kennt er eine Bijektion mit
und
erzeugt und damit einen IsomorAußerdem hat er in Schritt (1) eine Bijektion phismus zwischen den Graphen und mit
in Schritt (2) gew¨ahlt wird, so teilt Peter in Schritt (3) Vera einfach hergestellt. Wenn mit. Ist , so u¨ bermittelt er ihr , wobei die Verkn¨upfung der Abbildungen bedeutet. Kennt Peter dagegen keinen Isomorphismus zwischen und , dann kann er nur f¨ur den Schritt (3) richtig ausf¨uhren, also insgesamt nur mit
Wahrscheinlichkeit . Die Wahrscheinlichkeit, daß Peter Vera betr¨ugen kann, ist nach Durchl¨aufen somit . Durch die Tatsache, daß bei jedem Durchlauf ein anderer zuf¨alliger Graph gew¨ahlt wird, erf¨ahrt Vera von Peter keine zus¨atzlichen Informationen u¨ ber den Isomorphismus. Dies setzt voraus, daß Peter zus¨atzlich darauf achtet, daß verschieden von und ist. Die Sicherheit von Protokoll 10.2.6 beruht auf der Tatsache, daß bis jetzt kein polynomialer Algorithmus f¨ur das Graph-Isomorphismus-Problem bekannt ist.
186
11 Knapsacksysteme 11.1 Merkle-Hellman-Knapsacks In den folgenden Abschnitten werden mehrere Public-Key-Kryptosysteme, die auf dem -vollst¨andigen Knapsack-Problem beruhen, angegeben. Merkle und Hellman [64] schlugen ein Schema vor, das auf der Schwierigkeit beruht, das folgende 0-1-Knapsack-Problem zu l¨osen.
. Gesucht ist ein bin¨arer Vektor
Gegeben sei
mit
(siehe auch Beispiel 10.1.1). Beispiel 11.1.1 Es sei eine L¨osung von
und
. Dann ist
Der beste bisher bekannte Algorithmus,um einen beliebigen Fall der Gr¨oße zu l¨osen, stammt von Schroeppel und Shamir [97]. Er hat einen Zeitbedarf von ) und einen Platzbedarf von ). Spezielle Knapsack-Probleme k¨onnen jedoch in linearer Zeit gel¨ost werden. Wir betrachten hier einfache Knapsacks. Bei ihnen sind die Elemente superwachsend, d. h.
f¨ur
Satz 11.1.1 Es sei ein einfaches 0-1-Knapsack-Problem mit super-wachsenden , gegeben, und das Problem sei l¨osbar. Dann folgt f¨ur
Beweis. Aus
Umgekehrt gelte
Dann ist
folgt
187
11. Knapsacksysteme Wir erhalten
(da die Es folgt und damit
super-wachsend sind)
Aus diesem Satz folgt die L¨osung des einfachen Knapsack-Problems durch den folgenden Linearzeitalgorithmus. Algorithmus 11.1.1 snap( ); simple knapsack solution“ ” for downto 1 do then else end; if ; end; if then snap:= else write(”keine L¨osung“) end;
Beispiel 11.1.2 Der Vektor aus Beispiel 11.1.1 wird zu umgestellt. Damit wird ein einfacher Knapsack-Vektor. snap(14, ) liefert (1, 1, 0, 1, 0).
Ein einfacher Knapsack soll in einen Trapdoor-Knapsack, der ohne zus¨atzliche Information schwer zu l¨osen ist, umgewandelt werden. Dazu wird ein einfacher Knapsack gew¨ahlt. Dieser erlaubt eine einfache L¨osung des Problems Vektor . Weiter wird ein mit
und
berechnet und ein schwerer Knapsack-Vektor gew¨ahlt. Anschließend wird durch d. h. f¨ur
ist jetzt schwierig. Dies schwierige Problem kann gebildet. Die L¨osung von
jedoch unter Kenntnis der Trapdoor-Information und in das folgende leichte Problem und ein
mit
ggt
transformiert werden:
188
11.1. Merkle-Hellman-Knapsacks
F¨ur die letzte Gleichung ben¨otigen wir die Ungleichung
Falls eine L¨osung
des schwierigen Problems existiert, dann zeigt diese Rechnung, daß sie die L¨osung des ein¨ fachen Knapsack-Problems ist. Wegen der Aquivalenz aus Satz 11.1.1 ergibt sich außerdem, daß h¨ochstens eine L¨osung f¨ur den einfachen Knapsack und damit auch h¨ochstens eine f¨ur den schweren Knapsack existiert. Bei der Anwendung des Trapdoor-Knapsacks f¨ur Public-Key-Kryptosysteme wird f¨ur den o¨ ffentlichen Schl¨ussel ein schwerer Knapsack-Vektor und f¨u r den geheimen Schl¨us , zusammen ein entsprechender einfacher Knapsack-Vektor mit den sel
Trapdoor-Informationen und , verwendet. kann aus , und durch
berechnet werden. Die Chiffrierung erfolgt mit dem o¨ ffentlichen Schl¨ussel , die De chiffrierung mit dem geheimen Schl¨ussel . Bei der Chiffrierung wird der Klartext in Bl¨ocke von Bits L¨ange aufgeteilt. Die Chiffrierung erfolgt durch
Die Dechiffrierung erhalten wir aus
und
snap
Beispiel 11.1.3 Gegeben seien
Daraus ergibt sich , und es folgt
mit ggt
.
, bin¨ar durch (1, 1, 0, 1) dargestellt, wird als Der Klartext
chiffriert. Die Dechiffrierung ergibt wieder
snap
snap
Merkle und Hellman schlugen urspr¨unglich vor, oder gr¨oßer zu w¨ahlen. Mit dem oben erw¨ahnten Algorithmus von Schroeppel und Shamir, der einen Zeitbedarf von hat, ergeben sich f¨ur schon Instruktionen. Ein Prozessor mit Instruktionen pro Tag findet die L¨osung in etwa 11574 Tagen, 1000 Prozessoren ben¨otigen dazu etwa 12 Tage. Wird gew¨ahlt, so ergeben sich Instruktionen. Somit wird der Algorithmus unhandhabbar. Das allgemeine Knapsack-Problem ist -vollst¨andig. Wenn auch das Trapdoor-Knapsack-Problem -vollst¨andig w¨are, w¨are es ein hervorragendes Kryptosystem. Allerdings wurde dieses System bereits 1982 von Shamir [104] gebrochen, d. h. in polynomialer Zeit gel¨ost. Dies werden wir weiter unten betrachten. ¨ Zuvor stellen wir noch einige Uberlegungen zu den Gr¨oßen des Trapdoor-Knapsacks und gew¨ahlt. Damit gibt es an. Es werde
189
11. Knapsacksysteme
Wahlen f¨ur ( ). Nach den obigen Forderungen soll gelten. Dies ist erf¨ ullt, wenn ein ein gew¨ahlt wird. Dann ist mit und , und die Klartextnachricht aus 200 Bits hat eine Chiffretextnachricht einer 410-Bit-Darstellung. Dies liegt daran, daß bei der Addition von 200 Werten zu je 402 Bits ein Ergebnis entstehen kann, das h¨ochstens 200-mal so groß ist wie die gr¨oßte Zahl mit zus¨atzliche bin¨are Stellen 402 Bits. Die Multiplikation mit 200 bedeutet, daß entstehen. Dieses Verfahren k¨onnte f¨ur die Geheimhaltung (w¨are es nicht durch Shamirs Algorithmus gebrochen worden!), jedoch nicht f¨ur die Authentizit¨at benutzt werden, denn offensichtlich kann nicht jede 410-Bit-Nachricht genau einer 200-Bit-Nachricht entsprechen, d.h., ist nicht auf jede beliebige 410-Bit-Nachricht anwendbar. Bits kBits SpeiF¨ur ben¨otigt der o¨ ffentliche Vektor ungef¨ahr cherplatz. Dagegen ben¨otigt das RSA-Schema f¨ur den o¨ ffentlichen Schl¨ussel nur 1 kBit. F¨ur den Zeitbedarf sieht die Situation umgekehrt aus. F¨ur werden f¨ur die Chiffrierung 200 Additionen und f¨ur die Dechiffrierung 200-mal je eine Subtraktion, eine Multiplikation und eine modulare Multiplikation ben¨otigt. Dagegen ben¨otigt das RSA-Schema sowohl f¨ur die Chiffrierung als auch f¨ur die Dechiffrierung etwa 1000 Multiplikationen in modularer Arithmetik in beiden F¨allen.
11.2 Brechen des Merkle-Hellman-Knapsacks Wir kommen nun zu Shamirs Algorithmus zum Brechen des Merkle-Hellman-Knapsacks [104]. Wir stehen vor der folgenden kryptoanalytischen Aufgabe. Ein Knapsack-Vektor ist bekannt, der als o¨ ffentlicher Schl¨ussel benutzt wird. Wir wissen, daß von irgendeinem super-wachsenden Knapsack-Vektor durch modulare Multiplikationen, wie oben beschrieben, erzeugt wurde, also
, und sind uns unbekannt. Wir m¨ochten die Werte und und damit bestimmen. Shamirs kryptoanalytischer Angriff benutzt nur den Chiffrierschl¨ussel. Das System kann gebrochen werden, bevor wesentlicher Chiffretext gesendet wird. Der Algorithmus arbeitet in polynomialer Zeit bzgl. der Gr¨oße des Knapsacks . Zu gilt.
dieser Gr¨oße tr¨agt die Zahl sowie die Gr¨oße der Komponenten bei.
Es ist nicht n¨otig, die urspr¨unglichen Werte und zu finden. Jeder Multiplikator , super-wachsend, und und jeder Modulus gen¨ u gt, der bzgl. erf¨u llt. Ein solches Paar bildet ein Trapdoor-Paar. Mit Hilfe des gesendeten kann dann Textes
gebildet werden. Falls die L¨osung des schwierigen Problems existiert, l¨ost auch den einfachen Knapsack . Dabei existiert aber nach Satz 11.1.1 jeweils h¨ochstens eine L¨osung f¨ur den einfachen Knapsack und damit auch f¨ur den schweren Knapsack. Die Dechiffrierung
erfolgt mit einem beliebigen Trapdoor-Paar . Die Existenz von mindestens einem
snap
solchen Paar ist dadurch gesichert, daß der Kryptosystem-Designer ein solches benutzt
190
11.2. Brechen des Merkle-Hellman-Knapsacks
hat. Um ein Trapdoor-Paar zu finden, werden alle Graphen f¨ur alle betrachtet. Die m¨ussen dann die Komponenten eines super gelten. Wir fassen nun als wachsenden Knapsacks sein, und es muß S¨agezahnkurven, die Variable u¨ ber (statt u¨ ber ) auf und erhalten f¨ur durch das folgende Bild gegeben werden:
¨ Nach den Uberlegungen von Seite 188 muß gelten. Dabei ist jedoch unbekannt. klein. Im Vergleich zu sind die des gesuchten wegen Insbesondere ist als erste Komponente eines super-wachsenden Knapsacks sehr liegt in der N¨ahe eines klein. Der zugeh¨orige Wert des Trapdoor-Paares Minimums f¨ur alle . Anders ausgedr¨uckt liegt also f¨ur alle der Wert in der N¨ahe eines Minimums der entsprechenden S¨agezahnkurve. Es existiert somit ein kleines Intervall der -Achse, das ein -Minimum f¨ur alle enth¨alt. In diesem Intervall befindet sich . Diese Ideen sollen durch Ungleichungen ausgedr¨uckt werden. Eine erste Schwierigkeit besteht darin, daß nicht bekannt ist. Dieses Problem wird dadurch gel¨ost, daß das obige Bild durch Ersetzen von durch 1 reduziert wird, d. h., alle L¨angen werden durch geteilt. Die relative Lage der H¨aufungspunkte der -Minima wird dadurch nicht beeinflußt. Wenn z. B. das -Minimum f¨ur alle in der N¨ahe des 7. -Minimums vor der Reduzierung vorkommt, so auch nach der Reduzierung. Der Algorithmus zum Finden eines Trapdoor-Paares besteht aus zwei Teilen: (1) Zun¨achst werden Kandidaten daf¨ur gefunden, daß das -te -Minimum der gesuchte H¨aufungspunkt ist. (2) Diese Kandidaten werden nacheinander getestet. Da f¨ur das bestehende Trapdoor-Paar des Designers ein H¨aufungspunkt existiert, terminiert der Algorithmus. Da der erste Teil des Algorithmus, im Vergleich zur Gr¨oße des Problems, zu viele Kanditaten liefern k¨onnte, werden Vorsichtsmaßnahmen getroffen. Das wird durch die Festlegung einer maximalen Anzahl von Kandidaten erreicht. Falls der Algorithmus Kandidaten produziert, terminiert er mit Mißerfolg. Weiterhin m¨ussen im ersten Teil nicht betrachtet werden, sondern es wird eine maxialle m¨oglichen Komponenten festgelegt. Somit produziert der erste male Anzahl von Komponenten
191
11. Knapsacksysteme
Teil Kandidaten daf¨ur, daß das -te -Minimum in der N¨ahe eines -Minimus f¨ur al liegt. Die Werte werden nicht betrachtet, so daß der erste Teil le ganz falsche Werte liefern kann. Der zweite Teil des Algorithmus u¨ berpr¨uft jedoch alle . Ein Kandidat entf¨allt sofort, wenn f¨ur ein kein -Minimum in der N¨ahe des -ten -Minimums liegt. Wir beschreiben nun den ersten Teil des Algorithmus. Das erste -Minimum ergibt sich beim kleinsten mit , also bei . Da gleiche Abst¨ande von Minimum zu Minimum bestehen, ist die -Koordinate des -ten -Minimums gleich . Daß ein -Minimum in der N¨ahe des -ten -Minimums liegt, kann durch
ausgedr¨uckt werden. F¨ur bzw. wird der rechte Rand der S¨agezahnkurve erreicht. Durch die Multiplikation mit
erreicht. Nun wird f¨ur jede Komponente stellt, also
wird
eine Ungleichung dieser Form aufge-
. ..
Die sind bekannt. Gesucht sind und die . Dies ist ein Problem des linearen Programmierens. 1981 wurde von Lenstra [59] gezeigt, daß dieses Problem in polynomialer Zeit , wobei der Exponent noch nicht genau gel¨ost werden kann. Der Zeitbedarf betr¨agt bekannt ist. Der dadurch bestimmte erste Teil des Algorithmus liefert also alle diejenigen , existieren, die die Ungleichungen erf¨ullen. f¨ur die Zahlen Wir kommen nun zum zweiten Teil des Algorithmus. Die Zahlen werden getestet, bis der Algorithmus Erfolg hat. Zun¨achst werden daf¨ur alle Unstetigkeitspunkte der Kurven des Intervalls [ bestimmt und in aufsteigender Ordnung sortiert. Wenn und zwei aufeinanderfolgende Punkte dieser Liste von Punkten sind, dann ist in jede -Kurve ein Liniensegment, das die Darstellung hat. Dabei ist eine von , und abh¨angige Konstante. Mit Hilfe des linearen Programmierens wird nun eine L¨osung des folgenden Systems linearer Ungleichungen in gesucht:
Dabei erh¨alt man als L¨osung ein Teilintervall von , das auch leer sein kann. Eine notwendige und hinreichende Bedingung daf¨ur, daß ein ein Trapdoor-Paar darstellt, ist, daß in einem dieser Teilintervalle von enthalten ist. Wenn n¨amlich ein
192
11.3. Shamir-Knapsacks f¨ur Authentizit¨at
Trapdoor-Paar ist, dann ist wegen der Reduktion in einem die erste Ungleichung erf¨ullt. Weiter muß
enthalten. Damit ist
(siehe Ausf¨uhf¨ur den super-wachsenden Knapsack mit den Komponenten rungen vor dem Bild auf Seite 191) gelten. Division durch liefert sind super-wachsend, Damit ist also die zweite Ungleichung f¨ur erf¨ullt. Die
ergibt. Division durch liefert die G¨ultigkeit der dritten Ungleichung f¨ur . Existiert um gekehrt f¨ur einen Kandidaten und ein zugeh¨origes Intervall eine L¨osung ¨ der Gestalt , so ist entsprechend den eben durchgef¨uhrten Uberlegungen ein Trapdoor-Paar. Der zweite Teil des Algorithmus l¨auft nun so ab, daß nacheinander die Paare un woraus sich
tersucht werden, wobei ein Kandidat des ersten Teils und ein Index eines Punktes der sortierten Liste ist. Die Untersuchungen werden so lange durchgef¨uhrt, bis ein nichtleeres Intervall gefunden worden ist. Man w¨ahle irgendeine rationale Zahl in diesem Intervall. Damit ist ein Trapdoor-Paar bestimmt. Falls das Trapdoor-Paar des Designers in einem nichtleeren Intervall enthalten ist oder ein anderes Trapdoor-Paar gefunden ist, terminiert der Algorithmus mit Erfolg. Es k¨onnten aber auch, wie oben beschrieben, zu viele Kandidaten gefunden werden. Dann terminiert der Algorithmus mit Mißerfolg. Die Wahrscheinlichkeit f¨ur einen solchen Mißerfolg kann abgesch¨atzt werden. Es seien , und die . Dann ist die Wahrscheinlichkeit eines oben gew¨ahlten Zahlen. Es gelte und Mißerfolges
und , wenn also h¨ochstens 100 Kandidaten ge-
Zum Beispiel erh¨alt man f¨ur funden werden und nur 2 Ungleichungen im ersten Teil des Algorithmus verwendet werden d¨urfen, bereits eine recht geringe Wahrscheinlichkeit eines Mißerfolges. ¨ Die vorstehenden Uberlegungen zeigen die Auseinandersetzung zwischen einem Kryptosystem-Designer und einem Kryptoanalytiker. Weitere Ausf¨uhrungen zu Shamirs Algorithmus k¨onnen in den B¨uchern von Horster [48], OConnor und Seberry [74] oder Salomaa [93] nachgelesen werden. In [93] wird auch ein Beispiel angegeben, wie man ein TrapdoorPaar finden kann. Es gibt andere M¨oglichkeiten, ein Knapsack-Kryptosystem sicherer zu machen.
11.3 Shamir-Knapsacks fur ¨ Authentizita¨ t Shamir [103] hat einen Trapdoor-Knapsack angegeben, der f¨ur Authentizit¨at benutzt werden kann. Shamirs Schema kann jedoch nicht zur Geheimhaltung dienen. Es beruht auf -vollst¨andigen Knapsack-Problem: dem folgendem
193
11. Knapsacksysteme
und . Gesucht wird ein Vektor also mit mit
wobei , gilt. In einem Shamir-Knapsack-System f¨ur Authentizit¨ at wird eine zuf¨allige Primzahl von
Bits gew¨ahlt, etwa . Dann gilt . Mit dem Knapsack-Vektor den o¨ ffentlichen Schl¨ussel. Es sei die Nachricht und bildet das Paar die Signatur von . Der Empf¨anger des Paares kann durch die Berechung von Es seien
diese Signatur u¨ berpr¨ufen. Wenn das Knapsack-Problem gel¨ost, also ein mit gefunden werden kann, ist es m¨oglich, die Unterschrift f¨ur eine andere Nachricht zu f¨alschen. Der Absender besitzt eine geheime Trapdoor-Information, um die Signatur zu erzeugen. Sie besteht aus einer zuf¨alligen bin¨aren Matrix . Der Vektor wird nun so konstruiert, daß er das folgende System von modularen Gleichungen erf¨ullt. Da als Primzahl gew¨ahlt wurde, erfolgen dabei alle Rechnungen im K¨orper .
... . . . ... ... ...
Dies ist a¨ quivalent zu
Da in diesen Gleichungen Unbekannte vorkommen, k¨onnen Komponenten von beliebig gew¨ahlt werden. Die u¨ brigen ergeben sich aus der L¨osung des Gleichungssystems. Die Rechnungen sind schnell durchzuf¨uhren. Falls erforderlich, k¨onnen die beliebig gew¨ahlten Komponenten so abge¨andert werden, daß die Rechnungen schnell werden. und ihr bin¨ares Spiegelbild Die Signatur wird f¨ur eine Nachricht durch
also
erzeugt. Es gilt jeweils
¨ . Die Uberpr¨ ufung der Signatur erfolgt durch
194
11.3. Shamir-Knapsacks f¨ur Authentizit¨at
Beispiel 11.3.1 Es sei und gesendet werden k¨onnen. Die Matrix
Wir setzen
,
und
. Das bedeutet, daß Nachrichten im Bereich [0, 6] werde (zuf¨allig) gew¨ahlt als
in das Gleichungssystem (modulo 7)
ein und erhalten
Die L¨osung lautet
, , und damit ist der Knapsack-Vektor bestimmt. Es sei . Die Chiffrierung von liefert die Signatur
Diese Signatur wird durch
u¨ berpr¨uft.
empDieses Signatur-Verfahren ist jedoch noch unsicher. Falls gen¨ugend Paare fangen werden, kann aus mit den Methoden der linearen Algebra bestimmt werden (siehe dazu auch Abschnitt 2.6, Hill-Chiffre). Um diesen L¨osungsansatz zu verhindern, werden die Nachrichten, bevor sie signiert werden, randomisiert. Dabei wird ein gew¨ahlt und anschließend zuf¨alliger Vektor ist nun berechnet. wird wie oben signiert und liefert . Die Signatur von . ist eine g¨ultige Signatur, denn es gilt
195
11. Knapsacksysteme Beispiel 11.3.2 Die Werte f¨ur , , . Dann folgt sei
Damit erhalten wir
,
und
werden wie in Beispiel 11.3.1 gew¨ahlt. Es
Dadurch ergibt sich die Signatur
Die Signatur h¨angt vom zuf¨alligem Vektor ab. Daraus folgt, daß es viele Signaturen geben kann, die die Gleichung auf Seite 194 erf¨ullen. Die Beispiele 11.3.1 und 11.3.2 liefern f¨ur die Nachricht zwei verschiedene Signaturen. Somit kann dieses Schema nicht f¨ur die Geheimhaltung verwendet werden. Die Dechiffrierung erzeugt viele m¨ogliche Werte, so daß nicht das urspr¨ungliche liefern muß. Positiv zu bewerten ist, daß das System schnell ist. Es stellt sich die Frage, ob es so schwierig wie das zugrundelie-vollst¨andige Problem ist. gende
11.4 Ein brechbarer NP-vollst¨andiger Knapsack Lempel [58] hat zusammen mit Even und Yacobi eine Chiffre angegeben, die die merkw¨urdige Eigenschaft hat, -vollst¨andig unter einem Angriff mit gew¨ahltem Klartext, aber trotzdem bei gen¨ugend viel bekanntem Klartext leicht brechbar zu sein. Die Chiffre benutzt von Bits und einen dem Kryptoanalytiker einen geheimen Schl¨ussel gilt. , wobei bekannten Knapsack-Vektor f¨ur Die Chiffrierung einer mitNachricht erfolgt dadurch, daß sie in -Bit-Bl¨ocke der Form
zerlegt wird. Der Sender erzeugt einen zuf¨alligen -Bit-Vektor bildet die -Bit-Summe
und
wobei das komponentensweise exklusive Oder ist. Der Sender bildet und
. hat die L¨ange von damit Bits. Der legale Empf¨anger kennt und und damit auch und erh¨alt direkt aus . Daraus kann berechnet werden. Der Kryptoanalytiker kennt , und wir nehmen an, daß er
196
11.4. Ein brechbarer NP-vollst¨andiger Knapsack
genau ein Paar kennt. Dann kann ein Angriff mit bekanntem Klartext erfolgen. Der Kryptoanalytiker berechnet durch
Zur Bestimmung von muß er das -vollst¨andige Knapsack-Problem l¨osen. Dabei sind ihm , Falls der Kryptoanalytiker jedoch Paa und bekannt. , kennt und außerdem die Vektoren re linear unabh¨angig sind, so folgt
-mal
( komponentenweise Multiplikation)
ist und, wie man sich leicht u¨ berzeugt, da gilt. Es sei . Dann k¨onnen die obigen Gleichungen durch
... ... ... ... . . . ... ... ... ... sind linear unabh¨angige Vektoren, und das System ausgedr¨uckt werden. Die , aufl¨osbar. Da f¨ur gilt, folgt ist nach den
Damit kennt der Kryptoanalytiker den geheimen Schl¨ussel und kann wie der legale Empf¨anger jede Nachricht dechiffrieren. Man kann zeigen, daß die Wahrscheinlichkeit, daß eine Teilmenge von linear unabh¨angigen enthalten, f¨ur Paare nach unten durch etwa beschr¨ankt ist. Mit wachsendem strebt die Wahrscheinlichkeit schnell daß die Chiffre, obwohl sie auf einem schweren Problem beruht, gegegen 1. Das bedeutet, brochen werden kann. Die Schw¨ache dieses Schemas ist auf die lineare Beziehung zwischen Klar- und Chiffretext zur¨uckzuf¨uhren. Weitere Informationen zu Kryptosystemen, die auf Knapsacks beruhen, finden sich in den B¨uchern von Horster [48], OConnor und Seberry [74] und Salomaa [93].
197
11. Knapsacksysteme
198
12 Vermischtes 12.1 Pretty Good Privacy (PGP) Pretty Good Privacy (PGP) ist ein f¨ur den privaten Gebrauch frei erh¨altliches Programm f¨ur sichere elektronische Post, das urspr¨unglich von Philip Zimmermann entwickelt wurde. PGP benutzt (in der Version 2.6) drei kryptographische Verfahren, die wir in der Vorlesung schon ausf¨uhrlich vorgestellt haben: (1) IDEA (siehe Bild 4.2.1) wird zur symmetrischen Verschl¨usselung von Nachrichten und Dateien verwendet. (2) MD5 (siehe Algorithmus 6.6.1) wird zur Erzeugung digitaler Signaturen und Initialisierungsvektoren benutzt, außerdem zur Berechnung von speziellen Schl¨usseln aus sogenannten Paßphrasen (diese Schl¨ussel wirken in gewisser Weise als Paßw¨orter), von Fingerabdr¨ucken aus o¨ ffentlichen Schl¨usseln sowie intern zur Zufallserzeugung. (3) Das RSA-Verfahren dient zur Chiffrierung von Sitzungsschl¨usseln sowie zur Erzeu¨ gung und Uberpr¨ ufung digitaler Signaturen. Wir werden hier die wichtigsten Konzepte von PGP vorstellen. Wenn man PGP benutzen m¨ochte, dann ist etwa das Buch von S. Garfinkel zu empfehlen [34], in dem die verschiedenen Befehle des Programms besprochen werden. schickt, dann wird das Wenn Alice an Bob unter Benutzung von PGP eine Email folgende hybride Verfahren durchgef¨uhrt: (1) PGP erzeugt einen zuf¨alligen Schl¨ussel f¨ur diese Sitzung. (2) PGP benutzt den IDEA-Algorithmus mit diesem Schl¨ussel, um die chiffrier mit dem ZIP zu erzeugen, wobei zuvor der Klartext te Nachricht Kompressionsalgorithmus zu komprimiert wurde. (3) PGP benutzt den RSA-Algorithmus, um mit dem o¨ ffentlichen Schl¨ussel von Bob . den Sitzungsschl¨ussel zu chiffrieren: (4) PGP faßt die chiffrierte Nachricht und den chiffrierten Sitzungsschl¨ussel zusammen und bereitet ihre Versendung vor. Wenn die Email an Bobs Rechner ankommt, werden durch das dortige PGP-Programm die folgenden Aktionen durchgef¨uhrt: . (5) PGP entnimmt der Email und (6) PGP berechnet den Schl¨ussel mit Hilfe des privaten Schl¨ussels von Bob.
und damit nach Dekompression den Klartext . (7) PGM berechnet
Neben dieser Verschl¨usselungsm¨oglichkeit k¨onnen mit Hilfe von PGP auch Nachrichten digital signiert werden. Dies geschieht in der u¨ blichen Weise, und zwar durch Anwendung von MD5 zur Erzeugung eines Fingerabdrucks, der dann mit dem geheimen Schl¨ussel des Benutzers signiert und an die ausgehende Nachricht angeh¨angt wird. F¨ur jeden o¨ ffentlichen Schl¨ussel, der auf einem bestimmten Rechner gehalten wird, existiert ein Schl¨usselzertifikat. Es enth¨alt die folgenden Daten: (1) den o¨ ffentlichen Schl¨ussel (mit seiner Schl¨ussel-ID, die das zugeh¨orige Paar aus o¨ ffentlichem und privatem Schl¨ussel kennzeichnet; sie besteht aus den unteren 64 Bits des o¨ ffentlichen Schl¨ussels, von denen nur die letzten 32 Bits angezeigt werden), 199
12. Vermischtes (2) eine oder mehrere Benutzer-IDs f¨ur den Schl¨usselerzeuger bzw. -besitzer (normalerweise der Name der Person und seine Email-Adresse), (3) das Datum, wann der Schl¨ussel erzeugt wurde, (4) optional eine Liste von digitalen Signaturen des Schl¨ussels, zusammen mit der Liste der Namen der Personen, die diesen Schl¨ussel signiert (zertifiziert) haben. PGP bewahrt die Schl¨ussel der Personen, mit denen ein Benutzer kommuniziert, in einem File auf, der Schl¨usselring genannt wird. Der eigene oder die eigenen privaten Schl¨ussel befinden sich in einem speziellen geheimen Schl¨usselring. Immer, wenn ein Benutzer seinen o¨ ffentlichen oder privaten Schl¨ussel verwenden will, verlangt PGP die Eingabe einer Paßphrase von maximal 253 Zeichen L¨ange. Mit Hilfe der Hashfunktion MD5 wird daraus ein 128-Bit-Wert erzeugt, der als IDEA-Schl¨ussel Verwendung findet. Damit ist der geheime Schl¨ussel im geheimen Schl¨usselring verschl¨usselt. Umgekehrt wird damit auch der geheime Schl¨ussel dechiffriert. Die gesamte Sicherheit von PGP beruht also auf einer einzigen Paßphrase. Somit ist dringend davon abzuraten, die Paßphrase in irgendeiner Datei abzulegen. PGP steckt viel Aufwand in die sichere Zufallserzeugung bei der Suche nach großen Primzahlen. Der Anwender muß so lange zuf¨allig irgendwelche Tastatureingaben machen, bis ihn das Programm zum Beenden auffordert. Die Zeitabst¨ande zwischen den Tastendr¨ucken werden zusammen mit der rechnerinternen Zeit sowie den Codes der gedr¨uckten Zeichen zur Zufallserzeugung benutzt. Die Bytefolge der Zeichen wird mit Teilen eines durch die Benutzeraktionen sich ergebenden Zufallspuffers verm¨oge exklusiven Oders verkn¨upft, anschließend wird darauf MD5 im CFB-Modus angewendet. Am Ende werden damit und mit zuvor benutzten Zufallszahlen eine neue Zufallszahl berechnet. Bei sp¨ateren Anwendungen greift PGP in sicherer Weise auf diese Zufallszahl zur¨uck. Mit Hilfe dieser Zufallszahl werden nun große Primzahlen bestimmt. Wo die Suche nach einer Primzahl beginnt, wird durch die Bits der Zufallszahl bestimmt. Die ersten beiden Bits sind jedoch in jedem Fall 1. Beim Primzahltest wird allerdings nicht der sehr effektive Algorithmus 5.2.6 benutzt, sondern zun¨achst die Teilbarkeit durch alle Primzahlen
getestet und dann u¨ berpr¨uft, ob f¨ur vier zuf¨allige Zahlen die Gleichung gilt (nach dem Satz von Fermat (Satz 3.8), siehe auch Algorithmus 5.2.7, dort wird jedoch zus¨atzlich ein weiterer Teilbarkeitstest durchgef¨uhrt). F¨ur jeden Kandidaten, der durch eine der Primzahlen teilbar ist, druckt PGP einen Punkt, f¨ur jeden positiven Fermat-Test einen Stern. In der Praxis ist der Test sehr viel besser als man aufgrund der Irrtumswahrscheinlichkeit aus Satz 5.2.3 vermuten m¨ochte. Sind zwei Primzahlen und bestimmt, dann wird daraus der Modulus berechnet und nach einem Exponenten gesucht. Er muß mindestens 5 Bits, also mindestens die Gr¨oße 17 haben. Ein Angriff auf RSA aufgrund eines kleinen Exponenten ist daher nicht m¨oglich, wobei noch hinzukommt, daß RSA nur auf Zufallszahlen und Hashwerte angewendet wird. PGP behandelt die Sitzungsschl¨ussel automatisch, ohne daß die Benutzer zu ihrer Erzeugung direkt aktiv werden m¨ußten. Es wird noch nicht einmal mitgeteilt, wie diese Schl¨ussel lauten. Aus dem Zufallspool“ aus einer speziellen Datei des Systems, dem MD5-Hashwert ” der ersten zwei KByte des Klartextes, einer Zeitmarke sowie weiteren (nicht initiialisierten) Daten wird der Sitzungschl¨ussel sowie ein Initialisierungsvektor IV erzeugt. Danach wird der Zufallspool mit dem gerade erzeugten Schl¨ussel und IV chiffriert, so daß keine R¨uckschl¨usse vom Pool auf den Schl¨ussel und IV mehr m¨oglich sind.
200
12.1. Pretty Good Privacy (PGP) Schließlich wird die Nachricht standardm¨aßig komprimiert, um dann mit dem erzeugten Schl¨ussel und dem Initialisierungsvektor mit Hilfe von IDEA im CFB-Modus chiffriert zu werden. Wir kommen noch einmal auf die o¨ ffentlichen Schl¨ussel zur¨uck. Die verteilte Schl¨usselverwaltung ist eines der interessantesten Konzepte von PGP. Es gibt keine Zentren zur Schl¨usselverwaltung. Damit werden z.B. m¨ogliche Zugriffe von staatlichen Organen oder anderen Organisationen auf die Schl¨ussel vermieden. Stattdessen wird ein sogenanntes Web of Trust (Vertrauensgeflecht oder Netz des Vertrauens) aufgebaut. Jeder Benutzer erzeugt und verteilt seinen eigenen o¨ ffentlichen Schl¨ussel. Es geht darum zu beweisen, daß der o¨ ffentliche Schl¨ussel von Alice tats¨achlich von Alice stammt und nicht von Oskar untergeschoben wurde, um die Identit¨at von Alice vorzut¨auschen. Die Benutzer unterzeichnen ihre o¨ ffentlichen Schl¨ussel gegenseitig. Es wird dadurch eine Gemeinschaft von PGP-Benutzern geschaffen. Wie dies geschieht und welches Vertrauen dabei herrschen kann, soll im folgenden beschrieben werden. Bob k¨onnte zum Beispiel Alice seinen o¨ ffentlichen Schl¨ussel direkt auf einer Diskette aush¨andigen. Zu Hause m¨ochte Alice diesen Schl¨ussel ihrem Schl¨usselring zuf¨ugen. PGP fragt sie, ob sie ihn unterzeichnen will. In diesem Fall berechnet PGP den MD5Fingerabdruck des Schl¨ussels. Diesen hat Alice vielleicht auf einer Visitenkarte von Bob erhalten, auch kann sie sich bei Bob noch einmal danach telefonisch erkundigen. Im positiven Fall fragt PGP noch einmal an, ob Alice wirklich sicher ist, daß der zu unterzeichnende Schl¨ussel tats¨achlich zu Bob geh¨ort, und ob Alice ihn zertifizieren will. Wird dies best¨atigt, dann wird nach Eingabe der Paßphrase mit Hilfe von Alice privatem RSA-Schl¨ussel Bobs o¨ ffentlicher Schl¨ussel (zusammen mit der Schl¨ussel-ID) unterzeichnet. Das bedeutet, daß die Signatur Bobs o¨ ffentlichem Schl¨ussel zugef¨ugt wird. Wenn sp¨ater Alice Bobs Schl¨ussel an andere Personen weitergeben will, dann u¨ bergibt sie das gesamte Zertifikat, zu dem auch ihre Signatur des Schl¨ussels geh¨ort. Schließlich wird Alice noch gefragt, ob sie Bob zutraut, andere o¨ ffentliche Schl¨ussel f¨ur sie zu beglaubigen. Darauf kann Alice nur eine der folgenden vier Antworten geben: (1) Ich weiß es nicht. (2) Nein. (3) Manchmal. (4) Ja, immer. Diese Antworten werden in einem Feld des Schl¨usselzertifikats im Schl¨usselring aufbewahrt, jedoch nicht an andere Personen weitergegeben. Gelegentlich kann es auch gute Gr¨unde geben, sp¨ater die Stufe des Vertrauens f¨ur eine bestimmte Person zu a¨ ndern. Diese M¨oglichkeit wird von PGP unterst¨utzt. Abh¨angig von der Stufe des Vertrauens verh¨alt sich PGP auf unterschiedliche Weise bei der eventuellen Hinzunahme weiterer von Bob signierter Schl¨ussel, die Alice erh¨alt, in den Schl¨usselring. Ist die Antwort (1), so wird Alice jedes Mal gefragt, wenn ein von Bob signierter Schl¨ussel in den Schl¨usselring eingetragen werden soll. Bei der Antwort (2) wird die entsprechende Signatur ignoriert. Vielleicht gibt es ja noch Signaturen anderer Personen. Wenn die Antwort (3) lautet und f¨ur denselben Schl¨ussel eine weitere Signatur einer Person vorliegt, f¨ur die ebenfalls die Antwort (3) gegeben wurde, so wird dies von PGP bei der Default-Konfiguration von PGP (man kann hier andere Einstellungen vornehmen) als genau so gut wie die Antwort (4) angesehen, also als genau so gut wie die Signatur einer einzigen immer vertrauensw¨urdigen Person (auch hier sind andere Einstellungen m¨oglich). In diesen beiden F¨allen wird die Signatur (bzw. die Signaturen) verifiziert. Im positiven Fall wird der 201
12. Vermischtes neue Schl¨ussel als g¨ultig angesehen.
Bild 12.1.1: Das Web of Trust Wir sehen also, daß jeder Teilnehmer Zertifikate, also o¨ ffentliche Schl¨ussel zusammen mit ihren Signaturen an weitere Benutzer weitergeben kann. Ob die Empf¨anger diese Schl¨ussel f¨ur authentisch halten, h¨angt davon ab, wer sie signiert hat. Wenn Alice von Bob einen von ihm signierten Schl¨ussel von Charles erh¨alt und sie Bob voll vertraut, so tr¨agt PGP diesen Schl¨ussel als g¨ultig in Alice Schl¨usselring ein, sie wird auch gefragt, ob sie Charles zutraut, andere o¨ ffentliche Schl¨ussel zu beglaubigen, aber sie selbst muß ihn nicht signieren. Trotzdem kann sie dies, wenn sie es m¨ochte und von der Authentizit¨at u¨ berzeugt ist, ebenfalls tun. Wenn der Schl¨ussel von unbekannten, von nur einer Person der Vertrauensstufe (3), von nicht vertrauensw¨urdigen Personen oder gar nicht beglaubigt wurde, wird Alice von PGP gewarnt, sie hat aber die M¨oglichkeit, den Schl¨ussel als g¨ultig anzusehen und ihn zu signieren. Ein Schl¨ussel kann also eine ganze Reihe von Signaturen haben. Trotzdem sollte man sich von einer Vielzahl von Signaturen unbekannter Benutzer nicht beeindrucken lassen. Man kann sie nicht verifizieren. Sie k¨onnten auch gef¨alscht sein. Es wird empfohlen, daß man selbst seinen eigenen Schl¨ussel signiert. Anderenfalls k¨onnte etwa Oskar die Schl¨ussel-ID austauschen. Damit kann er zwar direkt nichts anfangen, aber der Schl¨ussel ist verdorben und f¨uhrt bei Weitergabe nur zur Verwirrung. Mit einem signierten Schl¨ussel ist dies nicht m¨oglich. Ein Schwachpunkt dieses Systems ist die Schl¨usselr¨ucknahme. Man kann nicht sicherstellen, daß ein kompromittierter Schl¨ussel von jemanden nicht doch verwendet wird. Falls Alice privater Schl¨ussel gestohlen wird, kann sie zwar ein Schlu¨ sselr¨ucknahmezertifikat losschicken, aber ob dies auch alle Personen erreicht, die ihr Schl¨usselzertifikat in ihrem Schl¨usselring haben, ist fraglich. Somit kann es zu, allerdings nur lokalen, St¨orungen in dem System kommen. Bild 12.1.1 Beispiel f¨ gibt ein ur ein Netz des Vertrauens aus der Sicht von Alice an. besagt, daß den Schl¨ussel von signiert hat. Die Zahlen in den Jeder Pfeil
202
12.2. Key-Escrow-Systeme K¨astchen bedeuten die Stufe des Vertrauens, die Alice diesen Personen zumißt. Die mit PGP gekennzeichneten K¨astchen geben an, daß die Schl¨ussel der betreffenden Personen durch das PGP-Programm in Alice Rechner automatisch als g¨ultig angesehen werden. Bei den anderen Personen ist das nicht der Fall, in diesen F¨allen muß Alice aufgrund irgendwelcher anderer Kriterien eine eigene Entscheidung treffen. Es gibt in PGP auch einen Wert f¨ur die Zertifikationstiefe, das heißt anschaulich f¨ur die maximale Anzahl von Personen auf einem Weg im obigen Bild, die Schl¨ussel durch ihre Beglaubigung einf¨uhren d¨urfen, ohne daß Alice sie explizit als g¨ultig akzeptieren muß. Dieser Wert kann ge¨andert werden. Wird er zum Beispiel auf 1 gesetzt, so w¨urde im obigen Beispiel das Zertifikat von Henrike von PGP nicht mehr automatisch anerkannt. Alice m¨ußte also daf¨ur selbst die Entscheidung treffen.
12.2 Key-Escrow-Systeme Im April 1993 startete der Pr¨asident der USA eine Technologie-Initiative, die unter anderem mit den Namen Escrowed Encryption Standard (EES) sowie Clipper- und CapstoneChip verbunden ist. Diese Initiative soll eine kryptologisch sichere Sprachen- und Daten¨ubertragung erm¨oglichen, jedoch mit der Einschr¨ankung, daß bei Bedarf Beh¨orden Zugriff zum geheimen Schl¨ussel haben. Dies geschieht durch Schl u¨ sselhinterlegung (Key Escrow), und zwar eines f¨ur den Chip spezifischen Schl¨ussels, mit dem der jeweilige Sitzungsschl¨ussel dechiffriert werden kann. Bevor wir darauf im einzelnen eingehen, betrachten wir den zugrundeliegenden symmetrischen Verschl¨usselungsalgorithmus Skipjack. Skipjack ist eine iterative Blockchiffrierung, wobei die Klar- und Chiffretextbl¨ocke eine L¨ange von 64 Bits haben. Die Schl¨ussell¨ange betr¨agt 80 Bits. Der Algorithmus kann in den Modi ECB, CBC, OFB oder 1-, 8-, 16- oder 32-Bit-CFB verwendet werden (siehe Abschnitt 4.3). Eine einzelne Ver- oder Entschl¨usselungsoperation besteht aus 32 Runden. ¨ Uber den Aufbau von Skipjack war bis zum 23.6.1998 weiter nichts bekannt. Skipjack wurde n¨amlich von der NSA entwickelt und unterlag zun¨achst der Geheimhaltung. Der Algorithmus durfte nur in nicht-analysierbarer“ Hardware (tamper-proof-chips) unterge” bracht werden, und zwar zum einen im Clipper-Chip f¨ur Telefon und Fax und zum anderen im Capstone-Chip f¨ur den Datenverkehr (eingebaut in die Fortezza-Karte f¨ur Notebooks). Es soll (angeblich) nicht m¨oglich sein, die Geheimnisse des Chips auszulesen oder sonstwie an sie heranzukommen. Eine Gruppe von Kryptologen erhielt Einsicht in den Algorithmus, doch ihre Ergebnisse ergaben keine Angriffspunkte. Das ist jedoch f¨ur die allgemeine ¨ Offentlichkeit wenig u¨ berzeugend, falls nicht jeder den Algorithmus einsehen darf. Diese restriktive Politik wurde heftig kritisiert. Schließlich wurde dieser Kritik nachgegeben und der Algorithmus vom US-Verteidigungsministerium deklassifiziert“ und im Internet ” ver¨offentlicht [99]. 1994 wurde vom US-amerikanischen National Institute for Standards and Technology (NIST) der EES ver¨offentlicht [68], der den Skipjack-Algorithmus benutzt und im Clipperoder Capstone-Chip implementiert wurde. Jeder EES-Chip erh¨alt bei seiner Fertigung (1) eine eindeutige Identifikationsnummer ID mit einer L¨ange von 32 Bits, mit der jedem Benutzer der entsprechende EES-Chip zugeordnet werden kann, (2) einen Familienschl¨ussel mit einer L¨ange von 80 Bits, der f¨ur jeden Chip in miteinander kommunizierenden Ger¨aten gleich ist und von der NIST geheimgehalten wird, der L¨ange 80 Bits, der in Abh¨angigkeit von zwei (3) einen speziellen Chipschl¨ussel
203
12. Vermischtes
zuf¨allig gew¨ahlten Schl¨usselkomponenten und mit erzeugt wird. Der Chip wird so gefertigt, daß alle Daten und Algorithmen zerst¨ort werden, wenn jemand versucht, den Chip auf irgendeine Weise auszulesen. Wenn nun das NIST einen EES-Chip an einen Benutzer vergibt, werden dessen Personalien zusammen mit der Identifikationsnummer ID des Chips und jeweils einer der beiden Schl¨usselkomponenten an zwei Treuh¨ander u¨ bergeben, bei denen es sich um das NIST selbst und das US Department of Treasure (Finanzministerium) handelt. Wenn durch einen Gerichtsbeschluß autorisierte Ermittler an die Treuh¨ander herantreten, um zum Beispiel den Telefonverkehr einer verd¨achtigten Person zu u¨ berwachen, dann geben die Treuh¨ander die entsprechenden Schl¨usselkomponenten heraus, so daß die Ermittler daraus den Chipschl¨ussel berechnen k¨onnen. Will nun Alice (mit der Identifikationsnummer ID ) mit Bob eine vertrauliche Kommunikation beginnen, dann vereinbaren sie zun¨achst einen speziellen Sitzungsschl¨ussel . Dies kann z.B. unter Benutzung eines asymmetrischen Verfahrens geschehen. Alice Chip verschl¨usselt mit Hilfe des Chipschl¨ussels und bringt ihn in einem Feld von 128 Bits unter, dem Law Enforcement Access Field (LEAF). Dieses LEAF wird zusammen mit dem Initialisierungsvektor IV zu Beginn der Kommunikation erzeugt und u¨ bertragen. Blaze [13] hat durch allgemein zug¨angliche Informationen und Experimente herausgefunden, daß das LEAF f¨ur den Benutzer Alice ( ) die Form
LEAF
besitzt. Dabei ist (1) ID die 32-Bit-Identifikationsnummer des Chips von Alice, die Skipjackverschl¨usselung des Sitzungsschl¨ussels mit Hilfe des (2) Chipschl¨ussels (80 Bits), (3) eine 16-Bit-Pr¨ufsumme, die durch eine geheime Funktion berechnet wird und vom Sitzungsschl¨ussel abh¨angt, , dem Initialisierungsvektor IV und wahrschein lich auch von (4) die Skipjackverschl¨usselung unter Benutzung des Familienschl¨ussels . Wie l¨auft eine geheime Kommunikation zwischen Alice und Bob ab?
Protokoll 12.2.1 (EES-Kommunikation) schicken (ggf. mit Bob ein Telefongespr¨ach (1) Alice m¨ochte Bob eine Nachricht f¨uhren). Sie handelt mit ihm einen Sitzungsschl¨ussel aus. (2) Alice gibt in ihren Chip ein. Der Chip berechnet einen initialen Vektor (Alice kann nicht selbst IV erzeugen, dies wird durch die Arbeitsweise des Chips verhindert) und schließlich ein LEAF wie oben angegeben. (3) Alice sendet das LEAF zusammen mit dem IV an Bob. (4) LEAF und IV werden in Bobs EES-Chip eingegeben. Das Programm des Chips berechnet mit Hilfe des Familienschl¨ussels das Tripel
(5) Bob gibt den Schl¨ussel in seinen Chip ein. . Sie wird mit der dritten Kompo(6) Bobs Chip berechnet die Pr¨ufsumme nente des Tripels verglichen. Bei Nicht¨ubereinstimmung bricht Bobs Chip die Arbeit ab. 204
12.2. Key-Escrow-Systeme
Stimmen beide Werte u¨ berein, wird LEAF
als korrekt akzeptiert. Bobs Chip darf dann mit dem Schl¨ussel Nachrichten dechiffrieren. zu . (7) Alice Chip chiffriert die Nachricht
. (8) Bobs Chip berechnet den Klartext
Das folgende Protokoll gibt an, wie die Kommunikation zwischen Alice und Bob von staatlich autorisierten Ermittlern abgeh¨ort werden kann. Protokoll 12.2.2 (Abh¨orung des EES-Datenverkehrs) (1) Die Ermittler erwirken eine richterliche Verf¨ugung, den Datenverkehr zwischen Alice und Bob abzuh¨oren. (2) Die Ermittler legen diese Verf¨ugung den Treuh¨andern vor, die ihnen daraufhin die zu Alice gespeicherten Informationen und insbesondere die Schl¨usselkomponenten und aush¨andigen. (3) Die Ermittler berechnen den Chipschl¨ussel ab. . (4) Die Ermittler fangen LEAF , IV und (5) Die Ermittler berechnen mit dem Familienschl¨ussel das Tripel
bestimmen sie anschließend den Sitzungsschl¨ussel
(6) Die Ermittler berechnen den Klartext durch
. Mit Hilfe des Chipschl¨ussels
Seit der Einf¨uhrung des Escrowed Encryption Standard wurde dieses Verfahren in der ¨ Offentlichkeit heftig und kontrovers diskutiert. Schwerwiegende Kritik an der Technik stammt von Blaze [13], auf die wir hier zum Teil eingehen wollen. Beim ersten von Blaze angegebenen Angriff (LEAF-R¨uckkopplung) sind sich Alice und Bob einig, die Ermittler auszutricksen. Bevor Bob ein LEAF von Alice erh¨alt, ist seinem Chip der bereits zuvor ausgehandelte Sitzungsschl¨ussel bekannt. Bobs Chip kann mit diesem Sitzungsschl¨ussel ein LEAF erzeugen, wobei er allerdings einen anderen initialen Vektor erh¨alt als Alice. Bob bricht die Aktion ab und geht auf Empfang u¨ ber. Alice sendet LEAF nicht mit, und Bob bietet seinem Chip das von ihm selbst erzeugte LEAF an. Es ist ein g¨ultiges LEAF mit dem Sitzungsschl¨ussel , das einen von Bobs Chip berechneten Initialisierungsvektor IV benutzt hat. Folglich kann Bobs Chip mit der Dechiffrierung beginnen. Dabei ist es jedoch ein Problem, daß die initialen Vektoren von Alice und Bobs Chip verschieden sind. Je nach verwendetem Chiffriermodus (siehe Abschnitt 4.3) gibt es verschiedene L¨osungen, einen erfolgreichen Datenverkehr durchf¨uhren zu k¨onnen. (1) Wenn Alice und Bob im ECB-Modus arbeiten, spielt der IV keine Rolle. Dieser Modus wird jedoch im allgemeinen als zu unsicher angesehen. (2) Benutzen beide den CBC-Modus, so wird durch einen falschen IV nur der erste 64Bit-Block falsch dechiffriert, da der CBC-Modus selbstsynchronisierend ist (siehe Seite 65). Alice und Bob vereinbaren, daß der erste Block keine Bedeutung hat. Die eigentliche Kommunikation beginnt erst mit dem zweiten Block.
205
12. Vermischtes (3) Ein a¨ hnliches Verhalten ergibt sich bei Verwendung des CFB-Modus (siehe auch Seite 66). (4) Nur im OFB-Modus bewirkt ein falscher IV ein v¨olliges Durcheinander (siehe Seite 67). Falls Bob seinen Chip nur im OFB-Modus betreiben kann, dann sendet er seinen IV an Alice, die ihren Chip im ECB-Modus betreibt und die OFB-Chiffrierung extern per Software realisiert. Dieser Angriff kann zun¨achst sehr einfach aufgrund der Tatsache unterbunden werden, daß Bobs Chip zun¨achst das LEAF mit dem Familienschl¨ussel dechiffriert und dann unter Benutzung des eigenen Chipschl¨ussels den Sitzungsschl¨ussel zu berechnen versucht. Ein Gelingen dieser Rechnung bedeutet, daß das LEAF von dem Chip selbst erzeugt wurde. Der Chip k¨onnte so programmiert sein, daß er, falls er diesen Sachverhalt feststellt, seine Arbeit einstellt. In diesem Fall kauft sich Bob einen zweiten Chip und bietet dem zweiten das von dem ersten Chip berechnete LEAF an. Da der zweite Chip nichts von dem ersten weiß, ist der Angriff gerettet. Der zweite Angriff geht von der Situation aus, daß Bob unter fremder Kontrolle arbeitet und daher den Chip nicht mit LEAF-R¨uckkopplung verwenden kann. Ein richtiges LEAF, das ja den Sitzungsschl¨ussel enth¨alt, kann Alice nicht senden. Sie muß unabh¨angig von dem tats¨achlich verwendeten Sitzungsschl¨ussel ein LEAF erzeugen, das von Bobs Chip in Schritt (6) von Protokoll 12.2.1 als korrekt akzeptiert wird. Der Chip kann dabei weder auf Alice Identifikationsnummer ID noch auf ihren Chipschl¨ussel zur¨uckgreifen. Es wird jedoch ausgenutzt, daß die Pr¨ufsumme nur 16 Bits lang ist. Der Betrug erfolgt nach dem folgenden Protokoll.
Protokoll 12.2.3 (1) Alice und Bob handeln einen Sitzungsschl¨ussel aus. (2) Alice gibt in ihren Chip ein und erh¨alt einen initialen Vektor IV. Sie bricht die Arbeit des Chips ab. (3) Alice schaltet ihren Chip auf Empfang und bietet ihm , IV und ein zuf¨alliges LEAF an.
(4) Alice Chip berechnet LEAF . (5) Der Chip berechnet die Pr¨ufsumme und vergleicht sie mit den letzten 16 Bits von . (6) Bei Nicht¨ubereinstimmung wird die Arbeit des Chips abgebrochen und mit Schritt (3) erneut gestartet. (7) Bei akzeptiertem LEAF schickt Alice dieses anstelle des richtigen an Bob. (8) Bobs Chip akzeptiert nach Eingabe von das LEAF, und Alice Nachricht wird dechiffriert.
Wenn hier Ermittler Nachrichten abfangen wollen, so erzeugen sie aus dem falschen LEAF mit Hilfe von einen zuf¨alligen Sitzungsschl¨ussel, mit dem sie die Nachricht nicht dechiffrieren k¨onnen.
Da die Pr¨ufsumme nur 16 Bits lang ist, gibt es insgesamt verschiedene ¨ m¨ogliche Pr¨ufsummen. Im Mittel geht die Uberpr¨ufung in Schritt (5) nach 32768 Versuchen ¨ positiv aus. Ein Capstone-Chip ben¨otigt etwa 38ms f¨ur die Uberpr¨ ufung eines LEAFs. Im Mittel dauert es damit 42 Minuten, bis ein zuf¨alliges, aber g¨ultiges LEAF gefunden wird. Soviel Zeit vergeht also zwischen dem Aushandeln des Sitzungsschl¨ussels und dem Beginn der Kommunikation. F¨ur ein Telefongespr¨ach ist dies allerdings im allgemeinen zuviel. 206
12.2. Key-Escrow-Systeme Neben der zu kleinen Pr¨ufsumme in einem EES-Chip gibt es auch weitere Einw¨ande. Aus rechtlichen Gr¨unden ist es nicht akzeptabel, daß die Ermittler jede weitere Nachricht von einem Absender abh¨oren und entschl¨usseln k¨onnen, wenn sie einmal durch richterliche Anordnung seine Schl¨usselkomponenten und damit den Chipschl¨ussel erhalten haben, denn die Legitimation zum Abh¨oren wird im allgemeinen zeitlich begrenzt sein. Ein weiterer Nachteil, diesmal aus der Sicht der Ermittler, ist es, daß der Empf¨anger einer Nachricht nicht identifiziert werden kann. He und Dawson [43] schlagen ein Verfahren vor, wo diese Nachteile beseitigt werden. Ein entsprechender Chip m¨ußte entwickelt werden. Die Pr¨ufsumme hat dabei 80 Bits, außerdem werden die Schl¨usselkomponenten von den Treuh¨andern niemals ausgegeben oder direkt kombiniert, sondern sie f¨uhren damit einige Rechnungen durch, deren Resultat sie an die Ermittler weitergeben. Ein solcher Chip erh¨alt bei seiner Herstellung unter anderem den Skipjackalgorithmus und eine Ein-Weg-Funktion (siehe Definition 6.2.3), die Werte von der L¨ange von 80 Bits liefert und o¨ ffentlich bekannt sein sollte, um das Vertrauen in das Verfahren zu vergr¨oßern. Außerdem erh¨alt er (1) eine eindeutige Identifikationsnummer ID mit einer L¨ange von 32 Bits, mit der jedem Benutzer ein entsprechender Chip zugeordnet werden kann, (2) einen Familienschl¨ussel mit einer L¨ange von 80 Bits, der f¨ur jeden Chip in miteinander kommunizierenden Ger¨aten gleich ist und geheimgehalten wird, (3) zwei zuf¨allig gew¨ahlte Schl¨usselkomponenten und mit einer L¨ange von jeweils 80 Bits, (4) ein 32-Bit-Register EID f¨ur die Identifikationsnummer des Empf¨angers, (5) ein 32-Bit-Register ZS f¨ur einen Zeitstempel. Der Chip wird wieder so gefertigt, daß alle Daten und Algorithmen zerst¨ort werden, wenn jemand versucht, den Chip auf irgendeine Weise auszulesen. Bei der Vergabe eines Chips werden die Personalien des Benutzers zusammen mit der Identifikationsnummer des Chips ver¨offentlicht. Damit entsteht ein Verzeichnis dieser Chips, mit dem jeder Sender einer Nachricht die Identifikationsnummer des Empf¨angers erfahren kann. Bei jeder Kommunikation muß im Register EID die Identifikationsnummer des Empf¨angers eingegeben werden. Das Register ZS ist an eine Uhr angeschlossen und beinhaltet das aktuelle Datum als Zeitstempel f¨ur die Verschl¨usselung. Jeder Treuh¨ander und erh¨alt zusammen mit der Identifikationsnummer jeweils die Schl¨usselkomponente bzw. und speichert diese Information. Wie bei Verwendung des Clipper- oder Capstone-Chips in Algorithmus 12.2.1 wird auch hier ein LEAF benutzt. F¨ur den Benutzer hat es die Form
LEAF
Dabei ist (1) ID die 32-Bit-Identifikationsnummer des Chips des Senders , (2) ID die 32-Bit-Identifikationsnummer des Chips des Empf¨angers , (3) das Datum des Tages, an dem die Nachricht verschl¨usselt wurde, die Skipjackverschl¨usselung des zuvor verabredeten Sitzungsschl¨ussels (4) (80 Bits), der durch mit Hilfe des Schl¨ussels bestimmt wird, eine 80-Bit-Pr¨ufsumme, (3) (4) die Skipjackverschl¨usselung unter Benutzung des Familienschl¨ussels .
207
12. Vermischtes Eine geheime Kommunikation mit einem solchen Chip l¨auft nach dem folgenden Protokoll ab. Protokoll 12.2.4 (Key-Escrow-Kommunikation nach He und Dawson) schicken. Sie handelt mit ihm einen Sitzungs(1) Alice m¨ochte Bob eine Nachricht schl¨ussel aus. (2) Alice gibt und ID in ihren Chip ein. Der Chip berechnet einen initialen Vektor (Alice kann nicht selbst IV erzeugen, dies wird durch die Arbeitsweise des Chips verhindert) und schließlich ein LEAF wie oben angegeben. (3) Alice sendet das LEAF zusammen mit dem IV an Bob. (4) LEAF und IV werden in Bobs Chip eingegeben. Das Programm des Chips berechnet mit Hilfe des Familienschl¨ussels das Quintupel
(5) Die zweite Komponente wird mit der Identifikationsnummer des Chips verglichen. Bei Nicht¨ubereinstimmung bricht der Chip seine Arbeit ab. in seinen Chip ein. (6) Bob gibt den Schl¨ussel . Sie wird mit der f¨unften (7) Bobs Chip berechnet die Pr¨ufsumme Komponente des Quintupels verglichen. Bei Nicht¨ubereinstimmung bricht der Chip die Arbeit ab. Stimmen beide Werte u¨ berein, wird das LEAF als korrekt akzeptiert. Bobs Chip darf mit dem Schl¨ussel Nachrichten dechiffrieren. zu . (8) Alice Chip chiffriert die Nachricht
(9) Bobs Chip berechnet den Klartext .
Das folgende Protokoll gibt an, wie die Kommunikation zwischen Alice und Bob von staatlich autorisierten Ermittlern abgeh¨ort werden kann. Protokoll 12.2.5 (Abh¨orung des Key-Escrow-Datenverkehrs nach He und Dawson) (1) Die Ermittler erwirken eine richterliche Verf¨ugung, den Datenverkehr zwischen Alice und Bob zur Zeit abzuh¨oren. (2) Die Ermittler legen diese Verf¨ugung den Treuh¨andern und vor. berechnet und den Wert , den sie jeweils an die Ermittler aush¨andigen. . (3) Die Ermittler berechnen ab. (4) Die Ermittler fangen das LEAF , IV und (5) Die Ermittler berechnen mit dem Familienschl¨ussel das Quintupel
bestimmen sie anschließend den Sitzungsschl¨ussel
. (6) Die Ermittler berechnen den Klartext durch Mit Hilfe des Schl¨ussels
Ein offensichtlicher Vorteil f¨ur die Ermittler gegen¨uber dem EES ist es hier, daß sie neben der Nachricht auch den Empf¨anger der Nachricht erfahren. Andererseits ist ihnen die Abh¨orung aber nur zur Zeit m¨oglich. 208
12.2. Key-Escrow-Systeme Auch bei dem Verfahren nach He und Dawson ist eine LEAF-R¨uckkopplung a¨ hn¨ lich den Uberlegungen Seite 206 m¨oglich. Zum Beispiel wird die Pr¨ufsumme durch von mit dem durch Bobs Chip bestimmten initialen Vektor IV berechnet. Auch hier k¨onnte, um diesen Angriff abzuwehren, Bobs Chip so programmiert sein, daß er u¨ berpr¨uft, ob er selbst den Sitzungsschl¨ussel berechnen kann, in welchem Fall er seine Arbeit einstellt. Der Chip bricht außerdem seine Arbeit ab, wenn seine Identifikationsnummer mit der des Senders u¨ bereinstimmt. Durch Kauf eines zweiten Chips f¨ur Bob l¨aßt sich auch hier der Angriff retten. Ist LEAF-R¨uckkopplung nicht m¨oglich, so ist im Gegensatz zum Clipper- oder Capstone-Chip ein Angriff entsprechend Protokoll 12.2.3 nicht durchzuf¨uhren, da die Pr¨ufsummen 80 Bits lang sind und so eine ersch¨opfende Suche wie in den Schritten (3) bis (6) des Protokolls 12.2.3 praktisch nicht erfolgreich sein kann. Bei beiden vorgestellten Verfahren (Protokoll 12.2.1 und Protokoll 12.2.4) ist ein gemeinsamer Betrug von Alice und Bob m¨oglich, wenn sie unbeobachtet handeln k¨onnen. Bei Inkaufnahme von Zeitverlust l¨aßt sich dieser verhindern. Dabei wird die in jedem LEAF enthaltene Pr¨ufsumme auch in Abh¨angigkeit von dem Chiffretext erzeugt. Sie hat die Gestalt . Dies setzt voraus, daß zum Beispiel in Protokoll 12.2.4 bereits in Schritt (2) der Klartext mit eingegeben wird. Da nicht beliebig lange Nachrichten bzw. Chiffretexte im Chip gehalten werden k¨onnen (insbesondere beim Telefonieren), muß der Text aufgeteilt werden in Abschnitte zu jeweils wenigen 64-Bit-Bl¨ocken, f¨ur die jeweils ein eigenes LEAF erzeugt werden muß. Bei nur einem Block w¨are dann nur die Verschl¨usselung im ECB-Modus m¨oglich. Die Ermittler k¨onnen wie in Protokoll 12.2.5 arbeiten, da f¨ur sie die Pr¨ufsumme keine Bedeutung hat. Wollte Bob jetzt ein LEAF f¨ur einen empfangenen Chiffretext auf seinem Chip erzeugen, so m¨ußte er neben bereits den Klartext kennen, damit sein Chip berechnen kann, was er zurauch Bestimmung einer passenden Pr¨ufsumme ben¨otigt. Eine LEAF-R¨uckkopplung ist also nicht m¨oglich. Wenn so auch einige Schwachstellen von Key-Escrow-Verfahren (hoffentlich) ausgebessert werden k¨onnen, so bleiben doch einige prinzipielle Probleme bestehen. Die Anwender m¨ussen sich auf die Sicherheit der Verfahren verlassen k¨onnen. Da sie jedoch die Funktionsweise dieser manipulationssicheren“ Chips nicht analysieren und u¨ berpr¨ufen k¨onnen, ” m¨ussen sie ganz der Integrit¨at der Chip-Hersteller und der NSA vertrauen. Daneben kann man nicht ausschließen, daß es mit einigem Aufwand doch gelingt, die Chips auszulesen. Wenn dies von den entsprechenden Personen, seien es nun Kriminelle oder staatliche Stellen, geheim gehalten wird, so k¨onnen sie mit entsprechenden Chips verschl¨usselte Nachrichten lesen. Außerdem muß man ganz den Treuh¨andern vertrauen. Da es sich dabei beim Clipper- oder Capstone Chip um US-Beh¨orden handelt, die sich m¨oglicherweise den W¨unschen von Polizei oder Geheimdienst zur Herausgabe der Schl¨usselkomponenten f¨ur eine bestimmte Person nicht immer widersetzen wollen, ist hier eine weitere Gefahr zu sehen. Durch eine Erh¨ohung der Anzahl der Treuh¨ander, vielleicht auch durch zus¨atzliche Einsetzung von unabh¨angigen Stellen wie Notaren oder B¨urgerrechtsbewegungen als Treuh¨ander, ließe sich vielleicht das Vertrauen erh¨ohen. Die Verteilung der Schl¨usselkomponenten k¨onnte dabei durch sogenannte Secret-Sharing-Verfahren erfolgen (siehe Abschnitt 3.7 in [96]). Trotzdem k¨onnten in einem entsprechenden politischen Umfeld auch diese Treuh¨ander direkt oder aufgrund willk¨urlicher richterlicher Anordnungen gezwungen werden, die Schl¨usselkomponenten herauszugeben. F¨ur Privatpersonen bringt die Benutzung eines Key-Escrow-Verfahrens u¨ berhaupt kei-
209
12. Vermischtes nen Vorteil. Es sind im Gegenteil bedrohliche Gef¨ahrdungen der Privatsph¨are zu bef¨urchten. Jeder kann ja einen EES-Chip ohne Gefahr verwenden, wenn er zun¨achst mit einem sicheren Verfahren, wie sie hier in der Vorlesung beschrieben wurden, seinen Text chiffriert, und ihn erst danach mit dem EES-Chip chiffriert. Auf der Empf¨angerseite muß nach der Dechiffrierung mit dem Chip der so gewonnene Text noch einmal mit dem sicheren Verfahren dechiffriert werden. Es ist also v¨ollig u¨ berfl¨ussig, den Chip zu verwenden. Wenn also der Staat die Benutzung von Key-Escrow-Chips durchsetzen will, dann muß er jede andere sichere Art der Chiffrierung verbieten. Jede abgeh¨orte Nachricht, die nicht lesbar ist, steht somit im Verdacht, zus¨atzlich anderweitig verschl¨usselt worden zu sein, so daß hier der Staatsanwalt schon in Aktion tritt. Nun sind aber genug unverschl¨usselte Daten vorstellbar, die nicht von vornherein einen klar lesbaren Text ergeben. Damit g¨abe es in dieser Situation viele Probleme. Der Gewinn dieses staatlichen Kryptologiemonopols l¨age darin, daß einigen Kriminellen das Handwerk gelegt werden k¨onnte. Sie w¨urden aber bald auf andere sichere Kommunikationskan¨ale ausweichen, den Nachteil h¨atten schließlich nur die normalen B¨urger, die mehr oder weniger unter der Beobachtung von Big Brother“ st¨unden. Zum Gl¨uck unterliegt in ” Deutschland die Kryptologie bis auf weiteres keiner Einschr¨ankung.
12.3 Ein Public-Key-Kryptosystem, das auf formalen Sprachen beruht F¨ur dieses von Salomaa ([94], siehe auch [91], [92], [95]) vorgeschlagene Kryptosystem wird als o¨ ffentlicher Chiffrierschl¨ussel ein T0L-System, das auf einem einfacheren DT0LSystem beruht, benutzt. Die Kenntnis von T0L- und DT0L-Systemen ist zum Verst¨andnis des folgenden nicht notwendig. Die Trapdoor-Information ist die Kenntnis, wie man das DT0L-Systems aus dem T0L-System wieder zur¨uckgewinnt. Ohne diese Information muß der Kryptoanalytiker das -vollst¨andige Wortproblem f¨ur T0L-Systeme l¨osen. Gegeben seien ein Alphabet und zwei Homomorphismen ). Es sei sowie ein (das Axiom des DT0L-Systems und . Dann definieren wir
Außerdem seien
und
r¨uckw¨arts deterministisch im folgenden Sinn. Es gelte
Dann muß
also auch , folgen. Es sei ein Alphabet, das wesentlich mehr Elemente als enth¨alt. Typischerweise enth¨alt zwei und etwa 200 Symbole. Es sei ein
Homomorphismus mit f¨ur , so daß f¨ur alle gilt. Es werden zwei Substitutionen und auf durch endliche, nichtleere Mengen f¨ur alle gew¨ahlt, so bildet das Quadrupel
definiert. Wird ein
210
12.3. Ein Kryptosystem mit formalen Sprachen
den o¨ ffentlichen Chiffrierschl¨ussel, wobei das Axiom des T0L-Systems ist. Der Klartext . Der Chiffretext ist dann ein beliebiges Wort aus sei nun ein Bin¨arwort
Der Klartext kann auch in Bl¨ocke von nicht unbedingt gleicher L¨ange eingeteilt werden, die jeweils nach dieser Methode chiffriert werden. Das ist insbesondere dann geeignet, wenn der Chiffretext zu lang wird. , das ein Der geheime Dechiffrierschl¨ussel wird durch das Quadrupel DT0L-System ist, und gebildet. Dabei ist die Trapdoor-Information. Falls bekannt ist,
kann das DT0L-System aus dem o¨ ffentlichen T0L-System berechnet werden. Da f¨ur alle gilt, erhalten wir zun¨achst
. Aus kann man f¨ur und alle schließlich f¨ur berechnen. der Chiffretext. Dann Wir betrachten die Dechiffrierung. Es sei folgt aufgrund von Weiter ist
Mit Hilfe des DT0L-Systems wird hieraus der Klartext gewonnen. Notwendig daf¨ur ist, der Klartext daß und r¨uckw¨arts deterministisch sind. Dann kann aus zur¨uckgewonnen werden. Das wird durch das folgende Beispiel verdeutlicht. Es sei . Die Homomorphismen und seien durch
und
definiert, wobei die Homomorphismen durch entsprechende Produktionen beschrieben sind. . F¨ur praktische Zwecke ist diese Man w¨ahle . Wir betrachten Menge viel zu klein. Die Abbildung wird durch
definiert. und werden als Abk¨ommlinge von und als Abk¨ommling von bezeichnet. und sind zus¨atzliche Symbole. und werden durch
und
definiert. So sind hier z. B. durch die Produktion die Produktionen von bzw. auf der linken Seite nach als endliche nichtleere Teilmengen von
mit
211
12. Vermischtes
bestimmt worden. Auf der rechten Seite einer Produktion von mit oder als linker Seite muß ein Abk¨ommling von von einem Abk¨ommling von gefolgt werden. Außerdem d¨urfen dazwischen beliebig viele zus¨atzliche Symbole oder eingef¨ugt werden. Es gilt z.B.
Nun kann man z.B., wie es oben f¨ur die Tabelle geschehen ist,
und ist, wird etwa gew¨ahlt. Der Schl¨ussel
w¨ahlen. Da Chiffretext
kann jetzt ver¨offentlicht werden. Aus dem gew¨ahlten Klartext 010 wird der
durch die Ableitung
erzeugt. Auch andere Alternativen w¨aren f¨ur denkbar. Ein Kryptoanalytiker wird bei einem derart kleinen o¨ ffentlichen Chiffrierschl¨ussel aus noch leicht den Klartext bestimmen k¨onnen. F¨ur die Dechiffrierung wird die geheime Trapdoor-Information benutzt. Dann kann berechnet werden, wobei bekannt ist, daß von der Form ist. Gesucht ist die Folge . Wir werden sehen, daß und r¨uckw¨arts deterministisch sind. Falls , und 1, bekannt sind und mit einem dieser die Gleichung gilt, dann ist und damit auch eindeutig bestimmt. kann sofort, bedingt durch die spezielle Gestalt von bzw. in unserem Beispiel, berechnet . Nun werden. Falls n¨amlich das Teilwort (bzw. ) enth¨alt, folgt (bzw. nehmen wir an, daß kein Teilwort bzw. enth¨alt. Jedes Wort , das aus dem Axiom abgeleitet wird, muß mit beginnen und immer ein Teilwort enthalten. Wegen kommt nicht in Frage. Wegen folgt
mit einem
¨ Aus diesen Uberlegungen ergibt sich, daß aus der Index und mit eindeutig zu bestimmen sind. Danach wird diese Prozedur wiederholt. Dies zeigt, daß und r¨uckw¨arts deterministisch sind. Speziell wird der obige Chiffretext betrachtet. Wir erhalten
Da ein Teilwort von ist, folgt . F¨ur ergibt sich
weder
212
noch
ein Teilwort von
ist, ergibt sich
und
mit
. Da
12.3. Ein Kryptosystem mit formalen Sprachen und damit schließlich
und
. Der ermittelte Klartext lautet 010.
Die Dechiffrierung ist beendet Falls im Klartext dezimale Notation verwendet werden soll, werden 10 Homomorphismen bis und 10 Substitutionen bis ben¨otigt. Ein nur-Chiffretext-Angriff“ ist ” mit großer Wahrscheinlichkeit erfolglos, denn es ist unwahrscheinlich, aus dem o¨ ffentlichen Schl¨ussel die geheime Abbildung zu gewinnen. Der Nachteil dieser Methode liegt darin, daß der Chiffretext sehr lang werden kann. Die Homomorphismen m¨ussen also so gew¨ahlt werden, daß dies nicht vorkommt. Andererseits muß dabei immer die Eindeutigkeit der schnellen Dechiffrierung erf¨ullt sein. Nicht immer ist beides gleichzeitig m¨oglich. Offensichtlich kann dies Verfahren nicht f¨ur die Senderauthentizit¨at verwendet werden. Man kann zeigen, daß das Finden der Trapdoor-Information ein -vollst¨andiges Problem ist (siehe [51]). Vor Eintreffen von irgendwelchem Chiffretext kann man hier, anders als beim Brechen des Merkle-Hellman-Knapsacks, das System nicht brechen. Andererseits kann aus einem abgefangenen Kryptotext der L¨ange der Klartext durch einen Algorithmus mit Zeitbedarf berechnet werden, wobei eine ziemlich große Konstante ist (siehe [50]). Die Konstruktion des Algorithmus erfolgt mit Hilfe der Automatentheorie. Einige weitere Ausf¨uhrungen zu diesem Kryptosystem befinden sich in dem Buch von Salomaa [93].
213
12. Vermischtes
214
Anhang: H¨aufigkeitstabellen Buchstabe
mit Umlautersetzung
a b c d e f g h i j k l m n o p q r s t u v w x y z a¨ o¨ u¨ ß
6,43 1,85 3,26 5,12 17,74 1,56 2,69 5,22 7,60 0,23 1,40 3,49 2,75 10,01 2,39 0,64 0,01 6,98 6,88 5,94 4,27 0,64 1,73 0,02 0,04 1,10 -
H¨aufigkeit in % Deutsch mit mit Uml.-ers. mit Umlauten Umlauten u. Satz- und u. Satz- und Leerzeichen Leerzeichen 6,03 5,14 4,80 1,89 1,48 1,50 3,33 2,61 2,65 5,21 4,09 4,16 16,64 14,19 13,26 1,59 1,25 1,27 2,74 2,15 2,18 5,32 4,17 4,24 7,75 6,08 6,18 0,24 0,19 0,19 1,42 1,12 1,13 3,56 2,79 2,84 2,80 2,20 2,23 10,21 8,01 8,13 2,17 1,92 1,73 0,65 0,51 0,52 0,01 0,01 0,01 7,11 5,58 5,67 6,04 5,51 4,81 6,06 4,75 4,83 3,70 3,41 2,95 0,65 0,51 0,52 1,77 1,39 1,41 0,02 0,01 0,02 0,04 0,03 0,03 1,12 0,88 0,90 0,52 0,42 0,27 0,22 0,65 0,51 0,49 0,39 20,01 20,31
Englisch
8,17 1,49 2,78 4,25 12,70 2,23 2,02 6,09 6,97 0,15 0,77 4,03 2,41 6,75 7,51 1,93 0,08 5,99 6,33 9,06 2,76 0,98 2,36 0,15 1,97 0,07 -
mit Satz- und Leerzeichen 6,60 1,21 2,25 3,43 10,26 1,80 1,63 4,92 5,63 0,12 0,62 3,25 1,94 5,45 6,06 1,56 0,10 4,84 5,11 7,31 2,23 0,79 1,91 0,12 1,59 0,06 19,25
Tabelle 1: H¨aufigkeit der einzelnen Buchstaben (das Symbol steht f¨ur weitere Zeichen (s.u.), mit Umlautersetzung bedeutet: a¨ = ae, o¨ = oe, u¨ = ue, ß = ss)
Die Daten f¨ur Englisch stammen aus [5]. Die deutschen Daten sind von uns hier wie auch in den weiteren Tabellen aus jeweils denselben u¨ berwiegend literarischen Texten berechnet worden. Ziffern sind in jedem Fall u¨ berlesen worden. In der dritten und vierten Spalte sind auch Leer- und Satzzeichen, Zeilenwechselzeichen usw. gez¨ahlt und unter zusammengefaßt worden. Durch die verschiedenen Arten der Z¨ahlung wurden f¨ur die erste Spalte 224826 Symbole, f¨ur die zweite 220558, f¨ur die dritte 281052 und die vierte 276784 Symbole ber¨ucksichtigt.
215
Anhang: H¨aufigkeitstabellen In den beiden folgenden Tabellen werden Umlaute als a¨ = ae, o¨ =oe, u¨ = ue, der Buchstabe ß wird als ss ber¨ucksichtigt. Sonstige Symbole werden nicht gez¨ahlt. Die Tabellen beruhen also auf der ersten Spalte (Deutsch) bzw. der f¨unften Spalte (Englisch) von Tabelle 1.
Gruppe e, n i, r, s, a, t h, d, u, l, c, m, g, o, b, w, f, k, z p, v, j, y, x, q
Anteil der Buchstaben dieser Gruppe an einem Text 27,75% 33,83% 36,84% 1,58%
Tabelle 2 Buchstabengruppen im Deutschen
Gruppe e, t a, o, i, n, s, h, r d, l, c, u, m, w, f, g, y, p, b v, k, j, x, q, z
Anteil der Buchstaben dieser Gruppe an einem Text 21,76% 47,81% 28,23% 2,20%
Tabelle 3 Buchstabengruppen im Englischen
In den Tabellen 2 und 3 sind die Buchstaben gem¨aß ihrem Auftreten in vier Gruppen eingeteilt. In der ersten Gruppe sind die sehr h¨aufigen Buchstaben e und n bzw. t, in der zweiten befinden sich die Buchstaben, deren H¨aufigkeit noch relativ groß (d.h. etwa ) ist; in der dritten Gruppe sind die Buchstaben zusammengefaßt, die eine kleine, aber noch merkliche H¨aufigkeit haben, w¨ahrend in der letzten Gruppe die vernachl¨assigbaren Buchstaben aufgef¨uhrt sind.
216
Anhang: H¨aufigkeitstabellen
Bi-und Digrammtabellen fur ¨ Deutsch ohne Berucksichtigung ¨ von Leerzeichen usw. In den folgenden beiden Tabellen sind die Umlaute und der Buchstabe ß wie u¨ blich ersetzt worden. Leerzeichen, Satzzeichen, Ziffern, Zeilenwechselzeichen usw. wurden u¨ berlesen. So kann z.B. ein Paar entstehen aus dem letzten Buchstaben eines Wortes mit dem ersten Buchstaben des folgenden Wortes. Insgesamt wurden 224826 Buchstaben des Textes gez¨ahlt. Paar er en ch te nd ei de ie in es ge ne un ic st an se re be he di ns au ss sc si el ue le da ht as ra
H¨aufigkeit 3,89 3,74 2,97 2,21 2,11 2,07 2,06 1,87 1,87 1,45 1,41 1,26 1,24 1,19 1,11 1,09 1,08 1,00 0,96 0,95 0,90 0,86 0,85 0,85 0,84 0,84 0,79 0,75 0,75 0,74 0,73 0,73 0,71
Paar ng ha eh ni ed nn rs em na et rd al me wa ar it ae ma ri is li we eb ta nt us hr eg nu wi la zu sa
H¨aufigkeit 0,70 0,67 0,67 0,64 0,64 0,62 0,62 0,62 0,60 0,55 0,55 0,55 0,54 0,54 0,53 0,53 0,53 0,52 0,51 0,51 0,50 0,49 0,48 0,47 0,45 0,44 0,44 0,44 0,43 0,42 0,42 0,42 0,41
Paar ll rt eu ru ac ee tt td on ti or mi at ab rn hi ig ts lt nk hn vo ke ag fe uf nw ih tu ur ec so
H¨aufigkeit 0,41 0,40 0,39 0,39 0,37 0,36 0,35 0,35 0,35 0,35 0,35 0,35 0,34 0,34 0,34 0,33 0,32 0,32 0,32 0,32 0,31 0,31 0,31 0,31 0,31 0,31 0,31 0,31 0,30 0,30 0,30 0,29
Paar oe ef ck rg ew mm tz hl um ho ea ka im nm rw gt tr nh nz sd rm ls nb ve ze am ro oc rk ol ut du
H¨aufigkeit 0,28 0,28 0,28 0,28 0,27 0,26 0,26 0,26 0,26 0,25 0,25 0,25 0,24 0,24 0,24 0,24 0,24 0,23 0,23 0,23 0,23 0,23 0,22 0,22 0,22 0,22 0,22 0,22 0,21 0,21 0,20 0,20
Tabelle 4 Bigrammh¨aufigkeiten in Prozenten (Deutsch)
217
Anhang: H¨aufigkeitstabellen Tripel H¨aufigkeit ein 1,14 ich 1,12 der 0,92 sch 0,84 und 0,81 die 0,74 nde 0,70 cht 0,67 ine 0,57 den 0,55 end 0,54 che 0,52 ens 0,51 ers 0,51 ten 0,50 ter 0,44 gen 0,42 ste 0,38 nge 0,37 das 0,37 sie 0,37 ere 0,35 ach 0,34 erd 0,34 sse 0,34 hen 0,31 ede 0,31 and 0,31 ies 0,30 ind 0,30 sei 0,30
Tripel H¨aufigkeit nic 0,30 ber 0,30 nen 0,29 ebe 0,29 ndi 0,29 nun 0,28 ass 0,26 rde 0,26 auf 0,26 rei 0,26 sic 0,26 ern 0,26 war 0,25 tte 0,25 ner 0,25 enn 0,25 sen 0,25 ene 0,25 aus 0,24 ert 0,24 ena 0,24 lic 0,23 abe 0,23 era 0,22 ege 0,22 ann 0,22 nte 0,22 hte 0,22 lle 0,22 her 0,22 ver 0,22
Tripel H¨aufigkeit ben 0,21 mit 0,21 uer 0,21 man 0,21 enw 0,21 enu 0,21 sta 0,20 ren 0,20 ess 0,20 tes 0,20 wie 0,20 est 0,20 esi 0,20 eri 0,20 ese 0,20 lte 0,19 rau 0,19 eit 0,19 hre 0,19 och 0,19 dem 0,19 erw 0,19 tei 0,19 ied 0,18 ges 0,18 chd 0,18 uch 0,18 rst 0,18 lei 0,18 erg 0,18 nda 0,18
Tabelle 5 Trigrammh¨aufigkeiten in Prozenten (Deutsch)
218
Tripel H¨aufigkeit nsi 0,18 eni 0,18 ung 0,18 cha 0,17 chs 0,17 wei 0,17 eng 0,17 ist 0,17 nei 0,17 ndd 0,17 tun 0,17 nsc 0,17 mme 0,17 tde 0,17 enk 0,17 ing 0,16 rge 0,16 ehr 0,16 erh 0,16 ang 0,16 erk 0,16 nds 0,16 nst 0,16 chw 0,16 ier 0,15 hat 0,15 ted 0,15 men 0,15 ger 0,15 ige 0,15
Anhang: H¨aufigkeitstabellen
Bi-und Digrammtabellen fur ¨ Deutsch mit Umlauten und ohne Beruck¨ sichtigung von Leerzeichen usw. In den folgenden beiden Tabellen wurden Leerzeichen, Satzzeichen, Ziffern, Zeilenwechselzeichen usw. u¨ berlesen. So kann z.B. ein Paar entstehen aus dem letzten Buchstaben eines Wortes mit dem ersten Buchstaben des folgenden Wortes. Insgesamt wurden 220558 Buchstaben des Textes gez¨ahlt. Im Vergleich zu den Tabellen 4 und 5 stellen wir fest, daß sich trotz der zus¨atzlich ber¨ucksichtigten Umlaute die Reihenfolge der meisten Paare und Tripel kaum a¨ ndert und auch die jeweiligen Werte nur geringf¨ugig abweichen. Eine Ausnahme stellt jedoch vor allem ss dar, der Wert in Tabelle 4 ist 0,85, in Tabelle 6 dagegen nur noch 0,34. Paar er en ch te nd ei de ie in ge es ne un ic an st re be he se di ns au sc si le da ht el ng ra
H¨aufigkeit 3,65 3,59 3,03 2,26 2,15 2,11 2,10 1,91 1,91 1,43 1,32 1,29 1,27 1,21 1,11 1,05 1,02 0,98 0,97 0,95 0,92 0,88 0,87 0,85 0,82 0,76 0,75 0,75 0,74 0,71 0,66
Paar ni nn rs ed ha em na as rd al me eh ar it ri li we wa ma nt is hr et wi ta ll zu rt nu sa eg
H¨aufigkeit 0,66 0,64 0,63 0,62 0,61 0,60 0,58 0,57 0,56 0,56 0,55 0,55 0,54 0,54 0,52 0,51 0,50 0,49 0,48 0,46 0,45 0,45 0,43 0,43 0,43 0,42 0,42 0,40 0,40 0,39 0,39
Paar ac eb ee td la tt on ti or mi us at ab rn eu ss hi ig ts lt nk hn ke ag fe vo uf nw ih ur so
H¨aufigkeit 0,37 0,36 0,36 0,36 0,36 0,36 0,36 0,36 0,36 0,36 0,35 0,35 0,35 0,35 0,34 0,34 0,34 0,33 0,33 0,33 0,33 0,32 0,32 0,32 0,32 0,32 0,31 0,31 0,31 0,30 0,29
Paar ck rg ew ru mm tz hl um ea ef im nm rw gt tr ka tu nh nz rm ls nb ve ze am oc rk ol ut uc rb
H¨aufigkeit 0,28 0,28 0,27 0,27 0,26 0,26 0,26 0,26 0,25 0,25 0,25 0,24 0,24 0,24 0,24 0,24 0,24 0,23 0,23 0,23 0,23 0,23 0,23 0,22 0,22 0,22 0,21 0,21 0,21 0,20 0,20
Tabelle 6 Bigrammh¨aufigkeiten in Prozenten (Deutsch mit Umlauten) 219
Anhang: H¨aufigkeitstabellen Tripel H¨aufigkeit ein 1,16 ich 1,14 der 0,94 sch 0,85 und 0,82 die 0,75 nde 0,71 cht 0,68 ine 0,58 den 0,56 che 0,53 ten 0,51 ens 0,51 end 0,49 ers 0,48 ter 0,45 gen 0,43 nge 0,38 sie 0,37 ach 0,35 ste 0,34 hen 0,32 and 0,31 ind 0,31 erd 0,31 nic 0,30 ber 0,30 ere 0,30 ede 0,30 nen 0,30
Tripel H¨aufigkeit sei 0,30 ndi 0,29 nun 0,29 das 0,29 rde 0,27 auf 0,27 rei 0,26 war 0,26 ies 0,26 tte 0,26 ner 0,26 ern 0,26 sic 0,25 lic 0,24 ene 0,23 abe 0,23 ena 0,23 aus 0,23 ann 0,22 nte 0,22 hte 0,22 lle 0,22 her 0,22 ver 0,22 ben 0,22 mit 0,22 man 0,21 enw 0,21 era 0,21 ren 0,21
Tripel H¨aufigkeit tes 0,21 wie 0,20 enn 0,20 esi 0,20 sen 0,20 lte 0,20 rau 0,20 hre 0,20 eit 0,20 enu 0,20 och 0,20 dem 0,19 ege 0,19 ebe 0,19 tei 0,19 eri 0,19 erw 0,19 ied 0,19 ese 0,19 ert 0,19 ges 0,19 chd 0,19 est 0,18 sse 0,18 sta 0,18 uch 0,18 rst 0,18 lei 0,18 nda 0,18 nsi 0,18
Tripel H¨aufigkeit ung 0,18 chs 0,18 wei 0,17 ist 0,17 nei 0,17 ndd 0,17 tun 0,17 nsc 0,17 mme 0,17 tde 0,17 ing 0,17 eni 0,17 rge 0,17 erg 0,17 enk 0,16 ang 0,16 nds 0,16 cha 0,16 nst 0,16 chw 0,16 ier 0,16 hat 0,16 ted 0,15 erk 0,15 men 0,15 ige 0,15 ger 0,15 gte 0,15 nne 0,15 run 0,15
Tabelle 7 Trigrammh¨aufigkeiten in Prozenten (Deutsch mit Umlauten)
220
Anhang: H¨aufigkeitstabellen
Bi-und Digrammtabellen fur ¨ Deutsch mit Berucksichtigung ¨ von Leerzeichen usw. In den folgenden beiden Tabellen sind die Umlaute und der Buchstabe ß wie u¨ blich ersetzt worden. Leerzeichen, Satzzeichen, Zeilenwechselzeichen usw. wurden ber¨ucksichtigt und unter zusammengefaßt. Es kann so z.B kein Paar normaler Buchstaben entstehen, das aus dem letzten Buchstaben eines Wortes und dem ersten Buchstaben des folgenden Wortes besteht. Ziffern wurden u¨ berlesen. Insgesamt wurden 281052 Symbole des Textes gez¨ahlt.
Paar
n er en e ch r d s t te de ei in ie s e nd ge a w un ic h d st an i u es
H¨aufigkeit 4,19 3,50 3,06 2,89 2,71 2,37 2,28 2,28 1,87 1,61 1,59 1,58 1,50 1,49 1,49 1,33 1,28 1,14 1,09 1,08 1,04 0,99 0,95 0,92 0,88 0,87 0,86 0,86 0,85 0,81
Paar ne m se be h m he di au sc g re n b si ue ht le as ss da el k ha v z f al wa ar
H¨aufigkeit 0,78 0,76 0,75 0,75 0,72 0,69 0,69 0,68 0,68 0,67 0,66 0,63 0,61 0,59 0,58 0,58 0,58 0,57 0,56 0,55 0,54 0,54 0,53 0,47 0,46 0,44 0,44 0,43 0,43 0,42
Paar eh it ae ra ng et we is nn me li l ma em ni hr g wi ll zu us la l nt ri ac on or eb at
H¨aufigkeit 0,42 0,42 0,41 0,41 0,40 0,40 0,39 0,39 0,39 0,39 0,38 0,38 0,37 0,36 0,35 0,34 0,34 0,34 0,32 0,32 0,32 0,31 0,31 0,30 0,29 0,29 0,28 0,28 0,28 0,27
Paar tt ab t rt mi ta ig lt vo ag ke ih uf f ns na u sa eg ur ec fe ck so oe ru r hi rs eu
H¨aufigkeit 0,27 0,27 0,27 0,27 0,26 0,26 0,26 0,26 0,25 0,25 0,24 0,24 0,24 0,24 0,24 0,24 0,24 0,24 0,24 0,23 0,23 0,23 0,22 0,22 0,22 0,21 0,21 0,21 0,21 0,20
Tabelle 8 Bigrammh¨aufigkeiten in Prozenten (Deutsch, mit zus¨atzlichen Zeichen)
221
Anhang: H¨aufigkeitstabellen
Tripel H¨aufigkeit en 2,09 er 1,74 1,18 de 0,92 ie 0,90 ich 0,90 ch 0,86 ein 0,86 n 0,82 nd 0,77 der 0,71 te 0,70 un 0,70 d 0,68 sch 0,67 und 0,64 di 0,62 die 0,59 in 0,59 cht 0,53 ei 0,50 da 0,50 si 0,50 t 0,47 e 0,46 den 0,43 er 0,42 ine 0,42 au 0,38 ge 0,38 ten 0,37 ht 0,37
Tripel H¨aufigkeit es 0,36 n d 0,36 n s 0,36 sc 0,35 che 0,35 wa 0,33 gen 0,33 r 0,32 ha 0,32 s 0,31 as 0,30 e s 0,30 sie 0,29 w 0,29 das 0,29 wi 0,29 ter 0,28 ste 0,28 zu 0,28 ach 0,27 se 0,27 nde 0,27 em 0,26 st 0,26 r s 0,26 e 0,26 we 0,25 u 0,25 hen 0,24 be 0,24 ma 0,24 in 0,24
Tripel H¨aufigkeit st 0,24 a 0,23 ih 0,23 ni 0,23 mi 0,23 nn 0,23 vo 0,23 ber 0,23 an 0,23 ne 0,22 sse 0,22 it 0,21 e d 0,21 nen 0,21 auf 0,21 r d 0,21 al 0,21 nic 0,21 war 0,20 e e 0,20 nge 0,20 tte 0,20 sei 0,20 ss 0,19 and 0,19 sen 0,19 sic 0,19 aus 0,19 so 0,19 ass 0,18 ar 0,18 ebe 0,18
Tripel H¨aufigkeit lic 0,18 abe 0,18 ers 0,18 ic 0,18 t d 0,18 i 0,18 an 0,18 n a 0,17 s 0,17 es 0,17 end 0,17 ver 0,17 mit 0,17 ann 0,17 ben 0,17 sa 0,17 lle 0,17 nte 0,16 uer 0,16 n w 0,16 her 0,16 wie 0,16 e a 0,16 n e 0,16 he 0,16 on 0,16 man 0,16 ve 0,16 uf 0,15 och 0,15 eit 0,15 ren 0,15
Tabelle 9 Trigrammh¨aufigkeiten in Prozenten (Deutsch, mit zus¨atzlichen Zeichen)
222
Anhang: H¨aufigkeitstabellen
Bi-und Digrammtabellen fur ¨ Deutsch mit Berucksichtigung ¨ von Umlauten, Leerzeichen usw.
Umlaute (¨a, o¨ , u¨ , ß) wurden ber¨ucksichtigt. Leerzeichen, Satzzeichen, Zeilenwechselzeichen usw. wurden ebenfalls gez¨ahlt und unter zusammengefaßt. Ziffern wurden u¨ berlesen. Es kann so z.B kein Paar normaler Buchstaben entstehen, das aus dem letzten Buchstaben eines Wortes und dem ersten Buchstaben des folgenden Wortes besteht. Insgesamt wurden 276784 Symbole des Textes gez¨ahlt. Im Vergleich zu den Tabellen 8 und 9 stellen wir fest, daß sich trotz der zus¨atzlich ber¨ucksichtigten Umlaute die Reihenfolge der meisten Paare und Tripel kaum a¨ ndert und auch die jeweiligen Werte nur geringf¨ugig abweichen. Eine Ausnahme stellt jedoch vor allem ss dar, der Wert in Tabelle 8 ist 0,55, ss ist jedoch in Tabelle 10 nicht mehr eingetragen.
Paar
n er en e ch r d s t te de ei in ie e nd s ge a w un ic h d an i st
H¨aufigkeit 4,25 3,55 2,86 2,76 2,75 2,41 2,32 2,32 1,89 1,64 1,61 1,60 1,53 1,51 1,51 1,30 1,16 1,15 1,11 1,09 1,06 1,00 0,96 0,93 0,89 0,88 0,87 0,82
Paar ne u m be h es m he di au se sc g re n b ht si le da k el v z f al as ar
H¨aufigkeit 0,79 0,79 0,77 0,76 0,73 0,70 0,70 0,70 0,69 0,69 0,68 0,68 0,67 0,64 0,62 0,60 0,59 0,58 0,58 0,54 0,54 0,50 0,46 0,45 0,44 0,44 0,43 0,43
Paar it ha ng we nn me wa li l ra ni hr g wi ma em is ll zu eh l nt et ri ac on or at
H¨aufigkeit 0,42 0,42 0,41 0,40 0,39 0,39 0,39 0,38 0,38 0,37 0,36 0,35 0,35 0,34 0,34 0,34 0,34 0,33 0,32 0,32 0,31 0,30 0,30 0,30 0,30 0,28 0,28 0,27
Paar tt ab t rt mi la ig lt vo ag ke ih f uf ns us u ur sa fe ta ck na so r hi rs
H¨aufigkeit 0,27 0,27 0,27 0,27 0,27 0,26 0,26 0,26 0,25 0,25 0,25 0,25 0,25 0,25 0,24 0,24 0,24 0,24 0,23 0,23 0,23 0,23 0,22 0,22 0,22 0,21 0,21
Tabelle 10 (Deutsch, mit Umlauten und zus¨atzlichen Zeichen)
223
Anhang: H¨aufigkeitstabellen
Tripel H¨aufigkeit en 2,11 er 1,69 1,20 de 0,94 ie 0,91 ich 0,91 ch 0,88 ein 0,87 n 0,83 nd 0,79 der 0,72 te 0,71 un 0,71 d 0,69 sch 0,68 und 0,65 di 0,63 die 0,60 in 0,60 cht 0,54 ei 0,51 da 0,51 si 0,51 t 0,47 e 0,47 den 0,43 er 0,43 ine 0,42 au 0,39 ge 0,39 ten 0,38
Tripel H¨aufigkeit ht 0,37 es 0,37 n d 0,37 n s 0,37 sc 0,36 che 0,35 gen 0,34 r 0,33 s 0,32 as 0,31 wa 0,30 e s 0,30 sie 0,30 w 0,29 wi 0,29 ha 0,29 ter 0,28 ach 0,28 se 0,28 zu 0,28 nde 0,27 em 0,27 st 0,27 r s 0,26 e 0,26 we 0,25 hen 0,25 ste 0,25 be 0,25 u 0,24 in 0,24
Tripel H¨aufigkeit ih 0,24 a 0,24 ni 0,24 mi 0,23 nn 0,23 ber 0,23 an 0,23 vo 0,23 ne 0,22 it 0,22 ma 0,22 das 0,21 e d 0,21 nen 0,21 st 0,21 r d 0,21 auf 0,21 al 0,21 nic 0,21 war 0,21 e e 0,21 nge 0,20 tte 0,20 sei 0,20 and 0,19 sic 0,19 so 0,19 ar 0,18 lic 0,18 abe 0,18 ic 0,18
Tripel H¨aufigkeit aus 0,18 t d 0,18 i 0,18 an 0,18 ver 0,17 n a 0,17 es 0,17 mit 0,17 ann 0,17 ben 0,17 lle 0,17 ers 0,17 nte 0,17 n w 0,16 sa 0,16 her 0,16 wie 0,16 n e 0,16 he 0,16 on 0,16 e a 0,16 man 0,16 ve 0,16 uf 0,16 och 0,16 ren 0,15 eit 0,15 zu 0,15 sen 0,15
Tabelle 11 Trigrammh¨aufigkeiten in Prozenten (Deutsch, mit Umlauten und zus¨atzlichen Zeichen)
224
Anhang: H¨aufigkeitstabellen
Bi-und Digrammtabellen fur ¨ Englisch ohne Berucksichtigung ¨ von Leerzeichen usw. Leerzeichen, Satzzeichen, Ziffern, Zeilenwechselzeichen usw. wurden u¨ berlesen. So kann z.B. ein Paar entstehen aus dem letzten Buchstaben eines Wortes mit dem ersten Buchstaben des folgenden Wortes.
Paar th he an in er re on es ti at st en nd or to nt ed is ar ou of te it ha se et al ri ng sa hi le so
H¨aufigkeit 3,15 2,51 1,72 1,69 1,54 1,48 1,45 1,45 1,28 1,24 1,21 1,20 1,18 1,13 1,11 1,10 1,07 1,06 1,01 0,96 0,94 0,94 0,88 0,84 0,84 0,80 0,77 0,77 0,75 0,75 0,72 0,72 0,71
Paar as ea no ne ec io rt co be di li ra ma ta ce ic ll na ro ot tt ve ns ur me wh ly ch el eo ho da ut
H¨aufigkeit 0,67 0,65 0,65 0,64 0,64 0,63 0,63 0,59 0,58 0,57 0,57 0,57 0,56 0,56 0,55 0,55 0,55 0,54 0,54 0,53 0,53 0,53 0,51 0,49 0,48 0,48 0,47 0,46 0,46 0,46 0,46 0,45 0,45
Paar ca om em ft pq si us ew ss ei pe ac de dt ee il rs ct fo do ie ni os wi ow la un ab ds ep ge im ts
H¨aufigkeit 0,44 0,44 0,43 0,42 0,42 0,42 0,42 0,41 0,41 0,40 0,40 0,39 0,39 0,39 0,39 0,39 0,39 0,38 0,38 0,37 0,37 0,37 0,37 0,37 0,36 0,34 0,33 0,32 0,32 0,32 0,32 0,32 0,32
Paar wa ap nc sh su tr we op pl ke ld lo mo po ul yo ay if sw mi pp bu fe av sp ef go oo ht tu
H¨aufigkeit 0,32 0,31 0,31 0,30 0,30 0,30 0,30 0,29 0,29 0,28 0,28 0,28 0,28 0,28 0,28 0,28 0,27 0,27 0,27 0,26 0,26 0,25 0,25 0,24 0,24 0,23 0,23 0,23 0,22 0,22
Tabelle 12 Bigrammh¨aufigkeiten in Prozenten (Englisch, nach O. Phelps Meaker)
225
Anhang: H¨aufigkeitstabellen Tripel H¨aufigkeit the 3,53 ing 1,11 and 1,02 ion 0,75 tio 0,75 ent 0,73 ere 0,69 her 0,68 ate 0,66 ver 0,64 ter 0,63 tha 0,62 ati 0,59 for 0,59 hat 0,55 ers 0,54 his 0,52 res 0,50 ill 0,47 are 0,47 con 0,46 nce 0,45 all 0,44 eve 0,44 ith 0,44
Tripel H¨aufigkeit ted 0,44 ain 0,43 est 0,42 man 0,40 red 0,40 thi 0,40 ive 0,38 rea 0,38 wit 0,37 ons 0,37 ess 0,36 ave 0,34 per 0,34 ect 0,33 one 0,33 und 0,33 int 0,32 ant 0,32 hou 0,31 men 0,30 was 0,30 oun 0,30 pro 0,30 sta 0,30 ine 0,29
Tripel H¨aufigkeit whi 0,28 ove 0,28 tin 0,28 ast 0,28 der 0,28 ous 0,28 rom 0,28 ven 0,28 ard 0,28 ear 0,28 din 0,27 sti 0,27 not 0,27 ort 0,27 tho 0,26 day 0,26 ore 0,26 but 0,26 out 0,25 ure 0,25 str 0,25 tic 0,25 ame 0,24 com 0,24 our 0,24
Tripel H¨aufigkeit wer 0,24 ome 0,24 een 0,24 lar 0,24 les 0,24 san 0,24 ste 0,24 any 0,23 art 0,23 nte 0,23 rat 0,23 tur 0,23 ica 0,23 ich 0,23 nde 0,23 pre 0,23 enc 0,22 has 0,22 whe 0,22 wil 0,22 era 0,22 lin 0,22 tra 0,22
Tabelle 13 Trigrammh¨aufigkeiten in Prozenten (Englisch, aus [4])
226
Literaturverzeichnis [1] Adleman, L.: A Subexponential Algorithm for the Discrete Logarithm Problem with Applications to Cryptography. Proc. IEEE 20th Annual Symp. on Found. of Comp. Sci. 1979, 55–60. [2] Bach, E.: How to generate factored random numbers. SIAM J. Computing 12 (1988), 179–193. [3] Barany, I. und und F¨uredi, Z.: Mental Poker with Three or More Players. Technical Report, Mathematical Institute of the Hungarian Academy of Sciences 1983. [4] Bauer, F. L.: Kryptologie. Springer, Berlin 1993. [5] Beker, H. und Piper, F.: Cipher Systems. Northwood Books, London 1982. [6] Bennett, C. H, Brassard, G., Breidbart, S. und Wiesner, S.: Quantum cryptography, or unforgeable subway tokens. In: CRYPTO’82. Plenum Press, New York 1982, 267–275. [7] Bennett, C. H. und Brassard, G.: An update on quantum cryptography, CRYPTO’84, Lecture Notes in Computer Science 196, Berlin 1985, 475–480. [8] Bennett, C. H., Brassard, G. und Ekert, A.: Quanten-Kryptographie. Spektrum Wissenschaft, Dezember 1992, 96–104. [9] Biham, E. und Shamir, A.: Differential Cryptanalysis of DES-like Cryptosystems. Journal of Cryptology 4 (1991), 3-72. [10] Biham, E. und Shamir, A.: Differential Cryptanalysis of the Full 16-round DES. In: Advances of Cryptology CRYPTO ’92, Lecture Notes in Computer Science 740, Springer, New York 1992, 487–496. [11] Blakley, B. und Blakley, G. R.: Security of Number Theoretic Public Key Cryptosystems Against Random Attack. Cryptologia 2 (1978), 305–321, 3 (1979), 29–42, 3 (1979), 105–118. [12] Blakley, G. R. und Borosh, I.: Rivest-Shamir-Adleman Public Key Cryptosystems Do Not Always Conceal Messages. Comp. & Math. with Applic. 5 (1979), 169–178. [13] Blaze, M.: Protocol failure in the escrowed encryption standard, 2nd ACM Conference on Computer and Communications Security, ACM Press 1994, 59–67. [14] Blum, M.: Three Applications of the Oblivious Transfer: 1. Coin Flipping by Telephone, 2. How to Exchange Secrets, 3. How to Send Certified Electronic Mail. Dept. EECS, Univ. of California, Berkeley, Calif. 1981. [15] Blum, M. und Rabin, M. O.: How to Send Certified Electronic Mail. Dept. EECS, Univ. of California, Berkeley, Calif. 1981. [16] Bressoud, D. M.: Factorization and Primality Testing. Springer, New York 1989. 227
Literaturverzeichnis [17] Cook, S. A.: The complexity of theorem-proving procedures. Proc. 3rd Ann. ACM Symp. on Theory of Computing, ACM, New York 1971, 151–158. [18] Davida, G. I., Wells, D. L. und Kam, J. B.: A Database Encryption Scheme with Subkeys. TR-CS-78-8, Dept. of Electrical Eng. and Computer Science, The Univ. of Wisconsin, Milwaukee, Wis. 1979. [19] Denning, D. E.: Cryptography and Data Security. Addison-Wesley, Reading, Mass. 1982. [20] Dickson, L. E.: Einf¨uhrung in die Zahlentheorie. Teubner, Leipzig 1931. [21] Diffie, W.: Cryptograhic Technology: Fifteen Year Forecast. BNR Inc., Mountain View, Calif. 1981. [22] Diffie, W. und Hellman, M.: New Directions in Cryptography. IEEE Trans. on Info. Theory IT-22 (1976), 644–654. [23] Diffie, W. und Hellman, M.: Exhaustive Cryptanalysis of the NBS Data Encryption Standard. Computer 10 (1977), 74–84. [24] Diffie, W., Strawczynski, L., O’Higgins, B. und Steer, D.: An ISDN secure telephone unit. In: Proceedings, National Communications Forum 1987, Rosemont, IL, Sept. 28– 30, 41, book 1, National Engineering Consortium, Chicago 1987, 473–477. [25] Even, S., Goldreich, O. und Lempel, A.: A Randomized Protocol for Signing Contracts. Comm.ACM 28 (1985), 637–647. [26] Fiat, A., Shamir, A.: How to prove yourself: practical solutions to identification and signature problems. Proceedings of CRYPTO 86. Lecture Notes in Computer Science 263, Springer, New York 1987, 186–194. [27] Fortune, S. und Merritt, M.: Poker Protocols. In: Advances in Cryptology. Proceedings of CRYPTO 84. Lecture Notes in Computer Science 196, Springer, New York 1985, 454–464. [28] Franz, E. und Pfitzmann, A.: Einf¨uhrung in die Steganographie und Ableitung eines neuen Stegoparadigmas. Informatik-Spektrum 21(1998), 183–193. [29] Friedman, W. F.: Methods for the Solution of Running Key Ciphers. Riverbank Publication 16, Riverbanks Labs, Geneva, Ill. 1918. [30] Friedman, W. F.: The Index of Coincidence and Its Applications in Cryptography. Riverbank Publication 22, Riverbank Labs, Geneva, Ill. 1920. [31] Fumy, W. und Rieß, P.: Kryptographie. Entwurf, Einsatz und Analyse symmetrischer Kryptoverfahren. Oldenbourg, M¨unchen 1994. [32] Gaines, H. F.: Cryptanalysis. Dover, New York 1956. [33] Garey, M. R. und Johnson, D. S.: Computers and Intractability. A Guide to the Theory of NP-Completeness. Freeman and Company, San Francisco 1979. 228
Literaturverzeichnis [34] Garfinkel, S.: PGP: Pretty Good Privacy. O’Reilly & Associates, Inc., Sebastopol (CA) 1995. [35] General Services Administration: Telecommunications: Compatibility Requirements for Use of the Data Encryption Standard. Proposed Federal Standard 1026, General Services Administration Washington, D.C. 1977. [36] Goldwasser, Sh. und Micali, S.: Probabilistic Encryption & How To Play Mental Poker Keeping Secret All Partial Information. In: Proc. 14th Annual ACM Symp. on Theory of Computing 1982, 365–377. [37] Goldwasser, Sh., Micali, S. und Rackoff, C.: The knowledge complexity of interactive proof-systems. SIAM Journal of Computing 18(1989), 186–208. [38] Goldwasser, S., Micali, S. und Rivest, R.: A digital signature scheme secure against adaptive chosen-message attacks. SIAM J. Computing 17 (1988), 281–308. [39] Goldwasser, S., Micali, S. und Wigderson, A.: Proofs that yield nothing but their validity and a methodology of cryptographic protocol design. In: Proceedings of FOCS 86, 174–187. [40] Goldwasser, S., Micali, S. und Yao, A.: Strong signature schemes. In: Proc. 15th Ann. ACM Symp. on Theory of Computing 1983, 431–439. [41] Guillou, L. C., Quisquater, J.-J.: A paradoxical identity-based signature scheme resulting from zero-knowledge. In: CRYPTO 88, Lecture Notes in Computer Science 403, Springer, New York 1990, 216–231. [42] Hammer, C.: High Order Homophonic Ciphers. Cryptologia 5 (1981), 231–242. [43] He, J., Dawson, E.: A New Key Escrow Cryptosystem. In: Cryptography: Policy and Algorithms, Lecture Notes in Computer Science 1029, Springer, Berlin 1996, 105– 114. [44] Hellman, M. E.: An Extension of the Shannon Theory Approach to Cryptography. IEEE Trans. on Info. Theory IT-23 (1977), 289–294. [45] Hill, L. S.: Cryptography in an Algebraic Alphabet. Am. Math. Monthly 36 (1929), 306–312. [46] Hoffman, L. J.: Modern Methods for Computer Security and Privacy. Prentice-Hall, Englewood Cliffs 1977. [47] Hornfeck, B.: Algebra. de Gruyter, Berlin 1969. [48] Horster, P.: Kryptologie. Reihe Informatik 47. BI Wissenschaftsverlag, Mannheim 1985. [49] Kahn, D.: The code breakers. Macmillan, New York 1967. [50] Kari, J.: A crytanalytic observation concerning systems based on language theory. Discrete Applied Mathematics 21 (1988), 265–268. 229
Literaturverzeichnis [51] Kari, J.: Observations concerning a public-key cryptosystem based on iterated morphisms. Theoretical Computer Science 66 (1989), 45–53. [52] Kasiski, F. W.: Die Geheimschriften und die Dechiffrirkunst. Mittler & Sohn 1863. [53] Knuth, D.: The Art of Computer Programming, Volume B / Seminumerical Algorithms, Second Edition. Addison-Wesley, Reading 1980. [54] Koblitz, N.: A Course in Number Theory and Cryptography. Springer, New York 1987. [55] Konfelder, L. M.: On the Signature Reblocking Problem in Public-Key Cryptosystems. Comm. ACM 21 (1978). [56] Kranakis, E.: Primality and Cryptography. Teubner - Wiley, Stuttgart - Chichester 1986. [57] Lai, X. und Massey, J. L.: A Proposal for a New Block Encryption Standard. In: EUROCRYPT’ 90, LNCS , Springer, Berlin 1990, 389–404. [58] Lempel, A.: Cryptology in Transition. Computing Surveys 11 (1979), 285–303. [59] Lenstra, H. W.: Integer Programming with a Fixed Number of Variables. Mathematics of Operations Research 8 (1983), 538–548. [60] Lipton, R. J.: How to Cheat at Mental Poker. Comp. Sci. Dept., Univ. of Calif., Berkeley, Calif. 1979. [61] Lipton, R. J.: An Improved Power Encryption Method. Comp. Sci. Dept., Univ. of Calif., Berkeley, Calif. 1979. [62] MasterCard, VISA: SET Secure Electronic Transaction Specification, Book 1: Business Description, Book 2: Programmar’s Guide, Book 3: Formal Protocoll Definitions. Version 1.0, May 31, 1997 (http://www.setco.org/set specifications.html). [63] Menezes, A.J., van Oorschot, P.C. und Vanstone, S.A.: Handbook of applied cryptography. CRC Press, Boca Raton 1997. [64] Merkle, R. C. und Hellman, M. E.: Hiding Information and Signatures in Trapdoor Knapsacks. IEEE Trans. on Info. Theory IT-24 (1978), 525–530. [65] Micali, S., Shamir A.: An improvement of the Fiat-Shamir identification and signature scheme. In: CRYPTO 88, Lecture Notes in Computer Science 403, Springer, New York 1990, 244–247. [66] Naor, M. und Yung, M.: Universal one-way hash functions and their cryptographic applications. In: Proc. 21st Ann. ACM Symp. on Theory of Computing 1989, 33–43. [67] National Bureau of Standards: Data Encryption Standard, FIPS PUB 46, National Bureau of Standards, Washington, D.C. 1977. [68] National Institute for Standards and Technology: Escrowed Encryption Standard. NIST FIPS PUB 185, U.S. Depoartment of Commerce, Febr. 1994. 230
Literaturverzeichnis [69] Niemi, V. und Renvall, A.: Cryptographic protocols and voting. In: Results and Trends in Theoretical Computer Science. Lecture Notes in Computer Science 812, Springer, New York 1994, 307–316. [70] Nurmi, H.: Cryptographic Protocols for Auctions and Bargaining. In: Results and Trends in Theoretical Computer Science. Lecture Notes in Computer Science 812, Springer, New York 1994, 317–324. [71] Nurmi, H. und Salomaa, A.: A Cryptographic Approach to the Secret Ballot. Behavioral Science 36 (1991), 34–40. [72] Nurmi, H. und Salomaa, A.: Cancellation and reassignment of votes in secret ballot elections. European Journal of Political Economy 9 (1993), 427–435. [73] Nurmi, H., Salomaa, A. und Santean, L.: Secret Ballot Elections in Computer Networks. Computers & Security 10 (1991), 553–560. [74] OConner, L. J. und Seberry, J.: Cryptographic Significance of the Knapsack Problem. Aegean Park Press, Laguna Hills, Calif. 1988. [75] O’Higgins, B., Diffie, W., Strawczynski, L. und de Hoog, R.: Encryption and ISDN — a natural fit. In: Proceedings International Switching Symp., Phoenix, AZ, March 16–20, 1987, A11.4.1–7. [76] Ohta, K., Okamoto, T.: A modification of the Fiat-Shamir scheme. In CRYPTO 88, Lecture Notes in Computer Science, Springer 403, New York 1990, 232–243. [77] Peleg, S. und Rosenfeld, A.: Breaking Substitution Ciphers Using a Relaxation Algorithm. CACM 22 (1979), 598–605. [78] Pohlig, S. und Hellman, M.: An Improved Algorithm for Computing Logarithms over and its Cryptographic Significance. IEEE Trans. on Info. Theory IT-24 (1978), 106–110.
[79] Quisquater, J.-J., M., M., M, Guillou, L., M., A., G., A., G., S.: How to Explain ZeroKnowlwdge Protocols to Your Children. In: Advances in Cryptology, Crypto’89 (Ed. Gilles Brassard): , Lecture Notes in Computer Science 435, Springer-Verlag, Berlin 1989, 628–631. [80] Rabin, M. O.: Probabilistic Algorithms. In: J. F. Traub (Ed.): Algorithms and Complexity - New Directions and Recent Results. New York 1976. 21–39. [81] Rabin, M. O.: Digitalized Signatures and Public-Key Functions as Intractable as Factorization. MIT/LCS/TR-212, MIT Lab. for Computer Science, Cambridge, Mass., 1979. [82] Rabin, M. O.: Probabilistic Algorithms for Primality Testing. Journal of Number Theory 12 (1980), 128–138. [83] Rabin, M. O.: Exchange of Secrets. Dept. of Applied Physics, Harvard Univ., Cambridge, Mass. 1981. [84] Rademacher, H.: Lectures on Elementary Number Theory. Blaisdell, New York 1964. 231
Literaturverzeichnis [85] Renvall, A.: ANDOS: A simple protocol for secret selling of secrets. EATCS Bulletin 47 (1992), 200–205. [86] Rivest, R. L.: Remarks on a Proposed Crytanalytic Attack of the M.I.T. Public Key Cryptosystem. Cryptologia 2 (1978), 62–65. [87] Rivest, R. L.: A Description of a Single-Chip Implementation of the RSA Cipher. Lambda 1 (1980), 14–18. [88] Rivest, R. L., Shamir, A. und Adleman, L.: A Method for Obtaining Digital Signatures and Public-Key Cryptosystems. Comm. ACM 21 (1978), 120–126. [89] Rothkopf, M. H., Teisberg, Th. J. und Kahn, E. P.: Why Are Vickrey Auctions Rare? Journal of Political Economy 98 (1990), 94–109. [90] Rivest, R. L., Shamir, A. und Adleman, L.: Mental Poker. MIT Technical Report 1978. [91] Salomaa, A.: Trapdoors and protocols: recent trends in cryptography. In: H. Maurer ¨ (Ed.): Uberblicke Informationsverarbeitung 1984, BI Wissenschaftsverlag, Mannheim 1984, 275–320. [92] Salomaa, A.: Computation and Automata. Chapter 7. Cambridge University Press, Cambridge 1985. [93] Salomaa, A.: Public-Key Cryptography. Springer, Berlin 1990. [94] Salomaa, A. und Welzl, E.: A cryptographic trapdoor based on iterated morphisms. Manuskript 1983. [95] Salomaa, A. und Yu, Sh.: On a public-key cryptosystem based on iterated morphisms and substitutions. Theoretical Computer Science 48 (1986), 283–296. [96] Schneier, B.: Angewandte Kryptographie. Protokolle, Algorithmen und Sourcecode in C. Addison-Wesley, Bonn 1996.
Time/Space Tradeoff for certain NP[97] Schroeppel, R. und Shamir, A.: A Complete Problems. Proc. IEEE 20th Ann. Symp. on Found. of Computer Science 1979.
[98] Schuster, R., F¨arber, J. und Eberl, M.: Digital Cash. Zahlungssysteme im Internet. Springer, Berlin 1997. [99] Skipjack and KEA Algorithm Specifications, Version 2.0. Erh¨altlich auf der Webseite des National Institute of Standards and Technology, http://csrc.nist.gov/encryption/skipjack-kea.htm. [100] Sedlak, H.: Konzept und Entwurf eines Public-Key-Code Kryptographie-Prozessors. Diplomarbeit, TU Braunschweig 1985. [101] Sedlak, H.: The RSA cryptography processor. EUROCRYPT 87, Amsterdam 1987, Proceedings, Lecture Notes in Computer Science 304. 232
Literaturverzeichnis [102] Sedlak, H. und Golze, U.: An RSA cryptography processor. Microprocessing and Microprogramming 18 (1986), 583–590. [103] Shamir, A.: A Fast Signature Scheme. MIT/LCS/TM-107, MIT Lab. for Computer Science, Cambridge, Mass. 1978. [104] Shamir, A.: A polynomial time algorithm for breaking the basic Merkle-Hellman cryptosystem. Proc. 23rd IEEE Symp. on Found. of Computer Science 1982, 145–152. [105] Shamir, A., Rivest, R. L. und Adleman, L.: Mental Poker. In: D. E. Klarner (ed.): Mathematical Gardner, Wadsworth International 1981, 37–43. [106] Shannon, C. E.: A Mathematical Theory of Communication. Bell Syst. Tech. J. 27 (1948), 379–423 und 623–656. [107] Shannon, C. E.: Communication Theory of Secrecy Systems. Bell Syst. Tech. J. 28 (1949), 656–715. [108] Simmons, G. J. (Ed.): Contemporary Cryptology. The Science of Information Integrity. IEEE Press, New York 1992. [109] Singh, S.: Geheime Botschaften, Die Kunst der Verschl¨usselung von der Antike bis in die Zeiten des Internets. Carl Hanser Verlag, M¨unchen 2000. [110] Sinkov, A.: Elementary Cryptanalysis. Math. Assoc. Am. 1966. [111] Stinson, D. R.: Cryptography: Theory and Practice. CRC Press, Boca Raton, Florida 1995. [112] Tedrick, T.: Fair Exchange of Secrets (extended abstract). In: CRYPTO 1984. Lecture Notes in Computer Science 196 (1984), 434–438. [113] Tuchman, W.: Hellman Presents No Shortcut Solution to the DES. IEEE Spectrum 16 (1979), 40–41. [114] Vickrey, W.: Counter Speculation, Auctions and Competitive Sealed Tenders. Journal of Finance 16,8–37. [115] Wiener, M.J.: Cryptanalysis of short RSA secret exponents. IEEE Transactions on Information Theory 36(1990), 553–558. [116] W¨atjen, D.: Theoretische Informatik. Eine Einf¨uhrung. Oldenbourg, M¨unchen 1994. [117] Wobst, R.: Abenteuer Kryptologie. Methoden, Risiken und Nutzen der Datenverschl¨usselung. Addison-Wesley, Bonn 1997. [118] Yao, A. C.-C: Protocols for Secure Computations. Proc. of the 23rd IEEE Symp. on Found. of Computer Science 1982, 160–164.
233
Literaturverzeichnis
234
Index absolut sicher, 7 absolute Dichte, 5 absolute Rate, 5 ¨ Aquivokation, 6 Alberti, Leon Battista, 22 Altersvergleich-Protokoll, 154 anagraming, 16 ANDOS-Protokoll, 164 asymmetrische Chiffre, 4 Auktionen, 156 Authenzit¨atsanforderungen, 3 Beaufort-Chiffre, 24 Variante, 24 bedingte Entropie, 6 Blockchiffre, 62 Cipher-Block-Chaining, 64 Cipher-Feedback, 65 Electronic-Codebook, 62 mit Teilschl¨usseln, 68 Output-Feedback, 66 C¨asar-Chiffre, 2, 11, 13, 17 Capstone-Chip, 203 CBC, 64 CFB, 65 Chiffre, 1 uneingeschr¨ankt sicher, 2 asymmetrische, 4 Beaufort-Chiffre, 24 Variante, 24 berechnungs-sicher, 2 Blockchiffre, 62 C¨asar-Chiffre, 2, 11, 13, 17 DES, 37–60 Digital Signature Algorithm, 125 durch affine Transformation, 17, 19 durch polynomiale Transformation, 18 einfache Substitution, 16 ElGamal-Signaturverfahren, 119 verallgemeinertes, 124 El-Gamal-Verschl¨usselungsverfahren, 115
verallgemeinertes, 117 Exponentiationschiffre, 74 Pohlig-Hellman-Schema, 75 RSA-Schema, 76 Friedhofchiffre, 18 Hill-Chiffre, 37 homophone Substitution, 16, 21 IDEA, 61 Merkle-Hellman-Knapsack, 189–190 mit laufendem Schl¨ussel, 30 mit periodischer Substitution, 22 mit T0L-System, 210–213 Playfair-Chiffre, 36 Pohlig-Hellman-Schema, 75 polyalphabetische Substitution, 16, 22 Polygramm- Substitution, 16, 36 Produktchiffre, 37 Rabin-Schema, 151 RSA-Schema, 76 Shamir-Knapsack, 193–195 Skipjack, 203 Spaltentransposition, 15 Substitutionschiffre, 1, 10 symmetrische, 3 Transpositionschiffre, 1, 15 Vernam-Chiffre, 32 Verschiebechiffre, 17 Vigen`ere-Chiffre, 23 Zaun, 1 zuf¨allige, 12, 14 Chiffretext, 1 Chiffretextraum, 2 Chiffriertransformation, 2 chinesischer Restesatz, 48, 68 Cipher-Block-Chaining, 64 Cipher-Feedback, 65 Clipper-Chip, 203 Dechiffriertransformation, 2 DES, 13, 37–60 Dichte, 5 Digital Signature Algorithm, 125 digitale Signatur, 72, 91, 180 235
Index diskreter Logarithmus, 107 Der Algorithmus von Pohlig-Hellman, 108 Der Algorithmus von Shanks, 107 DSA, 125 duale Signatur, 92 ECB, 62 Eindeutigkeitsdistanz, 11, 16, 19, 24 einfache Substitution, 16 einfacher Knapsack, 187 L¨osung, 188 Einschreiben, Protokoll f¨ur, 149 Electronic-Codebook, 62 ElGamal-Signaturverfahren, 119 verallgemeinertes, 124 El-Gamal-Verschl¨usselungsverfahren, 115 verallgemeinertes, 117 ENIGMA, 38 Entropie, 4 bedingte, 6 Entscheidungsproblem, 175 Erste-Preis-Auktion (Protokoll), 158 Euklidischer Algorithmus, 45 Eulersche Funktion, 43 Exponentiation, schnelle, 41 Exponentiationschiffre, 74 Pohlig-Hellman-Schema, 75 RSA-Schema, 76 Fermat, Satz von, 44 Fingerabdruck, 91 Friedhofchiffre, 18 Geburtstagsangriff, 94 Geheimes Verkaufen von Geheimnissen (Protokoll), 164 Geheimhaltungsanforderungen, 3 Gesch¨aftsabschluß, 159 Graph-Isomorphismus-Problem, 185 H¨aufigkeitsverteilung (Tabellen), 20, 215–226 Hashfunktion, 91 Ein-Weg-Funktion, 93 kollisionsfrei, 92 Kompressionsfunktion, 93 MD5, 101 236
SHA-1, 102 stark kollisionsfrei, 93 von Chaum, van Heijst, Pfitzmann, 129 Zeitstempel, 128 Hill-Chiffre, 37 homophone Substitution, 16, 21 IDEA, 61 Informationsgehalt, 4 Inversenbildung, 45–46 ISDN-Telefone, sichere, 114 Kasiski-Methode, 28–30 Key-Escrow-Chiffrierung, 204 Abh¨orung, 205 nach He und Dawson, 208 LEAF-R¨uckkopplung, 205, 206 nach He und Dawson, 208 Klartext, 1 Klartextraum, 2 Knapsack-Problem, 175 0-1-Knapsack, 187 einfacher Knapsack, 187 L¨osung, 188 Trapdoor-Knapsack, 188 Koinzidenzindex, 26–28 Komplexit¨atsklassen , 175 , 175 Komplexit¨atstheorie, 175 Kompressionsfunktion, 93 kongruente Zahlen, 39 Kopf-Poker-Protokoll, 134 Kryptoanalyse, 2 Kryptoanalytiker, 2 Kryptographie, 1 kryptographisches System, siehe Kryptosystem Kryptologie, 2 Kryptosystem, 2 Authenzit¨atsanforderungen, 3 Chiffretextraum, 2 Chiffriertransformation, 2 Dechiffriertransformation, 2 DES, 13 Ein-Schl¨ussel-Kryptosysteme, 3 Geheimhaltungsanforderungen, 3
Index Klartextraum, 2 Public-Key-Kryptosystem, 2, 71–74 Authenzit¨at, 71 brechbarer vollst¨andiger Knapsack, 196 Brechen des Merkle-Hellman-Knapsacks, 190–193 Geheimhaltung, 71 Geheimhaltung und Authentizit¨at, 72 Merkle-Hellman-Knapsack zur Geheimhaltung, 189–190 Shamir-Knapsack zur Authentizit¨at, 193–195 Schl¨usselraum, 2 Zwei-Schl¨ussel-Kryptosysteme, 3 MD5, 101 Merkle-Hellman-Knapsack, 189–190 message digest, 91 modulare Arithmetik, 40
, Menge der nat¨urlichen Zahlen, 39 , 39 , Komplexit¨atsklasse, 175 -vollst¨andig, 176
Oblivious-Transfer-Protokoll, 137 allgemeines, 146 1-von-2, 144 OFB, 66 one-time-pad, 31 Output-Feedback, 66 , Komplexit¨atsklasse, 175 perfekte Geheimhaltung, 7, 9 PGP, 199–203 Web of Trust, 202 Playfair-Chiffre, 36 Pohlig-Hellman-Algorithmus, 108 Pohlig-Hellman-Schema, 75 polyalphabetische Substitution, 16, 22 Polygramm-Substitution, 16, 36 Pretty Good Privacy, 199–203 primitive Wurzel, 105, 111 Primzahlen sichere, 86, 111
starke, 85 Suche großer, 79 Produktchiffre, 37 Protokoll ANDOS, 164 digitale Signatur, 91 duale Signatur, 92 Erste-Preis-Auktion, 158 f¨ur sichere ISDN-Telefone, 114 f¨ur Wahlen ¨ Anderung der Stimme, 163 Stimmabgabe, 160 Verbesserung von falschen Zuordnungen, 162 Geheimes Verkaufen von Geheimnissen, 164 Gesch¨aftsabschluß, 159 Kopf-Poker, 134 Oblivious-Transfer-Protokoll, 137 allgemeines, 146 1-von-2, 144 Schl¨usselaustausch, 112 Schl¨usselverteilung, 113–114 SET payment authorization, 170 payment capture, 172 purchase request, 169 Vertragsunterzeichnungsprotokoll, 148 Werfen von M¨unzen, 143 Zero-Knowledge-Protokoll digitale Signatur, 180 Untergruppenelementproblem, 181 zum Nachweis der Kenntnis einer Quadratwurzel, 177 zum Nachweis eines Graphisomorphismus, 186 zur Dreif¨arbung eines Graphen, 182 zur Identifikation, 179 zum Altersvergleich, 154 zum Versenden von Einschreiben, 149 Zweite-Preis-Auktion, 159 Public-Key-Kryptosystem, 2, 71–74 Authenzit¨at, 71 brechbarer vollst¨andiger Knapsack, 196 237
Index Brechen des Merkle-Hellman-Knapsacks, 190–193 ElGamal-Signaturverfahren, 119 verallgemeinertes, 124 El-Gamal-Verschl¨usselungsverfahren, 115 verallgemeinertes, 117 Geheimhaltung, 71 Geheimhaltung und Authentizit¨at, 72 Merkle-Hellman-Knapsack zur Geheimhaltung, 189–190 mit T0L-System, 210–213 Rabin-Schema, 151 Authenzit¨at, 154 Geheimhaltung, 151 RSA-Schema, 76 Authenzit¨at, 77 Geheimhaltung, 76 Geheimhaltung und Authentizit¨at, 86 Shamir-Knapsack zur Authentizit¨at, 193–195 quadratische Kongruenz, 177 Quantenkryptographie, 32 Rabin-Schema, 151 Authenzit¨at, 154 Geheimhaltung, 151 Rate, 5 Redundanz, 5 reduzierte Menge der Reste modulo , 43 Replay, 63 Rest einer Zahl, 39 quadratischer Rest modulo , 134 reduzierte Menge der Reste modulo , 43 Restklasse modulo , 39 Restesatz, chinesischer, 48, 68 Restklasse modulo , 39 Rotormaschine, 37 ENIGMA, 38 RSA-Schema, 76 Angriffe gegen das RSA-Schema, 82–86 Authenzit¨at, 77 Geheimhaltung, 76 238
Geheimhaltung und Authentizit¨at, 86 Satz von Fermat, 44 Schl¨ussel, 1 Schl¨ussel¨aquivokation, 11 Schl¨usselaustauschprotokoll, 112 Schl¨usselaustauschsystem, 112 Schl¨usselraum, 2 Schl¨usselverteilung, Protokoll, 113–114 schnelle Exponentiation, 41 SET, 169–173 payment authorization-Protokoll, 170 payment capture-Protokoll, 172 purchase request-Protokoll, 169 SHA-1, 102 Shamir-Knapsack, 193–195 sichere Primzahl, 86, 111 Signatur, 91 duale, 92 Skipjack, 203 Spaltentransposition, 15 starke Primzahl, 85 Steganographie, ii Substitutionschiffre, 1, 10 einfache, 16 homophone, 16, 21 periodische, 22 polyalphabetische, 16, 22 Polygramm-, 16, 36 Suche großer Primzahlen, 79 symmetrische Chiffre, 3 Transpositionschiffre, 1, 15 Trapdoor-Knapsack, 188 Untergruppenelementproblem, 181 Vernam-Chiffre, 32 Verschiebechiffre, 17 Vertragsunterzeichnungsprotokoll, 148 Vigen`ere-Chiffre, 23 Vigen`ere-Tableau, 25 Wahlprotokoll ¨ Anderung der Stimme, 163 Stimmabgabe, 160 Verbesserung von falschen Zuordnungen, 162 Web of Trust, 202
Index Zaun, 1 Zeitstempel, 128 Zero-Knowledge-Protokoll digitale Signatur, 180 Untergruppenelementproblem, 181 zum Nachweis der Kenntnis einer Quadratwurzel, 177 zum Nachweis eines
Graphisomorphismus, 186 zur Dreif¨arbung eines Graphen, 182 zur Identifikation, 179 Zertifikat, 167 Zertifikate, 169 , Restklasse modulo , 39 zuf¨allige Chiffre, 12, 14 Zweite-Preis-Auktion (Protokoll), 159
239