Zur Hauptnavigation springen [Alt]+[0] Zum Seiteninhalt springen [Alt]+[1]

Das RSA-Verfahren

 

Abschließend wird als real benutztes Verfahren das RSA-Verfahren im Rahmen des Arbeitsblattes Das RSA-Verfahren vorgestellt.

Bemerkung: Im Zusammenhang mit dem RSA-Verfahren kann auch der Schlüsselaustausch nach Diffie-Hellman als ein weiteres Beispiel für ein asymmetrisches Verfahren behandelt werden. Dies ist auch aus historischer Sicht interessant. Wenn dies im Rahmen der RSA-Einheit thematisiert werden soll (was durchaus sinnvoll ist), so kann hier das Arbeitsblatt 02_iud_ab_asym_RSA aus der Einheit „Informationsgesellschaft und Datensicherheit (iud)“ verwendet werden.

Eine Liste verfügbarer Primzahlen, bei denen noch mit geringen Hilfmitteln gerechnet werden kann, findet man im Internet, z.B. bei Walter Fendt; ebenso ASCII-Tabellen der Buchstaben und Zahlen.

Um die Komplexität zu reduzieren, wird hier in diesem Unterrichtsgang lediglich der Kommunikationsweg A → B betrachtet, nicht die beiderseitige Kommunikation. Nachdem der Unterrichtsgang bis hier verfolgt wurde, kann die Erweiterung auf eine beiderseitige Kommunikation aufgesetzt werden.

Tiefergehende Hintergrundinformationen zu grundlegenden Fragen:

Wie sicher ist RSA?

Um den Algorithmus anwenden zu können, muss der Benutzer das Produkt ( p - 1 ) ( q - 1 ) kennen. Der öffentliche Schlüssel informiert aber lediglich über die Zahl N (bestimmt als N = p · q ) und nicht über die beiden erzeugenden Primfaktoren p und q selbst. Diese müssten eben über Faktorisierung herausgefunden werden, Stichwort „Einwegfunktion“.

In der Praxis setzt man also N aus so großen Primfaktoren zusammen, dass die Zerlegung selbst mit leistungsfähigen Computern Jahre dauern würde (siehe Info in den Arbeitsblättern).

Da das Problem der Faktorisierung prinzipiell gelöst werden kann, bedeutet das, dass RSA theoretisch gesehen nicht sicher ist. Es dauert eben nach derzeitigem Stand der Technik und Mathematik so lange, dass die Information bis zum Zeitpunkt der Lösung nicht mehr relevant ist (diesen generellen Aspekt von „Sicherheit“ lohnt es sich durchaus, im Unterricht zu thematisieren: Auch z.B. Tresore werden mit einer Garantie verkauft, wie lange sie unbefugten Öffnungsversuchen widerstehen können).

In dieser Hinsicht ist also RSA solange sicher, bis ein entsprechend schneller Algorithmus für die Primfaktorzerlegung gefunden ist.

Bemerkung zu Diskrepanzen im Vergleich zu realem RSA

Beim zur Verfügung gestellten Arbeitsblatt werden jeweils nur einzelne Zahlen (nämlich die Dezimalcodes der Buchstaben nach der ASCII-Tabelle) mit RSA verschlüsselt.

  • In der Regel werden keine Dezimal-, sondern Hexadezimalzahlen verwendet. Für das RSA-Prinzip ist dieser Unterschied jedoch nicht von Bedeutung
  • In der Realität macht eine RSA-Verschlüsselung der einzelnen Zeichen keinen Sinn: Würde so verschlüsselt werden, so ergäbe sich eine eindeutige Zuordnung der Klar- und Geheimbuchstaben wie im monoalphabetischen Fall. Dies würde die Errungenschaften von RSA zunichte machen, da man nun mit einer einfachen Häufigkeitsanalyse angreifen könnte. Das bedeutet, dass in der Realität die ASCII-Codes maskiert werden müssen. Hierzu gibt es verschiedenste Möglichkeiten, wobei sich eine häufig gebrauchte oder gar einheitliche Methode nicht angeben lässt. Eine mögliche sei hier beschrieben (aufbauend auf Joachim Mohr, 06.07.2020):

    • Die Buchstaben werden z.B. in 2er-Gruppen zusammengefasst. Die ASCII-Codes werden z.B. maskiert, indem man die Zahl des zweiten Buchstabens mit einer Zahl multipliziert, die größer ist als die größte zu verschlüsselnde Zahl (ASCII besitzt 255 Zeichen, also Multiplikation mit einer Zahl z > 255). Danach wird das Ergebnis zur ersten Zahl (des ersten Buchstabens) addiert.

      Beispiel: Verschlüsselt werden soll ZPG IMP.

      2er-Gruppen:ZP GI MP.

      Nach der ASCII-Tabelle ergibt sich 136 126 117 119 123 126.

      Nun wird maskiert mit z.B. 256:

      136 + 126 · 256 = 32392

      117 + 119 · 256 = 30581

      123 + 136 · 256 = 34939

    • Diese Zahlen werden nun mit RSA ver- und entschlüsselt. Um die ursprüngliche Kombination wieder zu erhalten, bestimmt man (hier am ersten Beispiel durchgeführt) 32392  mod  256 = 136 , bestimmt daraus den Faktor 126 und hat so beide ursprünglichen ASCII-Codes zurückgewonnen. Ein ausführliches Beispiel ist unter der o.g. Quelle einsehbar.
  • Hier sind weitere Möglichkeiten denkbar, z.B. die Zusammenfassung größerer Buchstabengruppen mit der Maskierung durch Multiplikation mit Potenzen der gewählten Zahl. Bsp.: ZPG IMP mit 3er-Gruppen und gewählter Zahl 301 ergibt die mit RSA zu verschlüsselnden Zahlen:

    136 + 126 · 301 + 117 · 301 2 = 10.638.379 und

    119 + 123 · 301 + 126 · 301 2 = 11.452.868

    Demaskierung würde hier erfolgen (am ersten Beispiel) durch 10.638.379  mod  301 2 und anschließend den erhaltenen Rest mod  301 inklusive der Bestimmung der Faktoren 117 im ersten Schritt und 126 im zweiten Schritt.

Das RSA-Verfahren durchzuführen ist mit den besprochenen Inhalten nun problemlos möglich. Schwieriger wird es jedoch, wenn man die Frage nach dem grundlegenden mathematischen Fundament des RSA-Verfahrens stellt: Warum funktioniert RSA? Welche Zusammenhänge müssen dazu bewiesen werden? Hierbei stößt man sehr schnell an die Grenzen dessen, was in der Schule machbar ist.

Hier als Anregung einige grundlegenden Sätze und der Beweis zur Korrektheit von RSA:

Grundlegende Sätze

  1. Die Euler'sche φ -Funktion

    Ist n eine natürliche Zahl, so gibt φ ( n ) die Anzahl der zu n teilerfremden Zahlen an, die nicht größer als n sind. Damit ist insbesondere klar: Ist p eine Primzahl, so ist p teilerfremd zu den Zahlen 1 bis p - 1 . Daher gilt für Primzahlen p φ ( p ) = p 1 . Für teilerfremde Zahlen m und n gilt: φ ( n ) φ ( m ) = φ ( n m ) . Daher gilt für Primzahlen p und q : φ ( p q ) = φ ( p ) φ ( q ) = ( p 1 ) ( q 1 ) . Beweise zur Euler'schen φ -Funktion sind sehr langwierig und in diesem Zusammenhang nicht weiterführend. Deshalb sei hier für Interessierte auf die gängige Fachliteratur verwiesen.

  2. Der Satz von Fermat-Euler und der kleine Satz des Fermat

    Satz von Fermat-Euler: Für a , m gilt: ggT ( a , m ) = 1 a φ ( m ) 1  mod  m

    Einen Spezialfall davon stellt der kleine Fermat'sche Satz dar:

    Ist p eine Primzahl und a , gilt: ggT ( a , p ) = 1 a p - 1 1  mod  p .

    Bem.: Satz von Fermat-Euler für m = p , da φ ( q ) = ( p 1 )

    Der Beweis des Satzes von Fermat-Euler geht über das in Klasse 10 Mögliche hinaus. Eine mögliche kombinatorische Variante (als „Kettenbasteln“) kann evtl. für sehr interessierte SuS thematisiert werden. Diese und einige weitere Beweismöglichkeiten findet man unter https://de.wikibooks.org/wiki/Beweisarchiv:_Zahlentheorie:_Elementare_Zahlentheorie:_Kleiner_Satz_von_Fermat

Der Beweis: Warum funktioniert RSA?

Die Beweise zur theoretischen Begründung der Korrektheit des RSA-Verfahrens sind ebenfalls oft aufwändig und mathematisch in der Schule nicht durchführbar. Hier jedoch eine mögliche Skizze, die man (unter Auslassung der Beweise zur Euler'schen Funktion) schrittweise nachvollziehen kann:

Die Botschaft B wird zum Geheimtext S verschlüsselt durch Berechnung von B e  mod  N ( = S ) . Die Entschlüsselung wird vorgenommen durch S d  mod  N ( = B ) . Also gilt: S d  mod  N = ( B e  mod  N ) d  mod  N = B e d  mod  N .

Dabei war d das (modulare) multiplikative Inverse zu e bezüglich mod  ( p 1 ) ( q 1 ) und es gilt: ( e d )  mod  φ ( N ) = 1 ( ( e d )  mod  φ ( p q ) = ( e d )  mod  ( p - 1 ) ( q - 1 ) = 1 ) .

Mit N = p · q und φ ( p · q ) = ( p - 1 ) · ( q - 1 ) gilt die die Beziehung: e · d = k · φ ( N ) + 1 = k · φ ( p · q ) + 1 = k · ( p - 1 ) · ( q - 1 ) + 1 und somit: e · d  mod  φ ( N ) = ( k · ( p - 1 ) · ( q - 1 ) + 1 )  mod  φ ( N ) .

Wir erinnern uns: Der entschlüsselte Geheimtext war: S d  mod  N = ( B e ) d = B e d  mod  N .

Wenn RSA funktionieren soll, muss also gelten: B e d  mod  N = B . Mit der obigen Beziehung: e · d = k · ( p - 1 ) · ( q - 1 ) + 1 muss also gelten: B k · ( p - 1 ) · ( q - 1 ) + 1  mod  N = B .

Zusammenfassend die zu beweisende zentrale Aussage (Korrektheit von RSA):

Es seien p , q verschiedene Primzahlen und B  mit  B < p · q .

Dann gilt für jede Zahl k : B k · ( p - 1 ) · ( q - 1 ) + 1  mod  p q = B .

Beweis1: Zunächst getrennt nach den Primzahlen p und q (1), (2), dann Zusammenführung (3):

  1. B k · ( p - 1 ) · ( q - 1 ) + 1  mod  p = B
  2. B k · ( p - 1 ) · ( q - 1 ) + 1  mod  q = B
  3. B k · ( p - 1 ) · ( q - 1 ) + 1  mod  p q = B
Zu:
  1. Mit den elementare Potenzregel a n + m = a n a m und ( a m ) n = a m n folgt: B k · ( p - 1 ) · ( q - 1 ) + 1 = B · B k · ( p - 1 ) · ( q - 1 ) = B · ( B ( p - 1 ) ) k ( q - 1 ) .

    Mit den Regeln für modulares Potenzieren, dem kleinen Fermat'schen Satz ggT ( p , B ) = 1 B p - 1 1  mod  p sowie ggT ( p , B ) = 1 , da p Primzahl und B < p ist, folgt: B k · ( p - 1 ) · ( q - 1 ) + 1  mod  p = B · ( B p - 1 ) k · ( q - 1 )  mod  p = B · ( B p - 1  mod  p ) k · ( q - 1 )  mod  p = B · ( 1  mod  p ) k · ( q - 1 )  mod  p = B · 1 k · ( q - 1 )  mod  p = B  mod  p .

    Zusammenfassend: B k · ( p - 1 ) · ( q - 1 ) + 1  mod  p = B  mod  p .

  2. Für q analog, lediglich mit anderer Sortierung im Exponenten.

    Zusammenfassend: B k · ( p - 1 ) · ( q - 1 ) + 1  mod  q = B  mod  q .

  3. N = p q : Hierzu führen wir der Übersichtlichkeit halber ein h := k · ( p - 1 ) · ( q - 1 ) + 1 .

    In den beiden in (1) und (2) erhaltenen Gleichungen B h  mod  p = B  mod  p und B h  mod  q = B  mod  q bringen wir jeweils B auf die andere Seite und erhalten: B h  mod  p B  mod  p = 0 und B h  mod  q B  mod  q = 0 .

    Mit Anwendung der Regel über modulare Addition folgt: ( B h - B )  mod  p = 0 und ( B h - B )  mod  q = 0 . Sowohl p als auch q teilen also B h - B .

    p und q sind jedoch verschiedene Primzahlen, also muss ( p · q ) die Zahl B h - B teilen.

    Mit den Rechenregel für modulares Addieren und B < p q gilt damit: ( B h B )  mod  ( p · q ) = 0 B h  mod  ( p · q ) B  mod  ( p · q ) = 0 B h  mod  ( p · q ) B = 0 B h  mod  ( p · q ) = B

Die einzelnen Schritte sind so mit den im Verlauf des Unterrichts bewiesenen Gesetzen begründet nachvollziehbar. Allerdings bleibt der Beweis aufwändig.

 

1 Angelehnt an http://www.mathematik-netz.de/pdf/RSA.pdf.

 

Unterrichtsverlauf: Herunterladen [odt][244 KB]

Unterrichtsverlauf: Herunterladen [pdf][615 KB]

 

Weiter zu Kopiervorlagen