DE602005002632T2 - Schlüsselmaskierung für kryptographische Prozesse mittels einer Kombination von Zufallsmaskenwerten - Google Patents

Schlüsselmaskierung für kryptographische Prozesse mittels einer Kombination von Zufallsmaskenwerten Download PDF

Info

Publication number
DE602005002632T2
DE602005002632T2 DE602005002632T DE602005002632T DE602005002632T2 DE 602005002632 T2 DE602005002632 T2 DE 602005002632T2 DE 602005002632 T DE602005002632 T DE 602005002632T DE 602005002632 T DE602005002632 T DE 602005002632T DE 602005002632 T2 DE602005002632 T2 DE 602005002632T2
Authority
DE
Germany
Prior art keywords
values
masked
masks
key
tables
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
DE602005002632T
Other languages
English (en)
Other versions
DE602005002632D1 (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 DE602005002632D1 publication Critical patent/DE602005002632D1/de
Application granted granted Critical
Publication of DE602005002632T2 publication Critical patent/DE602005002632T2/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 bezieht sich im Allgemeinen auf Computersysteme und im Besonderen auf Computersysteme, die Verschlüsselungsvorgänge und Gegenmaßen zur Abwehr von Angriffen durch Stromverbrauchsanalysen umsetzen.
  • Computersysteme erfordern häufig das Durchführen von Vorgängen in sicherer Weise. Bei integrierten Computergeräten und pervasiven Systemen ist die Betriebssicherheit oft von entscheidender Bedeutung. Um die Sicherheit des Betriebs und der Kommunikation zu gewährleisten, setzen solche Systeme kryptografische Verfahren ein.
  • Auch die Umsetzung eines solchen kryptografischen Verfahrens selbst muss sicher sein. Kryptografische Verfahren sind jedoch Angriffen ausgesetzt. Zu nicht invasiven Angriffen auf Computergeräte, die kryptografische Verfahren umsetzen, zählen unter anderem Angriffe durch sogenannte Stromverbrauchsanalysen. Ein Angriff durch Stromverbrauchsanalysen beinhaltet das Überwachen des Stromverbrauchs einer oder mehrerer Komponenten eines Geräts, während das Gerät ein kryptografisches Verfahren ausführt.
  • Die beim Überwachen des Stromverbrauchs des Geräts gewonnenen Daten werden in Verbindung mit Kenntnissen über die vom Gerät ausgeführten Vorgänge verwendet, um die geheimen Informationen herzuleiten, die Teil des kryptografischen Verfahrens sind.
  • Eine Art eines Angriffs durch Stromverbrauchsanalysen wird als differenzielle Stromverbrauchsanalyse (Differential Power Analysis, DPA) bezeichnet (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 Anzahl von Eingaben erzeugt, indem verschiedene Bits in Werten variiert werden, die unter Verwendung des in einem Gerät umgesetzten kryptografischen Verfahrens zu kodieren sind. Beim DPA-Angriff wird für jeden dieser variierenden Werte der Stromverbrauch an verschiedenen Stellen in einem Computergerät beobachtet; durch statistische Auswertung werden die abweichenden Daten zur Bestimmung eines wahrscheinlichen Schlüsselwerts für das kryptografische Verfahren (der geheimen Informationen) verwendet.
  • DPA-Angriffe können auf die Ein- oder Ausgaben der Ersetzungstabellen (die auch als Ersetzungsboxen (Substitution Boxes) oder „S-Boxen" bezeichnet werden) abzielen, die in kryptografischen Algorithmen häufig verwendet werden und oft als Abfragetabellen umgesetzt werden. Eine S-Box wird typischerweise durch eine Kombination von Schlüsselbits und Klartext indiziert. Bei der Durchführung eines Angriffs zur Bestimmung eines Schlüsselwerts, der in einem kryptografischen System verwendet wird, steuert ein Angreifer die Klartextwerte und versucht die Schlüsselbits zur erraten. Aufgrund dieser Rateversuche werden Berechnungen an den erfassten Stromspuren vorgenommen, um einen Satz von DPA-Daten zu bilden. Die DPA-Daten mit dem höchsten Spitzenwert werden herangezogen, um unter den geratenen Schlüsselbits die wahrscheinlich richtigen zu bestimmen. Wie für Fachleute ersichtlich ist, basiert eine andere Art von Angriffen auf elektromagnetischen Analysen des Geräts, das einen kryptografischen Prozess ausführt. Die nachfolgende Beschreibung bezieht sich auf Angriffe mittels des Stromverbrauchs; wie jedoch zu ersehen ist, können Angriffe durch elektromagnetische Analysen die gleichen Probleme aufwerfen.
  • Für DPA-Angriffe auf S-Boxen 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) nennt ein Verfahren, bei dem Tabellen mit einer unterschiedlichen zufälligen Ausgabemaske innerhalb des kryptografischen Algorithmus häufig neu erstellt werden. Ein solcher Ansatz bringt jedoch einen potentiell großen Mehraufwand für jeden Neuerstellungsschritt mit sich. Zur Verringerung der für die Neuerstellung der Tabellen erforderlichen zusätzlichen Latenzzeiten schlägt Itoh („DPA countermeasure based an the 'masking method'", K. Itoh u. a., ICICS 2001, Lecture Notes in Computer Science, 2288, S. 440-456, 2001, Springer-Verlag) die Verwendung einer festen Anzahl fester Werte zum Maskieren der Ersetzungstabellen vor. Unterschiedliche Ersetzungstabellen können vorab festgelegt und die unterschiedlichen Tabellen zu unterschiedlichen Zeitpunkten im kryptografischen System verwendet werden. In dem von Itoh geoffenbarten System wird jedoch bei jedem Aufruf des kryptografischen Prozesses dieselbe Maske für alle Rundenschlüssel verwendet. Darüber hinaus besteht die Möglichkeit, dass ein Angreifer durch einfache Stromverbrauchsanalysen an Informationen zur Ermittlung kryptografischer Prozesse gelangt, bei denen dieselbe Maske verwendet wird. Somit kann ein Angreifer, der eine Maske bestimmt und Zugriff auf maskierte Rundenschlüssel hat (beispielsweise durch eine differenzielle Stromverbrauchsanalyse erster Ordnung), unter Umständen an alle Bits des Hauptschlüssels und alle Rundenschlüssel gelangen. Bei derartigen Ansätzen ist der gesamte Hauptschlüssel gefährdet, wenn die Maske von einem Angreifer bestimmt wird.
  • Ein weiterer Ansatz beinhaltet das von Patarin ( US-Patent 6.658.569 , Patarin u. a., „Secret key cryptographic process for protecting a computer system against attacks by physical analysis") beschriebene Doppelungsverfahren, das auf Vorgehensweisen für den Geheimnisaustausch abzielt, bei denen mehrere Eingaben in die S-Box unterstützt werden. Die mehreren Eingaben in die Tabelle werden zu einer Variablen v umgeformt. Zusätzlich werden zwei Tabellenausgaben erzeugt, zum einen eine zufällige Umformung A(v) der Eingabe und zum anderen das durch Exklusiv-ODER mit S(v) verknüpfte A(v). Da sich bei dem Ansatz von Patarin die zufällige Umformung von v nicht ändert, besteht jedoch die Gefahr, dass im Lauf der Zeit ein Angreifer die verwendete zufällige Umformung bestimmen kann. Da A(v) von der Tabelle ausgegeben wird, besteht darüber hinaus die Möglichkeit, dass ein Angreifer durch Stromverbrauchsanalysen zweiter Ordnung (unter Verwendung von Stromverbrauchsmessungen für A(v) und das durch Exklusiv-ODER mit S(v) verknüpfte A(v)) an Informationen gelangt, um zu einem richtig geratenen Schlüssel zu gelangen.
  • Die Ansätze von Itoh und Patarin lassen sich jeweils auch unter Verwendung unterschiedlicher maskierter Tabellen oder Umformungen umsetzen. Eine solche Verwendung mehrerer maskierter Tabellen oder Umformungen erfordert jedoch zusätzliche Ressourcen im Hinblick auf Speicher, Strom und Prozessorleistung, die nicht immer verfügbar sind und deren Zuweisung typischerweise nicht wünschenswert ist.
  • Somit wäre es von Vorteil, Gegenmaßnahmen durch Maskierung von Ersetzungstabellen zur Abwehr von DPA-Angriffen unter Verwendung veränderlicher Maskierungswerte für Tabelleneingaben und -ausgaben so umzusetzen, dass diese Gegenmaßnahmen kein wiederholtes Neuerstellen von Tabellen und kein Neudefinieren von Umformungen erfordern und unterschiedliche Masken für unterschiedliche Rundenschlüssel verwendet werden.
  • Allgemeines
  • Entsprechend einem Aspekt der vorteilhaften Ausführung wird eine verbesserte Gegenmaßnahme für einen kryptografischen Prozess oder ein kryptografisches System bereitgestellt.
  • Entsprechend einem weiteren Aspekt der vorteilhaften Ausführung werden ein Verfahren und ein System bereitgestellt, die die Rotation vom Masken mit festen Werten und von zugehörigen maskierten Ersetzungstabellen in einem kryptografischen Prozess beinhalten. Entsprechend weiteren Aspekten der Erfindung können solche rotierten Masken für Ersetzungstabellen bei kryptografischen Vorgängen verwendet werden, die entsprechend den Fachleuten geläufigen Ansätzen AES (Advanced Encryption Standard) und DES (Data Encryption Standard) durchgeführt werden.
  • Entsprechend einem Aspekt der Erfindung wird ein in einem Computergerät umgesetztes Verfahren zum schrittweisen Maskieren eines Schlüsselwerts bereitgestellt, wobei die schrittweise maskierten Werte für die Verwendung in aufeinanderfolgenden Iterationen kryptografischer Vorgänge unter Verwendung einer Ersetzungstabelle bestimmt sind und das Verfahren zunächst die folgenden Schritte umfasst:
    Teilen des Schlüsselwerts in eine Menge geteilter Schlüsselwerte, Definieren einer Menge von Zufallsmaskenwerten,
    Verbinden mehrerer Zufallsmaskenwerte zum Definieren uneinheitlicher Schlüsselverschlüsselungsmasken und Maskieren der Menge geteilter Schlüsselwerte mit ausgewählten Schlüsselverschlüsselungsmasken zum Definieren einer Menge maskierter Schlüssel zur Verwendung bei den iterativen kryptografischen Vorgängen, und
    Verbinden mehrerer Zufallsmaskenwerte, die zu den Schlüsselverschlüsselungsmasken gehören, zum Definieren uneinheitlicher Tabellenmasken und Erzeugen einer Menge maskierter Tabellen, die von der Ersetzungstabelle abgeleitet sind und der Menge geteilter Schlüsselwerte entsprechen, zur Verwendung bei den iterativen kryptografischen Vorgängen,
    wobei das Verfahren darüber hinaus für jede Iteration des kryptografischen Vorgangs den Schritt der Verwendung ausgewählter Schlüsselverschlüsselungsmasken und maskierter Tabellen beinhaltet,
    wobei die Auswahl durch eine Rotation der jeweiligen Mengen von Schlüsselverschlüsselungsmasken und maskierten Tabellen durchgeführt wird.
  • Entsprechend einem Aspekt der Erfindung wird das obige, in einem Computergerät umgesetzte Verfahren bereitgestellt, bei dem der Schritt des Auswählens der Elemente in der Menge von Schlüsselverschlüsselungsmasken und der Menge maskierter Tabellen darüber hinaus die zufällige Auswahl eines Rotationsmodus aus einer Menge möglicher Rotationsmodi beinhaltet.
  • Entsprechend einem Aspekt der Erfindung wird das obige, in einem Computergerät umgesetzte Verfahren bereitgestellt, bei dem die Menge möglicher Rotationsmodi zwei oder mehr der Modi Inkrementierung, Dekrementierung, kein Wechsel und doppelte Inkrementierung beinhaltet.
  • Entsprechend einem Aspekt der Erfindung wird das obige, in einem Computergerät umgesetzte Verfahren bereitgestellt, bei dem die Maskierung zur Erzeugung der maskierten Tabellen eine Eingabemaskierung ist, wobei das Verfahren darüber hinaus den Schritt des Definierens von Ausgabemasken für jede der maskierten Tabellen beinhaltet, wobei die Werte der Ausgabemasken so definiert werden, dass sich die Ausgabemasken bei den kryptografischen Vorgängen aufheben.
  • Entsprechend einem Aspekt der Erfindung wird das obige, in einem Computergerät umgesetzte Verfahren bereitgestellt, bei dem die Definition der Schlüsselverschlüsselungsmasken die folgenden Schritte beinhaltet:
    Definieren einer Menge uneinheitlicher Ausgangsmaskenwerte zur Anwendung auf die geteilten Schlüsselwerte,
    Definieren einer Menge uneinheitlicher Rotationsmaskenwerte, wobei die Rotationsmaskenwerte angewendet werden, nachdem die Ausgangsmaskenwerte und die resultierenden maskierten Werte verfügbar sind, um die Menge maskierter Schlüsselwerte zu ersetzen, und
    Definieren einer Menge von Tupeln von Entmaskierungswerten, die so definiert sind, dass die Tupel von Entmaskierungswerten bei der Verbindung die Ausgangsmaskenwerte jeweils aufheben.
  • Entsprechend einem Aspekt der Erfindung wird das obige, in einem Computergerät umgesetzte Verfahren zur Anwendung bei einem AES-Verschlüsselungsvorgang bereitgestellt.
  • Entsprechend einem weiteren Aspekt der Erfindung wird ein Computergeräteprogrammprodukt zum Durchführen iterativer kryptografischer Vorgänge unter Verwendung eines Ausgangsschlüsselwerts und einer Ersetzungstabelle bereitgestellt, wobei das Computergeräteprogrammprodukt ein durch Computergeräte lesbares Medium mit auf dem Medium enthaltenem, durch Computergeräte lesbarem Programmproduktcode beinhaltet und zur Durchführung eines oder mehrerer der obigen Verfahren geeigneten Programmcode beinhaltet.
  • Entsprechend einem weiteren Aspekt der Erfindung wird ein Computergerät bereitgestellt, das ein Speichermedium zum Speichern von Programmcode beinhaltet, der auf dem Computergerät ausgeführt werden kann, wobei auf dem Speichermedium des Computergeräts Programmcode gespeichert ist, der auf dem Computergerät zur Durchführung eines oder mehrerer der obigen Verfahren ausgeführt werden kann.
  • Zu den Vorteilen der vorteilhaften Ausführung gehört unter anderem die Verwendung mehrerer maskierter Mengen von Ersetzungstabellen bei jedem Aufruf eines kryptografischen Prozesses. Zu den Vorteilen gehört die Bereitstellung unterschiedlicher Masken für unterschiedliche Bytes und/oder Wörter in einem Schlüssel, der bei einem kryptografischen Prozess verwendet wird. Darüber hinaus ist bei kryptografischen Prozessen, bei denen Schlüssel und Rundenschlüssel verwendet werden, kein Speichern aller maskierten Versionen der Schlüssel und Rundenschlüssel erforderlich. In vorteilhafter Weise kann eine einzelne maskierte Version jedes Rundenschlüssels gespeichert werden; entsprechend einem Aspekt der Erfindung variiert die Maske für jeden Rundenschlüssel zufällig bei jedem Aufruf des kryptografischen Prozesses, indem der neu maskierte Rundenschlüssel den vorherigen maskierten Rundenschlüssel überschreibt.
  • Ein weiterer Vorteil eines Aspekts der vorteilhaften Ausführung besteht darin, das die zustandsabhängige Maskierung durch den Wert der rotierten Masken und die Abhängigkeit der maskierten Tabellen vom Zustand der Masken vor der Rotation unterstützt wird. Somit führen von einem Angreifer gewonnene Informationen bezüglich der Art der durchgeführten Rotation nicht direkt zu Informationen zur Maskierung. Zu den Vorteilen gehört die Umsetzung variierender Masken für Ersetzungstabellen, die eine Verringerung des Mehraufwands an Energie, Leistung und Programmcode ermöglicht. Ein solcher verringerter Mehraufwand ermöglicht den Einsatz dieses Ansatzes für Gegenmaßnahmen auf Geräten wie beispielsweise drahtlosen mobilen Geräten, wenn für von den Geräten durchgeführte Vorgänge Sicherheitsanforderungen bestehen, zugleich jedoch auf Einschränkungen bezüglich des Stromverbrauchs und der Prozessorleistung Rücksicht genommen werden muss.
  • Kurze Beschreibung der Zeichnungen
  • Die folgenden Zeichnungen veranschaulichen eine vorteilhafte Ausführung der Erfindung und sollen hierbei lediglich als Beispiele dienen:
  • 1 ist ein Blockdiagramm, das Ersetzungstabellen und eine Maskierung entsprechend der vorteilhaften Ausführung bei der Anwendung auf die AES-Verschlüsselung zeigt;
  • 2 ist ein Blockdiagramm, dass eine Übersichtsdarstellung der in der vorteilhaften Ausführung durchgeführten Maskierung zeigt.
  • Beschreibung vorteilhafter Ausführungen
  • Bei verschiedenen kryptografischen Vorgängen, die in Computergeräten umgesetzt sind, werden Ersetzungstabellen verwendet. Beispielsweise werden in AES und in Triple DES (3DES) mehrere S-Boxen bei der Verschlüsselung von Klartext eingesetzt. Als Gegenmaßnahme gegen Angriffe auf die Sicherheit der kryptografischen Vorgänge können die Eingabe und die Ausgabe der Ersetzungstabellen maskiert werden. Die durch Maskierung der Tabellenausgabe erreichte Sicherheit kann jedoch selbst Angriffen ausgesetzt sein.
  • Die vorteilhafte Ausführung kann als Computerprogrammprodukt umgesetzt werden, das Programmcode beinhaltet, der zur Durchführung der Schritte im beschriebenen Prozess dient. Die vorteilhafte Ausführung kann als Computersystem (das ein Subsystem oder ein System beinhaltet, das als mit anderen Systemen zusammenarbeitend definiert ist) für die Verschlüsselung umgesetzt werden, das Elemente beinhaltet, die die Funktionen entsprechend der Beschreibung ausführen. Das Computersystem der vorteilhaften Ausführung kann definiert werden durch und das Computerprogrammprodukt kann enthalten sein in Signale(n), die von Netzen wie beispielsweise dem Internet übertragen werden, oder kann in Medien, wie etwa magnetischen, elektronischen oder optischen Speichermedien, enthalten sein. Der beschriebene Prozess kann in einem Computergerät als Verfahren umgesetzt werden, das durch eine Kombination aus Computercode und im Computergerät enthaltener Hardware durchzuführen ist (in diesem Fall ist der Prozess ein durch Computergeräte umgesetztes Verfahren). Computergeräte, auf denen die vorteilhafte Ausführung umgesetzt werden kann, sind unter anderem voll ausgestattete Computer, mobile Geräte wie drahtlose mobile Geräte und sonstige Geräte, die Computersystemtechnik enthalten.
  • Die vorteilhafte Ausführung wird in Bezug auf Verschlüsselungsschritte für den Prozess der AES-Verschlüsselung beschrieben. Wie jedoch zu ersehen ist, kann die vorteilhafte Ausführung auch in Bezug auf Entschlüsselungsprozesse sowie auf andere iterative kryptografische Vorgänge umgesetzt werden, die Schlüssel und Ersetzungstabellen beinhalten und für die Gegenmaßnahmen gegen Angriffe wie etwa DPA wünschenswert sind. Die iterative Beschaffenheit der beschriebenen kryptografischen Prozesse kann sich aus einem einzelnen Verschlüsselungs- oder Entschlüsselungsprozess ergeben (bei dem etwa Runden, wie nachfolgend anhand des AES-Prozesses beschrieben, durchgeführt werden). Ein kryptografischer Prozess kann aber auch dadurch einen iterativen Aspekt aufweisen, dass der kryptografische Prozess schrittweise zum Verschlüsseln oder Entschlüsseln verwendet wird. In beiden Fällen liegt eine Menge von Schritten vor, die der Iteration unterliegen, und kann für diese Menge von Schritten die in der vorliegenden Erfindung beschriebene Maskierung durchgeführt werden.
  • Wie für Fachleute ersichtlich ist, kann die in der Beschreibung der vorteilhaften Ausführung erwähnte Maskierung mittels einer bitweisen Exklusiv-ODER-Verknüpfung (XOR) in Bezug auf verschiedene, in einem Binärformat dargestellte Werte durchgeführt werden. Es können jedoch auch andere Maskierungsvorgänge verwendet werden. Beispielsweise kann ersatzweise eine arithmetische Maskierung (mit einer Addition und/oder Subtraktion anstelle der Exklusiv-ODER-Verknüpfung) verwendet werden.
  • Entsprechend der vorteilhaften Ausführung wird eine vollständig zufällige Maskierung der Tabellenausgaben unterstützt. 1 ist ein Blockdiagramm, das ein Beispiel der vorteilhaften Ausführung bei der Anwendung auf Schritte der AES-Verschlüsselung zeigt (unter Verwendung einer Tabellenumsetzung von AES für hohe Leistung wie beschrieben in 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 (Seite 18-19)). In 1 sind XOR-Vorgänge wie folgt dargestellt: Kreise stehen für XOR-Verknüpfungen von Eingabewerten, die einen Ausgabewert zum Ergebnis haben; fettgedruckte horizontale Linien kennzeichnen in ähnlicher Weise einen XOR-Prozess; Rundenschlüsseln zugeordnete Nummern in der Abbildung kennzeichnen XOR-Maskierungen, wie nachfolgend beschrieben.
  • In dem Beispiel der vorteilhaften Ausführung in 1 liegen vier verschiedene, zufällig definierte Maskierungswerte vor. Diese sind mit 0, 1, 2, 3 bezeichnet; die Exklusiv-ODER-Verknüpfungen dieser Werte sind mit den in Folge aufgeführten Nummern bezeichnet. Beispielsweise ist in 1 die XOR-Verknüpfung von Maske 1 und Maske 3 mit „13" bezeichnet, und die XOR-Verknüpfung von Maske 0 und Maske 1 ist mit „01" bezeichnet. Wie erwähnt, werden die vier Maskenwerte zufällig unter Verwendung gängiger Techniken definiert. Eine weitere Menge von Ausgabemaskenwerten sind mit 4, 5, 6, 7 bezeichnet; diese werden nachfolgend ausführlicher erläutert.
  • Das in 1 dargestellte Beispiel einer AES-Verschlüsselung beinhaltet die Maskierung von AES-Rundenschlüsseln und maskierte AES-Ersetzungstabellen, wobei Masken für die Eingaben wie auch für die Ausgaben der Ersetzungstabellen (S-Boxen) verwendet werden. Beim Abschluss der AES-Verschlüsselung erfolgt eine abschließende Entmaskierung des Geheimtexts. Entsprechend dem im Beispiel dargestellten AES-Verschlüsselungsprozess werden für einen 128-Bit-Schlüssel vier verschiedene 32-Bit-Rundenschlüssel definiert. Diese Umsetzung ist beispielsweise dann geeignet, wenn der Prozessor, der die AES-Vorgänge ausführt, ein 32-Bit-Prozessor ist. In 1 sind diese vier Ausgangsrundenschlüssel als rk0, rk1, rk2, rk3 dargestellt. Im Beispiel der vorteilhaften Ausführung wird jeder Rundenschlüssel durch eine unterschiedliche Kombination von drei der Maskenwerte maskiert.
  • Folglich sind die maskierten Rundenschlüssel in 1 als rk0-023, rk1-013, rk2-012, rk3-123 dargestellt, wobei die Nummern hinter den Bindestrichen die Exklusiv-ODER-Verknüpfung der jeweiligen drei Maskenwerte bezeichnen. Im Beispiel wird der Rundenschlüssel rk0 durch Exklusiv-ODER-Verknüpfung der Masken 0, 2 und 3 maskiert (dargestellt als „rk0-023"). Wie zu ersehen ist, kann die Menge maskierter Rundenschlüssel mit anderen Kombinationen von Maskenwerten definiert werden. Die auf die Rundenschlüssel angewendeten Masken werden jedoch so ausgewählt, dass sie die Definition geeigneter Schlüsselverschlüsselungsmasken und maskierter Tabellen ermöglichen, wie dies im Einzelnen für das Beispiel in 1 beschrieben wird.
  • In dem Beispiel eines kryptografischen Vorgangs in 1 sind vier Mengen von vier maskierten Tabellen dargestellt. Jede dieser Tabellen wird durch einen 8-Bit-Eingabewert indiziert und hat einen 32-Bit-Ausgabewert. Für Fachleute ist somit ersichtlich, dass die Eingabemaske der Menge maskierter Tabellen ein Byte (8-Bit-Wert) ist. In dem Beispiel der vorteilhaften Ausführung in 1 hat jedes der vier Bytes eines einzelnen 32-Bit-Rundenschlüsel dasselbe Maskenbyte. Dies ermöglicht die Durchführung der ordnungsgemäßen Maskierung der Ersetzungstabellen, sodass ein Zugriff mittels der (maskierten) vier Bytes der 32-Bit-Klartextsegmente ermöglicht wird, die im Beispiel in 1 als s0, s1, s2, s3 dargestellt sind.
  • Die Rundenschlüssel rk0, rk4, rk8...rk40 sind in der obigen Notation mit „rk4i" dargestellt. Für id = 0, ..., 10 werden beispielsweise 44 Rundenschlüssel (rk0, rk1, ..., rk43) in 1 aufgezeigt. In 1 mit 4i, 4i + 1, 4i + 2, 4i + 3 bezeichnete Rundenschlüssel haben unterschiedliche Masken. In der vorteilhaften Ausführung haben mit rk4i bezeichnete Rundenschlüssel alle dieselben Maske; ähnliches gilt für jeden Rundenschlüssel aus der Menge rk4i+1 (sowie analog dazu auch für die Menge rk4i+2 und für die Menge rk4i+3). Indem zwei oder mehr maskierte Ersetzungstabellen verwendet werden, erhalten die ersten vier Rundenschlüssel rk0, rk1, rk2, rk3 unterschiedliche Masken. Somit ist ein Angreifer, der eine Maske bestimmt und Zugriff auf die maskieren Rundenschlüssel hat, nicht in der Lage, daraufhin an alle 128 Bit des Hauptschlüssels und alle Rundenschlüssel zu gelangen. Dies steht im Gegensatz zu Ansätzen, bei denen während des Aufrufs des kryptografischen Prozesses für alle Rundenschlüssel dieselbe Maske verwendet wird. Bei solchen Ansätzen ist der gesamte Hauptschlüssel gefährdet, wenn die Maske von einem Angreifer bestimmt wird.
  • Beim Ansatz der vorteilhaften Ausführung werden Schlüsselverschlüsselungsmasken eingesetzt und Masken auf die Ersetzungstabellen angewendet, die als uneinheitlich definiert sind. Wie beschrieben, kann die Uneinheitlichkeit erreicht werden, indem jede der Masken als eindeutig verschieden definiert wird; ersatzweise kann die Uneinheitlichkeit durch Definieren von Mengen von Masken erreicht werden. Im letzteren Fall kann jede einzelne Maske innerhalb einer Menge einheitlich sein, doch die Masken in unterschiedlichen Mengen unterscheiden sich. Wie in der Beschreibung der vorteilhaften Ausführung dargelegt, werden die Schlüsselwerte beim kryptografischen Prozess geteilt und die uneinheitlichen Schlüsselverschlüsselungsmasken und uneinheitlich definierten maskierten Tabellen für unterschiedliche Abschnitte der geteilten Schlüsselwerte verwendet.
  • Wie für Fachleute ersichtlich ist, sind bei der Maskierung auch andere Vorgehensweisen möglich. Beispielsweise kann man für alle Rundenschlüssel dieselbe 32-Bit-Maske verwenden, dabei aber auf jeden Schlüssel (uneinheitliche) Abschnitte der Maske anwenden. In diesem Fal ist jedes Byte der Maske als verschieden von den nullten Bytes definiert und als der Eingabemaske einer Menge maskierter Ersetzungstabellen entsprechend definiert.
  • Wie in 1 dargestellt, werden die maskierten Rundenschlüssel jeweils mit einer Schlüsselverschlüsselungsmaske maskiert. Eine Schlüsselverschlüsselungsmaske wird auf eine Ausgangsmenge von Rundenschlüsseln angewendet, bevor Klartextwerte mit den maskierten Rundenschlüsselwerten verbunden werden. In der vorteilhaften Ausführung liegt eine Menge von vier Schlüsselverschlüsselungsmasken vor. 1 zeigt diese Werte als Ergebnisse von Exklusiv-ODER-Verknüpfungen der Maskenwerte 0 und 1, 1 und 2, 2 und 3 sowie 0 und 3 für die vier maskierten Rundenschlüssel rk0-023, rk1-013, rk2-012 bzw. rk3-123. In 1 sind die Schlüsselverschlüsselungsmaskenwerte als rotierbar dargestellt; dies wird durch die gestrichelte Linie mit Pfeilen bezeichnet, die in der Abbildung die vier Schlüsselverschlüsselungsmaskenwerte verbindet. Auf welche Weise diese Werte in der vorteilhaften Ausführung rotiert werden, wird nachfolgend im Einzelnen erläutert.
  • Das Beispiel in 1 beinhalt die Exklusiv-ODER-Verknüpfung der Rundenschlüssel, nachdem diese maskiert wurden, mit einem Klartextwert. Beim AES-Prozess wird, wie in 1 dargestellt, ein 128-Bit-Klartextwert in vier 32-Bit-Werte (pt0, pt1, pt2, pt3 in 1) geteilt. Jedes dieser Exklusiv-ODER-Ergebnisse (s0, s1, s2, s3 in 1) wird anschließend als Eingabewert an einen sich wiederholenden Prozess übergeben, der in 1 schematisch in Kasten 10 dargestellt ist. Im dargestellten Beispiel wird s0 in vier 8-Bit-Teile geteilt. Jeder 8-Bit-Abschnitt des 32-Bit-Eingabewerts dient als Index für eine Tabelle aus der Menge von vier zugehörigen Abfragetabellen. Beispielsweise dient ein Byte von s0 als Eingabe für eine der Tabellen, die in der Abbildung darunter dargestellt sind (Te*0 in 1). In ähnlicher Weise dient ein Byte von s1 als Eingabe für eine der Tabellen Te*1, wie in 1 dargestellt.
  • In dem in 1 dargestellten Beispiel der vorteilhaften Anwendung wird ein Hauptschlüssel mit 128 Bit verwendet. Dieser Hauptschlüssel wird zur Erstellung von 44 32-Bit-Rundenschlüsseln verwendet (wobei die ersten vier Rundenschlüssel entsprechend der AES- bzw. Rijndael-Spezifikation dem 128-Bit-Hauptschlüssel entsprechen). Im Beispiel werden die Rundenschlüssel in 8-Bit-Teile (Bytes) geteilt, wobei sie jeweils mit einer bestimmten Maske versehen werden. Innerhalb einer AES-Runde liegen jeweils vier Rundenschlüssel vor; je nach Vorgehensweise bei der Maskierung können innerhalb eines Rundenschlüssels unterschiedliche Bytemasken oder unterschiedliche Wortmasken jedes Rundenschlüssels verwendet werden. Darüber hinaus können in unterschiedlichen Runden unterschiedliche Vorgehensweisen bei der Maskierung verwendet werden.
  • Wenn beispielsweise A, B, C, D jeweils für eine 8-Bit-Maske (oder Bytemasken) stehen und vier maskierte Mengen von S-Box-Tabellenmengen vorliegen, hat jede Menge von Tabellen eine entsprechende Eingabemaske A, B, C oder D und eine unterschiedliche 32-Bit-Ausgabemaske. Wenn vier Rundenschlüssel vorliegen, die Eingaben für die vier S-Box-Tabellen erzeugen (wie in 1 durch s0, s1, s2, s3 dargestellt), kann die Maske für rk0 als DCBA definiert werden. Analog dazu ist die Maske für rk1 CDAB, die Maske für rk2 BADC und die Maske für rk3 ABCD. Wie zu ersehen ist, sind alle Bytemasken innerhalb eines Rundenschlüssels verschieden und sind auch die Wortmasken der Rundenschlüssel verschieden. Entsprechend der AES-Spezifikation werden die vier Tabellen wie folgt mit Exklusiv-ODER verknüpft: 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)^rk7
  • Daraus ergeben sich Masken für die Ausgabetabellen, die sich aufheben. Dies lässt sich anhand des in der obigen Gleichung definierten Werts t0 nachvollziehen. Für den Wert t0 werden vier Tabellen (Te0, Te1, Te2, Te3) mit den Eingabemasken DDDD verwendet. Dies ist daraus zu ersehen, dass die Maske für rk0 (und s0) DCBA lautet, s031..24 sich auf das erste Byte in s0 bezieht, das D lautet, das folglich das erste D von DDDD als Eingabemaske der Tabellen entsprechend der obigen Gleichung mit der Definition von t0 ist. Wie zu ersehen ist, werden für t1 die Tabelleneingabemasken CACA, für t2 die Tabelleneingabemasken BBBB und für t3 die Tabelleneingabemasken ACAC verwendet.
  • In dem Beispiel der vorteilhaften Ausführung in 1 werden die maskierten Rundenschlüsselwerte durch die resultierenden Werte ersetzt, nachdem die Schlüsselverschlüsselungsmaskenwerte auf die maskierten Rundenschlüssel angewendet wurden. Wie nachfolgend im Einzelnen beschrieben, kann entsprechend der vorteilhaften Ausführung die Rotation der Schlüsselverschlüsselungsmaskenwerte auf verschiedene Weise durchgeführt werden. Wie jedoch aus dem Beispiel in 1 zu ersehen ist, bewirkt die Ersetzung der maskierten Rundenschlüssel effektiv eine Neumaskierung der maskierten Rundenschlüssel. Die Neumaskierung wird so durchgeführt, dass sie synchron mit der Rotation der Schlüsselverschlüsselungsmasken und maskierten Tabellen erfolgt. Auf diese Weise braucht für die beim kryptografischen Prozess verwendeten Rundenschlüssel jeweils nur ein maskierter Rundenschlüsselwert beibehalten zu werden. Der Wert wird entsprechend dem Prozess der vorteilhaften Ausführung fortlaufend neu maskiert.
  • 1 zeigt in den wiederholt ausgeführten Schritten von Kasten 10 vier Mengen von vier maskierten Tabellen. Der AES-Prozess sieht eine einzelne Menge von vier Tabellen vor (Te*, wobei * für die Menge der vier S-Box-Tabellen Te0, Te1, Te2, Te3 steht, die in allen AES-Runden mit Ausnahme der letzten verwendet werden, sowie für Te4, die nur in der letzten Runde verwendet wird). In dem in 1 dargestellten Prozess liegen vier Mengen von Tabellen vor, die mit Te*0, Te*1, Te*2, Te*3 bezeichnet sind. Die in 1 dargestellten Ersetzungstabellen (S-Box-Tabellen oder S-Boxen) werden aufgrund von Ersetzungstabellen definiert, die entsprechend dem AES-Prozess definiert werden. Die Tabellen Te*0, Te*1, Te*2, Te*3 werden in der vorteilhaften Ausführung sowohl mit einer Eingabemaske als auch mit einer Ausgabemaske maskiert, wobei jede dieser Eingabemasken eine Kombination der vier Masken 0, 1, 2, 3 ist, die bei den verschiedenen beschriebenen Maskierungsvorgängen verwendet werden. Die für die Eingabemasken für die S-Boxen verwendeten Kombinationen stehen im Zusammenhang mit den Kombinationen der für den maskierten Ausgangsrundenschlüssel verwendeten Masken und mit den für die Schlüsselverschlüsselungsmaske verwendeten Kombinationen. Bei der Auswahl dieser zusammenhängenden Maskierungskombinationen wird jeweils sichergestellt, dass die Ausgabe des maskierten AES-Kryptografievorgangs durch die an den beim Prozess verwendeten Zwischenwerten durchgeführten Maskierungsvorgänge nicht verändert wird.
  • Die Eingabe- und Ausgabemaskierung wird umgesetzt, indem die Werte in den Abfragetabellen Te*0, Te*1, Te*2, Te*3 so geändert werden, dass für eine Tabelle T, die durch den Wert i indiziert wird (wobei Einträge durch T(i) bezeichnet werden), wobei T(i) = j ist, die Identitätsbeziehung Mt(i^min) = j^mout wahr ist, wobei min der Eingabemaskenwert, mout der Ausgabemaskenwert und Mt(i^min) der maskierte Tabellenwert ist. In der vorteilhaften Ausführung werden, wenn kryptografische Prozess auf einem Gerät mit beschränkten Prozessor- oder Speicherressourcen auszuführen sind, diese maskierten Mengen von Tabellen vorab berechnet und auf das Gerät heruntergeladen, bevor die kryptografischen Prozesse auf dem Gerät aufgerufen werden.
  • Im Beispiel in 1 wird jede der vier mit Te*0 bezeichneten Tabellen bei der Eingabe durch Kombination der drei Maskierungswerte 0, 2, 3 maskiert. Die Tabellen haben einen Ausgabemaskierungswert, der sich aus der Exklusiv-ODER-Verknüpfung der beiden Ausgabemaskierungswerte ergibt. Wie erwähnt, sind die Ausgabewerte der maskierten Tabellen 32-Bit-Werte. Die Ausgabemasken, die für die Ausgabe der maskierten Ersetzungstabellen verwendet werden (im Beispiel in 1 mit 4, 5, 6, 7 bezeichnet), stehen nicht im Zusammenhang mit den Eingabemasken der maskierten Ersetzungstabellen oder den Schlüsselverschlüsselungsmasken oder Masken der Rundenschlüssel. Wie aus dem Beispiel in 1 zu ersehen ist, werden die Ausgabemasken für die Mengen von maskierten Tabellen in der vorteilhaften Ausführung so definiert, dass sie sich effektiv gegenseitig aufheben (wie nachfolgend beschrieben, werden die Ausgaben der Tabellen durch Exklusiv-ODER miteinander verknüpft und die Werte der Ausgabemasken so gewählt, dass die Exklusiv-ODER-Verknüpfung der Maskenwerte die Masken aufhebt).
  • Wie zu ersehen ist, müssen die Ausgabemasken für die maskierten Tabellen nicht unbedingt so definiert werden, dass sie sich gegenseitig aufheben. Wenn jedoch die Masken nicht in dieser Weise definiert werden, ändert sich die Definition der Eingabewerte für die maskierten Tabellen dahingehend, dass die Werte der Ausgabemasken berücksichtigt werden. Darüber hinaus ist zu ersehen, dass die Maskierung der Schlüsselwerte mit den Schlüsselverschlüsselungsmasken keine Ausgabetabellenmaskierung erfordert. Die vorteilhafte Ausführung beinhaltet eine solche Maskierung, da sich die Beständigkeit gegen DPA-Angriffe erhöht, wenn eine Eingabe- und Ausgabemaskierung der Tabellenwerte erfolgt.
  • Die Index- oder Eingabewerte für die vier Mengen von Tabellen Te*0, Te*1, Te*2, Te*3 sind die vier Werte s0, s1, s2, s3, wie in 1 dargestellt. In der Abbildung zeigt darüber hinaus die fettgedruckte horizontale Linie, die die Ausgaben der vier Mengen von Tabellen verbindet, dass die Ausgabewerte der Abfragetabellen vier Exklusiv-ODER-Verknüpfungen entsprechend der AES-Umsetzung unter Verwendung von 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 insbesondere S. 18-19)) bilden. Die vier Ergebnisse werden anschließend vier Exklusiv-ODER-Verknüpfungen mit einer neuen Menge von Rundenschlüsseln unterzogen, die mit entsprechenden Schlüsselverschlüsselungsmasken maskiert wurden.
  • Wie oben ausgeführt, ist in 1 die Rotation der Schlüsselverschlüsselungsmasken durch eine Menge gestrichelter Linien dargestellt. In ähnlicher Weise ist in Kasten 10 die mögliche Rotation der maskierten Tabellen und der weiteren Menge von Schlüsselverschlüsselungsmasken jeweils durch Mengen gestrichelter Linien dargestellt.
  • Wie in 1 aufgezeigt, werden die Schritte der Indizierung der maskierten Tabellen und der weiteren Maskierung mit maskierten Rundenschlüsseln neunmal durchgeführt (für i = 1...9 Runden). Wie für Fachleute ersichtlich ist, wird die Ausgabe von Kasten 10 (dargestellt als t0, t1, t2, t3) für jede neue Iteration der Schritte in Kasten 10 in 1 als Eingabe für die maskierten Tabellen (s0, s1, s2, s3) verwendet.
  • Am Ende der Iterationen der in Kasten 10 dargestellten Schritte werden die vier Ausgaben als Eingaben an eine abschließende Menge maskierter Tabellen übergeben: die vierte Tabelle in der Menge Te*0, Te*1, Te*2, Te*3 (d. h. die Tabelle, bei der der Platzhalter * den Wert 4 hat). Entsprechend dem Ansatz der vorteilhaften Ausführung können diese vier Tabellen auch rotiert werden, wie in 1 dargestellt. Die Ausgaben dieser Tabellenabfragen werden dann durch Exklusiv-ODER miteinander verknüpft; die resultierenden Werte werden in der abschließenden AES-Phase maskiert. In dieser Phase werden die Rundenschlüssel rk40, rk41, rk42, rk43 mit den Schlüsselverschlüsselungsmasken verbunden (die ebenfalls als rotierbar dargestellt sind).
  • In einer abschließenden Menge von Schritten wird der Geheimtext entmaskiert, indem die Ausgangsmasken zur Definition der maskierten Rundenschlüssel rk0-023, rk1-013, rk2-012, rk3-123 angewendet werden. Als zusätzlicher Schutz vor Angriffen werden diese Entmaskierungsschritte in zwei Teilen durchgeführt, sodass die verbundenen Maskierungswerte (023, 013, 012, 123 im Beispiel von 1) bei der Durchführung des Prozesses der vorteilhaften Ausführung nicht direkt berechnet werden. Die Entmaskierungswerte sind in 1 als rotierbar dargestellt, wie das auch bei den oben beschriebenen Schlüsselverschlüsselungsmasken und maskierten Tabellen der Fall war. Die Rotation der bei den Entmaskierungsschritten verwendeten Werte entspricht der effektiven Rotation der Ausgangsmaskierung der Rundenschlüssel, die durch Ersetzung der maskierten Rundenschlüssel, wie oben beschrieben, durchgeführt wird. Wie zu ersehen ist, kann die Anzahl und Reihenfolge der Entmaskierungsschritte auf verschiedene Weise definiert werden. Die Entmaskierungswerte können als Tupel beschrieben werden, wobei jedes Tupel einer der angewendeten Ausgangsmasken entspricht und Kombinationen der Werte im Tupel in zwei oder mehr Entmaskierungsschritten anwendet werden, sodass der Ausgangsmaskierungsschritt effektiv aufgehoben wird.
  • Das Ergebnis ist eine Menge von vier 32-Bit-Geheimtextwerten c0, c1, c2, c3, die unter Verwendung des AES-Verschlüsselungsprozesses verschlüsselt werden.
  • Wie in der obigen Beschreibung ausgeführt und in 1 dargestellt, beinhaltet der Ansatz der vorteilhaften Ausführung eine Rotation der Maskierungswerte und Tabellen. Die Rotation dieser Werte und Tabellen wird in der vorteilhaften Ausführung durch eine Kennung oder einen Zeiger umgesetzt, die/der angibt, welche Tabellen und Maskierungswerte aus der verfügbaren Auswahl anzuwenden sind. In jeder Runde wird ein Zeiger verwendet; dieser verweist auf die Adresse der aktuellen Menge von Tabellen und Schlüsselverschlüsselungsmasken für den ersten Rundenschlüssel für die betreffende Runde. Die übrigen drei Rundenschlüssel für die Runde verwenden diesen einen Zeiger und einen geeigneten Versatz zur Bestimmung der jeweiligen Tabellen und Maskenwerte. In der vorteilhaften Ausführung beinhaltet die Umsetzung der Datenstrukturen für die Tabellen und Maskenwerte die Verwendung doppelt verketteter Listen.
  • Ein effizientes Verfahren zum Verwalten des Versatzes und der Speicherung der Tabellenwerte und Maskenwerte besteht darin, die Schlüsselver schlüsselungsmasken und Adressen der Menge maskierter Ersetzungstabellen der Reihe nach in einer Speichervorrichtung zu speichern. So lässt sich der Versatz gegenüber dem ersten Rundenschlüssel auf einfache Weise berechnen. In ähnlicher Weise werden die Adressen für die Menge der Tabellen Te*0, Te*1, Te*2, Te*3 der Reihe nach im Speicher gespeichert.
  • Die Rotation der Maskierungswerte und Tabellen wird entsprechend einer randomisierten Auswahl eines Modus aus einer Mehrzahl von Betriebsmodi durchgeführt. In dem in 1 dargestellten Beispiel der vorteilhaften Anwendung gibt es vier Betriebsmodi:
    • a. Inkrementierungsmodus: Für jede AES-Runde werden, wenn die Inkrementierung ausgewählt ist, die Verschlüsselungsmasken für die Rundenschlüssel und die Menge der Tabellen nach links verschoben (wie in 1 dargestellt; die den Rundenschlüsseln n zugeordneten Schlüsselverschlüsselungsmasken und Tabellen werden durch die zuvor den Rundenschlüsseln n + 1 zugeordneten Werte ersetzt und im Beispiel der vorteilhaften Ausführung modulo 4 genommen, sodass die Werte umlaufen); anschließend wird der Rundenschlüssel durch Exklusiv-ODER mit der Schlüsselverschlüsselungsmaske verknüpft und zur Durchführung der AES-Abfrage auf die Menge maskierten Tabellen zugegriffen;
    • b. Dekrementierungsmodus: Die Rundenschlüssel werden durch Exklusiv-ODER mit den Schlüsselverschlüsselungsmasken und Tabellen verknüpft und die Schlüsselverschlüsselungsmasken werden nach rechts verschoben (die den Rundenschlüsseln n zugeordneten Schlüsselverschlüsselungsmasken und Tabellen werden durch die zuvor den Rundenschlüsseln n – 1 zugeordneten Werte ersetzt und im Beispiel der vorteilhaften Ausführung modulo 4 genommen, sodass die Werte umlaufen), und es wird auf die Menge maskierter Tabellen zugegriffen;
    • c. Modus „Kein Wechsel": Es erfolgt keine Maskierung unter Verwendung der Schlüsselverschlüsselungsmasken und keine Verschiebung der Tabellen oder Schlüsselverschlüsselungsmasken, und es wird auf die Menge maskierter Tabellen zugegriffen.
    • d. Modus „Inkrementierung um zwei": Für jede AES-Runde werden, wenn die Inkrementierung um zwei ausgewählt ist, die Verschlüsselungsmasken für die Rundenschlüssel und die Menge der Tabellen nach links verschoben (wie in 1 dargestellt); anschließend wird der Rundenschlüssel durch Exklusiv-ODER mit der Schlüsselverschlüsselungsmaske verknüpft. Daraufhin werden die Verschlüsselungsmasken für die Rundenschlüssel und die Menge der Tabellen nochmals nach links verschoben; dann wird der Rundenschlüssel durch Exklusiv-ODER mit der Schlüsselverschlüsselungsmaske verknüpft. Abschließend wird zur Durchführung der AES-Abfrage auf die Menge maskierter Tabellen zugegriffen.
  • Wie zu ersehen ist, wird die Sicherheit eines kryptografischen Vorgangs durch die Rotation der Schlüsselverschlüsselungsmasken und der maskierten Tabellen erhöht. Selbst wenn beispielsweise der Angreifer durch Stromverbrauchs- oder elektromagnetische Analysen feststellen kann, dass eine Rotation im Modus „Inkrementierung um zwei" durchgeführt wurde, unterscheidet sich die resultierende Maske für den Rundenschlüssel von vorherigen Masken für denselben Rundenschlüssel, für den dieselbe Rotation im Modus „Inkrementierung um zwei" verwendet wurde. Somit führt das Rotationsschema nicht direkt zu Informationen zur Maskierung, da die Maskierung zustandsabhängig ist. Dies steht im Gegensatz zu früheren Vorgehensweisen, bei denen als Ergebnis der Ausführung von Anweisungen zur Auswahl zwischen alternativen Rundenschlüsseln (gegebenenfalls unter Verwendung von Fallanweisungen) direkt auf soeben maskierte Rundenschlüssel zugegriffen wird. Bei solchen früheren Vorgehensweisen können anhand von Informationen aus Stromverbrauchsanalysen, mit denen sich die ausgeführten Anweisungen (beispielsweise der ausgewählte Fall) bestimmen lassen, unmittelbar Informationen zu Stromspuren gewonnen werden, die sich auf dieselben Masken des Rundenschlüssels beziehen. Bei diesen Vorgehensweisen werden die Maskierungen unabhängig von vorherigen Maskierungen ausgewählt (sie sind somit nicht zustandsabhängig, d. h. vom vorherigen Zustand bzw. von der Maske des Rundenschlüssels abhängig, die bei einem vorherigen Aufruf eines kryptografischen Prozesses verwendet wurde). Bei diesen anderen Ansätzen kann durch eine DPA erster Ordnung der gewählten Stromspuren an der Ausgabe der S-Boxen der Rundenschlüsselwert aufgedeckt werden.
  • In der vorteilhaften Ausführung werden je nach vorherigen Maskenwert des Rundenschlüssels unterschiedliche resultierende Masken für den Rundenschlüssel erzeugt. Wenn darüber hinaus die Rotation, wie oben beschrieben, in zufälliger Weise definiert wird, erhöht sich die Sicherheit weiter. Die vier oben als Beispiele beschriebenen Verschiebungsmodi können durch einen Zwei-Bit-Wert angegeben werden, der für jede Runde des AES-Prozesses (oder für jede Iteration des kryptografischen Prozesses) zufällig erzeugt wird. Sofern die Verschiebung der Schlüsselverschlüsselungsmasken und der maskierten Tabellen synchron erfolgen, hat die Verschiebung keine Auswirkungen auf die Ausgabe des maskierten kryptografischen Prozesses. Diese randomisierte Rotation der Masken und der maskierten Tabellen bewirkt jedoch, dass ein Angriff auf den kryptografischen Prozess erschwert wird.
  • Wie für Fachleute ersichtlich ist, sind bei der Rotation auch andere Vorgehensweisen möglich. Beispielsweise können die Rundenschlüssel in zwei Gruppen von jeweils zwei Schlüsseln geteilt werden und für jede der beiden Gruppen eine Rotation der Masken und Tabellen definiert werden. Des Weiteren kann ein solcher Ansatz in die Verschiebung von Masken und Tabellen für die Gesamtmenge der vier Rundenschlüssel eingebunden werden, sodass die Rotation zwischen einer Rotation für die gesamte Gruppe und einer für beiden Teilmengen definierten Rotation variiert.
  • Die Kombinationen der Rotationsschemas und der Maskendefinitionen können aufgrund von Sicherheitsanforderungen und der Verfügbarkeit von Ressourcen des Systems gewählt werden, auf dem die Gegenmaßnahmen der vorteilhaften Ausführung eingesetzt werden. Durch eine erhöhte Komplexität der Definition der Masken und Rotationsschemas erhöht sich die Sicherheit, aber auch der Mehraufwand an Systemressourcen und Zeit.
  • Die Definition der Eingabe- und Ausgabemasken kann entsprechend den Sicherheits- und Systemanforderungen gewählt werden. In Bezug auf Ausgabemasken kann das Ausgaberaster der Tabellen, die durch Exklusiv-ODER miteinander verknüpft werden, so definiert werden, dass eine Aufhebung erfolgt, wie oben beschrieben. Beispielsweise heben sich in 1 die Maskenausgaben 45, 46, 57, 67 auf, sodass keine Maske verbleibt, nachdem die Exklusiv-ODER-Verknüpfung durchgeführt wurde (wie durch die fettgedruckte horizontale Linie in Kasten 10 der Abbildung dargestellt). Wie für Fachleute ersichtlich ist, können die Ausgabemasken ersatzweise so definiert werden, dass sie zusammen in einer festen Maske resultieren, wobei sich die Definition der Eingabemasken der maskierten Ersetzungstabellen und Rundenschlüsselmasken dahingehend verändert, dass diese die gewählte feste Maske widerspiegeln. Eine weitere Alternative besteht darin, zwei oder mehr Mengen maskierter Ersetzungstabellen zu unterstützen, wobei entweder die Masken sich aufheben oder eine feste Maske erzeugt wird, die in die Maske der Rundenschlüssel und die Eingabemaske der Ersetzungstabellen eingebunden wird.
  • Die unter Bezugnahme auf 1 beschriebene Rotation der Masken und Tabellen anhand der genannten vier Modi kann vorteilhafterweise unter Verwendung beschränkter Speicher- und Stromressourcen umgesetzt werden und eignet sich damit gut für die Umsetzung auf mobilen Computergeräten, bei denen Einschränkungen bezüglich des Speichers und des Stromverbrauchs für kryptografische Vorgänge wesentlich sind.
  • In der obigen Beschreibung wird die Maskierung von beim AES-Verschlüsselungsprozess verwendeten Schlüsseln und Tabellen entsprechend der vorteilhaften Ausführung beschrieben. 2 ist ein Blockdiagramm, dass auf hoher Abstraktionsebene die in der vorteilhaften Ausführung durchgeführten Maskierungsschritte aufzeigt. 2 zeigt den maskierten Schlüssel (102; mit dem maskierten Schlüsselausgangswert rk) sowie den Klartext (104) und die Ausgabe (106). In dem in 2 dargestellten verallgemeinerten Verschlüsselungsprozess wird der maskierte Schlüssel (102) durch die Exklusiv-ODER-Verknüpfung (110) mit einer Schlüsselverschlüsselungsmaske maskiert, die aus einer Menge von Schlüsselverschlüsselungsmasken 0...n (Menge 111) ausgewählt wird. Der Klartext (104) wird in der Exklusiv-ODER-Verknüpfung (112) mit dem resultierenden Wert maskiert. Der Ergebnis wird anschließend als Eingabewert an eine ausgewählte S-Tabelle aus einer Menge maskierter S-Tabellen 0...n (113) übergeben, wobei die Ausgabe als Ausgabe (106) dargestellt ist.
  • Der in 2 dargestellte vereinfachte Verschlüsselungsprozess veranschaulicht die Rotation der Schlüsselverschlüsselungsmasken. Die Schlüsselverschlüsselungsmasken 0...n (111) sind als mögliche Eingaben für die Exklusiv-ODER-Verknüpfung (110) dargestellt. In ähnlicher Weise sind die S-Tabellen 0...n als möglicherweise durch die Ausgabe der Exklusiv-ODER-Verknüpfung (112) indiziert dargestellt. Wie oben im Einzelnen im Hinblick auf die AES-Umsetzung der vorteilhaften Ausführung beschrieben, werden die Menge der Schlüsselverschlüsselungsmasken und die Menge der maskierten S-Tabellen so definiert, dass die Elemente jeder Menge einander entsprechen, sodass der Wert der Ausgabe (106) vorhersagbar ist. Anders ausgedrückt, kann die Ausgabe (106) in einigen Umsetzungen dieselbe sein wie in dem Fall, dass keine Maskierung des Schlüssels oder der S-Tabellen erfolgt. In einer alternativen Umsetzung weicht die Ausgabe (106) von der Verschlüsselung der entmaskierten S-Tabelle ab, doch diese Abweichungen erfolgen auf bekannte Weise und können berichtigt oder in nachfolgenden Vorgängen, die an oder mit der Ausgabe (106) vorgenommen werden, zugelassen werden.
  • 2 zeigt, auf welche Weise der maskierte Schlüssel (102) mit den Schlüsselverschlüsselungsmasken maskiert wird. Der Wert des maskierten Schlüssels (102), der sonst beim Verschlüsselungsprozess verwendet würde, wird effektiv durch die Ausgabe der Exklusiv-ODER-Verknüpfung (110) ersetzt. Auf diese Weise wird der bei der Verschlüsselung verwendete maskierte Schlüssel in Bezug zum vorherigen Wert des maskierten Schlüssels (102) definiert. Dadurch wird der neue maskierte Schlüssel zustandsabhängig.
  • 2 zeigt darüber hinaus, dass die Elemente der Menge von Schlüsselverschlüsselungsmasken 0...n rotiert werden können, da sie auf den maskierten Schlüssel 102 (in der Exklusiv-ODER-Verknüpfung (110)) angewendet werden. In ähnlicher Weise werden die S-Tabellen 0...n synchron rotiert.
  • Verschiedene Ausführungen der vorliegenden Erfindung wurden im Einzelnen als Beispiele beschrieben; wie für Fachleute ersichtlich ist, können Veränderungen und Abwandlungen vorgenommen werden, ohne von der Erfindung abzuweichen. Die Erfindung deckt alle derartigen Veränderungen und Abwandlungen ab, die in den Bereich der beigefügten Ansprü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 Mengen von 4 maskierten Tabellen
    Repeat for i = 1..9 rounds Wiederholen für i = 1...9 Runden
    Final Stage of AES Abschließende Phase von AES
    Masked Cipher Text Maskierter Geheimtext
    Unmask Cipher Text Geheimtext entmaskieren
    Unmasked Cipher Text Entmaskierter Geheimtext
    FIG. 1 ABB. 1
    Fig. 2
    Masked Key 102 Maskierter Schlüssel 102
    XOR 110 XOR 110
    Key Encryption Mask 0 Schlüsselverschlüsselungsmaske 0
    Plaintext 104 Klartext 104
    Key Encryption Mask n Schlüsselverschlüsselungsmaske n
    XOR 112 XOR 112
    S-Table 0 S-Tabelle 0
    S-Table n S-Tabelle n
    Output 106 Ausgabe 106
    FIG. 2 ABB. 2

Claims (9)

  1. Ein in einem Computergerät, einer Computervorrichtung oder einem Computersystem umgesetztes Verfahren zum schrittweisen Maskieren eines Schlüsselwerts, wobei die schrittweise maskierten Werte für die Verwendung in aufeinanderfolgenden Iterationen kryptografischer Vorgänge unter Verwendung einer Ersetzungstabelle bestimmt sind und das Verfahren die folgenden Schritte umfasst: Teilen des Schlüsselwerts in eine Menge geteilter Schlüsselwerte; Definieren einer Menge von Zufallsmaskenwerten; Verbinden mehrerer Zufallsmaskenwerte zum Definieren uneinheitlicher Schlüsselverschlüsselungsmasken und Maskieren der Menge geteilter Schlüsselwerte mit ausgewählten Schlüsselverschlüsselungsmasken zum Definieren einer Menge maskierter Schlüssel zur Verwendung bei den iterativen kryptografischen Vorgängen; und Verbinden mehrerer Zufallsmaskenwerte, die zu den Schlüsselverschlüsselungsmasken gehören, zum Definieren uneinheitlicher Tabellenmasken und Erzeugen einer Menge maskierter Tabellen, die von der Ersetzungstabelle abgeleitet sind und der Menge geteilter Schlüsselwerte entsprechen, zur Verwendung bei den iterativen kryptografischen Vorgängen.
  2. Das Verfahren gemäß Anspruch 1, das darüber hinaus für jede Iteration des kryptografischen Vorgangs den Schritt der Verwendung ausgewählter Schlüsselverschlüsselungsmasken und maskierter Tabellen umfasst, wobei die Auswahl durch eine Rotation der jeweiligen Mengen von Schlüsselverschlüsselungsmasken und maskierten Tabellen durchgeführt wird.
  3. Der Verfahren gemäß Anspruch 2, bei dem die Rotation eine zufällige Auswahl eines Rotationsmodus aus einer Menge möglicher Rotationsmodi umfasst.
  4. Der Verfahren gemäß Anspruch 3, bei dem die Menge möglicher Rotationsmodi zwei oder mehr der Modi Inkrementierung, Dekrementierung, kein Wechsel und doppelte Inkrementierung beinhaltet.
  5. Das Verfahren gemäß jedem der Ansprüche 1 bis 4, bei dem die Maskierung zur Erzeugung der maskierten Tabellen eine Eingabemaskierung ist, wobei das Verfahren darüber hinaus den Schritt des Definierens von Ausgabemasken für jede der maskierten Tabellen umfasst, wobei die Werte der Ausgabemasken so definiert werden, dass sich die Ausgabemasken bei den kryptografischen Vorgängen gegeneinander aufheben.
  6. Das Verfahren gemäß jedem der Ansprüche 1 bis 5, bei dem das Definieren der Schlüsselverschlüsselungsmaske die folgenden Schritte umfasst: Definieren einer Menge uneinheitlicher Ausgangsmaskenwerte zur Anwendung auf die geteilten Schlüsselwerte; Definieren einer Menge uneinheitlicher Rotationsmaskenwerte, wobei die Rotationsmaskenwerte zugewiesen werden, nachdem die Ausgangsmaskenwerte und die resultierenden maskierten Werten verfügbar sind, um die Menge maskierter Schlüsselwerte zu ersetzen; und Definieren einer Menge von Tupeln von Entmaskierungswerten, die so definiert sind, dass die Tupel von Entmaskierungswerten bei der Verbindung die Ausgangsmaskenwerte jeweils aufheben.
  7. Das Verfahren gemäß jedem der Ansprüche 1 bis 6 bei Anwendung auf einen AES-Verschlüsselungsvorgang.
  8. Ein Computergeräteprogrammprodukt zum Durchführen iterativer kryptografischer Vorgänge unter Verwendung eines Ausgangsschlüsselwerts und einer Ersetzungstabelle, wobei das Computergeräteprogrammprodukt ein durch Computergeräte lesbares Medium mit auf dem Medium enthaltenem, durch Computergeräte lesbarem Programmproduktcode beinhaltet, wobei dieser Programmcode von einem Prozessor eines Computergeräts, einer Computervorrichtung oder eines Computersystems zur Umsetzung des Verfahrens gemäß jedem der Ansprüche 1 bis 7 ausgeführt werden kann.
  9. Ein Computergerät, eine Computervorrichtung oder ein Computersystem, das ein Speichermedium zum Speichern von Programmcode beinhaltet, der auf dem Computergerät ausgeführt werden kann, wobei auf dem Speichermedium des Computergeräts Programmcode gespeichert ist, der auf dem Computergerät zur Durchführung des Verfahrens gemäß jedem der Ansprüche 1 bis 7 ausgeführt werden kann.
DE602005002632T 2005-05-10 2005-05-10 Schlüsselmaskierung für kryptographische Prozesse mittels einer Kombination von Zufallsmaskenwerten Active DE602005002632T2 (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
DE602005002632D1 DE602005002632D1 (de) 2007-11-08
DE602005002632T2 true DE602005002632T2 (de) 2008-01-31

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 After (1)

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

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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014004378A1 (de) * 2014-03-26 2015-10-01 Giesecke & Devrient Gmbh Speichereffiziente seitenkanalgeschützte Maskierung

Families Citing this family (32)

* 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
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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014004378A1 (de) * 2014-03-26 2015-10-01 Giesecke & Devrient Gmbh Speichereffiziente seitenkanalgeschützte Maskierung

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
ATE372619T1 (de) 2007-09-15
US7778419B2 (en) 2010-08-17
US20060256963A1 (en) 2006-11-16
EP1724961A1 (de) 2006-11-22
DE602005002349T2 (de) 2008-01-17
EP1722502A1 (de) 2006-11-15
CA2546211A1 (en) 2006-11-10

Similar Documents

Publication Publication Date Title
DE602005002632T2 (de) Schlüsselmaskierung für kryptographische Prozesse mittels einer Kombination von Zufallsmaskenwerten
DE19827904C2 (de) Blockchiffrier- oder -dechiffrierverfahren und Blockchiffrier- oder -dechiffriervorrichtung
DE69728465T2 (de) Nichtparalleler Mehrzyklus-Verschlüsselungsapparat
EP3219042B1 (de) Gehärtete white box implementierung 2
DE69936024T2 (de) Vorrichtung zur Verschlüsselung/Entschlüsselung
DE60024941T2 (de) Verschlüsselungsverfahren und -Vorrichtung, Entschlüsselungsverfahren und -Vorrichtung
DE69916160T2 (de) Vorrichtung und Verfahren zur kryptographischen Verarbeitung sowie Aufzeichnungsmedium zum Aufzeichnen eines kryptographischen Verarbeitungsprogramms zur Ausführung einer schnellen kryptographischen Verarbeitung ohne Preisgabe der Sicherheit
DE102005012098B4 (de) Datenchiffrierprozessor sowie AES-Chiffriersystem und AES-Chiffrierverfahren
DE60314055T2 (de) Verschlüsselung und Entschlüsselung in einem Schaltkreis, bei der eine nichtlineare Transformation wie die SUBBYTE-Operation maskiert wird
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.
DE102017215331A1 (de) Kostengünstiger Kryptografiebeschleuniger
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
DE10345378B4 (de) Verfahren und Vorrichtung zur Ver-/Entschlüsselung
DE102004038594B4 (de) Verschlüsselungsverfahren und -vorrichtung
DE10352680A1 (de) Verschlüsselungsvorrichtung und Verschlüsselungsverfahren
EP3369205B1 (de) Alternative darstellung des krypto-algorithmus des
DE19757370C2 (de) Verfahren zur taktilen Erzeugung pseudo-zufälliger Datenworte
DE69829566T2 (de) Verschlüsselungsgerät
DE102020129058B3 (de) Datenverarbeitungseinrichtung und verfahren zum kryptographischen verarbeiten von daten
DE10303723B4 (de) Vorrichtung und Verfahren zum Berechnen von verschlüsselten Daten aus unverschlüsselten Daten oder von unverschlüsselten Daten aus verschlüsselten Daten
WO1997032417A1 (de) Verfahren zum generieren eines prüfworts für eine bitfolge zur überprüfung der integrität und authentizität der bitfolge

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