Verschlüsselungsverfahren



Ähnliche Dokumente
11. Das RSA Verfahren und andere Verfahren

Primzahlen und RSA-Verschlüsselung

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer

10. Kryptographie. Was ist Kryptographie?

Asymmetrische. Verschlüsselungsverfahren. erarbeitet von: Emilia Winkler Christian-Weise-Gymnasium Zittau

Digital Rights Management (DRM) Verfahren, die helfen Rechte an virtuellen Waren durchzusetzen. Public-Key-Kryptographie (2 Termine)

10.6 Authentizität. Geheimhaltung: nur der Empfänger kann die Nachricht lesen

Erste Vorlesung Kryptographie

12 Kryptologie. ... immer wichtiger. Militär (Geheimhaltung) Telebanking, Elektronisches Geld E-Commerce

Algorithmische Kryptographie

RSA-Verschlüsselung. Verfahren zur Erzeugung der beiden Schlüssel:

Das RSA-Verfahren. Armin Litzel. Proseminar Kryptographische Protokolle SS 2009

Konzepte von Betriebssystemkomponenten: Schwerpunkt Sicherheit. Asymmetrische Verschlüsselung, Digitale Signatur

Authentikation und digitale Signatur

Informatik für Ökonomen II HS 09

Verschlüsselung. Kirchstraße 18 Steinfelderstraße Birkweiler Bad Bergzabern Fabian Simon Bfit09

Symmetrische und Asymmetrische Kryptographie. Technik Seminar 2012

IT-Sicherheit: Kryptographie. Asymmetrische Kryptographie

Bernd Blümel. Verschlüsselung. Prof. Dr. Blümel

Einfache kryptographische Verfahren

Kryptographie eine erste Ubersicht

Digitale Signaturen. Sven Tabbert

RSA Verfahren. Kapitel 7 p. 103

Mathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens

Anleitung Thunderbird Verschlu sselung

Grundlagen der Verschlüsselung und Authentifizierung (2)

Public-Key-Kryptosystem

Netzsicherheit I, WS 2008/2009 Übung 12. Prof. Dr. Jörg Schwenk

Facharbeit Informatik Public Key Verschlüsselung Speziell: PGP Ole Mallow Basiskurs Informatik

Verschlüsselung. Chiffrat. Eve

Nachrichten- Verschlüsselung Mit S/MIME

Computeralgebra in der Lehre am Beispiel Kryptografie

1 Kryptosysteme 1 KRYPTOSYSTEME. Definition 1.1 Eine Kryptosystem (P(A), C(B), K, E, D) besteht aus

Modul Diskrete Mathematik WiSe 2011/12

1. Asymmetrische Verschlüsselung einfach erklärt

Grundlagen der Kryptographie

Lenstras Algorithmus für Faktorisierung

27. Algorithmus der Woche Public-Key-Kryptographie Verschlüsseln mit öffentlichen Schlüsseln

Umstellung des Schlüsselpaares der Elektronischen Unterschrift von A003 (768 Bit) auf A004 (1024 Bit)

Kryptographie Reine Mathematik in den Geheimdiensten

Einführung in die verschlüsselte Kommunikation

Zahlen und das Hüten von Geheimnissen (G. Wiese, 23. April 2009)

IT-Sicherheit Kapitel 3 Public Key Kryptographie

Das wichtigste Kennzeichen asymmetrischer Verschlüsselungsverfahren ist, dass die Kommunikationspartner dabei anstelle eines

Zeichen bei Zahlen entschlüsseln

Wiederholung Symmetrische Verschlüsselung klassische Verfahren: Substitutionschiffren Transpositionschiffren Vigenère-Chiffre One-Time-Pad moderne

9 Schlüsseleinigung, Schlüsselaustausch

10. Public-Key Kryptographie

Kryptographische Verfahren auf Basis des Diskreten Logarithmus

Sicherheit von PDF-Dateien

U3L Ffm Verfahren zur Datenverschlüsselung

1 Mathematische Grundlagen

Digital Signature and Public Key Infrastructure

Digitale Unterschriften Grundlagen der digitalen Unterschriften Hash-Then-Sign Unterschriften Public-Key Infrastrukturen (PKI) Digitale Signaturen

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Diffie-Hellman, ElGamal und DSS. Vortrag von David Gümbel am

Zur Sicherheit von RSA

Kryptographie oder Verschlüsselungstechniken

Mathematik ist überall

5. Übung zum G8-Vorkurs Mathematik (WiSe 2011/12)

Der Zwei-Quadrate-Satz von Fermat

Content-Verwertungsmodelle und ihre Umsetzung in mobilen Systemen

Wiederholung: Informationssicherheit Ziele

Programmiertechnik II

Einführung in die moderne Kryptographie

Linux User Group Tübingen

Nationale Initiative für Internet- und Informations-Sicherheit

Elliptische Kurven in der Kryptographie

-Verschlüsselung mit S/MIME

Entwicklung der Asymmetrischen Kryptographie und deren Einsatz

Theoretische Grundlagen der Informatik WS 09/10

PeDaS Personal Data Safe. - Bedienungsanleitung -

Thunderbird Portable + GPG/Enigmail

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Comtarsia SignOn Familie

Kryptographische Algorithmen

Seminar zur Kryptologie

RSA-Verschlüsselung. von Johannes Becker Gießen 2006/2008

Stammtisch Zertifikate

Datensicherheit und Datenschutz. Datenschutz. Datensicherheit. Schutz von Personen. Schutz von Daten. (setzt Datensicherheit voraus)

und Digitale Signatur

Kryptologie. Verschlüsselungstechniken von Cäsar bis heute. Arnulf May

Beschreibung und Bedienungsanleitung. Inhaltsverzeichnis: Abbildungsverzeichnis: Werkzeug für verschlüsselte bpks. Dipl.-Ing.

2. Realisierung von Integrität und Authentizität

Senden von strukturierten Berichten über das SFTP Häufig gestellte Fragen

Probabilistische Primzahlensuche. Marco Berger

Theoretische Informatik SS 04 Übung 1

vorab noch ein paar allgemeine informationen zur d verschlüsselung:

Kryptographie. nur mit. Freier Software!

Exkurs Kryptographie

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Kryptographische Anonymisierung bei Verkehrsflussanalysen

Multicast Security Group Key Management Architecture (MSEC GKMArch)

4 RSA und PGP. Die Mathematik von RSA an einem Beispiel

Verschlüsseln Sie Ihre Dateien lückenlos Verwenden Sie TrueCrypt, um Ihre Daten zu schützen.

-Verschlüsselung viel einfacher als Sie denken!

Algorithmische Kryptographie

Grundlagen der Informatik

Konzepte von Betriebssystem-Komponenten: Schwerpunkt Sicherheit Grundlagen: Asymmetrische Verschlüsslung, Digitale Signatur

Englische Division. ... und allgemeine Hinweise

Transkript:

Verschlüsselungsverfahren

Inhalt 1 Problemstellung...3 2 Einführung in Verschlüsselungsverfahren...6 2.1. Symmetrische Verschlüsselung...6 2.2. Asymmetrische Verschlüsselung...7 3 Kryptographische Grundlagen...8 3.1. Verschlüsselung...8 3.2. Digitale Signatur...8 3.3. Hashfunktion...9 4 Mathematische Grundlagen... 11 4.1. Primzahlen... 11 4.2. Modulo Operator... 11 4.3. Diskrete Exponentialfunktion... 12 4.4. Diskreter Logarithmus... 12 4.5. Schnelles Exponentieren... 13 5 Das RSA-Verfahren... 14 5.1. Einführung... 14 5.2. Schlüsselgenerierung... 15 5.3. Verschlüsseln einer Nachricht... 15 5.4. Entschlüsseln einer Nachricht... 16 5.5. Beispiel... 18 6 Quellen... 19 Seite 2

1 Problemstellung Die Authentifizierung wird im Umfeld stetig weiter um sich greifender IT- Infrastrukturen immer wichtiger. Um dies zu verdeutlichen sollte den Schülern zunächst ein Authentifizierungsproblem gestellt werden für das dann direkt eine Lösung gefunden werden soll. Gleich im Anschluss wird jedoch die Schwäche des eben gefundenen Lösungsansatzes verdeutlicht und versucht, darauf basierend ein verbessertes Verfahren zu finden. 1. Problem Es besteht der Bedarf der Authentifikation, um Daten zu schützen oder Ressourcen zu verwalten. Deshalb soll ein einfaches Verfahren gefunden werden, mit dem sich ein Benutzer beim System authentifizieren kann. 1. Lösung Jeder Benutzer erhält ein Passwort, das nur er kennt. Wenn er sich beim System anmeldet, gibt er sein Passwort an, das vom System als richtig akzeptiert oder als falsch abgelehnt wird. Da das Passwort nur seinem Besitzer bekannt ist, garantiert es die individuelle Authentifikation eines jeden Benutzers. Die meisten Computersysteme sind durch die jeweiligen Betriebssysteme auf diese Weise geschützt. Abstrakt betrachtet teilen das System und der Benutzer ein Geheimnis, das sonst niemand kennt. Dieses Geheimnis muss direkt übertragen werden. 2. Problem Da das Passwort bei jeder Anmeldung benötigt wird, ist die Frequenz, mit der es benutzt wird, relativ hoch. Wenn es zusätzlich über unsichere Kanäle übertragen wird, ist es sehr leicht, es auszuspähen und unerlaubt zu verwenden. Dadurch wird die Authentifikation durch Passwörter unsicher. 2. Lösung Wenn man das Passwort regelmäßig ändert, ist das Verfahren immer maximal bis zum nächsten Wechsel unsicher. Wenn man diese Idee weiterführt, gelangt man zur Idee der Einmalpasswörter. Dabei kann jedes Passwort nur einmal verwendet werden, danach ist es nutzlos. Es kann beliebig abgehört werden, denn niemand kann einen Nutzen daraus ziehen. Dieses Verfahren kommt in Form von Transaktionsnummern (TAN) beim Online-Banking zum Einsatz. Auch bei diesem Verfahren teilen System und Benutzer Geheimnisse. Die Identifikation erfolgt durch wieder durch die Übertragung dieser Geheimnisse. 3. Problem Da man für jede Anmeldung bzw. Transaktion ein neues Passwort benötigt, sind umfangreiche Listen mit Einmalpasswörtern erforderlich, die regelmäßig auf beiden Seiten ergänzt werden müssen. Dadurch können diese Passwörter wieder ausgespäht werden, diesmal allerdings vor Ihrer Verwendung. Außerdem können Einmalpasswörter abgefangen und gleichzeitig die Verbindung Seite 3

zum Server gestört werden. Danach kann ein Angreifer das ausgespähte Einmalpasswort selbst verwenden. 3. Lösung Es wird ein Verfahren benötigt, das alle vorangegangenen Probleme löst und die vorangegangen Lösungen verbindet. Beide Seiten sollen ein Geheimnis teilen, einmal verwendeten Passwörter sollen ungültig sein und es sollen keine umfangreichen Listen ausgetauscht werden müssen. Das Challenge-Response-Verfahren erfüllt alle diese Bedingungen, indem es das Geheimnis von den Passwörtern trennt. Dazu verwendet es im einfachsten Fall ein symmetrisches Verschlüsselungsverfahren. Beide Parteien (System und Benutzer) tauschen einmal einen für dieses Verfahren passenden Schlüssel aus. Wenn der Benutzer sich beim System anmelden will, schickt ihm dieses eine Zufallszahl und stellt ihm die Herausforderung (Challenge), diese Zahl mit dem richtigen Schlüssel zu verschlüsseln und als Antwort (Response) zurückzuschicken. Das System entschlüsselt die Antwort und vergleicht sie mit der Zufallszahl. Nur wer im Besitz des richtigen Schlüssels ist, kann die Zufallszahl so verschlüsseln, das sie vom System wieder richtig entschlüsselt werden kann. Wie bei den vorangegangenen Verfahren teilen beide Seiten ein Geheimnis. Durch den Einsatz des Verschlüsselungsverfahrens wird das Passwort (die Antwort) erst im Augenblick der Authentifikation klar. 4. Problem Auf Dauer ergibt sich ein organisatorisches Problem. Wenn man sich auf diese Weise bei vielen verschiedenen Servern authentifizieren will, muss man sich für eine der beiden folgenden Wege entscheiden. Entweder wird für alle Server der gleiche Schlüssel verwendet. Dann wird ein unsicherer Server zur Sicherheitslücke für alle. Oder es werden für jeden Benutzer für alle Server jeweils verschiedene Schlüssel verwendet. Dann müssen die anfallenden Mengen von Schlüsseln sicher verwahrt werden. Wenn der Benutzer seine Schlüsselsammlung verliert (Festplattendefekt, Verlust der Smartcard), muss er mit jedem Server einen neuen Schlüssel vereinbaren und sich gegebenenfalls auch noch persönlich authentifizieren (Vorlage des Personalausweises o.ä.) 4. Lösung Diese Probleme können ähnlich wie bei der Schlüsselverwaltung für den E- mailverkehr mit asymmetrischen Verschlüsselungsverfahren gelöst werden. Die Server kennen nur den öffentlichen Schlüssel des Clients zum Entschlüsseln der Antwort bzw. können den Schlüssel von einer Zertifizierungsstelle sicher beziehen. Nur der Client kennt den geheimen Schlüssel zum Verschlüsseln der Antwort. Auf diese Weise kann die Schlüsselverwaltung erleichtert werden. Seite 4

5. Problem (Man-In-The-Middle-Angriff) Trotzdem ist ein Angreifer möglicherweise immer noch in der Lage, sich gegenüber dem Server als der Client auszugeben und akzeptiert zu werden. Dies geschieht, indem er sich bei einer Verbindung zwischen Server und Client als Router betätigt. Wenn der Client die Challenge anfordert, gibt er sich gegenüber dem Client als Server und gegenüber dem Server als Client aus. Er schickt statt der Anforderung des Clients eine eigene Anforderung an den Server, der ihm darauf hin eine Challenge schickt. Diese schickt er wiederum an den Client und lässt sie von ihm richtig beantworten, um dann die Antwort gegenüber dem Server als seine eigene auszugeben. Der Server akzeptiert ihn und der Angreifer kann jetzt den echten Client mit einer Fehlermeldung abhängen oder dessen Pakete einfach durchleiten und seine eigenen dazwischen verstecken. 5. Lösung Das oben gezeigte Problem lässt sich darauf reduzieren, dass der Client nicht weiß, ob er mit dem richtigen Server redet. Deshalb wäre es wünschenswert, dass sich der Server ebenfalls beim Client authentifiziert. Wenn man diese Authentifikation vorher durchführt, kann sich der Angreifer allerdings wieder dazwischen hängen. Deshalb müssen beide Authentifikationsvorgänge gleichzeitig ausgeführt werden: Der Client schickt seine Anforderung los und erhält eine Challenge. Er beantwortet sie und schickt mit der Antwort eine eigene Challenge los. Der Server prüft die Antwort des Clients und beantwortet seinerseits die Challenge des Clients. Nachdem dieser die Antwort geprüft hat, können beide Seiten sicher sein, dass sie mit dem richtigen Partner reden. Hinweise Durch den oben geschilderten Ablauf ergibt sich eine Schwierigkeit: Es wird erkannt dass das Challenge-Response-Verfahren wechselseitig sicher ist. Das könnte den Benutzer aber in einer falsche Sicherheit wiegen. Wenn beispielsweise der Client nach der Authentifikation abgehängt wird und der Angreifer seine IP-Adresse übernimmt, versagen alle oben genannten Protokolle. Die Lösung dafür ist jedoch wesentlich schwieriger als das, was im Rahmen dieser Unterlagen behandelt werden soll. An dieser Stelle soll also zumindest der Hinweis gegeben werden, dass die Protokolle nicht gänzlich von den darunter liegenden Software- und Hardwareschichten zu trennen sind. Ein weiterer zu vermittelnder Aspekt ist, dass die Challenge-Response- Protokolle auf Verschlüsselungsverfahren basieren. Wenn diese zu schwach sind, können die Protokolle natürlich auch auf dieser Ebene angegriffen werden. Seite 5

2 Einführung in Verschlüsselungsverfahren 2.1. Symmetrische Verschlüsselung Bei der symmetrischen Verschlüsselung werden die Daten mittels eines geheimen Schlüssels ver- bzw. entschlüsselt. Der Schlüssel muss dabei sowohl Sender und Empfänger bekannt sein und zu diesem Zweck vorher persönlich ausgetauscht werden. Vorteil: Benötigt eine relativ geringe Rechenleistung und ist schnell. Nachteil: Der direkte Austausch der geheimen Schlüssel was seine Anwendung in einer Kunde-Händler Beziehung erschwert. Gängige Verfahren: - DES (Data Encryption Standard): Anfang der 70er von IBM entwickelt - IDEA (International Data Encryption Algorithm) 1990 von den Schweizern Lai und Massey veröffentlicht Prinzip der Verschlüsselung: Seite 6

2.2. Asymmetrische Verschlüsselung Sie basiert auf der Verwendung eines zusammengehörenden Schlüsselpaares, wobei ein Schlüssel zur Ver- und einer zur Entschlüsselung genutzt wird. Beim Public Key Verfahren wird nun einer der Schlüssel veröffentlicht und kann von jedem Sender dazu genutzt werden, eine Nachricht an den Empfänger zu verschlüsseln. Nur der Empfänger, welcher in Besitz des zweiten privaten Schlüssels ist, kann die Nachricht dann entschlüsseln. Vorteil: Einfacher Schlüsselaustausch möglich. Nachteil: Langsamer als symmetrische Verfahren. Gängiges Verfahren: - RSA (nach den Entwicklern Rivest, Shamir, Adleman): Entwickelt 1977 in den USA. Prinzip der Verschlüsselung: Prinzip der Signatur und der Authentifizierung: Seite 7

3 Kryptographische Grundlagen 3.1. Verschlüsselung Ziel der Verschlüsselung ist die Kommunikation zwischen zwei Partnern ohne dass ein Angreifer die übertragenen Daten mitbekommt. Dazu kommen so genannte Einwegfunktionen mit Falltürfunktion zum Einsatz. Eine Einwegfunktion (engl. one way function) ist eine Funktion x a y bei der zu einem gegebenen x-wert sehr effizient der zugehörige y-wert berechnet werden kann. Die zugehörige Umkehrfunktion y a x kann jedoch nur mit extrem hohem Rechenaufwand - also praktisch gar nicht - durchgeführt werden. Ein eingängiges Beispiel stammt aus dem Alltag: gibt man jemandem ein Telefonbuch in gedruckter Form so kann er recht einfach und schnell zu einem gegebenem Namen die zugehörige Nummer heraussuchen. Die Umkehrung zu einer gegebenen Nummer den Teilnehmer zu finden ist jedoch nur mit extrem hohem Aufwand - also praktisch gar nicht - möglich. Gibt es nun jedoch eine Zusatzinformation, mit deren Hilfe auch die Umkehrfunktion in adäquater Zeit zu berechnen ist, so nennt man diese Information eine Falltür bzw. die zugehörige Umkehrfunktion eine Falltürfunktion (engl. trap door function). In obigem Beispiel könnte man beispielsweise zur Telefonnummer die Seitennummer im Telefonbuch angeben auf welcher der zugehörige Teilnehmer gefunden werden kann. Wann ist eine Funktion jedoch einfach zu berechnen? Man geht davon aus dass Probleme die in polynomialer Zeit als Funktion der Länge der Eingabe lösbar sind als einfach zu bezeichnen sind. Beträgt die Länge der Eingabe einer Funktion n Bits so ist die Zeit zur Berechnung einer einfachen Funktion proportional zu n a, wobei a eine Konstante ist. Ist die Zeit, welche zur Lösung eines Problems benötigt wird nicht mehr polynomial sondern exponentiell zur Länge der Eingabe proportional - z. B. zu 2 n - so ist die Funktion ab einer bestimmten Bitlänge n praktisch nicht mehr lösbar. Gegenwärtig geht man davon aus dass Funktionen mit einer Eingabe von n>80 Bit nicht zu berechnen sind. Moderne kryptographische Verfahren beruhen vor allem auf der einfachen Berechnung von Exponentialfunktionen und der nur mit hohem Aufwand zu lösenden Umkehrfunktion, dem Logarithmus. 3.2. Digitale Signatur Ziel der digitalen Signatur ist die Gewährleistung folgender zwei Punkte: Benutzerauthentizität: Es kann überprüft werden ob eine Nachricht tatsächlich von einer bestimmten Person stammt. Nachrichtenintegrität: Es kann überprüft werden ob eine Nachricht verändert wurde. Seite 8

Für die digitale Funktion greift man auf asymmetrische Verfahren zurück. Ein Teilnehmer, der eine digitale Signatur für ein Dokument erzeugen will muss also ein entsprechendes Schlüsselpaar (siehe auch Kapitel 5.2 Schlüsselgenerierung ) besitzen. Der Absender berechnet aus seiner Nachricht und seinem geheimen Schlüssel die digitale Signatur (eine Art digitaler Fingerabdruck) der Nachricht. Im Vergleich zur handschriftlichen Unterschrift hat die digitale Signatur also den Vorteil, dass die Unterschrift auch vom unterschriebenen Dokument abhängt. Die Unterschriften ein und desselben Teilnehmers sind verschieden, sofern die unterzeichneten Dokumente nicht absolut übereinstimmen. Das Dokument wird zusammen mit der Signatur an den Empfänger geschickt. Dieser kann mit Hilfe des öffentlichen Schlüssels des Absenders, des Dokumentes und der Signatur feststellen ob die Signatur korrekt ist. 3.3. Hashfunktion In der Praxis hat das im Kapitel 3.2 beschriebene Verfahren den großen Nachteil dass die Signatur etwa genauso lang ist wie das eigentliche Dokument. Damit dauert die Erstellung der Signatur relativ lange und das zu übertragene Datenvolumen ist ca. doppelt so groß wie die Nutzdaten. Abhilfe schafft hier die sogenannte Hashfunktion. Eine Hashfunktion (eng.: "to hash": zerhacken, dt. Bezeichnung: Streuwertfunktion) ist eine nicht umkehrbare Funktion die eine umfangreiche Quellmenge (i.d.r. Texte) auf eine wesentlich kleinere Zielmenge (Hash-Werte, i.d.r. natürliche Zahlen und Buchstaben) abbildet. Die Anforderungen an eine Hashfunktion lauten: Datenreduktion: Der Speicherbedarf des Hash-Wertes soll deutlich kleiner sein als der der Nachricht. Zufälligkeit: Ähnliche Quellen müssen völlig verschiedene Hash-Werte liefern. Eindeutigkeit: Die Funktion muss eindeutig von der Quellmenge auf die Zielmenge abbilden. Wiederholtes Berechnen des Hash-Wertes desselben Quellelements muss dasselbe Ergebnis liefern. Effizienz: Die Funktion muss schnell berechenbar sein. Kollisionsfreiheit: Es darf nicht effizient möglich sein, zwei Quellelemente mit demselben Hash-Wert zu finden. Andererseits sind Kollisionen bei der Adressberechnung in Datenbanken nicht zu vermeiden, so dass eine entsprechende Behandlungs-Strategie verfügbar sein muss. Unumkehrbarkeit: Zu der Funktion gibt es keine effizient berechenbare inverse Funktion, mit der es möglich wäre, für ein gegebenes Zielelement ein passendes Quellelement zu finden. Seite 9

Ein weit verbreiteter Hash-Algorithmus ist MD5 (Message Digest Algorithm 5) von Ronald L. Rivest. MD5 erzeugt auf Grundlage eines beliebig langen Dokumentes stets einen Hashwert von 128 Bit Länge. Dieser Hashwert wird üblicherweise als 32- stellige Hexadezimalzahl notiert, die dann beispielsweise so aussehen kann: 34048ce4cd069b624f6e021ba63ecde5 Bereits 1994 wurden Pseudo-Kollisionen in MD5 entdeckt. Seit der Veröffentlichung eines theoretischen Angriffsszenarios wird dieser Algorithmus als nicht mehr sicher erachtet. Zwischenzeitlich war es gelungen, eine in den Parametern modifizierte Version von MD5 zu brechen, ein erfolgreicher Angriff auf die "echte" MD5-Funktion wurde bis heute jedoch nicht entwickelt. Stattdessen wird empfohlen, den SHA-1-Algorithmus zu benutzen. Der "Secure Hash Algorithm" (SHA) erzeugt Hashwerte der Länge 160 Bit für Nachrichten mit einer Größe von bis zu 2 64 Bit (dies entspricht etwa 1,4 Billiarden, also 1,4 10 15, Seiten ASCII-Text mit 1620 Zeichen pro Seite). Seite 10

4 Mathematische Grundlagen 4.1. Primzahlen Eine Primzahl p ist eine natürliche Zahl größer als 1, die nur die Zahlen 1 und p als positive Teiler hat. D. h. eine Primzahl p ist eine natürliche Zahl, die genau zwei natürliche Teiler hat. Eine natürliche Zahl, die größer als 1 und nicht Primzahl ist, nennt man zusammengesetzte Zahl. Die Zahlen 0 und 1 sind weder prim noch zusammengesetzt. Die ersten Primzahlen sind 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73,... Mit Ausnahme der 2 sind alle Primzahlen ungerade, denn alle geraden Zahlen lassen sich ja durch 2 teilen. Zwei aufeinander folgende ungerade Zahlen, die beide Primzahlen sind, heißen Primzahlzwillinge, z. B. 11 und 13. Es gilt der Fundamentalsatz der Arithmetik: Jede positive natürliche Zahl lässt sich eindeutig als Produkt von Primzahlen darstellen, die in dieser Darstellung auftretenden Primzahlen nennt man die Primfaktoren der Zahl. Primzahlen spielen eine wichtige Rolle in der Kryptologie: Einige Verschlüsselungssysteme basieren darauf, dass man zwar relativ schnell große Primzahlen erzeugen und mit ihnen rechnen kann, dass es aber (noch) kein schnelles Faktorisierungsverfahren gibt, um große Zahlen in ihre Primfaktoren zu zerlegen (große Zahlen sind hier Zahlen mit mehr als hundert Stellen). 4.2. Modulo Operator In der Mathematik und Informatik steht mod für den Modulo-Operator bzw. die Modulo-Funktion. Sie liefert den Rest bei der Ganzzahl-Division. So ist 5 : 3 = 1 Rest 2, als Äquivalenz geschrieben: 5 2 mod 3 (gesprochen: "5 ist kongruent zur 2 in Bezug auf mod 3"). Beispiele: 9 1mod 2 da 9 : 2 = 4 Rest 1 18 4 mod 7 da 18 : 7 = 2 Rest 4 8 8 mod11 da 8 : 11 = 0 Rest 8 Seite 11

4.3. Diskrete Exponentialfunktion Die diskrete Exponentialfunktion ba mod p liefert den Rest bei Divison von ba durch p. Synonyme Bezeichnungen sind modulare Exponentiation oder modulares Potenzieren. Die diskrete Exponentialfunktion ist auch für große Exponenten effizient berechenbar. Für die Umkehrung (diskreter Logarithmus genannt), also die Berechnung des Exponenten x, bei gegebener Basis b, Modul m und gewünschtem Ergebnis, ist allerdings bis heute kein schneller Algorithmus bekannt. Beispiele: 2 4 mod 3 = 16 mod 3 = 5 Rest 1 4 2 mod 5 = 16 mod 9 = 1 Rest 7 3 3 mod 13 = 9 mod 13 = 0 Rest 9 4.4. Diskreter Logarithmus Die Lösung x der Gleichung a x = m mod p bei gegebenen natürlichen Zahlen m, a und p nennt man diskreter Logarithmus modulo p von m zur Basis a. Der diskrete Logarithmus ist für hinreichend große Zahlen praktisch nicht berechenbar, für die Potenzierung ax modulo p gibt es dagegen effiziente Algorithmen (im Sinne der Komplexitätstheorie). Die modulare Potenzierung kann daher als Einwegfunktion benutzt werden und findet deshalb Anwendung in der Kryptographie. Beispiele: 3 x = 2 mod 7 --> x = 2 oder x = 8 oder x = 14 oder... 5 x = 9 mod 11 --> x = 4 oder x = 9 oder x = 14 oder... 7 x = 8 mod 11 --> x = 9 oder x = 19 oder x = 29 oder... Seite 12

4.5. Schnelles Exponentieren Bei der Einführung der diskreten Exponentialfunktion hieß es dass diese auch für große Exponenten effizient berechenbar sei. Eine Möglichkeit dafür sei hier vorgestellt. Es soll der Ausdruck 120 37 mod 3713 berechnet werden. Wollte man dies ganz blauäugig berechnen, so geht man folgendermaßen vor: - Man berechnet 120 37 und speichert das Ergebnis im Taschenrechner - Nun teilt man das Ergebnis durch 3713 und merkt sich den ganzzahligen Teil des Ergebnisses - Man multipliziert den ganzzahligen Teil der vorherigen Divison mit 3713 und zieht das Ergebnis von dem im ersten Schritt gespeicherten Ergebnis ab. Damit musste der Taschenrechner 120 Multiplikationen, eine Division und eine Subtraktion, also in der Summe 122 Operationen durchführen. Bei der effektiveren Vorgehensweise wird der Exponent zunächst als Dualzahl angeschrieben. Damit lautet der gewünschte Ausdruck 120 100101 mod 3713. Nun wird die Berechnung folgendermaßen durchgeführt, wobei der Exponent von links nach rechts abgearbeitet wird: 1. Für den ganz linken 1er im Exponent die Basis einmal anschreibt und den Modul berechnet. 2. a) Ist die nächste Stelle im Exponent eine Null, so wird das Ergebnis aus (1) quadriert und der Modul berechnet. b) Ist die nächste Stelle im Exponent eine Eins, so wird das Ergebnis aus (1) quadriert, der Modul berechnet, dieses Ergebnis noch einmal mit der ursprünglichen Basis multipliziert und erneut der Modul bestimmt. 3. Punkt (2) wird so lange wiederholt bis der Exponent vollständig von links nach rechts abgearbeitet wurde. Am Beispiel 120 100101 mod 3713 sieht die Berechnung folgendermaßen aus: Ziffer im Exponent Berechnung 1: 120 120 mod 3713 0: 120 2 3261 mod 3713 0: 3261 2 89 mod 3713 1: 89 2 495 mod 3713 495 120 3705 mod 3713 0: 3705 2 64 mod 3713 1: 64 2 383 mod 3713 383 120 1404 mod 3713 Damit gilt: 120 37 1404 mod 3713. Seite 13

5 Das RSA-Verfahren 5.1. Einführung Das RSA-Kryptosystem ist ein asymmetrisches Kryptosystem, d.h. es verwendet verschiedene Schlüssel zum Ver- und Entschlüsseln. Es ist nach seinen Erfindern Ronald L. Rivest, Adi Shamir und Leonard Adleman benannt. Nachdem Whitfield Diffie und Martin Hellman eine Theorie zur Public-Key- Kryptografie veröffentlicht hatten, setzten sich die drei Mathematiker hin und versuchten, die Annahmen von Diffie und Hellmann zu widerlegen. Nachdem sie den Beweis bei verschiedenen Verfahren durchführen konnten, stießen sie schließlich auf eines, wo sie keinerlei Angriffspunkte fanden. Hieraus entstand dann RSA. Das Verfahren wurde 1977 entwickelt und basiert auf der Idee, dass die Faktorisierung einer grossen Zahl 1, also ihre Zerlegung in (mindestens zwei) Faktoren, eine sehr aufwändige Angelegenheit ist, während das Erzeugen einer Zahl durch Multiplikation zweier Primzahlen trivial ist. Wenn nun eine Nachricht einem Empfänger verschlüsselt zugeleitet werden soll, generiert dieser einen öffentlichen Schlüssel. Der Nachrichtenabsender verwendet diesen öffentlich bekanntgemachten Schlüssel, indem er damit seine Botschaft verschlüsselt. Nur der Empfänger kann diese "dekodieren", da nur er die "Zusammensetzung" des von ihm erzeugten (öffentlichen) Schlüssels kennt. Da die Verschlüsselung mit Hilfe des öffentlichen Schlüssels sehr einfach, die Entschlüsselung ohne Kenntnis des geheimen Schlüssels (der Falltür ) jedoch extrem schwierig ist handelt es sich um eine Einwegfunktion mit Falltür. RSA wird u.a. zur Authentisierung französischer Telefonkarten angewendet. 1 Der beim RSA-Verfahren entscheidende Modul n wird als Dualzahl angegeben und hat üblicherweise eine Länge von etwa 600 Bit. Seite 14

5.2. Schlüsselgenerierung 1. Wähle zufällig und stochastisch unabhängig zwei Primzahlen p q, die etwa gleich lang sein sollten und berechne deren Produkt (Modul genannt) n = p q. 2 In der Praxis werden diese Primzahlen durch Raten einer Zahl und darauffolgendes Anwenden eines Primzahltests bestimmt. 2. Berechne die Euler-Funktion 3 J(n) = (p-1) (q-1). 3. Wähle eine zufällige Zahl e mit 2<e<n-1, die teilerfremd zu J(n) ist. 4. Berechne die Zahl d so, dass das Produkt e d kongruent 1 bezüglich des Moduls J(n) ist, dass also e d 1 mod J(n) gilt 4. Damit ist die Schlüsselgenerierung abgeschlossen: (n, e) ist der öffentliche Schlüssel P (public key) (n, d) ist der geheime Schlüssel S (secret key) 5 Die Zahlen p, q und damit auch J(n) können weggeworfen werden. Die Bezeichnungen e und d sind kennzeichnen bereits den späteren Einsatzzweck der beiden Zahlen. Für das verschlüsseln (engl.: encryption) wird e, für das entschlüsseln (engl: decryption) dagegen d benötigt. Jeder kann nun eine beliebige Nachricht mit dem öffentlichen Schlüssel e chiffrieren, aber nur der gewünschte Adressat kann als alleiniger Besitzer des geheimen Schlüssels d die Nachricht wieder dechiffrieren. 5.3. Verschlüsseln einer Nachricht Zum Verschlüsseln wird die als Zahl dargestellte Nachricht in Teile aufgebrochen, so dass jede Teilzahl kleiner als n ist. Das chiffrieren einer Nachricht erfolgt stets nach folgender Vorschrift: C = E((n, e); M) := M e mod n Zu den bereits bekannten Größen n und e gelten folgende Bezeichnungen: - C: Geheimtext (Cipher Text) - E: Verschlüsselungsfunktion (Encryption) - M: Klartext (Message) 2 Das BSI (Bundesamt für Sicherheit in der Informationstechnik empfiehlt, die Primfaktoren p und q ungefähr gleich groß, aber nicht zu dicht beieinander zu wählen, d. h. konkret etwa 0,5 < log 2 (p) log 2 (q) < 30 3 Bei vorgegebenem n ist die Anzahl der Zahlen aus der Menge {1,..., n-1}, die zu n teilerfremd sind, gleich dem Wert der Euler-Funktion J(n), manchmal auch Φ(n) geschrieben. Für eine Primzahl p gilt: J(p) = p-1 Ist n dagegen das Produkt zweier Primzahlen p und q so gilt: J(n) = (p-1) (q-1). 4 Man berechnet mit d also die multiplikativ Inverse zu e modulo J(n) 5 Vom geheimen Schlüssel S bestehend aus (n, d) ist jedoch nur d geheim zu halten. Seite 15

Beispiel: a. Für die beiden Primzahlen p und q werden die Zahlen p = 11 und q = 13 gewählt. Damit wird n = p q = 143. b. Berechnung der Euler-Funktion: J(n) = J(143) = (p-1) (q-1) = 120. c. Für die zu J(143) = 120 teilerfremde neue Zahl e sei e = 23 gewählt. d. Mit diesen Werten erhält man die Bedingung: 23 d 1 mod 120. Das heisst: Das Produkt soll bei Division durch 120 den Rest 1 lassen. Man kann damit die Kongruenz als Gleichung schreiben: 23 d = k 120 + 1. Dabei ist k eine ganze Zahl. Als eine Lösung dieser diophantischen Gleichung 120 k - 23 d = -1 ergibt sich d = 47 und k = 9. Damit erhält man das Schlüsselpaar: Öffentlicher Schlüssel P bestehend aus n = 143 und e = 23 Geheimer Schlüssel S bestehend aus n = 143 und d = 47, wobei nur d geheim zu halten ist. e. Es soll der Klartext M := 7 verschlüsselt werden. Damit gilt: C = E((143, 23);7) := 7 23 mod 143 Exponent wird in Dualzahl umgeschrieben: 7 23 mod 143 = 7 10111 mod 143 Ziffer im Exponent Berechnung 1: 7 7 mod143 0: 7 2 49 mod 143 1: 49 2 113 mod 143 113 7 76 mod 143 1: 76 2 56 mod 143 56 7 106 mod 143 1: 106 2 82 mod 143 82 7 2 mod 143 Damit wurde der Klartext M = 7 in den Geheimtext C = 2 codiert. 5.4. Entschlüsseln einer Nachricht Auch zum entschlüsseln wird das als Zahl dargestellte Chiffrat zunächst in Teile aufgebrochen, so dass jede Teilzahl kleiner als n ist. Das dechiffrieren erfolgt nun nach folgender Vorschrift: M = D((n, d); C) := C d mod n Für die verwendeten Abkürzungen gelte hier: - M: Klartext (Message) - D: Entschlüsselungsfunktion (Decryption) - C: Geheimtext (Cipher Text) Seite 16

Die Entschlüsselung gelingt nur, weil gilt: da e d 1 mod n gilt: M = C d mod n = (M e mod n) d mod n = (M e ) d mod n = M e d mod n = M 1 mod n = M Beispiel: Damit kann der auf Seite 16 aus der Nachricht M = 7 generierte Geheimtext C = 2 wieder entschlüsselt werden. Dazu wird neben dem Geheimtext noch der geheime Schlüssel S bestehend aus n = 143 und d = 47 des dort generierten Schlüsselpaares benötigt. Damit erfolgt die Dekodierung folgendermaßen M = D((143, 47); 2) := 2 47 mod 143 Exponent wird in Dualzahl umgeschrieben: 7 47 mod 143 = 7 101111 mod 143 Ziffer im Exponent Berechnung 1: 2 2 mod143 0: 2 2 4 mod 143 1: 4 2 16 mod 143 16 2 32 mod 143 1: 32 2 23 mod 143 23 2 46 mod 143 1: 46 2 114 mod 143 114 2 85 mod 143 1: 85 2 75 mod 143 75 2 7 mod 143 Damit wurde aus dem Geheimtext C = 2 wieder der Klartext M = 7 gewonnen. Seite 17

5.5. Beispiel Der Nachricht soll das ASCII-Alphabet zugrunde liegen, womit jedes Einzelzeichen der Nachricht in 8-Bit lange Zahlen codiert wird. Es soll der Text RSA works! verschlüsselt werden. Zunächst erfolgt die Umcodierung in ASCII-Code (Darstellung in Dezimalschreibweise): Text R S A w o r k s! Zahl 82 83 65 32 119 111 114 107 115 32 Schlüsselerzeugung: 1. p = 509, q = 503 n = p q = 256.027 J(n) = (p-1) (q-1) = 255.016 2. e = 65.537 (soll zwischen 509 und 255.016 liegen und muss teilerfremd zu 255.016 sein) 3. d = 231.953 (denn e d 1 mod J(n)) Variante 1: Ver- / Entschlüsselung ohne Blockbildung Jeder Buchstabe wird einzeln mit nachfolgender Vorschrift verschlüsselt: C M 65.537 mod 256.027 Daraus ergibt sich das Chiffrat: 212984 025546 104529 031692 248407 100412 054196 100184 058179 227433 Die Entschlüsselung erfolgt mit M C 231.953 mod 256.027 Variante 2: Ver- / Entschlüsselung mit Blockbildung Jeweils zwei ASCII-Zeichen werden zu einem Block zusammengefasst indem die ASCII-Zahlen als 3-stellige Dezimalzahlen (evtl. mit führender Null) hintereinandergeschrieben und dann verschlüsselt werden. Damit ergibt sich der folgende zusammengefasste Klartext: 082083 065032 119111 114107 115033 Die Verschlüsselung pro Block ergibt mit C M 65.537 mod 256.027 folgenden Geheimtext: 198967 051405 254571 115318 014251 Seite 18

6 Quellen Didaktik der Informatik der Universität Potsdam: http://ddi.cs.uni-potsdam.de/lehre/e-commerce/elbez2-5/page04.html Studienarbeit im Fachbereich Informatik der TU Darmstadt von Christian Binder: http://www.sec.informatik.tu-darmstadt.de/lang_neutral/diplomarbeiten/docs/binder_studien.pdf Skript zum CrypTool der TU Darmstadt, Universität Siegen und der Deutschen Bank: http://www.cryptool.de Freie Online-Enzyklopädie: http://www.wikipedia.de Seite 19