DE602005002349T2 - Schlüsselmaskierung für kryptographische Prozesse - Google Patents

Schlüsselmaskierung für kryptographische Prozesse Download PDF

Info

Publication number
DE602005002349T2
DE602005002349T2 DE602005002349T DE602005002349T DE602005002349T2 DE 602005002349 T2 DE602005002349 T2 DE 602005002349T2 DE 602005002349 T DE602005002349 T DE 602005002349T DE 602005002349 T DE602005002349 T DE 602005002349T DE 602005002349 T2 DE602005002349 T2 DE 602005002349T2
Authority
DE
Germany
Prior art keywords
key
masked
masks
group
mask
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE602005002349T
Other languages
English (en)
Other versions
DE602005002349D1 (de
Inventor
Catherine Helen Waterloo Gebotys
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.)
BlackBerry Ltd
Original Assignee
Research in Motion 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 Research in Motion Ltd filed Critical Research in Motion Ltd
Publication of DE602005002349D1 publication Critical patent/DE602005002349D1/de
Application granted granted Critical
Publication of DE602005002349T2 publication Critical patent/DE602005002349T2/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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

Description

  • Die vorliegende Erfindung betrifft allgemein Datenverarbeitungssysteme und spezieller Datenverarbeitungssysteme, in denen Verschlüsselungsoperationen und Schutzmaßnahmen gegen Stromangriffe (Power Analysis) auf derartige Operationen implementiert sind.
  • Operationen in Datenverarbeitungssystemen müssen sehr häufig in einer sicheren Art und Weise ausgeführt werden. Für eingebettete Datenverarbeitungsgeräte und pervasive Systeme ist die Sicherheit der Operationen häufig entscheidend. Um sichere Operationen und Kommunikation zu gewährleisten, kommen in diesen Systemen kryptografische Verfahren zum Einsatz.
  • Diese kryptografischen Verfahren müssen ihrerseits wiederum sicher implementiert werden. Allerdings sind kryptografische Verfahren Ziel von Angriffen. Eine Art des nicht invasiven Angriffs auf Datenverarbeitungsgeräte ist als Power Analysis bekannt. Bei einem Power-Analysis-Angriff wird der Stromverbrauch einer oder mehrerer Komponente(n) eines Geräts gemessen, während das Gerät ein kryptografisches Verfahren ausführt.
  • Die aus der Überwachung des Stromverbrauchs des Geräts gewonnen Daten werden zusammen mit dem Wissen um die von dem Gerät ausgeführten Operationen genutzt, um die geheimen Informationen auszulesen, die Bestandteil des kryptografischen Verfahrens sind.
  • Eine Variante des Power-Analysis-Angriffs ist die Differential Power Analysis (DPA) (siehe beispielsweise „Differential Power Analysis", P. Kocher, CRYPTO'99, Lecture Notes in Computer Science, 1666, S. 388–397, 1999, Springer-Verlag). Bei diesem Ansatz wird eine große Zahl von Eingabewerten generiert, indem verschiedene Bits in Werten, die mithilfe des in einem Gerät implementierten kryptografischen Verfahrens codiert werden sollen, variiert werden. Der DPA-Angriff misst für jeden dieser variierenden Werte den Stromverbrauch an verschiedenen Punkten in einem Datenverarbeitungsgerät und verwendet in einer statistischen Analyse die differentiellen Daten, um einen wahrscheinlichen Schlüssel für das kryptografische Verfahren (die geheime Information) zu ermitteln.
  • DPA-Angriffe können auf die Eingabe oder die Ausgabe von Substitutionstabellen (auch als Substitutionsboxen oder „S-Boxen" bezeichnet) zielen, die in kryptografischen Algorithmen üblich und häufig als Lookup-Tabelle realisiert sind. Eine S-Box wird in der Regel mit einer Kombination aus Bits und Klartext indiziert. Bei der Ausführung eines Angriffs zum Ermitteln eines in einem kryptografischen Verfahren benutzten Schlüsselwerts kontrolliert der Angreifer die Klartextwerte und rät die Schlüsselbits. Auf der Grundlage dieser geratenen Werte werden Berechnungen anhand der gewonnenen Stromverbrauchsdaten ausgeführt, um einen Satz DPA-Daten zu erzeugen. Die DPA-Daten mit dem höchsten Spitzenwert werden verwendet, um zu bestimmen, welcher der geratenen Schlüsselwerte wahrscheinlich korrekt war. Wie für Fachleute auf diesem Gebiet ersichtlich ist, basiert ein anderer Angriff auf der elektromagnetischen Analyse (EMA) des Geräts, das einen kryptografischen Prozess ausführt. Obwohl die nachstehende Beschreibung sich auf Stromangriffe bezieht, versteht es sich von selbst, dass EMA-Angriffe u. U. dieselben Probleme bereiten.
  • Gegen diese DPA-Angriffe auf die S-Box sind verschiedene Gegenmaßnahmen bekannt. Messerges ("Securing the AES Finalists Against Power Analysis Attacks", T. Messerges, FSE 2000, Lecture Notes in Computer Science, 1978, S. 150–164, 2001, Springer-Verlag) beschreibt ein Verfahren, bei dem Tabellen mit verschiedener zufälliger Ausgabemaske innerhalb des kryptografischen Algorithmus häufig neu generiert werden. Allerdings bringt ein solcher Ansatz relativ hohe Overhead-Kosten für jeden Regenerierungsschritt mit sich. Um das Latenz-Overhead zu optimieren, das für das Regenerieren der Tabellen erforderlich ist, schlägt Itoh („DPA countermeasure based an the 'masking method'", K. Itoh et al., ICICS 2001, Lecture Notes in Computer Science, 2288, S. 440–456, 2001, Springer-Verlag) vor, eine feste Anzahl von Fixwerten zum Maskieren der Substitutionstabellen zu verwenden. Verschiedene Substitutionstabellen können vorab definiert und die verschiedenen Tabellen zu unterschiedlichen Zeiten im kryptografischen System verwendet werden. Allerdings wird in dem von Itoh offenbarten System bei jedem Aufruf des kryptografischen Prozesses für alle Rundenschlüssel dieselbe Maske verwendet. Ferner besteht die Möglichkeit, dass ein Angreifer an Informationen gelangt, indem er durch eine einfache Stromanalyse die kryptografischen Prozesse identifiziert, welche dieselbe Maske benutzen. Daher ist ein Angreifer, der eine Maske ermittelt und Zugang zu maskierten Rundenschlüsseln hat (beispielsweise durch eine Differential Power Analysis erster Ordnung), möglicherweise in der Lage, sämtliche Bits des Master-Schlüssels und alle Rundenschlüssel herauszufinden. In derartigen Ansätzen ist, wenn ein Angreifer die Maske ermittelt, der gesamte Master-Schlüssel gefährdet.
  • Ein weiterer Ansatz beinhaltet das von Patarin beschriebene Duplizierungsverfahren ( US-Patent 6.658.569 , Patarin et al., „Secret key cryptographic process for protecting a computer system against attacks by physical analysis"), das Secret-Sharing-Schemata zum Ziel hat, bei denen Eingaben in mehrere S-Boxen unterstützt werden. Die vielfachen Eingaben in die Tabelle werden in eine Variable ν transformiert. Zusätzlich werden zwei Tabellenausgaben erzeugt: bei der einen handelt es sich um eine zufällige Transformation der Eingabe, A(ν), die andere ist A(ν) in einer Exklusiv-ODER(XOR)-Verknüpfung mit S(ν).
  • Da sich jedoch in dem Ansatz von Patarin die zufällige Transformation auf ν nicht verändert, besteht die Gefahr, dass mit der Zeit ein Angreifer die verwendete zufällige Transformation herausfindet. Darüber hinaus hat ein Angreifer, da A(ν) von der Tabelle ausgegeben wird, die Möglichkeit, Informationen zu erlangen, indem er eine Stromanalyse zweiter Ordnung (mit Strommustern von A(ν) sowie A(ν) XOR-verknüpft mit S(ν)) ausführt, um so einen richtig geratenen Schlüssel zu erhalten.
  • Es ist möglich, entweder den Ansatz nach Itoh oder denjenigen nach Patarin zu implementieren, in denen verschiedene Masken bzw. Transformationen benutzt werden. Allerdings erfordert die Verwendung einer solchen Vielzahl von maskierten Tabellen zusätzliche Speicher-, Stromversorgungs- und Prozessorressourcen, die nicht immer zur Verfügung stehen und deren Zuteilung in der Regel nicht wünschenswert ist.
  • Demnach wäre es vorteilhaft, Maßnahmen zum Maskieren von Substitutionstabellen zu implementieren, um DPA-Angriffe abzuwehren, wozu variierende Tabelleneingabe- und -ausgabe-Maskierungswerte verwendet werden, wobei derartige Schutzmaßnahmen keine wiederholte Regenerierung von Tabellen oder Neudefinition von Transformationen erfordern und unterschiedliche Masken für die verschiedenen Rundenschlüssel verwendet werden.
  • Allgemeines
  • Gemäß einem Aspekt der bevorzugten Ausführungsform wird eine verbesserte Schutzmaßnahme für ein kryptografisches Verfahren oder System bereitgestellt.
  • Gemäß einem weiteren Aspekt der bevorzugten Ausführungsform wird ein Verfahren und System bereitgestellt, das das Rotieren von Fixwertmasken und zugehörigen maskierten Substitutionstabellen in einem kryptografischen Prozess vorsieht. Gemäß weiteren Aspekten der Erfindung können derartige rotierte Masken für Substitutionstabellen in kryptografischen Operationen genutzt werden, die nach dem AES (Advanced Encryption Standard) und dem DES (Data Encryption Standard) ausgeführt werden, welche Fachleuten auf diesem Gebiet bekannt sind.
  • Gemäß einem Aspekt der Erfindung wird ein Verfahren bereitgestellt, das in iterativen kryptografischen Operationen eingesetzt wird und mit der Maskierung von Schlüsselwerten und Substitutionstabellen arbeitet, wobei das Verfahren folgende Schritte umfasst:
    anfängliches Maskieren eines anfänglichen Schlüsselwerts,
    anfängliches Definieren einer Gruppe von nicht gleichförmigen Schlüsselverschlüsselungsmasken,
    anfängliches Definieren einer Gruppe von maskierten Substitutionstabellen, wobei jede maskierte Substitutionstabelle von einer anfänglichen Substitutionstabelle abgeleitet ist, sodass sie einer aus der Gruppe von Schlüsselverschlüsselungsmasken entspricht,
    iteratives Ausführen der kryptografischen Operationen, sodass
    jede Iteration der kryptografischen Operationen den Schritt beinhaltet, einen nachfolgenden maskierten Schlüsselwert zu definieren, indem der vorherige maskierte Schlüsselwert mithilfe einer Schlüsselverschlüsselungsmaske aus der Gruppe der Schlüsselverschlüsselungsmasken maskiert wird, und
    jede Iteration der kryptografischen Operationen den nachfolgend definierten maskierten Schlüsselwert und die entsprechende Tabelle aus der Gruppe der maskierten Substitutionstabellen verwendet.
  • Gemäß einem Aspekt der Erfindung wird das obige Verfahren bereitgestellt, wobei der Schritt des Definierens eines nachfolgenden maskierten Schlüsselwerts den Schritt beinhaltet, eine Schlüsselverschlüsselungsmaske aus einer Gruppe von Schlüsselverschlüsselungsmasken auszuwählen, indem zufällig einer der folgenden Modi für das Durchlaufen der Gruppe von Schlüsselverschlüsselungsmasken gewählt wird: inkrementeller Modus, dekrementeller Modus, änderungsloser Modus oder zweifach inkrementeller Modus.
  • Gemäß einem Aspekt der Erfindung wird das obige Verfahren bereitgestellt, wobei jeder nachfolgend definierte maskierte Schlüsselwert aus Teilschlüsselwerten zusammengesetzt ist und die Gruppe von Schlüsselverschlüsselungsmasken so definiert ist, dass sie das Maskieren jedes einzelnen der Teilschlüsselwerte zulässt.
  • Gemäß einem Aspekt der Erfindung wird das obige Verfahren bereitgestellt, wobei die iterativen kryptografischen Operationen Runden sind und die Teilschlüsselwerte Teile von Rundenschlüsselwerten sind.
  • Gemäß einem Aspekt der Erfindung wird das obige Verfahren bereitgestellt, wobei die Runden Runden eines Prozesses nach dem Advanced Encryption Standard oder dem Data Encryption Standard sind.
  • Gemäß einem anderen Aspekt der Erfindung wird ein Verfahren zum nachfolgenden Maskieren eines Schlüsselwerts bereitgestellt, wobei die nachfolgend maskierten Werte für aufeinander folgende Iterationen von kryptografischen Operationen vorgesehen sind, welche eine Substitutionstabelle verwenden, wobei das Verfahren folgende Schritte umfasst:
    Aufteilen eines Schlüsselwerts in eine Gruppe von Teilschlüsselwerten,
    Definieren einer Gruppe von zufälligen Maskenwerten,
    Kombinieren mehrerer zufälliger Maskenwerte, um nicht gleichförmige Schlüsselverschlüsselungsmasken zu definieren, und Maskieren der Gruppe von Teilschlüsselwerten mit ausgewählten Schlüsselverschlüsselungsmasken, um eine Gruppe von maskierten Schlüsseln zur Verwendung in iterativen kryptografischen Operationen zu definieren, und Kombinieren mehrerer zufälliger Maskenwerte bezogen auf die Schlüsselverschlüsselungsmasken, um nicht gleichförmige Tabellenmasken zu definieren, und Erzeugen einer Gruppe von maskierten Tabellen, die aus der Substitutionstabelle abgeleitet sind und der Gruppe von Teilschlüsselwerten entsprechen, zur Verwendung in den iterativen kryptografischen Operationen,
    wobei das Verfahren ferner für jede Iteration der kryptografischen Operation den Schritt beinhaltet, ausgewählte Schlüsselverschlüsselungsmasken und maskierte Tabellen zu verwenden, wobei die Auswahl mittels Rotation durch die jeweiligen Gruppen von Schlüsselverschlüsselungsmasken und maskierten Tabellen erfolgt.
  • Gemäß einem Aspekt der Erfindung wird das obige Verfahren bereitgestellt, wobei der Schritt des Auswählens der Elemente in der Gruppe von Schlüsselverschlüsselungsmasken und der Gruppe von maskierten Tabellen ferner die zufällige Auswahl eines Rotationsmodus aus einer Gruppe möglicher Rotationsmodi umfasst.
  • Gemäß einem Aspekt der Erfindung wird das obige Verfahren bereitgestellt, wobei die Gruppe möglicher Rotationsmodi zwei oder mehr der folgenden enthält: inkrementeller Modus, dekrementeller Modus, änderungsloser Modus oder zweifach inkrementeller Modus.
  • Gemäß einem Aspekt der Erfindung wird das obige Verfahren bereitgestellt, wobei das Maskieren zum Erzeugen der maskierten Tabellen eine Eingabemaskierung ist und wobei das Verfahren ferner den Schritt enthält, Ausgabemasken für jede der maskierten Tabellen zu definieren, wobei die Werte der Ausgabemasken derart definiert werden, dass die Ausgabemasken aufgehoben werden, sobald sie in kryptografischen Operationen verwendet wurden.
  • Gemäß einem Aspekt der Erfindung wird das obige Verfahren bereitgestellt, wobei die Definition der Schlüsselverschlüsselungsmaske folgende Schritte umfasst:
    Definieren einer Gruppe nicht gleichförmiger anfänglicher Maskenwerte für die Anwendung auf die Teilmaskenwerte,
    Definieren einer Gruppe von nicht gleichförmigen rotierenden Maskenwerten, wobei die rotierenden Maskenwerte nach den anfänglichen Maskenwerten angewendet werden und die daraus entstehenden maskierten Werte die Gruppe von maskierten Schlüsselwerten ersetzen können, und
    Definieren einer Gruppe von Tupeln von Demaskierungswerten, die derart definiert sind, dass in der Kombination die Tupel der Demaskierungswerte jeden der anfänglichen Maskenwerte aufheben.
  • Gemäß einem Aspekt der Erfindung wird das obige Verfahren auf eine kryptografische Operation nach dem AES angewendet.
  • Gemäß einem anderen Aspekt der Erfindung wird ein Programmprodukt für ein Datenverarbeitungsgerät bereitgestellt, um unter Verwendung eines anfänglichen Schlüsselwertes und einer Substitutionstabelle iterative kryptografische Operationen auszuführen, wobei das Programmprodukt für ein Datenverarbeitungsgerät einen maschinenlesbaren Datenträger umfasst, auf dem für das Datenverarbeitungsgerät lesbarer Programmproduktcode enthalten ist, und dieser Programmcode dazu dient, eines oder mehrere der obigen Verfahren auszuführen.
  • Gemäß einem anderen Aspekt der Erfindung wird ein Gerät, eine Vorrichtung oder ein System zur Datenverarbeitung bereitgestellt, das ein Speichermedium umfasst, um Programmcode zu speichern, der auf dem Datenverarbeitungsgerät ausgeführt werden kann, wobei das Speichermedium den auf dem Datenverarbeitungsgerät ausführbaren Programmcode speichert, um eines oder mehrere der obigen Verfahren auszuführen.
  • Gemäß einem anderen Aspekt der Erfindung wird ein Datenverarbeitungsnetz bereitgestellt, das mindestens ein Gerät, eine Vorrichtung oder ein System zur Datenverarbeitung wie oben umfasst
  • Zu den Vorteilen der bevorzugten Ausführungsform gehört die Verwendung mehrerer maskierter Gruppen von Substitutionstabellen in jedem Aufruf eines kryptografischen Prozesses. Die Vorteile umfassen das Bereitstellen unterschiedlicher Masken für verschiedene Bytes und/oder Wörter in einem Schlüssel, der in einem kryptografischen Prozess verwendet wird. Ferner müssen für kryptografische Prozesse, in denen Schlüssel und Rundenschlüssel benutzt werden, nicht alle maskierten Versionen der Schlüssel und Rundenschlüssel gespeichert werden. Vorteilhafterweise kann eine einzige maskierte Version jedes Rundenschlüssels gespeichert werden und ändert sich gemäß einem Aspekt der Erfindung die Maske für jeden Rundenschlüssel zufällig bei jedem Aufruf des kryptografischen Prozesses, da der neu maskierte Rundenschlüssel den zuvor maskierten Rundenschlüssel überschreibt.
  • Ein weiterer Vorteil eines Aspekts der bevorzugten Ausführungsform ist, dass zustandsabhängige Maskierung durch den Wert der rotierten Masken unterstützt wird und die maskierten Tabellen von dem Zustand der Masken vor der Rotation abhängen. Somit führt, wenn ein Angreifer Informationen zum Typ der Rotation gewinnt, dies nicht direkt zu der Information über die Maskierung. Zu den Vorteilen zählt die Implementierung wechselnder Masken für Substitutionstabellen, die einen geringeren Overhead bei Energie, Leistung und Programmcode erlaubt. Ein derart reduzierter Overhead ermöglicht die Verwendung dieses Schutzmaßnahmen-Ansatzes bei Geräten wie etwa drahtlosen mobilen Geräten, bei denen Sicherheit der von den Geräten ausgeführten Operationen gefordert ist, bei denen aber die Beschränkungen von Stromversorgung und Prozessorleistung möglicherweise Schwierigkeiten bereiten.
  • Kurze Beschreibung der Zeichnungen
  • In den Zeichnungen, die beispielhaft lediglich eine bevorzugte Ausführungsform der Erfindung zeigen, ist
  • 1 ein Blockdiagramm, das Substitutionstabellen und Maskierung gemäß der bevorzugten Ausführungsform bei Anwendung auf die AES-Verschlüsselung darstellt;
  • 2 ein Blockdiagramm, das eine allgemeine Darstellung der Maskierung enthält, wie sie in der bevorzugten Ausführungsform erfolgt.
  • Beschreibung bevorzugter Ausführungsformen
  • Bei verschiedenen in Datenverarbeitungsgeräten implementierten kryptografischen Operationen werden Substitutionstabellen verwendet. Beispielsweise werden in AES und Triple DES („3DES") für die Verschlüsselung von Klartext mehrere S-Boxen verwendet. Um Schutzmaßnahmen gegen Sicherheitsangriffe auf solche kryptografischen Operationen bereitzustellen, können Eingabe und Ausgabe dieser Substitutionstabellen maskiert sein. Die Sicherheit, die eine solche Maskierung der Tabellenausgabe bietet, kann jedoch ihrerseits wieder Ziel von Angriffen sein.
  • Die bevorzugte Ausführungsform kann als Computer-Programmprodukt realisiert sein, das Programmcode beinhaltet, welcher zur Ausführung der beschriebenen Prozessschritte dient. Die bevorzugte Ausführungsform kann als ein Datenverarbeitungssystem (welches ein Subsystem oder System enthält, das bestimmt ist, mit anderen Systemen zusammenzuarbeiten) für die Verschlüsselung implementiert sein und Elemente enthalten, die die beschriebenen Funktionen ausführen. Das Datenverarbeitungssystem der bevorzugten Ausführungsform kann definiert sein durch und das Computer-Programmprodukt kann ausgeführt sein als Signale, die über Netzwerke, beispielsweise das Internet, übertragen werden, oder kann als Datenträger wie etwa magnetische, elektronische oder optische Speichermedien ausgeführt sein. Der beschriebene Prozess kann in einem Datenverarbeitungsgerät als ein Verfahren implementiert sein, das von einer Kombination aus Computercode und Hardware, die in dem Datenverarbeitungsgerät realisiert ist, ausgeführt wird (wobei in diesem Fall der Prozess ein von dem Datenverarbeitungsgerät implementiertes Verfahren ist). Die bevorzugte Ausführungsform kann auf voll ausgestatteten Computern, mobilen Geräten wie beispielsweise drahtlosen Mobilgeräten und anderen Geräten mit Datenverarbeitungstechnologie implementiert werden.
  • Die bevorzugte Ausführungsform wird unter Bezugnahme auf die Verschlüsselungsschritte des AES-Verschlüsselungsprozesses beschrieben. Es versteht sich jedoch, dass die bevorzugte Ausführungsform auch bezogen auf Entschlüsselungsprozesse und andere iterative kryptografische Prozesse realisierbar ist, welche Schlüssel und Substitutionstabellen beinhalten und für die Schutzmaßnahmen gegen Angriffe wie etwa DPA wünschenswert sind. Die iterative Gestaltung der beschriebenen kryptografischen Prozesse kann aus einem einzelnen Verschlüsselungs- oder Entschlüsselungsprozess entstehen (etwa indem Runden ausgeführt werden wie in dem beispielhaften AES-Prozess, auf den nachstehend Bezug genommen wird). Eine andere Möglichkeit, wie ein kryptografischer Prozess einen iterativen Aspekt haben kann, besteht dort, wo der kryptografische Prozess nacheinander zum Verschlüsseln oder Entschlüsseln eingesetzt wird. In beiden Fällen existiert eine Gruppe von Schritten, die der Iteration unterliegt und für die die hier beschriebenen Maskierungsschritte ausgeführt werden können.
  • Für Fachleute auf diesem Gebiet ist einzusehen, dass die in der Beschreibung der bevorzugten Ausführungsform erwähnte Maskierung mithilfe einer bitweisen Exklusiv-ODER(XOR)-Operation erfolgt, die sich auf die verschiedenen in binärer Form ausgedrückten Werte bezieht. Es können jedoch auch andere Maskierungsoperationen verwendet werden. Eine Alternative ist beispielsweise die arithmetische Maskierung (die die Verwendung von Addition und/oder Subtraktion anstelle der Exklusiv-ODER-Operation beinhaltet).
  • Gemäß der bevorzugten Ausführungsform wird die volle zufällige Maskierung der Tabellenausgaben unterstützt. 1 ist ein Blockdiagramm, das ein Beispiel der bevorzugten Ausführungsform in der Anwendung auf die Schritte der AES-Verschlüsselung zeigt (mit der Tabellenimplementierung des AES für hohe Performance wie bei Dr. Brian Gladman, „A Specification for Rijndael, the AES Algorithm", unter fp.gladman.plus.com/cryptography_technology/rijndael/aes.spec.311.pdf, 15. April 2003 (Seiten 18–19) beschrieben). 1 stellt XOR-Operationen auf drei Arten dar: Kreise stehen für XOR-Operationen an Eingabewerten, welche in einem Ausgabewert münden; fettgedruckte horizontale Linien bezeichnen in ähnlicher Weise einen XOR-Prozess; Ziffern, die in der Abbildung Rundenschlüsseln zugeordnet sind, bezeichnen die XOR-Maskierung wie nachstehend beschrieben.
  • In dem in 1 gezeigten Beispiel der bevorzugten Ausführungsform sind vier verschiedene zufällig definierte Maskierungswerte enthalten. Diese sind mit 0, 1, 2, 3 bezeichnet, und die Exklusiv-ODER-Verknüpfung dieser Werte ist durch die Reihenfolge der Ziffern bezeichnet. Beispielsweise ist in 1 die XOR-Verknüpfung der Maske 1 und der Maske 3 als „13" und die XOR-Verknüpfung der Maske 0 und der Maske 1 als „01" angegeben. Wie angegeben werden die vier Maskenwerte mithilfe von in der Technik bekannten Verfahren zufällig definiert. Eine weitere Gruppe von Ausgabemaskenwerten ist mit 4, 5, 6, 7 bezeichnet und wird im Folgenden ausführlicher behandelt.
  • Die in 1 dargestellte beispielhafte AES-Verschlüsselung beinhaltet das Maskieren der AES-Rundenschlüssel und maskierte AES-Substitutionstabellen, wobei die Masken sowohl an der Eingabe als auch an der Ausgabe der Substitutionstabellen (S-Boxen) verwendet werden. Am Ende der AES-Verschlüsselung erfolgt eine abschließende Demaskierung des Geheimtextes. Gemäß dem beispielhaft dargestellten AES-Verschlüsselungsprozess sind für eine 128-Bit-Verschlüsselung vier verschiedene Rundenschlüssel mit je 32 Bit definiert. Diese Implementierung passt beispielsweise dort, wo der Prozessor, der die AES-Operationen ausführt, ein 32-Bit-Prozessor ist. 1 zeigt diese vier anfänglichen Rundenschlüssel als rk0, rk1, rk2, rk3. In dem Beispiel der bevorzugten Ausführungsform ist jeder Rundenschlüssel mit einer anderen Kombination aus drei der Maskenwerte maskiert.
  • So werden die maskierten Rundenschlüssel in 1 als rk0-023, rk1-013, rk2-012, rk3-123 dargestellt, wobei die Ziffern nach dem Bindestrich die Exklusiv-ODER-Verknüpfung der drei angegebenen Maskenwerte anzeigen. In dem Beispiel ist der Rundenschlüssel rk0 mit der XOR-Verknüpfung der Masken 0, 2 und 3 maskiert (dargestellt als „rk0-023"). Wie einzusehen ist, kann die Gruppe maskierter Rundenschlüssel mit anderen Kombinationen von Maskenwerten definiert werden. Allerdings werden die Masken, die auf die Rundenschlüssel angewendet werden, so gewählt, dass sie die Definition entsprechender Schlüsselverschlüsselungsmasken und maskierter Tabellen erlauben, wie ausführlicher für das Beispiel von 1 beschrieben.
  • Bei der in 1 beispielhaft dargestellten kryptografischen Operation sind vier Gruppen mit je vier maskierten Tabellen dargestellt. Jede dieser Tabellen ist mit einem 8-Bit-Eingabewert indiziert und hat einen 32-Bit-Ausgabewert. Für Fachleute auf diesem Gebiet ist daher offensichtlich, dass die Eingabemaske der Gruppe von maskierten Tabellen ein Byte (ein 8-Bit-Wert) ist. In der beispielhaften bevorzugten Ausführungsform von 1 hat jedes der vier Bytes eines einzelnen 32-Bit-Rundenschlüssels dasselbe Masken-Byte. Dies erlaubt die ordnungsgemäße Maskierung der Substitutionstabellen, um den Zugriff durch die (maskierten) vier Bytes der 32-Bit-Klartextsegmente, die in dem Beispiel von 1 mit s0, s1, s2, s3 bezeichnet sind, zu erlauben.
  • Die Rundenschlüssel rk0, rk4, rk8 ... rk40 sind nach der obigen Notation durch „rk4i" dargestellt. Für i = 0, ..., 10 beispielsweise existieren 44 Rundenschlüssel (rk0, rk1, ..., rk43), auf die in 1 verwiesen wird. Die in 1 mit 4i, 4i + 1, 4i + 2, 4i + 3 bezeichneten Rundenschlüssel haben verschiedene Masken. In der bevorzugten Ausführungsform haben die mit rk4i bezeichneten Rundenschlüssel alle dieselbe Maske und gilt ähnliches für jeden Rundenschlüssel in der Gruppe rk4i + 1 (sowie gleichermaßen für die Gruppe rk4i + 2 und die Gruppe rk4i + 3). Wenn zwei oder mehr maskierte Substitutionstabellen verwendet werden, haben die ersten vier Rundenschlüssel, rk0, rk1, rk2, rk3, verschiedene Masken. Entsprechend kann ein Angreifer, der eine Maske herausfindet und Zugriff auf die maskierten Rundenschlüssel hat, nicht infolgedessen alle 128 Bits des Master-Schlüssels und alle Rundenschlüssel ableiten. Hierin liegt der Unterschied zu Ansätzen, bei denen dieselbe Maske für alle Rundenschlüssel während eines Aufrufs des kryptografischen Prozesses verwendet wird. Bei solchen Ansätzen ist, wenn der Angreifer eine Maske ermittelt, der gesamte Master-Schlüssel gefährdet.
  • Bei dem Ansatz der bevorzugten Ausführungsform werden Schlüsselverschlüsselungsmasken verwendet und Masken auf die Substitutionstabellen angewendet, die als nicht gleichförmig definiert sind. Wie beschrieben, kann diese Nicht-Gleichförmigkeit erzielt werden, indem jede der Masken als einzigartig definiert wird, oder kann alternativ die Nicht-Gleichförmigkeit erzielt werden, indem Gruppen von Masken definiert werden. Im letzteren Fall kann jede Maske innerhalb einer definierten Gruppe gleichförmig sein, unterscheiden sich jedoch die Masken in den verschiedenen definierten Gruppen. Wie die Beschreibung der bevorzugten Ausführungsform zeigt, sind die Schlüsselwerte in dem kryptografischen Prozess aufgeteilt und werden die nicht gleichförmigen Schlüsselverschlüsselungsmasken sowie die nicht gleichförmig definierten maskierten Tabellen für verschiedene Teile der aufgeteilten Schlüsselwerte verwendet.
  • Wie für Fachleute auf diesem Gebiet einzusehen ist, sind auch andere Maskierungsschemata möglich. Beispielsweise könnte für alle Rundenschlüssel dieselbe 32-Bit-Maske verwendet, jedoch jeweils (nicht gleichförmige) Teile der Maske auf jeden Schlüssel angewendet werden. In diesem Fall ist jedes Byte der Maske anders als die übrigen Bytes definiert, sodass es der Eingabemaske einer Gruppe von maskierten Substitutionstabellen entspricht.
  • Wie in 1 gezeigt, ist jeder der maskierten Rundenschlüssel mit einer Schlüsselverschlüsselungsmaske maskiert. Eine Schlüsselverschlüsselungsmaske wird auf eine anfängliche Gruppe von Rundenschlüsseln angewendet, bevor Klartextwerte mit den Rundenschlüsselwerten der maskierten Schlüssel kombiniert werden. In der bevorzugten Ausführungsform gibt es eine Gruppe von vier Schlüsselverschlüsselungsmasken. 1 zeigt diese Werte als die Ergebnisse von Exklusiv-ODER-Operationen an den Maskenwerten 0 und 1, 1 und 2, 2 und 3 sowie 0 und 3 für die vier maskierten Rundenschlüssel rk2-023, rk1-013, rk2-012 bzw. rk3-123. 1 stellt die Schlüsselverschlüsselungsmaskenwerte als rotierbar dar, angedeutet durch die gestrichelte Linie mit Pfeilen, die die vier Schlüsselverschlüsselungsmaskenwerte in der Abbildung verbindet. In welcher Weise diese Werte in der bevorzugten Ausführungsform rotiert werden, wird weiter unten ausführlicher beschrieben.
  • Das in 1 dargestellte Beispiel enthält die Exklusiv-ODER-Verknüpfung der Rundenschlüssel wie maskiert mit einem Klartextwert. In dem AES-Prozess, wie er in 1 dargestellt ist, wird ein 128-Bit-Klartextwert in 4 Werte mit je 32 Bit aufgeteilt (pt0, pt1, pt2, pt3 in 1). Jedes dieser Exklusiv-ODER-Ergebnisse (s0, s1, s2, s3 in 1) wird dann in einen wiederholten Prozess eingegeben, der schematisch in dem Kasten 10 von 1 dargestellt ist. In dem gezeigten Beispiel ist s0 in vier 8-Bit-Teile unterteilt. Jeder 8-Bit-Teil des 32-Bit-Eingabewerts dient dazu, eine der Gruppe von vier zugeordneten Lookup-Tabellen zu indizieren. Beispielsweise wird ein Byte von s0 als Eingabe für eine der in der Abbildung darunter angezeigten Tabellen benutzt (Te*0 in 1). In ähnlicher Weise wird ein Byte von s1 als Eingabe für eine der Tabellen Te*1 verwendet wie in 1 gezeigt.
  • Das Beispiel der bevorzugten Ausführungsform, das in 1 veranschaulicht ist, beinhaltet einen Master-Schlüssel mit 128 Bit. Dieser Master-Schlüssel dient zum Erzeugen von 44 Rundenschlüsseln mit 32 Bit (wobei gemäß der AES (oder Rijndael)-Spezifikation die ersten vier Rundenschlüssel dem 128-Bit-Master-Schlüssel entsprechen). In dem Beispiel werden die Rundenschlüssel in 8-Bit-Teile (Bytes) unterteilt, auf die jeweils eine spezifische Maske angewendet wird. In jeder AES-Runde sind vier Rundenschlüssel vorhanden und kann das Maskierungsschema innerhalb eines Rundenschlüssels verschiedene Byte-Masken oder verschiedene Wortmasken jedes Rundenschlüssels verwenden. Ferner können in verschiedenen Runden unterschiedliche Maskierungsschemata eingesetzt werden.
  • Wenn beispielsweise A, B, C, D jeweils eine 8-Bit-Maske (oder Byte-Maske) repräsentieren und vier maskierte Gruppen von S-Box-Tabellengruppen vorhanden sind, hat jede Tabellengruppe eine entsprechende Eingabemaske A, B, C bzw. D und eine andere 32-Bit-Ausgabemaske. Wenn vier Rundenschlüssel vorhanden sind, die Eingaben an die vier S-Box-Tabellen erzeugen (wie durch s0, s1, s2, s3 in 1 dargestellt), kann die Maske an rk0 definiert werden als DCBA. Ganz ähnlich ist die Maske an rk1 CDAB, die Maske an rk2 BADC und die Maske an rk3 ABCD. Wie zu sehen, sind alle Byte-Masken innerhalb eines Rundenschlüssels unterschiedlich und sind auch die Rundenschlüssel-Wortmasken unterschiedlich. Die Exklusiv-ODER-Verknüpfung der vier Tabellen gemäß der AES-Spezifikation, die nachstehend dargestellt ist, s0 = pt0^rk0; s1 = pt1^rk1; s2 = pt2^rk2; s3 = pt3^rk3 t0 = Te0(s031..24)^Te1(s123..16)^Te2(s215..8)^Te3(s37..0)^rk4 t1 = Te0(s131..24)^Te1(s223..16)^Te2(s315..8)^Te3(s07..0)^rk5 t2 = Te0(s231..24)^Te1(s323..16)^Te2(s015..8)^Te3(s17..0)^rk6 t3 = Te0(s331..24)^Te1(s023..16)^Te2(s115..8)^Te3(s27..0)^rk7erzeugt Masken an Ausgabetabellen, die sich aufheben. Dies wird ersichtlich anhand des Wertes t0, der in der obigen Gleichung definiert ist. Der Wert t0 verwendet vier Tabellen (Te0, Te1, Te2, Te3) mit den Eingabemasken DDDD. Dies wird ersichtlich, da die Maske an rk0 (und s0) DCBA ist, s031..24 sich auf das erste Byte in s0 bezieht, welches D ist, woraus folgt, dass dies das erste D der DDDD-Eingabemaske der Tabellen ist, die sich in der obigen Gleichung zur Definition von t0 widerspiegeln. Wie zu sehen ist, verwendet t1 die Eingabetabellenmasken CACA, t2 die Eingabetabellenmasken BBBB und t3 die Eingabetabellenmasken ACAC.
  • In dem Beispiel der bevorzugten Ausführungsform in 1 werden maskierte Rundenschlüsselwerte ersetzt durch die Werte, die sich ergeben, nachdem die Schlüsselverschlüsselungsmasken auf die maskierten Rundenschlüssel angewendet wurden. Wie weiter unten noch detaillierter erläutert wird, gibt es gemäß der bevorzugten Ausführungsform verschiedene Möglichkeiten zum Rotieren der Schlüsselverschlüsselungsmaskenwerte. Aus dem Beispiel in 1 wird jedoch ersichtlich, dass das Ersetzen der maskierten Rundenschlüssel in einer effektiven Neumaskierung der maskierten Rundenschlüssel mündet. Die Neumaskierung wird derart ausgeführt, dass sie mit der Rotation der Schlüsselverschlüsselungsmasken und maskierten Tabellen synchron ist. Auf diese Weise ist es möglich, für jeden der Rundenschlüssel, die in dem kryptografischen Prozess verwendet werden, nur einen einzigen maskierten Rundenschlüsselwert beizubehalten. Der Wert wird gemäß dem Prozess der bevorzugten Ausführungsform ständig neu maskiert.
  • 1 zeigt vier Gruppen mit je vier maskierten Tabellen in den wiederholten Schritten im Kasten 10. Im AES-Prozess wird eine einzige Gruppe von vier Tabellen bereitgestellt (Te*, wobei * die Gruppe der vier S-Box-Tabellen Te0, Te1, Te2, Te3, die in allen AES-Runden außer der letzten verwendet werden, sowie Te4, die nur in der letzten Runde verwendet wird, repräsentiert). In dem in 1 veranschaulichten Prozess sind vier Tabellengruppen vorhanden – Te*0, Te*1, Te*2, Te*3. Die Substitutionstabellen (S-Box-Tabellen oder S-Boxen) in 1 werden auf Basis von Substitutionstabellen definiert, die gemäß dem AES-Prozess definiert sind. Die Tabellen Te*0, Te*1, Te*2 und Te*3 sind in der bevorzugten Ausführungsform sowohl mit einer Eingabemaske als auch mit einer Ausgabemaske maskiert, wobei jede dieser Eingabemasken eine Kombination aus den vier Masken 0, 1, 2, 3 ist, die in den verschiedenen beschriebenen Maskierungsoperationen verwendet werden. Die für die Eingabemasken der S-Boxen benutzten Kombinationen stehen in Bezug zu den Kombinationen von Masken, die für den anfänglichen maskierten Rundenschlüssel verwendet wurden, sowie zu den Kombinationen, die für die Schlüsselverschlüsselungsmaske verwendet wurden. Jede dieser zusammenhängenden Maskenkombinationen wird ausgewählt, um zu gewährleisten, dass der Ausgang der maskierten kryptografischen AES-Operation nicht durch die Maskierungsoperationen verändert wird, welche an den im Prozess verwendeten Zwischenwerten erfolgen.
  • Die Eingabe- und Ausgabemaskierung wird dadurch implementiert, dass die Werte in den Lookup-Tabellen Te*0, Te*1, Te*2, Te*3 derart geändert werden, dass für eine Tabelle T mit dem Indexwert i (Einträge werden mit T(i) gekennzeichnet), wobei T(i) = j ist, die Identität Mt(i^min) = j^mout wahr ist, wobei min der Eingabemaskenwert, mout der Ausgabemaskenwert und Mt(i^min) der maskierte Tabellenwert ist. In der bevorzugten Ausführungsform werden, wenn ein Gerät mit begrenzten Prozessor- oder Speicherressourcen kryptografische Prozesse ausführt, diese maskierten Gruppen von Tabellen vorausberechnet und auf das Gerät heruntergeladen, bevor auf dem Gerät die kryptografischen Prozesse angestoßen werden.
  • In dem Beispiel von 1 ist jede der vier als Te*0 bezeichneten Tabellen an ihrer Eingabe mit einer Kombination der drei Maskierungswerte 0, 2, 3 maskiert. Die Tabellen haben einen Ausgabemaskierungswert, der sich aus der XOR-Verknüpfung der beiden Ausgabemaskierungswerte ergibt. Wie dargestellt, sind die Ausgabewerte der maskierten Tabellen 32 Bit lang. Die Ausgabemasken, die an der Ausgabe der maskierten Substitutionstabellen verwendet werden (in dem Beispiel von 1 mit 4, 5, 6, 7 bezeichnet), stehen nicht in Beziehung zu den Eingabemasken der maskierten Substitutionstabellen oder den Schlüsselverschlüsselungsmasken oder den Rundenschlüsselmasken. Wie anhand des Beispiels von 1 zu sehen ist, sind in der bevorzugten Ausführungsform die Ausgabemasken für die Gruppen von maskierten Tabellen so definiert, dass alle anderen effektiv ungültig gemacht werden (wie weiter unten beschrieben sind die Tabellenausgaben XOR-verknüpft und werden die Ausgabemaskenwerte so ausgewählt, dass die XOR-Verknüpfung der Maskenwerte den Effekt der Masken aufhebt).
  • Wie einzusehen ist, ist es nicht erforderlich, dass die Ausgabemasken für die maskierten Tabellen definiert sein müssen, um sich gegenseitig aufzuheben. Wo jedoch sie Masken nicht derart definiert sind, wird die Definition der Eingabewerte für die maskierten Tabellen geändert, um die Werte der Ausgabemasken zu berücksichtigen. Es ist ferner einzusehen, dass die Maskierung der Schlüsselwerte mit Schlüsselverschlüsselungsmaskenwerten keine Maskierung der Ausgabetabelle erfordert. Die bevorzugte Ausführungsform beinhaltet eine solche Maskierung, da die Widerstandsfähigkeit gegen DPA-Angriffe erhöht wird, wenn eine Eingabe- und Ausgabemaskierung der Tabellenwerte erfolgt.
  • Die Index- oder Eingabewerte für die vier Tabellengruppen Te*0, Te*1, Te*2, Te*3 sind die vier Werte s0, s1, s2, s3 wie in 1 dargestellt. Die Abbildung zeigt darüber hinaus anhand der fettgedruckten horizontalen Linie, die die Ausgaben der vier Gruppen von Tabellen miteinander verbindet, dass die Ausgabewerte der Lookup-Tabellen vier XOR-Verknüpfungen gemäß der AES-Implementierung bilden, für die die Tabellen aus (Dr. Brian Gladman, „A Specification for Rijndael, the AES Algorithm", unter fp.gladman.plus.com/cryptography_technology/rijndael/aes.spec.311.pdf, 15. April 2003 (siehe besonders Seiten 18–19)) verwendet werden. Die vier Ergebnisse werden anschließend Exklusiv-ODER-Operationen mit einer neuen Gruppe von Rundenschlüsseln unterzogen, die mit entsprechenden Schlüsselverschlüsselungsmasken maskiert sind.
  • Wie vorstehend bereits angesprochen, zeigt 1 die Rotation der Schlüsselverschlüsselungsmasken durch gestrichelte Linien. Ähnlich ist in dem Kasten 10 die mögliche Rotation der Schlüsselverschlüsselungsmasken sowie der weiteren Gruppe von Schlüsselverschlüsselungsmasken durch entsprechende gestrichelte Linien dargestellt.
  • Wie in 1 angegeben, werden die Schritte des Indizierens in die maskierten Tabellen und weiter des Maskierens mit maskierten Rundenschlüsseln neun Mal ausgeführt (für i = 1..9 Runden). Für Fachleute auf diesem Gebiet versteht es sich, dass die Ausgabe aus Kasten 10 (dargestellt als t0, t1, t2, t3) bei jeder Wiederholung der Schritte im Kasten 10 von 1 als Eingabe für die maskierten Tabellen (s0, s1, s2, s3) verwendet wird.
  • Am Ende der Wiederholung der im Kasten 10 gezeigten Schritte werden die vier Ausgaben in eine letzte Gruppe von maskierten Tabellen eingegeben: die vierte Tabelle in der Gruppe Te*0, Te*1, Te*2, Te*3 (d. h. bei der der Platzhalter * den Wert 4 hat). Diese vier Tabellen sind, wie in 1 zu sehen, gemäß dem Ansatz der bevorzugten Ausführungsform ebenfalls potenziell rotierbar. Die Ausgaben der Table-Lookups werden dann XOR-verknüpft und die resultierenden Werte in der letzten AES-Stufe maskiert. In dieser Stufe werden die Rundenschlüssel rk40, rk41, rk42, rk43 mit den Schlüsselverschlüsselungsmasken (welche ebenfalls als rotierbar dargestellt sind) kombiniert.
  • In einer abschließenden Gruppe von Schritten wird der Geheimtext demaskiert, indem die anfänglichen Masken angewendet werden, mit denen die maskierten Rundenschlüssel rk0-023, rk1-013, rk2-012, rk3-123 definiert waren. Um zusätzlich Schutz gegen Angriffe zu bieten, werden diese Demaskierungsschritte in zwei Teilen ausgeführt, sodass die kombinierten Maskierungswerte (023, 013, 012, 123 in dem Beispiel von 1) nicht direkt bei Ausführung des Prozesses der bevorzugten Ausführungsform berechnet werden. Die Demaskierungswerte werden in 1 als rotierbar dargestellt, wie dies in der obigen Beschreibung für Schlüsselverschlüsselungsmasken und maskierte Tabellen der Fall war. Die Rotation der in der Demaskierungsstufe verwendeten Werte entspricht der effektiven Rotation der anfänglichen Maskierung der Rundenschlüssel, die durch Ersetzen der maskierten Rundenschlüssel erfolgt wie vorstehend beschrieben. Wie einzusehen ist, kann die Anzahl und Reihenfolge der Demaskierungsschritte unterschiedlich definiert werden. Die Demaskierungswerte lassen sich als Tupel beschreiben, wobei jedes Tupel einer der angewendeten anfänglichen Masken entspricht und wobei Kombinationen der Werte in dem Tupel in zwei oder mehr Demaskierungsschritten zur Anwendung kommen, um den anfänglichen Maskierungsschritt effektiv aufzuheben.
  • Das Ergebnis ist eine Gruppe aus vier 32-Bit-Geheimtextwerten c0, c1, c2, c3, die mit dem AES-Verschlüsselungsprozess verschlüsselt werden.
  • Wie in der obigen Beschreibung angegeben und in 1 gezeigt, beinhaltet der Ansatz der bevorzugten Ausführungsform die Rotation von Maskierungswerten und Tabellen. Die Rotation solcher Werte und Tabellen wird in der bevorzugten Ausführungsform durch einen Kennzeichner oder Zeiger implementiert, der angibt, welche Tabellen und Maskierungswerte aus der verfügbaren Auswahl anzuwenden sind. Pro Runde wird ein Zeiger verwendet, der auf die Adresse der aktuellen Tabellengruppe und die Schlüsselverschlüsselungsmasken für den ersten Rundenschlüssel dieser Runde verweist. Die übrigen drei Rundenschlüssel für die Runde verwenden denselben Zeiger und einen angemessenen Versatz, um die entsprechenden Tabellen und Maskenwerte zu identifizieren. In der bevorzugten Ausführungsform beinhaltet die Implementierung der Datenstrukturen für die Tabellen und Maskenwerte die Verwendung doppelt verknüpfter Listen.
  • Eine effiziente Möglichkeit zum Verwalten des Versatzes und der Speicherung der Tabellenwerte und Maskierungswerte ist das Speichern der Schlüsselverschlüsselungsmasken und der Adressen der Gruppe von maskierten Substitutionstabellen in der jeweiligen Reihenfolge in einem Speichergerät. Die Berechnung des Versatzes gegenüber dem ersten Rundenschlüssel ist daher geradlinig. Ähnlich werden die Adressen der Tabellengruppe Te*0, Te*1, Te*2, Te*3 in der Reihenfolge im Speicher abgelegt.
  • Die Rotation der Maskierungswerte und Tabellen erfolgt entsprechend einer randomisierten Auswahl eines von mehreren Betriebsmodi. In dem Beispiel der bevorzugten Ausführungsform in 1 gibt es vier Betriebsmodi:
    • a. Inkrementeller Modus: Für jede AES-Runde, für die inkrementell gewählt wurde, werden die Rundenschlüssel-Verschlüsselungsmasken und die Gruppe von Tabellen nach links verschoben (wie in 1 dargestellt; die Schlüsselverschlüsselungsmasken und Tabellen, die Rundenschlüsseln n zugeordnet sind, werden durch diejenigen ersetzt, die zuvor den Rundenschlüsseln n + 1 zugeordnet waren, in dem Beispiel der bevorzugten Ausführungsform modulo 4 genommen, sodass die Werte umgebrochen werden) und danach wird der Rundenschlüssel XOR mit der Schlüsselverschlüsselungsmaske verknüpft und für das AES-Lookup auf die Gruppe von maskierten Tabellen zugegriffen;
    • b. Dekrementeller Modus: Die Rundenschlüssel werden XOR mit den Schlüsselverschlüsselungsmasken und Tabellen verknüpft und die Schlüsselverschlüsselungsmasken werden nach rechts verschoben (die Schlüsselverschlüsselungsmasken und Tabellen, die Rundenschlüsseln n zugeordnet sind, werden durch diejenigen ersetzt, die zuvor den Rundenschlüsseln n – 1 zugeordnet waren, in dem Beispiel der bevorzugten Ausführungsform modulo 4 genommen, sodass die Werte umgebrochen werden) und es wird auf die Gruppe der maskierten Tabellen zugegriffen; und
    • c. Änderungsloser Modus: Es erfolgt keine Maskierung mithilfe der Schlüsselverschlüsselungsmasken und keine Verschiebung der Tabellen oder Schlüsselverschlüsselungsmasken und es wird auf die Gruppe der maskierten Tabellen zugegriffen.
    • d. Zweifach inkrementeller Modus: Für jede AES-Runde, für die zweifach inkrementell gewählt wurde, werden die Rundenschlüssel-Verschlüsselungsmasken und die Gruppe von Tabellen nach links verschoben (wie in 1 dargestellt) und danach wird der Rundenschlüssel XOR mit der Schlüsselverschlüsselungsmaske verknüpft. Anschließend werden die Schlüsselverschlüsselungsmasken und die Tabellengruppe nochmals nach links verschoben und wird der Rundenschlüssel XOR mit der Schlüsselverschlüsselungsmaske verknüpft. Abschließend wird für das AES-Lookup auf die Gruppe von maskierten Tabellen zugegriffen.
  • Wie einzusehen ist, wird die Sicherheit der kryptografischen Operation durch die Rotation der Schlüsselverschlüsselungsmasken und der maskierten Tabellen erhöht. Beispielsweise ist, selbst wenn der Angreifer mittels Strom- oder elektromagnetischer Analyse feststellen kann, wann eine Rotation im „zweifach inkrementellen Modus" ausgeführt wurde, die daraus resultierende Maske des Rundenschlüssels verschieden von vorhergehenden Masken desselben Rundenschlüssels, für den dieselbe zweifach inkrementelle Rotation verwendet wurde. Somit führt das Rotationsschema nicht direkt zu Informationen über die Maskierung, da die Maskierung zustandsabhängig ist. Hierin liegt der Unterschied zu früheren Schemata, bei denen auf neu maskierte Rundenschlüssel direkt zugegriffen wird als Ergebnis der Ausführung von Anweisungen (Statements) zur Auswahl zwischen alternativen Rundenschlüsseln (möglicherweise mithilfe von Auswahlanweisungen, sog. Case-Statements). In derartigen früheren Schemata liefern Power-Analysis-Informationen, die die ausgeführten Anweisungen (beispielsweise welcher Case gewählt wird) identifizieren, unmittelbar Informationen zu Stromverbrauchsprofilen, die dieselben Rundenschlüsselmasken verwenden. Diese Schemata wählen Maskierungen unabhängig von der vorherigen Maskierung (und sind somit nicht zustandsabhängig, d.h. abhängig von dem vorherigen Zustand bzw. der vorherigen Maske des Rundenschlüssels, die bereits in einem früheren Aufruf des kryptografischen Prozesses verwendet wurde). Bei diesen anderen Ansätzen kann eine DPA erster Ordnung der ausgewählten Stromprofile an der Ausgabe der S-Boxen verwendet werden, um den Rundenschlüsselwert herauszufinden.
  • In der bevorzugten Ausführungsform erzeugt eine Schlüsselverschlüsselungsmaske eine andere resultierende Maske für den Rundenschlüssel, abhängig von dem vorherigen Maskenwert des Rundenschlüssels. Ferner wird die Sicherheit weiter erhöht, wenn wie oben beschrieben die Rotation nach dem Zufallsprinzip definiert ist. Die obigen vier beispielhaften Verschiebungsmodi können durch einen 2-Bit-Wert spezifiziert werden, der für jede Runde des AES-Prozesses (oder jede Iteration des kryptografischen Prozesses) zufällig erzeugt wird. Solange die Verschiebung der Schlüsselverschlüsselungsmasken und der maskierten Tabellen synchron ausgeführt wird, wirkt sich die Verschiebung nicht auf die Ausgabe des maskierten kryptografischen Prozesses aus. Diese randomisierte Rotation der Masken und der maskierten Tabellen dient jedoch dazu, Angriffe auf den kryptografischen Prozess zu erschweren.
  • Wie für Fachleute auf diesem Gebiet einzusehen ist, sind auch andere Rotationsschemata möglich. Beispielsweise können die Rundenschlüssel in zwei Gruppen zu je zwei geteilt werden und kann eine Rotation der Masken und Tabellen für jede der beiden Gruppen definiert werden. Ferner kann ein solcher Ansatz derart mit dem Verschieben der Masken und Tabellen über die gesamte Gruppe von vier Rundenschlüsseln kombiniert werden, dass die Rotation zwischen Rotation durch die gesamte Gruppe und einer für die beiden Teilgruppen definierten Rotation wechselt.
  • Die Kombinationen von Rotationsschemata und Maskendefinitionen können je nach den Sicherheitsanforderungen und der Verfügbarkeit von Ressourcen des Systems, in dem die Schutzmaßnahmen der bevorzugten Ausführungsform verwendet werden, gewählt werden. Eine komplexere Masken- und Rotationsschema-Definition erhöht die Sicherheit, erfordert aber andererseits zusätzlichen Overhead an Systemressourcen und Zeit.
  • Die Eingabe- und Ausgabemaskendefinition kann entsprechend den Sicherheits- und Systemanforderungen gewählt werden. Die Ausgabemasken der Tabellen, die XOR miteinander verknüpft sind, können so definiert sein, dass sie sich aufheben, wie vorstehend beschrieben. Beispielsweise heben sich in 1 die Maskenausgaben 45, 46, 57, 67 auf, sodass keine Maske übrig bleibt, nachdem die Exklusiv-ODER-Operation ausgeführt worden ist (wie durch die fettgedruckte horizontale Linie im Kasten 10 der Abbildung dargestellt). Wie sich für Fachleute auf diesem Gebiet versteht, können die Ausgabemasken alternativ so definiert werden, dass sie gemeinsam in einer festen Maske resultieren, und werden die Definitionen der Eingabemasken der maskierten Substitutionstabellen und der Rundenschlüsselmaske entsprechend modifiziert, sodass sie die feste Maske widerspiegeln. Eine weitere Alternative ist die Unterstützung von zwei oder mehr Gruppen maskierter Substitutionstabellen, wobei entweder die Masken sich aufheben oder eine feste Maske schaffen, die in die Rundenschlüsselmaske und die Eingabemaske der Substitutionstabellen aufgenommen wird.
  • Die Rotation der Masken und Tabellen, die unter Bezug auf 1 beschrieben wurde, basiert auf den vier definierten Modi und kann vorteilhafterweise mit begrenzten Speicher- und Stromversorgungsressourcen realisiert werde, weshalb sie gut geeignet ist für die Implementierung in einem mobilen Datenverarbeitungsgerät, dessen Speicher- und Strombeschränkungen für kryptografische Operationen wesentlich sind.
  • Die obige Beschreibung geht auf das Maskieren von Schlüsseln und Tabellen ein, die gemäß der bevorzugten Ausführungsform in den AES-Verschlüsselungsprozessen verwendet werden. 2 ist ein Blockdiagramm, das in stark abstrahierter Form die Maskierungsschritte darstellt, die in der bevorzugten Ausführungsform ausgeführt werden. In 2 ist der maskierte Schlüssel 102 dargestellt (anfänglich maskierter Schlüsselwert rk), zusammen mit dem Klartext 104 und der Ausgabe 106. Bei dem in 2 veranschaulichten verallgemeinerten Verschlüsselungsprozess ist der maskierte Schlüssel 102 bei XOR 110 durch eine Schlüsselverschlüsselungsmaske maskiert, die aus einer Gruppe von Schlüsselverschlüsselungsmasken 0..n (Gruppe 111) gewählt wurde. Der Klartext 104 ist bei XOR 112 mit dem Ergebniswert maskiert. Das Produkt wird anschließend als Eingabe in eine aus einer Gruppe von maskierten S-Tabellen 0..n (113) ausgewählte S-Tabelle verwendet, und die Ausgabe wird als Ausgabe 106 dargestellt.
  • Der in 2 dargestellte vereinfachte Verschlüsselungsprozess verdeutlicht die Rotation der Schlüsselverschlüsselungsmasken. Die Schlüsselverschlüsselungsmasken 0...n (111) werden als mögliche Eingaben für die Exklusiv-ODER-Operation 110 gezeigt. Ähnlich werden die maskierten S-Tabellen 0...n als potenziell durch die Ausgabe der Exklusiv-ODER-Operation 112 indiziert dargestellt. Wie schon oben mit Bezug auf die AES-Implementierung der bevorzugten Ausführungsform ausführlich beschrieben, sind die Gruppe der Schlüsselverschlüsselungsmasken und die Gruppe der maskierten S-Tabellen so definiert, dass die Mitglieder jeder Gruppe einander entsprechen, sodass die Ausgabe 106 einen vorhersagbaren Wert hat. Mit anderen Worten, die Ausgabe 106 kann in einigen Implementierungen dieselbe sein wie wenn keine Maskierung des Schlüssels oder der S-Tabellen erfolgt wäre. Bei einer alternativen Implementierung weicht die Ausgabe 106 von der unmaskierten S-Tabellenverschlüsselung ab, jedoch erfolgt diese Abweichung in einer bekannten Weise, die in nachfolgend ausgeführten Operationen an oder mit der Ausgabe 106 korrigiert oder zugelassen werden kann.
  • 2 zeigt, auf welche Weise der maskierte Schlüssel 102 durch die Schlüsselverschlüsselungsmasken maskiert wird. Der Wert des maskierten Schlüssels 102, der andernfalls in dem Verschlüsselungsprozess verwendet würde, wird effektiv ersetzt durch die Ausgabe der Exklusiv-ODER-Operation 110. So wird der maskierte Schlüssel, der bei der Verschlüsselung verwendet wird, in Bezug zu dem vorherigen Wert des maskierten Schlüssels 102 definiert. Der neue maskierte Schlüsselwert ist somit zustandsabhängig.
  • 2 zeigt außerdem, dass die Mitglieder der Gruppe von Schlüsselverschlüsselungsmasken 0...n rotiert werden können, wenn sie auf den maskierten Schlüssel 102 angewendet werden (bei der Exklusiv-ODER-Operation 110). Ähnlich werden auch die S-Tabellen 0...n in synchronisierter Weise rotiert.
  • Nachdem nun beispielhaft verschiedene Ausführungsformen der vorliegenden Erfindung ausführlich beschrieben wurden, ist es für Fachlaute auf diesem Gebiet offensichtlich, dass Varianten und Änderungen realisiert werden können, ohne den Schutzbereich der Erfindung zu verlassen. Die Erfindung schließt alle diese Varianten und Änderungen ein, soweit sie in den Schutzbereich der beigefügten Patentansprüche fallen.
  • Übersetzung der Figuren
  • Fig. 1
    Masked Round Key Maskierter Rundenschlüssel
    key encryption mask Schlüsselverschlüsselungsmaske
    plaintext Klartext
    4 Sets of 4 Masked Tables 4 Gruppen mit 4 maskierten Tabellen
    Repeat For i = 1..9 rounds Wiederholen für i = 1..9 Runden
    Final Stage of AES Abschlussstufe AES
    Masked Cipher Text Maskierter Geheimtext
    Unmask Cipher Text Geheimtext demaskieren
    Unmasked Cipher Text Demaskierter Geheimtext
    Fig. 2
    102 Maskierter Schlüssel
    104 Klartext
    111 Schlüsselverschlüsselungsmaske 0//Schlüsselverschlüsselungsmaske n
    113 S-Tabelle 0//S-Tabelle n
    106 Ausgabe

Claims (11)

  1. Verfahren, das in einem Gerät, einer Vorrichtung oder einem System zur Datenverarbeitung implementiert ist, zur Verwendung in iterativen kryptografischen Operationen, in denen die Maskierung eines anfänglichen Schlüsselwerts rk sowie eine anfängliche Substitutionstabelle verwendet werden, wobei das Verfahren folgende Schritte umfasst: anfängliches Maskieren des anfänglichen Schlüsselwerts rk, anfängliches Definieren einer Gruppe von nicht gleichförmigen Schlüsselverschlüsselungsmasken (111), anfängliches Definieren einer Gruppe von maskierten Substitutionstabellen (113), wobei jede maskierte Substitutionstabelle von der anfänglichen Substitutionstabelle abgeleitet ist, sodass sie einer von einer Gruppe von Schlüsselverschlüsselungsmasken (111) entspricht, iteratives Ausführen der kryptografischen Operationen, sodass jede Iteration der kryptografischen Operationen den Schritt beinhaltet, einen nachfolgenden maskierten Schlüsselwert (102) zu definieren, indem der vorherige maskierte Schlüsselwert (102) mithilfe einer Schlüsselverschlüsselungsmaske aus der Gruppe der Schlüsselverschlüsselungsmasken (111) maskiert wird, und jede Iteration der kryptografischen Operationen den nachfolgend definierten maskierten Schlüsselwert (102) und die entsprechende Tabelle aus der Gruppe der maskierten Substitutionstabellen (113) verwendet.
  2. Verfahren gemäß Anspruch 1, wobei die Gruppe nicht gleichförmiger Schlüsselverschlüsselungsmasken aus nicht gleichförmigen Gruppen von Masken gebildet wird.
  3. Verfahren gemäß Anspruch 2, wobei die Schlüsselverschlüsselungsmasken innerhalb einer Gruppe gleichförmig sind, sich jedoch von anderen Masken in anderen Gruppen unterscheiden.
  4. Verfahren gemäß einem der Ansprüche 1 bis 3, wobei die Gruppe nicht gleichförmiger Masken aus nicht gleichförmigen Teilen derselben Maske gebildet wird.
  5. Verfahren gemäß einem der Ansprüche 1 bis 4, wobei der Schritt des Definierens eines nachfolgenden maskierten Schlüsselwerts (102) den Schritt beinhaltet, eine Schlüsselverschlüsselungsmaske aus einer Gruppe von Schlüsselverschlüsselungsmasken (111) auszuwählen, indem willkürlich einer der folgenden Modi für das Durchlaufen der Gruppe von Schlüsselverschlüsselungsmasken (111) gewählt wird: inkrementeller Modus, dekrementeller Modus, änderungsloser Modus oder zweifach inkrementeller Modus.
  6. Verfahren gemäß einem der Ansprüche 1 bis 5, bei dem jeder nachfolgend definierte maskierte Schlüsselwert (102) aus Teilschlüsselwerten zusammengesetzt ist und die Gruppe von Schlüsselverschlüsselungsmasken (111) so definiert ist, dass sie das Maskieren jedes einzelnen der Teilschlüsselwerte zulässt.
  7. Verfahren gemäß Anspruch 6, bei dem die iterativen kryptografischen Operationen Runden sind und die Teilschlüsselwerte Teile von Rundenschlüsselwerten sind.
  8. Verfahren gemäß Anspruch 7, bei dem die Runden Runden eines Prozesses nach dem Advanced Encryption Standard oder dem Data Encryption Standard sind.
  9. Programmprodukt für ein Datenverarbeitungsgerät zur Ausführung von iterativen kryptografischen Operationen unter Verwendung eines anfänglichen Schlüsselwertes rk und einer Substitutionstabelle, wobei das Programmprodukt für ein Datenverarbeitungsgerät einen maschinenlesbaren Datenträger umfasst, auf dem für das Datenverarbeitungsgerät lesbarer Programmproduktcode ausgeführt ist, wobei dieser Programmcode von einem Prozessor eines Geräts, einer Vorrichtung oder eines Systems zur Datenverarbeitung ausgeführt werden kann, um das Verfahren gemäß einem der Ansprüche 1 bis 8 zu realisieren.
  10. Gerät, Vorrichtung oder System zur Datenverarbeitung, das Mittel beinhaltet, um die Schritte des Verfahrens gemäß einem der Ansprüche 1 bis 8 zu realisieren.
  11. Datenverarbeitungssystem oder -netz, das mindestens ein Gerät, eine Vorrichtung oder ein System zur Datenverarbeitung gemäß Anspruch 10 umfasst.
DE602005002349T 2005-05-10 2005-05-10 Schlüsselmaskierung für kryptographische Prozesse Active DE602005002349T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP05103904A EP1722502B1 (de) 2005-05-10 2005-05-10 Schlüsselmaskierung für kryptographische Prozesse

Publications (2)

Publication Number Publication Date
DE602005002349D1 DE602005002349D1 (de) 2007-10-18
DE602005002349T2 true DE602005002349T2 (de) 2008-01-17

Family

ID=34939776

Family Applications (2)

Application Number Title Priority Date Filing Date
DE602005002632T Active DE602005002632T2 (de) 2005-05-10 2005-05-10 Schlüsselmaskierung für kryptographische Prozesse mittels einer Kombination von Zufallsmaskenwerten
DE602005002349T Active DE602005002349T2 (de) 2005-05-10 2005-05-10 Schlüsselmaskierung für kryptographische Prozesse

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE602005002632T Active DE602005002632T2 (de) 2005-05-10 2005-05-10 Schlüsselmaskierung für kryptographische Prozesse mittels einer Kombination von Zufallsmaskenwerten

Country Status (5)

Country Link
US (1) US7778419B2 (de)
EP (2) EP1724961B1 (de)
AT (2) ATE374476T1 (de)
CA (1) CA2546211C (de)
DE (2) DE602005002632T2 (de)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007189659A (ja) * 2005-12-15 2007-07-26 Toshiba Corp 暗号化装置、暗号化方法及び暗号化プログラム
JP4909018B2 (ja) * 2006-11-16 2012-04-04 富士通株式会社 共通鍵暗号のための暗号化装置
EP2147517B1 (de) * 2007-05-07 2017-03-22 Hitachi Data Systems Corporation Verfahren für datenschutz bei verteilter datenspeicherung fester inhalte
US20080298583A1 (en) * 2007-05-31 2008-12-04 Lucent Technologies Inc. System and method of quantum encryption
US8781111B2 (en) * 2007-07-05 2014-07-15 Broadcom Corporation System and methods for side-channel attack prevention
US8582765B2 (en) * 2007-08-01 2013-11-12 Stmicroelectronics S.A. Masking of data in a calculation
EP2053568A1 (de) * 2007-09-28 2009-04-29 Gemplus Verfahren zur Erzeugung von Masken in einem Kommunikationsobjekt und entsprechendes Kommunikationsobjekt
CA2688592C (en) * 2007-10-01 2014-04-15 Research In Motion Limited Substitution table masking for cryptographic processes
FR2924550A1 (fr) * 2007-11-30 2009-06-05 Commissariat Energie Atomique Procedes et dispositifs de cryptage et de decryptage d'un message de donnees a cle secrete aleatoire.
DE102008023912A1 (de) * 2008-05-16 2009-11-19 Siemens Aktiengesellschaft Verfahren und Speichervorrichtung zum Bereitstellen eines kryptografischen Schlüssels
JP4687775B2 (ja) * 2008-11-20 2011-05-25 ソニー株式会社 暗号処理装置
FR2952773B1 (fr) 2009-11-13 2012-07-20 Inst Telecom Telecom Paristech Circuit electronique de faible complexite protege par masquage personnalise
US9026803B2 (en) * 2009-11-30 2015-05-05 Hewlett-Packard Development Company, L.P. Computing entities, platforms and methods operable to perform operations selectively using different cryptographic algorithms
KR101334040B1 (ko) 2010-01-20 2013-11-28 한국전자통신연구원 대칭키 암호화 시스템의 마스킹 연산 방법 및 장치
KR101362675B1 (ko) 2012-11-30 2014-02-12 한국전자통신연구원 저전력 암호화 장치 및 방법
US9197422B2 (en) * 2013-01-24 2015-11-24 Raytheon Company System and method for differential encryption
US9244755B2 (en) * 2013-05-20 2016-01-26 Vmware, Inc. Scalable log analytics
CN104660331A (zh) * 2013-11-18 2015-05-27 中兴通讯股份有限公司 终端的信息发送、接收方法及装置、终端
US20150222421A1 (en) * 2014-02-03 2015-08-06 Qualcomm Incorporated Countermeasures against side-channel attacks on cryptographic algorithms
DE102014004378A1 (de) * 2014-03-26 2015-10-01 Giesecke & Devrient Gmbh Speichereffiziente seitenkanalgeschützte Maskierung
US9779227B1 (en) * 2014-10-24 2017-10-03 Amazon Technologies, Inc. Security system using keys encoded in holograms
US11563566B2 (en) 2014-10-27 2023-01-24 Micro Focus Llc Key splitting
US10699030B2 (en) 2014-12-30 2020-06-30 Cryptography Research Inc. Determining cryptographic operation masks for improving resistance to external monitoring attacks
US9768953B2 (en) * 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US20200076594A1 (en) * 2016-03-30 2020-03-05 The Athena Group, Inc. Key update for masked keys
WO2017223509A1 (en) * 2016-06-23 2017-12-28 Cryptography Research, Inc. Cryptographic operations employing non-linear share encoding for protecting from external monitoring attacks
CN107547190A (zh) * 2016-06-28 2018-01-05 埃沙尔公司 用于保护使用替换表的替换运算免受侧信道分析的方法
DE102018107114A1 (de) * 2018-03-26 2019-09-26 Infineon Technologies Ag Seitenkanalgehärtete Operation
KR102161281B1 (ko) * 2019-09-18 2020-09-29 박준희 의사난수생성을 이용한 사용자 단말 접근 통제 서비스 제공 방법
US11507699B2 (en) * 2019-09-27 2022-11-22 Intel Corporation Processor with private pipeline
DE102020102796A1 (de) * 2020-02-04 2021-08-05 Infineon Technologies Ag Datenverarbeitungsvorrichtung und verfahren zum verarbeiten von geheimen daten
JP7314108B2 (ja) * 2020-08-27 2023-07-25 株式会社東芝 暗号処理装置、暗号処理方法およびプログラム
US20220069981A1 (en) * 2020-09-03 2022-03-03 Google Llc Distribute Encryption Keys Securely and Efficiently

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4706266A (en) * 1986-11-05 1987-11-10 Advanced Micro Devices, Inc. Dual mode-increment/decrement N-bit counter register
US5479626A (en) * 1993-07-26 1995-12-26 Rockwell International Corporation Signal processor contexts with elemental and reserved group addressing
EP1090480B1 (de) * 1998-06-03 2019-01-09 Cryptography Research, Inc. Verbesserungen zu des und anderen kryptographischen verfahren mit leckminimisierung für chipkarten und andere kryptosysteme
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
US6419159B1 (en) 1999-06-14 2002-07-16 Microsoft Corporation Integrated circuit device with power analysis protection circuitry
US6295606B1 (en) 1999-07-26 2001-09-25 Motorola, Inc. Method and apparatus for preventing information leakage attacks on a microelectronic assembly
US6725417B2 (en) * 2000-03-14 2004-04-20 Machine Learning Laboratory, Inc. Sequential decoding apparatus and method
FR2820577B1 (fr) * 2001-02-08 2003-06-13 St Microelectronics Sa Procede securise de calcul cryptographique a cle secrete et composant mettant en oeuvre un tel procede
US7142670B2 (en) * 2001-08-14 2006-11-28 International Business Machines Corporation Space-efficient, side-channel attack resistant table lookups
US8033909B2 (en) * 2003-05-12 2011-10-11 Warner Bros. Entertainment Inc. Random selection program for an optical disc and related method

Also Published As

Publication number Publication date
DE602005002632D1 (de) 2007-11-08
DE602005002349D1 (de) 2007-10-18
CA2546211C (en) 2011-10-11
EP1722502B1 (de) 2007-09-05
EP1724961B1 (de) 2007-09-26
ATE374476T1 (de) 2007-10-15
DE602005002632T2 (de) 2008-01-31
ATE372619T1 (de) 2007-09-15
US7778419B2 (en) 2010-08-17
US20060256963A1 (en) 2006-11-16
EP1724961A1 (de) 2006-11-22
EP1722502A1 (de) 2006-11-15
CA2546211A1 (en) 2006-11-10

Similar Documents

Publication Publication Date Title
DE602005002349T2 (de) Schlüsselmaskierung für kryptographische Prozesse
EP3219042B1 (de) Gehärtete white box implementierung 2
EP2605445B1 (de) Verfahren und Vorrichtung zur Absicherung von Blockchiffren gegen Template-Attacken
DE102005012098B4 (de) Datenchiffrierprozessor sowie AES-Chiffriersystem und AES-Chiffrierverfahren
EP2901611B1 (de) Seitenkanalgeschützte maskierung
EP2462717B1 (de) Echtzeitfähige quantencomputersichere verschlüsselung von daten aller art
DE112011102765T5 (de) Vorrichtung und Verfahren für Blockverschlüsselungsverfahren für unsichere Umgebungen
DE602004003226T2 (de) Tabellenmaskierung zur Beständigkeit gegen Angriffe durch Analyse der Leistungsaufnahme.
DE602004003675T2 (de) Sicherheitsgegenmassnahmen gegen Angriffe durch Stromverbrauchsanalysen
DE10324422B4 (de) Verfahren und Vorrichtung zur Abbildung eines abzubildenden Eingangswertes auf einen verschlüsselten abgebildeten Ausgangswert
DE102004018874B4 (de) Verfahren und Vorrichtung zum Bestimmen eines Ergebnisses
DE102015015953B3 (de) Kryptoalgorithmus mit schlüsselabhängigem maskiertem Rechenschritt (SBOX-Aufruf)
DE102004038594B4 (de) Verschlüsselungsverfahren und -vorrichtung
EP3369205B1 (de) Alternative darstellung des krypto-algorithmus des
EP1573955B1 (de) Verschl sselungsverfahren
DE10303723B4 (de) Vorrichtung und Verfahren zum Berechnen von verschlüsselten Daten aus unverschlüsselten Daten oder von unverschlüsselten Daten aus verschlüsselten Daten
DE102020129058B3 (de) Datenverarbeitungseinrichtung und verfahren zum kryptographischen verarbeiten von daten
DE10149191C2 (de) Verfahren und Vorrichtung zum Ermitteln von Ursprungsausgangsdaten aus Ursprungseingangsdaten auf der Basis einer kryptographischen Operation
DE10324420A1 (de) Kryptomultiplexerzelle

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: MERH-IP, 80336 MUENCHEN