-
Die vorliegende Erfindung betrifft ein Verfahren zum Verschlüsseln von Eingabedaten, ein kryptographisches System, ein Computerprogrammprodukt, ein Programm, ein Computer-lesbares Speichermedium und ein Computerdatensignal, das in einer Trägerwelle verkörpert ist.
-
Um die im Zuge moderner, vertraulicher Datenkommunikation entstehenden Probleme zu lösen, erfreuen sich Hardware-Kryptographiesysteme basierend auf bekannten Krypto-Algorithmen einer gewissen Beliebtheit, wobei versucht wird, kontinuierlich anwachsenden Leistungserfordernissen gerecht zu werden. Die bekannten Krypto-Algorithmen umfassen Algorithmen mit öffentlichem Schlüssel, wie den Rivest-Shamir-Adleman(RSA)-Algorithmus und den Elliptic-Curve-Cryptography(ECC)-Algorithmus, und Algorithmen mit symmetrischem Schlüssel, beispielsweise basierend auf dem Data-Encryption-Standard (DES) und dem Advanced-Encryption-Standard (AES).
-
Jedoch wurden zusätzlich zu Hardware-orientierten Kryptosystemen neue Methoden der Kryptoanalyse entwickelt, beispielsweise die Side-Channel-Analysis (SCA). Es gibt unterschiedliche Techniken für Angriffe auf Datenübertragungssysteme, die typischerweise eine Zeitablauf-Analyse (Timing Analysis), eine Leistungsanalyse (Power Analysis), eine elektromagnetische Analyse (Electro-Magnetic Analysis) und eine Different-Faults-Analysis (DFA) umfassen können. Es ist bekannt, dass diese Techniken zum erfolgreichen Angreifen der Kryptosysteme verwendet werden können und in der Lage sind, geheime Schlüssel mit geringerem (Zeit-)Aufwand zu erhalten.
-
Dementsprechend stellt das Entwickeln von Gegenmaßnahmen für Verfahren der Kryptoanalyse, beispielsweise SCA, eine wichtige Aufgabe für die Zukunft dar. Da jedoch ECC ein relativ junger Kryptographiezweig ist, existiert nur wenig Literatur, die beschreibt, welche Gegenmaßnahmen bezüglich SCA in Datenschutzsystemen zu ergreifen sind, die ECC verwenden.
-
Beispielsweise werden bei der Differential-Power-Analysis (DPA), welche einen Typ der SCA darstellt, Leistungsverläufe während einer Skalar-Multiplikationsoperation analysiert, um Informationen bezüglich geheimer Schlüssel zu erhalten. Um den Verlust von Informationen aufgrund von DPA zu vermeiden, werden Gegenmaßen eingesetzt, die auf der Verwendung zufälliger geheimer Exponenten basieren. Jedoch sind derartige, aus dem Stand der Technik bekannte Verfahren nur wenig zur Abwehr von speziellen Leistungsanalyseangriffen unter Verwendung ausgewählter Nachrichten geeignet. Zur Abwehr derartiger Leistungsanalyseangriffe unter Verwendung ausgewählter Nachrichten können zufällige Eingabenachrichten verwendet werden, wie hinreichend bekannt ist.
-
1 zeigt einen konventionellen Skalar-Multiplikationsvorgang. Bezug nehmend auf 1 wird in einem herkömmlichen Kryptosystem ein Eingabepunkt in Schritt S11 empfangen, anschließend wird in Schritt S12 eine Punktdarstellung ausgewählt und verändert. Wenn beispielsweise die Punktdarstellung des Eingangspunktes eine affine Darstellung ist, wird die Punktdarstellung in eine projektive Darstellung verändert, und anschließend wird eine Skalar-Multiplikationsoperation in der ausgewählten Punktdarstellung in Schritt S13 durchgeführt.
-
Eine affine Darstellung einer topologischen (Lie-)Gruppe G ist ein kontinuierlicher (stetiger) Homomorphismus (beispielsweise eine strukturerhaltende Abbildung zwischen zwei algebraischen Gruppen, wie Gruppen oder Vektorräumen) G zu der Automorphismus-Gruppe eines affinen Raumes A. Ein Automorphismus ist ein Isomorphismus von einem mathematischen Objekt zu sich selbst oder eine Symmetrie des Objekts und stellt eine Möglichkeit dar, das Objekt auf sich selbst abzubilden, während seine gesamte Struktur erhalten bleibt; der Satz aller Automorphismen eines Objekts bildet die Automorphismus-Gruppe oder „Symmetriegruppe” des Objekts.
-
In der Mathematik, beispielsweise in der Gruppentheorie, stellt dann, wenn G eine Gruppe und P ein Vektorraum über einem Feld K ist, eine projektive Darstellung einen Homomorphismus von G auf Aut(ρ)/Kx dar, wobei Kx die normale Untergruppe von Aut(ρ) ist, die aus Multiplikationen von Vektoren in ρ mit von null verschiedenen Elementen von K (z. B. skalaren Vielfachen des Einheitselements) besteht, und wobei Aut(ρ) die Automorphismus-Gruppe desjenigen Vektorraumes darstellt, der ρ zugrunde liegt.
-
Wie hinreichend bekannt ist, wird ein verschlüsselter Punkt durch die Skalar-Multiplikationsoperation eines geheimen Schlüssels und des Eingabepunkts auf der Grundlage eines ECC-Algorithmus erzeugt. Die Skalar-Multiplikationsoperation kann über mehrere Durchgänge iteriert werden, um einer Systemanforderung gerecht zu werden. Wenn die Skalar-Multiplikationsoperation abgeschlossen ist, wird eine Punktdarstellung des verschlüsselten Punkts in Schritt S14 in eine andere Punktdarstellung (z. B. eine affine Darstellung) umgewandelt. Ein Ausgabepunkt, der dadurch erhalten wird, dass die Punktdarstellung des verschlüsselten Punkts zurück in die ursprüngliche Punktdarstellung umgewandelt wird, wird zum Signieren/Verifizieren an einen Post-Prozessor ausgegeben (Schritt S15).
-
In dem herkömmlichen Kryptosystem, das zum Widerstehen gegenüber DPA-Angriffen ausgebildet ist, kann eine Maskierung des geheimen Schlüssels oder eine Eingabepunkt-Maskierung verwendet werden. Da jedoch in dem herkömmlichen Kryptosystem eine komplexe Skalar-Multiplikationsoperation während einer Mehrzahl paralleler Durchgänge dupliziert wird, kann dies zu einer Erhöhung der Kosten und einer spürbaren Abnahme der Leistungsfähigkeit führen. Dementsprechend ist es unter Umständen nicht möglich, das herkömmliche Kryptosystem auf eine Mehrzahl gegenwärtiger Anwendungen anzuwenden.
-
Die
DE 202 17 616 U1 offenbart ein Verfahren zur Punktmultiplikation auf elliptischen Kurven zum Verschlüsseln eines zufällig gewählten Punkts, welches parametrisiert ablaufen kann.
-
Der Artikel CORON, J. S.: Resistance Against Differential Power Analysis for Elliptic Curve Cryptosystems. Cryptographic Hardware and Embedded Systems, LNCS vol. 1717, Springer-Verlag, 1999, Seiten 292–302, hier S. 1–11, beschäftigt sich mit Gegenmaßnahmen der DPA. Es ist beschrieben, dass eine Randomisierung nach jeder Addition oder einer Punktverdopplung stattfinden kann.
-
Der Erfindung liegt das technische Problem zugrunde, ein Verfahren zum Verschlüsseln von Eingabedaten, ein kryptographisches System, ein Computerprogrammprodukt, ein Computer-lesbares Speichermedium und ein in einer Trägerwelle verkörpertes Computerdatensignal anzugeben, welche auf eine Mehrzahl gegenwärtiger Anwendungen anwendbar sind.
-
Erfindungsgemäß wird die Aufgabe gelöst durch ein Verfahren zum Verschlüsseln von Eingabedaten mit den Merkmalen des Patentanspruchs 1, ein kryptographisches System mit den Merkmalen des Patentanspruchs 11 oder des Patentanspruchs 19, ein Computerprogrammprodukt mit den Merkmalen des Patentanspruchs 20, ein Computer-lesbares Speichermedium mit den Merkmalen des Patentanspruchs 21 und ein in einer Trägerwelle verkörpertes Computerdatensignal mit den Merkmalen des Patentanspruchs 22.
-
Vorteilhafte Ausgestaltungen der Erfindung sind in den Unteransprüchen angegeben, deren Wortlaut hiermit durch Bezugnahme zum Gegenstand der vorliegenden Beschreibung gemacht wird, um unnötige Textwiederholungen zu vermeiden.
-
Vorteilhafte Ausgestaltungen der Erfindung, die weiter unten detailliert beschrieben sind, sowie die zur Verständniserleichtung weiter oben beschriebenen Ausgestaltungen des Standes der Technik sind in den Zeichnungen dargestellt. Es zeigt:
-
1 einen herkömmlichen skalaren Multiplikationsvorgang;
-
2 ein Ablaufdiagramm zur Darstellung eines Verfahrens zum Verschlüsseln von Eingabedaten gemäß einer beispielhaften Ausgestaltung der vorliegenden Erfindung;
-
3 ein Blockschaltbild eines kryptographischen Systems, welches das Verfahren der 2 implementiert, gemäß einer beispielhaften Ausgestaltung der vorliegenden Erfindung; und
-
4 ein Blockschaltbild eines kryptographischen Systems, welches das Verfahren der 2 implementiert, gemäß einer weiteren beispielhaften Ausgestaltung der vorliegenden Erfindung.
-
Eine beispielhafte Ausgestaltung der vorliegenden Erfindung zielt auf ein kryptographisches Verfahren ab, das die Effizienz von Leistungsanalyseangriffen reduzieren kann, indem die Entropie in Leistungsverläufen durch Verwendung einer zufälligen Punktdarstellung vergrößert wird, um auf diese Weise den Verlust nutzbarer Informationen aus den Leistungsverläufen zu reduzieren und/oder zu minimieren. Eine weitere beispielhafte Ausgestaltung der vorliegenden Erfindung zielt auf ein kryptographisches System zum Implementieren eines beispielhaften Verfahrens ab.
-
Eine elliptische Kurve E ist ein Satz von Punkten (x, y), welche die elliptische Kurvengleichung (Gleichung 1) in der Weierstrass-Form erfüllen, wobei an (n = 1, 2, 3, ...) eine von Null verschiedene Konstante ist: E: y2 + a1xy + a3y = x3 + a2x2 + a4x + a6. (1)
-
Für kryptographische Anwendungen kann die elliptische Kurve über einem finiten Primfeld GF(p) oder einem finiten binären Feld GF(2n) verwendet werden. Hier bezeichnet GF() ein Galois-Feld (z. B. ein finites Feld mit pn Elementen, wobei p eine ganzzahlige Primzahl ist), wobei das finite Primfeld ein Feld mit einer Primzahl an Elementen und das finite binäre Feld ein Feld mit 2n Elementen ist.
-
Die vorliegende beispielhafte Ausgestaltung bezieht sich auf Elliptic-Curve-Cryptography (ECC) auf der Grundlage des finiten binären Feldes. Jedoch ist die vorliegende beispielhafte Ausgestaltung nicht auf ECC basierend auf dem finiten binären Feld beschränkt. Der Fachmann erkennt, dass die vorliegende beispielhafte Ausgestaltung bei entsprechender Abänderung auf die finite Primfeld-ECC übertragen werden kann und dass sie ebenso auf jedem beliebigen bekannten Kryptoalgorithmus anwendbar ist.
-
Wenn n ≥ 1, dann gibt es ein ausgezeichnetes Feld GF(2
n) mit 2
n Elementen. Im Falle des finiten binären Feldes, kann Gleichung 1 in Gleichung 2 umgewandelt werden:
-
Die elliptischen Kurven haben eine Punktadditionsoperation, die einen Unterfall in Form einer Punktverdopplungsoperation enthält. Um beispielsweise den Ergebnispunkt R = P + Q = (x
3, y
3) ausgehend von zwei Eingabepunkten P = (x
1, y
1) und Q = (x
2, y
2) zu erhalten, wird die nächste Finites-Feld-Operation (Gleichung 3) in dem finiten binären Feld GF(2
n) aufgerufen:
-
Für die Punktverdopplungsoperation (P = Q) wird die nächste Finites-Feld-Operation (Gleichung 4) in dem finiten binären Feld GF(2
n) durchgeführt:
-
Die Hautoperation in der ECC ist eine skalare Punktmultiplikation, die darin besteht, den Ausdruck Q = k·P = P + P + .... + P (k-mal) zu berechnen, wobei k ein geheimer Schlüssel ist. Die skalare Punktmultiplikation basiert auf den Punktmultiplikationen, die wiederum auf den Finites-Feld-Operationen basieren: Multiplikation in dem finiten Feld, Addition in dem finiten Feld und Quadrierung in dem finiten Feld. Eine verwandte Operation ist der diskrete Logarithmus, der in einer Berechnung von k aus P besteht, wobei Q = k·P.
-
Es existieren neben der affinen Darstellung (die in den obigen Gleichungen verwendet wurde) verschiedene andere mögliche Darstellungen des Punkts (engl. dot) auf der elliptischen Kurve, beispielsweise eine gewöhnliche projektive Darstellung, eine projektive Jacobi-Darstellung, eine projektive Lopez-Dahab-Darstellung usw. Da diese Darstellungen bekannte mathematische oder algebraische Darstellungen sind, wird vorliegend zum Zwecke einer Abkürzung auf eine detaillierte Erörterung derselben verzichtet. Jede dieser Darstellungen kann ihre eigene Vorteile, beispielsweise eine erhöhte Leistungsfähigkeit oder Widerstandsfähigkeit gegenüber bestimmten Angriffen, aufweisen oder kann ein System darstellen, das einfacher herstellungstechnisch umzusetzen ist.
-
Für die gewöhnlichen projektiven Koordinaten in GF(2
n) kann Gleichung 1 in Gleichung 5 umgewandelt werden, wobei x, y und z Koordinaten auf der elliptischen Kurve darstellen und wobei a eine von Null verschiedene Konstante ist. Die Beziehung zwischen den Gleichungen 1 und 5 ist in Gleichung 6 dargestellt.
Y2Z + XYZ = X3 + aX2Z + bZ3, (5)
-
Für projektive Jacobi-Koordinaten in GF(2
n) kann Gleichung 1 in Gleichung 7 umgewandelt werden. Die Beziehung zwischen den Gleichungen 1 und 7 ist in Gleichung 8 angegeben.
Y2 + XYZ = X3 + aX2Z2 + bZ6, (7)
-
Für die projektiven Lopez-Dahab-Koordinaten in GF(2
n) kann Gleichung 1 in Gleichung 9 umgewandelt werden. Die Beziehung zwischen den Gleichungen 1 und 9 ist in Gleichung 10 angegeben.
Y2 + XYZ = X3Z + aX2Z2 + bZ4 (9)
-
Die Weierstrass-Form einer Darstellung der elliptischen Kurve wird in kryptographischen Anwendungen vorrangig verwendet und kann zur schnellen Umwandlung der Punktdarstellung werden, wie dies in Tabelle 1 zusammengefasst dargestellt ist. In Tabelle 1 bezeichnet A(x, y) die affine Darstellung, P(X, Y, Z) bezeichnet die gewöhnliche projektive Darstellung, J(X, Y, Z) bezeichnet die projektive Jacobi-Darstellung und L(X, Y, Z) bezeichnet die projektive Lopez-Dahab-Darstellung. [Tabelle 1]
-
Eine inverse Operation eines Elements in der EC-Operation in dem finiten binären Feld ergibt sich, wie weiter unten beschrieben. Dies bedeutet, dass es ein bekanntes Verfahren zum Berechnen einer inversen Operation eines Elements in GF(2
n) gibt, bei dem die Anzahl von Multiplikationen minimiert wird. Wenn beispielsweise α ∊ GF(2
n), α ≠ 0, dann ist Gleichung 11 erfüllt.
-
Wenn n in Gleichung 11 ungeradzahlig ist, so ergibt sich Gleichung 12, wodurch Gleichung 13 erfüllt ist. Wenn also
berechnet wurde, indem der Aufwand für das Quadrieren ignoriert wurde, ist nur eine einzige Multiplikation erforderlich, um die inverse Operation (Gleichung 11) auszuwerten.
2n-1 – 1 = (2(n-1)/2 – 1)(2(n-1)/2 + 1) (12)
-
Wenn n in Gleichung 11 geradzahlig ist, ist Gleichung 14 erfüllt. Folglich sind, wenn
berechnet wurde, nur zwei Multiplikationen erforderlich, um die inverse Operation (Gleichung 11) auszuwerten.
-
-
Das Verfahren der inversen Operation kann rekursiv wiederholt werden. Dies erfordert I(n) = ⌊log2(n – 1)⌋ + ω(n – 1) – 1 Feldmultiplikationen, wobei ω(n – 1) die Anzahl von Einsen (Hemming-Gewichtung) in der binären Darstellung von n – 1 angibt.
-
Einem Differential-Power-Analysis(DPA)-Angriff liegt die Hypothese zugrunde, dass die Leistungsverläufe mit denjenigen Anweisungen, die ein kryptographisches System ausführt, und mit den Werten der Operanden, die ein System gemäß beispielhaften Ausgestaltungen manipuliert, korreliert sind. Folglich kann eine Untersuchung der Leistungsverläufe Informationen bezüglich der ausgeführten Anweisungen und des Inhalts von Datenregistern enthüllen. In dem Fall, dass das kryptographische System eine kryptographische Operation unter Verwendung eines geheimen Schlüssels durchführt, kann es möglich sein, den geheimen Schlüssel abzuleiten.
-
Bei Simple-Power-Analysis(SPA)-Angriffen können Informationen betreffend den geheimen Schlüssel direkt abgeleitet werden, indem der Leistungsverlauf einer einzelnen Operation mit geheimem Schlüssel untersucht wird. Implementierungen der EC-Punkt-Multiplikationsalgorithmen können angreifbar sein, da die gewöhnlichen Formeln zum Addieren und Verdoppeln von Punkten relativ stark unterschiedlich sind und deshalb unterscheidbare Leistungsverläufe aufweisen. Jede Implementierung, bei der der Ausführungspfad über Bits des geheimen Schlüssels bestimmt wird, ist potentiell angreifbar.
-
DPA-Angriffe nutzen Veränderungen der Leistungsaufnahme aus, die mit den gegenwärtig manipulierten Datenwerten korreliert sind. Diese Veränderungen sind typischerweise viel kleiner als diejenigen, die mit unterschiedlichen Anweisungssequenzen verknüpft sind, und können deshalb durch Rauschen und Messfehler verfälscht sein. Statistische Methoden werden auf eine Sammlung von Leistungsverläufen angewandt, um das Rauschen zu reduzieren und die differenzielle Analyse zu stärken.
-
Um einen SPA-Angriff abzuwehren, gibt es eine Anzahl unterschiedlicher Gegenmaßnahmen. Jedoch sind die meisten SPA-Gegenmaßnahmen für den DPA-Angriff zu schwach. Obwohl der DPA-Angriff im Vergleich mit dem SPA-Angriff relativ komplexer ist und die Analyse einer beträchtlichen Anzahl von Leistungsverläufen erfordert, besteht dennoch die Gefahr, dass geheime Informationen verloren gehen. Die Komplexität des DPA-Angriffs kann auf der Grundlage der erforderlichen Anzahl von Leistungsverläufen und über eine Berechnung mittels Hardware-Ressourcen gemessen werden. Obwohl die zum Durchführen eines automatisierten DPA-Angriffs erforderliche Zeit zwischen einigen Stunden bis mehrere Wochen betragen kann, kann der DPA-Angriff noch immer als ernsthaftes Angriffsverfahren eingesetzt werden.
-
Selbst wenn eine Skalarmultiplikation mit einem SPA-resistenten Verfahren, beispielsweise „immer Verdoppeln und Addieren” und/oder mittels eines DPA-resistenten Verfahrens geschützt ist, beispielsweise zufällige projektive Koordinaten, zufällige elliptische Kurven oder zufällige Felddarstellungen, kann die Skalarmultiplikation noch immer in solchen Situationen gegenüber einem DPA-Angriff anfällig sein, in denen ein Kryptoanalytiker die Ausgangs-Punktdarstellung wählen kann.
-
Folglich schlagen die Erfinder ein Verfahren zum Erhöhen der Komplexität eines Angriffs auf ein signifikanteres Niveau vor. Gemäß der vorliegenden beispielhaften Ausgestaltung können Werte eines Leistungsverlaufs zufällig verändert werden, indem die Punktdarstellung während eines Skalar-Multiplikationsvorgangs zufällig verändert wird. In einem Skalar-Multiplikationsvorgang, bei dem die EC-Operation mehrfach ausgeführt wird, können verschlüsselte Punkte zufällig ausgewählter Durchgänge in andere Punkte umgewandelt und verarbeitet werden.
-
2 ist ein Ablaufdiagramm zur Darstellung einer Skalar-Multiplikationsoperation zum Verschlüsseln eines Eingabepunkts P gemäß einer beispielhaften Ausgestaltung der vorliegenden Erfindung. Bezug nehmend auf 2 empfängt ein kryptographisches System (das detailliert unter Bezugnahme auf die 3 und 4 zu beschreiben sein wird) in Schritt S41 den Eingabepunkt P und eine Zufallsrate r. Der Eingabepunkt P kann zu verschlüsselnde Eingabedaten darstellen, und die Zufallsrate r bezeichnet einen Wert zum Steuern eines Zufälligkeitsniveaus der Punktdarstellung während des Skalar-Multiplikationsvorgangs. Die Zufallsrate r kann durch einen Nutzer zwischen 0 und 100% eingestellt werden. Beispielsweise gibt eine Zufallsrate r von 100% an, dass alle Eingabe- und Ausgabepunkte in der EC-Operation über eine Mehrzahl von Durchgängen in andere Punktdarstellungen umgewandelt werden sollen. Eine Zufallsrate r von 60% gibt an, dass nur 60% der Eingabe- und Ausgabepunkte in der EC-Operation über eine Mehrzahl von Durchgängen in andere Punktdarstellungen umgewandelt werden sollen. Positionen, an denen die Eingabe- und Ausgabepunkte in die anderen Punktdarstellungen umgewandelt werden, können zufällig bestimmt sein.
-
Das kryptographische System setzt den empfangenen Eingabepunkt P auf Q0 (Schritt S42). Weiterhin kann – wie in den Schritten S43 bis S48 dargestellt – ein endgültiger verschlüsselter Ausgabepunkt Q erzeugt werden, indem die EC-Operation über eine Mehrzahl von Durchgängen durchgeführt wird und indem die veränderten Positionen der Punktdarstellungen zufällig ausgewählt werden. Mit anderen Worten, das kryptographische System empfängt einen zufälligen Positionswert r1, der durch einen Zufallszahlengenerator 220 (3) erzeugt wurde, in Schritt S43 und vergleicht den empfangenen zufälligen Positionswert r1 mit der Zufallsrate r (Schritt S44). Der zufällige Positionswert r1 wird in jedem Durchgang innerhalb eines Bereichs der Zufallsrate r zufällig erzeugt. Wenn die Zufallsrate r kleiner oder gleich dem zufälligen Positionswert r1 aus Schritt S44 ist, erzeugt das kryptographische System einen verschlüsselten Punkt Qi, indem es die EC-Operation eines nachfolgenden Durchgangs ohne Darstellungsänderung eines Punkts Qi-1, der in der EC-Operation eines vorangehenden Durchgangs (Schritt S45) verschlüsselt wurde, durchführt. In der EC-Operation wird die Skalarmultiplikation Qi = k·P(Qi-1) = P + P + ... + P (k-mal) ausgehend von dem Punkt Qi-1, der in dem vorangehenden Durchgang verschlüsselt wurde, und ausgehend von einem entsprechenden geheimen Schlüssel k unter Verwendung von Bereichsparametern, a, b, n in GF(2n) berechnet. Der geheime Schlüssel k wird durch einen bestimmten Schlüsselgenerator erzeugt, und die Bereichsparameter a, b, n können von einem bestimmten, geschützten nicht-flüchtigen Speicher empfangen werden.
-
Wenn die Zufallsrate r größer als der zufällige Positionswert r1 ist (Ausgabe „JA” in Schritt S44), dann empfängt das kryptographische System einen zufälligen Auswahlwert r2, der durch den Zufallszahlengenerator 220 erzeugt wird, und erzeugt einen veränderten Punkt (Schritt S47) durch Konvertieren des Punkts Qi-1, der in der EC-Operation des vorhergehenden Durchgangs verschlüsselt wurde, in eine Punktdarstellung, die durch den zufälligen Auswahlwert r2 bestimmt ist. Der zufällige Auswahlwert r2 wird erzeugt, um in jedem Durchgang zufällig eine der Mehrzahl von Punktdarstellungen, die in Tabelle 1 gezeigt sind, auszuwählen. In diesem Fall erzeugt das kryptographische System den verschlüsselten Punkt Qi, indem der hinsichtlich seiner Punktdarstellung umgewandelte Punkt in einem nachfolgenden Durchgang verwendet wird (Schritt S45).
-
Gemäß den Schritten S43 bis S48 wird dann, wenn alle Skalarmultiplikationen abgeschlossen sind (zum Beispiel bei Ausgabe von „JA” Schritt S48), der endgültige verschlüsselte Ausgabepunkt Q an einen Post-Prozessor einer höheren Ebene ausgegeben (Schritt S49).
-
3 ist ein Blockschaltbild eines kryptographischen Systems 200, welches das Verfahren der 2 gemäß einer beispielhaften Ausgestaltung der vorliegenden Erfindung implementiert. Bezug nehmend auf 3 kann das kryptographische System 200 eine Skalar-Multiplikationseinheit 210 aufweisen, die zum Empfangen des Eingabepunkts P und der Zufallsrate r ausgebildet ist (vgl. Schritt S41). Das System 200 kann einen Zufallszahlengenerator 220 aufweisen, der dazu ausgebildet ist, den zufälligen Positionswert r1 und den zufälligen Auswahlwert r2 ausgehend von der Zufallsrate r in jedem Durchgang zufällig zu erzeugen.
-
Die Skalar-Multiplikationseinheit 210 kann dazu ausgebildet oder eingerichtet sein, die Zufallsrate r mit dem zufälligen Positionswert r1 zu vergleichen (in Schritt S44) und den Eingabepunkt P auszuwählen. Wenn die Zufallsrate r größer als der zufällige Positionswert r1 ist (Ausgabe „JA” in Schritt S44), wird der durch die Skalar-Multiplikationseinheit 210 ausgewählte Eingabepunkt P an einen Punktdarstellungs-Umwandler 230 ausgegeben, der dazu ausgebildet ist, die Punktdarstellung des Eingabepunkts P zu verändern. Der Punktdarstellungs-Umwandler 230 kann dazu ausgebildet sein, einen veränderten Punkt Qi' zu erzeugen, indem er einen Eingabepunkt Qi, der durch die Skalar-Multiplikationseinheit 210 ausgewählt wurde (Schritt S47), in eine Punktdarstellung umwandelt, die durch den zufälligen Auswahlwert r2 bestimmt ist. Die Skalar-Multiplikationseinheit 210 erzeugt den verschlüsselten Ausgabepunkt Q, indem sie die EC-Operation auf der Grundlage des veränderten Punkts Qi' und eines geheimen Schlüssels eines entsprechenden Durchgangs (Schritt S45) durchführt. Wenn die Zufallsrate r kleiner oder gleich dem zufälligen Positionswert r1 ist (Ausgabe „NEIN” in Schritt S44), erzeugt die Skalar-Multiplikationseinheit 210 den verschlüsselten Ausgabepunkt Q, indem sie die EC-Operation in Schritt S45 auf der Grundlage einer Punktdarstellung eines vorangehenden Durchgangs ohne Veränderung der Punktdarstellung durchführt.
-
In gleicher Weise vergleicht die Skalar-Multiplikationseinheit 210 die Zufallsrate r mit dem zufälligen Positionswert r1, bestimmt die Notwendigkeit einer Veränderung einer Punktdarstellung, wählt einen Punkt vor oder nach einem entsprechenden Durchgang aus und gibt den ausgewählten Punkt an den Punktdarstellungs-Umwandler 230 aus, bevor in einen nachfolgenden Durchgang die EC-Operation eines verschlüsselten Ausgabepunkts, der in einem vorhergehenden Durchgang verschlüsselt wurde, durchgeführt wird. Der Punktdarstellungs-Umwandler 230 kann derart ausgebildet sein, dass er im Sinne eines „geteilten” Betriebs zum zufälligen Umwandeln der Punktdarstellung sowohl vor der EC-Operation als auch nach der EC-Operation (Schritt S47) in jedem Durchgang verwendet wird.
-
Die Skalar-Multiplikationseinheit 210 wählt zufällig wenigstens den Eingabepunkt P und/oder einen von Punkten aus, die durch die EC-Operation über eine Mehrzahl von Durchgängen verschlüsselt wurden, und wendet einen Punkt, der durch Veränderung einer Darstellung des ausgewählten Punkts erhalten wurde, auf einen nachfolgenden Durchgang an. Eine Veränderung der Punktdarstellung kann auf Grundlage der Zufallsrate r und des zufälligen Positionswertes r1 bestimmt werden, der in jedem Durchgang durch den Zufallszahlengenerator 200 erzeugt wird. Die Art oder der Typ (vgl. Tabelle 1) der veränderten Punktdarstellung kann auf Grundlage des zufälligen Auswahlwerts r2 bestimmt werden, der in jedem Durchgang durch den Zufallszahlengenerator 220 erzeugt wird.
-
4 ist ein Blockschaltbild eines kryptographischen Systems 300, welches das kryptographische Verfahren der 2 gemäß einer weiteren beispielhaften Ausgestaltung der vorliegenden Erfindung implementiert. Bezug nehmend auf 2 kann das System 300 eine Mehrzahl von EC-Operationseinheiten 211, 212, 213, ... und eine Mehrzahl von Punktdarstellungs-Umwandlern 231, 232, 233 usw. aufweisen. Der Zufallszahlengenerator 220, der in 3 gezeigt wurde, ist ebenfalls mit beinhaltet, jedoch aus Gründen der Übersichtlichkeit nicht dargestellt. Im Gegensatz zu dem Punktdarstellungs-Umwandler 230 gemäß 3, der vor und nach der EC-Operation geteilt verwendet wurde, ist in dem System 300 jeder bestimmte Punktdarstellungs-Umwandler 231, 232, 233, usw. vor und hinter einer gegebenen, zugehörigen EC-Operation jedes Durchgangs angeordnet.
-
Das System 300 empfängt den Eingabepunkt P und die Zufallsrate r (vgl. Schritt S41 in 2). Der zufällige Positionswert r1 und der zufällige Auswahlwert r2 werden in jedem Durchgang durch den Zufallszahlengenerator 220 ausgehend von der Zufallsrate r zufällig erzeugt.
-
Wie in 4 dargestellt, vergleicht ein erster Punktdarstellungs-Umwandler 231 die Zufallsrate r mit dem zufälligen Positionswert r1 vor einer ersten EC-Operationseinheit 211 (vgl. Schritt S44 in 2) und wählt den Eingabepunkt P aus, wenn die Zufallsrate r größer als der zufällige Positionswert r1 ist (Ausgabe „JA” in Schritt S44). Der erste Punktdarstellungs-Umwandler 231 erzeugt einen geänderten Punkt (Schritt S47), indem er den ausgewählten Eingabepunkt P in eine Punktdarstellung umwandelt, die durch den zufälligen Auswahlwert r2 angegeben ist. Die erste EC-Operationseinheit 211 erzeugt einen verschlüsselten Ausgabepunkt Q1, indem sie die EC-Operation auf der Grundlage des veränderten Punkts und eines geheimen Schlüssels k eines entsprechenden Durchgangs durchführt. Wenn die Zufallsrate r kleiner oder gleich dem zufälligen Positionswert r1 ist (Ausgabe „NEIN” in Schritt S44), gibt der erste Punktdarstellungs-Umwandler 231 den Eingabepunkt P ohne eine Änderung der Punktdarstellung an die erste EC-Operationseinheit 211 aus. Die erste EC-Operationseinheit 211 erzeugt den verschlüsselten Ausgabepunkt Q1 in Schritt S145, indem sie die EC-Operation auf der Grundlage des Eingabepunkts P und des geheimen Schlüssels k des entsprechenden Durchgangs durchführt.
-
Ebenso vergleicht vor dem Durchführen der EC-Operation in einem nachfolgenden Durchgang an jedem der Ausgabepunkte Q1, Q2, ..., die in einem vorangehenden Durchgang verschlüsselt wurden, jeder der verbleibenden Punktdarstellungs-Umwandler 232, 233, ... vor und hinter jeder der verbleibenden EC-Operationseinheiten 212, 213, ... die Zufallsrate r mit dem zufälligen Positionswert r1, bestimmt die Notwendigkeit einer Veränderung der Punktdarstellung, wählt einen Punkt vor oder nach einem entsprechenden Durchgang aus und konvertiert den ausgewählten Punkt in eine Punktdarstellung, wie durch den zufälligen Auswahlwert r2 angegeben. Gemäß der Umwandlung wird jeder der hinsichtlich ihrer Punktdarstellung veränderten Punkte Q1', Q2', ... an eine entsprechende EC-Operationseinheit 211, 212, 213 usw. ausgegeben. Jede entsprechende EC-Operationseinheit führt die EC-Operation auf der Grundlage eines hinsichtlich seiner Punktdarstellung veränderten Punkts oder eines unveränderten Punkts und eines entsprechenden geheimen Schlüssels durch, die in jedem Durchgang eingegeben werden.
-
Jeder der Mehrzahl von Punktdarstellungs-Umwandlern 231, 232, 233, ... wählt zufällig entweder den Eingabepunkt und/oder wenigstens einen der durch die EC-Operation verschlüsselten Punkte aus, wandelt eine Darstellung des ausgewählten Punkts um und gibt den veränderten Punkt an die EC-Operationseinheit eines nachfolgenden Durchgangs aus. Die Veränderung der Punktdarstellung wird auf der Grundlage der Zufallsrate r und des zufälligen Positionswertes r1 bestimmt, der in jedem Durchgang durch den Zufallszahlengenerator erzeugt wird. Die Art oder der Typ (vgl. Tabelle 1) der veränderten Punktdarstellung wird auf der Grundlage des zufälligen Auswahlwertes r2 bestimmt, der in jedem Durchgang durch den Zufallszahlengenerator erzeugt wird.
-
Da die Binärfeld-ECC durchgeführt wird, indem zufällig Punktdarstellungen über eine Mehrzahl von Durchgängen auf der Grundlage der Zufallsrate r, des zufälligen Positionswertes r1 und des zufälligen Auswahlwertes r2 während des Skalar-Multiplikationsvorgangs verändert werden, wie oben beschrieben, kann das kryptographische Verfahren und das kryptographische System gemäß beispielhaften Ausgestaltungen der vorliegenden Erfindung eine leistungsfähige Gegenmaßnahme gegen die DPA bieten. Für die zufälligen Punktdarstellungen können „affine”, „gewöhnliche projektive”, „projektive Jacobi-” und „projektive Lopez-Dahab-”Punktdarstellungen verwendet werden.
-
Obwohl weiter oben primär in Bezug auf Hardware beschrieben, kann eine beispielhafte Methode, die durch eine oder mehrere Komponenten eines oben beschriebenen beispielhaften Systems implementiert ist, auch in Form von Software als ein Computerprogramm ausgestaltet sein. Beispielsweise kann ein Programm gemäß beispielhaften Ausgestaltungen der vorliegenden Erfindung ein Computerprogrammprodukt sein, das einen Computer veranlasst, ein Verfahren zum Verschlüsseln von Eingabedaten auszuführen, indem beispielsweise die in Bezug auf 2 beschriebene Funktionalität implementiert wird.
-
Das Computerprogrammprodukt kann ein Computer-lesbares Medium aufweisen, auf das eine Computerprogrammlogik oder Codeabschnitte aufgebracht sind, um einen Prozessor eines Systems gemäß beispielhafter Ausgestaltungen der vorliegenden Erfindung in die Lage zu versetzen, eine oder mehrere Funktionen gemäß einer oben beschriebenen Methodik auszuführen. Die Computerprogrammlogik kann auf diese Weise den Prozessor veranlassen, ein beispielhaftes Verfahren oder eine oder mehrere Funktionen eines hier beschriebenen beispielhaften Verfahrens auszuführen.
-
Das Computer-lesbare Speichermedium kann ein eingebautes Medium sein, das innerhalb des Hauptkörpers eines Computers installiert ist, oder ein entfernbares Medium, das derart ausgestaltet ist, dass es von dem Computer-Hauptkörper entfernbar ist. Beispiele für das eingebaute Medium beinhalten wiederbeschreibbare nicht-flüchtige Speicher, beispielsweise RAM, ROM, Flash-Speicher und Festplatten, sind jedoch nicht hierauf beschränkt. Beispiele eines entfernbaren Mediums können optische Speichermedien, beispielsweise CD-ROMs und DVDs; magneto-optische Speichermedien, beispielsweise MOs; magnetische Speichermedien, beispielsweise Floppy-Disks (Trademark), Kassettenbänder und entfernbare Festplatten; Medien mit einem eingebauten, wiederbeschreibbaren nicht-flüchtigen Speicher, beispielsweise Speicherkarten; und Medien mit einem eingebauten ROM, beispielsweise ROM-Kassetten, sein. Grundsätzlich sind diese Medien nicht auf die angegebenen Beispiele beschränkt.
-
Derartige Programme können auch in Form eines durch externe Quellen gelieferten übertragenen Signals und/oder eines Computerdatensignals zur Verfügung gestellt werden, das in einer Trägerwelle verkörpert ist. Das Computerdatensignal, das eine oder mehrere Anweisungen oder Funktionen einer beispielhaften Methodik verkörpert, kann auf einer Trägerwelle zur Übertragung und/oder zum Empfang durch eine Einrichtung übertragen werden, welche die Instruktionen oder Funktionen einer beispielhaften Methodik ausführt. Beispielsweise können die Funktionen oder Instruktionen des beispielhaften Verfahrens gemäß 4 implementiert werden, indem eines oder mehrere Code-Segmente der Trägerwelle in einem Computer verarbeitet werden, der eine oder mehrere Komponenten des beispielhaften Systems gemäß den 3 und/oder 4 steuert, wobei die Instruktionen oder Funktionen ausgeführt werden können, um Daten gemäß dem beispielhaften Verfahren einer der 2 bis 4 zu verschlüsseln. Des Weiteren können derartige Programme, wenn sie auf einem Computer-lesbaren Speichermedium gespeichert sind, in einfacher Weise gelagert und verteilt werden. Das Speichermedium kann, wenn es durch einen Computer gelesen wird, das Verschlüsseln von Eingabedaten gemäß einem hier beschriebenen beispielhaften Verfahren ermöglichen.
-
Das kryptographische Verfahren und das kryptographische System gemäß beispielhaften Ausgestaltungen der vorliegenden Erfindung können ein Niveau zur Verschlechterung einer Leistungsfähigkeit einstellen, das der Anzahl veränderter Punktdarstellungen in dem Skalar-Multiplikationsvorgang entspricht, wobei zugleich die Komplexität eines Leistungsanalyseangriffs durch Maskieren von Leistungsverläufen in der EC-Operation erhöht wird, sodass diese nicht unterscheidbar sind. Obwohl in den obigen Beispielen die Binärfeld-ECC beschrieben wurde, kann mit nur geringen Modifikationen auch eine Primfeld-ECC unter Verwendung eines erweiterten Euklidschen Algorithmus implementiert werden, wobei die Implementierung zum Abwehren des Leistungsanalyseangriffs konfiguriert werden kann.
-
Wie oben beschrieben, kann ein kryptographisches Verfahren und ein kryptographisches System gemäß beispielhaften Ausgestaltungen der vorliegenden Erfindung die Effizienz von DPA-Angriffen reduzieren, indem die Entropie von Leistungsverläufen auf der Grundlage zufällig veränderter Punktdarstellungen erhöht wird. Da weiterhin ein Nutzer eine Zufallsrate der Punktdarstellungen steuern kann, lässt sich ein Leistungsherabsetzungsniveau und ein Sicherheitswiderstandsniveau einstellen. Folglich kann das kryptographische Verfahren und das kryptographische System innerhalb eines Kryptosystems angewendet werden, das Robustheit gegenüber DPA-Angriffen und zugleich eine hohe Betriebsgeschwindigkeit erfordert. Zusätzlich können das kryptographische Verfahren und das kryptographische System auf finite Primfeld-ECC anwendbar sein, wobei nur geringfügige Modifikationen erforderlich sind, und können in einfacher Weise auf jeden bekannten Kryptoalgorithmus angewendet werden.
-
Es ist offensichtlich, dass die beschriebenen beispielhaften Ausgestaltungen der vorliegenden Erfindung in vielfältiger Weise abgeändert werden können. Beispielsweise können die Funktionsblöcke der 2 bis 4, die ein beispielhaftes System und/oder ein beispielhaftes Verfahren beschreiben, in Hardware und/oder Software implementiert sein. Die Hardware-/Software-Implementierungen können eine Kombination eines oder mehrerer handelsüblicher Prozessoren und eines oder mehrerer handelsüblicher Artikel beinhalten. Der oder die handelsüblichen Artikel können darüber hinaus die Speichermedien und eine oder mehrere ausführbare Computerprogramme beinhalten. Das oder die ausführbaren Computerprogramme können die Anweisungen zum Durchführen der beschriebenen Operationen oder Funktionen beinhalten. Das oder die ausführbaren Computerprogramme können darüber hinaus als Bestandteil eines von externer Quelle gelieferten übertragenen Signals bzw. übertragener Signale bereitgestellt werden.