DE60222052T2 - Verschlüsselung gesichert gegen Angriffe durch die Analyse der Leistungsaufnahme (DPA) - Google Patents

Verschlüsselung gesichert gegen Angriffe durch die Analyse der Leistungsaufnahme (DPA) Download PDF

Info

Publication number
DE60222052T2
DE60222052T2 DE60222052T DE60222052T DE60222052T2 DE 60222052 T2 DE60222052 T2 DE 60222052T2 DE 60222052 T DE60222052 T DE 60222052T DE 60222052 T DE60222052 T DE 60222052T DE 60222052 T2 DE60222052 T2 DE 60222052T2
Authority
DE
Germany
Prior art keywords
xor
encryption
fixed
random number
input
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 - Lifetime
Application number
DE60222052T
Other languages
English (en)
Other versions
DE60222052D1 (de
Inventor
Koichi Kawasaki-shi Ito
Masahiko Kawasaki-shi Takenaka
Naoya Kawasaki-shi Torii
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of DE60222052D1 publication Critical patent/DE60222052D1/de
Application granted granted Critical
Publication of DE60222052T2 publication Critical patent/DE60222052T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • 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/12Details relating to cryptographic hardware or logic circuitry

Landscapes

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

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich auf ein Informationsverschlüsselungsverfahren und insbesondere auf eine Sicherheitstechnik der Verschlüsselung gegen Analysierung zwecks Entschlüsselung, allgemein Energie-Analyse-Angriff genannt.
  • HINTERGRUND DER ERFINDUNG
  • Ein Verschlüsselungssystem umfaßt im allgemeinen ein Schlüsselsystem mit öffentlichem Schlüssel und ein Schlüsselsystem mit gemeinsamem Schüssel. Das Schlüsselsystem mit gemeinsamem Schlüssel verwendet den selben geheimen Schlüssel sowohl für die Verschlüsselung als auch die Entschlüsselung. Chiffrierter Text kann sicher dadurch übertragen werden, daß der geheime Schlüssel zwischen einem Verwender einer Übertragungsvorrichtung und einem Verwender eines Empfängers geteilt wird, während der Schlüssel vor Dritten geheim gehalten wird. 1 zeigt ein Beispiel einer Verschlüsselung mit einem gemeinsamen geheimen Schlüssel bei einer Smartcard 10. In der 1 verschlüsselt die Smartcard 10 eingegebenen Klartext in ihrer Verschlüsselungseinheit mit einem geheimen gemeinsamen Schlüssel in einer bekannten Art und Weise, um chiffrierten Text zur Verfügung zu stellen.
  • Die Analyse zur Entschlüsselung berechnet die geheime Information einschließlich eines geheimen Schlüssels anhand der verfügbaren Informationen wie z.B. chiffriertem Text u.dgl. Ein Energie-Analyse-Angriff, der einen Weg der Analyse zur Entschlüsselung darstellt, ist beschrieben in Paul Kocher, Joshua Jaffe und Benjamin Jun: "Differential Power Analysis" in: Proceedings of Advances in Cryptology – CRYPTO'99, Springer Verlag, 1999, Seiten 388-397. Der Energie-Analyse-Angriff sammelt und analysiert abgeleitete elektrische Stromdaten, wenn verschieden Eingabedaten einem Bordverschlüsselungsprozessor einer Vorrichtung wie z.B. einer Smartcard zur Verfügung gestellt werden, um die Schlüsselinformation in dem Verschlüsselungsprozessor zu berechnen. Der Energieanalyseangriff kann sowohl auf die Verschlüsselung mit öffentlichem Schlüssel auch als die Verschlüsselung mit geheimem Schlüssel angewandt werden.
  • Der Energieanalyseangriff umfaßt eine einfache Energieanalyse (Simple Power Analysis – SPA) und eine Differentialanalyse (Differential Power Analysis – DPA). Bei der SPA wird ein geheimer Schlüssel aus den Charakteristiken eines Satzes von abgeleiteten elektrischen Energiedaten des Verschlüsselungsprozessors berechnet. Bei der DPA wird ein geheimer Schlüssel aus der Analyse der Unterschiede zwischen einer Anzahl von Sätzen von Energiedaten berechnet. Allgemein ist die DPA leistungsfähiger.
  • Beispielsweise wird die DPA für die Verschlüsselung mit öffentlichem Schlüssel wie z.B. die RSA und ähnliches beschrieben in Thomas S. Messerges, Ezzy A. Dabbish und Robert H. Sloan: "Power Analysis Attacks of Modular Exponentiation in Smartcards", Cryptographic Hardware and Embedded Systems (CHES'99), Springer Verlag, Seiten 144-157. Die SPA und DPA für die DES (Data Encryption Standard"-Datenverschlüsselungstandartd, die den derzeitigen Standard der Verschlüsselungssysteme mit gemeinsamen Schlüssel darstellt, ist beschrieben in Paul Kocher, Joshua Jaffe und Benjamin Jun: "Differential Power Analysis", in: Proceedings of Advances in Cryptology – CRYPTO'99, Springer Verlag, 1999, Seiten 388-397. Die DPA für das Rijndael-Verfahren, das ein neuer Standard bei Verschlüsselungssystemen mit gemeinsamen Schlüssel sein könnte, ist z.B. beschrieben in S. Chari, C. Jutla, J.R. Rao und P. Rohatgi: "An Cautionary Note Regarding Evalutation of AES Candidates an Smart-Cards", Second Advanced Encrcryption Standard Candidate Conference, März 1999.
  • Daher erzeugt die DPA Interesse als ein besonders effektives Verfahren für den Energieanalyseangriff, und verschiedene DPA-Verfahren für die Analyse geheimer Schlüssel wurden entwickelt. Andererseits wurden Techniken zum Schutz gegen die DPA für die Analyse geheimer Schlüssel entwickelt.
  • Nachstehend beschrieben ist eine konventionelle typische Konfiguration für die Verschlüsselung mit gemeinsamem Schlüssel, auf welche DPA angewandt werden kann. Die 2, 3 und 4 zeigen ein Schlüssel-XOR (exklusives ODER), eine lineare Information bzw. eine nichtlineare Transformation, die Operationen sind, die bei der üblichen Verschlüsselung mit gemeinsamem Schlüssel verwendet werden.
  • In der 2 stellt das Schlüssel-XOR einer resultierende Ausgabe Xi durch unterziehen von Eingabedaten Xi einer XOR-Operation mit der Schlüsselinformation Ki zur Verfügung. (Der Operator "XOR" wird durch ein Symbol einer Kombination eines und eines "+" in den beigefügten Zeichnungen und den verwendeten mathematischen Formeln und Gleichungen dargestellt). In 3 stellt die lineare Transformation L eine linear transformierte Ausgabe Zi = L(xi) für Eingabedaten Xi zur Verfügung, wobei L (x XOR y) = L (x) XOR L (y) für willkürliche x und y ist. Die lineare Transformation umfaßt eine Bit-Permutation, eine Matrixoperation u.dgl. In 4 transformiert die nichtlineare Transformation W nichtlinear die Eingabedaten Xi, um eine Ausgabe Zi = W (Xi) zur Verfügung zu stellen, wobei W (x XOR y) nicht gleich W (x) XOR W (y) für willkürliche x und y ist. Eine typische nichtlineare Transformation verwendet oft nichtlineare Transformationstabellen S-Boxen, teilt eine Eingabe X in die Anzahl u von Elementen als X = {xu-1, ... w1, x0} (wobei u eine natürliche Zahl ist), verwendet S-Boxen, wobei wi's (i = 0, 1, ... u), um jede Operation zi = wi(xi) auszuführen und produziert eine Ausgabe Z als einen kombinierten Wert Z = (zu-1 ... z1 z0).
  • Bei der typischen Verschlüsselung mit gemeinsamem Schlüssel ist jede Durchgangsfunktion durch eine geeignete Kombination dieses Schlüssel-XOR, dieser linearen Transformation und dieser nichtlinearen Transformation konfiguriert, und jede Durchgangsfunktion wird sequentiell für eine Vielzahl von Durchgängen wiederholt.
  • Nachfolgend ist die Technik der Analyse zur Entschlüsselung gemäß der DPA beschrieben. Die DPA umfaßt einen Schritt des Messens abgeleiteter Energiedaten und einen Schritt der Analyse eines Schlüssels basierend auf der Differenz der abgeleiteten Energiedaten. Beim Messen der abgeleiteten Energiedaten wird Eingabeklartext, der eine Sequenz von verschiedenen Codes enthält, seriell einer Verschlüsselungsvorrichtung wie einer Smartcard u.dgl. zur Verfügung gestellt und die Änderung der abgeleiteten Energie über die Zeit in deren Verschlüsselungsprozessor in Antwort auf den eingegebenen Klartext wird unter Verwendung eines Oszilloskops u.dgl. gemessen, um dadurch eine abgeleitete Energiekurve zu erhalten. 7a zeigt ein Beispiel einer solchen abgeleiteten Energiekurve. Die Messung wird für verschiedene Klartexteingaben ausgeführt, um eine statistisch ausreichende Anzahl von abgeleiteten Energiekurven zu erhalten. Ein Satz G wird hierbei definiert als ein Satz von abgeleiteten Energiekurven, die durch die Messung erhalten wurden.
  • Nachfolgend beschrieben ist die Analyse eines Schlüssels unter Verwendung der abgeleiteten Energiekurven. 5 zeigt ein Beispiel einer Verschlüsselung, die durch eine Kombination des Schlüssel-XOR (2) und der nichtlinearen Transformation (4) in Reihenverbindung erfolgt. Die DPA für die Verschlüsselung wird nachfolgend beschrieben. 6 zeigt Elemente, die für ein in 5 gezeigtes willkürliches nichtlineares Transformationselement wi von Bedeutung sind. In der 6 bezeichnet ein Wert mi einen bekannten Mehr-Bit-Wert innerhalb eines willkürlichen Eingabeklartextes, ein Wert ki (ein Element in der Menge K = {ku-1, ... k1, k0}) bezeichnet einen Elementenwert eines unbekannten Schlüssels K, eine Funktion wi bezeichnet eine Elemententransformationsfunktion in einer bekannten S-Box-Tabelle und ein Wert zi = (wi (mi XOR ki)) eine Ausgabe. Für die DPA wird der Elementenwert des in dem Prozessor verwendeten Schlüssels als ein willkürlicher Wert ki' angenommen. Eine Operation zi' = wi(mi XOR ki') wird in Übereinstimmung mit den bekannten mi und wi ausgeführt, und der angenommene ki' und der Satz G(ki') für den angenommenen ki' wird in die folgenden Untersätze G0(ki') und G1(ki') unterteilt: G0(ki') = {G| ein e-ter Bitwert in zi' = wi (mi⊗ki') ist 0} (1), G1 (ki') = {G| ein e-ter Bitwert in zi' = wi (mi⊗ki') ist 1} (2),wobei "e" eine natürliche Zahl ist, die das e-te am wenigsten signifikante Bit angibt.
  • Dann wird die folgende Differenz DG (ki') zwischen den abgeleiteten Energiekurven der angenommenen ki' erzeugt: DG(ki') = (durchschnittliche abgeleitete Energiekurve ∈G1) – (durchschnittliche abgeleitete Energiekurve ∈G0) (3)
  • 7A zeigt ein Beispiel einer durchschnittlichen abgeleiteten Energiekurve, die aus den abgeleiteten Energiekurven, die zu dem Satz G1 gehören, erhalten wurde. 7B zeigt ein Beispiel einer durchschnittlichen abgeleiteten Energiekurve, die aus den abgeleiteten Energiekurven erhalten wurde, die zu G0 gehören. Falls ein Wert des angenommenen Schlüsselwertes gleich einem Wert eines entsprechenden tatsächlichen Schlüsselelementes ist, d.h. ki' = ki, erscheint eine Spitze in der Differenz der abgeleiteten Energiekurve, wie in 7C gezeigt, die die Differenz zwischen den Kurven der 7A und 7B darstellt. Falls ein Wert des angenommenen Schlüsselelementes nicht gleich einem Wert eines entsprechenden tatsächlichen Schlüsselelementes ist, d.h. ki' ≠ ki, dann wird die Differenzkurve der abgeleiteten Energie eine im allgemeinen flache Kurve, wie in 7D gezeigt, die die Differenz zwischen den Kurven der 7A und 7B darstellt. Deshalb kann der Schlüssel ki aus der Differenz der abgeleiteten Energiekurve mit der Spitze berechnet werden, die in Übereinstimmung mit dem angenommenen ki' erzeugt wurde. Durch Erzeugen der Differenzkurve der abgeleiteten Energie für die ki für alle i, kann der Schlüssel K erfolgreich analysiert oder letztendlich bestimmt werden.
  • Wie eine Spitze in der Energiedifferenzkurve DG (ki') im Fall von ki' = ki als Phänomen erscheint, wird nachfolgend beschrieben. Falls ki' = ki, dann stimmt der angenommene zi' = wi(mi XPOR ki') mit einem entsprechenden tatsächlichen zi = wi (mi XOR ki') in dem Prozessor für alle mi' überein. Daher kann die folgende Gleichung (4) unter Verwendung des Hamming-Gewichts HW auf zi erhalten werden, wenn der Satz G (ki') in die Untersätze G0(ki') und G1(ki') in Übereinstimmung mit den Gleichungen (1) und (2) erhalten werden, wobei das Hamming-Gewicht definiert ist als Anzahl von Bits, die einen Wert von 1 in einem Binärwert besitzen, der einen bestimmten numerischen Wert darstellt. Beispielsweise ist das Hamming-Gewicht HW eines binären 4-Bit-Wertes (1101)2 gleich 3: (gemittelter HW von zi' für zi∈G1) – (gemittelter HWE von zi' für zi∈G0) = 1 (4)
  • Auf der anderen Seite besitzt der angenommene zi' = wi (mi XOR ki') keine Beziehung mit dem entsprechenden tatsächlichen zi = wi (mi XOR ki) in dem Prozessor, wenn ki' ≠ ki. Daher ist, selbst wenn der Satz G (ki') für alle mi' in die Untersätze G0(k) und G1 (ki') in Übereinstimmung mit den Gleichungen (1) und (2) für die angenommenen zi' geteilt ist, er tatsächlich in zwei zufällige Untersätze für die entsprechenden tatsächlichen zi' unterteilt (d.h. die tatsächlichen zi, welche als zi' angenommen wurden), und die folgende Gleichung (5) wird aufgestellt: (gemittelter HW von zi' für zi∈G1) – (gemittelter HW von zi' für zi∈G0) ≈ 0 (5)
  • Wenn die Gleichung (4) aufgestellt wird, gibt es eine signifikante Differenz bei den gemittelten Hamming-Gewichten der Eingabewerte zi' zwischen G0(ki') und G1(ki'). Wenn die Gleichung (5) aufgestellt wird, gibt es keine signifikante Differenz bei den gemittelten Hamming-Gewichten der Eingabewerte zi' zwischen G0(ki') und G1(ki').
  • Die Transformation wi, die durch zi = wi (xi) dargestellt wird, wird durch Einlesen der Ausgabewerte zi aus der Transformationstabelle S-Box aus einem Speicher wie einem ROM, einem RAM und dergl. innerhalb der Verschlüsselungsvorrichtung in Übereinstimmung mit einer Aufgabeanweisung. Es wird allgemein angenommen, daß die Energie, die proportional zu dem Hamming-Gewicht eines Eingabewertes ist, abgeleitet werden kann, wenn die Aufgabeanweisung ausgeführt wird. Ein experimentelles Resultat, das die Relevanz dieser Annahme zeigt, wird beschrieben in T.S. Messerge, Ezzy A. Dabbish und Robert H. Sloan: "Investigations of Power Attacks an Smartcards", Proceedings of USENIX Workshop an Smartcard Technology, März 1999.
  • Daher ist die Gleichung (4) erfüllt, wenn ki' = ki, und daher erscheint eine signifikante Differenz in der abgeleiteten Energie in Form einer Spitze in der Differenzenergiekurve. Im Fall der Gleichung (5) besitzt die Energiekurve jedoch keine Spitze und hat eine allgemein flache Form. Es ist bekannt, daß die DPA auch auf eine Verschlüsselungsvorrichtung angewandt werden kann, die eine Konfiguration besitzt, bei welcher die lineare Transformation L der 3 in die Vorrichtung der 4 integriert ist.
  • 8 zeigt eine Verschlüsselungsvorrichtung, die eine Konfiguration besitzt, in welcher zwei lineare Transformationen vor und hinter die Verschlüsselungsvorrichtung der 4 zugefügt sind. Wenn angenommen wird, daß L1 und L2
  • Permutationsfunktionen sind, und weiter angenommen wird, daß wi eine S-Box der DES ist, ist die Konfiguration der 8 äquivalent zu der Funktion F der DES. Für die Spezifikation der DES sei verwiesen auf FIPS 46: "Data Encryption Standard", Federal Information Processing Standards Publication 46, U.S. Department of Commerce/National Bureau of Standards, National Technical Information Service, Springfield, Virginia, 1977. Der Prozeß in 8 kann auf einen Prozeß übertragen werden, der ähnlich dem in 6 gezeigten ist, und daher kann die DPA auch angewandt werden, um in ähnlicher Weise einen Schlüssel K zu berechnen.
  • Bei der oben beschriebenen Technik wird DPA auf die 5-Box-Ausgabe beim Prozeß der nichtlinearen Transformation angewandt. Es gibt weiter Verfahren des Anwendens der DPA auf einen Wert einer XOR-Operation (einer Ausgabe des Schlüssel-XOR) der Eingabe mi mit dem Schlüssel ki und auf den Eingabewert xi, der der S-Box zur Verfügung gestellt wird. Bei einem besonderen Prozessor kann die abgeleitete Energie, wie in der folgenden Gleichung (6) in dem benachbarten Bit-Modell ausgedrückt, durch ein Funktion von Bits eines Aufgabewertes dargestellt werden, um dadurch eine effektive Analyse zu erhalten. Dies ist berichtet in M. Akkar, R. Bevan, P. Dischamp und D. Moyart: "Power Analysis, What Is Now Possible ..." Asiacrypt 2000. V(z) = a' + a0z0 + a1z1 + ... a7z7 + a0,1z0z1 + a1 , 2z1z2 + ... + a6,7z6z7 (6).
  • In Übereinstimmung mit den oben beschriebenen Techniken wird ein geheimer Schlüssel K durch die DPA in drei Fällen oder unter drei Bedingungen 1-3 wie nachfolgend beschrieben bestimmt. 9 zeigt gemessene Punkte A, B und C zum Messen der abgeleiteten Energiekurven bei der Verschlüsselungsvorrichtung der 5.
    • 1. Ein Fall, in welchem eine Eingabe M einem Angreifer bekannt und von diesem willkürlich gewählt oder gesteuert werden kann, ein Schlüssel K einen unbekannten festen Wert hat und die Transformationen von S-Boxen wi' bekannt sind. In diesem Fall wird die abgeleitete Energiekurve zur vorbestimmten Zeitpunkten an dem Meßpunkt A (an der Ausgabe der S-Box wi) wie in 9 gemessen.
    • 2. Ein Fall, in welchem die Eingabe M bekannt und steuerbar ist und der Schlüssel K ein unbekannten festen Wert hat. In diesem Fall wird die abgeleitete Energiekurve gemessen zu vorgegebenen Zeitpunkten an dem Meßpunkt B (an der Ausgabe des Schlüssel-XOR) wie in 9 gezeigt gemessen.
    • 3. Ein Fall, in welchem die Eingabe M bekannt und steuerbar ist und der Schlüssel K einen unbekannten festen Wert hat. In diesem Fall wird die abgeleitete Energiekurve zur vorbestimmten Zeitpunkten an dem Meßpunkt C (der Aufgabe Eingabe zum Indizieren einer S-Box wi wie in 9 gezeigt gemessen.
  • Konventioneller Schutz gegen DPA
  • Konventioneller Gegenmaßnahmenschutz gegen DPA umfaßt z.B. eine Technik zum Reduzieren der Meßgenauigkeit der abgeleiteten Energie durch Zurverfügungstellen eines Rauschgenerators bei einer Smartcard und eine Technik des Zurverfügungstellens von Schutz in einem Verschlüsselungsalgorythmus. Die Technik des Reduzierens der Meßgenauigkeit kann leicht implementiert werden, jedoch ist es keine durchgreifende Maßnahme, da die Analyse durch Erhöhen der Anzahl der Messungen erhalten werden kann. Andererseits kann es nicht leicht sein, Schutz dem Verschlüsselungsalgorhythmus hinzuzufügen, was jedoch eine durchgreifende Maßnahme sein kann. Eine typische Technik des Zurverfügungstellens von Schutz im Verschlüsselungsalgorhythmus wird beschrieben in Thomas S. Messerges: "Securing the AES Finalists Against Power Analysis Attacks" in: Proceedings of Fast Software Encryption Workshop 2000, Springer Verlag, April 2000, bekannt unter den Namen "Maskierverfahren". Das Maskierverfahren führt jedes Verschlüsselungsverfahren auf einem Wert M' aus, der ausgedrückt wird durch M' = M XOR für einen Eingabewert M und eine Zufallszahl R als Maskierung an Stelle des Eingabewertes M per se. Da die Zufallszahl R für einen Prozeß der Verschlüsselung erzeugt wird, wird dieses Verfahren nachfolgend als "Zufallsmaskenwertverfahren" bezeichnet.
  • Nachstehend wird das Zufallsmaskenwertverfahren beschrieben. 10 zeigt ein schematisches Blockdiagramm des Prozesses in Übereinstimmung mit dem Zufallsmaskenwertverfahren. Dieser Prozeß umfaßt eine obere Verschlüsselungseinheit, eine untere Maskierungswerterzeugungseinheit und einen Zufallszahlengenerator wie in der Figur gezeigt.
  • Wenn das konventionelle Verschlüsselungsverfahren, bei welchem die konventionelle Schlüssel-XOR-Funktion, die lineare Funktion und die nichtlineare Funktion wie in den 2, 3 und 4 gezeigt, verwendet werden, zu dem in 10 gezeigten Verschlüsselungsverfahren geändert werden, werden sie jeweils durch eine Schlüssel-XOR-Funktion, eine lineare Funktion und eine nichtlineare Funktion wie in den 11, 12, 13a und 13b gezeigt in Übereinstimmung mit dem Zufallsmaskenwertverfahren ersetzt.
  • Bei dem Zufallsmaskenwertverfahren wird die Berechnung der konventionellen Zwischendaten Xi bei der Verschlüsselung ersetzt durch die Berechnung der Xi' und der Zufallszahl Ri, die das exklusive ODER, Xi = Xi' XOR Ri erfüllt. Die Verschlüsselungseinheit berechnet Xi', und die Maskierungswerterzeugungseinheit berechnet R. Die folgenden Gleichungen (7) werden aufgestellt für Xi, Xi', Zi, Zi', Ri und ROi bei den in den 2 und 11, 3 und 12 sowie den 4 und 13A und 13B gezeigten Operationen:
    Figure 00090001
  • In der 2 wird die XOR-Operation Zi = Xi XOR Ki, auf dem Eingabewert Xi mit dem Schlüssel Ki ausgeführt. Auf der anderen Seite wird, in 11, nach Erzeugung der Zufallszahl RKi durch den Zufallszahlengenerator bei dem Verschlüsselungsprozeß die doppelte XOR-Operation Zi' = Xi' XOR Ki XOR RKi auf den Eingabewerten Xi' und dem Schlüssel Ki ausgeführt. Die XOR-Operation ROi = Ri XOR RKi wird auf dem Ri mit RKi bei dem Maskierungswerterzeugungsprozeß ausgeführt.
  • In 3 wird die lineare Transformation Zi = L (Xi) ausgeführt. Auf der anderen Seite wird die Transformation Zi' = L (Xi') bei dem in 12 gezeigten Verschlüsselungsverfahren ausgeführt, und die Transformation ROi = L(Ri) wird bei dem Maskierungswerterzeugungsprozeß ausgeführt.
  • In der 4 wird eine nichtlineare Transformation unter Verwendung der Anzahl u von S-Boxen, ausgedrückt durch wi, w2, ..., wu-1, ausgeführt. Bei dem in 13A gezeigten Verschlüsselungsprozeß wird ein neuer Satz von S-Boxen, ausgedrückt durch wi'1, wi'2, ..., wi'u-1, in dem RAM-Bereich durch den Prozeß des Verwendens einer Neue-S-Box-Einheit wie in 13 gezeigt, erzeugt und gespeichert, und eine nichtlineare Transformation wird unter Verwendung dieser neuen S-Boxen ausgeführt. Bei dem in 13A gezeigten Maskierungswerterzeugungsverfahren wird der Prozeß unter Verwendung der Neue-S-Box-Einheit ausgeführt, und jeder von wi'1, wi'2, ..., wi'u-1 wird in Übereinstimmung mit den Ri und der intern erzeugten Zufallszahl ROi erzeugt, um Ausgaben wi'1, wi'2, ..., wi'u-1 und ROi zur Verfügung zu stellen. Die 13A zeigt eine detaillierte Konfiguration der Neue-S-Box-Einheit. Die Neue-S-Box-Einheit erzeugt ROi in Übereinstimmung mit dem internen Zufallszahlengenerator, der wi'j für j = 0, 1, ... u-1 erzeugt, was wi'j (x) = w(x XOR rij) XOR roij erfüllt, in Übereinstimmung mit Ri = riu-1 ... ri1 ri0, ROi = Roiu-1 ... roi1 roi0 und den in 136 verwendeten S-Boxen w1, w2, ..., wu-1, um Ausgaben ROi und wi'j zur Verfügung zu stellen.
  • Nachfolgend wird die Sicherheit des Zufallsmaskenwertverfahrens kurz beschrieben. Bei dem Zufallsmaskenwertverfahren wechselt die S-Box wi' der 13A und 13B bei jedem in 10 und in 19 gezeigten Durchgang in Übereinstimmung mit einer Zufallszahl wie nachfolgend beschrieben. Daher kann der Inhalt der S-Box nicht durch die DPA erkannt werden. Das heißt, daß, da die Bedingung des o.g. Falles 1, daß die S-Box bekannt ist, nicht erfüllt ist, die zu den vorgegebenen Zeitpunkten an dem in 8 gezeigten Meßpunkt A gemessenen abgeleiteten Energiekurven nicht in G0 and G1 in Übereinstimmung mit den Gleichungen (1) und (2) geteilt werden können. Daher ist eine Verschlüsselungsvorrichtung, die das Zufallsmaskenwertverfahren verwendet, sicher gegenüber der DPA. In ähnlicher Weise mit Bezug auf die Bedingungen der o.g. Fälle 2 und 3 wird das Zufallselement, das bei der Messung zu jedem Zeitpunkt wechselt, an dem Meßpunkt B mit der Ausgabe der Schlüssel-XOR-Funktion und bei dem Meßpunkt C an der Eingabe einer S-Box kombiniert. Daher ist die Bedingung, daß der Schlüssel K feststeht, nicht erfüllt. Daher ist es sicher gegen die DPA.
  • Nachfolgend beschrieben wird das Rijndael-Verfahren als ein Beispiel der Verschlüsselung, die das Zufallsmaskenwertverfahren verwendet. 14 zeigt eine allgemeine Konfiguration eines konventionellen Verfahrens vom Rijndael-Typ mit N-Durchgängen ohne Schutz gegen die DPA. Jeder Durchgang des Rijndael-Verfahrens mit N-Durchgängen enthält die Operationen eines XOR, eines Sub-Bytes (Substitut-Bytes), einer Verschiebung oder eines Verschiebers und einer gemischten Spalte. Der letzte Durchgang umfaßt ein weiteres XOR, umfaßt jedoch nicht eine gemischte Spalte. In 14 ist die Anzahl N bestimmt in Übereinstimmung mit der Anzahl von Bits des geheimen Schlüssels Ksec. Falls Ksec 128 Bits hat, wird N bestimmt als 10 (N = 10). Falls er 192 Bits hat, wird N bestimmt als 12 (N = 12). Falls er 256 Bits hat, wird N bestimmt als 14 (N = 14). Ki wird ein Unterschlüssel genannt. 15 zeigt einen Unterschlüsselgenerator zum Erzeugen von N + 1 128-Bit-Unterschlüsseln K0, K1, ... KN, aus dem 128/192/256-Bit-Geheimschlüssel Ksec bei dem Rijndael-Verfahren. Das Verfahren zum Erzeugen von Unterschlüsseln für einen geheimen Schlüssel wird in der Spezifikation des Rijndael-Verfahrens beschrieben, die unter http://www.nist.gov/aes/ erhältlich ist.
  • 16 zeigt eine Konfiguration des Sub-Bytes. Dieser Prozeß führt eine nichtlineare 128-Bit-zu-128-Bit-Transformation unter Verwendung der S durch, von denen jedes eine 8-Bit-zu-8-Bit-Transformations-S-Box darstellt. 17 zeigt die Konfiguration des Verschiebens. Dieser Prozeß anordnet oder mischt die Bytes hinsichtlich ihrer Byte- Positionen neu. 18 zeigt eine Konfiguration der gemischten Spalte. Dieser Prozeß führt eine Operation in einer Matrix über dem Feld GF (28) durch.
  • 19 zeigt das Rijndael-Verfahren mit N-Durchgängen, das das Zufallsmaskenwertverfahren im Gegensatz zu dem in 14 gezeigten konventionellen Rijndael-Verfahren mit N-Durchgängen verwendet. Das in 19 gezeigte Rijndael-Verfahren mit N-Durchgängen umfaßt wie gezeigt eine obere N-Durchgängen-Verschlüsselungseinheit, eine untere N-Durchgänge-Maskierungswerterzeugungseinheit und einen Zufallszahlengenerator. Ki stellt den Unterschlüssel des i-ten Durchgangs bei dem Rijndael-Verfahren dar. RKi stellt einen Zufallsmaskenwert für jeden Unterschlüssel dar. Die Sub-Byte-Operation führt eine nichtlineare 128-Bit-zu-128-Bit-Transformation unter Verwendung von sechzehn S-Boxen Si,0, Si,1, ..., Si,15 in der in 16 gezeigten Form durch. Si,0, Si,1, ..., Si,15 stellt die von einer Neue-S-Box-Einheit "NewSBox" bei der i-ten Runde erzeugten S-Boxen dar. 20 zeigt eine Konfiguration der NewSBox-Einheit, welche sechzehn verschiedene S-Boxen Si,0 (x), Si,1(x), ..., Si,15(x) in Antwort auf einen Eingabewert Rini in Übereinstimmung mit der intern erzeugten Zufallszahl Routi erzeugt, um die Zufallszahl Routi zur Verfügung zu stellen. Die Verschieb- und Gemischte-Spalte-Operation sind lineare Transformationen, die in den 17 und 18 gezeigt sind, ähnlich zu denjenigen, die bei dem Prozeß des konventionellen Rijndael-Verfahrens verwendet werden.
  • Der Ablauf des Verfahrens der 19 wird nachfolgend in den Schritten [1101] bis [1109] für die Verschlüsselungseinheit und in den Schritten [1201] bis [1209] für die Maskierungswerterzeugungseinheit wie folgt beschrieben:
    • [1101] Setze i = 0.
    • [1102] Erzeuge einen Zufallsmaskenwert Rin und unterziehe den Klartext einer XOR-Operation mit Rin.
    • [1103] Unterziehe den bearbeiteten Klartext einer XOR-Operation mit (ki XOR RKi).
  • Stelle einen Maskierungswert RKi der Maskierungswerterzeugung zur Verfügung, um sechzehn S-Boxen Si,j (x) (j = 0, 1, ..., 15) zu erzeugen.
    • [1104] Führe die Sub-Byte-Operation auf ihm aus, verwende die im Schritt [1103] erzeugten Si,j (x).
    • [1105] Führe die Operationen Verschieben und Gemischte Spalte auf ihm aus.
    • [1106] i := i + 1
    • [1107] Falls i < N – 1, gehe zu Schritt [1103] zurück. Andernfalls fahre mit dem nächsten Schritt fort.
    • [1108] Unterziehe ihn einer XOR-Operation mit KN-1 und stelle der Maskierungswerterzeugung RKN-1 zur Verfügung, um sechzehn S-Boxen SN-1,j (x) (j = 0, 1, ..., 15) zu erzeugen.
    • [1109] Führe die Sub-Byte-Operation mit SN-1,j (x) und die Verschiebeoperation und die XOR-Operation mit KN auf ihm aus.
    • [1110] Unterziehe die Ausgabe der Operation aus Schritt [1109] einer XOR-Operation unter Verwendung der Ausgabe Rout aus der Maskierungswerterzeugung und stelle einen resultierenden chiffrierten Text als eine endgültige Ausgabe zur Verfügung.
  • Der Ablauf der Maskierungswerterzeugung:
    • [1201] Setze i = 0 und Mask = Rin, wobei Rin ein in Schritt [1102] erzeugter Zufallsmaskenwert ist.
    • [1202] Führe die Operation Mask XOR RKi auf den aus der Verschlüsselung erhaltenen RKi aus, um einen neuen Mask zu erzeugen.
    • [1203] Erzeuge sechzehn S-Boxen Si,j (x) (j = 0, 1, ..., 15) und die Zufallszahl Routi durch Zurverfügungstellen des in Schritt [1202] erzeugten neuen Mask zu der Neue-S-Box, um Routi als neuen Mask zu setzen. SN-1,j (x) wird bei der Sub-Byte-Operation in der i-ten Runde der Verschlüsselung verwendet.
    • [1204] Mask wird der Shift- und Gemischte-Spalte-Operation zur Verfügung gestellt, und die Ausgabe dieser Operationen wird als ein neuer Mask gesetzt.
    • [1205] Setze i := i + 1. Falls i < N – 1, gehe zurück zu Schritt [1202].
    • [1206] Führe die Operation Mask XOR RKN-1 auf die Eingabe RKN-1 aus der Verschlüsselung aus. Setze dann das bearbeitete Resultat als neuen Mask.
    • [1207] Erzeuge sechzehn S-Boxen Si,j (x) (j = 0, 1, ..., 15) und eine Zufallszahl RoutN1 durch Zurverfügungstellen von RinN-1 der Neue-S-Box. Setze dann RoutN-1 als neuen Mask. SN-1,i (x) wird bei der Sub-Byte-Operation in den (N-1)-ten Durchgang der Verschlüsselung verwendet.
    • [1208] Stelle Mask der Verschieb-Operation zur Verfügung. Setze dann das bearbeitet Resultat als neuen Mask.
    • [1209] Führe die Operation Mask XOR RKN auf der Eingabe RKN, die von der Verschlüsselung zur Verfügung gestellt wurde, durch und stelle die XOR-Ausgabe zur Verfügung, um dadurch den Prozeß zu beenden.
  • Obwohl es bekannt ist, daß das Zufallsmaskenwertverfahren eine hohe Sicherheit gegenüber der DPA besitzt, besitzt das Verschlüsselungsverfahren, daß das Zufallsmaskenwertverfahren verwendet, Nachteile dergestalt, daß seine Verschlüsselungsgeschwindigkeiten einige Zehntel langsamer ist als die der konventionellen Verschlüsselung und daß es einen sehr großen RAM-Bereich benötigt.
  • Die Verschlüsselungsgeschwindigkeit ist wie oben beschrieben niedrig, da bei der XOR-Operation, z.B. bei dem Verschlüsselungsverfahren, zwei Zwischenwerte x und y verwendet werden, um die Operation z = x XOR y bei der üblichen Implementierung auszuführen, während es bei dem Zufallsmaskenwertverfahren notwendig ist, die Zwischenwerte x' und y' abzuleiten, die x' = x XOR Rx und y' = yXOR Ry erfüllen, um die Operation z' = x' XOR y' auszuführen und um die zusätzliche Operation Rz = Rw XOR Ry auszuführen, um den auf das z' bezogenen neuen Maskierungswert zu erzeugen. Für die nichtlineare Transformation werden nichtlineare Transformationstabellen, sogenannte S-Boxen, in einem ROM bei dem konventionellen Verfahren vorgehalten, während nichtlineare Transformationstabellen in Übereinstimmung mit einem neuen Maskierungswert bei dem Zufallsmaskenwertverfahren jedesmal erzeugt werden müssen, was eine große Anzahl von Berechnungen erfordert.
  • Ein großer RAM-Bereich ist wie oben beschrieben notwendig, da für die konventionelle nichtlineare Transformation die neuen S-Boxen in dem RAM bei jedem Verschlüsselungsprozeß bei dem Zufallsmaskenwertverfahren gespeichert werden, während bei der konventionellen Methode die nichtlinearen Transformationstabellen im ROM gehalten werden. Z.B. wird bei einem Rijndael-Verfahren, daß eine S-Box zur 8-Bit-zu-8-Bit-Transformation verwendet, ein Speicherbereich von wenigstens 28 = 256 Bytes benötigt, um ein Zufallsmaskenwertverfahren als Schutz gegen die DPA zu implementieren. Es ist jedoch praktisch unmöglich, ein Zufallsmaskenwertverfahren zu implementieren, da ein Chip für eine preisgünstige Smartcard, wie z.B. ein ST 16 (hergestellt von ST Microelectron) einen RAM-Bereich von nur ungefähr 128 Bit besitzt.
  • Um eine Verbesserung der auftretenden Verarbeitungsgeschwindigkeit zu erzielen wurde vorgeschlagen, den benötigten RAM-Bereich und dergl. durch Teilen der Maskierungswerte und Erzeugen von Maskierungswerten zwischen einem Verschlüsselungsverfahren und dem nächsten Verschlüsselungsverfahren zu reduzieren. Da jedoch das Maskieren mit einem Zufallswert zuerst in dem gesamten Prozeß ausgeführt wird, ist es unmöglich, die Verbesserung der Verarbeitungsgeschwindigkeit des gesamten Prozesses und die Reduktion des benötigten RAM-Bereiches zu erzielen.
  • Die hier genannten Erfinder haben erkannt, daß es vorteilhaft ist, die Verarbeitungsgeschwindigkeit zu verbessern und den benötigten RAM-Bereich dadurch zu reduzieren, daß das Maskieren mit festen Werten anstelle von Zufallswerten ausgeführt wird. Das Maskierverfahren, das die festen Werte verwendet, wird nachfolgend als Festmaskenwertverfahren bezeichnet.
  • Ein Ziel der vorliegenden Erfindung ist es, effizienten Schutz eines Verschlüsselungsprozessors zum Verschlüsseln von Daten mit einem gemeinsamen Schlüssel gegen die Analyse zwecks Entschlüsselung zur Verfügung zu stellen. Ein anderes Ziel der vorliegenden Erfindung ist es, das Berechnen eines geheimen Schlüssels schwierig zu machen und die Sicherheit des Verschlüsselungsprozessors zu erhöhen.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die Erfindung stellt Verschlüsselungsvorrichtungen gemäß den Ansprüchen 1, 2, 4 und 5 zur Verfügung.
  • In Übereinstimmung mit einem Aspekt der vorliegenden Erfindung umfaßt eine Verschlüsselungsvorrichtung XOR-Mittel und nichtlineare Transformationsmittel. Die Verschlüsselungsvorrichtung umfaßt ferner Zufallszahlenerzeugungsmittel zum Erzeugen einer Zufallszahl, q feste Werte, wobei q eine ganze Zahl ist, und einen ersten Auswähler zum Auswählen eines der q festen Werte in Antwort auf die Zufallszahl. Die XOR-Mittel unterziehen eine Eingabe darin einer XOR-Operation eines Schlüssels mit dem ausgewählten festen Wert.
  • In Übereinstimmung mit einem weiteren Aspekt der Erfindung, umfaßt eine Verschlüsselungsvorrichtung XOR-Mittel und nichtlinear Transformationsmittel. Die Verschlüsselungsvorrichtung umfaßt ferner Zufallszahlenerzeugungsmittel zum Erzeugen einer Zufallszahl, q Sätze von maskierten festen Tabellen, wobei q eine ganze Zahl ist, und einen Auswähler zum Auswählen eines der q Sätze von festen Tabellen in Antwort auf die Zufallszahl. Die nichtlinearen Transformationsmittel transformieren nichtlinear eine Eingabe darin in Übereinstimmung mit dem ausgewählten Satz von festen Tabellen.
  • In Übereinstimmung mit einem weiteren Aspekt der Erfindung umfaßt eine Verschlüsselungsvorrichtung Zufallszahlenerzeugungsmittel zum Erzeugen einer Zufallszahl, eine Vielzahl von parallel geschalteten Verschlüsselungseinheiten und einen Auswähler zum Auswählen einer der Vielzahl von Verschlüsselungseinheiten in Antwort auf die Zufallszahl. Jede der Vielzahl von Verschlüsselungseinheiten umfaßt XOR-Mittel und nichtlineare Transformationsmittel.
  • In Übereinstimmung mit noch einem weiteren Aspekt der Erfindung umfaßt eine Verschlüsselungsvorrichtung Zufallszahlenerzeugungsmittel zum Erzeugen einer Zufallzahl und eine Vielzahl von Verschlüsselungsdurchgängen. Jeder der Vielzahl von Verschlüsselungsdurchgängen umfaßt nichtlineare Transformationsmittel zum nichtlinearen Transformieren einer Eingabe und XOR-Mittel zum Unterziehen einer ersten Eingabe einer XOR-Operation mit einer zweiten Eingabe. Die zweite Eingabe der XOR-Mittel ist gekoppelt an die Ausgabe der nichtlinearen Transformationsmittel. Die nichtlinearen Transformationsmittel umfassen q feste Werte, wobei q eine ganze Zahl ist, einen Auswähler zum Auswählen eines der q festen Werte in Antwort auf die Zufallszahlen und weitere XOR-Mittel zum Unterziehen einer Eingabe einer XOR-Operation mit einem Schlüssel mit dem ausgewählten festen Wert.
  • In Übereinstimmung mit noch einem weiterem Aspekt der Erfindung umfaßt eine Verschlüsselungsvorrichtung Zufallszahlenerzeugungsmittel zum Erzeugen einer Zufallszahl, eine Vielzahl von parallel geschalteten Verschlüsselungseinheiten und einen Auswähler zum Auswählen einer der Vielzahl von Verschlüsselungseinheiten in Antwort auf die Zufallszahl. Jede Verschlüsselungseinheit umfaßt eine Vielzahl von Verschlüsselungsdurchgängen. Jeder Verschlüsselungsdurchgang umfaßt nichtlineare Transformationsmittel zum nichtlinearen Transformieren einer Eingabe und XOR-Mittel zum Unterziehen einer ersten Eingabe einer XOR-Operation mit einer zweiten Eingabe. Die zweite Eingabe der XOR-Mittel ist gekoppelt an eine Ausgabe der nichtlinearen Transformationsmittel.
  • In Übereinstimmung mit noch einem weiteren Aspekt der Erfindung ist ein Programm, das in einem Speichermedium gespeichert sein kann, zur Verwendung in einer Verschlüsselungsvorrichtung so betreibbar, daß der Schritt des Auswählens einer der Vielzahl von Verschlüsselungsprozessen in Antwort auf eine Zufallszahl und der Schritt des Verschlüsselns eines Eingabewertes in Übereinstimmung mit dem ausgewählten Verschlüsselungsprozeß zur Erzeugung einer Ausgabe ausgeführt werden kann. Der Verschlüsselungsschritt umfaßt den Schritt des Unterziehens eines Eingabewertes einer XOR-Operation mit einem XOR eines Schlüssels mit einem festen Wert und den Schritt des nichtlinearen Transformierens eines Eingabewertes in Übereinstimmung mit einem Satz von festen Tabellen.
  • Gemäß der Erfindung ist ein Verschlüsselungsprozessor zum Verschlüsseln von Daten unter Verwendung eines gemeinsamen Schlüssels effizient gegen die Analyse bezüglich des geheimen Schlüssels geschützt, wird die Berechung eines geheimen Schlüssels schwierig und kann die Sicherheit des Verschlüsselungsprozessors verbessert werden.
  • Gemäß einer Ausführungsform der Erfindung wird eine Vielzahl von festen Werten vorbereitet und umgeschaltet zur Auswahl unter Verwendung eines Zufallswertes in Übereinstimmung mit dem Festwertverfahren der Erfindung, um dadurch Effekte zu erhalten, die ähnlich dem konventionellen Zufallsmaskenwertverfahren sind, während das konventionelle Verfahren eine Eingabe oder einen Schlüssel unter Verwendung von Zufallswerten maskiert. Bei dem Festmaskenwertverfahren sind die Maskierungswerte auf bestimmte feste Werte begrenzt. Daher kann die Verarbeitungsgeschwindigkeit durch das Vorbestimmen der Maskierungswerte erhöht werden. Zusätzlich kann das Verfahren auf einem Träger implementiert werden, der einen kleinen RAM-Bereich hat, und zwar durch Vorbereiten eines Satzes von Festmaskierungswerten und durch Vorbereiten nichtlinearer Transformationstabellen, die den entsprechenden Festmaskierungswerten in einem ROM zugeordnet sind. Beispielsweise ist das Festmaskenwertverfahren für eine preisgünstige Smartcard geeignet, da ein LSI-Chip für eine preisgünstige Smartcard wie z.B. der ST 16 u.dgl. einen großen ROM-Bereich von ungefähr 6 KB besitzt.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 zeigt ein Beispiel eines Verschlüsselungsverfahrens mit einem gemeinsamen geheimen Schlüssel bei einer Smartcard;
  • 2 zeigt ein Schlüssel-XOR, das bei der typischen Verschlüsselung mit gemeinsamem Schlüssel verwendet wird;
  • 3 zeigt eine lineare Transformation, die bei einer typischen Verschlüsselung mit gemeinsamem Schlüssel verwendet wird;
  • 4 zeigt eine nichtlineare Transformation, die bei einer typischen Verschlüsselung mit gemeinsamem Schlüssel verwendet wird;
  • 5 zeigt ein Beispiel einer Verschlüsselung, die durch eine Kombination des Schlüssel-XOR (2) und der nichtlinearen Transformation (4) in Reihenschaltung durchgeführt wird;
  • 6 zeigt Elemente, die sich auf ein willkürliches nichtlineares Transformationselement wi, das in 5 gezeigt ist, beziehen;
  • 7A und 7B zeigen abgeleitete Energiekurven, die repräsentativ für die Änderung der abgeleiteten elektrischen Energie über die Zeit bei einem Verschlüsselungsprozessor in Antwort auf die Eingabe von Klartext in den Prozessor sind;
  • 7C zeigt die Differenz zwischen abgeleiteten Energiekurven, welche eine Spitze besitzt;
  • 7D zeigt die Differenz zwischen abgeleiteten Energiekurven, welche keine Spitze besitzt;
  • 8 zeigt eine Verschlüsselungsvorrichtung mit einer Konfiguration, bei welcher zwei lineare Transformationen vor und nach der Verschlüsselungsvorrichtung der 4 hinzugefügt sind;
  • 9 zeigt Meßpunkte A, B und C zum Messen der abgeleiteten Energiekurven bei der Verschlüsselungsvorrichtung der 5;
  • 10 zeigt ein schematisches Blockdiagramm des Prozesses in Übereinstimmung mit dem Zufallsmaskenwertverfahrens;
  • 11 zeigt ein Schlüssel-XOR in Übereinstimmung mit dem Zufallsmaskenwertverfahren;
  • 12 zeigt eine lineare Funktion in Übereinstimmung mit dem Zufallsmaskenwertverfahren;
  • 13A und 13B zeigen eine nichtlineare Funktion in Übereinstimmung mit dem Zufallsmaskenwertverfahren;
  • 14 zeigt eine allgemeine Konfiguration eines konventionellen Rijndael-Verfahrens mit N-Durchgängen ohne Schutz gegen die DPA;
  • 15 zeigt einen Unterschlüsselregenerator zum Erzeugen von Unterschlüsseln K0, K1, ... KN aus einem geheimen Schlüssel Ksec bei den Rijndale-Verfahren;
  • 16 zeigt eine Konfiguration des Sub-Bytes;
  • 17 zeigt eine Konfiguration des Verschiebens;
  • 18 zeigt eine Konfiguration der gemischten Spalte;
  • 19 zeigt das Rijndale-Verfahren mit N-Durchgängen, das das Zufallsmaskenwertverfahren im Gegensatz zu dem in 14 gezeigten konventionellen Rijndale-Verfahren mit N-Durchgängen verwendet;
  • 20 zeigt eine Konfiguration einer Neue-S-Box, die zum Zurverfügungstellen von sechzehn S-Boxen bei dem Verfahren gemäß 19 verwendet wird;
  • 21 zeigt eine schematische Konfiguration einer ersten Art von Verschlüsselungsvorrichtung in Übereinstimmung mit der Erfindung;
  • 22 zeigt eine Konfiguration eines Schlüssel-XOR, das bei der Vorrichtung gemäß 21 verwendet wird;
  • 23 zeigt eine Konfiguration einer nichtlinearen Transformation, die bei der Vorrichtung gemäß 21 verwendet wird;
  • 24 zeigt eine schematische Konfiguration einer zweiten Art von Verschlüsselungsvorrichtung in Übereinstimmung mit der Erfindung;
  • 25 zeigt eine Konfiguration eines Schlüssel-XOR, das bei der Vorrichtung gemäß 24 verwendet wird;
  • 26 zeigt eine Konfiguration einer nichtlinearen Transformation, die bei der Vorrichtung gemäß 24 verwendet wird;
  • 27 zeigt ein Beispiel des ersten Typs von Verschlüsselungsvorrichtung gemäß 21;
  • 28 zeigt eine Konfiguration des in 27 gezeigten Sub-Bytes;
  • 29 zeigt ein weiteres Beispiel des ersten Typs von Verschlüsselungsvorrichtung gemäß 21;
  • 30 zeigt eine Konfiguration des in 29 gezeigten Sub-Bytes;
  • 31 zeigt ein Beispiel des zweiten Typs von Verschlüsselungsvorrichtung gemäß 24;
  • 32A und 326 zeigen eine Konfiguration eines konventionellen DES;
  • 33A und 336 zeigen eine Konfiguration des Feistel-DES, das das in 29 gezeigte Festmaskenwertverfahren verwendet;
  • 34A und 34B zeigen eine Konfiguration des Feistel-DES, das das in 31 gezeigte Festmaskenwertverfahren verwendet;
  • 35 zeigt die Entwicklung der Maske über die Durchgänge der Verschlüsselung bei der Feistel-Verschlüsselungsvorrichtung;
  • 36 zeigt Pfade aus der Erzeugung einer Maske, um die Maskierungswerte bei der Feistel-Verschlüsselungsvorrichtung zu löschen.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Ausführungsformen der vorliegenden Erfindungen werden nachstehend beschrieben. Bei den Ausführungsformen können alle oder Teile der Elemente und Verfahren bei der Verschlüsselung in der Form von Hardware, wie z.B. einem integrierten Schaltkreis oder dergl., oder in Form eines von einem Prozessor ausgeführten Programms implementiert werden.
  • 21 zeigt eine schematische Konfiguration einer ersten Art von Verschlüsselungsvorrichtung 100 in Übereinstimmung mit der vorliegenden Erfindung. 22 und 23 zeigen Konfigurationen eines Schlüssel-XOR bzw. einer nichtlinearen Transformation bei der Verschlüsselungsvorrichtung 100. Die lineare Transformation bei der Vorrichtung kann die in 2 gezeigte sein.
  • In der 21 umfaßt die Verschlüsselungseinrichtung 100 einen Zufallszahlengenerator 103 zum Erzeugen einer Zufallszahl R (R = 0, 1, ..., q – 1), eine Verschiebeeinheit oder einen Auswähler 104 zum Auswählen von Festmaskierungswerten FM0,R in Antwort auf die Zufallszahl, um den ausgewählten Wert zur Verfügung zu stellen, ein XOR 106 zum Unterziehen von Eingabeklartext einer XOR-Operation mit dem ausgewählten Festmaskierungswert FM0,R (Xin' = Klartext XOR FM0,R), eine Verschlüsselungseinheit 101 zum Erhalten einer Eingabe Xin' und Verschlüsseln der erhaltenen Eingabe Xin' in Übereinstimmung mit der Zufallszahl R, um eine Ausgabe Xout' zur Verfügung zu stellen, eine Verschiebeeinheit 105 zum Auswählen eines der Festmaskierungswerte FMN+1,R in Antwort auf die Zufallszahl, um den ausgewählten Wert zur Verfügung zu stellen, und ein XOR 107 zum Unterziehen der Ausgabe Xout' einer XOR-Operation mit dem ausgewählten Festmaskierungswert FMN+1,R, um chiffrierten Text (Xout' XOR FMN+1,R) zu produzieren, wobei q die Anzahl von Sätzen Festmaskierungswerte darstellt, die in der Verschlüsselungseinheit 101 verwendet werden, und wobei N die Anzahl von Durchgängen darstellt.
  • Die Verschlüsselungsvorrichtung 100 umfaßt ferner RAM 162 als Arbeitsspeicher, ROM 164 zum Speichern von Festmaskierungswerten, festen nichtlinearen Transformationstabellen S-Boxen, linearen Transformationsfunktionen L und dergl., und einen Prozessor 150 zum Steuern der Verarbeitungselemente 103 bis 107 in Übereinstimmung mit dem in einem Programmspeicher 160 wie z.B. einem ROM gespeicherten Programm. Alternativ kann der Prozessor 150 die Verarbeitungselemente 103 bis 107 beim Ausführen des Programms in dem Speicher 160 darauf zur Verfügung stellen, welcher implementiert ist, um die Funktionen, die den Verarbeitungselementen 103 bis 107 entsprechen, zur Verfügung zu stellen. In diesem Fall kann 21 als Flußdiagramm angesehen werden.
  • Die Verschlüsselungseinheit 101 führt rekursiv die Durchgangsfunktionen aus, die definiert sind von einer Kombination eines Schlüssel-XOR gemäß 22, der linearen Transformation gemäß 2 und einer nichtlinearen Transformation gemäß 23, oder führt die Durchgangsfunktionen mit einer Vielzahl von Durchgangsfunktionsschaltkreisen in Reihenschaltung aus, wobei jeder Schaltkreis eine solche Kombination aufweist.
  • Das Schlüssel-XOR von 22 unterzieht den Schlüssel Ki einer XOR-Operation mit dem Festmaskierungswert FMi,R, der von der Verschiebeeinheit 109 in Antwort auf die Zufallszahl R ausgewählt wurde, um einen bestimmten Wert zur Verfügung zu stellen, und unterzieht die Eingabe Xi' einer XOR-Operation mit dem bestimmten Wert, um eine Ausgabe Zi' zur Verfügung zu stellen. Die nichtlineare Transformation gemäß 23 wählt die S-Box-Elemente wij,R' (j = 0, ... u – 1) in Antwort auf die Zufallszahl R durch die Verschiebeeinheiten 111 bis 119 aus und führt die nichtlineare Transformation unter Verwendung der ausgewählten Elemente wij,R' aus.
  • Unter Verwendung der Beziehung der Gleichungen (7) bei dem oben beschriebenen Zufallsmaskenwertverfahren wird die folgende Gleichung (8) bei dem in 22 gezeigten Schlüssel-XOR erhalten, die dem in 11 gezeigten Ri und ROi entspricht: ROi = Ri⊗FMi,R (8)Die folgende Gleichung (9) wird entsprechend dem Ri und Roi der in 136 gezeigten Neue-S-Box erhalten, die bei der nichtlinearen Transformation gemäß 23 verwendet wird: wi'j,R(xi') = wi(Ri⊗xi')⊗Roi (9)
  • 24 zeigt eine schematische Konfiguration einer zweiten Art von Verschlüsselungsvorrichtung 200 in Übereinstimmung mit der Erfindung. Die 25 und 26 zeigen Konfigurationen eines Schlüssel-XOR bzw. einer nichtlinearen Transformation bei der Vorrichtung 200. Die nichtlineare Transformation bei jeder der Verschlüsselungseinheiten kann die in 2 gezeigte sein.
  • In der 24 umfaßt die Verschlüsselungsvorrichtung 200 einen Zufallszahlengenerator 203 zum Erzeugen einer Zufallszahl R (R = 0,1, ..., q – 1), eine Verschiebeeinheit 204 zum Auswählen eines der Festmaskierungswerte FM0,R in Antwort auf die Zufallszahl, um den ausgewählten Wert zur Verfügung zu stellen, ein XOR 206 zum Unterziehen von Eingabeklartext einer XOR-Operation mit dem Festmaskierungswert FM0,R, der von der Verschiebeeinheit 204 ausgewählt wurde (Xin' = Klartext XOR FM0,R), eine Vielzahl von Verschlüsselungseinheiten 208 bis 209 zum Erhalten einer Eingabe Xin' und Verschlüsseln der erhaltenen Eingabe Xin', um eine Ausgabe Xout' zu erzeugen, eine Verschiebeeinheit 211 zum Empfangen der Eingabe Xin' und Auswählen einer der parallel geschalteten Verschlüsselungseinheiten 208 bis 209 in Antwort auf die Zufallszahl R, um die Eingabe Xin' der ausgewählten Verschlüsselungseinheit zur Verfügung zu stellen, eine Verschiebeeinheit 213 zum Auswählen der selben der Verschlüsselungseinheiten 208 bis 209 in Antwort auf dieselbe Zufallszahl R, um eine Ausgabe Xout' aus der ausgewählten Verschlüsselungseinheit zur Verfügung zu stellen, eine Verschiebeeinheit 205 zum Auswählen eines der Festmaskierungswerte FMN+1,R in Antwort auf die Zufallszahl, um den ausgewählten Wert zur Verfügung zu stellen, und ein XOR 207, um die Ausgabe Xout' einer XOR-Operation mit dem ausgewählten Festmaskierungswert FMN+1,R zu unterziehen, um chiffrierten Text (= Xout' XOR FMN+1,R) zu erzeugen, wobei q die Anzahl von Sätzen von zu verwendenden Festmaskierungswerten darstellt und N die Anzahl von Durchgängen darstellt. In 24 kann eine der beiden Verschiebeeinheiten 211 und 213 ausgewählt werden, und die andere kann entfernt werden.
  • Die Verschlüsselungsvorrichtung 200 umfaßt ferner RAM 262 als Arbeitsspeicher, ROM 264 zum Speichern fester Maskierungswerte, fester nichtlinearer Transformationstabellen S-Boxen, linearer Transformationsfunktionen L und dergl. und einen Prozessor 250 zum Steuern der Verarbeitungselemente 203 bis 211 in Übereinstimmung mit einem in einem Programmspeicher 260 wie z.B. einem ROM gespeicherten Programm. Alternativ kann der Prozessor 250 die Verarbeitungselemente 203 bis 211 darauf durch Ausführen eines Programms in dem Speicher 260 zur Verfügung stellen, welches dazu implementiert ist, die den Verarbeitungselementen 203 bis 211 entsprechenden Funktionen zur Verfügung zu stellen. In diesem Fall kann 24 als Flußdiagramm angesehen werden.
  • Die Verschlüsselungseinheiten 208 bis 209 haben identische Konfigurationen mit der Ausnahme, daß sich die Sätze wii,j von Festmaskierungswerten FMi,j und die entsprechenden S-Boxen voneinander unterscheiden. Jede der Verschlüsselungseinheiten 208 bis 209 führt rekursiv die Durchgangsfunktionen aus, die durch eine Kombination eines Schlüssel-XOR gemäß 25, der linearen Transformation gemäß 2 und einer nichtlinearen Transformation gemäß 26 definiert sind, oder führt die Durchgangsfunktion mit einer Vielzahl von Durchgangsfunktionsschaltkreises in Reihenschaltung aus, wobei jeder Schaltkreis eine solche Kombination aufweist.
  • Das Schlüssel-XOR gemäß 25 unterzieht den Schlüssel Ki einer XOR-Operation mit dem Festmaskierungswert FMi,R, der für jede der Verschlüsselungseinheiten 208 bis 209 spezifisch ist, um einen bestimmten Wert zur Verfügung zu stellen, und unterzieht die Eingabe Xi' einer XOR-Operation mit dem bestimmten Wert, um eine Ausgabe Zi' zur Verfügung zu stellen. Die nichtlineare Transformation gemäß 26 führt eine nichtlineare Transformation aus unter Verwendung eines Satzes der S-Boxen wij,R''s(j = 0, ..., u – 1), welche spezifisch für jede Verschlüsselungseinheit sind. Unter Verwendung der Beziehung der oben im Zusammenhang mit dem Zufallsmaskenwertverfahren beschriebenen Gleichungen (7) wird die Gleichung Roi = Ri⊗FMi,R' in dem in 25 gezeigten Schlüssel-XOR erhalten, entsprechend den in 11 gezeigten Ri und ROi. Die Gleichung wi'j,R(xi') = wi(Ri⊗xi')⊗Roi. wird entsprechend den in 126 gezeigten Ri und ROi in der nichtlinearen Transformation gemäß 26 erhalten.
  • Das Festmaskenwertverfahren in Übereinstimmung mit der Erfindung kann für die Implementierung bei einer preisgünstigen Smartcard geeignet sein. Jetzt müssen die folgenden Probleme in Betracht gezogen werden, um eine bevorzugtere Implementierung zur Verfügung zu stellen.
  • (A) Problem der Effizienz des Verfahrens zum Schutz gegen die DPA
  • Es ist bekannt, daß das Zufallsmaskenwertverfahren sicher gegen die DPA ist, jedoch kann unsicher sein, zu welchem Grad das Festmaskenwertverfahren sicher ist. Das Festmaskenwertverfahren kann möglicherweise verletzbar durch die DPA sein, in Abhängigkeit davon, wie es implementiert ist und abhängig von den Bedingungen der Festmaskierungswerte.
  • (B) Problem der Möglichkeit einer signifikanten Vergrößerung eines ROM-Bereiches
  • Das Festmaskenwertverfahren ist gegenüber dem Zufallsmaskenwertverfahren dahingehend vorteilhaft, daß ein benötigter RAM-Bereich durch Vorbereiten nichtlinearer Transformationstabellen in dem ROM kleiner sein kann. Jedoch hängt die Größe des benötigten ROM von der Anzahl der vorbereiteten Festmaskierungswerte ab. Die benötigte Kapazität des ROM kann möglicherweise beachtenswert groß sein, um die Sicherheit zu gewährleisten.
  • Hinsichtlich des o.g. Problems (A) wurde gefunden, daß eine bestimmte Implementierung einer Verschlüsselung in Übereinstimmung mit der Erfindung hinreichend sicher ist, solange die Festmaskierungswerte eine bestimmte Bedingung erfüllen, selbst wenn die Anzahl q von Festmaskierungswerten so klein wie zwei festgesetzt wird. Die Sicherheit des als Verschlüsselungsverfahren in Übereinstimmung mit der Erfindung eingesetzten Rijndael-Verfahrens wird später beschrieben. Ähnlich werden mit Bezug auf das Problem (B) die Anzahl q von verschiedenen Festmaskierungswerten auf zwei oder so gesetzt und identische oder gemeinsame S-Boxen werden innerhalb jedes Durchganges und/oder für jeden Durchgang verwendet, um dadurch die Menge von Daten der S-Boxen so klein wie ein Zweifaches oder Mehrfaches der Menge bei der konventionellen Implementierung ohne Anwendung der Erfindung zu halten und die benötigte Menge von ROM ebenso klein zu halten. Die bei dem in Übereinstimmung mit der Erfindung verwendeten Rijndael-Verfahren benötigte Menge von ROM wird später beschrieben.
  • 27 zeigt ein Beispiel der in 21 gezeigten ersten Art von Verschlüsselungsvorrichtung 100, welche eine Verschlüsselungsvorrichtung 300 gemäß dem Rijndael-Verfahren ist, auf welches das Festmaskenwertverfahren angewandt wird. In der 27 sind aus Gründen der Einfachheit der Prozessor 150 und die Speicher 160, 162 und 164 nicht gezeigt. In 27 umfaßt die Verschlüsselungsvorrichtung 300 einen Zufallszahlengenerator 303 zum Erzeugen einer Zufallszahl h (h = 0, 1, ..., q – 1), einen Auswähler 305 zum Auswählen eines der Festmaskierungswerte, FMinh in Antwort auf die Zufallszahl h, um den festen Wert zur Verfügung zu stellen, ein XOR 302 zum Unterziehen von Klartext einer XOR-Operation mit dem ausgewählten Festmaskierungswert FMinh, eine Vielzahl von Verschlüsselungsdurchgängen 310 zum Empfangen einer Eingabe Xin' und Verschlüsseln der Eingabe Xin' in Übereinstimmung mit der Zufallszahl h (0 ≤ i ≤ N – 2 für jeden Durchgang i), um eine Ausgabe Xout' zur Verfügung zu stellen, und einen (N – 1)-ten Verschlüsselungsdurchgang 311 zum Empfangen der Ausgabe Xout' von dem vorangehenden (N – 2)-ten Verschlüsselungsdurchgang 310 als Eingabe Xin' und Verschlüsseln der Eingabe in Übereinstimmung mit der Zufallszahl R, um chiffrierten Text Xout' zur Verfügung zu stellen.
  • Jeder i-te Durchgang der Vielzahl von Verschlüsselungsdurchgängen 310 umfaßt einen Auswähler 329, um einen Festmaskierungswert FMi,h zur Verfügung zu stellen, der in Antwort auf die Zufallszahl h ausgewählt wurde, ein XOR 331 zum Unterziehen des Schlüssels Ki einer XOR-Operation mit dem Festmaskierungswert FMi,h, um eine Ausgabe zu erzeugen, ein XOR 333, um die Eingabe Xi' einer XOR-Operation mit dem Ausgabewert des XOR 331 zu unterziehen, eine Verschiebeeinheit oder einen Auswähler 339 zum Auswählen einer Festwert-S-Box Si,j,h, (j = 0, 1, ..., 15), in Antwort auf die Zufallszahl h, um die ausgewählte S-Box zur Verfügung zu stellen, ein Sub- Byte 334, um die Ausgabe des XOR 333 in Übereinstimmung mit dem ausgewählten Si,j,h einer Sub-Byte-Operation zur Verfügung zu stellen, einen Verschieber 335, um die Ausgabe aus dem Sub-Byte 334 umzuschalten, und eine gemischte Spalte 336, um die Ausgabe aus dem Verschieber 335 spaltenzumischen.
  • Der (N – 1)-te Verschlüsselungsdurchgang 331 umfaßt die Auswähler 329 und 339, die XORs 331 und 333, ein Sub-Byte 334 und einen Verschieber 335 ähnlich dem i-ten Verschlüsselungsdurchgang 310, umfaßt jedoch keine gemischte Spalte. Der (N – 1)-te Verschlüsselungsdurchgang 311 unterzieht in einem XOR 371 KN einer XOR-Operation mit dem Festmaskierungswert FMN,h, der von einer Verschiebeeinheit 379 ausgewählt wurde, um einen maskierten Schlüssel KN,h zu erzeugen, unterzieht dann in einem XOR 373 KN,h einer XOR-Operation mit der Ausgabe des Verschiebers 335 und unterzieht dann in einem XOR 383 die Ausgabe aus dem XOR 373 einer XOR-Operation mit dem Festmaskierungswert FMouth, der von der Verschiebeeinheit 399 ausgewählt wurde, um dadurch chiffrierten Text zur Verfügung zu stellen.
  • In diesem Beispiel sind FMi,h, FMinh und FMOUth Festmaskierungswerte. Si,j,h ist eine feste S-Box. Die Festmaskierungswerte und die S-Box-Werte sind vorbestimmt. Serielle Berechnung für die Maskierung, welche bei dem konventionellen Zufallsmaskierungswertverfahren erforderlich ist, ist daher bei dem Festmaskierungswertverfahren nicht erforderlich. Das ganze Verfahren wird daher bei höherer Geschwindigkeit ausgeführt. Die vorbestimmten Festmaskierungswerte und die S-Box-Transformierungstabellen werden zusätzlich in einem ROM gespeichert, zum Beispiel dem ROM 164, gezeigt in 21, und dem ROM 264, gezeigt in 24, anstatt in einem RAM, zum Beispiel dem RAM 162, gezeigt in 21 und dem RAM 262, gezeigt in 24, um dadurch drastisch den RAM-Bereich, der zur Implementierung erforderlich ist, zu vermindern. Die Verminderung der erforderlichen Menge an RAM ist vorteilhaft bei der Implementierung der Verschlüsselung bei einer preisgünstigen Smartcard mit dem RAM-Bereich von lediglich 128 Bytes.
  • Wenn der Eingabeklartext an die Verschlüsselungsvorrichtung 300 von 27 geliefert wird, wird eine Zufallszahl h in einem Bereich von 0 ≤ h ≤ q – 1 durch den internen Zufallszahlengenerator 303 erzeugt. In Antwort auf die erzeugte Zufallszahl h wird der h-te der q Eingabewerte ausgewählt durch die Schalteinheiten 305, 329, 339, 379 und 399, die in 27 gezeigt sind, um den ausgewählten Wert zu liefern. 28 zeigt eine Konfiguration des Subbytes 334, das in 27 gezeigt ist. Die Verschiebung 335 ist jene, die in 16 gezeigt ist und die gemischte Spalte 336 ist jene, die in 17 gezeigt ist. Die S-Box Si,j,h, die verwendet wird in dem Subbyte, gezeigt in 28, wird ausgedrückt durch die folgende Gleichung (10) unter Verwendung des S, welches die S-Box ist für das Subbyte bei dem konventionellen Rijndael-Verfahren, das in 16 gezeigt ist. Si,j,h(x) = S(x⊕ai,j,h)⊕bi,j,h (10)ai,j,h und bi,j,h in der Gleichung (10) entsprechen jeweils Rii,j und Roii,j in der Gleichung (9) und den Eingabe- und Ausgabemaskierungswerten jeweils für das Subbyte in dem i-ten Durchgang. Da ai,j,h ein Eingabemaskierungswert ist, wird er nur bestimmt durch den vorhergehenden Maskierungswert, die vorhergehenden Operationen und dergleichen vor diesem Subbyte. Andererseits kann bi,j,h willkürlich festgelegt werden.
  • Der Ablauf des Verfahrens der Verschlüsselungsvorrichtung 300, gezeigt in 27, wird beschrieben in den Schritten [1301] bis [1314]. Die Schritte [1303] bis [1309] entsprechen dem Verfahren des i-ten Durchgangs, gezeigt in 28. Die Schritte [1310] bis [1314] entsprechen dem Verfahren des (N – 1)-ten Durchgangs, gezeigt in 27.
    • [1301] Setze i = 0.
    • [1302] Empfange Eingabeklartext und veranlasse Zufallszahlengenerator 303, eine Zufallszahl h (0 ≤ h ≤ q – 1) zu erzeugen, welche in den nachfolgenden Schritten verwendet wird.
    • [1303] Wähle FMinh über die Schalteinheit 305 aus einem Satz fester Maskierungswerte {FMin0, ... FMini,q-1} für den Eingabeklartext und unterziehe dann den Eingabeklartext einer XOR-Operation über das XOR 302 mit FMinh. Die Ausgabe des XOR 302 wird als Zwischendaten X festgesetzt.
    • [1304] Wähle FMi,h über die Schalteinheit 329 aus einem Satz fester Maskierungswerte {FMi,0, ... FMi,q-1} und führe die Operation X XOR Ki XOR FMi,h aus auf dem Unterschlüssel Ki, den Zwischendaten X und den FMi,h. Setze dann das bearbeitete Ergebnis als die neuen Zwischendaten X.
    • [1305] Subbyte der Zwischendaten X durch das Subbyte 334 gemäß der nichtlinearen Transformierungstabelle Si,j,h(x), welche ausgewählt wird durch die Schalteinheit 339 in Erwiderung auf die Zufallszahl h. Setze dann das bearbeitete Ergebnis als die neuen Zwischendaten X.
    • [1306] Verschiebe die Zwischendaten X über die Verschiebung 335. Setze die verschobenen Daten als die neuen Zwischendaten X.
    • [1307] Spaltenmischung der Zwischendaten X über die gemischte Spalte 336. Setze dann das bearbeitete Ergebnis als die neuen Zwischendaten X.
    • [1308] Setze i := i + 1.
    • [1309] Wenn i < N – 1, dann gehe zurück zu Schritt [1303]. Anderenfalls fahre fort mit dem nächsten Schritt.
    • [1310] Wähle FMN-1,h über die Schalteinheit 329 aus einem Satz fester Maskierungswerte {FMN-1,0, ... FMN-1,q-1} in Erwiderung auf die Zufallszahl h und führe den Vorgang, X XOR KN-1 XOR FMN-1,h, auf dem Unterschlüssel KN-1, den Zwischendaten X und FMN-1,h aus. Setze das bearbeitete Ergebnis als neue Zwischendaten X.
    • [1311] Führe das Subbyte gemäß der nichtlinearen Transformierungstabelle SN-1,j,h(x) aus, ausgewählt durch die Schalteinheit 339. Das bearbeitete Ergebnis wird gesetzt als die neuen Zwischendaten X.
    • [1312] Verschiebe die Zwischendaten X durch die Verschiebung 335. Setze die verschobenen Daten als neue Zwischendaten X.
    • [1313] Wähle FMN,h über die Schalteinheit 379 aus einem Satz fester Maskierungswerte {FMN,0, ... FMN,q-1} in Erwiderung auf die Zufallszahl h und führe die Operation X XOR KN XOR FMN,h aus auf den Zwischendaten X, einem Unterschlüssel KN und FMN,h. Das bearbeitete Ergebnis wird als neue Zwischendaten X gesetzt.
    • [1314] Wähle FMouth, über die Schalteinheit 399 aus einem Satz fester Maskierungswerte {FMout0, ... FMoutq-1} in Erwiderung auf die Zufallszahl h und unterziehe die Zwischendaten X einer XOR-Operation mit FMouth, um das bearbeitete Ergebnis als chiffrierten Ausgabetext Xout' zu liefern.
  • 29 zeigt eine Verschlüsselungsvorrichtung 400 als ein weiteres Beispiel gemäß dem Rijndael-Verfahren, auf welche das Verfahren mit Festmaskierungswerten angewandt wird. In 29 sind der Prozessor 150, die Speicher 160, 162 und 164, gezeigt in 21, aus Gründen der Einfachheit nicht gezeigt. Die Konfiguration, die in 29 gezeigt ist, ist dieselbe, wie jene, die gezeigt ist in 27, außer daß die S-Boxen, die bereitgestellt sind an die jeweiligen Schalteinheiten 339, verbunden mit den jeweiligen Subbytes 334 in den jeweiligen Funktionen eines Durchgangs, identisch sind. Dieselben Elemente sind nicht erneut beschrieben. 30 zeigt ein Beispiel einer Konfiguration des Subbytes 344, das in 29 gezeigt ist. Der Maskierungswert FMi,h erfüllt die folgende Gleichung (11) für willkürliches h = 0, 1, ..., q – 1.
    Figure 00310001
    wobei Ch and Dh 16-Byte-Konstanten sind und ausgedrückt werden durch die folgenden Gleichungen (12) unter Verwendung von 1-Byte-Konstantenwerten Ch,j und dh,j(j = 0, 1, ... 15).
  • Figure 00320001
  • Bei der in 29 gezeigten Verschlüsselungsvorrichtung 400 führt das Subbyte 334 die in 30 gezeigte nichtlineare Transformation aus unter Verwendung von sechzehn S-Boxen S0,h, Si,h, ..., S15,h, ausgewählt durch die Schalteinheit 339. Die 16 Sj,h sind S bei dem herkömmlichen Rijndael-Verfahren ohne Schutz gegen DPA und werden ausgedrückt durch eine Gleichung Sj,h(x) = S (x XOR ch,j) XOR dh,j, unter Verwendung von ch,j und dh,j in den Gleichungen (12).
  • Ein Verfahrensablauf der Verschlüsselungsvorrichtung 400 von 29 entspricht dem Verfahrensablauf für die Verschlüsselungsvorrichtung 400 von 27, wo der Subbyte ausgeführt wird gemäß einer nichtlinearen Transformationstabelle Sj,h, ausgewählt durch die Schalteinheit 339 aus sechzehn S-Boxen S0,h, S1,h, ..., S15,h gemäß der Zufallszahl h in den Schritten [1305] und [1311] für jeden Durchgang.
  • Bei der Verschlüsselungsvorrichtung 300 von 27 sind die Tabellen der Subbytes 334 daher verschieden in den jeweiligen Durchgängen, während bei der Verschlüsselungsvorrichtung 400 von 29 identische Tabellen verwendet werden in jedem Durchgang, was möglich ist aus folgendem Grund. Erstens wird der Eingabewert in das Subbyte (16) in dem herkömmlichen Rijndael-Verfahren ausgedrückt als X. Andererseits kann der Eingabewert in dem in 30 gezeigten Subbyte ausgedrückt werden durch X XOR Ch. Dies ist so, da die Beziehung der Gleichung (11) wirksam ist zwischen den Maskierungswerten. Da Ch eine Konstante ist, welche unabhängig ist von der Durchgangszahl i, kann ein Wert ai,j,h in Si,j,h(x) = S (x XOR ai,j,h) XOR bi,j,h der Gleichung (10) als konstant festgelegt werden unabhängig von der Rundenanzahl i. Da bi,j,h eine willkürliche Konstante ist, kann sie auf eine Konstante festgelegt werden, welche unabhängig von der Zahl i ist. Das Subbyte unter Verwendung der S-Boxen wird daher unabhängig von der Rundenanzahl i, dargestellt durch Sj , h(x) = S(x XOR ch,j) XOR dh,j, erhalten, wie gezeigt in 30. Die Menge an erforderlichem ROM für die S-Boxen, die verwendet werden in der Verschlüsselungsvorrichtung 400 von 29, kann daher vermindert werden auf 1/N von jener der Verschlüsselungsvorrichtung 300 von 27.
  • Bei der Verschlüsselungsvorrichtung 400 von 29 kann die Anzahl von Sätzen von q S-Boxen, die verfügbar ist für jede Runde, vermindert werden von sechzehn Sätzen auf nur einen Satz durch Zufügen einer Bedingung für die konstanten Werte Ch und Dh, vorgegeben durch die folgenden Gleichungen (13) und die Gleichung (12), bei welchen Ch und Dh willkürlich 16-Byte-Konstantenwerte sind.
  • Figure 00330001
  • Die Menge an verfügbarem ROM, die erforderlich ist für die S-Boxen, verwendet bei der Verschlüsselungsvorrichtung 400 von 29, kann daher vermindert werden auf ein Sechzehntel von jener der Verschlüsselungsvorrichtung 300 von 27. Der für die S-Boxen in der Verschlüsselungsvorrichtung 400 von 29, welche die Gleichungen (13) erfüllt, erforderliche ROM-Bereich kann daher vermindert werden auf nur 1/(16N) von jenem der Verschlüsselungsvorrichtung 300 von 27.
  • Bei der in 29 gezeigten Verschlüsselungsvorrichtung 400 werden die XOR-Operation mit FMinh und die XOR-Operation mit FMouth ausgeführt jeweils bei der Eingabe und der Ausgabe. Da hingegen gefunden wird, daß diese Vorgänge nicht zur Sicherheit beitragen, können diese Vorgänge eliminiert werden. Durch Verwendung des vorbestimmten Wertes des maskierten Schlüssels, Ki XOR FMi,h, kann zusätzlich die Operation des Unterziehens des Schlüssels Ki einer XOR-Operation mit dem Festmaskierungswert FMi,h eliminiert werden. Die Eliminierung dieser Vorgänge erfordert eine kleine Anzahl zusätzlicher Vorgänge mit den Schalteinheiten. Das Rijndael-Verfahren, auf welches das Verfahren mit Festmaskierungswerten angewandt wird, kann daher bei einer Rechenmenge bereitgestellt werden, die im wesentlichen äquivalent zu jener des Rijndael-Verfahrens ohne Schutz gegen die DPA ist.
  • 31 zeigt ein Beispiel des zweiten Typs einer Verschlüsselungsvorrichtung 200 von 24, welche weiterhin eine Verschlüsselungsvorrichtung 500 gemäß dem Rijndael-Verfahren ist, auf welches ein Festmaskierungswertverfahren angewandt wird. In 31 sind der Prozessor 250, die Speicher 260, 262 und 264, die in 24 gezeigt sind, aus Gründen der Einfachheit nicht gezeigt. In 31 umfaßt die Verschlüsselungsvorrichtung 500 einen Zufallszahlengenerator 503 zur Erzeugung einer Zufallszahl h, Schalteinheiten 502 und 504 zum Schalten in Erwiderung auf die Zufallszahl h und die Zahl q von Verschlüsselungseinheiten 511 bis 513, das heißt der nullten bis (q – 1)-ten parallel geschalteten Einheiten, von denen eine durch die Schalteinheiten 502 und 504 in Erwiderung auf die Zufallszahl h ausgewählt wird.
  • Jede der Verschlüsselungseinheiten 511 bis 513 umfaßt eine Vielzahl von Verschlüsselungsdurchgängen 530 (0 ≤ i ≤ N – 2 für einen Durchgang i) zum Empfangen einer Eingabe Xin' und Bereitstellen einer Ausgabe Xout' und der (N – 1)-te Verschlüsselungsdurchgang 531 zum Empfangen der Ausgabe von dem vorhergehenden Durchgang als eine Eingabe und Verschlüsseln der Eingabe, um eine Ausgabe Xout' zu erzeugen. Jeder der nullten bis (N – 2)-ten Verschlüsselungsdurchgänge 530, welcher einen Festmaskierungswert, ein XOR 523, ein entsprechendes Subbyte 525, eine Verschiebung 526 und eine gemischte Spalte 527 umfaßt, führt Verschlüsselung gemäß den entsprechenden Festmaskierungswerten und festgelegten S-Boxen aus. Eine XOR-Operation 521 wird gekoppelt an die Eingabe des nullten Verschlüsselungsdurchgangs 530. Der (N – 1)-te Verschlüsselungsdurchgang 531, welcher Festmaskierungswerte, XOR-Operationen 523, 528 und 529, ein Subbyte 525 und eine Verschiebung 526 umfaßt, führt Verschlüsselung gemäß den Festmaskierungswerten und festgelegten S-Boxen aus.
  • In 31 wird der XOR-Wert, Ki XOR FMj,h, vorbestimmt durch Unterziehen des Schlüssels Ki eine XOR-Operation mit FMj,h, direkt bereitgestellt. Ähnlich zu der Vorrichtung von 29 kann hingegen jeder Schlüssel Ki einer XOR-Operation unterzogen werden mit FMj,h durch eine XOR-Operation, um den XOR-Wert an jede Eingabe der entsprechenden XOR-Operation oder XOR-Operationen 523 bis 528 zu liefern. In 31 kann ähnlich zu der Vorrichtung von 29 FMinh und FMouth eliminiert werden.
  • Auch bei der Verschlüsselungsvorrichtung 500 von 31 werden identische S-Boxen verwendet bei jedem Durchgang für jede Einheit. Wenn die Vorrichtung 500 festgelegt wird, um die Bedingung der Gleichungen (13) zu erfüllen, können die Erfordernisse des ROM vermindert werden, ähnlich zu der Verschlüsselungsvorrichtung 400 von 29. Die Menge an ausgeführter Berechnung durch die Verschlüsselungsvorrichtung 500 kann vorteilhaft dahingehend vermindert werden, daß die notwendige Anzahl von Schalteinheiten geringer ist als jene der Verschlüsselungsvorrichtung 400 und im wesentlichen äquivalent zu der Menge an Berechnung in dem Rijndael-Verfahren ohne Schutz gegen die DPA ist. Da die Verschlüsselungsvorrichtung 500 von 31 mehr Verschiebungen und gemischte Spalten hat als die Verschlüsselungsvorrichtung 400 von 29, wird die Größe des Schaltkreises der Verschlüsselungsvorrichtung 500 größer. Obwohl die Verschlüsselungsvorrichtung 500 zwei Auswähler oder Schalteinheiten 502 und 504 hat, kann jede der linken und rechten Schalteinheiten 502 und 504 zum Schalten verwendet werden. In diesem Fall kann die andere Schalteinheit eliminiert werden.
  • Da die gleichen Verschlüsselungsverfahren ausgeführt werden mit den verschiedenen Konfigurationen der Verschlüsselungsvorrichtungen von 29 und 31, kann dasselbe Sicherheitsniveau sichergestellt werden.
  • Nun wird unten die Sicherheit des Verfahrens mit Festmaskierungswerten beschrieben. Bei der Verschlüsselungsvorrichtung von 27 ist, wenn die Anzahl q von Festmaskierungswerten groß genug ist, der Vorgang bei dem Festmaskierungswertverfahren im wesentlichen derselbe wie bei dem Zufallsmaskierungswertverfahren und daher wird dieselbe hohe Sicherheit sichergestellt. Die Sicherheit kann verbessert werden für eine vereinfachte Verschlüsselungsfunktion in einem Durchgang in dem Zufallsmaskierungswertverfahren. Die Sicherheit kann daher ähnlich sichergestellt werden, jeweils für die Verschlüsselungsvorrichtungen 400 und 500, gezeigt in 29 und 31, von denen jede identische S-Boxen für jeden Durchgang verwendet.
  • Unten beschrieben ist die Sicherheit für das Verfahren mit Festmaskierungswerten in dem Fall, wo q einen kleinen Zahlenwert hat. Wenn q = 1, ist gezeigt, daß die Sicherheit nicht sichergestellt ist. Die Sicherheit wird als nächstes erhöht, wenn q = 2, was der zweitkleinste Wert ist. Jeweils bei den Verschlüsselungsvorrichtungen 400 und 500 von 29 und 31 wird angenommen, daß q = 2 und nur ein Satz von S-Boxen wird verwendet für jedes Subbyte eines Durchgangs gemäß den Gleichungen (13), und FMinh und FMouth werden eliminiert. Selbst in diesem einfachsten Fall kann die Sicherheit gegenüber der DPA erhöht werden durch Festlegen der Bedingung der folgenden Gleichung (14) oder (15) für c0,j, c1,j, ... cq-2,j, und durch Festlegen der Bedingung der folgenden Gleichung (16) für d0,j, d1,j, ... dq-2,j.
  • Wenn q = 2 und die Anzahl von S-Box-Sätzen 1 für alle j = 0, 1, ..., 15 ist, ist c0,j⊕c1,j = (10101010)2 oder (01010101)2 (14)
  • Wenn q ≥ 2 und die Anzahl von S-Box-Sätzen 1 ist für alle j = 0, 1, ..., 15, ist (c0,j⊕ c1,j)∨(c1,j⊕c2,j)∨ ... ∨(cq-2,j⊕cq-1,j) = (11111111)2 (15)
  • Wenn q ≥ 2 für alle j = 0, 1, ..., 15, ist (d0,j⊕d1,j)∨(d1,j⊕d2,j)∨ ... ∨(dq-2,j⊕dq-1,j) = (11111111)2 (16)wobei ()2 einen binären Wert anzeigt.
  • Die DPA kann ausgeführt werden zu dem vorbestimmten Zeitpunkt an dem gemessenen Punkt A, der in 9 gezeigt ist, und kann ausgeführt werden zu dem vorbestimmten Zeitpunkt in den gemessenen Punkten B und C. Folgendes erklärt, daß jeweils die Verschlüsselungsvorrichtungen 400 und 500 von 29 und 31 ausreichend sicher sind. Bit (x, e), das unten beschrieben ist, stellt einen Bit-Wert an der e-ten Position bei x dar.
  • Der Angreifer führt die folgenden Vorgänge (i) und (ii) zur Berechnung eines Schlüssels aus.
    • (i) Unter Verwendung der DPA, Eingrenzen der Anzahl anzunehmender Schlüssel (oder möglicher Schlüssel), die zu prüfen sind.
    • (ii) Berechnen eines Schlüssels durch Prüfen der Anzahl der angenommenen Schlüssel, eingegrenzt bei dem Vorgang (i), ob jeder von ihnen hinsichtlich ihres Wertes mit einem wahren Schlüssel, der in dem Prozessor verwendet wird, paßt oder nicht. Die Menge an Berechnung zur Prüfung eines angenommenen Schlüssels, das heißt eines Musters des Schlüssels, wird hier definiert als eine Einheit (oder Zyklus).
  • Prüfen des Wertes für den Schlüssel kann erzielt werden durch Prüfen der Beziehung zwischen dem Klartext und dem Chiffriertext in dem Verschlüsselungsrechner. Das heißt die Verschlüsselung des Klartextes durch den Verschlüsselungsrechner wird verglichen mit der Verschlüsselung des Klartextes unter Verwendung des Wertes von jedem angenommenen zu prüfenden Schlüssel durch ein weiteres Verschlüsselungsmittel wie Software. Wenn die Beziehungen zwischen dem Klartext und dem Chiffriertext miteinander zwischen dem Verschlüsselungsrechner und dem weiteren Verschlüsselungsmittel passen, dann wird bestimmt, daß der Wert des angenommenen Schlüssels in dem Verschlüsselungsrechner verwendet wird. Wenn die beiden Beziehungen nicht zueinander passen, dann wird bestimmt, daß der angenommene Schlüssel nicht verwendet wird.
  • Unten ist ein Beispiel einer Berechnungsmenge beschrieben, die erforderlich ist, um einen 128-Bit-Schlüssel mit der DPA zu berechnen. Wenn zum Beispiel verwendbare Information über den 128-Bit-Schlüssel nicht durch die DPA erhalten werden kann, dann ist es notwendig, alle möglichen Muster des 128-Bit-Schlüssels zu prüfen. Daher ist die notwendige Menge an Berechnung 2128 Einheiten. Wenn zum Beispiel durch die DPA gefunden wird, daß das am wenigsten signifikante Bit (LSB) für den 128-Bit- Schlüssel "0" ist, werden alle möglichen Muster der verbleibenden 127 signifikantesten Bits (MSB) geprüft. Die erforderliche Menge an Berechnung ist 2127 Einheiten.
  • Die Sicherheit der Ausgabe aus der S-Box gegen die DPA wird als nächstes unten beschrieben in dem Fall, bei welchem die DPA an dem gemessenen Punkt A, gezeigt in 9, jeweils angewandt wird auf die Verschlüsselungsvorrichtungen 400 und 500 von 29 und 31. Es wird verstanden, daß, wenn die DPA angewandt wird, zum Zeitpunkt des Ladens des Ausgabewerts von jeder S-Box in dem Subbyte in der 0-ten Runden, gezeigt in 29 und 31, der Schlüssel Ki bestimmt werden kann zur Entschlüsselung bei der Berechnungsmenge proportional zu 28(16-F) = 2128-8F ist, wobei F = f0 + f1 + ... + f15, und fj definiert ist wie unten beschrieben. Es wird angenommen, daß der Ausgabemaskierungswert aus der j-ten (j = 0, 1, ... 15) S-Box d0,j, d1,j, ... dq-1,j ist. Dann ist für WDj = (d0,j⊕d1,j)∨(d1,j⊕d2,j)∨ ... ∨(dq-2,j⊕dq-1,j),
    Figure 00380001
  • Wenn fj = 0 für alle j = 0, 1, ..., 15, ist die Verschlüsselungsvorrichtung daher am sichersten gegen die DPA. Zu diesem Zweck muß WDj = (11111111)2 erfüllt sein für alle j = 0, 1, ... 15. In diesem Fall ist die erforderliche Menge an Berechnung zur Bestimmung des Schlüssels durch die DPA der Maximalwert von 2128.
  • Unten beschrieben ist die Sicherheit gegen die DPA für die Ausgabe des Schlüssel-XORs (bei dem gemessenen Punkt B, gezeigt in 9) oder die Eingabe der S-Box (bei dem gemessenen Punkt C, gezeigt in 9). Die Sicherheit gegen die DPA zu dem vorbestimmten Zeitpunkt bei den gemessenen Punkten B und C, gezeigt in 9, hängt davon ab, welches Modell verwendet werden kann, um die Beziehung zwischen der gemessenen Spannung und der Spannung anzunähern, wenn der Wert in den RAM in dem Verschlüsselungsrechner geladen wird. Die DPA unter Verwendung eines willkürlichen Modells wird zuerst diskutiert, und dann wird später die DPA unter Verwendung eines Modells benachbarter Bits, ausgedrückt durch die Gleichung (6) diskutiert.
  • Bei dem willkürlichen Modell wird die DPA angewandt zu dem vorbestimmten Zeitpunkt an den gemessenen Punkten B und C wie in 9 gezeigt, jeweils auf die Verschlüsselungsvorrichtungen 400 und 500 von 29 und 31, wo angenommen wird, daß die Anzahl von Sätzen von S-Boxen, die zu verwenden sind in dem Subbyte, nur als Eins in Übereinstimmung mit den Gleichungen (13) zum Zwecke der Erklärung festgelegt ist. Es wird gefunden, daß, wenn die DPA angewandt wird zum Zeitpunkt des Ladens des Ausgabewertes von dem Schlüssel-XOR in dem Subbyte in der 0-ten Runde, der Schlüssel Ki dann bestimmt werden kann zur Entschlüsselung durch die Berechnungsmenge proportional zu 2128-(15/16)H, wobei H = h0 + h1 + ... + H15 und der Wert hj definiert ist wie unten beschrieben. Es wird angenommen, daß der Eingabemaskierungswert der j-ten S-Box (j = 0, 1, ... 15) c0,j, c1,j, ... cq-1,j ist. Dann ist für WCj = (c0,j⊕c1,j)∨(c1,j⊕c2,j)∨ ... ∨(cq-2,j⊕cq-1,j) und WCj = (wcj,7 wcj,6 wcj,5 wcj,4 wcj,3 wcj,2 wcj,1 wcj,0)2, hj = (Anzahl von e, so daß wcj,e = 0 für e = 0,1, ...7).
  • Wenn hj = 0 für j = 0, 1, ..., 15, ist die Verschlüsselungsvorrichtung am sichersten gegen die DPA. Zu diesem Zweck muß WCj = (11111111)2 erfüllt sein für alle j = 0, 1, ..., 15. In diesem Fall ist die erforderliche Menge zur Berechnung zur Bestimmung des Schlüssels durch die DPA der Maximalwert von 2128.
  • Als nächstes wird bei dem Modell benachbarter Bits, ausgedrückt durch die Gleichung (6), welche anwendbar ist für die DPA, angenommen, daß die Anzahl verschiedener S-Box-Sätze, die zu verwenden sind in dem Subbyte, begrenzt ist auf 1 gemäß q = 2 und den Gleichungen (13) zum Zwecke der Erklärung. Es ist bekannt, daß das Modell benachbarter Bits geeignet ist zum Annähern einer Spannung bei einer preisgünstigen Smartcard. Wenn dieses Modell anwendbar ist, kann die Schlüsselinformation, welche nicht analysiert werden kann zur Verschlüsselung in dem willkürlichen Modell analysiert werden zur Entschlüsselung. Bei dem Subbyte in der 0-ten Runde bei jeweils den Verschlüsselungsvorrichtungen 400 und 500 von 29 und 31 wird die DPA angewandt zum Zeitpunkt (bei dem vorbestimmten Zeitpunkt bei dem gemessenen Punkt C, gezeigt in 9) des Ladens des Eingabewertes jeder S-Box, und dadurch kann der Schlüssel K bestimmt werden zur Entschlüsselung in der Menge zur Berechnung proportional zu 2128-(15/16)H, wobei H = h0 + h1 + ... + H15 ist.
  • Der Wert hj wird definiert wie unten beschrieben. Es wird angenommen, daß die Eingabemaskierungswerte der j-ten S-Box c0,j und c1,j, sind für WCj = c0,j⊕c1,j = (wcj,7 wcj,6 ... wcj,0)2, hj = (Anzahl von e, so daß wcj,e = 0 für e = 0, 1, ...7) + (Anzahl von e, so daß wcj,e = wcj,e+1 = 1 für e = 0, 1, ...7), wobei wcj,e = 0 oder 1. Der Wert j stellt die Ordinalzahl einer S-Box dar. Der Wert e stellt eine Bitposition dar.
  • Da die Anzahl von S-Box-Sätzen 1 ist, ist H der Minimalwert von 64, wenn die Bestimmungsgleichung (14) c0,j XOR c1,j = (01010101)2 oder (10101010)2 ist, und die erforderliche Berechnungsmenge, um den Schlüssel durch die DPA zu bestimmen, ist maximal 268.
  • Um einen geheimen 128-Bit-Schlüssel wie oben beschrieben in dem Rijndael-Verfahren durch die DPA für eine Verschlüsselungsvorrichtung zu bestimmen, welche ein festes Maskierungswertverfahren der Erfindung einsetzt, wo die Bedingung von Gleichung (14) oder der Gleichung (15) erfüllt ist für c0,j, c1,j, ... cq-1,j und auch die Bedingung der Gleichung (16) für d0,j, d1,j, ... dq-1,j erfüllt ist, ist die Menge an Berechnung proportional zu 2128 oder 268 wie gezeigt in Tabellen 1 und 2 erforderlich. Es sollte angemerkt werden, daß die Schwelle der Sicherheit gegen die DPA 264 hinsichtlich der Berechnungsmenge ist. Obwohl die Berechnungsmenge 268 kleiner ist als die Berechnungsmenge 2128, welche erforderlich ist zur Berechnung aller Bitmuster eines Schlüssels, ist es praktisch unmöglich, den Schlüssel zur Entschlüsselung innerhalb einer vorbestimmten Zeit zu bestimmen. Daher ist es praktisch unmöglich, einen geheimen Schlüssel zur Entschlüsselung zu bestimmen, selbst wenn die DPA ausgeführt wird auf einem Verschlüsselungsrechner, auf welchem ein festes Maskierungswertverfahren gemäß der Erfindung angewandt wird. TABELLE 1. Beziehung zwischen Maskierungswert und Berechnungsmenge, die erforderlich ist zur Bestimmung eines 128-Bit-Geheimschlüssels durch DPA des Ladens von S-Box-Ausgabewerten bei dem Festmaskierungswertverfahren.
    Wert von WDj = (d0,j⊕d1,j)∨(d1,j⊕d2,j)∨ ...∨(dq-2,j⊕dq-1,j) Berechnungsmenge für Schlüsselanalyse (q ≥ 2, willkürliches Modell)
    Für alle j, 0 ≤ j ≤ 15 WDj = (11111111)2 (Festmaskierungswertverfahren) 2128
    Allgemeiner Fall 2128-8F F = f0 + f1 + ... + f15 fj = 0 (wenn WDj = (11111111)2) fj = 1 (anderenfalls)
    TABELLE 2. Beziehung zwischen Maskierungswert und Berechnungsmenge, die erforderlich ist zur Bestimmung eines 128-Bit-Geheimschlüssels durch DPA des Ladens von S-Box-Ausgabewerten für einen gemeinsamen S-Box-Satz von Subbytes im Festmaskierungswertverfahren
    Wert von WCj = (c0,j⊕c1,j)∨(c1,j⊕c2,j)∨ ... ∨(cq-2,j⊕cq-1,j) Berechnungsmenge zur Schlüsselanalyse (q ≥ 2, willkürliches Modell) Berechnungsmenge zur Schlüsselanalyse (q = 2, Modell benachbarter Bits)
    Für alle j, 0 ≤ j ≤ 15, (111111111)2 (Festmaskierungswertverfahren) 2128 223
    Für alle j, 0 ≤ j ≤ 15 (01010101)2, (10101010)2 (Festesmaskierungswertverfahren) 268 268
    WCj = (wcj,7wcj,6wcj,5wcj,4wcj,3 wcj,2wcj,1wcj,0)2 (Allgemeiner Fall) 2128-(15/16)H H = h0 + h1 + ... + h15 hj = (Anzahl von wcj,e = 0) (e = 0, 1, ... 7) 2128-(15/16)H H = h0 + h1 + ... + h15 h = (Anzahl von wcj,e = 0) + (Anzahl von wcj,e = wcj+1,e = 1)(e = 0, 1, ... 7)
    Für alle j, 0 ≤ j ≤ 15 (00000000)2 (Minimale Sicherheit) 28 28
  • Daher wird die Sicherheit des Verfahrens mit Festmaskierungswerten wie folgt beschrieben:
    • 1. Für q gleich zwei oder mehr ist das Verfahren mit Festmaskierungswerten sicher gegen die DPA des Ladens des Ausgabewertes der S-Box, wenn die Bedingung der Gleichung (16) erfüllt ist. Dies ist so, da die Berechnungsmenge von 2128 erforderlich ist zur Einschätzung des Schlüssels. Diese Berechnungsmenge ist gleich jener, die erforderlich ist, wenn alle möglichen Muster des Schlüssels geprüft werden.
    • 2. Für q gleich zwei oder mehr ist das Verfahren mit Festmaskierungswerten sicher gegen die DPA des Ladens des Eingabewertes der S-Box, wenn die Bedingung der Gleichung (15) erfüllt ist in dem willkürlichen Modell im Unterschied zu dem Modell benachbarter Bits. Dies ist so, da die Berechnungsmenge von 2128 erforderlich ist zum Berechnen des Schlüssels.
    • 3. Für q = 2 ist das Verfahren mit Festmaskierungswerten sicher gegen die DPA des Ladens des Eingabewertes der S-Box, wenn die Bedingung der Gleichung (13) erfüllt ist, und c0,j XOR c1,j = (01010101)2 oder (10101010)2 der von Bestimmungsgleichung (14) erfüllt ist für das Modell benachbarter Bits. Dies ist so, da die Menge an Berechnung von 268 erforderlich ist zum Berechnen des Schlüssels und es daher praktisch unmöglich ist, den Schlüssel in einer begrenzten Zeit zu berechnen.
    • 4. Für q ≥ 3 ist das Verfahren mit Festmaskierungswerten sicher gegen die DPA, wenn die Bedingung der Gleichung (15) erfüllt ist, ähnlich zu obigem Punkt 2, da die Analyse für q = 2 nicht anwendbar ist. Dies ist so, da die Berechnungsmenge von 2128 erforderlich ist zum Einschätzen des Schlüssels in sowohl dem Modell benachbarter Bits als auch dem willkürlichen Modell. Die erforderliche Kapazität an ROM steigt hingegen an.
    • 5. Beim obigen Punkt 3 ist die Anzahl von Sätzen der S-Boxen begrenzt auf Eins in der Bestimmungsgleichung (14) (für q = 2 ist die Anzahl möglicher S-Box-Ausgabewerte 2). Wenn die Anzahl verschiedener Sätze der S-Boxen hingegen auf n gesetzt ist, ist die Kapazität des ROM n-Mal größer. Die erforderliche Berechnungsmenge steigt hingegen 28(n-1) × n16 -fach an.
  • Das Verfahren mit Festmaskierungswerten gemäß der vorliegenden Erfindung kann angewandt werden auf Feistel-Verschlüsselung wie DES sowie SPN-Verschlüsselung gemäß dem Rijndael-Verschlüsselungsverfahren. 32A zeigt eine Konfiguration gemäß dem konventionellen DES. 326 zeigt detaillierter eine Konfiguration von einer F-Funktion, gezeigt in 32A. 326 umfaßt die F-Funktion linearer Transformation E und P und nichtlineare Transformation S1 bis S8 mit jeweiligen nichtlinearen Transformationstabellen S1 bis S8.
  • 33A zeigt ein Beispiel eines ersten Verschlüsselungsvorrichtungstyps 100, gezeigt in 21, welcher eine Verschlüsselungsvorrichtung 700 gemäß der DES-Verschlüsselung von 32A und 32B ist, auf welche ein festes Maskierungswertverfahren angewandt wird in einer Weise ähnlich zu der Verschlüsselungsvorrichtung 400 von 29. 33B zeigt eine detailliertere Konfiguration einer F-Funktion, gezeigt in 33A. In 33A sind der Prozessor 150, die Speicher 160, 162 und 164, die gezeigt sind in 21, aus Gründen der Einfachheit nicht gezeigt.
  • Die Verschlüsselungsvorrichtung 700 umfaßt einen Zufallszahlengenerator 701 zur Erzeugung einer Zufallszahl h, einen Auswähler 702 zur Auswahl eines der Festmaskierungswerte FMinh in Antwort auf die Zufallszahl h, um den ausgewählten Wert zu ergeben, ein XOR 712, um einen Eingabeklartext einer XOR-Operation mit dem ausgewählten Festmaskierungswert FMinh zu unterziehen, eine Mehrzahl (zum Beispiel sechzehn) von F-Funktionsverschlüsselungsdurchgängen 710 bis 720 zum Empfangen einer Eingabe und Verschlüsselung der Eingabe gemäß der Zufallszahl h und dem Unterschlüssel Ki, um eine Ausgabe zu erzeugen, einen Auswähler 704 zur Auswahl von einem der Festmaskierungswerte FMouth in Antwort auf die Zufallszahl h, um einen ausgewählten Wert zu ergeben, und ein XOR 714, um eine Ausgabe aus dem F-Funktionsverschlüsselungsdurchgang 720 einer XOR-Operation mit dem ausgewählten Festmaskierungswert FMouth zu unterziehen, um einen chiffrierten Text zu erzeugen. Jeder der F-Funktionsverschlüsselungsdurchgänge 710 bis 720 empfängt die Ausgabe aus der XOR-Operation bei dem vorhergehenden Durchgang, führt die F-Funktion aus, gezeigt in 33B, und unterzieht die Ausgabe aus der Funktion und die Ausgabe aus dem vorhergehenden Durchgang XOR-Operationen über die XORs (722 und 723), um eine Ausgabe zu ergeben.
  • Die F-Funktion von 33B umfaßt einen Auswähler 759, um einen Festmaskierungswert FMi,h zu liefern, der ausgewählt ist in Antwort auf die Zufallszahl h, und einer XOR 762, um den Unterschlüssel Ki einer XOR-Operation mit dem Festmaskierungswert FMi,h zu unterziehen, um eine Ausgabe zu liefern, eine XOR-Operation 763, um den Ausgabewert einer XOR-Operation zu unterziehen mit der Eingabe Xi', linear transformiert durch eine lineare Transformation E, Auswähler 752 bis 756 zum Auswählen von Subbytes Si,h in Antwort auf die Zufallszahl h, um die Ausgabe aus dem XOR 763 zu liefern, Subbytes Si,h, um das Subbyte auszuführen gemäß den jeweiligen nichtlinearen tabellarischen S-Boxen Si,h, Auswähler 754 bis 757 zum Auswählen von einem der Subbytes Si,h in Antwort auf die Zufallszahl h, um eine Ausgabe zu liefern, und eine linearen Transformation P, um linear die Ausgabe aus den Auswählern 754 bis 757 zu transformieren, um eine Ausgabe Zi' zu ergeben.
  • Der Prozessor 150 in 21 steuert die Verarbeitungselemente 701 bis 763 und dergleichen der Verschlüsselungsvorrichtung 700 von 33A und 33B gemäß dem Programm, das im Programmspeicher 160 gespeichert ist. Der Prozessor 150 kann alternativ die Verarbeitungselemente 701 bis 763 und dergleichen liefern durch Ausführen des Programms im Speicher 160, welches implementiert ist, um die Funktionen entsprechend den Verarbeitungselementen 701 bis 763 und dergleichen zu ergeben. In diesem Fall können die 33A und 33B als Flußdiagramme betrachtet werden.
  • 34A zeigt ein Beispiel des zweiten Typs von Verschlüsselungsvorrichtung 200, gezeigt in 24, welches eine Verschlüsselungsvorrichtung 800 gemäß der DES-Verschlüsselung von 32A und 32B ist, auf welche das Verfahren mit Festmaskierungswerten angewandt wird in einer Weise ähnlich zu der Verschlüsselungsvorrichtung 500 von 31. 34B zeigt eine detailliertere Konfiguration der F-Funktion, gezeigt in 34A. In 34A sind der Prozessor 250, der Speicher 260, 262 und 264, gezeigt in 24, aus Gründen der Einfachheit nicht gezeigt.
  • In 34A umfaßt die Verschlüsselungsvorrichtung 800 einen Zufallszahlengenerator 801 zur Erzeugung einer Zufallszahl h, Schalteinheiten 802 und 804 zum Ausführen von Schaltvorgängen in Erwiderung auf die Zufallszahl h und eine Vielzahl von Verschlüsselungseinheiten 820 bis 830, welche ausgewählt werden durch die Schalteinheiten 802 und 804 in Erwiderung auf die Zufallszahl h.
  • Der Prozessor 250 in 24 steuert die Verarbeitungselemente 801 bis 862 und dergleichen der Verschlüsselungsvorrichtung 800 von 34A und 34B gemäß dem Programm, das in dem Speicher 260 gespeichert ist. Der Prozessor 250 kann alternativ die Bearbeitungselemente 801 bis 862 und dergleichen ergeben durch Ausführen des Programms im Speicher 160, welches implementiert ist, um die Funktionen entsprechend den Bearbeitungselementen 801 bis 862 und dergleichen zu ergeben. In diesem Fall können 34A und 34B als ein Flußdiagramm betrachtet werden.
  • Jede der Verschlüsselungseinheiten 820 bis 830 umfaßt eine Vielzahl (zum Beispiel sechzehn) von F-Funktionsverschlüsselungsdurchgängen 840 bis 850 zum Empfangen einer Eingabe und Erzeugung einer Ausgabe. Jeder der F-Funktionverschlüsselungsdurchgänge 840 bis 850 empfängt die Ausgabe aus der vorhergehenden XOR-Operation, führt die F-Funktion aus, die gezeigt ist in 34B in Übereinstimmung mit Ki XOR FMi,h, unterzieht die Ausgabe der F-Funktion einer XOR-Operation über die XOR-Operation (822 und 823) mit der Ausgabe des vorhergehenden Durchgangs, um eine Ausgabe zu ergeben.
  • Die F-Funktion von 34B umfaßt eine XOR-Operation 862, um die Eingabe Xi', linear transformiert durch eine lineare Transformation E mit dem XOR-Wert des Unterschlüssels Ki einer XOR-Operation mit dem Festmaskierungswert FMi,h zu unterziehen, Subbytes Si,h(i = 1, 2, ... 8) gemäß den nichtlinearen tabellarischen S-Boxen Si,h und einer linearen Transformation P zum linearen Transformieren der Ausgabe aus dem Subbyte Si,h, um eine Ausgabe Zi' zu ergeben.
  • In den 33A, 33B, 34A und 34B kann die Eingabemaske FMin ähnlich zu dem oben beschriebenen Rijndael-Verfahren eliminiert werden. FMout kann hingegen nicht eliminiert werden in derselben Weise wie in dem Rijndael-Verfahren. 35 zeigt die Fortpflanzung des Einflusses der Maskierung über mehrere Durchgänge der Feistel-Verschlüsselungsvorrichtung. In 35 zeigt die durchgezogene Linie einen maskierten Weg an. Der FMout kann nicht eliminiert werden, da bei der Feistel-Verschlüsselung die Daten (A), die in einer bestimmten Runde maskiert sind, nicht nur den nächsten Durchgang (B) beeinträchtigen, sondern auch nachfolgende Durchgänge (C) wie gezeigt in 35.
  • Bei der Feistel-Verschlüsselung kann der Maskierungswert der vorhergehenden Runde daher nicht vollständig gelöscht werden in dem derzeitigen Durchgang. 36 zeigt Wege von der Erzeugung einer Maske zur Löschung des Maskierungswertes in der Feistel-Verschlüsselungsvorrichtung. In 36 zeigen durchgezogene Linien den maskierten Wert an. Bei der Feistel-Verschlüsselung sind wenigstens vier Runden erforderlich vom Maskieren zum Löschen des Maskierungswerts wie in 36 gezeigt und der Maskierungswert kann ausgelöscht werden über vier Runden oder mehr. Die Technik des Auslöschens des Maskierungswertes liefert die Generierung einer Ausgabemaske, welche äquivalent zur vorhergehenden Maske ist, um Auslöschung in der XOR-Operation der Feistel-Verschlüsselung zu ergeben, wie gezeigt in 36, eher als eine willkürlich wählbar erzeugte Maske für eine nichtlineare Transformation bei der SPN-Verschlüsselung zu verwenden.
  • Diese Techniken machen es möglich, die letzte Maske FMout in der Verschlüsselung zu eliminieren. Wenn die Technik angewandt wird auf die Verschlüsselung von vier oder mehr Runden gemäß der DES und dergleichen, kann eine Auslöschungskonfiguration eines Festmaskierungswertes in vier Runden wiederholt bereitgestellt werden oder ein Festmaskierungswert, der auszulöschen ist in der letzten Runde, kann verwendet werden.
  • Bei den obigen Ausführungen wird das Verfahren mit Festmaskierungswerten angewandt für alle Durchgänge. Wie oben in Verbindung mit der Bedingung zum Möglichmachen der DPA beschrieben, muß, um bei der DPA erfolgreich zu sein, ein Eingabewert bekannt sein und ein Angreifer muß den Wert unter Kontrolle haben.
  • Wenn das Verfahren mit Festmaskierungswerten daher angewandt wird auf nur den ersten von mehreren Durchgängen des Verschlüsselungsverfahrens, dann sind die Eingaben unbekannt und unkontrollierbar in den nachfolgenden Durchgängen, welche folglich keinen Schutz gegen die DPA erfordern. Das erforderliche Verschlüsselungsverfahren für die sichere Entschlüsselung kann daher vermindert werden.
  • Tabelle 3 zeigt einen Vergleich zwischen den Ergebnissen der Verschlüsselung bei Implementierung des Rijndael-Verfahrens unter Einsatz eines Verfahrens mit Festmaskierungswerten, der herkömmlichen Verschlüsselung ohne Schutz gegen die DPA und der Verschlüsselung unter Einsatz eines herkömmlichen Zufallsmaskierungswertverfahrens. In Tabelle 3 stellt S die Bearbeitungszeit dar, wenn kein Schutz bereitgestellt ist, R stellt die Kapazität des RAM dar, die erforderlich ist, wenn kein Schutz bereitgestellt wird und M stellt die Kapazität des ROM dar, die erforderlich ist, wenn kein Schutz bereitgestellt wird, wobei R << M. Die Sicherheit wird ausgedrückt durch die Anzahl möglicher Schlüssel, die zu prüfen ist durch einen Angreifer, um den Schlüssel einzuschätzen. TABELLE 3. Vergleich zwischen einem Verfahren mit Festmaskierungswerten, kein Schutz gegen DPA, und Zufallsmaskierungswertverfahren im Rijndael-Verfahren (R << M)
    Kein Schutz Verfahren mit Festmaskierungswerten Zufallsmaskierungswertverfahren
    q ≥ 2 willkürliches Modell q = 2 Modell benachbarter Bits
    Zeit für den Vorgang S ≅ S ≅ S >> S (3S bis 5S)
    Menge an RAM R ≅ R ≅ R ≥ R + M
    Menge an ROM M qM 2M ≅ M
    Kein Schutz Verfahren mit Festmaskierungswerten Zufallsmaskierungswertverfahren
    q ≥ 2 willkürliches Modell q = 2 Modell benachbarter Bits 2
    Sicherheit 1 ≥ 2128 272 >> 2128
  • Tabelle 4 zeigt einen Vergleich zwischen den Ergebnissen der Verschlüsselung bei Implementierung der DES unter Einsatz des Verfahrens mit Festmaskierungswerten, der herkömmlichen Verschlüsselung ohne Schutz gegen die DPA und der Verschlüsselung unter Einsatz des herkömmlichen Zufallsmaskierungsverfahrens. TABELLE 4. Vergleich zwischen einem Verfahren mit Festmaskierungswerten, kein Schutz gegen DPA, und Zufallsmaskierungswertverfahren im DES-Verfahren (R << M)
    Kein Schutz Verfahren mit Festmaskierungswerten Zufallsmaskierungswertverfahren
    q = 2
    Zeit für den Vorgang S ≅ S >> S(3S to 5S)
    Menge an RAM R ≅ R ≥ R + M
    Menge an ROM 8M 16M ≅ 8M
    Sicherheit 1 >> 256 >> 256
  • Aus Tabellen 3 und 4 ist ersichtlich, daß das Zufallsmaskierungswertverfahren eine lange Bearbeitungszeit und eine große Kapazität beim RAM erfordert, während das Verfahren mit Festmaskierungswerten eine Kapazität an ROM 2- oder 3-Mal größer erfordert, aber keinen großen RAM-Bereich erfordert. Das Verfahren mit Festmaskierungswerten gewährleistet daher ausreichende Sicherheit, wobei es eine Bearbeitungszeit erfordert, vergleichbar mit jener, die erforderlich ist durch die Verschlüsselung ohne den Schutz.
  • Bei den obigen Ausführungen sind hauptsächlich das Rijndael-Verfahren und DES beschrieben, aber das Verfahren mit Festmaskierungswerten kann auch angewandt werden auf die von den Rijndael-Verfahren unterschiedenen SPN-Verschlüsselungsverfahren, die von den DES unterschiedenen Feistel-Verschlüsselungsverfahren und jedes andere Verschlüsselungsverfahren in Kombination mit diesen Verfahren und ähnliche Effizienz zeigen.
  • Die oben beschriebenen Ausführungen sind nur typische Beispiele und deren Modifikationen und Variationen sind Fachleuten offensichtlich. Es sollte angemerkt werden, daß Fachleute verschiedene Modifikationen der oben beschriebenen Ausführungen machen können, ohne das Prinzip der Erfindung und der anliegenden Ansprüche zu verlassen.
  • VORTEILE DER ERFINDUNG
  • Gemäß der Erfindung kann vorteilhaft ein Verschlüsselungsprozessor zur Verschlüsselung von Daten mit einem gemeinsamen Schlüssel effizient geschützt werden vor Analyse zur Entschlüsselung, Einschätzen eines geheimen Schlüssels wird schwierig und die Sicherheit es Verschlüsselungsprozessors kann verstärkt werden.
  • 1
  • Smartcard
    Smartcard
    Secret Key
    Geheimer Schlüssel
    Encryption
    Verschlüsselung
    Plaintext
    Klartext
    Ciphertext
    chiffrierter Text
  • 7A, 76, 7C, 7D
  • Voltage
    Spannung
    Time
    Zeit
  • 8
  • Linear Transform
    lineare Transformation
  • 10
  • Plaintext
    Klartext
    Encrypting Unit
    Verschlüsselungseinheit
    Random Number Generator
    Zufallszahlengenerator
    Mask Value Gen Unit
    Maskierungswerterzeugungseinheit
    Ciphertext
    chiffrierter Text
  • 11
  • Random Number Generator
    Zufallszahlengenerator
    Encrypting Unit
    Verschlüsselungseinheit
    Mask value Generating Unit
    Maskierungswerterzeugungseinheit
    Key XOR in Random Mask Value Method
    Schlüssel-XOR bei Zufallsmaskierungswertverfahren
  • 12
  • Encrypting Unit
    Verschlüsselungseinheit
    Mask Value Generating Unit
    Maskierungswerterzeugungseinheit
  • 13A
  • Encrypting Unit
    Verschlüsselungseinheit
    NewSbox
    Neue S-Box
    Mask Value Generating Unit
    Maskierungswerterzeugungseinheit
  • 13B
  • Sboxgen
    S-Box-Generator
    Random Number Generator
    Zufallszahlengenerator
  • 14
  • Plaintext
    Klartext
    Rounds
    Durchgänge
    Subbyte
    Sub-Byte
    Shift
    Verschiebung
    Mixed column
    gemischte Spalte
    Ciphertext
    chiffrierter Text
    Conventional Rijndael Encryption
    konventionelle Rijandael-Verschlüsselung
  • 15
  • Sub-key Generator
    Unterschlüsselerzeuger
    Secret Key
    geheimer Schlüssel
    Sub-keys
    Unterschlüssel
    Generation of sub-keys in Rijndael
    Erzeugung von Unterschlüsseln bei
    Encryption
    Rijndael-Verschlüsselung
  • 18
  • multiplication over
    Multiplikation über
    Moduln Arithmetic for Irreducible
    Moduln-Arithmetic für nicht reduzierbares
    Polynomial
    Polynom
    over
    über
    Mixedcolumn
    gemischte Spalte
  • 19
  • Rounds
    Durchgänge
    i-th Round of Process
    i-ter Durchgang des Verfahrens
    Encrypting Unit
    Verschlüsselungseinheit
    Plaintext
    Klartext
    Ciphertext
    chiffrierter Text
    Random Number Generator
    Zufallszahlengenerator
    NewSbox
    Neue-S-Box
    Mask Value Gen Unit
    Maskierungswerterzeugungseinheit
  • 20
  • Random Number Generator
    Zufallszahlengenerator
    Sboxgen Generstes Sbox Sij, such that ...
    S-Box-Generator erzeugt S-Box Sij derart, daß ...
    NewSbox
    Neue-S-Box
  • 21
  • Plaintext
    Klartext
    Ciphertext
    chiffrierter Text
    Random Number Generator
    Zufallszahlengenerator
    Prozessor
    Prozessor
    Memory
    Speicher
    Encrypting Unit
    Verschlüsselungseinheit
  • 22
  • Set of Fixed Mask Values
    Satz von Festmaskierungswerten
    Key XOR
    Schlüssel-XOR
  • 23
  • Nonlinear Transform
    nichtlineare Transformation
  • 24
  • Plaintext
    Klartext
    Ciphertext
    chiffrierter Text
    Random Number Generator
    Zufallszahlengenerator
    Processor
    Prozessor
    Memory
    Speicher
    Encrypting Unit
    Verschlüsselungseinheit
  • 25
  • Key XOR
    Schlüssel-XOR
  • 26
  • Nonlinear Transform
    nichtlineare Transformation
  • 27
  • Rounds
    Durchgänge
    i-th Round of Process
    i-ter Durchgang des Verfahrens
    Plaintext
    Klartext
    Ciphertext
    chiffrierter Text
    Random Number Generator
    Zufallszahlengenerator
  • 28
  • Sbox in Conventional Rijndael Process
    S-Box bei konventionellem Rijndael-Verfahren
  • 29
  • Rounds
    Durchgänge
    i-th Round of Process
    i-ter Durchgang des Verfahrens
    Plaintext
    Klartext
    Ciphertext
    chiffrierter Text
    Random Number Generator
    Zufallszahlengenerator
  • 30
  • Sbox in Conventional Rijndael Process
    S-Box bei konventionellem Rijndael-Verfahren
  • 31
  • Rounds
    Durchgänge
    i-th Round of Process
    i-ter Durchgang des Verfahrens
    Plaintext
    Klartext
    Ciphertext
    chiffrierter Text
    Random Number Generator
    Zufallszahlengenerator
  • 32A
  • Input
    Eingabe
    Funktion
    Funktion
    Rounts
    Durchgänge
    Output
    Ausgabe
  • 32B
  • Function
    Funktion
    Linear Transform
    lineare Transformation
    Table of Nonlinear Transform
    Tabelle von nichtlinearen Transformationen
  • 33A
  • Random Number Generator
    Zufallszahlengenerator
    Input
    Eingabe
    Function
    Funktion
    Output
    Ausgabe
  • 33B
  • Function
    Funktion
  • 34A
  • Random Number Generator
    Zufallszahlengenerator
    Input
    Eingabe
    Output
    Ausgabe
  • 34B
  • Function
    Funktion
  • 35
  • Propagation of Mask in Feistel Encryption
    Ausbreitung von Maske bei Feistel-Verschlüsselung
    Function
    Funktion
  • 36
  • Function
    Funktion
    Rounts
    Durchgänge
    Path from Mask Value Generation to Cancellation in Fesitel Encryption Device
    Pfade von der Maskierungswerterzeugung zur Löschung bei Feistel-Verschlüsselungs-Vorrichtung

Claims (12)

  1. Verschlüsselungsvorrichtung (100), umfassend: – XOR-Mittel, – nichtlineare Transformationsmittel (S1, ..., Sn), – Zufallszahlenerzeugungsmittel (103, 203, 303) zum Erzeugen einer Zufallszahl h, wobei h eine ganze Zahl zwischen null und q – 1 und q gleich zwei ist, – einem ersten Auswähler (104, 204) zum Auswählen eines festen Wertes aus einem Satz von q festen Werten in Antwort auf die Zufallszahl h, wobei der Satz ein h-ter Satz ist, der zu der Zufallszahl h gehört, – einen zweiten Auswähler (105, 205, 305) zum Auswählen eines von q Sätzen von maskierten festen Tabellen in Antwort auf die Zufallszahl h, – wobei die Verschlüsselungsvorrichtung (100) dazu ausgebildet ist, N Verschlüsselungsdurchgänge i (i = 0, 1, ..., N – 1) durchzuführen, dadurch gekennzeichnet, daß – in den q Sätzen von festen Werten die Gleichung FMi,h = Ch XOR L10(FMin) erfüllt ist, wenn i = 0, und FMi,h = Ch XOR L1i(L2i-1(Dh)) erfüllt ist, wenn i > 0, wobei Ch und Dh Konstanten sind, die mit den konstanten Werten ch,j und dh,j durch die Gleichungen Ch = ch,15, ..., ch,1, ch,0, und Dh = dh,15, ..., dh,1, dh,0, ausgedrückt sind, – in jedem der Durchgänge (i-ter Durchgang) die Betätigung linearer Transformationsmittel L1i(x), einer maskierten festen Tabelle Sj,h[x] und linearer Transformationsmittel L2i(x) zur Verfügung gestellt wird, wobei FMi,h der i-te feste Wert des h-ten Satzes der q festen Werte ist, wobei i eine ganze Zahl ist und j eine ganze Zahl ist, – die XOR-Mittel (106, 302, 521) dazu ausgeführt sind, eine Eingabe von zu verschlüsselndem Klartext einer XOR-Operation zu unterziehen und – in den q Sätzen von maskierten festen Tabellen die Gleichungen (c0,j XOR c1,j) = einer der binären Werte (0101 ... 01)2 und (1010 ... 10)2 und (d0,j XOR d1,j) = einer der binären Werte (0101 ... 01)2 und (1010 ... 10)2 erfüllt sind, wobei eine feste Tabelle vor der Maskierung definiert ist als S[x], und jede i-te maskierte feste Tabelle definiert ist als Sj,h[x XOR ch,j] XOR dh,j für den j-ten festen Wert, – wobei die nichtlinearen Transformationsmittel (S1, ..., Sn) dazu ausgebildet sind, eine Eingabe darin nichtlinear in Übereinstimmung mit dem ausgewählten Satz von maskierten festen Tabellen zu transformieren.
  2. Verschlüsselungsvorrichtung (100), umfassend: – XOR-Mittel, – nichtlineare Transformationsmittel (S1, ..., Sn), – Zufallszahlenerzeugungsmittel (103, 203, 303) zum Erzeugen einer Zufallszahl h, wobei h eine ganze Zahl zwischen null und q – 1 ist, – einem ersten Auswähler (104, 204) zum Auswählen eines festen Wertes eines Satzes von q festen Werten in Antwort auf die Zufallszahl h, wobei der Satz ein h-ter Satz ist, der zu der Zufallszahl h gehört, – einen zweiten Auswähler (105, 205, 305) zum Auswählen eines von q Sätzen von maskierten festen Tabellen in Antwort auf die Zufallszahl h, – wobei die Verschlüsselungsvorrichtung (100) dazu ausgebildet ist, N Verschlüsselungsdurchgänge i (i = 0, 1, ..., N – 1) durchzuführen, dadurch gekennzeichnet, daß – q eine ganze Zahl gleich oder größer als drei ist und – in den q Sätzen von festen Werten die Gleichung FMi,h = Ch XOR L10(FMin) erfüllt ist, wenn i = 0, und FMi,h = Ch XOR L1i(L2i-1(Dh)) erfüllt ist, wenn i > 0, wobei Ch und Dh Konstanten sind, die mit den konstanten Werten ch,j und dh,j durch die Gleichungen Ch = ch,15, ..., ch,1, ch,0, und Dh = dh,15, ..., dh,1, dh,0, ausgedrückt sind, – in jeder der Durchgänge (i-ter Durchgang) die Betätigung linearer Transformationsmittel L1i(x), einer maskierten festen Tabelle Sj,h[x] und linearer Transformationsmittel L2i(x) zur Verfügung gestellt wird, wobei FMi,h der i-te feste Wert des h-ten Satzes der q festen Werte ist, wobei i eine ganze Zahl ist und j eine ganze Zahl ist, – wobei die XOR-Mittel (106, 302, 521) dazu ausgeführt sind, eine Eingabe von zu verschlüsselnden Klartext einer XOR-Operation mit einem Schlüssel mit dem ausgewählten festen Wert zu unterziehen, – wobei in den q Sätzen von maskierten festen Tabellen die Gleichungen (c0,j XOR c1,j)∨(c1,j XOR c2,j)∨ ... ∨(cq-2,j XOR cq-1,j) = (1111 ... 11)2 und (d0,j XOR d1,j)∨(d1,j XOR d2,j)∨ ... ∨(dq-2,j XOR dq-1,j) = (1111 ... 11)2 erfüllt sind und wobei eine feste Tabelle vor dem Maskieren definiert ist als S[x] und jede i-te maskierte feste Tabelle definiert ist als Sj,h[x XOR ch,j] XOR dh,j für den j-ten festen Wert, – wobei die nichtlinearen Transformationsmittel (S1, ..., Sn) dazu ausgebildet sind, eine Eingabe darin in Übereinstimmung mit dem ausgewählten Satz von maskierten festen Tabellen nichtlinear zu transformieren.
  3. Verschlüsselungsvorrichtung nach einem der vorangehenden Ansprüche, ferner umfassend: – eine Verschlüsselungseinheit umfassend: – die ersten XOR-Mittel und – die nichtlinearen Transformationsmittel (S1, ..., Sn), – zweite XOR-Mittel, um eine Eingabe in die Verschlüsselungsvorrichtung (100) einer XOR-Operation mit einem festen Wert zu unterziehen, der in Antwort auf die Zufallszahl h ausgewählt ist, und – dritte XOR-Mittel, um eine Ausgabe aus der Verschlüsselungseinheit einer XOR-Operation mit dem festen Wert zu unterziehen, der in Antwort auf die Zufallszahl h ausgewählt wurde.
  4. Verschlüsselungsvorrichtung (100) umfassend: – Zufallszahlenerzeugungsmittel (103, 203, 303) zum Erzeugen einer Zufallszahl h, wobei h eine ganze Zahl zwischen null und q – 1 ist und q gleich zwei ist, – eine Vielzahl von Verschlüsselungseinheiten (101), die dazu ausgebildet sind, eine erste Vielzahl von Verschlüsselungsdurchgängen durchzuführen, wobei jede der Vielzahl von Verschlüsselungseinheiten (101) umfaßt: – nichtlineare Transformationsmittel (S1, ..., Sn) zum nichtlinearen Transformieren einer darin gemachten Eingabe, – XOR-Mittel, um eine erste Eingabe darin einer XOR-Operation mit einer zweiten Eingabe darin zu unterziehen, wobei die zweite Eingabe in die XOR-Mittel an eine Ausgabe der nichtlinearen Transformationsmittel (S1, ..., Sn) gekoppelt ist, wobei der zu verschlüsselnde Klartext die erste Eingabe für einen ersten der Verschlüsselungsdurchgänge ist, und wobei das nichtlineare Transformationsmittel (S1, ..., Sn) dazu angepaßt ist, q feste Werte zu verwenden, und umfaßt: – einen Auswähler (SW) zum Auswählen eines der q festen Werte in Antwort auf die Zufallszahl h, – weitere XOR-Mittel, um eine Eingabe darin einer XOR-Operation mit einem Schlüssel mit dem ausgewählten festen Wert zu unterziehen, dadurch gekennzeichnet, daß: – das nichtlineare Transformationsmittel (S1, ..., Sn) dazu ausgebildet ist, die q festen Werte zu verwenden, wobei die Gleichung FMi,h = Ch XOR L10(FMin) erfüllt ist, wenn i = 0, und FMi,h = Ch XOR L1i(L2i-1(Dh)) erfüllt ist, wenn i > 0, wobei Ch und Dh Konstanten sind, die mit den konstanten Werten ch,j und dh,j durch die Gleichungen Ch = ch,15, ..., ch,1, ch,0, und Dh = dh,15, ..., dh,1, dh,0 ausgedrückt werden, – in jedem der Durchgänge (i-ter Durchgang) die Betätigung linearer Transformationsmittel L1i(x), einer maskierten festen Tabelle Sj,h[x] und linearer Transformationsmittel L2i(x) zur Verfügung gestellt wird, wobei FMi,h der i-te feste Wert des h-ten Satzes der q festen Werte ist, wobei i eine ganze Zahl und j eine ganze Zahl ist, – jedes der nichtlinearen Transformationsmittel (S1, ..., Sn) dazu ausgebildet ist, eine Eingabe darin in Übereinstimmung mit einer entsprechenden einer Vielzahl von maskierten festen Tabellen nichtlinear zu transformieren, wobei die Gleichungen (c0,j XOR c1,j) = einer der binären Werte von (0101 ... 01)2 und (1010 ... 10)2 und (d0,j XOR d1,j) = einer der binären Werte von (0101 ... 01)2 and (1010 ... 10)2 erfüllt sind, wobei eine feste Tabelle vor dem Maskieren definiert ist als S [x] und eine j-te maskierte feste Tabelle definiert ist als Sj,h[x XOR ch,j] XOR dh,j für die i-te Verschlüsselungseinheit.
  5. Verschlüsselungsvorrichtung (100) umfassend: – Zufallszahlenerzeugungsmittel (103, 203, 303) zum Erzeugen einer Zufallszahl h, wobei h eine ganze Zahl zwischen null und q – 1 ist, – eine Vielzahl von Verschlüsselungseinheiten (101), die dazu ausgebildet sind, eine erste Vielzahl von Verschlüsselungsdurchgängen auszuführen, wobei der jede der Verschlüsselungseinheiten (101) umfaßt: – nichtlineare Transformationsmittel (S1, ..., Sn) zum nichtlinearen Transformieren einer Eingabe darin, – XOR-Mittel, um eine ersten Eingabe darin einer XOR-Operation mit einer zweiten Eingabe darin zu unterziehen, wobei die zweite Eingabe in die XOR-Mittel an eine Ausgabe der nichtlinearen Transformationsmittel (S1, ..., Sn) gekoppelt ist, wobei der zu verschlüsselnde Klartext die erste Eingabe für einen ersten der Verschlüsselungsdurchgänge ist, und wobei das nichtlineare Transformationsmittel (S1, ..., Sn) dazu ausgebildet ist, q feste Werte zu verwenden, und umfaßt: – einen Auswähler (SW) zum Auswählen eines ersten der q festen Werte in Antwort auf die Zufallszahl h und – weitere XOR-Mittel, um eine Eingabe darin einer XOR-Operation mit einem XOR eines Schlüssels mit dem ausgewählten festen Wert zu unterziehen, dadurch gekennzeichnet, daß: – q eine ganze Zahl gleich oder größer als drei ist, – das nichtlineare Transformationsmittel (S1, ..., Sn) dazu ausgebildet ist, die q festen Werte zu verwenden, wobei die Gleichung FMi,h = Ch XOR L10(FMin) erfüllt ist, wenn i = 0, und FMi,h = Ch XOR L1i(L2i-1(Dh)) erfüllt ist, wenn i > 0, wobei Ch und Dh Konstanten sind, die mit konstanten Werten ch,j und dh,j durch die Gleichungen Ch = ch,15, ..., ch,1, ch,0, und Dh = dh,15, ..., dh,1, dh,0 ausgedrückt werden, – in jedem der Durchgänge (i-ter Durchgang) die Betätigung linearer Transformationsmittel L1i(x), einer maskierten festen Tabelle Sj,h[x] und linearer Transformationsmittel L2i(x) zur Verfügung gestellt wird, wobei FMi,h der i-te feste Wert des h-ten Satzes der q festen Werte ist, wobei i eine ganze Zahl ist und j eine ganze Zahl ist, – jedes der nichtlinearen Transformationsmittel (S1, ..., Sn) dazu ausgebildet ist, eine Eingabe darin in Übereinstimmung mit einer entsprechenden einer Vielzahl von maskierten festen Tabellen nichtlinear zu transformieren, wobei die Gleichungen (c0,j XOR c1,j)∨(c1,j XOR c2,j)∨ ... ∨(cq-2,j XOR cq-1,j) = (1111 ... 11)2 und (d0,j XOR d1,j)∨(d1,j XOR d2,j)∨ ... ∨(dq-2,j XOR dq-1,j) = (1111 ... 11)2 erfüllt sind und eine feste Tabelle vor dem Maskieren definiert ist als S[x] und eine j-te maskierte feste Tabelle definiert ist als Sj,h[x XOR ch,j] XOR dh,j für die i-te Verschüsselungseinheit.
  6. Verschlüsselungsvorrichtung (100) nach einem der Ansprüche 4 oder 5, dadurch gekennzeichnet, daß das nichtlineare Transformationsmittel (S1, ..., Sn) darin ferner umfaßt: – eine Vielzahl von nichtlinearen Transformationsmitteln (S1, ..., Sn), um eine Eingabe in Übereinstimmung mit einer festen Tabelle nichtlinear zu transformieren, und – einen Auswähler zum Auswählen eines der Vielzahl der nichtlinearen Transformationsmittel (S1, ..., Sn).
  7. Verschlüsselungsvorrichtung (100) nach Anspruch 6, dadurch gekennzeichnet, daß die festen Tabellen der entsprechenden nichtlinearen Transformationsmittel (S1, ..., Sn) in dem entsprechenden Verschlüsselungsdurchgang identisch sind.
  8. Verschlüsselungsvorrichtung (100) nach einem der Ansprüche 4 bis 7, dadurch gekennzeichnet, daß eine Maske während aufeinanderfolgenden der Vielzahl von Verschlüsselungsdurchgängen gelöscht wird.
  9. Verschlüsselungsvorrichtung (100) nach einem der Ansprüche 4 bis 8, dadurch gekennzeichnet, daß das Maskieren in jedem einer zweiten Vielzahl von Verschlüsselungsdurchgängen der ersten Vielzahl von Verschlüsselungsdurchgängen durchgeführt wird, wobei die zweite Vielzahl kleiner ist als die erste Vielzahl.
  10. Verschlüsselungsvorrichtung (100) nach einem der vorangehenden Ansprüche, wobei die Gleichung FMi,h = Ch XOR L10(FMin) erfüllt ist und dadurch gekennzeichnet, daß das lineare Transformationsmittel L1i(x) definiert ist als L1i(x) = x.
  11. Verschlüsselungsvorrichtung (100) nach einem der vorangehenden Ansprüche, wobei die Gleichung FMi,h = Ch XOR L1i(L2i-1(Dh)) für i ≥ 1 erfüllt ist und dadurch gekennzeichnet, daß das lineare Transformationsmittel (S1, ..., Sn) L2i(x) definiert ist als L2i(x) = Gemischte Spalte (Shift(x)).
  12. Verschlüsselungsvorrichtung (100) nach einem der vorangehenden Ansprüche, wobei die Gleichung FMi,h = Ch XOR L1i(L2i-1(Dh)) für i ≥ 1 erfüllt ist und dadurch gekennzeichnet, daß das lineare Transformationsmittel L2i(x) definiert ist als Shift(x).
DE60222052T 2001-06-13 2002-01-25 Verschlüsselung gesichert gegen Angriffe durch die Analyse der Leistungsaufnahme (DPA) Expired - Lifetime DE60222052T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2001178407A JP4596686B2 (ja) 2001-06-13 2001-06-13 Dpaに対して安全な暗号化
JP2001178407 2001-06-13

Publications (2)

Publication Number Publication Date
DE60222052D1 DE60222052D1 (de) 2007-10-11
DE60222052T2 true DE60222052T2 (de) 2008-05-21

Family

ID=19019110

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60222052T Expired - Lifetime DE60222052T2 (de) 2001-06-13 2002-01-25 Verschlüsselung gesichert gegen Angriffe durch die Analyse der Leistungsaufnahme (DPA)

Country Status (4)

Country Link
US (1) US7386130B2 (de)
EP (2) EP1772985A1 (de)
JP (1) JP4596686B2 (de)
DE (1) DE60222052T2 (de)

Families Citing this family (104)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7092523B2 (en) * 1999-01-11 2006-08-15 Certicom Corp. Method and apparatus for minimizing differential power attacks on processors
US7599491B2 (en) * 1999-01-11 2009-10-06 Certicom Corp. Method for strengthening the implementation of ECDSA against power analysis
US9323955B2 (en) * 2000-12-21 2016-04-26 Gemalto Sa Method for protecting a logic or mathematical operator installed in an electronic module with a microprocessor as well as the associated embedded electronic module and the system
US8582774B2 (en) * 2002-03-07 2013-11-12 Gemalto Sa Method for making safe an electronic cryptography assembly with a secret key
JP4515716B2 (ja) * 2002-04-03 2010-08-04 パナソニック株式会社 拡大鍵生成装置、暗号化装置および暗号化システム
JP4357815B2 (ja) 2002-09-11 2009-11-04 株式会社東芝 暗号演算回路
FR2844896A1 (fr) * 2002-09-19 2004-03-26 St Microelectronics Sa Alimentation d'un circuit de traitement asynchrone de donnees
US7190791B2 (en) * 2002-11-20 2007-03-13 Stephen Laurence Boren Method of encryption using multi-key process to create a variable-length key
JP2004212828A (ja) * 2003-01-08 2004-07-29 Sony Corp 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
EP1457858A1 (de) * 2003-03-14 2004-09-15 SCHLUMBERGER Systèmes Methode um ein elektronisches System zu sichern, das ein Kryptoprocessor enthält
JP3927151B2 (ja) * 2003-05-30 2007-06-06 株式会社東芝 記憶装置
DE10341096A1 (de) * 2003-09-05 2005-03-31 Giesecke & Devrient Gmbh Übergang zwischen maskierten Repräsentationen eines Wertes bei kryptographischen Berechnungen
JP3998616B2 (ja) * 2003-09-10 2007-10-31 株式会社東芝 暗号化/復号モジュール
JPWO2005027403A1 (ja) * 2003-09-11 2006-11-24 株式会社ルネサステクノロジ 情報処理装置
JP4611643B2 (ja) * 2004-01-16 2011-01-12 三菱電機株式会社 個別鍵生成装置
KR101061906B1 (ko) 2004-02-19 2011-09-02 삼성전자주식회사 전력분석공격에 안전한 기본 연산 장치 및 방법
KR100594265B1 (ko) * 2004-03-16 2006-06-30 삼성전자주식회사 매스킹 방법이 적용된 데이터 암호처리장치, aes암호시스템 및 aes 암호방법.
DE602004023436D1 (de) * 2004-03-29 2009-11-12 St Microelectronics Sa Prozessor zum ausführen eines aes algorithmus
US7899190B2 (en) * 2004-04-16 2011-03-01 Research In Motion Limited Security countermeasures for power analysis attacks
EP1596278A1 (de) * 2004-05-11 2005-11-16 Axalto SA Verfahren zum Schutz einer kryptographischen Einheit mittels homographischer Maskierung
ATE345620T1 (de) * 2004-05-24 2006-12-15 Research In Motion Ltd Tabellenmaskierung zur beständigkeit gegen angriffe durch analyse der leistungsaufnahme.
US7848514B2 (en) 2004-05-24 2010-12-07 Research In Motion Limited Table masking for resistance to power analysis attacks
US8577942B2 (en) 2004-07-07 2013-11-05 Mitsubishi Electric Corporation Electronic device and data processing device for implementing cryptographic algorithms
KR20060081847A (ko) * 2005-01-10 2006-07-13 삼성전자주식회사 비밀키를 보호하는 스마트 카드 및 그것의 방법
WO2006076800A1 (en) 2005-01-18 2006-07-27 Certicom Corp. Accelerated verification of digital signatures and public keys
US8467535B2 (en) * 2005-01-18 2013-06-18 Certicom Corp. Accelerated verification of digital signatures and public keys
KR100725169B1 (ko) * 2005-01-27 2007-06-04 삼성전자주식회사 전력 분석 공격에 안전한 논리 연산 장치 및 방법
GB2443358A (en) * 2005-01-27 2008-04-30 Samsung Electronics Co Ltd Cryptographic logic circuits and method of performing logic operations
EP1860630B1 (de) 2005-03-16 2018-12-26 Mitsubishi Electric Corporation Datenumsetzungsvorrichtung und datenumsetzungsverfahren
CN101147182B (zh) * 2005-03-31 2010-09-01 松下电器产业株式会社 数据加密装置及数据加密方法
CN101167301B (zh) * 2005-04-27 2011-02-16 松下电器产业株式会社 机密信息处理用主机及机密信息处理方法
EP1876577A1 (de) * 2005-04-28 2008-01-09 Matsushita Electric Industrial Co., Ltd. Programmkonvertierungsvorrichtung, verschlüsselungseinrichtung und verschlüsselungsverfahren
JP4887668B2 (ja) * 2005-06-09 2012-02-29 ソニー株式会社 暗号化復号処理回路および暗号化復号システム
CN101213513B (zh) 2005-06-29 2013-06-12 爱迪德艾恩德霍芬公司 保护数据处理装置免受密码攻击或分析的设备和方法
JP4586163B2 (ja) * 2005-09-09 2010-11-24 国立大学法人岩手大学 暗号化システム
JP4783104B2 (ja) 2005-09-29 2011-09-28 株式会社東芝 暗号化/復号装置
FR2893796B1 (fr) * 2005-11-21 2008-01-04 Atmel Corp Procede de protection par chiffrement
JP2007189659A (ja) * 2005-12-15 2007-07-26 Toshiba Corp 暗号化装置、暗号化方法及び暗号化プログラム
DE602006020010D1 (de) * 2005-12-19 2011-03-24 St Microelectronics Sa Schutz der Ausführung eines DES-Algorithmus
JP2007192893A (ja) * 2006-01-17 2007-08-02 Sony Corp 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4986206B2 (ja) * 2006-02-22 2012-07-25 株式会社日立製作所 暗号処理方法及び暗号処理装置
DE602006015902D1 (de) * 2006-03-07 2010-09-16 Research In Motion Ltd Tabellenteilung für kryptografische Verfahren
WO2007121035A2 (en) 2006-03-23 2007-10-25 Exegy Incorporated Method and system for high throughput blockwise independent encryption/decryption
EP1840732A1 (de) * 2006-03-31 2007-10-03 Axalto SA Schutz vor Seitenkanalangriffen
FR2903508B1 (fr) * 2006-07-10 2008-10-17 Sagem Defense Securite Protection d'un programme interprete par une machine virtuelle
JP4882598B2 (ja) * 2006-07-28 2012-02-22 ソニー株式会社 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム
JP5023624B2 (ja) * 2006-09-01 2012-09-12 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4909018B2 (ja) * 2006-11-16 2012-04-04 富士通株式会社 共通鍵暗号のための暗号化装置
US9411976B2 (en) * 2006-12-01 2016-08-09 Maidsafe Foundation Communication system and method
US8422668B1 (en) * 2006-12-15 2013-04-16 Spansion Llc Table lookup operation on masked data
US7949130B2 (en) 2006-12-28 2011-05-24 Intel Corporation Architecture and instruction set for implementing advanced encryption standard (AES)
US7970129B2 (en) * 2007-04-19 2011-06-28 Spansion Llc Selection of a lookup table with data masked with a combination of an additive and multiplicative mask
JP4936996B2 (ja) * 2007-05-24 2012-05-23 株式会社東芝 非線形データ変換器、暗号化装置、および復号装置
WO2009029842A1 (en) * 2007-08-31 2009-03-05 Exegy Incorporated Method and apparatus for hardware-accelerated encryption/decryption
US7945050B2 (en) * 2007-09-28 2011-05-17 Intel Corporation Suppressing power supply noise using data scrambling in double data rate memory systems
US8503678B2 (en) * 2007-09-28 2013-08-06 Intel Corporation Suppressing power supply noise using data scrambling in double data rate memory systems
CA2688592C (en) * 2007-10-01 2014-04-15 Research In Motion Limited Substitution table masking for cryptographic processes
KR101011264B1 (ko) * 2008-01-18 2011-01-27 고려대학교 산학협력단 아리아 마스킹 방법 및 이를 이용한 아리아 암호 장치 및방법
EP2273472B1 (de) 2008-03-31 2016-02-17 Fujitsu Limited Mit einer funktion für einen gemeinsamen schlüsselcode ausgestatteter codierer und eingebaute geräte
JP5268609B2 (ja) * 2008-12-09 2013-08-21 株式会社東芝 暗号処理装置及び演算方法
JP5202350B2 (ja) * 2009-01-16 2013-06-05 三菱電機株式会社 暗号処理装置及び暗号処理方法及び暗号処理プログラム
FR2941343B1 (fr) * 2009-01-20 2011-04-08 Groupe Des Ecoles De Telecommunications Get Ecole Nat Superieure Des Telecommunications Enst Circuit de cryptographie, protege notamment contre les attaques par observation de fuites d'information par leur chiffrement.
KR101715027B1 (ko) * 2009-03-10 2017-03-22 이르데토 비.브이. 입력 의존형 인코딩들을 이용한 화이트-박스 암호화 시스템
JP4837058B2 (ja) * 2009-03-10 2011-12-14 株式会社東芝 演算装置及びプログラム
JP2010245881A (ja) * 2009-04-07 2010-10-28 Toshiba Corp 暗号処理装置
US8615078B2 (en) * 2009-08-21 2013-12-24 Electronics And Telecommunications Research Institute Method and apparatus for processing F-function in seed encryption system
JP2011169977A (ja) * 2010-02-16 2011-09-01 Renesas Electronics Corp 暗号処理装置
US8619985B2 (en) 2010-04-27 2013-12-31 Research In Motion Limited Table splitting for cryptographic processes
DE102010028375A1 (de) * 2010-04-29 2011-11-03 Robert Bosch Gmbh Schutz vor kryptoanalytischen Seitenkanalattacken
DE102010029735A1 (de) * 2010-06-07 2011-12-08 Robert Bosch Gmbh Verfahren zum Generieren eines Bitvektors
JP5060606B2 (ja) * 2010-09-17 2012-10-31 株式会社東芝 暗号化装置
US20120079462A1 (en) * 2010-09-24 2012-03-29 SoftKrypt LLC Systems and methods of source software code obfuscation
KR20120070873A (ko) * 2010-12-22 2012-07-02 한국전자통신연구원 부채널 방지 마스킹 덧셈 연산 장치
FR2977953A1 (fr) * 2011-07-13 2013-01-18 St Microelectronics Rousset Protection d'un calcul d'exponentiation modulaire par addition d'une quantite aleatoire
MY178555A (en) * 2011-08-19 2020-10-16 Mimos Berhad Method and system for providing a secured internet protocol based communication
US8525545B1 (en) 2011-08-26 2013-09-03 Lockheed Martin Corporation Power isolation during sensitive operations
US8624624B1 (en) 2011-08-26 2014-01-07 Lockheed Martin Corporation Power isolation during sensitive operations
JP5481455B2 (ja) * 2011-09-27 2014-04-23 株式会社東芝 暗号処理装置
US8745376B2 (en) 2011-10-14 2014-06-03 Certicom Corp. Verifying implicit certificates and digital signatures
JP5711681B2 (ja) * 2012-03-06 2015-05-07 株式会社東芝 暗号処理装置
FR2995111B1 (fr) * 2012-09-04 2015-07-24 Morpho Protection contre canaux auxiliaires
CN103001762B (zh) * 2012-11-25 2015-08-19 宁波大学 一种密码器件上防御零值功耗攻击的方法
DE102012025416A1 (de) * 2012-12-21 2014-06-26 Giesecke & Devrient Gmbh Verfahren zum Betreiben eines portablen Datenträgers sowie ein solcher portabler Datenträger
JP5500277B2 (ja) * 2013-01-28 2014-05-21 富士通株式会社 共通鍵暗号機能を搭載した暗号化装置及び組込装置
US9959429B2 (en) * 2013-03-15 2018-05-01 Cryptography Research, Inc. Asymmetrically masked multiplication
US10015152B2 (en) * 2014-04-02 2018-07-03 International Business Machines Corporation Securing data in a dispersed storage network
CN103905462B (zh) * 2014-04-16 2017-05-17 深圳国微技术有限公司 可抵御差分功耗分析攻击的加密处理装置及方法
US9871651B2 (en) 2014-06-16 2018-01-16 Cisco Technology, Inc. Differential power analysis countermeasures
US9654111B1 (en) * 2014-11-12 2017-05-16 Maxim Integrated Products, Inc. Systems and methods for protecting data using reconfigurable logic paths
US9792246B2 (en) 2014-12-27 2017-10-17 Intel Corporation Lower-power scrambling with improved signal integrity
CN106161005B (zh) * 2015-03-31 2019-05-07 北京南瑞智芯微电子科技有限公司 一种分组加密算法防攻击的掩码方法和装置
DE102015115649A1 (de) 2015-09-16 2017-03-16 Claas Tractor Sas Landwirtschaftliches Arbeitsfahrzeug
FR3048096A1 (fr) * 2016-02-22 2017-08-25 Eshard Procede de protection d'un circuit contre une analyse par canaux auxiliaires
EP3220304B1 (de) 2016-02-22 2018-11-07 Eshard Verfahren zur prüfung des widerstands einer schaltung bei einer seitenkanalanalyse
EP3264397B1 (de) * 2016-06-28 2020-09-16 Eshard Schutzverfahren und vorrichtung gegen eine seitenkanalanalyse
EP3264311B1 (de) 2016-06-28 2021-01-13 Eshard Schutzverfahren und vorrichtung gegen eine seitenkanalanalyse
EP3264396B1 (de) * 2016-06-28 2022-01-26 Eshard Verfahren zum schutz eines substitutionsvorgangs unter verwendung eines substitutionstischs gegen eine seitenkanalanalyse
CN107547189A (zh) 2016-06-28 2018-01-05 埃沙尔公司 免受侧信道分析的保护方法和设备
US10243937B2 (en) * 2016-07-08 2019-03-26 Nxp B.V. Equality check implemented with secret sharing
US10256973B2 (en) * 2016-09-30 2019-04-09 Intel Corporation Linear masking circuits for side-channel immunization of advanced encryption standard hardware
FI20165911L (fi) * 2016-11-30 2018-05-31 Sam Widlund Menetelmä ja järjestelmä tiedon salaukseen
US11507699B2 (en) * 2019-09-27 2022-11-22 Intel Corporation Processor with private pipeline
KR20210108787A (ko) 2020-02-26 2021-09-03 삼성전자주식회사 듀얼 인코더를 포함하는 시큐리티 회로 및 이를 포함하는 암복호화기
JP7314108B2 (ja) * 2020-08-27 2023-07-25 株式会社東芝 暗号処理装置、暗号処理方法およびプログラム

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5452358A (en) 1994-02-08 1995-09-19 Apple Computer, Inc. Method and apparatus for improving the security of an electronic codebook encryption scheme utilizing a data dependent encryption function
GB2288519A (en) * 1994-04-05 1995-10-18 Ibm Data encryption
US5870470A (en) 1996-02-20 1999-02-09 International Business Machines Corporation Method and apparatus for encrypting long blocks using a short-block encryption procedure
WO1999067766A2 (en) * 1998-06-03 1999-12-29 Cryptography Research, Inc. Balanced cryptographic computational method and apparatus for leak minimization in smartcards and other cryptosystems
AU6381699A (en) * 1998-06-03 2000-01-10 Cryptography Research, Inc. Improved des and other cryptographic processes with leak minimization for smartcards and other cryptosystems
JP3600454B2 (ja) * 1998-08-20 2004-12-15 株式会社東芝 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体
US6275586B1 (en) * 1998-09-10 2001-08-14 Igt Cryptographically secure pseudo random number generator
FR2784829B1 (fr) 1998-10-16 2000-12-29 Gemplus Card Int Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete
FR2784831B1 (fr) 1998-10-16 2000-12-15 Gemplus Card Int Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete
FR2785477B1 (fr) 1998-10-29 2000-12-29 Gemplus Card Int Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete
JP2000165375A (ja) * 1998-11-30 2000-06-16 Hitachi Ltd 情報処理装置、icカード
FR2789535B1 (fr) 1999-02-04 2001-09-28 Bull Cp8 Procede de securisation d'un ensemble electronique de cryptographie a cle secrete contre les attaques par analyse physique
FR2789776B1 (fr) 1999-02-17 2001-04-06 Gemplus Card Int Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete
FR2790890B1 (fr) * 1999-03-08 2001-04-27 Gemplus Card Int Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete
JP2000305453A (ja) 1999-04-21 2000-11-02 Nec Corp 暗号化装置,復号装置,および暗号化・復号装置
US6295606B1 (en) * 1999-07-26 2001-09-25 Motorola, Inc. Method and apparatus for preventing information leakage attacks on a microelectronic assembly
DE19936529C1 (de) 1999-08-03 2001-02-01 Orga Kartensysteme Gmbh Verfahren zur Verschlüsselung von Daten mit Hilfe einer Standard-Verschlüsselung in einem mikroprozessorgestützten, tragbaren Datenträger
WO2001024439A1 (fr) * 1999-09-29 2001-04-05 Hitachi, Ltd. Dispositif, programme ou systeme de traitement d'informations secretes
CA2298990A1 (en) * 2000-02-18 2001-08-18 Cloakware Corporation Method and system for resistance to power analysis
FR2809893B1 (fr) * 2000-06-02 2002-11-15 Gemplus Card Int Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique sur courbe elliptique
US7000111B1 (en) * 2000-11-07 2006-02-14 Ericsson Inc. Method for masking secret multiplicands

Also Published As

Publication number Publication date
JP4596686B2 (ja) 2010-12-08
EP1267514A2 (de) 2002-12-18
JP2002366029A (ja) 2002-12-20
US20030048903A1 (en) 2003-03-13
EP1267514B1 (de) 2007-08-29
US7386130B2 (en) 2008-06-10
EP1267514A3 (de) 2003-11-05
EP1772985A1 (de) 2007-04-11
EP1267514A9 (de) 2003-05-21
DE60222052D1 (de) 2007-10-11

Similar Documents

Publication Publication Date Title
DE60222052T2 (de) Verschlüsselung gesichert gegen Angriffe durch die Analyse der Leistungsaufnahme (DPA)
DE69936024T2 (de) Vorrichtung zur Verschlüsselung/Entschlüsselung
DE60217260T2 (de) Datenverarbeitungs- und Verschlüsselungseinheit
DE10201449C1 (de) Rechenwerk, Verfahren zum Ausführen einer Operation mit einem verschlüsselten Operanden, Carry-Select-Addierer und Kryptographieprozessor
DE69721439T2 (de) Kryptographisches verfahren und einrichtung zum nichtlinearen zusammenfugen eines datenblocks und eines schlussels
DE69931606T2 (de) Datenwandler und aufzeichnungsmedium zur aufnahme eines programms zur datenumwandlung
DE69728465T2 (de) Nichtparalleler Mehrzyklus-Verschlüsselungsapparat
DE60119410T2 (de) Vorrichtung und Verfahren zur Blockverschlüsselung und zur Entschlüsselung
DE19827904C2 (de) Blockchiffrier- oder -dechiffrierverfahren und Blockchiffrier- oder -dechiffriervorrichtung
EP3218893B1 (de) Gehärtete white box implementierung
DE602004013206T2 (de) Verfahren und diesbezügliche einrichtung zur hardwareorientierten umsetzung zwischen arithmetik- und boolscher zufallsmaskierung
EP1668515B1 (de) Wortindividuelle schlüsselerzeugung
DE69938539T2 (de) Kryptographische Einrichtung mit parallel geschalteten Verschlüsselungsblöcken
DE60111746T2 (de) Lineartransformation für symmetrische verschlüsselungssysteme
DE102005012098A1 (de) Datenchiffrierprozessor sowie AES-Chiffriersystem und AES-Chiffrierverfahren
DE69911815T2 (de) Selbstkorrigierendes zufallsverschlüsselungssystem und -verfahren
DE69937007T2 (de) Verfahren und vorrichtung zur verschlüsselung und entschlüsselung von daten
DE10148415C2 (de) Verfahren und Vorrichtung zum Verschlüsseln und Entschlüsseln von Daten
DE69933108T2 (de) Synchrone bitstromverschlüsselung
DE69932740T2 (de) Verfahren und vorrichtung zur kryptographischen datenverarbeitung
DE69729297T2 (de) Verschlüsselungsvorrichtung für binärkodierte nachrichten
DE60301750T2 (de) Vorrichtung zur Erzeugung eines erweiterten Schlüssels, Verschlüsselungsvorrichtung und Verschlüsselungssystem
DE102004038594B4 (de) Verschlüsselungsverfahren und -vorrichtung
DE102004018874B4 (de) Verfahren und Vorrichtung zum Bestimmen eines Ergebnisses
EP1676394A1 (de) Verfahren und vorrichtung zur ver-/ entschlüsselung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition