DE102005011374B3 - Sicheres und schnelles Rechenwerk für Addiereschaltungen von Kryptographieprozessoren - Google Patents

Sicheres und schnelles Rechenwerk für Addiereschaltungen von Kryptographieprozessoren Download PDF

Info

Publication number
DE102005011374B3
DE102005011374B3 DE102005011374A DE102005011374A DE102005011374B3 DE 102005011374 B3 DE102005011374 B3 DE 102005011374B3 DE 102005011374 A DE102005011374 A DE 102005011374A DE 102005011374 A DE102005011374 A DE 102005011374A DE 102005011374 B3 DE102005011374 B3 DE 102005011374B3
Authority
DE
Germany
Prior art keywords
output
potential
stage
bit
input
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
DE102005011374A
Other languages
English (en)
Inventor
Norbert Janssen
Tanja Römer
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 DE102005011374A priority Critical patent/DE102005011374B3/de
Priority to FR0602010A priority patent/FR2885428B1/fr
Priority to KR1020060022760A priority patent/KR100771272B1/ko
Priority to US11/373,829 priority patent/US7282983B2/en
Priority to JP2006067687A priority patent/JP2006302260A/ja
Application granted granted Critical
Publication of DE102005011374B3 publication Critical patent/DE102005011374B3/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • G06F7/501Half or full adders, i.e. basic adder cells for one denomination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/386Special constructional features
    • G06F2207/3872Precharge of output to prevent leakage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7266Hardware adaptation, e.g. dual rail logic; calculate add and double simultaneously

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • Logic Circuits (AREA)

Abstract

Das Rechenwerk umfasst eine Dual-Rail-Eingangsstufe (10), eine Schaltstufe (12A) für ein zu berechnendes Bit und eine Ausgangsstufe (14A) für ein Ausgabebit, wobei die Ausgangsstufe eine Dual-Rail-Ausgabe (22A, 22B) liefert. Die Schaltstufe ist nicht in Dual-Rail-Technik ausgebildet, sondern gemäß einer "One-Hot"-Realisierung. Die Schaltstufe (12A) umfasst wenigstens einen internen Knoten, der im Vorbereitungsmodus gemäß einem Steuersignal auf einer Steuerleitung (28E) von einer Steuereinrichtung (28) mit einem Bezugspotential verbunden wird, während die Knotenpotentialschaltung zum Behandeln des internen Knotens im Datenmodus nicht aktiv ist. Damit wird ein flächeneffizientes, querstromarmes und betriebssicheres Rechenwerk erhalten, das zudem schnell getaktet werden kann, da ein Übergang von einem Vorbereitungsmodus auf einen Datenmodus ohne zeitaufwändige Entladungsvorgänge erfolgt.

Description

  • Die vorliegende Erfindung bezieht sich auf Rechenwerke und insbesondere auf sichere und schnelle Rechenwerke, wie sie in Kryptographie-Prozessoren und insbesondere in Addiererschaltungen für Kryptographieprozessoren einsetzbar sind.
  • Die DE 3631992 C2 offenbart einen Kryptographieprozessor zum Durchführen des RSA-Public-Key-Kryptosystems. Hierbei wird eine modulare Exponentiation mit einer Basis, einem Exponenten und einem Modul in eine Vielzahl von Drei-Operanden-Additionen zerlegt. Die drei Operanden umfassen einen Moduloperanden N, einen Multiplikanden-Operanden C und einen Zwischenergebnis-Operanden Z. Durch entsprechende Verschiebung/Gewichtung der drei Operanden vor der Addition kann eine durch einen Multiplikations-Look-Ahead-Algorithmus und einen Reduktions-Look-Ahead-Algorithmus beschleunigte Multiplikation/Reduktion durchgeführt werden.
  • 7 zeigt einen Ausschnitt aus dem Addierwerk, das gewissermaßen das Herz des Kryptographieprozessors darstellt, der in der DE 3631992 C2 dargestellt ist. Im einzelnen zeigt 7 zwei aufeinanderfolgende Bit-Slices, um die zwei Summenbits i-1 und i zu berechnen, und zwar aus den drei Eingangsoperandenbits Ci, Ni, Zi bzw. Ci-1, Ni-1, Zi-1 bzw. aus Ci-2, Ni-2 und Zi-2.
  • Die Drei-Operanden-Addition von C, N, Z wird, auf Bitebene betrachtet, in eine zweistufige Operation zerlegt. Zur Ausführung der ersten Stufe der Operation ist ein Drei-Bit-Halbaddierer 80 vorgesehen, wobei jedem Drei-Bit-Halbaddierer 80 ein Zwei-Bit-Volladdierer 81 nachgeschaltet ist. Der Drei-Bit-Halbaddierer liefert zwei Ausgangsbits xi, yi, wobei die Ausgangsbits xi, yi in die nachgeschalteten Zwei-Bit-Volladdierer so eingespeist werden, wie es in 7 darge stellt ist. Im einzelnen wird in jedem Zwei-Bit-Volladdierer eines Bit-Slices das niederwertige Bit yi am Ausgang des Drei-Bit-Halbaddierers mit dem hochwertigen Bit der um eine Ordnung niedrigeren Drei-Bit-Halbaddiererstufe (xi-1) in dem Zwei-Bit-Volladdierer 81 kombiniert, um ein Summenbit 82 sowie ein Übertragbit 83 zu berechnen. Die Drei-Operanden-Addition wird also in zwei Abschnitte unterteilt. Im ersten Abschnitt wird an jeder binären Stelle eine Summe der drei Bits der Operanden gebildet. Die Summe kann die Werte von 0 bis 3 (in Dezimaldarstellung) annehmen. Die Summe ist also binär mit den zwei Bits x, y darstellbar. Da die Summe an jeder Stelle gebildet wird, können aus den zwei Summenbits zwei neue Zahlen zusammengestellt werden.
  • Im zweiten Abschnitt werden die beiden Zahlen auf übliche Art und Weise durch den Zwei-Bit-Volladdierer 81 addiert. Die Verschaltung, derart, dass ein Zwei-Bit-Volladdierer immer zwei Ausgangsbits von zwei unterschiedlichen Drei-Bit-Halbaddierern als Eingabe erhält, führt zu einer Verlängerung des Rechenwerks um ein Bit.
  • Der in 7 gezeigte Drei-Operanden-Addierer ist dahingehend problematisch, dass weder eine Sicherung der Eingangsoperanden C, N, Z noch eine Sicherung der "Zwischenoperanden" x, y vorgesehen ist. Dies ist dahingehend problematisch, dass besonders in dem normalen Fall, in dem alle Schaltungen in CMOS-Logik ausgeführt sind, das Umschalten eines Bits von 0 auf 1 bzw. von 1 auf 0 zu einem Stromimpuls führt, der beginnt, wenn ein Bit-Zustand umgeschaltet wird. Bekanntlich verbrauchen CMOS-Schaltungen im statischen Zustand keinen Strom. Im Umschaltzustand haben sie jedoch einen Stromverbrauch. Dieser Stromverbrauch ist durch eine Leistungsanalyse eruierbar. Damit ist es grundsätzlich möglich, Informationen über C, N, Z abzuleiten, um beispielsweise auf den geheimen Schlüssel Rückschlüsse zu ziehen, der in einer RSA-Operation verwendet wird.
  • Ein Angreifer könnte beispielsweise durch Aufnahme des Stromprofils ermitteln, ob eine Umschaltung von 0 auf 1 oder von 1 auf 0 stattgefunden hat. Bei einer ungesicherten Schaltung würde immer dann eine Umschaltung eines Bits auftreten, wenn im Stromprofil eine Stromspitze erkennbar ist. Ein Angreifer kann daher das gesamte Umschaltverhalten eines Rechenwerks anhand des Stromprofils nachvollziehen. Der Angreifer bräuchte dann lediglich noch ein einziges Bit in einer ganzen Sequenz, um daraus rekonstruieren zu können, ob die Umschaltung von einer "1" auf eine "0" oder umgekehrt stattgefunden hat.
  • Bestimmte CMOS-Schaltungen haben ferner die Eigenschaft, dass die Umschaltung von 0 auf 1 einen anderen Stromverbrauch mit sich zieht als die Umschaltung von 1 auf 0. In diesem Fall sieht ein Angreifer durch einen Vergleich von zwei unterschiedlichen Stromspitzen unmittelbar, welche Bits im Rechenwerk verarbeitet worden sind.
  • Als Abwehrmaßnahme gegen solche Leistungsanalyseangriffe wurde vorgeschlagen, eine sogenannte Dual-Rail-Technik einzusetzen. Bei der Dual-Rail-Technik wird prinzipiell betrachtet jeder Signalweg doppelt ausgeführt. Auf dem ersten Signalweg wird beispielsweise ein Signal x normal verarbeitet. Auf dem zweiten, in demselben Chip integrierten, Signalweg wird nicht das Signal x verarbeitet, sondern das komplementäre Signal x. Dies führt dazu, dass immer dann, wenn in der Signalleitung ein Übergang von beispielsweise 0 auf 1 stattfindet, in der anderen Leitung, also der zweiten "Rail", ein komplementärer Übergang stattfindet. Für jeden Bitübergang finden daher auf beiden Leitungen immer beide Übergänge statt. Dies führt dazu, dass für Schaltungen, bei denen Übergänge von 0 auf 1 und 1 auf 0 unterschiedlich viel Strom brauchen, nicht mehr eruierbar ist, ob ein Übergang von 0 auf 1 oder von 1 auf 0 stattgefunden hat. Dies liegt daran, dass das Stromprofil für jeden Schaltungsübergang eine Spitze enthält, die die Überlagerung des Stromverbrauchs der beiden Rails ist. Die Dual-Rail-Technik liefert eine hohe Sicherheit, jedoch mit dem Nachteil, dass alle Schaltungen normalerweise doppelt ausgeführt werden müssen und dass der Leistungsverbrauch der gesamten Schaltung ebenfalls doppelt so hoch ist. Dafür ist die Schaltung jedoch bereits in gewissem Umfang gegenüber Leistungsanalyseattacken immun.
  • Wird lediglich eine Dual-Rail-Technik eingesetzt, so ist anhand des Stromprofils immer noch zu erkennen, ob ein bestimmtes Bit von 0 auf 1 bzw. von 1 auf 0 übergegangen ist oder im Vergleich zum vorigen Taktzyklus gleichgeblieben ist. Im Falle eines Bitübergangs ist nämlich eine Leistungsspitze ersichtlich. Die Leistungsspitze ist jedoch nicht ersichtlich, wenn ein Bit von einem Zyklus zum nächsten beispielsweise auf 1 oder auf 0 geblieben ist, sich also nicht verändert hat. Zur Abwehr von Angriffen, die auf diesem Effekt basieren, wurde vorgeschlagen, die Dual-Rail-Technik um einen Precharge/Predischarge-Modus zu ergänzen. Die Schaltung wird abwechselnd in einem Datenmodus und einem Vorbereitungsmodus (Precharge/Predischarge) betrieben. Jedem Datenzyklus geht ein Vorbereitungszyklus voraus, in dem im Falle von Precharge beide Rails, also beispielsweise x und x auf "1" vorgeladen werden, um dann, in dem Datenmodus, zu verarbeitende komplementäre Eingangssignale in die beiden Rails zu speisen. Dies führt dazu, dass immer, von einem Datenzyklus zu einem Vorbereitungszyklus oder von einem Vorbereitungszyklus zu einem Datenzyklus, genau die gleiche Anzahl von Obergängen stattfindet. Ist der Vorbereitungsmodus als Predischarge-Modus ausgeführt, so werden im Vorbereitungsmodus alle Eingangsdaten nicht, wie im Precharge, auf 1 initialisiert, sondern auf 0 "vorentladen". Dann findet ebenfalls von einem Vorbereitungszyklus zu einem Datenzyklus und umgekehrt genau dieselbe Anzahl von Übergängen statt.
  • Wie es bereits ausgeführt worden ist, wird für die Ausführung von modularen Operationen, wie z. B. Addition oder Multiplikation, beispielsweise im Rahmen kryptographischer Algorithmen, wie RSA oder elliptische Kurven, ein Drei-Operanden- Addierer benötigt. Diese Operationen müssen aus den verschiedenen Gründen vom Addierwerk sicher gegenüber Power-Attacken ausgeführt werden. Da kryptographische Berechnungen äußerst rechenaufwendig sind, muss das Addierwerk eine hohe Leistung haben. Da insbesondere in der Kryptographie lange Operanden verarbeitet werden müssen, wobei die Operandenlänge bei elliptischen Kurven im Bereich zwischen 100 und 200 Bits liegt und im Bereich von RSA zwischen 1.024 und 2.048 Bits liegt, hat das Rechenwerk selbst eine große Bitlänge, um die an das Rechenwerk gestellten Anforderungen nach Schnelligkeit zu erreichen.
  • Um das in 7 gezeigte Rechenwerk, das ausschnittweise zwei Bit-Slices eines größeren Rechenwerks mit beispielsweise 2300 Bit-Slices zeigt, gegenüber kryptographischen Attacken sicherer zu machen, ist es zunächst erforderlich, die Eingangsoperanden C, N, Z in Dual-Rail-Technik den 3-Bit-Halbaddierern 80 zuzuführen.
  • Eine noch bessere Sicherheit besteht darin, nicht nur eine Dual-Rail-Technik anzuwenden, sondern eine Dual-Rail-Technik mit Precharge bzw. Pre-Discharge zu verwenden. Hierbei wechselt immer ein Datentakt mit einem sogenannten Vorbereitungstakt ab. In einem Datentakt ist beispielsweise das Bit Ci gleich 0 oder 1, während das komplementäre Bit, das auf der "zweiten Rail" zugeführt wird, und mit C i bezeichnet wird, komplementär zu dem Bit Ci ist. In einem dem Datentakt nachgeordneten Vorbereitungstakt wird im Falle eines Precharge als Vorbereitungsmodus eine Aufladung beider Leitungen auf z. B. Vdd durchgeführt, was beispielsweise dem logischen Zustand "1" entsprechen könnte. Beide Dual-Rail-Leitungen haben im Vorbereitungsmodus somit den gleichen Wert. Im Falle eines Discharge könnten beide Leitungen Ci und C i auf das Potential Vss gebracht werden, das typischerweise das Erdungspotential ist, wobei das Erdungspotential bei dem vorliegenden Beispiel einer logischen "0" entspricht. Selbstverständlich kann Vss auch einer logischen "1" entsprechen. Dann würde Vdd einer logischen "0" entsprechen.
  • Konsequenterweise müssten dann die Bits xi und yi bzw. xi-1 und yi-1 ebenfalls in Dual-Rail-Technik mit Precharge zu den entsprechenden nachgeschalteten 2-Bit-Volladdierern 81 zugeführt werden, wobei wieder immer ein Datentakt einem Vorbereitungstakt folgt. Ausgangsseitig würden dann die Übertragbits C 83 und die Summenbits 82 ebenfalls in Dual-Rail-Technik mit Precharge/Pre-Discharge aus dem 2-Bit-Volladdierer herausgeführt werden.
  • So genügt es jedoch für eine optimale Sicherheit nicht nur, dass die Eingangsleitungen in die Elemente 80 und 81 und die Ausgangsleitungen aus den Elementen 80 und 81 in Dual-Rail-Technik ausgeführt sind. Statt dessen ist es ferner wichtig, dass auch die Schaltungen 80, 81 selbst als Dual-Rail-Schaltungen ausgeführt sind. Dies kann dadurch erreicht werden, dass der 3-Bit-Halbaddierer 80 und jeder 2-Bit-Volladdierer 81 doppelt vorhanden ist und so ausgebildet ist, dass der erste 3-Bit-Halbaddierer 80 beispielsweise mit den nicht-invertierten Operandenbits Ci, Ni und Zi rechnet, um xi und yi zu erhalten. Der zweite 3-Bit-Halbaddierer 80 für denselben Bit-Slice würde dann mit den invertierten Bits C i, N i und Z i arbeiten, um z. B. die invertierten Ausgangsbits x i und y i zu erhalten. Selbstverständlich sind jegliche Kreuzkombinationen denkbar, so dass der erste 3-Bit-Halbaddierer so ausgebildet ist, um aus den nicht-invertierten Eingangsbits die invertierten Ausgangsbits zu berechnen und umgekehrt.
  • Dasselbe müsste für den 2-Bit-Volladdierer 81 durchgeführt werden, um eine optimal sichere Schaltung in einem Bit-Slice eines Langzahlrechenwerks für eine RSA-Berechnung mit Modullängen von 1024 Bits, 2048 Bits etc. zu erreichen. Solche Rechenwerke werden zur Ausführung von modularen Operationen, wie z. B. Addition und Multiplikation, beispielsweise im Rah men kryptographischer Algorithmen wie RSA oder elliptische Kurven benötigt. Eine 3-Operanden-Addition, die der 3-Operanden-Addierer, der in 7 ausschnittweise gezeigt ist, ausführt, besteht darin, einen ersten Summand C zu einem zweiten Summand Z hinzu zu addieren, und schließlich den Modul N je nach Look-Ahead-Vorschrift zu addieren oder zu subtrahieren. Diese Operationen müssen, wie es ausgeführt worden ist, vom Addierwerk sicher gegenüber Power-Attacken ausgeführt werden.
  • Es ist unmittelbar einsichtig, dass kryptographische Berechnungen äußerst rechenaufwendig sind. Daher besteht neben der Sicherheit auch die Anforderung an das Rechenwerk, dass es eine hohe Leistung hat, dahingehend, dass es möglichst wenig Rechenzeit benötigt bzw. im Falle von begrenzten Ressourcen, wie beispielsweise auf einer Chipkarte, noch mit einer erträglichen Rechenzeit hochsichere Operationen ausführen kann.
  • Da die Arithmetik kryptographischer Operationen eine Langzahlarithmetik ist, hat, wie es ausgeführt worden ist, das Rechenwerk selbst eine große Bitlänge, um überhaupt eine geforderte Leistung zu erreichen. So wird davon ausgegangen, dass jeder Bit-Slice einer Stelle eines Moduls entspricht, dahingehend, dass alle Stellen in entsprechende Hardware-Bit-Slices "abgebildet" sind. Lediglich diese maximal parallele Ausführung garantiert in den meisten Fällen eine ausreichende Performance.
  • Im Hinblick auf die geforderte maximale Parallelität und andererseits im Hinblick auf die Kosten für den Chip, der ein solches Rechenwerk umfasst, und auch im Hinblick auf andere an die Chipfläche angelegten Begrenzungen ist es zwingend notwendig, das Rechenwerk sehr flächensparend zu entwerfen. Es wird also prinzipiell ein Rechenwerk benötigt, das eine hohe Leistung hat, das außerdem sicher ist, und das eine minimale Fläche benötigt.
  • Das deutsche Patent DE 10307942 B3 offenbart einen Halbaddierer zum Addieren von Bits von wenigstens zwei Eingangsoperanden, um wenigstens zwei Ausgabebits zu erhalten. Der Halbaddierer umfasst neben einer Eingangsstufe eine Mehrzahl von Schaltstufen, und jeder Schaltstufe nachgeordnet eine Ausgangsstufe. In einem Datenmodus sind die Schaltstufen betreibbar, um entweder ein Bit oder ein invertiertes Bit an einem Ausgang zu der Ausgangsstufe zu liefern, die einer entsprechenden Schaltstufe nachgeordnet ist. Die Ausgangsstufe ändert dann auf der Basis des von der entsprechenden Schaltstufe erhaltenen Bits ein Ausgabebit gegenüber einem vorausgehenden Vorbereitungsmodus und ergänzt das komplementäre Bit aus dem vorausgehenden Vorbereitungsmodus. Diese Halbaddiererschaltung ist bereits flächeneffizient, da sie ohne eine komplette Dual-Rail-Logik auskommt und dennoch sicher gegenüber kryptographischen Attacken ist. Insbesondere sind die Eingangsstufe und die Ausgangsstufen in kompletter Dual-Rail-Schaltungstechnik mit Precharge oder Pre-Discharge ausgebildet, während die Schaltstufen für die einzelnen Bits derart ausgebildet sind, dass sie gemäß einer Halbaddierervorschrift für das Ausgabebit abhängig von den Bits der Eingangsoperanden ein Rechenpotential an den Ausgang der Schaltstufe durchschalten, wobei das Rechenpotential an dem Ausgang das Ausgabebit oder eine invertierte Version des Ausgabebits darstellt. Diese Schaltstufe ist nicht in Dual-Rail-Technik ausgebildet, sondern arbeitet gemäß einer „One-Hot"-Realisierung.
  • Obgleich diese Schaltung bereits flächeneffizient ist, da die Schaltstufen nicht in kompletter Dual-Rail-Logik implementiert ist, und obgleich diese Schaltung dahingehend energieeffizient ist, dass die Schaltstufe jeweils nur entweder das invertierte Bit oder das Bit selbst berechnet, also keinen Stromverbrauch für beide Bits hat, hat sich dennoch herausgestellt, dass es Probleme beim Übergang von einem Vorbereitungsmodus auf einen Datenmodus geben kann.
  • So schaltet die Schaltstufe je nach Belegung ihrer Eingänge zwei VDD-Pfade auf das Bit oder das invertierte Bit BitQ ihrer beiden Ausgänge durch, sodass sich eine logisch gültige Zahl als Resultat ergibt. Allerdings hat die Schaltstufe aufgrund ihrer speziellen One-Not-Realisierung interne Knoten, die im Vorbereitungsmodus, also wenn eingangsseitig und ausgangsseitig ein Precharge-Betrieb oder ein Pre-Discharge-Betrieb vorliegt, abgekoppelt sind, also gewissermaßen floaten. War ein solcher interner Knoten im vorausgehenden Datenmodus auf einem hohen Potential, also aufgeladen, so wird er seine Ladung aufgrund der Tatsache, dass er im Vorbereitungsmodus floatend ist, nicht automatisch und sofort verlieren. Dadurch kann es passieren, dass z. B. auf die Bitleitung eines der Ergebnisbits ein VDD-Pfad geschaltet wird und auf das invertierte Bit desselben Ergebnisbits eine interne Restladung, die der floatende Knoten hat, geschaltet wird.
  • Dadurch kommt es zu einer Situation, in der das getriebene Bit zunächst gegen die Restladung auf BitQ ankämpfen muss. Hier fließt ein Querstrom, und die Schaltung wird langsamer als notwendig.
  • Ferner hat sich herausgestellt, dass durch unvermeidliche Koppelkapazitäten dieser Effekt sogar erheblich verstärkt werden kann, sodass unter besonders ungünstigen Bedingungen nicht das getriebene Bit, sondern die Restladung gewissermaßen gewinnt und das getriebene Bit „umdreht". Dies führt sogar dazu, dass das berechnete Resultat falsch ist.
  • Die DE 10 215 785 A1 offenbart ein Rechenwerk und ein Verfahren zum Addieren, wobei das Rechenwerk mehrere Addiererblöcke mit Einzeladdierern, einen Taktgenerator und eine Steuereinrichtung aufweist. Jeder Addiererblock hat ferner eine Übertrag-Durchlaufeinrichtung, die bestimmt, ob ein Übertrag einen entsprechenden Addiererblock vollständig durchläuft oder nicht. Das Rechenwerk kann entweder mit einem normalen Takt laufen oder wird dann, wenn ein Panik-Signal erzeugt wird, das darauf hinweist, dass ein Übertrag einen Addiererblock vollständig durchlaufen wird, verlangsamt, wobei im Falle von Panik-Signalen zweier benachbarter Addiererblöcke das Rechenwerk noch stärker verlangsamt wird.
  • Die DE 32 280 180 C2 offenbart ein Schlüsselsystem für die RSA-Kryptographie, das zum Ermitteln einer verschlüsselten oder entschlüsselten Nachricht aus einer unverschlüsselten bzw. einer verschlüsselten Nachricht vorgesehen ist. Hierzu ist eine Hauptaddiereinheit, eine Quotientenberechnungseinheit, ein Vorverarbeitungsabschnitt mit einem Festspeicher und ein Nachverarbeitungsabschnitt mit einem Multiplizierer, einem Addierer und einem weiteren Multiplizierer und eine Zuordnungseinrichtung vorgesehen.
  • Die Aufgabe der vorliegenden Erfindung besteht darin, ein schnelles und sicheres Rechenwerk zu schaffen.
  • Diese Aufgabe wird durch ein Rechenwerk gemäß Patentanspruch 1 gelöst.
  • Der vorliegenden Erfindung liegt die Erkenntnis zugrunde, dass solche internen Knoten, die im Vorbereitungsmodus weder mit einem Potential von der Eingangsstufe noch mit einem Potential von der Ausgangsstufe gekoppelt sind, im Vorbereitungsmodus nicht in ihrem floatenden Zustand gelassen werden dürfen, sondern kontrolliert werden müssen. Erfindungsgemäß wird daher eine Knotenpotentialschaltung vorgesehen, die ausgebildet ist, um im Vorbereitungsmodus die internen Knoten mit einem Bezugspotential zu koppeln.
  • Bei einem bevorzugten Ausführungsbeispiel ist das Bezugspotential das Massepotential bzw. Vss, so dass die internen Knoten innerhalb der Schaltstufe statt in ihrem bisherigen floatenden Zustand nunmehr definiert entladen werden. Dies führt dazu, dass sie ihre Ladung definiert abgeben und damit für den nächsten Datenmodus optimal vorbereitet sind. Wenn nämlich im Datenmodus ein Bit getrieben wird, so muss es nicht gegen eine auf dem komplementären Bit vorhandene Restladung ankämpfen, sondern hat freie Bahn.
  • Damit wird zum einen der Querstrom vermieden. Zum anderen kann eine solche Schaltung schneller getaktet werden, da beim Takten der Schaltung nicht mehr auf Zeiten Rücksicht genommen werden muss, die ansonsten benötigt wurden, dass sich ein stabiler Zustand einstellt, dass also das getriebene Bit gegen die Restladungen erfolgreich vorgegangen ist. Ferner wird auf jeden Fall sicher gestellt, dass nicht aufgrund des beschriebenen Koppelkapazitäteneffekts ein falsches Ergebnis erhalten wird.
  • Das erfindungsgemäße Konzept führt somit zu einem Rechenwerk, das keine reduzierte Performance-Einbuße, keinen Querstrom und keine mangelnde Betriebssicherheit mehr hat. Das erfindungsgemäße definierte Behandeln der internen Bits hat ferner einen weiteren wesentlichen Sicherheitsvorteil. So wird erfindungsgemäß durch das Koppeln der inneren Knoten mit einem Bezugspotential sichergestellt, dass der innere Zustand der Schaltstufe in jedem Zyklus gleich eingestellt wird. Dies führt zu einer völligen Unabhängigkeit des Stromprofils von den Eingangsdaten.
  • Bei einem bevorzugten Ausführungsbeispiel wird eine Entladung der internen Knoten der Schaltstufe vorgenommen, die gemäß einer Halbaddierervorschrift arbeitet, sodass ein erfindungsgemäßer Halbaddierer halten wird.
  • Der erfindungsgemäße Halbaddierer ist dahingehend flächensparend, dass die Schaltstufe lediglich ein Ausgabebit berechnen muss, wobei es von der Implementierung abhängt, ob die Schaltstufe das Ausgabebit selbst oder die invertierte Version des Ausgabebits liefert. Es ist einsichtig, dass die geforderte Information sowohl im Ausgabebit als auch im invertierten Ausgabebit enthalten ist.
  • Das entsprechende von der Schaltstufe nicht berechnete komplementäre Bit wird dann in der Ausgangsstufe erzeugt, und zwar bereits im Vorbereitungsmodus, also im Precharge- bzw. Pre-Discharge-Modus. Je nach Implementierung wird dann im Datenmodus lediglich ein Ausgabebit der Ausgangsstufe, nämlich entweder das Ausgabebit selbst oder die invertierte Version des Ausgabebits gegenüber dem Precharge-Zustand umgeladen, so dass in dem Datenmodus der Halbaddierer ein Bit ausgibt, das durch die Schaltstufe berechnet worden ist und gegenüber dem Precharge-Modus umgeladen worden ist, während das andere Bit im Datenmodus denselben Wert hat wie im Vorbereitungsmodus und bereits in dem dem Datentakt vorhergehenden Vorbereitungstakt erzeugt worden ist.
  • Die erfindungsgemäße Schaltung ist dahingehend flächensparend, dass die Schaltstufe das invertierte Bit oder das nicht-invertierte Bit je nach Implementierung berechnet, und nicht beide Bits berechnen muss. Das zweite Bit wird dann in der Dual-Rail-Precharge/Pre-Discharge-Ausgangsstufe erzeugt.
  • Die erfindungsgemäße Schaltung ist ferner dahingehend vorteilhaft, dass sie transistorarm implementiert werden kann. Dies ist dann der Fall, wenn die Schaltstufe derart ausgebildet wird, dass durch sie das Rechenpotential abhängig von den drei Eingangsoperanden an einen Ausgang auf einem von verschiedenen Pfaden durchschaltet. Für jede Pfad-Verzweigung wird es bevorzugt, dieselbe Anzahl von Transistoren zu nehmen, so dass jeder durch die Schaltstufe implementierbare Pfad von dem Rechenpotential zu einem Ausgang eine gleiche Anzahl von Transistorumschaltungen mit sich bringt, so dass von außen anhand des Leistungsprofils nicht ersichtlich ist, welchen Pfad die Schaltstufe genommen hat. Es ist daher anhand des Stromverbrauchs nicht ersichtlich, welche Eingangsoperanden im aktuellen Rechenzyklus anliegend waren.
  • Die erfindungsgemäße Schaltung ist ferner dahingehend vorteilhaft, dass sie eine hohe Flexibilität ermöglicht. So wird für jedes Ausgabebit eine eigene Schaltstufe vorgesehen. Eine Stromsicherheit ist bereits dann erreicht, wenn die Anzahl von Transistoren in einem Pfad in einer Schaltstufe gleich der Anzahl von Transistoren von anderen Pfaden in derselben Schaltstufe ist. Es muss jedoch keine Gleichheit der Transistoren von einer Schaltstufe zur nächsten Schaltstufe vorhanden sein. Daher können beliebige Halbaddierer-Vorschriften für einzelne Bits implementiert werden, ohne dass ein Transistor-Overhead dahingehend vorhanden ist, dass z. B. alle Schaltstufen dieselbe Anzahl von Transistoren haben müssen.
  • Durch Implementation beliebiger Halbaddierer-Vorschriften im Hinblick auf die ausgangsseitige Codierung des Halbaddierer-Ergebnisses (binäre Gewichtung, Gray-Code, Dezimalgewichtung etc.) kann daher immer eine optimal transistorarm entworfene Schaltstufe gefunden werden.
  • Darüber hinaus ist die erfindungsgemäße Schaltung querstromarm und im idealen Fall sogar querstromfrei, da immer nur Umladungen von einem einzigen Ausgangsknoten der Ausgangsstufe erforderlich sind. So wird bereits immer ein Ausgabebit im Vorbereitungsmodus gewissermaßen auf Verdacht berechnet, während im Datenmodus nur ein einziges Bit der zwei Ausgabebit s einer Ausgangsstufe umgeladen werden muss. Diese Umladung findet ohne Querstrom vom hohen Potential (z. B. Vdd) zum niedrigen Potential (Vss) statt und hat zudem einen geringen Stromverbrauch im Vergleich zu dem Fall, bei dem immer zwei Ausgabebits umgeladen werden müssen. Die erfindungsgemäße Schaltung ist somit nicht nur querstromarm sondern auch in ihrem insgesamten Stromverbrauch günstig, was insbesondere für Anwendungen von Vorteil ist, bei denen beispielsweise eine Chipkarte keine autarke Spannungsversorgung in Form einer Batterie hat, wie z. B. Kontaktlosanwendungen.
  • Die erfindungsgemäße Schaltung ist ferner günstig implementierbar, da die einzelnen Stufen nicht in vollständiger CMOS-Technik implementiert werden müssen. Es reichen statt dessen für die einzelnen Stufen entweder ausschließlich NMOS-Transistoren oder PMOS-Transistoren. Es werden jedoch nicht unbedingt in allen Stufen beide Transistorsorten benötigt, wie es dagegen bei einem vollständigen CMOS-Design der Fall ist, bei dem einem PMOS-Transistor immer ein entsprechender Komplementärtransistor (NMOS-Transistor) zugeordnet ist.
  • Die erfindungsgemäße Schaltung ist ferner dahingehend flexibel, dass das Rechenpotential, das durch die Schaltstufe gemäß den Eingangsoperanden an einen Ausgang durchgeschaltet wird, das hohe Potential Vdd oder das niedrige Potential Vss sein kann. Wird für das Rechenpotential das hohe Potential Vdd gewählt, so muss für das Vorbereitungspotential in der Ausgangsstufe das andere Potential, also im vorliegenden Fall das niedrige Potential Vss verwendet werden. Wird dagegen in der Schaltstufe als Rechenpotential das niedrige Potential Vss verwendet, so muss in der Ausgangsstufe ein Vorbereitungspotential verwendet werden, das sich von dem Rechenpotential unterscheidet. Im letzteren Fall wäre dies das hohe Potential Vdd.
  • Der erfindungsgemäße Halbaddierer trägt somit zu einem sicheren, leistungskräftigen und flächenminimalen 3-Operanden-Addierer bei. Die Operanden, die an dem 3-Operanden-Rechenwerk anliegen, sind typischerweise in Speicherelementen, wie z. B. SRAM-Zellen gespeichert und werden in Dual-Rail-Ausführung zu dem Rechenwerk geführt, um eine Sicherheit gegenüber Power-Attacken zu erreichen. Da der Volladdierer, der sich an den Halbaddierer anschließt, kompakt in Dual-Rail-Precharge-Logik ausgeführt werden kann, können auch die Verbindungen zwischen dem Halb- und Volladdierer ihrerseits in Dual-Rail-Logik mit Precharge/Pre-Discharge-Technik ausgeführt sein. Der flächenminimale und sichere erfindungsgemäße Halbaddierer basiert auf der "One-Hot"-Realisierung. Für jedes anliegende Bitpattern wird in jeder Schaltstufe genau ein Pfad geschaltet. Im Falle von zwei Ausgabebits wird daher für jedes Bitpattern der drei anliegenden Operanden zwei Pfade geschaltet. Diese zwei Pfade sind notwendig, um für die Ausgangsstufe jeweils ein Bit zu berechnen, während das andere Bit durch die Ausgangsstufe selbst gewissermaßen erzeugt wird, d. h. aus dem vorausgehenden Vorbereitungsmodus "übernommen" wird. Für jedes beliebige anliegende Bitpattern am Eingang ist die insgesamte Summe der umzuladenden Kapazitäten gleich. Damit lässt sich das anliegende Bitpattern während der Schaltvorgänge im Halbaddierer nicht von außen erkennen.
  • Erfindungsgemäß wird es bevorzugt, zur Erreichung einer möglichst hohen Leistung die zu schaltenden Pfade mit möglichst wenig Transistoren auszustatten. Dies kann individuell für jede Schaltstufe je nach Halbaddierervorschrift beliebig durchgeführt werden, so dass nicht eine Schaltstufe, die eine komplexere Halbaddierervorschrift hat, die Transistorzahl für eine andere Schaltstufe, die eine weniger komplexe Halbaddierervorschrift hat, gewissermaßen "diktiert".
  • Der erfindungsgemäße Halbaddierer wird in seiner bevorzugten Form als 3-Operanden-Addierer mit drei Eingangsoperanden ver wendet, um zwei Ausgabebits in binärer Gewichtung zu erzeugen. Durch Hintereinanderschalten von mehreren solchen 3-Operanden-Addierern können beliebige N-Operanden-Addierer beispielsweise zur Ausführung eines nicht nur dreifachen sondern eines N-fachen ZDN-Algorithmus eingesetzt werden. Mit einem solchen N-Operanden-Addierer, der aus mehreren hintereinander geschalteten erfindungsgemäßen 3-Operanden-Addierern aufgebaut ist, lässt sich die Performance pro Chipfläche noch einmal steigern, und zwar mit einem Flächen-Overhead, der unterproportional zum Performance-Gewinn ist.
  • Der erfindungsgemäße Halbaddierer hat jedoch auch das Potential, als direkter N-Operanden-Addierer ohne Verwendung von hintereinander geschalteten 3-Operanden-Addiererelementen eingesetzt zu werden, indem andere Halbaddierer-Vorschriften für z. B. mehr als zwei Ausgabebits z. B. gemäß entsprechender Wahrheitstabellen für einen beispielsweise 7-Operanden-Addierer eingesetzt werden. Ein 7-Operanden-Addierer beispielsweise hat maximal sieben Einsen, wenn alle sieben Eingangsoperandenbits gleich 1 sind. Die dezimale Zahl 7 ist durch insgesamt drei Ausgabebits in binärer Gewichtung darstellbar. Ein 7-Operanden-Halbaddierer würde daher bereits mit drei Ausgabebits auskommen.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen detailliert erläutert. Es zeigen:
  • 1 ein Blockschaltbild eines Halbaddierers mit einer beliebigen Anzahl von Eingangsoperanden und einer entsprechenden Anzahl von Ausgabebits;
  • 2 eine Tabelle zu möglichen Kombinationen des Rechenpotentials, des Vorbereitungspotentials und einer entsprechenden Transistortechnologie;
  • 3 eine Wahrheitstabelle für einen 3-Operanden-Halbaddierer mit zwei Ausgabebits SUM1 und SUM0;
  • 4 eine schematische Darstellung von Schaltstufen mit unterschiedlichen Rechenpotentialen;
  • 5a ein Beispiel für Pfade durch die Schaltstufen für ein bestimmtes Operanden-Bitmuster;
  • 5b eine beispielhafte Darstellung verschiedener Pfade durch Schaltstufen für ein alternatives Operanden-Bitmuster;
  • 6A und 6B ein Blockschaltbild auf Transistorebene für einen bevorzugten Halbaddierer gemäß der vorliegenden Erfindung mit Dual-Rail-Eingangsstufe, zwei Schaltstufen und zwei Dual-Rail-Ausgangsstufen;
  • 6C eine bevorzugte Form einer Knotenpotentialschaltung zum Koppeln eines internen Knoten mit dem Bezugspotential im Vorbereitungsmodus; und
  • 7 ein bekannter Drei-Operanden-Addierer mit entsprechend verschalteten Drei-Bit-Halbaddierern und Zwei-Bit-Volladdierern für Bit-Slices eines Langzahlrechenwerks.
  • Nachfolgend wird anhand der 1 bis 6C das erfindungsgemäße Konzept anhand eines Halbaddierers dargestellt. Es sei jedoch darauf hingewiesen, dass die vorliegende Erfindung auf jegliche Rechenwerke angewendet werden kann, die zur Berechnung auf der Basis einer nicht in Voll-Dual-Rail-ausgeführten Schaltstufe arbeiten, die gemäß einer Addierervorschrift nur ein einziges Ausgangsbit berechnet, indem je nach Rechenvorschrift das Ausgangsbit oder das invertierte Ausgangsbit mit dem Rechenpotential verbunden wird, während das dazu komplementäre Bit dann in einer entsprechenden Ausgangsstufe er gänzt wird, und zwar aus dem vorherigen Vorbereitungstakt gewissermaßen übernommen und gegebenenfalls entsprechend stabilisiert wird. Insbesondere ist die vorliegende Erfindung in jedem Rechenwerk mit einer solchen Schaltstufe anwendbar, wenn die Schaltstufe wenigstens einen internen Knoten aufweist, der im Vorbereitungsmodus weder mit einem Potential der Eingangsstufe noch einem Potential der Ausgangsstufe gekoppelt ist.
  • 1 zeigt ein schematisches Blockschaltbild eines erfindungsgemäßen Halbaddierers zum Addieren von Bits von mehreren Eingangsoperanden, die in 1 derart dargestellt sind, dass sie einer Eingangsstufe 10 zugeführt werden. Die M Eingangsoperanden sind in 1 mit A1, A2, A3, ..., AM bezeichnet. In 6A und 6B werden dann beispielhaft nur drei Eingangsoperanden betrachtet, die dort mit C, N, Z bezeichnet werden. Eine beliebige Anzahl von Eingangsoperanden kann der Eingangsstufe 10 zugeführt werden. Ferner ist die Eingangsstufe als Dual-Rail-Eingangsstufe ausgebildet, empfängt also zu jedem Eingangsoperanden noch die komplementäre Version desselben.
  • Die Eingangsstufe ist primär wirksam, um die Eingangsoperanden und die komplementären Eingangsoperanden an in 1 gezeigte n Schaltstufen 12a, 12b, 12c zu verteilen. Für jede Schaltstufe hat die Eingangsstufe also Ausgänge, wobei die Anzahl von Ausgängen gleich doppelt so groß ist wie die Anzahl der Eingangsoperanden. Für die Schaltstufe für bit n in 1 hat die Eingangsstufe also einen ersten Ausgang 11a, über den der Operand A1 läuft, und einen zweiten Ausgang 11b, über den der zu A1 komplementäre Operand läuft. Über einen dritten Ausgang 11c läuft A2 und über einen vierten Ausgang 11d läuft der zu A2 komplementäre Operand etc.
  • Ferner sei darauf hingewiesen, dass M und n unterschiedlich sind. Ist M gleich 1, so wird n = 1 sein. Ist M 2 oder 3, so wird n = 2 sein. Ist M zwischen 4 und 7, so wird n = 3 sein. Ist M zwischen 8 und 15, so wird n = 4 sein.
  • Die Schaltstufe 12a ist dem Ausgangsbit 0 zugeordnet, das auch als Bit SUM0 bezeichnet wird. Das dazu komplementäre Bit SUM0 ist in 1 ebenfalls ausgangsseitig dargestellt. Die Schaltstufe 12b ist dem Ausgangsbit 1 zugeordnet, das auch als Bit SUM1 bezeichnet wird. Das dazu komplementäre Bit SUM1 ist in 1 ebenfalls ausgangsseitig dargestellt. Die Schaltstufe 12c ist für das Ausgangsbit n vorgesehen. Dies wird auch als Bit SUMn bezeichnet. Das hierzu komplementäre Bit SUMn ist in 1 ebenfalls ausgangsseitig dargestellt. Jeder Schaltstufe 12a, 12b, 12c ist eine Ausgangsstufe 14c zugeordnet, wie es aus 1 ersichtlich ist. Insbesondere ist die Ausgangsstufe 14a der Schaltstufe 12a für das Bit 0 nachgeordnet. Die Ausgangsstufe 14b ist der Schaltstufe 12b für das Bit 1 nachgeordnet. Die Ausgangsstufe 14c ist der Schaltstufe 12c für das Bit n nachgeordnet.
  • Wie es aus 1 ersichtlich ist, ist ferner jeder Schaltstufe ein Rechenpotential für diese Schaltstufe zuführbar, wie es durch die Rechenpotentialanschlüsse 16a, 16b und 16c dargestellt ist. Prinzipiell ist jeder Schaltstufe ein eigenes Rechenpotential zuführbar, das bei einem bevorzugten Ausführungsbeispiel entweder ein hohes Potential Vdd oder ein niedriges Potential Vss ist. Aus Gründen der Schaltungsimplementierung wird es jedoch bevorzugt, jeder Schaltstufe dasselbe Rechenpotential 16c, 16b, 16a zuzuführen, das entweder Vss oder Vdd ist. Existiert die Möglichkeit, dass die implementierte Schaltung mehr als zwei Potentiale hat, so können auch von Vss bzw. Vdd abweichende Rechenpotentiale den Schaltstufen 12a, 12b, 12c zugeführt werden.
  • Die Schaltstufen 12a, 12b, 12c sind wirksam, das ihnen zugeführte Rechenpotential 16a, 16b, 16c an einen Ausgang 18a, 18b, 18c zuzuführen, wobei das zu dem Ausgang 18a, 18b, 18c zugeführte Spannungspotential das Ausgabebit oder eine invertierte Version des Ausgabebits darstellt.
  • An dieser Stelle sei darauf hingewiesen, dass das Ausgabebit als logisches Bit aufgefasst wird, also als logische "0" oder als logische "1". Wird dem Ausgang 18a der Schaltstufe 12a das Rechenpotential 16a aufgrund einer durch die Schaltstufe 12a gebildeten leitfähigen Verbindung von dem Eingang 16a zu dem Ausgang 18a zugeführt, so kann der an dem Ausgang 18a anliegende Spannungswert entweder das logische Ausgabebit SUM0 der nachgeschalteten Ausgangsstufe 14a darstellen oder das invertierte Bit SUM0 darstellen, je nach gewählter Implementierung.
  • Die Ausgangsstufe 14a empfängt als Eingangssignal das Signal auf dem Ausgang 18a der Schaltstufe sowie als weiteres Eingangssignal ein Vorbereitungspotential an einem Anschluß 20a. Entsprechend ist die Situation für die Ausgangsstufen 14b und 14c, die ihre Vorbereitungspotentiale über Eingänge 20b bzw. 20c empfangen. Jede Ausgangsstufe umfasst zwei Ausgänge 22a, 22b. Entsprechend umfasst die Ausgangsstufe 14b für das Bit 1 ebenfalls zwei Ausgänge 24a, 24b. Analogerweise umfasst auch die Ausgangsstufe 14c für das Bit n ebenfalls zwei Ausgänge 26a, 26b. Der Ausgang 22a der Ausgangsstufe 14a für das Bit 0 liefert das invertierte Ausgabebit SUM0. Entsprechend liefert der Ausgang 22b der Ausgangsstufe 14a das nichtinvertierte Ausgabebit SUM0.
  • Der in 1 gezeigte Halbaddierer umfasst ferner eine Steuereinrichtung 28 zum Einstellen eines Datenmodus und eines Vorbereitungsmodus, wobei im Vorbereitungsmodus entweder ein Precharge-Modus oder ein Pre-Discharge-Modus gefahren werden kann. Das Vorhandensein eines Datenmodus bzw. eines Vorbereitungsmodus wird durch Steuerleitungen 28a, 28b, 28c den Ausgangsstufen 14a, 14b bzw. 14c signalisiert. Optionalerweise ist die Eingangsstufe 10 ebenfalls im Datenmodus bzw. Vorbereitungsmodus betreibbar. Dies signalisiert die Steuerein richtung 28 der Eingangsstufe über eine weitere Steuerleitung 28d.
  • Im Datenmodus liegt an einem Ausgang einer Ausgangsstufe das Ausgabebit in nicht-invertierter Form an, also SUM0, SUM1 bzw. SUMn. An dem anderen Ausgang liegt im Datenmodus eine invertierte Version des Ausgabebits an, also SUM0, SUM1 bzw. SUMn.
  • Die Ausgangsstufen sind ferner wirksam, um in einem Vorbereitungsmodus an einem Ausgang und an dem anderen Ausgang dasselbe Vorbereitungspotential, das der Ausgangsstufe über den entsprechenden Eingang 20a, 20b bzw. 20c zugeführt wird, anzulegen, wobei sich erfindungsgemäß das Vorbereitungspotential, das einer Ausgangsstufe beispielsweise über den Eingang 20a zugeführt wird, von dem Rechenpotential unterscheidet, das der Schaltstufe, die der betrachteten Ausgangsstufe vorgeschaltet ist, z. B. über den Eingang 16a zugeführt wird. Der Vorbereitungsmodus wird bei dem in 1 gezeigten Ausführungsbeispiel den einzelnen Ausgangsstufen von der Steuereinrichtung 28 über die Steuerleitungen 28a, 28b bzw. 28c signalisiert.
  • In den Schaltstufen 12C, 12B, 12A ist ferner schematisch ein interner Knoten eingezeichnet, der im Vorbereitungsmodus sowohl eingangsseitig als auch ausgangsseitig mit keinem Potential gekoppelt ist und daher im Vorbereitungsmodus floatet. Die erfindungsgemäße Knotenpotentialschaltung ist ausgebildet, um jeden dieser internen Knoten im Vorbereitungsmodus mit einem Bezugspotential zu verbinden, das vorzugsweise das Massepotential ist. Hierzu umfasst die Steuereinrichtung 28 eine weitere Steuerleitung 28E, die mit jeder Schaltstufe und insbesondere mit jedem Entladungsschalter für jeden internen Knoten in den entsprechenden Schaltstufen gekoppelt ist. Der Steuerleitung 28E wird ein Signal geliefert, das zu den Signalen auf den Steuerleitungen 28A bis 28D synchron ist, wobei je nach Implementierung der Schalter und des Vorbereitungsmo dus in der Eingangsstufe und der entsprechenden Ausgangsstufe vorzugsweise dasselbe Signal verwendet wird. Je nach Implementierung der Schalter der Knotenpotentialschaltungen können jedoch auch zueinander komplementäre Signale z. B. auf der Leitung 28E und der Leitung 28D eingesetzt werden.
  • Im nachfolgenden wird anhand von 2 auf bevorzugte Kombinationen von Rechenpotential, Vorbereitungspotential und Transistortechnologie eingegangen. Wird als Rechenpotential einer Schaltstufe (Eingang 16a) das hohe Potential Vdd einer Schaltung zugeführt, so ist das der nachgeschalteten Ausgangsstufe unterschiedliche Vorbereitungspotential das niedrige Potential Vss. Das Zuführen des niedrigen Potentials Vss als Vorbereitungspotential führt zu einem Pre-Discharge in der Ausgangsstufe (z. B. 14a), so dass im Vorbereitungsmodus beide Bits SUM0, SUM0 einen niedrigen Spannungszustand haben und damit bei dem hier dargestellten Beispiel eine logische "0" darstellen.
  • Im Datenmodus wird von der Schaltstufe 12a dann das hohe Rechenpotential Vdd der Ausgangsstufe 14a als Bit SUM0 oder Bit SUM0 zugeführt, und zwar je nach Bitmuster der drei Eingangsoperandenbits, so dass dann, im Datenmodus, lediglich ein Ausgangsbit SUM0 bzw. SUM0 umladen wird, d. h. von dem logischen Zustand "0" in den logischen Zustand "1" umgeändert wird.
  • In dem Fall, in dem als Rechenpotential Vdd genommen wird, und als Vorbereitungspotential Vss genommen wird, wird als Transistortechnologie die PMOS-Technologie bevorzugt, da die PMOS-Transistoren günstiger ein hohes Rechenpotential durchschalten.
  • Wird dagegen im anderen Fall als Rechenpotential das niedrige Potential Vss genommen, und wird dann konsequenterweise als Vorbereitungspotential das hohe Potential Vdd genommen, so findet in der Ausgangsstufe ein Precharge-Modus statt, dahin gehend, dass die beiden Ausgabebits SUM0, SUM0 der Ausgangsstufe 14a, beispielsweise eine logische "1" darstellen. Durch die Schaltstufe wird das niedrige Potential Vss entweder als Bit oder Bit der Ausgangsstufe 14a zugeführt, die dann lediglich eines der beiden Ausgangsbits SUM0 oder SUM0 in den niedrigen Zustand umlädt, also von einer logischen "1" in eine logische "0" verändert. In diesem Fall wird in der Schaltstufe als Transistortechnologie die NMOS-Technologie bevorzugt, da diese am besten dafür geeignet ist, niedrige Spannungspotentiale durchzuschalten.
  • 3 zeigt in Tabellenform eine bevorzugte Halbaddierervorschrift für einen 3-Operanden-Addierer, um für jedes Bitmuster der Eingangsoperanden Ci, Ni und Zi entsprechende Ausgangsbits SUM1, SUM0 zu berechnen. Die Halbaddierervorschrift in 3 ist als "Einsen-Zähler" ausgebildet, wobei die Anzahl von Einsen durch die Bits SUM0, SUM1 in binärer Gewichtung dargestellt werden. Die beiden Ausgangsbits SUM1 und SUM0 stellen somit eine binäre Zahl dar, wobei das Bit SUM1 das MSB dieser binären Zahl ist, und wobei das Bit SUM0 das LSB dieser Zahl ist. Die beiden Ausgangsbits SUM1 und SUM0 stellen daher in binärer Codierung die Anzahl von Einsen eines jeden Bit-Patterns der Eingangsoperanden dar. Lediglich in dem Fall, in dem alle drei Eingangsoperanden eine logische "1" haben, sind beide Bits SUM1 und SUM0 gesetzt, was der binären Zahl "11" entspricht, die in dezimaler Darstellung gleich der Zahl 3 ist.
  • Für Fachleute ist es offensichtlich, dass anhand der Systematik von 3 beliebige N-Operanden-Halbaddierer aufgebaut werden können. Wird beispielsweise ein 7-Operanden-Halbaddierer aufgebaut, so wird zur Darstellung des maximalen Falls, in dem alle sieben Operanden eine logische "1" haben, eine Anzahl von drei Ausgabebits benötigt, da die binäre Zahl "111" der dezimalen Zahl "7" entspricht.
  • Für Halbaddierer mit einer größeren Anzahl von sieben Operanden werden daher entsprechend mehr Ausgabebits benötigt, wenn die normale binäre Gewichtung eingesetzt wird.
  • Aus der Systematik von 3 ist ferner ersichtlich, dass auch eine andere Codierung eingesetzt werden kann, wenn es für einen speziellen Fall günstig ist. So kann die Bedeutung der Bits SUM1, SUM0 beliebig eingestellt werden, dahingehend, dass eine Bitkombination von SUM0 und SUM1 als "11" z. B. darauf hindeutet, dass die Anzahl von Nullen in den Eingabebits C, N, Z gleich 3 ist, was gleichbedeutend damit ist, dass die Anzahl von Einsen in C, N, Z bei der bestimmten betrachteten Bitkombination gleich 0 ist.
  • Die Linien 41, 42 und 43 stellen potenzielle Knotenebenen dar deren Verzweigungen durch entsprechende Transistoren in der Schaltstufe realisierbar sind. Diese Transistoren führen zu internen Knoten, die im Vorbereitungsmodus sowohl vom Eingang als auch vom Ausgang abgekoppelt sind und erfindungsgemäß im Vorbereitungsmodus durch eine zusätzliche Knotenpotentialschaltung mit dem Bezugspotential verbunden werden, wobei das Bezugspotential vorzugsweise das Massepotential ist.
  • Das Bezugspotential muss jedoch nicht unbedingt das Massepotential sein. Je nach Vorbereitungsmodus, also ob ein Precharge-Betrieb oder ein Pre-Discharge-Betrieb eingesetzt wird, und je nach Schaltungsimplementierung, also ob das Bit selbst oder das invertierte Bit getrieben wird, kann das Bezugspotential auch das hohe Potential, also Vdd sein.
  • Nachfolgend werden anhand der 5a und 5b zwei jeweils verschiedene Pfade durch die einzelnen Schaltstufen für unterschiedliche Bitmuster dargestellt.
  • In 5a ist beispielhaft der Fall gezeigt, bei dem der erste Operand gleich 1, der zweite Operand gleich 0 ist, und der dritte Operand gleich 1 ist. Für die Schaltstufe 14a be deutet dies, dass ein erster Schaltknoten 50a dahingehend durchlaufen wird, dass eine 45°-Abzweigung genommen wird, da der erste Operand gleich 1 ist. Ein zweiter Schaltknoten 50b wird dahingehend verarbeitet, dass der Pfad waagrecht fortgeführt wird, da der zweite Operand gleich 0 ist. Ein dritter Schaltknoten 50c wird dahingehend durchlaufen, dass wieder eine 45°-Abzweigung genommen wird, da der dritte Operand gleich 1 ist. Dies führt dazu, dass das Rechenpotential Vss ausgangsseitig das nicht-invertierte Bit der Schaltstufe bestimmt. Im Datenmodus führt ein Spannungszustand Vss für das nicht-invertierte Bit dazu, dass die der Schaltstufe 14a nachgeschaltete Ausgangsstufe 14b, die beide Ausgängen 22a, 22b in einem Zustand "1" hatte, das nicht-invertierte Bit SUM0 (22b) in den niedrigen Zustand entlädt, während das invertierte Bit SUM0 22a im hohen Zustand bleibt.
  • Die Schaltstufe 14b hat als Rechenpotential das hohe Potential Vdd. In einem ersten Verzweigungsknoten 52a wird eine 45°-Abzweigung genommen. In einem zweiten Verzweigungsknoten 52b, die dem zweiten Operanden entspricht, wird eine waagrechte Abzweigung genommen. In einem dritten Verzweigungsknoten 52c, die dem dritten Operanden entspricht, wird eine 45°-Abzweigung genommen, so dass schließlich am Ausgang 18b, der dem nicht-invertierten Bit entspricht, das hohe Spannungspotential Vdd anliegt. Das hohe Spannungspotential am Ausgang 18b führt dazu, dass in der Ausgangsstufe 14b von 1 das nicht-invertierte Bit SUM1 24b von seinem niedrigen Zustand, den es im Vorbereitungsmodus hatte, auf den logisch hohen Zustand gesetzt wird, während das invertierte Bit SUM1 in seinem bereits aus dem Vorbereitungsmodus heraus bestehenden Zustand, also dem niedrigen Zustand "0" gelassen wird.
  • Aus der vorstehenden Beschreibung ist ersichtlich, dass die Schaltstufe lediglich ein Bit, also das invertierte bzw. das nicht-invertierte Bit berechnen muss, während das zweite Bit dann durch die Ausgangsstufe aus dem vorausgehenden Vorbereitungsmodus übernommen wird.
  • Ferner ist ersichtlich, dass z. B. in der Schaltstufe 14a in 5a acht verschiedene Pfade gemäß den acht verschiedenen Kombinationen der drei Eingangsoperanden gewählt werden können. Wie es jedoch aus der Schaltstufe 14b von 5a ersichtlich ist, führt in dem Fall, in dem bereits der erste Eingangsoperand und der zweite Eingangsoperand gleich 0 waren, in dem also an einem Verzweigungsknoten 52d der Pfad waagrecht fortgesetzt wird, dazu, dass dem dritten Operanden kein eigener Verzweigungspunkt mehr zugeordnet ist. Dies ist ohne weiteres daraus ersichtlich, dass in dem Fall, in dem bereits der erste und der zweite Operand gleich 0 waren, höchstens noch eine einzige 1 unter den drei Operanden, nämlich die 1 des dritten Operanden herauskommen kann, was auf jeden Fall dazu führt, dass das Bit SUM1, wie es aus der Wahrheitstabelle ersichtlich ist, gleich 0 ist. Das hohe Potential Vdd bestimmt daher den Zustand des invertierten Bits Bit zu einer logischen "1", derart, dass im Datenmodus das nicht-invertierte Bit gleich 0 ist, wie es durch die Wahrheitstabelle von 3 gefordert wird.
  • In 5b ist eine alternative Bitkombination der drei Operanden dargestellt, und zwar der Fall, bei dem alle drei Operanden gleich 1 sind. In der Schaltstufe 14a wird der in 5b eingezeichnete Pfad genommen, der lediglich 45°-Abzweigungen umfasst. Der Pfad endet schließlich dahingehend, dass das niedrige Potential Vss, das eine logische "0" darstellt, am invertierten Bit Bit anliegt. In der Schaltstufe 14b ist bereits anhand der ersten beiden Operanden klar, dass das Bit gesetzt werden muss, so dass das Ergebnis, nämlich Vdd am nicht-invertierten Ausgang 18b der Schaltstufe, nicht mehr vom dritten Operanden abhängt, so dass dem dritten Operanden kein eigener Verzweigungspunkt mehr zugeordnet zu werden braucht.
  • Aus den 5a und 5b ist ferner ersichtlich, dass die Anzahl der Verzweigungspunkte, nämlich vier bei der Schaltstufe 14b und fünf bei der Schaltstufe 14a nicht für jede Schaltstufe identisch zu sein braucht. Vielmehr wird eine Schaltstufe mit möglichst wenig Abzweigungspunkten angestrebt, da die Anzahl der Abzweigungspunkte letztendlich die Anzahl der Transistoren in der Schaltstufe und damit die wertvolle Chipfläche bestimmt. Eine Sicherheit gegenüber Leistungsattacken wird jedoch bereits dadurch erreicht, dass jeder Pfad durch eine Schaltstufe dieselbe Anzahl von Verzweigungspunkten umfasst, wobei jedoch die Anzahl von Verzweigungspunkten von Schaltstufe zu Schaltstufe nicht zwingend gleich zu sein braucht. Eine solche Ungleichheit liefert dem Angreifer lediglich die Information, dass in zwei Schaltstufen geschaltet worden ist. Diese Information nützt dem Angreifer jedoch nichts, da dieser Sachverhalt ohnehin klar ist. Ein Angreifer kann jedoch nicht erkennen, welcher Pfad in einer Schaltstufe durchgeschaltet worden ist, um daraus unter Umständen auf die Werte der drei Eingangsoperanden schließen zu können.
  • Der Übersichtlichkeit halber ist in den 5a und 5b rechts noch der zugeordnete Vorbereitungsmodus dargestellt, der durch das einer Ausgangsstufe zugeordnete Vorbereitungspotential bestimmt wird, das sich erfindungsgemäß von dem Rechenpotential unterscheidet. So hat die Schaltstufe 14b aufgrund des hohen Rechenpotentials Vdd die Konsequenz zur Folge, dass die zugeordnete Ausgangsstufe ein anderes Vorbereitungspotential hat, nämlich das niedrige Potential Vss, wenn die Schaltung lediglich zwei verschiedene Potentiale zur Verfügung stellt.
  • Analog hierzu hat die Schaltstufe 14a aufgrund des niedrigen Rechenpotentials Vss ein hohes Vorbereitungspotential zur Folge.
  • Nachfolgend wird anhand von 6 auf ein bevorzugtes Ausführungsbeispiel der vorliegenden Erfindung auf Transistorebene Bezug genommen.
  • In 5A und 5B sind wieder Verzweigungsknoten 52A bis 52D bzw. 50A bis 50C eingezeichnet, die wiederum zu internen Knoten führen werden, die durch die erfindungsgemäße Knotenpotentialschaltung auf einen definierten Bezugspotential-Zustand gebracht werden.
  • 6A und 6B zeigen zusammen und in modulartiger Darstellung bevorzugte Transistorimplementierungen einer Dual-Rail-Eingangsstufe (Block 10 von 1), von Schaltstufen (Blöcke 12a, 12b von 1) und Ausgangsstufen (Blöcke 14a, 14b von 1), wobei hier das erfindungsgemäße Konzept anhand einer Halbaddiererimplementierung, wie sie in dem deutschen Patent DE 10307942 B3 dargestellt ist, beschrieben ist. Es sei jedoch darauf hingewiesen, dass statt einer Halbaddierervorschrift, wie sie durch die Schaltstufen in 6A und 6B realisiert werden, auch eine andere Rechenvorschrift implementiert sein kann, wie beispielsweise eine Volladdierer-Rechenvorschrift, eine Invertierer-Rechenvorschrift, oder eine beliebige andere logische und/oder arithmetische Rechenvorschrift. Ferner sei darauf hingewiesen, dass die vorliegende Erfindung nicht auf drei Eingangsoperanden begrenzt ist, sondern auf eine beliebige Anzahl von Eingangsoperanden anwendbar ist, also auch auf nur einen einzigen Eingangsoperanden. Im letzteren Fall wäre die Rechenvorschrift z. B. eine Invertierervorschrift, die im Hinblick auf die entsprechende Schaltstufe derart implementiert ist, dass wenigstens ein interner Knoten existiert, der im Vorbereitungsmodus sowohl eingangsseitig als auch ausgangsseitig abgekoppelt ist und daher floatet, also Restladungen haben kann, die im ungünstigen Fall, also ohne die erfindungsgemäßen Prinzipien, zu einer Schaltungsverlangsamung, zu Querströmen und sogar zu einer Ergebnisverfälschung führen kann.
  • Nachfolgend wird auf die Implementierung der Dual-Rail-Eingangsstufe (Block 10 in 1) eingegangen. Die Dual-Rail-Eingangsstufe in 6 umfasst zunächst sechs Eingänge für die drei Operanden Z, N und C als nicht-invertierte Bits und invertierte Bits. Die Bits werden so der Dual-Rail-Eingangsstufe zugeführt, wie es in 6 ersichtlich ist. Die Eingangsstufe enthält ferner, wie es in 1 durch die Leitung 28d angedeutet ist, ein Precharge-Signal Vss, um die Eingangsstufe in dem Vorbereitungsmodus in einen Precharge-Zustand zu fahren, bei dem alle sechs Eingänge auf dasselbe Potential gebracht werden. Dieses Potential ist, wie es anhand der Spannungsversorgungssituation in 6 ersichtlich ist, das hohe Potential, da die Dual-Rail-Eingangsstufe mit dem hohen Potential Vdd an verschiedenen Punkten versorgt wird.
  • Zur Auslösung des Precharge-Zustands, also im Vorbereitungsmodus, werden die in 6 als PMOS-Transistoren ausgeführten Transistoren an ihrem Gate mit dem niedrigen Potential Vss versehen, damit sie durchschalten, wie es aus 6 ersichtlich ist, um alle Operanden-Bit-Knoten und alle Knoten für invertierte Operandenbits auf das Potential Vdd zu legen.
  • Im einzelnen umfasst jede Dual-Rail-Eingangsstufe vier Transistoren 600, 601, 602 und 603, wobei nachfolgend lediglich beispielhaft und repräsentativ für den zweiten und den dritten Operand die dem ersten Operand zugeordnete Eingangsstufe dargelegt wird. Die beiden Transistoren 601, 600 dienen dazu, im Vorbereitungsmodus, in dem das Precharge-Signal aktiv ist, in dem also Vss auf der Leitung 28d anliegt, die auf der einen Seite der beiden Transistoren anliegende hohe Spannung Vdd auf die Ausgangsknoten 604, 605 für das invertierte erste Operandenbit und das nicht-invertierte erste Operandenbit zu legen. Damit werden unmittelbar die beiden Transistoren 603, 602 gesperrt, da sie das hohe Potential Vdd an ihrem jeweiligen Gate-Anschluß haben.
  • Im Datenmodus ist dagegen die Leitung 28d auf dem hohen Potential Vdd, was dazu führt, dass die beiden Transistoren 601 und 600 wirkungslos sind. Die beiden Transistoren 602, 603 dienen zur Stabilisierung der Verhältnisse im Datenmodus. Ist beispielsweise das Operandenbit Ni hoch, so ist der Transistor 602 gesperrt, so dass das Potential Vdd auf der einen Seite des Transistors 602 nicht an den Knoten 604 kommen kann. Der Knoten 604 ist nämlich, da er das invertierte Bit N i des ersten Operanden darstellt, auf einem niedrigen Potential. Dieses niedrige Potential führt dazu, dass der Transistor 603 geöffnet wird. Es fließt jedoch im Idealzustand kein Strom, da der Knoten 605 ebenfalls auf Vdd ist. Der Transistor 603 dient jedoch dazu, das hohe Potential auf dem Knoten 605 zu stabilisieren und gegebenenfalls nachzuladen, falls an irgendeiner Stelle Leckströme auftreten.
  • Die Dual-Rail-Eingangsstufe dient somit dazu, im Vorbereitungsmodus gleiche Potentiale auf den Bitleitungen zu erzeugen, und im Datenmodus die Zustände auf den Bitleitungen zu stabilisieren. Darüber hinaus dient die Dual-Rail-Eingangsstufe dazu, die Operandenbits über Verteilungsschienen 611, 612 und 613 an die Schaltstufen zu verteilen. Für jeden Operanden bzw. komplementären Operanden hat die Dual-Rail-Eingangsstufe einen ersten Ausgang 11a bzw. einen zweiten Ausgang 11b.
  • Wie es in 6A und 6B gezeigt ist, sind die beiden Schaltstufen derart ausgebildet, dass sie als Rechenpotential das hohe Potential Vdd zugeführt bekommen, wie es durch die Spannungszuführungen 16a für die erste Schaltstufe und 16b für die zweite Schaltstufe gezeigt ist. So besteht die Schaltstufe für das Bit 0, bzw. für das Bit zur Erzeugung des Bits 0 (SUM0 22b oder SUM0 22a) aus insgesamt zehn Transistoren 620629, wobei immer zwei Transistoren zusammen einen Verzweigungspunkt der in 5a und 5b gezeigten Verzweigungspunkte bilden. Analog hierzu besteht die Schaltstufe für das Bit 1 (SUM1 24b bzw. SUM1 24a) aus lediglich acht Transistoren 630637, wobei ebenfalls paarweise angeordnete Transistoren immer einen Verzweigungspunkt definieren.
  • Ferner sei darauf hingewiesen, dass die Situation des Rechenpotentials 16a, 16b gleich dem hohen Potential Vdd der Situation entspricht, die die Schaltstufe 12b in den 4, 5a und 5b hat. Im einzelnen entsprechen die Transistoren 630 und 631 dem Verzweigungspunkt 52a. Die Transistoren 632, 633 entsprechen dem Verzweigungspunkt 52b von 5a. Die beiden Transistoren 634 und 635 entsprechen dem Verzweigungspunkt 52d in 5a. Schließlich entsprechen die Transistoren 636 und 637 dem Verzweigungspunkt 52c.
  • Analog hierzu entsprechen in der Schaltstufe für das Bit 0 die beiden Transistoren 620 und 621 dem Verzweigungspunkt 50a von 5a. Die Transistoren 622, 623 entsprechen dem Verzweigungspunkt 50b von 5a. Die Transistor 626 und 627 entsprechen dem Verzweigungspunkt 50c von 5a.
  • Die Schaltstufen umfassen ferner eine in 6 bei 639 gezeigte Ausgangsschiene, die gleichzeitig die Eingangsschiene für die nachgeschalteten Ausgangsstufen darstellt. Die beiden rechten Leitungen der Ausgangsschiene 639 sind der oberen Ausgangsstufe 14b zugeordnet, während die beiden linken Leitungen der Ausgabeschiene 639 der unteren Ausgangsstufe 40a zugeordnet sind. Es sei darauf hingewiesen, dass die Transistoren in den Schaltstufen wirksam sind, um lediglich einen Pfad vom Anschluß 16b bzw. 16b zu einer der Leitungen der Ausgabeschiene 40 durchzuschalten. Es ist ferner ersichtlich, dass jeder Pfad dieselbe Anzahl von Transistoren umfasst, unabhängig davon, welcher Pfad durch eine Schaltstufe abhängig von dem Bitmuster eingestellt wird.
  • Aus 6 ist ferner ersichtlich, dass bei dem gezeigten Ausführungsbeispiel ein Verzweigungspunkt durch Verwendung eines komplementären Operandenbits zusätzlich zu dem nichtinvertierten Operandenbit implementiert wird. Dies ermöglicht eine einfache Implementierung dahingehend, dass lediglich zwei Transistoren verwendet werden, und dass keine Untersuchung des Bits dahingehend erforderlich ist, ob das Bit eine 0 oder eine 1 hat. Alternativ könnte jedoch auch, obgleich es im Hinblick auf die Implementation und mögliche Sicherheitseinbußen nicht bevorzugt wird, eine Implementierung eingesetzt werden, bei der lediglich Single-Rail-Operanden den Schaltstufen zugeführt werden. In diesem Fall würde jeder Verzweigungspunkt eine zusätzliche Einrichtung dahingehend umfassen, um zu untersuchen, ob das zugeführte Bit eine 1 oder eine 0 ist, um einen entsprechenden Pfad durchzuschalten. In diesem Fall könnte der erfindungsgemäße Halbaddierer auch zur Single-Rail-Dual-Rail-Konversion verwendet werden, um eingangsseitig vorliegende Single-Rail-Daten in ausgangsseitige Dual-Rail-Daten zu konvertieren, wobei die ausgangsseitigen Dual-Rail-Daten ferner gemäß der Halbaddierervorschrift von den eingangsseitigen Single-Rail-Daten abgeleitet worden sind.
  • Die Funktionalität der beiden als Schalter fungierenden Transistoren beispielsweise 620 und 621, die den Verzweigungspunkt 50a in 5a darstellen, ist ersichtlich, wenn davon ausgegangen wird, dass im Datenmodus immer nur ein Transistor durchschaltet, während der andere Transistor sperrt, so dass immer nur ein Pfad entweder nach oben oder nach unten genommen wird, jedoch nie zwei Pfade gleichzeitig. Nachdem im Datenmodus die beiden Knoten 605 und 604, also die beiden Bits, die im Datenmodus den ersten Operanden darstellen, auf Vdd liegen, sind die Transistoren 620 und 621 im Vorbereitungsmodus beide gesperrt, so dass keine Querströme fließen können. Die Schaltstufe wird somit aufgrund der Tatsache, dass in der Eingangsstufe ein Precharge verwendet wird und in der Schaltstufe PMOS-Transistoren verwendet werden, im Vorbereitungsmodus automatisch dahingehend deaktiviert, dass keine Querströme von dem Knoten 16a bzw. 16b abfließen können. Würde die Dual-Rail-Eingangsstufe einer Discharge-Operation unterzogen werden, würde es bevorzugt, die Transistoren der Schaltstufen in NMOS-Technik mit entsprechendem Rechenpotential (Vss in diesem Fall) auszuführen.
  • Nachfolgend wird beispielhaft die transistormäßige Implementierung der Ausgangsstufe 14a erörtert, die insgesamt vier Transistoren 640, 641, 642 und 643 aufweist. Da als Rechenpotential 16a, 16b das hohe Potential Vdd genommen wird, wird in 6 als Vorbereitungspotential das niedrige Potential Vss 20a verwendet. Entsprechend wird auch bei der zweiten Ausgangsstufe 14b als Vorbereitungspotential das niedrige Potential Vss verwendet, also ein Potential, das sich von dem Rechenpotential Vdd unterscheidet.
  • Die Ausgangsstufen 14a, 14b werden im Vorbereitungsmodus mit einem Pre-Discharge-Signal beaufschlagt, das aufgrund der Ausführung der Transistoren 640643 in NMOS-Technik ein hohes Spannungssignal Vdd ist. Im Datenmodus liegt auf der Leitung 28a, 28b dagegen das niedrige Potential Vss an, um die Discharge-Transistoren 641, 640 zu sperren.
  • Wird die Ausgangsstufe 14a (genauso wie die Ausgangsstufe 14b) dagegen im Vorbereitungsmodus betrieben, so liegt Vdd auf den Leitungen 28a, 28b (die in der tatsächlichen Implementierung als gemeinsame Leitung ausgeführt sind, an. Dies führt dazu, dass die beiden Knoten 22a, 22b auf Vss gelegt werden, da die beiden Transistoren 640, 641, die in NMOS-Technik ausgeführt sind, durchgeschaltet werden. Dies führt unmittelbar dazu, dass der Transistor 643 ebenso gesperrt ist wie der Transistor 642. Die Transistoren 643, 642 haben daher im Vorbereitungsmodus keine Wirkung. Im Datenmodus sind dagegen, wie es ausgeführt worden ist, die Discharge-Transistoren 640 und 641 gesperrt. Im Datenmodus wird einer der Knoten 22a, 22b aufgrund der Tatsache, dass die Schaltstufe das Potential Vdd 16a entweder auf den Knoten 22a oder auf den Knoten 22b durchgeschaltet hat, hoch. Zur Erläuterung der Funktionsweise der Transistoren 642 und 643 wird davon ausgegangen, dass der Knoten 22b hoch ist. Dies führt dazu, dass der Transistor 642 durchgeschaltet wird, um den Knoten 22a sicher auf das niedrige Potential Vss zu legen. Damit wird gleichzeitig sichergestellt, dass der Transistor 643 gesperrt ist, was wiederum bewirkt, dass das Potential Vss, das auf der einen Seite des Transistors 643 anliegt, nicht an dem Knoten 22b anliegen kann, dahingehend, dass der Knoten 22b hoch bleibt, während der Knoten 22a sicher niedrig bleibt, so dass ein eindeutiges Ergebnis erhalten wird, nämlich dass das Bit SUM0 hoch ist, während das komplementäre Bit SUM0 niedrig ist.
  • Die Ausgangsstufe hat daher neben der Funktionalität des gewissermaßen Lieferns des nicht durch die Schaltstufe bestimmten Bits im Datenmodus (aufgrund des vorausgehenden Vorbereitungsmodus) auch die Funktionalität, im Datenmodus beide Bits und insbesondere das nicht durch die Schaltstufe gelieferte Bit gegenüber Ladungslecks zu stabilisieren.
  • Ferner hat die erfindungsgemäß bevorzugte Implementierung der Ausgangsstufen gemäß 6 den Vorteil, dass keine Querströme fließen, so dass die erfindungsgemäße Halbaddiererschaltung neben ihrer Eigenschaft der Flächeneffizienz und der Eigenschaft der hohen Performance auch einen niedrigen Stromverbrauch hat.
  • In den 6A und 6B sind ferner interne Knoten 700706 eingezeichnet, die alle innerhalb der Schaltstufe angeordnet sind und im Vorbereitungsmodus sowohl eingangsseitig als auch ausgangsseitig nicht mit irgendeinem definierten Potential gekoppelt sind. Vorzugsweise wird für jeden internen Knoten eine Knotenpotentialschaltung vorgesehen, um den Knoten im Vorbereitungsmodus mit dem Bezugspotential zu verbinden. Allerdings wird auch je nach Implementierung bereits das Behandeln wenigstens einiger der internen Knoten zu einer Verbesserung gegenüber einer Schaltung mit komplett floatenden internen Knoten führen, sodass bereits die Querströme erheblich reduziert sind. Ferner dürfte es in bestimmten Fällen auch genügen, nur die internen Knoten extra im Vorbereitungsmodus zu behandeln, die besonders anfällig für Restladungen und insbesondere auch besonders anfällig für Koppelkapazitäten sind. Damit kann auch in Schaltstufen mit einer hohen Anzahl von internen Knoten zumindest eine Erhöhung der Betriebssicherheit erreicht werden, ohne dass die Transistoranzahl der Schaltstufe durch eine übergroße Anzahl von Knotenpotentialschaltungen erheblich vergrößert wird.
  • 6C zeigt eine erfindungsgemäße bevorzugte Knotenpotentialschaltung 710 für einen internen Knoten. Die Knotenpotentialschaltung ist als Schalter ausgeführt, wobei ein Anschluss des Schalters mit dem internen Knoten verbunden ist, während der andere Anschluss des Schalters mit dem Bezugspotential verbunden ist. An den Steueranschluss des Schalters wird das Steuersignal angelegt. Bei dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung ist der Schalter als NMOS- oder PMOS-Transistor ausgeführt. Abhängig von der Transistorausführung des Schalters wird das Steuersignal dann, wenn es im Vorbereitungsmodus aktiv ist, einen logisch hohen oder logisch niedrigen Zustand haben. Dieser Zustand muss so gewählt sein, dass der Transistor in seiner entsprechend gewählten Ausführung als PMOS- oder NMOS-Transistor im Vorbereitungsmodus zwischen Source und Drain leitend wird, so dass die Knoten-Bezugspotential-Verbindung erhalten wird. Dagegen muss das Steuersignal derart gewählt sein, dass der Schalter-Transistor im Datenmodus geöffnet ist, dass also der interne Knoten vom Bezugspotential nichts merkt und gemäß der Rechenvorschrift des Rechenwerks und des bzw. der anliegenden Eingangsoperanden mit einem hohen oder niedrigen Potential verbunden wird.

Claims (7)

  1. Rechenwerk für Addiereschaltungen von Kryptographieprozessoren, mit folgenden Merkmalen: einer Dual-Rail-Eingangsstufe (10) zum Empfangen von wenigstens einem Eingangsoperanden und zum Ausgeben des Eingangsoperanden in nicht-invertierter Form an einem ersten Ausgang (11a) der Dual-Rail-Eingangsstufe (10) und des Eingangsoperanden in invertierter Form an einem zweiten Ausgang (11b) der Dual-Rail-Eingangsstufe (10) in einem Datenmodus, wobei die Eingangsstufe (10) ferner ausgebildet ist, um in einem Vorbereitungsmodus den ersten und den zweiten Ausgang (11a, 11b) auf dasselbe Potential zu bringen; einer Schaltstufe (12A, 12B, 12C), die ausgebildet ist, um gemäß einer Rechenvorschrift für ein Ausgabebit abhängig von dem wenigstens einen Eingangsoperanden ein Rechenpotential (16A, 16B, 16C) an einen Ausgang (18A, 18B, 18C) der Schaltstufe durchzuschalten, wobei das Rechenpotential an dem Ausgang das Ausgabebit oder eine invertierte Version des Ausgabebits darstellt; einer Dual-Rail-Ausgangsstufe (14A, 14B, 14C) mit einem Eingang, der mit dem Ausgang (18A, 18B, 18C) der Schaltstufe (12A, 12B, 12C) verbunden ist, und mit einem ersten Ausgang (26B) und mit einem zweiten Ausgang (26A), wobei in einem Datenmodus an dem ersten Ausgang (26B) das Ausgabebit angelegt ist, wobei in dem Datenmodus an dem zweiten Ausgang (26A) eine invertierte Version des Ausgabebits angelegt ist, und wobei in einem Vorbereitungsmodus der erste Ausgang (26B) und der zweite Ausgang (26A) auf dasselbe Vorbereitungspotential bringbar sind, wobei sich das Vorbereitungspotential (Vss) von dem Rechenpotential (Vdd) unterscheidet, wobei die Schaltstufe (12A, 12B, 12C) wenigstens einen internen Knoten (700706) aufweist, der in dem Vorbereitungsmodus weder mit einem Potential auf dem ersten oder zweiten Eingang (11a, 11b) der Eingangsstufe noch mit einem Potential auf dem Eingang der Ausgangsstufe (14A, 14B, 14C) gekoppelt ist; und einer Knotenpotentialschaltung (710) zum Koppeln des internen Knotens (700706) im Vorbereitungsmodus mit einem Bezugspotential (Vss) und zum Abkoppeln des internen Knotens (700706) im Datenmodus von dem Bezugspotential (Vss).
  2. Rechenwerk nach Anspruch 1, bei dem das Bezugspotential (Vss) kleiner als das Rechenpotential (Vdd) ist.
  3. Rechenwerk nach Anspruch 1 oder 2, bei dem die Knotenpotentialschaltung (710) für jeden internen Knoten (700706) einen Schalter aufweist, der zwischen dem internen Knoten und dem Bezugspotential (Vss) geschaltet ist, wobei ein Steuereingang mit einem Steuersignal (28E) beaufschlagbar ist, das in dem Vorbereitungsmodus aktiv ist, und das in dem Datenmodus inaktiv ist.
  4. Rechenwerk nach Anspruch 3, das ferner eine Steuereinrichtung (28) aufweist, um für die Eingangsstufe (10) und die Ausgangsstufe (14A, 14B, 14C) abwechselnd den Datenmodus und den Vorbereitungsmodus zu signalisieren, wobei die Steuereinrichtung ferner ausgebildet ist, um das Steuersignal der Knotenpotentialschaltung (710) zu liefern.
  5. Rechenwerk nach einem der vorhergehenden Ansprüche, bei dem das Bezugspotential ein Massepotential ist, so dass der wenigstens eine interne Knoten (700706) im Vorbereitungsmodus zum Massepotential entladen wird.
  6. Rechenwerk nach einem der vorhergehenden Ansprüche, bei dem die Ausgangsstufe (14A, 14B, 14C) ausgebildet ist, um in dem Vorbereitungsmodus den ersten und den zweiten Ausgang (26A, 26B) der Ausgangsstufe zu entladen.
  7. Rechenwerk nach einem der vorhergehenden Ansprüche, bei dem die Eingangstufe (10) ausgebildet ist, um in dem Vorbereitungsmodus den ersten Ausgang und den zweiten Ausgang der Eingangsstufe (10) auf ein hohes Potential (Vdd) zu laden.
DE102005011374A 2005-03-11 2005-03-11 Sicheres und schnelles Rechenwerk für Addiereschaltungen von Kryptographieprozessoren Expired - Fee Related DE102005011374B3 (de)

Priority Applications (5)

Application Number Priority Date Filing Date Title
DE102005011374A DE102005011374B3 (de) 2005-03-11 2005-03-11 Sicheres und schnelles Rechenwerk für Addiereschaltungen von Kryptographieprozessoren
FR0602010A FR2885428B1 (fr) 2005-03-11 2006-03-07 Unite de calcul sure et rapide.
KR1020060022760A KR100771272B1 (ko) 2005-03-11 2006-03-10 계산 유닛
US11/373,829 US7282983B2 (en) 2005-03-11 2006-03-10 Secure and fast calculating unit
JP2006067687A JP2006302260A (ja) 2005-03-11 2006-03-13 安全で迅速な計算ユニット

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102005011374A DE102005011374B3 (de) 2005-03-11 2005-03-11 Sicheres und schnelles Rechenwerk für Addiereschaltungen von Kryptographieprozessoren

Publications (1)

Publication Number Publication Date
DE102005011374B3 true DE102005011374B3 (de) 2006-07-13

Family

ID=36599637

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102005011374A Expired - Fee Related DE102005011374B3 (de) 2005-03-11 2005-03-11 Sicheres und schnelles Rechenwerk für Addiereschaltungen von Kryptographieprozessoren

Country Status (5)

Country Link
US (1) US7282983B2 (de)
JP (1) JP2006302260A (de)
KR (1) KR100771272B1 (de)
DE (1) DE102005011374B3 (de)
FR (1) FR2885428B1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102005013883B3 (de) * 2005-03-24 2006-06-08 Universität Potsdam Schaltung zum Vergleichen von zwei n-stelligen binären Datenwörtern
US8691462B2 (en) 2005-05-09 2014-04-08 Modine Manufacturing Company High temperature fuel cell system with integrated heat exchanger network
US20180089426A1 (en) * 2016-09-29 2018-03-29 Government Of The United States As Represented By The Secretary Of The Air Force System, method, and apparatus for resisting hardware trojan induced leakage in combinational logics

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3228018C2 (de) * 1981-07-27 1985-03-21 Nippon Telegraph & Telephone Public Corp., Tokio/Tokyo Schlüsselsystem für RSA-Kryptographie
DE3631992C2 (de) * 1986-03-05 1988-12-08 Holger 3300 Braunschweig De Sedlak
DE10215785A1 (de) * 2002-04-10 2003-10-30 Infineon Technologies Ag Rechenwerk und Verfahren zum Addieren

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6963644B1 (en) * 1999-04-07 2005-11-08 Matsushita Electric Industrial Co., Ltd. Multi-word arithmetic device for faster computation of cryptosystem calculations
US7188134B2 (en) * 2001-09-28 2007-03-06 Intel Corporation High-performance adder
DE10244738B3 (de) * 2002-09-25 2004-03-04 Infineon Technologies Ag Vorrichtung und Verfahren zum Umsetzen und Addierer
FI118654B (fi) * 2002-11-06 2008-01-31 Nokia Corp Menetelmä ja järjestelmä laskuoperaatioiden suorittamiseksi ja laite

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3228018C2 (de) * 1981-07-27 1985-03-21 Nippon Telegraph & Telephone Public Corp., Tokio/Tokyo Schlüsselsystem für RSA-Kryptographie
DE3631992C2 (de) * 1986-03-05 1988-12-08 Holger 3300 Braunschweig De Sedlak
DE10215785A1 (de) * 2002-04-10 2003-10-30 Infineon Technologies Ag Rechenwerk und Verfahren zum Addieren

Also Published As

Publication number Publication date
KR20060098335A (ko) 2006-09-18
US7282983B2 (en) 2007-10-16
JP2006302260A (ja) 2006-11-02
FR2885428B1 (fr) 2010-08-20
KR100771272B1 (ko) 2007-10-29
US20070063742A1 (en) 2007-03-22
FR2885428A1 (fr) 2006-11-10

Similar Documents

Publication Publication Date Title
DE69731700T2 (de) Arithmetischer Schaltkreis und arithmetisches Verfahren
DE102006004557A1 (de) Kryptografische Logikschaltung und Kryptografieverfahren
EP1677185B1 (de) Vorrichtung und Verfahren zum Umsetzen und Addiererschaltung
DE102005011374B3 (de) Sicheres und schnelles Rechenwerk für Addiereschaltungen von Kryptographieprozessoren
EP1664979B1 (de) Übergang zwischen maskierten repräsentationen eines wertes bei kryptographischen berechnungen
DE60113721T2 (de) Logischer schaltkreis mit variablen internen polaritäten
EP1324188A2 (de) Verfahren zum Multiplizieren zweier Faktoren aus dem Galois-Feld sowie Multiplizierer zum Durchführen des Verfahrens
DE10344647B3 (de) Schaltungsanordnung und Verfahren zur Verarbeitung eines Dual-Rail-Signals
EP0257362A1 (de) Addierer
DE3610875A1 (de) Subtrahierer in komplementaerer metalloxid-halbleitertechnologie
DE1187403B (de) Verfahren und Einrichtung zur logischen Verknuepfung zweier Operanden
DE10307942B3 (de) Halbaddierer
EP0224656B1 (de) Mehrstelliger Carry-Ripple-Addierer in CMOS-Technik mit zwei Typen von Addiererzellen
DE10227618B4 (de) Logikschaltung
DE10324049B4 (de) Integrierte Schaltung und Verfahren zum Betreiben der integrierten Schaltung
DE10202725B4 (de) Integrierte Schaltung und Schaltungsanordnung zur Umwandlung eines Single-Rail-Signals in ein Dual-Rail-Signal
EP1495542B1 (de) Schaltungsanordnung und verfahren zur erzeugung eines dual-rail-signals
EP1506473B1 (de) Ausspähungsgeschützte modulare inversion
DE102015116049B3 (de) Nulldetektionsschaltkreis und maskierter boolescher oder-schaltkreis
DE102004020576A1 (de) Datenverarbeitungsvorrichtung mit schaltbarer Ladungsneutralität und Verfahren zum Betreiben einer Dual-Rail-Schaltungskomponente
DE10201450B4 (de) Carry-Skip-Addierer für verschlüsselte Daten
EP1466245B1 (de) Rechenwerk und verfahren zum kombinieren eines ersten operanden mit einem zweiten operanden
DE10129241B4 (de) Multifunktionaler Rechner
WO2007012102A2 (de) Verfahren und schaltung zur abhörsicheren durchführung von rechenoperationen
EP1485779B1 (de) Rechenwerk und verfahren zum addieren

Legal Events

Date Code Title Description
8100 Publication of patent without earlier publication of application
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee