A High-Speed Small RSA Encryption LSI with Low Power Dissipation Seminararbeit Torsten Burschka 31. Juli 2008 Inhaltsverzeichnis 1 Einleitung 3 2 Grundlagen 2.1 Lemma von Euklid (Division 2.2 ggT und kgV . . . . . . . . 2.3 Euklidischer Algorithmus . . 2.4 Eulersche ϕ-Funktion . . . . 2.5 RSA . . . . . . . . . . . . . 2.6 DES . . . . . . . . . . . . . 2.7 MD5 . . . . . . . . . . . . . . . . . . . . 4 4 4 4 5 5 6 7 . . . . . . 9 9 11 12 13 15 16 mit Rest) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Hardware 3.1 Spezifikation . . . . . . . . . . 3.2 modularer Potenzierer . . . . 3.3 Hochgeschwindigkeitsaddierer 3.4 RSA-Kryptographieschaltkreis 3.5 DES-Schaltkreis . . . . . . . . 3.6 MD5-Schaltkreis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Energiebetrachtung 17 5 Abschließende Bemerkungen 20 6 Literaturverzeichnis 21 2 1 Einleitung Ziel dieser Arbeit ist die Aufbereitung und Analyse eines Kryptosystems von IBM, welches mit anderen Systemen in Bezug auf Geschwindigkeit und Energieeffizienz verglichen wird. Dabei werden Informationen über die Implementierungen der verschiedenen Kryptographieschaltkreise geliefert. Zunächst werden in dieser Arbeit ein paar mathematische Grundlagen geschaffen, um das Verständnis in den nachfolgenden Bereichen zu erhöhen. Danach wird die Arbeitsweise der verwendeten Algorithmen beschrieben. Das nächste Teilgebiet behandelt die Implementierung der Algorithmen in der Hardware und erläutert dabei die Funktionsweise der einzelnen Teilbereiche des Chips. Im darauffolgendem Teilgebiet geht es um die Energieeffizienz im Vergleich zu ähnlichen Kryptosystemen. Die abschließenden Bemerkungen fassen die entstandenen Fragestellungen zusammen und geben Ausblick auf mögliche Verbesserungen. 3 2 Grundlagen Zur Verständlichkeit einiger mathematischer Zusammenhänge werden zunächst ein paar Grundlagen erläutert. Diese sind weder komplett noch in allen Einzelheiten erklärt, sollten jedoch zum Verständnis der Thematik beitragen. 2.1 Lemma von Euklid (Division mit Rest) Zu a, b ∈ Z mit b 6= 0 gibt es eindeutig bestimmte Zahlen q (der Quotient) und r (der Rest) mit a = pq + r und 0 ≤ r ≤ |b| . 2.2 ggT und kgV d ∈ Z heißt größter gemeinsamer Teiler (ggT) von a und b, wenn ein d exsistiert, das ein gemeinsamer Teiler von a und b ist und jeder gemeinsame Teiler von a und b ein Teiler von d ist. d = ggT (a, b) ⇐⇒ d > 0 ∧ d|a ∧ d|b ∧ ∀c ∈ Z(c|a ∧ c|b =⇒ c|d). Weiterhin heißen a und b teilerfremd, falls ggT (a, b) = 1 ist. Entsprechend ist das kleinste gemeinsame Vielfache (kgV) von a und b die Zahl e > 0, die ein Vielfaches von a und b ist und jedes Vielfache von a und b teilt. e = kgV (a, b) ⇐⇒ e > 0 ∧ a|e ∧ b|e ∧ ∀c ∈ Z(a|c ∧ b|c =⇒ e|c). Zudem gilt für ggT und kgV folgende Formel: ∀a, b : a · b = ggT (a, b) · kgV (a, b) 2.3 Euklidischer Algorithmus Mit Hilfe des euklidischen Algorithmus ist es möglich, den größten gemeinsamen Teiler von a und b zu berechnen. Die iterierte Anwendung des Lemmas von Euklid liefert das Verfahren, welches abbrechen muss, da die Folge r1 , r2 , ... der Reste eine absteigende 4 Folge natürlicher Zahlen ist. Der kleinste Rest rn 6= 0 ist der größte gemeinsame Teiler von a und b. O.B.d.A seien a, b ∈ N. (1) (2) (3) (n) (n + 1) a = q 0 b + r1 b = q1 r1 + r2 r1 = q2 r2 + r3 ... rn−2 = qn−1 rn−1 + rn rn−1 = qn rn + 0 0 < r1 < b 0 < r2 < r1 0 < r3 < r2 0 < rn < rn−1 Rechnet man mit Gleichung (n) beginnend in der Form rn = rn−2 − rn−1 qn−1 absteigend und eliminiet den Rest rn−1 mit der Gleichung (n − 1), danach den Rest rn−2 mit der Gleichung (n − 2) usw., so erhält man die ganzen Zahlen x und y mit ggT (a, b) = ax + by. Diese Formel ist auch bekannt als der erweiterte euklidische Algorithmus. 2.4 Eulersche ϕ-Funktion Die Anzahl der zu n teilerfremden Zahlen m mit 1 ≤ m < n wird mit ϕ(n) bezeichnet, die Funktion ϕ heißt Eulersche ϕ-Funktion. 2.5 RSA RSA steht für die Erfinder des Algorithmus Ronald L. Rivest, Adi Shamir und Leonard Adleman, welche 1977 eine Theorie zur Public-Key-Kryptographie von Whitfield Diffie und Martin Hellman zu widerlegen versuchten. Nachdem sie bei verschiedenen Verfahren Angriffspunkte fanden, stießen sie schließlich auf eines, bei dem dies nicht gelang und aus welchem RSA entwickelt wurde. Das Verfahren basiert auf der Faktorisierung großer Zahlen, der Zerlegung in Primfaktoren. Dies ist im Gegensatz zur Erzeugung von Zahlen durch Multiplikation wesentlich aufwendiger. Funktionen, bei denen die Hinrichtung leichter als die Rückrrichtung ist, werden auch als Einwegfunktion bezeichnet. Durch Zusatzinformationen ist es jedoch leicht möglich, auch die Rückrichtung zu vereinfachen. Zunächst werden zwei zufällige Primzahlen p und q mit p 6= q gewählt. Dies geschieht im Allgemeinen durch Raten einer Zahl und einem anschließenden Primzahltest. Nun wird das RSA-Modul N = p · q berechnet, dies ist die Hauptkomponente des RSAAlgorithmus. Im nächsten Schritt wird die Eulersche ϕ-Funktion von N berechnet ϕ(N ) = (p − 1) · (q − 1). 5 Man wählt nun eine zu ϕ(N ) teilerfremde Zahl e, für die 1 < e < ϕ(N ) gilt. Das Zahlenpaar (e, N ) bildet den öffentlichen Schlüssel. Im letzten Schritt wird nun der Entschlüsselungsexponent d berechnet, der folgende Kongruenzgleichung erfüllt e · d ≡ 1 (mod ϕ(N )). Das Zahlenpaar (d,N) bildet den privaten Schlüssel. Um eine Nachricht K in den Geheimtext C zu verschlüsseln, wendet man die folgende Formel an: C ≡ K e mod N. Die Entschlüsselung geschieht äquivalent mit: K ≡ C e mod N. Der private Schlüssel kann auch zur Signierung von Daten verwendet werden. Dies geschieht, indem Daten verschlüsselt und unverschlüsselt versendet werden. Mit Hilfe des öffentlichen Schlüssels kann dann Integrität und Authentizität der Daten überprüft werden. 2.6 DES DES steht für Data Encryption Standard und ist (ursprünglich) ein von IBM entwickelter symmetrischer Verschlüsselungsalgorithmus (Abbildung 2.1). Dabei wird zunächt die zu verschlüsselnde Nachricht in 64-Bit-Klartextblöcke aufgeteilt, danach eine Anfangspermutation IP (engl. Initial Permutation) durchgeführt, bei welcher einer von vier verschiedenen Modi gewählt werden kann: ECB, CBC, CFB oder OFB. Der permutierte Block wird in die 32-Bit großen Blöcke L und R unterteilt. Hierauf folgt eine 16-malige Ausführung (Runden, Zyklen) folgender Formel: ( Li ← Ri−1 Ri ← Li−1 ⊕ f (Ri−1 , Ki ) Ki ist dabei der i-te Teilschlüssel des 56-Bit-Schlüssels und f ist die zentrale DESFunktion, welche auch Rundenschlüssel genannt wird. Nach den 16 Runden werden die beiden 32-Bit-Blöcke wieder zusammengefasst und eine Abschlusspermutation durchgeführt, welche invers zur Anfangspermutation ist, also IP −1 . Der 56-Bit-Schlüssel wird zu Beginn nach einer festen Regel permutiert und dann in zwei 28-Bit-Blöcke aufgeteilt. In jeder der 16 Runden werden dann die beiden Blöcke jeweils um ein bis zwei Stellen nach links geshiftet. Aus den resultierenden Blöcken wird nun der 48-Bit-Teilschlüssel für die jeweilige Runde ermittelt. Der Rundenschlüssel f wird ebenfalls für jede Runde neu bestimmt. Dafür wird zunächst der R-Block von 32 Bit auf 48 Bit erweitert. Danach wird der expandierte R-Block mit 6 dem Teilschlüssel modulo 2 addiert. Das Resultat wird in 6-Bit-Blöcke aufgeteilt und an die acht Substitutionsboxen (S-Box) übergeben. S-Boxen substituieren die 6-Bit-Blöcke mit 4-Bit-Blöcken, welche dann zu einem 32-Bit-Block zusammengefasst werden. Dieser 32-Bit-Block wird darauf erneut nach einer festen Regel umgestellt und bildet zusammen mit dem L-Block den R-Block der nächsten Runde. Da DES ein symmetrischer Verschlüsselungsalgorithmus ist, muss er nur erneut auf die verschlüsselte Nachricht angewendet werden, um die Klartextnachricht zu erhalten. Abbildung 2.1: DES Algorithmus 2.7 MD5 MD5 steht für Message Digest 5 und ist eine von Ronald L. Rivest vorgeschlagene Weiterentwicklung des MD4 Algorithmus, nachdem durch Analysen Schwächen im MD4 vermutet und später auch nachgewiesen wurden. (Abbildung 2.2) Zunächst werden die Daten auf ein Vielfaches von 512 Bit aufgefüllt, das gilt auch, wenn die Daten bereits die entsprechende Länge besitzen. Zunächst wird eine 1 an die Daten angehängt, daraufhin mit Nullen gefüllt, bis (length(Daten)) mod 512 − 64 gilt. Die restlichen 64 Bit werden verwendet, um die Länge der Originaldaten zu speichern. Dann werden diese Daten in 512-Bit-Blöcken (genauer 16×32-Bit-Blöcke) in den 4 Runden des Algorithmus verarbeitet. Dafür stehen vier vorgeschiebene nichtlineare Funktionen sowie vier Standardhashwerte zur Verfügung. Die daraus entstandenen 4 × 32-Bit-Ausgaben 7 werden zum Hashwert zusammengesetzt. (Anmerkung: Diese Beschreibung ist eine verkürzte schematische Darstellung des Algorithmus. Sie soll nur dem grundlegenden Verständnis dienen. Für weitere Informationen sei der Blick auf die Qellenangabe hilfreich.) Abbildung 2.2: MD5 Algorithmus 8 3 Hardware 3.1 Spezifikation Der 1024-Bit-RSA-Verschlüsselungschip wurde in Large Scale Integration gefertigt. Des Weiteren verwendete IBM 3-Metal Layer CMOS Technologie mit einer Strukturbreite von 0.5µ. Der Chip kommt auf eine Größe von 5.31 × 5.31mm2 welcher auf ein Package mit 160 Pins und einem Pitch von 0.65mm sitzt. Integriert sind RSA, DES, MD5, ein Seed Generator als auch Low Frequency Oszillator. Es gibt zwei Arten von Input/Output und Clock Pins, welche von einander isoliert sind: Die Pins des RSA-Blocks und die der anderen Einheiten. Als Maximalfrequenz für den Chip werden 45MHz angegeben. Zusätzlich wird noch eine Referenztaktrate von 5 MHz für den Vergleich verwendet. Für eine RSA-Operation mit 1024 Bits benötigt der Chip bei der Maximalfrequenz 23ms, beim Referenztakt 210ms. Die Maximalleistung des Chips während der RSA-Operation wird bei der Maximalfrequenz auf 310mW, beim Referenztakt auf 50mW angegeben. Die maximale Stromstärke während der RSAOperation wird auf 100mA bei der Maximalfrequenz und auf 15mA beim Referenztakt angegeben. Als RSA-Schlüssellängen werden 8 bis 1024 Bit mit einer Körnung von 8 Bit akzeptiert. Die DES-Verschlüsselung kann bei Maximalfrequenz eine Geschwindigkeit von 18.9MB/s erreichen. Dabei stehen die Modi ECB, CBC CFB und OFB zur Verfügung. Das Generieren von MD5 Hashsummen kann bei Maximalfrequenz mit 29.7MB/s bewerkstelligt werden. Abbildung 3.1: Mikrophotographie des Chips 9 Prozess Technologie Package DIE Größe RSA Schaltkreis Größe Maximalfrequenz RSA Operationsdauer (1024 Bit) Max. Energieverbrauch (1024 Bit) (1024 Bit) Schlüssellänge Arithm. Funktionen DES MD5 Andere 3.3V , 3 Metallschichten 0.5µm CMOS 0.65mm Pitch, 160 Pins 5.31 × 5.31mm2 4.9mm2 (Beschleunigerschaltkreis), 1.1mm2 (Steuerungsschaltkreis) 45 MHz 23 msec @ 45 MHz 210 msec @ 5 MHz 330mW @ 45 MHz 50 mW @ 5 MHz 100 mA @ 45 MHz 15 mA @ 5 MHz 8 - 1024 Bit A mod N, A+B mod N A × B mod N, AB mod N 18.9 MB/s @ 45 MHz ECB, CBC, CFB, OFB 29.7 MB/s @ 45 MHz Seed-Generator Niederfrequenzoszillator Tabelle 3.1: Chip-Eigenschaften 10 Abbildung 3.2: ISA Karte 3.2 modularer Potenzierer Eine Klartextnachricht M wird in eine verschlüsselte Nachricht C durch modulares Potenzieren mit dem öffentlichen Schlüssel e umgewandelt. C ≡ M e mod n Dies wird in der Hardware durch eine Folge von Quadrierung und Multiplikation erledigt. Dabei gibt es zwei Möglichkeiten um C zu berechnen. Entweder von MSB-Seite oder von LSB-Seite ausgehend nach Bit mit der Belegung „1“ suchen. Bei der MSB-Methode (Abbildung 3.3) wird M zunächst als Anfangswert in das Re- Abbildung 3.3: Modularer Exponenzierer (MSB) gister geschrieben. Daraufhin werden die Quadrierung und Multiplikation nacheinander durchgeführt, wenn an der Stelle ei = 1, und übersprungen, wenn ei = 0 ist. Unter der Annahme, dass die Hälfte der Zahlen Nullen und die andere Hälfte Einsen sind, werden bei einer m-Bit-Operation 1.5m Zyklen benötigt. Bei der LSB-Methode (Abbildung 3.4) werden im Gegensatz zur MSB-Methode zwei Multiplizierer und zwei Register benötigt. Der Vorteil hierbei ist, dass die Quadrierung und die Multiplikation simultan ausgeführt werden. Dementsprechend benötigt die LSBMethode unabhängig von der Bit-Repräsentation in e eine Gesamtdauer von (m + 1) Zyklen bei einer m-Bit-Operation. Zusätzlich wird ein Bereich der Multiplizierer gemeinsam genutzt, um die Energieaufnahme weiterhin zu reduzieren. Aufgrund dieser Eigenschaften ist der LSB-Algorithmus in die Hardware implementiert worden. 11 Abbildung 3.4: Modularer Exponenzierer (LSB) 3.3 Hochgeschwindigkeitsaddierer Als Hochgeschwindigkeitsaddierer wurde ein Carry-Skip-Addierer gewählt, welcher auf einen minimalen kritischen Pfad hin optimiert wurde (Abbildung 3.5). Die Blocklän- Abbildung 3.5: Hochgeschwindigkeitsaddierer ge ist variabel, indem beginnend mit zwei Addierern im 0. Block jeder weitere Block einen zusätzlichen Addierer besitzt. Es wurde angegeben, dass der Addierer für 1035Bit-Operationen konzipiert wurde und einen kritische Pfad von 47 Gates besitzt. Da keine genauere Angaben gemacht wurden, ist nicht klar, wie diese Werte entstanden sind. Laut Zeichnung wird Block 0 mit 2 Volladdierern angegeben. Wenn man dies fortführt so würden 44 Blöcke notwendig sein, um 1034 Bit zu addieren. Um das 1035. Bit zu addieren muss also entweder ein weiterer Block vor Block 0 geschaltet werden, welches wohl die bessere Wahl wäre, oder der letzte Block um ein Element zu erweitern. Auch dann ist die Frage nach dem kritischen Pfad noch nicht geklärt. Zunächst wird angegeben, dass der kritische Pfad Gates durchläuft, jedoch hat ein GP-Volladdierer mehrere solcher Gates. Auch die Skip-Logik besitzt 2 Gates. Es ist zwar möglich, Addierer mit einem Gate zu erstellen. Das gleiche gilt für die Skip-Logik, dennoch wären dann nur 46 Gates durchlaufen. 12 3.4 RSA-Kryptographieschaltkreis Der RSA-Verschlüsselungskreislauf ermöglicht Nachrichtenblöcke mit einer Größe von maximal 1024-Bit zu verschlüsseln. Bei kürzeren Nachrichten werden die höheren Bits mit Nullen aufgefüllt. Die Formel C ≡ K e mod N. wird realisiert, indem die Exponentierung durch 1024 Multiplikationen und eine Multiplikation durch 1024 Additionen berechnet werden. Dafür besitzt der Schaltkreis (Abbildung 3.6) 3 Teilbereiche: Double, Square und Power. Der Double-Block (Pseudocode 1) berechnet zunächst 1023 X (2i x(mod n)) · xi . i=0 Der Square-Block berechnet aus dem Ergebnissen des Double-Blocks x2 mod n (PseuAlgorithm 1 Double-Block 1: DB ← x; 2: for i = 0 to 1023 do { 3: if 2DB − n ≥ 0 4: DB ← 2DB − n; 5: else 6: DB ← 2DB; 7: } docode 2) mit x2 mod n = 1023 X (2i x(mod n)) · xi . i=0 Schließlich werden im Power-Block die Ergebnisse des Square-Blocks so multipliziert Algorithm 2 Square-Block 1: S ← x2 mod n 2: SQ ← x; 3: if SQ0 = 0 4: S ← 0; 5: for i = 1 to 1023 do { 6: if SQ1 = 1 7: S ← S + DB; 8: else if S ≥ 0 9: S ← S − 4n; 10: } (Pseudocode 3), dass C ≡ K e mod N. erfüllt wird 13 Algorithm 3 Power-Block 1: P ← xej · P W (mod n) 2: while ej = 1 do { 3: PW ← P; 4: P ← 0; 5: for i = 0 to 1023 do { 6: if P Wi = 1 7: P ← P + DB 8: else if P ≥ 0 9: P ← P − 4n 10: } 11: } Abbildung 3.6: RSA-Kryptographieschaltkreis Für die Schlüsselgenerierung eines 1024-Bit-Schlüssels werden zwei Primzahlen mit einer Größe um die 512 Bit benötigt. Nach dem Primzahltheorem ist im Bereich um 2512 eine von 356 Zahlen (178 davon ungerade) eine Primzahl: ln n − 1 ln 2512 − 1 ∼ 1 d n = = = dn ln (ln n)2 (ln 2512 )2 356 Um zu garantieren, dass die Zahlen prim sind, wird das Sieb von Eratosthenes verwendet. Im Chip werden die ersten 256 ungeraden Primzahlen (3 - 1633) generiert und gespeichert. Das Sieb lässt eine von 6.6 Zahlen durch, sodass eine von 178 ÷ 6.6 ∼ = 27 ungeraden Zahlen als möglicher Primzahlkandidat überprüft werden muss. Somit werden nur noch 27 Fermatsche Tests benötigt, um eine 512-Bit große Primzahl zu finden. Da der Fermatsche Test modular exponenziert (also C = AB (mod n) gilt) benötigt der Test eine Dauer von 513 × (512 + 4) ÷ 22nsec ∼ = 5.9msec. 14 Somit ergibt sich für die Generierung der Primzahlen eine Gesamtdauer von 5.9msec × 27 × 2 ∼ = 0.32sec. Fermat’s Test ist zwar kein Beweis dafür, dass die gefundene Zahl wirklich eine Primzahl ist, allerdings liegt die Wahrscheinlichkeit dafür bei rund 2−77 . 1 − ln ln ln x ∼ −77 x 2 ln ln x = 2 2 Um ein vollständiges Schlüsselpaar zu erhalten müssen d und e berechnet werden, dies ist jedoch nicht im Chip implementiert. Es wird darauf verwiesen, dass diese schnell auf gewöhnlichen Prozessoren berechnet werden können. 3.5 DES-Schaltkreis Der DES Schaltkreis (Abbildung 3.7) wurde anscheinend entsprechend der Spezifikationen umgesetzt. Folglich wurden keine Verbesserungen bezüglich (Energie-)Effizienz vorgenommen. Die Modi ECB, CBC, CFB, OFB werden über ein XOR-Gate und 2 Multiplexer ermöglicht. Entsprechend den Spezifikationen lässt sich hieraus die folgende Geschwindigkeit für die Ver-/Entschlüsselung berechnen: 8Bytes ÷ 18Runden × 45M Hz = 20M B/sec Für die Entschlüsselung wird eine weitere Runde benötigt. 8Bytes ÷ 19Runden × 45M Hz = 18.9M B/sec Abbildung 3.7: DES Schaltkreis 15 3.6 MD5-Schaltkreis Auch der MD5-Schaltkreis (Abbbildung 3.8) wurde entsprechend der Spezifikationen umgesetzt. Sowohl die konstanten Werte Ti (die Sinusfunktion für die nichtlinearen Funktionen), als auch die Standardwerte h0 ...h3 sind fest im Schaltkreis integriert. Man benötigt 16 Zyklen um eine 512-Bit-Nachricht M in den Block der nichtlinearen Funktion zu transportieren. Dies geschieht für die 4 Funktionen, also 16 × 4 = 64Zyklen um einen 128-Bit-Hash aus einer 512-Bit-Nachricht zu erstellen. Für das Laden und das Rückschreiben werden 24 Zyklen bei einer Übertragungsrate von 16 Bit, wobei ein weiterer Zyklus für den Transferstart benötigt wird. 8 weitere Zyklen werden für die Initialisierung mit den Startwerten benötigt. Insgesamt ergibt sich somit: 64Bytes ÷ (64 + 24 + 1 + 8)Zyklen × 45M Hz = 29.7M B/sec Abbildung 3.8: MD5 Schaltkreis 16 4 Energiebetrachtung Aufgrund mangelnder Alternativquellen (für die relevanten Kryptographieeinheiten sind keine Datenblätter verfügbar), werden muss auf die gegebenen Vergleiche zurückgriffen werden. Es wurden auch keine Angaben gemacht, ob die angegebenen Verbrauchswerte für das Gesamtsystem stehen (ISA Karte), für den Chip (wahrscheinlich) oder für den jeweiligen Schaltkreis (unwahrscheinlich). Als positive Eigenschaft des Chips wird eine gute Skalierbarkeit hervorgehoben (Abbildung 4.1), was innerhalb der gegebenen Taktraten zumindest aus heutiger Sicht nichts ungewöhnliches ist. Beim Vergleich der Abbildung 4.1: Verlustleistung vs. Taktfrequenz für eine 1024-Bit Operation Operationszeiten werden die Maximalfrequenz und die Referenzfrequenz (zum einen um einen direkten Vergleich zu haben, zum anderen, da diese für einige gleichzig die Maximalfrequenz ist) der Einheiten betrachtet (Abbildung 4.2). Zu erkennen ist, dass bei Referenzfrequenz der Chip nicht der schnellste ist (210ms) gegenüber dem Pijnenburg PCC200 (200ms), jedoch ist die Verlustleistung des Chips bei 50 mW, wobei der PCC200 hierbei eine geschätzte Verlustleistung von 200mW besitzt. Der NEL NL0048, welcher eine geschätze Verlustleistung von 135 mW besitzt, benötigt jedoch mehr als 3 mal so lang wie der Chip. Für die anderen Einheiten wurden keine Energiewerte angegeben. Bei der Maximalfrequenz hat der Chip eine Maximalverbrauch von 330 mW, wobei eine Operationszeit von 23 ms gemessen wurde. Bei der angegebenen Maximalfreqenz des PCC200 (25 Mhz) sowie auch der NEL haben hierbei einen Maximalverbrauch von 1 W, was dreimal so hoch ist gegenüber dem Chip. Noch stärker wird der Unterschied, wenn der Chip auf die Maximalfrequenz des PCC200 getaktet wird, hierbei verbraucht der Chip mit 190mW gerade einmal 20% der Leistung. Aus den zugrunde liegenden Daten kann eine Grafik über den Gesamtbedarf während einer 1024-Bit-Operation erstellt werden (Abbildung 4.3). Hierbei lässt sich gut erkennen, dass der Chip bei seiner Maximalfrequenz, 17 Abbildung 4.2: 1024 Bit RSA Operationszeit Abbildung 4.3: Gesamtbedarf die beste Energieeffizienz bietet, während er bei 25 MHz am ineffizentesten arbeitet. Eine mögliche Erklärung dafür ist, dass der Gesamtbedarf ein quadratisches Wachstum aufweist (Abbildung 4.4). Aus den gegebenen Daten können die linearen Gleichungen y = 7x + 15 für die Verlustleistung (grüne Linie) und y = −4.675x + 233.375 für die Operationszeit (blaue Linie) ermittelt werden. Daraus ergab sich dann die quadratische Gleichung y= (7x + 15)(−4.675x + 233.375) 1000 (lila Linie) für den Gesamtbedarf. 18 Abbildung 4.4: Operationszeit vs. Verlustleistung vs. Gesamtbedarf 19 5 Abschließende Bemerkungen Nach der Analyse der einzelnen Funktionen der Arbeit wird klar, dass die Entwickler des Systems einen hohen Aufwand betrieben haben um eine effiziente Implementierung des RSA-Kryptosystems zu schaffen. Allerdings wird auch klar, dass es viele weitere Verbesserungsmöglichkeiten gibt. Es ist fraglich, ob der gewählte Addierer tatsächlich die beste Wahl ist. Genauso scheint der RSA-Schaltkreis den nächsten zu verschlüsselnden Block erst nach vollständiger Abarbeitung des aktuellen Blockes zu bearbeiten. Hierbei entsteht ein nicht notwendiger Leerlauf, welcher umgangen werden könnte, indem der Double-Block bereits Berechnungen des nächsten Datenblocks übernehmen könnte. Ein weiterer Punkt ist die Frage, ob nicht speziell angepasste Multiplizierer / Exponenzierer die Arbeit schneller und effizienter verrichten könnten. Für eine zukünftige Arbeit wäre das Implementieren moderner Kryptographiestandards ebenfalls empfehlenswert. So ist ein Jahr nach der Veröffentlichung der zugrundeliegenden Arbeit der Nachweis über die Unsicherheit des DES-Algorithmus erbracht worden. Als Alternative bietet sich AES als symmetrischer Verschlüsselungsalgorithmus an, welcher die Schächen (u.a. Schlüsselschwäche) des DES-Algrithmus behebt. Auch nach einer Alternative für MD5 sollte gesucht werden, obwohl MD5 heute noch der Standard ist, wenn es um Prüfsummen geht. „Preimage-Angriffe“ oder „Kollisionsangriffe“ sind nicht nur theoretischer Natur, sondern Tatsache. Auch RSA selbst ist in die Jahre gekommen, denn immer neuere, leistungsfähigere Architekturen (Stichwort: ManyCore) verringern die benötigte Zeit für Bruteforceangriffe auf die Schlüssel drastisch. Als möglicher Nachfolger von RSA wird ECC (Eliptic Curve Cryptographie) gehandelt, welche höhere Sicherheit (Faktor 6-8 im Vergleich zu RSA) bei gleichem Aufwand bieten soll. Vermutlich auch aus diesem Grund behandelt eine Nachfolgearbeit der Entwickler dieses Chips die Thematik ECC. 20 6 Literaturverzeichnis Bücher Holz, Michael: Repetitorium der Algebra, 1. Auflage S.58f, S.99f Internetadressen Wikipedia.org: http://de.wikipedia.org/ • http://de.wikipedia.org/wiki/RSA-Kryptosystem (28. Jul. 2008) • http://de.wikipedia.org/wiki/Data_Encryption_Standard (17. Jul. 2008) • http://de.wikipedia.org/wiki/Message-Digest_Algorithm_5 (12. Jul. 2008) Regenechsen.de: http://www.regenechsen.de/ http://www.regenechsen.de/phpwcms/index.php?krypto_des (14. Aug.2005) springerlink.com: http://www.springerlink.com http://www.springerlink.com/content/d67k4r7208185p6n/fulltext.pdf (10. Apr 2006) 21