PatentDe  


Dokumentenidentifikation DE60034921T2 17.01.2008
EP-Veröffentlichungsnummer 0001109103
Titel Verfahren für gesicherte Datenübertragung
Anmelder STMicroelectronics S.A., Montrouge, FR
Erfinder Teglia, Yannick Cabinet Ball, 57070 Metz, FR
Vertreter Stenger, Watzke & Ring Patentanwälte, 40547 Düsseldorf
DE-Aktenzeichen 60034921
Vertragsstaaten DE, FR, GB, IT
Sprache des Dokument FR
EP-Anmeldetag 06.12.2000
EP-Aktenzeichen 004700209
EP-Offenlegungsdatum 20.06.2001
EP date of grant 23.05.2007
Veröffentlichungstag im Patentblatt 17.01.2008
IPC-Hauptklasse G06F 12/14(2006.01)A, F, I, 20051017, B, H, EP

Beschreibung[de]

Die Erfindung hat ein Verfahren zur gesicherten Datenübertragung in einer programmierbaren Schaltung zum Gegenstand. Insbesondere zielt die Erfindung darauf ab, die in einem Speicher enthaltenen Daten während ihrer Übertragung in einen anderen Speicher vor einer eventuellen Einsicht zu schützen. Die Erfindung betrifft insbesondere jede programmierbare Schaltung, welche geheime Daten verwendet.

Geheime Daten sind beispielsweise persönliche Daten, welche den Inhaber der programmierbaren Schaltung identifizieren, Programmanweisungen oder auch Algorithmenschlüssel zur Verschlüsselung von Daten. Die geheimen Daten werden sehr häufig in Festspeichern der programmierbaren Schaltung bei deren Herstellung gespeichert. Bekannte Mittel werden eingesetzt, um den Inhalt von Festspeichern vor einer visuellen Einsicht zu schützen. Beispielhaft können die Daten in dem Speicher gestreut werden. Wenn sie allerdings verwendet werden, bewegen sich die geheimen Daten klar und deutlich auf einem Datenbus, der leicht ausspioniert werden kann.

Eine klassische Spionagetechnik besteht darin den Strom zu messen, der in dem Bus fließt; er ist in der Tat repräsentativ für die Daten, die in dem Bus laufen. Es reicht somit aus K Strommessungen während K Übertragungen der gleichen Daten durchzuführen und den Mittelwert dieser K Messungen zu nehmen, um das Rauschen der Messung zu eliminieren und den exakten Wert der Daten zu erhalten. Als Hinweis ist es notwendig ungefähr K = 1000 Messungen durchzuführen, um das Rauschen zu eliminieren und den exakten Wert der Daten zu erhalten, die auf dem Bus laufen. Diese Spionagetechnik ist unter dem angelsächsischen Begriff „Simple Power Analysis" bekannt.

Um außerdem die Herstellungskosten der Produkte zu verringern, sind die geheimen Daten oft teilweise die gleichen für eine gegebene Familie von programmierbaren Schaltungen. Wenn es somit einem Spion gelingt, die in einem Produkt gespeicherten geheimen Daten zu lesen, kann er sie für eine ganze Produktfamilie verwenden.

Ein Ziel der Erfindung besteht darin die Sicherheit von Daten in einer programmierbaren Schaltung und zwar insbesondere während ihres Übergangs auf den Datenbus zu verbessern. Zum Erreichen dieses Ziels, betrifft die Erfindung ein Verfahren zur gesicherten Datenübertragung in einer programmierbaren Schaltung mit einer Steuereinheit, einem Festspeicher mit zu übertragenden Daten, einem beschreibbaren Speicher und einem zwischen dem Festspeicher und dem beschreibbaren Speicher angeschlossenen Datenbus, wobei der Datenbus von der Steuereinheit gesteuert ist, wobei das Übertragungsverfahren dadurch gekennzeichnet ist, dass zu übertragende geheime Daten mit N Bytes Byte für Byte auf den Datenbus übertragen werden, wobei jedes Byte ein einziges Mal auf den Datenbus läuft, und dass die Bytes gemäß einem Übertragungsgesetz übertragen werden, welches zumindest einen Parameter aufweist, der zufällig von der Steuereinheit vor jeder Übertragung der geheimen Daten ausgewählt ist.

Das Verfahren der Erfindung besteht somit darin die geheimen Daten in einer Reihenfolge auf den Bus zu übertragen, die zufällig von der den Datenbus steuernden Steuereinheit vor jeder Übertragung der geheimen Daten ausgewählt worden ist. So werden mit der Erfindung bei jeder Übertragung derselben Daten die Worte der Daten in einer unterschiedlichen Reihenfolge übertragen. Die derzeit eingesetzten Spionageverfahren reichen somit nicht mehr aus den exakten Wert von geheimen Daten, die sich auf dem Datenbus bewegen, zu erhalten.

Gemäß einer bevorzugten Ausführungsform verwendet das Verfahren der Erfindung ein Übertragungsgesetz, welches eine Vertauschung der Elemente der Gesamtheit von N Bytes der zu übertragenden Geheimdaten ist. Vorzugsweise ist die Permutation durch das Verhältnis X = (X0 + SENS·PAS·j)modulo N definiert, wobei ein erster Parameter PAS, der zwischen 0 und N – 1 liegt, den Schritt der Permutation definiert, wobei ein zweiter Parameter SENS, der zwei Werte 1 oder –1 annimmt, die Laufrichtung der Gesamtheit der N Bytes der geheimen Daten definiert, wobei ein dritter Parameter X0, der zwischen 0 und N – 1 liegt, den Ausgangspunkt der Permutation definiert, und wobei eine laufende Zahl X, die anhand des ersten bis dritten Parameters und einer Zykluszahl j erhalten wird, die zwischen 0 und N – 1 variiert, das Gewicht eines Bytes der zu übertragenden geheimen Daten anzeigt.

Hier und im nachfolgenden Teil ist festzuhalten, dass sich der Ausdruck „Gewicht eines Bytes" auf den Rang oder auf die Zahl eines Bytes der geheimen Daten bezieht. Mit anderen Worten, geheime Daten weisen N Bytes auf und jedes Byte ist durch ein Gewicht zwischen 0 und N – 1 festgelegt, wobei das Byte 0 den acht Bits mit dem leichtesten Gewicht entspricht und das Byte mit dem Gewicht N – 1 den acht Bits mit dem schwersten Gewicht der geheimen Daten entspricht.

Vorzugsweise werden der erste und/oder der zweite und/oder der dritte Parameter vor jeder Übertragung der geheimen Daten von der Steuereinheit zufällig ausgewählt. Ebenefalls vorzugsweise weisen der erste Parameter der Permutation und die Zahl N keinen gemeinsamen Teiler miteinander auf. Beispielsweise ist die Zahl N eine ganze Primzahl und der erste Parameter der Permutation ist eine Ganzzahl zwischen 1 und N – 1.

Gemäß der bevorzugten Ausführungsform weist das Verfahren der Erfindung die folgenden Schritte auf:

E0: Initialisierung des Verfahrens und Wahl des ersten bis dritten Parameters, wobei zumindest einer des ersten bis dritten Parameters zufällig von der Steuereinheit gewählt wird, wobei der erste bis dritte Parameter in einem ersten Register der Steuereinheit gespeichert werden.

E1: Initialisierung der Zykluszahl und der laufenden Zahl,

E2: N-malige Wiederholung der nachfolgenden Schritte:

ET1: Auslesen eines Bytes der zu übertragenden Daten aus dem Festspeicher, wobei das Gewicht des ausgelesenen Bytes gleich der laufenden Zahl ist, und Speichern des ausgelesenen Bytes in einem zweiten Register der Steuereinheit,

ET2: Schreiben des in dem zweiten Register enthaltenen Bytes in den Lebendspeicher,

ET3: Inkrementieren der Zykluszahl und Veränderung der laufenden Zahl.

Schließlich hat die Erfindung ebenfalls eine programmierbare Schaltung zum Gegenstand mit einer Steuereinheit, einem Festspeicher mit zu übertragenden Daten, einem beschreibbaren Speicher und einem zwischen dem Festspeicher und dem beschreibbaren Speicher angeschlossenen Datenbus, wobei der Datenbus von der Steuereinheit gesteuert ist, wobei die programmierbare Schaltung dadurch gekennzeichnet ist, dass sie außerdem einen Zufallszahlengenerator aufweist, um zumindest einen Parameter eines Datenübertragungsgesetzes zu liefern, welches eingesetzt wird, um geheime Daten mit N Bytes von dem Festspeicher in den Lebendspeicher zu übertragen, wobei die Bytes der zu übertragenden geheimen Daten Byte für Byte auf den Datenbus übertragen werden, wobei jedes Byte ein einziges Mal auf den Datenbus läuft, wobei zumindest ein Parameter bei jeder Übertragung der geheimen Daten unterschiedlich ist.

Die Erfindung wird besser verstanden werden und weitere Eigenschaften und Vorteile werden deutlich werden bei der Lektüre der nachfolgenden Beschreibung, wobei sich die Beschreibung auf die beigefügte Zeichnung bezieht, in welcher:

ein Blockschema einer die Erfindung einsetzenden programmierbaren Schaltung ist,

ein Diagramm eines Algorithmus zur Umsetzung einer erfindungsgemäßen gesicherten Datenübertragung ist.

Die programmierbare Schaltung CP der umfasst einen Festspeicher ROM, der geheime Daten mit N Bytes enthält, welche auf den Adressen s0 bis sN-1 gespeichert sind, einen Lebendspeicher RAM, eine Steuereinheit UC, einen Zufallszahlengenerator GA und einen Datenbus DBUS, der alle Elemente miteinander verbindet.

Der Lebendspeicher RAM ist ein beschreibbarer oder wieder beschreibbarer Speicher, beispielsweise der Art EPROM oder EEPROM. Der Zufallszahlengenerator GA ist eine bekannte Schaltung, welche in Reaktion auf eine Anweisung CO von der Steuereinheit UC zufällige Ganzzahlen zwischen 0 und einer Ganzzahl MAX, beispielsweise gleich 255, liefern kann. Die Steuereinheit UC empfängt in dem Festspeicher ROM enthaltene Anweisungen und steuert unter anderem den Lebendspeicher RAM und den Zufallszahlengenerator GA. Die Steuereinheit UC umfasst insbesondere zwei Register RA und RX mit jeweils einem Byte.

Selbstverständlich umfasst die programmierbare Schaltung CP auch andere Elemente, wie beispielsweise Daten- oder Anweisungsregister, arithmetische und logische Rechenschaltungen, Zählwerke, Taktgeberschaltungen oder auch Eingangsports und/oder Ausgangsports. Die programmierbare Schaltung kann ebenfalls mehrere Lebendspeicher, mehrere Festspeicher und/oder mehrere Zufallszahlengeneratoren aufweisen. Außerdem können alle Elemente der programmierbaren Schaltung CP eventuell mit einem oder mehreren anderen Elementen mittels eines Steuerbusses, eines Datenbusses und/oder eines Adressenbusses in Verbindung stehen. Allerdings sind aus Gründen der Vereinfachung nur die Elemente der programmierbaren Schaltung CP in dargestellt worden, die zum Verständnis der Erfindung unbedingt notwendig sind.

In einem Beispiel sind geheime Daten mit N Bytes Oct0 bis OctN-1 unter den Adressen S0 bis sN-1 des Festspeichers ROM der programmierbaren Schaltung CP gespeichert und sollen von dem Festspeicher ROM in den Lebendspeicher RAM unter den Adressen d0 bis dN-1 übertragen werden, um später verwendet zu werden. In dem Beispiel ist N gleich 4 gewählt.

Das Verfahren der Erfindung besteht darin die geheimen Daten Byte für Byte zu übertragen, wobei die Gesamtheit der N Bytes bei jeder Übertragung der geheimen Daten in einer unterschiedlichen Reihenfolge übertragen wird, wobei jedes Byte der geheimen Daten ein und nur ein einziges Mal während einer gleichen Datenübertragung übertragen wird. Hierzu verwendet das Verfahren der Erfindung ein Übertragungsgesetz, welches einen oder mehrere Parameter aufweist, die von der Steuereinheit vor jeder geheimen Datenübertragung auf den Datenbus zufällig ausgewählt werden.

Das Übertragungsgesetz des Verfahrens definiert die Reihenfolge, in welcher die Daten von dem Festspeicher ROM auf den Lebendspeicher RAM übertragen werden, d.h. die Reihenfolge, in welcher die Bytes der geheimen Daten auf den Datenbus übergehen.

Gemäß einer Ausführungsform verwendet das Verfahren der Erfindung eine Permutation als Übertragungsgesetz, wobei ein oder die Parameter der Permutation zufällig ausgewählt ist/sind. Das Verfahren der Erfindung weist gemäß die folgenden Schritte auf:

E0: Initialisierung des Verfahrens: Wahl der Parameter des Übertragungsgesetzes,

E1: Initialisierung einer Zykluszahl j = 0 und einer laufenden Zahl X = X0,

E2: N-malige Wiederholung der folgenden Schritte:

ET1: Auslesen des Bytes Octx mit dem Gewicht X der zu übertragenden Daten, das sich unter der Adresse sx des Festspeichers ROM befindet, und Speichern des ausgelesenen Bytes in dem Register RA der Steuereinheit UC,

ET2: Schreiben des in dem Register RA enthaltenen Bytes in den Lebendspeicher RAM unter der Adresse dx,

ET3: Inkrementierung der Zykluszahl j (j = j + 1) und Veränderung der laufenden Zahl X in Abhängigkeit von der Zykluszahl j.

Das Übertragungsgesetz des Verfahrens der Erfindung definiert die Reihenfolge, in welcher die Bytes der geheimen Daten auf den Datenbus DBUS übergehen, wobei diese Reihenfolge durch die Veränderungen der laufenden Zahl X in Abhängigkeit von der Zykluszahl j definiert ist. Die laufende Zahl X kann auf verschiedene Arten variieren, wobei das Wesentlich ist, dass die laufende Zahl X im Verlauf der Durchführung der N Schritte E2 ein und ein einziges Mal die Gesamtheit der ganzen Werte zwischen 0 und N – 1 annimmt.

In allgemeiner Weise schlägt das Verfahren der Erfindung vor Permutationen durchzuführen, die durch das folgende Übertragungsgesetz gekennzeichnet sind: X = (X0 + SENS·PAS·j)modulo N, wobei X die laufende Zahl ist, welche das Gewicht des zu übertragenden Bytes angibt, wobei j die Zykluszahl des Verfahrens ist, die zwischen 0 und N – 1 variiert, wobei PAS, X0 und SENS drei Parameter des Übertragungsgesetzes sind. Die laufende Zahl X wird in dem Register RX der Steuereinheit UC gespeichert.

Der erste Parameter PAS, der zwischen 0 und N – 1 liegt, definiert die Differenz, modulo N, zwischen den jeweiligen Gewichten von zwei nacheinander übertragenen Bytes. Wenn beispielsweise die Bytes Oct0 und Oct3 der geheimen Daten mit den jeweiligen Gewichten 0 und 3 nacheinander auf den Datenbus DBUS übertragen werden, ist der Schritt der Permutation PAS = 3 – 0 = 3.

Der zweite Parameter X0, der zwischen 0 und N – 1 liegt, definiert das Gewicht des ersten während der Umsetzung des Verfahrens übertragenen Bytes.

Der dritte Parameter SENS nimmt zwei Werte 1 oder –1 an, welche angeben, in welcher Richtung das Verfahren die Gesamtheit der Bytes der zu übertragenden Daten durchläuft.

Die Wahl der Parameter der Permutation ist wichtig. In der Tat muss die laufende Zahl X im Verlauf der Durchführung des Schrittes E2 des Verfahrens alle ganzen Werte zwischen 0 und N – 1 annehmen, wenn die Zykluszahl j von 0 bis N – 1 variiert.

In einer ersten Ausführungsform der Erfindung wird der Parameter PAS zufällig gewählt und die Parameter X0 und SENS sind konstant und in dem Festspeicher ROM der programmierbaren Schaltung gespeichert. Bei dieser Ausführungsform liefert der Zufallszahlengenerator GA während des Initialisierungsschrittes des Verfahrens E0 eine Zufallszahl an die Steuereinheit UC, wenn ein Steuersignal CO empfangen wird. Wenn die Zufallszahl eventuell größer N – 1 ist, reduziert die Steuereinheit UC sie um modulo N, um einen Parameter PAS zwischen 0 und N – 1 zu erhalten. Schließlich liest die Steuereinheit UC aus dem Festspeicher die Werte des Ausgangspunktes X0 und der Richtung der Permutation SENS aus.

Für beispielsweise die Übertragung von Daten mit N = 4 Bytes, wenn der Generator GA eine Zahl PAS = 1 liefert, und wenn X0 = 2 und SENS = 1 ist, schreibt sich das Übertragungsgesetz „X = (2 + j) modulo 4" und die Bytes der Daten werden in der folgenden Reihenfolge übertragen: zuerst Oct2, dann Oct3, dann Oct0, dann Oct1.

In einem anderen Beispiel, wenn PAS = 3 ist (mit X0 = 2 und SENS = 1), schreibt sich das Übertragungsgesetz „X = (2 + 3·j) modulo 4" und die Bytes der Daten werden in der folgenden Reihenfolge übertragen: zuerst Oct2, dann Oct1, dann Oct0, dann Oct3.

Der Parameter PAS und die Zahl N der zu übertragenden Bytes müssen so gewählt werden, dass sie keinen gemeinsamen Teiler miteinander aufweisen, um die Übertragung aller Bytes der Daten zu erreichen. Hierzu ist die Zahl N vorzugsweise eine Primzahl. Im gegenteiligen Fall ist es möglich die Bytes mit schwerem Gewicht der Daten durch „0" zu ergänzen, um eine Primzahl N von zu übertragenden Bytes zu erhalten. Wenn die Zahl N keine Primzahl ist, ist es allerdings auch möglich eine Steuereinheit einzusetzen, welche Mittel aufweist zum Überprüfen, ob die von dem Generator GA gelieferte Zahl PAS und die Zahl N keinen gemeinsamen Teiler miteinander aufweisen, und Mittel, um eventuell eine neue Zufallszahl PAS von dem Generator GA abzufragen.

Bei dieser ersten Ausführungsform des Verfahrens der Erfindung kann die zufällig gewählte und eventuell, falls erforderlich, um modulo N reduzierte Zahl PAS maximal N verschiedene Werte von 0 bis N – 1 annehmen, so dass die Gesamtheit der Bytes der geheimen Daten in N unterschiedlichen Reihenfolgen übertragen werden kann.

Bei einer zweiten Ausführungsform der Erfindung wird der Ausgangspunkt X0 zufällig gewählt und die Parameter PAS und SENS sind konstant und in dem Festspeicher ROM der programmierbaren Schaltung CP gespeichert. Bei dieser Ausführungsform liefert der Zufallszahlengenerator GA während des Initialisierungsschrittes des Verfahrens E0 irgendeine Zahl an die Steuereinheit UC, wenn ein Steuersignal CO empfangen wird. Wenn die gelieferte Zufallszahl eventuell größer N – 1 ist, reduziert die Steuereinheit UC sie um modulo N, um einen Ausgangspunkt X0 zwischen 0 und N – 1 zu erhalten. Schließlich liest die Steuereinheit UC aus dem Festspeicher ROM die Werte der Parameter PAS und SENS aus.

Für beispielsweise die Übertragung von Daten mit N = 4 Bytes, wenn der Generator GA einen Ausgangspunkt X0 = 2 liefert, und wenn PAS = 1 und SENS = 1 ist, schreibt sich das Übertragungsgesetz „X = (2 – j) modulo 4" und die Bytes der Daten werden in der folgenden Reihenfolge übertragen: zuerst Oct2, dann Oct1, dann Oct0, dann Oct3. In einem anderen Beispiel, wenn X0 = 3 ist (mit PAS = 1 und SENS = 1), werden die Bytes der Daten in der folgenden Reihenfolge übertragen: zuerst Oct3, dann Oct2, dann Oct1, dann Oct0.

Bei dieser zweiten Ausführungsform kann der zufällig gewählte und eventuell, falls erforderlich, um modulo N reduzierte Ausgangspunkt X0 maximal N verschiedene Werte zwischen 0 und N – 1 annehmen. So kann die Gesamtheit der Bytes während jeder Datenübertragung in N unterschiedlichen Reihenfolgen übertragen werden.

Bei einer dritten Ausführungsform der Erfindung wird die Richtung der Permutation SENS zufällig gewählt und die Parameter PAS und X0 sind konstant und in dem Festspeicher ROM der programmierbaren Schaltung CP gespeichert. Bei dieser Ausführungsform liefert der Zufallszahlengenerator GA während des Initialisierungsschrittes des Verfahrens E0 eine Zufallszahl an die Steuereinheit UC, wenn ein Steuersignal CO empfangen wird. Wenn die gelieferte Zufallszahl eventuell größer 1 ist, reduziert die Steuereinheit UC sie um modulo 2, um eine Zufallszahl gleich 0 oder 1 zu erhalten. Dann wenn die Zufallszahl gleich „0" ist, wählt die Steuereinheit SENS = –1 und umgekehrt, wenn die Zufallszahl gleich 1 ist, wählt die Steuereinheit SENS = 1. Im Verlauf des Schrittes E0 liest die Steuereinheit UC dann aus dem Festspeicher ROM die Werte der Parameter PAS und des Ausgangspunktes der Permutation X0 aus.

Für beispielsweise die Übertragung von Daten mit N = 4 Bytes, wenn der Generator GA eine Permutationsrichtung SENS = 1 liefert, und wenn PAS = 1 und X0 = 0 ist, werden die Bytes der Daten in der folgenden Reihenfolge übertragen: zuerst Oct0, dann Oct1, dann Oct2, dann Oct3. In einem anderen Beispiel, wenn SENS = –1 ist (mit PAS = 1 und X0 = 0), werden die Bytes der Daten in der folgenden Reihenfolge übertragen: zuerst Oct0, dann Oct3, dann Oct2, dann Oct1.

Bei dieser dritten Ausführungsform kann die zufällig gewählte und eventuell, falls erforderlich, um modulo 2 reduzierte Zahl SENS maximal 2 verschiedene Werte 0 und 1 annehmen. Diese dritte Ausführungsform ist somit weniger leistungsfähig in dem Sinne, dass die Anzahl der verschiedenen Kombinationen der Gesamtheit der Bytes der zu übertragenden Daten auf 2 begrenzt ist: die Daten können somit ziemlich leicht gefunden werden.

Es ist ebenfalls möglich die erste und/oder zweite und/oder dritte Ausführungsform der Erfindung zu kombinieren, um ein sichereres Übertragungsverfahren zu erhalten. Beispielsweise werden in einer vierten Ausführungsform der Erfindung die drei Parameter des Permutationsgesetzes PAS, X0 und SENS zufällig gewählt.

Bei dieser Ausführungsform liefert der Zufallszahlengenerator GA während des Initialisierungsschrittes des Verfahrens E0 zuerst eine erste Zufallszahl an die Steuereinheit UC, wenn ein erstes Steuersignal CO1 empfangen wird. Wenn die erste Zufallszahl eventuell größer N – 1 ist, reduziert die Steuereinheit UC sie um modulo N, um einen Parameter PAS zwischen 0 und N – 1 zu erhalten.

Der Generator GA liefert dann eine zweite Zufallszahl an die Steuereinheit, wenn ein zweites Steuersignal CO2 empfangen wird. Wenn die zweite Zufallszahl eventuell größer N – 1 ist, reduziert die Steuereinheit UC sie um modulo N, um einen Ausgangspunkt X0 zwischen 0 und N – 1 zu erhalten.

Dann wenn ein drittes Steuersignal CO3 empfangen wird, liefert der Generator GA eine dritte Zufallszahl, die eventuell von der Steuereinheit um modulo 2 reduziert wird, wenn sie größer als 1 ist. Dann wählt die Steuereinheit SENS = –1, wenn die dritte Zufallszahl gleich 0 ist, und SENS = 1, wenn die dritte Zufallszahl gleich 1 ist. Selbstverständlich ist die Reihenfolge des Empfangs der Signale CO1, CO2 und CO3 ohne Bedeutung.

Diese vierte Ausführungsform ist besonders interessant. Da in der Tat alle Parameter der Permutation PAS, X0 und SENS zufällig gewählt werden, gibt es p·N·2 mögliche Kombinationen der Bytes der gleichen Daten, wobei p die Anzahl der möglichen Werte für den Parameter PAS ist, wobei bekannt ist, dass PAS und N miteinander keinen gemeinsamen Teiler aufweisen dürfen. Wenn außerdem die Zahl N eine Primzahl ist, gibt es eine maximale Anzahl 2·N·N von möglichen Kombinationen der Bytes der gleichen Daten, und es ist somit schwieriger den richtigen Wert der übertragenen Daten zu finden.

Selbstverständlich ist auch jede andere Kombination der ersten, zweiten und dritten Ausführungsform der Erfindung möglich. Beispielsweise ist es möglich den Parameter PAS und den Ausgangspunkt X0 zufällig zu wählen und den Wert von SENS auf 1 oder –1 festzulegen.

Ein Vorteil der Erfindung liegt darin, die Spionagetechnik der Stromanalyse außer Kraft zu setzen. Wenn in der Tat K Strommessungen während K Übertragungen der gleichen Daten auf den Bus DBUS durchgeführt werden und wenn ein Mittelwert dieser K Messungen genommen wird, um das Rauschen der Messung zu eliminieren, besteht das erhaltene Ergebnis aus Daten mit 8·N identischen Bits gleich dem Mittelwert der 8·N Bits der realen Daten.

Ein weiterer Vorteil der Erfindung liegt darin ein Datenübertragungsverfahren vorzuschlagen, das parallel zu weiteren Datenschutzverfahren eingesetzt werden kann, ohne die Funktionsweise dieser letzteren zu beeinträchtigen. Beispielsweise sind in der oben gegebenen Beschreibung die Adressen so bis sN-1 und d0 bis dN-1 als aufeinander folgend angenommen worden. Es wäre jedoch auch genauso gut möglich Daten, deren Bytes in dem Festspeicher ROM gestreut sind, zu übertragen.


Anspruch[de]
Verfahren zur gesicherten Datenübertragung in einer programmierbaren Schaltung (CP) mit einer Steuereinheit (UC), einem Festspeicher (ROM) mit zu übertragenden Daten, einem beschreibbaren Speicher (RAM) und einem zwischen dem Festspeicher (ROM) und dem beschreibbaren Speicher (RAM) angeschlossenen Datenbus (DBUS), wobei der Datenbus (DBUS) von der Steuereinheit (UC) gesteuert ist, wobei das übertragungsverfahren dadurch gekennzeichnet ist, dass zu übertragende geheime Daten mit N Bytes Byte für Byte auf den Datenbus (DBUS) übertragen werden, wobei jedes Byte ein einziges Mal auf den Datenbus läuft, und dass die Bytes gemäß einem übertragungsgesetz übertragen werden, welches zumindest einen Parameter aufweist, der zufällig von der Steuereinheit (UC) vor jeder übertragung der geheimen Daten ausgewählt ist Verfahren gemäß Anspruch 1, dadurch gekennzeichnet, dass das übertragungsgesetz eine Permutation der Elemente der Gesamtheit von N Bytes der zu übertragenden Geheimdaten ist. Verfahren gemäß Anspruch 2, dadurch gekennzeichnet, dass die Permutation durch das Verhältnis X = (X0 + SENS·PAS·j) modulo N definiert ist,

wobei ein erster Parameter (PAS), der zwischen 0 und N – 1 liegt, den Schritt der Permutation definiert,

wobei ein zweiter Parameter (SENS), der zwei Werte 1 oder –1 annimmt, die Durchlaufrichtung der Gesamtheit der N Bytes der geheimen Daten definiert, wobei ein dritter Parameter (X0), der zwischen 0 und N – 1 liegt, den Ausgangspunkt der Permutation definiert,

und wobei eine laufende Zahl (X), die anhand des ersten bis dritten Parameters und einer Zykluszahl (j) erhalten wird, die zwischen 0 und N – 1 variiert, das Gewicht eines Bytes der zu übertragenden geheimen Daten anzeigt.
Verfahren gemäß Anspruch 3, dadurch gekennzeichnet, dass der erste Parameter (PAS) von der Steuereinheit (UC) vor jeder Übertragung der geheimen Daten zufällig gewählt wird. Verfahren gemäß einem der Ansprüche 3 oder 4, dadurch gekennzeichnet, dass der zweite Parameter (SENS) von der Steuereinheit (UC) vor jeder Übertragung der geheimen Daten zufällig gewählt wird. Verfahren gemäß einem der Ansprüche 3 bis 5, dadurch gekennzeichnet, dass der dritte Parameter (X0) von der Steuereinheit (UC) vor jeder Übertragung der geheimen Daten zufällig gewählt wird. Verfahren gemäß einem der Ansprüche 3 bis 6, dadurch gekennzeichnet, dass der erste Parameter (PAS) und der dritte Parameter (X0) von der Steuereinheit (UC) vor jeder Übertragung der geheimen Daten zufällig gewählt werden. Verfahren gemäß einem der Ansprüche 3 bis 7, dadurch gekennzeichnet, dass der erste Parameter (PAS) der Permutation und die Zahl N keinen gemeinsamen Teiler miteinander aufweisen. Verfahren gemäß einem der Ansprüche 3 bis 8, dadurch gekennzeichnet, dass die Zahl N eine ganze Primzahl ist, und dass der erste Parameter (PAS) der Permutation eine Ganzzahl zwischen 1 und N – 1 ist. Verfahren gemäß einem der Ansprüche 3 bis 9, dadurch gekennzeichnet, dass es die folgenden Schritte aufweist:

E0: Initialisierung des Verfahrens und Wahl des ersten bis dritten Parameters (PAS, SENS, X0), wobei zumindest einer des ersten bis dritten Parameters zufällig von der Steuereinheit (UC) gewählt wird, wobei der erste bis dritte Parameter (PAS, SENS, X0) in einem ersten Register (RX) der Steuereinheit (UC) gespeichert werden,

E1: Initialisierung einer Zykluszahl (j) und einer laufenden Zahl (X),

E2: N-malige Wiederholung der nachfolgenden Schritte:

ET1: Auslesen eines Bytes der zu übertragenden Daten aus dem Festspeicher (ROM), wobei das Gewicht des ausgelesenen Bytes gleich der laufenden Zahl (X) ist, und Speichern des ausgelesenen Bytes in einem zweiten Register (RA) der Steuereinheit,

ET2: Schreiben des in dem zweiten Register (RA) enthaltenen Bytes in den Lebendspeicher (RAM),

ET3: Inkrementieren der Zykluszahl (j) und Veränderung der laufenden Zahl (X).
Programmierbare Schaltung (CP) mit einer Steuereinheit (UC), einem Festspeicher (ROM) mit zu übertragenden Daten, einem beschreibbaren Speicher (RAM) und einem zwischen dem Festspeicher (ROM) und dem beschreibbaren Speicher (RAM) angeschlossenen Datenbus (DBUS), wobei der Datenbus (DBUS) von der Steuereinheit (UC) gesteuert ist, wobei die programmierbare Schaltung (CP) dadurch gekennzeichnet ist, dass sie außerdem einen Zufallszahlengenerator (GA) aufweist, um zumindest einen Parameter eines Datenübertragungsgesetzes zu liefern, welches eingesetzt wird, um geheime Daten mit N Bytes von dem Festspeicher (ROM) in den Lebendspeicher (RAM) zu übertragen, wobei die Bytes der zu übertragenden geheimen Daten Byte für Byte auf den Datenbus (DBUS) übertragen werden, wobei jedes Byte ein einziges Mal auf den Datenbus (DBUS) läuft, wobei zumindest ein Parameter bei jeder Übertragung der geheimen Daten unterschiedlich ist.






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

Patent Zeichnungen (PDF)

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