DE102004052196B4 - Ausspähungsgeschütztes Ausführen von Operationen unter Verwendung einer maskenunterstützenden Recheneinheit - Google Patents

Ausspähungsgeschütztes Ausführen von Operationen unter Verwendung einer maskenunterstützenden Recheneinheit Download PDF

Info

Publication number
DE102004052196B4
DE102004052196B4 DE102004052196.4A DE102004052196A DE102004052196B4 DE 102004052196 B4 DE102004052196 B4 DE 102004052196B4 DE 102004052196 A DE102004052196 A DE 102004052196A DE 102004052196 B4 DE102004052196 B4 DE 102004052196B4
Authority
DE
Germany
Prior art keywords
masked
data
input data
arithmetic unit
mask
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE102004052196.4A
Other languages
English (en)
Other versions
DE102004052196A1 (de
Inventor
Dr. Neiße Olaf
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.)
Giesecke and Devrient Mobile Security GmbH
Original Assignee
Giesecke and Devrient GmbH
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 Giesecke and Devrient GmbH filed Critical Giesecke and Devrient GmbH
Priority to DE102004052196.4A priority Critical patent/DE102004052196B4/de
Publication of DE102004052196A1 publication Critical patent/DE102004052196A1/de
Application granted granted Critical
Publication of DE102004052196B4 publication Critical patent/DE102004052196B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/355Personalisation of cards for use
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

Verfahren zum ausspähungsgeschützten Ausführen einer ersten Operation (OP1), bei der erste maskierte Ausgangsdaten (34) aus ersten maskierten Eingangsdaten (32) bestimmt werden, unter Verwendung einer maskenunterstützenden Recheneinheit (36) eines tragbaren Datenträgers (10), wobei die Recheneinheit (36) nicht für die erste Operation (OP1) vorgesehen ist, sondern eine zweite Operation (OP2) ausführt, bei der in Abhängigkeit von Parameterdaten (44, 46) zweite maskierte Ausgangsdaten (40) aus zweiten maskierten Eingangsdaten (38) berechnet werden, mit den Schritten: – Setzen der Parameterdaten (44, 46) zumindest auch in Abhängigkeit von zumindest einem außerhalb des tragbaren Datenträgers (10) vorausberechneten Konfigurationswert (26, 28), – Bestimmen der zweiten maskierten Eingangsdaten (38) zumindest auch in Abhängigkeit von den ersten maskierten Eingangsdaten (32), – Ausführen der zweiten Operation (OP2) durch die Recheneinheit (36), um die zweiten maskierten Ausgangsdaten (40) zu ermitteln, und – Bestimmen der ersten maskierten Ausgangsdaten (34) zumindest auch in Abhängigkeit von den zweiten maskierten Ausgangsdaten (40).

Description

  • Die Erfindung betrifft allgemein das Gebiet der Kryptographie und spezieller das Gebiet des Ausspähungsschutzes von Operationen, die für kryptographische Zwecke verwendet werden. Besonders eignet sich die Erfindung zur Verwendung bei einem tragbaren Datenträger. Ein solcher tragbarer Datenträger kann z. B. eine Chipkarte (Smart Card) in unterschiedlichen Bauformen oder ein Chipmodul oder ein sonstiges ressourcenbeschränktes System sein.
  • Tragbare Datenträger werden oft für sicherheitskritische Anwendungen eingesetzt, beispielsweise zur Authentisierung im Mobilfunk, für Finanztransaktionen, zur elektronischen Unterschrift und so weiter. Da durch eine unbefugte Verwendung hoher Schaden entstehen könnte, müssen die geheimen Daten, die von solchen Datenträgern verarbeitet werden, zuverlässig gegen Ausspähung und Manipulation geschützt werden.
  • Es sind diverse Angriffsverfahren zur Datenausspähung bekannt, bei denen der Informationsfluß nicht über die für den normalen Betrieb des Datenträgers vorgesehenen Kommunikationskanäle verläuft. Solche Verfahren werden daher als Nebenkanalangriffe (Side Channel Attacks) bezeichnet. Beispiele für Nebenkanalangriffe sind sogenannte SPA- bzw. DPA-Angriffe (SPA = Simple Power Analysis; DPA = Differential Power Analysis), bei denen durch Messung der Stromaufnahme des Datenträgers während der Abarbeitung eines Programms Rückschlüsse auf die verarbeiteten Daten gezogen werden. Bei einfachen Nebenkanalangriffen wird ein einziger Berechnungsablauf untersucht, während bei differenziellen Nebenkanalangriffen eine Vielzahl von Meßkurven statistisch analysiert werden. Zusätzlich zum Stromverbrauch oder stattdessen kann auch mindestens ein anderer physikalischer Parameter, z. B. die für die Berechnung benötigte Zeit oder die elektromagnetische Abstrahlung, gemessen und ausgewertet werden.
  • Eine bekannte Technik zur Abwehr von Nebenkanalangriffen ist es, die geheim zu haltenden Daten zu maskieren, also derart zu verfälschen, daß die maskierten Daten statistisch unabhängig von den geheim zu haltenden Daten sind. Kryptographische Berechnungen werden dann mit den maskierten Daten durchgeführt. Selbst wenn es einem Angreifer gelingt, z. B. durch einen Nebenkanalangriff die maskierten Daten zu ermitteln, so können daraus keine Rückschlüsse auf die geheim zu haltenden Daten gezogen werden.
  • Die Maskierung erfolgt durch Anwendung einer Maskierungsfunktion auf die geheim zu haltenden Daten. Meist ist die Maskierungsfunktion gemäß einer vorbestimmten Maskierungsregel mit mindestens einem auch als Maske bezeichneten Maskierungsparameter gebildet. So ist z. B. bei einem als boolesche Maskierung bekannten Verfahren die Maskierungsregel die Exklusiv-Oder-Operation (XOR), bei der ein Operand von der anzuwendenden Maske gebildet wird. Die kryptographische Berechnung wird dann nicht mit dem geheim zu haltenden Wert x, sondern mit dessen maskierter Repräsentation x ⊕ u ausgeführt, wobei ⊕ die Exklusiv-Oder-Operation in Infixschreibweise und u die in der Regel zufällig gewählte Maske bezeichnen.
  • Aus der FR 2850811 A1 ist ein Verfahren zum ausspähungsgeschützten Ausführen einer ersten Operation bekannt, wobei erste maskierte Ausgangsdaten aus Eingangsdaten X bestimmt werden. Weiter wird in Abhängigkeit von maskierten Eingangsdaten sowie einem vorausberechneten Konfigurationswert K eine zweite Operation ausgeführt. Die Operationen werden auf einem tragbaren Datenträger ausgeführt.
  • Das Konzept der Maskierung von Eingangs- und auch von Zwischendaten ist allgemein aus der US 2004/0071288 A1 bekannt. Aus DE 19960047 A1 ist der Vorschlag entnehmbar, eine sichere Bearbeitung von Information in einer kryptographischen Operation zu erreichen, indem die zu bearbeitende Informationen vor der Durchführung der Operation in eine verfremdete Information transformiert und nach Ausführung der Bearbeitung wieder rücktransformiert wird. Weiter ist aus der US 6295606 B1 das Ausführen von ersten und zweiten Operationen bekannt, wobei Eingangsdaten zunächst maskiert werden.
  • Andere an sich bekannte Maskierungsregeln sind die arithmetische Maskierung durch eine modulare Addition oder Subtraktion sowie die multiplikative Maskierung durch eine modulare Multiplikation oder eine IDEA-Multiplikation.
  • Selbst an sich einfache Berechnungen können hohen Aufwand verursachen, wenn sie auf ausspähungsgeschützte Weise mit maskierten Ein- und Ausgangsdaten durchgeführt werden sollen. Insbesondere muß hierbei dafür gesorgt werden, daß alle Zwischenwerte während des gesamten Berechnungsablaufs maskiert oder auf andere Weise gegen Ausspähung geschützt werden. Schon die bei ungeschützter Ausführung triviale Operation eines Tabellenzugriffs wird dadurch zu einem aufwendigen Vorgang, wie er z. B. in WO 03/017067 A2 beschrieben ist. Gemäß WO 03/017067 A2 ist die Erzeugung randomisierter Tabellen vorgesehen, wofür jedoch relativ viel des bei tragbaren Datenträgern knappen Arbeitsspeichers benötigt wird. Ferner ist die Sicherheit des Verfahrens nicht optimal, weil die randomisierten Tabellen mit gleicher Verfälschung mehrfach benutzt werden und dadurch möglicherweise ein Angriffspunkt geschaffen wird.
  • Ein weiteres Beispiel für die durch den Ausspähungsschutz verursachte Komplexität grundlegender Berechnungen ist die Addition zweier Werte, die in einer booleschen Maskierung vorliegen. Da die boolesche Maskierung nicht mit der Addition verträglich ist, muß zunächst für die beiden Summanden je ein Maskierungswechsel von der booleschen zu einer arithmetischen Maskierung durchgeführt werden. Falls das Additionsergebnis in einer booleschen Maskierung benötigt wird, ist ein weiterer Wechsel von der arithmetischen zur booleschen Maskierung erforderlich. Derartige Maskierungswechsel, wie sie z. B. in WO 02/51064 A1 beschrieben sind, sind jedoch relativ rechenaufwendig und könnten möglicherweise ihrerseits Angriffspunkte für eine Datenausspähung liefern.
  • Daher besteht das Problem, Operationen wie z. B. Tabellenzugriffe oder arithmetische Berechnungen auf maskierten Daten sowohl sicher als auch effizient – also mit geringem Speicherplatz- und Rechenaufwand – auszuführen. Besonders schwerwiegend ist dieses Problem bei tragbaren Datenträgern, weil diese nur relativ geringe Speicher- und Rechenressourcen aufweisen. Ferner sind tragbare Datenträger in der Regel besonders angriffsgefährdet, weil sie sich während der Programmausführung in Besitz des potentiellen Angreifers befinden und dieser daher alle Ausspähungs- und Analysetechniken ungestört anwenden kann.
  • Es sind Mikrocontroller für tragbare Datenträger bekannt, die einen Prozessorkern und einen kryptographischen Koprozessor aufweisen. So enthalten beispielsweise die unter der Marke AE5 bekannten Mikrocontroller der Firma Hitachi und die unter der Marke 88 bekannten Mikrocontroller der Firma Infineon Koprozessoren für das DES-Verfahren (DES = Data Encryption Standard) zur symmetrischen Ver- und Entschlüsselung. Auch Koprozessoren für das AES-Verfahren (AES = Advanced Encryption Standard) sind bekannt. Diese Koprozessoren arbeiten mit maskierten Ein- und Ausgangsdaten. Ferner sind die von den Koprozessoren ausgeführten Berechnungsabläufe durch geeignete hardware- oder softwaretechnische Maßnahmen gegen eine Ausspähung durch Nebenkanalangriffe geschützt.
  • Koprozessoren wie die gerade genannten entlasten den Prozessorkern des Mikrocontrollers auf wirksame Weise. Allerdings besteht das Problem, daß die Koprozessoren nur zum Durchführen einer DES- bzw. AES-Berechnung und nicht für andere Operationen vorgesehen sind. Es wäre wünschenswert, solche Koprozessoren auch zum ausspähungsgeschützten Ausführen anderer Operationen einsetzen zu können. Dies gilt insbesondere deshalb, weil die Koprozessoren üblicherweise parallel zum Prozessorkern arbeiten, so daß jede Nutzung des sonst möglicherweise unbeschäftigten Koprozessors von Vorteil ist.
  • Die Erfindung hat demgemäß die Aufgabe, die oben genannten Probleme ganz oder zum Teil zu lösen. Insbesondere soll durch die Erfindung eine neuartige Verwendung einer maskenunterstützenden Recheneinheit eines tragbaren Datenträgers zum ausspähungsgeschützten Ausführen einer Operation aufgezeigt werden. In bevorzugten Ausgestaltungen soll durch den Einsatz der Erfindung die Rechen- und/oder Speichereffizienz bei der gesicherten Programmausführung auf dem Datenträger gesteigert werden. Ferner soll in bevorzugten Ausgestaltungen ein besonders guter Ausspähungsschutz erzielt werden.
  • Erfindungsgemäß wird diese Aufgabe ganz oder zum Teil gelöst durch ein Verfahren zum ausspähungsgeschützten Ausführen einer ersten Operation gemäß Anspruch 1, ein Verfahren zum Bestimmen mindestens eines Konfigurationswertes gemäß Anspruch 17, ein Computerprogrammprodukt gemäß Anspruch 19 und einen tragbaren Datenträger gemäß Anspruch 20 beziehungsweise gemäß Anspruch 21. Die abhängigen Ansprüche betreffen bevorzugte Ausführungsformen der Erfindung.
  • Die Aufzählungsreihenfolge der in den Ansprüchen genannten Verfahrensschritte soll nicht als Einschränkung des Schutzbereichs der Erfindung verstanden werden. Es sind vielmehr Ausgestaltungen der Erfindung vorgesehen, bei denen diese Verfahrensschritte in anderer Reihenfolge und/oder zumindest zum Teil parallel und/oder zumindest zum Teil ineinander verzahnt (interleaved) ausgeführt werden.
  • Die Erfindung geht von der Grundidee aus, die maskenunterstützende Recheneinheit des Datenträgers auf eine andere als die eigentlich vorgesehene Weise zu nutzen. Genauer wird die Recheneinheit derart mit Parametern versorgt, daß sich die erste Operation als hier erwünschter, aber von den Entwicklern der Recheneinheit nicht gezielt geplanter, Nebeneffekt bei der Ausführung der zweiten Operation ergibt.
  • Die Verwendung der Recheneinheit für einen an sich nicht vorgesehenen Zweck verbessert die Nutzung der Recheneinheit und entlastet andere Baugruppen des Datenträgers. Ferner können die in der Regel hochentwickelten Schutzmaßnahmen der Recheneinheit gegen Nebenkanalangriffe – insbesondere die eingebaute Maskenunterstützung – ohne weiteres auch für die erste Operation genutzt werden. Sicherheitslücken, die sich bei einer rein softwaremäßigen Implementierung der ersten Operation ergeben könnten, werden somit vermieden. Auf dem Datenträger ist das erfindungsgemäße Verfahren effizient ausführbar. Der eigentliche Rechenaufwand wird durch die Suche nach geeigneten Konfigurationswerten verursacht. Dieser Aufwand fällt jedoch außerhalb des Datenträgers und nur ein einziges Mal – nämlich z. B. im Zuge der Programmentwicklung für den Datenträger – an.
  • In bevorzugten Ausgestaltungen der Erfindung wird zwischen ersten und zweiten Parameterdaten und einem ersten und einem zweiten Konfigurationswert unterschieden. Vorzugsweise kann vorgesehen sein, bei der Verfahrensausführung den ersten Konfigurationswert unmaskiert und den zweiten Konfigurationswert maskiert zu verwenden. In Ausgestaltungen der Erfindung, bei denen die Recheneinheit ein kryptographischer Koprozessor ist, kann z. B. der unmaskierte erste Konfigurationswert als Schlüssel für eine kryptographische Operation dienen, während der maskierte zweite Konfigurationswert einen Abschnitt oder mehrere Abschnitte der für die zweite Operation herangezogenen, maskierten Eingangsdaten bilden kann.
  • In bevorzugten Ausgestaltungen ist die erste Operation dergestalt in die zweite Operation eingebettet, daß die Eingangsdaten der ersten Operation mindestens einen Abschnitt der Eingangsdaten der zweiten Operation bilden, und daß die Ausgangsdaten der ersten Operation als mindestens ein Abschnitt in den Ausgangsdaten der zweiten Operation enthalten sind.
  • Da die erste Operation gleichsam ”zufällig” durch die zweite Operation mit ausgeführt wird, ist es in vielen Ausgestaltungen der Erfindung erforderlich, daß die Bitlänge der Ein- und Ausgangsdaten der ersten Operation erheblich kürzer als die Bitlänge der Ein- und Ausgangsdaten der zweiten Operation ist. Wenn nämlich die erste Operation zu komplex wäre, wäre es unwahrscheinlich, daß sie sich als impliziter Teil der zweiten Operation auffinden lassen würde. In unterschiedlichen Ausführungsformen kann z. B. vorgesehen sein, daß sich die Bitlängen um mindestens den Faktor 2 oder den Faktor 4 oder den Faktor 8 oder den Faktor 16 unterscheiden.
  • Die Parametrisierung der Recheneinheit in Abhängigkeit von dem mindestens einen Konfigurationswert ist vorzugsweise unabhängig von den ersten Eingangsdaten in dem Sinne, daß für alle für die erste Operation zulässigen Operanden ein und dieselbe Parametrisierung – bis auf eine gegebenenfalls unterschiedliche Maskierung der Parameterdaten – verwendet wird.
  • In unterschiedlichen Ausgestaltungen kann die erste Operation z. B. ein Tabellenzugriff oder eine Addition sein. Die erste Operation kann wiederholt ausgeführt werden, um z. B. ein iteratives Additionsverfahren mit langen Operanden durchzuführen.
  • Das erfindungsgemäße Computerprogrammprodukt enthält Programmbefehle, um das erfindungsgemäße Verfahren zum Ausführen der ersten Operation oder das erfindungsgemäße Verfahren zum Bestimmen mindestens eines Konfigurationswertes zu implementieren. Ein derartiges Computerprogrammprodukt kann ein körperliches Medium sein, beispielsweise ein Halbleiterspeicher oder eine Diskette oder eine CD-ROM. Das Computerprogrammprodukt kann jedoch auch ein nicht-körperliches Medium sein, beispielsweise ein über ein Computernetzwerk übermitteltes Signal. Insbesondere kann das Computerprogrammprodukt zur Programmierung der externen Vorrichtung oder bei der Herstellung oder Initialisierung oder Personalisierung des tragbaren Datenträgers eingesetzt werden.
  • Der erfindungsgemäße Datenträger ist zum Ausführen der ersten Operation eingerichtet und/oder enthält mindestens einen berechneten Konfigurationswert. Der Datenträger kann insbesondere eine Chipkarte oder ein Chipmodul oder eines der oben genannten Speichermedien sein.
  • In bevorzugten Ausgestaltungen weist/weisen der Datenträger und/oder das Computerprogrammprodukt Merkmale auf, die den gerade beschriebenen und/oder den in den abhängigen Verfahrensansprüchen genannten Merkmalen entsprechen.
  • Weitere Merkmale, Vorteile und Aufgaben der Erfindung gehen aus der folgenden genauen Beschreibung mehrerer Ausführungsbeispiele und Ausführungsalternativen hervor. Es wird auf die schematischen Zeichnungen verwiesen, in denen zeigen:
  • 1 ein Blockdiagramm mit Funktionseinheiten eines tragbaren Datenträgers sowie mit einer externen Vorrichtung nach einem Ausführungsbeispiel der Erfindung,
  • 2 eine schematische Darstellung der Ausführung einer ersten Operation mittels einer für eine zweite Operation vorgesehenen Recheneinheit, und
  • 3 ein Ablaufdiagramm eines Verfahrens in dem in 1 und 2 dargestellten Ausführungsbeispiel.
  • Der in 1 gezeigte Datenträger 10 weist einen Mikrocontroller 12 auf. In an sich bekannter Weise sind in dem Mikrocontroller 12 auf einem einzigen Halbleiterchip eine Prozessorbaugruppe 14, eine Speicherbaugruppe 16 und eine Schnittstellenbaugruppe 18 integriert, die miteinander über einen Bus 20 verbunden sind. Die Prozessorbaugruppe 14 ist in einen Prozessorkern 22 und einen kryptographischen Koprozessor 24 gegliedert. Während der Prozessorkern 22 zur allgemeinen Programmausführung eingerichtet ist, dient der Koprozessor 24 speziell zur Ausführung von komplexen kryptographischen Berechnungen wie z. B. einer DES-Verschlüsselung mit maskierten Ein- und Ausgangsdaten und einem einstellbaren Schlüssel.
  • Die Speicherbaugruppe 16 weist mehrere in unterschiedlichen Technologien ausgestaltete Speicherfelder – z. B. ein maskenprogrammiertes ROM, ein nichtflüchtiges EEPROM und ein flüchtiges RAM – auf. Unter anderem befinden sich in der Speicherbaugruppe 16 diejenigen Daten und Programmbefehle, die zur Ausführung der im folgenden beschriebenen Verfahren benötigt werden. In diesem Zusammenhang sind insbesondere ein erster und ein zweiter Konfigurationswert 26, 28 zu nennen. Die Konfigurationswerte 26, 28 sind von einer externen Vorrichtung 30 vorausberechnet worden, und sie sind entweder bei der Herstellung des Mikrocontrollers 12 in dessen ROM-Maske oder bei der Initialisierung oder Personalisierung des Datenträgers 10 in einen nichtflüchtigen Bereich der Speicherbaugruppe 16 eingeschrieben worden.
  • 2 zeigt schematisch die ausspähungsgeschützte Ausführung einer ersten Operation OP1, bei der erste maskierte Eingangsdaten 32 in erste maskierte Ausgangsdaten 34 umgesetzt werden. Beispielsweise können die ersten maskierten Eingangsdaten 32 einen Wert x' repräsentieren, der sich gemäß einer booleschen Maskierungsvorschrift durch eine XOR-Verknüpfung des entsprechenden unmaskierten Operanden x mit einer ersten Maske u ergibt; es gilt dann x' = x ⊕ u. Die ersten maskierten Ausgangsdaten 34 können beispielsweise den maskierten Wert y' repräsentieren, der aus der Anwendung von OP1 auf x' resultiert; es gilt y' = OP1(x'). Der maskierte Wert y' ist seinerseits die mit einer zweiten Maske v durch eine XOR-Verknüpfung maskierte Repräsentation eines unmaskierten Ergebniswertes y; es gilt also y' = y ⊕ V. Aus Gründen des Ausspähungsschutzes sollen die unmaskierten Werte x und y zu keinem Zeitpunkt im Datenträger 10 vorliegen.
  • In Ausführungsalternativen kann vorgesehen sein, daß die ersten maskierten Eingangsdaten 32 nicht nur einen, sondern mehrere maskierte Operanden für die erste Operation OP1 definieren. Entsprechend können auch in den ersten maskierten Ausgangsdaten 34 mehrere Ergebniswerte der ersten Operation OP1 enthalten sein.
  • Die gerade geschilderte erste Operation OP1 wird erfindungsgemäß auf eine zweite Operation OP2 abgestützt, die von einer maskenunterstützenden Recheneinheit 36 ausgeführt wird. In den vorliegend beschriebenen Ausführungsbeispielen ist die maskenunterstützende Recheneinheit 36 der kryptographische Koprozessor 24; es sind jedoch auch Ausführungsalternativen vorgesehen, bei denen die Recheneinheit 36 von anderen Komponenten des Datenträgers 10 gebildet wird, die eine sichere Bearbeitung maskierter Daten unterstützen. Auf jeden Fall soll die Recheneinheit 36 so ausgestaltet sein, daß die bei der Ausführung der zweiten Operation OP2 von einem Angreifer ermittelbaren Nebenkanalinformationen – z. B. die Stromverbrauchskurve oder die elektromagnetischen Abstrahlungen – keine verwertbaren Rückschlüsse auf die unmaskierten Daten zulassen.
  • Die Recheneinheit 36 verarbeitet zweite maskierte Eingangsdaten 38, die beispielsweise einen maskierten Wert P' repräsentieren, und liefert zweite maskierte Ausgangsdaten 40, die beispielsweise einen maskierten Wert C' repräsentieren. In den vorliegend beschriebenen Ausführungsbeispielen wird eine boolesche Maskierungsregel mit einer einzigen Maske M sowohl für die Eingangsdaten 38 als auch für die Ausgangsdaten 40 verwendet; es gilt also P = P ⊕ M und C'= C ⊕ M. wobei P und C die unmaskierten Ein- bzw. Ausgangswerte bezeichnen. Die Maske M wird durch Maskendaten 42 angegeben, die z. B. in einem Register der Recheneinheit 36 gespeichert sind.
  • In Ausführungsalternativen können statt der booleschen Maskierung andere Maskierungsregeln, beispielsweise eine arithmetische oder eine multiplikative Maskierung, vorgesehen sein. Ferner kann die Recheneinheit 36 unterschiedliche Masken für die Ein- und Ausgangsdaten 38, 40 verwenden; die Maskendaten 42 definieren dann also mehrere Masken. Je nach der von der Recheneinheit 36 ausgeführten zweiten Operation OP2 können die zweiten maskierten Eingangsdaten 38 einen einzigen maskierten Eingangswert P' – wie oben beschrieben – oder mehrere maskierte Eingangswerte als Argumente für die zweite Operation OP2 definieren. Entsprechend können auch in den zweiten maskierten Ausgangsdaten 40 mehrere Ausgangswerte der zweiten Operation OP2 enthalten sein.
  • Die zweite Operation OP2 kann allgemein jede Berechnung sein, die sich von der ersten Operation OP1 unterscheidet. In vielen Ausgestaltungen ist als zweite Operation OP2 eine kryptographische Berechnung vorgesehen, z. B. eine Ver- oder Entschlüsselung oder eine Signaturerzeugung oder eine Berechnung eines kryptographischen Hash-Wertes. Es sind jedoch auch Ausführungsformen der Erfindung vorgesehen, bei denen die zweite Operation OP2 beispielsweise eine komplexe arithmetische Berechnung ist.
  • Die zweite Operation OP2 wird in Abhängigkeit von ersten Parameterdaten 44 durchgeführt, die z. B. in einem Register der Recheneinheit 36 gespeichert sind. In den meisten Ausgestaltungen sind diese Parameterdaten 44 weniger sicherheitsrelevant, so daß hier auf eine Maskierung verzichtet werden kann.
  • Bei den im folgenden beschriebenen Ausführungsbeispielen ist die von der Recheneinheit 36 bereitgestellte zweite Operation OP2 eine DES-Verschlüsselung mit einem durch die ersten Parameterdaten 44 angegebenen Schlüssel K. Die zweiten maskierten Eingangsdaten 38 definieren dann den mit der Maske M maskierten Klartext P', und die zweiten maskierten Ausgangsdaten 40 definieren den mit der Maske M maskierten, verschlüsselten Text C'.
  • Insgesamt ist die zweite Operation OP2 in diesen Ausgestaltungen durch C' = DESK,M(P') = (DESK(P' ⊕ M)) ⊕ M definiert. Hierbei steht DESK für die unmaskierte DES-Verschlüsselung mit dem Schlüssel K; es gilt C = DBSK(P). Die Bezeichnung DESK,M wird als Kurzschreibweise für die maskierte DES-Verschlüsselung gemäß der gerade angegebenen Beziehung verwendet. Es versteht sich, daß die obige Zuordnung von Klartext und verschlüsseltem Text ebensogut vertauscht werden könnte, da das DES-Verfahren ein symmetrisches Ver- und Entschlüsselungsverfahren ist.
  • Das DES-Verfahren arbeitet mit je 8 Byte breiten Datenblöcken für den Klartext P, P' und den verschlüsselten Text C, C'. Entsprechend weist auch die Maske M 8 Byte auf. Der Schlüssel K ist ebenfalls 8 Byte breit, wobei jedoch effektiv nur 7 Bit pro Byte, also insgesamt 56 Bit, nutzbar sind. Im folgenden werden die einzelnen Byte des unmaskierten Klartexts P durch die Notation P = (P[7] |...| P[0]) angegeben, wobei das Zeichen ”|” für die Zusammenfügung (Konkatenation) steht. Entsprechend werden die Schreibweisen P' = (P'[7] |...| P'[0]), C = (C[7] |...| C[0]), C' = (C'[7] |...| C'[0]), M = (M[7] |...| M[0]) und K = (K[7] |...| K[0]) verwendet.
  • Die Recheneinheit 36 führt das DES-Verfahren hardwareunterstützt und daher sehr schnell aus. Die hier beschriebenen Ausführungsbeispiele der Erfindung nutzen die Recheneinheit 36 für eine relativ einfache Berechnung, nämlich für die erste Operation OP1. Hierbei wird Gebrauch von der Tatsache gemacht, daß die Recheneinheit 36 einen unüberschaubar großen Parameterraum aufweist. Wenn nur die Bitbreite der Operanden und Ergebnisse der ersten Operation OP1 klein genug gewählt wird, dann kann die Recheneinheit 36 mit hoher Wahrscheinlichkeit so konfiguriert werden, daß sie auf den wenigen relevanten Ein- und Ausgabebits ”zufällig” die erste Operation OP1 ausführt.
  • Die gerade kurz umrissene Grundidee ist in 2 schematisch veranschaulicht. Es seien beispielsweise die ersten maskierten Eingangsdaten 32 und die ersten maskierten Ausgangsdaten 34, für die die erste Operation OP1 auszuführen ist, je 4 Bit breit. Die zweiten maskierten Eingangsdaten 38 und die zweiten maskierten Ausgangsdaten 40 haben dagegen, wie bereits erwähnt, eine Breite von je 64 Bit.
  • Die ersten maskierten Eingangsdaten 32 sind an einer vorbestimmten Position – in 2 beispielhaft in einer Hälfte des geringstwertigen Bytes – in den zweiten maskierten Eingangsdaten 38 enthalten. Damit steht noch ein 60 Bit breiter Abschnitt in den zweiten maskierten Eingangsdaten 38 für zweite Parameterdaten 46 zur Verfügung. Die von der Recheneinheit 36 ausgeführte DES-Berechnung ist, wie dies allgemein bei kryptographischen Operationen erwünscht ist, so ausgestaltet, daß jedes Bit der zweiten Eingangsdaten 38 eine möglichst umfassende Wirkung auf die Gesamtheit der zweiten Ausgangsdaten 40 hat. Daher wird durch die zweiten Parameterdaten 46, obwohl sie sich in den zweiten maskierten Eingangsdaten 38 befinden, effektiv die Recheneinheit 36 im Hinblick auf die Verarbeitung der ersten maskierten Eingangsdaten 32 parametrisiert.
  • Ferner wird die von der Recheneinheit 36 ausgeführte Operation durch die ersten Parameterdaten 44 beeinflußt. Auch hier gilt für kryptographische Berechnungen allgemein, daß der durch die ersten Parameterdaten 44 angegebene Schlüssel K die zweite Operation OP2 – und damit auch die darin eingebettete erste Operation OP1 – umfassend beeinflußt. Die insgesamt zur Parametrisierung der Recheneinheit 36 verwendbaren Datenbits, also die ersten und zweiten Parameterdaten 44, 46, sind in 2 durch eine diagonale Schraffur gekennzeichnet.
  • Die ersten maskierten Ausgangsdaten 34 sollen von der Recheneinheit 36 an einer vorbestimmten Stelle in den zweiten maskierten Ausgangsdaten 40 – in 2 beispielsweise in einer Hälfte des zweit-geringstwertigen Bytes – erzeugt werden. Hierbei soll die Maske u für die ersten maskierten Eingangsdaten 32 verwendet werden, während die ersten maskierten Ausgangsdaten 34 mit der Maske v maskiert werden sollen. Die Masken u und v werden dazu in die Maskendaten 42 so eingeschrieben, daß sich an den Bitpositionen der ersten maskierten Eingangsdaten 32 die erste Maske u befindet, und daß sich an den Bitpositionen der ersten maskierten Ausgangsdaten 34 die zweite Maske v befindet. Die restlichen Bits der Maskendaten 42 werden aus Gründen des Ausspähungsschutzes vorzugsweise zufällig gewählt. Diese Bits – und auch die nicht relevanten Bits der zweiten maskierten Ausgangsdaten 40 – sind in 2 durch eine horizontale Schraffur gekennzeichnet.
  • Bei einer geeignet gewählten Parametrisierung führt die Recheneinheit 36 nun im Ergebnis die gewünschte erste Operation OP1 auf den ersten, mit der Maske u maskierten Eingangsdaten 32 aus, um die zweiten, mit der Maske v maskierten Ausgangsdaten 34 zu erhalten. Diese Parametrisierung wird durch vorab von der externen Vorrichtung 30 berechnete Konfigurationswerte – z. B. den ersten und den zweiten Konfigurationswert 26, 28 – angegeben. Bei der in 2 gezeigten Ausgestaltung kann der erste Konfigurationswert 26 unmittelbar als Schlüssel K in den ersten Parameterdaten 44 verwendet werden. Der zweite Konfigurationswert 28 muß dagegen zunächst mit den entsprechenden Bits der Maskendaten 42 maskiert werden, bevor die dadurch erhaltenen, maskierten Daten als zweite Parameterdaten 46 verwendet werden können.
  • In 3 ist ein beispielhafter Verfahrensablauf gezeigt, bei dem die in 2 dargestellten Daten- und Verarbeitungsstrukturen genutzt werden. Dieser Verfahrensablauf wird im folgenden anhand eines Anwendungsbeispiels beschrieben, bei dem die erste Operation OP1 ein maskierter Tabellenzugriff mit vier Bit breiten Ein- und Ausgangswerten ist. In Formelschreibweise sei eine unmaskierte Tabelle T: {0, ..., 15} → {0, ..., 15} vorgegeben. Für einen mit der Maske u ∊ {0, ..., 15} maskierten Eingangswert x', der vermöge x' = x ⊕ u einen unmaskierten Tabellenindex x definiert, wird der mit der Maske v ∊ {0, ..., 15} maskierte Tabellenwert y' = T(x) ⊕ v ∊ {0, ..., 15} gesucht. Diese Berechnung soll auf eine gegen Nebenkanalangriffe geschützte Weise erfolgen; insbesondere soll sichergestellt werden, daß sich auch bei Kenntnis der bei der Berechnung auftretenden Zwischenergebnisse keine Rückschlüsse auf x oder T(x) ziehen lassen.
  • Um das Verfahren gemäß 3 durchführen zu können, ist eine einmalige, sehr aufwendige Vorleistung erforderlich. Es müssen nämlich innerhalb des immens großen Parameterraumes der Recheneinheit 36 geeignete Konfigurationswerte 26, 28 gefunden werden, mit denen sich die erste Operation OP1, nämlich der gewünschte Tabellenzugriff, als Ausschnitt der DES-Berechnung darstellen läßt. In Formelschreibweise müssen als erster Konfigurationswert 26 ein DES-Schlüssel K und als zweiter Konfigurationswert 28 sieben Klartextbytes P[7], ..., P[1] gefunden werden, so daß für alle Indexwerte x ∊ {0, ..., 15} gilt: (C[1] mod 16) = T(x) wobei C = DESK(P) mit P[0] = x und P = (P[7] |...| P[0]) (*)
  • Aus Gründen der besseren Lesbarkeit werden im vorliegenden Text 4-Bit-Werte ohne weiteres auch als 8-Bit-Werte verwendet; die vier höherwertigen Bits sollen dann auf ”0” gesetzt sein. Diese Konvention wurde bereits oben in (*) verwendet.
  • Das Suchverfahren wird von der externen Vorrichtung 30 ausgeführt; weitere Anmerkungen dazu werden unten noch gegeben. Das Verfahren braucht für eine ganze Baureihe von Datenträgern 10 nur ein einziges Mal ausgeführt zu werden. Die für alle Datenträger 10 dieser Baureihe identischen Konfigurationswerte 26, 28 werden in die Speicherbaugruppe 16 jedes Datenträgers 10 eingeschrieben und stehen dort zur beliebig häufigen Verwendung zur Verfügung.
  • Das auf dem Datenträger 10 ablaufende Verfahren gemäß 3 beginnt in Schritt 50 damit, daß die Parameterdaten 44, also hier der für die DES-Operation zu verwendende Schlüssel K, auf den ersten Konfigurationswert 26 gesetzt werden. Dieser Schritt 50 braucht für wiederholte Durchlaufe des Verfahrens nur einmal ausgeführt zu werden.
  • In Schritt 52 wird eine geeignete Maske M ermittelt und zum Setzen der Maskendaten 42 verwendet. Die Maske M enthält die bei der ersten Operation OP1 anzuwendenden Masken u und v sowie im übrigen zufällige Werte. Genauer werden M[7], ..., M[2] auf Zufallszahlen im Bereich 0, ..., 255 gesetzt. Die Maske v wird durch vier Zufallsbits zu M[1] ergänzt, so daß M[1] mod 16 = v gilt. Entsprechend wird die Maske u durch vier Zufallsbits zu M[0] ergänzt, so daß M[0] mod 16 = u gilt. Insgesamt werden die Maskendaten 42 auf M = (M[7] |...| M[0]) gesetzt.
  • In Schritt 54 werden nun die zweiten maskierten Eingangsdaten 38 aus den zweiten Parameterdaten 46 und den ersten maskierten Eingangsdaten 32 zusammengesetzt. Die ersten maskierten Eingangsdaten 32 weisen bereits die gewünschte Maskierung mit der Maske u auf, während die zweiten Parameterdaten 46 zunächst aus dem zweiten Konfigurationswert 28 durch Anwendung der entsprechenden Bits des Maskendaten 42 berechnet werden müssen. In Formelschreibweise werden die zweiten maskierten Eingangsdaten 38 auf den Wert P' = (P'[7] |...| P'[0]) gesetzt, wobei P'[7] = P[7] ⊕ M[7], P'[1] = P[1] ⊕ M[1] gilt und die Klartextbytes P[7], ..., P[1] durch den zweiten Konfigurationswert 28 angegeben werden. Das geringstwertige Byte P'[0] der zweiten maskierten Eingangsdaten 38 wird aus den höherwertigen vier Bits von M[0] und den vier Bits von x' = x ⊕ u zusammengesetzt; es gilt also P'[0] mod 16 = x'.
  • Nachdem nun die Parameter-, Masken- und Eingangsdaten 44, 42, 38 gesetzt worden sind, wird in Schritt 56 die zweite Operation OP2 durch die Recheneinheit 36 ausgeführt. In Formelschreibweise wird der durch die zweiten maskierten Ausgangsdaten 40 repräsentierte Wert C' berechnet, so daß C' = DESK,M (P') gilt. Obwohl die vorgenommenen Berechnungen sehr aufwendig sind, wird der Prozessorkern 22 nicht oder nicht wesentlich belastet. Für die Effizienz der Programmausführung auf dem Datenträger 10 spielt die Belastung der Recheneinheit 36 keine Rolle, solange die Recheneinheit 36 nicht anderweitig benötigt wird.
  • Nach der DES-Berechnung finden sich die ersten maskierten Ausgangsdaten 34, also das gewünschte Ergebnis y' = T(x) ⊕ v, in den geringerwertigen vier Bits des zweit-geringstwertigen Bytes der zweiten maskierten Ausgangsdaten 40. Dieses Ergebnis wird in Schritt 58 ermittelt und steht dann zur weiteren Verwendung zur Verfügung. In Formelschreibweise gilt y' = C'[1] mod 16. Die Korrektheit dieser Berechnung folgt aus (*), weil C' = DESK ((P[7] |...| P[1]|x)) ⊕ M und daher C'[1] mod 16 = T(x) ⊕ v gelten.
  • Bei dem oben beschriebenen Anwendungsbeispiel des Tabellenzugriffs mußten zur keinem Zeitpunkt die Masken u, v abgenommen oder umgerechnet werden. Dies zeigt die Resistenz des Verfahrens gegen Nebenkanalangriffe, solange die Recheneinheit 36 ausspähungsgeschützt arbeitet. Die Tabelle T braucht sich zu keinem Zeitpunkt im Speicher des Datenträgers 10 zu befinden, so daß sie keinen Speicherplatz belegt und auch nicht angriffsgefährdet ist.
  • Ein zusätzlicher Ausspähungsschutz gegen differentielle Nebenkanalangriffe – z. B. DPA-Angriffe – kann dadurch erreicht werden, daß bei jeder Berechnung andere Masken u, v benutzt werden. Wenn das Verfahren mehrmals ausgeführt wird, kann in unterschiedlichen Ausführungsformen – je nach dem gewünschten Randomisierungsgrad – jeder neue Durchlauf entweder mit Schritt 52 oder mit Schritt 54 beginnen.
  • Es versteht sich, daß in Ausführungsalternativen eine andere Lage der ersten maskierten Eingangsdaten 32 innerhalb der zweiten maskierten Eingangsdaten 38 und/oder der ersten maskierten Ausgangsdaten 34 innerhalb der zweiten maskierten Ausgangsdaten 40 gewählt werden kann. Dies betrifft sowohl die Byte- als auch die Bitpositionen. Die gewählten Positionen müssen natürlich auch bei der Berechnung der Konfigurationswerte 26, 28 zugrundegelegt werden. Ferner müssen die Positionen der Masken u und v in den Maskendaten 42 entsprechend angepaßt werden und dürfen sich in der Regel nicht überlappen. Statt unterschiedlicher Masken u und v für den Ein- bzw. Ausgang der ersten Operation OP1 kann auch eine einheitliche Maske verwendet werden; die Positionen der ersten maskierten Ein- und Ausgangsdaten 32, 34 können dann zusammenfallen.
  • Im obigen Anwendungsbeispiel wurden die vier höherwertigen Bitpositionen des geringstwertigen Bytes der zweiten maskierten Eingangsdaten 38 nicht genutzt, so daß der zweite Konfigurationswert 28 nur 7 Bytes umfaßt. Es versteht sich, daß in Ausführungsalternativen auch diese vier Bits gemäß vier zusätzlichen Bits des zweiten Konfigurationswertes 28 gesetzt werden können.
  • Wie bereits erwähnt, ist die Suche nach einem geeigneten Schlüssel K für den ersten Konfigurationswert 26 und einem geeigneten Abschnitt des Klartexts P für den zweiten Konfigurationswert 28 äußerst aufwendig. Hierzu wird die externe Vorrichtung 30 verwendet, die z. B. als leistungsfähiger Arbeitsplatzrechner oder als Rechner mit mehreren Prozessoren oder als Computer-Cluster ausgestaltet sein kann. Es kann auch spezielle Hardware eingesetzt werden, die unter der Bezeichnung ”DES-Cracker” bekannt ist. Selbst eine Suchzeit von mehreren Tagen oder Wochen wäre jedoch akzeptabel, weil die Konfigurationswerte 26, 28 nur ein einziges Mal berechnet werden müssen, um eine erste Operation OP1 für eine Recheneinheit 36, die eine gegebene zweite Operation OP2 ausführt, zu implementieren. Die Suchzeit kann also als Teil der für die Programmentwicklung erforderlichen Zeit angesehen werden.
  • Ein stets anwendbares Suchverfahren ist es, Zufallszahlen oder eine arithmetische Folge von Zahlen nacheinander als Konfigurationswerte 26, 28 auszuprobieren. Auch wenn hierbei in der Regel sehr viele Konfigurationswerte 26, 28 ausprobiert werden müssen, ist bei dem vorliegend beschriebenen Anwendungsbeispiel letztendlich mit an Sicherheit grenzender Wahrscheinlichkeit ein Erfolg zu erwarten. Dies ergibt sich aus der folgenden Überlegung:
    Die Tabelle T weist 16 Einträge zu je vier Bit auf. Damit definiert die Tabelle T eine Abbildung aus insgesamt 264 Abbildungen. Zur Parametrisierung der Recheneinheit 36 stehen effektiv 56 Bit in den ersten Parameterdaten 44 und 56 Bit in den zweiten Parameterdaten 46 zur Verfügung. Insgesamt kann die Recheneinheit 36 daher auf eine von 256+56 unterschiedlichen zweiten Operationen OP2 eingestellt werden. Es ist davon auszugehen, daß innerhalb dieser 2112 Möglichkeiten jede der 264 durch eine Tabelle T definierten Abbildungen ungefähr gleichhäufig vertreten ist, so daß sich für jede Abbildung geeignete Konfigurationswerte 26, 28 bestimmen lassen.
  • Falls gewünscht, läßt sich der Parameterraum weiter vergrößern, indem – wie oben erwähnt – 60 Bits für den zweiten Konfigurationswert 28 verwendet werden, und/oder indem die Suche für unterschiedliche mögliche Positionen der ersten Daten 32, 34 innerhalb der zweiten Daten 38, 40 durchgeführt wird. Im zweitgenannten Fall muß natürlich das ausgeführte Verfahren den letztendlich gewählten Positionen angepaßt werden.
  • Aus der obigen Überlegung geht ferner hervor, daß auch für viele größere Tabellen – also Tabellen mit mehr Einträgen oder einer größeren Bitlänge der Ergebniswerte – in der Regel geeignete Konfigurationswerte 26, 28 existieren. Die Suche nach solchen Werten wird jedoch mit zunehmender Tabellengröße immer aufwendiger. Dennoch sind in Ausführungsalternativen andere Tabellengrößen – sowohl größere als auch kleinere – vorgesehen.
  • In manchen Anwendungsfällen sind bereits Informationen bekannt, durch die sich die Suche nach passenden Konfigurationswerten 26, 28 vereinfachen läßt. Dies kann insbesondere dann der Fall sein, wenn die Tabelle durch eine DES-Operation erzeugt wurde. In solchen Fällen bestehen die oben erwähnten Einschränkungen hinsichtlich des praktikablen Suchaufwands nicht oder nur in abgeschwächter Form.
  • Es versteht sich, daß als Grundlage für den Tabellenzugriff auch eine mehrdimensionale Tabelle verwendet werden kann. Alle für den Tabellenzugriff erforderlichen Indexwerte werden dann in die ersten maskierten Eingangsdaten 32 aufgenommen. Hierbei ist natürlich darauf zu achten, daß die ersten maskierten Eingangsdaten 32 nicht zu lang werden, da jedes zusätzliche Bit die Suche nach geeigneten Konfigurationswerten 26, 28 exponentiell erschwert.
  • Als weiteres Beispiel zur Erläuterung der Erfindung wird im folgenden die maskierte Addition modulo 256 als erste Operation OP1 beschrieben. Dies ist gleichzeitig ein Beispiel zur Realisierung eines maskierten Tabellenzugriffs auf eine spezielle Tabelle mit zwei Indexwerten, nämlich auf eine Tabelle T, die vermöge T(a, b) = a + b mod 256 definiert ist.
  • Gegeben seien maskierte Summanden a ∊ {0, ..., 255} und b' ∊ {0, ..., 255} mit a' = a ⊕ u und b' = b ⊕ v; die Werte u, v ∊ {0, ..., 255} stellen hierbei die Eingangsmasken dar. Ferner sei eine für das Ergebnis zu verwendende Ausgangsmaske w ∊ {0, ..., 255} gegeben. Gesucht ist als Ergebnis die mit der Maske w maskierte Summe y' = (a + b mod 256) ⊕ w. Auch hier soll die Berechnung unter Verwendung der Recheneinheit 36 auf eine gegen Nebenkanalangriffe geschützte Weise erfolgen; insbesondere soll keines der Zwischenergebnisse während des Berechnungsablaufs auf die unmaskierten Operanden a, b oder auf die unmaskierte Summe a + b mod 256 schließen lassen.
  • Um das Verfahren ausführen zu können, ist wiederum eine Konfigurierung der Recheneinheit 36 in Abhängigkeit von geeigneten Konfigurationswerten 26, 28 erforderlich, so daß sich die gewünschte erste Operation OP1, nämlich die maskierte modulare Addition, als Teil der DES-Berechnung ergibt. Im hier beschriebenen Beispiel müssen als erster Konfigurationswert 26 ein DES-Schlüssel K und als zweiter Konfigurationswert 28 sechs Klartextbytes P[7], ..., P[2] gefunden werden, so daß für alle Summanden a, b ∊ {0, ..., 255} gilt C[2] = (a + b mod 256) wobei C = DESK(P) mit P = (P[7] |...| P[2]|b|a) (**)
  • Der Ablauf des auf dem Datenträger 10 ausgeführten Verfahrens wird nun wieder unter Hinweis auf 3 beschrieben. Das Verfahren beginnt damit, daß in Schritt 50 der durch den ersten Konfigurationswert 26 angegebene DES-Schlüssel K in die ersten Parameterdaten 44 eingeschrieben wird.
  • Wie sich schon aus (**) ergibt, sind bei dem hier beschriebenen Beispiel als Bytepositionen für die beiden Summanden das geringstwertige und das zweit-geringstwertige Byte der zweiten maskierten Eingangsdaten 38 vorgesehen, während das Ergebnis sich im dritt-geringstwertigen Byte der zweiten maskierten Ausgangsdaten 40 befinden soll. Entsprechend werden in Schritt 52 die drei geringstwertigen Bytes der Maskendaten 42 mit den vorgegebenen Masken u, v und w belegt; die restlichen Bytes werden mit Zufallszahlen aufgefüllt. In Formelschreibweise wird für die Maskendaten 42 eine Maske M = (M[7] |...| M[0]) verwendet, wobei M[7], ..., M[3] je eine Zufallszahl im Bereich 0, ..., 255 sind und ferner die Zuweisungen M[2] = w, M[1] = v und M[0] = u vorgenommen werden.
  • In die zweiten maskierten Eingangsdaten 38 werden in Schritt 54 einerseits die ersten maskierten Eingangsdaten 32 und andererseits der geeignet maskierte zweite Konfigurationswert 28 aufgenommen. Genauer werden die zweiten maskierten Eingangsdaten 38 auf P' = (P'[7] |...| P'[0]) mit P'[0] = a ⊕ u, P'[1] = b ⊕ v und P'[i] = P[i] ⊕ M[i] für i = 2, ..., 7 gesetzt, wobei die Klartextbytes P[i] durch den zweiten Konfigurationswert 28 angegeben werden.
  • Es wird nun in Schritt 56 die zweite Operation OP2 durch die Recheneinheit 36 ausgeführt, also der durch die zweiten maskierten Ausgangsdaten 40 repräsentierte Wert C' mit C' = DESK,M(P') berechnet. Die ersten maskierten Ausgangsdaten 34 bestimmen sich dann in Schritt 58 als das dritt-geringstwertige Byte C'[2] der zweiten maskierten Ausgangsdaten 40; dieses Byte ist die gesuchte maskierte Summe y'. Dieses Ergebnis folgt aus (**), weil C' = (DESK(P[7] |...| P[2]|b|a)) ⊕ M und C'[2] = (a + b mod 256) ⊕ w gelten.
  • Die Summenberechnung nach dem gerade beschriebenen Verfahren ist gegen Nebenkanalangriffe resistent, weil an keiner Stelle des Verfahrens die Masken abgenommen oder umgerechnet werden müssen.
  • Die oben bei dem Verfahren zur Durchführung eines Tabellenzugriffs gegebenen Bemerkungen zu möglichen Implementierungen und Abwandlungen sind entsprechend auch für das gerade beschriebene Additionsverfahren anwendbar. Insbesondere können bei einer wiederholten Ausführung des Verfahrens stets neue Masken u, v, w benutzt werden, um den Ausspähungsschutz weiter zu erhöhen. Es versteht sich ferner, daß die oben gewählten Byte-Positionen für die Summanden und das Ergebnis lediglich eine Möglichkeit von vielen darstellen. Die Positionen können in Ausführungsalternativen beliebig variiert werden. Es ist allerdings wünschenswert – aber nicht zwingend erforderlich –, daß sich die Positionen der Summanden von der Position des Ergebnisses unterscheiden.
  • Das gerade beschriebene Additionsverfahren dient primär zur Erläuterung von Grundprinzipien der Erfindung. Es ist unwahrscheinlich, daß sich geeignete Konfigurationswerte 26, 28 für dieses Verfahren finden lassen, weil es insgesamt 22048 Abbildungen T: {0, ..., 255}2 → {0, ..., 255} gibt, von denen für das Additionsverfahren genau eine benötigt wird. Durch die sechs nicht durch die Summanden belegten Bytes P[7], ..., P[2] im Klartext P und die effektiv 56 Bits im Schlüssel K lassen sich maximal 2104 Abbildungen der Form (a, b) ↦ (DESK(P[7] |...| P[2]|b|a))[2] definieren. Es ist höchst unwahrscheinlich, daß sich die gesuchte Abbildung unter diesen 2104 verfügbaren Abbildungen befindet. Allerdings kann die Wahrscheinlichkeit vergrößert werden, indem von Variationsmöglichkeiten des Verfahrens wie z. B. geänderten Bytepositionen Gebrauch gemacht wird.
  • Im folgenden wird als weiteres Anwendungsbeispiel ein iteratives Additionsverfahren beschrieben, das für alle Operanden-Bitlängen anwendbar ist. Das Verfahren beruht auf der Grundidee, eine Summe a + b – oder, falls gewünscht, einen modularen Rest einer solchen Summe – in mehreren Teilschritten zu ermitteln, wobei in jedem Teilschritt je eine Bitgruppe der Summanden mit Übertrag addiert wird. Hierbei wird die Recheneinheit 36 für jede der in den Teilschritten ausgeführten Additionen verwendet. Mit anderen Worten läßt sich das Verfahren als die iterative Anwendung einer Additionstabelle, die z. B. für Operanden mit je zwei Bit Länge zur Verfügung steht, auf Summanden beliebiger Länge beschreiben.
  • Die iterative Anwendung einer Additionstabelle zur Durchführung einer langen Addition ist an sich gut bekannt und wird daher im folgenden nur kurz beschrieben. In der hier verwendeten Notation seien a, b ∊ {0, ..., 4n – 1} die zu addierenden Werte in unmaskierter Darstellung. Wenn beispielsweise die Addition in 2-Bit-Gruppen durchgeführt werden soll, dann lassen sich a und b in einem 4-er-Stellenwertsystem als a = an-14n-1 + ... + a14 + a0 = (an-1 |...| a1|a0) und b = bn-14n-1 + ... + b14 + b0 = (bn-1 |...| b1|b0) mit a1, b1 ∊ {0, ..., 3} für i = 0, ..., n – 1 schreiben. Die Koeffizienten für die Summe a + b lauten dann (an-1 + bn-1 + cn-2 – 4cn-1 |...| a1 + b1 + c0 – 4c1|a0 + b0 – 4c0), wobei die Werte ci ∊ {0, 1} für i = 0, ..., n – 1 Übertragsbits (Carry-Bits) sind, durch die die Koeffizienten im zulässigen Wertebereich gehalten werden.
  • Die Anwendung des gerade umrissenen iterativen Additionsverfahrens setzt voraus, daß für jede Stelle i = 0, ..., n – 1 aus den Koeffizienten oder ”Ziffern” ai, bi ∊ {0, ..., 3} der Summanden und dem Übertrag ci-1 ∊ {0, 1} der vorherigen Stelle der Koeffizient ai + bi + ci-1 mod 4 des Ergebnisses und der Übertrag ci = ai + bi + ci-1 div 4 auf die nächste Stelle berechnet werden kann. Hierzu wird das im folgenden beschriebene Verfahren eingesetzt, das die durch die Recheneinheit 36 als zweite Operation OP2 ausgeführte DES-Berechnung ähnlich wie bei den bereits beschriebenen Verfahren nutzt.
  • Gegeben seien Koeffizienten a', b' ∊ {0, ..., 3}, die mit Masken u, v ∊ {0, ..., 3} vermöge a' = a ⊕ u und b' = b ⊕ v maskiert sind. Die Werte a, b stellen die unmaskierten Koeffizienten oder ”Ziffern” einer Stelle gemäß der oben beschriebenen langen Addition dar; die Stellenangabe durch den Index i wird hier der Einfachheit halber weggelassen. Ferner sei ein mit einer XOR-Maske s ∊ {0, 1} maskierter Übertrag c' ∊ {0, 1} von der vorherigen Stelle gegeben; es gilt c' = c ⊕ s. Schließlich seien noch eine Maske w ∊ {0, ..., 3} für das Ergebnis und eine Maske t ∊ {0, 1} für den Übertrag zur nächsten Stelle gegeben. Die maskierten Koeffizienten a', b' sowie der maskierte Übertrag c' stellen die ersten maskierten Eingangsdaten 32 dar.
  • Durch das Verfahren sollen als erste maskierte Ausgangsdaten 34 eine mit der Maske w maskierte Summenziffer (a + b + c mod 4) ⊕ w ∊ {0, ..., 3} und ein maskierter Übertrag (a + b + c div 4) ⊕ t E {0, 1} auf die nächste Stelle bestimmt werden. Wieder ist es hierzu erforderlich, als einmalige, sehr aufwendige Vorleistung geeignete Konfigurationswerte 26, 28 zu ermitteln. Die externe Vorrichtung 30 muß als ersten Konfigurationswert 26 einen DES-Schlüssel K und als zweiten Konfigurationswert 28 fünf Klartextbytes P[7], ..., P[3] finden, so daß für alle Koeffizienten a, b ∊ {0, ..., 3} und Übertragswerte C ∊ {0, 1} gilt: (C[3] mod 4) = (a + b + c mod 4) und (C[4] mod 2) = (a + b + c div 4) wobei C = DESK(P) mit P = (P[7] |...| P[3]|c|b|a) (***)
  • Die Werte a, b und c bei der durch (***) definierten Suche werden, soweit erforderlich, durch höherwertige ”0”-Bits zu Byte-Werten ergänzt.
  • In dem Datenträger 10 liegen geeignete Konfigurationswerte 26, 28 mit der durch (***) spezifizierten Eigenschaft in der Speicherbaugruppe 16 vor. Zur Durchführung der Addition für eine Stelle wird zunächst der durch den ersten Konfigurationswert 26 angegebene DES-Schlüssel K in die ersten Parameterdaten 44 eingeschrieben, sofern dies nicht bereits bei einem früheren Iterationsschritt des Verfahrens geschehen ist.
  • In dem hier beschriebenen Ausführungsbeispiel sind als Bytepositionen für die beiden Koeffizienten a, b die beiden geringstwertigen Bytes (Bytepositionen 0 und 1) vorgesehen. Der eingehende Übertrag befindet sich an Byteposition 2. Die Ergebnisse, nämlich der Summenwert und der ausgehende Übertrag, werden an den Bytepositionen 3 und 4 erwartet. Diese hier als Beispiel gewählten Bytepositionen spiegeln sich in den zweiten Ein- und Ausgangsdaten 38, 40 sowie in der Maske M = (M[7] |...| M[0]) wieder, die in die Maskendaten 42 eingeschrieben wird. Alle nicht belegten Bits der Maskendaten 42 werden zufällig gewählt.
  • In Formelschreibweise werden M[7], M[6] und M[5] auf Zufallszahlen im Bereich 0, ..., 255 gesetzt. Die Masken u, v und w werden durch je sechs Zufallsbits zu M[0], M[1] bzw. M[3] ergänzt; es gilt also M[0] mod 4 = u, M[1] mod 4 = v und M[3] mod 4 = w. Die Bitmasken s und t werden durch je sieben Zufallsbits zu M[2] bzw. M[4] ergänzt, so daß M[2] mod 2 = s und M[4] mod 2 = t gelten.
  • Die zweiten maskierten Eingangsdaten 38 enthalten einerseits den geeignet maskierten zweiten Konfigurationswert 28 und andererseits die ersten maskierten Eingangsdaten 32. In Formelschreibweise werden die zweiten maskierten Eingangsdaten 38 auf P' = (P'[7] |...| (P'[0]) mit P'[i] = P[i] ⊕ M[i] für i = 7, ..., 3 gesetzt; der zweite Konfigurationswert 28 gibt hierbei die fünf unmaskierten Klartextbytes P[7], ..., P[3] an. Das maskierte Klartextbyte P'[2] setzt sich aus den sieben höherwertigen Bits von M[2] sowie aus dem maskierten Übertragsbit c' = c ⊕ s zusammen; es gilt P'[2] mod 2 = c'. Das maskierte Klartextbyte P'[1] wird aus den sechs höherwertigen Bits von M[1] sowie aus dem zwei Bit breiten, maskierten Koeffizienten b' = b ⊕ v gebildet, so daß P'[1] mod 4 = b' gilt. Das maskierte Klartextbyte P'[0] besteht aus den sechs höherwertigen Bits von M[0] sowie aus dem zwei Bit breiten, maskierten Koeffizienten a' = a ⊕ u; es gilt P'[0] mod 4 = a'.
  • Die Recheneinheit 36 führt nun die zweite Operation OP2 aus. Die dabei berechneten zweiten maskierten Ausgangsdaten 40 repräsentieren den Wert C' mit C' = DESK,M(P'). Die ersten maskierten Ausgangsdaten 34 sind in diesem Ergebnis enthalten, und zwar wird die maskierte Summenziffer (a + b + c mod 4) ⊕ w durch C'[3] mod 4 angegeben, und der maskierte Übertrag (a + b + c div 4) ⊕ t ergibt sich als C'[4] mod 2. Die Korrektheit dieser Berechnung folgt aus (***), weil C' = (DESK(P[7] |...| P[3]|c|b|a)) ⊕ M und daher (C'[3] mod 4) = (a + b + c mod 4) ⊕ w sowie (C'[4] mod 2) = (a + b + c div 4) ⊕ t gelten.
  • Insgesamt erlaubt das gerade beschriebene Verfahren als Komponente eines Stellenwert-Additionsverfahrens eine Addition von prinzipiell beliebig langen Summanden. Die Berechnung ist zwar recht aufwendig, aber in vielen Fällen dennoch schneller und/oder sicherer als bislang bekannte Additionsverfahren, die z. B. eine Maskenumwandlung erfordern. Das hier beschriebene Verfahren ist gegen Nebenkanalangriffe resistent, weil an keiner Stelle des Verfahrens die Masken abgenommen oder umgerechnet werden müssen.
  • Die bei den anderen bislang behandelten Verfahren gegebenen Bemerkungen zu möglichen Implementierungen und Abwandlungen sind entsprechend auch für das gerade beschriebene Additionsverfahren anwendbar. Insbesondere können bei jeder Berechnung einer Stelle innerhalb der iterativen Addition neue Masken u, v, w, s, t verwendet werden, um einen besonders guten Schutz gegen differentielle Nebenkanalangriffe zu erhalten.
  • Die oben beispielhaft gewählten Byte- und Bitpositionen können in Ausführungsalternativen beliebig variiert werden. Insbesondere können mehrere Ein- und/oder Ausgangswerte an einer einzigen Byteposition zusammengefaßt werden. Dadurch vergrößert sich der für die Parametrisierung der Recheneinheit 36 zur Verfügung stehende Platz in den zweiten maskierten Eingangsdaten 38; allerdings wird dann eine relativ aufwendige bitweise Datenmanipulation erforderlich. Eine ähnliche Wirkung kann in weiteren Ausführungsalternativen dadurch erreicht werden, daß die oben nur mit Maskenbits aufgefüllten Teile der zweiten maskierten Eingangsdaten 38 zur Parametrisierung der Recheneinheit 36 mit herangezogen werden.
  • Während oben beispielhaft eine lange Addition in 2-Bit-Abschnitten beschrieben wurde, ist auch eine Addition in 3-Bit-Abschitten – entsprechend einem 8-er-Stellenwertsystem – möglich. Ferner ist eine Addition in 1-Bit-Abschnitten problemlos realisierbar; diese ist jedoch langsam und aus kryptologischen Gründen weniger vorteilhaft.
  • In dem oben beschriebenen Ausführungsbeispiel wurde als erste Operation OP1 eine Abbildung von 5 Bit auf 3 Bit definiert. Es gibt 296 solche Abbildungen, so daß sich geeignete Konfigurationswerte 26, 28 möglicherweise nicht oder nur schwer auffinden lassen. Zur Verringerung der Komplexität kann jedoch ausgenutzt werden, daß wegen (a + b + c mod 2) = (a ⊕ b ⊕ c mod 2) nur das höherwertige Bit der Summenziffer (a + b + c mod 4) benötigt wird. Wenn von dieser Beziehung Gebrauch gemacht wird, reduziert sich die erste Operation OP1 auf eine Abbildung von 5 Bit auf 2 Bit. Da insgesamt nur 264 solche Abbildungen existieren, ist sicher, daß sich bei hinreichendem Suchaufwand passende Konfigurationswerte 26, 28 auffinden lassen.
  • Die Komplexität des Verfahrens kann in Ausführungsalternativen weiter verringert werden, wenn ohne Übertrag gearbeitet wird oder wenn randomisiert abhängig von Übertragsbits c auf die zugehörigen Klartextanteile zugegriffen wird. In diesem Fall braucht nur nach einer von insgesamt 232 Abbildungen gesucht zu werden. Eine solche Suche stellt kein Problem dar.

Claims (21)

  1. Verfahren zum ausspähungsgeschützten Ausführen einer ersten Operation (OP1), bei der erste maskierte Ausgangsdaten (34) aus ersten maskierten Eingangsdaten (32) bestimmt werden, unter Verwendung einer maskenunterstützenden Recheneinheit (36) eines tragbaren Datenträgers (10), wobei die Recheneinheit (36) nicht für die erste Operation (OP1) vorgesehen ist, sondern eine zweite Operation (OP2) ausführt, bei der in Abhängigkeit von Parameterdaten (44, 46) zweite maskierte Ausgangsdaten (40) aus zweiten maskierten Eingangsdaten (38) berechnet werden, mit den Schritten: – Setzen der Parameterdaten (44, 46) zumindest auch in Abhängigkeit von zumindest einem außerhalb des tragbaren Datenträgers (10) vorausberechneten Konfigurationswert (26, 28), – Bestimmen der zweiten maskierten Eingangsdaten (38) zumindest auch in Abhängigkeit von den ersten maskierten Eingangsdaten (32), – Ausführen der zweiten Operation (OP2) durch die Recheneinheit (36), um die zweiten maskierten Ausgangsdaten (40) zu ermitteln, und – Bestimmen der ersten maskierten Ausgangsdaten (34) zumindest auch in Abhängigkeit von den zweiten maskierten Ausgangsdaten (40).
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß erste und zweite Parameterdaten (44, 46) und ein erster und ein zweiter Konfigurationswert (26, 28) vorgesehen sind, wobei die ersten Parameterdaten (44) zumindest auch in Abhängigkeit von dem ersten Konfigurationswert (26) und die zweiten Parameterdaten (46) zumindest auch in Abhängigkeit von dem zweiten Konfigurationswert (28) gesetzt werden.
  3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß die ersten Parameterdaten (44) auf den ersten Konfigurationswert (26) gesetzt werden.
  4. Verfahren nach Anspruch 2 oder Anspruch 3, dadurch gekennzeichnet, daß die zweiten Parameterdaten (46) auf einen Wert gesetzt werden, der sich durch eine Maskierung des zweiten Konfigurationswertes (28) ergibt.
  5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß die zweiten maskierten Eingangsdaten (38) mindestens einen Abschnitt mit den ersten maskierten Eingangsdaten (32) enthalten.
  6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß die Bitlänge der ersten maskierten Eingangsdaten (32) höchstens die Hälfte oder höchstens ein Viertel oder höchstens ein Achtel der Bitlänge der zweiten maskierten Eingangsdaten (38) beträgt.
  7. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß die zweiten maskierten Eingangsdaten (38) mindestens einen Abschnitt mit den zweiten Parameterdaten (46) enthalten.
  8. Verfahren nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß die zweiten maskierten Ausgangsdaten (40) mindestens einen Abschnitt mit den ersten maskierten Ausgangsdaten (34) enthalten.
  9. Verfahren nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, daß die Bitlänge der ersten maskierten Ausgangsdaten (34) höchstens die Hälfte oder höchstens ein Viertel oder höchstens ein Achtel der Bitlänge der zweiten maskierten Ausgangsdaten (40) beträgt.
  10. Verfahren nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, daß die Recheneinheit (36) die zweite Operation (OP2) in Abhängigkeit von Maskendaten (42) ausführt, und daß durch die Maskendaten (42) auch die Maskierung der ersten maskierten Eingangsdaten (32) und/oder der ersten maskierten Ausgangsdaten (34) bestimmt wird.
  11. Verfahren nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, daß der mindestens eine Konfigurationswert (26, 28) unabhängig von den ersten maskierten Eingangsdaten (32) ist.
  12. Verfahren nach einem der Ansprüche 1 bis 11, dadurch gekennzeichnet, daß die Recheneinheit (36) ein kryptographischer Koprozessor (24) ist, der eine kryptographische Operation ausführt.
  13. Verfahren nach Anspruch 12, dadurch gekennzeichnet, daß zumindest ein Teil der Parameterdaten (44) ein Schlüssel für die kryptographische Operation ist.
  14. Verfahren nach einem der Ansprüche 1 bis 13, dadurch gekennzeichnet, daß die erste Operation (OP1) ein Tabellenzugriff ist.
  15. Verfahren nach einem der Ansprüche 1 bis 13, dadurch gekennzeichnet, daß die erste Operation (OP1) eine Addition ist.
  16. Verfahren nach Anspruch 15, dadurch gekennzeichnet, daß das Verfahren zumindest abschnittsweise wiederholt ausgeführt wird, um eine iterative Addition durchzuführen.
  17. Verfahren zum Bestimmen mindestens eines Konfigurationswertes (26, 28) außerhalb eines tragbaren Datenträgers (10) durch eine externe Vorrichtung (30), wobei der mindestens eine Konfigurationswert (26, 28) dazu eingerichtet ist, im Zusammenhang mit der Parametrisierung einer maskenunterstützenden Recheneinheit (36) des Datenträgers (10) verwendet zu werden, um zu bewirken, daß die Recheneinheit (36) beim Ausführen einer zweiten Operation (OP2), bei der zweite maskierte Ausgangsdaten (40) aus zweiten maskierten Eingangsdaten (38) berechnet werden, eine gewünschte erste Operation (OP1) ausführt, bei der erste maskierte Ausgangsdaten (34) aus ersten maskierten Eingangsdaten (32) berechnet werden, wobei die ersten maskierten Eingangsdaten (32) in den zweiten maskierten Eingangsdaten (38) enthalten sind und die ersten maskierten Ausgangsdaten (34) in die zweiten maskierten Ausgangsdaten (40) enthalten sind.
  18. Verfahren nach Anspruch 17, dadurch gekennzeichnet, daß der mindestens eine Konfigurationswert (26, 28) zur Speicherung in dem tragbaren Datenträger (10) und zur Verwendung in einem Verfahren nach einem der Ansprüche 1 bis 16 vorgesehen ist.
  19. Computerprogrammprodukt, das eine Vielzahl von Programmbefehlen aufweist, um eine programmierbare Vorrichtung zu veranlassen, ein Verfahren nach einem der Ansprüche 1 bis 18 durchzuführen.
  20. Tragbarer Datenträger (10), insbesondere Chipkarte oder Chipmodul, der einen Mikrocontroller (12) aufweist und dazu eingerichtet ist, ein Verfahren nach einem der Ansprüche 1 bis 16 auszuführen.
  21. Tragbarer Datenträger (10), der mindestens einen nach einem Verfahren gemäß Anspruch 17 oder Anspruch 18 berechneten Konfigurationswert (26, 28) enthält.
DE102004052196.4A 2004-10-27 2004-10-27 Ausspähungsgeschütztes Ausführen von Operationen unter Verwendung einer maskenunterstützenden Recheneinheit Expired - Fee Related DE102004052196B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102004052196.4A DE102004052196B4 (de) 2004-10-27 2004-10-27 Ausspähungsgeschütztes Ausführen von Operationen unter Verwendung einer maskenunterstützenden Recheneinheit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102004052196.4A DE102004052196B4 (de) 2004-10-27 2004-10-27 Ausspähungsgeschütztes Ausführen von Operationen unter Verwendung einer maskenunterstützenden Recheneinheit

Publications (2)

Publication Number Publication Date
DE102004052196A1 DE102004052196A1 (de) 2006-05-11
DE102004052196B4 true DE102004052196B4 (de) 2017-04-06

Family

ID=36217058

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102004052196.4A Expired - Fee Related DE102004052196B4 (de) 2004-10-27 2004-10-27 Ausspähungsgeschütztes Ausführen von Operationen unter Verwendung einer maskenunterstützenden Recheneinheit

Country Status (1)

Country Link
DE (1) DE102004052196B4 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021003275B3 (de) 2021-06-24 2022-07-14 Giesecke+Devrient Mobile Security Gmbh Verfahren zur Berechnung eines Übergangs von einer booleschen zu einer arithmetischen Maskierung

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5768390A (en) * 1995-10-25 1998-06-16 International Business Machines Corporation Cryptographic system with masking
EP1004992A2 (de) * 1997-03-24 2000-05-31 Visa International Service Association System und Verfahren für eine Mehranwendungschipkarte zum Vereinfachen des Fernladens einer Anwendung nach der Kartenausgabe
WO2000041356A1 (en) * 1998-12-30 2000-07-13 Koninklijke Kpn N.V. Method and device for cryptographically processing data
DE19960047A1 (de) * 1999-01-29 2000-08-17 Ibm Verfahren und Einheit zur sicheren Informationsbehandlung in einem kryptographischen Informationsverarbeitungssystem
US6295606B1 (en) * 1999-07-26 2001-09-25 Motorola, Inc. Method and apparatus for preventing information leakage attacks on a microelectronic assembly
WO2002051064A1 (fr) * 2000-12-19 2002-06-27 Gemplus Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete
WO2003017067A2 (en) * 2001-08-14 2003-02-27 International Business Machines Corporation Space-efficient, side-channel attack resistant table lookups
US20040071288A1 (en) * 2001-02-08 2004-04-15 Fabrice Romain Secure encryption method and component using same
FR2850811A1 (fr) * 2003-01-30 2004-08-06 St Microelectronics Sa Procede anti-fraude pour circuit integre manipulant des donnees secretes

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5768390A (en) * 1995-10-25 1998-06-16 International Business Machines Corporation Cryptographic system with masking
EP1004992A2 (de) * 1997-03-24 2000-05-31 Visa International Service Association System und Verfahren für eine Mehranwendungschipkarte zum Vereinfachen des Fernladens einer Anwendung nach der Kartenausgabe
WO2000041356A1 (en) * 1998-12-30 2000-07-13 Koninklijke Kpn N.V. Method and device for cryptographically processing data
DE19960047A1 (de) * 1999-01-29 2000-08-17 Ibm Verfahren und Einheit zur sicheren Informationsbehandlung in einem kryptographischen Informationsverarbeitungssystem
US6295606B1 (en) * 1999-07-26 2001-09-25 Motorola, Inc. Method and apparatus for preventing information leakage attacks on a microelectronic assembly
WO2002051064A1 (fr) * 2000-12-19 2002-06-27 Gemplus Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete
US20040071288A1 (en) * 2001-02-08 2004-04-15 Fabrice Romain Secure encryption method and component using same
WO2003017067A2 (en) * 2001-08-14 2003-02-27 International Business Machines Corporation Space-efficient, side-channel attack resistant table lookups
FR2850811A1 (fr) * 2003-01-30 2004-08-06 St Microelectronics Sa Procede anti-fraude pour circuit integre manipulant des donnees secretes

Also Published As

Publication number Publication date
DE102004052196A1 (de) 2006-05-11

Similar Documents

Publication Publication Date Title
DE69828787T2 (de) Verbessertes verfahren und vorrichtung zum schutz eines verschlüsselungsverfahrens mit öffentlichem schlüssel gegen angriffe mit zeitmessung und fehlereinspeisung
DE60217260T2 (de) Datenverarbeitungs- und Verschlüsselungseinheit
EP3593483B1 (de) Übergang von einer booleschen maskierung zu einer arithmetischen maskierung
DE69932740T2 (de) Verfahren und vorrichtung zur kryptographischen datenverarbeitung
DE10319435A1 (de) Verfahren zur Verarbeitung von Daten
EP1664979B1 (de) Übergang zwischen maskierten repräsentationen eines wertes bei kryptographischen berechnungen
DE112018002723B4 (de) System, verfahren und vorrichtung zur verschleierung von vorrichtungsoperationen
DE60103515T2 (de) Kryptografisches verfahren zum schutz gegen betrug
DE60022840T2 (de) Verfahren zum sichern einer oder mehrerer elektronischer baugruppen, unter zuhilfenahme eines privatschlüssel-krypto-algorithmus, sowie elektronische baugruppe
DE102018116572A1 (de) Schutz gegen seitenkanalangriffe
DE102004052196B4 (de) Ausspähungsgeschütztes Ausführen von Operationen unter Verwendung einer maskenunterstützenden Recheneinheit
EP1615098B1 (de) Ausspähungsgeschütztes Berechnen eines maskierten Ergebniswertes
EP2545483A1 (de) Ausspähungsschutz bei der ausführung einer operationssequenz in einem tragbaren datenträger
EP1596527B1 (de) Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung
EP1506473B1 (de) Ausspähungsgeschützte modulare inversion
DE112020006160T5 (de) Kryptografische verschleierungsparameter, die bei der elliptische-kurven-kryptografie verwendet werden, und zugehörige systeme und vorrichtungen
DE102018006313A1 (de) Verfahren mit Safe-Error-Abwehrmaßnahme
DE102023106166B3 (de) Sicherheits-controller und verfahren zur durchführung einer auswahlfunktion
DE102021101697B3 (de) Datenverarbeitungsvorrichtung und verfahren zum verarbeiten geheimer daten
EP1518165B1 (de) Berechnung eines vielfachen eines gruppenelements für kryptographische zwecke
DE102004001659B4 (de) Vorrichtung und Verfahren zum Konvertieren einer ersten Nachricht in eine zweite Nachricht
DE10156708A1 (de) Verfahren und Vorrichtung zum Multiplizieren und Verfahren und Vorrichtung zum Addieren auf einer elliptischen Kurve
DE10253285B4 (de) Verschleierung eines geheimen Wertes
EP1760929B1 (de) Geschütztes kryptographisches Verfahren
DE102022131526A1 (de) Verarbeitungsschaltung

Legal Events

Date Code Title Description
OR8 Request for search as to paragraph 43 lit. 1 sentence 1 patent law
8105 Search report available
R012 Request for examination validly filed

Effective date: 20110912

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R081 Change of applicant/patentee

Owner name: GIESECKE+DEVRIENT MOBILE SECURITY GMBH, DE

Free format text: FORMER OWNER: GIESECKE & DEVRIENT GMBH, 81677 MUENCHEN, DE

R020 Patent grant now final
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee