PatentDe  


Dokumentenidentifikation DE102004001235B4 15.12.2005
Titel Übertragungsvorrichtung
Anmelder Infineon Technologies AG, 81669 München, DE
Erfinder Künemund, Thomas, 80337 München, DE
Vertreter Schoppe, Zimmermann, Stöckeler & Zinkler, 82049 Pullach
DE-Anmeldedatum 07.01.2004
DE-Aktenzeichen 102004001235
Offenlegungstag 11.08.2005
Veröffentlichungstag der Patenterteilung 15.12.2005
Veröffentlichungstag im Patentblatt 15.12.2005
Free division/divided out on the grounds of lack of unity 102004063898.5
IPC-Hauptklasse H04L 12/22
IPC-Nebenklasse G06F 12/14   
Zusammenfassung Eine Übertragungsvorrichtung weist eine Vorrichtung (102) zum Erzeugen eines Signalpaares sowie eine Vorrichtung (104) zum Erzeugen eines rückgewonnenen Datensignals auf. Die Vorrichtung (102) zum Erzeugen eines Signalpaares ist ausgebildet, um ansprechend auf einen Wert eines Umstellungssignals (158) ein erstes Datensignal (152) entweder als erstes Signal (162) oder als erstes Komplementärsignal (164) auszugeben. Die Vorrichtung (104) zum Erzeugen eines rückgewonnenen Datensignals ist wiederum ausgebildet, um ansprechend auf einen Wert des Umstellungssignals (158) das erste Signal (162) als erstes rückgewonnenes Datensignal (172) oder das erste Komplementärsignal (164) als erstes rückgewonnenes Datensignal (172) auszugeben.

Beschreibung[de]

Die vorliegende Erfindung bezieht sich auf eine Vorrichtung zum Erzeugen eines Signalpaares, eine Vorrichtung zum Erzeugen eines rückgewonnenen Datensignals, eine Vorrichtung zur Durchführung einer Datenpfadoperation und eine Vorrichtung zum Speichern eines Signalpaares, und insbesondere auf eine Vorrichtung zum Erzeugen eines Signalpaares sowie einer Vorrichtung zum Erzeugen eines rückgewonnenen Datensignals, die eine sichere Übertragung eines Datensignal über einen Datenpfad ermöglichen.

Integrierte Schaltungen (IC; IC = integrated circuit) die sicherheitsrelevante Anwendungen ausführen, müssen gegenüber Angriffen von außen geschützt werden. Die differentielle Stromprofilanalyse (DPA; DPA = differential power analysis) ist eine der wichtigsten Methoden zum Angriff auf ICs für Sicherheitsanwendungen sowie zur Beurteilung der Empfindlichkeit von ICs gegenüber gezielten Angriffen auf vertrauliche Informationen wie Paßwörter oder kryptographische Schlüssel. Bei der DPA wird für ein gegebenes Programm bzw. einen gegebenen Algorithmus ein gemessenes Stromprofil des ICs bzw. dessen über ein oder mehrere Taktzyklen berechnetes Ladungsintegral mit statistischen Methoden ausgewertet. Aus einer Korrelation einer systematischen Datenvariation und dem dazugehörigen Ladungsintegral können für eine Vielzahl von Programmausführungen Rückschlüsse auf die zu schützende Information gezogen werden.

Häufig werden Mikroprozessoren und -controller für sicherheitsrelevante Anwendungen eingesetzt. Im Kern einer Verarbeitungseinheit moderner Mikroprozessoren und -controller, der sogenannten CPU (CPU; CPU = central processing unit), befindet sich der Datenpfad. Der Datenpfad bildet eine Zusammenschaltung sämtlicher Funktionseinheiten zur Verarbeitung von Daten innerhalb der CPU. Die Zusammenschaltung erfolgt über Leitungsbündel, sogenannte Datenbusse, und umfaßt charakteristische Funktionseinheiten wie Multiplexer, arithmetrisch-logische Einheit (ALU), Shifter und als Registerfiles bezeichnete Speicherschaltungen.

Ein im folgenden betrachtetes Registerfile dient einerseits dem Speichern bzw. Zwischenspeichern von Adressen und Daten, die für die gerade von der CPU bearbeitete Aufgabe benötigt werden. Damit kann das Registerfile als ein Notizblockspeicher aufgefaßt werden. Des weiteren dient das Registerfile zum schnellen, wahlfreien und gleichzeitigen Lesezugriff auf im allgemeinen mindestens zwei ALU-Operanden sowie einem schnellen, wahlfreien und mit Lesezugriffen gleichzeitigen Schreibzugriff. Dazu weist das Registerfile sogenannte Write Back Ports auf, die zum Zurückschreiben von Ergebnissen bzw. Zwischenergebnissen von ALU-Rechenoperationen dienen. Außerdem dient das Registerfile dem Laden sowie dem Auslagern von Adressen und Daten in sowie aus dem Registerfile. Dazu weist das Registerfile Schreib-/Leseports auf, die der Kommunikation mit Systemteilen außerhalb des CPU Datenpfades dienen.

Um bei einem möglichst geringen Flächen- und Energieverbrauch all diesen Anforderungen genügen zu können, werden Registerfiles oft als Mehrtorspeicher, sogenannten Multi-Port RAMs (RAM; RAM = random access memory) ausgeführt. Ein RAM besteht aus über ihre Bitleitungsbündel zusammengeschalteten Registern, wobei ein Funktionseinheitsregister hier definiert ist als Menge von gleichartigen sogenannten Ein-Bit-Registerzellen mit den oben aufgelisteten vier Eigenschaften des Registerfiles. Die Anzahl von Bits, die in einem Register gespeichert werden können, entspricht im allgemeinen einer Bitbreite des Datenpfades. Die Anzahl der Ports entspricht der maximalen Anzahl von verschiedenen Zugriffen, die auf unterschiedliche Register gleichzeitig möglich sein sollen.

6 zeigt eine Ein-Bit-Registerzelle gemäß dem Stand der Technik, mit der im obigen Sinne minimalen Anzahl von vier Ports A, B, C, Z. Port A weist ein Bitleitungspaar bla, blaq sowie eine Wortleitung wla auf. Port B weist ein Bitleitungspaar blb, blbq sowie eine Wortleitung wlb auf. Port Z weist ein Bitleitungspaar blzq, blz und eine Wortleitung wlz und Port C ein Bitleitungspaar blcq, blc sowie eine Wortleitung wlc auf. Über die Ports A und B werden üblicherweise Operanden ausgelesen. Über Port Z wird ein Rechenergebnis zurückgeschrieben und über Port C werden Speicherinhalte von außerhalb des Datenpfades geladen bzw. nach dort ausgelagert.

Die Ports A und B werden also als reine Leseports beschrieben. Bei niedrigem Potentialpegel der Wortleitungen wla und wlb sperren die n-Kanal-Transfertransistoren 612. Zunächst werden die den Bitleitungspaaren bla, blaq und blb, blbq jeweils entsprechenden Knoten auf einen hohen Potentialpegel Vdd vorgeladen und dann von der dazu pro Bitleitungspaar in der Peripherie des Registerfiles vorgesehenen Vorladevorrichtung (nicht gezeigt) abgetrennt. Die Bitleitungspaare bla, blaq bzw. blb, blbq befinden sich dann nach wie vor auf hohem Potentialpegel Vdd, werden aber nicht mehr aktiv, d. h. durch leitende Verbindung mit der Versorgungsspannungsquelle dort gehalten, sondern nur kapazitiv. Dieser als floating state bezeichnete Zustand wird mit (H, H) bezeichnet. Kurz danach werden die Bitleitungspaare bla, blaq bzw. blb, blbq durch auf hohen Potentialpegel angehobene Wortleitungen wla und/oder wlb leitend verbunden mit den Knoten bit bzw. bitq innerhalb der Zelle 615. Da einer der beiden Knoten bit, bitq auf niedrigem Potential liegt, wird auch die mit ihm über den nun geöffneten Transfertransistor 612 leitend verbundene Bitleitung bla, blaq, blb, blbq auf niedriges Potential entladen. Damit liegen die auszulesenden Bits auf den jeweiligen Bitleitungspaaren bla, blaq bzw. blb, blbq und können von anderen Teilen des Datenpfades übernommen werden, während die Wortleitungen wla, wlb wieder auf niedriges Potential abgesenkt werden, um die Speicherzelle wieder von den Bitleitungen abzutrennen, damit die Bitleitungen auf den folgenden Zugriff vorbereitet werden können. Ein logischer Wert 1 eines Bits entspricht einem Bitleitungspaarwert (1, 0) und ein logischer Wert 0 eines Bits entspricht einem Bitleitungspaarwert (0, 1).

Der Port Z wird als reiner Schreibport betrieben. Bei geschlossenen n-Kanal-Transfertransistoren 614 liegt die Wortleitung wlz auf niedrigem Potentialpegel, so daß die Transistoren 614 sperren. Zunächst wird ein zu schreibendes Bit von außen auf das Bitleitungspaare blz, blzq übertragen, bevor die Wortleitung wlz auf einen hohen Potentialpegel angehoben wird, wodurch wiederum die Knoten bit bzw. bitq innerhalb der Zelle 615 leitend verbunden werden mit dem Bitleitungspaar blz bzw. blzq. Ein unmittelbar danach bestehender kapazitiver Spannungsteiler mit, im Vergleich zu Kapazitäten innerhalb der Zelle, im allgemeinen sehr großen Bitleitungskapazitäten, unterstützt durch eine äußere Schreibschaltung (nicht gezeigt) und eine Rückkopplung innerhalb der Zelle führen dann dazu, daß der zuvor in der Zelle gespeicherte Wert des Potentials mit dem an dem Bitleitungspaar blz, blzq anliegenden überschrieben wird. Damit kann also die Wortleitung w1z wieder auf niedriges Potential abgesenkt werden, um die Speicherzellen wieder von den Bitleitungen zu trennen, damit letztere auf den folgenden Zugriff vorbereitet werden können.

Der in 6 gezeigten Zelle kann nicht angesehen werden, welche der Ports A, B, C, Z als Leseports und welche als Schreibports dienen. Dies wird festgelegt durch ein von außen aufgeprägtes zeitliches Verhalten bzw. durch eine Ansteuerung von Wortleitungen wla, wlb, wlz und Bitleitungen bla, blaq, blb, blbq, blz, blzq. Dem als Schreib- und Leseport beschriebenen Port C sind daher in der Peripherie Registerfiles sowohl Vorlade- als auch Schreib- und Lesetreiberschaltungen (nicht gezeigt in 6) zugeordnet.

Üblicherweise sind Schaltnetze in ICs in einer sogenannten Single-Rail Schaltungstechnik ausgeführt. Dabei ist jedes Bit einer zu verarbeitenden Information physikalisch dargestellt durch genau einen elektrischen Knoten. Single-Rail Schaltnetze sind anfällig gegenüber DPA-Angriffen.

Um DPA-Angriffe zu verhindern, sollten ICs im Idealfall so ausgelegt sein, daß sie unabhängig von den zu verarbeitenden Daten immer das gleiche Stromprofil liefern. Für eine Single-Rail Datenpfad-Implementierung ist dies jedoch nicht der Fall. Ein, einem zeitlichen Verlauf der Zustände einer Schaltung zugeordnetes Ladungsintegral ist eine Funktion derjenigen Knoten bzw. elektrischen Kapazitäten, die elektrisch umgeladen werden. Eine Single-Rail Implementierung weist also eine starke Abhängigkeit auf, von den zeitlichen Änderungen der zu verarbeitenden Daten.

Zur Vermeidung des Problems variabler Ladungsintegrale wird die sogenannten Dual-Rail Logik zur Implementierung der Datenpfade verwendet. Im Gegensatz zur herkömmlichen Single-Rail Logik, bei der jedes Bit innerhalb eines Daten- oder Signalpfades physikalisch dargestellt wird, durch genau einen elektrischen Knoten k eines Schaltnetzes oder Schaltwerkes, wird bei Implementierung mit Dual-Rail Logik jedes Bit durch zwei Knoten k und kq dargestellt, wobei dieses Bit einen gültigen logischen Wert aufweist, wenn k dem wahren logischen Wert b dieses Bits entspricht und kq dem negierten Wert bn = | b. Die in 6 gezeigte Registerzelle ist in Dual-Rail Technik realisiert.

Die gewünschte Invarianz der Leitungsintegrale wird bei der Dual-Rail Technik dadurch erreicht, daß zwischen je zwei Zuständen mit gültigen logischen Werten (b, bn) = (1, 0) oder (0, 1) ein sogenannter Vorlade-Zustand, auch Precharge genannt, eingefügt ist. Bei diesem Vorlade-Zustand werden sowohl k als auch kq auf dasselbe elektrische Potential geladen und nehmen somit logisch ungültige Wert von (1, 1) oder (0, 0) an. Für einen Vorlade-Zustand (1, 1) könnte also eine Zustandsfolge aussehen wie folgt:

(1, 1) -> (0, 1) -> (1, 1) -> (1, 0) -> (1, 1) -> (1, 0) -> (1, 1) -> (0, 1) -> ...,

Für eine jede beliebige solcher Zustandsfolgen gilt, daß bei einem jeden Übergang (1, 1) -> (b, bn) genau ein Knoten von 1 nach 0 umgeladen wird, und für alle (b, bn) -> (1, 1) genau ein Knoten von 0 nach 1, unabhängig vom logisch gültigen Wert b des in Frage stehenden Zustandsbits.

Analoges gilt für Zustandsfolgen mit dem Vorladezustand (0, 0).

Daraus aber folgt, daß die diesen Zustandsfolgen entsprechenden Ladungsintegrale unabhängig sind von der Abfolge (b, bn) der logisch gültigen Werte, falls nur dafür Sorge getragen wird, daß die Knoten k und kq gleiche elektrische Kapazitäten aufweisen. Das Stromprofil eines so implementierten Datenpfades hängt also nicht ab von zeitlichen Variationen der zu verarbeitenden Daten. Es ist somit gegenüber DPA-Angriffen resistent. In realen Schaltungen weisen die Knoten k und kq jedoch üblicherweise ungleiche Kapazitäten auf.

7 zeigt einen Datenpfad bestehend aus zwei Signalleitungspaaren 702, 704. Der Datenpfad ist in Dual-Rail Technik ausgeführt. Das bedeutet, daß das Leitungspaar 702 eine Signalleitung x und eine zu der Signalleitung x komplementäre Signalleitung xq aufweist. Ebenso weist das Leitungspaar 704 eine Signalleitung y und eine zu der Signalleitung y komplementäre Signalleitung yq auf. Die Signalleitungspaare (x, xq) und (y, yq) weisen mit C(*) bezeichnete Kapazitäten 712, 714, 716, 718 zu einem festen Potential sowie mit C(*,#) bezeichnete Koppelkapazitäten 722, 724, 726 zwischen den Signalleitungen x, xq, y, yq auf. In 7 sind nur die Koppelkapazitäten 722, 724, 726 zwischen benachbarten Signalleitungen x, xq, y, yq dargestellt. Die Signalleitung x weist die Kapazität C(x) 712, die Signalleitung xq weist die Kapazität C(xq) 714, die Signalleitung y weist die Kapazität C(y) 716 und die Signalleitung yq weist die Kapazität C(yq) 718 auf. Die Signalleitungen x, xq sind über die Koppelkapazität C(x, xq) 722, die Signalleitungen xq, y sind über die Koppelkapazität C(xq, y) 724 und die Signalleitungen y, yq über die Koppelkapazität C(y, yq) 726 verbunden.

Abhängig von einem Vorladezustand und einem nachfolgenden logisch gültigen Zustand müssen einige der genannten Kapazitäten umgeladen werden. In der nachfolgenden Tabelle sind diejenigen Summen von Kapazitäten angegeben, die bei einem Übergang von einem Vorladezustand (0, 0) in die logisch gültigen Zustände (0, 1) oder (1, 0) aufgeladen werden:

Aus der obigen Tabelle ist zu entnehmen, daß für Koppelkapazitäten C(*,#) > 0, d. h. für Koppelkapazitäten 722, 724, 726 die sich von 0 unterscheiden und/oder Kapazitäten C(*) ≠ C(*q), das bedeutet für ungleiche Kapazitäten 712, 714 des ersten Leitungspaares 702 sowie für ungleiche Kapazitäten 716, 718 des zweiten Leitungspaares 704, sich datenabhängige Kapazitätssummen &Dgr;C und somit datenabhängige Ladungsintegrale ergeben.

Solche datenabhängige Kapazitätssummen und Ladungsintegrale können weiterhin für DPA-Angriffe genutzt werden. Die Dual-Rail Technik bietet somit keinen wirksamen Schutz gegenüber DPA-Angriffen.

Eine Reduzierung des Problems datenabhängiger effektiver Koppelkapazitäten, die eine DPA-Analyse ermöglichen, lässt sich mittels einer in bestimmten Abständen im Layout vorgenommenen physikalischen Vertauschung einer Anordnung von Bitleitungen erreichen. Diese als Auskreuzen von Bitleitungen bezeichnete Technik wird vor allem in DRAMs eingesetzt. Dadurch läßt sich eine Datenabhängigkeit effektiver Koppelkapazitäten reduzieren. Eine Datenabhängigkeit von Leitungskapazitäten gegenüber einem festen Potential bleibt jedoch bestehen. Durch das Auskreuzen lässt sich somit eine DPA-Analyse nicht verhindern. Ein weiterer Nachteil des Auskreuzens besteht in dem erheblichen Flächenaufwand, den diese Maßnahme erfordert.

Die DE 199 36 918 A1 beschreibt ein Verschlüsselungsverfahren zum Ausführen von kryptographischen Operationen wobei eine kryptographische Teiloperation von digital als Datenbitworten gespeicherten Daten ausgeführt und das jeweilige Ergebnis digital als Datenbitworte abgespeichert bzw. zwischengespeichert wird. Hierbei wird wenigstens eines der Daten oder des Ergebnisses in Abhängigkeit von einem auf Zufallszahlen basierenden Steuersignal wahlweise bitweise komplimentiert oder nicht komplimentiert.

Die US 6,654,884 B2 beschreibt Techniken um zu verhindern, dass die Informationen aus kryptographischer Hardware mittels einer differentiellen Poweranalysis herausgefunden werden können. Dazu können Ausgleichsschaltungen innerhalb kryptographischer Bausteine genutzt werden um die Variation in der Leistungsaufnahme zu reduzieren. Module können so gebaut werden, dass die Anzahl der durchgeschalteten Transistoren gleichgehalten wird.

SAPUTRA, H., et al.: Masking the energy behaviour of encryption algorithms. In: IEE Proc. Computers and Digital Techniques, 2003, vol. 150, No. 5, Seite 274 bis 284 beschäftigt sich mit Angriffen auf Chipkarten. Um Chipkarten vor einer Stromanalyse zu schützen, werden kryptische Operationen so ausgeführt, dass gleichzeitig die normalen und die komplementären Versionen von Operanden verarbeitet werden.

MOORE, S., et al.: Improving Smart Card Security using Selftimed Circuits. In: Proc. Int. Symposium on Asynchronous Circuits and Systems, 2002, Seiten 211-218 beschreibt Schaltungen, die es ermöglichen Chipkarten resistenter gegenüber Zeitanalysen, Leistungs- und Abstrahlungsanalysen Taktstörungen und Leistungsstörungen sowie Fehlereinspeisungen machen. Zur Verschleierung der Leitungsaufnahme wird dual-real Technik eingesetzt.

Es ist die Aufgabe der vorliegenden Erfindung, eine Vorrichtung zur Durchführung einer Datenpfadoperation zu schaffen, die eine sichere Übertragung und Verarbeitung von Daten ermöglicht.

Diese Aufgabe wird durch eine Vorrichtung zur Durchführung einer Datenpfadoperation gemäß Anspruch 1 gelöst.

Der Erfindung liegt die Erkenntnis zugrunde, daß sich ein Datensignal über ein komplementäres Signalleitungspaar sicher übertragen läßt, wenn das Datensignal abhängig von einem Umstellungssignalwert auf der Signalleitung des Signalleitungspaares oder der komplementären Signalleitung des Signalleitungspaares übertragen wird. Die Funktion von Signalleitung und komplementärer Signalleitung wird erfindungsgemäß, abhängig von dem Umstellungssignalwert vertauscht.

Der Umstellungssignalwert ist dabei vorzugsweise unabhängig von dem Datensignal. Gemäß einem bevorzugten Ausführungsbeispiel weist das Umstellungssignal zufallsgesteuert sowie zeitgesteuert den ersten Wert oder den zweiten Wert auf.

Der Umstellungssignalwert wird sowohl der Vorrichtung zum Erzeugen eines Signalpaares als auch der Vorrichtung zum Erzeugen eines rückgewonnenen Datensignals bereitgestellt. Dadurch ist es möglich, ein Datensignal in der Vorrichtung zum Erzeugen eines Signalpaares in ein Signalpaar zu wandeln und später in einer Vorrichtung zum Erzeugen eines rückgewonnenen Datensignals rückzugewinnen. Unabhängig davon ob das Datensignal, gemäß dem Umstellungssignalwert über die Signalleitung oder die komplementäre Signalleitung übertragen wurde, wird der wahre Wert des Datensignals in der Vorrichtung zum Erzeugen eines rückgewonnenen Datensignals zurückgewonnen.

Durch eine bevorzugterweise zufallsgesteuerte Vertauschung der Rollen von Signal und Komplementärsignal beim Übertragen von Datensignalen auf einem Datenpfad zwischen der Vorrichtung zum Erzeugen eines Signalpaares und der Vorrichtung zum Erzeugen eines rückgewonnenen Datensignals wird erreicht, daß sich für eine Vielzahl logisch identischer Programmabläufe eines Gesamtsystems ein Einfluß kapazitiver Unsymmetrien der Signalleitung und der komplementären Signalleitung sowie von Koppelkapazitäten zwischen Signalleitungspaaren und deren jeweiligen physikalisch benachbarten Signalleitungen auf ein Ladungsintegral der betrachteten Verarbeitungszyklen im statistischen Mittel aufhebt. Mithin wird die Relevanz kapazitiver Unsymmetrien und Kopplungskapazitäten eines Datenpfades oder Bussystems für DPA-Angriffe eliminiert.

Der erfindungsgemäße Ansatz eignet sich besonders zum Einsatz in integrierten Schaltungen, deren Datenpfade in Dual-Rail Technik ausgeführt sind und in Precharge Technik arbeiten. In Datenverarbeitungssystemen, die eine Mehrzahl von ICs aufweisen, lässt sich der erfindungsgemäße Ansatz zur sicheren Übertragung von Daten zwischen den ICs einsetzen.

Der erfindungsgemäße Ansatz ist in digitaler Logik implementierbar, weist einen geringen Platzbedarf auf und ermöglicht somit eine kostengünstige und zuverlässige Methode zur Verhinderung von DPA-Angriffen auf sicherheitsrelevante Schaltkreise. Auch in nicht-sicherheitsrelevanten Anwendungen kann die vorliegende Erfindung vorteilhaft eingesetzt werden, um nachteilige Effekte kapazitiver Unsymmetrien zu vermeiden.

Ferner wird die vorliegende Erfindung vorteilhaft in Verbindung mit funktionalen Einheiten eines Mikroprozessors oder anderer datenverarbeitender Schaltungen eingesetzt. Der erfindungsgemäße Ansatz ermöglicht eine sichere Übertragung von Datensignalen zu den funktionalen Einheiten. Dabei wird zusätzlich ein, für eine DPA-Analyse verwendbarer, Einfluß von Verdrahtungen der funktionalen Einheiten eliminiert.

Gemäß der Erfindung werden die zu übertragenden Daten einer Datenpfadoperation (DPO; DPO = data path operation) unterworfen. Um die durchgeführte Datenpfadoperation bei der Rückgewinnung des Datensignals in einer Vorrichtung zum Erzeugen eines rückgewonnenen Datensignals zu berücksichtigen, weist die Vorrichtung zum Erzeugen eines rückgewonnenen Datensignals in diesem Ausführungsbeispiel eine Einrichtung zum Anpassen der komplementären Umstellungsvorschrift an die durchgeführte Datenpfadoperation auf.

Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend anhand beiliegender Zeichnungen näher erläutert. Es zeigen:

1 eine schematische Darstellung einer Übertragungsvorrichtung;

2 eine schematische Darstellung einer Vorrichtung zur Durchführung einer Datenpfadoperation gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;

3 eine schematische Darstellung einer Vorrichtung zum Speichern eines Signalpaares;

4 eine schematische Darstellung einer Einrichtung zum Speichern eines Signalpaares;

5 eine schematische Darstellung einer Einrichtung zum Speichern eines Signalpaares;

6 ein Schaltbild einer Speicherzelle gemäß dem Stand der Technik; und

7 eine schematische Darstellung eines in Dual-Rail-Technik ausgeführten Bussystems gemäß dem Stand der Technik.

1 zeigt eine schematische Darstellung einer Übertragungsvorrichtung, die eine Vorrichtung 102 zum Erzeugen eines Signalpaares und eine Vorrichtung 104 zum Erzeugen eines rückgewonnenen Datensignals aufweist. Ferner weist das Bussystem eine Einrichtung 106 zum Erzeugen eines Umstellungssignals auf. Die Vorrichtung 102 zum Erzeugen eines Signalpaares weist einen Datensignaleingang 112 sowie einen Umstellungssignaleingang 116 auf. Ferner weist die Vorrichtung 102 zum Erzeugen eines Signalpaares einen Signalausgang 122 und einen Komplementärsignalausgang 124 auf. Die Vorrichtung 104 zum Erzeugen eines rückgewonnenen Datensignals weist einen Signaleingang 132 und einen Komplementärsignaleingang 134 sowie einen Umstellungssignaleingang 116' auf. Die Vorrichtung 104 zum Erzeugen eines rückgewonnenen Datensignals weist ferner einen Datensignalausgang 142 auf.

Über die gezeigte Übertragungsvorrichtung wird ein Datensignal 152 übertragen. Das Datensignal 152 ist über den Datensignaleingang 112 mit der Vorrichtung 102 zum Erzeugen eines Signalpaares verbunden. Die Vorrichtung 102 zum Erzeugen eines Signalpaares ist ausgebildet, um gemäß einer Umstellungsvorschrift aus dem Datensignal 152 ein Signalpaar, bestehend aus einem Signal 162 und einem Komplementärsignal 164, zu bilden. Hat das Signal 162 den Wert logisch „0", so weist das Komplementärsignal 164 den Wert logisch „1" auf. Hat das Signal 162 den Wert logisch „1", so weist das Komplementärsignal 164 den Wert logisch „0" auf.

Das Signal 162 und das Komplementärsignal 164 werden von der Vorrichtung 102 zum Erzeugen eines Signalpaares an dem Signalausgang 122 und dem Komplementärsignalausgang 124 bereitgestellt und werden von der Vorrichtung 104 zum Erzeugen eines rückgewonnenen Datensignals an dem Signaleingang 132 und dem Komplementärsignaleingang 134 empfangen. Die Vorrichtung 104 zum Erzeugen eines rückgewonnenen Datensignals ist ausgebildet, um, gemäß einer komplementären Umstellungsvorschrift, aus dem Signalpaar, bestehend aus dem Signal 162 und dem Komplementärsignal 164 ein rückgewonnenes Datensignal 172 zu bilden und an dem Datensignalausgang 142 auszugeben.

Die Einrichtung 106 zum Erzeugen eines Umstellungssignals ist ausgebildet, um ein Umstellungssignal 158 bereitzustellen, das von der Vorrichtung 102 zum Erzeugen eines Signalpaares an dem Umstellungssignaleingang 116 und von der Vorrichtung 104 zum Erzeugen eines rückgewonnenen Datensignals an dem Umstellungssignaleingang 116' empfangen wird.

Bevorzugterweise ist die Einrichtung 106 zum Erzeugen eines Umstellungssignals ausgebildet, um das Umstellungssignal 158 zufallsgesteuert bereitzustellen. Das Umstellungssignal 158 weist dabei zufallsgesteuert einen ersten Wert oder einen zweiten Wert auf. In diesem Ausführungsbeispiel weist das Umstellungssignal 158 entweder den Wert logisch „0" oder den Wert logisch „1" auf. Die Vorrichtung 102 zum Erzeugen eines Signalpaares ist ausgebildet, um das Datensignal 152 gemäß der Umstellungsvorschrift als Signal 162 oder als Komplementärsignal 164 bereitzustellen. Weist das Umstellungssignal 158 den ersten Wert auf, so schaltet die Vorrichtung 102 zum Erzeugen eines Signalpaares das Datensignal 152 auf den Signalausgang 122 durch. An dem Komplementärsignalausgang 124 stellt die Vorrichtung 102 zum Erzeugen eines Signalpaares ein zu dem Signal 162 komplementäres Signal 164 bereit. Demzufolge wird das Datensignal 152 in Abhängigkeit von dem Umstellungssignal 158 entweder an dem Signalausgang 122 oder dem Komplementärsignalausgang 124 ausgegeben. Wird das Umstellungssignalwert 158 zufallsgesteuert generiert, so erfolgt die Ausgabe des Datensignals 152 als Signal 162 oder als Komplementärsignal 164 ebenfalls zufallsgesteuert und ist somit nicht vorhersagbar.

Entsprechend zu den in 7 erläuterten Kapazitäten, weisen die in 1 gezeigten Leitungen des Signals 162 und des Komplementärsignals 164 sowie jeweils benachbarte Signale und Komplementärsignale (nicht gezeigt) ebenfalls Kapazitäten gegenüber einem festen Potential sowie Koppelkapazitäten auf. Die genannten Kapazitäten sind in 1 nicht gezeigt. Die bei einem Umschaltvorgang umzuladende Gesamtkapazität ist gemäß der vorliegenden Erfindung nicht nur von den Kapazitätswerten und einem durchgeführten Datensignalumschaltvorgang abhängig, sondern zudem noch von dem Wert des Umstellungssignals 158. Dies resultiert daraus, daß gesteuert durch das Umstellungssignal 158 das Signal 162 mit dem Komplementärsignal 164 vertauscht wird. Erfolgt die Erstellung des Umstellungssignals 158 zufallsgesteuert so ist eine Zuordnung einer Gesamtkapazität nicht mehr zu einem Datensignalumschaltvorgang zuordenbar. Ein DPA-Angriff auf die Leitungen des Signals 162 und des Komplementärsignals 164 ist somit nicht durchführbar.

Nach einer Übertragung des Signals 162 und des Komplementärsignals 164 über den Datenpfad erfolgt eine Rückumstellung der Signale in der Vorrichtung 104 zum Erzeugen eines rückgewonnenen Datensignals. Da die Vorrichtung 104 zum Erzeugen eines rückgewonnenen Datensignals ebenfalls mit dem Umstellungssignal 158 verbunden ist, ist eine Rückumstellung, entgegengesetzt zu der Umstellung, die in der Vorrichtung 102 zum Erzeugen eines Signalpfades durchgeführt wurde, möglich. Entsprechend der oben beschriebenen Umstellung in der Vorrichtung 102 zum Erzeugen eines Signalpaares ist die Vorrichtung 104 zum Erzeugen eines rückgewonnenen Datensignals ausgebildet, um ansprechend auf einen ersten Wert des Umstellungssignals 158 das Signal 162 als rückgewonnenes Datensignal 172 auszugeben.

Das rückgewonnene Datensignal 172 entspricht somit dem Datensignal 152. Die Vorrichtungen r zum Erzeugen eines Signalpaares und die Vorrichtung 104 zum Erzeugen eines rückgewonnenen Datensignals ermöglichen gemäß der vorliegenden Erfindung, das Datensignal 152 über einen Datenpfad zu übertragen, ohne daß ein DAP-Angriff auf die Übertragungsstrecke des Datenpfades möglich ist.

Gemäß dem in 1 gezeigten Beispiel sind die Datensignale 152, 172 in Single-Rail Technik ausgeführt und die Signale 162, 164 in Dual-Rail Technik, bevorzugterweise mit precharge Technik, ausgeführt.

Gemäß einem weiteren Beispiel werden die Datensignale ebenfalls in Dual-Rail Technik ausgeführt.

Die in 1 gezeigte Übertragungsvorrichtung ist Teil eines Datenbusses. Abweichend von dem gezeigten Ausführungsbeispiel kann der Datenbus, eine beliebige Anzahl von Datensignalen aufweisen. Bei einer Vielzahl von Datensignalen ist es vorteilhaft, einzelne Datensignale in Gruppen zusammenzufassen und für jede Gruppe einen eigenen Umstellungssignalwert bereitzustellen. Weist der Datenbus also zum Beispiel zwei Datensignalgruppen auf, so werden bevorzugterweise zwei Umstellungssignalwerte in Form zweier unabhängiger, zeitabhängiger Zufallsbits bereitgestellt.

2 zeigt eine Vorrichtung zur Durchführung einer Datenpfadoperation gemäß einem Ausführungsbeispiel der Erfindung. Die Vorrichtung zur Durchführung einer Datenpfadoperation weist eine Vorrichtung zum Erzeugen eines Signalpaares 202 in Form einer Multiplexer-Schaltung Mxin, eine Vorrichtung 204 zum Erzeugen eines rückgewonnenen Datensignals in Form einer Multiplexer-Schaltung Mxout sowie eine Einrichtung 208 zum Durchführen einer Datenpfadoperation und eine Einrichtung 209 zum Anpassen des Umstellungssignals auf. In diesem Ausführungsbeispiel ist die Einrichtung 208 zum Durchführen einer Datenpfadoperation eine Schiebeeinheit. Anstelle einer Schiebeeinheit, die eine Schiebeoperation durchführt, kann die Einrichtung 208 zum Durchführen einer Datenpfadoperation auch eine beliebige andere Funktionseinheit darstellen, die in einem Datenpfad einsetzbar ist.

Die Multiplexer-Schaltung 202 ist ausgebildet zum Empfangen eines Datensignals 252 sowie eines zu dem Datensignal 262 komplementären Datensignals 253. Ferner ist die Multiplexer-Schaltung 202 ausgebildet zum Empfangen eines Umstellungssignals 258 und zum Ausgeben eines Signals 262 sowie eines Komplementärsignals 264. Entsprechend der in 1 beschriebenen Vorrichtung zum Erzeugen eines Signalpaares ist die Multiplexer-Schaltung 202 ausgebildet, um ansprechend auf einen Wert des Umstellungssignals 258 das Datensignal 252 entweder als Signal 262 oder als Komplementärsignal 264 auszugeben. Abhängig von einem Wert des Umstellungssignals 258 vertauscht die Multiplexer-Schaltung 202 somit die Rollen der Signale 262, 264.

Die Einrichtung 208 zum Durchführen einer Datenpfadoperation ist ausgebildet zum Empfangen des Signals 262 und des Komplementärsignals 264. Abhängig von einem Datenpfadsteuersignal 259 ist die Einrichtung 208 zum Durchführen einer Datenpfadoperation ausgebildet um eine Datenpfadoperation durchzuführen und entsprechend dieser Operation ein Ausgangssignal 266 und ein komplementäres Ausgangssignal 268 bereitzustellen.

Der Multiplexer 204 ist ausgebildet zum Empfangen des Ausgangssignals 266 sowie des komplementären Ausgangssignals 268 sowie zum Ausgeben eines rückgewonnenen Datensignals 272 sowie eines rückgewonnenen komplementären Datensignals 273. Dazu empfängt der Multiplexer 204 ein Umstellungssignal 258'. Das Umstellungssignal 258' wird von der Einrichtung 209 zum Anpassen des Umstellsignals bereitgestellt. Die Vorrichtung 209 zum Anpassen des Umstellsignals ist ausgebildet, um das Umstellsignal 258' entsprechend der in der Einrichtung 208 zum Durchführen einer Datenpfadoperation durchgeführten Datenpfadoperation anzupassen. Dazu empfängt die Einrichtung 209 zum Anpassen des Umstellsignals sowohl das Umstellungssignal 258 als auch das Datenpfadsteuersignal 259 und erzeugt daraus das Umstellungssignal 258'.

Gemäß dem in 2 gezeigten Ausführungsbeispiel stellt das Datensignalpaar 252, 253 ein Datensignalpaar eines Datensignalpaarbusses der Breite w dar. Das Datensignal 252, im folgenden als din bezeichnet, steht für eine Mehrzahl n, n = w – 1, w – 2, ... 0, von Datensignalen din < n > und das komplementäre Datensignal 253, im folgenden als dqin bezeichnet, steht für eine Mehrzahl n von komplementären Datensignalen dgin < n >. Ebenso steht das Signalpaar 262, 264, im folgenden als (slin, slqin) bezeichnet für eine Mehrzahl n von Signalpaaren (slin < n >, slqin< n >), sowie das Ausgangssignalpaar 266, 268, im folgenden als (slout, slqout) bezeichnet für eine Mehrzahl n von Ausgangssignalpaaren (slout < n >, slqout < n >) und das rückgewonnene Signalpaar 272, 273, im folgenden als (dout, dqout) bezeichnet, für eine Mehrzahl n von rückgewonnenen Ausgangssignalpaaren (dout < n >, dqout < n >).

Entsprechend des in 1 beschriebenen Beispieles sind die Signalleitungspaare (slin, slqin), (slout, slqout) Teile eines Datenpfades, der in diesem Ausführungsbeispiel zusätzlich eine Einrichtung 208 zum Durchführen einer Datenpfadoperation aufweist. Gemäß diesem Ausführungsbeispiel ist die Einrichtung 208 zum Durchführen einer Datenpfadoperation ein Schiebeeinheit in Form eines Shifters. Eine Verdrahtung (nicht gezeigt) von der Einrichtung 208 zum Durchführen einer Datenpfadoperation zu den Signalleitungspaaren (slin, slqin), (slout, slqout) bzw. die Signalleitungspaare (slin, slqin). (slout, slqout) selber, weisen signifikante Koppelkapazitäten sowie kapazitive Unsymmetrien zwischen einer Signalleitung sl und deren komplementärer Signalleitung slq auf. Die Bezeichnung sl steht im folgenden sowohl für die Signalleitung slin sowie für die Ausgangssignalleitung slout und die Bezeichnung slq für die komplementäre Signalleitung slqin und die komplementäre Ausgangssignalleitung slqout. Die genannten Kapazitäten sind in 2 nicht gezeigt. Wie anhand von 7 beschrieben, ermöglichen die Kapazitäten zwischen den Signalen sl und slq eine DPA-Analyse der Vorrichtung zur Durchführung einer Datenpfadoperation. Erfindungsgemäß wird eine solche DPA-Analyse durch eine zufallsgesteuerte bedingte Permutation der Bedeutung der Signale sl und slq eines einzelnen physikalischen Signalleitungspaares (sl, slq) verhindert. Dies geschieht dergestalt bzw. unter der Bedingung, daß eine logisch-arithmetische Funktion, die in einem Teil des Datenpfades durchgeführt wird, durch diese Permutationen unverändert bleibt. Dazu wird ohne Beschränkung der Allgemeinheit angenommen daß die Signalleitungspaare (sl < n >, slq < n >), wobei n = w – 1, w – 2, ..., 0, und w eine Wortweite des Datenpfades ist, physikalisch, also im Layout, entsprechend ihrer Wertigkeit n angeordnet sind, so daß die nächsten Nachbarn von Signalleitungspaaren mit geraden n = 2j bestehen in solchen mit ungeraden n = 2j + 1 sowie n = 2j – 1 und umgekehrt. Ausgenommen davon sind die höchstwertigen bzw. niedrigwertigen Signalleitungspaare mit n = w – 1 bzw. n = 0.

Im Folgenden wird das Ausführungsbeispiel der Einrichtung 208 zum Durchführen einer Datenpfadoperation in Form einer Schiebeeinheit näher betrachtet. Beim Verarbeiten von Daten din < w – 1: 0 > an den eingangsseitigen Signalleitungspaaren (slin < n >, slgin < n >) der Schiebeeinheit 208, werden Datenbits gerader Wertigkeit din < 2j > bzw, ungerader Wertigkeit din < 2j + 1 > verschieden behandelt. Über die Multiplexer-Schaltung 202 Mxin vor den Signalleitungen (slin < n >, slqin < n >) werden in diesem Ausführungsbeispiel, abhängig von einem Zeitpunkt ts eines Verarbeitungsvorganges der Datensignale din durch geeignet erzeugte bzw. vorliegende Zufallsbits rndbit-evn(ts) und rndbit-odd(ts) auf dem Umstellungssignal 258, die Signalleitungspaare slin, slqin wie folgt angesteuert:

(slin<n>, slqin<n>) <= (din<n>, dqin<n>)) für rndbit-x(ts),= 0

(slin<n>, slqin<n>) <= (not (din<n>), not (dqin<n>))

für rndbit-x(ts), = 1

wobei x = evn für n = 2j und x = odd für n = 2j + 1 gilt.

Das Umstellungssignal 258 weist in diesem Ausführungsbeispiel somit den Wert rndbit – x auf, der entweder den logischen Wert „0" oder den logischen Wert „1" aufweist. Das Umstellungssignal weist in diesem Ausführungsbeispiel eine zufallsgesteuerte Komponente rndbit und eine zeitgesteuerte Komponente x(ts) auf. Der Zufallswert rndbit wird vorzugsweise durch einen Zufallszahlengenerator (nicht gezeigt) bereitgestellt. Die Zeitgesteuerte Komponente wird über ein Zeitsignal (nicht gezeigt) gesteuert. Das Zeitsignal kann ein Taktsignal sein, mit dem eine Einrichtung zum Erzeugen des Umstellungssignals verbunden ist. Alternativ kann eine Zeitsteuerung von einer Anzahl empfangener Datensignale abhängig sein. Analog zu der Multiplexer-Schaltung 202 werden über die Multiplexer-Schaltung 204 Mxout aus dem Ausgangssignal slout, slqout die rückgewonnenen Datensignale dout, dqout zurückgewonnen. Dazu werden die oben angegebenen bedingten Permutationen wieder rückgängig gemacht. Dies erfolgt vermöge einer bestimmten Funktion FDPOn {rndbit – evn(ts), rndbit – odd(ts)} des Wertes des Umstellungssignals 258, der zur eingangsseitigen Permutation in der Multiplexer-Schaltung 202 verwendet wurde, so daß am Ausgang der Multiplexer-Schaltung 204 immer der aus din<w–1:0> folgende wahre logische Wert dout<w –1:0> zu liegen kommt. Dies bedeutet:

(dout<n>, dqout<n>) <= (slout<n>, slqout<n>)

für FDPOn, = 0,

(dout<n>, dqout<n>) <= (not (slout<n>), notslqout<n>))

für EDPOn, = 1

Dabei hängt eine Gestalt von FDPOn ab von den Datenpfadoperationen, die in dem in Frage stehenden Teil des Datenpfades, der Einrichtung 208 zur Durchführung einer Datenpfadoperation ausgeführt werden. In dem Ausführungsbeispiel ist die Datenpfadoperation eine Schiebeoperation mit einer variablen Anzahl sft von Bitpositionen, um die Eingangsdaten der Schiebeeinheit 208 geschoben werden können. Der Wert sft wird der Schiebeeinheit über das Datenpfadsteuersignal 259 bereitgestellt. Somit gilt mit DPO = sft:

Fsft2j = rndbit – evn(ts) für gerade Werte von sft

Fsft2j = rndbit – odd(ts) für ungerade Werte von sft, und

Fsft2j+l = rndbit – odd (ts) für gerade Werte von sft und

Fsft2j+l = rndbit – evn (ts) für ungerade Werte von sft

Die Funktion FDPO wird in der Einrichtung 209 zum Anpassen des Umstellungssignales erzeugt und über das Umstellungssignal 258' an die Multiplexer-Schaltung 204 bereitgestellt.

Durch die anhand von 2 beschriebene von Zufallsbits abhängige Vertauschung der Rollen von sl und slq beim Verarbeiten von Datenwörtern din, dqin wird erreicht, daß sich, für eine Vielzahl logisch identischer Programmabläufe eines Gesamtsystems, der Einfluß kapazitiver Unsymmetrien von den Signalleitungen sl, slq sowie der Koppelkapazitäten zwischen den Signalleitungen sl und slq und deren jeweiligen physikalisch benachbarten Leitungen auf das Ladungsintegral der betrachteten Verarbeitungszyklen im statistischen Mittel aufhebt. Mithin wird also die Relevanz dieser kapazitiven Unsymmetrie und Koppelkapazitäten für DPA-Angriffe eliminiert.

3 zeigt eine schematische Darstellung einer Vorrichtung zum Speichern eines Signalpaares. Die Vorrichtung zum Speichern eines Signalpaares weist eine Vorrichtung 302 zum Erzeugen eines Signalpaares, eine Vorrichtung 304 zum Erzeugen eines rückgewonnenen Datensignals sowie eine Einrichtung 308 zum Speichern eines Signalpaares und eine Einrichtung 309 zum Speichern eines Umstellungssignalwertes auf. Entsprechend des in 1 beschriebenen Beispiels ist die Vorrichtung 302 zum Erzeugen eines Signalpaares ausgebildet, um ein erstes Datensignal 352 ansprechend auf einen Wert eines Umstellungssignals 358 als erstes Signal 362 bzw. als erstes Komplementärsignal 364 auszugeben. Das erste Signalpaar 362, 364 wird in der Einrichtung 308 zum Speichern eines Signalpaares gespeichert und wird von der Einrichtung 308 zum Speichern eines Signalpaares bei einem Auslesevorgang als erstes gespeichertes Signal 366 und erstes gespeichertes Komplementärsignal 368 ausgegeben. Entsprechend dem Beispiel in 1 ist die Vorrichtung 304 zum Erzeugen eines rückgewonnenen Datensignals wiederum ausgebildet um entweder das erste gespeicherte Signal 366 oder das erste gespeicherte Komplementärsignal 368 als erstes rückgewonnenes Datensignal 372 auszugeben. Dazu ist es erforderlich, daß die Vorrichtung 304 zum Erzeugen eines rückgewonnenen Datensignals den Wert des Umstellungssignals 358 erhält, mit dem das ersten Datensignal 352 in der Vorrichtung 302 zum Erzeugen eines Signalpaares umgestellt wurde. Dazu wird der Wert des Umstellungssignals 358 in der Einrichtung 309 zum Speichern eines Umstellungssignals gespeichert und parallel zur Ausgabe des ersten gespeicherten Signalpaares 366, 368 als gespeichertes Umstellungssignal 358' an die Vorrichtung zum Erzeugen eines rückgewonnenen Datensignals ausgegeben.

Die in 3 gezeigte Vorrichtung zum Speichern eines Signalpaares ermöglicht es somit, ein erstes Datensignal 352 in einer Speichereinrichtung zu speichern und wieder auszulesen. Die Eingangssignale 362, 364 und die Ausgangssignale 366, 368 der Einrichtung 308 zum Speichern eines Signalpaares sind dabei wiederum durch die erfindungsgemäße Vorrichtung 302 zum Erzeugen eines Signalpaares vor einem DPA-Angriff geschützt.

4 zeigt eine Vorrichtung zum Speichern eines Signalpaares in Form eines sogenannten Single-Port Speichers, wie er für RAMs oder Cache-Speicher verwendet wird. Aus Gründen der Übersichtlichkeit sind in 4 lediglich zwei Speicherzellen gezeigt, die jedoch stellvertretend für eine Mehrzahl von Speicherzellen stehen. Entsprechend dem in 3 gezeigten Beispiel weist der Single-Port Speicher eine Vorrichtung zum Erzeugen eines Signalpaares und eine Vorrichtung zum Erzeugen eines rückgewonnenen Datensignals auf. Beide Vorrichtungen sind in einer Multiplexer-Schaltung 403 angeordnet. Eine Einrichtung zum Speichern eines Signalpaares 408 ist ebenso wie eine Einrichtung 409 zum Speichern eines Umstellungssignals in Form einer RAM-Zelle ausgeführt. Über eine bidirektionale Treiber-Schaltung 410 wird ein Umstellungssignal 458 an die Einrichtung 409 zum Speichern eines Umstellungssignals bereitgestellt. Das Umstellungssignal 458 wird dabei in ein zu speicherndes Umstellungssignal 459 sowie ein dazu komplementäres zu speicherndes Umstellungssignal 460 umgewandelt. Die Signale 459, 460 sind ebenfalls mit der Multiplexer-Schaltung 403 verbunden. In diesem Beispiel werden die zu speichernden Datensignale in Form eines Datensignals 452 und eines dazu komplementären Datensignals 453 an die Multiplexer-Schaltung 403 bereitgestellt. Entsprechend der Umstellungssignale 459, 460 werden die Datensignale 452, 453 ansprechend auf ein Lese/Schreib-Signal 484, gemäß der vorliegenden Erfindung umgestellt und entsprechend eines Wertes der Umstellungssignale 459, 460 als zu speichernde Signale 463, 465 an die RAM-Zelle 408 bereitgestellt. Die Signalleitungen 463, 465 dienen in diesem Beispiel sowohl zum Beschreiben der RAM-Zelle 408 als auch zum Auslesen, der in der RAM-Zelle gespeicherten Informationen. Die rückgewonnenen Datensignale werden von der Multiplexer-Schaltung 403 ebenfalls auf den Datensignalleitungen 452, 453 ausgegeben. Die Multiplexer-Schaltung 403 ist somit in diesem Beispiel bi-direktional ausgebildet. Eine zweite Speicherzelle und die dazugehörigen Steuerungen sind mit den gleichen Bezugszeichen wie die der ersten Speicherzelle 408 bezeichnet aber durch ein „'" gekennzeichnet. Die zweite Speicherzelle 408' wird von einem dem Umstellungssignal 458 der ersten Speicherzelle 408 entsprechenden aber unabhängigen Umstellungssignal 458' angesteuert.

Die Multiplexer-Schaltungen 403, 403' ermöglichen wiederum einen Schutz der Signalleitungen 463, 465, 463', 465' gegenüber DPA-Angriffen. Die Signalleitungspaare (463, 465), (463', 465') werden im folgenden als (bl, blq) bezeichnet und stehen stellvertretend für eine Mehrzahl von Signalleitungspaaren. Durch eine zufallsgesteuerte Permutation der Bedeutung der Bitleitung bl und deren komplementärer Bitleitung blq eines einzelnen physikalischen Bitleitungspaares in der Multiplexer-Schaltung 403, 403' werden die Leitungen bl, blq vor einer DPA-Analyse geschützt. Dazu wird ohne Beschränkung der Allgemeinheit angenommen, daß die Bitleitungspaare (bl<n>, blq<n>), bzw. die zugehörigen Datenwörtern (d<n>, dq<n>), die den Datensignalen (452, 453), (452', 453') entsprechen, physikalisch entsprechend ihrer Wertigkeiten angeordnet sind, wobei n = w – 1, w – 2, ..., 0 gilt und w für die Wortweite der Datenwörter (d < n >, dq < n >) steht. Im Layout sind somit die nächsten Nachbarn von Bitleitungspaaren mit geraden n = 2j, solche mit ungeraden n = 2j + 1 sowie n = 2j – 1 und umgekehrt. Ausgenommen sind wiederum die höchstwertigen bzw. niedrigwertigen Bitleitungspaare mit n = w – 1 bzw. n = 0.

Beim Schreiben und Lesen von Datenwörtern d < w – 1:0 > unter einer Adresse adr auf die korrespondierenden Bitleitungspaare (bl < n >, blq < n >) werden nun Datenbits gerader bzw. ungerader Wertigkeit d < 2j > bzw. d < 2j + 1 > verschieden behandelt.

Über die mit Mx < n > bezeichneten Multiplexer-Schaltungen innerhalb der einem Schreib/Lese-Eingang einer RAM Zelle zugeordneten Treiberschaltung (403, 403') für das betrachtete Bitleitungspaar werden, abhängig von einem Zeitpunkt ts eines Schreibvorganges in eine Speicherzelle geeignet erzeugte bzw. vorliegende Zufallsbits rndbit-evn(ts) und rndbit-odd(ts), die den Werten des Umstellungssignals 458, 458' entsprechen, die Bitleitungspaare (bl < n >, blq < n >) und mithin die der Adresse adr entsprechenden Speicherzellen wie folgt beschrieben:

(bl < n >, blq < n >) < =(d < n >, not (d < n >))

für rndbit – x(ts) = 0;

(bl < n >, blq < n >) < = > not (d < n >), d < n >)

für rndbit – x(ts) = 1;

wobei x = evn für n = 2j und x = odd für n = 2j + 1 gilt.

Zudem werden die Zufallsbits rndbit – evn(ts) und rndbit – odd(ts) während eines Schreibvorganges in zwei zusätzliche, der Adresse adr zugeordnete und mit fevn und fodd bezeichnete Speicherzellen 409, 409' geschrieben.

Beim Auslesen eines Datenwortes aus einer der Adresse adr zugeordneten Speicherzelle 408, 408' treibt diese entweder (dadr < n >, not (dadr < n >)) oder (not (dadr < n >), dadr < n >) auf das Bitleitungspaar (bl < n >, blq < n >), das über die Multiplexer-Schaltungen 403, 403', die als bedingte Inverter-Schaltungen bezeichnet werden können, mit Treibern für die Datenausgänge 452, 453 und 452', 453' verbunden ist. Abhängig von den gleichzeitig ausgelesenen Werten von fevnadr und foddadr werden die an dem Bitleitungspaar (bl < n >, blq < n >) liegenden Werte entweder invertiert, für fevnadr/foddadr = 1 oder unverändert gelassen, für fevnadr/foddadr = 0, so daß am Ausgang des Multiplexers 403, 403' immer der wahre logische Wert dadr < w – 1:0 > zu liegen kommt.

Für das beschriebene Beispiel genügt es, nur eine Wortleitung wl < adr > zu verwenden, statt der in 3 angegebenen getrennten Wortleitungen 480, 482 bzw. wlf < adr >, wld < adr > für Flags bzw. Daten. Getrennte Wortleitungen 480, 482 werden für das im folgenden erläuterte Beispiel benötigt.

Dieses Beispiel ergibt sich aus der Anforderung, daß es möglich sein soll, nur einen Teil, wie ein Byte oder Teil eines aus mehreren Bytes bestehenden Datenwortes, zur Adresse adr zu überschreiben, ohne eine Integrität der übrigen Teile des in Frage stehenden Datenwortes anzutasten. In diesem Falle dürfen also die zu der Adresse adr zugehörigen Werte des Umstellungssignals 458, 458', also fevnadr/foddadr nicht mit Zufallsbits von außerhalb des Speichers beschrieben werden, da dies den Verlust der übrigen Teile des in Frage stehenden Datenwortes bedeuten würde. Vielmehr werden fevnadr und foddadr über eine eigenen Wortleitung wlf < adr > 482 zunächst während eines ersten Teils eines Schreibzugriffs auf den in Frage stehenden Teil des Datenwortes ausgelesen und die so erhaltenen Werte irgendwann zuvor gespeicherter Zufallsbits steuern die Multiplexer-Schaltungen 403, 403' innerhalb der dem Schreibport zugeordneten Treiber-Schaltungen für die dem in Frage stehenden Teil des Datenwortes entsprechenden Bitleitungspaare, und zwar so, daß diese Treiberschaltungen in einem zweiten Teil des Schreibzugriffs, auf das in Frage stehenden Teil des Datenwortes nun, entsprechend den Werten von fevnadr/foddadr, die jeweiligen Bitleitungspaare mit den logischen Werten (d < n >, not (d < n >)) oder deren inversen (not (d < n >), d < n >) beschreiben. Hierzu zeitlich versetzt wird die Wortleitung 480 wld < adr > des ganzen Datenwortes zur Adresse adr aktiviert, so daß der über die aktiven Treiberschaltungen des Schreib-Ports ausgewählte Teil des Datenwortes überschrieben wird, während die den inaktiven Treiberschaltungen des Schreib-Ports korrespondierenden übrigen Teile des Datenwortes aus den entsprechenden Speicherzellen 408 auf die mit diesen verbundenen Bitleitungspaare 463, 465 ausgelesen werden.

Durch eine solche von Zufallsbits abhängige Vertauschung der Rollen von bl und blq beim Schreiben und Lesen von Datenwörtern auf (bl < w – 1:0 >, blq < w – 1:0 >) wird erreicht, daß sich, für eine Vielzahl logisch identischer Programmabläufe des Gesamtsystems, ein Einfluß kapazitiver Unsymmetrien von bl und blq sowie der Koppelkapazitäten zwischen bl bzw. blq und deren jeweiligen physikalisch benachbarten Leitungen auf das Ladungsintegral der betrachteten Speicherzugriffe im statistischen Mittel aufhebt und mithin also die Relevanz dieser kapazitiven Unsymmetrien und Koppelkapazitäten für DPA-Angriffe eliminiert wird.

5 zeigt ein weiteres Beispiel einer Vorrichtung zum Speichern eines Signalpaares in Form von sogenannten Multi-Port Speicherzellen, wie sie für RAMs oder Registerfiles eingesetzt werden. Durch eine zufallsgesteuerte Permutation der Bedeutung einer Bitleitung blX und deren komplementärer Bitleitung blXq eines einzelnen, einem Port X einer Speicherzelle entsprechenden physikalischen Bitleitungspaares (blX, blXq) wird die gezeigte Multi-Port Speicherzelle vor DPA-Angriffen geschützt.

In 5 gezeigte Elemente, die bereits in 4 erläutert wurden, sind mit den gleichen Bezugszeichen bezeichnet und werden im folgenden nicht weiter beschrieben. Anstelle der in

4 gezeigten RAM Zellen 408, 408', 409, 409' weist das in 5 gezeigte Beispiel Mehrfach-RAM-Zellen 508, 509 auf.

Beim Beschreiben einer Mehrfachspeicherzelle 508 über einen ihrer Schreibeingänge eines Datenwortes mit einer Bitbreite w unter einer Adresse adr wird erfindungsgemäß entweder der logische Wert des Datenwortes

d < w – 1:0 > = [(d < w – 1 >, not (d < w – 1 >)), (d < w – 2 >, not (d < w – 2 >)), ... (d < 0 >, not (d < 0 >)]

oder der bitweise komplementäre Wert

not (d < w – 1:0 >) =[ (not < d < w – 1 >), d < w – 1 >), (not (d < w – 2 >), d < w – 2 >), ... (not (d < 0 >), d < 0 >)]

über ein physikalisches Bitleitungspaarbündel (463', 465') bzw. (blX < w – 1:0 >, blXq < w – 1:0 >) in die entsprechende Multi-Port Speicherzelle 508 geschrieben. Dies geschieht durch geeignete, mit Mx-X bezeichneten Multiplexer-Schaltungen 403', innerhalb einer dem Schreibport zugeordneten Treiberschaltung für das betrachtete Bitleitungspaar 463', 465'. Dabei entscheidet ein zum Zeitpunkt ts des Schreibvorganges geeignet erzeugtes bzw. vorliegendes Zufallsbit rndbit(ts) auf dem Umstellungssignal 458', ob dX<w–1:0> oder not(dX<w–1:0>) gespeichert wird. In diesem Beispiel wird mit rndbit(ts) = 0 über den Multiplexer 403' der Wert dX<w–1:0> getrieben und in der Mehrfachspeicherzelle 508 gespeichert, und mit rndbit(ts) = 1 der Wert not(dX<w–1:0>).

Der Wert des Umstellungssignals 458' rndbit(ts) wird während des Schreibvorganges in eine weitere der Adresse adr zugeordnete und mit d < w > bezeichnete Mehrfachspeicherzelle 509 geschrieben.

Beim Auslesen eines Datenwortes unter der Adresse adr über einen der Lese-Ausgänge der Mehrfachspeicherzellen 508, treiben die Leseausgänge zunächst entweder (dadr < w – 1:0 >, not (dadr < w – 1:0 >)) oder (not (dadr < w – 1:0 >), dadr < w – 1:0 >) auf das Bitleitungspaarbündel (463', 465') bzw. (blX < w – 1:0 >, blXq < w – 1:0 >), das über eine Multiplexer-Schaltung 403' mit den Datensignalleitungen 452', 453' verbunden ist. Abhängig von dem gleichzeitig ausgelesenen Wert von dadr < w > wird der an den Signalleitungen 463', 465' (blX < w – 1:0 >, blXq < w – 1:0 >) liegende Wert entweder invertiert (für dadr < w > = 1) oder unverändert gelassen (für dadr < w > = 0) so daß auf den Datensignalleitungen 452', 453' immer der wahre logische Wert dadr < w – 1:0 > zu liegen kommt, der dann von einer Empfängerschaltung weiter verarbeitet werden kann.

Durch diese von Zufallsbits abhängige Vertauschung der Rollen von blX und blXq beim Schreiben und Lesen von Datenwörtern auf (blX < w – 1:0 >, blXq < w – 1:0 >) wird erreicht, daß sich, für eine Vielzahl logisch identischer Programmabläufe des Gesamtsystems, der Einfluß kapazitiver Unsymmetrien von blX und blXq sowie der Koppelkapazitäten zwischen blX bzw. blXq und deren jeweiligen physikalisch benachbarten Leitungen auf das Ladungsintegral der betrachteten Speicherzugriffe im statistischen Mittel aufhebt. Mithin wird also die Relevanz dieser kapazitiven Unsymmetrien und Koppelkapazitäten für DPA-Angriffe eliminiert.

102Vorrichtung zum Erzeugen eines Signalpaares 104Vorrichtung zum Erzeugen eines rückgewonnenen Da tensignals 106Einrichtung zum Erzeugen eines Umstellungssignals 112erster Datensignaleingang 114zweiter Datensignaleingang 116, 116' Umstellungssignaleingang 122erster Signalausgang 124erster Komplementärsignalausgang 126zweiter Signalausgang 128zweiter Komplementärsignalausgang 132erster Signaleingang 134zweiter Komplementärsignaleingang 138zweiter Komplementärsignaleingang 142erster Datenausgang 144zweiter Datenausgang 152erstes Datensignal 154zweites Datensignal 158Umstellungssignal 162erstes Signal 164erstes Komplementärsignal 166zweites Signal 168zweites Komplementärsignal 172erstes rückgewonnenes Datensignal 174zweites rückgewonnenes Datensignal 202Vorrichtung zum Erzeugen eines Signalpaares 204Vorrichtung zum Erzeugen eines rückgewonnenen Da tensignals 208Einrichtung zur Durchführung einer Datenpfadopera tion 209Einrichtung zum Anpassen des Umstellungssignals 252erstes Datensignal 253erstes Komplementärsignal 258Umstellungssignal 259Datenpfadsteuersignal 258'angepaßtes Umstellungssignal 262erstes Signal 264erstes Komplementärsignal 266Ausgangssignal 268zweites komplementäres Ausgangssignal 272erstes rückgewonnenes Datensignal 273zweites rückgewonnenes Datensignal 302Vorrichtung zum Erzeugen eines Signalpaares 304Vorrichtung zum Erzeugen eines rückgewonnenen Da tensignals 308Einrichtung zum Speichern eines Signalpaares 309Einrichtung zum Speichern eines Umstellungssignals 352erstes Datensignal 358Umstellungssignal 358'gespeichertes Umstellungssignal 362erstes Signal 364erstes Komplementärsignal 366erstes gespeichertes Signal 368erstes gespeichertes Komplementärsignal 372rückgewonnenes Datensignal 403, 403'Vorrichtung zum Erzeugen 408, 408'Einrichtung zum Speichern eines Signalpaares 409, 409'Einrichtung zum Speichern eines Umstellungssignales 410, 410'Multiplexer-Schaltung 452, 452'Datensignal 453, 453'komplementäres Datensignal 458, 458'Umstellungssignal 459, 459'gespeichertes Umstellungssignal 460, 460'gespeichertes Komplementärumstellungssignal 480Datenzugriffsignal 482Umstellungssignal Zugriffssignal 484Schreib/Lesesignal 508Vielfachspeicher für Daten 509Vielfachspeicher für Umstellungssignale 583erstes Zugriffssignal 584zweites Zugriffssignal APort A BPort B ZPort Z CPort C 612, 614Transistoren 702, 704Signalleitungspaare 712, 714, 716, 718 Kapazitäten 722, 724, 726 Koppelkapazitäten

Anspruch[de]
  1. Vorrichtung zur Durchführung einer Datenpfadoperation, mit folgenden Merkmalen:

    einer Vorrichtung (102; 202) zum Erzeugen eines Signalpaares aus einem Datensignal gemäß einer, von einem Umstellungssignalwert abhängigen Umstellungsvorschrift, mit

    einem ersten Datensignaleingang (112) zum Empfangen eines ersten Datensignals (152; 252);

    einem ersten Umstellungssignaleingang (116) zum Empfangen eines ersten Umstellungssignals (158; 258);

    einem ersten Signalausgang (122) zum Ausgeben eines ersten Signals (162; 262); und

    einem ersten Komplementärsignalausgang (124) zum Ausgeben eines ersten Komplementärsignals (164; 264), wobei das erste Signal und das erste Komplementärsignal ein erstes eingangsseitiges Signalpaar bilden;

    wobei die Vorrichtung zum Erzeugen eines Signalpaares ausgebildet ist, um gemäß der Umstellungsvorschrift das erste Datensignal als erstes Signal und ein komplementäres erstes Datensignal als erstes Komplementärsignal auszugeben, wenn das erste Umstellungssignal einen ersten Wert aufweist, und

    das erste Datensignal als erstes Komplementärsignal und das komplementäre erste Datensignal als erstes Signal auszugeben, wenn das erste Umstellungssignal einen zweiten Wert aufweist;

    einer Vorrichtung (104; 204) zum Erzeugen eines rückgewonnenen Datensignals aus einem Signalpaar gemäß einer, von einem Umstellungssignalwert abhängigen komplementären Umstellungsvorschrift, mit

    einem ersten Signaleingang (132) zum Empfangen eines ersten Signals (162; 266);

    einem ersten Komplementärsignaleingang (134) zum Empfangen eines ersten Komplementärsignals (164; 268) wobei das erste Komplementärsignal komplementär zu dem ersten Signal ist, und wobei das erste Signal und das erste Komplementärsignal ein erstes ausgangsseitiges Signalpaar bilden;

    einem ersten Umstellungssignaleingang (116') zum Empfangen eines ersten angepassten Umstellungssignals (158; 258'); und

    einem ersten Datensignalausgang (142) zum Ausgeben eines ersten rückgewonnenen Datensignals (172, 272);

    wobei die Vorrichtung zum Erzeugen eines rückgewonnenen Datensignals ausgebildet ist, um, gemäß der komplementären Umstellungsvorschrift, das erste Signal als erstes rückgewonnenes Datensignal auszugeben, wenn das erste Umstellungssignal einen ersten Wert aufweist, und

    das erste Komplementärsignal als rückgewonnenes Datensignal auszugeben, wenn das erste Umstellungssignal einen zweiten Wert aufweist;

    einer Einrichtung (208) zum Durchführen einer Datenpfadoperation, die über das eingangsseitige Signalpaar (262, 264) mit der Vorrichtung zum Erzeugen eines Signalpaares und über das ausgangsseitige Signalpaar (266, 268) mit der Vorrichtung zum Erzeugen eines rückgewonnenen Datensignals verbunden ist, und zum Empfangen eines Datenpfadsteuersignals (259) ausgebildet ist, wobei das Datenpfadsteuersignal eine an dem eingangsseitigen Signalpaar (262, 264) durchzuführende Datenpfadoperation definiert;

    einer Einrichtung (209) zum Anpassen des Umstellungssignals, wobei die Einrichtung zum Anpassen des Umstellungssignals mit dem Umstellungssignal (258) und dem Datenpfadsteuersignal verbunden ist, und ausgebildet ist, um das an die Datenpfadoperation angepasste Umstellungssignal (258') an die Vorrichtung (204) zum Erzeugen eines rückgewonnenen Datensignals bereitzustellen.
  2. Vorrichtung zur Durchführung einer Datenpfadoperation gemäß Anspruch 1, wobei die Einrichtung zum Durchführen einer Datenpfadoperation eine Schiebeeinheit ist und das Datenpfadsteuersignal einen Schiebewert bereitstellt, und wobei die Schiebeeinheit über eine Mehrzahl von eingangsseitigen Signalpaaren (slin, slgin) mit der Vorrichtung zum Erzeugen eines Signalpaares verbunden ist, und die Mehrzahl von eingangsseitigen Signalpaaren (slin, slgin) entsprechend dem Schiebewert einer Mehrzahl von ausgangsseitigen Signalpaaren (slout, slgout) zuordnet, über die die Einrichtung zum Durchführen einer Datenpfadoperation mit der Vorrichtung zum Erzeugen eines rückgewonnenen Datensignals verbunden ist.
  3. Vorrichtung gemäß einem der Ansprüche 1 oder 2, wobei die Signalpaare (162, 164; 262, 264, 266, 268) in Dual-Rail Technik implementiert sind.
  4. Vorrichtung gemäß einem der Ansprüche 1 bis 3, die ferner eine Einrichtung zum Vorladen der Signalpaare (162, 164; 262, 264, 266, 268) auf einen definierten Vorladezustand aufweist.
  5. Vorrichtung zur Durchführung einer Datenpfadoperation gemäß einem der Ansprüche 1 bis 4, wobei die Vorrichtung (102; 202) zum Erzeugen eines Signalpaares ferner folgende Merkmale aufweist:

    einen zweiten Datensignaleingang zum Empfangen eines zweiten Datensignals;

    einen zweiten Umstellungssignaleingang zum Empfangen eines zweiten Umstellungssignals;

    einen zweiten Signalausgang zum Ausgeben eines zweiten Signals; und

    einen zweiten Komplementärsignalausgang zum Ausgeben eines zweiten Komplementärsignals;

    wobei die Vorrichtung zum Erzeugen eines Signalpaares ferner ausgebildet ist, um das zweite Datensignal als zweites Signal und ein komplementäres zweites Datensignal als zweites Komplementärsignal auszugeben, wenn das zweite Umstellungssignal den ersten Wert aufweist, und

    das zweite Datensignal als zweites Komplementärsignal und das komplementäre zweite Datensignal als zweites Signal auszugeben, wenn das zweite Umstellungssignal den zweiten Wert aufweist.
  6. Vorrichtung zur Durchführung einer Datenpfadoperation gemäß einem der Ansprüche 1 bis 5, die ferner eine Einrichtung (106) zum Erzeugen eines Umstellungssignals aufweist, wobei die Einrichtung zum Erzeugen eines Umstellungssignal ausgebildet ist, um das Umstellungssignal (158) bereitzustellen.
  7. Vorrichtung zur Durchführung einer Datenpfadoperation gemäß Anspruch 6, wobei die Einrichtung zum Erzeugen eines Umstellungssignals eine Einrichtung zum zufallsgesteuerten Setzen des Umstellungssignals auf den ersten Wert oder den zweiten Wert aufweist.
  8. Vorrichtung zur Durchführung einer Datenpfadoperation gemäß einem der Ansprüche 6 oder 7, wobei die Einrichtung zum Erzeugen eines Umstellungssignals einen Zeitsignaleingang zum zeitgesteuerten Setzen des Umstellungssignals auf den ersten Wert oder den zweiten Wert aufweist.
  9. Vorrichtung zur Durchführung einer Datenpfadoperation gemäß einem der Ansprüche 6 bis 8, wobei die Einrichtung zum Erzeugen eines Umstellungssignals ausgebildet ist, um ein zweites Umstellungssignal zu erzeugen.
Es folgen 7 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

Patent Zeichnungen (PDF)

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