DE10149191C2 - 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
DE10149191C2
DE10149191C2 DE10149191A DE10149191A DE10149191C2 DE 10149191 C2 DE10149191 C2 DE 10149191C2 DE 10149191 A DE10149191 A DE 10149191A DE 10149191 A DE10149191 A DE 10149191A DE 10149191 C2 DE10149191 C2 DE 10149191C2
Authority
DE
Germany
Prior art keywords
changed
cryptographic operation
original
key
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.)
Expired - Fee Related
Application number
DE10149191A
Other languages
English (en)
Other versions
DE10149191A1 (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)

Description

Die vorliegende Erfindung bezieht sich auf die Kryptographie und insbesondere auf ein sicheres Konzept zum Ermitteln von Ursprungsausgangsdaten aus Ursprungseingangsdaten auf der Ba­ sis einer kryptographischen Operation.
Fig. 6 zeigt ein Übersichtsdiagramm für den AES- Kryptoalgorithmus, der auch als Rijndael-Algorithmus bezeich­ net wird. Der Rijndael-Algorithmus ist in dem Dokument "The Rjindael Block Cipher: AES Proposal" von Joan Daemen und Vin­ cent 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 ver­ tikale 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" (Hin­ zufügen des Schlüssels für eine Runde) bezeichnet. Diese Funktion wird durch die bei 620 dargestellten Kreise symboli­ siert. 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 durchge­ fü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 Nachschlagtabel­ le 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 Substitu­ tionsbyte auszugeben, das die multiplikative Inverse mit af­ finer Abbildung der Eingangsadresse ist. Die S-Box enthält keine geheimen Informationen, sondern kann im voraus berech­ net werden oder von einer öffentlich zugänglichen Stelle ab­ gerufen 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 Opera­ tionen 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 ei­ nem 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 krypto­ graphische Algorithmen und insbesondere auf den Kryptostan­ dard 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 Lei­ stungsanalyse) wird z. B. ein bekannter Klartext in den Algo­ rithmus eingespeist. Das Stromaufnahmeprofil der Verschlüsse­ lungsschaltung über der Zeit wird bei der Ausführung des kryptographischen Algorithmus beobachtet. In einem weiteren Schritt werden viele verschiedene Klartexte in den krypto­ graphischen Algorithmus eingespeist, um die Datenabhängigkeit der Stromaufnahme der den kryptographischen Algorithmus aus­ führenden Schaltung zu erkennen. Unter Verwendung von stati­ stischen Methoden werden die Stromaufnahmen für verschiedene Klartexte mit den verschiedenen Klartexten in Beziehung ge­ setzt, um Schlüsselinformationen über den Algorithmus zu ex­ trahieren.
Um die Abhängigkeit der Stromaufnahme der den kryptographi­ schen Algorithmus ausführenden Schaltung von den Klartextda­ ten zu verschleiern, existiert beispielsweise die Möglich­ keit, parallel zu der Schaltung, die den kryptographischen Algorithmus ausführt, eine andere Operation auszuführen, wel­ che 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üs­ selt und die Stromaufnahme betrachtet. Statt dessen wird zu­ sätzlich der gleiche Klartext viele Male verschlüsselt. Par­ allel dazu wird bei jeder Verschlüsselungsoperation des sel­ ben 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 Mitte­ lung sichtbar wird. Wenn die Stromaufnahme der Kryptoschal­ tung 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 An­ greifer deutlich verbessert wird.
Weitere Möglichkeiten zum Schutz des AES-Algorithmus bzw. insbesondere zum Schutz von kryptographischen Operationen be­ stehen dadurch, daß mittels eines Hardware-Moduls ein zeitli­ ches Jitter, beispielsweise in Form von sogenannten Random- Wait-States, oder eine Verschleierung des Stromprofils, bei­ spielsweise durch die Implementierung einer Curse-Funktion, realisiert werden.
Nachteilig an diesen Verfahren ist die Tatsache, daß zusätz­ liche 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 Tabellennach­ schlagoperationen wird vorgeschlagen, sowohl die Eingangsda­ ten in die Nachschlagstabelle 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 Ausgangs­ daten aus der Nachschlagtabelle sowohl beim Erzeugen der si­ cheren S-Box als auch beim tatsächlichen Verschlüsseln bear­ beitet werden müssen. Oftmals wird jedoch nicht die volle Si­ cherheit gebraucht, bzw. kann aus Gründen der begrenzten zur Verfügung stehenden Prozessorleistung des Kryptoprozessors diese komplette Hin- und Rückverschlüsselung der Eingangs­ adressen in die Nachschlagtabelle und der Ausgangsdaten aus der Nachschlagtabelle nicht durchgeführt werden. In einem solchen Fall muß daher komplett auf eine Verschlüsselung ver­ zichtet werden, was darin resultiert, daß überhaupt kein Schutz gegen die beschriebenen Angriffe implementiert werden kann.
Die Fachveröffentlichung "An Implementation of DES and AES, Secure against Some Attacks", M.-L. Akkar und C. Giraut, in: "Lecture Notes in Computer Science", Bd. 2162, Berlin, Springer, 20. Sept. 2001, Seiten 309-318, (Dokument D1), offenbart anhand des DES-Algorithmus zunächst die zu verarbeitenden Nachrichten mittels eines 64-Bit-Werts zu maskieren, und zwar vor der anfänglichen Permutation IP. Daher wird die anfängliche Permutation mit bereits verschlüsselten Daten durchgeführt. Die dann verschlüsselten Daten werden einer normalen Permutation auf die rechte Hälfte der Daten unterzogen und dann einer Erweiterungspermutation, in der der Schlüssel berücksichtigt wird. Die der Erweiterungspermutation unterzogenen Daten werden dann einer XOR-Verknüpfung mit einem Teil des ursprünglichen Schlüssels unterzogen. Die dann erhaltenen Daten werden einer SM-Box zugeführt, die im Hinblick auf eine normale S-Box verändert ist, und zwar durch eine invertierte Permutation sowie unter Verwendung zweier Schlüssel, die von dem ursprünglichen Schlüssel, mit dem die Nachricht vor der anfänglichen Permutation verschlüsselt worden ist, abhängen. Mit den Ausgangsdaten aus der SM-Box wird eine Permutation durchgeführt, die invers zu der Permutation ist, die zur Berechnung der modifizierten SM-Box eingesetzt worden ist.
Die EP 0 981 223 A2 offenbart eine Verschlüsselungs-/Entschlüsselungs-Vorrichtung, bei der eine Maske und eine invertierte Maske für jede Rundenfunktion in einem Datenscrambler erzeugt werden. Jedes Mal, wenn eine Verschlüsselung durchgeführt wird, wird eine Maske des Paars ausgewählt. Ferner wird eine Exklusiv-ODER- Verknüpfung einer Eingabe in eine S-Box und der ausgewählten Maske berechnet. Zusätzlich wird eine Exklusiv-ODER-Verknüpfung der Ausgabe von der S-Box und den Bits der inversen Permutation P-1 der Maske berechnet. Diese Exklusiv-ODER- Verknüpfungen werden im voraus berechnet und als Tabelle in der S-Box gespeichert. Diese im voraus berechneten Exklusiv-ODER-Berechnungen werden nicht in die eigentliche S-Box "eingearbeitet", sondern als Zusatzelement verwendet.
Die Aufgabe der vorliegenden Erfindung besteht darin, ein si­ chereres 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 14 oder durch eine Vorrichtung gemäß Patentanspruch 13 oder 17 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 kryptographi­ sche Operation selbst eingewirkt wird. Erfindungsgemäß wird die kryptographische Operation mittels einer Vorwärtsände­ rungsvorschrift geändert, um eine geänderte kryptographische Operation zu erhalten. Um jedoch keine falschen Algorithmus­ daten aufgrund der geänderten kryptographischen Operation zu erzeugen, wird ferner auf die Verschlüsselungseingangsdaten und/oder auf die Ausgangsdaten der geänderten kryptographi­ schen Operation gemäß einer Rückwärtsänderungsvorschrift ein­ gewirkt, damit aus Ursprungseingangsdaten auch Ursprungsaus­ gangsdaten erzeugt werden.
Bei einem ersten Ausführungsbeispiel der vorliegenden Erfin­ dung wird die kryptographische Operation mittels der Vor­ wärtsänderungsvorschrift geändert. Um solche Ursprungsaus­ gangsdaten zu erhalten, die die unveränderte kryptographische Operation aus den Ursprungseingangsdaten liefern würde, wer­ den die Ursprungseingangsdaten derart geändert, daß die geän­ derten Ursprungseingangsdaten zusammen mit der geänderten kryptographischen Operation die Ursprungsausgangsdaten lie­ fern.
Bei einem weiteren Ausführungsbeispiel der vorliegenden Er­ findung werden die Ursprungseingangsdaten direkt in die geän­ derte kryptographische Operation eingespeist. Die Ausgangsda­ ten 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 Vor­ wärtsänderungsvorschrift kann entweder in einer Eingangs­ adressenverwürfelung der S-Box oder in einer Ausgangsdaten­ verwürfelung der S-Box bestehen.
Je nach Vorwärtsänderungsvorschrift, d. h. ob nur die Ein­ gangsadressen 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 Än­ derung der kryptographischen Operation wieder rückgängig zu machen.
Im Gegensatz zum Stand der Technik, bei dem zur Stromprofil­ verschleierung parallel zur eigentlichen kryptographischen Operation Dummy-Operationen etc. ausgeführt werden, wird er­ findungsgemäß direkt auf die kryptographische Operation ein­ gewirkt. Ein Angreifer, der seinen Angriffen eine bekannte S- Box, d. h. eine bekannte kryptographische Operation, zugrun­ delegt, wird nicht zum Ziel gelangen, da die kryptographische Operation nicht ausgeführt wird, sondern eine gemäß der Vor­ wärtsänderungsvorschrift geänderte kryptographische Operati­ on. Damit wird ein Angriff auf den Kryptoalgorithmus er­ schwert, da der Angreifer zunächst erkennen muß, ob überhaupt eine Änderung der kryptographischen Operation stattfindet, und darüber hinaus, welche Vorwärtsänderungsvorschrift ausge­ führt wird.
Es sei darauf hingewiesen, daß anhand des Zusammenhangs zwi­ schen Ursprungseingangsdaten und Ursprungsausgangsdaten nicht zu erkennen ist, ob eine geänderte kryptographische Operation oder die - von einem Angreifer erwartete - unveränderte kryp­ tographische Operation ausgeführt wird, da die Vorwärtsände­ rungsvorschrift und die mit derselben korrespondierende Rück­ wärtsänderungsvorschrift unter mathematischen Gesichtspunkten nach "außen" nicht sichtbar sind, d. h., da das erfindungsge­ mäß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änder­ te kryptographische Operation ausgeführt wird, ein DPA- Angriff mit Mittelung nicht mehr ausführbar ist, da die Vor­ wä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änderungs­ vorschrift und der entsprechenden Rückwärtsänderungsvor­ schrift, die, wenn ein sehr hoher Schutzstandard erwünscht ist, besonders häufig und sogar bei jeder einzelnen Ausfüh­ rung 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 be­ schriebenen 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 Eingangs­ daten, beispielsweise einem unverschlüsselten Text und einem Schlüssel, nicht mehr identische Berechnungen durchgeführt werden.
Solche identischen Berechnungen werden im Regelfall zur Ver­ besserung 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 differen­ tiellen Angriffen, da bei der Differenzbildung verschiedener Attacken eine konstante kryptographische Funktion vorausge­ setzt werden muß. Auch ein einfacher Angriff, beispielsweise ein SPA, wird durch das erfindungsgemäße Konzept ohne Kennt­ nis 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 er­ wü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 Ur­ sprungseingangsdaten oder die Ausgangsdaten der geänderten kryptographischen Operation mittels einer der Vorwärtsände­ rungsvorschrift entsprechenden Rückwärtsänderungsvorschrift zu bearbeiten, um aus den Ursprungseingangsdaten Ur­ sprungsausgangsdaten zu erhalten. Ein hoher Schutz wird da­ durch erreicht, dass eine hinsichtlich Adressen und Daten verschlüsselte sichere S-Box erzeugt wird, die so verschlüs­ selt ist, dass auch die Add-Round-Key-Operation mit ver­ schlüsselten Daten durchgeführt werden kann. Dies wird durch Bereitstellen von drei Schlüsseln erreicht, wobei die Adres­ sen der S-Box aus einer Kombination von zwei Schlüsseln ver­ schlü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 zu­ gleich die Rechenleistung der Schaltung von großer Bedeutung, so muß nicht bei jeder Ausführung der kryptographischen Ope­ ration eine andere Vorwärtsänderungsvorschrift genommen wer­ den. Statt dessen genügt es dann, nur zu bestimmten Interval­ len eine andere geänderte kryptographische Operation zu neh­ men, d. h. die Vorwärtsänderungsvorschrift und die dazugehö­ rige Rückwärtsänderungsvorschrift von Zeit zu Zeit zu modifi­ zieren. 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 dar­ in, 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 Zu­ fallszahlengenerator (RNG; RNG = Random Number Generator) er­ halten werden könnte, der typischerweise auf jeder modernen Chipkarte oder Smart Card vorhanden ist.
Ein weiterer Vorteil der vorliegenden Erfindung besteht dar­ in, daß die Sicherheit nicht mit komplizierten Hardware- Schaltungen erkauft werden muß, sondern z. B. mittels einfa­ cher 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 Zufallszahlengenera­ tor geliefert werden.
Bei einem weiteren bevorzugten Ausführungsbeispiel wird, um die Sicherheit gegen Angriffe zu verstärken, sowohl eine Ver­ schlü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 ver­ schlüsselte Bytesubstitutionstabelle, zu erzeugen. Die Adres­ sen werden mit einem Schlüssel verschlüsselt, der aus einer Verknüpfung eines ersten Schlüssels und eines zweiten Schlüs­ sels abgeleitet ist, während die Daten der Bytesubstitutions­ tabelle 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 er­ sten und des zweiten Schlüssels werden XOR-Operationen bevor­ zugt. Damit ist es möglich, mit einer verschlüsselten Byte­ substitutionstabelle 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 Anmeldung 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 Ursprungsaus­ gangsdaten aus Ursprungseingangsdaten auf der Basis einer kryptographischen Operation;
Fig. 2 eine erfindungsgemäße Vorrichtung gemäß einem er­ sten Ausführungsbeispiel;
Fig. 3 eine erfindungsgemäße Vorrichtung gemäß einem zwei­ ten Ausführungsbeispiel;
Fig. 4a eine erfindungsgemäße Vorrichtung gemäß einem drit­ ten 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 krypto­ graphischen 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 Aus­ gangsdaten der S-Box gemäß einer Rückwärtsände­ rungsvorschrift bearbeitet werden.
Fig. 1 zeigt ein Übersichtsdiagramm einer erfindungsgemäßen Vorrichtung. Im Gegensatz zu einem bekannten Verfahren, bei dem Ursprungseingangsdaten 500 in eine kryptographische Ope­ ration 510 eingespeist werden, um Ursprungsausgangsdaten 520 zu erhalten, wird gemäß der vorliegenden Erfindung die ur­ sprüngliche kryptographische Operation, die in Fig. 5 mit 510 bezeichnet ist, in eine Einrichtung 100 zum Ändern der ur­ sprü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 krypto­ graphischen Operation eingespeist.
Die geänderte kryptographische Operation kann eingangsseitig einen Eingangsmodusschalter 130 und ausgangsseitig einen Aus­ gangsmodusschalter 140 umfassen. Wie es anhand der Fig. 2 bis 4 näher erläutert werden wird, kann die geänderte krypto­ graphische Operation als Eingangsdaten die Ursprungseingangs­ daten 500 oder gemäß einer Rückwärtsänderungsvorschrift geän­ derte Ursprungseingangsdaten 150 erhalten.
Die Ursprungsausgangsdaten sind, je nach Stellung des Aus­ gangsmodusschalters 140, entweder die Ausgangsdaten der Ein­ richtung 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 Vor­ richtung eine Einrichtung 170 zum Ändern der Ursprungsein­ gangsdaten und/oder der Ausgangsdaten der geänderten krypto­ graphischen 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änderungs­ vorschrift 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 Rechenlei­ stung 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 aus­ reicht und Rechenleistung mehr zählt, muß die Vorwärtsände­ rungsvorschrift 120 und damit einhergehend die Rückwärtsände­ rungsvorschrift 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 erfin­ dungsgemäße Vorrichtung gemäß einem ersten Ausführungsbei­ spiel der vorliegenden Erfindung darzustellen. Die Einrich­ tung 120 ist angeordnet, um eine geänderte kryptographische Operation auszuführen, die gemäß einer Vorwärtsänderungsvor­ schrift 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 zu­ sammen 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 Aus­ gangsdaten der geänderten kryptographischen Operation zu er­ halten, welche in eine Einrichtung 170b zum Ausführen einer Rückwärtsänderungsvorschrift eingespeist werden, um die Ur­ sprungsausgangsdaten 520 zu erhalten.
Bei jedem der in den Fig. 2 und 3 gezeigten Verfahren werden aus den selben Ursprungseingangsdaten 500, die den Ur­ sprungseingangsdaten von Fig. 5 entsprechen, die selben Ur­ sprungsausgangsdaten 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 be­ kannten Vorrichtung, derart, daß DPA-Attacken erschwert wer­ den, da der Angreifer zunächst die Vorwärtsänderungsvor­ schrift und selbstverständlich auch die Rückwärtsänderungs­ vorschrift ermitteln muß, um auf die ursprüngliche krypto­ graphische Operation schließen zu können.
Die Sicherheit wird weiter erhöht, wenn die Vorwärtsände­ rungsvorschrift 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 kryptographi­ schen Operation eingegangen. Die ursprüngliche kryptographi­ sche Operation ist bei dem in Fig. 7 gezeigten Ausführungs­ beispiel die in einem Speicher 1 gespeicherte S-Box, die die ursprüngliche kryptographische Operation 510 von Fig. 5 re­ prä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üngli­ chen S-Box werden ferner mittels einer Vorwärtsänderungsvor­ schrift 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, ent­ weder bezüglich der Adressen oder der Daten bezüglich der ur­ sprü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 vor­ liegenden 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ände­ rungsvorschrift geänderten ursprünglichen S-Box 510. Ur­ sprungseingangsdaten 500 werden mittels einer Rückwärtsände­ rungsvorschrift, 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 be­ züglich der Terminologie in Fig. 4 geänderte Ursprungsein­ gangsdaten zu erzeugen, die in die geänderte S-Box 120c ein­ gespeist werden, um Ausgangsdaten der geänderten krypto­ graphischen 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" be­ zeichnet ist und in Fig. 8 aus einem XOR-Gatter 830 und einem XOR-Wert 2 840 besteht, verarbeitet, um wieder die Ur­ sprungsausgangsdaten 520 von Fig. 4 zu erhalten.
Aufgrund der Eigenschaft der XOR-Funktion, daß eine zweimali­ ge Ausführung unter Verwendung des selben Schlüssels wieder die ursprünglichen Daten ergibt, wird die XOR-Funktion bevor­ zugt.
Wenn in Fig. 7 die Funktionalität der Blöcke 740 und 750 weg­ gelassen werden, würde dies dem in Fig. 2 gezeigten Fall ent­ sprechen, d. h. die Vorwärtsänderungsvorschrift würde den Blöcken 710 und 730 entsprechen, während die Rückwärtsände­ rungsvorschrift 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 entspre­ chen, d. h. die Ursprungseingangsdaten werden direkt in die geänderte S-Box 120b eingespeist, während die durch die Blöc­ ke 740 und 750 bewirkten Operationen bezüglich der ursprüng­ lichen S-Box verändert sind. Die Vorwärtsänderungsvorschrift wäre in diesem Fall die durch die Blöcke 740 und 750 ausge­ fü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änderungsvor­ schrift zu der Vorwärtsänderungsvorschrift identisch ist, was auf die bereits erwähnte Eigenschaft der XOR-Funktion zurück­ zufü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 je­ doch derart ausgestaltet sein muß, daß die geänderte krypto­ graphische Operation entweder mit geänderten Ursprungsein­ gangsdaten Ursprungsausgangsdaten ergibt oder mit Ur­ sprungseingangsdaten und geänderten Ausgangsdaten der geän­ derten kryptographischen Operation die Ursprungsausgangsdaten ergibt.
Bei dem in den Fig. 7 und 8 gezeigten Ausführungsbeispiel, bei dem die ursprüngliche kryptographische Operation eine be­ kannte 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 ge­ heimen und damit für den Angreifer interessanten Schlüsselda­ ten einen potentiellen Angriffspunkt liefert. Wie es ausge­ fü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 ver­ wendet, sondern es wird je nach Bedarf der XOR-Wert 1 und/oder der XOR-Wert 2 verändert, derart, daß für verschie­ dene Byte-Substitutionen verschiedene geänderte S-Boxen vor­ handen sind. Diese Randomisierung kann, wie es ausgeführt worden ist, an der Adreßseite (Fig. 2) oder auf der Datensei­ te (Fig. 3) oder auf beiden Seiten (Fig. 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 Speicher­ adresse 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 740 ver­ schleiert. 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 zu­ rückgreift.
Die Operation mittels der Blöcke 830, 840 kann entweder un­ mittelbar hinter der Byte-Substitution 640 von Fig. 6 oder aber erst nach der Shift-Row-Operation 650 von Fig. 6 erfol­ gen.
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üs­ selt, um Daten einer sicheren S-Box 420 zu erhalten. Im Ge­ gensatz zu dem in Fig. 7 gezeigten Ausführungsbeispiel, bei dem entweder die Daten oder die Adressen verschlüsselt wer­ den, 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üs­ selung 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üsselungs­ schlüssels 410 und des zweiten Verschlüsselungsschlüssels 412 durchgeführt, wobei der tatsächliche Schlüssel zum Verschlüs­ seln 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 das 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. mas­ kierten 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 ver­ schlüsselten Daten auszuführen. Hierzu werden die zu ver­ schlüsselnden Eingangsdaten (TN 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 Einfach­ heitsgrü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 Verwen­ dung des XOR-Werts 412 verschlüsselt. Die Ausgangsdaten der verschlüsselten Add-Key-Operation werden dann der Bytesubsti­ tutionsoperation 420 zugeführt. Die Ausgangsdaten der Byte­ substitutionsoperation 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üssel­ ten Daten durchgeführt wird. Am Ausgang des XOR-Glieds 830 liegen somit wieder die Ursprungsausgangsdaten 520 vor, je­ doch nicht, wie in Fig. 8 gezeigt, der Bytesubstitutionsope­ ration 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 Bytesub­ stitutionstabelle 420 (Fig. 4a) drei verschiedene Schlüssel verwendet, die in der beschriebenen Art und Weise beim Durch­ fü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 Ausgangsda­ ten (XOR-Wert 3) eingesetzt werden. Es sei darauf hingewie­ sen, 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 zwei­ malige Anwendung der XOR-Funktion wieder das ursprüngliche Ergebnis ergibt. Mit größerem Schaltungsaufwand können jedoch auch andere Verschlüsselungsoperationen verwendet werden.

Claims (17)

1. Verfahren zum Ermitteln von Ursprungsausgangsdaten (520) aus Ursprungseingangsdaten (500) auf der Basis einer kryp­ tographischen Operation (510) mit folgenden Schritten:
Ändern der kryptographischen Operation (510) gemäß einer Vor­ wärtsänderungsvorschrift (100), um eine geänderte kryp­ tographische 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ände­ rungsvorschrift (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 Ur­ sprungsausgangsdaten liefert, oder
daß die geänderte kryptographische Operation zusammen mit den geänderten Ursprungseingangsdaten die Ur­ sprungsausgangsdaten (520) liefert,
wobei die kryptographische Operation einen Zugriff mittels einer Eingangsadresse auf eine ursprüngliche Tabelle (510) umfaßt, um einen Ausgangswert zu erhalten, der der Eingangs­ adresse zugeordnet ist,
wobei 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 Ein­ gangsadresse der ursprünglichen Tabelle geändert ist, während die Ausgangswerte der geänderten Tabelle mit den Ausgangswer­ ten der ursprünglichen Tabelle übereinstimmen, oder
wobei 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 Ausgangs­ werten der ursprünglichen Tabelle geändert sind, während die Eingangsadressen mit den Eingangsadressen der ursprünglichen Tabelle übereinstimmen, und
wobei die Rückwärtsänderungsvorschrift (810, 820), um die ge­ änderten Ursprungsausgangsdaten (520) aus den Ursprungsein­ gangsdaten zu erhalten, zu der Vorwärtsänderungsvorschrift (710, 730) identisch ist.
2. Verfahren gemäß Anspruch 1, das zu einem ersten Zeit­ punkt 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änderungsvor­ schrift 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än­ derungsvorschrift von einer Zufallszahl abhängt und bei dem die andere Vorwärtsänderungsvorschrift von einer anderen Zu­ fallszahl 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 unterschei­ det, 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 ei­ nem Prozessor ausgeführt wird, wobei zwischen dem ersten Zeitpunkt und dem späteren Zeitpunkt das Verfahren eine An­ zahl von Malen mit der einen Änderungsvorschrift durchgeführt wird, wobei die Anzahl von Malen groß ist, wenn hohe Prozes­ sorressourcen vorhanden sind, und wobei die Anzahl von Malen klein ist, wenn niedrige Prozessorressourcen vorhanden sind.
7. Verfahren gemäß Anspruch 1, bei dem die Tabelle die S-Box des AES-Algorithmus nach Rijn­ dael ist.
8. Verfahren gemäß einem der Ansprüche 1 bis 7, bei dem die geänderte kryptographische Operation eine Add-Key-Operation oder eine Shift-Row-Funktion (650) des AES-Algorithmus nach Rijndael umfaßt.
9. Verfahren gemäß einem der Ansprüche 1 bis 8, bei dem die kryptographische Operation ein Teil eines Krypto­ algorithmus ist und bei dem die Eingangsdaten einen Schlüssel des Kryptoalgorithmus oder Informationen, die von dem Schlüs­ sel des Kryptoalgorithmus abgeleitet sind, umfassen.
10. Verfahren gemäß Anspruch 9, bei dem der Kryptoalgo­ rithmus ein symmetrischer Kryptoalgorithmus ist.
11. Verfahren gemäß einem der Ansprüche 1 bis 10,
bei dem der Schritt des Änderns der kryptographischen Opera­ tion den Schritt des Speicherns der geänderten Tabelle in ei­ nem flüchtigen Speicher eines Prozessors, der die Ur­ sprungsausgangsdaten aus den Ursprungseingangsdaten ermit­ telt, umfaßt, und
bei dem im Schritt des Durchführens der geänderten kryp­ tographischen Operation auf den flüchtigen Speicher zugegrif­ fen wird.
12. Verfahren gemäß Anspruch 11,
bei dem die ursprüngliche Tabelle in einem nicht-flüchtigen Speicher gespeichert ist, und
bei dem im Schritt des Änderns der kryptographischen Operati­ on auf den nicht-flüchtigen Speicher zugegriffen wird.
13. 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 erhal­ ten;
einer Einrichtung zum Durchführen (120) der geänderten kryp­ tographischen Operation, um Ausgangsdaten der geänderten kryptographischen Operation zu erhalten;
einer Einrichtung zum Ändern (170a; 170b) der Ursprungsein­ gangsdaten (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 defi­ niert ist,
daß entweder die geänderte kryptographische Operation zusammen mit den Ursprungseingangsdaten (500) die Ur­ sprungsausgangsdaten liefert, oder
daß die geänderte kryptographische Operation zusammen mit den geänderten Ursprungseingangsdaten die Ur­ sprungsausgangsdaten (520) liefert,
wobei die kryptographische Operation einen Zugriff mittels einer Eingangsadresse auf eine ursprüngliche Tabelle (510) umfaßt, um einen Ausgangswert zu erhalten, der der Eingangs­ adresse zugeordnet ist,
wobei 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 Ein­ gangsadresse der ursprünglichen Tabelle geändert ist, während die Ausgangswerte der geänderten Tabelle mit den Ausgangswer­ ten der ursprünglichen Tabelle übereinstimmen, oder
wobei 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 Ausgangs­ werten der ursprünglichen Tabelle geändert sind, während die Eingangsadressen mit den Eingangsadressen der ursprünglichen Tabelle übereinstimmen, und
wobei die Rückwärtsänderungsvorschrift (810, 820), um die ge­ änderten Ursprungsausgangsdaten (520) aus den Ursprungsein­ gangsdaten zu erhalten, zu der Vorwärtsänderungsvorschrift (710, 730) identisch ist.
14. Verfahren zum Ermitteln von Ursprungsausgangsdaten (520) aus Ursprungseingangsdaten (500) auf der Basis einer kryp­ tographischen Operation (620, 420; 650) mit folgenden Schrit­ ten:
Ändern der kryptographischen Operation (420), um eine geän­ derte kryptographische Operation (420) zu erhalten,
wobei die kryptographische Operation eine Add-Key- Operation (620) und nachgeschaltete Bytesubstitutions­ operation (420) mittels einer Bytesubstitutionstabelle umfaßt,
wobei die kryptographische Operation derart geändert wird, daß Adressen der Bytesubstitutionstabelle mit ei­ nem abgeleiteten Schlüssel verschlüsselt werden (710), und Daten mit einem dritten Schlüssel (414) verschlüs­ selt werden, um eine verschlüsselte Bytesubstitutionsta­ belle (420) zu erhalten, so daß die geänderte kryp­ tographische Operation die Add-Key-Operation und nachge­ schaltet die Bytesubstitutionsoperation mit der ver­ schlüsselten Bytesubstitutionstabelle (420) als geänder­ te kryptographische Operation aufweist, und
wobei der abgeleitete Schlüssel durch eine Verknüpfung eines ersten Schlüssels (410) und eines zweiten Schlüs­ sels (412) gebildet wird,;
Ändern (810) der Ursprungseingangsdaten (500) durch Ver­ schlü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 kryptographi­ schen Operation durch Verschlüsseln mit dem dritten Schlüssel (414), um die Ursprungsausgangsdaten (520) zu erhalten.
15. Verfahren nach Anspruch 14, bei dem die kryptographische Operation ferner eine Shift-Row-Operation (650) umfaßt, die der Bytesubstitutionsoperation nachgeschaltet ist.
16. Verfahren nach Anspruch 14 oder 15, bei dem zum Ver­ schlü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.
17. 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 Bytesubstituti­ onsoperation (420) mittels einer Bytesubstitutionstabel­ le umfaßt,
wobei die kryptographische Operation derart geändert wird, daß Adressen der Bytesubstitutionstabelle mit ei­ nem abgeleiteten Schlüssel verschlüsselt werden (710), und Daten mit einem dritten Schlüssel (414) verschlüs­ selt werden, um eine verschlüsselte Bytesubstitutionsta­ belle (420) zu erhalten, so daß die geänderte kryp­ tographische Operation die Add-Key-Operation und nachge­ schaltet die Bytesubstitutionsoperation mit der ver­ schlüsselten Bytesubstitutionstabelle (420) als geänder­ te kryptographische Operation aufweist, und
wobei der abgeleitete Schlüssel durch eine Verknüpfung eines ersten Schlüssels (410) und eines zweiten Schlüs­ sels (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 kryptographi­ schen 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 DE10149191A1 (de) 2003-04-24
DE10149191C2 true 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)

Families Citing this family (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
GB2327581A (en) * 1997-06-23 1999-01-27 Samsung Electronics Co Ltd Block cypher resists differential or linear cryptoanalysis
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
GB327581A (en) * 1929-04-13 1930-04-10 Samuel Milne Improvements in paper pulp and like beating engines

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2327581A (en) * 1997-06-23 1999-01-27 Samsung Electronics Co Ltd Block cypher resists differential or linear cryptoanalysis
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 *

Also Published As

Publication number Publication date
DE10149191A1 (de) 2003-04-24

Similar Documents

Publication Publication Date Title
EP3219042B1 (de) Gehärtete white box implementierung 2
DE102005012098B4 (de) Datenchiffrierprozessor sowie AES-Chiffriersystem und AES-Chiffrierverfahren
EP2605445B1 (de) Verfahren und Vorrichtung zur Absicherung von Blockchiffren gegen Template-Attacken
DE60222052T2 (de) Verschlüsselung gesichert gegen Angriffe durch die Analyse der Leistungsaufnahme (DPA)
DE602004013206T2 (de) Verfahren und diesbezügliche einrichtung zur hardwareorientierten umsetzung zwischen arithmetik- und boolscher zufallsmaskierung
EP1668515B1 (de) Wortindividuelle schlüsselerzeugung
EP2901611B1 (de) Seitenkanalgeschützte maskierung
DE69911815T2 (de) Selbstkorrigierendes zufallsverschlüsselungssystem und -verfahren
DE112011102765T5 (de) Vorrichtung und Verfahren für Blockverschlüsselungsverfahren für unsichere Umgebungen
DE102009000869A1 (de) Verfahren und Vorrichtung zur manipulationssicheren Übertragung von Daten
DE102015015953B3 (de) Kryptoalgorithmus mit schlüsselabhängigem maskiertem Rechenschritt (SBOX-Aufruf)
DE602004003675T2 (de) Sicherheitsgegenmassnahmen gegen Angriffe durch Stromverbrauchsanalysen
DE102004018874B4 (de) Verfahren und Vorrichtung zum Bestimmen eines Ergebnisses
DE10328860B4 (de) Vorrichtung und Verfahren zum Verschlüsseln von Daten
EP3369205B1 (de) Alternative darstellung des krypto-algorithmus des
DE10149191C2 (de) Verfahren und Vorrichtung zum Ermitteln von Ursprungsausgangsdaten aus Ursprungseingangsdaten auf der Basis einer kryptographischen Operation
DE60213327T2 (de) Auf einem Blockverschlüsselungsalgorithmus mit Rundenwiederholung basiertes Verfahren und Vorrichtung zur Ausführung des Verfahrens
DE102018006313A1 (de) Verfahren mit Safe-Error-Abwehrmaßnahme
DE19921633A1 (de) Verfahren zur Implementierung kryptographischer Algorithmen
DE10136303A1 (de) Verfahren und Vorrichtung zum Ausführen einer Bytesubstitutionsoperation des AES-Algorithmus nach Rijndael
DE102020129058B3 (de) Datenverarbeitungseinrichtung und verfahren zum kryptographischen verarbeiten von daten
WO1997032417A1 (de) Verfahren zum generieren eines prüfworts für eine bitfolge zur überprüfung der integrität und authentizität der bitfolge
DE102004001659B4 (de) Vorrichtung und Verfahren zum Konvertieren einer ersten Nachricht in eine zweite Nachricht
DE112005001837B4 (de) Verfahren zum Schutz von Schlüsseln
EP1588518A1 (de) Vorrichtung und verfahren zum berechnen von verschl sselten daten aus unverschl sselten daten oder von unversch sse lten daten aus verschl sselten daten

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