A High-Speed Small RSA Encryption LSI with Low Power

Werbung
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
Herunterladen