DE10227618B4 - Logikschaltung - Google Patents

Logikschaltung Download PDF

Info

Publication number
DE10227618B4
DE10227618B4 DE10227618A DE10227618A DE10227618B4 DE 10227618 B4 DE10227618 B4 DE 10227618B4 DE 10227618 A DE10227618 A DE 10227618A DE 10227618 A DE10227618 A DE 10227618A DE 10227618 B4 DE10227618 B4 DE 10227618B4
Authority
DE
Germany
Prior art keywords
logic
result
input
value
operand
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE10227618A
Other languages
English (en)
Other versions
DE10227618A1 (de
Inventor
Holger Dipl.-Ing. Bock
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE10227618A priority Critical patent/DE10227618B4/de
Priority to PCT/EP2003/006260 priority patent/WO2004001971A1/de
Priority to TW092116204A priority patent/TW200402190A/zh
Priority to AU2003238502A priority patent/AU2003238502A1/en
Publication of DE10227618A1 publication Critical patent/DE10227618A1/de
Priority to US11/018,404 priority patent/US7132858B2/en
Application granted granted Critical
Publication of DE10227618B4 publication Critical patent/DE10227618B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/15Arrangements in which pulses are delivered at different times at several outputs, i.e. pulse distributors
    • H03K5/151Arrangements in which pulses are delivered at different times at several outputs, i.e. pulse distributors with two complementary outputs
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/003Modifications for increasing the reliability for protection
    • H03K19/00323Delay compensation

Abstract

Logikschaltung mit folgenden Merkmalen:
einem ersten Eingang (12; 94) für einen ersten Eingangsoperanden (A);
einem zweiten Eingang (14; 46) für einen zweiten Eingangsoperanden (B);
einem Ausgang (15; 48) mit einem ersten Teilausgang (16; 62) für ein Ergebnis (C; Z) und einem zweiten Teilausgang (18; 64) für ein invertiertes Ergebnis (C; Z), wobei das Ergebnis und das invertierte Ergebnis zusammen einen Ergebnisoperanden anzeigen;
einem ersten Schaltungszweig (19; 50) mit einer ersten Logikanordnung (20; 66), der mit dem ersten und dem zweiten Eingang (12, 14; 44, 46) und dem ersten Teilausgang (16; 62) gekoppelt ist, um das Ergebnis (C; Z) zu berechnen;
einem zweiten Schaltungszweig (21; 52) mit einer zweiten Logikanordnung (22; 68, 70, 72, 74), der mit dem ersten und dem zweiten Eingang (12, 14; 44, 46) und dem zweiten Teilausgang (18; 64) gekoppelt ist, um das invertierte Ergebnis (C; Z) zu berechnen,
wobei die...

Description

  • Die vorliegende Erfindung bezieht sich allgemein auf Logikschaltungen und insbesondere auf solche Logikschaltungen, bei denen zwei verschiedene Schaltungszweige zwischen Eingang und Ausgang geschaltet sind, um ein Ergebnis und ein invertiertes Ergebnis in Abhängigkeit von ein oder mehreren Eingängen zu berechnen.
  • Schaltungen dieser Art werden beispielsweise bei Schaltungen mit einer Dual-Rail-Codierung oder bei Schaltungen der NCL (NULL CONVENTION LOGIC® (eingetragenes Warenzeichen) = Nullkonventionslogik) der Firma Theseus, oder aber anderen Schaltungen verwendet.
  • 4 zeigt allgemein den Aufbau solcher Logikschaltungen anhand eines Beispieles eines Logikbauelementes, welches zwei Eingangsoperanden A, B auf einen Ergebnisoperanden C abbildet und hierbei das Ergebnis C sowie das invertierte Ergebnis C ausgibt. Wie es 4 zu entnehmen ist, besteht das Logikbauelement, das allgemein mit 300 angezeigt ist, auf der Eingangsseite aus zwei Eingängen 302 und 304 für die Eingangsoperanden A bzw. B, auf der Ausgangsseite aus zwei Ausgängen 306 und 308 für das Ergebnis C bzw. das invertierte Ergebnis C und dazwischen aus zwei Logikanordnungen 310 und 312, von denen jede mit beiden Eingängen 302 und 304 gekoppelt ist, und die Logikanordnung 310 mit dem Ausgang 306 und die Logikanordnung 312 mit dem Ausgang 308 gekoppelt ist.
  • Die Logikanordnungen 310 und 312 sind angepaßt, um zusammen eine bestimmte Logikfunktion bezüglich der Eingangsoperanden A und B durchzuführen, wie z.B. eine UND-, ODER- oder XOR-Funktion, oder eine andere kompliziertere Funktion. Folglich ist die Logikanordnung 310 dazu vorgesehen, das Ergebnis C aus den Eingangsoperanden A und B zu berechnen, während die Logikanordnung 312 dazu vorgesehen ist, aus den Eingangsoperanden A und B das invertierte Ergebnis C zu berechnen. Je nach Art der Logikfunktion und der verwendeten Gatter innerhalb der Logikanordnungen 310 und 312, deren Auswahl sich wiederum beispielsweise nach der verwendeten Herstellungstechnik zur Integration der Logikschaltung verwendet wird, richtet, benötigen die Logikanordnungen 310 und 312 zur Berechnung des Ergebnisses C bzw. des invertierten Ergebnisses C unterschiedliche Zeitdauern und unterschiedliche Leistung. Anders ausgedrückt können die Logikanordnungen 310 und 312 unterschiedliche Laufzeiten und unterschiedliche Leistungsaufnahmen aufweisen.
  • Ein Nachteil des bezugnehmend auf 4 beschriebenen Logikbauelements besteht nun darin, daß bei Verwendung derartiger Logikbauelemente in kryptographischen Schaltungen, wie z.B. Chipkarten oder SIM-Karten, abhängig von den zu verschlüsselnden Daten innerhalb eines Logikbauelementes gemäß 4 unterschiedliche Laufzeiten und Leistungsaufnahmen bewirkt werden, die wiederum Potential für mögliche Angriffe bieten, um beispielsweise auf den verwendeten Kryptographiealgorithmus, den kryptographischen Schlüssel und andere geheime Daten rückzuschließen. Angriffe, die hierzu geeignet sind, werden als Hardwareangriffe bezeichnet, wie z.B. DPA- (Differential Power Analysis = Differentielle Leistungsanalyse-) und Zeitmessungs- (Timing-) Angriffe. In dem Fall, daß beispielsweise das Logikbauelement von 4 getaktet innerhalb einer synchronen Logik arbeitet, verändert sich beispielsweise der Verlauf des Leistungsverbrauches der Schaltung innerhalb eines Taktes, da je nach Eingangsdatum vermehrt Logikzweige mit derjenigen Logikanordnung auf einen logisch hohen Zustand, wie z.B. 5 V, als dem Ergebnis umgeschalten und, in dem Fall einer CMOS-Implementierung, hierdurch Leistung verbrauchen, die im Vergleich zu den jeweils anderen Logikzweigen eine höhere oder niedrigere Leistungsaufnahme bzw. eine längere oder kürzere Laufzeit aufweisen. In dem Fall des Logikbauelements von 4 unterscheidet sich beispielsweise die Leistungs aufnahme für verschiedene Eingangsoperanden A und B abhängig davon, welcher der beiden Logikzweige, nämlich derjenige, in den die Logikanordnung 310 geschaltet ist, oder derjenige, in den die Logikanordnung 312 geschaltet ist, einen logisch hohen Zustand als Ergebnis bzw. invertiertem Ergebnis ausgibt.
  • Noch gravierender wirken sich die unterschiedlichen Laufzeiten von Leistungsaufnahmen der verschiedenen Schaltungszweige der verschiedenen Logikbauelemente in dem Fall der Verwendung derselben in asynchronen Schaltungen als selbstgetaktete Logikbauelemente aus. Je nach zu verarbeitendem bzw. zu verschlüsselndem Datum addieren sich die unterschiedlichen Leistungsaufnahmen und Laufzeiten, die je nach dem entstehen, welcher der Leistungszweige „schaltet", zu einer unterschiedlichen Gesamtleistungsaufnahme und Gesamtberechnungszeitdauer pro Verschlüsselung oder Teiloperation eines kryptographischen Algorithmus.
  • Die DE 19922354 A1 offenbart in 3 eine Niederspannungs-Differenzsignal-(LVDS)-Leistungstreiberschaltung, bei der ein Eingangssignal über zwei Verzögerungsinvertierer auf der einen und über einen Verzögerungsinvertierer und eine Verzögerungsschaltung auf der anderen Seite in zueinander invertierte Eingangssignale umwandelt wird und abhängig von diesen dann ein Differenzausgangssignal an zwei Ausgängen erzeugt wird. Sinn und Zweck von Niederspannungs-Differenzsignal-Treibern ist die schnelle Datenübertragung über lange Entfernungen insbesondere auf Twisted-Pair-Signalleitungen.
  • Die WO 00/26746 A2 bezieht sich auf einen Datenträger mit einem verschleierten Leistungsverbrauch. Insbesondere schlägt das Dokument vor, SPA und DPA-Angriffe dadurch zu erschweren bzw. zu vereiteln, dass der Leistungsverbrauch durch eine weitere Komponente überlagert wird, die vorzugsweise nicht direkt auf die internen Operationen der ausgespähten Datenverarbeitungsvorrichtung bezogen ist. Gemäß einem speziellen Ausführungsbeispiel werden einige Logikelemente, dort exemplarisch ein UND-Gatter kopiert, dort exemplarisch durch ein UND-Gatter, das die gleichen Eingangssignale, jedoch invertiert durch Invertierer, erhält. Vorzugsweise werden Verzögerungselemente vor die eigentlichen Logikelemente bzw. das UND-Gatter geschaltet, um die Signalverzögerung der Inverter auszugleichen.
  • Es ist die Aufgabe der vorliegenden Erfindung eine Logikschaltung zu schaffen, die eine größere Sicherheit gegen Hardwareangriffe erzielt.
  • Diese Aufgabe wird durch eine Logikschaltung gemäß Anspruch 1 oder 2 gelöst.
  • Der vorliegenden Erfindung liegt die Erkenntnis zugrunde, dass die Sicherheit von Schaltungen, wie z.B. insbesondere kryptographische Schaltungen, wie z.B. in Chipkarten oder SIM-Karten, gegen Hardwareangriffe, wie z.B. Leistungs- und Zeitmessungsangriffe, gesteigert werden kann, wenn diese Schaltungen aus Logikschaltungen aufgebaut werden, bei denen der Schaltungszweig mit der Logikanordnung zur Berechnung des Ergebnisses und der Schaltungszweig mit der Logikanordnung zur Berechnung des invertierten Ergebnisses hinsichtlich ihrer Laufzeiten bzw. Leistungsaufnahmen angeglichen bzw. homogenisiert werden, indem in einem oder beiden der Schaltungszweige eine Verzögerungsschaltung oder Kompensationsschaltung vorgesehen wird, die den Unterschied der Leistungsaufnahmen bzw. Laufzeiten dieser Logikanordnungen verringert oder sogar vollständig ausgleicht. Unter einem nur geringen schaltungstechnischen Aufwand wird hierdurch eine sich in Abhängigkeit von den zu verarbeitenden Eingangsoperanden geringere Variation der Leistungsaufnahme und benötigten Laufzeit erzielt, da die Laufzeit bzw. die Leistungsaufnahme, die dabei entsteht, wenn der eine Schaltungszweig schaltet, sich weniger von der Laufzeit bzw. Leistungsaufnahme unterscheidet, die in dem Fall entsteht, wenn der andere Schaltungszweig schaltet. Durch den geringeren Unterschied bzw. der geringeren Variation bezüglich der Laufzeiten und Leistungsaufnahmen ist die Gefahr des Erfolgs von Leistungs- bzw. Timing-Attacken durch Angreifer deutlich reduziert.
  • Ein spezielles Ausführungsbeispiel der vorliegenden Erfindung bezieht sich auf asynchrone selbstgetaktete Schaltungen, und insbesondere auf solche, welche nach der NCL-Logik synthetisiert wurden. Durch die Angleichung/Homogenisierung des Zeitverhaltens bzw. der Leistungsaufnahme der einzelnen, sogenannte „vollständige Funktionen" implementierenden Logikschaltungen, kann die Sicherheit einer sich aus diesen Logikschaltungen zusammensetzenden kryptographischen Schaltung gegen Zeitmessungs- und Leistungsangriffe, wie z.B. DPA-Angriffe, deutlich gesteigert werden. Die kryptographische Schaltung implementiert beispielsweise einen symmetrischen kryptographischen Algorithmus, wie z.B. einen DES- (Data Encryption Standard = Datenverschlüsselungsstandard) oder AES(Advanced Encryption Standard = Verbesserter Verschlüsselungsstandard) Algorithmus, oder einen asymmetrischen, wie z.B. den RSA-Algorithmus.
  • Nachfolgend werden bezugnehmend auf die beiliegenden Zeichnungen bevorzugte Ausführungsbeispiele der vorliegenden Erfindung näher erläutert. Es zeigen:
  • 1 ein allgemeines Ausführungsbeispiel einer Logikschaltung gemäß der vorliegenden Erfindung;
  • 2a ein nicht gemäß der vorliegenden Erfindung implementiertes NCL-UND-Gatter;
  • 2b ein gemäß einem Ausführungsbeispiel der vorliegenden Erfindung implementiertes NCL-UND-Gatter;
  • 3a ein nicht gemäß der vorliegenden Erfindung implementiertes NCL-ODER-Gatter;
  • 3b ein gemäß einem Ausführungsbeispiel der vorliegenden Erfindung implementiertes NCL-ODER-Gatter; und
  • 4 einen Schaltungsaufbau einer Logikschaltung, anhand dessen der Nachteil des bisherigen Logikschaltungsaufbaus verdeutlicht wird.
  • Es wird darauf hingewiesen, daß in den 2-3b gleiche bzw. funktionsgleiche Elemente mit gleichen bzw. ähnlichen Bezugszeichen versehen sind, und daß bei der folgenden Beschreibung dieser Figuren eine wiederholte Beschreibung dieser Elemente weggelassen wird.
  • Zunächst wird bezugnehmend auf 1 eine Logikschaltung gemäß einem allgemeinen Ausführungsbeispiel der vorliegenden Erfindung beschrieben, bei der die Logikschaltung wie diejenige von 4 zwei Eingangsoperanden A, B auf einen Ergebnisoperanden C abbildet und hierbei ein Ergebnis C und ein invertiertes Ergebnis C ausgibt. Die Logikschaltung von 1, die allgemein mit 10 angezeigt ist, umfaßt auf der Eingangsseite einen Eingang 11 mit einem Operandeneingang 12 für den Eingangsoperanden A und einem Operandeneingang 14 für den Eingangsoperanden B, auf der Ausgangsseite einen Ausgang 15 mit einem Teilausgang 16 für das Ergebnis C und einen Teilausgang 18 für das invertierte Ergebnis C sowie dazwischen einen mit dem Eingang 11 und dem Teilausgang 16 gekoppelten Schaltungszweig 19, der eine Logikanordnung 20 umfaßt, und einen mit dem Eingang 11 und dem Teilausgang 18 gekoppelten Schaltungszweig 21, der eine Logikanordnung 22 umfaßt. Beide Logikanordnungen 20 und 22 sind sowohl mit dem Operandeneingang 12 als auch mit dem Operandeneingang 14 gekoppelt.
  • Die Logikanordnungen 20 und 22 sind derart entworfen, daß dieselben gemäß einer Logikfunktion der Logikschaltung 10 zusammenwirken, um aus den Eingangsoperanden A und B ein durch die Logikfunktion bestimmtes Ergebnis C bzw. das invertierte Ergebnis C zu berechnen. Die Logikfunktion ist beispielsweise eine ODER-, UND- oder XOR-Funktion oder eine kompliziertere, aus diesen Funktionen zusammengesetzte Funktion. Jede Logikanordnung 20 bzw. 22 besitzt für ihre jeweilige Berechnung eine unterschiedliche Laufzeit bzw. Leistungsaufnahme, die beispielsweise von einer unterschiedlichen Anzahl von internen Logikstufen und allgemein durch einen unterschiedlichen Aufbau aus Gattern herrührt. Anders ausgedrückt benötigt ein Umschaltvorgang für das Ergebnis C eine andere Laufzeit und Leistungsaufnahme als ein die Logikanordnung 22 durchlaufendes Signal.
  • In dem vorliegenden Fall von 1 ist exemplarisch angenommen worden, daß die Logikanordnung 20 eine kürzere Laufzeit und eine geringere Leistungsaufnahme als die Logikanordnung 22 aufweist. Zur Verringerung des Unterschieds zwischen den Laufzeiten und den Leistungsaufnahmen der beiden Logikanordnungen 20 und 22 ist deshalb eine Schaltung 24 in den Schaltungszweig 19 geschaltet, die ihrerseits wiederum eine Laufzeit und eine Leistungsaufnahme aufweist. Die Laufzeit und Leistungsaufnahme des Schaltungszweiges 19 setzt sich deshalb nunmehr aus den Laufzeiten der Logikanordnung 20 und der Schaltung 24 zusammen. In ähnlicher Weise setzt sich die Leistungsaufnahme des Schaltungszweiges 19 aus der Leistungsaufnahme der Logikanordnung 20 und der Leistungsaufnahme der Schaltung 24 zusammen. Die Schaltung 24 dient somit als Ver zögerungsschaltung und Kompensationsschaltung in einem. Im Idealfall ist die Schaltung 24 derart ausgelegt, daß die Summe der Laufzeiten der Logikanordnung 20 und der Schaltung 24 und somit die Laufzeit des Schaltungszweiges 19 gleich der Laufzeit des Schaltungszweiges 21 ist. In ähnlicher Weise wäre die Schaltung 24 ideal ausgelegt, wenn die Summe der Leistungsaufnahmen der Logikanordnung 20 und der Schaltung 24 gleich der Leistungsaufnahme des Schaltungszweiges 21 wäre. Die Schaltung 24 übernimmt in logischer Hinsicht keine Funktion, d.h, verändert nicht den von der Logikanordnung 20 berechneten logischen Zustand für das Ergebnis C an dem Teilausgang 16.
  • Aufgrund der durch die Schaltung 24 bewirkten Angleichung/Homogenisierung des Zeit- und Leistungsaufnahmeverhaltens der Logikschaltung 10 wird es Angreifern erschwert, durch Hardwareangriffe, die beispielsweise auf Zeitmessungen, Stromverbrauchsmessungen oder Abstrahlungsmessungen beruhen, an Informationen zu gelangen, die mit Hilfe eines kryptographischen Algorithmus verarbeitet werden, der durch eine Schaltung implementiert ist, in der die Logikschaltung 10 von 1 eingesetzt wird.
  • Obwohl bezugnehmend auf 1 zum leichteren Verständnis die Logikanordnungen 20 und 22 als vollständig getrennt voneinander dargestellt wurden, ist die vorliegende Erfindung auch auf Logikschaltungen anwendbar, bei denen die Logikanordnungen für das Ergebnis bzw. das invertierte Ergebnis einen gemeinsamen Teil aufweisen, sich aber ansonsten voneinander unterscheiden.
  • Ferner wird darauf hingewiesen, daß die vorhergehende Beschreibung von 1 sowohl auf eine synchron getaktete als auch eine asynchron selbstgetaktete Implementierung der Logikschaltung 10 anwendbar ist. In dem Fall synchron arbeitender, getakteter Logikanordnungen 20 und 22 sind die Eingangsoperanden A und B beispielsweise einzelne Bits, die über ein fache Leitungen von den Operandeneingängen 12 und 14 zu den Logikanordnungen 20 und 22 übertragen werden und dort abhängig von der durch die Logikschaltung 10 implementierten Logikfunktion auf das Ergebnis C bzw., das invertierte Ergebnis C abgebildet werden, die mit einem logischen Zustand von Wahr oder Unwahr an den Teilausgängen 16 bzw. 18 ausgegeben werden. Die Laufzeitunterschiede der Logikanordnungen 20 und 22 könnte beispielsweise einen Bruchteil eines Taktes betragen, der durch die Verzögerungsschaltung 24 reduziert werden würde. Auf ähnliche Weise könnte ein Unterschied in der Leistungsaufnahme der beiden Logikanordnungen 20 und 22 durch die Kompensationsschaltung 24 ausgeglichen bzw. reduziert werden.
  • Um die Leistungsaufnahme und Laufzeiten feiner angleichen bzw. homogenisieren zu können, und um gleichzeitig dem Umstand Rechnung zu tragen, daß häufig das Vorsehen einer die Leistungsaufnahme angleichenden Schaltung in einem Leistungszweig gleichzeitig eine Erhöhung der Laufzeit bedeutet, kann anstelle der Schaltung 24 eine Schaltung 26, die in 1 mit gestrichelten Linien angezeigt ist, in sowohl den Schaltungszweig 19 als auch den Schaltungszweig 21 geschaltet sein, um ohne Auswirkung auf die logische Funktion der beiden Schaltungszweige 19 und 21 gleichzeitig auf beide Schaltungszweige 19 und 21 derart einzuwirken, daß eine Angleichung und Homogenisierung der Leistungsaufnahme und Laufzeit der beiden Schaltungszweige 19 und 21 bewirkt wird.
  • Nachdem im vorhergehenden Bezug nehmend auf 1 ein allgemeines Ausführungsbeispiel für eine Logikschaltung beschrieben worden ist, werden im folgenden bezugnehmend auf die 2 und 3 spezielle Ausführungsbeispiele für Logikschaltungen der Art von 1 beschrieben, und zwar bezugnehmend auf 2 ein eine UND-Funktion implementierendes Gatter und bezugnehmend auf 3 ein eine ODER-Funktion implementierendes Gatter nach der NCL-Logik.
  • Bevor auf die 2 und 3 Bezug genommen wird, wird im folgenden kurz die Nullkonventionslogik bzw. NCL-Logik der Firma Theseus Logic Inc. in der Form, wie sie den Ausführungsbeispielen von 2 und 3 zugrunde liegt, kurz erläutert, wobei für weitergehende Einzelheiten auf den Artikel „NULL CONVENTION LOGIC" von D.N. Fant und S.A. Brandt verwiesen wird, der auf der Internetseite von Theseus „www://www.theseus.com/_aboutncl.htm" per Link im PDF-Format abrufbar ist und hiermit in Bezug auf die im folgenden beschriebene Form der NCL®-Logik unter Bezugnahme aufgenommen wird.
  • Gemäß der NCL-Logik wird nur einem von zwei Zustandswerten, die ein binärer logischer Zustand auf einer Datenleitung annehmen kann, eine DATA- bzw. Daten-Funktion zugeordnet, während der jeweils andere Zustandswert als NULL bezeichnet wird, und das Fehlen eines DATA-Wertes anzeigt. DATA wird beispielsweise mit einem Zustand elektrisch hohen Potentials bzw. mit hoher Spannung, z.B. 5V oder 3,5V, auf einer Datenleitung übertragen, während NULL mit einem Zustand elektrisch niedrigen Potentials bzw. mit niedriger Spannung, wie z.B. 0V, übertragen wird. Da auf einer einzigen Datenleitung lediglich DATA oder NULL, d.h. nur ein einziger logischer Wert, übertragen werden kann, werden zur Übertragung binärer Operanden zwei Leitungen bzw. Rails verwendet. Dem logischen Wert FALSCH (F) eines binären Operanden wird per Definition beispielsweise ein DATA-Wert, d.h. ein Zustand elektrisch hohen Potentials, auf einer ersten Rail bzw. Leitung, die in den im folgenden beschriebenen Figuren mit einem Kreis an der Rail dargestellt ist und als F- oder 0-Rail bezeichnet wird, und ein NULL-Wert, d.h. ein Zustand elektrisch niedrigen Potentials, auf der zweiten Rail zugeordnet, die als T- oder 1-Rail bezeichnet wird. Dementsprechend wird dem logischen Wert RICHTIG (T = TRUE) die umgekehrte Kombination von Zuständen auf den beiden den jeweiligen Operanden übertragenden Rails zugeordnet, nämlich ein Zustandswert DATA auf der zweiten T-Rail und ein Zustandswert NULL auf der ersten F-Rail.
  • Die NCL-Logik ist eine asynchrone Logik und zeichnet sich dadurch aus, daß kein allgemeiner Takt zu ihrem Betrieb notwendig ist. Dies wird im wesentlichen durch Einführung eines zusätzlichen Werts NULL (N) zu den logischen Werten F und T erzielt. Jeder Operand oder seine ihn übertragende Dual-Rail-Leitung kann folglich einen von drei unterschiedlichen Werten annehmen. Dem zusätzlichen Wert N wird per Definition die Kombination von logischen Zuständen auf den beiden den jeweiligen Operanden übertragenden Rails zugeordnet, bei der beide logische Zustände den Wert NULL aufweisen bzw. auf ein elektrisch niedriges Potential eingestellt sind.
  • Da auf einer Rail lediglich ein Datenwert DATA und ansonsten lediglich NULL, was sozusagen Nicht-DATA bedeutet, übertragen werden kann, ist bei der NCL-Logik für ein Logikgatter die einzig unterscheidbare Größe in dem Fall mehrer eingehenden Rails, wie viele DATA-Werte auf den Rails übertragen werden. Folglich sind NCL®-Schaltungen vornehmlich aus diskreten Schwellenwertgattern aufgebaut, von den zwei verschiedene Ausführungen (angezeigt mit „22" und „13") in den 2 und 3 gezeigt sind. Diskrete Schwellenwertgatter besitzen N-Eingänge und einen Ausgang. Ein N-Aus-M-Gatter (in den 2 bis 3 durch zwei Zahlen innerhalb des Gatters ausgedrückt, von denen die erste N und die zweite M angibt) hat die Eigenschaft, am Ausgang den Wert DATA auszugeben, wenn auf gleichvielen wie N oder auf mehr als N der M Eingänge der Wert DATA vorliegt. Andernfalls gibt es einen NULL-Wert aus.
  • Aufgrund der obigen Vorkehrungen gemäß der NCL-Logik, d.h. des Vorsehens des zusätzlichen Wertes NULL für einen Operanden und des Aufbaus der Gatter als diskrete Schwellenwertgatter, ist es möglich, aus NCL®-Logikgattern, die zwei Eingangsoperanden auf einen Ausgangsoperanden abbilden, eine asynchrone selbstgetaktete Schaltung aufzubauen. Geeignet aufgebaute NCL-Gatter sind derart aufgebaut, daß sie ausgehend von einem Zustand, da alle Eingangsoperanden den Wert NULL aufweisen, erst dann einen logischen Wert (F oder T) ausgeben, wenn alle Eingangsoperanden zu einem logischen Wert (T oder F) gewechselt haben. Dies stellt sicher, daß am Ende einer aus diesen Logikbauelementen aufgebauten Schaltung erkannt werden kann, ob das vollständige Ergebnis am Ausgang anliegt, das auf einem vollständigen Satz von Eingangsoperanden beruht.
  • Umgekehrt wird bei der NCL-Logik sichergestellt, daß vor Beginn des nächsten Berechnungszyklusses ein NULL-Zyklus erfolgt, bei dem alle Eingangsoperanden auf den Wert NULL eingestellt werden, damit ein nachgeschalteter Empfänger anhand des empfangenen Ergebnissignales erkennen kann, wann ein neuer und insbesondere gültiger Wert vorliegt. Hierzu sind die Logikbauelemente gemäß der NCL-Logik derart aufgebaut, daß sie erst dann von einem logischen Ergebniswert (F oder T) zu dem Wert NULL wechseln, wenn alle Eingangsoperanden zu dem Wert NULL gewechselt haben. Gemäß der im folgenden bezugnehmend auf 2 und 3 beschriebenen Form der NCL-Logik wird dies durch einen speziellen Aufbau der N-Aus-M-Gatter durchgeführt. Diese sind derart aufgebaut, daß sie einen Hystereseeffekt aufzeigen. Derartige N-Aus-M-Gatter wechseln von einem Wert NULL zu einem Wert DATA an ihrem Ausgang, wenn mindestens N der M Eingänge den Wert DATA aufweisen. Allerdings wechseln diese N-Aus-M-Gatter erst dann wieder zu dem Ergebniswert NULL, wenn alle Eingangswerte NULL sind. Andernfalls verbleibt das Gatter in seinem derzeitigen Zustand.
  • Die Erzielung des Hystereseeffektes bei den N-Aus-M-Gattern gemäß der NCL-Logik in der oben beschriebenen Form kann beispielsweise durch einen Rückkopplungskreis erzielt werden. Hierbei umfaßt ein N-Aus-M-Gatter neben den M externen Eingängen N-1 weitere interne Eingänge auf, die mit dem Ausgang des N-Aus-M-Gatters verbunden sind. Hat der Ergebniswert des N-Aus-M-Gatters einmal den Wert DATA angenommen, so liegt dieser Wert DATA N-1 mal am Eingang bzw. an N-1 internen Eingängen des N-Aus-M-Gatters an. Die Anzahl der Eingänge, ex tern oder intern, die den Wert DATA aufweisen, ist deshalb so lange größer oder gleich N, so lange nur einer der externen M Eingänge den Wert DATA aufweist, da während dieser Zeit zumindest die N-1 rückgekoppelten DATA-Werte an den internen Eingängen vorliegen. Erst wenn alle Eingangswerte an den M externen Eingängen den Wert NULL angenommen haben, wechselt auch der Ergebniswert des N-Aus-M-Gatters auf den Wert NULL. Weitere Informationen zu dem Aufbau und dem Verhalten von Schwellenwertgattern mit Hystereseeffekten gemäß der NCL-Logik in der hier beschriebenen Form können dem Artikel „CMOS Circuit Design of Threshold Gates with Hystereses" von G.E. Sobelman und K.F. Fant entnommen werden, der auf der im vorhergehenden angegebenen Internetseite der Firma Theseus per Link im PDF-Format abgerufen werden kann, und der hiermit unter Bezugnahme aufgenommen wird. Ein weitere mögliche, in 2 und 3 aber nicht verwendet Form der NCL-Logik sieht die Verwendung von zwei Dual-Rail-Leitungen pro Eingangsoperanden mit zwei logischen Zuständen T und F vor.
  • Bei den bezugnehmend aus den 2 und 3 beschriebenen Beispielen für NCL- UND- bzw. -ODER-Gatter wird die Eigenschaft, daß am Ausgang des Gatters erst dann von einem logischen Wert T oder F auf den Wert NULL gewechselt wird, wenn alle Eingangsoperanden NULL sind, dadurch sichergestellt, daß jede Kombination von zwei Rails der insgesamt vier Rails der beiden Eingangsoperanden, genauer jede Kombination einer Rail des ersten Eingangsoperanden und einer Rail des anderen Eingangsoperanden) in ein 2-Aus-2-Gatter mit Hystereseeffekt eingegeben werden, was im folgenden noch näher ausgeführt wird.
  • Durch die beiden im vorhergehenden beschriebenen Eigenschaften der NCL-Logik, nämlich das Ausgeben eines logischen Wertes erst, wenn alle Eingangsoperanden einen logischen Wert aufweisen, bzw. die Sicherstellung der Vollständigkeit der Eingangskriterien für die Daten in Relation zu NULL und das Zurückkehren in den NULL-Ausgangswert erst dann, wenn wieder alle Eingangsoperanden NULL sind, bzw. die Sicherstellung der Vollständigkeit der Eingangskriterien für NULL in Relation zu den Daten, ist gewährleistet, daß eine auf solchen Logikbausteinen aufgebaute Schaltung ohne gemeinsamen Takt auskommt und somit nahezu unanfällig gegenüber leitungsbedingten Verzögerungen (delay insensitive) ist (aufgrund der Rückkopplung zur Hystereseerzeugung besteht eine nicht-kritische Zeitbeziehung).
  • Nachdem im vorhergehenden die wichtigsten Grundzüge der NCL-Logik in der hier relevanten Form beschrieben worden sind, wird auf die 2 und 3 Bezug genommen.
  • 2a zeigt ein NCL-Dual-Rail-UND-Gatter, das nach der NCL-Logik in der oben beschriebenen Form aufgebaut ist, das die Eingangsoperanden A und B nach einer UND-Verknüpfung auf den Ausgangsoperanden Z abbildet, und das aber nicht der vorliegenden Erfindung entspricht. Das in 2a gezeigte Gatter ist beispielsweise auf der im vorhergehenden erwähnten Internetseite der Firma Theseus dargestellt. Nach Erörterung der 2a wird bezugnehmend auf 2b ein entsprechendes UND-Gatter beschrieben, welches eine erfindungsgemäße Verbesserung aufweist.
  • Das UND-Gatter von 2a, das allgemein mit 40 angezeigt ist, umfaßt eingangsseitig einen Eingang 42 mit einem Dual-Rail-Eingang 44 für einen binären logischen Eingangsoperanden A und einem Dual-Rail-Eingang 46 für einen binären logischen Eingangsoperanden B, ausgangsseitig einen Dual-Rail-Ausgang 48 sowie dazwischen einen Schaltungszweig bzw. Pfad 50 und einen zweiten Schaltungszweig bzw. Pfad 52, die beide mit dem Eingang 42 und dem Dual-Rail-Ausgang 48 gekoppelt sind. Insbesondere umfaßt jeder Dual-Rail-Eingang 44 bzw. 46 einen Eingang für eine erste T-Rail 54 bzw. 56 und einen Eingang für eine zweite F-Rail 58 bzw. 60 auf. Dementsprechend umfaßt der Dual-Rail-Ausgang 48 einen Ausgang für eine erste T-Rail 62 und eine zweite F-Rail 64. Die jeweils erste T- bzw. 1- Rail 54, 56 und 62 entsprechen, wie oben erwähnt, derjenigen Rail einer Dual-Rail-Leitung zur Übertragung eines Operanden, auf der ein Wert DATA übertragen wird, wenn der entsprechende Operand den logischen Wert T aufweist, während die andere NULL überträgt. Dementsprechend entsprechen die zweiten F- bzw. 0-Rails 58, 60 und 64, die in den 2a, 2b, 3a und 3b durch einen kleinen Kreis an der entsprechenden Rail angezeigt sind, derjenigen Rail einer Dual-Rail-Leitung, auf der durch einen Wert DATA angezeigt wird, daß der auf dieser Dual-Rail-Leitung übertragene Operand einen logischen Wert von F aufweist, während die andere NULL überträgt.
  • Der erste Logikpfad 50 umfaßt ein 2-Aus-2-Gatter 66 der oben beschriebenen Art mit Hystereseeffekt. Der Logikpfad 50 ist insbesondere mit dem Eingang 42 und dem Dual-Rail-Ausgang 48 derart gekoppelt, daß die zwei Eingänge des 2-Aus-2-Gatters 66 mit den beiden 1-Rails der Operanden A und B und der Ausgang des 2-Aus-2-Gatters 66 mit der 1-Rail 62 des Ausgangsoperanden Z verbunden ist. Der zweite Logikpfad 52 besteht aus drei 2-Aus-2-Gattern 68, 70 und 72 und einem 1-Aus-3-Gatter 74, die alle vom selben Typ wie das Gatter 66 sind. Intern, d.h. innerhalb des Pfades 52, sind die Ausgänge der 2-Aus-2-Gatter 68, 70 und 72 mit den drei Eingängen des 1-Aus-3-Gatters 74 verbunden. Der Logikpfad 52 ist derart mit dem Eingang 42 und dem Dual-Rail-Ausgang 48 gekoppelt, daß die zwei Eingänge des Gatters 68 mit der 1-Rail 54 und der 0-Rail 60, die beiden Eingänge des Gatters 70 mit der 0-Rail 58 und der 1-Rail 56 und das Gatter 72 mit der 0-Rail 58 und der 0-Rail 60 und der Ausgang des Gatters 74 mit der 0-Rail 64 verbunden ist.
  • Nachdem im vorhergehenden der Aufbau des UND-Gatters von 2a beschrieben worden ist, wird im folgenden dessen Funktionsweise erläutert. Wie für einen Fachmann ersichtlich, entsprechen die Gatter 66-72 in ihrer Funktion in etwa der eines UND-Gatters nach binärer Logik und bilden somit sogenannte „Minterme" der Eingangsoperanden A und B bzw. ihrer Inversen A und B. Das Gatter 66 gibt an seinem Ausgang beispielsweise nur dann den Wert DATA an die 1-Rail 62 aus, wenn auf beiden 1-Rails 54 und 56 ein DATA-Wert vorliegt. Hierbei sei daran erinnert, daß gemäß der NCL-Logik höchstens ein Wert einer Rail einer Dual-Rail-Leitung eines Operanden einen Wert DATA aufweisen kann. Dies bedeutet, daß das Gatter 66 an seinem Ausgang nur dann einen DATA-Wert ausgibt, wenn beide Eingangsoperanden einen logischen Wert T aufweisen.
  • Die Gatter 68-72 des zweiten Logikpfades 52 bilden die anderen Minterme bzw. verknüpfen die anderen Kombinationen von Rails zwischen den beiden Eingangsoperanden A und B. Aufgrund der Tatsache, daß, wie im vorhergehenden erwähnt, maximal eine Rail einer Dual-Rail-Leitung einen Wert DATA aufweisen kann, gibt höchstens eines der Gatter 66-72 einen Wert DATA aus. Wenn folglich das Gatter 66 des ersten Logikpfades einen Wert DATA ausgibt, ist der Wert, den die Gatter 68-72 ausgeben, NULL. In diesem Fall gibt auch das Gatter 74 an der 0-Rail 74 den Wert NULL aus. In dem Fall, daß eines der Gatter 68-72 einen Wert DATA ausgibt, da die entsprechenden, mit diesem Gatter verbundenen Rails den Wert DATA aufweisen, während die anderen beiden NULL sind, gibt auch das 1-Aus-3-Gatter 74 den Wert DATA aus, während das Gatter 66 NULL ausgibt. Insgesamt wirken folglich die beiden Logikpfade 50 und 52 zusammen, um die Logikfunktion des Gatters 40 zu erfüllen, nämlich die UND-Funktion bezüglich der beiden Eingangsoperanden A und B mit dem Ausgangsoperanden Z.
  • Wie bereits im vorhergehenden erwähnt, bedeutet das Anliegen des Wertes DATA an einem der beiden Rails 62 und 64 am Ausgang 48, daß 1) der Ausgangsoperand einen logischen Wert aufweist, 2) per Konvention der Zustandswert an der jeweils anderen Rail des Ausgangs 48 NULL ist, und daß 3) insbesondere auch die Eingangsoperanden A und B einen logischen Wert aufweisen. Letzteres ist daran erkennbar, daß einerseits höchstens eines der Gatter 66-72 einen Wert DATA ausgeben kann, und daß andererseits aber mindestens eines der Gatter 66-72 einen Wert DATA ausgeben muß, damit der Ausgangsoperand Z einen logischen Wert aufweist. Dies bedeutet wiederum, daß in dem Fall eines Ausgangsoperanden mit einem logischen Wert genau eine Rail jedes Eingangsoperanden A und B einen Wert DATA aufweist, während die jeweils andere einen Wert NULL aufweist. Ein Empfänger der Ausgangsoperanden Z kann sich bei Empfang eines logischen Wertes folglich sicher sein, daß dieser auf logischen Werten der Eingangsoperanden A und B beruht und somit gültig ist. Umgekehrt wechselt der Ausgangsoperand des Logikgatters 50 aufgrund der Hystereseeigenschaften der Gatter 66-74 der Ausgangsoperand nur dann von einem logischen Wert zu dem Wert NULL, wenn beide Eingangsoperanden A und B den Wert NULL angenommen haben, da ja dasjenige „Minterm"-Gatter 66-72, welches am Ausgang DATA ausgibt, erst dann wieder auf NULL wechselt, wenn beide eingehenden Rails NULL werden bzw. beide Eingangsoperanden A und B den Wert N annehmen.
  • Die in 2a dargestellte Logikschaltung stellt folglich eine vollständige „Funktion", in diesem Fall eine UND-Funktion, zweier Eingangsoperanden A und B dar. Ein weiteres Beispiel einer solchen eine Logikfunktion implementierenden Logikschaltung ist in 3a gezeigt, die eine ODER-Funktion bezüglich zweier Eingangsoperanden A und B mit dem Ausgangsoperand Z implementiert. In 3a wurden dieselben Bezugszeichen wie in 2a, ergänzt um einen Apostroph, verwendet, und zu verdeutlichen, daß sich der Aufbau der Logikschaltung von 3a von derjenigen von 2a lediglich dadurch unterscheidet, daß jede 1-Rail in eine 0-Rail und jede 0-Rail in eine 1-Rail vertauscht wurde, wodurch, wie es für einen Fachmann ohne weiteres ersichtlich ist, aus der UND-Funktion der Schaltung von 2a eine ODER-Funktion realisiert wird.
  • Wie es aus den 2a und 3a zu erkennen ist, unterscheiden sich jeweils die Anzahl von Logikstufen innerhalb der Logikpfade des Logikbauelementes. Der Logikpfad 52 bzw. 52' um faßt zwei Logikstufen, während der andere Logikpfad 50 bzw. 50' lediglich eine Logikstufe aufweist. Aufgrund dieser Tatsache besitzen die Logikpfade dieser Logikbauelemente zueinander unterschiedliche Laufzeiten und Leistungsaufnahmen. Folglich unterscheidet sich je nach dem, welcher der Logikpfade, d.h. der der 1-Rail oder der 0-Rail des Ausgangsoperanden Z, auf den DATA- oder NULL-Wert wechselt, die für die Berechnung erforderliche Zeitdauer bzw. Leistungsaufnahme. Welcher der beiden Logikpfade umschaltet bzw. welchen Wert der Ausgangsoperand Z annimmt, hängt wiederum gemäß der Logikfunktion, d.h. UND bzw. ODER, von den Werten der Eingangsoperanden ab. Eine Schaltung, die aus den Logikbauelementen von 2a und 3a aufgebaut ist, benötigt folglich je nach Eingangsoperand bzw. Eingangsoperanden eine unterschiedliche Gesamtzeitdauer bzw. Gesamtleistungsaufnahme zur Berechnung des jeweiligen Ausgangsoperanden bzw. der Ausgangsoperanden, wobei sich die Unterschiede in den Laufzeiten und Leistungsaufnahmen, die die unterschiedlichen Eingangsoperanden in den Logikbauelemente bewirken, addieren und den Gesamtunterschied bezüglich der Leistungsaufnahme und Zeitdauer ergeben.
  • In dem Fall einer Schaltung, die aus den Logikgattern 2a und 3a aufgebaut ist und Teil eines kryptographischen Algorithmus implementiert, ist es für einen Angreifer folglich möglich, anhand von Messungen über die Gesamtleistungsaufnahme und der Gesamtrechenzeit Rückschlüsse auf geheime Informationen über die mittels des kryptographischen Algorithmus verarbeiteten Daten zu erhalten.
  • Gemäß einem speziellen Ausführungsbeispiel der vorliegenden Erfindung wird die Gefahr, daß solche Hardwareangriffe erfolgreich sind, dadurch reduziert, daß in den jeweils kürzeren Logikpfad eine Schaltung geschaltet wird, die eine Verzögerung bzw. zusätzliche Laufzeit und eine zusätzliche Leistungsaufnahme bewirkt, wie es in den 2b und 3b gezeigt ist. 2b stellt folglich ein NCL-Dual-Rail-UND-Gatter gemäß einem Ausführungsbeispiel der vorliegenden Erfindung dar, das allgemein mit 100 angezeigt ist, und das sich von demjenigen von 2a lediglich dadurch unterscheidet, daß in den Logikpfad 50 zwischen den Ausgang des Gatters 66 und den Ausgang der 1-Rail 62 zwei Inverter 102 und 104 in Reihe geschaltet sind. Diese Inverter 102 und 104 bewirken offenbar keine logische Funktion sondern lediglich eine Verlängerung der Laufzeit und Vergrößerung der Leistungsaufnahme des entsprechenden Logikpfades 50. Auf diese Weise wird die Laufzeit und die Leistungsaufnahme des Logikpfades 50 an die des Logikpfades 52 angeglichen, da die durch das Gatter 66 bewirkte Laufzeit und Leistungsaufnahme um die Laufzeiten und Leistungsaufnahmen der Inverter 102 und 104 ergänzt wird.
  • Dementsprechend zeigt 3b ein Ausführungsbeispiel eines NCL-Dual-Rail-ODER-Gatters gemäß der vorliegenden Erfindung, das sich von demjenigen von 3a lediglich dadurch unterscheidet, daß in den einstufigen Logikpfad 50' zwei in Reihe geschaltete Inverter 102' und 104'' geschaltet sind. Die Schaltungen von 2b und 3b unterscheiden sich wiederum lediglich durch die Umbenennung jeder 1-Rail in eine 0-Rail und umgekehrt.
  • Verglichen zu einer asynchronen Schaltung, die aus den Logikgattern gemäß 2a und 3a aufgebaut ist, erfährt eine asynchrone Schaltung, die basierend auf den Logikgattern von 2b und 3b aufgebaut ist, weniger Variation bezüglich der Laufzeit und benötigten Leistungsaufnahme bei sich ändernden Eingangsvariablen bzw. Operanden. In dem Fall, daß die auf diese Weise aufgebaute Schaltung einen kryptographischen Algorithmus oder eine Teiloperation desselben implementiert, kann ein Angreifer folglich nur geringe Variationen in den Laufzeiten und Leistungsaufnahmen wahrnehmen, wodurch die Gefahr eines erfolgreichen Angriffs wirksam reduziert ist. Im Idealfall, bei dem die Inverter 102 und 104 einen vollständigen Ausgleich zwischen den Laufzeiten und Leistungsaufnahmen der beiden Logikpfade bewirken, d.h. des einen Logikpfads für die eine Rail und des anderen Logikpfads für die andere Rail, und dies für alle Logikgatter, aus denen die asynchrone Kryptoschaltung aufgebaut ist, kann der Angreifer überhaupt keine Informationen mehr aus dem Gesamtleistungsstromverbrauch und der Gesamtberechnungsdauer herleiten, da durch die NCL-Logik zudem gewährleistet wird, daß jeder Operand unabhängig von seinem logischen Wert immer durch einen DATA-Wert und einen NULL-Wert, d.h. immer durch einen hohen und einen niedrigen Pegel, dargestellt wird.
  • Anders ausgedrückt liefern die Ausführungsbeispiele der 2b und 3b Beispiele dafür, wie die Anfälligkeit von asynchronen selbstgetakteten Schaltungen, welche nach der NCL-Methode synthetisiert wurden, insbesondere von Funktionen, die aufgrund der Dual-Rail-Beschaffenheit dieser Logik zu sogenannten „vollständigen Funktionen" erweitert werden, reduziert werden kann. Dies wurde bei diesen Ausführungsbeispielen durch Einfügen eines Buffers in den Pfad, welche die eigentliche „Funktion" mit einem einstufigen Schaltungsaufbau ausführt, realisiert, der das Signal in diesem Pfad so weit verzögert, daß vom Timing sowie auch von der Leistungsaufnahme her kein oder zumindest ein wesentlich geringerer Unterschied als ohne Buffer bezogen auf den Pfad existiert, welcher durch Zusammenführen der anderen „Minterme" mit einem zweistufigen Schaltungsaufbau gegeben ist. Durch Einfügen des Buffers ergibt sich folglich eine Angleichung/Homogenisierung des Zeitverhaltens der „vollständigen Funktion".
  • 10
    Logikschaltung
    11
    Eingang
    12
    Operandeneingang
    14
    Operandeneingang
    15
    Ausgang
    16
    Teilausgang
    18
    Teilausgang
    19
    Logikzweig
    20
    Logikanordnung
    21
    Logikzweig
    22
    Logikanordnung
    24
    Verzögerungs/Kompensationsschaltung
    26
    Verzögerungs/Kompensationsschaltung
    40
    UND-Logikgatter
    42
    Eingang
    44
    Dual-Rail-Eingang
    46
    Dual-Rail-Eingang
    48
    Dual-Rail-Ausgang
    54-64
    Rails
    66-74
    Schwellenwertgatter
    100
    Logikgatter
    102
    Inverter
    104
    Inverter
    300
    Logikschaltung
    302
    Operandeneingang
    304
    Operandeneingang
    306
    Teilausgang
    308
    Teilausgang
    310
    Logikanordnung
    312
    Logikanordnung

Claims (13)

  1. Logikschaltung mit folgenden Merkmalen: einem ersten Eingang (12; 94) für einen ersten Eingangsoperanden (A); einem zweiten Eingang (14; 46) für einen zweiten Eingangsoperanden (B); einem Ausgang (15; 48) mit einem ersten Teilausgang (16; 62) für ein Ergebnis (C; Z) und einem zweiten Teilausgang (18; 64) für ein invertiertes Ergebnis (C; Z), wobei das Ergebnis und das invertierte Ergebnis zusammen einen Ergebnisoperanden anzeigen; einem ersten Schaltungszweig (19; 50) mit einer ersten Logikanordnung (20; 66), der mit dem ersten und dem zweiten Eingang (12, 14; 44, 46) und dem ersten Teilausgang (16; 62) gekoppelt ist, um das Ergebnis (C; Z) zu berechnen; einem zweiten Schaltungszweig (21; 52) mit einer zweiten Logikanordnung (22; 68, 70, 72, 74), der mit dem ersten und dem zweiten Eingang (12, 14; 44, 46) und dem zweiten Teilausgang (18; 64) gekoppelt ist, um das invertierte Ergebnis (C; Z) zu berechnen, wobei die erste Logikanordnung (20; 66) und die zweite Logikanordnung (22; 68-74) unterschiedliche Laufzeiten zum Berechnen des Ergebnisses (C; Z) beziehungsweise des invertierten Ergebnisses (C; Z) aufweisen, und einer Verzögerungsschaltung (24; 102, 104) in dem ersten und/oder zweiten Schaltungszweig (19, 21; 50, 52), um eine Differenz der Laufzeiten des ersten und des zweiten Schaltungszweiges (19, 21; 50, 52) zu verringern.
  2. Logikschaltung mit folgenden Merkmalen: einem Eingang (11; 42) für einen oder mehrere Eingangsoperanden (A, B); einem Ausgang (15; 48) für ein Ergebnis (C; Z) oder ein invertiertes Ergebnis (C; Z); einem ersten Schaltungszweig (19; 50) mit einer ersten Logikanordnung (20; 66), der mit dem Eingang (11; 42) und dem Ausgang (15; 48) gekoppelt ist, um das Ergebnis (C; Z) zu berechnen; einem zweiten Schaltungszweig (21; 52) mit einer zweiten Logikanordnung (22; 68, 70, 72, 74), der mit dem Eingang (11; 42) und dem Ausgang (15; 48) gekoppelt ist, um das invertierte Ergebnis (C; Z) zu berechnen, wobei die erste Logikanordnung (20; 66) und die zweite Logikanordnung (22; 68-74) unterschiedliche Leistungsaufnahmen zum Berechnen des Ergebnisses (C; Z) beziehungsweise des invertierten Ergebnisses (C; Z) aufweisen, und einer Kompensationsschaltung (24; 102, 104) in dem ersten und/oder zweiten Schaltungszweig (19, 21; 50, 52), um eine Differenz der Leistungsaufnahme des ersten und des zweiten Schaltungszweiges (19, 21; 50, 52) zu verringern.
  3. Logikschaltung gemäß Anspruch 1, bei der die Verzögerungsschaltung (102, 104) zwei in Reihe geschaltete Inverter (102, 104) in einem der Schaltungszweige (50, 52) umfaßt.
  4. Logikschaltung gemäß Anspruch 2, bei der die Kompensationsschaltung (102, 104) zwei in Reihe geschaltete Inverter (102, 104) in einem der Schaltungszweige (50, 52) umfaßt.
  5. Logikschaltung gemäß einem der Ansprüche 1 bis 4, bei der das Ergebnis (Z) und das invertierte Ergebnis (Z) zusammen einen Ergebnisoperanden (Z) anzeigen, wobei jeder Operand (A, B, Z) einen von zwei logischen Werten (T, F) und einen zusätzlichen Wert (N) annehmen kann, und wobei die erste (66) und die zweite Logikanordnung (68, 70, 72, 74) derart angepaßt sind, daß sie zusammenwirken, um in dem Fall, daß alle Eingangsoperanden (A, B) einen logischen Wert (T, F) aufweisen, einen Ergebnisoperanden (Z) mit einem logischen Wert (T, F) zu berechnen, und in dem Fall, daß alle Eingangsoperanden (A, B) den zusätzlichen Wert (N) aufweisen, einen Ergebnisoperanden (Z) mit dem zusätzlichen Wert (N) zu berechnen.
  6. Logikschaltung gemäß einem der Ansprüche 1 bis 5, bei der der Ausgang (15; 48) zwei Teilausgänge (16, 18; 62, 64) aufweist, einen ersten (16; 62) für das Ergebnis (C; Z) und einen zweiten für das invertierte Ergebnis (C; Z), wobei der erste Schaltungszweig (19; 50) mit dem ersten Teilausgang (16; 62) und der zweite Schaltungszweig (21, 52) mit dem zweiten Teilausgang (18; 64) verbunden ist.
  7. Logikschaltung gemäß Anspruch 6, bei der die erste (66) und die zweite Logikanordnung (68-74) derart angepaßt sind, daß, wenn alle Eingangsoperanden (A, B) einen logischen Wert (T, F) aufweisen, das Ergebnis (Z) und das invertierte Ergebnis (Z) an den Teilausgängen (62, 64) durch binäre Zustände angezeigt werden, die unterschiedliche Zustandswerte eines ersten und zweiten Zustandswertes (DATA, NULL) aufweisen, und, wenn alle Eingangsoperanden (A, B) den zusätzlichen Wert (N) aufweisen, das Ergebnis (Z) und das invertierte Ergebnis (Z) an den Teilausgängen (62, 64) durch binäre Zustände angezeigt werden, die einen vorbestimmten Zustandswert (NULL) des ersten und des zweiten Zustandswertes (DATA, NULL) aufweisen.
  8. Logikschaltung gemäß einem der Ansprüche 5 bis 7, bei der die erste und die zweite Logikanordnung (66-74) derart angepaßt sind, daß der Ergebnisoperand (Z) erst von dem berechneten logischen Wert (T, N) zu dem zusätzlichen Wert (N) wechselt, wenn alle Eingangsoperanden (A, B) den zusätzlichen Wert (N) annehmen.
  9. Logikschaltung gemäß einem der Ansprüche 1 bis 8, bei der die erste und die zweite Logikanordnung (66-74) aus diskreten Schwellenwertgattern (66-74) aufgebaut sind, die eine Mehrzahl von Eingängen zum Empfangen binärer Zustände und einen Ausgang zum Ausgeben eines binären Zustands aufweisen, und angepaßt sind, um den binären Zustand am Ausgang des diskreten Schwellenwertgatters (66-74) auf einen zweiten Zustandswert (DATA) einzustellen, wenn mehr als ein diskreter Schwellenwert an binären Zuständen an den Eingängen des diskreten Schwellenwertgatters (66-74) den zweiten Zustandswert (DATA) aufweisen, und andernfalls auf einen ersten Zustandswert (NULL).
  10. Logikschaltung gemäß Anspruch 9, bei der die diskreten Schwellenwertgatter (66-74) angepaßt sind, um den binären Zustand am Ausgang des diskreten Schwellenwertgatters (66-74) von dem ersten Zustandswert (NULL) auf den zweiten Zustandswert einzustellen, wenn mehr als ein diskreter Schwellenwert an binären Zuständen an den Eingängen des diskreten Schwellenwertgatters (66-74) den zweiten Zustandswert (DATA) aufweisen, und um den binären Zustand am Ausgang von dem zweiten Zustandswert (DATA) auf den ersten Zustandswert (NULL) einzustellen, wenn alle binären Zustände an den Eingängen des diskreten Schwellenwertgatters (66-74) den ersten Zustandswert (NULL) aufweisen, und um den binären Zustand ansonsten unverändert zu belassen.
  11. Logikschaltung gemäß einem der Ansprüche 1 bis 10, wobei die Logikschaltung selbstgetaktet arbeitet.
  12. Logikschaltung gemäß einem der Ansprüche 1 bis 11, bei der der Eingang (42) einen Operandeneingang (44, 46) für jeden Eingangsoperanden (A, B) aufweist, von denen jeder mit dem ersten und dem zweiten Schaltungszweig (50, 52) gekoppelt ist, und wobei jeder Operandeneingang (44, 46) zwei Teileingänge (54, 56, 58, 60) zum Empfangen zweier binärer Zustände mit entweder dem ersten Zustandswert (NULL) oder dem zweiten Zustandswert (DATA) aufweist, die in Kombination einen Wert (T, F, N) des jeweiligen Eingangsoperanden (A, B) anzeigen, und wobei jeder Schaltungszweig (50, 52) mit zumindest einem Teileingang jedes Operandeneingangs (44, 46) verbunden ist.
  13. Logikschaltung gemäß Anspruch 12, bei der jeder Eingangsoperand (A, B) einen ersten logischen Wert (T) aufweist, wenn der binäre Zustand an einem ersten (54, 56) der zwei Teileingänge des entsprechenden Operandeneingangs (44, 46) einen Zustandswert (DATA) aufweist und der andere Teileingang (58, 60) den anderen Zustandswert (NULL), und einen zweiten logischen Wert (F) aufweist, wenn der binäre Zustand an dem ersten Teileingang (54, 56) den anderen Zustandswert (DATA) und der binäre Zustand an dem zweiten Teileingang (58, 60) den einen Zustandswert (DATA) aufweist, und einen zusätzlichen Wert (N) aufweist, wenn die binären Zustände an den beiden Teileingängen einen vorbestimmten (NULL) der Zustandswerte aufweisen.
DE10227618A 2002-06-20 2002-06-20 Logikschaltung Expired - Fee Related DE10227618B4 (de)

Priority Applications (5)

Application Number Priority Date Filing Date Title
DE10227618A DE10227618B4 (de) 2002-06-20 2002-06-20 Logikschaltung
PCT/EP2003/006260 WO2004001971A1 (de) 2002-06-20 2003-06-13 Logikschaltung
TW092116204A TW200402190A (en) 2002-06-20 2003-06-13 Logic circuit
AU2003238502A AU2003238502A1 (en) 2002-06-20 2003-06-13 Logic circuit
US11/018,404 US7132858B2 (en) 2002-06-20 2004-12-20 Logic circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10227618A DE10227618B4 (de) 2002-06-20 2002-06-20 Logikschaltung

Publications (2)

Publication Number Publication Date
DE10227618A1 DE10227618A1 (de) 2004-01-15
DE10227618B4 true DE10227618B4 (de) 2007-02-01

Family

ID=29723325

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10227618A Expired - Fee Related DE10227618B4 (de) 2002-06-20 2002-06-20 Logikschaltung

Country Status (5)

Country Link
US (1) US7132858B2 (de)
AU (1) AU2003238502A1 (de)
DE (1) DE10227618B4 (de)
TW (1) TW200402190A (de)
WO (1) WO2004001971A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3819872B2 (ja) * 2003-05-23 2006-09-13 株式会社東芝 論理演算装置
WO2005073825A2 (en) * 2004-01-27 2005-08-11 Koninklijke Philips Electronics N.V. Protection against power analysis attacks
US7610628B2 (en) * 2005-03-01 2009-10-27 Infineon Technologies Ag Apparatus and method for calculating a representation of a result operand
US8579176B2 (en) 2005-07-26 2013-11-12 Ethicon Endo-Surgery, Inc. Surgical stapling and cutting device and method for using the device
JP5631124B2 (ja) * 2010-08-31 2014-11-26 ユニ・チャーム株式会社 失禁用ライナー
GB2487901B (en) * 2011-02-03 2019-12-04 Advanced Risc Mach Ltd Power signature obfuscation
US8958550B2 (en) * 2011-09-13 2015-02-17 Combined Conditional Access Development & Support. LLC (CCAD) Encryption operation with real data rounds, dummy data rounds, and delay periods

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0172229B1 (de) * 1984-02-15 1989-05-17 AT&T Corp. Hochgeschwindigkeits-cmos-schaltungen
EP0957582A1 (de) * 1998-05-13 1999-11-17 Siemens Aktiengesellschaft Schaltungsanordnung zur Erzeugung komplementärer Signale
WO2000026746A2 (en) * 1998-11-03 2000-05-11 Koninklijke Philips Electronics N.V. Data carrier with obscured power consumption
DE19922354A1 (de) * 1998-05-14 2000-05-25 Nat Semiconductor Corp LVDS-Treiber für Backplane-Anwendungen
US6313662B1 (en) * 1998-07-10 2001-11-06 Fujitsu Limited High speed low voltage differential signal driver having reduced pulse width distortion

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5997230A (ja) * 1982-11-26 1984-06-05 Matsushita Electronics Corp 半導体集積回路
US4570084A (en) * 1983-11-21 1986-02-11 International Business Machines Corporation Clocked differential cascode voltage switch logic systems
GB9007786D0 (en) * 1990-04-06 1990-06-06 Gillingham Peter B Transition detection circuit
AU670241B2 (en) * 1991-05-17 1996-07-11 Theseus Logic, Inc. Null convention speed independent logic
JP3394111B2 (ja) * 1995-05-25 2003-04-07 株式会社 沖マイクロデザイン 半導体記憶装置のデータ入力回路
US5852378A (en) * 1997-02-11 1998-12-22 Micron Technology, Inc. Low-skew differential signal converter
IT1292392B1 (it) * 1997-06-20 1999-02-08 Sgs Thomson Microelectronics Metodo per realizzare alberi di temporizzazione in circuiti elettronici digitali sincroni e relativo stadio tampone buffer
AU6238499A (en) * 1998-06-03 2000-01-10 Cryptography Research, Inc. Balanced cryptographic computational method and apparatus for leak minimization in smartcards and other cryptosystems
ES2204603T3 (es) * 1999-05-12 2004-05-01 Infineon Technologies Ag Disposicion de circuito para la generacion de impulsos de corriente en la corriente de alimentacion de circuitos integrados.
CA2298990A1 (en) * 2000-02-18 2001-08-18 Cloakware Corporation Method and system for resistance to power analysis
US6384658B1 (en) * 2000-09-29 2002-05-07 Intel Corporation Clock splitter circuit to generate synchronized clock and inverted clock

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0172229B1 (de) * 1984-02-15 1989-05-17 AT&T Corp. Hochgeschwindigkeits-cmos-schaltungen
EP0957582A1 (de) * 1998-05-13 1999-11-17 Siemens Aktiengesellschaft Schaltungsanordnung zur Erzeugung komplementärer Signale
DE19922354A1 (de) * 1998-05-14 2000-05-25 Nat Semiconductor Corp LVDS-Treiber für Backplane-Anwendungen
US6313662B1 (en) * 1998-07-10 2001-11-06 Fujitsu Limited High speed low voltage differential signal driver having reduced pulse width distortion
WO2000026746A2 (en) * 1998-11-03 2000-05-11 Koninklijke Philips Electronics N.V. Data carrier with obscured power consumption

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
FANT, K.M. und BRANDT, S.A.: NULL Convention Logic, Theseus Logic, 1997, S. 1-35 *
SOBELMAN, G.E. und FANT, K.M.: CMOS circuit design of threshold gates with hysteresis, Theseus Logic, S. 1-5 *

Also Published As

Publication number Publication date
US7132858B2 (en) 2006-11-07
US20050134319A1 (en) 2005-06-23
AU2003238502A1 (en) 2004-01-06
DE10227618A1 (de) 2004-01-15
TW200402190A (en) 2004-02-01
WO2004001971A1 (de) 2003-12-31

Similar Documents

Publication Publication Date Title
EP1410151B1 (de) Prozessor mit mehreren rechenwerken
DE4115081A1 (de) Logikschaltung fuer asynchrone schaltungen mit n-kanal-logikblock und dazu inversem p-kanal-logikblock
DE10227618B4 (de) Logikschaltung
DE60113721T2 (de) Logischer schaltkreis mit variablen internen polaritäten
EP0231434B1 (de) In integrierter Technik hergestellter Baustein zur Erstellung integrierter Schaltungen
DE10344647B3 (de) Schaltungsanordnung und Verfahren zur Verarbeitung eines Dual-Rail-Signals
DE102012111414B4 (de) Master-Slave-Speicherschaltung
EP0257362A1 (de) Addierer
EP1540460A2 (de) Vorrichtung und verfahren zum umsetzen und addiererschaltung
DE1187403B (de) Verfahren und Einrichtung zur logischen Verknuepfung zweier Operanden
DE2900587C3 (de) Decodierschaltung
EP1495542B1 (de) Schaltungsanordnung und verfahren zur erzeugung eines dual-rail-signals
DE102004009144B4 (de) Logikzelle und Verfahren zum Durchführen einer Dual-Rail-Logikoperation und Speichermedium
DE10202725B4 (de) Integrierte Schaltung und Schaltungsanordnung zur Umwandlung eines Single-Rail-Signals in ein Dual-Rail-Signal
DE102005037355B3 (de) Schaltung und Verfahren zum Berechnen einer logischen Verknüpfung zweier Eingangsoperanden
EP1468491B1 (de) Integrierte schaltung und verfahren zum betrieb der integrierten schaltung
DE102004020576A1 (de) Datenverarbeitungsvorrichtung mit schaltbarer Ladungsneutralität und Verfahren zum Betreiben einer Dual-Rail-Schaltungskomponente
DE102007024983A1 (de) Elektrischer Schaltkreis mit Doppel-Modul-Redundanz zur Handhabung von Single-Event-Effekten
DE102015116049B3 (de) Nulldetektionsschaltkreis und maskierter boolescher oder-schaltkreis
DE102004013484B3 (de) Rechenwerk
EP1459476B1 (de) Datenverarbeitungsvorrichtung zum Wechsel eines Schlüssels in unregelmässigen zeitlichen Abständen
DE10320883B3 (de) Schaltungsanordnung zur Verarbeitung eines Dual-Rail-Signals und Verfahren zur Verarbeitung eines Dual-Rail-Signals
EP1068668B1 (de) Schaltungsanordnung zum verarbeiten von datensignalen
DE102013225039B4 (de) Schaltungsanordnung mit Detektion oder Behandlung von transienten Fehlern in einem kombinatorischen Schaltungsteil
DE1524171A1 (de) Binaeres Paralleladdierwerk

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee