Verschlüsselung nach dem RSA-Verfahren

Slides:



Advertisements
Ähnliche Präsentationen
Eine Einführung in das RSA-Verfahren an Beispielen
Advertisements

Mündliche Fachprüfung
Beispiel: RSA Man nehme 2 große Primzahlen p und q. p = 3 , q = 5
Beispiel zum RSA-Algorithmus
Präsentation Der Gruppe: Boll, Barbosa, Blädel Klasse: WG 05 a.
Rekursion: Rekurrenz: Algorithmen rufen sich selbst (rekursiv) auf.
Falls Algorithmen sich selbst rekursiv aufrufen, so kann ihr Laufzeitverhalten bzw. ihr Speicherplatzbedarf in der Regel durch eine Rekursionsformel (recurrence,
Kryptographie - ein Exkurs Kodieren/Dekodieren, Verschlüsseln/Entschlüsseln, Chiffrieren/Dechiffrieren zum Zweck der Geheimhaltung, zur Authentifizierung,
Hauptseminar Asymmetrische Verschlüsselung & Zertifikate

Asymmetrische Kryptographie
Asymmetrische Kryptographie
HANDYGMA - kein Geheimnis -
GIN1b – Exkurs: Primzahlen
Verschlüsselungsverfahren Gruppe 3/ Judith Neu / Stephanie Czichon
Grundlagen der Kryptologie
Zahlentheorie Algebra und Kryptografie
Public Key Kryptographie mit dem RSA Schema
Kapitel 2 Die rationalen und die irrationalen Zahlen.
Symmetrische und Asymmetrische Verschlüsselung Habilitationsvortrag
Ein Public Key Kryptosystem mit perfekten Codes in Graphen.
Wir suchen ‘ mit m = m    ‘ c  ‘ mod 26
(Ron Rivest, Adi Shamit, Leonard Adleman , 1977)
Kryptologie.
Hashverfahren und digitale Signaturen
Kryptologie Entwicklung und Bewertung von Verschlüsselungsverfahren
E-Commerce Prof. Dr. Hans-Jürgen Steffens
Zahlenmengen.
Einwegfunktionen mit und ohne „Falltür“
KRYPTOGRAFIE.
Asymmetrische Verfahren
TU GRAZ RSA-Public-Key-Kryptograhie Shor `94
Institut für Theoretische Informatik
(C) 2003, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz 1 RSA-Algorithmus 1978 von Ronald Rivest, Adi Shamir und Leonard Adleman erfunden.
teKRY409 Referat Bernet: Schlüsselmanagement
ENDLICHE KÖRPER RSA – VERFAHREN.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Systeme II Christian Schindelhauer Sommersemester 2006.
Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.
Michal Olejniczak Pawel Kiedrowski
Projekt Crypt Einfache kryptografische Verfahren
Das RSA-Verfahren Klaus Becker 2010.
Asymmetrische Kryptographie
RSA ist nach seinen Erfindern Rivest, Shamir und Adleman benannt.
Folie Nr. Stand Jänner 2008 RSA ist nach seinen Erfindern Rivest, Shamir und Adleman benannt RSA ist ein asymmetrisches Kryptosystem 
ASCII Was ist ein ASCII Code?.
Vorstellen und Herleiten der Horner Schemas
© 2013 TravelTainment Kryptographie in der IT Kryptographische Verfahren und ihre Anwendung in der IT.
LugBE Linux User Group Bern PKI – Was soll das? Einleitung Symmetrisch vs. asymmetrisch Trusted Third Party Hierarchisches Modell Web of Trust Links LugBE.
„PGP für alle“ Leitfaden Grundlagen der Sicherheit Andreas Friedrich / Benny Neugebauer Johannes Petrick / Patrick Rutter Brandenburg, 12. Januar 2010.
Kryptografie und Datensicherheit RSA. Kryptografie und Datensicherheit RSA - Public-Key-Verschlüsselung 1. Attacken auf Public – Key - Verfahren 2. Der.
Kryptografie und Datensicherheit RSA. Kryptografie und Datensicherheit RSA - Public-Key-Verschlüsselung 1. Asymmetrisches Verschlüsselungsverfahren 2.
LINUX II Unit Remote Zugriff via SSH.
Systems Architecture RSA & DSA Signaturen Elliptische-Kurven-Kryptographie Mechmet Chiousemoglou Christian Krause 29.Mai.
Kryptographie ● Motivation ● Theoretisches ● Symmetrische Verschlüsselung: RC4 ● Asymmetrische Verschlüsselung: RSA.
RSA public key encryption
Unsichere Passwörter oder:
Asymmetrische Verschlüsselung
Kryptographie.
Aufgabenteil (mit Hilfsmittel)
Funktionsweise des RSA-Verfahrens
Wiederholung Größte gemeinsame Teiler Satz von Bezout:
Symmetrische Verschlüsselung
Prof. J. Walter Bitte römische Zahlen im Geschichtsunterricht!
Multivariate Kryptosysteme
Verschlüsselung nach Blaise de Vigenère (*1523 † 1596)
ReduSoft Ltd. Kurzbeschreibungen zu einigen Modulen, die im Programm MathProf 5.0 unter dem Themenbereich Algebra implementiert sind. Matrizen.
ReduSoft Ltd. Kurzbeschreibungen zu einigen Modulen, die im Programm MathProf 5.0 unter dem Themenbereich Algebra implementiert sind. Matrizen.
Mathematisches Kaleidoskop
Vorstellen und Herleiten der Horner Schemas
 Präsentation transkript:

Verschlüsselung nach dem RSA-Verfahren Adi Shamir, Ronald Rivest und Leonard Adleman 1977 (von links nach rechts) StD März, März 2012

Einwegfunktionen Das RSA-Verfahren ist ein rein mathematisches Verfahren und daher nicht so anschaulich darstellbar wie das Vigenère-Verfahren. Der wesentliche Punkt ist die Verwendung von Einwegfunktionen. Darunter sind umkehrbare Funktionen zu verstehen, bei denen die Umkehrfunktion wesentlich schwerer zu berechnen ist, als die Funktion selbst. StD März, März 2012

Vorüberlegungen StD März, März 2012

Einwegfunktionen Das Berechnen einer Potenz ist leichter als die Umkehrung mittels des Logarithmus. Ke = G <=> K = loge G e: Exponent (nicht Eulersche Zahl) K: Kodiertes Zeichen des Klartextes, z.B: 65 für A (ASCII) G: Kodiertes Zeichen des Geheimtextes StD März, März 2012

Einwegfunktionen Ist ein multiplikativ Inverses d des Exponenten e bekannt (d · e = 1), so ist die Berechnung von K aus G dagegen sehr einfach. Gd = (Ke) d = Ke·d = K1 = K Die (schwierige) Berechnung von K aus G mit Hilfe des Logarithmus wurde ersetzt durch die einfachere Potenzierung mit dem (geheimen) Wert d. StD März, März 2012

Einwegfunktionen Das Grundprinzip einer assymetrischen Verschlüsselung ist gefunden: Verschlüsseln durch Potenzieren mit dem öffentlichen Schlüssel e: G = Ke Entschlüsseln durch Potenzieren mit dem geheimen Schlüssel d: Gd = K StD März, März 2012

Einwegfunktionen Wichtig ist dabei natürlich, dass es praktisch unmöglich ist die Umkehrung der Verschlüsselungsfunktion zu berechnen. aus dem öffentlichen Schlüssel auf den geheimen Schlüssel zu schliessen. Bei unserem einfachen Beispiel ist das selbstverständlich noch nicht erfüllt. StD März, März 2012

Verwendung von Divisionsresten Durch die Verwendung von Divisionsresten, sogenannter modulo-Operationen kann das Ziel der praktischen Unumkehrbarkeit erreicht werden. Beispiel: Wähle zwei Zahlen, z.B. 8 und 7. Multipliziere die beiden Zahlen Bilde den Rest bei Division durch 10. (8 * 7 ) mod 10 = 6 Versuche nun aus dem Ergebnis 6 auf die beiden ursprünglichen Zahlen zu schliessen. 6 = (2 * 3 ) mod 10 6 = (4 * 9 ) mod 10 6 = (8 * 7 ) mod 10 6 = (23 * 2 ) mod 10 6 = (11 * 6 ) mod 10 6 = (12 * 113 ) mod 10 ? StD März, März 2012

Kombination Die Kombination der beiden Methoden – Potenzierung und modulo-Operationen – führt zu einem sicheren assymetrischen Verfahren. Klett, Informatik 5: „…Während die Berechnung wkPub mod (p·q), das sogenannte modulare Potenzieren, etwa 1000 Rechenschritte erfordert, sind für die Umkehrfunktion, das sogenannte diskrete Logarithmieren, bis zu 10100 Schritte erforderlich.“ Wie lange dauern wohl 10100 Schritte bei einer Rate von 1 Milliarde oder sogar 1 Billion Operationen pro Sekunde? StD März, März 2012

RSA StD März, März 2012

RSA - 1977 1977 wurde RSA, das erste öffentlich zugängliche asymmetrische Verschlüsselungsverfahren, veröffentlicht. Der Name RSA steht für die Anfangsbuchstaben der Familiennamen der drei Mathematiker am MIT (Massachusetts Institute of Technology), Ronald L. Rivest, Adi Shamir und Leonard Adleman, die RSA entwickelten. Adi Shamir, Ronald Rivest und Leonard Adleman 2003 (von links nach rechts) StD März, März 2012

RSA Erzeugung der Schlüssel StD März, März 2012

Erzeugung von privatem und öffentlichem Schlüssel Der öffentliche Schlüssel ist das Zahlenpaar (e,N), der private Schlüssel das Zahlenpaar (d,N), wobei N bei beiden Schlüsseln gleich ist. N: RSA-Modul, e: Verschlüsselungsexponent d: Entschlüsselungsexponent StD März, März 2012

Erzeugung von privatem und öffentlichem Schlüssel Wähle zufällig und stochastisch unabhängig zwei unterschiedliche Primzahlen p und q. (In der Praxis erzeugt man dazu so lange Zahlen der gewünschten Länge und führt mit diesen anschließend einen Primzahltest durch, bis man zwei Primzahlen gefunden hat.) Beispiel: Zur Demonstration wählen wir die beiden Mersenne-Primzahlen p = 27-1 = 127 und q = 213-1 = 8191 (Diese beiden Primzahlen dienen nur der Demonstration und entsprechen nicht den genannten Bedingungen. Sie sind für praktische Anwendung auch viel zu klein.) StD März, März 2012

Erzeugung von privatem und öffentlichem Schlüssel Berechne den RSA-Modul N = p·q Im Beispiel: N = 127 · 8.191 = 1.040.257 Berechne die Eulersche φ - Funktion von N: φ (N) = ( p – 1 )·( q – 1 ) Im Beispiel: φ (N) = 126 · 8.190 = 1.031.940 StD März, März 2012

Erzeugung von privatem und öffentlichem Schlüssel Wähle eine zu φ (N) teilerfremde Zahl e, für die gilt 1 < e < φ (N). Aus Effizienzgründen wird e klein gewählt, üblich ist e = 216+1. Kleinere Werte von können zu Angriffsmöglichkeiten führen. Im Beispiel: Zur Demonstration wählen wir e = 1.013 Willkürliche Wahl einer Primzahl, daher teilerfremd zu φ (N). StD März, März 2012

Erzeugung von privatem und öffentlichem Schlüssel Berechne den Entschlüsselungsexponenten d als multiplikativ Inverses von e bezüglich des Moduls φ (N). Es soll also gelten: e · d = 1 mod φ (N) Die Berechnung erfolgt mit Hilfe des erweiterten Euklidischen Algorithmus. Im Beispiel: Es muss gelten: e · d + k · φ (N) = 1 = ggT( e, φ (N) ) (wg. Teilerfremdheit) konkret: 1.013 · d + k · 1.031.940 = ggT(1.013, 1.031.940 ) StD März, März 2012

Erzeugung von privatem und öffentlichem Schlüssel Erweiterter Euklidischer Algorithmus: Fortgesetzte Division mit Rest: φ (N) = 1018 * e + 706 e = 1 * 706 + 307 706 = 2 * 307 + 92 307 = 3 * 92 + 31 92 = 2 * 31 + 30 31 = 1 * 30 + 1 30 = 30 * 1 + 0 (ggT = 1 – muss wegen Teilerfremdheit so sein) Berechne den Entschlüsselungsexponenten d als multiplikativ Inverses von e bezüglich des Moduls φ (N). Es soll also gelten: e · d = 1 mod φ (N) Die Berechnung erfolgt mit Hilfe des erweiterten Euklidischen Algorithmus. Im Beispiel: Es muss gelten: e · d + k · φ (N) = 1 = ggT( e, φ (N) ) (wg. Teilerfremdheit) konkret: 1.013 · d + k · 1.031.940 = ggT(1.013, 1.031.940 ) StD März, März 2012

Erzeugung von privatem und öffentlichem Schlüssel Erweiterter Euklidischer Algorithmus: Fortgesetzte Division mit Rest: φ (N) = 1018 * e + 706 e = 1 * 706 + 307 706 = 2 * 307 + 92 307 = 3 * 92 + 31 92 = 2 * 31 + 30 31 = 1 * 30 + 1 30 = 30 * 1 + 0 (ggT = 1 – muss wegen Teilerfremdheit so sein) Berechne den Entschlüsselungsexponenten d als multiplikativ Inverses von e bezüglich des Moduls φ (N). Es soll also gelten: e · d = 1 mod φ (N) Die Berechnung erfolgt mit Hilfe des erweiterten Euklidischen Algorithmus. Erweiterter Euklidischer Algorithmus: Bestimmung der Linearkombination: 1 = 1 * 31 - 1 * 30 Im Beispiel: Es muss gelten: e · d + k · φ (N) = 1 = ggT( e, φ (N) ) (wg. Teilerfremdheit) konkret: 1.013 · d + k · 1.031.940 = ggT(1.013, 1.031.940 ) StD März, März 2012

Erzeugung von privatem und öffentlichem Schlüssel Erweiterter Euklidischer Algorithmus: Fortgesetzte Division mit Rest: φ (N) = 1018 * e + 706 e = 1 * 706 + 307 706 = 2 * 307 + 92 307 = 3 * 92 + 31 92 = 2 * 31 + 30 31 = 1 * 30 + 1 30 = 30 * 1 + 0 (ggT = 1 – muss wegen Teilerfremdheit so sein) Berechne den Entschlüsselungsexponenten d als multiplikativ Inverses von e bezüglich des Moduls φ (N). Es soll also gelten: e · d = 1 mod φ (N) Die Berechnung erfolgt mit Hilfe des erweiterten Euklidischen Algorithmus. Erweiterter Euklidischer Algorithmus: Bestimmung der Linearkombination: 1 = 1 * 31 - 1 * 30 1 = 1 * 31 - 1 * (92 - 2 * 31) Im Beispiel: Es muss gelten: e · d + k · φ (N) = 1 = ggT( e, φ (N) ) (wg. Teilerfremdheit) konkret: 1.013 · d + k · 1.031.940 = ggT(1.013, 1.031.940 ) StD März, März 2012

Erzeugung von privatem und öffentlichem Schlüssel Erweiterter Euklidischer Algorithmus: Fortgesetzte Division mit Rest: φ (N) = 1018 * e + 706 e = 1 * 706 + 307 706 = 2 * 307 + 92 307 = 3 * 92 + 31 92 = 2 * 31 + 30 31 = 1 * 30 + 1 30 = 30 * 1 + 0 (ggT = 1 – muss wegen Teilerfremdheit so sein) Berechne den Entschlüsselungsexponenten d als multiplikativ Inverses von e bezüglich des Moduls φ (N). Es soll also gelten: e · d = 1 mod φ (N) Die Berechnung erfolgt mit Hilfe des erweiterten Euklidischen Algorithmus. Erweiterter Euklidischer Algorithmus: Bestimmung der Linearkombination: 1 = 1 * 31 - 1 * 30 1 = 1 * 31 - 1 * (92 - 2 * 31) 1 = -1 * 92 + 3 * 31 Im Beispiel: Es muss gelten: e · d + k · φ (N) = 1 = ggT( e, φ (N) ) (wg. Teilerfremdheit) konkret: 1.013 · d + k · 1.031.940 = ggT(1.013, 1.031.940 ) StD März, März 2012

Erzeugung von privatem und öffentlichem Schlüssel Erweiterter Euklidischer Algorithmus: Fortgesetzte Division mit Rest: φ (N) = 1018 * e + 706 e = 1 * 706 + 307 706 = 2 * 307 + 92 307 = 3 * 92 + 31 92 = 2 * 31 + 30 31 = 1 * 30 + 1 30 = 30 * 1 + 0 (ggT = 1 – muss wegen Teilerfremdheit so sein) Berechne den Entschlüsselungsexponenten d als multiplikativ Inverses von e bezüglich des Moduls φ (N). Es soll also gelten: e · d = 1 mod φ (N) Die Berechnung erfolgt mit Hilfe des erweiterten Euklidischen Algorithmus. Erweiterter Euklidischer Algorithmus: Bestimmung der Linearkombination: 1 = 1 * 31 - 1 * 30 1 = 1 * 31 - 1 * (92 - 2 * 31) 1 = -1 * 92 + 3 * 31 1 = -1 * 92 + 3 * (307 - 3 * 92 ) Im Beispiel: Es muss gelten: e · d + k · φ (N) = 1 = ggT( e, φ (N) ) (wg. Teilerfremdheit) konkret: 1.013 · d + k · 1.031.940 = ggT(1.013, 1.031.940 ) StD März, März 2012

Erzeugung von privatem und öffentlichem Schlüssel Erweiterter Euklidischer Algorithmus: Fortgesetzte Division mit Rest: φ (N) = 1018 * e + 706 e = 1 * 706 + 307 706 = 2 * 307 + 92 307 = 3 * 92 + 31 92 = 2 * 31 + 30 31 = 1 * 30 + 1 30 = 30 * 1 + 0 (ggT = 1 – muss wegen Teilerfremdheit so sein) Berechne den Entschlüsselungsexponenten d als multiplikativ Inverses von e bezüglich des Moduls φ (N). Es soll also gelten: e · d = 1 mod φ (N) Die Berechnung erfolgt mit Hilfe des erweiterten Euklidischen Algorithmus. Erweiterter Euklidischer Algorithmus: Bestimmung der Linearkombination: 1 = 1 * 31 - 1 * 30 1 = 1 * 31 - 1 * (92 - 2 * 31) 1 = -1 * 92 + 3 * 31 1 = -1 * 92 + 3 * (307 - 3 * 92 ) 1 = 3 * 307 - 10 * 92 Im Beispiel: Es muss gelten: e · d + k · φ (N) = 1 = ggT( e, φ (N) ) (wg. Teilerfremdheit) konkret: 1.013 · d + k · 1.031.940 = ggT(1.013, 1.031.940 ) StD März, März 2012

Erzeugung von privatem und öffentlichem Schlüssel Erweiterter Euklidischer Algorithmus: Fortgesetzte Division mit Rest: φ (N) = 1018 * e + 706 e = 1 * 706 + 307 706 = 2 * 307 + 92 307 = 3 * 92 + 31 92 = 2 * 31 + 30 31 = 1 * 30 + 1 30 = 30 * 1 + 0 (ggT = 1 – muss wegen Teilerfremdheit so sein) Berechne den Entschlüsselungsexponenten d als multiplikativ Inverses von e bezüglich des Moduls φ (N). Es soll also gelten: e · d = 1 mod φ (N) Die Berechnung erfolgt mit Hilfe des erweiterten Euklidischen Algorithmus. Erweiterter Euklidischer Algorithmus: Bestimmung der Linearkombination: 1 = 1 * 31 - 1 * 30 1 = 1 * 31 - 1 * (92 - 2 * 31) 1 = -1 * 92 + 3 * 31 1 = -1 * 92 + 3 * (307 - 3 * 92 ) 1 = 3 * 307 - 10 * 92 1 = 3 * 307 - 10 * (706 - 2 * 307 ) Im Beispiel: Es muss gelten: e · d + k · φ (N) = 1 = ggT( e, φ (N) ) (wg. Teilerfremdheit) konkret: 1.013 · d + k · 1.031.940 = ggT(1.013, 1.031.940 ) StD März, März 2012

Erzeugung von privatem und öffentlichem Schlüssel Erweiterter Euklidischer Algorithmus: Fortgesetzte Division mit Rest: φ (N) = 1018 * e + 706 e = 1 * 706 + 307 706 = 2 * 307 + 92 307 = 3 * 92 + 31 92 = 2 * 31 + 30 31 = 1 * 30 + 1 30 = 30 * 1 + 0 (ggT = 1 – muss wegen Teilerfremdheit so sein) Berechne den Entschlüsselungsexponenten d als multiplikativ Inverses von e bezüglich des Moduls φ (N). Es soll also gelten: e · d = 1 mod φ (N) Die Berechnung erfolgt mit Hilfe des erweiterten Euklidischen Algorithmus. Erweiterter Euklidischer Algorithmus: Bestimmung der Linearkombination: 1 = 1 * 31 - 1 * 30 1 = 1 * 31 - 1 * (92 - 2 * 31) 1 = -1 * 92 + 3 * 31 1 = -1 * 92 + 3 * (307 - 3 * 92 ) 1 = 3 * 307 - 10 * 92 1 = 3 * 307 - 10 * (706 - 2 * 307 ) 1 = -10 * 706 + 23 * 307 Im Beispiel: Es muss gelten: e · d + k · φ (N) = 1 = ggT( e, φ (N) ) (wg. Teilerfremdheit) konkret: 1.013 · d + k · 1.031.940 = ggT(1.013, 1.031.940 ) StD März, März 2012

Erzeugung von privatem und öffentlichem Schlüssel Erweiterter Euklidischer Algorithmus: Fortgesetzte Division mit Rest: φ (N) = 1018 * e + 706 e = 1 * 706 + 307 706 = 2 * 307 + 92 307 = 3 * 92 + 31 92 = 2 * 31 + 30 31 = 1 * 30 + 1 30 = 30 * 1 + 0 (ggT = 1 – muss wegen Teilerfremdheit so sein) Berechne den Entschlüsselungsexponenten d als multiplikativ Inverses von e bezüglich des Moduls φ (N). Es soll also gelten: e · d = 1 mod φ (N) Die Berechnung erfolgt mit Hilfe des erweiterten Euklidischen Algorithmus. Erweiterter Euklidischer Algorithmus: Bestimmung der Linearkombination: 1 = 1 * 31 - 1 * 30 1 = 1 * 31 - 1 * (92 - 2 * 31) 1 = -1 * 92 + 3 * 31 1 = -1 * 92 + 3 * (307 - 3 * 92 ) 1 = 3 * 307 - 10 * 92 1 = 3 * 307 - 10 * (706 - 2 * 307 ) 1 = -10 * 706 + 23 * 307 1 = -10 * 706 + 23 * (e - 1 * 706 ) Im Beispiel: Es muss gelten: e · d + k · φ (N) = 1 = ggT( e, φ (N) ) (wg. Teilerfremdheit) konkret: 1.013 · d + k · 1.031.940 = ggT(1.013, 1.031.940 ) StD März, März 2012

Erzeugung von privatem und öffentlichem Schlüssel Erweiterter Euklidischer Algorithmus: Fortgesetzte Division mit Rest: φ (N) = 1018 * e + 706 e = 1 * 706 + 307 706 = 2 * 307 + 92 307 = 3 * 92 + 31 92 = 2 * 31 + 30 31 = 1 * 30 + 1 30 = 30 * 1 + 0 (ggT = 1 – muss wegen Teilerfremdheit so sein) Berechne den Entschlüsselungsexponenten d als multiplikativ Inverses von e bezüglich des Moduls φ (N). Es soll also gelten: e · d = 1 mod φ (N) Die Berechnung erfolgt mit Hilfe des erweiterten Euklidischen Algorithmus. Erweiterter Euklidischer Algorithmus: Bestimmung der Linearkombination: 1 = 1 * 31 - 1 * 30 1 = 1 * 31 - 1 * (92 - 2 * 31) 1 = -1 * 92 + 3 * 31 1 = -1 * 92 + 3 * (307 - 3 * 92 ) 1 = 3 * 307 - 10 * 92 1 = 3 * 307 - 10 * (706 - 2 * 307 ) 1 = -10 * 706 + 23 * 307 1 = -10 * 706 + 23 * (e - 1 * 706 ) 1 = 23 * e - 33 * 706 Im Beispiel: Es muss gelten: e · d + k · φ (N) = 1 = ggT( e, φ (N) ) (wg. Teilerfremdheit) konkret: 1.013 · d + k · 1.031.940 = ggT(1.013, 1.031.940 ) StD März, März 2012

Erzeugung von privatem und öffentlichem Schlüssel Erweiterter Euklidischer Algorithmus: Fortgesetzte Division mit Rest: φ (N) = 1018 * e + 706 e = 1 * 706 + 307 706 = 2 * 307 + 92 307 = 3 * 92 + 31 92 = 2 * 31 + 30 31 = 1 * 30 + 1 30 = 30 * 1 + 0 (ggT = 1 – muss wegen Teilerfremdheit so sein) Berechne den Entschlüsselungsexponenten d als multiplikativ Inverses von e bezüglich des Moduls φ (N). Es soll also gelten: e · d = 1 mod φ (N) Die Berechnung erfolgt mit Hilfe des erweiterten Euklidischen Algorithmus. Erweiterter Euklidischer Algorithmus: Bestimmung der Linearkombination: 1 = 1 * 31 - 1 * 30 1 = 1 * 31 - 1 * (92 - 2 * 31) 1 = -1 * 92 + 3 * 31 1 = -1 * 92 + 3 * (307 - 3 * 92 ) 1 = 3 * 307 - 10 * 92 1 = 3 * 307 - 10 * (706 - 2 * 307 ) 1 = -10 * 706 + 23 * 307 1 = -10 * 706 + 23 * (e - 1 * 706 ) 1 = 23 * e - 33 * 706 1 = 23 * e - 33 * (φ (N) - 1018 * e ) Im Beispiel: Es muss gelten: e · d + k · φ (N) = 1 = ggT( e, φ (N) ) (wg. Teilerfremdheit) konkret: 1.013 · d + k · 1.031.940 = ggT(1.013, 1.031.940 ) StD März, März 2012

Erzeugung von privatem und öffentlichem Schlüssel Erweiterter Euklidischer Algorithmus: Fortgesetzte Division mit Rest: φ (N) = 1018 * e + 706 e = 1 * 706 + 307 706 = 2 * 307 + 92 307 = 3 * 92 + 31 92 = 2 * 31 + 30 31 = 1 * 30 + 1 30 = 30 * 1 + 0 (ggT = 1 – muss wegen Teilerfremdheit so sein) Berechne den Entschlüsselungsexponenten d als multiplikativ Inverses von e bezüglich des Moduls φ (N). Es soll also gelten: e · d = 1 mod φ (N) Die Berechnung erfolgt mit Hilfe des erweiterten Euklidischen Algorithmus. Erweiterter Euklidischer Algorithmus: Bestimmung der Linearkombination: 1 = 1 * 31 - 1 * 30 1 = 1 * 31 - 1 * (92 - 2 * 31) 1 = -1 * 92 + 3 * 31 1 = -1 * 92 + 3 * (307 - 3 * 92 ) 1 = 3 * 307 - 10 * 92 1 = 3 * 307 - 10 * (706 - 2 * 307 ) 1 = -10 * 706 + 23 * 307 1 = -10 * 706 + 23 * (e - 1 * 706 ) 1 = 23 * e - 33 * 706 1 = 23 * e - 33 * (φ (N) - 1018 * e ) 1 = - 33 * φ (N) + 33617 * e Im Beispiel: Es muss gelten: e · d + k · φ (N) = 1 = ggT( e, φ (N) ) (wg. Teilerfremdheit) konkret: 1.013 · d + k · 1.031.940 = ggT(1.013, 1.031.940 ) StD März, März 2012

Erzeugung von privatem und öffentlichem Schlüssel Erweiterter Euklidischer Algorithmus: Fortgesetzte Division mit Rest: φ (N) = 1018 * e + 706 e = 1 * 706 + 307 706 = 2 * 307 + 92 307 = 3 * 92 + 31 92 = 2 * 31 + 30 31 = 1 * 30 + 1 30 = 30 * 1 + 0 (ggT = 1 – muss wegen Teilerfremdheit so sein) Berechne den Entschlüsselungsexponenten d als multiplikativ Inverses von e bezüglich des Moduls φ (N). Es soll also gelten: e · d = 1 mod φ (N) Die Berechnung erfolgt mit Hilfe des erweiterten Euklidischen Algorithmus. Erweiterter Euklidischer Algorithmus: Bestimmung der Linearkombination: 1 = 1 * 31 - 1 * 30 1 = 1 * 31 - 1 * (92 - 2 * 31) 1 = -1 * 92 + 3 * 31 1 = -1 * 92 + 3 * (307 - 3 * 92 ) 1 = 3 * 307 - 10 * 92 1 = 3 * 307 - 10 * (706 - 2 * 307 ) 1 = -10 * 706 + 23 * 307 1 = -10 * 706 + 23 * (e - 1 * 706 ) 1 = 23 * e - 33 * 706 1 = 23 * e - 33 * (φ (N) - 1018 * e ) 1 = - 33 * φ (N) + 33617 * e d Im Beispiel: Es muss gelten: e · d + k · φ (N) = 1 = ggT( e, φ (N) ) (wg. Teilerfremdheit) konkret: 1.013 · d + k · 1.031.940 = ggT(1.013, 1.031.940 ) StD März, März 2012

Erzeugung von privatem und öffentlichem Schlüssel Durch Kombination der Zahlen e und d mit dem RSA-Modul N können die Schlüssel gebildet werden: Der öffentliche Schlüssel (public key) ist das Zahlenpaar (e,N) Der private Schlüssel (private key) ist das Zahlenpaar (d,N) Im Beispiel: public key: (1.013, 1.040.257) private key: (33617, 1.040.257) StD März, März 2012

Sicherheit Das RSA-Modul N ist als Teil des öffentlichen Schlüssels allgemein bekannt. Wäre es nun leicht möglich, N in seine beiden Primfaktoren zu zerlegen, wäre die Berechnung des geheimen Schlüssels kein Problem. Die Sicherheit des Verfahrens steht und fällt daher mit der Möglichkeit bzw. Unmöglichkeit Primfaktorisierungen effizient zu berechnen. StD März, März 2012

RSA Kodierung StD März, März 2012

Aufbereitung des Klartexts 67: C 68: D 69: E 70: F 71: G 72: H 73: I 74: J 75: K 76: L 77: M 78: N 79: O 80: P 81: Q 82: R 83: S 84: T 85: U 86: V 87: W 88: X 89: Y 90: Z Der Klartext muss in Zahlen umgesetzt werden. Geeignet ist z.B. der ASCII-Code (A:65, B:66,….). Klartext: FKG, WÜRZBURG Aufbereitung: F K G W U E R Z B U R G Umsetzung: 707571878569829066858271 Aufspaltung: 707571 878569 829066 858271 StD März, März 2012

Anwendung des öffentlichen Schlüssels Um eine Nachricht K zu verschlüsseln, verwendet der Absender die Formel (modulare Potenzierung). C = Ke mod N und erhält so aus dem Klartext K den Geheimtext C. K muss dabei kleiner sein als der RSA-Modul N. Im Beispiel: 7075711013 mod 1040257 = 430991 8785691013 mod 1040257 = 272418 8290661013 mod 1040257 = 906704 8582711013 mod 1040257 = 621234 (Die Rechnungen können mit ARIBAS nachvollzogen werden.) StD März, März 2012

Interpretation des Geheimtextes Der Geheimtext stellt keinen Text im eigentlichen Sinne dar. So ist z.B. 09 kein druckbares Zeichen. ASCII-Codes unter 32 stellen Steuerzeichen z.B. für die Ansteuerung eines Druckers dar. 09 entspricht einem Tabulator, ein Drucker wurde also einen Tabulatorsprung machen. Weitere: 10 LineFeed, 13 CarriageReturn etc. Der Geheim"text" ist also lediglich ein Datenstrom, ein Bitmuster. StD März, März 2012

RSA Dekodierung StD März, März 2012

Entschlüsseln mit dem privaten Schlüssel Der Geheimtext C kann durch modulare Potenzierung wieder zum Klartext K entschlüsselt werden. Der Empfänger benutzt die Formel K = Cd mod N mit dem nur ihm bekannten Wert d sowie N. Im Beispiel: 43099133617 mod 1040257 = 707571 27241833617 mod 1040257 = 878569 90670433617 mod 1040257 = 829066 62123433617 mod 1040257 = 858271 (Die Rechnungen können mit ARIBAS nachvollzogen werden.) StD März, März 2012

Rekonstruktion des Klartextes 66: B 67: C 68: D 69: E 70: F 71: G 72: H 73: I 74: J 75: K 76: L 77: M 78: N 79: O 80: P 81: Q 82: R 83: S 84: T 85: U 86: V 87: W 88: X 89: Y 90: Z Das Bitmuster 707571 878569 829066 858271 wird in zweistellige Zahlen aufgeteilt und mittels ASCII-Code wieder als Text geschrieben. Geheimtext: 707571 878569 829066 858271 Aufbereitung: 70 75 71 87 85 69 82 90 66 85 82 71 Umsetzung: F K G W U E R Z B U R G Klartext: FKG, WÜRZBURG StD März, März 2012

RSA Assymetrie StD März, März 2012

„Entschlüsseln“ mit dem öffentlichen Schlüssel Die Anwendung des öffentlichen Schlüssels zu einem Entschlüsselungsversuch, etwa mittels K = Ce mod N führt nicht zum Ziel. Im Beispiel: 4309911013 mod 1.040.257 = 669392 669392 ergäbe B]\ statt FKG ! (Die Rechnung kann mit ARIBAS nachvollzogen werden.) StD März, März 2012

Sicherheit Das dargestellte Verfahren dient zur Demonstration. Es erfüllt bei Weitem nicht die heutigen Ansprüche an sichere Datenübertragung und wird in der Praxis nicht wie oben beschrieben eingesetzt, da es mehrere Schwächen hat. Mögliche Angriffspunkte und Verbesserungen sind im Artikel "RSA-Kryptosystem" der Wikipedia beschrieben. http://de.wikipedia.org/wiki/RSA-Kryptosystem StD März, März 2012