DE102006009239A1 - Vorrichtung und Verfahren zum Berechnen einer Darstellung eines Ergebnis-Operanden - Google Patents

Vorrichtung und Verfahren zum Berechnen einer Darstellung eines Ergebnis-Operanden Download PDF

Info

Publication number
DE102006009239A1
DE102006009239A1 DE102006009239A DE102006009239A DE102006009239A1 DE 102006009239 A1 DE102006009239 A1 DE 102006009239A1 DE 102006009239 A DE102006009239 A DE 102006009239A DE 102006009239 A DE102006009239 A DE 102006009239A DE 102006009239 A1 DE102006009239 A1 DE 102006009239A1
Authority
DE
Germany
Prior art keywords
auxiliary
operand
operands
gate
logic gate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE102006009239A
Other languages
English (en)
Other versions
DE102006009239B4 (de
Inventor
Wieland Fischer
Berndt Gammel
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of DE102006009239A1 publication Critical patent/DE102006009239A1/de
Application granted granted Critical
Publication of DE102006009239B4 publication Critical patent/DE102006009239B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47JKITCHEN EQUIPMENT; COFFEE MILLS; SPICE MILLS; APPARATUS FOR MAKING BEVERAGES
    • A47J37/00Baking; Roasting; Grilling; Frying
    • A47J37/10Frying pans, e.g. frying pans with integrated lids or basting devices
    • A47J37/101Integrated lids
    • A47J37/103Broiling- or heating-lids
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • G06F21/755Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47JKITCHEN EQUIPMENT; COFFEE MILLS; SPICE MILLS; APPARATUS FOR MAKING BEVERAGES
    • A47J37/00Baking; Roasting; Grilling; Frying
    • A47J37/06Roasters; Grills; Sandwich grills
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47JKITCHEN EQUIPMENT; COFFEE MILLS; SPICE MILLS; APPARATUS FOR MAKING BEVERAGES
    • A47J37/00Baking; Roasting; Grilling; Frying
    • A47J37/10Frying pans, e.g. frying pans with integrated lids or basting devices
    • A47J37/108Accessories, e.g. inserts, plates to hold food down during frying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7223Randomisation as countermeasure against side channel attacks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7266Hardware adaptation, e.g. dual rail logic; calculate add and double simultaneously

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Food Science & Technology (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Logic Circuits (AREA)

Abstract

Eine Vorrichtung zum Berechnen einer Darstellung eines Ergebnisoperanden der nichtlinearen logischen Operation zwischen einem ersten Operanden und einem zweiten Operanden umfasst ein erstes Logikgatter und ein zweites Logikgatter. Jeder Operand ist durch zwei Hilfsoperanden dargestellt, die, wenn sie linear miteinander kombiniert werden, zu dem entsprechenden Operanden führen. Das erste und zweite Logikgatter sind derart entworfen, dass ein durchschnittlicher Energieverbrauch des ersten oder zweiten Logikgatters für eine Mehrzahl von Kombinationen von Hilfsoperanden am Anfang eines ersten Opertionszyklus und Hilfsoperanden am Anfang eines zweiten Operationszyklus im Wesentlichen gleich ist, wobei die durchschnittliche Energie aus einer Mehrzahl von unterschiedlichen Reihenfolgen von Vorkommnissen des ersten bis vierten Hilfsoperanden herleitbar ist.

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf Logikgatter und insbesondere auf Logikgatter, die einen erhöhten Sicherheitspegel gegen eine Differenzleistungsanalyse aufweisen.
  • Hintergrund der Erfindung und Stand der Technik
  • Eine Kryptoanalyse basierend auf Seitenkanalinformationen wurde erfolgreich angewendet, um kryptographische Vorrichtungen anzugreifen. Diese Angriffe nutzen Informationen aus, die während der Berechnung von kryptographischen Algorithmen lecken bzw. ableiten, wie z. B. Zeitgebungsinformationen, Leistungsverbrauch oder elektromagnetische Emanationen der Vorrichtung. Kocher [13] hat gezeigt, dass der Leistungsverbrauch von ungeschützten kryptographischen Vorrichtungen einen Seitenkanal liefert, der mit einer außerordentlich einfachen Ausrüstung verwendet werden kann. Eine Differenzleistungsanalyse (DPA; differential power analysis) ermöglicht dem Angreifer, Korrelationen zwischen dem beobachtbaren, momentanen Leistungsverbrauch und Zwischenergebnissen auszunutzen, die das Geheimnis betreffen. Während der letzten Jahre wurde es immer offensichtlicher, dass es äußerst schwierig ist, sich gegen Differenz-Leistungs-Angriffe bzw. -Attacken zu schützen [6, 19, 3, 14].
  • Die erste Klasse von ad-hoc-Ansätzen, genannt Hardware-Gegenmaßnahmen, versucht das Signal-zu-Rauschen-Verhältnis des Seitenkanalleckens zu reduzieren und schließlich die instabilen Informationen in dem Rauschen zu verdecken. Hardware-Gegenmaßnahmen umfassen Verfahren, wie abgetrennte Leistungsversorgungen [22], die Hinzufügung von Leistungs-Rausch-Generatoren oder die Anwendung einer probabilistischen Unordnung der Zeiten, zu denen die angegriffenen Zwischenergebnisse durch Verwenden von zufälligen Verzögerungs-Einfügungen verarbeitet werden oder eine Randomisierung des Ausführungswegs. Während solche Maßnahmen sicher die experimentelle und rechentechnische Arbeitslast des Angreifers erhöhen, machen sie den Angriff aber nicht undurchführbar. In der Praxis werden üblicherweise verschiedene Gegenmaßnahmen kombiniert [6, 3, 14]. Dies kann die Korrelation auf einen Pegel herunterreduzieren, der einen DPA praktisch unmöglich macht. Jedoch können Differenz-Angriffe höherer Ordnung oder die Möglichkeit, eine räumliche Auflösung des Leistungsverbrauchs zu erhalten, durch Beobachten von lokalen elektromagnetischen Emanationen, wieder ein Hintertürchen für professionelle Angreifer öffnen.
  • Die zweite Klasse von Gegenmaßnahmen zielt auf das Entfernen der Wurzelursache für Seitenkanal-Leckinformationen. Bei standardmäßigen CMOS-Typ-Schaltungen hängt der Leistungsverbrauch stark von den verarbeiteten Daten ab. Bei anderen Logik-Typen, wie z. B. einer erfassungsverstärkerbasierten Logik (SABL; sense amplifier based logic) [24], die auf einer Differenz-Kascode-Spannung-Schaltlogik (DCVLS; differential cascode voltage switching logic) basiert, ist der Leistungsverbrauch datenunabhängig (wenn Kopplungseffekte vernachlässigbar sind). Im Hinblick auf Bereich und Leistung jedoch, benötigen solche Schaltungstypen mehr als zweimal so viel Bereich und Leistung wie ungeschützte CMOS-Schaltungen. Logik-Typen mit einer Vorladung und einer Bewertungsphase sind ferner grundsätzlich Zwei-Zyklus-Schemata im Gegensatz zu einem standardmäßigen CMOS-Entwurfs-Typ, der eine Operation bei jedem Taktzyklus erlaubt. Es muss ebenfalls herausgestellt werden, dass solche Entwurfstypen gegenwärtig nicht gut geeignet für einen Semikunden-Entwurfsfluss erscheinen, der auf einer Hardwarebeschreibungssprache hoher Ebene und standardmäßi gen Zellenbibliotheken basiert. Der wellendynamische Differenz-Logik-Typ (WDDL; wave dynamic differential logic) übernimmt die Ideen der SABL, basiert jedoch auf einem standardmäßigen CMOS [25]. Dies überwindet das letzte Problem, aber auf Kosten von dreimal dem Bereichsverbrauch und einem Zwei-Zyklus-Schema.
  • Die dritte Klasse von Maßnahmen wirkt einem DPA entgegen, durch Randomisieren von Zwischenergebnissen, die während der Ausführung des kryptographischen Algorithmus auftreten. Die Idee hinter diesem Ansatz ist, dass der Leistungsverbrauch von Operationen an randomisierten Daten nicht mit den tatsächlichen einfachen Zwischendaten korreliert sein sollte. Algorithmische Gegenmaßnahmen in dem Kontext von symmetrischen Chiffres basierend auf Geheimnis-Gemeinschaftsverwendungs-Schemata wurden unabhängig vorgeschlagen von Goubin und Paterin [11] und Chari u. a. [5]. Ungefähr zur selben Zeit wurde ein Maskieren auf Algorithmusebene für asymmetrische Chiffres entwickelt [7, 18]. Messerges [16] stellte die Idee des Maskierens aller Daten und Zwischenwerte während einer Verschlüsselungsoperation vor. Akkar und Giraud [1] stellten Maskierungsverfahren für DES und AES mit dem grundlegenden Beitrag einer robusten aber nicht perfekten Maskierung für die nichtlinearen Teile vor. Eine vorgeschlagene Vereinfachung, die in [28] vorgeschlagen wird, hat sich kürzlich als anfällig gegenüber DPA-Angriffen erster Ordnung [2] herausgestellt. Kryptographische Algorithmen kombinieren häufig Boolesche Funktionen (wie z. B. logische XOR- oder AND-Operationen) und arithmetische Funktionen (Operationen in Feldern mit Charakteristika größer als Zwei). Maskieroperationen für diese zwei Funktionstypen werden als Boolesche bzw. arithmetische Maskierung bezeichnet. Dies ergibt das Problem einer sicheren Konvertierung zwischen den zwei Maskierungstypen in beiden Richtungen [1]. Es wurde ferner erkannt, dass das multiplikative Maskieren bei dem AES zu einem Problem mit Nullwerten führt, d. h. ein Null-Byte wird nicht maskiert und wird ferner auf ein Null-Byte durch den S-Kasten abge bildet [10, 28]. Das Nullwertproblem macht die maskierte Originalversion des AES anfällig für DPA. Folglich haben sowohl [26, 27] als auch [4] Gegenmaßnahmen vorgeschlagen, die auch gegen das Nullwertproblem schützen würden.
  • Erwähnenswerterweise wenden die letzten drei Vorschläge eine Maskierung nicht mehr auf die Algorithmusebene an, sondern auf die Ebene von Logikgattern. Bei einer früheren Arbeit hat Messerges [17] bereits die Idee der Maskierung auf die Gatterebene angewendet und vorgeschlagen, das Multiplexer-Gatter (MUX), das bei der Implementierung von nichtlinearen Operationen verwendet wird, wie z. B. S-Kästen, durch ein maskiertes MUX-Gatter (das wiederum aus drei MUX-Gattern besteht) zu ersetzen. Eine Theorie des Sicherns einer Schaltung auf der Gatterebene gegen Seitenkanalangriffe (konzentriert auf Sondierung) wurde in [12] entwickelt. Ein Maskieren auf Gatterebene führt zu Schaltungen, bei denen kein Draht einen Wert trägt, der mit einem Zwischenergebnis des Algorithmus korreliert ist. Offensichtlich ist dieser Ansatz allgemeiner als der algorithmische Ansatz. Ein Maskieren auf Gatterebene ist unabhängig von dem spezifischen implementierten Algorithmus. Sobald ein sicheres Markierungsschema entwickelt wurde, kann die Erzeugung der maskierten Schaltung aus dem Algorithmus automatisiert werden und ein Computerprogramm kann die digitale Schaltung jegliches kryptographischen Algorithmus in eine Schaltung aus maskierten Gattern umwandeln. Dies würde den Autoren oder Implementierern von kryptographischen Algorithmen die komplexe Aufgabe abnehmen, eine spezifische Lösung gegen Seitenkanallecken für jede neue Implementierungsvariante oder jeden Algorithmus auszuarbeiten. Verschiedene allgemeine Maskierungsschemata wurden vorgeschlagen. Diese basieren entweder auf der MUX-Technik aus [17], wie z. B. [8, 9], oder die die Korrekturterme verwenden, z. B. für das AND-Gatter [26]. Die Zufalls-Schaltlogik (RSL; random switching logic) von [23] verwendet eine zufällige Eingabe pro Gatter und bringt ein Freigabesignal ein, das die Ausgabe auf einen definitiven Wert zwingt, bis alle Eingabesignale stabil sind. Somit ist es ferner ein verstecktes Zwei-Zyklus-Schema, das jedoch eine feine Einstellung der Zeitgebung des Freigabesignals erfordert.
  • Bei einer kürzlichen Veröffentlichung haben Mangard, Popp und Gammel [15] gezeigt, dass die Sicherheitsanalysen von Markierungsschemata, die bislang durchgeführt wurden, auf einer impliziten Annahme basierten, die im Allgemeinen nicht gilt: Die Eingangssignale von fast jeglichem (maskierten) Gatter bei einer Kombinations-CMOS-Schaltung kommen nicht gleichzeitig an. Daher schaltet die Ausgabe des Gatters möglicherweise mehrere Male während eines Taktzyklus. Die Übergänge an dem Ausgang eines Gatters, bevor der stabile Zustand direkt vor der nächsten Taktflanke erreicht ist, werden Störimpulse bzw. Glitches genannt. Glitches sind ein typisches Phänomen bei CMOS-Schaltungen und werden umfassend in der Literatur betreffend den VLSI-Entwurf erörtert (siehe z. B. [21]). Da ein Glitch einen Vollschwingungsübergang an dem Ausgang des Gatters verursachen kann, so wie den „ordnungsgemäßen" Übergang zu dem Endwert, ist ein Glitch keine vernachlässigbare Wirkung höherer Ordnung. Wie in [15] dargelegt wird, fügen Glitches nicht nur ein Hintergrundrauschen aufgrund nichtkorrelierter Schaltaktivität hinzu.
  • Leider ist die dissipierte bzw. abgeführte Energie von nichtlinearen, maskierten Gattern mit den verarbeiteten Werten korreliert, immer wenn die Eingangswerte nicht gleichzeitig ankommen (wodurch der Ausgang des Gatters gezwungen wird, mehrere Male umzuschalten). Somit tragen Glitches Seitenkanalinformationen und müssen bei der Analyse von jeglichem sicheren Maskierungsschema berücksichtigt werden.
  • Zusammenfassung der Erfindung
  • Es ist eine Aufgabe der vorliegenden Erfindung, ein Konzept zum Berechnen eines Ergebnisses einer nichtlinearen logischen Operation zu schaffen, das einerseits flexibel und effizient und andererseits sicher ist.
  • Gemäß dem ersten Aspekt der vorliegenden Erfindung wird diese Aufgabe gelöst durch eine Vorrichtung zum Berechnen einer Darstellung eines Ergebnisoperanden einer nichtlinearen logischen Operation zwischen zumindest einem ersten Operanden und einem zweiten Operanden, wobei der erste Operand durch einen ersten Hilfsoperanden und einen zweiten Hilfsoperanden dargestellt ist, wobei der erste und der zweite Hilfsoperand zu dem ersten Operanden führen, wenn sie unter Verwendung einer linearen Kombination kombiniert werden, wobei der zweite Operand durch einen dritten Hilfsoperanden und einen vierten Hilfsoperanden dargestellt ist, wobei der dritte und vierte Hilfsoperand zu dem zweiten Operanden führen, wenn sie unter Verwendung einer linearen Kombination kombiniert werden, wobei die Vorrichtung folgende Merkmale aufweist: ein erstes Logikgatter zum Berechnen eines fünften Hilfsoperanden basierend auf zumindest zwei Hilfsoperanden, wobei die zumindest zwei Hilfsoperanden entweder den ersten oder zweiten Hilfsoperanden und entweder den dritten oder vierten Hilfsoperanden umfassen; ein zweites Logikgatter zum Berechnen eines sechsten Hilfsoperanden basierend auf zumindest dem ersten bis vierten Hilfsoperanden, wobei das erste und zweite Logikgatter derart entworfen sind, dass der fünfte und sechste Hilfsoperand, wenn sie linear kombiniert sind, zu dem Ergebnisoperanden führen, und wobei das erste und zweite Logikgatter derart entworfen sind, dass ein durchschnittlicher Energieverbrauch des ersten Logikgatters oder ein durchschnittlicher Energieverbrauch des zweiten Logikgatters im Wesentlichen gleich für eine Mehrzahl von Kombinationen von Hilfsoperanden am Anfang des ersten Operationszyklus und Hilfsoperanden am Anfang eines zweiten Operationszyklus sind, wobei die Durchschnittsenergie aus einer Mehrzahl von unterschiedlichen Reihenfolgen von Vorkommnissen des ersten bis vierten Hilfsoperanden herleitbar ist.
  • Gemäß einem zweiten Aspekt der vorliegenden Erfindung wird dieses Ziel erreicht durch ein Verfahren zum Berechnen einer Darstellung eines Ergebnisoperanden einer nichtlinearen, logischen Operation zwischen zumindest einem ersten Operanden und einem zweiten Operanden, wobei der erste Operand durch einen ersten Hilfsoperanden und einen zweiten Hilfsoperanden dargestellt ist, wobei der erste und der zweite Hilfsoperand zu dem ersten Operanden führen, wenn sie unter Verwendung einer linearen Kombination kombiniert werden, wobei der zweite Operand durch einen dritten Hilfsoperanden und einen vierten Hilfsoperanden dargestellt ist, wobei der dritte und vierte Hilfsoperand zu dem zweiten Operanden führen, wenn sie unter Verwendung einer linearen Kombination kombiniert werden, wobei das Verfahren folgende Schritte aufweist: Berechnen eines fünften Hilfsoperanden basierend auf zumindest zwei Hilfsoperanden unter Verwendung eines ersten Logikgatters, wobei die zumindest zwei Hilfsoperanden entweder den ersten oder zweiten Hilfsoperanden und entweder den dritten oder vierten Hilfsoperanden umfassen; Berechnen eines sechsten Hilfsoperanden basierend auf zumindest dem ersten bis vierten Hilfsoperanden unter Verwendung eines zweiten Logikgatters, wobei das erste und zweite Logikgatter derart entworfen sind, dass der fünfte und sechste Hilfsoperand, wenn sie linear kombiniert sind, zu dem Ergebnisoperanden führen, und wobei das erste und zweite Logikgatter derart entworfen sind, dass ein durchschnittlicher Energieverbrauch des ersten oder ein durchschnittlicher Energieverbrauch des zweiten Logikgatters für eine Mehrzahl von Kombinationen von Hilfsoperanden am Anfang des ersten Operationszyklus und Hilfsoperanden am Anfang eines zweiten Operationszyklus im Wesentlichen gleich ist, wobei die durchschnittliche Energie aus einer Mehrzahl von unterschiedlichen Reihenfolgen von Vorkommnissen des ersten bis vierten Hilfsoperanden herleitbar ist.
  • Die vorliegende Erfindung basiert auf der Erkenntnis, dass eine DPA-Sicherheit bei Vorhandensein von Glitches erreicht werden kann, durch Berechnen einer Darstellung eines Ergebnisoperanden einer nichtlinearen logischen Operation zwischen einem ersten Operanden und einen zweiten Operanden, wenn der erste Operand, der zweite Operand und der Ergebnisoperand jeweils durch zwei Hilfsoperanden dargestellt sind, die, wenn sie linear kombiniert sind, zu dem entsprechenden Operanden führen. Zusätzlich dazu werden zum Berechnen der Hilfsoperanden, die den Ergebnisoperanden darstellen, zwei Logikgatter verwendet. Jedes Logikgatter ist derart entworfen, dass die Ausgaben dieser Logikgatter, wenn sie linear kombiniert sind, zu dem Ergebnisoperanden führen.
  • Ferner sind die Logikgatter derart entworfen, dass ein Energieverbrauch der Logikgatter im Wesentlichen für eine Mehrzahl von Kombinationen von Hilfsoperanden am Anfang eines ersten Operationszyklus und am Anfang eines zweiten Operationszyklus gleich ist, wobei die durchschnittliche Energie aus einer Mehrzahl von verschiedenen Ordnungen von Vorkommnissen der Hilfsoperanden hergeleitet wird, die den ersten und zweiten Operanden an Eingängen des ersten und zweiten Logikgatters darstellen.
  • Vorzugsweise ist das erste Logikgatter ein lineares Gatter, das nur eine logisch lineare Operation implementiert, wie z. B. eine XOR- oder eine XNOR-Operation.
  • Ferner ist das zweite Logikgatter ein nichtlineares Logikgatter, das nichtlineare Operationen umfasst, wie z. B. eine AND-, OR-, NRND- oder eine OR-Operation. Vorzugsweise ist das zweite Logikgatter unter Verwendung von AND-Kombinationen und XOR-Kombinationen implementiert.
  • Vorzugsweise sind die Logikgatter auf einer Transistorebene unter Verwendung einiger Transistoren implementiert, die Teil des ersten Logikgatters und des zweiten Logikgatters sind.
  • Ferner ist es bevorzugt, die zwei Logikgatter derart zu implementieren, dass das Paar aus korrelierten Signalen, wie z. B. der erste und zweite Hilfsoperand einerseits und der dritte und vierte Hilfsoperand andererseits, immer dieselbe Gattertiefe dahinter aufweisen. Dies bedeutet, dass das erste und zweite Logikgatter auf einer Transistorebene derart implementiert sind, dass diese Paare aus Hilfsoperanden dieselben Gatterverzögerungen aufweisen, da sie durch dieselben Gatter verlaufen.
  • Ferner ist es bevorzugt, dass die Logikgatter auf Transistorebene derart implementiert sind, dass die zwei korrelierten Signale geroutet bzw. geleitet werden, wodurch beide Signalwege dieselbe Kapazität aufweisen. Somit kommt das Signal bei jedem Paar von korrelierten Signalen gleichzeitig an einem Eingang des entsprechenden nächsten Gatters an.
  • Diese Implementierung führt zu so genannten semi-Glitchäquivarianten Gattern, die zum Implementieren jeglicher nichtlinearer logischer Operation zwischen zwei mikroskopischen Operanden verwendet werden können.
  • Es wird darauf hingewiesen, dass diese semi-Glitch-äquivarianten Gattern DPA-resistent bei Vorhandensein von Glitches für jede und jegliche Schaltungstechnik sind. Anders ausgedrückt kann die logische Funktion, die durch diese Gatter vorgeschrieben wird, durch jegliche Schaltungstechnik implementiert sein, die jegliche Übergangsenergie für einen Energieübergang zwischen 0 und 1, 1 und 0, 0 und 0 oder 1 und 1 aufweist.
  • Allgemein ausgedrückt garantieren diese bevorzugten semi-Glitch-äquivarianten Gattern einen DPA-Widerstand bei Vorhandensein von Glitches, unabhängig von den tatsächlichen Werten ihrer Übergangsenergien auf der Gatterebene.
  • Wenn jedoch bestimmte weniger allgemeine Einschränkungen gemacht werden können, wie z. B., dass die Übergangsenergie von 0 zu 1 im Wesentlichen gleich zu der Übergangsenergie von 1 zu 0 ist, oder dass die Übergangsenergie von 0 zu 0 im Wesentlichen gleich zu der Übergangsenergie von 1 zu 1 ist, wird die Familie aus Äquivarianz-Gattern größer.
  • Für eine vollständig flexible bibliotheksgerichtete Implementierung jedoch wird vorzugsweise die vollständig allgemeine Übergangsenergiedefinition, die zu genau acht Logikgattern als das nichtlineare Gatter bei dem Paar aus Logikgattern führt, vorzugsweise verwendet.
  • Gemäß der vorliegenden Erfindung ergibt sich eine Familie aus maskierten Gattern, die theoretisch auch bei Vorhandensein von Glitches sicher sind. Diese Gatter bilden einen universellen Satz und können unter praktisch allen steuerbaren Bedingungen bei einer automatisierten CMOS-Schaltungssynthese verwendet werden und zusätzlich dazu bei einer automatisierten Schaltungssynthese für andere Techniken, da die verwendeten Logikgatter derart entworfen sind, dass ein Energieverbrauch dieser Gatter im Wesentlichen gleich für eine Mehrzahl von Kombinationen aus Hilfsoperanden am Anfang eines ersten Operationszyklus und Hilfsoperanden am Anfang eines zweiten Operationszyklus ist, wobei die Durchschnittsenergie aus einer Mehrzahl von Vorkommnissen des ersten bis vierten Hilfsoperanden unterschiedlicher Ordnungen hergeleitet wird.
  • Kurze Beschreibung der Zeichnungen
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen erörtert, in denen:
  • 1a ein schematisches Diagramm einer Vorrichtung zum Berechnen gemäß der vorliegenden Erfindung ist;
  • 1b ein schematisches Diagramm einer Verkettung von zwei Vorrichtungen aus 1a ist;
  • 1c ein schematisches Diagramm einer Lifting-Darstellung in zwei Logikgatter einer logischen Operation mit drei Operanden, die durch sechs Hilfsoperanden dargestellt sind, ist;
  • 2a ein Zeitgebungsdiagramm ist, das einige Ordnungen φ von Vorkommnissen des ersten bis vierten Hilfsoperanden zeigt;
  • 2b ein Zeitdiagramm einer Ausgabe der Vorrichtung in 1a ist, das verschiedene Glitches zeigt, abhängig von der Ordnung der Vorkommnisse aus 2a über zwei Operationszyklen;
  • 2c eine Tabelle ist, die exemplarisch eine Glitch-Situation in 2a und 2b darstellt;
  • 3 ein Flussdiagramm zum Darstellen der Strategie hinter einer erschöpfenden Suche zum Finden der Familie aus maskierten Gattern ist, die theoretisch auch bei Vorhandensein von Glitches sicher sind;
  • 4a eine Tabelle ist, die alle Booleschen Funktionen aller lokal G-äquivarianten Gatter darstellt;
  • 4b und 4c Tabellen sind, die alle Booleschen Funktionen der zusätzlichen semi-G-äquivarianten Gatter darstellen;
  • 5 eine Tabelle ist, die alle möglichen Kombinationen von ersten und zweiten Gattern zum Implementieren einer AND-Operation gemäß dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung darstellt;
  • 6 eine Tabelle ist, die alle möglichen Kombinationen aus ersten und zweiten Gattern zum Implementieren einer OR-Operation gemäß dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung darstellt;
  • 7 eine Tabelle ist, die alle möglichen Kombinationen aus ersten und zweiten Gattern zum Implementieren einer NAND-Operation gemäß dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung darstellt;
  • 8 eine Tabelle ist, die alle möglichen Kombinationen aus ersten und zweiten Gattern zum Implementieren einer NOR-Operation gemäß dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung darstellt;
  • 9a ein Beispiel einer Logikimplementierung des nichtlinearen Gatters in 1a ist;
  • 9b eine allgemeine Darstellung zum Implementieren des linearen Gatters in 1a ist; und
  • 10 ein Beispiel für eine Kombinationsschaltung aus zwei maskierten in Lifting-Darstellung vorliegenden Gattern ist.
  • Detaillierte Beschreibung der bevorzugten Ausführungsbeispiele
  • Bevor bevorzugte Ausführungsbeispiele der vorliegenden Erfindung detailliert erörtert werden, wird das Problem von Glitches auf abstrakte Weise formuliert.
  • Nachfolgend wird das Modell für den Leistungsverbrauch von CMOS-Gattern verfeinert, wobei der Seitenkanal von Glitches berücksichtigt wird. Basierend auf diesem Modell wird der Begriff von G-Äquivarianz eingeführt und es wird gezeigt, dass die angegebenen Gatter- und Energiemodelle, die eine G-Äquivarianz aufweisen, bevorzugte Bedingungen für randomisierte Gatter sind, um eine Differenzleistungsattacke zu verhindern. Es kann gezeigt werden, dass leider bei einer Gatterklasse, die aus Implementierungsgründen bevorzugt ist, kein G-äquivariantes Gatter existiert, das verwendet werden kann, um eine nichtlineare logische Funktion zu realisieren. Für ein bevorzugtes Modell mit abgeschwächten Bedingungen jedoch ist es möglich, explizit einen universellen Satz aus semi-G-äquivarianten Gattern zu konstruieren. Die notwendigen Einschränkungen im Hinblick auf Gatterentwurf und Signalwegführung sind in der Praxis realisierbar und können unter Verwendung verfügbarer Standard-Tools erfüllt werden.
  • Präsentation und Analyse des Glitch-Problems
  • In diesem Kapitel wird das Glitch-Problem, das sich in [15] findet, auf eine theoretischere und abstraktere Weise neu formuliert. Zuerst wird die Abstraktion des Energieverbrauchs eines einzelnen Gatters, das das Ziel eines DPA-Angriffs ist, rekapituliert. Das einfachste Energiemodell, das allgemein verwendet wird, wird erwähnt und eine allgemeinere Definition wird gegeben. Dann wird der grundlegende Angriff auf ein solches Gatter mit statistischen Mitteln beschrieben. Die Definitionen von randomisierten Gattern (in der klassischen Bedeutung) wird gegeben und es wird gezeigt, wie ein DPA trotzdem erfolgreich sein kann, wenn die allgemeinere Energiebeschreibung anwendbar ist.
  • Das simplistische Leistungsverbrauchsmodell eines Gatters
  • Ein Gatter g mit n Eingängen und einem Ausgang wird als eine Funktion interpretiert g: F n / 2 → F2. Bei einem synchronen Entwurf eines Gatters (innerhalb einer Schaltung) am Anfang eines Taktzyklus bestehen die alten Werte für eine sehr kurze Zeit weiter. Nach der Taktflanke beginnen die Eingangswerte und auch der Ausgangswert sich zu ändern und stabilisieren sich am Ende des Taktzyklus. Für eine Leistungsanalyse besteht Interesse an einer Beziehung zwischen den logischen Werten, die bei diesem Gatter verarbeitet werden, und der Energie, die durch diese Verarbeitung verwendet wird. Dies ist der Fall, da ein Angreifer möglicherweise nicht in der Lage ist, einen einzelnen digitalen Wert zu messen, sondern eher den Leistungsverbrauch (Strom) des Gatters während dieses Übergangs. Üblicherweise, z. B. bei CMOS, werden die digitalen Werte 0 und 1 durch zwei unterschiedliche Spannungspegel dargestellt und das Schalten zwischen diesen Werten verbraucht die meiste Leistung, während das Verbleiben auf demselben Pegel nur eine geringe Menge verbraucht.
  • Wenn angenommen wird, dass ein Angreifer möglicherweise in der Lage ist, das Integral der Leistung zu messen, das durch ein Gatter während eines Taktzyklus benötigt wird, ist die nachfolgende Definition einer Energiefunktion eines Gatters offensichtlich:
    Definition 1. Es sei g: F n / 2 → F2 ein Gatter. Die Eingabe zur Zeit t0 bei oder kurz vor der ansteigenden Flanke eines Taktzyklus ist a = (a1, ..., an) ∈ F n / 2 und die Eingabe bei t1 bei oder kurz vor der nächsten ansteigenden Flanke ist x (x1, ..., xn) ∈ F n / 2. Dann ist der Energieverbrauch des Gatters während dieses Übergangs durch die reelle Zahl Eg(a, x) ∈ R gegeben. Somit ist die Energiefunktion des Gatters g die Abbildung Eg : Fn2 × Fn2 → R, (a, x) ⟼ Eg(a, x) (1)
  • Diese Definition ist eher allgemein. Es wird darauf hingewiesen, dass die Energiefunktion eines Gatters für individuelle Gatter bei einer Schaltung unterschiedlich sein kann, sogar wenn dieselben funktional gleich sind.
  • Bei einem simplistischen Energieverbrauchsmodell wird der Leistungsverbrauch eines Gatters mit der Energie identifiziert, die benötigt wird, um die Ausgangskapazität zu treiben, wenn der Ausgang umschaltet. Somit wird der Leistungsverbrauch eines Gatters (während eines Taktzyklus) nur durch sein digitales Ausgangsverhalten beschrieben. Somit ist der Energieverbrauch gegeben durch den Ausgangswert von g bei t0 und t1 und ein Tupel (Eg, 00, Eg, 01, Eg, 10, Eg, 11) ∈ R4. Wenn bei t0 der Ausgangswert von g 1 ist und bei t1 0 ist, dann ist die Energie für diesen Taktzyklus Eg, 10. Somit ist bei diesem Modell die Energiefunktion des Gatters g gegeben durch Eg(a, x) = Eg,g(a)→g(x) (2)
  • Differenzleistungsanalyse bei diesem Modell
  • Es sei ein kryptographischer Algorithmus mit einem Geheimnis (Schlüssel) angenommen, der als eine CMOS-Schaltung implementiert ist. Ferner sei angenommen, dass ein Gatter g F 2 / 2 → F2 innerhalb dieser Schaltung vorliegt. Die Eingangswerte von g zur Zeit t0 sind (a, b) ∈ F 2 / 2 und zu einer späteren Zeit t1 sind dieselben (x, y) ∈ F 2 / 2. Da ein Angreifer den Energieverbrauch dieses Gatters während mehrerer Durchläufe des Algorithmus mit unterschiedlichen Meldungen überwachen wird, können diese Werte als zufällige Variablen a, b, x, y: Ω → F2 bei einem Wahrscheinlichkeitsraum (Ω, A, P) erscheinen. Dies verursacht die nachfolgende Verkettung εg := Eg ∘ (a, b, x, y) : Ω → F22 × F22 → R (3)
  • Mit der Kenntnis des geheimen Schlüssels (oder von Teilen desselben), der die Hypothese genannt wird, kann eine Partition von Ω in zwei messbare getrennte Teilsätze A und B derart erzeugt werden, dass Ω = A ∪ B and ∅ = A ∩ B, mit der Eigenschaft: E(εg|A) ≠ E(εg|B) (4)während diese Konstruktion, wenn sie mit einer falschen Hypothese ausgeführt wird, folgendes ergibt: E(εg|A) = E(εg|B) (5)
  • Ein klassisches Beispiel, siehe [13], ist die Partition von Ω in A = {ω ∈ Ω : g(x(ω), y(ω)) = 1} (6) B = {ω ∈ Ω : g(x(ω), y(ω)) = 0} (7)
  • Mit diesem simplistischen Energiemodell wird folgendes erhalten E(εg|A)= αEg,0→1 + (1 – α)Eg,1→1 E(εg|B) = βEg,0→0 + (1 – β)Eg,1→0(8) für α := P({ω ∈ Ω : g(a(ω), b(ω)) = 0} |A) und β := P({ω ∈ Ω : g(a(ω), b(ω)) = 0} |B). Im Allgemeinen sind diese zwei Erwartungswerte nicht gleich (wenn die Hypothese korrekt war). Dies verursacht den klassischen DPA.
  • Anmerkung 1. Es ist offensichtlich, dass, wenn Eg,00 = Eg,01 = Eg,10 = Eg,11 dann tatsächlich die zwei Erwartungswerte immer gleich sind, unabhängig davon, ob die Hypothese richtig oder falsch war. Somit ist kein DPA möglich. Allgemein ausgedrückt, wenn die Energiefunktion Eg : F22 × F22 → F2 konstant ist (*) (9)dann leitet dieses Gatter keine Informationen ab und ein DPA an diesem Gatter ist nicht möglich.
  • In der Praxis werden diese Bedingungen nur erfüllt, wenn ein Logik-Typ für die Implementierung ausgewählt ist, der die Konstantheit der Energiefunktion selbst garantiert. Dies entspricht der zweiten Klasse von Ansätzen der Einleitung (z. B. DCVSL oder SBAL) und führt folglich zu den erwähnten Nachteilen.
  • Wenn dies nicht anwendbar ist, ist es immer noch möglich, die zusätzlichen Bedingungen zu verwenden, gegeben durch a, b, x, y: Es muss nur folgende Bedingung erfüllt sein εg : Ω → R ist konstant (* *) (10)was eine schwächere Bedingung ist als die Letztere. Wenn jedoch Gatter zu einem allgemeinen Zweck gefunden werden sollen, muss diese Bedingung (* *) für jegliche a, b, x, y erfüllt sein. Aber leider ist dies äquivalent zu der Bedingung (*) bei dem simplistischen Leistungsmodell.
  • Randomisierte Logik
  • Tatsächlich gibt es vielleicht noch die Möglichkeit, dass εg konstant ist, sogar wenn Eg nicht konstant ist. Dies kann der Fall sein, wenn die Variablen a, b, x, y bestimmte Einschränkungen einhalten. Üblicherweise können Einschränkungen dieser Art – mit nur zwei Eingängen – nicht erfüllt werden, wenn das Gatter etwas nützliches tut. Aber es kann in der Klasse aus randomisierten (maskierten) Gattern möglich sein, was nachfolgend erörtert wird.
  • Das Randomisieren eines Signals (in unserem Kontext) bezeichnet das Ersetzen eines digitalen Signals a ∈ F2 durch eine Anzahl von Signalen a1, ..., an ∈ F2 mit a = a1 + ... + an auf eine Weise, dass keine Korrelation zwischen a und jedem ai besteht. Bei einer praktischen Anwendung sind nur in sehr wenigen Fällen die Ressourcen verfügbar, n > 2 auszuwählen. Somit ist die Erörterung auf den Fall n = 2 in diesem gesamten Dokument beschränkt.
  • Eine Philosophie ist das Interpretieren des randomisierten Signals (a1, a2) als das Paar des maskierten Signals am = a1 und seiner Maske ma = a2 (siehe Ausdruck z. B. in [15]). Aber dies ist nur Terminologie und dies wird in der vorliegenden Erörterung nur zum Präsentieren der randomisierten Gatter verfolgt, wie bei [15]. Diese Ansicht hat jedoch eine Auswirkung auf die Philosophie von randomisierten (oder maskierten) Gattern: Da die Signale a, b nun in zwei Abschnitte aufgespaltet sind, muss das alte Gatter g: F 2 / 2 → F2 durch ein neues Gatter ersetzt werden.
  • Die erste Wahl wäre g' : F 2 / 2 × F 2 / 2 → F2, derart, dass g (a, b) = g' (a1, a2, b1, b2), wobei a = a1 + a2 and b = b1 + b2. Aber da die Ausgabe auch randomisiert sein sollte, wäre eine Möglichkeit g' : F 2 / 2 × F 2 / 2 × F2 → F2, mit der Eigenschaft g (a, b) = g' (am, ma, bm, mb, mc) + mc mit a = am + ma und b = bm + mb. Diese Eigenschaft definiert g' als eindeutig. Nachfolgend wird g' die maskierte Lifting-Darstellung von g genannt, da die Ausgabe von g' die Ausgabe von c: = g(a, b) maskiert mit mc ist. 1 zeigt ein Beispiel für eine Schaltung, die maskierte Lifting-Darstellung von Gattern (linkes Schema) und eine Realisierung einer Lifting-Darstellung an einem AND-Gatter [26, 9] (rechtes Schema) zeigt.
  • Eine andere Wahl ist das Verwenden von zwei Gattern (g1, g2): F 2 / 2 × F 2 / 2 × F 2 / 2 mit der Eigenschaft g(a, b) = g1(a1, a2, b1, b2) + g2(a1, a2, b1, b2). Hier sind g1 und g2 nicht eindeutig durch diese Eigenschaft definiert. Aber natürlich ist, wenn g1 gegeben ist, dann g2 festgelegt. Das Paar (g1, g2) wird eine randomisierte Lifting-Darstellung von g genannt.
  • Unter Verwendung des Energieverbrauchsmodells von oben, d. h.
    Figure 00190001
    wobei (a ~, b ~, mc) ∈ F 2 / 2 × F 2 / 2 × F2 die Eingabe bei t0 ist, (x ~, y ~, mz) ∈ F 2 / 2 × F 2 / 2 × F2 die Eingabe bei t1 mit den Abkürzungen a ~ = (am, ma) ist etc., muss der Energieverbrauch Eg((a, b), (x, y)) durch den Erwartungswert E(Eg'((a ~, b ~, mc, (x ~, y ~, mz))) (12)ersetzt werden,
    wobei a ~ = (am, ma), b = (bm, mb), mc, x ~ = (xm, mx), y ~ = (ym, my), mz als zufällige Variablen interpretiert sind mit a = am + ma etc. Ein Angreifer ist nicht in der Lage, die exakten (mikroskopischen) Signale (a ~, b ~, mc), (x ~, y ~, mz) zu kennen oder zu erzwingen, sondern nur die (makroskopischen) Signale a, b, x, y. Es war das Ziel von [26, 9, 15]. Tatsächlich, wenn mc, mz: Ω → F2 einheitlich verteilte zufällige Variablen sind, unabhängig von den zufälligen Variablen g(a, b), g(x, y), dann gibt die maskierte Lifting-Darstellung g' eines Gatters g keine Informationen ab, d. h. E(Eg'((a ~, b ~, mc), (x ~, y ~, mz))) ist unabhängig von a, b, x, y.
  • Leistungsverbrauch eines Gatters bei Vorhandensein von Glitches
  • Vorangehend wurde gezeigt, dass Gatter g' : F 2 / 2 × F 2 / 2 × F2 → F2 vorliegen, derart, dass für jegliche Signale (zufällige Variablen) am, ma, bm, mb, mc: Ω → F2 und xm, mx, ym, my, mz: Ω → F2 der Erwartungswert E(Eg'((a ~,
    Figure 00200001
    , mc), (x ~, y ~, mz))) unabhängig von den Signalen ist, d. h. eine Konstante, solange einige Signale gewisse Unabhängigkeits- und Verteileigenschaften aufweisen.
  • Wie in [15] realisiert ist, kommen bei echten CMOS-Implementierungen die unterschiedlichen Signale xm, mx, ym, my, mz vielleicht an dem Gatter nicht zu der gleichen Zeit an.
  • Bei der Beispielschaltung aus 1 kommt das Signal dm mit einer Verzögerung an dem Eingang von Gatter g'2 an, im Vergleich zu den Signalen md, cm, mc, aufgrund der Gatterverzögerung von g'1. Ferner weisen alle Eingangssignale des Gatters g'2 im Allgemeinen unterschiedliche zusätzliche Verzögerungsbeiträge aufgrund der Ausbreitungsverzögerung von Drahtkapazitäten auf. Diese Verzögerungen sind fest, wenn die Schaltung ausgelegt ist, und hängen von der Leitungsführung des Signals ab.
  • Es wird das Beispiel betrachtet, dass die Signale in der bestimmten Reihenfolge ym → my → mz → xm → mx ankommen. In diesem Fall ändert sich der Ausgangswert des Gatters nicht nur einmal während des Taktzyklus, sondern fünfmal, was zu den aufeinanderfolgenden Ausgangsübergängen führt. g(am, ma, bm, mb, mc) → g(am, ma, ym, mb, mc) → g(am, ma, ym, my, mc) → g(am, ma, ym, my, mz) → g(xm, ma, ym, my, mz) → g(xm, mx, ym, my, mz) (13)
  • Daher ist der Energieverbrauch tatsächlich insgesamt
    Figure 00210001
  • Somit ist ein neues Leistungsmodell erforderlich, derart, dass Eg'((a ~, b ~, mc), (x ~, y ~, mz)) durch die obige Summe gegeben ist. Leider haben die Autoren von [15] mit diesem Modell gezeigt, dass E(Eg'((a ~, b ~, mc), (x ~,
    Figure 00210002
    , mz))) nicht mehr unabhängig von a, b, x, y ist. Die maskierte Lifting-Darstellung von nichtlinearen Gattern wie AND, OR haben diese nachteilhafte Eigenschaft, während die maskierte Lifting-Darstellung des linearen Gatters XOR einen konstanten Erwartungswert aufweist. Somit besteht kein universeller Satz von Gattern bei den maskierten Lifting-Darstellung der Gatter (wobei n = 2).
  • Es ist eine sogar noch schlimmere Situation denkbar: Wenn ein gut ausgerüsteter Angreifer in der Lage ist, die unterschiedlichen Teilenergien der fünf Übergänge zu messen, sind die Einschränkungen für ein Gatter, das widerstandsfähig gegen DPA sein soll, sogar noch schwieriger zu erfüllen. Nachfolgend wird ein Leistungsmodell mit größeren Dimensionen eingeführt, das in der Lage ist, diese Situation zu beschreiben.
  • Die maskierte Lifting-Darstellung von Gatter g' hat den Nachteil, dass sie ein Lifting eines normalen einzelnen Gatters g sein muss. Der zweite Ansatz der Verwendung einer randomisierten Lifting-Darstellung (g1, g2) ist flexibler, da zwei Gatter (g1 und g) zusammen das normale Gatter g realisieren müssen.
  • Dies ist die Strategie, die in den nächsten Kapiteln verfolgt wird. Der Raum der randomisierten Gatter der Form gi F 2 / 2 × F 2 / 2 → F2 wird untersucht, um Gatter zu finden, die bei Vorhandensein von Glitches bzw. Störimpulsen „sicher" sind. Der Ausdruck „sicher" wird präzise definiert. Später können die gefundenen Gatter kombiniert werden, um logische Funktionen zu realisieren, wie z. B. randomisierte AND- oder OR-Gatter.
  • Mathematische Abstrahierung des Problems
  • Das letzte Kapitel hat möglicherweise die nachfolgende Strategie und Definitionen motiviert. Zuerst wird das abstrakte Modell der Gatter zusammen mit ihrem Energiemodell definiert. Schließlich werden die Bedingungen, die den Gattern auferlegt werden, formuliert, die sicherstellen, dass ein Differenzleistungsangriff nicht erhoben werden kann.
  • Das Gattermodell
  • Definition 2. Ein Gatter g mit n Eingängen ist eine Funktion g: F n / 2 → F2. Die Übergangsfunktion ĝ von g ist die Abbildung
    Figure 00220001
    wobei b ~1 = (bi1, ..., bin) ∈ F n / 2 definiert ist durch:
    Figure 00230001
    wobei insbesondere gilt a ~ = b ~1 und x ~ = b ~n+1.
  • Die Übergangsfunktion ĝ beschreibt die Werte n + 1, die der Ausgang des Gatters hat, wenn die n Eingangssignale an n möglichen unterschiedlichen Zeitpunkten ankommen. Dies bedeutet, wenn φ(j) = 1, dann sich das Signal j zuerst ändert und das Signal, das sich als Nächstes ändert, dasjenige ist mit φ(j) = 2, und so weiter. Da zwei oder mehr Signale gleichzeitig ankommen können, muss die Abbildung φ keine Permutation sein. Die alte Energiebeschreibung eines Gatters kann erhalten werden durch Festlegen von φ ≡ 1 (oder jeglicher Konstante zwischen 1 und n).
  • Anmerkung 2. Die Ordnung der Signale φ ist eine Konstante, die für jedes einzelne Gatter innerhalb einer Schaltung zugeordnet ist. Diese Ordnung wird zur Entwurfszeit der Schaltung festgelegt und ist gegeben durch die Tiefe des Logikbaums an jedem Eingang des Gatters und die präzise Leitungsführung der Signale. Beide Faktoren bestimmen die Ankunftszeiten der Eingangssignale.
  • Der Energieverbrauch eines Gatters bei diesem Modell
  • Da das Gatter g bis zu n Male innerhalb einer Taktperiode schalten kann und da jedes Umschalten des Ausgangs die Leistung Eg,0→0 = Eg,0→1 = Eg,1→0 = Eg,1→1 verbraucht, muss die Schreibweise der Energiefunktion verallgemeinert sein. Ferner, da die vier Werte von oben stark von dem individuellen Gatter und seiner Position in einer Schaltung abhängen können, macht es Sinn, diese Werte als Unbestimmte zu behandeln. Daher ist es natürlich, die Energiefunktion nicht bei R zu bewerten, sondern eher in dem vierdimensionalen Vektorraum V := R·e00 ⨂ R·e01 ⨂ R·e10 ⨂ R·e11
  • Für eine bestimmte Implementierung kann die Energiefunktion mit der Bewertungsfunktion ev verkettet werden: V → R, (x00), x01, x10, x11)⟼ Σij xijEg,i→j.
  • Definition 3. Die Teil- (oder Lokal-) Energiefunktionen eines Gatters g: F n / 2 → F2 sind gegeben durch
    Figure 00240001
    für i = 1, ..., n und b ~, wie in der letzten Definition beschrieben wurde. Die Gesamt- (oder Global-) Energiefunktion Eg eines Gatters g: F n / 2 → F2 ist die Summe ihrer Teilenergiefunktionen: Eg := Eg,1 + ... + Eg,n (18)
  • Anmerkung 3. Diese Definition des Energieverbrauchs eines Gatters reflektiert die Annahme, dass die Implementierung eines solchen Gatters keine verwendbaren internen Seitenkanäle aufweist. Dies bedeutet z. B., dass das Gatter selbst inhärent glitch-frei ist und nur eine Signaländerung an dem Ausgang vorliegt, wenn sich ein Eingangssignal ändert. Ferner muss die Ausgangsverzögerung nicht von dem Eingangswert abhängen. Es kann sicher angenommen werden, dass diese Voraussetzungen in der Praxis realisiert werden können, wenn eine maskierte Logikzelle zur Verwendung bei einer Bibliothek erzeugt wird.
  • Randomisierte Signalpaare
  • Randomisierung in unserem Kontext bedeutet das Aufspalten eines Signals a in ein Paar (a1, a2) aus Signalen, derart, dass a = a1 + a2 und die individuellen Bits a1 and a2 unbekannt sind, d. h. zufällig (random) und einheitlich verteilt sind. Da vorerst die randomisierten Realisierung von (makroskopischen) 2-1 Gattern wie AND, OR etc., von Interesse ist, können die möglichen Gatter auf Gatter mit zwei (makroskopischen) Eingängen, a, b, beschränkt werden, also auf vier tatsächliche Eingänge a1, a2, b1, b2. 1b zeigt eine Kombinationsschaltung, bei der zwei normale Gatter g1(a, b) und g2(d, c) durch zwei randomisierte Lifting-Darstellungen von Gattern (g11(a1, a2,b1, b2), g12(a1, a2, b1, b2)) und (g21(d1, d2, c1, c2), g22(d1, d2, c1, c2)) ersetzt wurden, die die alte Funktionalität der Schaltung erhalten. Die nachfolgenden zwei Definitionen beschreiben diese Situation:
    Definition 4. Ein randomisiertes Signalpaar (RSP; randomized signal pair) ist ein 4-Tupel (a1, a2, b1, b2) aus zufälligen Variablen a1, a2, b1, b2: Ω → F2, derart, dass die nachfolgenden Eigenschaften erfüllt sind:
    • 1. a1, a2, b1, b2 sind einheitlich verteilt, z. B. P(a1 = 0) = P(a1 = 0) = 1/2.
    • 2. Das Paar aus Variablen ai, bj ist unabhängig, für alle i, j = 1, 2.
  • Anmerkung 4. Die Paare a1, a2 und b1, b2 sind möglicherweise nicht unabhängig!
  • Definition 5. Wenn folgendes definiert ist a:= a1 + a2: Ω → F2 und b:= b1 + b2: Ω → F2, dann ist (a, b) : Ω → F 2 / 2 ein Paar aus Zufallsvariablen und a ~, b ist eine Lifting-Darstellung des Paares (a, b), wobei a ~ := (a1, a2) und b ~ := (b1, b2).
  • Nachfolgend ist es nicht beabsichtigt, zu versuchen, ein einzelnes Gatter g' zu finden, das die Funktionalität des alten Gatters g genau liftet. Stattdessen ist es beabsichtigt, der allgemeinen Strategie zu folgen, nach einem universellen Satz von gelifteten Gattern zu suchen. Dies ist eine Familie aus Gattern, die die Eigenschaft aufweisen, dass die Energie des makroskopischen Übergangs (a, b) (x, y) keine Informationen abgibt, und die kombiniert werden kann, um jegliche logische Funktion zu realisieren.
  • Nachfolgend wird eine präzise Formulierung der notwendigen Bedingungen für geliftete Gatter gegeben, die keine Informationen abgeben, auch bei Vorhandensein von Glitches.
  • Das Kriterium einer Glitch-Äquivarianz von Gattern
  • Der Begriff von Glitch-äquivarianten Gattern wird nun vorgestellt. Gatter, die das Kriterium der Glitch-Äquivarianz erfüllen, geben keine Informationen über den makroskopischen Übergang (a, b) → (x, y) ab, da sie keinen Defekt in dem Seitenkanal von Glitches aufweisen.
  • Basierend auf dem Modell für die Energiefunktion eines maskierten CMOS-Gatters, Definition 3, und dem Begriff eines randomisierten Signalpaars, Definition 4, beschreiben die nachfolgenden Definitionen notwendige Bedingungen für den Widerstand von maskierten Gattern bei einem DPA-Angriff bei Vorhandensein von Glitches.
  • Definition 6. Ein Gatter g: F 2 / 2 ×× F 2 / 2 → F2 wird global G-äquivariant genannt, wenn für jegliches φ ∈ Map({1, ..., 4}, {1, ..., 4}) der Erwartungswert der Gesamtenergie E(Eg((a ~, b ~), (x ~, y ~, ϕ)) ∈ V (19) unabhängig von jeglicher Auswahl von randomisierten Signalpaaren (a ~, b ~), (x ~, y ~) ist.
  • Ein Gatter g: F 2 / 2 × F 2 / 2 → F2 wird lokal G-äquivariant genannt, wenn für jegliches φ ∈ Map({1, ..., 4}, {1, ..., 4}) und i = 1, 2, 3, 4 die Erwartungswerte der Teilenergien E(Eg,i((a ~, b ~), (x ~, y ~, ϕ)) ∈ V (20)unabhängig von jeglicher Wahl von randomisierten Signalpaaren (a ~, b ~), (x ~, y ~) sind.
  • Anmerkung 5. Offensichtlich ist jedes lokal G-äquivariante Gatter ebenfalls global G-äquivariant.
  • Da die Familie der randomisierten Signalpaare (a ~, b ~), (x ~, y ~) sehr groß sein kann, wird ein einfacheres Kriterium benötigt, um zu entscheiden, ob ein Gatter G-äquivariant ist. Das erste Lemma reduziert das Kriterium auf bestimmte, randomisierte Signalpaare.
  • Lemma 1. Ein Gatter g: F 2 / 2 × F 2 / 2 → F2 ist global G-äquivariant, wenn, und nur wenn, für jegliches φ der Wert E(Eg((a ~, b ~), (x ~, y ~, ϕ)) ∈ V unabhängig von jeglicher Wahl von randomisierten Signalpaaren (a ~, b ~), (x ~, y ~) ist, die Lifting-Darstellungen von konstanten Paaren (a, b), (x, y) sind.
  • Ein Gatter g: F 2 / 2 × F 2 / 2 → F2 ist lokal G-äquivariant, wenn, und nur wenn, für jegliches φ und i der Wert E(Egi((a ~, b ~), (x ~, y ~, ϕ)) ∈ V unabhängig von jeglicher Wahl von randomisierten Signalpaaren (a ~, b ~), (x ~, y ~) ist, die Lifting-Darstellungen von konstanten Paaren (a, b), (x, y) sind.
  • Das nächste Lemma reduziert das Kriterium auf eines, das direkt berechenbar ist.
  • Lemma 2. Ein Gatter g: F 2 / 2 × F 2 / 2 → F2 ist global G-äquivariant, wenn und nur wenn für jegliches φ die 24 Werte
    Figure 00280001
    gleich sind. Ein Gatter g: F 2 / 2 × F 2 / 2 → F2 ist lokal G-äquivariant, wenn und nur wenn für jegliches φ und i = 1, 2, 3, 4 die 24 Werte
    Figure 00280002
    gleich sind.
  • Aus der Definition von G-Äquivarianzen ist sofort offensichtlich, dass Gatter, die dieses Kriterium erfüllen, das Problem des Seitenkanalleckens durch Glitches überwinden (zumindest den dominanten Effekt, der durch das definierte Modell erfasst wird). Es ist eine einfache Aufgabe, eine erschöpfende Suche an allen 216 möglichen Gattern g: F 2 / 2 × F 2 / 2 → F2 unter Verwendung von Lemma 2 auszuführen, um eine vollständige Liste von allen lokal und global G-äquivarianten Gattern zu erhalten.
  • Es gibt 50 global und lokal G-äquivariante Gatter. In Tabelle 1 (4a) sind die algebraischen normalen Formen aller 50 lokal G-äquivarianten Gatter gegeben. Die Konstante c kann die Werte {0, 1} annehmen.
  • Figure 00280003
  • Einige kryptographische Eigenschaften dieser Booleschen Funktionen werden nachfolgend erwähnt. Die Definitionen von Eigenschaften sind bekannt und enthalten z. B. in [20]. Die erste Gruppe aus 8 Funktionen ist symmetrisch und korrelationsimmun erster Ordnung, d. h. CI(1) (CI = correlation immune), aber erfüllt nicht das Ausbreitungskriterium (PC; propagation criterion) zu jeglichem Grad. Die zweite Gruppe aus 8 Funktionen ist symmetrisch und weder korrelationsimmun noch erfüllt sie das PC. Die verbleibenden 34 Funktionen sind weder symmetrisch noch CI noch erfüllen sie das PC.
  • Leider liegen weder in dem Satz von global noch lokal G-äquivarianten Gattern zwei Gatter vor, die zu einer Lifting-Darstellung von jeglichem nichtlinearen Gatter (wie AND oder OR) gepaart werden können. Somit wurde folgendes gezeigt:
    Theorem 1. Es gibt keinen universellen Satz aus maskierten Gattern der Form F 2 / 2 × F 2 / 2 → F2, die das G-Äquivarianz-Kriterium erfüllen.
  • Die Logikfamilie aus semi-G-äquivarianten Gattern
  • Die Ergebnisse aus dem letzten Kapitel führen zu der Frage, ob die starke Bedingung einer G-Äquivarianz für die Realisierung einer maskierten CMOS-Schaltung in der Praxis vermittelt werden kann.
  • Es wird der Austausch aller einfachen Gatter gi mit Eingang ai, bi und Ausgang ci durch Gatter g ~i mit Eingang a ~i = (ai1 ai2), b ~i = (bi1, bi2) und Ausgang c ~i = (ci1, ci2) erachtet. Es ist offensichtlich, dass das Paar aus korrelierte Signalen (z. B. ai1, ai2) eines makroskopischen Signals (ai) immer dieselbe Gattertiefe hinter sich aufweist, da sie immer durch dieselben Gatter laufen. Die Anforderung bei der Implementierung eines maskierten Gatters gi, dass die Gatterverzögerung für beide Ausgänge, (ci1, ci2), immer identisch sein muss, kann in der Praxis mit geringem Aufwand erfüllt werden. Unter dieser Bedingung ist die kumulative Gatterverzögerung für jedes Signal eines Paares aus korrelierten Signalen gleich. Die verbleibende Quelle für unterschiedliche Ausbreitungszeiten der zwei korrelierten Signale sind unterschiedliche Leitwege mit unterschiedlichen Kapazitäten. Mit der heutigen Leitwegtechnologie ist es jedoch möglich, das Leiten auf eine Weise zu steuern, dass beide Signalwege dieselben Kapazitäten aufweisen. Wenn diese Entwurfs- und Leit-Einschränkungen erfüllt sind, kommt jedes Paar aus korrelierten Signalen gleichzeitig an dem Eingangsgatter des nächsten Gatters an. Dieser praktisch realisierbare Aufbau für eine CMOS-Schaltungsimplementierung schließt bestimmte Kombinationen aus. Genauer gesagt können die Bedingungen in Definition 2 auf alle Abbildungen φ mit φ(1) = φ(2) (für a1, a2) und φ(3) = φ(4) (für b1, b2) reduziert werden.
  • Definition 7. Ein Gatter g: F 2 / 2 × F 2 / 2 → F2 wird global semi-G-äquivariant genannt, wenn für jegliches φ ∈ Map({1, ..., 4}, {1, ..., 4}) mit φ(1) = φ(2) und φ(3) = φ(4) der Erwartungswert der Gesamtenergie E(Eg((a ~, b ~), (x ~, y ~, ϕ)) ∈ V (24)unabhängig ist von jeglicher Auswahl von randomisierten Signalpaaren (a ~, b ~), (x ~, y ~).
  • Ein Gatter g: F 2 / 2 × F 2 / 2 → F2 wird lokal semi-G-äquivariant genannt, wenn für jegliches φ ∈ Map({1, ..., 4}, {1, ..., 4}) mit φ(1) = φ(2) und φ(3) = φ(4) der Erwartungswert der Teilenergien E(Eg,i((a ~, b ~), (x ~, y ~, φ)) ∈ V (25)unabhängig ist von jeglicher Auswahl von randomisierten Signalpaaren (a ~, b ~), (x ~, y ~).
  • Wiederum ergibt eine volle Suche an allen 216 Gattern eine Liste aus Gattern. Es gibt 58 global semi-G-äquivariante Gatter. Alle derselben sind ebenfalls lokal semi-G-äquivariant. Somit können für eine Semi-G-Äquivarianz die Attribute „lokal" und „global" weggelassen werden. Die Liste aus 58 Gattern weist die 50 Gatter aus Tabelle 1 und zusätzlich die 8 Gatter auf, die in Tabelle 2 (4b) unten gegeben sind.
  • Figure 00310001
  • Diese 8 Gatter weisen die gemeinsamen Eigenschaften auf, dass sie symmetrisch sind, korrelationsimmun erster Ordnung, d. h. CI(1), und das Ausbreitungskriterium von Grad 1 erfüllen, d. h. PC(1).
  • Die 8 zusätzlichen semi-G-äquivarianten Gatter ermöglichen nun Paarungen zu Liftings von nichtlinearen Gattern. Ein semi-G-äquivariantes AND-Gatter kann z. B. durch das Lifting realisiert werden AND(a1, a2, b1, b2) – (a1 + b1, a1 + b1 + a1b1 + a1b2 + a2b1 + a2b2) (27)unter Verwendung der ersten Einträge von Tabelle 1 und Tabelle 2. Dementsprechend können alle anderen allgemein erforderlichen nichtlinearen Gatter hergeleitet werden. Somit, nachdem ein universeller Satz aus Gattern gefunden ist, ist es möglich, jeglichen Algorithmus zu implementieren.
  • Schlussfolgerungen
  • Ein neues Energiemodell für CMOS-Gatter wurde entwickelt, das eine abstrakte Beschreibung des Verhaltens von CMOS-Gattern bei realistischen Schaltungen liefert. Genauer gesagt ist dieses Modell in der Lage, das Vorhandensein von Glitches zu erfassen. Glitches wurden kürzlich als ein Seitenkanal identifiziert, der bei unterschiedlichen Leistungsangriffen ausgenutzt werden kann. Basierend auf diesem Modell wurde die Schreibweise von G-äquivarianten und semi-G-äquivarianten Gattern eingeführt. Es wurde gezeigt, dass innerhalb des definierten Gatters und der Energiemodelle eine G-Äquivarianz eine notwendige Bedingung bei randomisierten Gattern ist (bei einer ansonsten nicht eingeschränkten CMOS-Schaltung), um einem Differentialleistungsangriff zu widerstehen. Leider gibt es in der Klasse von Gattern mit nur vier Eingängen (was für eine Implementierung bevorzugt ist) kein Gatterpaar, das ein Lifting eines nichtlinearen Gatters realisiert. Somit wurde gezeigt, dass kein universeller Satz aus G-äquivarianten Gattern in dieser Klasse aus randomisierten Gattern vorliegt. Wenn jedoch ein abgeschwächtes Modell angenommen wird, das einige Einschränkungen auf die Leitwegführung in einer CMOS-Schaltung legt, gibt es randomisierte Gatter, die verwendet werden können, um eine DPA-sichere Schaltung zu entwerfen. Ein universeller Satz aus semi-G-äquivarianten Gattern wurde erzeugt. Die Einschränkungen auf den Gatterentwurf und die Signalwegführung sind in der Praxis realisierbar und können unter Verwendung verfügbarer Standard-Tools ausgeführt werden. Der wesentliche Vorteil der vorgeschlagenen Lösung ist, dass die Gatter in einem standardmäßigen CMOS-Stil implementiert sein können. Es ist bestimmt wichtig, sicherzustellen, dass maskierte, semi-G-äquivariante Gatter sorgfältig unter Vermeidung von Lecken bereits aus den internen Knoten implementiert sind. Die semi-G-äquivarianten Gatter ermöglichen trotzdem die Implementierung eines Ein-Zyklus-Taktgebungsschemas, wohingegen Schaltungstypen mit Vorlade- und Bewertungs-Phase intrinsisch Zwei-Zyklus-Schemata sind.
  • Es kann zusammengefasst werden, dass kryptographische Schaltungen, die randomisierte Gatter verwenden, die das Kriterium einer Semi-G-Äquivarianz erfüllen, sicherer gegen Leistungsattacken sein sollten als jene, die herkömmliche Maskierungsschemata verwenden, die sich über Glitches nicht bewusst sind.
  • Es wird darauf hingewiesen, dass das Modell, das in diesem Dokument entwickelt wird, unvermeidlich eine grobe Abstraktion der komplizierten, physikalischen Prozesse der Energiedissipation bei einer Schalt-CMOS-Schaltung ist. Wirkungen der nächsthöheren Ordnung können sich auf die Transiente des Schaltens eines CMOS-Gatters beziehen. Solche Wirkungen können Teilschwingen der Ausgänge der Gatter (wenn Glitches überlappen) oder Kreuzkopplungen zwischen benachbarten Drähten umfassen, die zu einem gegenseitigen Informationslecken führen. Solche Wirkungen höherer Ordnung sind jedoch nicht spezifisch für CMOS-Schaltungen, beeinflussen jedoch auch andere Schaltungstypen, die theoretisch widerstandsfähig sind gegen DPA, wie z. B. Doppelschienentypen mit Vorlade- und Bewertungs-Phase. Nichts desto trotz hofft man, dass die Wirkungen nächsthöherer Ordnung bei der Energiedissipation mit beträchtlich weniger Leckinformationen verbunden sind, wodurch die Anstrengungen für einen erfolgreichen DPA in die Höhe getrieben werden.
  • Gegenwärtig ist nicht bekannt, ob Liftings von nichtlinearen Gattern existieren, die das Kriterium der G-Äquivarianz (nicht nur der Semi-G-Äquivarianz) erfüllen, wenn mehr als zwei randomisierte Anteile pro Eingangssignal zugelassen sind, oder wenn mehr als zwei Eingangssignale vorhanden sind, d. h. Gatter der Form
    Figure 00330001
  • 1a stellt eine Vorrichtung zum Berechnen einer Darstellung eines Ergebnisoperanden einer nichtlinearen logischen Operation zwischen einem ersten Operanden und einem zweiten Operanden dar. Die Vorrichtung ist allgemein durch das Bezugszeichen 10 angezeigt. Genauer gesagt ist definiert, dass der erste Operand durch einen ersten Hilfsoperanden und einen zweiten Hilfsoperanden dargestellt ist, wobei der erste und der zweite Hilfsoperand zu dem ersten Operanden führen, wenn sie unter Verwendung einer linearen Kombination kombiniert werden. Eine solche lineare Kombination kann eine XOR-, eine XNOR- oder jegliche andere lineare Kombination sein.
  • Der zweite Operand ist ebenfalls durch einen dritten Hilfsoperanden und einen vierten Hilfsoperanden dargestellt, wobei der dritte und vierte Hilfsoperand zu dem zweiten Operanden führen, wenn sie unter Verwendung einer linearen Kombination wie z. B. XOR, XNOR oder jeglicher anderer linearen Kombination kombiniert werden. Bei dem Ausführungsbeispiel in 1a ist der erste Hilfsoperand durch a1 angezeigt, der zweite Hilfsoperand ist durch a2 angezeigt, der dritte Hilfsoperand ist durch b1 angezeigt und der vierte Hilfsoperand ist durch b2 angezeigt. Ferner ist der erste Operand durch a angezeigt, der zweite Operand ist durch b an gezeigt und der Ergebnisoperand ist durch c angezeigt.
  • Die Vorrichtung in 1a umfasst ein erstes Logikgatter 12 zum Berechnen eines fünften Hilfsoperanden c1 basierend auf zumindest zwei Hilfsoperanden. Die zumindest zwei Hilfsoperanden umfassen einen Hilfsoperanden aus dem ersten und zweiten Hilfsoperanden und einen Hilfsoperanden aus dem dritten und vierten Hilfsoperanden. Somit empfängt das erste Logikgatter als Eingabe a1 und b1 oder a2 und b1 oder a1 und b2 oder a2 und b2.
  • Das zweite Logikgatter 14 empfängt jedoch alle Hilfsoperanden a1, a2, b1, b2 an seinem Eingang.
  • Das erste und zweite Logikgatter 12, 14 sind derart entworfen, dass der fünfte und sechste Hilfsoperand, d. h. c1, c2, wenn sie linear kombiniert werden, zu dem Ergebnisoperanden c führen. Wiederum kann die Kombinationsregel für das lineare Kombinieren des fünften Hilfsoperanden und des sechsten Hilfsoperanden eine XOR-, XNOR- oder jegliche andere lineare Kombination sein.
  • Gemäß der vorliegenden Erfindung sind das erste und zweite Logikgatter 12, 14 derart entworfen, dass ein durchschnittlicher Energieverbrauch dieser Logikgatter 12, 14 im Wesentlichen gleich für eine Mehrzahl von Kombinationen aus Hilfsoperanden am Anfang eines ersten Operationszyklus und von Hilfsoperanden am Anfang eines zweiten Operationszyklus ist, wobei die Durchschnittsenergie von einer Mehrzahl von unterschiedlichen Ordnungen von Vorkommnissen des ersten bis vierten Hilfsoperanden hergeleitet werden kann.
  • Zu diesem Zweck wird Bezug auf 2a genommen. 2a zeigt ein Zeitdiagramm der Eingangsseite eines Logikgatters. Genauer gesagt zeigt 2a einen i-ten Operationszyklus gefolgt von einem (i + 1)-ten Operationszyklus. Bei dem ersten Operationszyklus in 2a ist die Ordnung bzw. Reihenfolge des Vorkommens der Hilfsoperanden a2, a1, b1, b2. Bei dem nächsten Operationszyklus ist die Reihenfolge des Vorkommens des Hilfsoperanden unterschiedlich von vorher. Genauer gesagt ist die Reihenfolge des Vorkommens b1, a2, b2 und a1.
  • Jetzt ist die Ausgangssituation dieses Gatters in 2b gegeben. Der Ausgang des Gatters kann unter Verwendung der Logikregel berechnet werden, die dem Gatter zugrunde liegt, oder einer bestimmten Wahrheitstabelle, die für das Gatter definiert ist. Aus exemplarischen Gründen wird eine Wahrheitstabelle angenommen, die zu den Glitches führt, wie in 2b definiert ist. Wenn der zweite Hilfsoperand a2 an dem Eingang des Gatters ankommt, tritt ein erster Glitch des Gatterausgangs auf, wie durch '1' in 2b angezeigt ist. Wenn der zweite Hilfsoperand a1 ankommt, findet keine Zustandsänderung statt, wie durch '2' in 2b angezeigt ist. Dann, wenn der dritte Hilfsoperand b1 an dem Eingang ankommt, findet ein weiterer Glitch '3' statt, so dass der Gatterausgang zurück zu einem positiven Wert kehrt. Dann, wenn der vierte Hilfsoperand b2 an dem Eingang des Gatters ankommt, findet keine weitere Ausgangsänderung statt, wie bei '4' in 2b angezeigt ist. Der Energieverbrauch dieser Ereignisse 1, 2 und 4 ist in der linken Hälfte der Tabelle in 2c gezeigt. Es können allgemein vier Glitches bei '1', '2', '3' und '4' beobachtet werden. Der Endausgangswert dieses Gatters ist der Wert an dem Gatterausgang nach dem letzten Störimpuls '4'.
  • Dann beginnt ein nächster Operationszyklus. Wiederum kommen vier Hilfsoperanden in bestimmten Reihenfolgen φ an. Die Ankunft des Hilfsoperanden b1 führt zu einem ersten Glitch bei '5' in 2b. Die Ankunft eines Hilfsoperanden a2 führt zu einem weiteren Glitch bei '6'. Die Ankunft des nächsten Hilfsoperanden b2 führt zu einem weiteren Glitch bei '7', während die Ankunft des letzten Hilfsoperanden a1 nicht zu einer weiteren Zustandsänderung des Gatterausgangs führt.
  • Der Energieverbrauch des Gatters während der Glitches '5'–'8' ist auf der rechten Seite von 2c angezeigt. Es wird hier darauf hingewiesen, dass die Energieverbrauchswerte Eg10, Eg00, Eg01 und Eg11 bestimmte Werte für bestimmte Schaltungstechniken aufweisen. Nichts desto trotz sind solche tatsächlichen Werte nicht notwendig, um die erfindungsgemäßen, DPA-sicheren Logikgatter zu finden.
  • Nachfolgend wird Bezug auf 3 genommen, um zu zeigen, wie die erschöpfende Suche, die oben erörtert wurde, ausgeführt werden kann.
  • Wie bei 30 gezeigt ist, beginnt man mit dem Auswählen eines Gatters aus 216 möglichen Gattern, die zum Kombinieren von vier Hilfsoperanden a1, a2, b1, b2 verwendet werden können.
  • Dann wird eine bestimmte Kombination aus Hilfsoperanden am Anfang eines ersten Operationszyklus und am Anfang eines zweiten Operationszyklus ausgewählt. Dann, wie durch 32 in 3 angezeigt ist, wird der Energieverbrauch, d. h. die Glitches für diese bestimmte Kombination aus Hilfsoperanden am Anfang des ersten und zweiten Operationszyklus unter Verwendung der Gatterkombinationsregel bestimmt, die bei Schritt 30 ausgewählt wird. Zusätzlich dazu werden die Glitches für jede und jegliche mögliche Konstellation φ bestimmt, d. h. für jede und jegliche mögliche Reihenfolge der Hilfsoperanden. Es ist wichtig, dass die unterschiedlichen Konstellationen der Operanden nicht nur auf alle möglichen Permutationen der Hilfsoperanden bei den zwei Operationszyklen beschränkt sind, sondern ferner den Fall umfassen, bei dem alle Hilfsoperanden oder eine Teilgruppe von Hilfsoperanden an dem Eingang des Gatters gleichzeitig ankommen, d. h. zu demselben genauen Zeitpunkt.
  • Der Schritt 32 führt zu einer Glitch-Darstellung für jede Konstellation des Vorkommens einer bestimmten Hilfsoperandenkombination bei dem ersten und zweiten Operationszyklus. Dann wird ein globales Energiemaß, wie durch Gleichung 21 oben bestimmt wurde, bestimmt. Bezug nehmend auf 2c bedeutet dies, dass alle Energieparameter Egij summiert werden, um zu einem Gesamtenergiewert für eine Konstellation eines Vorkommens zu führen. Dann werden die Gesamtwerte aller unterschiedlichen Konstellationen summiert, um zu dem Wert zu führen, der durch Gleichung 21 bestimmt wird. Dieser Wert ist das globale Energiemaß. Wenn dieser Wert durch die Anzahl von möglichen Konstellationen geteilt wird, wird der durchschnittliche Energieverbrauch erhalten. Somit wird das globale Energiemaß, wie durch Schritt 34 bestimmt wird, für ein Gatter hergeleitet, das bei Schritt 30 ausgewählt wird, und für eine Kombination aus Hilfsparametern und für eine bestimmte Kombination aus Hilfsparametern am Anfang des ersten und zweiten Operationszyklus.
  • Alternativ oder zusätzlich führt Schritt 34 ferner zu einem lokalen Energiemaß, wenn das Summieren der Energien nicht für einen kompletten Zyklus, sondern individuell pro Glitch ausgeführt wird. Das lokale Energiemaß wird hergeleitet, wie in Gleichung 22 gezeigt ist. In diesem Fall wird eine lokale Energie pro Glitch erhalten, d. h. bei diesem Beispiel vier Werte.
  • Dann wird bei Schritt 36 das Verfahren der Schritte 32 und 34 für alle unterschiedlichen Kombinationen für das Gatter wiederholt, das bei Schritt 30 ausgewählt wurde.
  • Ferner werden die Verfahren bei Schritten 32, 34 und 36 für jedes andere Gatter der 216 möglichen Gatter ausgeführt, so dass nach Schritt 36 ein globales Energiemaß für jede Kombination aus Hilfsoperanden und für jedes Gatter vorliegt. Dann werden bei Schritt 38 die Energiemaße für jedes Gatter miteinander verglichen. Wenn die Energiemaße für jede Kombination aus Hilfsoperanden im Wesentlichen gleich zueinander sind, dann weist dieses Gatter keinen Seitenkanal bei Vorhandensein von Glitches auf. Wenn sich jedoch herausstellt, dass das Energiemaß für eine bestimmte Kombination aus Hilfsoperanden unterschiedlich von einem Energiemaß für eine unterschiedliche Kombination aus Hilfsoperanden ist, hat sich herausgestellt, dass dieses bestimmte Gatter tatsächlich einen Seitenkanal aufweist, der für einen Differenzial-Leistungsanalyse-Angriff verwendet werden könnte.
  • Natürlich könnte Schritt 38 nicht nur für die globalen Energiemaße, sondern auch für die lokalen Energiemaße ausgeführt werden. Wenn Schritt 38 für jedes Gatter ausgeführt wird, werden an einem Ausgang die Gatter empfangen, die durch die logische Funktionen von 4a und 4b bestimmt werden.
  • Es wird hier darauf hingewiesen, dass die Logikgatter, die durch 4a und 4b bestimmt werden, DPA-sicher bei Vorhandensein von Glitches sind, unabhängig von den bestimmten Werten der Übergangsenergien Egij (i, j kann 0 oder 1 sein).
  • Wenn jedoch eine bestimmte Schaltungstechnik zur Hand ist, bei der weitere Abhängigkeiten zwischen den Werten Egij gegeben sein können, wie z. B. dass die Übergangsenergie von 1 zu 0 und umgekehrt gleich zueinander sind, oder dass die Übergangsenergien zwischen 0 und 0 oder 1 und 1 gleich zueinander sind, ist die Anzahl von DPA-sicheren Logikgattern sogar noch größer, als in 4a und 4b gegeben ist, da der Durchschnittsenergieverbrauch von beiden Logikgattern im Wesentlichen gleich für eine Mehrzahl von Kombinationen von Hilfsoperanden am Anfang eines ersten Operationszyklus und am Anfang eines zweiten Operationszyklus ist, wobei die Durchschnittsenergie aus einer Mehrzahl von unterschiedlichen Reihenfolgen von Vorkommnissen des ersten bis vierten Hilfsoperanden hergeleitet ist.
  • Vorzugsweise umfasst das erste Logikgatter 12 nur die lineare Kombination zwischen zwei Hilfsoperanden, wobei zwei Hilfsoperanden einen Hilfsoperanden aus jedem Originaloperanden umfassen. Es hat sich herausgestellt, dass, wenn lineare Kombinationen aus Hilfsoperanden ausgeführt werden, kein DPA-Problem im Hinblick auf Glitches existiert. Das zweite Logikgatter ist jedoch unter Verwendung einer Booleschen Funktion aus 4b aufgebaut.
  • Nachfolgend wird die Konstruktion von nichtlinearen Operationen AND, OR, NAND, NOR im Hinblick auf 5, 6, 7 und 8 erörtert.
  • 5 stellt alle bevorzugten, möglichen Implementierungen des ersten Logikgatters 12 und des zweiten Logikgatters 14 unter Verwendung der Booleschen Funktionen aus 4b zum Erzeugen eines maskierten AND-Gatters dar. Der Ausgangswert c1, wie er durch die Logikgatterregel g1 bestimmt wird, wenn er einer XOR-Operation durch den Ausgangswert c2 unterzogen wird, wie er durch die Gatterregel g2 bestimmt wird, führt zu dem Ergebnisoperanden c.
  • 6 stellt acht mögliche Implementierungen eines OR-Gatters dar. 6 ist unterschiedlich von 5, insofern, dass die Eingangsoperanden in das lineare Gatter komplementär zu den linearen Termen bei dem nichtlinearen Gatter sind. Wenn z. B. das erste Gatter betrachtet wird, wird deutlich, dass eine OR-Kombination dadurch implementiert werden kann, dass „a1 + b1" durch den Term „a2 + b2" bei dem linearen Gatter ersetzt wird, während das nichtlineare Gatter nicht geändert wird.
  • Wenn 7 und 8 betrachtet werden, wird deutlich, dass das komplementäre Gatter, wie z. B. NAND (7) oder NOR (8), durch Invertieren des Ausgangs von einem Gatter erhalten wird. Das Invertieren des Ausgangs von einem Gatter wird erreicht durch eine XOR-Operation des Werts „1", wie in der Technik bekannt ist. Wenn somit das erste Gatter in 7 betrachtet wird, wird deutlich, dass keine Änderungen an dem linearen Gatter g1 vorliegen, während eine „1" zu dem entsprechenden nichtlinearen Gatter g2 in 5 XOR-verknüpft wurde.
  • Im Allgemeinen wird aus 5 bis 8 deutlich, dass das nichtlineare Gatter g2 eines der Gatter ist, die in 4b gezeigt sind.
  • 9a zeigt eine Implementierung der Logikgatterregel aus 4b, wo vier AND-Gatter vorliegen, ein XOR-Gatter die Ausgabe der AND-Gatter sammelt und ein abschließendes XOR-Gatter bestimmte Hilfsoperanden oder den Wert von „1" addiert.
  • Das lineare Gatter 12 aus 1a kann implementiert sein, wie in 9b gezeigt ist, wobei die Verwendung des tatsächlichen Hilfsoperanden durch die bestimmte nichtlineare Kombination bestimmt wird.
  • Im Hinblick auf eine praktische Implementierung des ersten Logikgatters 12 und des zweiten Logikgatters 14 aus 1a wird darauf hingewiesen, dass so viele gemeinsame Transistoren wie möglich für beide Logikgatter verwendet werden sollten. Diese Implementierung stellt sicher, dass die Einschränkungen für die Semi-Glitch-Äquivarianz, wie z. B. die Gatterverzögerungsanforderungen und die Leitwegführungs-/Kapazitäts-Anforderungen, bei dem bevorzugten Ausführungsbeispiel so genau wie möglich realisiert sind.
  • Ferner wird darauf hingewiesen, dass, wie in 1b gezeigt ist, die vorliegende Erfindung besonders geeignet zum Ausführen jeglicher Kombinationen einer Anzahl von Operanden ist, da z. B. die Kombination aus drei Operanden a, b, c in eine Kombination aus zwei Operanden, um Zwischenoperanden (d1, d2) zu erhalten, und eine Kombination dieser Zwischenoperanden mit dem dritten Operanden, dargestellt durch c1 und c2, unterteilt werden kann. Jede Vorrichtung 10 in 1b weist wiederum ein erstes Logikgatter (g11 und g21) und ein zweites Logikgatter (g12 und g22) auf, wobei vorzugsweise das zweite Logikgatter jeder Vorrichtung 10 die Logikgatterregel aus 4b umfasst, um DPA-sicher bei Vorhandensein von Glitches zu sein.
  • 1c ist ein schematisches Diagramm einer Lifting-Darstellung in zwei Logikgatter einer logischen Operation mit drei Operanden, dargestellt durch sechs Hilfsoperanden a1, a2, b1, b2, c1, c2. 4c zeigt einen Satz aus Logikgatterdefinitionsregeln für die Logikgatter g1 und g2 aus 1c. Jedes des ersten und des zweiten Logikgatters ist entworfen, um eine Kombinationsregel zu erfüllen, die aus der Tabelle in 4c erhalten wird, oder um eine Kombinationsregel zu erfüllen, die aus der Tabelle aus Kombina tionsregeln erhalten wird, durch Austauschen von a1 und a2, Austauschen von b1 und b2, Austauschen von c1 und c2, Permutieren der drei Paare (a1, a2), (b1, b2) und (c1, c2), Invertieren von a1 oder a2, Invertieren von b1 oder b2, Invertieren von c1 oder c2 oder Addieren (modulo 2) von „1" zu dem Ergebnis einer Kombinationsregel (Regelergebnis).
  • Normalerweise wählt ein Schaltungsentwerfer eine bestimmte logische Operation aus, die durch die Lifting-Darstellung ausgeführt werden soll, d. h. die Gatter g1 und g2. Dann wählt der Schaltungsentwerfer eine Gatterregel aus der Tabelle oder hergeleitet aus der Tabelle durch die erwähnten Operationen als das erste Gatter g1 aus. Dann berechnet der Entwerfer die erforderliche Logikregel für das zweite Gatter g2. Schließlich prüft der Entwerfer, ob das berechnete zweite Gatter g2 in der Tabelle umfasst ist oder aus der Tabelle durch die erwähnte Operation hergeleitet werden kann. Wenn die Prüfung positiv ist, hat der Entwerfer eine Glitch-resistente Lifting-Darstellung gefunden. Wenn nicht, muss der Entwerfer unter Verwendung einer unterschiedlichen Gatterregel für Gatter g1 neu beginnen und muss die Prüfung wiederholen, bis eine Glitch-resistente Darstellung gefunden wurde.
  • Abhängig von bestimmten Implementierungsanforderungen der erfindungsgemäßen Verfahren können die erfindungsgemäßen Verfahren in Hardware oder in Software implementiert sein. Die Implementierung kann unter Verwendung eines digitalen Speichermediums ausgeführt werden, insbesondere einer Platte, DVD oder einer CD, die elektronisch lesbare Steuersignale gespeichert auf derselben aufweist, die mit einem programmierbaren Computersystem derart zusammenarbeiten, dass die erfindungsgemäßen Verfahren ausgeführt werden. Im Allgemeinen ist die vorliegende Erfindung daher ein Computerprogrammprodukt mit einem Programmcode, der auf einem maschinenlesbaren Träger gespeichert ist, wobei der Programmcode wirksam ist, um die erfindungsgemäßen Verfahren auszuführen, wenn das Computerprogrammprodukt auf einem Computer läuft. Anders ausgedrückt sind die erfindungsgemäßen Verfahren daher ein Computerprogramm mit einem Programmcode zum Ausführen von zumindest einem der erfindungsgemäßen Verfahren, wenn das Computerprogramm auf einem Computer läuft.
  • Während das Vorangehende detailliert Bezug nehmend auf bestimmte Ausführungsbeispiele gezeigt und beschrieben wurde, werden Fachleute auf dem Gebiet erkennen, dass verschiedene andere Änderungen an Form und Detail ausgeführt werden können, ohne von dem Wesen und dem Schutzbereich derselben abzuweichen. Es wird darauf hingewiesen, dass verschiedene Änderungen beim Anpassen an unterschiedliche Ausführungsbeispiele ausgeführt werden können, ohne von den umfassenden Konzepten abzuweichen, die hierin offenbart sind und durch die nachfolgenden Ansprüche eingeschlossen sind.
  • Verweise
    • 1. M.-L. Akkar und C. Giraud: An Implementation of DES and AES, Secure against Some Attacks, Cryptographic Hardware and Embedded Systems – CHES 2001, (C.K. Koc, D. Naccache und C. Paar, Eds.), Lecture Notes in Computer Science, Bd. 2.162, Seiten 309–318, Springer, 2001.
    • 2. M.-L. Akkar, R. Bevan, L. Goubin: Two Power Analysis Attacks against One-Mask Methods, 11th International Workshop on Fast Software Encryption – FSE 2004, (B.K. Roy und W. Meier, Eds.), Lecture Notes in Computer Science, Bd. 3.017, Seiten 332–347, Springer, 2004.
    • 3. R. Bevan und E. Knudsen: Ways to Enhance Differential Power Analysis, ICISC 2002, (P.J. Lee und C.H. Lim, Eds.), Lecture Notes in Computer Science, Bd. 2.587, Seiten 327–342, Springer, 2003.
    • 4. J. Blömer, J.G. Merchan und V. Krummel: Provably Secure Masking of AES, Selected Areas in Cryptography – SAC 2004, Lecture Notes in Computer Science, Bd. 3.357, Seiten 69–83, Springer, 2004.
    • 5. S. Chari, C.S. Jutla, J.R. Rao und P. Rohatgi: Towards Sound Approaches to Counteract Power-Analysis Attacks, Advances in Cryptology – CRYPTO'99, (M.J. Wiener, Ed.), Lecture Notes in Computer Science, Bd. 1.666, Seiten 398–412, Springer, 1999.
    • 6. C. Clavier, J.-S. Coron und N. Dabbous: Differential Power Analysis in the Presence of Hardware Countermeasures, Cryptographic Hardware and Embedded Systems – CHES 2000, (C.K. Koc und C. Paar, Eds.), Lecture Notes in Computer Science, Bd. 1.965, Seiten 252–263, Springer, 2000.
    • 7. J.-S. Coron: Resistance against Differential Power Analysis for Elliptic Curve Cryptosystems, Cryptographic Hardware and Embedded Systems – CHES 1999, (C.K. Koc und C. Paar, Eds.), Lecture Notes in Computer Science, Bd. 1.717, Seiten 292–302, Springer, 1999.
    • 8. J.D. Golic: DeKaRT: A New Paradigm for Key-Dependent Reversible Circuits, Cryptographic Hardware and Embedded Systems – CHES 2003, (C.D. Walter, C.K. Koc und C. Paar, Eds.), Lecture Notes in Computer Science, Bd. 2.779, Seiten 98–112, Springer, 2003.
    • 9. J.D. Golic und R. Menicocci: Universal Masking on Logic Gate Level, Electronics Letters 40(9), Seiten 526–527 (2004).
    • 10. J. D. Golic und C. Tymen: Multiplicative Masking and Power Analysis of AES, Cryptographic Hardware and Embedded Systems – CHES 2002, (B.S. Kaliski Jr., C.K. Koc und C. Paar, Eds.), Lecture Notes in Computer Science, Bd. 2.535, Seiten 198–212, Springer, 2003.
    • 11. L. Goubin und J. Patarin: DES and Differential Power Analysis – The Duplication Method, Cryptographic Hardware and Embedded Systems – CHES 1999, (C.K. Koc und C. Paar, Eds.), Lecture Notes in Computer Science, Bd. 1.717, Seiten 158–172, Springer, 1999.
    • 12. Y. Ishai, A. Sahai und D. Wagner: Private Circuits: Securing Hardware against Probing Attacks, Advances in Cryptology – CRYPTO 2003, (D. Boneh, Ed.), Lecture Notes in Computer Science, Bd. 2.729, Seiten 463–481, Springer, 2003.
    • 13. P.C. Kocher, J. Jaffe und B. Jun: Differential Power Analysis, Advances in Cryptology – CRYPTO'99, (M.J. Wiener, Ed.), Lecture Notes in Computer Science, Bd. 1.666, Seiten 388–397, Springer, 1999.
    • 14. S. Mangard: Hardware Countermeasures against DPA – A Statistical Analysis of Their Effectiveness, Topics in Cryptology – CT-RSA 2004, (T. Okamoto, Ed.), Lecture Notes in Computer Science, Bd. 2.964, Seiten 222–235, Springer, 2004.
    • 15. S. Mangard, T. Popp, B.M. Gammel: Side-Channel Leakage of Masked CMOS Gates, Topics in Cryptology – CT-RSA 2005, (A. Menezes, Ed.), Lecture Notes in Computer Science, Bd. 3.376, Seiten 351–365, Springer, 2005.
    • 16. T.S. Messerges: Securing the AES Finalists Against Power Analysis Attacks, 7th International Workshop on Fast Software Encryption – FSE 2000, (B. Schneier, Ed.), Lecture Notes in Computer Science, Bd. 1.978, Seiten 150–164, Springer, 2001.
    • 17. T.S. Messerges, E.A. Dabbish und L. Puhl: Method and Apparatus for Preventing Information Leakage Attacks on a Microelectronic Assembly, U.S.-Patent 6,295,606, 25. Sept. 2001, erhältlich unter http://www.uspto.gov/.
    • 18. T.S. Messerges, E.A. Dabbish und R.H. Sloan: Power Analysis Attacks of Modular Exponentiation in Smartcards, Cryptographic Hardware and Embedded Systems – CHES 1999, (C.K. Koc und C. Paar, Eds.), Lecture Notes in Computer Science, Bd. 1.717, Seiten 144–157, Springer, 1999.
    • 19. T.S. Messerges, E.A. Dabbish und R.H. Sloan: Examining Smart-Card Security under the Threat of Power Analysis Attacks, IEEE Transactions on Computers, 51(5), Seiten 541–552, 2002.
    • 20. B. Preneel, R. Govaerts, J. Vundewalle: Boolean Functions Satisfying Higher Order Propagation Criteria, Advances in Cryptology – EUROCRYPT'91, (D.W. Davies, Ed.), Lecture Notes in Computer Science, Bd. 547, Seiten 141–152, Springer, 1991.
    • 21. J.M. Rabaey: Digital Integrated Circuits, Prentice Hall, 1996, ISBN 0-13-178609-1.
    • 22. A. Shamir: Protecting Smart Cards from Passive Power Analysis with Detached Power Supplies, Cryptographic Hardware and Embedded Systems – CHES 2000, (C.K. Koc und C. Paar, Eds.), Lecture Notes in Computer Science, Bd. 1.965, Seiten 71–77, Springer, 2000.
    • 23. D. Suzuki, M. Saeki und T. Ichikawa: Random Switching Logic: A Countermeasure against DPA based on Transi tion probability, Cryptology ePrint Archive, Report 2004/346 (http://eprint.iacr.org/).
    • 24. K. Tiri und I. Verbauwhede: Securing Encryption Algorithms against DPA at the Logic Level: Next Generation Smart Card Technology, Cryptographic Hardware and Embedded Systems – CHES 2003, (C.D. Walter, C.K. Koc, und C. Paar, Eds.), Lecture Notes in Computer Science, Bd. 2.779, Seiten 137–151, Springer, 2003.
    • 25. K. Tiri und I. Verbauwhede: A Logic Level Design Methodology for a Secure DPA Resistant ASIC or FPGA Implementation, Proc. of Design, Automation and Test in Europe Conference – DATE 2004, IEEE Computer Society, Seiten 246–251, 2004.
    • 26. E. Trichina: Combinational Logic Design for AES Sub-Byte Transformation on Masked Data, Cryptology ePrint Archive, Report 2003/236 (http://eprint.iacr.org/).
    • 27. E. Trichina und T. Korkishko: Small Size, Low Power, Side Channel-Immune AES Coprocessor: Design and Synthesis Results, Proc. of the Fourth Conference on the Advanced Encryption Stundard (AES), Bonn, Germany, Mai 2004.
    • 28. E. Trichina, D. De Seta und L. Germani: Simplified Adaptive Multiplicative Masking for AES, Cryptographic Hardware and Embedded Systems – CHES 2002, (B.S. Kaliski Jr., C.K. Koc und C. Paar, Eds.), Lecture Notes in Computer Science, Bd. 2535, Seiten 187–197, Springer, 2003.

Claims (20)

  1. Vorrichtung zum Berechnen einer Darstellung eines Ergebnisoperanden einer nichtlinearen logischen Operation zwischen zumindest einem ersten Operanden und einem zweiten Operanden, wobei der erste Operand durch einen ersten Hilfsoperanden und einen zweiten Hilfsoperanden dargestellt ist, wobei der erste und der zweite Hilfsoperand zu dem ersten Operanden führen, wenn sie unter Verwendung einer linearen Kombination kombiniert werden, wobei der zweite Operand durch einen dritten Hilfsoperanden und einen vierten Hilfsoperanden dargestellt ist, wobei der dritte und vierte Hilfsoperand zu dem zweiten Operanden führen, wenn sie unter Verwendung einer linearen Kombination kombiniert werden, wobei die Vorrichtung folgende Merkmale aufweist: ein erstes Logikgatter zum Berechnen eines fünften Hilfsoperanden basierend auf zumindest zwei Hilfsoperanden, wobei die zumindest zwei Hilfsoperanden entweder den ersten oder zweiten Hilfsoperanden und entweder den dritten oder vierten Hilfsoperanden umfassen; ein zweites Logikgatter zum Berechnen eines sechsten Hilfsoperanden basierend auf zumindest dem ersten bis vierten Hilfsoperanden, wobei das erste und zweite Logikgatter derart entworfen sind, dass der fünfte und sechste Hilfsoperand, wenn sie linear kombiniert sind, zu dem Ergebnisoperanden führen, und wobei das erste und zweite Logikgatter derart entworfen sind, dass ein durchschnittlicher Energieverbrauch des ersten Logikgatters oder ein durchschnittlicher Energieverbrauch des zweiten Logikgatters im Wesentlichen gleich für eine Mehrzahl von Kombinationen von Hilfsoperanden am Anfang des ersten Operationszyklus und Hilfsoperanden am Anfang eines zweiten Operationszyklus sind, wobei die Durchschnittsenergie aus einer Mehrzahl von unterschiedlichen Reihenfolgen von Vorkommnissen des ersten bis vierten Hilfsoperanden herleitbar ist.
  2. Vorrichtung gemäß Anspruch 1, bei der das erste Logikgatter nur lineare Kombinationen zwischen zumindest zwei Hilfsoperanden umfasst, und bei der das zweit Logikgatter gemäß einer Logikkombinationsregel entworfen ist, die nichtlineare Kombinationen aus zumindest zwei Hilfsoperanden umfasst.
  3. Vorrichtung gemäß Anspruch 1, bei der das erste Logikgatter und das zweite Logikgatter auf Transistorebene derart implementiert sind, dass eine Mehrzahl von Transistoren gemeinsam für das erste Logikgatter und das zweite Logikgatter verwendet werden.
  4. Vorrichtung gemäß Anspruch 2, bei der das zweite Logikgatter eine nichtlineare Operation zwischen jedem des ersten und zweiten Hilfsoperanden und jedem des dritten und vierten Hilfsoperanden umfasst.
  5. Vorrichtung gemäß Anspruch 1, bei der das zweite Logikgatter eine XOR-Addition des Werts „1" umfasst.
  6. Vorrichtung gemäß Anspruch 4, bei der die nichtlineare Kombination eine AND-Kombination ist.
  7. Vorrichtung gemäß Anspruch 1, bei der die lineare Kombination für den ersten Operanden oder den zweiten Operanden oder den Ergebnisoperanden eine XOR- oder XNOR-Operation ist.
  8. Vorrichtung gemäß Anspruch 1, bei der die nichtlineare logische Operation eine AND-, OR-, NAND- oder NOR-Operation ist.
  9. Vorrichtung gemäß Anspruch 1, bei der das zweite Logikgatter entworfen ist, um eine der nachfolgenden Kombinationsregeln zu erfüllen:
    Figure 00500001
    wobei c gleich 0 oder gleich 1 sein kann, wobei a1 der erste Hilfsoperand ist, wobei a2 der zweite Hilfsoperand ist, wobei b1 der dritte Hilfsoperand ist und wobei b2 der vierte Hilfsoperand ist, und wobei „+" eine XOR-Kombination ist.
  10. Vorrichtung gemäß Anspruch 1, bei der das zweite Logikgatter entworfen ist, um eine der nachfolgenden Kombinationsregeln zu erfüllen:
    Figure 00500002
    wobei c gleich 0 oder gleich 1 sein kann, wobei a1 der erste Hilfsoperand ist, wobei a2 der zweite Hilfsoperand ist, wobei b1 der dritte Hilfsoperand ist und wobei b2 der vierte Hilfsoperand ist, und wobei „+" eine XOR-Kombination ist.
  11. Vorrichtung gemäß Anspruch 1, bei der die logische Funktion drei Operanden umfasst, wobei der dritte Operand durch einen fünften Hilfsoperanden und einen sechsten Hilfsoperanden dargestellt ist, wobei der fünfte und sechste Hilfsoperand zu dem dritten Operanden führen, wenn sie unter Verwendung einer linearen Kombination kombiniert werden, und bei der jedes des ersten und des zweiten Logikgatters entworfen ist, um Kombinationsregeln aus der nachfolgenden Tabelle aus Kombinationsregeln zu erfüllen:
    Figure 00510001
    Figure 00520001
    wobei c1 der fünfte Hilfsoperand ist, wobei c2 der sechst Hilfsoperand ist, wobei a1 der erste Hilfsoperand ist, wobei a2 der zweite Hilfsoperand ist, wobei b1 der dritte Hilfsoperand ist und wobei b2 der vierte Hilfsoperand ist, und wobei „+" eine XOR-Kombination ist und wobei * eine AND-Operation ist, oder bei der jedes des ersten und des zweiten Logikgatters entworfen ist, um eine Kombinationsregel zu erfüllen, die aus der Tabelle aus Kombinationsregeln durch eine der nachfolgenden Kombinationen oder eine zufällige Kombination der nachfolgenden Kombinationsregeln erhalten wird: Austauschen von a1 und a2, Austauschen von b1 und b2, Austauschen von c1 und c2, Permutieren der drei Paare (a1, a2), (b1, b2) und (c1, c2), Invertieren von a1 oder a2, Invertieren von b1 oder b2, Invertieren von c1 oder c2, und Addition von 1 zu einem Regelergebnis.
  12. Vorrichtung gemäß Anspruch 1, bei der das erste Logikgatter derart entworfen ist, dass ein durchschnittlicher Energieverbrauch des ersten Logikgatters für eine Mehrzahl von Kombinationen aus Hilfsoperanden am Anfang des ersten Operationszyklus und Hilfsoperanden am Anfang eines zweiten Operationszyklus im Wesentlichen gleich ist, wobei die durchschnittliche Energie aus einer Mehrzahl von unterschiedlichen Reihenfolgen von Vorkommnissen des ersten bis vierten Hilfsoperanden herleitbar ist, und bei der das zweite Logikgatter derart entworfen ist, dass ein durchschnittlicher Energieverbrauch des zweiten Logikgatters für eine Mehrzahl von Kombinationen aus Hilfsoperanden am Anfang des ersten Operationszyklus und Hilfsoperanden am Anfang eines zweiten Operationszyklus im Wesentlichen gleich ist, wobei die durchschnittliche Energie aus einer Mehrzahl von unterschiedlichen Reihenfolgen von Vorkommnissen des ersten bis vierten Hilfsoperanden herleitbar ist.
  13. Vorrichtung gemäß Anspruch 1, bei der das erste und zweite Logikgatter auf Transistorebene implementiert sind, um im Wesentlichen dieselbe kapazitive Last aufzuweisen.
  14. Vorrichtung gemäß Anspruch 1, bei der das erste und zweite Logikgatter auf Transistorebene implementiert sind, um im Wesentlichen dieselbe Gatterverzögerung aufzuweisen.
  15. Vorrichtung gemäß Anspruch 1, bei der das erste und zweite Logikgatter auf Transistorebene entworfen sind, um im Wesentlichen dieselben Ausbreitungszeiten für den ersten und zweiten Hilfsoperanden oder für den dritten und vierten Hilfsoperanden aufzuweisen.
  16. Vorrichtung gemäß Anspruch 1, bei der das erste und zweite Logikgatter auf Transistorebene entworfen ist, so dass das Paar des ersten und zweiten Hilfsoperanden oder das Paar des dritten und vierten Hilfsoperanden dieselbe Gattertiefe bei den Logikgattern aufweisen.
  17. Vorrichtung gemäß Anspruch 1, bei der das erste und zweite Logikgatter in einer CMOS-Schaltungstechnik entworfen sind.
  18. Vorrichtung gemäß Anspruch 1, bei der das erste Logikgatter unter Verwendung von einer der nachfolgenden Kombinationsregeln implementiert ist: a1 + b1 + c a1 + b2 + c a2 + b1 + c a2 + b2 + c wobei a1 der erste Hilfsparameter ist, wobei a2 der zweite Hilfsparameter ist, wobei b1 der dritte Hilfsparameter ist und wobei b2 der vierte Hilfsparameter ist und wobei c gleich 0 oder gleich 1 ist und wobei „+" eine XOR-Kombination ist.
  19. Verfahren zum Berechnen einer Darstellung eines Ergebnisoperanden einer nichtlinearen, logischen Operation zwischen zumindest einem ersten Operanden und einem zweiten Operanden, wobei der erste Operand durch einen ersten Hilfsoperanden und einen zweiten Hilfsoperanden dargestellt ist, wobei der erste und der zweite Hilfsoperand zu dem ersten Operanden führen, wenn sie unter Verwendung einer linearen Kombination kombiniert werden, wobei der zweite Operand durch einen dritten Hilfsoperanden und einen vierten Hilfsoperanden dargestellt ist, wobei der dritte und vierte Hilfsoperand zu dem zweiten Operanden führen, wenn sie unter Verwendung einer linearen Kombination kombiniert werden, wobei das Verfahren folgende Schritte aufweist: Berechnen eines fünften Hilfsoperanden basierend auf zumindest zwei Hilfsoperanden unter Verwendung eines ersten Logikgatters, wobei die zumindest zwei Hilfsoperanden entweder den ersten oder zweiten Hilfsope randen und entweder den dritten oder vierten Hilfsoperanden umfassen; Berechnen eines sechsten Hilfsoperanden basierend auf zumindest dem ersten bis vierten Hilfsoperanden unter Verwendung eines zweiten Logikgatters, wobei das erste und zweite Logikgatter derart entworfen sind, dass der fünfte und sechste Hilfsoperand, wenn sie linear kombiniert sind, zu dem Ergebnisoperanden führen, und wobei das erste und zweite Logikgatter derart entworfen sind, dass ein durchschnittlicher Energieverbrauch des ersten oder ein durchschnittlicher Energieverbrauch des zweiten Logikgatters für eine Mehrzahl von Kombinationen von Hilfsoperanden am Anfang des ersten Operationszyklus und Hilfsoperanden am Anfang eines zweiten Operationszyklus im Wesentlichen gleich ist, wobei die durchschnittliche Energie aus einer Mehrzahl von unterschiedlichen Reihenfolgen von Vorkommnissen des ersten bis vierten Hilfsoperanden herleitbar ist.
  20. Computerprogramm mit einem Programmcode zum Ausführen des Verfahrens zum Berechnen einer Darstellung eines Ergebnisoperanden einer nichtlinearen, logischen Operation zwischen zumindest einem ersten Operanden und einem zweiten Operanden, wobei der erste Operand durch einen ersten Hilfsoperanden und einen zweiten Hilfsoperanden dargestellt ist, wobei der erste und der zweite Hilfsoperand zu dem ersten Operanden führen, wenn sie unter Verwendung einer linearen Kombination kombiniert werden, wobei der zweite Operand durch einen dritten Hilfsoperanden und einen vierten Hilfsoperanden dargestellt ist, wobei der dritte und vierte Hilfsoperand zu dem zweiten Operanden führen, wenn sie unter Verwendung einer linearen Kombination kombiniert werden, wenn das Computerprogramm auf einem Computer läuft, wobei das Verfahren folgende Schritte aufweist: Berechnen eines fünften Hilfsoperanden basierend auf zumindest zwei Hilfsoperanden unter Verwendung eines ersten Logikgatters, wobei die zumindest zwei Hilfsoperanden entweder den ersten oder zweiten Hilfsoperanden und entweder den dritten oder vierten Hilfsoperanden umfassen; Berechnen eines sechsten Hilfsoperanden basierend auf zumindest dem ersten bis vierten Hilfsoperanden unter Verwendung eines zweiten Logikgatters, wobei das erste und zweite Logikgatter derart entworfen sind, dass der fünfte und sechste Hilfsoperand, wenn sie linear kombiniert sind, zu dem Ergebnisoperanden führen, und wobei das erste und zweite Logikgatter derart entworfen sind, dass ein durchschnittlicher Energieverbrauch des ersten oder ein durchschnittlicher Energieverbrauch des zweiten Logikgatters für eine Mehrzahl von Kombinationen von Hilfsoperanden am Anfang des ersten Operationszyklus und Hilfsoperanden am Anfang eines zweiten Operationszyklus im Wesentlichen gleich ist, wobei die durchschnittliche Energie aus einer Mehrzahl von unterschiedlichen Reihenfolgen von Vorkommnissen des ersten bis vierten Hilfsoperanden herleitbar ist.
DE102006009239A 2005-03-01 2006-02-28 Vorrichtung und Verfahren zum Berechnen einer Darstellung eines Ergebnis-Operanden Expired - Fee Related DE102006009239B4 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US65768505P 2005-03-01 2005-03-01
US60/657,685 2005-03-01
US11/187,039 US7610628B2 (en) 2005-03-01 2005-07-20 Apparatus and method for calculating a representation of a result operand
US11/187,039 2005-07-20

Publications (2)

Publication Number Publication Date
DE102006009239A1 true DE102006009239A1 (de) 2006-09-14
DE102006009239B4 DE102006009239B4 (de) 2012-03-08

Family

ID=36914911

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102006009239A Expired - Fee Related DE102006009239B4 (de) 2005-03-01 2006-02-28 Vorrichtung und Verfahren zum Berechnen einer Darstellung eines Ergebnis-Operanden

Country Status (4)

Country Link
US (1) US7610628B2 (de)
KR (1) KR100750425B1 (de)
DE (1) DE102006009239B4 (de)
FR (1) FR2884336B1 (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080091975A1 (en) * 2006-10-17 2008-04-17 Konstantin Kladko Method and system for side-channel testing a computing device and for improving resistance of a computing device to side-channel attacks
BRPI0721441B1 (pt) * 2007-03-12 2018-10-30 Incard Sa método e aparelho para detectar correlações entre padrões de sinal
FR2919448B1 (fr) * 2007-07-12 2019-10-11 Arm Limited Dispositif, systeme, et procede de masquage de donnees traitees dans un circuit integre
US8091139B2 (en) * 2007-11-01 2012-01-03 Discretix Technologies Ltd. System and method for masking arbitrary Boolean functions
US8069195B2 (en) * 2008-01-03 2011-11-29 International Business Machines Corporation Method and system for a wiring-efficient permute unit
FR2928060B1 (fr) * 2008-02-25 2010-07-30 Groupe Des Ecoles De Telecommunications Get Ecole Nat Superieure Des Telecommunications Enst Procede de test de circuits de cryptographie, circuit de cryptographie securise apte a etre teste, et procede de cablage d'un tel circuit.
KR101462742B1 (ko) 2009-10-14 2014-11-17 차오로직스, 아이엔씨. 가변 회로 토폴로지를 가지는 고활용도 범용 로직 어레이 및 상수 전력 특징을 가지는 다양한 로직 게이트를 실현하기 위한 로지스틱 맵 회로
KR101362675B1 (ko) * 2012-11-30 2014-02-12 한국전자통신연구원 저전력 암호화 장치 및 방법
US9143325B2 (en) * 2012-12-14 2015-09-22 Microsoft Technology Licensing, Llc Masking with shared random bits
US9959429B2 (en) 2013-03-15 2018-05-01 Cryptography Research, Inc. Asymmetrically masked multiplication
US10387597B2 (en) * 2013-06-21 2019-08-20 Cryptography Research, Inc. Energy analysis for differential power analysis resistance
CN107005415B (zh) * 2014-12-03 2021-03-23 耐瑞唯信有限公司 用于加密/解密消息的块加密方法及设备
US10243937B2 (en) * 2016-07-08 2019-03-26 Nxp B.V. Equality check implemented with secret sharing
DE102017002153A1 (de) * 2017-03-06 2018-09-06 Giesecke+Devrient Mobile Security Gmbh Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung
CN110364210B (zh) * 2019-07-23 2021-01-29 北京智芯微电子科技有限公司 基于lut结构的双轨预充电and-nand单元
EP3798893B1 (de) * 2019-09-26 2022-12-14 Rambus Inc. Gegen seitenkanalangriffe geschützte gates mit niedriger latenz und verringerter komplexität

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6295606B1 (en) * 1999-07-26 2001-09-25 Motorola, Inc. Method and apparatus for preventing information leakage attacks on a microelectronic assembly
AU762650B2 (en) * 1999-09-29 2003-07-03 Hitachi Limited Device, program or system for processing secret information
JP4086503B2 (ja) * 2002-01-15 2008-05-14 富士通株式会社 暗号演算装置及び方法並びにプログラム
DE10227618B4 (de) * 2002-06-20 2007-02-01 Infineon Technologies Ag Logikschaltung
JP2004053814A (ja) * 2002-07-18 2004-02-19 Fujitsu Ltd 楕円曲線暗号装置及び楕円曲線暗号演算方法
DE10244738B3 (de) * 2002-09-25 2004-03-04 Infineon Technologies Ag Vorrichtung und Verfahren zum Umsetzen und Addierer
JP3819872B2 (ja) * 2003-05-23 2006-09-13 株式会社東芝 論理演算装置
DE102004018874B4 (de) * 2004-04-19 2009-08-06 Infineon Technologies Ag Verfahren und Vorrichtung zum Bestimmen eines Ergebnisses
US7240304B2 (en) * 2004-05-04 2007-07-03 Freescale Semiconductor, Inc. Method for voltage drop analysis in integreted circuits

Also Published As

Publication number Publication date
FR2884336B1 (fr) 2012-12-14
FR2884336A1 (fr) 2006-10-13
US7610628B2 (en) 2009-10-27
KR100750425B1 (ko) 2007-08-21
KR20060096912A (ko) 2006-09-13
US20060200514A1 (en) 2006-09-07
DE102006009239B4 (de) 2012-03-08

Similar Documents

Publication Publication Date Title
DE102006009239B4 (de) Vorrichtung und Verfahren zum Berechnen einer Darstellung eines Ergebnis-Operanden
DE69828787T2 (de) Verbessertes verfahren und vorrichtung zum schutz eines verschlüsselungsverfahrens mit öffentlichem schlüssel gegen angriffe mit zeitmessung und fehlereinspeisung
DE102005056814B4 (de) Kryptografiesystem und Datenverschlüsselungsverfahren
Nikova et al. Threshold implementations against side-channel attacks and glitches
DE69838835T2 (de) Verfahren zur Prüfung und zur Darstellung einer Hardware durch Zerlegung und Aufteilung
DE60101147T2 (de) Mikroprozessor beständig gegen eine energie-analyse
EP1891512B1 (de) Bestimmung einer modularen inversen
DE602004013206T2 (de) Verfahren und diesbezügliche einrichtung zur hardwareorientierten umsetzung zwischen arithmetik- und boolscher zufallsmaskierung
DE102006004557A1 (de) Kryptografische Logikschaltung und Kryptografieverfahren
EP3593483B1 (de) Übergang von einer booleschen maskierung zu einer arithmetischen maskierung
WO2007112791A1 (de) Verfahren zum sicheren ermitteln von daten
DE102008051447B4 (de) Verfahren und Vorrichtung zum Schützen einer RSA-Berechnung an einer Ausgabe mit Hilfe des chinesischen Restsatzes
DE102010029735A1 (de) Verfahren zum Generieren eines Bitvektors
DE60204955T2 (de) Gegenmassnahmen in einem elektronischen baustein zur ausführung eines krypto-algorithmus mit auf elliptischen kurven basierendem öffentlichen schlüssel
DE10304451B3 (de) Modulare Exponentiation mit randomisiertem Exponenten
DE60036928T2 (de) Gegenmassnahmeverfahren in einem elektronischen baustein zur ausführung eines krypto-algorithmus mit geheimschlüssel
DE60217131T2 (de) Universelles berechnungsverfahren für punkte auf einer elliptischen kurve
DE10341096A1 (de) Übergang zwischen maskierten Repräsentationen eines Wertes bei kryptographischen Berechnungen
DE10227618B4 (de) Logikschaltung
EP1478999B1 (de) Vorrichtung und verfahren zum umrechnen eines terms
DE102004009144B4 (de) Logikzelle und Verfahren zum Durchführen einer Dual-Rail-Logikoperation und Speichermedium
WO2003034268A2 (de) Verfahren und vorrichtung zum absichern einer exponentiations-berechnung mittels dem chinesischen restsatz (crt)
DE10219164B4 (de) Vorrichtung und Verfahren zum Berechnen eines ganzzahligen Quotienten
Nie A note on bilevel optimization problems
WO2007006649A1 (de) Verfahren zur seitenkanalangriffsresistenten vervielfachung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R082 Change of representative

Representative=s name: ,

R020 Patent grant now final

Effective date: 20120609

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee