-
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 zu verbessern, sodass 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 die Kodiereinheit dazu ausgebildet ist, 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, und dass die Verarbeitungseinheit dazu ausgebildet ist, die kodierten Datenworte zu verarbeiten.
-
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.
-
Vorliegend wird unter „alle kodierte Datenworte“ 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.
-
Insbesondere können hierdurch sogenannte differential power analysis(DPA)-Attacken auf die erfindungsgemäße Vorrichtung vereitelt bzw. wesentlich erschwert werden. Bspw. ist bei einer bevorzugten Ausführungsform vorgesehen, dass der vorgebbare Anteil etwa 100% beträgt, das bedeutet, dass alle (j vielen) Datenworte so kodiert werden, dass sie untereinander eine vorgebbare Hammingdistanz und/oder ein vorgebbares Hamminggewicht aufweisen. In diesem Fall kann bspw. mittels einer differential power analysis(DPA)-Attacke nur ein außerordentlich geringer bzw. gar kein wesentlicher Informationsanteil durch eine entsprechende Auswertung des Betriebs der erfindungsgemäßen Vorrichtung erhalten werden, weil bspw. im Falle eines konstanten Hamminggewichts aller kodierten Datenworte jedes Datenwort gleich viele Bits mit dem Wert 1 aufweist wie alle anderen Datenworte. Dadurch wird verhindert, dass Bitübergänge (Zustandsübergänge von 1 nach 0 und umgekehrt), wie sie bei der Verarbeitung der kodierten Datenworte auftreten, Informationen über den eigentlichen Informationsgehalt der unkodierten Datenworte preisgeben.
-
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 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.
-
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 7 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 Verarbeitungseinheit,
-
3a, 3b schematisch Geräte mit einer erfindungsgemäßen Vorrichtung,
-
4 schematisch ein Beispiel für eine Ausführungsform einer erfindungsgemäßen Kodierung,
-
5 schematisch eine Tabelle zur Veranschaulichung einer Kodierung gemäß einer Ausführungsform,
-
6 schematisch eine weitere Vorrichtung gemäß einer Ausführungsform, und
-
7 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 weist eine Eingangsschnittstelle 110 zum Empfang von Eingangsdaten X auf. Die Eingangsdaten X können 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 Vorrichtung 100 verfügt ferner über eine Verarbeitungseinheit 120 zur Verarbeitung von Daten, bspw. von Daten, welche von den Eingangsdaten X abgeleitet worden sind.
-
Erfindungsgemäß ist ferner eine Kodiereinheit 130 vorgesehen, welche dazu ausgebildet ist, die an der Eingangsschnittstelle 110 als Eingangsdaten X erhaltenen Datenworte Xn zu kodieren, um kodierte Datenworte Xn' zu erhalten. Die kodierten Datenworte Xn' werden wie aus 1 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.
-
Erfindungsgemäß ist die Kodiereinheit 130 dazu ausgebildet, die Datenworte Xn so zu kodieren, dass ein vorgebbarer Anteil aller kodierten Datenworte Xn' untereinander, vorzugsweise mindestens etwa 50% aller kodierten Datenworte Xn' eine vorgebbare Hammingdistanz und/oder ein vorgebbares Hamminggewicht aufweisen. Dadurch wird vorteilhaft erreicht, dass eine nachfolgende Verarbeitung der kodierten Datenworte Xn' und/oder eine Speicherung und/oder ein Zugriff hierauf in der Verarbeitungseinheit 120 einen geringeren Grad von Leckage an die Daten X betreffenden Informationen bedingt, wodurch DPA-Attacken auf die Vorrichtung 100 deutlich erschwert werden.
-
Erfindungsgemäß verarbeitet die Verarbeitungseinheit 120 demnach also die kodierten Datenworte Xn', und nicht direkt die nicht kodierten Eingangsdaten X bzw. die entsprechenden Datenworte Xn.
-
Bei einer bevorzugten Ausführungsform ist die Kodiereinheit 130 dazu ausgebildet, die Datenworte Xn so zu kodieren, dass alle kodierten Datenworte untereinander die vorgebbare Hammingdistanz aufweisen.
-
Alternativ oder ergänzend kann vorgesehen sein, dass die Kodierung derart erfolgt, dass alle kodierten Datenworte Xn' ein vorgebbares Hamminggewicht 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. 2a zeigt eine weitere Ausführungsform, bei der eine Variante 120a der Verarbeitungseinheit 120 gemäß 1 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.
-
2b 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äß 2b zur Ausführung der betreffenden Teile des AES Algorithmus eingesetzt werden.
-
Bei noch einer weiteren Ausführungsform kann die Verarbeitungseinheit ein Datenbus (seriell oder parallel) sein, oder generell um eine Schaltungstechnische Komponente, der kodierte Datenworte zuführbar sind.
-
Bei noch einer weiteren Ausführungsform sind die Komponenten 120 und 130 auch funktional miteinander kombinierbar.
-
3a 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äß 3a weist vorteilhaft mindestens die in 1 abgebildete Struktur auf, es ist auch denkbar, mehrere Kodiereinheiten 130 bzw. mehrere gleiche oder unterschiedliche Verarbeitungseinheiten 120 innerhalb einer Vorrichtung 100 vorzusehen, wodurch entsprechende Verfahrensschritte eines in der Vorrichtung 100 implementierten Datenverarbeitungsverfahrens die erfindungsgemäßen Vorteile nutzen können.
-
3b 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.
-
4 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 4 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 (1) wird das Datenwort Xn gemäß 4 in ein kodiertes Datenwort Xn' überführt, vgl. Pfeil a aus 4. Wie aus 4 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.
-
5 zeigt beispielhaft eine Kodiertabelle mit drei Spalten S1, S2, S3, wie sie bspw. in der Kodiereinheit 130 (1) gemäß einer Ausführungsform einsetzbar ist. Die Spalte S1 enthält die Zeilennummern der insgesamt 16 Zeilen der Tabelle aus 5. 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 5 abgebildeten Tabelle enthält die kodierten Datenworte Xn‘, wie sie durch die erfindungsgemäße Kodiereinheit 130 (1) den jeweiligen Datenworten Xn der Spalte S2 derselben Zeile zugeordnet werden.
-
Die Tabelle gemäß
5 kann aus den sechzehn Datenworten Xn beispielsweise mit den folgenden Gleichungen bzw. Bildungsregel erhalten werden:
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 5 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' (1) 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äß 5 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.
-
6 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äß 6 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. 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 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.
-
7 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 (1). 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.
-
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 kaum 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.
-
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 [0011]