Einleitung

Neben der Ver- und Entschlüsselung von Nachrichten, kann der RSA-Algorithmus auch genutzt werden, um Nachrichten zu "signieren". Dies kann man sich wie die handschriftliche Unterschrift auf einem Dokument vorstellen[1]. Eine solche Signatur verfolgt zwei Sicherheitsziele: Authentizität und Verbindlichkeit[1].

Bei der RSA-Signatur wird ein privater Schlüssel mittels eines Signaturalgorithmus auf einen Klartext   angewendet und die signierte Nachricht kann mit dem öffentlichen Schlüssel

Authentizität, Verbindlichkeit und Vertraulichkeit
Authentizität
Der Empfänger einer Nachricht kann sich davon überzeugen, dass

die erhaltene Nachricht von einem eindeutigen Sender stammt[2].

Verbindlichkeit
Der Empfänger der Nachricht kann Dritten gegenüber nachweisen,

dass die Nachricht von einem bestimmten Sender stammt[3].

Vertraulichkeit
Höchstens Sender und Empfänger können den Inhalt des

Klartextes einer übermittelten Nachricht verstehen[1].

des Senders mittels eines Verifikationsalgorithmus verifiziert werden und gibt den Klartext   aus. Die signierte Nachricht kann also von Dritten, die die Nachricht abfangen, gelesen werden, da der Verifikationsschlüssel öffentlich ist[4]. Um Vertraulichkeit zu gewährleisten, muss man daher ein sicheres Verschlüsselungsverfahren, wie das RSA-Verschlüsselungsverfahren, auf die bereits signierte Nachricht angewendet werden[4].

RSA-Signaturverfahren

Analog zu den drei Algorithmen des RSA-Algorithmus zur Verschlüsselung von Klartexten, besteht das digitales RSA-Signaturverfahren aus diesen drei Algorithmen. Nur die Notation und die Reihenfolge der Algorithmen müssen wir ändern[4].

RSA-Algorithmus und Erweiterter euklidischer Algorithmus
RSA-Verschlüsselungsalgorithmus
Seien   und der öffentliche Schlüssel   und der private Schlüssel  
  1. Schlüsselerzeugungsalgorithmus: identisch[5]
  2. Verschlüsselungsalgorithmus:  
  3. Entschlüsselungsalgorithmus:  [6][4]


Erweiterte euklidische Algorithmus
Der erweiterte euklidische Algorithmus wird auf zwei Zahlen   angewandt und besteht aus zwei Teilen:
  1. Berechnung des   (auch als euklidischer Algorithmus bekannt[7]),
  2. Berechnung zweier ganzer Zahlen   und  , welche die Gleichung   erfüllen[8].
  1. Schlüsselerzeugungsalgorithmus,
    • Wir wählen   prim und bestimme   und  
    • Wir wählen ein den Verifikationsexponenten   mit   mit   und erhalten den öffentlichen Verifikationsschlüssel  
    • Wir berechnen den privaten Signaturschlüssel   mit dem Signierexponenten  , indem wir das multiplikative Inverse von   bezüglich   mit dem erweiterten euklidischen Algorithmus berechnen
  2. Signieralgorithmus,
    • Wir signieren einen kodierten Klartext  , indem wir diesen mit dem privaten Signierexponenten   potenzieren und die signierte Botschaft   erhalten,
      •  
  3. Verifikationsalgorithmus,
    • Die signierte Nachricht können wir mit dem Verifikationsalgorithmus erneut in den Klartext   umwandeln und die Authentizität und Verbindlichkeit verifizieren
      •  [4]

Bemerkung: Es gelten die identischen Anforderungen an den Klartext und die signierte Botschaft, wie beim RSA-Verschlüsselungsverfahren. Im Gegensatz zur RSA-Verschlüsselung signieren (bzw. "verschlüsseln") wir bei der RSA-Signatur der Klartext mit dem privaten, statt dem öffentlichen Schlüssel. Mit dem dem öffentlichen Schlüssel verifizierten(bzw. "entschlüsseln") wir eine signierte Nachricht[4].

Authentizität und Verbindlichkeit garantiert das Verfahren, da der Empfänger nach der Verifikation über das Nachrichten-Signatur-Paar   verfügt. Dieses Nachrichten-Signatur-Paar   besitzt zwei wichtige Eigenschaften:

  1. Der Klartext   muss von einem bestimmten Sender stammen, da nur dieser Sender über den Signierexponenten   verfügt, der   generiert und nur dessen Verifikationsschlüssel die signierte Nachricht verifiziert. Das Verfahren ist authentisch.
  2. Der Empfänger kann Dritten gegenüber beweisen, dass sich die signierte Nachricht   mit dem öffentlichen Verifikationsschlüssel des bestimmten Senders verifizieren lässt. Das Verfahren ist verbindlich[3].

Korrektheit der RSA-Signatur

Die vertauschte Verwendung der Schlüssel im Vergleich von RSA-Signatur- und RSA-Verschlüsselungsverfahren spielt wegen   nach Beweis der Korrektheit des RSA-Verschlüsselungsverfahrens keine Rolle für den Beweis der Korrektheit des RSA-Verschlüsselungsverfahrens und kann somit auf die Korrektheit des RSA-Signaturverfahrens angewandt werden. Der folgende Beweis unterscheidet sich also nur durch die Notation vom Beweis der Korrektheit des RSA-Verschlüsselungsverfahrens.

Beweis Korrektheit der RSA-Signatur
Voraussetzung

Seien   prim,    ,   und  

Zu zeigen

RSA-Algorithmus entschlüsselt korrekt, d.h. für alle   gilt  

Beweis

Laut Voraussetzung gilt:

 

 , nach Voraussetzung  

 , wegen der Multiplikativität der  -Funktion

 , wegen Satz 2 Eigenschaft der  -Funktion bei Primzahlen

  mit   und wegen der Definition der Kongruenz und Teilbarkeit.


Wir unterscheiden zunächst zwei Fälle:

  und  .


Fall 1: Sei  :

 

 

 , nach   mit  

 

 , da nach dem Satz von Euler gilt  

 .

Wir müssen nun also nur noch den zweitem Fall betrachten.


Fall 2: Sei  .

Wegen   gilt dann also entweder   oder  .

Hier ist der Satz von Euler nicht anwendbar, wegen  .

Wenn wir jedoch trotzdem zeigen, dass

  und  , dann können wir (wegen  ) den chinesischen Restsatz anwenden und erhalten:

 

 , wegen  .


Wir zeigen dies nun für den Fall  , dass gilt:

  und  .

Sei  .

Es gilt dann nach Definition der größten gemeinsamen Teilers   bzw. nach Definition der Teilbarkeit   mit  .

Wir zeigen zunächst   für  

Dann gilt nach Definition der Kongruenz aber auch  .

Nun betrachten wir  .

 

 

 , da   ein Vielfaches von   ist.

Also gilt   und insgesamt

 .

Nun bleibt noch zu zeigen, dass   für  .

Da  , kann man den Satz von Euler anwenden.

 

 

 

 , nach  :   (in umgestellter Form)

 

 

 

 , nach dem Satz von Euler

 .

Also gilt für  :  .

Nun können wir den chinesischen Restsatz anwenden:

 

 , wegen  .

Wir haben also nun gezeigt, dass das RSA-Verschlüsseungsverfahren für   korrekt ist. Dies können wir für   analog zeigen, indem wir in der Notation   und   vertauschen. Sie können dies freiwillig eigenständig durchführen.

Damit haben wir die Korrektheit des RSA-Verschlüsseungsverfahrens für alle Fälle, nämlich   und  , gezeigt■[9][5]

Beispiel

Wir wollen den Klartext HALLO WELT. signieren.

Berechnung des privaten Signierschlüssels  
Sei   und  .

Berechnung  

 

 

 

 

 

Es gilt  .

Berechnung der Faktoren   und   mit  

 

 

 , da  

 

 , da  

 , da  

 , da  

 

 

  und  

Der private Signierschlüssel ist  


Wir übernehmen die Kodierung des Klartextes aus dem Beispiel zur Verschlüsselung mit dem RSA-Verschlüsselungsverfahren.

Sei also  [10].

  1. Schlüsselerzeugungsalgorithmus
    • Der Schlüsselerzeugungsalgorithmus wurde bereits im Beispiel zur Schlüsselerzeugung des RSA-Verschlüsselungsverfahrens besprochen und wir übernehmen die dort gewählten und Primzahlen und erhalten:
      •   und  
      •  
      •  
      •   mit dem öffentlichen Verifikationsschlüssel  
      •   mit dem privaten Signierschlüssel  [10]
  2. Signieralgorithmus
    • Wir setzen den Signierexponenten   und das RSA-Modul   des privaten Schlüssels   in den Signieralgorithmus   ein und erhalten  .
    • Nun wird jeder Block des Klartextes einzeln mit dem Signieralgorithmus   signiert und man erhält
      •  ,  ,  ,   und  
      • Man erhält die signierten Blöcke   und den signierten Text  .
  3. Verifikationsalgorithmus
    • Will nun der Empfänger der signierten Nachricht diese verifizieren, so wendet er unseren öffentlichen Verifikationsschlüssel   auf den Verifikationsalgorithmus  an und erhält  .
    • Nun kann jeder signierte Block der signierten Nachricht einzeln verifiziert werden:
      •  ,  ,  ,   und  
      • Man erhält die verifizierten Blöcke   und somit den verifizierten und matheuatisierten Klartext  .
        • Der Klartext kann nun durch die Dekodierung in seine ursprüngliche Form umgewandelt werden

Lernaufgabe

Aufgabe

Berechnen Sie Signatur und Verifikation der Elemente aus dem Beispiel zu hybriden Verschlüsselungsverfahren mit der RSA-Signatur.

  1.  
  2.  

Wählen Sie entweder den privaten Schlüssel   und den öffentlichen Schlüssel   oder erzeugen Sie Ihre eigenen Schlüssel.

Benutzen Sie für   die Zeichenkodierung   aus dem Beispiel zum Caesar-Verschlüsselungsverfahren (siehe Tabelle 1):

Tabelle 1: Zuordnung der Zeichenkodierung  
Klartext (Definitionsmenge) 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
Zugeordnete Zahl (Zielmenge) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
Schlüsselerzeugung für   und  
Schlüsselerzeugung für  

Wir wählen   und  .

Berechnung von  :

 .

Berechnung von  :

 

Wahl des öffentlichen Schlüssels:

Wir wählen  , da   und erhalten den öffentlichen Schlüssel  .

Berechnung des privaten Schlüssels:

Wir berechnen das multiplikative Inverse   zu   mit dem erweiterten euklidischen Algorithmus:

Gleichung 1:  

Gleichung 2:  

Gleichung 3:  

Gleichung 4:  

Gleichung 5:  

Gleichung 6:  

Nun können wir die Gleichungen nutzen, um   zu berechnen:

 

 

 , nach Gleichung 3 und 4

 

 , nach Gleichung 2 und 3

 

 , nach Gleichung 2

 

 

 , nach Gleichung 1

 

 

Eigentlich gilt nun  . Wir haben jedoch das Problem, dass wir in unseren Verschlüsselungsalgorithmus der RSA-Signatur nur Standardrepräsentanten einsetzen können. Wir müssen also kleinste positive Zahl der Restklasse   wählen. Die einfachste Möglichkeit dieses Element zu berechnen ergibt sich aus  . Es gilt also   und wir wählen  . Der private Schlüssel ist daher  .

Lösung
Lösung für  

Wir signieren   mit dem Verschlüsselungsalgorithmus der RSA-Signatur  :

 

 .

Nun verifizieren wir die Signatur mit dem öffentlichen Schlüssel   und dem Entschlüsselungsalgorithmus   der RSA-Signatur:

 

 .

Lösung für  

Bevor wir   signieren können, müssen wir den Klartext in ein numerisches Alphabet übertragen.

Wir definieren unsere Definitions- und Zielmenge:

  mit  

 

und unseren Zeichenkodierung  :

  mit  ,  , ...   (vgl. Tabelle 1).

Analog zum Beispiel der Caesar-Verschlüsselung erhalten wir

 .

Insgesamt erhalten wir den Klartext   und signieren diesen mit dem privaten Schlüssel   und dem Verschlüsselungsalgorithmus   der RSA-Signatur.

Zuvor müssen wir den Klartext jedoch noch in Blöcke kleiner   unterteilen:

 .

Nun kann der Klartext signiert werden.

 

 

 

 

 

Die einzelnen Blöcke werden nun mit dem öffentlichen Schlüssel   und dem Entschlüsselungsalgorithmus   der RSA-Signatur verifiziert:

 

 

 

 

 

und wir erhalten  .

Lernempfehlung

Kursübersicht
Übergeordnete Lerneinheit
6: RSA-Kryptosystem
Vorherige Lerneinheit Aktuelle Lerneinheit Empfohlene Lerneinheit
8: Korrektheit des RSA-Verschlüsselungsverfahrens 9: RSA-Signatur 10: Hybride Verschlüsselungsverfahren

Literatur

  1. 1,0 1,1 1,2 Diffie, W., & Hellman, M. (1976). New directions in cryptography. IEEE Transactions on Information Theory, 22(6) (S. 644–654). S. 644.
  2. Diffie, W., & Hellman, M. (1976). New directions in cryptography. IEEE Transactions on Information Theory, 22(6) (S. 644–654). S. 645.
  3. 3,0 3,1 Rivest, R. L., Shamir, A., & Adleman, L. (1978). A method for obtaining digital signatures and public-key cryptosystems. Communications of the ACM, 21(2) (S. 120–126). S. 121.
  4. 4,0 4,1 4,2 4,3 4,4 4,5 Rivest, R. L., Shamir, A., & Adleman, L. (1978). A method for obtaining digital signatures and public-key cryptosystems. Communications of the ACM, 21(2), 120–126. S.122.
  5. 5,0 5,1 Rivest, R. L., Shamir, A., & Adleman, L. (1978). A method for obtaining digital signatures and public-key cryptosystems. Communications of the ACM, 21(2) (S. 120–126). S. 123.
  6. Seite „RSA-Kryptosystem“. In: Wikipedia, Die freie Enzyklopädie. Bearbeitungsstand: 15. Dezember 2019, 19:39 UTC. URL: https://de.wikipedia.org/w/index.php?title=RSA-Kryptosystem&oldid=194933568 (Abgerufen: 10. Januar 2020, 10:40 UTC; Formulierung verändert)
  7. Lehman, E., Leighton, T., & Meyer, A. R. (2010). Mathematics for computer science. Technical report, 2006. Lecture notes. S. 249.
  8. Kurzweil, H. (2008). Endliche Körper: Verstehen, rechnen, anwenden (2., überarb. Aufl). Springer. S. 57.
  9. Beweisarchiv: Kryptografie: Kryptosysteme: Korrektheit des RSA-Kryptosystems. (16. Juni 2013). Wikibooks, Die freie Bibliothek. Abgerufen am 10. Januar 2020, 12:20 von https://de.wikibooks.org/w/index.php?title=Beweisarchiv:_Kryptografie:_Kryptosysteme:_Korrektheit_des_RSA-Kryptosystems&oldid=674922. (Formulierung verändert)
  10. 10,0 10,1 Kryptologie/Verschlüsselungsalgorithmus des RSA-Verfahrens. (10. Januar 2020). Wikiversity, . Abgerufen am 16. Januar 2020, 12:08 von https://de.wikiversity.org/w/index.php?title=Kryptologie/Verschl%C3%BCsselungsalgorithmus_des_RSA-Verfahrens&oldid=609331.