RSA-Signaturverfahren: Unterschied zwischen den Versionen

Aus RMG-Wiki
Wechseln zu: Navigation, Suche
 
(9 dazwischenliegende Versionen von einem Benutzer werden nicht angezeigt)
Zeile 21: Zeile 21:
 
RSA wird gewöhnlich in Blöcken verschlüsselt, da für die Nachricht m gelten muss m < n. Mallory hat daher unter Umständen die Möglichkeit, einzelne Blöcke der Signatur zu entfernen, so dass sich beim Entschlüsseln dennoch ein sinnvoller, vermutlich aber sinnentstellter Text ergibt. Der Angriff ist also noch nicht abgewehrt.<br>
 
RSA wird gewöhnlich in Blöcken verschlüsselt, da für die Nachricht m gelten muss m < n. Mallory hat daher unter Umständen die Möglichkeit, einzelne Blöcke der Signatur zu entfernen, so dass sich beim Entschlüsseln dennoch ein sinnvoller, vermutlich aber sinnentstellter Text ergibt. Der Angriff ist also noch nicht abgewehrt.<br>
 
<br>
 
<br>
Eine mögliche Lösung für das Problem besteht in der Verwendung von sog. [[Benutzer:Deininger_Matthias/Facharbeit/Hashfunktion| Hashfunktion]], mit deren Hilfe es möglich ist, Nachrichten nahezu beliebiger Länge auf eine durch die [[Benutzer:Deininger_Matthias/Facharbeit/Hashfunktion| Hashfunktion]] festgelegte Größe zusammenzufassen. Dieses Zusammenfassen kann auch als „message digest“ bezeichnet werden.<br>
+
Eine mögliche Lösung für das Problem besteht in der Verwendung von sog. [[Benutzer:Deininger_Matthias/Facharbeit/Hashfunktion| Hashfunktionen]] H(m), mit deren Hilfe es möglich ist, Nachrichten nahezu beliebiger Länge auf eine durch die [[Benutzer:Deininger_Matthias/Facharbeit/Hashfunktion| Hashfunktion]] festgelegte Größe zusammenzufassen. Dieses Zusammenfassen kann auch als „message digest“ bezeichnet werden.<br>
 
<math>H(m) = h\ </math><br>
 
<math>H(m) = h\ </math><br>
Anschließend sollte der gebildete Hashwert, also die gehashte Nachricht mit oben beschriebenem Protokoll signiert werden, was dank der Kürze der kryptographischen Prüfsumme meist deutlich schneller möglich ist und überdies noch Speicherplatz spart. Dieses  
+
Anschließend sollte der gebildete Hashwert h, also die gehashte Nachricht mit oben beschriebenem Protokoll signiert werden, was dank der Kürze der kryptographischen Prüfsumme meist deutlich schneller möglich ist und überdies noch Speicherplatz spart. Dieses  
 
Vorgehen kann man als Hash-and-Sign-Verfahren bezeichnen.<br>
 
Vorgehen kann man als Hash-and-Sign-Verfahren bezeichnen.<br>
 
<br>
 
<br>
Wichtig ist hierbei zu erwähnen, dass es sich bei [[Benutzer:Deininger_Matthias/Facharbeit/Hashfunktion| Hashfunktion]] vermutlich um [[Benutzer:Deininger_Matthias/Facharbeit/Einwegfunktion |Einwegfunktionen]] handelt, die nicht effizient umkehrbar sind. <br>
+
Wichtig ist hierbei zu erwähnen, dass es sich bei [[Benutzer:Deininger_Matthias/Facharbeit/Hashfunktion| Hashfunktionen]] vermutlich um [[Benutzer:Deininger_Matthias/Facharbeit/Einwegfunktion |Einwegfunktionen]] handelt, die nicht effizient umkehrbar sind. <br>
 
<br>
 
<br>
 
Folglich sollte Alice neben dem signierten Hashwert auch die ursprüngliche Nachricht (Urbild) an Bob senden. <br>
 
Folglich sollte Alice neben dem signierten Hashwert auch die ursprüngliche Nachricht (Urbild) an Bob senden. <br>
 
<br>
 
<br>
Nach dem Erhalt der Nachricht von Alice empfiehlt es sich für Bob zunächst die Signatur von Alice zu verifizieren. Dazu kann Bob die Signatur mit Alices öffentlichem Schlüssel dechiffrieren, worauf er den Signaturhashwert erhält. Um zu überprüfen, ob die Originalnachricht oder die Signatur von Mallory verändert wurde, hat er die Möglichkeit, aus dem unverschlüsselten Klartext ebenfalls einen Hashwert zu bilden. Dazu sollte Bob, um ein verwertbares Ergebnis zu erhalten, die gleiche [[Benutzer:Deininger_Matthias/Facharbeit/Hashfunktion| Hashfunktion]], die auch Alice verwendet hat, anwenden. Die Information, welche [[Benutzer:Deininger_Matthias/Facharbeit/Hashfunktion| Hashfunktion]] von Alice verwendet wurde, ist in der Regel neben dem Hashwert in der Signatur enthalten. Anschließend kann Bob die Hashwerte vergleichen. Stimmen sie überein, wurde nichts verändert.<br>
+
Nach dem Erhalt der Nachricht von Alice, empfiehlt es sich für Bob, zunächst die Signatur von Alice zu verifizieren. Dazu kann Bob die Signatur mit Alices öffentlichem Schlüssel dechiffrieren, worauf er den Signaturhashwert erhält. Um zu überprüfen, ob die Originalnachricht oder die Signatur von Mallory verändert wurde, hat er die Möglichkeit, aus dem unverschlüsselten Klartext ebenfalls einen Hashwert zu bilden. Dazu sollte Bob, um ein verwertbares Ergebnis zu erhalten, die gleiche [[Benutzer:Deininger_Matthias/Facharbeit/Hashfunktion| Hashfunktion]], die auch Alice verwendet hat, anwenden. Die Information, welche [[Benutzer:Deininger_Matthias/Facharbeit/Hashfunktion| Hashfunktion]] von Alice verwendet wurde, ist in der Regel neben dem Hashwert in der Signatur enthalten. Anschließend kann Bob die Hashwerte vergleichen. Stimmen sie überein, wurde nichts verändert.<br>
Die [[Benutzer:Deininger_Matthias/Facharbeit/Hashfunktion| Hashfunktionen]] die unter der Bezeichnung SHA-2 (Secure Hash Algorithm) zusammengefasst werden und Hashwerte zwischen 224 und 512 Bit erzeugen, werden heutzutage häufig bei der digitalen Signatur eingesetzt.<br>
+
Die [[Benutzer:Deininger_Matthias/Facharbeit/Hashfunktion| Hashfunktionen]], die unter der Bezeichnung SHA-2 (Secure Hash Algorithm) zusammengefasst werden und Hashwerte zwischen 224 und 512 Bit erzeugen, werden heutzutage häufig bei der digitalen Signatur eingesetzt.<br>
<br>
+
<u>Frage:</u><br>
+
Wie könnte es Alice mit den bereits kennen gelernten Methoden erreichen, dass Mallory auch den mitgesendeten Klartext nicht lesen kann?<br>
+
 
<br>
 
<br>
 +
<div style = "background-color: #BEFF9E; border: 2px solid #E5CC00;border-color: green;padding:5px;">
 +
<u>Aufgabe:</u><br>
 +
Wie könnte es Alice mit den bereits kennen gelernten Methoden erreichen, dass Mallory auch den mitgesendeten Klartext nicht lesen kann?</div><br>
 
<popup name="Lösung">
 
<popup name="Lösung">
 
Zunächst sollte Alice die Nachricht signieren und anschließend sowohl Nachricht als auch Signatur mit dem öffentlichen Schlüssel von Bob verschlüsseln. Man spricht hier auch von einem kryptographischen Umschlag.<br>
 
Zunächst sollte Alice die Nachricht signieren und anschließend sowohl Nachricht als auch Signatur mit dem öffentlichen Schlüssel von Bob verschlüsseln. Man spricht hier auch von einem kryptographischen Umschlag.<br>
Zeile 45: Zeile 45:
 
&copy; Klaus Schmeh aus "Kryptografie. Verfahren–Protokolle–Infrastrukturen" </div>
 
&copy; Klaus Schmeh aus "Kryptografie. Verfahren–Protokolle–Infrastrukturen" </div>
 
<br>
 
<br>
Um Problemen bei der Signierung vorzubeugen, sollten Alice und Bob zur Signatur ein gesondertes Schlüsselpaar generieren, so dass für Alice, wie auch für Bobs Schlüssel gilt:<br>
+
Um Problemen bei der Signierung vorzubeugen, sollten Alice und Bob zur Signatur ein gesondertes Schlüsselpaar generieren, so dass für den Schlüssel von Alice, wie auch den von Bob gilt:<br>
 
<br>
 
<br>
 
<math>n_{Signieren}< t\ und\ n_{Verschluesseln}\ge t\ ; t \in \N</math>, wobei t in Absprache zwischen Alice und Bob festgelegt wird.<br>
 
<math>n_{Signieren}< t\ und\ n_{Verschluesseln}\ge t\ ; t \in \N</math>, wobei t in Absprache zwischen Alice und Bob festgelegt wird.<br>
Zeile 55: Zeile 55:
 
Die gerade vorgestellte digitale Signatur stellt eine zentrale Ergänzung zur RSA-Verschlüsselung dar, weil die digitale Signatur dazu beiträgt, die generellen Ziele der Kryptographie zu erfüllen.<br>
 
Die gerade vorgestellte digitale Signatur stellt eine zentrale Ergänzung zur RSA-Verschlüsselung dar, weil die digitale Signatur dazu beiträgt, die generellen Ziele der Kryptographie zu erfüllen.<br>
 
Mit der digitalen Signatur lässt sich durch zusätzliche normale RSA-Verschlüsselung  
 
Mit der digitalen Signatur lässt sich durch zusätzliche normale RSA-Verschlüsselung  
Vertraulichkeit erreichen. Darüber hinaus ist in der Regel die von Alice und Bob gewünschte  
+
'''Vertraulichkeit''' erreichen. Darüber hinaus ist in der Regel die von Alice und Bob gewünschte  
Authentizität gewährleistet, wobei man hier einmal die Teilnehmerauthentizität (peer entity authentication) und die Nachrichtenauthentizität (message authentication ) unterscheiden kann. Ersteres garantiert, dass ein Teilnehmer eindeutig identifiziert werden kann und Zweiteres stellt sicher, dass der Ursprung einer Nachricht zweifelsfrei ermittelt werden kann.
+
'''Authentizität''' gewährleistet, wobei man hier einmal die Teilnehmerauthentizität (''peer entity authentication'') und die Nachrichtenauthentizität (''message authentication'') unterscheiden kann. Ersteres garantiert, dass ein Teilnehmer eindeutig identifiziert werden kann und das zweite Verfahren stellt sicher, dass der Ursprung einer Nachricht zweifelsfrei ermittelt werden kann.
Darüber hinaus können Dateien nicht unbemerkt verändert werden, was das Ziel der Integrität erfüllt. Zuletzt ist gegenüber einem unabhängigen Dritten auch eindeutig nachweisbar, dass eine Datei die B von A erhalten hat, wirklich von A stammt, somit ist auch Verbindlichkeit gegeben.<ref>vgl. [1, S.2]</ref> <br>
+
Darüber hinaus können Dateien nicht unbemerkt verändert werden, was das Ziel der '''Integrität''' erfüllt. Zuletzt ist gegenüber einem unabhängigen Dritten auch eindeutig nachweisbar, dass eine Datei die Bob von Alice erhalten hat, wirklich von Alice stammt, somit ist auch '''Verbindlichkeit''' gegeben.<ref>vgl. [1, S.2]</ref> <br>
 
<br>
 
<br>
 
Doch wer gewährleistet eigentlich, dass die Schlüsselpaare, die verwendet werden, auch wirklich den realen Personen gehören, für die sie sich ausgeben. Auf das Beispiel bezogen: Wer kann sicherstellen, dass Bob auch wirklich den öffentlichen Schlüssel von Alice erhalten hat und sich dahinter nicht Mallory verbirgt (vgl. [[Benutzer:Deininger_Matthias/Facharbeit/Angriffe_auf_RSA#Man-in-the-middle-Attacke| Man-in-the-middle-Attacke]])? Klaus Schmeh drückt es in seinem Buch „Kryptografie“ so aus; „Das Problem [...] ist, dass man einem öffentlichen Schlüssel nicht ansieht, wem er gehört“ <ref>[8, S.493]</ref>.<br>
 
Doch wer gewährleistet eigentlich, dass die Schlüsselpaare, die verwendet werden, auch wirklich den realen Personen gehören, für die sie sich ausgeben. Auf das Beispiel bezogen: Wer kann sicherstellen, dass Bob auch wirklich den öffentlichen Schlüssel von Alice erhalten hat und sich dahinter nicht Mallory verbirgt (vgl. [[Benutzer:Deininger_Matthias/Facharbeit/Angriffe_auf_RSA#Man-in-the-middle-Attacke| Man-in-the-middle-Attacke]])? Klaus Schmeh drückt es in seinem Buch „Kryptografie“ so aus; „Das Problem [...] ist, dass man einem öffentlichen Schlüssel nicht ansieht, wem er gehört“ <ref>[8, S.493]</ref>.<br>

Aktuelle Version vom 23. Dezember 2010, 03:39 Uhr

Buch.PNG Fachwortverzeichnis

RSA-Signaturverfahren


Mallory kann die Nachrichten von Alice an Bob abfangen. Er kann die verschlüsselten Nachrichten zwar nicht entschlüsseln, aber einfach Teile löschen und den gekürzten Text anschließend an Bob weitersenden. Wenn Bob die Chiffre entschlüsselt, wird er entweder ein Buchstabenpuzzle ohne jeglichen Sinn erhalten, wodurch Mallorys Manipulation enttarnt wäre. Gelingt es Mallory jedoch, ganze Wörter zu entfernen, so erscheint der Text sinnentstellt bei Bob und dieser erkennt unter Umständen gar nicht, dass Mallory am Werk war.

Um das zu verhindern, sollten Alice und Bob die Nachricht signieren, was einer Umkehrung der RSA-Verschlüsselung gleich kommt.

Algorithmus 4.0[1](RSA-Public-Key-Signaturverfahren)

(1) Zur Signierung führt Alice die folgenden Schritte aus:

(a) Alice berechnet die Signatur: sig = m^d\ mod\ n
(b) Alice übermittelt die Signatur sig an Bob.

(2) Zur Verifizierung und zum Erhalt der Nachricht führt Bob die folgenden Schritte aus:

(a) Bob besorgt sich den authentischen öffentlichen Schlüssel (n, e) von Alice.
(b) Bob berechnet m = sig^e\ mod\ n. Wenn sig^e\ mod\ n kein plausibler Klartext ist, wird die Signatur abgelehnt, andernfalls wird sie akzeptiert und sig^e\ mod\ n als m anerkannt.

Wenn man das Signaturprotokoll so anwendet, wie es oben beschrieben ist, ergibt sich das Problem, dass die Signatur die gleiche Länge besitzt, wie das zu unterzeichnende Dokument, was auch bedeutet, dass ein ziemlich hoher Zeitbedarf zur Signierung nötig ist. Der Vorteil bei dem Verfahren ist jedoch, dass sogenanntes „Message Recovery“ besteht. Dies bedeutet, dass die Originalnachricht bei der Verifizierung aus der Signatur wieder gewonnen werden kann.

sig = m^d\ mod\ n
 sig^e\ mod\ n = (m^d)^e\ mod\ n = m

RSA wird gewöhnlich in Blöcken verschlüsselt, da für die Nachricht m gelten muss m < n. Mallory hat daher unter Umständen die Möglichkeit, einzelne Blöcke der Signatur zu entfernen, so dass sich beim Entschlüsseln dennoch ein sinnvoller, vermutlich aber sinnentstellter Text ergibt. Der Angriff ist also noch nicht abgewehrt.

Eine mögliche Lösung für das Problem besteht in der Verwendung von sog. Hashfunktionen H(m), mit deren Hilfe es möglich ist, Nachrichten nahezu beliebiger Länge auf eine durch die Hashfunktion festgelegte Größe zusammenzufassen. Dieses Zusammenfassen kann auch als „message digest“ bezeichnet werden.
H(m) = h\
Anschließend sollte der gebildete Hashwert h, also die gehashte Nachricht mit oben beschriebenem Protokoll signiert werden, was dank der Kürze der kryptographischen Prüfsumme meist deutlich schneller möglich ist und überdies noch Speicherplatz spart. Dieses Vorgehen kann man als Hash-and-Sign-Verfahren bezeichnen.

Wichtig ist hierbei zu erwähnen, dass es sich bei Hashfunktionen vermutlich um Einwegfunktionen handelt, die nicht effizient umkehrbar sind.

Folglich sollte Alice neben dem signierten Hashwert auch die ursprüngliche Nachricht (Urbild) an Bob senden.

Nach dem Erhalt der Nachricht von Alice, empfiehlt es sich für Bob, zunächst die Signatur von Alice zu verifizieren. Dazu kann Bob die Signatur mit Alices öffentlichem Schlüssel dechiffrieren, worauf er den Signaturhashwert erhält. Um zu überprüfen, ob die Originalnachricht oder die Signatur von Mallory verändert wurde, hat er die Möglichkeit, aus dem unverschlüsselten Klartext ebenfalls einen Hashwert zu bilden. Dazu sollte Bob, um ein verwertbares Ergebnis zu erhalten, die gleiche Hashfunktion, die auch Alice verwendet hat, anwenden. Die Information, welche Hashfunktion von Alice verwendet wurde, ist in der Regel neben dem Hashwert in der Signatur enthalten. Anschließend kann Bob die Hashwerte vergleichen. Stimmen sie überein, wurde nichts verändert.
Die Hashfunktionen, die unter der Bezeichnung SHA-2 (Secure Hash Algorithm) zusammengefasst werden und Hashwerte zwischen 224 und 512 Bit erzeugen, werden heutzutage häufig bei der digitalen Signatur eingesetzt.

Aufgabe:

Wie könnte es Alice mit den bereits kennen gelernten Methoden erreichen, dass Mallory auch den mitgesendeten Klartext nicht lesen kann?


Hash.PNG
© Klaus Schmeh aus "Kryptografie. Verfahren–Protokolle–Infrastrukturen"


Um Problemen bei der Signierung vorzubeugen, sollten Alice und Bob zur Signatur ein gesondertes Schlüsselpaar generieren, so dass für den Schlüssel von Alice, wie auch den von Bob gilt:

n_{Signieren}< t\ und\ n_{Verschluesseln}\ge t\ ; t \in \N, wobei t in Absprache zwischen Alice und Bob festgelegt wird.

Anwendung des RSA-Algorithmus

Signieren kannst du hier selbst ausprobieren. Viel Spaß!
Homepage.PNG
Die gerade vorgestellte digitale Signatur stellt eine zentrale Ergänzung zur RSA-Verschlüsselung dar, weil die digitale Signatur dazu beiträgt, die generellen Ziele der Kryptographie zu erfüllen.
Mit der digitalen Signatur lässt sich durch zusätzliche normale RSA-Verschlüsselung Vertraulichkeit erreichen. Darüber hinaus ist in der Regel die von Alice und Bob gewünschte Authentizität gewährleistet, wobei man hier einmal die Teilnehmerauthentizität (peer entity authentication) und die Nachrichtenauthentizität (message authentication) unterscheiden kann. Ersteres garantiert, dass ein Teilnehmer eindeutig identifiziert werden kann und das zweite Verfahren stellt sicher, dass der Ursprung einer Nachricht zweifelsfrei ermittelt werden kann. Darüber hinaus können Dateien nicht unbemerkt verändert werden, was das Ziel der Integrität erfüllt. Zuletzt ist gegenüber einem unabhängigen Dritten auch eindeutig nachweisbar, dass eine Datei die Bob von Alice erhalten hat, wirklich von Alice stammt, somit ist auch Verbindlichkeit gegeben.[3]

Doch wer gewährleistet eigentlich, dass die Schlüsselpaare, die verwendet werden, auch wirklich den realen Personen gehören, für die sie sich ausgeben. Auf das Beispiel bezogen: Wer kann sicherstellen, dass Bob auch wirklich den öffentlichen Schlüssel von Alice erhalten hat und sich dahinter nicht Mallory verbirgt (vgl. Man-in-the-middle-Attacke)? Klaus Schmeh drückt es in seinem Buch „Kryptografie“ so aus; „Das Problem [...] ist, dass man einem öffentlichen Schlüssel nicht ansieht, wem er gehört“ [4].

Die Frage, wie man dem öffentlichen Schlüssel dennoch ansehen kann, von wem er stammt, wird auf der nächsten Seite beantwortet.

weiter weiter zur PKI und den hybriden Verfahren

zurück zur Übersicht


  1. [12, S.71]
  2. vgl. [9, S.49]
  3. vgl. [1, S.2]
  4. [8, S.493]