Einsatzmöglichkeiten kryptographischer Methoden zur Signatur und ...

Einsatzmöglichkeiten kryptographischer Methoden zur Signatur und ... Einsatzmöglichkeiten kryptographischer Methoden zur Signatur und ...

iti.cs.tu.bs.de
von iti.cs.tu.bs.de Mehr von diesem Publisher
05.11.2013 Aufrufe

Für den Fall, dass die Blocklänge 128 Bit ist (N b =4), sieht der Ablauf einer Runde so wie in Abbildung 5-1 (AES-Verschlüsselung [Sav2001]) dargestellt aus. Die Bytes „fließen“ quasi von oben in die Runde hinein und werden mit den genannten Operationen bearbeitet. Abbildung 5-1: AES-Verschlüsselung [Sav2001] 5.2.2. RSA Der Public Key Algorithmus RSA wurde 1977 von Rivest, Shamir und Adleman entworfen und ist dazu in der Lage sowohl für Verschlüsselung als auch zur digitalen Signatur eingesetzt zu werden. Die Basis des RSA-Algorithmus besteht darin, dass es mit den heutigen Computern einfach und schnell möglich ist, große Zahlen mit mehreren hundert Dezimalstellen zu multiplizieren, es jedoch bisher unmöglich ist (in einer akzeptablen Zeit, s.u.) die Primfaktoren einer ebenso großen Zahl, welche das Produkt zweier großer Primzahlen ist, herauszufinden. In [SchB1996] schreibt Bruce Schneier, dass zur Faktorisierung einer 2048-Bit-Zahl, wie sie für Public-Key-Systeme eingesetzt wird, mit einem allgemeinen Zahlenkörpersieb 3·10 11 MIPS-Jahre und mit einem speziellen Zahlenkörpersieb 3·10 7 MIPS-Jahre erforderlich sind. Das heißt, ein Computer, der eine Million Rechenoperationen in der Sekunde durchführt, 3·10 11 bzw. 3·10 7 Jahre zur Lösung der Aufgabe benötigen würde. Dass ein Faktorisierungsangriff (quasi ein Brute-Force-Angriff auf RSA) auf einen öffentlichen Schlüssel mit 2048 Bit keinen Sinn ergibt, verdeutlich das folgende Beispiel: Der von IBM Ende 2001 vorgestellt Hochleistungscomputer p690 („Regatta“) kann mit bis zu 32 POWER-4 CPUs ausgestattet werden. Die Taktfrequenz jeder CPU beträgt 1,3 GHz. IBM gibt in [IBM2001] an, dass eine CPU bis zu 8 Befehle pro Taktzyklus auszuführen in der Lage ist und durchschnittlich 5 Befehle pro Zyklus abschließt. 33

Daraus ergeben sich nach [HePa1996] die theoretisch maximalen MIPS- Leistungen von 6.500 MIPS (bei 5 Befehlen pro Zyklus) bzw. 10.400 MIPS (bei 8 Befehlen pro Zyklus) pro CPU. Das entspricht 208.000 MIPS (bei 5 Befehlen pro Zyklus) bzw. 332.800 MIPS (bei 8 Befehlen pro Zyklus) für ein 32-CPU System. Das bedeutet, dass eine p690 mit 32 CPUs ca. 1,9 Milliarden Jahre (5 Befehle pro Zyklus) bzw. ca. 1,2 Milliarden Jahre (8 Befehle pro Zyklus) benötigt, um durch den Einsatz des speziellen Zahlenkörpersiebes (welches jedoch bei den in der Regel verwendeten Schlüsseln nicht eingesetzt und eher als optimistisch angesehen werden kann) einen einzigen 2048-Bit-Schlüssel durch Faktorisierung zu brechen. Bei dem Einsatz des allgemeinen Zahlenkörpersiebes sind die Zeiten noch erheblich höher (ca. Faktor 10 7 ). Da dieser Computer (mit nur 16 anstatt der hier angenommenen 32 CPUs) für ca. 450.000 US-$ zu erhalten ist [iX2002-03], handelt es sich hier auch um ein sehr teures Unterfangen. Selbst wenn man 24 dieser 32-CPU-Computer miteinander verbindet (wie auf der CeBIT 2002 für das Projekt Hochleistungsrechenzentrum Nord (HLRN) angekündigt), dauert die Berechnung noch immer ca. 79 Millionen Jahre (5 Befehle pro Zyklus) bzw. 50 Millionen Jahre (8 Befehle pro Zyklus) bei Anschaffungskosten von ca. 20 Millionen Euro. In vielen Public-Key-Systemen, wie beispielsweise in PGP, wird der RSA-Algorithmus verwendet, der im Folgenden beschrieben wird. Die Grundlage von RSA ist die Erzeugung des Schlüsselpaares. Dazu wird der folgende Algorithmus verwendet. Es sei E Alice die Verschlüsselung mit Alices öffentlichen Schlüssel, D Alice die Entschlüsselung mit Alices privatem Schlüssel (D Bob und E Bob analog für Bob). RSA-Algorithmus zur Schlüsselerzeugung: Alice: i. Erzeuge zwei (etwa gleichgroße) Primzahlen p und q. ii. Berechne n = pq und ϕ (n) = (p-1)(q-1). iii. Wähle ein e (1 < e < ϕ (n)) mit ggt(e, ϕ (n)) = 1. iv. Berechne d (1 < d < ϕ (n)) mod ϕ (n) mit ed mod ϕ (n) = 1, das eindeutige Inverse zu e in * ϕ (n) . Alice erhält als öffentlichen Schlüssel das Tupel (e,n) und als privaten Schlüssel (d,n). 34

Daraus ergeben sich nach [HePa1996] die theoretisch maximalen MIPS-<br />

Leistungen von 6.500 MIPS (bei 5 Befehlen pro Zyklus) bzw. 10.400 MIPS<br />

(bei 8 Befehlen pro Zyklus) pro CPU. Das entspricht 208.000 MIPS (bei 5<br />

Befehlen pro Zyklus) bzw. 332.800 MIPS (bei 8 Befehlen pro Zyklus) für ein<br />

32-CPU System.<br />

Das bedeutet, dass eine p690 mit 32 CPUs ca. 1,9 Milliarden Jahre (5 Befehle<br />

pro Zyklus) bzw. ca. 1,2 Milliarden Jahre (8 Befehle pro Zyklus) benötigt, um<br />

durch den Einsatz des speziellen Zahlenkörpersiebes (welches jedoch bei den<br />

in der Regel verwendeten Schlüsseln nicht eingesetzt <strong>und</strong> eher als optimistisch<br />

angesehen werden kann) einen einzigen 2048-Bit-Schlüssel durch Faktorisierung<br />

zu brechen. Bei dem Einsatz des allgemeinen Zahlenkörpersiebes<br />

sind die Zeiten noch erheblich höher (ca. Faktor 10 7 ).<br />

Da dieser Computer (mit nur 16 anstatt der hier angenommenen 32 CPUs) für<br />

ca. 450.000 US-$ zu erhalten ist [iX2002-03], handelt es sich hier auch um<br />

ein sehr teures Unterfangen.<br />

Selbst wenn man 24 dieser 32-CPU-Computer miteinander verbindet (wie auf<br />

der CeBIT 2002 für das Projekt Hochleistungsrechenzentrum Nord (HLRN)<br />

angekündigt), dauert die Berechnung noch immer ca. 79 Millionen Jahre (5<br />

Befehle pro Zyklus) bzw. 50 Millionen Jahre (8 Befehle pro Zyklus) bei<br />

Anschaffungskosten von ca. 20 Millionen Euro.<br />

In vielen Public-Key-Systemen, wie beispielsweise in PGP, wird der RSA-Algorithmus<br />

verwendet, der im Folgenden beschrieben wird.<br />

Die Gr<strong>und</strong>lage von RSA ist die Erzeugung des Schlüsselpaares. Dazu wird der folgende<br />

Algorithmus verwendet. Es sei E Alice die Verschlüsselung mit Alices öffentlichen<br />

Schlüssel, D Alice die Entschlüsselung mit Alices privatem Schlüssel (D Bob <strong>und</strong><br />

E Bob analog für Bob).<br />

RSA-Algorithmus <strong>zur</strong> Schlüsselerzeugung:<br />

Alice:<br />

i. Erzeuge zwei (etwa gleichgroße) Primzahlen p <strong>und</strong> q.<br />

ii.<br />

Berechne n = pq <strong>und</strong> ϕ (n) = (p-1)(q-1).<br />

iii. Wähle ein e (1 < e < ϕ (n)) mit ggt(e, ϕ (n)) = 1.<br />

iv.<br />

Berechne d (1 < d < ϕ (n)) mod ϕ (n) mit ed mod ϕ (n) = 1, das eindeutige<br />

Inverse zu e in <br />

*<br />

ϕ (n)<br />

.<br />

Alice erhält als öffentlichen Schlüssel das Tupel (e,n) <strong>und</strong> als privaten Schlüssel<br />

(d,n).<br />

34

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!