DE10149191A1 - Verfahren und Vorrichtung zum Ermitteln von Ursprungsausgangsdaten aus Ursprungseingangsdaten auf der Basis einer kryptographischen Operation - Google Patents

Verfahren und Vorrichtung zum Ermitteln von Ursprungsausgangsdaten aus Ursprungseingangsdaten auf der Basis einer kryptographischen Operation

Info

Publication number
DE10149191A1
DE10149191A1 DE10149191A DE10149191A DE10149191A1 DE 10149191 A1 DE10149191 A1 DE 10149191A1 DE 10149191 A DE10149191 A DE 10149191A DE 10149191 A DE10149191 A DE 10149191A DE 10149191 A1 DE10149191 A1 DE 10149191A1
Authority
DE
Germany
Prior art keywords
cryptographic operation
changed
key
original
output data
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.)
Granted
Application number
DE10149191A
Other languages
English (en)
Other versions
DE10149191C2 (de
Inventor
Christian Aumueller
Peter Hofreiter
Marcus Janke
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE10149191A priority Critical patent/DE10149191C2/de
Publication of DE10149191A1 publication Critical patent/DE10149191A1/de
Application granted granted Critical
Publication of DE10149191C2 publication Critical patent/DE10149191C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • 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
    • 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/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

Bei einem Verfahren zum Ermitteln von Ursprungsausgangsdaten (520) aus Ursprungseingangsdaten (500) auf der Basis einer krytographischen Operation wird die kryptographische Operation gemäß eine Vorwärtsänderungsvorschrift (120) geändert, um eine geänderte kryptographische Operation zu erhalten. Die geänderte kryptographische Operation wird ausgeführt (120), um Ausgangsdaten der geänderten kryptographischen Operation zu erhalten. Die Ursprungseingangsdaten (500) oder die Ausgangsdaten der geänderten kryptographischen Operation werden geändert (170), um die Ursprungsausgangsdaten (520) zu erhalten, und zwar gemäß einer Rückwärtsänderungsvorschrift (180), wobei die Rückwärtsänderungsvorschrift (180) an die Vorwärtsänderungsvorschrift (120) angepaßt ist und so definiert ist, daß die geänderte kryptographische Operation (110) zusammen mit den geänderten Ursprungseingangsdaten die Ursprungsausgangsdaten (520) liefert, oder daß die geänderte kryptographische Operation (110) zusammen mit den geänderten Ausgangsdaten der kryptographischen Operation die Ursprungsausgangsdaten (520) liefert, oder daß die geänderte kryptographische Operation (110) zusammen mit den geänderten Ursprungseingangsdaten und den geänderten Ausgangsdaten der kryptographischen Operation die Ursprungsausgangsdaten (520) liefert. Durch Einwirken auf die kryptographische Operation wird eine Sicherheit gegenüber DPA-Attacken mit Mitteilung erreicht. Die kryptographische Operation kann die ...

Description

  • Die vorliegende Erfindung bezieht sich auf die Kryptographie und insbesondere auf ein sicheres Konzept zum Ermitteln von Ursprungsausgangsdaten aus Ursprungseingangsdaten auf der Basis einer kryptographischen Operation.
  • Fig. 6 zeigt ein Übersichtsdiagramm für den AES- Kryptoalgorithmus, der auch als Rijndael-Algorithmus bezeichnet wird. Der Rijndael-Algorithmus ist in dem Dokument "The Rjindael Block Cipher: AES Proposal" von Joan Daemen und Vincent Rijmen, Document Version 2, 9. März 1999, beschrieben. Der AES-Algorithmus ist ein iterativer Algorithmus, bei dem eine vorgegebene Anzahl von Runden (rounds) berechnet wird. Nachfolgend wird anhand von Fig. 6 eine Runde des AES- Algorithmus dargestellt. Startpunkt einer Runde ist ein Block von z. B. 16 Bytes, wobei jedes Byte 8 Bit umfaßt, also ein Block von 8 × 16 Bits. Diese sind in Fig. 6 bei 600 als vertikale Linien dargestellt. Der AES-Algorithmus oder Rijndael- Algorithmus ist ein sogenannter Block-Cipher-Algorithmus, bei dem bei dem in Fig. 6 gezeigten Beispiel ein Block von 16 × 8 Bits an Eingangsdaten gemeinsam verschlüsselt werden.
  • Der erste Schritt einer Runde wird als "Add Round Key" (Hinzufügen des Schlüssels für eine Runde) bezeichnet. Diese Funktion wird durch die bei 620 dargestellten Kreise symbolisiert. Der AES-Rundenschlüssel, der üblicherweise von einem AES-Schlüssel abgeleitet wird und als Expanded Key bezeichnet wird, umfaßt ebenfalls 16 × 8 Bit. In der Stufe Add Round Key wird eine bitweise XOR-Verschlüsselung mit dem AES- Rundenschlüssel und den 16 × 8 Bit an Eingangsdaten durchgeführt, wie es bei 630 dargestellt ist.
  • Die nächste Verarbeitungsstufe einer Runde des AES- Algorithmus besteht in einer Byte-Substitution, die in Fig. 6 als Byte-Sub bezeichnet wird. Die Byte-Substitution besteht in einer mathematischen Funktion, die beim AES-Algorithmus eine multiplikative Inverse mit affiner Abbildung umfaßt. Diese mathematische Funktion wird durch eine Nachschlagtabelle implementiert, welche üblicherweise als S-Box bezeichnet wird und in Fig. 6 durch Würfel 640 symbolisch dargestellt ist. Die Ausgangsdaten der Stufe 620 werden als Adresse für die S-Box, d. h. die Byte-Substitutions-Nachschlagtabelle, verwendet, um als Ausgangsdaten für jedes Byte ein Substitutionsbyte auszugeben, das die multiplikative Inverse mit affiner Abbildung der Eingangsadresse ist. Die S-Box enthält keine geheimen Informationen, sondern kann im voraus berechnet werden oder von einer öffentlich zugänglichen Stelle abgerufen werden.
  • Die Ausgangsdaten der Byte-Substitution 640 werden dann einer Zeilenverschiebungsoperation 650 unterzogen, die in Fig. 6 als "Shift Row" bezeichnet wird. Die Ausgangsdaten der Stufe 650 werden dann einer Spaltenvermischung unterzogen, die in Fig. 6 durch längliche Quader symbolisch dargestellt ist und in der Technik als "Mix Column" bezeichnet wird. Die Operationen 620, 640, 650 und 660 bilden eine von typischerweise zehn Runden des AES-Algorithmus, wobei eine Runde in der Technik auch als Round bezeichnet wird. Die Ausgangsdaten der Mix-Column-Operation, d. h. einer Runde oder Round, werden dann wieder einer Add-Round-Key-Operation 620' unterzogen, wobei wieder eine bitweise XOR-Verknüpfung der Daten mit einem Schlüssel 630' für die nächste Runde durchgeführt wird etc. Nach einer vorgegebenen Anzahl von. Runden, welche bei einer Blockgröße von 16 Bytes 10 beträgt, liegen dann die AES-verschlüsselten Daten vor.
  • Es existiert eine Vielzahl von Angriffsszenarien auf kryptographische Algorithmen und insbesondere auf den Kryptostandard AES, wobei der AES-Algorithmus ein Beispiel für eine symmetrische kryptographische Funktion ist, im Gegensatz zu asymmetrischen kryptographischen Funktionen, wie z. B. dem bekannten RSA-Algorithmus. Von den Angriffsszenarien sind insbesondere die sogenannten Side-Channel-Attacks, wie z. B. DPA, DEMA oder Timing, zu erwähnen. Bei einer DPA-Attacke (DPA = Differential Power Analysis = differentielle Leistungsanalyse) wird z. B. ein bekannter Klartext in den Algorithmus eingespeist. Das Stromaufnahmeprofil der Verschlüsselungsschaltung über der Zeit wird bei der Ausführung des kryptographischen Algorithmus beobachtet. In einem weiteren Schritt werden viele verschiedene Klartexte in den kryptographischen Algorithmus eingespeist, um die Datenabhängigkeit der Stromaufnahme der den kryptographischen Algorithmus ausführenden Schaltung zu erkennen. Unter Verwendung von statistischen Methoden werden die Stromaufnahmen für verschiedene Klartexte mit den verschiedenen Klartexten in Beziehung gesetzt, um Schlüsselinformationen über den Algorithmus zu extrahieren.
  • Um die Abhängigkeit der Stromaufnahme der den kryptographischen Algorithmus ausführenden Schaltung von den Klartextdaten zu verschleiern, existiert beispielsweise die Möglichkeit, parallel zu der Schaltung, die den kryptographischen Algorithmus ausführt, eine andere Operation auszuführen, welche beispielsweise eine Dummy-Operation Ist, deren Eingangs- und Ausgangsdaten keine Signifikanz haben, die jedoch dazu verwendet wird, um die Stromaufnahme der die kryptographische Operation ausführenden Schaltung zu randomisieren.
  • Um einen DPA-Angriff auf eine solche Schaltung zu fahren, wird üblicherweise ein Klartext nicht nur einmal verschlüsselt und die Stromaufnahme betrachtet. Statt dessen wird zusätzlich der gleiche Klartext viele Male verschlüsselt. Parallel dazu wird bei jeder Verschlüsselungsoperation des selben Klartexts die Stromaufnahme der Kryptoschaltung gemessen, woraufhin dann eine Mittelung durchgeführt wird. Bei dieser Mittelung wird die Stromaufnahme der Dummy-Operation, welche zufällig ist, ausgemittelt, während die Stromaufnahme der Kryptoschaltung nicht zufällig ist, sondern durch die Mittelung sichtbar wird. Wenn die Stromaufnahme der Kryptoschaltung als Signal bezeichnet wird, während die Stromaufnahme der Dummy-Operation als Rauschen bezeichnet wird, führt die Mittelung dazu, daß das Signal/Rauschverhältnis für den Angreifer deutlich verbessert wird.
  • Weitere Möglichkeiten zum Schutz des AES-Algorithmus bzw. insbesondere zum Schutz von kryptographischen Operationen bestehen dadurch, daß mittels eines Hardware-Moduls ein zeitliches Jitter, beispielsweise in Form von sogenannten Random- Wait-States, oder eine Verschleierung des Stromprofils, beispielsweise durch die Implementierung einer Curse-Funktion, realisiert werden.
  • Nachteilig an diesen Verfahren ist die Tatsache, daß zusätzliche Hardware-Elemente benötigt werden, die die insbesondere bei Chipkarten oder Smart Cards oder Sicherheits-ICs sehr knappen Chipflächenressourcen belasten. Darüber hinaus bieten diese Maßnehmen gegenüber DPA-Angriffen mit Mittelung unter Umständen keinen Schutz.
  • Die Fachveröffentlichung "Securing the AES Finalists Against Power Analysis Attacks" von Thomas S. Messerges, FSE 2000, LNCS 1978, Seiten 150 bis 164, 2001, Springer-Verlag Berlin Heidelberg 2001, offenbart Sicherheitsmaßnahmen, die für den AES-Algorithmus eingesetzt werden können. Für Tabellennachschlagoperationen wird vorgeschlagen, sowohl die Eingangsdaten in die Nachschlagtabelle als auch die Ausgangsdaten aus der Nachschlagtabelle mit einem Schlüssel zu verschlüsseln, um eine verschlüsselte Nachschlagtabelle zu erzeugen, die dann für nachfolgende Verschlüsselungsoperationen verwendet werden kann. Als Verschlüsselungsoperation wird die XOR- Funktion vorgeschlagen.
  • Nachteilig an dem beschriebenen Verfahren ist, daß sowohl die Eingangsdaten in die Nachschlagtabelle als auch die Ausgangsdaten aus der Nachschlagtabelle sowohl beim Erzeugen der sicheren S-Box als auch beim tatsächlichen Verschlüsseln bearbeitet werden müssen. Oftmals wird jedoch nicht die volle Sicherheit gebraucht, bzw. kann aus Gründen der begrenzten zur Verfügung stehenden Prozessorleistung des Kryptoprozessors diese komplette Hin- und Rückverschlüsselung der Eingangsadressen in die Nachschlagtabelle und der Ausgangsdaten aus der Nachschlagtabelle nicht durchgeführt werden. In einem solchen Fall muß daher komplett auf eine Verschlüsselung verzichtet werden, was darin resultiert, daß überhaupt kein Schutz gegen die beschriebenen Angriffe implementiert werden kann.
  • Die Aufgabe der vorliegenden Erfindung besteht darin, ein sichereres Konzept zum Ermitteln von Ursprungsausgangsdaten aus Ursprungseingangsdaten auf der Basis einer kryptographischen Operation zu schaffen.
  • Diese Aufgabe wird durch ein Verfahren gemäß Patentanspruch 1 oder 16 oder durch eine Vorrichtung gemäß Patentanspruch 15 oder 19 gelöst.
  • Der vorliegenden Erfindung liegt die Erkenntnis zugrunde, daß ein sicherer und effizienter Schutz gegen DPA-Attacken mit oder ohne Mittelung dadurch erreicht werden kann, daß nicht parallel zur kryptographischen Operation Verschleierungsmaßnahmen ausgeführt werden, sondern daß auf die kryptographische Operation selbst eingewirkt wird. Erfindungsgemäß wird die kryptographische Operation mittels einer Vorwärtsänderungsvorschrift geändert, um eine geänderte kryptographische Operation zu erhalten. Um jedoch keine falschen Algorithmusdaten aufgrund der geänderten kryptographischen Operation zu erzeugen, wird ferner auf die Verschlüsselungseingangsdaten und/oder auf die Ausgangsdaten der geänderten kryptographischen Operation gemäß einer Rückwärtsänderungsvorschrift eingewirkt, damit aus Ursprungseingangsdaten auch Ursprungsausgangsdaten erzeugt werden.
  • Bei einem ersten Ausführungsbeispiel der vorliegenden Erfindung wird die kryptographische Operation mittels der Vorwärtsänderungsvorschrift geändert. Um solche Ursprungsausgangsdaten zu erhalten, die die unveränderte kryptographische Operation aus den Ursprungseingangsdaten liefern würde, werden die Ursprungseingangsdaten derart geändert, daß die geänderten Ursprungseingangsdaten zusammen mit der geänderten kryptographischen Operation die Ursprungsausgangsdaten liefern.
  • Bei einem weiteren Ausführungsbeispiel der vorliegenden Erfindung werden die Ursprungseingangsdaten direkt in die geänderte kryptographische Operation eingespeist. Die Ausgangsdaten der geänderten kryptographischen Operation werden dann mittels einer Rückwärtsänderungsvorschrift verändert, um aus den Ausgangsdaten der geänderten kryptographischen Operation die Ursprungsausgangsdaten zu erhalten.
  • Bevorzugterweise umfaßt die kryptographische Operation die Byte-Substitution, die mittels einer überall erhältlichen S- Box durchgeführt werden kann. Auf die ursprüngliche S-Box- Nachschlagtabelle wird gemäß der Vorwärtsänderungsvorschrift eingewirkt, um eine geänderte S-Box zu erhalten. Die Vorwärtsänderungsvorschrift kann entweder in einer Eingangsadressenverwürfelung der S-Box oder in einer Ausgangsdatenverwürfelung der S-Box bestehen.
  • Je nach Vorwärtsänderungsvorschrift, d. h. ob nur die Eingangsadressen oder nur die Ausgangsdaten verwürfelt sind, werden die Eingangsadressen in die geänderte S-Box vor dem Zugriff auf die S-Box ebenfalls verwürfelt bzw. werden die Ausgangsdaten aus der geänderten S-Box verwürfelt, um die Änderung der kryptographischen Operation wieder rückgängig zu machen.
  • Im Gegensatz zum Stand der Technik, bei dem zur Stromprofilverschleierung parallel zur eigentlichen kryptographischen Operation Dummy-Operationen etc. ausgeführt werden, wird erfindungsgemäß direkt auf die kryptographische Operation eingewirkt. Ein Angreifer, der seinen Angriffen eine bekannte S- Box, d. h. eine bekannte kryptographische Operation, zugrundelegt, wird nicht zum Ziel gelangen, da die kryptographische Operation nicht ausgeführt wird, sondern eine gemäß der Vorwärtsänderungsvorschrift geänderte kryptographische Operation. Damit wird ein Angriff auf den Kryptoalgorithmus erschwert, da der Angreifer zunächst erkennen muß, ob überhaupt eine Änderung der kryptographischen Operation stattfindet, und darüber hinaus, welche Vorwärtsänderungsvorschrift ausgeführt wird.
  • Es sei darauf hingewiesen, daß anhand des Zusammenhangs zwischen Ursprungseingangsdaten und Ursprungsausgangsdaten nicht zu erkennen ist, ob eine geänderte kryptographische Operation oder die - von einem Angreifer erwartete - unveränderte kryptographische Operation ausgeführt wird, da die Vorwärtsänderungsvorschrift und die mit derselben korrespondierende Rückwärtsänderungsvorschrift unter mathematischen Gesichtspunkten nach "außen" nicht sichtbar sind, d. h., da das erfindungsgemäße Verfahren zum Ermitteln von Ursprungsausgangsdaten aus Ursprungseingangsdaten auf der Basis einer kryptographischen Operation nach außen hin völlig transparent ist.
  • Gemäß einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung wird hin und wieder oder sogar bei jeder Ausführung des Verfahrens die Vorwärtsänderungsvorschrift verändert und insbesondere abhängig von einer Zufallszahl verändert, so daß, selbst wenn ein Angreifer erkannt hat, daß eine geänderte kryptographische Operation ausgeführt wird, ein DPA- Angriff mit Mittelung nicht mehr ausführbar ist, da die Vorwärtsänderungsvorschrift entweder jedesmal geändert wird oder je nach Bedarf bei jeder fünften, zehnten etc. Ausführung des erfindungsgemäßen Verfahrens.
  • Insbesondere durch die Randomisierung der Vorwärtsänderungsvorschrift und der entsprechenden Rückwärtsänderungsvorschrift, die, wenn ein sehr hoher Schutzstandard erwünscht ist, besonders häufig und sogar bei jeder einzelnen Ausführung geändert wird, bietet einen guten Schutz.
  • Durch den Einsatz dieser Randomisierung kann prinzipiell jede symmetrische kryptographische Operation, wie z. B. die S-Box des AES-Algorithmus oder andere Stufen des in Fig. 6 beschriebenen AES-Algorithmus oder eine Kombination der S-Box und der Add-Round-Key-Operation, mittels Zufallswerten von einem Zufallszahlengenerator sogar bei stabilen Eingangsdaten verändert werden. Somit können auch bei konstanten Eingangsdaten, beispielsweise einem unverschlüsselten Text und einem Schlüssel, nicht mehr identische Berechnungen durchgeführt werden.
  • Solche identischen Berechnungen werden im Regelfall zur Verbesserung des Signal-Rausch-Verhältnisses bei Angriffen durchgeführt und können durch Mittelung beispielsweise der Stromaufnahme der die kryptographische Operation ausführenden Schaltung erfolgen. Auch bei ungemittelten Messungen führt das erfindungsgemäße Konzept bereits zur Abwehr von differentiellen Angriffen, da bei der Differenzbildung verschiedener Attacken eine konstante kryptographische Funktion vorausgesetzt werden muß. Auch ein einfacher Angriff, beispielsweise ein SPA, wird durch das erfindungsgemäße Konzept ohne Kenntnis der Vorwärtsänderungsvorschrift und der dazugehörigen Rückwärtsänderungsvorschrift nicht realisierbar.
  • Ein Vorteil der vorliegenden Erfindung besteht ferner darin, daß die Schutzmaßnahme skalierbar ist. Mit anderen Worten ausgedrückt, bedeutet dies, daß, falls ein hoher Schutz erwünscht wird, jedesmal, wenn eine kryptographische Operation ausgeführt wird, das erfindungsgemäße Verfahren durchgeführt wird, d. h. mittels einer Vorwärtsänderungsvorschrift die kryptographische Operation zu verändern und ferner die Ursprungseingangsdaten oder die Ausgangsdaten der geänderten kryptographischen Operation mittels einer der Vorwärtsänderungsvorschrift entsprechenden Rückwärtsänderungsvorschrift zu bearbeiten, um aus den Ursprungseingangsdaten Ursprungsausgangsdaten zu erhalten. Ein hoher Schutz wird dadurch erreicht, dass eine hinsichtlich Adressen und Daten verschlüsselte sichere S-Box erzeugt wird, die so verschlüsselt ist, dass auch die Add-Round-Key-Operation mit verschlüsselten Daten durchgeführt werden kann. Dies wird durch Bereitstellen von drei Schlüsseln erreicht, wobei die Adressen der S-Box aus einer Kombination von zwei Schlüsseln verschlüsselt wird, und bei der Ausführung der Operationen dann die Eingangsdaten in die Add-Key-Operation mit dem ersten Schlüssel verschlüsselt werden und der Round-Key mit dem zweiten Schlüssel verschlüsselt wird.
  • Wird jedoch nur ein geringerer Schutz erwünscht und ist zugleich die Rechenleistung der Schaltung von großer Bedeutung, so muß nicht bei jeder Ausführung der kryptographischen Operation eine andere Vorwärtsänderungsvorschrift genommen werden. Statt dessen genügt es dann, nur zu bestimmten Intervallen eine andere geänderte kryptographische Operation zu nehmen, d. h. die Vorwärtsänderungsvorschrift und die dazugehörige Rückwärtsänderungsvorschrift von Zeit zu Zeit zu modifizieren. Ein geringerer Schutz mit weniger Aufwand wird ferner dadurch erreicht, dass entweder nur die Adressen der S-Box oder die Ausgangsdaten der S-Box randomisiert werden.
  • Ein weiterer Vorteil der vorliegenden Erfindung besteht darin, daß die Vorwärtsänderungsvorschrift und die entsprechende Rückwärtsänderungsvorschrift z. B. unter Verwendung einer einfachen XOR-Verknüpfung mit einem Zufallswert randomisiert werden können, wobei ein solcher Zufallswert aus einem Zufallszahlengenerator (RNG; RNG = Randonn Number Generator) erhalten werden könnte, der typischerweise auf jeder modernen Chipkarte oder Smart Card vorhanden ist.
  • Ein weiterer Vorteil der vorliegenden Erfindung besteht darin, daß die Sicherheit nicht mit komplizierten Hardware- Schaltungen erkauft werden muß, sondern z. B. mittels einfacher XOR-Gatter, da die Sicherheit nicht durch die Hardware- Schaltungen bedingt wird, sondern durch die Umänderung der kryptographischen Operation vorzugsweise von Berechnung zu Berechnung unter Verwendung von Zufallszahlen, die von einem ohnehin in dem Kryptosystem vorhandenen Zufallszahlengenerator geliefert werden.
  • Bei einem weiteren bevorzugten Ausführungsbeispiel wird, um die Sicherheit gegen Angriffe zu verstärken, sowohl eine Verschlüsselung der Adressen der S-Box des AES-Algorithmus nach Rijndael als auch eine Verschlüsselung der Daten der S-Box durchgeführt, um eine verschlüsselte S-Box, d. h. eine verschlüsselte Bytesubstitutionstabelle, zu erzeugen. Die Adressen werden mit einem Schlüssel verschlüsselt, der aus einer Verknüpfung eines ersten Schlüssels und eines zweiten Schlüssels abgeleitet ist, während die Daten der Bytesubstitutionstabelle mit einem dritten Schlüssel verschlüsselt werden. Diese Vorgehensweise ermöglicht es, sowohl die Add-Key- Operation des AES-Algorithmus als auch die Bytesubstitution des AES-Algorithmus und optional auch die Shift-Row-Operation des AES-Algorithmus insgesamt mit verschlüsselten Daten zu betreiben. Insbesondere werden dann die Eingangsdaten in die Add-Key-Operation mit dem ersten Schlüssel verschlüsselt. Der Schlüssel für die Add-Key-Operation wird mit dem zweiten Schlüssel verschlüsselt. Schließlich werden die Ausgangsdaten entweder der Bytesubstitution an sich oder - zusätzlich - der Shift-Row-Operation mit dem dritten Schlüssel verschlüsselt. Für sämtliche Verschlüsselungen und die Verknüpfung des ersten und des zweiten Schlüssels werden XOR-Operationen bevorzugt. Damit ist es möglich, mit einer verschlüsselten Bytesubstitutionstabelle und mit einem verschlüsselten Schlüssel für die Add-Key-Operation eine Randomisierung zu erreichen, die bestimmte Angriffe erschwert.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Anmeldurig werden nachfolgend unter Bezugnahme auf die beiliegenden Zeichnungen näher erläutert. Es zeigen
  • Fig. 1 ein Übersichtsblockschaltbild einer erfindungsgemäßen Vorrichtung zum Ermitteln von Ursprungsausgangsdaten aus Ursprungseingangsdaten auf der Basis einer kryptographischen Operation;
  • Fig. 2 eine erfindungsgemäße Vorrichtung gemäß einem ersten Ausführungsbeispiel;
  • Fig. 3 eine erfindungsgemäße Vorrichtung gemäß einem zweiten Ausführungsbeispiel;
  • Fig. 4a eine erfindungsgemäße Vorrichtung gemäß einem dritten Ausführungsbeispiel, bei dem eine geänderte S- Box zum verschlüsselten Berechnen der Add-Round- Key-Operation samt Bytesubstitution erzeugt wird;
  • Fig. 4b ein Übersichtsdiagramm für das Ausführen des AES- Algorithmus mit geänderter S-Box, wobei sowohl die Eingangsdaten in die Add-Key-Operation als auch der Schlüssel für die Add-Key-Operation als auch die Ausgangsdaten der Bytesubstitution zur Operation verschlüsselt werden;
  • Fig. 5 ein bekanntes Konzept, um mittels einer kryptographischen Operation aus Ursprungseingangsdaten Ursprungsausgangsdaten zu erhalten;
  • Fig. 6 ein Übersichtsdiagramm über eine Runde des AES- Algorithmus;
  • Fig. 7 eine detaillierte Darstellung zum Berechnen einer geänderten S-Box für den in Fig. 6 dargestellten AES-Algorithmus mit Verschlüsselung entweder der Adressen der S-Box oder der Daten der S-Box; und
  • Fig. 8 ein Übersichtsdiagramm für das erfindungsgemäße Verfahren mit nach Fig. 7 geänderter S-Box, bei dem entweder die Ursprungseingangsdaten oder die Ausgangsdaten der S-Box gemäß einer Rückwärtsänderungsvorschrift bearbeitet werden.
  • Fig. 1 zeigt ein Übersichtsdiagramm einer erfindungsgemäßen Vorrichtung. Im Gegensatz zu einem bekannten Verfahren, bei dem Ursprungseingangsdaten 500 in eine kryptographische Operation 510 eingespeist werden, um Ursprungsausgangsdaten 520 zu erhalten, wird gemäß der vorliegenden Erfindung die ursprüngliche kryptographische Operation, die in Fig. 5 mit 510 bezeichnet ist, in eine Einrichtung 100 zum Ändern der ursprünglichen kryptographischen Operation eingespeist, um eine geänderte kryptographische Operation 110 zu erhalten. Die Einrichtung 100 spricht auf eine Vorwärtsänderungsvorschrift 120 an. Die geänderte kryptographische Operation 110 wird in eine Einrichtung 120 zum Ausführen der geänderten kryptographischen Operation eingespeist.
  • Die geänderte kryptographische Operation kann eingangsseitig einen Eingangsmodusschalter 130 und ausgangsseitig einen Ausgangsmodusschalter 140 umfassen. Wie es anhand der Fig. 2 bis 4 näher erläutert werden wird, kann die geänderte kryptographische Operation als Eingangsdaten die Ursprungseingangsdaten 500 oder gemäß einer Rückwärtsänderungsvorschrift geänderte Ursprungseingangsdaten 150 erhalten.
  • Die Ursprungsausgangsdaten sind, je nach Stellung des Ausgangsmodusschalters 140, entweder die Ausgangsdaten der Einrichtung 120 zum Ausführen der geänderten kryptographischen Operation oder geänderte Ausgangsdaten 160 der Einrichtung 120 zum Ausführen der geänderten kryptographischen Operation. Hierzu umfaßt die in Fig. 1 gezeigte erfindungsgemäße Vorrichtung eine Einrichtung 170 zum Ändern der Ursprungseingangsdaten und/oder der Ausgangsdaten der geänderten kryptographischen Operation. Die Einrichtung 170 spricht analog zur Einrichtung 100 auf eine Rückwärtsänderungsvorschrift 180 an. Die Vorwärtsänderungsvorschrift sowie die Rückwärtsänderungsvorschrift sind mittels eines Zufallzahlengenerators 190 steuerbar, um die Vorwärtsänderungsvorschrift und damit auch die Rückwärtsänderungsvorschrift von Mal zu Mal zu verändern. Je nach Schutzbedürfnis einerseits und verfügbarer Rechenleistung des Kryptorechensystems, das die in Fig. 1 gezeigte Vorrichtung umfaßt, kann, wenn eine hohe Sicherheit erwünscht wird, bei jeder Ausführung der kryptographischen Operation eine andere geänderte kryptographische Operation eingesetzt werden. Wenn dagegen ein geringerer Sicherheitsstandard ausreicht und Rechenleistung mehr zählt, muß die Vorwärtsänderungsvorschrift 120 und damit einhergehend die Rückwärtsänderungsvorschrift 180 nicht jedesmal verändert werden, sondern nur zu vorbestimmten festen oder variablen Zeitintervallen oder nur einmal bei der Initialisierung der Schaltung.
  • Im nachfolgenden wird auf Fig. 2 eingegangen, um eine erfindungsgemäße Vorrichtung gemäß einem ersten Ausführungsbeispiel der vorliegenden Erfindung darzustellen. Die Einrichtung 120 ist angeordnet, um eine geänderte kryptographische Operation auszuführen, die gemäß einer Vorwärtsänderungsvorschrift geändert worden ist. Die Vorwärtsänderungsvorschrift ist so gestaltet, daß lediglich die Ursprungseingangsdaten 500 einer Rückwärtsänderungsvorschrift 170a unterzogen werden müssen, derart, daß die geänderten Ursprungseingangsdaten zusammen mit der geänderten kryptographischen Operation bereits die Ursprungsausgangsdaten 520 ergeben.
  • Bei dem in Fig. 3 gezeigten zweiten Ausführungsbeispiel der vorliegenden Erfindung ist die Vorwärtsänderungsvorschrift derart gestaltet, daß sich eine geänderte kryptographische Operation ergibt, die mittels der Einrichtung 120b auf die Ursprungseingangsdaten 500 direkt ausgeführt wird, um Ausgangsdaten der geänderten kryptographischen Operation zu erhalten, welche in eine Einrichtung 170b zum Ausführen einer Rückwärtsänderungsvorschrift eingespeist werden, um die Ursprungsausgangsdaten 520 zu erhalten.
  • Bei jedem der in den Fig. 2 und 3 gezeigten Verfahren werden aus den selben Ursprungseingangsdaten 500, die den Ursprungseingangsdaten von Fig. 5 entsprechen, die selben Ursprungsausgangsdaten 520 wie in Fig. 5 erhalten, derart, daß das erfindungsgemäße Konzept nach außen, also bezüglich der Ursprungseingangsdaten 500 und der Ursprungsausgangsdaten 520 transparent ist. Das Stromprofil ist jedoch bei jeder der in den Fig. 2 bis 4 gezeigten Vorrichtung unterschiedlich und insbesondere unterschiedlich zu der in Fig. 5 gezeigten bekannten Vorrichtung, derart, daß DPA-Attacken erschwert werden, da der Angreifer zunächst die Vorwärtsänderungsvorschrift und selbstverständlich auch die Rückwärtsänderungsvorschrift ermitteln muß, um auf die ursprüngliche kryptographische Operation schließen zu können.
  • Die Sicherheit wird weiter erhöht, wenn die Vorwärtsänderungsvorschrift immer wieder geändert wird, derart, daß auch DPA-Angriffe mit Mittelung zumindest schwerer oder überhaupt nicht mehr zum Erfolg führen werden.
  • Im nachfolgenden wird anhand von Fig. 7 auf eine bevorzugte Ausführung der Einrichtung 100 zum Ändern der kryptographischen Operation eingegangen. Die ursprüngliche kryptographische Operation ist bei dem in Fig. 7 gezeigten Ausführungsbeispiel die in einem Speicher 1 gespeicherte S-Box, die die ursprüngliche kryptographische Operation 510 von Fig. 5 repräsentiert. Mittels einer Vorwärtsänderungsvorschrift wird nunmehr ein Adreß-Scrambling durchgeführt, um Adressen für die geänderte kryptographische Operation, d. h. die geänderte S-Box, zu liefern, die in einem Speicher 2 als geänderte kryptographische Operation 120a, 120b bzw. 120c abgespeichert ist. Die Vorwärtsänderungsvorschrift besteht in einer XOR- Verknüpfung 710, die eine XOR-Verknüpfungsoperation mit einem von einem Adreß-Counter 720 ausgegebenen Adresse mit einem XOR-Wert 1 730 durchführt. Die Ausgangsdaten der ursprünglichen S-Box werden ferner mittels einer Vorwärtsänderungsvorschrift in Form eines XOR-Gatters 740 und eines XOR-Werts 2 750 bei dem in Fig. 7 gezeigten Ausführungsbeispiel ebenfalls gescrambelt, so daß die geänderte kryptographische Operation, d. h. die in dem Speicher gespeicherte geänderte S-Box, entweder bezüglich der Adressen oder der Daten bezüglich der ursprünglichen S-Box geändert wird. Der in Fig. 7 gezeigte Fall entspricht somit entweder dem in Fig. 1 gezeigten ersten oder dem in Fig. 2 gezeigten zweiten Ausführungsbeispiel der vorliegenden Erfindung, wie es anhand der in Fig. 8 gezeigten Vorrichtung deutlich wird.
  • Die S-Box 120c, die in Fig. 8 gezeigt ist, entspricht einer entweder mit einer ersten oder einer zweiten Vorwärtsänderungsvorschrift geänderten ursprünglichen S-Box 510. Ursprungseingangsdaten 500 werden mittels einer Rückwärtsänderungsvorschrift, die aus einem XOR-Gatter 810, das eine XOR- Verknüpfung der Ursprungseingangsdaten mit einem XOR-Wert 1 820 durchführt, verarbeitet, um geänderte Adressen, also bezüglich der Terminologie in Fig. 4 geänderte Ursprungseingangsdaten zu erzeugen, die in die geänderte S-Box 120c eingespeist werden, um Ausgangsdaten der geänderten kryptographischen Operation, d. h. Daten der geänderten S-Box 120c, zu erhalten. Die Ausgangsdaten werden ggf. mittels der ersten Rückwärtsänderungsvorschrift, die in Fig. 4 als 170c" bezeichnet ist und in Fig. 8 aus einem XOR-Gatter 830 und einem XOR-Wert 2 840 besteht, verarbeitet, um wieder die Ursprungsausgangsdaten 520 von Fig. 4 zu erhalten.
  • Aufgrund der Eigenschaft der XOR-Funktion, daß eine zweimalige Ausführung unter Verwendung des selben Schlüssels wieder die ursprünglichen Daten ergibt, wird die XOR-Funktion bevorzugt.
  • Wenn in Fig. 7 die Funktionalität der Blöcke 740 und 750 weggelassen werden, würde dies dem in Fig. 2 gezeigten Fall entsprechen, d. h. die Vorwärtsänderungsvorschrift würde den Blöcken 710 und 730 entsprechen, während die Rückwärtsänderungsvorschrift lediglich die Blöcke 810 und 820 von Fig. 8 umfassen würde. Die geänderte kryptographische Operation 120a ist in diesem Fall die ursprüngliche S-Box, jedoch mit gemäß dem XOR-Wert 1 730 gescrambelten Adressen.
  • Würde dagegen auf die Funktionalität der Blöcke 710 und 730 verzichtet werden, so würde dies dem Fall von Fig. 3 entsprechen, d. h. die Ursprungseingangsdaten werden direkt in die geänderte S-Box 120b eingespeist, während die durch die Blöcke 740 und 750 bewirkten Operationen bezüglich der ursprünglichen S-Box verändert sind. Die Vorwärtsänderungsvorschrift wäre in diesem Fall die durch die Blöcke 740 und 750 ausgeführte Operation, während die Rückwärtsänderungsvorschrift die durch die Blöcke 830 und 840 ausgeführte Operation von Fig. 8 sein würde.
  • Es sei darauf hingewiesen, daß bei den in den Fig. 7 und 8 gezeigten Ausführungsbeispielen die Rückwärtsänderungsvorschrift zu der Vorwärtsänderungsvorschrift identisch ist, was auf die bereits erwähnte Eigenschaft der XOR-Funktion zurückzuführen ist. Alternativ kann statt einer XOR-Verknüpfung mit einem XOR-Wert auch irgendeine andere invertierbare Funktion eingesetzt werden, wobei jede Vorwärtsänderungsvorschrift jedoch derart ausgestaltet sein muß, daß die geänderte kryptographische Operation entweder mit geänderten Ursprungseingangsdaten Ursprungsausgangsdaten ergibt oder mit Ursprungseingangsdaten und geänderten Ausgangsdaten der geänderten kryptographischen Operation die Ursprungsausgangsdaten ergibt.
  • Bei dem in den Fig. 7 und 8 gezeigten Ausführungsbeispiel, bei dem die ursprüngliche kryptographische Operation eine bekannte S-Box des AES-Algorithmus ist, besteht ein besonderer Sicherungsvorteil darin, daß insbesondere die Zugriffe auf die S-Box einer symmetrischen kryptographischen Funktion, z. B. des AES-Algorithmus, aufgrund der Vermischung mit den geheimen und damit für den Angreifer interessanten Schlüsseldaten einen potentiellen Angriffspunkt liefert. Wie es ausgeführt worden ist, realisiert diese S-Box eine nichtlineare mathematische Funktion (multiplikative Inverse mit affiner Abbildung) von 8 Bit auf 8 Bit. Dies bedeutet, daß ein 8-Bit- Eingangswert, der als Adresse bezeichnet wird, auf einen 8- Bit-Ausgangswert, der als Daten bezeichnet wird, umgesetzt wird.
  • Bei einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung wird nicht für sämtliche Ausführungen der Byte- Substitution mittels der S-Box die selbe geänderte S-Box verwendet, sondern es wird je nach Bedarf der XOR-Wert 1 und/oder der XOR-Wert 2 verändert, derart, daß für verschiedene Byte-Substitutionen verschiedene geänderte S-Boxen vorhanden sind. Diese Randomisierung kann, wie es ausgeführt worden ist, an der Adreßseite (Fig. 2) oder auf der Datenseite (Fig. 3) oder auf beiden Seiten (Figur. 4) erfolgen. Für die Adreßrandomisierung kann zunächst eine Wertetabelle mit den Originalwerten aus dem Speicher 1 510, der beispielsweise ein unsicherer Speicher oder Programmspeicher in Form eines ROM/EEPROM ist, in einen Speicher 2 120a, 120b, 120c, der beispielsweise ein sicherer Speichers oder Arbeitsspeichers in Form eines XRAM ist, geladen werden, wobei die Speicheradresse mit einem zuvor generierten Zufallswert (730) durch eine XOR-Operation 710 verknüpft wird. Hierdurch wird eine nichtlineare Ablage der Werte im Speicher erzeugt.
  • Ebenso werden bei einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung auch die Daten mit einem zweiten zuvor generierten Zufallswert 750 und einer XOR-Operation 740verschleiert. Nach dem Kopiervorgang der Wertetabelle kann dann der eigentliche AES-Algorithmus gemäß Fig. 8 abgearbeitet werden, welcher mittels den zwei gespeicherten Zufallswerten 820, 840 die XOR-Operationen 810, 830 invertieren kann, so daß die kryptographische Funktion auf die korrekten Werte zurückgreift.
  • Die Operation mittels der Blöcke 830, 840 kann entweder unmittelbar hinter der Byte-Substitution 640 von Fig. 6 oder aber erst nach der Shift-Row-Operation 650 von Fig. 6 erfolgen.
  • Der in Fig. 4a gezeigte Schaltungsaufbau ähnelt dem in Fig. 7 gezeigten Schaltungsaufbau, jedoch mit der Ausnahme, daß drei verschiedene XOR-Werte 410, 412 und 414 verwendet werden. Wie in Fig. 7 gezeigt, werden die Daten der ursprünglichen S-Box 510 unter Verwendung des dritten Schlüssels, d. h. des XOR- Werts 3 mittels einer XOR-Verknüpfung 740 bitweise verschlüsselt, um Daten einer sicheren S-Box 420 zu erhalten. Im Gegensatz zu dem in Fig. 7 gezeigten Ausführungsbeispiel, bei dem entweder die Daten oder die Adressen verschlüsselt werden, werden bei dem in Fig. 4a gezeigten Ausführungsbeispiel sowohl die Daten als auch die Adressen verschlüsselt, die durch einen Adreßzähler 720 generiert werden. Eine Verschlüsselung findet nun jedoch nicht mehr mittels eines einzigen XOR-Werts wie in Fig. 7 statt, sondern die Verschlüsselung der Adressen wird auf der Basis des ersten Verschlüsselungsschlüssels 410 und des zweiten Verschlüsselungsschlüssels 412 durchgeführt, wobei der tatsächliche Schlüssel zum Verschlüsseln der Adressen aus einer Verknüpfung des ersten XOR-Werts 410 und des zweiten XOR-Werts 412 mittels einer XOR- Verknüpfung 430 erzeugt wird. Die Verschlüsselung findet dann wieder, wie in Fig. 7 gezeigt, durch dass XOR-Glied 710 statt, um eine verschlüsselte Bytesubstitutionstabelle zu erzeugen, die in Fig. 4a mit "S-Box sicher" oder dem Bezugszeichen 420 bezeichnet ist.
  • Die in Fig. 4a gezeigte Verschlüsselung unter Verwendung der XOR-Werte 410 und 412 erlaubt es erfindungsgemäß, nicht nur die Bytesubstitutionsoperation mit verschlüsselten bzw. maskierten Daten zu betreiben, sondern sowohl die Add-Key- Operation als auch die Bytesubstitutionsoperation und, wenn es erwünscht wird, auch noch die Shift-Row-Operation mit verschlüsselten Daten auszuführen. Hierzu werden die zu verschlüsselnden Eingangsdaten (IN 500) mit dem XOR-Wert 1 410 XOR-verknüpft (810). Die Ausgangsdaten des Glieds 810 werden dann der Add-Key-Operation 620 unterzogen wie es in Fig. 6 beschrieben ist. Der Round-Key, der in Fig. 4b aus Einfachheitsgründen lediglich mit Key 630 bezeichnet ist, wird in der Add-Key-Operation jedoch nicht direkt verwendet, sondern wird erfindungsgemäß mittels des XOR-Glieds 450 unter Verwendung des XOR-Werts 412 verschlüsselt. Die Ausgangsdaten der verschlüsselten Add-Key-Operation werden dann der Bytesubstitutionsoperation 420 zugeführt. Die Ausgangsdaten der Bytesubstitutionsoperation 420 könnten nunmehr entweder direkt mittels des XOR-Werts 3 414 verschlüsselt werden. Sie könnten jedoch auch noch, in verschlüsseltem Zustand, der Shift-Row- Operation 650 (Fig. 6) unterzogen werden, so daß auch diese Operation nicht mit Ursprungsdaten, sondern mit verschlüsselten Daten durchgeführt wird. Am Ausgang des XOR-Glieds 830 liegen somit wieder die Ursprungsausgangsdaten 520 vor, jedoch nicht, wie in Fig. 8 gezeigt, der Bytesubstitutionsoperation allein, sondern der Kombination aus Add-Key-Operation, Bytesubstitutionsoperation und optional Shift-Row-Operation.
  • Erfindungsgemäß werden, wie es anhand der Fig. 4a und 4b dargestellt worden ist, zur Erzeugung der sicheren Bytesubstitutionstabelle 420 (Fig. 4a) drei verschiedene Schlüssel verwendet, die in der beschriebenen Art und Weise beim Durchführen des Verschlüsselungsalgorithmus zum Verschlüsseln der Eingangsdaten (XOR-Wert 1), zum Verschlüsseln des Runden- Schlüssels (XOR-Wert 2) und zum Verschlüsseln der Ausgangsdaten (XOR-Wert 3) eingesetzt werden. Es sei darauf hingewiesen, daß auch von der XOR-Funktion abweichende invertierbare Verschlüsselungsfunktionen eingesetzt werden können, um eine Verschlüsselung zu erreichen. Die XOR-Funktion wird jedoch bevorzugt, da sie rechenzeiteffizient bitweise eingesetzt werden kann und die günstige Eigenschaft hat, daß eine zweimalige Anwendung der XOR-Funktion wieder das ursprüngliche Ergebnis ergibt. Mit größerem Schaltungsaufwand können jedoch auch andere Verschlüsselungsoperationen verwendet werden. Bezugszeichenliste 100 Einrichtung zum Ändern der kryptographischen Operation
    110 geänderte kryptographische Operation
    120 Ausführen der geänderten Operation
    120a geänderte kryptographische Operation
    120b geänderte kryptographische Operation
    130 Eingangs-Umschalter
    140 Ausgangs-Umschalter
    150 geänderte Ursprungseingangsdaten
    160 geänderte Ausgangsdaten
    170 Einrichtung zum Ändern der Eingangs- oder der Ausgangsdaten
    170a Rückwärtsänderungsvorschrift
    180 Rückwärtsänderungsvorschrift
    190 Zufallszahlengenerator
    410 XOR-Wert 1
    412 XOR-Wert 2
    414 XOR-Wert 3
    420 S-Box sicher
    430 XOR-Verknüpfung
    450 XOR-Verknüpfung
    500 Ursprungs-Eingangsdaten
    510 Original S-Box bzw. ursprüngliche kryptographische Operation
    520 Ursprungs-Ausgangsdaten
    600 AES-Zustand
    620 Add-Round-Key-Operation
    620' Add-Round-Key-Operation
    630 Round-Key
    630' Round Key für die nächste Runde
    640 Byte-Substitution
    650 Shift-Row-Operation
    660 Mix-Column-Operation
    710 XOR-Verknüpfung
    720 Adress-Zähler
    740 XOR-Verknüpfung
    810 XOR-Verknüpfung
    830 XOR-Verknüpfung

Claims (19)

1. Verfahren zum Ermitteln von Ursprungsausgangsdaten (520) aus Ursprungseingangsdaten (500) auf der Basis einer kryptographischen Operation (510) mit folgenden Schritten:
Ändern der kryptographischen Operation (510) gemäß einer Vorwärtsänderungsvorschrift (100), um eine geänderte kryptographische Operation (120a; 120b) zu erhalten;
Durchführen (120) der geänderten kryptographischen Operation, um Ausgangsdaten der geänderten kryptographischen Operation zu erhalten;
Ändern (170a; 170b) der Ursprungseingangsdaten (500) und/oder der Ausgangsdaten der geänderten kryptographischen Operation, um die Ursprungsausgangsdaten (520) zu erhalten, gemäß einer Rückwärtsänderungsvorschrift (170), wobei die Rückwärtsänderungsvorschrift (170) an die Vorwärtsänderungsvorschrift (100) angepaßt ist und so definiert ist,
daß entweder die geänderte kryptographische Operation zusammen mit den Ursprungseingangsdaten (500) die Ursprungsausgangsdaten liefert, oder
daß die geänderte kryptographische Operation zusammen mit den geänderten Ursprungseingangsdaten die Ursprungsausgangsdaten (520) liefert.
2. Verfahren gemäß Anspruch 1, das zu einem ersten Zeitpunkt durchgeführt wird und das zu einem späteren Zeitpunkt auf der Basis der selben kryptographischen Operation (510) durchgeführt wird, wobei bei der Durchführung des Verfahrens zu dem späteren Zeitpunkt eine andere Vorwärtsänderungsvorschrift und eine an die andere Vorwärtsänderungsvorschrift angepaßte Rückwärtsänderungsvorschrift verwendet werden.
3. Verfahren gemäß Anspruch 2, bei dem die eine Vorwärtsänderungsvorschrift von einer Zufallszahl abhängt und bei dem die andere Vorwärtsänderungsvorschrift von einer anderen Zufallszahl abhängt.
4. Verfahren gemäß Anspruch 2 oder 3,
bei dem die eine Vorwärtsänderungsvorschrift eine XOR- Verknüpfung (710, 740) umfaßt,
bei dem die eine Rückwärtsänderungsvorschrift eine XOR- Verknüpfung (810, 830) umfaßt,
bei dem die andere Vorwärtsänderungsvorschrift eine XOR- Verknüpfung mit einem Schlüssel umfaßt, der sich von einem Schlüssel der einen Vorwärtsänderungsvorschrift unterscheidet, und
bei dem die andere Rückwärtsänderungsvorschrift einen zweiten Schlüssel umfaßt, der sich von einem Schlüssel der einen Rückwärtsänderungsvorschrift unterscheidet.
5. Verfahren gemäß einem der Ansprüche 2 bis 4, bei dem der spätere Zeitpunkt unmittelbar auf den ersten Zeitpunkt folgt.
6. Verfahren gemäß einem der Ansprüche 2 bis 4, das von einem Prozessor ausgeführt wird, wobei zwischen dem ersten Zeitpunkt und dem späteren Zeitpunkt das Verfahren eine Anzahl von Malen mit der einen Änderungsvorschrift durchgeführt wird, wobei die Anzahl von Malen groß ist, wenn hohe Prozessorressourcen vorhanden sind, und wobei die Anzahl von Malen klein ist, wenn niedrige Prozessorressourcen vorhanden sind.
7. Verfahren gemäß einem der Ansprüche 2 bis 6,
bei dem die kryptographische Operation einen Zugriff mittels einer Eingangsadresse auf eine ursprüngliche Tabelle (510) umfaßt, um einen Ausgangswert zu erhalten, der der Eingangsadresse zugeordnet ist,
bei dem die geänderte kryptographische Operation eine gemäß der Vorwärtsänderungsvorschrift (710, 730) geänderte Tabelle (120a) ist, in der die Eingangsadresse gegenüber der Eingangsadresse der ursprünglichen Tabelle geändert ist, während die Ausgangswerte der geänderten Tabelle mit den Ausgangswerten der ursprünglichen Tabelle übereinstimmen, und
bei dem die Rückwärtsänderungsvorschrift (810, 820), um die geänderten Ursprungsausgangsdaten (520) aus den Ursprungseingangsdaten zu erhalten, zu der Vorwärtsänderungsvorschrift (710, 730) identisch ist.
8. Verfahren gemäß einem der Ansprüche 2 bis 6,
bei dem die kryptographische Operation einen Zugriff mittels einer Eingangsadresse auf eine ursprüngliche Tabelle (510) umfaßt, um einen Ausgangswert zu erhalten, der der Eingangsadresse zugeordnet ist,
bei dem die geänderte kryptographische Operation eine gemäß der Vorwärtsänderungsvorschrift (740, 750) geänderte Tabelle (120b) ist, in der die Ausgangswerte gegenüber den Ausgangswerten der ursprünglichen Tabelle geändert sind, während die Eingangsadressen mit den Eingangsadressen der ursprünglichen Tabelle übereinstimmen, und
bei dem die Rückwärtsänderungsvorschrift (830, 840), um aus den Ausgangsdaten für die geänderte kryptographische Operation die Ursprungsausgangsdaten (520) zu erhalten, zu der Vorwärtsänderungsvorschrift identisch ist.
9. Verfahren gemäß Anspruch 7 oder 8, bei dem die Tabelle die S-Box des AES-Algorithmus nach Rijndael ist.
10. Verfahren gemäß einem der Ansprüche 1 bis 9, bei dem die geänderte kryptographische Operation eine Add-Key-Operation oder eine Shift-Row-Funktion (650) des AES-Algorithmus nach Rijndael umfaßt.
11. Verfahren gemäß einem der Ansprüche 1 bis 10, bei dem die kryptographische Operation ein Teil eines Kryptoalgorithmus ist und bei dem die Eingangsdaten einen Schlüssel des Kryptoalgorithmus oder Informationen, die von dem Schlüssel des Kryptoalgorithmus abgeleitet sind, umfassen.
12. Verfahren gemäß Anspruch 11, bei dem der Kryptoalgorithmus ein symmetrischer Kryptoalgorithmus ist.
13. Verfahren gemäß einem der Ansprüche 7 bis 12,
bei dem der Schritt des Änderns der kryptographischen Operation den Schritt des Speicherns der geänderten Tabelle in einem flüchtigen Speicher eines Prozessors, der die Ursprungsausgangsdaten aus den Ursprungseingangsdaten ermittelt, umfaßt, und
bei dem im Schritt des Durchführens der geänderten kryptographischen Operation auf den flüchtigen Speicher zugegriffen wird.
14. Verfahren gemäß Anspruch 13,
bei dem die ursprüngliche Tabelle in einem nicht-flüchtigen Speicher gespeichert ist, und
bei dem im Schritt des Änderns der kryptographischen Operation auf den nicht-flüchtigen Speicher zugegriffen wird.
15. Vorrichtung zum Ermitteln von Ursprungsausgangsdaten (520) aus Ursprungseingangsdaten (500) auf der Basis einer kryptographischen Operation (510) mit folgenden Merkmalen:
einer Einrichtung zum Ändern der kryptographischen Operation (510) gemäß einer Vorwärtsänderungsvorschrift (100), um eine geänderte kryptographische Operation (120a; 120b) zu erhalten;
einer Einrichtung zum Durchführen (120) der geänderten kryptographischen Operation, um Ausgangsdaten der geänderten kryptographischen Operation zu erhalten;
einer Einrichtung zum Ändern (170a; 170b) der Ursprungseingangsdaten (500) und/oder der Ausgangsdaten der geänderten kryptographischen Operation, um die Ursprungsausgangsdaten (520) zu erhalten, gemäß einer Rückwärtsänderungsvorschrift (170), wobei die Rückwärtsänderungsvorschrift (170) an die Vorwärtsänderungsvorschrift (100) angepaßt ist und so definiert ist,
daß entweder die geänderte kryptographische Operation zusammen mit den Ursprungseingangsdaten (500) die Ursprungsausgangsdaten liefert, oder
daß die geänderte kryptographische Operation zusammen mit den geänderten Ursprungseingangsdaten die Ursprungsausgangsdaten (520) liefert.
16. Verfahren zum Ermitteln von Ursprungsausgangsdaten (520) aus Ursprungseingangsdaten (500) auf der Basis einer kryptographischen Operation (620, 420; 650) mit folgenden Schritten:
Ändern der kryptographischen Operation (420), um eine geänderte kryptographische Operation (420) zu erhalten,
wobei die kryptographische Operation eine Add-Key- Operation (620) und nachgeschaltete Bytesubstitutionsoperation (420) mittels einer Bytesubstitutionstabelle umfaßt,
wobei die kryptographische Operation derart geändert wird, daß Adressen der Bytesubstitutionstabelle mit einem abgeleiteten Schlüssel verschlüsselt werden (710), und Daten mit einem dritten Schlüssel (414) verschlüsselt werden, um eine verschlüsselte Bytesubstitutionstabelle (420) zu erhalten, so daß die geänderte kryptographische Operation die Add-Key-Operation und nachgeschaltet die Bytesubstitutionsoperation mit der verschlüsselten Bytesubstitutionstabelle (420) als geänderte kryptographische Operation aufweist, und
wobei der abgeleitete Schlüssel durch eine Verknüpfung eines ersten Schlüssels (410) und eines zweiten Schlüssels (412) gebildet wird;
Ändern (810) der Ursprungseingangsdaten (500) durch Verschlüsseln mit dem ersten Schlüssel (410);
Ändern (450) eines Schlüssels für die Add-Round-Key-Operation durch Verschlüsseln mit dem zweiten Schlüssel (412);
Durchführen der geänderten kryptographischen Operation, um Ausgangsdaten der geänderten kryptographischen Operation zu erhalten;
Ändern (414) der Ausgangsdaten der geänderten kryptographischen Operation durch Verschlüsseln mit dem dritten Schlüssel (414), um die Ursprungsausgangsdaten (520) zu erhalten.
17. Verfahren nach Anspruch 16, bei dem die kryptographische Operation ferner eine Shift-Row-Operation (650) umfaßt, die der Bytesubstitutionsoperation nachgeschaltet ist.
18. Verfahren nach Anspruch 16 oder 17, bei dem zum Verschlüsseln mit dem ersten, zweiten und dritten Schlüssel (410, 412, 414) eine bitweise XOR-Operation verwendet wird, und
bei dem die Verknüpfung (450) zum Erhalten des abgeleiteten Schlüssels eine bitweise XOR-Verknüpfung des ersten und des zweiten Schlüssels (410, 412) ist.
19. Vorrichtung zum Ermitteln von Ursprungsausgangsdaten (520) aus Ursprungseingangsdaten (500) auf der Basis einer kryptographischen Operation (620, 420; 650), mit folgenden Merkmalen:
einer Einrichtung (710, 740) zum Ändern der kryptographischen Operation (420), um eine geänderte kryptographische Operation (420) zu erhalten,
wobei die kryptographische Operation eine Add-Key- Operation (620) und eine nachgeschaltete Bytesubstitutionsoperation (420) mittels einer Bytesubstitutionstabelle umfaßt,
wobei die kryptographische Operation derart geändert wird, daß Adressen der Bytesubstitutionstabelle mit einem abgeleiteten Schlüssel verschlüsselt werden (710), und Daten mit einem dritten Schlüssel (414) verschlüsselt werden, um eine verschlüsselte Bytesubstitutionstabelle (420) zu erhalten, so daß die geänderte kryptographische Operation die Add-Key-Operation und nachgeschaltet die Bytesubstitutionsoperation mit der verschlüsselten Bytesubstitutionstabelle (420) als geänderte kryptographische Operation aufweist, und
wobei der abgeleitete Schlüssel durch eine Verknüpfung eines ersten Schlüssels (410) und eines zweiten Schlüssels (412) gebildet wird; und
einer Einrichtung (620, 420) zum Durchführen der geänderten kryptographischen Operation, um Ausgangsdaten der geänderten kryptographischen Operation zu erhalten;
einer Einrichtung zum Ändern (810) der Ursprungseingangsdaten (500) durch Verschlüsseln mit dem ersten Schlüssel (410), zum Ändern (450) eines Schlüssels für die Add-Round-Key-Operation durch Verschlüsseln mit dem zweiten Schlüssel (412), und zum Ändern (414) der Ausgangsdaten der geänderten kryptographischen Operation durch Verschlüsseln mit dem dritten Schlüssel (414), um die Ursprungsausgangsdaten (520) zu erhalten.
DE10149191A 2001-10-05 2001-10-05 Verfahren und Vorrichtung zum Ermitteln von Ursprungsausgangsdaten aus Ursprungseingangsdaten auf der Basis einer kryptographischen Operation Expired - Fee Related DE10149191C2 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE10149191A DE10149191C2 (de) 2001-10-05 2001-10-05 Verfahren und Vorrichtung zum Ermitteln von Ursprungsausgangsdaten aus Ursprungseingangsdaten auf der Basis einer kryptographischen Operation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10149191A DE10149191C2 (de) 2001-10-05 2001-10-05 Verfahren und Vorrichtung zum Ermitteln von Ursprungsausgangsdaten aus Ursprungseingangsdaten auf der Basis einer kryptographischen Operation

Publications (2)

Publication Number Publication Date
DE10149191A1 true DE10149191A1 (de) 2003-04-24
DE10149191C2 DE10149191C2 (de) 2003-12-18

Family

ID=7701526

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10149191A Expired - Fee Related DE10149191C2 (de) 2001-10-05 2001-10-05 Verfahren und Vorrichtung zum Ermitteln von Ursprungsausgangsdaten aus Ursprungseingangsdaten auf der Basis einer kryptographischen Operation

Country Status (1)

Country Link
DE (1) DE10149191C2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4002748B1 (de) * 2020-11-17 2023-08-16 Nxp B.V. Vorrichtung

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB327581A (en) * 1929-04-13 1930-04-10 Samuel Milne Improvements in paper pulp and like beating engines
EP0981223A2 (de) * 1998-08-20 2000-02-23 Kabushiki Kaisha Toshiba Vorrichtung zur Verschlüsselung/Entschlüsselung
GB2345229A (en) * 1998-12-23 2000-06-28 Motorola Ltd Encryption system resists differential power analysis attacks
WO2002003605A1 (en) * 2000-07-04 2002-01-10 Koninklijke Philips Electronics N.V. Substitution-box for symmetric-key ciphers

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100389902B1 (ko) * 1997-06-23 2003-09-22 삼성전자주식회사 차분해독법과선형해독법에대하여안전성을보장하는고속블럭암호화방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB327581A (en) * 1929-04-13 1930-04-10 Samuel Milne Improvements in paper pulp and like beating engines
EP0981223A2 (de) * 1998-08-20 2000-02-23 Kabushiki Kaisha Toshiba Vorrichtung zur Verschlüsselung/Entschlüsselung
GB2345229A (en) * 1998-12-23 2000-06-28 Motorola Ltd Encryption system resists differential power analysis attacks
WO2002003605A1 (en) * 2000-07-04 2002-01-10 Koninklijke Philips Electronics N.V. Substitution-box for symmetric-key ciphers

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
AKKAR,M.-L. u.a.: An Implementation of DES and AES. Secure against Some Attacks. In: Lecture Notes in Computer Science, Bd. 2162, Berlin, Springer, 20. Sept. 2001, S. 309-318 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4002748B1 (de) * 2020-11-17 2023-08-16 Nxp B.V. Vorrichtung

Also Published As

Publication number Publication date
DE10149191C2 (de) 2003-12-18

Similar Documents

Publication Publication Date Title
DE102005012098B4 (de) Datenchiffrierprozessor sowie AES-Chiffriersystem und AES-Chiffrierverfahren
DE102011088502B3 (de) Verfahren und Vorrichtung zur Absicherung von Blockchiffren gegen Template-Attacken
EP3219042B1 (de) Gehärtete white box implementierung 2
DE60222052T2 (de) Verschlüsselung gesichert gegen Angriffe durch die Analyse der Leistungsaufnahme (DPA)
DE60217260T2 (de) Datenverarbeitungs- und Verschlüsselungseinheit
DE602004013206T2 (de) Verfahren und diesbezügliche einrichtung zur hardwareorientierten umsetzung zwischen arithmetik- und boolscher zufallsmaskierung
EP2901611B1 (de) Seitenkanalgeschützte maskierung
DE60223337T3 (de) Verfahren zur gesicherten verschlüsselung und baustein zur ausführung eines solchen verschlüsselungsverfahrens
DE69911815T2 (de) Selbstkorrigierendes zufallsverschlüsselungssystem und -verfahren
EP1423786A2 (de) Vorrichtung und verfahren zum berechnen eines ergebnisses einer modularen exponentiation
DE60027163T2 (de) Gegenmassnahmenverfahren in einem elektronischen bauelement mit einem kryptosystem mit privatem schlüssel
DE60022840T2 (de) Verfahren zum sichern einer oder mehrerer elektronischer baugruppen, unter zuhilfenahme eines privatschlüssel-krypto-algorithmus, sowie elektronische baugruppe
EP3387636B1 (de) Kryptoalgorithmus mit schlüsselabhängigem maskiertem rechenschritt (sbox-aufruf)
DE60022974T2 (de) Vorrichtung zur Ausführung eines Blockverschlüsselungsalgorithmus mit Wiederholungsrunden
DE10328860B4 (de) Vorrichtung und Verfahren zum Verschlüsseln von Daten
DE102020000814A1 (de) Schlüsselgenerierung und PACE mit Sicherung gegen Seitenkanalangriffe
DE102004018874B4 (de) Verfahren und Vorrichtung zum Bestimmen eines Ergebnisses
EP3369205B1 (de) Alternative darstellung des krypto-algorithmus des
DE60034944T2 (de) Gegenmassnahmeverfahren in einer geheimen und dynamischen Verschlüsselungsalgorithmus ausführenden elektronischen Schaltung
EP3804209B1 (de) Verfahren mit safe-error-abwehrmassnahme
DE10149191C2 (de) Verfahren und Vorrichtung zum Ermitteln von Ursprungsausgangsdaten aus Ursprungseingangsdaten auf der Basis einer kryptographischen Operation
EP1615098A2 (de) Ausspähungsgeschütztes Berechnen eines maskierten Ergebniswertes
EP1573955B1 (de) Verschl sselungsverfahren
DE102014216392A1 (de) Symmetrisches Iteriertes Blockchiffrierverfahren und entsprechende Vorrichtung
DE19921633A1 (de) Verfahren zur Implementierung kryptographischer Algorithmen

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8304 Grant after examination procedure
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee