Warning: fopen(111data/log202005311641.log): failed to open stream: No space left on device in /home/pde321/public_html/header.php on line 107

Warning: flock() expects parameter 1 to be resource, boolean given in /home/pde321/public_html/header.php on line 108

Warning: fclose() expects parameter 1 to be resource, boolean given in /home/pde321/public_html/header.php on line 113
Ausspähungsgeschütztes Berechnen eines maskierten Ergebniswertes - Dokument DE102004032893A1
 
PatentDe  


Dokumentenidentifikation DE102004032893A1 02.02.2006
Titel Ausspähungsgeschütztes Berechnen eines maskierten Ergebniswertes
Anmelder Giesecke & Devrient GmbH, 81677 München, DE
Erfinder Neiße, Olaf, Dr., 86161 Augsburg, DE;
Pulkus, Jürgen, Dr., 80469 München, DE
DE-Anmeldedatum 07.07.2004
DE-Aktenzeichen 102004032893
Offenlegungstag 02.02.2006
Veröffentlichungstag im Patentblatt 02.02.2006
IPC-Hauptklasse H04L 9/00(2006.01)A, F, I, ,  ,  ,   
Zusammenfassung Bei einem Verfahren zum ausspähungsgeschützten Berechnen eines maskierten Ergebniswertes aus einem maskierten Eingangswert gemäß einer vorgegebenen Abbildung (T) wird eine maskierte Tabelle (T') mit einer Mehrzahl von Einträgen (32) berechnet, wobei zur Berechnung zumindest mancher Einträge (32) der maskierten Tabelle (T') die vorgegebene Abbildung (T) an mindestens zwei Stellen (q1, q2) ausgewertet wird und die dabei ermittelten Ergebniswerte (T(q1), T(q2)) in die Berechnung des Eintrags (32) der maskierten Tabelle (T') eingehen, und es wird der maskierte Ergebniswert unter Verwendung der maskierten Tabelle T') und der vorgegebenen Abbildung (T) berechnet. Ein Computerprogrammprodukt und eine Vorrichtung, insbesondere ein tragbarer Datenträger, weisen entsprechende Merkmale auf. Die Erfindung benötigt bei hohem Ausspähungsschutz nur wenig Arbeitsspeicher.

Beschreibung[de]

Die Erfindung betrifft allgemein das Gebiet der Kryptographie und spezieller das Gebiet des Ausspähungsschutzes von kryptographischen Berechnungen. Besonders eignet sich die Erfindung zur Verwendung bei einem tragbaren Datenträger. Ein solcher tragbarer Datenträger kann z.B. eine Chipkarte (Smart Card) in unterschiedlichen Bauformen oder ein Chipmodul oder ein sonstiges ressourcenbeschränktes System sein.

Tragbare Datenträger werden oft für sicherheitskritische Anwendungen eingesetzt, beispielsweise zur Authentisierung im Mobilfunk, für Finanztransaktionen, zur elektronischen Unterschrift und so weiter. Da durch eine unbefugte Verwendung hoher Schaden entstehen könnte, müssen die geheimen Daten, die von solchen Datenträgern verarbeitet werden, zuverlässig gegen Ausspähung und Manipulation geschützt werden.

Es sind diverse Angriffsverfahren zur Datenausspähung bekannt, bei denen der Informationsfluß nicht über die für den normalen Betrieb des Datenträgers vorgesehenen Kommunikationskanäle verläuft. Solche Verfahren werden daher als Nebenkanalangriffe (Side Chanttel Attacks) bezeichnet. Beispiele für Nebenkanalangriffe sind sogenannte SPA- bzw. DPA-Angriffe (SPA = Simple Power Analysis; DPA = Differential Power Analysis), bei denen durch Messung der Stromaufnahme des Datenträgers während der Abarbeitung eines Programms Rückschlüsse auf die verarbeiteten Daten gezogen werden. Bei einem SPA-Angriff wird die Stromaufnahme während eines einzigen Berechnungsablaufs untersucht, während bei einem DPA-Angriff viele Berechnungsabläufe statistisch ausgewertet werden. Bei anderen Nebenkanalangriffen wird zusätzlich zum Stromverbrauch oder stattdessen mindestens ein anderer physikalischer Parameter, z.B. die für die Berechnung benötigte Zeit, gemessen und ausgewertet.

Eine bekannte Technik zur Abwehr von Nebenkanalangriffen ist es, die geheim zu haltenden Daten zu maskieren, also derart zu verfälschen, daß die maskierten Daten statistisch unabhängig von den geheim zu haltenden Daten sind. Kryptographische Berechnungen werden dann mit den maskierten Daten durchgeführt. Selbst wenn es einem Angreifer gelingt, z.B. durch einen Nebenkanalangriff die maskierten Daten zu ermitteln, so können daraus keine Rückschlüsse auf die geheim zu haltenden Daten gezogen werden.

Die Maskierung erfolgt durch Anwendung einer Maskierungsfunktion auf die geheim zu haltenden Daten. Meist ist die Maskierungsfunktion aus einer vorbestimmten Maskierungsregel mit mindestens einem Maskierungsparameter gebildet. Der Maskierungsparameter wird vor Beginn der kryptographischen Berechnung zufällig gewählt. So ist z.B. gemäß einem als "boolesche Maskierung" bekannten Verfahren die Maskierungsregel die Exklusiv-Oder-Operation (XOR) mit einem durch den Maskierungsparameter festgelegten Operanden. Die kryptographische Berechnung wird dann nicht mit dem geheim zu haltenden Wert x, sondern mit dessen maskierter Repräsentation x ⨁ r ausgeführt, wobei ⨁ die Exklusiv-Oder-Operation in Infixschreibweise und r den zufällig gewählten Maskierungsparameter bezeichnen.

Die gerade beschriebene Maskierungstechnik ist z.B. aus DE 198 22 217 A1 bekannt. Allerdings wird dort vorgeschlagen, Rechenoperationen, die bezüglich der gewählten Maskierungsfunktion nicht-linear sind, ohne Maskierung mit den geheim zu haltenden Daten durchzuführen. Dies stellt ein potentielles Sicherheitsrisiko dar.

Bei vielen kryptographischen Verfahren sind zu berechnende Abbildungen für unmaskierte Eingangs- und Ergebniswerte durch Tabellen vorgegeben. Aus den oben genannten Gründen soll jedoch insbesondere bei einer Implementierung auf einem tragbaren Datenträger ein Tabellenzugriff mit dem unmaskierten Eingangswert als Tabellenindex vermieden werden. Vielmehr soll auf eine maskierte Tabelle zugegriffen werden, die so ausgestaltet ist, daß sie bei einem Zugriff auf einen maskierten Eingangswert als Tabellenindex einen maskierten Ergebniswert liefert.

In Formelschreibweise werden also z.B. bei einer booleschen Maskierung die folgenden Schritte bei jedem Durchlauf des kryptographischen Verfahrens ausgeführt: Zuerst werden zwei Zufallszahlen r und s als Maskierungsparameter bestimmt. Dann wird auf Grundlage der vorgegebenen Tabelle T eine maskierte Tabelle T' erzeugt, so daß T' (x ⨁ r) = T(x) ⨁ s gilt. In der maskierten Tabelle T' sind also die Eingangswerte mit dem Maskierungsparameter r und die Ergebniswerte mit dem Maskierungsparameter s maskiert. Die kryptographische Berechnung wird so ausgeführt, daß der geheim zu haltende Wert x nicht in unmaskierter Form, sondern in der maskierten Form x ⨁ r vorliegt. Statt eines Zugriffs auf die Tabelle T an der Stelle x erfolgt nun ein Zugriff auf die maskierte Tabelle T' an der Stelle x ⨁ r. Hierdurch ergibt sich statt eines unmaskierten Ergebnisses y := T(x) der gewünschte, mit dem Maskierungsparameter s maskierte Ergebniswert y ⨁ s.

Offensichtlich ist es nicht praktikabel, schon bei der Herstellung des Datenträgers für jede später mögliche Maskierung – im obigen Beispiel alle möglichen Maskierungsparameter r und s – vorab je eine eigene maskierte Tabelle T' zu berechnen und in einem Festwertspeicher des Datenträgers abzulegen. Die maskierte Tabelle T' kann daher erst zur Laufzeit des kryptographischen Verfahrens für eine konkret anzuwendende Maskierung – im obigen Beispiel bereits gewählte Maskierungsparameter r und s – berechnet und in einen Arbeitsspeicher des Datenträgers eingeschrieben werden.

Hierbei ergibt sich jedoch das Problem eines relativ hohen Arbeitsspeicherbedarfs. Bei üblichen tragbaren Datenträgern ist der Arbeitsspeicher meist sehr knapp bemessen, weil der in der Regel als RAM ausgestaltete Arbeitsspeicher viel Chipfläche pro Speicherzelle benötigt. Wenn z.B. eine Tabelle mit 256 Einträgen zu je einem Byte als maskierte Tabelle T' in den Arbeitsspeicher geschrieben werden soll, werden dafür 256 Byte benötigt. Dies ist mehr, als manche heute üblichen Datenträger an Arbeitsspeicher bereitstellen, und auf jeden Fall ein beträchtlicher Teil des insgesamt zur Verfügung stehenden Arbeitsspeichers, der ja noch für viele andere Zwecke benötigt wird. Es besteht daher ein Bedürfnis, den für die maskierte Tabelle benötigten Platz im Arbeitsspeicher zu verringern.

Aus WO 03/017067 A2 ist ein Verfahren bekannt, bei dem aus zwei gleich großen unmaskierten Tabellen eine gemeinsame maskierte Tabelle mit der Größe einer der unmaskierten Tabellen erzeugt wird. Jeder Eintrag in der gemeinsamen Tabelle wird in Abhängigkeit von einer Verknüpfung je eines Ergebniswerts der beiden unmaskierten Tabellen berechnet. Um einen maskierten Ergebniswert gemäß der durch eine der unmaskierten Tabellen definierten Abbildung zu bestimmen, erfolgt ein Zugriff auf die maskierte Tabelle, dessen Ergebnis mit dem Ergebnis eines Zugriffs auf die andere unmaskierte Tabelle verknüpft wird, um die bei der Berechnung der maskierten Tabelle vorgenommene Verknüpfung rückgängig zu machen. Durch das Verfahren kann somit der im Arbeitsspeicher benötigte Speicherplatz halbiert werden.

In Formelschreibweise wird somit gemäß WO 03/017067 A2 für die im Festwertspeicher vorgegebenen Tabellen T1 und T2 und drei Maskierungsparameter r1, r2 und s die maskierte Tabelle T0 mit T0(x) := T1(x ⨁ r1) ⨁ T2(x ⨁ r2) ⨁ s berechnet und im Arbeitsspeicher abgelegt. Für einen maskierten Eingangswert x1 := x ⨁ r1 wird der maskierte Ergebniswert y1 := T1 (x) ⨁ s1 dann durch Auswertung der Gleichung y1 = T0(x1) ⨁ T2(x1 ⨁ (r1 ⨁ r2)) ⨁ (s ⨁ s1) berechnet; dies entspricht im unmaskierten Fall der Anwendung der durch die Tabelle T1 definierten Abbildung. Die Anwendung der durch die Tabelle T2 definierten Abbildung erfolgt analog.

Ferner lehrt WO 03/017067 A2 als vorbereitenden Schritt die Aufteilung einer großen vorgegebenen Tabelle in zwei oder mehr kleine Tabellen. In jede der kleinen Tabellen geht je ein Teil jedes Ergebniswerts der vorgegebenen Tabelle – z.B. je ein Halbbyte (Nibble) – ein. Mit anderen Worten findet eine Aufteilung der großen Tabelle im Bildbereich statt. Die kleinen Tabellen werden statt der ursprünglichen Tabelle in einem ROM gespeichert; der Speicherplatzbedarf im ROM bleibt dabei unverändert. Die so erhaltenen ROM-Tabellen können dann auf die oben beschriebene Weise in einer maskierten RAM-Tabelle übereinandergelegt werden. Dieses Verfahren ist jedoch wegen der erforderlichen Operationen auf Teilen von Datenbytes sowohl in der Implementierung als auch hinsichtlich der benötigten Rechenzeit aufwendig. Außerdem ist die maximale Speicherplatzersparnis im Arbeitsspeicher begrenzt.

Die Erfindung hat die Aufgabe, eine Technik zum ausspähungsgesicherten Berechnen von maskierten Werten gemäß einer vorgegebenen Abbildung zu schaffen, die bei hohem Ausspähungsschutz nur wenig Arbeitsspeicher benötigt. Insbesondere soll sich die Erfindung zur Anwendung bei tragbaren Datenträgern eignen.

Erfindungsgemäß wird diese Aufgabe ganz oder zum Teil gelöst durch ein Verfahren mit den Merkmalen des Anspruchs 1, ein Computerprogrammprodukt gemäß Anspruch 14 und eine Vorrichtung, insbesondere einen tragbaren Datenträger, gemäß Anspruch 15. Die abhängigen Ansprüche betreffen bevorzugte Ausgestaltungen der Erfindung.

Die Erfindung geht von der Grundüberlegung aus, die z.B. in Form einer Tabelle vorgegebene Abbildung zu falten. Mit anderen Worten werden bei zumindest manchen Einträgen in der maskierten Tabelle je mindestens zwei Ergebniswerte der vorgegebenen Abbildung miteinander kombiniert, z.B. über eine vorbestimmte Verknüpfungsfunktion, wobei zusätzliche Maskierungen erfolgen können. Die maskierte Tabelle enthält damit im Vergleich mit der Anzahl der Werte, für die die vorgegebene Abbildung definiert ist, nur einen Bruchteil der Einträge. Dies spart wertvollen Speicherplatz im Arbeitsspeicher.

In bevorzugten Ausgestaltungen geht jeder Ergebniswert einer Auswertung der vorgegebenen Abbildung bei der Berechnung des entsprechenden Eintrags der maskierten Tabelle vollständig in diese Berechnung ein. Mit anderen Worten ist der sich ergebende Eintrag abhängig von jedem einzelnen Bit des Ergebniswertes. Bei der Berechnung der maskierten Tabelle wird die vorgegebene Abbildung vorzugsweise an jeder Stelle, an der sie definiert ist, genau einmal ausgewertet.

In bevorzugten Ausgestaltungen unterscheiden sich die je mindestens zwei Eingangswerte, für die die vorgegebene Abbildung bei der Berechnung eines Eintrags der maskierten Tabelle ausgewertet wird, in einer maskierten Repräsentation um einen konstanten, vorgegebenen Distanzwert gemäß einer ebenfalls vorgegebenen Distanzberechnungsfunktion.

Bei der Berechnung des maskierten Ergebniswerts unter Verwendung der maskierten Tabelle wird vorzugsweise ein Eintrag der maskierten Tabelle herangezogen und dessen Inhalt auf Grundlage mindestens einer Auswertung der vorgegebenen Abbildung korrigiert. Insbesondere kann hierbei vorgesehen sein, daß durch die Korrektur unerwünschte Komponenten des Eintrags, die bei der Berechnung der maskierten Tabelle durch die Verknüpfung mehrerer Ergebniswerte der vorgegebenen Abbildung in den Eintrag aufgenommen wurden, wieder entfernt werden. Um hohe Ausspähungssicherheit zu erzielen, wird die vorgegebene Abbildung vorzugsweise nicht an einer Stelle ausgewertet, die einem geheim zu haltenden Wert, dessen maskierte Repräsentation der maskierte Eingangswert ist, entspricht.

In vorteilhaften Ausgestaltungen ist die vorgegebene Abbildung zumindest teilweise durch eine in einem Festwertspeicher befindliche Tabelle definiert. Die maskierte Tabelle wird vorzugsweise in einen Arbeitsspeicher eingeschrieben.

Das erfindungsgemäße Computerprogrammprodukt weist Programmbefehle auf, um das erfindungsgemäße Verfahren zu implementieren. Ein derartiges Computerprogrammprodukt kann ein körperliches Medium sein, z.B. ein Halbleiterspeicher oder eine Diskette oder eine CD-ROM. Das Computerprogrammprodukt kann jedoch auch ein nicht-körperliches Medium sein, z.B. ein über ein Computernetzwerk übermitteltes Signal. Insbesondere kann das Computerprogrammprodukt Programmbefehle enthalten, die im Zuge der Herstellung oder der Initialisierung oder der Personalisierung eines tragbaren Datenträgers in diesen eingebracht werden.

Die erfindungsgemäße Vorrichtung kann insbesondere ein tragbarer Datenträger, z.B. eine Chipkarte oder ein Chipmodul, sein.

In bevorzugten Weiterbildungen weisen das Computerprogrammprodukt und/oder die Vorrichtung Merkmale auf, die den in der vorliegenden Beschreibung erwähnten und/oder den in den abhängigen Verfahrensansprüchen genannten Merkmalen entsprechen.

Weitere Merkmale, Aufgaben und Vorteile der Erfindung ergeben sich aus der folgenden Beschreibung mehrerer Ausführungsbeispiele und Ausführungsalternativen. Es wird auf die schematischen Zeichnungen verwiesen, in denen zeigen:

1 eine Übersicht mit Funktionseinheiten eines tragbaren Datenträgers und Datenstrukturen nach einem Ausführungsbeispiel der Erfindung,

2 eine beispielhafte Darstellung von Berechnungsschritten beim Erzeugen einer maskierten Tabelle, und

3 eine beispielhafte Darstellung von Berechnungsschritten beim Ermitteln eines maskierten Ergebniswerts.

Der in 1 schematisch dargestellte Datenträger 10 ist im vorliegenden Ausführungsbeispiel als Chipkarte (Smart Card) oder Chipmodul – z.B. als SIM (Subscriber Identity Module) für ein Mobiltelekommunikationsgerät – ausgebildet. Der Datenträger 10 weist einen Prozessor 12, einen Speicher 14 und eine Schnittstellenschaltung 16 zur kontaktlosen oder kontaktgebundenen Kommunikation mit einem externen Terminal (nicht gezeigt) auf.

In an sich bekannter Weise ist der Speicher 14 in mehrere Speicherbereiche unterteilt, die in unterschiedlichen Technologien ausgestaltet sind. Im hier beschriebenen Ausführungsbeispiel sind ein als maskenprogrammiertes ROM ausgestalteter Festwertspeicher 18 und ein als flüchtiges RAM ausgestalteter Arbeitsspeicher 20 vorgesehen. Ferner weist der Datenträger 10 einen nichtflüchtigen überschreibbaren Speicher 22 auf, der beispielsweise ein EEPROM oder ein Flash-EEPROM oder ein ferroelektrischer Speicher (FRAM) sein kann. In Ausführungsalternativen können auch der Festwertspeicher 18 und/oder der Arbeitsspeicher 20 ganz oder zum Teil in EEPROM- und/oder Flash-EEPROM- und/oder FRAM-Technologien ausgestaltet sein.

Im vorliegenden Ausführungsbeispiel enthält der Festwertspeicher 18 eine Tabelle 24 mit allgemein 2b Einträgen zu je b' Bit; zwei dieser Einträge sind in 1 beispielhaft mit den Bezugszeichen 26 und 28 versehen. Im vorliegenden Ausführungsbeispiel gilt b = b' = 8; die Tabelle 24 enthält also 256 Einträge zu je einem Byte.

Die Tabelle 24 implementiert im vorliegenden Ausführungsbeispiel eine für unmaskierte Eingangs- und Ergebniswerte vorgegebene T. So enthält z.B. der Eintrag 26 einen Ergebniswert T(q1), der einem als Tabellenindex dienenden Eingangswert q1 zugeordnet ist. Entsprechend gibt der Eintrag 28 einen Ergebniswert T(q2) an, der einem Eingangswert q2 zugeordnet ist und der durch einen Zugriff auf die Tabelle 24 mit dem Wert q2 als Tabellenindex erhalten wird. Die Eingangswerte q1, q2 weisen je b Bit auf, und die Ergebniswerte T(q1), T(q2) sind b'-Bit-Worte. Somit ist die vorgegebene Abbildung für den Bereich {0, 1, ..., 2b – 1} definiert und liefert Ergebniswerte im Bereich {0, 1, ..., 2b' – 1}.

In Ausführungsalternativen ist statt der Tabelle 24 eine Rechenvorschrift im Festwertspeicher 18 enthalten, die die vorgegebene T implementiert. Diese Rechenvorschrift kann sich gegebenenfalls ihrerseits auf eine Tabelle oder mehrere Tabellen abstützen.

Beim Betrieb des Datenträgers 10 wird aus der vorgegebenen T eine maskierte Tabelle T' berechnet und in den Arbeitsspeicher 20 eingeschrieben. Die maskierte Tabelle T', die in 1 mit dem Bezugszeichen 30 gezeigt ist, benötigt nur einen Bruchteil des Speicherplatzes der Tabelle 24, nämlich im vorliegenden Ausführungsbeispiel den halben Speicherplatz. Die maskierte Tabelle T' weist eine Anzahl von Einträgen auf, von denen jeder für einen Tabellenindex t als Eingangswert einen Ergebniswert T'(t) angibt. Einer dieser Einträge ist in 1 beispielhaft mit dem Bezugszeichen 32 bezeichnet. Einzelheiten der Berechnung und Nutzung der maskierten Tabelle T' werden im folgenden erläutert.

Das im folgenden beschriebene Verfahren wird von dem Prozessor 12 des Datenträgers 10 ausgeführt. Das Verfahren ist dazu in Form von Programmbefehlen (nicht gezeigt) implementiert, die im Festwertspeicher 18 und/oder dem nichtflüchtigen überschreibbaren Speicher 22 enthalten sind. Insgesamt soll durch das Verfahren auf ausspähungsgesicherte Weise die vorgegebene T für einen maskierten Eingangswert x' := &rgr;(x) ausgewertet werden, um einen maskierten Ergebniswert y' := &sgr;(T(x)) zu bestimmen. Aus Gründen den Ausspähungsschutzes verbietet es sich jedoch, hierbei mit dem unmaskierten Wert x als Tabellenindex auf die Tabelle 24 zuzugreifen, weil ein Angreifer daraus möglicherweise Informationen über den geheim zu haltenden Wert x ermitteln könnte.

Die hier verwendeten Maskierungsfunktionen &rgr; und &sgr; sind allgemein Permutationen auf den Mengen {0, 1, ..., 2b – 1} beziehungsweise {0, 1, ..., 2b' – 1}. Die Maskierungsfunktionen sind damit umkehrbar; die entsprechenden Umkehrfunktionen werden mit &rgr;–1 und &sgr;–1 bezeichnet. In vielen Ausführungsformen der Erfindung wird die oben bereits beschriebene boolesche Maskierung verwendet, also eine Exklusiv-Oder-Verknüpfung mit einem konstanten Maskierungsparameter. In diesem Fall gilt für den maskierten Eingangswert x' die Beziehung x' = x ⨁ r1, und für den maskierten Ergebniswert y' gilt die Beziehung y' = T(x) ⨁ r2, wobei die Maskierungsparameter r1 und r2 mit r1 ∊ {0, 1, ..., 2b – 1} und r2 ∊ {0, 1, ..., 2b' – 1} zufällig gewählt sind.

In Ausführungsalternativen werden Maskierungsfunktionen &rgr; und &sgr; verwendet, die auf anderen Maskierungsregeln als der booleschen Maskierung beruhen. Solche an sich bekannte Maskierungsregeln sind z.B. die modulare Addition, die modulare Subtraktion, die modulare Multiplikation, die für den IDEA-Algorithmus (International Data Encryption Algorithm) verwendete, modifizierte Multiplikation und allgemein affine Abbildungen. Die modulare Addition mit einem konstanten Summanden als Maskierungsparameter ist auch als "arithmetische Maskierung" bekannt. Der bei der arithmetischen Maskierung verwendete Modul kann z.B. eine Zweierpotenz – oft 28 oder 216 oder 232 – oder der Wert 216 + 1 sein; letzterer wird auch für die IDEA-Multiplikation verwendet.

2 und 3 veranschaulichen ein Ausführungsbeispiel des erfindungsgemäßen Verfahrens zur Berechnung des maskierten Ergebniswertes y' aus dem maskierten Eingangswert x'. Das Verfahren besteht aus zwei Stufen. In einer ersten Stufe, die in 2 veranschaulicht ist, wird die Tabelle T' im Arbeitsspeicher 20 angelegt. In einer zweiten Stufe, die in 3 dargestellt ist, erfolgt dann die eigentliche Berechnung des Ergebniswertes y'. Die zweite Stufe kann beliebig oft für je einen weiteren Eingangswert x' wiederholt werden. Je nach den an die kryptographische Sicherheit gestellten Anforderungen ist jedoch in der Regel vorgesehen, die maskierte Tabelle T' nur einmal oder nur einige wenige Male zu verwenden und die maskierte Tabelle T' dann mit anderen Maskierungsparametern neu zu berechnen.

Die Grundidee des hier beschriebenen Verfahrens ist es, bei der Berechnung jedes Eintrags 32 in der Tabelle T' je zwei Einträge 26, 28 in der Tabelle 24 auszuwerten und miteinander zu verknüpfen. Die beiden zusammenzufassenden Einträge 26, 28 werden so ausgewählt, daß sich ihre Indexwerte q1, q2 nach einer Maskierung um einen vorgegebenen Distanzwert d unterscheiden. Der Distanzwert d wird hierbei gemäß einer ebenfalls vorgegebenen Distanzberechnungsfunktion bestimmt. Die Distanzberechnungsfunktion ist im vorliegend beschriebenen Ausführungsbeispiel die Exklusiv-Oder-Funktion. In Ausführungsalternativen können andere Rechenoperationen, z.B. die modulare Addition, als Distanzberechnungsfunktion verwendet werden; hierauf wird unten noch genauer eingegangen.

Der Distanzwert d wird in einem vorbereitenden Schritt der ersten Stufe als gleichverteilte Zufallszahl im Bereich d ∊ {1, 2, ..., 2b – 1} gewählt. Ferner wird ein zusätzlicher Maskierungsparameter s ∊ {0, 1, ..., 2b' – 1} ebenfalls als gleichverteilte, von d stochastisch unabhängige Zufallszahl bestimmt.

Die höchste Zweierpotenz, welche den Distanzwert d teilt, wird im folgenden mit z bezeichnet. Mit anderen Worten enthält der Wert z eine einzige binäre "1", und zwar an der geringstwertigen Bitstelle, an der auch der Distanzwert d eine "1" aufweist. Der Wert z kann beispielsweise durch Auswerten der folgenden Beziehung berechnet werden: z = ((d ⨁ (d – 1)) + 1)/2(1)

Zur Berechnung der maskierten Tabelle T' gemäß 2 wird für jeden Eingangswert t ∊ {0, 1, ..., 2b-1 – 1} der entsprechende Ergebniswert T'(t) berechnet und an der durch t bezeichneten Indexposition als Tabelleneintrag 32 in den Arbeitsspeicher 20 geschrieben. Hierzu wird zunächst zu gegebenem t ein zugeordneter Hilfswert x'' ∊ {0, 1, ..., 2b – 1} berechnet, der aus der Binärdarstellung von t abgeleitet ist, indem an der durch den Wert z markierten Stelle eine zusätzliche binäre "0" eingefügt wird. Die Bitlänge von x'' ist also um ein Bit größer als die Bitlänge von t. Aufgrund der Definition des Wertes z gemäß Gleichung (1) weist der Distanzwert d an der durch z bezeichneten Stelle eine binäre "1" auf; die Werte x'' und x'' ⨁ d unterscheiden sich also zumindest an dieser Binärstelle.

In einer praxisnahen Implementierung kann der Hilfswert x'' gemäß der folgenden Beziehung berechnet werden, wobei der Infix-Operand n für die bitweise Und-Verknüpfung steht und mit (–z) das Zweierkomplement von z bezeichnet wird: x'' = t + (t ^ (–z))(2)

Der Hilfswert x'' wird als maskierte Repräsentation der Indexposition q1 des ersten der beiden Einträge 26, 28 angesehen, aus denen sich der Eintrag 32 berechnet; es gilt also &rgr;(q1) = x'' und somit q1 = &rgr;–1(x''). Die maskierte Repräsentation der Indexposition q2 des zweiten der beiden Einträge 26, 28 unterscheidet sich bezüglich der vorgegebenen Distanzberechnungsfunktion um den Distanzwert d vom Hilfswert x''; es gilt also im vorliegenden Ausführungsbeispiel &rgr;(q2) = x'' ⨁ d und somit q2 = &rgr;–1(x'' ⨁ d).

Zur Berechnung des Tabelleneintrags 32 werden nun die Ergebniswerte T(q1), T(q2) der Tabelleneinträge 26, 28 mit der Maskierungsfunktion &sgr; maskiert und verknüpft, wobei eine zusätzliche booleschen Maskierung mit dem Maskierungsparameter s angewendet wird. Es ergibt sich somit die folgende Formelschreibweise für den Ergebniswert T' (t): T'(t) := &sgr;(T(&rgr;–1(x''))) ⨁ &sgr;(T(&rgr;–1(x'' ⨁ d))) ⨁ s(3)

Im vorliegenden Ausführungsbeispiel wird in Definition (3) als Verknüpfungsfunktion für die beiden maskierten Ergebniswerte &sgr;(T(q1)), &sgr;(T(q2)) die Exklusiv-Oder-Operation verwendet; in Ausführungsalternativen können hierzu andere Rechenoperationen – z.B. eine modulare Addition – eingesetzt werden. Auch die zusätzliche Maskierung mit dem Maskierungsparameter s kann in Ausführungsalternativen unter Verwendung einer anderen Maskierungsregel ausgestaltet werden oder, je nach den Eigenschaften der sowieso eingesetzten Maskierungsfunktion &sgr; sowie der Verknüpfungsfunktion, ganz entfallen.

Nachdem die Tabelle T' berechnet worden ist, wird sie in der zweiten Verfahrensstufe gemäß 3 ausgewertet, um für den maskierten Eingangswert x' := &rgr;(x) den maskierten Ergebniswert y' := &sgr;(T(x)) zu erhalten.

Die Grundidee der Rechenschritte in der zweiten Verfahrensstufe ist es, auf denjenigen Eintrag 32 in der Tabelle T' zuzugreifen, bei dessen Berechnung in der ersten Verfahrensstufe die vorgegebene T für den geheim zu haltenden Wert x als Eingangswert ausgewertet wurde. Gemäß Gleichung (3) ist bei der ersten Verfahrensstufe in den Eintrag 32 noch eine Auswertung der vorgegebenen T an einer anderen Stelle eingeflossen. Diese Auswertung wird nun erneut durchgeführt, um dann auf Grundlage des ermittelten Ergebnisses den Inhalt des Eintrags 32 entsprechend zu korrigieren.

Im vorliegenden Ausführungsbeispiel ist die nutzbare Komponente des Eintrags 32 stets der Wert &sgr; (T(&rgr;–1(x'))), und die im Eintrag 32 ebenfalls enthaltene, zusätzliche Komponente &sgr;(T(&rgr;–1(k' ⨁ d))) muß herausgerechnet werden. Ferner ist es erforderlich, die zusätzliche Maskierung des Eintrags 32 mit dem Maskierungsparameter s zu entfernen. Der Indexwert t des Eintrags 32 in der maskierten Tabelle T' berechnet sich unmittelbar durch Entfernen des Bits an der durch z angegebenen Stelle im maskierten Eingangswert x', wenn dieses Bit den Wert "0" hat. Wenn dieses Bit jedoch den Wert "1" aufweist, wird statt des maskierten Eingangswerts x' der Wert x' ⨁ d herangezogen, weil in diesem Fall die gewünschte – also nicht herauszurechnende – Komponente bei der Berechnung des Tabelleneintrags 32 der zweite XOR-Summand von Gleichung (3) war.

Das gerade beschriebene Berechnungsverfahren wird im vorliegenden Ausführungsbeispiel durch die folgenden arithmetischen und logischen Operationen implementiert: w := –(x' ^ z)(4.1) v := x' ⨁ (w ^ d)(4.2) u := &rgr;–1(x' ⨁ d)(4.3) t := (v + (v mod z))/2(4.4) y' := '(t) ⨁ (&sgr;(T(u)) ⨁ s)(4.5)

Nach Schritt (4.1) hat die Hilfsvariable w den Wert 0, wenn der maskierte Eingangswert x' an der durch z markierten Binärstelle ein "0"-Bit aufweist, und sonst den Wert –z. Im erstgenannten Fall hat damit nach Schritt (4.2) die Variable v den Wert x', und im zweitgenannten Fall hat die Variable v den Wert x' ⨁ d. Insbesondere gilt stets v ^ z = 0; die durch z markierte Bitposition in v ist also gelöscht. Ferner ist v + (v mod z) gerade, so daß die Division in Schritt (4.4) ohne Rest durchgeführt werden kann, indem z.B. eine bitweise Verschiebung nach rechts erfolgt.

Der Zusammenhang zwischen v und t nach der Ausführung von Schritt (4.4) ist der gleiche wie der Zusammenhang zwischen x'' und t gemäß Gleichung (2) bei der Erzeugung der Tabelle T'. Mit anderen Worten ist t aus v gebildet, indem das in v enthaltene "0"-Bit an der durch z angegebenen Bitposition entfernt wird und die Bitlänge von t damit um eine Stelle gegenüber der Bitlänge von v verkürzt wird. Die Modulo-Operation v mod z wird in der Praxis meist durch Berechnung von v ^ (z–1) implementiert.

In Schritt (4.5) wird auf denjenigen Eintrag 32 der Tabelle T' zugegriffen, der als nutzbare Komponente den Wert &sgr;(T(&rgr;–1(x'))) enthält. Ferner werden die in diesem Eintrag 32 enthaltene zusätzliche Komponente &sgr;(T(&rgr;–1(x' ⨁ d))) und die zusätzliche Maskierung mit dem Maskierungsparameter s herausgerechnet. Es versteht sich, daß Schritt (4.5) in Ausführungsalternativen, bei denen andere Maskierungen und/oder andere Verknüpfungsregeln verwendet werden, an eine geänderte Gleichung (3) angepaßt werden muß.

Die bei der Ausführung der Berechnungsschritte (4.1) – (4.5) erhaltenen Zwischenergebnisse sind nicht völlig unabhängig von den geheim zu haltenden Werten x und y = T(x). Der Grund hierfür ist, daß im obigen Ausführungsbeispiel der für den Distanzwert d zulässige Wertebereich den Wert 0 nicht enthält. Aus d ≠ 0 folgt jedoch u ≠ x in Schritt (4.3), so daß bei der Berechnung von y' in Schritt (4.5) die vorgegebene T nie an der Stelle x ausgewertet wird, also z.B. die Tabelle 24 nie mit dem Indexwert x ausgelesen wird. Es besteht daher eine schwache negative Korrelation zwischen x und u sowie zwischen T(x) und T(u).

Falls der Wertebereich von x und u groß genug ist, also die Tabelle 24 hinreichend viele Einträge enthält, geht die gerade erwähnte statistische Korrelation in der Praxis im Rauschen unter und kann daher nicht zur Datenausspähung genutzt werden werden. Es sind jedoch auch Ausführungsalternativen der Erfindung vorgesehen, bei denen das oben beschriebene Verfahren geringfügig abgewandelt wird, um eine vollständige statistische Unabhängigkeit aller Zwischenwerte von x und y = T(x) zu erzielen.

In diesen Ausführungsalternativen besteht bei der Berechnung der maskierten Tabelle T' in der ersten Verfahrensstufe die Abwandlung darin, daß bei der Auswahl des Distanzwerts d auch der Wert 0 zugelassen wird; der neue Wertebereich für d ist also {0, 1, ..., 2b – 1}. Wenn bei einem Verfahrensablauf zufällig der Wert d = 0 gewählt wird, folgt gemäß Gleichung (1) z = 0, und alle Einträge 32 der maskierten Tabelle T' weisen gemäß Gleichung (3) konstant den Wert s auf. Es ist eine überraschende Erkenntnis, daß diese scheinbar ungünstige Regelmäßigkeit tatsächlich die kryptographische Sicherheit des Verfahrens steigert.

In der zweiten Verfahrensstufe braucht lediglich die Berechnung des Wertes t in Schritt (4.4) angepaßt zu werden. Wie oben erwähnt, wird die in diesem Schritt enthaltene Reduktion modulo z in der Praxis durch eine bitweise logische Und-Operation mit dem Wert z – 1 implementiert. Für d = 0 und damit z = 0 ergäbe sich hier t = v. Da die maskierte Tabelle T' jedoch nur für Eingangswerte kleiner als 2b-1 definiert ist, wird statt Schritt (4.4) der folgende, abgewandelte Berechnungsschritt ausgeführt: t := (v + (v ^ (z–1)))/2 mod 2b-1(4.4')

In den bislang beschriebenen Ausführungsbeispielen wurde die Exklusiv-Oder-Funktion als Distanzberechnungsfunktion eingesetzt. In Ausführungsalternativen können stattdessen, wie bereits erwähnt, andere Rechenoperationen verwendet werden. Zur Veranschaulichung wird im folgenden ein Ausführungsbeispiel beschrieben, bei dem die Paarauswahl mittels einer modularen Addition als Distanzberechnungsfunktion erfolgt. Dieses Verfahren ist dann besonders einfach, wenn eine arithmetische Maskierung für die Eingangswerte verwendet wird. Allerdings ist die Berechnung eines Ergebniswertes in der zweiten Verfahrensstufe technisch etwas aufwendiger als bei den bisher beschriebenen Ausführungsbeispielen, weil die beiden Fälle berücksichtigt werden müssen, daß die aus dem Eintrag 32 herauszurechnende Komponente entweder dem maskierten Indexwert x' – d oder dem maskierten Indexwert x' + d zugeordnet ist.

Der Einfachheit halber werden in dem im folgenden beschriebenen Ausführungsbeispiel arithmetische Maskierungen und eine modulare Addition als Verknüpfungsfunktion für die beiden Komponenten eines Eintrags 32 in der maskierten Tabelle T' verwendet. Es versteht sich, daß in Ausführungsalternativen andere Maskierungsfunktionen und/oder eine andere Verknüpfungsfunktion eingesetzt werden können.

Die Tabelle 24 weist im vorliegenden Ausführungsbeispiel wieder 2b Einträge zu je b' Bit auf. Als vorbereitender Schritt der ersten Verfahrensstufe werden der Distanzwert d mit d ∊ {1, 2, ..., 2b – 1} und zwei Maskierungsparameter r, s mit r ∊ {0, 1, ..., 2b – 1} und s ∊ {0, 1, ..., 2b' – 1} als gleichverteilte, stochastisch unabhängige Zufallszahlen gewählt. Im vorliegenden Ausführungsbeispiel wird zur Maskierung von Eingangswerten eine Addition von r modulo 2b und zur Maskierung von Ergebniswerten eine Addition von s modulo 2b' verwendet.

Der Wert z := ((d ⨁ (d – 1)) + 1)/2 sei wiederum die höchste Zweierpotenz, welche d teilt. Allgemein markiert dieser Wert z für beliebige c die geringstwertige Bitposition, an der sich die Werte c und c + d mod 2b beziehungsweise c – d mod 2b unterscheiden.

Bei der Berechnung der maskierten Tabelle T' in der ersten Verfahrensstufe werden die Tabelleneinträge 32 für alle t ∊ {0, 1, ..., 2b-1 – 1} gemäß der folgenden Beziehung bestimmt und in den Arbeitsspeicher 20 eingeschrieben: T'(t) := T(x'' – r mod 2b) + T(x'' – r + d mod 2b) + s mod 2b'(5)

Hierbei sind die Hilfswerte x'' wie in Gleichung (2) durch x'' := t + (t ^ (–z)) definiert; alle Hilfswerte x'' weisen damit an der durch z markierten Stelle eine binäre "0" auf. Die Grundidee der Berechnung gemäß Gleichung (5) ist es, in dem Eintrag T'(t) diejenigen beiden Ergebniswerte zusammenzulegen, die sich durch Auswerten der vorgegebenen T an den Stellen q1 := x'' – r mod 2b und q2 := x'' – r + d mod 2b ergeben. Mit anderen Worten ist der Hilfswert x'' die maskierte Repräsentation von q1, und der Wert x'' + d mod 2b ist die maskierte Repräsentation von q2.

In der zweiten Verfahrensstufe wird ein maskierter Ergebniswert y' := T(x) + s mod 2b' aus einem maskierten Eingangswert x' := x + r mod 2b berechnet, indem die folgenden Schritte ausgeführt werden; mit (¬w) ist in Schritt 6.3 das Einerkomplement von w bezeichnet: w := –(x' ^ –z)(6.1) v := x' – (w ^ d) mod 2b(6.2) u := (v + ((¬w) ^ d) mod 2b) – r mod 2b(6.3) t := (v + (v mod z))/2(6.4) y' := T'(t) – T(u) mod 2b'(6.5)

Die Schritte (6.1) – (6.5) entsprechen ungefähr den oben bereits beschriebenen Schritten (4.1) – (4.5). Ein Unterschied besteht jedoch darin, daß die herauszurechnende Komponente des Tabelleneintrags T' (t) entweder den maskierten Indexwert x' – d oder den maskierten Indexwert x' + d aufweisen kann, je nachdem, ob diese Komponente bei der Berechnung des Tabelleneintrags T'(t) der erste oder der zweite Summand in Formel (5) war. Welcher dieser beiden Fälle vorliegt, bestimmt sich je nach dem Wert des durch z markierten Bits in dem maskierten Eingangswert x'. Während in manchen Ausführungsformen bei der Berechnung eine explizite Fallunterscheidung vorgenommen wird, sind in dem hier beschriebenen Ausführungsbeispiel beide Fälle in der Berechnung von u gemäß den Schritten (6.1) – (6.3) berücksichtigt.

Wie bereits erwähnt, kann grundsätzlich jede Rechenoperation als Verknüpfungsfunktion für die beiden Komponenten eines Eintrags 32 in der maskierten Tabelle T' eingesetzt werden. Besonders vorteilhaft ist es, wenn diese Rechenoperation an die zur Maskierung der Ergebniswerte verwendete Maskierungsfunktion angepaßt ist, wie dies in den obigen Beispielen gezeigt ist. Vorzugsweise ist die Verknüpfungsfunktion eine abelsche Gruppenverknüpfung auf mindestens 2b' Elementen. Auch nicht-abelsche Gruppenstrukturen können mit entsprechenden Modifikationen der Verfahren verwendet werden; dies ist allerdings technisch aufwendig.

Die oben beispielhaft beschriebene Erweiterung des Verfahrens um den Fall d = 0 kann in allen Ausgestaltungen der Erfindung optional eingesetzt werden, um eine völlige Unabhängigkeit der Zwischenwerte von dem geheim zu haltenden Wert x zu erzielen. Falls die Gruppe, auf der die Verknüpfungsfunktion definiert ist, einen Exponenten ungleich 2 hat – falls es also Gruppenelemente gibt, die nicht selbstinvers sind –, ist die Erweiterung zwar möglich, aber technisch aufwendig. Dies gilt auch für nicht-abelsche Gruppenstrukturen.

Die T ist in vielen Ausgestaltungen der Erfindung als Tabelle – wie z.B. Tabelle 24 – vorgegeben. In Ausführungsalternativen kann dagegen eine Berechnungsvorschrift im Festwertspeicher 18 enthalten sein, die die T zumindest zum Teil implementiert. Dies kann insbesondere bei einer relativ einfach zu berechnenden Abbildung sinnvoll sein, z.B. bei einer Abbildung, die im Zusammenhang mit Maskierungsregelübergängen eingesetzt wird. Auf die kryptographische Sicherheit der Berechnungsvorschrift braucht nicht oder kaum geachtet zu werden.

Eine Berechnungsvorschrift, die die T implementiert, kann sich ihrerseits auf mindestens eine Tabelle abstützen. Insbesondere kann ein tabellenbasiertes Berechnungsverfahren eingesetzt werden. Ein solches Verfahren kann z.B. das Verfahren der vorliegenden Erfindung sein, das rekursiv aufgerufen werden kann, um den Platzbedarf im Arbeitsspeicher 20 auf ein Viertel, ein Achtel, ... zu verringern. Andere einsetzbare Verfahren sind in der Parallelanmeldung der gleichen Erfinder mit dem gleichen Anmeldetag und Titel sowie in WO 03/017067 A2 beschrieben; der Inhalt dieser Dokumente wird hiermit vollumfänglich in die vorliegende Beschreibung aufgenommen.

In der bisherigen Beschreibung wurde aus Gründen der klareren Darstellung nur der Fall ausdrücklich erwähnt, daß bei der Berechnung der Tabelle T' in jeden Tabelleneintrag 32 zwei Ergebnisse je einer Auswertung der vorgegebenen T eingehen, also z.B. die beiden Einträge 26 und 28. Es versteht sich, daß das Verfahren auch derart abgewandelt werden kann, daß die vorgegebene T zur Berechnung jedes Tabelleneintrags 32 an drei oder mehr Stellen – allgemein an n Stellen – ausgewertet wird. Bei jeder Berechnung eines Ergebniswerts y' müssen dann n – 1 unerwünschte Komponenten aus dem Tabelleneintrag 32 herausgerechnet werden. Die obigen Gleichungen sind in solchen Ausgestaltungen auf eine für den Fachmann offensichtliche Weise anzupassen. Der Platzbedarf im Arbeitsspeicher 20 verringert sich – verglichen mit dem Platzbedarf der unmaskierten Tabelle 24 im Festwertspeicher 18 – auf 1/n. Allerdings steigt der Rechenaufwand, so daß eine sinnvolle Abwägung getroffen werden muß.

Die oben beschriebenen Einzelheiten sollen nicht als Einschränkungen des Schutzbereichs der Erfindung aufgefaßt werden, sondern vielmehr als Beispiele von bevorzugten Ausführungsformen dienen. Viele andere Abwandlungen sind möglich und für den Fachmann offensichtlich. Der Bereich der Erfindung soll deshalb nicht durch die dargestellten Ausführungsbeispiele bestimmt werden, sondern durch die Ansprüche und ihre Äquivalente.


Anspruch[de]
  1. Verfahren zum ausspähungsgeschützten Berechnen eines maskierten Ergebniswertes (y') aus einem maskierten Eingangswert (x') gemäß einer vorgegebenen (T), mit den Schritten:

    – Berechnen einer maskierten Tabelle (T') mit einer Mehrzahl von Einträgen (32), wobei zur Berechnung zumindest mancher Einträge (32) der maskierten Tabelle (T') die vorgegebene (T) an mindestens zwei Stellen (q1, q2) ausgewertet wird und die dabei ermittelten Ergebniswerte (T(q1), T(q2)) in die Berechnung des Eintrags (32) der maskierten Tabelle (T') eingehen, und

    – Berechnen des maskierten Ergebniswerts (y') unter Verwendung der maskierten Tabelle (T') und der vorgegebenen (T).
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die zur Berechnung eines Eintrags (32) der maskierten Tabelle (T') ermittelten Ergebniswerte (T(q1), T(q2)) maskiert und mit einer vorbestimmten Verknüpfungsfunktion miteinander verknüpft werden, um gegebenenfalls nach einer weiteren Maskierung den Eintrag (32) in der maskierten Tabelle (T') zu erhalten.
  3. Verfahren nach Anspruch 1 oder Anspruch 2, dadurch gekennzeichnet, daß die zur Berechnung eines Eintrags (32) der maskierten Tabelle (T') ermittelten Ergebniswerte (T(q1), T(q2)) jeweils vollständig in die Berechnung des Eintrags (32) der maskierten Tabelle (T') eingehen.
  4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß sich die bei der Berechnung eines Eintrags (32) der maskierten Tabelle (T') herangezogenen mindestens zwei Stellen (q1, q2), an denen die vorgegebene (T) ausgewertet wird, in einer maskierten Repäsentation (&rgr;(q1), &rgr;(q2)) um einen vorgegebenen Distanzwert (d) unterscheiden.
  5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß bei der Berechnung des maskierten Ergebniswerts (y') aus dem maskierten Eingangswert (x') ein Eintrag (32) der maskierten Tabelle (T') herangezogen wird, und daß der Inhalt (T'(t)) dieses Eintrags (32) auf Grundlage mindestens einer Auswertung der vorgegebenen (T) korrigiert wird.
  6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, daß der herangezogene Eintrag (32) der maskierten Tabelle (T') derjenige ist, bei dessen Berechnung die vorgegebene (T) für einen Wert (x), dessen maskierte Repräsentation der maskierte Eingangswert (x') ist, ausgewertet wurde.
  7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß die Korrektur des Inhalts (T'(t)) des herangezogenen Eintrags (32) dadurch erfolgt, daß mindestens eine in diesem Eintrag (32) enthaltene zusätzliche Komponente herausgerechnet wird, wobei die zusätzliche Komponente bei der Berechnung des Eintrags (32) in Abhängigkeit von einem Ergebniswert der Anwendung der vorgegebenen (T) auf einen Wert bestimmt wurde, dessen maskierte Repräsentation sich von dem maskierten Eingangswert (x') unterscheidet.
  8. Verfahren nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß bei der Berechnung des maskierten Ergebniswerts (y') aus dem maskierten Eingangswert (x') die vorgegebene (T) für keinen Wert (x), dessen maskierte Repräsentation der maskierte Eingangswert (x') ist, ausgewertet wird.
  9. Verfahren nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, daß die vorgegebenen (T) für unmaskierte Eingangs- und Ergebniswerte vorgegeben ist.
  10. Verfahren nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, daß die vorgegebenen (T) zumindest teilweise durch eine in einem Festwertspeicher (18) befindliche Tabelle (24) oder Rechenvorschrift definiert ist.
  11. Verfahren nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, daß die maskierte Tabelle (T') in einen Arbeitsspeicher (20) eingeschrieben wird.
  12. Verfahren nach einem der Ansprüche 1 bis 11, dadurch gekennzeichnet, daß das Verfahren dazu eingerichtet ist, von einem Prozessor (12) eines tragbaren Datenträgers (10) ausgeführt zu werden.
  13. Verfahren nach einem der Ansprüche 1 bis 12, dadurch gekennzeichnet, daß das Verfahren zum Schutz gegen eine Datenausspähung durch Nebenkanalangriffe (Side Channel Attacks) dient.
  14. Computerprogrammprodukt mit einer Vielzahl von Programmbefehlen, die mindestens einen Prozessor (12) dazu veranlassen, ein Verfahren nach einem der Ansprüche 1 bis 13 auszuführen.
  15. Vorrichtung, insbesondere tragbarer Datenträger (10), mit mindestens einem Prozessor (12) und mindestens einem Speicher (14), wobei die Vorrichtung dazu eingerichtet ist, ein Verfahren nach einem der Ansprüche 1 bis 13 auszuführen.
Es folgen 3 Blatt Zeichnungen






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

  Patente PDF

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com