DE10057203C1 - Verfahren zur Berechnung eines digitalen Signalwertes für ein cryptographisches Verfahren - Google Patents
Verfahren zur Berechnung eines digitalen Signalwertes für ein cryptographisches VerfahrenInfo
- Publication number
- DE10057203C1 DE10057203C1 DE2000157203 DE10057203A DE10057203C1 DE 10057203 C1 DE10057203 C1 DE 10057203C1 DE 2000157203 DE2000157203 DE 2000157203 DE 10057203 A DE10057203 A DE 10057203A DE 10057203 C1 DE10057203 C1 DE 10057203C1
- Authority
- DE
- Germany
- Prior art keywords
- natural number
- scalar product
- calculated
- values
- calculation method
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods 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/72—Methods 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/724—Finite field arithmetic
- G06F7/725—Finite field arithmetic over elliptic curves
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures against side channel or fault attacks
- G06F2207/7261—Uniform execution, e.g. avoiding jumps, or using formulae with the same power profile
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
Für eine sichere Kommunikation ist darauf abzustellen, daß die Rechnung mit geheimzuhaltenden Schlüsseln auf der Smart-Card nicht von außen mitgelesen werden kann. Hierzu wird erfindungsgemäß eine Vorrichtung vorgeschlagen, die die Berechnung gegen ein Auslesen abschirmt. Ebenfalls wird ein überaus schnelles Berechnungsverfahren für elliptische Kurven vorgestellt, das die Berechnung vor einem Mitlesen von außen abschirmt.
Description
Die Erfindung betrifft ein Verfahren zur Berechnung eines digitalen Signalwertes für
ein cryptographisches Verfahren, insbesondere für ein cryptographisches Verfahren
mit öffentlichen Schlüsseln, das mit elliptischen Kurven über endlichen Körpern ar
beitet.
Das Konzept der Cryptographie mit öffentlichen Schlüsseln beruht auf zwei Schlüs
seln, von denen einer dem Kommunikationspartner bekannt sein muß. Dies ist der so
genannte öffentliche Schlüssel. Der entsprechende zweite Schlüssel, der sogenannte
private Schlüssel, ist geheim zu halten. Zur Verschlüsselung wird der Klartext mit
dem öffentlichen Schlüssel des Empfängers zu einer Nachricht so verknüpft, daß ein
Chiffretext entsteht. Aus dem Chiffretext kann der Klartext nur unter Verwendung des
privaten Schlüssels des Nachrichtenempfängers zurückgewonnen werden. Beispiels
weise übermittelt eine Person A ihren öffentlichen Schlüssel an eine Person B. B ver
schlüsselt eine Nachricht mit diesem öffentlichen Schlüssel und sendet den entstande
nen Chiffretext an A. Den empfangenen Chiffretext kann nun A mit seinem privaten
Schlüssel dechiffrieren. Das allgemeine Konzept der Verschlüsselung mit öffentlichen
Schlüsseln geht auf einen Vorschlag von Diffie und Hellman aus dem Jahr 1976 zu
rück.
Neben der Verwendung des Schlüsselpaares zum Verschlüsseln von Nachrichten kann
das Schlüsselpaar aus öffentlichem und privatem Schlüssel auch als digitale Signatur
verwendet werden. Eine einfache Ausführung einer digitalen Signatur besteht darin,
daß die Rolle von öffentlichem und privatem Schlüssel vertauscht wird. A versieht
eine Nachricht bzw. deren Hash-Wert mit seinem privaten Schlüssel, B kann nach Er
halt der Nachricht mit dem öffentlichen Schlüssel von A überprüfen, ob die Nachricht
mit dem privaten Schlüssel von A unterschrieben wurde. Hierbei muß selbstverständ
lich gewährleistet sein, daß der private Schlüssel nicht rekonstruiert werden kann.
Wichtige Voraussetzung bei der Verwendung von cryptographischen Verfahren mit
öffentlichen Schlüsseln ist die Geheimhaltung des privaten Schlüssels. Denn für eine
sichere Kommunikation ist es zum Austausch von Nachrichten gerade erforderlich,
daß das Verschlüsselungsverfahren und die dabei verwendeten Größen allgemein bekannt
sind, so daß die Sicherheit einzig und allein auf der Unkenntnis des privaten
Schlüssels beruht.
Eine zentrale Operation bei der Verwendung von cryptographischen Verfahren mit öf
fentlichen Schlüsseln ist das Potenzieren von natürlichen Zahlen. Beispielsweise ver
wenden das als RSA verbreitete Verfahren von R. L. Rivest, A. Shamier und L. Adle
man aus dem Jahre 1978 und das von El Gamal vorgeschlagene Verfahren aus dem
Jahre 1985 das Potenzieren mit sehr großen natürlichen Zahlen zur Ver- und Ent
schlüsselung.
Neben der Verwendung von natürlichen Zahlen modulo einer Primzahl, die sich als
Elemente von endlichen Primkörpern auffassen lassen, hat es sich bewährt, die Punkte
elliptischer Kurven über endlichen Körpern zu betrachten; diese Punkte sind Lösungen
einer Gleichung. Von besonderem Interesse sind hierbei die Galois-Felder GF (p),
wobei p eine große Primzahl ist, und GF(2^k). Der Vorteil bei der Verwendung ellip
tischer Kurven über endlichen Körpern liegt darin, daß für vergleichbare cryptographi
sche Sicherheit mit deutlich kürzeren Schlüsseln gearbeitet werden kann; dies hat
dann im allgemeinen deutlich kürzere Rechenzeiten zur Folge. Speziell für GF(2^k)
ist eine weitere Beschleunigung durch spezifische Hardware, etwa Schieberegister mit
Linearrückkopplung, möglich.
Mathematisch handelt es sich bei einer elliptischen Kurve um eine kommutative
Gruppe, dazu wird zu den Lösungspunkten der Gleichung ein zusätzlicher Punkt, das
neutrale Element der Addition, hinzugenommen. Bei dem Rechnen mit Punkten auf
einer elliptischen Kurve ist zwischen der Addition zweier verschiedener Punkte und
der Verdopplung eines Punktes zu unterscheiden, da sie durch unterschiedliche Ver
fahren realisiert werden. Unter einer skalaren Multiplikation wird eine mehrfache Ad
dition eines Punktes der elliptischen Kurve zu sich selbst verstanden.
Als grobe Regel kann festgehalten werden, daß in einem cryptographischen Verfahren
bei der Verwendung von Punkten einer elliptischen Kurve die skalare Multiplikation
an die Stelle des Potenzieren von natürlichen Zahlen tritt.
Aus Vorstehendem ergibt sich, daß für die zentralen Operationen bei cryptographi
schen Verfahren mit öffentlichen Schlüsseln, die Berechnungen schnell und vor An
griffen sicher auszuführen sind.
Ein möglicher Angriff gegen eine Vorrichtung ist die sogenannte Power-Attack. Bei
diesem Angriff versucht der Angreifer Kenntnisse vom Geheimnis, insbesondere vom
privaten Schlüssel, zu erlangen, indem er Strom- und/oder Leistungsaufnahme wäh
rend der Berechnung einer Signatur oder der Ver- bzw. Entschlüsselung aufzeichnet.
Die Strom- und/oder Leistungsaufnahme der Vorrichtung geben Aufschluß über die
durchgeführten Operationen, die Rückschlüsse auf die Operanden zulassen. Mit Hilfe
des Programmcodes ist der Angreifer dann in der Lage, Teile der verwendeten Zahlen
und Daten zu entschlüsseln.
Als Gegenmaßnahme zur Abwehr dieser Power-Attacken wurde vorgeschlagen, einen
Programmcode zu verwenden, der zufällige und nicht zur Berechnung notwendige Be
fehle ausführt. So können beispielsweise mehrfache Sprungbefehle auftreten, die un
abhängig von den geheim zu haltenden Werten die relevanten Befehle verschleiern, so
daß die bei einer Power-Attack gemessenen Signale keine Information über die ge
heimzuhaltenden Größen liefern. Nachteilig an diesem Verfahren ist jedoch, daß hier
durch die Berechnung verlangsamt wird. Für eine akzeptable Antwortzeit des Systems
müssen also kürzere Schlüssel verwendet werden, so daß hierdurch die Sicherheit
vermindert wird.
Soll die Verwendung von kurzen Schlüsseln vermieden werden, so ist aus US-Patent
US 5,999,627 ein schnelles Verfahren zum Exponentieren für cryptographische Ver
fahren mit öffentlichen Schlüsseln bekannt. Bei diesem Verfahren werden Werte vor
berechnet und in einem Speicher abgelegt. Das Ergebnis ergibt sich durch ein Berech
nen von Produkten der im Speicher abgelegten Werte. Umgesetzt wird das Verfahren,
indem beginnend mit einem Startwert, abwechselnd dieser Wert mit einem vorberech
neten Wert multipliziert und anschließend der so erhaltene Wert quadriert wird. Um
das Verfahren möglichst effizient ablaufen zu lassen, wird im Verfahren nach US 5,999,627
möglichst häufig mit dem neutralen Element multipliziert, da solche Ope
rationen nicht durchgeführt werden müssen.
Eine Übertragung des Verfahrens auf elliptische Kurven ist möglich, dabei ersetzt die
Addition von Punkten die Multiplikation beim Verfahren nach US 5,999,627. Jedoch
sind die Algorithmen für Verdopplung bzw. Addition zweier Punkte auf einer ellipti
schen Kurve so unterschiedlich, dass aus Power Attack Messungen geschlossen wer
den kann, ob addiert oder verdoppelt wurde. Dadurch wird der geheimzuhaltende
skalare Multiplikator in Teilen für den Angreifer zugänglich. Eine Abschätzung ergibt,
daß bei der Verwendung des Verfahrens nach US 5,999,627 ungefähr 25% der Binär
stellen der geheimzuhaltenden Zahl durch eine einzige Power-Attack zugänglich ist.
Der Geschwindigkeitsvorteil der sich aus der möglichst häufigen Addition mit dem
neutralen Element ergibt, wird somit zu einem wesentlichen Sicherheitsproblem.
Aus EP 0 874 307 ist ein Verfahren zur beschleunigten Multiplikation eines Punktes
einer elliptischen Kurve mit einer natürlichen Zahl k bekannt. Hierbei wird die Zahl k
als Binärvektor in einem Register gespeichert. Abhängig davon, ob eine Binärstelle
den Wert Null oder Eins aufweist, werden die Koordinaten des Punktes P addiert oder
multipliziert. Bei dem Einsatz für cryptographische Verfahren ist hierbei nachteilig,
daß abhängig von den geheimzuhaltenden Zahlen bei der Berechnung verzweigt wird,
so daß diese für einen Angreifer zugänglich ist.
Aus EP 1 014 617 ist ein Verfahren zur Berechnung eines Skalarprodukts auf einer el
liptischen Kurve bekannt. Auch bei diesem Verfahren wird in Abhängigkeit der Bi
närdarstellung eines Multiplikators verzweigt, so daß auch dieses Verfahren keine si
chere Berechnung mit geheimzuhaltenden Größen erlaubt.
Der Erfindung liegt die Aufgabe zugrunde ein Verfahren bereitzustellen, das eine
schnelle und sichere Berechnung von geheimzuhaltenden Größen erlaubt.
Die erfindungsgemäße Aufgabe wird durch ein Verfahren zur Berechnung eines digi
talen Signalwertes für ein cryptographisches Verfahren mit Hilfe eines elektronischen
Rechners gelöst. Das erfindungsgemäße Verfahren ist bei der Verwendung von digi
talen Größen B von Vorteil, die sich als Punkte einer elliptischen Kurve über einem
endlichen Körper darstellen lassen. Das Verfahren berechnet die Größe rB, also das
skalare Produkt aus einem Basispunkt B und einer natürlichen Zahl r, bei einer da
tenunabhängigen Strom- und/oder Leistungsaufnahme. Der Programmablauf kann so
mit als execution invariant angesehen werden, denn die Reihenfolge der einzelnen
ablaufenden Schritte hängt nicht von den geheimzuhaltenden Daten ab. Hierbei sei
(n-1, n-2, . . ., 0) die Binärdarstellung der natürlichen Zahl r mit einer Bitlänge n.
Ferner sei h eine natürliche Zahl mit 1 ≦ h < n, bevorzugt eine kleine Zahl zwischen 2
und 8. Es sei a die kleinste natürliche Zahl mit ha ≦ n, wobei durch Auffüllen von r
mit führenden Nullen erreicht wird, daß ha = n ist.
In einem ersten Verfahrensschritt werden 2h-Werte vorberechnet und in einem Feld C
[f] in einem Speicher abgespeichert. Hierbei sei (h-1, h-2, . . ., 0) die Binärdarstel
lung von f. Die vorberechneten Werte des Feldes C[f] werden alle Werte von f mit 0 ≦
f < 2h berechnet:
Hierbei steht "⊕" für die Gruppenaddition der Punkte auf der elliptischen Kurve.
In einem zweiten Verfahrensschritt werden a-Werte gj mit 0 ≦ j < a berechnet:
Beim dritten Verfahrensschritt wird die Größe D berechnet:
Die zu berechnende Größe rB ergibt sich zu
Aus der Definition des Feldes C wird deutlich, daß das Gruppenelement B stets unab
hängig von den Werten f hinzu addiert wird. Die Addition des Elements B zu jedem
Wert in dem Feld C bewirkt, daß bei Ausführung des Produkts rB zusätzlich der Wert
D addiert wird, der nachfolgend wieder subtrahiert werden muß. Für die Subtraktion
des Wertes D, also für die Addition des inversen Elements von D, steht das Zeichen
"⊖". Indem stets das Element B hinzu addiert ist, wird im Laufe der Berechnung beim
Zugriff auf das Feld C niemals das neutrale Element verwendet. Das vorgestellte Ver
fahren ist somit vor der oben beschriebenen Power-Attack sicher, denn aus der immer
gleichen Reihenfolge von Addition und Verdoppelung kann nicht auf den geheimzu
haltenden Zahlenwert geschlossen werden. Selbstverständlich kann das erfindungsge
mäße Verfahren auch mit Elementen anderer kommutativer Gruppen, bevorzugt auch
mit hyperelliptischen Kurven, durchgeführt werden.
Wird das erfindungsgemäße Verfahren auf einer Smart-Card implementiert, so ent
steht eine gegen Power-Attacks sichere Vorrichtung, die beispielsweise für digitale
Signaturen verwendet werden kann.
Ein weiterer besonderer Vorteil des erfindungsgemäßen Verfahrens liegt darin, daß
sich die Berechnung der Größe Z = rB in einfacher Weise durch folgende Schleife
realisieren läßt:
Z = C[ga-1];
for (j = a - 2; j < = 1; j--)
{
Z = Z ⊕ Z;
Z = Z ⊕ C[gj];
}
Z = Z ⊕ Z;
Z = Z ⊖ D;
Z = Z ⊕ C [g0].
Z = C[ga-1];
for (j = a - 2; j < = 1; j--)
{
Z = Z ⊕ Z;
Z = Z ⊕ C[gj];
}
Z = Z ⊕ Z;
Z = Z ⊖ D;
Z = Z ⊕ C [g0].
Zusammenfassend verdeutlicht auch der vorstehende Pseudocode die wichtigsten
Aspekte des Zusammenspiels:
- - Die Berechnung der Werte g[i] darf nicht nach außen dringen. Auf Hardwareebene wird dies durch einen Abhörschutz des Datenbus realisiert, die Software unter stützt es durch "execution invariante" Programmierung, wie der vorstehende Pseu docode mit seiner abwechselnden Addition und Verdoppelung zeigt.
- - Sowohl Addition als auch Verdopplung darf nicht mit im Voraus oder im Nach hinein mit zu bestimmenden modularen Rechenoperationen korrelieren. Dies wird durch das erfindungsgemäße Verfahren realisiert, indem r zufällig gewählt wird.
- - Aus einer einzelnen elementaren Operation (insbesondere modulare Multiplika tion) darf auf keine der verwendeten Operanden rückgeschlossen werden. Diese muß durch die Hardware sichergestellt werden und ist Grundvoraussetzung für den sicheren Einsatz eines cryptographischen Verfahrens.
Da ein Angriff recht unproblematisch möglich ist, falls der Datenbus abgehört werden
kann, kommen als geeignete Mikrokontroller nur solche in Frage, bei denen der Da
tenbus nur innerhalb des Chips zugänglich ist; im wesentlichen handelt es sich dabei
um die Smartcardprozessoren. Des weiteren ist aus Sicherheits- und Geschwindig
keitsgründen ein cryptographischer Koprozessor sinnvoll, der die modulare Arithmetik
durchführt. Es ist allerdings durchaus möglich, solche Prozessoren mit gleichen Si
cherheitsvorkehrungen auch außerhalb von Smartcards zu verwenden.
Nachfolgend wird ein cryptographisches Verfahren mit öffentlichen Schlüsseln basie
rend auf elliptischen Kurven erläutert: Beiden Benutzern A und B ist eine elliptische
Kurve E und ein Basispunkt F auf dieser Kurve bekannt. Um einen geheimen Schlüs
sel zu erzeugen, wählt ein Benutzer A eine natürliche Zahl v zufällig aus, wobei v
groß ist. Der Benutzer A berechnet vF Element aus E. Das Ergebnis vF wird bekannt
gemacht, während die Zahl v geheimgehalten wird. Ein zweiter Benutzer B wählt ein
zufälliges w und veröffentlicht das Ergebnis wF Element aus E. Beide Benutzer sind
in der Lage, einen geheimen Schlüssel P = vwF Element E zu berechnen, denn v(wF)
= w(vF). Da v und w geheimgehalten werden, müßte ein Angreifer aus vF und wF die
Zahlen v und/oder w berechnen. Dies wird als das Problem des sogenannten diskreten
Logarithmus bezeichnet und gilt als sehr schwierig zu lösen. Durch den Schutz der
Smart-Card vor Power-Attacks wird die Berechnung der Produkte vF und vwF vor
Angriffen geschützt. Da nun A und B ein gemeinsamer Schlüssel bekannt ist, können
verschlüsselte Daten ausgetauscht werden.
Für die Signatur kommt üblicherweise ein mit "ECDSA" bezeichnetes Verfahren zum
Einsatz:
Es sei p eine Primzahl, die elliptische Kurve sei über GF(p) definiert;
n sei die Ordnung der vom Basispunkt der elliptischen Kurve erzeugten Untergruppe (für cryptographische Anwendungen werden meist elliptische Kurven verwendet, die nur eine nichttriviale Untergruppe haben. In diesen Fällen ist n gleich der Anzahl der Elemente der elliptischen Kurve und hat damit bis auf max. eine Stelle Differenz die gleiche Bitlänge wie p, vgl. Theorem von Hasse-Weil);
d sei der private Schlüssel.
Es sei p eine Primzahl, die elliptische Kurve sei über GF(p) definiert;
n sei die Ordnung der vom Basispunkt der elliptischen Kurve erzeugten Untergruppe (für cryptographische Anwendungen werden meist elliptische Kurven verwendet, die nur eine nichttriviale Untergruppe haben. In diesen Fällen ist n gleich der Anzahl der Elemente der elliptischen Kurve und hat damit bis auf max. eine Stelle Differenz die gleiche Bitlänge wie p, vgl. Theorem von Hasse-Weil);
d sei der private Schlüssel.
Das Verfahren besitzt die folgenden Schritte:
- 1. Bestimme den Hashwert m einer zu signierenden Nachricht,
- 2. bestimme k als eine Zufallszahl mit 1 < k < n - 1,
- 3. bestimme x- und y-Koordinaten (x, y) von G = kB, wobei B wie vorher der Ba sispunkt ist,
- 4. r = x mod n und
- 5. s = (m + dr)/k mod n, wobei die Signatur aus dem Paar (r, s) besteht.
Zum Entschlüsseln wird der öffentliche Punkt Q = dB benötigt. Im wesentlichen ist
die Gleichung
(x, y) = ((m/s)P + (r/s)Q) (die skalaren Operationen (m/s und r/s) sind mod n zu ver stehen).
(x, y) = ((m/s)P + (r/s)Q) (die skalaren Operationen (m/s und r/s) sind mod n zu ver stehen).
Die Signatur ist korrekt, falls x = r mod n ist.
Das erfindungsgemäße Verfahren kommt in Schritt 3 zum Einsatz.
Ein Beispiel dient zur Verdeutlichung des Verfahrens mit kleinen Zahlen:
h = 3
n = 17
==< a = 6 (und ah = 18)
h = 3
n = 17
==< a = 6 (und ah = 18)
Im Feld C stehen die Werte
C[0] = B
C[1] = 2B
C[2] = (2^6 + 1)B = 65B
C[3] = (2^6 + 2)B = 66B
C[4] = (2^12 + 1)B = 4097B
C[5] = (2^12 + 2)B = 4098B
C[6] = (2^12 + 2^6 + 1)B = 4161B
C[7] = (2^12 + 2^6 + 2)B = 4162B
D berechnet sich zu
D = (2^6 - 1) = 63B
C[0] = B
C[1] = 2B
C[2] = (2^6 + 1)B = 65B
C[3] = (2^6 + 2)B = 66B
C[4] = (2^12 + 1)B = 4097B
C[5] = (2^12 + 2)B = 4098B
C[6] = (2^12 + 2^6 + 1)B = 4161B
C[7] = (2^12 + 2^6 + 2)B = 4162B
D berechnet sich zu
D = (2^6 - 1) = 63B
Der (zufällige) Multiplikator r in Binärdarstellung (original mit 17 Bit):
r = 01110010101100111
ergänzt mit führenden Nullen (ah Bitstellen)
r = 001110000101100111 = 001110 000101 100111
= 14.2^12 + 5.2^6 + 39 = 57344 + 320 + 39 = 57703
r wird in 3 Gruppen aufgeteilt, die die g[i] ergeben, wobei jeweils die (i + 1)-ten Stellen
der drei Blöcke zusammen die 3 Bit der g[i] ergeben:
001 ==< g[5] = 1
000 ==< g[4] = 0
100 ==< g[3] = 4
111 ==< g[2] = 7
101 ==< g[1] = 5
011 ==< g[0] = 3
001 ==< g[5] = 1
000 ==< g[4] = 0
100 ==< g[3] = 4
111 ==< g[2] = 7
101 ==< g[1] = 5
011 ==< g[0] = 3
Der Rechenablauf ergibt nun die Zwischenschritte:
Z: = C[1] = 2B
Z: = Z + Z = 4B
Z: = Z + C[0] = 4B + B = 5B
Z: = Z + C[0] = 4B + B = 5B
Z: = Z + Z = 10B
Z: = Z + C[4] = 10B + 4097B = 4107B
Z: = Z + C[4] = 10B + 4097B = 4107B
Z: = Z + Z = 8214B
Z: = Z + C[7] = 8214B + 4162B = 12376B
Z: = Z + C[7] = 8214B + 4162B = 12376B
Z: = Z + Z = 24752
Z: = Z + C[5] = 24752B + 4098B = 28850B
Z: = Z + C[5] = 24752B + 4098B = 28850B
Z: = Z + Z = 57700B
Z: = Z - D = 57700B - 63B = 57637B
Z: = Z + C[3] = 57638B + 66B = 57703B
Damit das Verfahren ordnungsgemäß ablaufen kann, ist an r eine Bedingung zu stel
len:
Es darf nicht gleichzeitig g[a - 1] = 0 und g[a - 2] = 1 sein, denn dann würde bei der ersten Addition 2B zu 2B addiert.
Es darf nicht gleichzeitig g[a - 1] = 0 und g[a - 2] = 1 sein, denn dann würde bei der ersten Addition 2B zu 2B addiert.
Eine Vorrichtung zur Durchführung des Verfahrens besitzt eine zentrale Prozessorein
heit, einen Speicher, eine Datenausgabe sowie elektrische Kontakte zum Anlegen ei
ner Versorgungsspannung. Die Prozessoreinheit lädt ansprechend auf ein Startsignal
zwei binäre Signalfolgen sowie ein Programm zur Berechnung des digitalen Signal
werts aus den zwei Bitfolgen in die Prozessoreinheit und führt das geladene Programm
zur Berechnung von K aus derart, daß von außen lediglich ein im wesentlichen von
den geheimzuhaltenden Daten unabhängiger Wert für die Strom- und Leistungsauf
nahme feststellbar ist. Es wird mit dem erfindungsgemäßen Verfahren erreicht, daß die
Stromaufnahme während der relevanten Berechnungen, also insbesondere Addition
und Verdoppelung von Punkten auf der elliptischen Kurve, keine Korrelation zu dem
geheimzuhaltenden skalaren Faktor aufweist. Durch das Zusammenspiel von Prozes
soreinheit und geladenem Programm während der Berechnung mit dem geheimzuhal
tenden Wert bleiben die in der Prozessoreinheit ablaufenden Befehlsfolgen mit ihren
Daten von außen verborgen.
In einer möglichen Ausgestaltung sind zentrale Prozessoreinheit und Speicher in einen
einzigen Chip integriert. Die gesamte Vorrichtung kann als eine Smart-Card ausge
führt, die über externe Kontakte mit Spannung versorgt wird. Für gewöhnlich besitzt
eine Smart-Card einen 8-Bit-Mikroprozessor, der mit ungefähr 1280 Byte RAM und
ungefähr 32 kByte ROM und entweder mit einem EPROM oder einem EEPROM und
mit einer Crypto engine zur schnellen Berechnung von modulo-Multiplikationen aus
geführt ist. Selbstverständlich können Smart-Cards auch mit anderen Kapazitäten
verwendet werden. Die Stromversorgung der Smart-Card erfolgt über das Einstecken
in das Lesegerät. Die geheime Berechnung von digitalen Größen ist bei Smart-Cards
von besonderer Bedeutung, denn in der Regel unterliegen die Lesegeräte nicht der
Kontrolle des Kartenbesitzers und können daher von Dritten für Angriffe genutzt wer
den, wobei die Power-Attack als zerstörungsfreier Angriff auf die Karte zudem belie
big oft wiederholt werden kann.
Im Speicher der Smart-Card sind ein oder mehrere Programme zur Ver- oder Ent
schlüsselung von digitalen Daten und/oder zum Signieren digitaler Daten nach einem
oder mehreren cryptographischen Verfahren abgelegt, die auf Daten in dem Speicher
zugreifen. Das geladene Programm führt die skalare Multiplikation eines Punktes ei
ner elliptischen Kurve mit einer natürlichen Zahl aus.
Claims (2)
1. Verfahren zur Berechnung eines Skalarprodukts aus einer natürlichen Zahl r und
einem Punkt B einer elliptischen Kurve für eine cryptographische Anwendung, bei
dem durch einen elektronischen Rechner mit einem Prozessor das Skalarprodukt
bei im wesentlichen datenunabhängiger Strom- und/oder Leistungsaufnahme des
Prozessors berechnet wird, gekennzeichnet durch die folgenden Verfahrens
schritte:
- - es sei (n-1, n-2, . . ., 0) die Binärdarstellung der natürlichen Zahl r, es sei h eine natürliche Zahl mit 1 ≦ h < n und es sei a eine natürliche Zahl mit ha = n, wobei hierzu r mit führenden Nullen aufgefüllt ist,
- - in einem ersten Verfahrensschritt werden insgesamt 2h-Werte berechnet
und in einem Feld C[f] abgespeichert, wobei (h-1, h-2, . . ., 0) die Binär
darstellung von f sei und die Werte des Feldes C[f] für alle Werte von f mit
0 ≦ f < 2h berechnet werden:
- - in einem zweiten Verfahrensschritt werden insgesamt a-Größen gj mit 0 ≦ j
< a berechnet mit folgenden Werten:
- - in einem dritten Verfahrensschritt wird ein Element D berechnet:
- - in einem vierten Verfahrensschritt ergibt sich das zu berechnende Skalar
produkt rB für das cryptographische Verfahren zu
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß das Verfahren auf einem
Mikroprozessor einer Smart-Card abläuft.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE2000157203 DE10057203C1 (de) | 2000-11-17 | 2000-11-17 | Verfahren zur Berechnung eines digitalen Signalwertes für ein cryptographisches Verfahren |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE2000157203 DE10057203C1 (de) | 2000-11-17 | 2000-11-17 | Verfahren zur Berechnung eines digitalen Signalwertes für ein cryptographisches Verfahren |
Publications (1)
Publication Number | Publication Date |
---|---|
DE10057203C1 true DE10057203C1 (de) | 2002-06-06 |
Family
ID=7663758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2000157203 Expired - Fee Related DE10057203C1 (de) | 2000-11-17 | 2000-11-17 | Verfahren zur Berechnung eines digitalen Signalwertes für ein cryptographisches Verfahren |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE10057203C1 (de) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004079986A1 (en) * | 2003-03-04 | 2004-09-16 | International Business Machines Corporation | Long-term secure digital signatures |
WO2004112306A2 (en) * | 2003-06-12 | 2004-12-23 | Philips Intellectual Property & Standards Gmbh | Method for defence against differential power analysis attacks |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0874307A1 (de) * | 1997-03-25 | 1998-10-28 | Certicom Corp. | Beschleunigte Begrenztes-Feld-Operationen auf einer elliptischen Kurve |
JPH11316542A (ja) * | 1998-03-05 | 1999-11-16 | Matsushita Electric Ind Co Ltd | 楕円曲線変換装置、利用装置及び利用システム |
US5999627A (en) * | 1995-01-07 | 1999-12-07 | Samsung Electronics Co., Ltd. | Method for exponentiation in a public-key cryptosystem |
EP1014617A2 (de) * | 1998-12-22 | 2000-06-28 | Hitachi, Ltd. | Verfahren und Vorrichtung zur Kryptographie mittels elliptischer Kurven und Aufzeichnungsmedium hierzu |
-
2000
- 2000-11-17 DE DE2000157203 patent/DE10057203C1/de not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5999627A (en) * | 1995-01-07 | 1999-12-07 | Samsung Electronics Co., Ltd. | Method for exponentiation in a public-key cryptosystem |
EP0874307A1 (de) * | 1997-03-25 | 1998-10-28 | Certicom Corp. | Beschleunigte Begrenztes-Feld-Operationen auf einer elliptischen Kurve |
JPH11316542A (ja) * | 1998-03-05 | 1999-11-16 | Matsushita Electric Ind Co Ltd | 楕円曲線変換装置、利用装置及び利用システム |
EP1014617A2 (de) * | 1998-12-22 | 2000-06-28 | Hitachi, Ltd. | Verfahren und Vorrichtung zur Kryptographie mittels elliptischer Kurven und Aufzeichnungsmedium hierzu |
Non-Patent Citations (4)
Title |
---|
GUAJARDO, J. u.a.: Efficient implementation of elliptic curve cryptosystems on the TI MSP 430x 33x family of microcontrollers, In: Lecture Notes in Computer Science 1992, S. 365 ff * |
JOYE, M. u.a.: Compact encoding of non-adjacent forms with applications to elliptic curve cryptography, In: Lecture Notes in Computer Science 1992, S. 353 ff. * |
KOBAYASHI, T. u.a.: Fast elliptic curve algorithm combining frobenius map and table reference to adapt to higher characteristic, In: Lecture Notes in Computer Science 1999 * |
RANKL, W., EFFING, W.: Handbuch der Chipkarten, München, Carl Hanser Verlag, 1995, S. 12-14 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004079986A1 (en) * | 2003-03-04 | 2004-09-16 | International Business Machines Corporation | Long-term secure digital signatures |
CN1717896B (zh) * | 2003-03-04 | 2010-06-30 | 国际商业机器公司 | 用于对电子文档进行数字签名的方法、计算机设备和*** |
WO2004112306A2 (en) * | 2003-06-12 | 2004-12-23 | Philips Intellectual Property & Standards Gmbh | Method for defence against differential power analysis attacks |
WO2004112306A3 (en) * | 2003-06-12 | 2005-02-10 | Philips Intellectual Property | Method for defence against differential power analysis attacks |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE60217260T2 (de) | Datenverarbeitungs- und Verschlüsselungseinheit | |
DE69534603T2 (de) | Verschlüsselungssystem für elliptische kurve | |
DE60222052T2 (de) | Verschlüsselung gesichert gegen Angriffe durch die Analyse der Leistungsaufnahme (DPA) | |
DE2843583C2 (de) | Verfahren für den zugriffsicheren Nachrichtenverkehr über einen ungesicherten Nachrichtenübertragungskanal | |
DE60125710T2 (de) | Manipulationssichere Methode zur modularen Multiplikation | |
DE60121066T2 (de) | Angriffsresistente kryptographische Verfahren und Vorrichtung | |
DE10201449C1 (de) | Rechenwerk, Verfahren zum Ausführen einer Operation mit einem verschlüsselten Operanden, Carry-Select-Addierer und Kryptographieprozessor | |
DE3685987T2 (de) | Verfahren zum vermindern der fuer eine rsa-verschluesselung benoetigten veraenderlichen speicherkapazitaet. | |
US7162033B1 (en) | Countermeasure procedures in an electronic component implementing an elliptical curve type public key encryption algorithm | |
EP3686871A1 (de) | Verfahren zum härten von softwareapplikationen | |
DE102010001289B4 (de) | Vorrichtung zum Berechnen eines Ergebnisses einer Skalarmultiplikation | |
DE60036499T2 (de) | Eine Technik, um einen Parameter, wie z.b. eine Prüfsumme, durch ein Primitiv zu erzeugen, welche elementare Register-Operationen verwendet | |
CH660822A5 (de) | Zufallsprimzahlen-erzeugungsmittel in einer mit oeffentlichem schluessel arbeitenden daten-verschluesselungsanlage. | |
DE112008000668T5 (de) | Kryptografisches Verfahren und System | |
DE112007003061T5 (de) | Mechanismus zum Schützen eines Schlüssels | |
DE102007007699A1 (de) | Reduktion von Seiten-Kanal-Informationen durch interagierende Krypto-Blocks | |
DE102005042339B4 (de) | Verfahren zum sicheren Ver- oder Entschlüsseln einer Nachricht | |
DE60117813T2 (de) | Verfahren und Vorrichtung zur Speicherung und wiedergewinnung eones Privaten Kryptoschlüssels | |
DE10328860B4 (de) | Vorrichtung und Verfahren zum Verschlüsseln von Daten | |
DE10057203C1 (de) | Verfahren zur Berechnung eines digitalen Signalwertes für ein cryptographisches Verfahren | |
DE69612335T2 (de) | System und Verfahren zur Kommunikation von verschlüsselten Nachrichten unter Verwendung von RSA mit modularer Reduktion für schnelle Entschlüsselung | |
EP1442391A2 (de) | Verfahren und vorrichtung zum absichern einer berechnung in einem kryptographischen algorithmus | |
DE102020134618A1 (de) | Sicherheits-controller und verfahren zur verarbeitung von datenelementen eines datenfeldes | |
DE69821091T2 (de) | Kryptographische vorrichtung mit verschlüsselungs und entschlüsselungssystem und schlüsselhinterlegungssystem | |
DE10162496B4 (de) | Verfahren und Vorrichtung zum Absichern einer Berechnung in einem kryptographischen Algorithmus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8100 | Publication of the examined application without publication of unexamined application | ||
D1 | Grant (no unexamined application published) patent law 81 | ||
8364 | No opposition during term of opposition | ||
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |