DE102013205542A1 - Vorrichtung und Verfahren zur Verarbeitung von Daten - Google Patents

Vorrichtung und Verfahren zur Verarbeitung von Daten Download PDF

Info

Publication number
DE102013205542A1
DE102013205542A1 DE102013205542.0A DE102013205542A DE102013205542A1 DE 102013205542 A1 DE102013205542 A1 DE 102013205542A1 DE 102013205542 A DE102013205542 A DE 102013205542A DE 102013205542 A1 DE102013205542 A1 DE 102013205542A1
Authority
DE
Germany
Prior art keywords
data words
measured values
data
processing
coding
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.)
Pending
Application number
DE102013205542.0A
Other languages
English (en)
Inventor
Matthew Lewis
Robert Szerwinski
Paulius Duplys
Jamshid Shokrollahi
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch 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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102013205542.0A priority Critical patent/DE102013205542A1/de
Priority to US14/224,464 priority patent/US9767281B2/en
Priority to CN201410118859.2A priority patent/CN104077349B/zh
Publication of DE102013205542A1 publication Critical patent/DE102013205542A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/556Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
    • 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Probability & Statistics with Applications (AREA)
  • Microelectronics & Electronic Packaging (AREA)

Abstract

Die Erfindung betrifft eine Vorrichtung (100) zur Verarbeitung von Daten, wobei die Vorrichtung (100) eine Eingangsschnittstelle (110) zum Empfang von Eingangsdaten (X) aufweist und eine Verarbeitungseinheit (120) zur Verarbeitung von Daten, dadurch gekennzeichnet, dass eine Kodiereinheit (130) vorgesehen ist, die dazu ausgebildet ist, an der Eingangsschnittstelle (110) als Eingangsdaten (X) erhaltene Datenworte (Xn) zu kodieren, um kodierte Datenworte (Xn‘) zu erhalten, wobei für kodierte Datenworte (Xn‘) die kodierten Datenworte (Xn‘) und/oder ihre Verarbeitung durch die Vorrichtung (100) charakterisierende Messwerte (X1n, X2n) in Abhängigkeit mindestens einer physikalischen Größe der Vorrichtung (100) ermittelbar sind, wobei die Kodiereinheit (130) dazu ausgebildet ist, die Datenworte (Xn) so zu kodieren, dass ein vorgebbarer Anteil aller Messwerte (X1n, X2n), vorzugsweise mindestens etwa 50% aller Messwerte (X1n, X2n), einen Unterschied zu einem Vorgabewert (Vn) aufweist, der kleiner oder gleich einem vorgebbaren Schwellwert (S) ist, und dass die Verarbeitungseinheit (120) dazu ausgebildet ist, die kodierten Datenworte (Xn‘) zu verarbeiten.

Description

  • Stand der Technik
  • Die Erfindung betrifft eine Vorrichtung zur Verarbeitung von Daten, wobei die Vorrichtung eine Eingangsschnittstelle zum Empfang von Eingangsdaten aufweist und eine Verarbeitungseinheit zur Verarbeitung von Daten.
  • Die Erfindung betrifft ferner ein Verfahren zum Betreiben einer derartigen Vorrichtung.
  • Offenbarung der Erfindung
  • Es ist Aufgabe der vorliegenden Erfindung, eine Vorrichtung und ein Verfahren der eingangs genannten Art derart zu verbessern, dass eine gesteigerte Sicherheit gegenüber Angriffen, insbesondere Seitenkanalattacken gegeben ist.
  • Diese Aufgabe wird bei der Vorrichtung der eingangs genannten Art erfindungsgemäß dadurch gelöst, dass eine Kodiereinheit vorgesehen ist, die dazu ausgebildet ist, an der Eingangsschnittstelle als Eingangsdaten erhaltene Datenworte zu kodieren, um kodierte Datenworte zu erhalten, wobei für kodierte Datenworte die kodierten Datenworte und/oder ihre Verarbeitung durch die Vorrichtung charakterisierende Messwerte in Abhängigkeit von mindestens einer physikalischen Größe der Vorrichtung ermittelbar sind, wobei die Kodiereinheit dazu ausgebildet ist, die Datenworte so zu kodieren, dass ein vorgebbarer Anteil aller Messwerte, vorzugsweise mindestens etwa 50 % aller Messwerte, einen Unterschied zu einem Vorgabewert aufweist, der kleiner oder gleich einem vorgebbaren Schwellwert ist, und dass die Verarbeitungseinheit dazu ausgebildet ist, die kodierten Datenworte zu verarbeiten.
  • Erfindungsgemäß ist erkannt worden, dass bei einer Kodierung der zu verarbeitenden Datenworte gemäß dem vorstehend vorgeschlagenen Prinzip Seitenkanalattacken auf die erfindungsgemäße Vorrichtung erschwert bzw. unmöglich gemacht werden können. Bekanntlich werden Seitenkanalattacken auf bestimmte Implementierungen von Datenverarbeitungsvorrichtungen bzw. Verfahren wie bspw. Implementierungen von kryptografischen Algorithmen und dergleichen angewandt, wobei ausgenutzt wird, dass ein oder mehrere beobachtbare bzw. messbare physikalische Größen der Vorrichtung von den verarbeiteten Daten abhängen und somit Rückschlüsse über die verarbeiteten Daten wie bspw. einem geheimen kryptografischen Schlüssel und dergleichen zulassen.
  • Im Rahmen einer Seitenkanalattacke können also bspw. die vorstehend erwähnten Messwerte, welche die kodierten Datenworte repräsentieren, und/oder welche eine Verarbeitung dieser kodierten Datenworte durch die Vorrichtung charakterisieren, messtechnisch erfasst werden, und ein Angreifer kann versuchen, aus diesen Messwerten Informationen über die eigentlich verarbeiteten Daten zu erhalten.
  • Erfindungsgemäß ist erkannt worden, dass es möglich ist, eine Kodierung der Datenworte vor deren Verarbeitung derart vorzusehen, dass eine Seitenkanalattacke auf die Vorrichtung erschwert wird. Das erfindungsgemäße Prinzip beruht darauf, dass die Kodierung mit dem Ziel vorgenommen wird, dass die für die Seitenkanalattacke zu ermittelnden Messwerte weniger „unterscheidungskräftig“ werden bzw. eine geringere Korrelation zu den eigentlich verarbeiteten Daten aufweisen. Mit anderen Worten sieht die erfindungsgemäße Kodierung vor, dass die tatsächlich verarbeiteten Daten, nämlich die kodierten Datenworte, so an die konkrete Implementierung der Vorrichtung angepasst sind (gegenüber den nicht kodierten Datenworten), dass für eine Seitenkanalattacke verwendete Messwerte einen geringeren Informationsgehalt bzw. eine geringere Korrelation hinsichtlich der verarbeiteten Datenworte enthalten. Eine derartige Kodierung kann auch als sog. „leakage preserving code“ bezeichnet werden, weil sie „leakage“ im kryptographischen Sinn reduziert bzw. verhindert.
  • Bei einer bevorzugten Ausführungsform ist vorgesehen, dass der Vorgabewert für alle Messwerte gleich gewählt ist, was eine einfache Ermittlung eines betreffenden Kodes ermöglicht.
  • Bei einer besonders bevorzugten Ausführungsform ist als Vorgabewert ein Mittelwert über alle möglichen Werte der Messwerte gewählt. In diesem Sinn wird unter „allen möglichen Werten der Messwerte“ die Menge aller Messwerte verstanden, wie sie sich ergibt bei der Verarbeitung aller kodierten Datenworte, die durch die erfindungsgemäße Kodierung vorgesehen sind. Die Menge aller möglichen Messwerte kann bspw. in einem Versuchsaufbau an einer konkreten Implementierung der erfindungsgemäßen Vorrichtung ermittelt werden, indem bei gegebener Kodierung eine Datenverarbeitung durch die Vorrichtung derart erfolgt, dass jedes kodierte Datenwort einmal der Verarbeitungseinheit zur Verarbeitung zugeführt wird. Bei der Verarbeitung eines entsprechenden Datenwortes wird dementsprechend ein bestimmter Messwert erhalten, der das Datenwort charakterisiert bzw. die Verarbeitung des Datenworts in der Vorrichtung. Die so erhaltenen Messwerte können einer Ausführungsform zufolge ermittelt werden und schließlich kann z.B. ihr Mittelwert als Vorgabewert für die erfindungsgemäße Kodierung verwendet werden. Bspw. kann die erfindungsgemäße Kodierung, also eine Zuordnung von kodierten Datenworten zu nicht kodierten Datenworten, auch schrittweise ermittelt werden. Diese Zuordnung kann bspw. in einem iterativen Verfahren vorgenommen werden, um die kodierten Datenworte bzw. die Transformation, welche durch die erfindungsgemäße Kodiereinheit im Rahmen der Kodierung vorgenommen wird, schrittweise so zu verfeinern, bis ein Unterschied eines oder mehrerer bestimmter Messwerte zu dem Vorgabewert das erfindungsgemäße Schwellwertkriterium erfüllt. Dann ist sichergestellt, dass sich die aus den solchermaßen kodierten Datenworten ableitbaren Messwerte nur derart geringfügig von dem Vorgabewert unterscheiden, dass eine Seitenkanalattacke, die durch Auswertung der Messwerte oder daraus abgeleiteten Werten vorgenommen wird, wesentlich erschwert bzw. unmöglich gemacht wird.
  • Besonders vorteilhaft beruht das erfindungsgemäße Prinzip nicht auf der Verwendung von Zufallszahlen bzw. Pseudozufallszahlen. Vielmehr stellt die erfindungsgemäße Kodierung eine deterministische Vorschrift zur Transformation der zu verarbeitenden Daten in die kodierten Datenworte dar. Bevorzugt kann für jede spezifische Implementierung der Vorrichtung eine spezielle Kodierung ermittelt und verwendet werden. Es ist auch denkbar, für eine spezifische Implementierung der Vorrichtung mehrere mögliche Kodierungen zu ermitteln und diese Während eines Betriebs der Vorrichtung zu wechseln, wodurch die Sicherheit gegenüber Seitenkanalattacken weiter gesteigert wird.
  • Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass der Vorgabewert nicht für alle Messwerte gleich gewählt ist. Dies bedeutet, dass die erfindungsgemäße Kodierung der betreffenden Ausführungsform zufolge Freiheitsgrade dahingehend bietet, für unterschiedliche Messwerte unterschiedliche Vorgabewerte vorzusehen. Damit kann bspw. vorteilhaft Unsymmetrien bei der Implementierung bzw. der Erlangung der Messwerte Rechnung getragen werden. Es ist bspw. denkbar, dass bei der Verarbeitung einer ersten Gruppe von kodierten Datenworten Messwerte erlangbar sind, welche einen größeren Informationsgehalt bzgl. der verarbeiteten Daten enthalten als bei der Verarbeitung einer zweiten Gruppe von kodierten Datenworten. In diesem Fall kann es zweckmäßig sein, für die unterschiedlichen Gruppen von kodierten Datenworten unterschiedliche Vorgabewerte vorzusehen, um diese Unsymmetrien zu verringern bzw. zu kompensieren, möglichst mit dem Ziel, dass alle möglichen Messwerte ungeachtet der Unsymmetrien einen ähnlichen Informationsgehalt hinsichtlich der verarbeiteten Daten aufweisen.
  • Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass für mindestens zwei Messwerte bzw. diesen Messwerten zugeordnete Datenworte jeweils ein unterschiedlicher Schwellwert vorgesehen ist. Auf diese Weise kann ein weiterer Freiheitsgrad hinsichtlich der Kodierung geschaffen werden, der es erlaubt, die erfindungsgemäße Transformation, die der Kodierung zugrundeliegt, leichter aufzufinden.
  • Bei einer weiteren vorteilhaften Ausführungsform sind die Messwerte skalare oder vektorielle Größen, oder sie weisen Matrixform auf. Bspw. können die Messwerte einen elektrischen Energieverbrauch der Vorrichtung oder mindestens einer Komponente der Vorrichtung repräsentieren. In diesem Fall kann ein Angreifer der Vorrichtung diesen elektrischen Energieverbrauch als Messwert im Sinne der vorliegenden Erfindung ermitteln, um eine Seitenkanalattacke auszuführen. In diesem konkreten Anwendungsfall bewirkt die erfindungsgemäße Kodierung der schließlich in der Verarbeitungseinheit verarbeiteten kodierten Datenworte vorteilhaft, dass sich die entsprechenden Messwerte für den elektrischen Energieverbrauch der Vorrichtung oder der mindestens einen Komponente nur geringfügig voneinander unterscheiden, wodurch wiederum eine Seitenkanalattacke erschwert wird.
  • Ein Beispiel für Messwerte in vektorieller Ausprägung ist bspw. ein Anwendungsszenario, bei dem mehrere elektrische Energieverbrauchswerte von unterschiedlichen Komponenten bzw. generell Teilen der Vorrichtung je verarbeitetem kodierten Datenwort ermittelt werden. Eine solche Mehrzahl von Messwerten ist selbstverständlich auch in Matrixform organisierbar. Ein weiteres Beispiel, bei dem eine Repräsentation von Messwerten in Matrixform zweckmäßig erscheint, ist bspw. die Ermittlung von von der Vorrichtung abgestrahlten elektromagnetischen Feldern. In diesem Fall kann bspw. eine Mehrzahl von Feldsonden, welche für die Messung der elektromagnetischen Felder verwendet werden, während des Betriebs der Vorrichtung über dieser Vorrichtung platziert werden, und entsprechende Messwerte der einzelnen Feldsonden können bspw. einzelnen Matrixelementen eines in Matrixform vorliegenden Messwerts im Sinne der vorliegenden Erfindung zugeordnet werden.
  • Je nach Ausprägung der Messwerte im Sinne der vorliegenden Erfindung ist natürlich auch die Vergleichsoperation zur Ermittlung des Unterschieds der Messwerte zu dem Vorgabewert entsprechend zu wählen. Dasselbe gilt für den Vorgabewert. Bspw. kann für skalare Größen eine einfache Differenzbildung mit anschließender Betragsbildung vorgesehen sein, um einen Unterschied zwischen einem Messwert, bspw. einem Wert für die elektrische Energieaufnahme der Vorrichtung, zu einem entsprechenden Vorgabewert zu bewerten. Bei vektoriellen oder matrixförmigen Größen für die Messwerte können entsprechend andere geeignete Funktionen definiert sein, um den betreffenden Unterschied zu einem Vorgabewert (bspw. Vorgabevektor, Vorgabematrix und dergleichen) zu definieren.
  • Generell können unter dem Begriff „Messwerte“ im Sinne der vorliegenden Erfindung einer Ausführungsform zufolge auch von physikalischen Messwerten abgeleitete Größen verstanden werden. Bspw. repräsentiert auch eine Hamming-Distanz oder ein Hamming-Gewicht, welches aus einem oder mehreren Messwerten der Vorrichtung abgeleitet ist, einen „Messwert“ im Sinne der vorliegenden Erfindung. Das bedeutet, dass bei entsprechender Ausführung der Erfindung die Kodierung auch derart ausgebildet sein kann, dass die Messwerte, welche nicht direkt physikalisch erfassbaren Werten entsprechen, sondern vielmehr hieraus abgeleiteten Werten, das erfindungsgemäße Schwellwertkriterium einhalten. Das bedeutet, dass die Kodierung erfindungsgemäß auch so ausgeführt werden kann, dass bspw. nicht direkt die physikalischen Messwerte, welche die kodierten Datenworte bzw. deren Verarbeitung repräsentieren, das erfindungsgemäße Schwellwertkriterium einhalten, sondern die hieraus abgeleiteten Größen wie bspw. die Hamming-Distanz oder das Hamming-Gewicht.
  • Bei einer weiteren Ausführungsform ist die Kodiereinheit dazu ausgebildet, die Datenworte so zu kodieren, dass ein vorgebbarer Anteil aller kodierten Datenworte untereinander, vorzugsweise mindestens etwa 50% aller kodierten Datenworte, eine vorgebbare Hammingdistanz und/oder ein vorgebbares Hamminggewicht aufweist. Erfindungsgemäß ist erkannt worden, dass die Transformation der eingangsseitig erhaltenen Datenworte mittels der vorgeschlagenen Kodierung, die Kriterien hinsichtlich Hammingdistanz bzw. Hamminggewicht definiert, eine geringere Leckage von Informationen betreffend die verarbeiteten Daten innerhalb der erfindungsgemäßen Verarbeitungseinheit zur Folge hat, insbesondere auch dazu beitragen kann, das erfindungsgemäße Schwellwertkriterium für die Messwerte einzuhalten.
  • Bei der vorliegenden Ausführungsform wird unter „alle kodierte Datenworte“ bevorzugt die Menge aller theoretisch auftretenden kodierten Datenworte verstanden. Wenn beispielsweise j viele eingangsseitig erhaltenen Datenworte existieren, können diesen j vielen eingangsseitig erhaltenen Datenworten durch die Kodiereinheit entsprechend j viele kodierte Datenworte zugeordnet werden. Vorzugsweise erfolgt die Kodierung bei einer Ausführungsform demgemäß so, dass mindestens etwa 50% der j vielen kodierten Datenworte untereinander eine vorgebbare Hammingdistanz aufweisen. Alternativ oder ergänzend kann die Kodierung vorzugsweise auch so erfolgen, dass mindestens etwa 50% der j vielen kodierten Datenworte ein vorgebbares Hamminggewicht aufweisen.
  • Bei einer vorteilhaften Ausführungsform ist vorgesehen, dass die Verarbeitungseinheit mindestens ein Register aufweist, das zur zumindest zeitweisen Speicherung mindestens eines kodierten Datenworts ausgebildet ist. Das bedeutet, eine einfache Ausführungsform der Erfindung betrifft eine Vorrichtung, welche eine Eingangsschnittstelle und eine erfindungsgemäße Kodiereinheit aufweist, und bei der die erfindungsgemäße Verarbeitung bspw. eine zumindest zeitweise Speicherung in dem Register vorsieht. Bei dieser Ausführungsform wird also ein erfindungsgemäß kodiertes Datenwort (oder auch mehrere kodierte Datenworte) zumindest zeitweise in einem Register oder einem anderen Speicher gespeichert, und zwar in der kodierten Form, sodass ein nachfolgendes Auslesen der kodierten Datenworte und eine Weiterverarbeitung möglich ist. Bspw. kann ein nachfolgendes kryptografisches Verfahren das entsprechende Register auslesen und die Daten weiterverarbeiten.
  • Alternativ oder ergänzend kann die erfindungsgemäße Verarbeitungseinheit auch mindestens eine kryptografische Einheit aufweisen, die zur Ausführung mindestens eines Teils eines kryptografischen Verfahrens ausgebildet ist. Bspw. kann die Bearbeitungseinheit eine kryptografische Einheit aufweisen, die zur Ausführung des kompletten AES(advanced encryption standard)-Algorithmus ausgebildet ist.
  • Bei einer weiteren Ausführungsform kann vorgesehen sein, dass die Verarbeitungseinheit eine kryptografische Einheit aufweist, die zur Ausführung eines Teils eines kryptografischen Verfahrens ausgebildet ist, bspw. zur Ausführung einer nichtlinearen Substitutionsoperation, wie sie auch Gegenstand der sogenannten SubBytes() Funktion des AES-Kryptografie Standards ist (vgl. http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf, Kapitel 5.1.1).
  • Bei einer weiteren Ausführungsform kann vorgesehen sein, dass die Verarbeitungseinheit einen Datenbus aufweist oder als Datenbus ausgebildet ist, insbesondere als paralleler Datenbus. In diesem Fall wird durch die erfindungsgemäße Kodierung eine Datenübertragung über den Datenbus gegen Seitenkanalattacken abgesichert.
  • Bei einer weiteren vorteilhaften Ausführung ist vorgesehen, dass die Kodiereinheit dazu ausgebildet ist, die Datenworte zu kodieren, indem jedem Datenwort eine vorgebbare Anzahl an Bits hinzugefügt wird. Hierbei kann der Wert der entsprechend hinzugefügten Bits je nach der erfindungsgemäßen Kodierung gewählt werden. Mit anderen Worten wird durch die erfindungsgemäße Hinzufügung einer vorgebbaren Anzahl von Bits (und Auswahl ihres jeweiligen Werts) eine Zahl von Freiheitsgraden geschaffen für die erfindungsgemäße Kodierung, die die Einstellung eines gewünschten Hamminggewichts und/oder gewünschter Hammingdistanzen für ein bzw. mehrere kodierte Datenworte ermöglicht. Die eigentliche Information der unkodierten Datenworte geht dabei nicht verloren, da erfindungsgemäß nur neue Bits hinzugefügt werden. Ggf. können alternativ oder zusätzlich weitere Bits hinzugefügt werden, um das erfindungsgemäße Schwellwertkriterium für die Messwerte in Bezug auf den Vorgabewert zu erfüllen.
  • Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass die Kodiereinheit dazu ausgebildet ist, die vorgebbare Anzahl an hinzugefügten Bits bzw. deren Werte so zu wählen, dass der vorgebbare Anteil aller kodierten Datenworte untereinander die vorgebbare Hammingdistanz und/oder das vorgebbare Hamminggewicht aufweisen.
  • Unter Hammingdistanz oder auch Hammingabstand wird die Anzahl unterschiedlicher Stellen zweier miteinander verglichener Codewörter bezeichnet. Bei einem Binärkode und zwei entsprechenden Kodewörtern entspricht der Hammingabstand bzw. die Hammingdistanz demnach der Anzahl der unterschiedlichen Bitstellen der verglichenen Kodewörter. Unter Hamminggewicht wird der Hammingabstand zum Nullvektor verstanden. Bei einem Binärkode entspricht das Hamminggewicht demnach der Anzahl der von Null verschiedenen Stellen des betrachteten Kodewortes, das bedeutet, die Anzahl der Bits mit dem Wert eins.
  • Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass die Kodiereinheit dazu ausgebildet ist, den in Spalte S2 der nachfolgenden Tabelle aufgeführten Datenworten das in der entsprechenden Zeile der Spalte S3 der Tabelle aufgeführte kodierte Datenwort zuzuordnen. Einzelne Bitstellen der Datenworte sind jeweils durch Komma voneinander getrennt, und ein Datenwort ist in runde Klammern () gesetzt.
    S2 S3
    (0,0,0,0) (0,0,0,0,0,1,1)
    (0,0,0,1) (0,0,0,1,0,0,1)
    (0,0,1,0) (0,0,1,0,0,0,1)
    (0,0,1,1) (0,0,1,1,0,0,0)
    (0,1,0,0) (0,1,0,0,0,0,1)
    (0,1,0,1) (0,1,0,1,0,0,0)
    (0,1,1,0) (0,1,1,0,0,0,0)
    (0,1,1,1) (1,0,0,0,1,0,0)
    (1,0,0,0) (1,0,0,0,0,0,1)
    (1,0,0,1) (1,0,0,1,0,0,0)
    (1,0,1,0) (1,0,1,0,0,0,0)
    (1,0,1,1) (0,1,0,0,1,0,0)
    (1,1,0,0) (1,1,0,0,0,0,0)
    (1,1,0,1) (0,0,1,0,1,0,0)
    (1,1,1,0) (0,0,0,1,1,0,0)
    (1,1,1,1) (0,0,0,0,1,1,0)
  • Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass die Vorrichtung zumindestens teilweise als integrierter Schaltkreis (IC, integrated circuit), vorzugsweise implementiert mittels CMOS (complementary metal-oxide-semiconductor) Technologie, ausgebildet ist. Die erfindungsgemäße Funktionalität kann z. B. auch in einem ASIC oder FPGA implementiert werden.
  • Als eine weitere Lösung der Aufgabe der vorliegenden Erfindung ist ein Verfahren gemäß Patentanspruch 13 angegeben. Als noch eine weitere Lösung der Aufgabe der vorliegenden Erfindung ist ein Verfahren gemäß Patentanspruch 16 angegeben.
  • Weitere vorteilhafte Ausführungsformen sind Gegenstand der Unteransprüche.
  • Nachfolgend werden beispielhafte Ausführungsformen der Erfindung unter Bezugnahme auf die Zeichnung erläutert. In der Zeichnung zeigt:
  • 1 schematisch eine Ausführungsform einer erfindungsgemäßen Vorrichtung,
  • 2a, 2b schematisch jeweils eine Ausführungsform einer erfindungsgemäßen Vorrichtung,
  • 3a, 3b schematisch jeweils eine Ausführungsform einer erfindungsgemäßen Verarbeitungseinheit,
  • 4a, 4b schematisch Geräte mit einer erfindungsgemäßen Vorrichtung,
  • 5 schematisch ein Beispiel für eine Ausführungsform einer erfindungsgemäßen Kodierung,
  • 6 schematisch eine Tabelle zur Veranschaulichung einer Kodierung gemäß einer Ausführungsform,
  • 7 schematisch eine weitere Vorrichtung gemäß einer Ausführungsform, und
  • 8 schematisch ein vereinfachtes Flussdiagramm einer Ausführung des erfindungsgemäßes Verfahrens.
  • 1 zeigt schematisch eine Ausführungsform einer erfindungsgemäßen Vorrichtung 100 zur Verarbeitung von Daten. Die Vorrichtung 100 ist beispielsweise als integrierte Schaltung (IC), z.B. unter Verwendung von CMOS-Technologie, ausgeführt.
  • Während der Verarbeitung der Daten in der Vorrichtung 100 sind Messwerte X1n ermittelbar, welche Datenworte Xn‘ repräsentieren, die gerade in der Vorrichtung 100 verarbeitet werden. Diese Messwerte können durch an sich bekannte Verfahren zur Ermittlung physikalischer Größen erhalten werden. Bspw. kann ein elektrischer Energieverbrauch der Vorrichtung 100 oder einzelner Komponenten hieraus als Messwert X1n erhalten werden. In diesem Fall kann für die Verarbeitung eines jeden Datenworts Xn' innerhalb der Vorrichtung 100 ein entsprechender elektrischer Energiemesswert X1n erhalten werden. Alternativ zu einem elektrischen Energieverbrauch ist bei bekannter Betriebsspannung der Vorrichtung 100 bspw. eine Stromaufnahme als Messwert verwendbar, und dergleichen. Die Stromaufnahme kann bspw. abgeleitet werden aus einem messtechnisch erfassten Spannungsabfall über einem Shuntwiderstand (niederohmiger Messwiederstand, nicht gezeigt), der in Serie zu einer elektrischen Versorgungsleitung (nicht gezeigt) der Vorrichtung 100 geschaltet ist. Alternativ zu elektrischen Energiemesswerten bzw. Strommessung und dergleichen können Messwerte auch erhalten werden bspw. durch die Erfassung von elektrischen Feldern der Vorrichtung 100, magnetischen Feldern der Vorrichtung 100, oder elektromagnetischen Feldern der Vorrichtung 100 oder Kombinationen hieraus. Selbstverständlich kann bei geeigneter räumlicher Auflösung des verwendeten Messverfahrens jeweils auch nur eine Komponente der Vorrichtung 100 der Messung zu Grunde gelegt werden. Bspw. kann es bei der Ausbildung der Vorrichtung 100 als integrierter Schaltkreis von Interesse sein, gezielte Messwerte X1n von solchen Komponenten bzw. Bereichen der Vorrichtung 100 zu erhalten, welche die mittels einer Seitenkanalattacke anzugreifende Komponente wie bspw. einen AES-Kern oder dergleichen enthalten, die bspw. ein kryptografisches Verfahren oder einen Teil hiervon ausführen.
  • Bei einer vorteilhaften Ausführungsform sind die Messwerte skalare (z.B. ein Strommesswert) oder vektorielle (z.B. mehrere Strommesswerte unterschiedlicher Schaltungskomponenten) Größen, oder sie weisen Matrixform auf.
  • Als Messwert im Sinne der vorliegenden Erfindung werden neben den durch physikalische Erfassung ermittelbaren Werten auch solche Messwerte X2n verstanden, welche aus den physikalisch ermittelbaren Werten X1n ableitbar sind, z.B. durch Rechenverfahren usw.. Bspw. kann ein Angreifer eine Mess- bzw. Verarbeitungseinheit 1000 vorsehen, welche eine oder mehrere physikalische Größen X1n der Vorrichtung 100 erfasst, und welche hieraus abgeleitete Werte X2n bildet. Diese abgeleiteten Werte X2n werden auch als Messwerte im Sinne der vorliegenden Erfindung bezeichnet. Bei diesen abgeleiteten werden X2n kann es sich bspw. um eine Hamming-Distanz bzw. um ein Hamming-Gewicht usw. handeln. Dies kann bspw. dann der Fall sein, wenn elektromagnetische Abstrahlungen einzelner Busleitungen eines parallelen Datenbusses mittels der Vorrichtung 1000 erfasst werden. In diesem Fall wird bspw. je Busleitung ein Messwert erhalten, und bei bspw. 8 Busleitungen sind insgesamt 8 Messwerte X1n verfügbar, aus denen mittels der Vorrichtung 100 bspw. eine Hamming-Distanz zu anderen auf dieselbe Weise erhaltenen Messwerten X2n bzw. ein Hamming-Gewicht gebildet werden kann.
  • Erfindungsgemäß ist vorgesehen, dass die Vorrichtung 100 eine Kodiereinheit 130 aufweist, vgl. 2a, die dazu ausgebildet ist, an einer Eingangsschnittstelle 110 als Eingangsdaten X erhaltene Datenworte Xn zu kodieren, um kodierte Datenworte Xn‘ zu erhalten, und dass eine Verarbeitungseinheit 120 der Vorrichtung 100 dazu ausgebildet ist, die kodierten Datenworte Xn‘ zu verarbeiten. Dadurch wird vorteilhaft erreicht, dass die Messwerte X1n, X2n (1) wie sie bspw. im Wege von Seitenkanalattacken ermittelbar sind, von den kodierten Datenworten Xn‘ bzw. der Verarbeitung der kodierten Datenworte Xn‘ in der Vorrichtung 100 abhängen, und nicht direkt von den unkodierten Datenworten Xn, welche der erfindungsgemäßen Kodiereinheit 130 zugeführt werden. Dementsprechend kann bei geeigneter Auswahl der Kodierung vorteilhaft bewirkt werden, dass die Messwerte X1n, X2n weniger aussagekräftig hinsichtlich der aktuell von der Vorrichtung 100 verarbeiteten kodierten Daten Xn‘ sind, wodurch die Seitenkanalattacke erschwert bzw. unmöglich gemacht wird.
  • Insbesondere ist erfindungsgemäß vorgesehen, dass die Kodiereinheit 130 dazu ausgebildet ist, die Datenworte Xn so zu kodieren, dass ein vorgebbarer Anteil aller Messwerte X1n, X2n, vorzugsweise mindestens etwa 50 % aller Messwerte X1n, X2n, einen Unterschied zu einem Vorgabewert Vn (2b) aufweist, der kleiner oder gleich einem vorgebbaren Schwellwert S ist. Untersuchungen der Anmelderin haben gezeigt, dass bei einer derartigen Kodierung und bei der Verarbeitung der kodierten Datenworte Xn‘ in der Verarbeitungseinheit 120 die entsprechend technisch erfassbaren Größen (Messwerte X1n) bzw. die hieraus ableitbaren Größen X2n weniger aussagekräftig hinsichtlich ihres Informationsgehalts bzgl. der nicht kodierten Datenworte Xn sind, sodass durch die erfindungsgemäße Kodierung ein effektiver Schutz gegen Seitenkanalattacken gegeben ist.
  • Die erfindungsgemäße Kodierung wird daher auch als sog. „leakage preserving code“ bezeichnet, weil sie „leakage“ im kryptographischen Sinn reduziert bzw. verhindert.
  • Im Gegensatz zu Verfahren, die auf der Verwendung von Zufallszahlen bzw. Pseudozufallszahlen zur Erschwerung von Seitenkanalattacken beruhen und dementsprechend aufwendig sind, erfordert das erfindungsgemäße Prinzip vorteilhaft lediglich ein deterministisches Verfahren, nämlich die Kodierung mittels der Kodiereinheit 130 und die Verarbeitung der kodierten Daten.
  • Bei einer Ausführungsform können die Eingangsdaten X (2a) bspw. als zeitlich aufeinander folgende digitale Datenworte vorliegen, bspw. Datenworte Xn mit einer Datenbreite von bspw. vier Bit. Andere Datenbreiten sind ebenfalls möglich. Dementsprechend leitet die Eingangsschnittstelle 110 die Eingangsdaten X in Form von Datenworten Xn an ihrem Ausgang weiter.
  • Die kodierten Datenworte Xn' werden wie aus 2a ersichtlich am Ausgang der Kodiereinheit 130 ausgegeben und der Bearbeitungseinheit 120 zur Verarbeitung zugeführt. Dementsprechend gibt die Verarbeitungseinheit 120 an ihrem Ausgang verarbeitete kodierte Datenworte Yn' aus.
  • 2b zeigt eine Kodiereinheit 130 gemäß einer Ausführungsform. Die Kodiereinheit 130 weist vorteilhaft einen vorgebbaren Vorgabewert V und einen vorgebbaren Schwellwert S für die Bewertung der Messwerte X1n, X2n auf, so dass überprüfbar ist, ob eine aktuelle Kodierung bereits das erfindungsgemäße Schwellwertkriterium bezüglich des Unterschieds mindestens eines Messwerts X1n, X2n zu dem Vorgabewert V erfüllt.
  • Bei einer besonders bevorzugten Ausführungsform ist als Vorgabewert V ein Mittelwert über alle möglichen Werte der Messwerte X1n bzw. X2n gewählt. In diesem Sinn wird unter „allen möglichen Werten der Messwerte“ die Menge aller Messwerte X1n bzw. X2n verstanden, wie sie sich ergibt bei der Verarbeitung aller kodierten Datenworte Xn‘, die durch die erfindungsgemäße Kodierung vorgesehen sind. Die Menge aller möglichen Messwerte kann bspw. in einem Versuchsaufbau an einer konkreten Implementierung der erfindungsgemäßen Vorrichtung 100 ermittelt werden, indem bei gegebener Kodierung eine Datenverarbeitung durch die Vorrichtung 100 bzw. ihre Einheit 120 derart erfolgt, dass jedes kodierte Datenwort Xn‘ einmal der Verarbeitungseinheit 120 zur Verarbeitung zugeführt wird. Bei der Verarbeitung eines entsprechenden kodierten Datenwortes Xn‘ wird dementsprechend ein bestimmter Messwert X1n bzw. X2n erhalten, der das Datenwort Xn‘ charakterisiert bzw. die Verarbeitung des Datenworts in der Vorrichtung. Die so erhaltenen Messwerte können einer Ausführungsform zufolge ermittelt werden und schließlich kann z.B. ihr Mittelwert als Vorgabewert für die erfindungsgemäße Kodierung verwendet werden. Bspw. kann die erfindungsgemäße Kodierung, also eine Zuordnung von kodierten Datenworten zu nicht kodierten Datenworten, auch schrittweise ermittelt werden. Diese Zuordnung kann bspw. in einem iterativen Verfahren vorgenommen werden, um die kodierten Datenworte bzw. die Transformation, welche durch die erfindungsgemäße Kodiereinheit im Rahmen der Kodierung vorgenommen wird, schrittweise so zu verfeinern, bis ein Unterschied eines oder mehrerer bestimmter Messwerte zu dem Vorgabewert das erfindungsgemäße Schwellwertkriterium erfüllt. Dann ist sichergestellt, dass sich die aus den solchermaßen kodierten Datenworten Xn‘ ableitbaren Messwerte X1n bzw. X2n nur derart geringfügig von dem Vorgabewert unterscheiden, dass eine Seitenkanalattacke, die durch Auswertung der Messwerte X1n, X2n vorgenommen wird, wesentlich erschwert bzw. unmöglich gemacht wird.
  • Besonders vorteilhaft beruht das erfindungsgemäße Prinzip nicht auf der Verwendung von Zufallszahlen bzw. Pseudozufallszahlen. Vielmehr stellt die erfindungsgemäße Kodierung eine deterministische Vorschrift zur Transformation der zu verarbeitenden Daten in die kodierten Datenworte dar. Bevorzugt kann für jede spezifische Implementierung der Vorrichtung 100 eine spezielle Kodierung ermittelt und verwendet werden. Es ist auch denkbar, für eine spezifische Implementierung der Vorrichtung mehrere mögliche Kodierungen zu ermitteln und diese Während eines Betriebs der Vorrichtung zu wechseln, wodurch die Sicherheit gegenüber Seitenkanalattacken weiter gesteigert wird.
  • Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass der Vorgabewert V (2b) nicht für alle Messwerte X1n, X2n gleich gewählt ist. Dies bedeutet, dass die erfindungsgemäße Kodierung der betreffenden Ausführungsform zufolge Freiheitsgrade dahingehend bietet, für unterschiedliche Messwerte unterschiedliche Vorgabewerte vorzusehen. Damit kann bspw. vorteilhaft Unsymmetrien bei der Implementierung bzw. der Erlangung der Messwerte Rechnung getragen werden. Es ist bspw. denkbar, dass bei der Verarbeitung einer ersten Gruppe von kodierten Datenworten Messwerte erlangbar sind, welche einen größeren Informationsgehalt bzgl. der verarbeiteten Daten enthalten als bei der Verarbeitung einer zweiten Gruppe von kodierten Datenworten. In diesem Fall kann es zweckmäßig sein, für die unterschiedlichen Gruppen von kodierten Datenworten unterschiedliche Vorgabewerte vorzusehen, um diese Unsymmetrien zu verringern bzw. zu kompensieren, möglichst mit dem Ziel, dass alle möglichen Messwerte ungeachtet der Unsymmetrien einen ähnlichen Informationsgehalt hinsichtlich der verarbeiteten Daten aufweisen.
  • Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass für mindestens zwei Messwerte bzw. diesen Messwerten zugeordnete Datenworte jeweils ein unterschiedlicher Schwellwert S vorgesehen ist. Auf diese Weise kann ein weiterer Freiheitsgrad hinsichtlich der Kodierung geschaffen werden, der es erlaubt, die erfindungsgemäße Transformation, die der Kodierung zugrundeliegt, leichter aufzufinden.
  • Bei einer weiteren vorteilhaften Ausführungsform sind die Messwerte X1n, X2n skalare oder vektorielle Größen, oder sie weisen Matrixform auf. Bspw. können die Messwerte einen elektrischen Energieverbrauch der Vorrichtung oder mindestens einer Komponente der Vorrichtung repräsentieren. In diesem Fall kann ein Angreifer der Vorrichtung diesen elektrischen Energieverbrauch als Messwert im Sinne der vorliegenden Erfindung ermitteln, um eine Seitenkanalattacke auszuführen. In diesem konkreten Anwendungsfall bewirkt die erfindungsgemäße Kodierung der schließlich in der Verarbeitungseinheit verarbeiteten kodierten Datenworte vorteilhaft, dass sich die entsprechenden Messwerte für den elektrischen Energieverbrauch der Vorrichtung oder der mindestens einen Komponente nur geringfügig voneinander unterscheiden, wodurch wiederum eine Seitenkanalattacke erschwert wird.
  • Ein Beispiel für Messwerte in vektorieller Ausprägung ist bspw. ein Anwendungsszenario, bei dem mehrere elektrische Energieverbrauchswerte von unterschiedlichen Komponenten bzw. generell Teilen der Vorrichtung 100 je verarbeitetem kodierten Datenwort ermittelt werden. Eine solche Mehrzahl von Messwerten ist selbstverständlich auch in Matrixform organisierbar. Ein weiteres Beispiel, bei dem eine Repräsentation von Messwerten in Matrixform zweckmäßig erscheint, ist bspw. die Ermittlung von von der Vorrichtung abgestrahlten elektromagnetischen Feldern. In diesem Fall kann bspw. eine Mehrzahl von Feldsonden, welche für die Messung der elektromagnetischen Felder verwendet werden, während des Betriebs der Vorrichtung über dieser Vorrichtung platziert werden, und entsprechende Messwerte der einzelnen Feldsonden können bspw. einzelnen Matrixelementen eines in Matrixform vorliegenden Messwerts im Sinne der vorliegenden Erfindung zugeordnet werden.
  • Je nach Ausprägung der Messwerte im Sinne der vorliegenden Erfindung ist natürlich auch die Vergleichsoperation zur Ermittlung des Unterschieds der Messwerte zu dem Vorgabewert entsprechend zu wählen. Dasselbe gilt für den Vorgabewert. Bspw. kann für skalare Größen eine einfache Differenzbildung mit anschließender Betragsbildung vorgesehen sein, um einen Unterschied zwischen einem Messwert, bspw. einem Wert für die elektrische Energieaufnahme der Vorrichtung, zu einem entsprechenden Vorgabewert zu bewerten. Bei vektoriellen oder matrixförmigen Größen für die Messwerte können entsprechend andere geeignete Funktionen definiert sein, um den betreffenden Unterschied zu einem Vorgabewert (bspw. Vorgabevektor, Vorgabematrix und dergleichen) zu definieren.
  • Bei einer anderen bevorzugten Ausführungsform ist die Kodiereinheit 130 dazu ausgebildet, die Datenworte Xn so zu kodieren, dass alle kodierten Datenworte Xn‘ untereinander eine vorgebbare Hamming-Distanz aufweisen. Alternativ oder ergänzend kann vorgesehen sein, dass die Kodierung derart erfolgt, dass alle kodierten Datenworte Xn' ein vorgebbares Hamming-Gewicht aufweisen.
  • Andere Varianten der Kodierung durch die Kodiereinheit 130 sind ebenfalls denkbar, das bedeutet, die Erfindung ist nicht beschränkt auf eine Kodierung der Eingangsdatenworte Xn mit dem Ziel, die vorgebbare Hammingdistanz bzw. das vorgebbare Hamminggewicht zu erreichen.
  • Bei der Verarbeitungseinheit 120 kann es sich einer bevorzugten Ausführungsform zufolge bspw. um ein Register handeln. 3a zeigt eine weitere Ausführungsform, bei der eine Variante 120a der Verarbeitungseinheit 120 gemäß 2a abgebildet ist. Die Verarbeitungseinheit 120a verfügt über zwei Register R1, R2, welche zur zumindest zeitweisen Speicherung von ihnen eingangsseitig zugeführten kodierten Datenworten Xn', wie sie aus der Kodiereinheit 130 erhalten werden, ausgebildet sind. Die Verarbeitungseinheit 120a gibt die kodierten Datenworte, die in den Registern R1, R2 gespeichert sind, zu gegebener Zeit zur weiteren Verarbeitung über einen Ausgang als „verarbeitete“ kodierte Daten Yn' aus. In dem vorliegenden Fall besteht die Besonderheit, dass aufgrund der Ausbildung der Verarbeitungseinheit 120a als reiner Speicher die Ausgangsdatenworte Yn' der Einheit 120a den Eingangsdatenworten Xn' entsprechen.
  • 3b zeigt eine weitere Ausführungsform 120b für eine erfindungsgemäße Verarbeitungseinheit. Vorliegend weist die Verarbeitungseinheit 120b eine kryptografische Einheit 124 auf, bei der es sich bspw. um eine Einheit zur Ausführung eines Teils eines Algorithmus eines Verschlüsselungsverfahrens handeln kann. Bspw. kann die kryptografische Einheit 124 dazu ausgebildet sein, eine nichtlineare Substitutionsoperation mit den ihr zugeführten Eingangsdaten Xn' auszuführen, und entsprechende Ausgangsdaten Yn' zu erhalten. Eine derartige nichtlineare Substitutionsoperation ist bspw. in der sogenannten SubBytes()-Funktion des AES (advanced encryption standard) vorgesehen. Dementsprechend kann eine Erfindungsvariante gemäß 3b zur Ausführung der betreffenden Teile des AES Algorithmus eingesetzt werden.
  • Bei noch einer weiteren Ausführungsform kann die Verarbeitungseinheit 120 ein Datenbus (seriell oder parallel) sein, oder generell eine schaltungstechnische Komponente, der kodierte Datenworte Xn‘ zuführbar sind. Bei noch einer weiteren Ausführungsform sind die Komponenten 120 und 130 auch funktional miteinander kombinierbar.
  • 4a zeigt einen weiteren Anwendungsbereich der Erfindung. Abgebildet ist eine Chipkarte 2000, auf der eine erfindungsgemäße Vorrichtung 100 angeordnet ist. Die Vorrichtung 100 steht in Datenverbindung mit Schnittstellenmitteln 2002, über die die Chipkarte 2000 bzw. die darin enthaltene Vorrichtung 100 Daten in an sich bekannter Weise mit externen Geräten wie bspw. einen Chipkartenleser (nicht gezeigt) oder dergleichen austauschen kann. Die Vorrichtung 100 gemäß 4a weist vorteilhaft mindestens die in 2a abgebildete Struktur auf, es ist auch denkbar, mehrere Kodiereinheiten 130 bzw. mehrere gleiche oder unterschiedliche Verarbeitungseinheiten 120, 120a, 120b innerhalb einer Vorrichtung 100 vorzusehen, wodurch entsprechende Verfahrensschritte eines in der Vorrichtung 100 implementierten Datenverarbeitungsverfahrens die erfindungsgemäßen Vorteile nutzen können.
  • 4b zeigt eine weitere Anwendung der Erfindung. Abgebildet ist ein USB (universal serial bus) Speicherdatenträger 3000 der über eine erfindungsgemäße Vorrichtung 100 sowie USB-Anschlussmittel 3002 verfügt.
  • 5 zeigt ein Beispiel für eine erfindungsgemäße Kodierung anhand eines vier Bit (entspricht einem nibble = „Halbbyte“) umfassenden Datenworts Xn. Ein erstes Bit des Datenworts Xn ist in 5 mit dem Bezugszeichen X1 bezeichnet, ein zweites Bit mit dem Bezugszeichen X2, und ein drittes Bit mit dem Bezugszeichen X3, und ein viertes Bit mit dem Bezugszeichen X4. Zu der Repräsentation des Datenworts Xn ist demnach auch folgende Notation geeignet: (x1, x2, x3, x4), was der Aneinanderreihung der einzelnen Bits x1, x2, x3, x4 des Datenworts Xn entspricht.
  • Durch eine Kodierung mittels der Kodiereinheit 130 (2a) wird das Datenwort Xn gemäß 5 in ein kodiertes Datenwort Xn' überführt, vgl. Pfeil a aus 5. Wie aus 5 ersichtlich ist, weist das kodierte Datenwort Xn' nach wie vor die vier Bit x1, x2, x3, x4 des ursprünglichen Datenworts Xn auf, sowie drei weitere Bits x5, x6, x7. Vorliegend wird die Kodierung a also durch das Anhängen einer Bitfolge Rn, welche vorliegend die Länge drei Bit aufweist, erzielt.
  • Die Werte der einzelnen Bits x5, x6, x7 der im Rahmen der erfindungsgemäßen Kodierung angehängten Bitfolge Rn können vorteilhaft bspw. so gewählt werden, dass eine gewünschte Hammingdistanz des kodierten Datenwortes Xn‘ zu anderen kodierten Datenworten bzw. ein gewünschtes Hamminggewicht für das kodierte Datenwort Xn' erhalten wird.
  • 6 zeigt beispielhaft eine Kodiertabelle mit drei Spalten S1, S2, S3, wie sie bspw. in der Kodiereinheit 130 (2a) gemäß einer Ausführungsform einsetzbar ist. Die Spalte S1 enthält die Zeilennummern der insgesamt 16 Zeilen der Tabelle aus 6. Die zweite Spalte S2 enthält die vier Bit aufweisenden Eingangsdatenworte Xn in der vorstehend bereits beschriebenen Notation, bei denen die einzelnen Bitstellen jeweils durch Kommata getrennt sind und das Datenwort in runde Klammern gesetzt ist. Die Spalte S3 der in 6 abgebildeten Tabelle enthält die kodierten Datenworte Xn‘, wie sie durch die erfindungsgemäße Kodiereinheit 130 (2a) den jeweiligen Datenworten Xn der Spalte S2 derselben Zeile zugeordnet werden.
  • Die Tabelle gemäß 6 kann aus den sechzehn Datenworten Xn beispielsweise mit den folgenden Gleichungen bzw. Bildungsregel erhalten werden: Xj‘ = (x1, x2, x3, x4, 0, 0, [1 – HW(x||1)]), falls HW(Xj) ≤ 2", bzw. Xj‘ = (x1, x2, x3, x4, 1, [2 – HW(x||1)], [1 – HW(x||1)]), falls HW (Xj) > 2", wobei HW(.) das Hamminggewicht eines Datenworts angibt, || eine bitweise Konkatenation angibt, wobei Xj das j-te unkodierte Datenwort ist, und wobei Xj‘ das j-te kodierte Datenwort ist.
  • Die durch die Tabelle der 6 veranschaulichte erfindungsgemäße Kodierung hat vorteilhaft den Effekt, dass alle kodierten Datenworte (Elemente der Spalte S3 der Tabelle) ein konstantes Hamminggewicht aufweisen, wodurch DPA Attacken auf die Vorrichtung 100 erschwert werden, weil im Rahmen der Verarbeitung der erfindungsgemäß kodierten Datenworte Xn' (2a) in der Verarbeitungseinheit 120 bei jedem Codewort dieselbe Anzahl von Zustandsänderungen der einzelnen Bits der kodierten Datenworte Xn' auftreten, sodass spezielle Kombinationen von Zustandsänderungen nicht unmittelbar speziellen Codeworten, die gerade durch die Einheit 120 verarbeitet werden, zugeordnet werden können.
  • Zur Erzielung einer 8-bit Implementierung basierend auf dem erfindungsgemäßen Prinzip können die vorstehend erläuterten Schritte und die Kodierung der Tabelle gemäß 6 jeweils auf zwei Halbbytes („nibble“) angewendet werden, welche einem 8-bit Datenwort entsprechen. Damit kann beispielsweise eine 8-bit Implementierung der SubBytes() Funktion des AES realisiert werden. Die erfindungsgemäße Lösung ist auch sehr gut skalierbar, so dass beispielsweise für eine 32-bit Implementierung ein 32 bit breites Datenwort zunächst in acht Halbbytes zerlegt wird, vorzugsweise innerhalb eines Taktzyklus, also parallel, und sodann können die hieraus erhaltenen acht Halbbytes erfindungsgemäß kodiert werden.
  • 7 zeigt eine weitere Ausführungsform der Erfindung, bei der eine Vorrichtung 100a zur Verarbeitung von Daten abgebildet ist. Eingangsseitig erhält die Vorrichtung 100a wiederrum Eingangsdaten X, die bspw. in Form von z.B. 4 Bit aufweisenden Eingangsdatenworten Xn durch die Eingangsschnittstelle 110 an die nachfolgende Kodiereinheit 130 weitergegeben werden. Die Kodiereinheit 130 führt eine Kodierung aus, wodurch kodierte Eingangsdaten Xn' erhalten werden. Die kodierten Eingangsdatenworte Xn' werden in der nachfolgenden Verarbeitungseinheit 120 verarbeitet, sodass an dem Ausgang der Verarbeitungseinheit 120 verarbeitete kodierte Datenworte Yn' erhalten werden. Anschließend werden durch die Einheit 140, welche eine Dekodiereinheit darstellt, die Datenworte Yn' dekodiert, sodass dekodierte verarbeitete Datenworte Y erhalten werden, welche über die Ausgangsschnittstelle 150 an weitere Einheiten extern der Vorrichtung 100 ausgebbar sind.
  • Bei noch einer weiteren Ausführungsform sind die Komponenten 120 und 140 gemäß 7 auch funktional miteinander kombinierbar.
  • Generell ist das erfindungsgemäße Prinzip nicht auf eine Kodierung derart begrenzt, dass die kodierten Datenworte wie vorstehend beschrieben eine vorgebbare Hammingdistanz und/oder ein vorgebbares Hamminggewicht aufweisen. Vielmehr kann weiteren Ausführungsformen zufolge die Kodiereinheit 130 (1, 6) alternativ auch so ausgebildet sein, dass sie die Eingangsdatenworte Xn unter Verwendung eines sog. „leakage-preserving“ Kodes in die kodierten Datenworte Xn‘ transformiert. Dies wird beispielsweise durch die Einhaltung des erfindungsgemäßen Schwellwertkriteriums für den Unterschied zwischen den Messwerten Xn1, Xn2 und dem Vorgabewert V erreicht.
  • Ganz allgemein hat die Verwendung des „leakage-preserving“ Kodes den Vorteil, dass solchermaßen kodierte Datenworte eine Leckage von Informationen, die beispielsweise über physikalisch beobachtbare bzw. messbare Größen Xn1, Xn2 ermittelbar ist (z.B. Messung von elektromagnetischen Feldern, Messung der elektrischen Energieaufnahme der Vorrichtung 100 bzw. der Einheit 120) über die in der Einheit 120 verarbeiteten Daten minimieren.
  • 8 zeigt schematisch ein Flussdiagramm einer Ausführungsform des erfindungsgemäßen Verfahrens. In Schritt 200 erfolgt eine Kodierung von einem oder mehreren Eingangsdatenworten Xn mittels der Kodiereinheit 130 (2a). In Schritt 210 erfolgt eine Verarbeitung der in Schritt 200 erhaltenen kodierten Datenworte Xn‘ durch die Verarbeitungseinheit 120. Optional erfolgt in Schritt 220 anschließend eine Dekodierung der verarbeiteten Datenworte Yn‘.
  • Das erfindungsgemäße Prinzip der Vorsehung von kodierten Datenworten Xn‘, die einer weiteren Verarbeitung unterworfen werden, anstelle der Verarbeitung der unkodierten Eingangsdaten Xn, bedingt den Vorteil, dass keine zufallsbasierten Prozesse bzw. Pseudozufallsprozesse für die DPA-Härtung (Härtung der Vorrichtung 100 gegen DPA-Attacken) erforderlich sind, wodurch der Aufwand gegenüber bekannten Verfahren reduziert wird. Darüber hinaus kann die erfindungsgemäße Vorrichtung 100 bspw. unter Verwendung von herkömmlichen CMOS-Zellen realisiert werden, wobei die Vorrichtung 100 als solche in Form einer monolithischen Integrierten Schaltung vorgesehen werden kann oder auch als Schaltungskomponente, die in weitere Schaltungseinheiten integriert werden kann. Ein weiterer Vorteil der Erfindung besteht darin, dass die ordnungsgemäße Funktion der Vorrichtung 100 verhältnismäßig einfach zu testen ist, weil die Erfindung nicht auf der Verwendung von Zufallszahlen oder Pseudozufallszahlen basiert.
  • Darüber hinaus kann eine Implementierung der Vorrichtung 100 auf einer verhältnismäßen geringen Chipfläche vorgenommen werden. Da die erfindungsgemäßen Maßnahmen, welche eine Härtung gegen DPA-Attacken bewirken, auf dem Architekturlevel erfolgen, ist eine einfache Wiederverwendbarkeit in unterschiedlichen Chipdesigns oder generell Designs von Vorrichtungen, welche die erfindungsgemäße Funktionalität verwenden sollen, möglich.
  • Ein weiterer Aspekt der vorliegenden Erfindung ist angegeben durch ein Verfahren zum Betreiben einer Vorrichtung 100 zur Verarbeitung von Daten, wobei die Vorrichtung 100 eine Eingangsschnittstelle 110 zum Empfangen von Eingangsdaten aufweist und eine Verarbeitungseinheit 120 zur Verarbeitung von Daten. Erfindungsgemäß ist bei diesem weiteren Aspekt vorgesehen, dass mittels einer Kodiereinheit 130 an der Eingangsschnittstelle 110 als Eingangsdaten erhaltene Datenworte Xn kodiert werden, um kodierte Datenworte Xn' zu erhalten, und dass die Verarbeitungseinheit 120 die kodierten Datenworte Xn' verarbeitet, wobei die Kodiereinheit 130 einen leakage preserving code für die Kodierung verwendet. Kern dieses Erfindungsaspekts ist demnach die Vorsehung einer Kodierung der Datenworte, bevor diese verarbeitet werden, wobei besonders vorteilhaft der leakage preserving code verwendet wird, also eine Kodierung, welche eine Reduktion oder gänzliche Vermeidung von leakage im kryptografischen Sinne bei der Verarbeitung der kodierten Datenworte durch die Vorrichtung 100 ermöglicht.
  • Die Erfindung kann vorteilhaft sowohl in Hardware wie auch in Software bzw. einer Kombination aus beidem implementiert werden.
  • Generell ermöglich das erfindungsgemäße Prinzip durch die Vorsehung der Kodiereinheit 130 (1) eine Transformation der Eingangsdaten Xn in kodierte Daten Xn', welche einen sogenannten leakage-preserving Kode darstellen, der weniger anfällig ist gegen DPA-Attacken. Mit anderen Worten weist der die kodierten Datenworte Xn' enthaltende Kode wenig leakage im kryptografischen Sinne auf. Dies ist gleichbedeutend mit der Aussage, dass keine oder nur wenige Seitenkanalinformationen in den kodierten Datenworten enthalten sind.
  • Daher kann ein Angreifer der erfindungsgemäßen Vorrichtung 100 durch an sich bekannte Maßnahmen wie bspw. die Erfassung von elektromagnetischen Abstrahlungen der Vorrichtung 100 oder Erfassen ihres elektrischen Energieverbrauchs oder dergleichen verhältnismäßig wenig bzw. gar keine Informationen über die in der Einheit 120 verarbeiteten Daten erlangen.
  • Wie bereits vorstehend erwähnt, kann die Verarbeitungseinheit 120 bspw. einen Teil eines kryptografischen Verfahrens bzw. Algorithmus ausführen oder auch ein komplettes kryptografisches Verfahren bspw. eine Verschlüsselung oder eine Entschlüsselung bspw. gemäß dem AES-Kryptografiestandard.
  • Auf diese Weise ist eine einfache Skalierbarkeit des erfindungsgemäßen Prinzips gegeben.
  • Um Kosten zu sparen kann bei einer weiteren Ausführungsform die erfindungsgemäße Maßnahme umfassend die Komponenten 110, 120, 130 bspw. nur für besonders sicherheitsrelevante Verarbeitungseinheiten eines kryptografischen Algorithmus vorgesehen werden. Alternativ können auch alle Verarbeitungsschritte einer Daten verarbeitenden Vorrichtung mit dem erfindungsgemäßen Prinzip gehärtet werden.
  • Im Vergleich zu herkömmlichen Gegenmaßnahmen gegen Seitenkanalattacken haben die erfindungsgemäß vorgeschlagenen, auf Kodierung beruhenden Gegenmaßnahmen verschiedene Vorteile:
    • 1. Auf Kodierung beruhende Gegenmaßnahmen sind deterministischer Natur, sodass sie einen verhältnismäßig geringen Rechenaufwand und insbesondere nicht die Vorsehung von Zufallsgeneratoren oder Pseudozufallsgeneratoren erfordern.
    • 2. Eine Implementierung als integrierter Schaltkreis unter Verwendung von herkömmlichen CMOS-Zellen ist einfach möglich.
    • 3. Aufgrund der Unabhängigkeit von Zufallszahlen ist ein Test der erfindungsgemäßen Vorrichtung 100 weitaus einfacher als Tests von Vorrichtungen und Verfahren, welche auf der Verwendung von Zufallszahlen beruhen.
    • 4. Die auf dem erfindungsgemäßen Verfahren beruhenden Gegenmaßnahmen erfordern zur Implementierung nur verhältnismäßig wenig Chipfläche bzw. wenig komplexe Kodes, welche durch die Kodiereinheit 130 realisiert werden müssen.
    • 5. Das erfindungsgemäße Prinzip kann vorteilhaft entweder auf einzelne Komponenten einer zu schützenden Vorrichtung oder auf die gesamte Vorrichtung angewendet werden.
    • 6. Die Erfindung ist modular einsetzbar. Bspw. kann ein DPA-gehärtetes Speicherregister in Form der erfindungsgemäßen Vorrichtung 100 bereitgestellt werden, wenn die Verarbeitungseinheit 120 bspw. als einfaches, d.h. herkömmliches, Speicherregister R1 ausgebildet ist. In diesem Fall kann die Konfiguration 100 gemäß 1 modular bereitgestellt und in einer zu schützenden Vorrichtung auch in größerer Anzahl eingesetzt werden.
  • Die erfindungsgemäßen Maßnahmen beruhend auf Kodierung eleminieren oder vermindern in hohem Maße die Leckage von Informationen durch Seitenkanäle.
  • Bei einer weiteren vorteilhaften Ausführungsform kann vorgesehen sein, dass der Kode derart ausgebildet ist, dass eine teilweise oder vollständige Fehlerkorrektur von kodierten Datenworten möglich ist, welche verfälscht werden, bspw. im Wege einer sogenannten fault attack. Dies kann bspw. durch die Hinzufügung weiterer Bits, welche eine Erhöhung der Redundanz bewirken, entsprechend bewerkstelligt werden.
  • Bei einer weiteren vorteilhaften Ausführungsform kann vorgesehen sein, dass die Verarbeitungseinheit 120 dazu ausgebildet ist, ein oder mehrere kodierte Datenworte Xn‘ daraufhin zu prüfen, ob sie gültige Datenworte im Sinne des von der Kodiereinheit verwendeten Kodes sind. Eine solche Prüfung kann bei der Konfiguration nach 6 neben der Einheit 120 auch in der Einheit 140 erfolgen. Beispielsweise kann im Falle einer Kodierung durch die Kodiereinheit 130, welche ein konstantes Hamminggewicht zum Gegenstand hat (z.B. weisen alle kodierten Datenworte Xn‘ ein konstantes Hamminggewicht auf), die Verarbeitungseinheit 120 prüfen, ob ein ihr zugeführtes kodiertes Datenwort Xn‘ tatsächlich das betreffende Hamminggewicht aufweist. Falls nicht, kann darauf geschlossen werden, dass z.B. ein sog. fault injection Angriff auf die Vorrichtung 100 ausgeführt wird, in dessen Rahmen von einem Angreifer bewusst falsche Kodeworte z.B. in die Verbindung zwischen den Komponenten 130 und 120 injiziert werden, um eine effizientere DPA-Attacke zu ermöglichen. Die erfindungsgemäße Überprüfung der kodierten Datenworte Xn‘ z.B. in der Einheit 120 oder 160 kann dies verhindern. Bei einer vorteilhaften Ausführungsform kann die vorstehend beschriebene Überprüfung beispielsweise mittels eines sog. membership tests für kodierte Datenworte erfolgen.
  • Nachfolgend sind weitere vorteilhafte Ausführungsformen beschrieben.
  • Untersuchungen der Anmelderin zufolge erlaubt ein Seitenkanal-Leakage Rückschlüsse auf die intern in der Vorrichtung 100 verarbeiteten Daten Xn‘ und ermöglicht somit die Bestimmung z.B. eines an sich geheimen kryptografischen Schlüssels. Mit anderen Worten, ein Seitenkanal-Leakage enthält Information über die intern verarbeiteten Daten. Ein Beispiel dafür ist der Daten-abhängige Stromverbrauch in CMOS Schaltungen, wie er bei den vorstehenden Ausführungsformen für die Vorrichtung 100 durch den Messwert X1n angedeutet ist.
  • Seitenkanal-Leakage L von einer beobachtbaren internen Variable V‘ der Vorrichtung 100 kann als eine Funktion f() dieser Variable V‘ definiert werden, also: L = f(V‘).
  • Ein praktisches Beispiel für die Variable V‘ wäre ein Ausgabe-Wert der AES SubBytes Operation. Praktische Beispiele für die Funktion f(V‘) wären z.B. der gemessene Stromverbrauch, die gemessene elektromagnetische Abstrahlung aber auch abstrahierte Eigenschaften wie Hamming Gewicht (HW) oder Hamming Distanz (HD) von V‘. Die beiden letzten Beispiele – HW und HD – sind zwar abstrakt, führen aber letztlich zu einem Daten-abhängigen physikalischen Verhalten der Vorrichtung 100, z.B. zu einem Daten-abhängigen Stromverbrauch.
  • Ferner kann ein Mittelwert M des Seitenkanal-Leakage L für alle möglichen Werte v‘ der Variable V‘ definiert werden, also M = Mean(L), und eine kompatible Norm ||v‘||, im Beispiel die Betragsfunktion |v‘|.
  • Nun sei ein Kode gemäß einer Ausführungsform der vorliegenden Erfindung eine Abbildung, die jeder internen, nicht beobachtbaren Variable v aus V ein oder mehrere Werte v‘ aus V‘ zuordnet: C: v -> v‘. Ein leakage-preserving Code ist dann definiert als ein Code für das für alle v‘ gilt: ||f(v‘) – M|| <= epsilon, wobei „epsilon“ einen vorgebbaren Grenzwert (threshold) bezeichnet.
  • Bei einer weiteren Ausführungsform muss die Ungleichung ||f(v‘) – M|| <= epsilon nicht für alle v‘ gelten, sondern es reicht z.B. wenn ein Teil der Werte v‘ diese Bedingung erfüllt.
  • Um die vorstehenden Ausführungen weiter zu verdeutlichen, sind nachfolgend zwei weitere Beispiele angegeben.
  • Beispiel 1:
  • L = f(V‘) ist der Daten-abhängige Stromverbrauch einer kryptographischen Schaltung (z.B. eine Komponente der Vorrichtung 100 gemäß 2a) und wird als Spannungsabfall über einem Shunt-Widerstand gemessen (übliches Vorgehen bei einem Seitenkanal-Angriff). Epsilon wird nun vorteilhaft so gewählt, dass es kleiner als der Quantisierungsfehler des digitalen Speicheroszilloskops, das zur Messung des Spannungsabfalls verwendet wird, ist (d.h. epsilon ist praktisch nicht mehr messbar). Ein leakage-preserving Code ist dann ein Code bei dem der Daten-abhängige Stromverbrauch f(V‘) für keinen Wert v‘ von V‘ um mehr als epsilon von dem durchschnittlichen Stromverbrauch abweicht, wenn also |f(v) – M| <= epsilon gilt.
  • Beispiel 2:
  • Einer weiteren Ausführungsform zufolge hat ein von der Kodiereinheit 130 verwendeter Kode einen konstantes Hamming Gewicht (HG) von 2, d.h. alle Werte Xn‘ weisen ein HG=2 auf. Wird die Funktion f(V‘) so gewählt, dass sie das Hamming Gewicht von den Werten v‘ von V‘ zurückgibt und wird ein epsilon gleich Null gewählt, dann ist der angegebene Kode ein leakage-preserving Code, da |f(v‘) – M| <= epsilon gilt, weil der Mittelwert M für das Hamming Gewicht der Kodewörter 2 beträgt und keines der Kodewörter um mehr als das gewählte epsilon (=0) davon abweicht (|Hw(v‘)-2| <= 0, für alle v‘, da Hw(v‘)=2 für alle v‘).
  • Beispiel 3:
  • Bei einer Ausführungsform ist ein sog. „one-hot encoding“-basierter Kode vorgeschlagen, um eine konstante Hammingdistanz zu erzielen. Anweisungen beispielhaft: Lege eine Reihenfolge aller möglichen Eingabeworte fest, und nummeriere diese nun ganzzahlig, von 0 aufsteigend, Inkrement 1. Sei diese Nummerierung i. Ordne jedem Eingabekodewort genau das Kodewort x zu, in dem das i-te Bit (alternativ: Zählung der Bits von links oder rechts, aber einheitlich) gesetzt (1) ist, und alle anderen Bits nicht gesetzt (0) sind. Dieser Kode ist offensichtlich HD-konstant, da ein bestimmtes Bit j nur genau in einem Kodewort (das mit Nummerierung i) gesetzt ist. Somit gilt HW(x) = 1 und HD(x) = 2 für alle x.
  • Hinweis: der ersten Schritt (Reihenfolge, Nummerierung) wird meistens durch die „natürliche Interpretation“ eines Eingangswortes als positive Ganzzahl erreicht; somit ist dieser Schritt nur ein Notationswechsel und benötigt keinerlei (Rechen-)Aufwand.
  • Weitere Variante: invertiere das Kodewort aus o.g. Variante und verwende dieses als Kodewort. Ein Unterschied besteht z.B. basierend auf den Eigenschaften eines Bussystems wie pre-loading.
  • Weiteres Bsp. Für HD-konstante Codes: Walsh-Hadamard code, siehe z.B. https://wiki.cse.buffalo.edu/cse545/content/walsh-hadamard-code. Vorteile: der Kode ist lokal dekodierbar, d.h., der Dekoder muss nur eine Teilmenge des Kodewortes auswerten um einen Teil des Originalwortes zu ermitteln. Hiermit werden in Abhängigkeit der Struktur der verarbeitenden Einheit trade-offs möglich. Der Kode ist orthogonal. Eine Folge davon ist, dass ein Strom von Kodeworten nicht von „Zufall“ unterscheidbar ist, solange man nicht den konkreten Kode (d.h. seine Parametrisierung) kennt. Es wäre also z.B. möglich, den Kode regelmäßig zu wechseln, bspw. für Produktionschargen der Vorrichtung 100 oder verschiedene Projekte oder Kunden. Das hat den Vorteil, dass Angreifer neue Profile erstellen müssen, wenn sie die „Klasse“ wechseln.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf, Kapitel 5.1.1 [0021]
    • https://wiki.cse.buffalo.edu/cse545/content/walsh-hadamard-code. [0102]

Claims (16)

  1. Vorrichtung (100) zur Verarbeitung von Daten, wobei die Vorrichtung (100) eine Eingangsschnittstelle (110) zum Empfang von Eingangsdaten (X) aufweist und eine Verarbeitungseinheit (120) zur Verarbeitung von Daten, dadurch gekennzeichnet, dass eine Kodiereinheit (130) vorgesehen ist, die dazu ausgebildet ist, an der Eingangsschnittstelle (110) als Eingangsdaten (X) erhaltene Datenworte (Xn) zu kodieren, um kodierte Datenworte (Xn‘) zu erhalten, wobei für kodierte Datenworte (Xn‘) die kodierten Datenworte (Xn‘) und/oder ihre Verarbeitung durch die Vorrichtung (100) charakterisierende Messwerte (X1n, X2n) in Abhängigkeit mindestens einer physikalischen Größe der Vorrichtung (100) ermittelbar sind, wobei die Kodiereinheit (130) dazu ausgebildet ist, die Datenworte (Xn) so zu kodieren, dass ein vorgebbarer Anteil aller Messwerte (X1n, X2n), vorzugsweise mindestens etwa 50% aller Messwerte (X1n, X2n), einen Unterschied zu einem Vorgabewert (Vn) aufweist, der kleiner oder gleich einem vorgebbaren Schwellwert (S) ist, und dass die Verarbeitungseinheit (120) dazu ausgebildet ist, die kodierten Datenworte (Xn‘) zu verarbeiten.
  2. Vorrichtung (100) nach Anspruch 1, wobei der Vorgabewert (Vn) für alle Messwerte (X1n, X2n) gleich gewählt ist.
  3. Vorrichtung (100) nach Anspruch 2, wobei als Vorgabewert (V) ein Mittelwert über alle möglichen Werte der Messwerte gewählt ist.
  4. Vorrichtung (100) nach einem der vorstehenden Ansprüche, wobei für mindestens zwei Messwerte (X1n, X2n) bzw. diesen Messwerten zugeordnete Datenworte (Xn‘) jeweils ein unterschiedlicher Schwellwert (Sn) vorgesehen ist.
  5. Vorrichtung (100) nach einem der vorstehenden Ansprüche, wobei die Messwerte skalare Größen oder vektorielle Größen sind oder Matrixform aufweisen.
  6. Vorrichtung (100) nach einem der vorstehenden Ansprüche, wobei die Messwerte einen elektrischen Energieverbrauch der Vorrichtung (100) oder mindestens einer Komponente der Vorrichtung (100) repräsentieren.
  7. Vorrichtung (100) nach einem der vorstehenden Ansprüche, wobei die Messwerte ein Hamminggewicht oder eine Hammingdistanz repräsentieren.
  8. Vorrichtung nach einem der vorstehenden Ansprüche, wobei die Verarbeitungseinheit (120) mindestens ein Register (R1, R2) aufweist, das zur zumindest zeitweisen Speicherung mindestens eines kodierten Datenworts (Xn‘) ausgebildet ist, und/oder eine kryptographische Einheit (124), die zur Ausführung mindestens eines Teils eines kryptographischen Verfahrens ausgebildet ist.
  9. Vorrichtung (100) nach einem der vorstehenden Ansprüche, wobei die Kodiereinheit (130) dazu ausgebildet ist, die Datenworte (Xn) zu kodieren, indem jedem Datenwort (Xn) eine vorgebbare Anzahl an Bits (Rn) hinzugefügt wird.
  10. Vorrichtung (100) nach Anspruch 9, wobei die Kodiereinheit (130) dazu ausgebildet ist, die vorgebbare Anzahl an hinzugefügten Bits (Rn) so zu wählen, dass ein vorgebbarer Anteil aller kodierten Datenworte (Xn‘) untereinander eine vorgebbare Hammingdistanz und/oder ein vorgebbares Hamminggewicht aufweisen.
  11. Vorrichtung (100) nach einem der vorstehenden Ansprüche, wobei die Vorrichtung (100) zumindest teilweise als integrierter Schaltkreis, vorzugsweise implementiert mittels CMOS Technologie, ausgebildet ist.
  12. Vorrichtung (100) nach einem der vorstehenden Ansprüche, wobei die Verarbeitungseinheit (120) als Datenbus ausgebildet ist oder einen Datenbus aufweist.
  13. Verfahren zum Betreiben einer Vorrichtung (100) zur Verarbeitung von Daten, wobei die Vorrichtung (100) eine Eingangsschnittstelle (110) zum Empfang von Eingangsdaten (X) aufweist und eine Verarbeitungseinheit (120) zur Verarbeitung von Daten, dadurch gekennzeichnet, dass mittels einer Kodiereinheit (130) an der Eingangsschnittstelle (110) als Eingangsdaten (X) erhaltene Datenworte (Xn) kodiert (200) werden, um kodierte Datenworte (Xn‘) zu erhalten, wobei für kodierte Datenworte (Xn‘) die kodierten Datenworte (Xn‘) und/oder ihre Verarbeitung durch die Vorrichtung (100) charakterisierende Messwerte (X1n, X2n) in Abhängigkeit mindestens einer physikalischen Größe der Vorrichtung (100) ermittelbar sind, wobei die Kodiereinheit (130) dazu ausgebildet ist, die Datenworte (Xn) so zu kodieren, dass ein vorgebbarer Anteil aller Messwerte (X1n, X2n), vorzugsweise mindestens etwa 50% aller Messwerte (X1n, X2n), einen Unterschied zu einem Vorgabewert (Vn) aufweist, der kleiner oder gleich einem vorgebbaren Schwellwert (S) ist, und dass die Verarbeitungseinheit (120) die kodierten Datenworte (Xn‘) verarbeitet (210).
  14. Verfahren nach Anspruch 13, wobei eine Kalibrierung ausgeführt wird, bei der vorgebbare Kalibrierdatenworte durch die Verarbeitungseinheit (120) verarbeitet werden, und bei der mit den Kalibrierdatenworten korrespondierende Messwerte ermittelt werden.
  15. Verfahren nach Anspruch 14, wobei die Kodierung durch die Kodiereinheit (130) in Abhängigkeit der mit den Kalibrierdatenworten korrespondierenden Messwerte erfolgt.
  16. Verfahren zum Betreiben einer Vorrichtung (100) zur Verarbeitung von Daten, wobei die Vorrichtung (100) eine Eingangsschnittstelle (110) zum Empfang von Eingangsdaten (X) aufweist und eine Verarbeitungseinheit (120) zur Verarbeitung von Daten, dadurch gekennzeichnet, dass mittels einer Kodiereinheit (130) an der Eingangsschnittstelle (110) als Eingangsdaten (X) erhaltene Datenworte (Xn) kodiert (200) werden, um kodierte Datenworte (Xn‘) zu erhalten, und dass die Verarbeitungseinheit (120) die kodierten Datenworte (Xn‘) verarbeitet (210), wobei die Kodiereinheit (130) einen Leakage preserving Code für die Kodierung verwendet.
DE102013205542.0A 2013-03-28 2013-03-28 Vorrichtung und Verfahren zur Verarbeitung von Daten Pending DE102013205542A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102013205542.0A DE102013205542A1 (de) 2013-03-28 2013-03-28 Vorrichtung und Verfahren zur Verarbeitung von Daten
US14/224,464 US9767281B2 (en) 2013-03-28 2014-03-25 Device and method for processing data
CN201410118859.2A CN104077349B (zh) 2013-03-28 2014-03-27 用于处理数据的设备和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102013205542.0A DE102013205542A1 (de) 2013-03-28 2013-03-28 Vorrichtung und Verfahren zur Verarbeitung von Daten

Publications (1)

Publication Number Publication Date
DE102013205542A1 true DE102013205542A1 (de) 2014-10-02

Family

ID=51519775

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013205542.0A Pending DE102013205542A1 (de) 2013-03-28 2013-03-28 Vorrichtung und Verfahren zur Verarbeitung von Daten

Country Status (3)

Country Link
US (1) US9767281B2 (de)
CN (1) CN104077349B (de)
DE (1) DE102013205542A1 (de)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102015114233A1 (de) * 2015-08-27 2017-03-02 Infineon Technologies Ag Datenverarbeitungsvorrichtungen und Verfahren zum Speichern eines Datenvektors
DE102016207051A1 (de) 2016-04-26 2017-10-26 Robert Bosch Gmbh Verfahren und Vorrichtung zum Steuern eines Busses
DE102016207855A1 (de) 2016-05-06 2017-11-09 Robert Bosch Gmbh Verfahren und Vorrichtung zum Abwehren von Rechenzeitangriffen auf eine geheime Berechnung

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014207296A1 (de) * 2014-04-16 2015-10-22 Robert Bosch Gmbh Vorrichtung und Verfahren zur Verarbeitung von Daten
US10727872B2 (en) * 2018-01-10 2020-07-28 Western Digital Technologies, Inc. Encoding and decoding of hamming distance-based binary representations of numbers
US11080432B2 (en) * 2018-07-30 2021-08-03 Texas Instruments Incorporated Hardware countermeasures in a fault tolerant security architecture
US10826536B1 (en) * 2019-10-03 2020-11-03 International Business Machines Corporation Inter-chip data transmission system using single-ended transceivers

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002247025A (ja) * 2001-02-22 2002-08-30 Hitachi Ltd 情報処理装置
DE10202700A1 (de) * 2002-01-24 2003-08-07 Infineon Technologies Ag Vorrichtung und Verfahren zum Erzeugen eines Befehlscodes
JP2006279868A (ja) * 2005-03-30 2006-10-12 Sharp Corp 半導体装置、および、それを備えるicカード
JP2007128184A (ja) * 2005-11-01 2007-05-24 Sharp Corp 消費電力解析対策機能付き半導体装置
US8582647B2 (en) * 2007-04-23 2013-11-12 Qualcomm Incorporated Methods and systems for quality controlled encoding
JP5298622B2 (ja) * 2007-12-21 2013-09-25 ソニー株式会社 送信装置および方法、受信装置および方法
JP4586912B2 (ja) * 2008-09-08 2010-11-24 ソニー株式会社 情報処理装置、符号化方法、及び信号伝送方法
GB0917417D0 (en) * 2009-10-05 2009-11-18 Mitsubishi Elec R&D Ct Europe Multimedia signature coding and decoding
JP2011253605A (ja) * 2010-05-06 2011-12-15 Sony Corp 符号化装置、符号化方法、記録装置、記録方法、復号装置、復号方法
US10333547B2 (en) * 2012-08-13 2019-06-25 Gurologic Microsystems Oy Encoder and method for encoding input data using a plurality of different transformations or combinations of transformations
US9805432B2 (en) * 2014-09-08 2017-10-31 Nxp Usa, Inc. Data logging system and method

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf, Kapitel 5.1.1
https://wiki.cse.buffalo.edu/cse545/content/walsh-hadamard-code.

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102015114233A1 (de) * 2015-08-27 2017-03-02 Infineon Technologies Ag Datenverarbeitungsvorrichtungen und Verfahren zum Speichern eines Datenvektors
DE102016207051A1 (de) 2016-04-26 2017-10-26 Robert Bosch Gmbh Verfahren und Vorrichtung zum Steuern eines Busses
DE102016207855A1 (de) 2016-05-06 2017-11-09 Robert Bosch Gmbh Verfahren und Vorrichtung zum Abwehren von Rechenzeitangriffen auf eine geheime Berechnung

Also Published As

Publication number Publication date
CN104077349B (zh) 2018-11-20
US20140298459A1 (en) 2014-10-02
CN104077349A (zh) 2014-10-01
US9767281B2 (en) 2017-09-19

Similar Documents

Publication Publication Date Title
DE102013205544A1 (de) Vorrichtung und Verfahren zur Verarbeitung von Daten
DE102013205542A1 (de) Vorrichtung und Verfahren zur Verarbeitung von Daten
EP2605445B1 (de) Verfahren und Vorrichtung zur Absicherung von Blockchiffren gegen Template-Attacken
DE102014207296A1 (de) Vorrichtung und Verfahren zur Verarbeitung von Daten
EP2940620B1 (de) Ableiten eines gerätespezifischen wertes mit hilfe einer unklonbaren funktion
DE102013227166B4 (de) Schaltkreiseinheit zur Bereitstellung eines kryptographischen Schlüssels
EP2940924A1 (de) PUF basierende Ableitung eines gerätespezifischen Wertes
DE102005009170B4 (de) Logikschaltung und zugehöriges Verfahren
DE112011106024B4 (de) Erzeugungsvorrichtung für vorrichtungsspezifische Informationen und Erzeugungsverfahren für vorrichtungsspezifische Informationen
DE112007003080T5 (de) Verfahren, System und Vorrichtung für den ECC-Schutz von kleinen Datenstrukturen
EP1504336B1 (de) Vorrichtung und verfahren zum erzeugen einer zufallszahl
DE102009007246A1 (de) Pseudozufallszahlengenerator und Verfahren zum Erzeugen einer Pseudozufallszahlenbitsequenz
DE102012204708A1 (de) Vorrichtung und Verfahren zur Authentifizierung eines Objekts
DE102011078643A1 (de) Verfahren zum Erzeugen einer zufälligen Ausgangsbitfolge
DE102018116572A1 (de) Schutz gegen seitenkanalangriffe
DE60022840T2 (de) Verfahren zum sichern einer oder mehrerer elektronischer baugruppen, unter zuhilfenahme eines privatschlüssel-krypto-algorithmus, sowie elektronische baugruppe
DE102015102363A1 (de) Anordnung und verfahren zum überprüfen der entropie einer zufallszahlenfolge
DE102011078645A1 (de) Verfahren zum sicheren Prüfen eines Codes
EP3369205B1 (de) Alternative darstellung des krypto-algorithmus des
DE102008023577A1 (de) Symmetrischer Ein-Block-Verschlüsselungs-Algorithmus mit variabler Schlüssellänge
WO2006050973A1 (de) Vorrichtung und verfahren zum detektieren einer manipulation eines informationssignals
DE102014213071A1 (de) Verfahren und Vorrichtung zur Verarbeitung von Daten
DE102012219205A1 (de) Vorrichtung und Verfahren zur Ausführung eines kryptographischen Verfahrens
DE102014216392A1 (de) Symmetrisches Iteriertes Blockchiffrierverfahren und entsprechende Vorrichtung
DE102015209120A1 (de) Recheneinrichtung und Betriebsverfahren hierfür

Legal Events

Date Code Title Description
R012 Request for examination validly filed