DE102006022960B9 - Verfahren zum Verschlüsseln von Eingabedaten, kryptographisches System und Computerprogrammprodukt - Google Patents

Verfahren zum Verschlüsseln von Eingabedaten, kryptographisches System und Computerprogrammprodukt Download PDF

Info

Publication number
DE102006022960B9
DE102006022960B9 DE102006022960A DE102006022960A DE102006022960B9 DE 102006022960 B9 DE102006022960 B9 DE 102006022960B9 DE 102006022960 A DE102006022960 A DE 102006022960A DE 102006022960 A DE102006022960 A DE 102006022960A DE 102006022960 B9 DE102006022960 B9 DE 102006022960B9
Authority
DE
Germany
Prior art keywords
point
random
representation
rate
dot
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE102006022960A
Other languages
English (en)
Other versions
DE102006022960A1 (de
DE102006022960B4 (de
Inventor
Ihor Vasyltsov
Hee-Kwan Son
Yoo-Jin Baek
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102006022960A1 publication Critical patent/DE102006022960A1/de
Application granted granted Critical
Publication of DE102006022960B4 publication Critical patent/DE102006022960B4/de
Publication of DE102006022960B9 publication Critical patent/DE102006022960B9/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7223Randomisation as countermeasure against side channel attacks
    • G06F2207/7228Random curve mapping, e.g. mapping to an isomorphous or projective curve
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise

Abstract

Verfahren zum Verschlüsseln von Eingabedaten, mit den Schritten: Empfangen eines Eingabepunkts und einer Zufallsrate; Erzeugen eines zufälligen Auswahlwerts und eines zufälligen Positionswerts aus der Zufallsrate; zufälliges Auswählen, ausgehend von der Zufallsrate und dem zufälligen Positionswert, des Eingabepunkts und/oder wenigstens eines Punkts aus einer Anzahl von Punkten, die verschlüsselt werden, indem eine Elliptische-Kurve(EC)-Operation über eine Mehrzahl von Durchgängen durchgeführt wird; Umwandeln des ausgewählten Punkts in eine Punktdarstellung, die durch den zufälligen Auswahlwert angegeben wird; und Erzeugen eines endgültigen verschlüsselten Ausgabepunkts, indem die EC-Operation über eine Mehrzahl von Durchgängen auf der Grundlage des Eingabepunkts und eines geheimen ...

Description

  • 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(2n) mit 2n Elementen. Im Falle des finiten binären Feldes, kann Gleichung 1 in Gleichung 2 umgewandelt werden:
    Figure 00070001
  • Die elliptischen Kurven haben eine Punktadditionsoperation, die einen Unterfall in Form einer Punktverdopplungsoperation enthält. Um beispielsweise den Ergebnispunkt R = P + Q = (x3, y3) ausgehend von zwei Eingabepunkten P = (x1, y1) und Q = (x2, y2) zu erhalten, wird die nächste Finites-Feld-Operation (Gleichung 3) in dem finiten binären Feld GF(2n) aufgerufen:
    Figure 00070002
  • Für die Punktverdopplungsoperation (P = Q) wird die nächste Finites-Feld-Operation (Gleichung 4) in dem finiten binären Feld GF(2n) durchgeführt:
    Figure 00080001
  • 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(2n) 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)
    Figure 00090001
  • Für projektive Jacobi-Koordinaten in GF(2n) 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)
    Figure 00090002
  • Für die projektiven Lopez-Dahab-Koordinaten in GF(2n) 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)
    Figure 00090003
  • 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]
    Figure 00100001
  • 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(2n) gibt, bei dem die Anzahl von Multiplikationen minimiert wird. Wenn beispielsweise α ∊ GF(2n), α ≠ 0, dann ist Gleichung 11 erfüllt.
    Figure 00100002
  • Wenn n in Gleichung 11 ungeradzahlig ist, so ergibt sich Gleichung 12, wodurch Gleichung 13 erfüllt ist. Wenn also
    Figure 00100003
    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)
    Figure 00100004
  • Wenn n in Gleichung 11 geradzahlig ist, ist Gleichung 14 erfüllt. Folglich sind, wenn
    Figure 00100005
    berechnet wurde, nur zwei Multiplikationen erforderlich, um die inverse Operation (Gleichung 11) auszuwerten.
  • Figure 00110001
  • 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.

Claims (22)

  1. Verfahren zum Verschlüsseln von Eingabedaten, mit den Schritten: Empfangen eines Eingabepunkts und einer Zufallsrate; Erzeugen eines zufälligen Auswahlwerts und eines zufälligen Positionswerts aus der Zufallsrate; zufälliges Auswählen, ausgehend von der Zufallsrate und dem zufälligen Positionswert, des Eingabepunkts und/oder wenigstens eines Punkts aus einer Anzahl von Punkten, die verschlüsselt werden, indem eine Elliptische-Kurve(EC)-Operation über eine Mehrzahl von Durchgängen durchgeführt wird; Umwandeln des ausgewählten Punkts in eine Punktdarstellung, die durch den zufälligen Auswahlwert angegeben wird; und Erzeugen eines endgültigen verschlüsselten Ausgabepunkts, indem die EC-Operation über eine Mehrzahl von Durchgängen auf der Grundlage des Eingabepunkts und eines geheimen Schlüssels durchgeführt wird; wobei das zufällige Auswählen weiterhin beinhaltet: Vergleichen der Zufallsrate mit dem zufälligen Positionswert vor und nach jedem der Mehrzahl von Durchgängen; Bestimmen, auf der Grundlage der Vergleichsergebnisse, ob die Punktdarstellung zu ändern ist; und Auswählen eines Punkts vor oder nach einem entsprechenden Durchgang auf der Grundlage der Bestimmung.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das Erzeugen des endgültigen verschlüsselten Ausgabepunkts weiterhin ein erneutes Anwenden eines beliebigen der nicht-umgewandelten Punkte oder der Punkte, die umgewandelt worden sind, in einem nachfolgenden Durchgang beinhaltet.
  3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Zufallsrate zwischen 0 und 100% durch einen Nutzer eingestellt wird.
  4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass der zufällige Positionswert innerhalb eines Bereichs der Zufallsrate zufällig erzeugt wird.
  5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass der zufällige Auswahlwert zufällig eine aus einer Mehrzahl von Punktdarstellungen angibt.
  6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass die Punktdarstellung eine affine Punktdarstellung, eine gewöhnliche projektive Punktdarstellung, eine projektive Jacobi-Punktdarstellung, eine projektive Lopez-Dahab-Punktdarstellung oder eine andere bekannte Punktdarstellung ist.
  7. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass die EC-Operation in einem binären Feld durchgeführt wird.
  8. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass die EC-Operation in einem finiten Primfeld durchgeführt wird.
  9. Verfahren nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, dass das Umwandeln in die Punktdarstellung in jedem Durchgang durch unabhängige Hardware durchgeführt wird.
  10. Verfahren nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, dass das Umwandeln in die Punktdarstellung in jedem Durchgang durch gemeinsame Hardware durchgeführt wird.
  11. Kryptographisches System zum Verschlüsseln von Eingabedaten, aufweisend: eine Skalar-Multiplikationseinheit (210), die dazu ausgebildet ist, auf der Grundlage einer eingegebenen Zufallsrate und eines eingegebenen zufälligen Positionswertes einen Eingabepunkt und/oder wenigstens einen aus einer Anzahl von Punkten zufällig auszuwählen, die durch Elliptische-Kurve(EC)-Operation über eine Mehrzahl von Durchgängen verschlüsselt werden, und einen endgültigen verschlüsselten Ausgabepunkt zu erzeugen, indem sie die EC-Operation über eine Mehrzahl von Durchgängen auf der Grundlage des Eingabepunkts und eines geheimen Schlüssels durchführt; einen Zufallszahlengenerator (220), der zum Erzeugen eines zufälligen Auswahlwerts und des zufälligen Positionswerts aus der Zufallsrate ausgebildet ist; und einen Punktdarstellungs-Umwandler (230), der zum Erzeugen des geänderten Punkts ausgebildet ist, indem er den ausgewählten Punkt in eine Punktdarstellung umwandelt, die durch den zufälligen Auswahlwert angegeben ist; wobei die Skalar-Multiplikationseinheit dazu ausgebildet ist, die Zufallsrate mit dem zufälligen Positionswert vor und nach jedem der Mehrzahl von Durchgängen zu vergleichen, um zu bestimmen, ob die Punktdarstellung zu verändern ist, und dazu ausgebildet ist, vor oder nach einem entsprechenden Durchgang einen Punkt auf der Grundlage der Bestimmung auszuwählen und den ausgewählten Punkt an den Punktdarstellungs-Umwandler auszugeben.
  12. System nach Anspruch 11, dadurch gekennzeichnet, dass die Skalar-Multiplikationseinheit, die den endgültigen verschlüsselten Ausgabepunkt erzeugt, weiterhin dazu ausgebildet ist, den geänderten Punkt, der durch Umwandeln einer Darstellung des ausgewählten Punkts erhalten wird, auf einen nachfolgenden Durchgang erneut anzuwenden.
  13. System nach Anspruch 11 oder 12, dadurch gekennzeichnet, dass die Zufallsrate zwischen 0 und 100% durch einen Nutzer einstellbar ist.
  14. System nach einem der Ansprüche 11 bis 13, dadurch gekennzeichnet, dass der Zufallszahlengenerator dazu ausgebildet ist, den zufälligen Positionswert innerhalb eines Bereichs der Zufallsrate zufällig zu erzeugen.
  15. System nach einem der Ansprüche 11 bis 14, dadurch gekennzeichnet, dass das Zufallszahlengenerator dazu ausgebildet ist, den zufälligen Auswahlwert zum zufälligen Angeben einer aus einer Mehrzahl von Punktdarstellungen zu erzeugen.
  16. System nach einem der Ansprüche 11 bis 15, dadurch gekennzeichnet, dass die Punktdarstellung eine affine Punktdarstellung, eine gewöhnliche projektive Punktdarstellung, eine projektive Jacobi-Punktdarstellung, eine projektive Lopez-Dahab-Punktdarstellung oder eine andere bekannte Punktdarstellung ist.
  17. System nach einem der Ansprüche 11 bis 16, dadurch gekennzeichnet, dass die Skalar-Multiplikationseinheit die EC-Operation in einem binären Feld durchführt.
  18. System nach einem der Ansprüche 11 bis 16, dadurch gekennzeichnet, dass die Skalar-Multiplikationseinheit die EC-Operation in einem finiten Primfeld durchführt.
  19. Kryptographisches System, aufweisend: eine Mehrzahl von Elliptische-Kurve(EC)-Operationseinheiten (211, 212, 213), von denen jede dazu ausgebildet ist, eine EC-Operation auf der Grundlage eines Eingabepunkts und eines geheimen Schlüssels in jedem Durchgang durchzuführen; eine Mehrzahl von Punktdarstellungs-Umwandlern (231, 232, 233), die jeweils vor und hinter der Mehrzahl von EC-Operationseinheiten (211, 212, 213) angeordnet sind, wobei jeder dazu ausgebildet ist, auf der Grundlage einer Zufallsrate und eines zufälligen Positionswertes zufällig einen Eingabepunkt und/oder wenigstens einen Punkt aus einer Anzahl von Punkten auszuwählen, die durch Elliptische-Kurve(EC)-Operation verschlüsselt werden, um den ausgewählten Punkt in eine Punktdarstellung umzuwandeln, die durch einen zufälligen Auswahlwert angegeben ist, und um den umgewandelten Punkt in einem nachfolgenden Durchgang an eine EC-Operationseinheit (211, 212, 213) auszugeben; und einen Zufallszahlengenerator (220), der dazu ausgebildet, den zufälligen Auswahlwert und den zufälligen Positionswert aus der Zufallsrate zu erzeugen; wobei jeder der Mehrzahl von Punktdarstellungs-Umwandlern dazu ausgebildet ist, die Zufallsrate mit dem zufälligen Positionswert zu vergleichen, zu bestimmen, ob die Punktdarstellung zu verändern ist, und einen Punkt vor oder nach einem entsprechenden Durchgang auf der Grundlage der Bestimmung auszuwählen.
  20. Computerprogrammprodukt mit einem Computer-lesbaren Medium, auf dem Computerprogrammlogik gespeichert ist, die es einem Prozessor eines kryptographischen Systems ermöglicht, Eingabedaten zu verschlüsseln, wobei die Computerprogrammlogik den Prozessor veranlasst, das Verfahren nach einem der Ansprüche 1 bis 10 durchzuführen.
  21. Computer-lesbares Speichermedium, auf dem ein Programm gespeichert ist, das dazu ausgebildet ist, einen Computer zu veranlassen, das Verfahren nach einem der Ansprüche 1 bis 10 durchzuführen.
  22. Computerdatensignal, das in einer Trägerwelle verkörpert ist, wobei das Computerdatensignal dazu ausgebildet ist, die Verschlüsselung von Eingabedaten in einer Vorrichtung zu steuern, die dazu ausgebildet ist, die Eingabedaten zu empfangen und zu verschlüsseln, wobei das Computerdatensignal Anweisungen zum Durchführen des Verfahrens nach einem der Ansprüche 1 bis 10 aufweist.
DE102006022960A 2005-05-11 2006-05-11 Verfahren zum Verschlüsseln von Eingabedaten, kryptographisches System und Computerprogrammprodukt Active DE102006022960B9 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020050039095A KR100891323B1 (ko) 2005-05-11 2005-05-11 이진 필드 ecc에서 랜덤 포인트 표현을 이용하여 파워해독의 복잡도를 증가시키기 위한 암호화 방법 및 장치
KR10-2005-0039095 2005-05-11

Publications (3)

Publication Number Publication Date
DE102006022960A1 DE102006022960A1 (de) 2007-01-04
DE102006022960B4 DE102006022960B4 (de) 2013-04-11
DE102006022960B9 true DE102006022960B9 (de) 2013-06-27

Family

ID=37524116

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102006022960A Active DE102006022960B9 (de) 2005-05-11 2006-05-11 Verfahren zum Verschlüsseln von Eingabedaten, kryptographisches System und Computerprogrammprodukt

Country Status (3)

Country Link
US (1) US7853013B2 (de)
KR (1) KR100891323B1 (de)
DE (1) DE102006022960B9 (de)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7308096B2 (en) * 2000-05-30 2007-12-11 Hitachi, Ltd. Elliptic scalar multiplication system
KR100530372B1 (ko) * 2003-12-20 2005-11-22 삼성전자주식회사 사이드채널 공격을 방지할 수 있는 타원곡선 암호화 방법
US8396213B2 (en) 2005-01-21 2013-03-12 Certicom Corp. Elliptic curve random number generation
WO2006112114A1 (ja) * 2005-03-31 2006-10-26 Matsushita Electric Industrial Co., Ltd. データ暗号化装置及びデータ暗号化方法
KR100850202B1 (ko) * 2006-03-04 2008-08-04 삼성전자주식회사 Ecc 패스트 몽고매리 전력 래더 알고리즘을 이용하여dfa 에 대응하는 암호화 방법
US20090016523A1 (en) * 2007-07-12 2009-01-15 Atmel Corporation Masking and Additive Decomposition Techniques for Cryptographic Field Operations
US8559625B2 (en) * 2007-08-07 2013-10-15 Inside Secure Elliptic curve point transformations
GB2453367A (en) * 2007-10-04 2009-04-08 Univ Newcastle Cryptographic processing using isomorphic mappings of Galois fields
US8233615B2 (en) 2008-01-15 2012-07-31 Inside Secure Modular reduction using a special form of the modulus
US8619977B2 (en) * 2008-01-15 2013-12-31 Inside Secure Representation change of a point on an elliptic curve
CN101911582B (zh) * 2008-01-18 2012-09-05 三菱电机株式会社 密码参数设定装置、密钥生成装置、密码系统、密码参数设定方法和密钥生成方法
FR2926652B1 (fr) * 2008-01-23 2010-06-18 Inside Contactless Procede et dispositifs de contre-mesure pour cryptographie asymetrique a schema de signature
JP5300374B2 (ja) * 2008-08-25 2013-09-25 株式会社東芝 表現変換装置、演算装置、表現変換方法及びプログラム
US8581755B2 (en) * 2010-01-20 2013-11-12 Rambus Inc. Multiple word data bus inversion
US9215069B2 (en) * 2012-12-10 2015-12-15 Intel Corporation Methods and apparatus for device authentication with one-time credentials
US8804952B2 (en) * 2012-12-26 2014-08-12 Umm Al-Qura University System and method for securing scalar multiplication against differential power attacks
US8861721B2 (en) * 2012-12-26 2014-10-14 Umm Al-Qura University System and method for securing scalar multiplication against simple power attacks
US20170134379A1 (en) * 2014-06-16 2017-05-11 Polyvalor, Limted Partnership Method for securing an application and data
KR102594656B1 (ko) 2016-11-25 2023-10-26 삼성전자주식회사 보안 프로세서, 이를 포함하는 어플리케이션 프로세서 및 보안 프로세서의 동작 방법
US10635404B2 (en) * 2017-06-29 2020-04-28 Intel Corporation Mixed-coordinate point multiplication
KR101981621B1 (ko) 2017-12-11 2019-08-28 국민대학교산학협력단 공개키 암호 알고리즘의 키 비트 변수 램덤화를 위한 장치 및 방법
US20240039716A1 (en) * 2022-07-28 2024-02-01 Brax Kinsey Digital Forge Systems and Methods

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE20217616U1 (de) * 2002-11-13 2003-02-20 Univ Darmstadt Tech Kryptographievorrichtung mit einer gegen Seitenkanal-Angriffe resistenten Implementierung der Punktmultiplikation auf elliptischen Kurven

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6088798A (en) * 1996-09-27 2000-07-11 Kabushiki Kaisha Toshiba Digital signature method using an elliptic curve, a digital signature system, and a program storage medium having the digital signature method stored therein
US6611597B1 (en) * 1999-01-25 2003-08-26 Matsushita Electric Industrial Co., Ltd. Method and device for constructing elliptic curves
JP2003098962A (ja) 2001-09-20 2003-04-04 Hitachi Ltd 楕円曲線スカラー倍計算方法及び装置並びに記録媒体
CN100452699C (zh) * 2001-09-27 2009-01-14 松下电器产业株式会社 加密装置、解密装置、密钥生成装置、版权保护系统和密码通信装置
JP2003216026A (ja) 2002-01-18 2003-07-30 Sony Corp 楕円曲線暗号処理方法および楕円曲線暗号処理装置、並びにコンピュータ・プログラム
DE60311507T2 (de) * 2002-10-26 2007-11-08 The Additional Director (Ipr), Defence Research & Development Organisation Verfahren zur elliptische-kurven-verschlüsselung
KR100451570B1 (ko) 2002-10-29 2004-10-08 (주)미래스멕스 에스피에이에 견디는 타원 곡선 암호화 알고리즘을구현하는 방법 및 장치
JP2004163687A (ja) 2002-11-13 2004-06-10 Fujitsu Ltd 楕円曲線暗号装置、楕円曲線暗号プログラム
JP2004297578A (ja) * 2003-03-27 2004-10-21 Matsushita Electric Ind Co Ltd 公開鍵生成装置、共有鍵生成装置、鍵交換装置、及び鍵交換方法
AU2003304629A1 (en) * 2003-07-22 2005-02-04 Fujitsu Limited Tamper-resistant encryption using individual key
US7298839B2 (en) * 2003-07-25 2007-11-20 Microsoft Corporation Squared Weil and Tate pairing techniques for use with elliptic curves
US7769167B2 (en) * 2003-07-25 2010-08-03 Microsoft Corporation Weil and Tate pairing techniques using parabolas
JP4423900B2 (ja) 2003-08-05 2010-03-03 株式会社日立製作所 楕円曲線暗号におけるスカラー倍計算方法と、その装置およびそのプログラム
US8396213B2 (en) * 2005-01-21 2013-03-12 Certicom Corp. Elliptic curve random number generation
US8243919B2 (en) * 2007-03-07 2012-08-14 Research In Motion Limited Method and apparatus for performing elliptic curve scalar multiplication in a manner that counters power analysis attacks

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE20217616U1 (de) * 2002-11-13 2003-02-20 Univ Darmstadt Tech Kryptographievorrichtung mit einer gegen Seitenkanal-Angriffe resistenten Implementierung der Punktmultiplikation auf elliptischen Kurven

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CORON, J.S.: Resistance Against Differential Power Analysis for Ellipitc Curve Cryptosystems, Cryptographic Hardware and Embedded Systems, LNCS Vol. 1717, Springer-Verlag, 1999, Seiten 292-302, hier S. 1-11 *

Also Published As

Publication number Publication date
US20060280296A1 (en) 2006-12-14
US7853013B2 (en) 2010-12-14
DE102006022960A1 (de) 2007-01-04
DE102006022960B4 (de) 2013-04-11
KR20060116612A (ko) 2006-11-15
KR100891323B1 (ko) 2009-03-31

Similar Documents

Publication Publication Date Title
DE102006022960B9 (de) Verfahren zum Verschlüsseln von Eingabedaten, kryptographisches System und Computerprogrammprodukt
DE102006033386B4 (de) Kryptographisches System und Verfahren zum Verschlüsseln von Eingangsdaten
DE69828787T2 (de) Verbessertes verfahren und vorrichtung zum schutz eines verschlüsselungsverfahrens mit öffentlichem schlüssel gegen angriffe mit zeitmessung und fehlereinspeisung
DE69917592T2 (de) Gegen stromverbrauchsignaturanfall beständige kryptographie
DE102012202015B4 (de) Vorrichtung und Verfahren zum Schützen einer Referenzzahl gegen darauf gerichtete Differential Power Analyse-Angriffe und Template-Angriffe
EP1891512B1 (de) Bestimmung einer modularen inversen
DE60119620T2 (de) Verfahren zur Skalarmultiplikation auf einer elliptischen Kurve und entsprechende Vorrichtung
US20040139136A1 (en) Method for securing a computer installation involving a cryptographic algorithm using boolean operations and arithmetic operations and the corresponding embedded system
DE102005037598A1 (de) Verfahren und System zur Sicherung von Daten
DE102010001289B4 (de) Vorrichtung zum Berechnen eines Ergebnisses einer Skalarmultiplikation
EP1922837B1 (de) Verfahren zum sicheren ver- oder entschlüsseln einer nachricht
DE102005028662A1 (de) Verfahren und Vorrichtung zum Berechnen einer Polynom-Multiplikation, insbesondere für die elliptische Kurven-Kryptographie
DE112009000154T5 (de) Änderung der Darstellung eines Punktes auf einer elliptischen Kurve
DE102008051447B9 (de) Verfahren und Vorrichtung zum Schützen einer RSA-Berechnung an einer Ausgabe mit Hilfe des chinesischen Restsatzes
DE102007054316A1 (de) Modulares Multiplikationsverfahren, modularer Multiplizierer und Kryptosystem
DE69924912T2 (de) Verschlüsselungsverfahren und Vorrichtung unter Verwendung einer elliptischen Kurve
DE112009000152B4 (de) Verfahren zur Datenübertragung über einen Datenkanal mit einem Elliptische-Kurven-Kryptographieverfahren und Vorrichtung hierfür
DE102006013975B4 (de) Kryptographievorrichtung und -verfahren mit Skalarmultiplikation
EP1590731A2 (de) Modulare exponentiation mit randomisierten exponenten
KR100731575B1 (ko) 전력분석공격에 대응하는 암호화 방법
DE60218421T2 (de) Verfahren und Vorrichtung zur Erzeugung von Digitalsignaturen
CN114465728B (zh) 攻击椭圆曲线签名算法的方法、装置、设备及存储介质
Kaedi et al. A New Side-Channel Attack on Reduction of RSA-CRT Montgomery Method Based
DE102019008199B3 (de) Gegen Seitenkanalangriffe geschützte Exponentiation, Primzahltest und RSA Schlüsselgenerierung
Walter Seeing through MIST given a small fraction of an RSA private key

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final

Effective date: 20130712