DE102007009526B4 - Vorrichtung zum Speichern eines binären Zustandes - Google Patents

Vorrichtung zum Speichern eines binären Zustandes Download PDF

Info

Publication number
DE102007009526B4
DE102007009526B4 DE102007009526.2A DE102007009526A DE102007009526B4 DE 102007009526 B4 DE102007009526 B4 DE 102007009526B4 DE 102007009526 A DE102007009526 A DE 102007009526A DE 102007009526 B4 DE102007009526 B4 DE 102007009526B4
Authority
DE
Germany
Prior art keywords
masking
binary
line
value
state
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.)
Active
Application number
DE102007009526.2A
Other languages
English (en)
Other versions
DE102007009526A1 (de
Inventor
Dr. Künemund Thomas
Andreas Wenzel
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 DE102007009526.2A priority Critical patent/DE102007009526B4/de
Priority to US12/038,393 priority patent/US7894242B2/en
Publication of DE102007009526A1 publication Critical patent/DE102007009526A1/de
Application granted granted Critical
Publication of DE102007009526B4 publication Critical patent/DE102007009526B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C17/00Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
    • G11C17/08Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards using semiconductor devices, e.g. bipolar elements
    • G11C17/10Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards using semiconductor devices, e.g. bipolar elements in which contents are determined during manufacturing by a predetermined arrangement of coupling elements, e.g. mask-programmable ROM
    • G11C17/12Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards using semiconductor devices, e.g. bipolar elements in which contents are determined during manufacturing by a predetermined arrangement of coupling elements, e.g. mask-programmable ROM using field-effect devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C17/00Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
    • G11C17/14Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
    • G11C17/18Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/20Address safety or protection circuits, i.e. arrangements for preventing unauthorized or accidental access

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Read Only Memory (AREA)
  • Semiconductor Memories (AREA)

Abstract

Speicherzelle (100) mit einer Wortleitung (150) für ein binäres Abfragesignal; einer ersten Maskierungsleitung (130) für einen ersten binären Maskierungswert; einer zweiten Maskierungsleitung (140) für einen zweiten binären Maskierungswert; einer ersten Bitleitung (110) für einen ersten Binärwert; einer zweiten Bitleitung (120) für einen zweiten Binärwert; und einer Schaltung, die mit der Wortleitung (150), der ersten Maskierungsleitung (130), der zweiten Maskierungsleitung (140), der ersten Bitleitung (110) und der zweiten Bitleitung (120) gekoppelt ist, um abhängig von einem ersten binären Maskierungszustand, der durch den ersten binären Maskierungswert an der ersten Maskierungsleitung (130) und den zweiten binären Maskierungswert an der zweiten Maskierungsleitung (140) definiert ist, einen ersten Zustand für den ersten Binärwert an der ersten Bitleitung (110) und einen zweiten, zu dem ersten binären Zustand komplementären, Zustand für den zweiten Binärwert an der zweiten Bitleitung (120) auszugeben, und in dem Fall eines zweiten, zu dem ersten Maskierungszustand komplementären, binären Maskierungszustandes, der durch den ersten binären Maskierungswert an der zweiten Maskierungsleitung (130) und den zweiten binären Maskierungswert an der ersten Maskierungsleitung (140) definiert ist, den ersten Zustand für den ersten Binärwert an der zweiten Bitleitung (120) und den zweiten Zustand für den zweiten Binärwert an der ersten Bitleitung (110) auszugeben, wobei die erste Maskierungsleitung (130) mit einem ersten Maskierungstransistor (190) und die zweite Maskierungsleitung (140) mit einem zweiten Maskierungstransistor (180) gekoppelt ist.

Description

  • Hintergrund
  • Die vorliegende Erfindung bezieht sich auf eine Vorrichtung zum Speichern eines binären Zustandes, wie sie beispielsweise im Bereich der Speicher für Sicherheitsanwendungen vorkommen kann.
  • Im Bereich der konventionellen Technik können Schaltnetze und Schaltwerke mikroelektronisch so ausgeführt sein, dass z. B. jedes Bit eines in einem Register gespeicherten Zustandes physikalisch durch genau einen elektrischen Knoten am Registerausgang dargestellt wird. Für die deshalb so genannte „Single-Rail-Schaltungstechnik” gilt Gleiches auch für alle Knoten innerhalb eines kombinatorischen Schaltnetzes zwischen den Registern, sowie für deren Eingänge. Einem logischen Wert eines (Zwischen-)Zustandsbits bzw. dessen Komplement entspricht im Allgemeinen genau ein elektrischer Knoten.
  • Im Bereich von Sicherheitsanwendungen sind insbesondere für Speicherbausteine verschiedene Angriffsmethoden bekannt, vor denen Speicherbausteine im Bereich der konventionellen Technik geschützt werden sollen. Die differentielle Stromprofilanalyse (DPA = Differential Power Analysis) ist eine häufige Methode zum Angriff auf ICs (IC = Integrated Circuit) bzw. Speicherbausteine. Diese Angriffe dienen auch der Beurteilung der Empfindlichkeit von Bausteinen für Sicherheitsanwendungen gegenüber gezielten Angriffen auf „vertrauliche” Informationen, wie beispielsweise Passwörter oder kryptographische Schlüssel. Für ein gegebenes Programm bzw. einen gegebenen Algorithmus werden bei diesen Angriffen mit statistischen Methoden gemessene Stromprofile, bzw. deren über einen oder mehrere Taktzyklen berechnete Ladungsintegrale, ausgewertet, wobei für eine Vielzahl von Programmausführungen, aus der Korrelation von systematischer Datenvariation und jeweiligem Ladungsintegral, Rückschlüsse auf die zu schützende Information gezogen werden können.
  • Die US 2005/0276095 A1 bezieht sich auf einen SRAM-Baustein, der durch die Verwendung eines Latches als Zwischenspeicher, d. h. die Verwendung gegengekoppelter Inverter, in der Lage ist, asynchron angesprochen zu werden. Die Schrift offenbart insbesondere drei verschiedene Schreibsignale, die über ein NOR-Gatter miteinander verknüpft werden können. Das Signal w.2 kann dabei zur Maskierung bestimmter Bits verwendet werden.
  • Die EP 0 669 623 B1 offenbart eine Halbleiter-Speichervorrichtung, die es insbesondere zu Testzwecken erlaubt, Daten verwürfelt zu speichern. Dies wird durch ein Datenverwürfelungsmittel (Scrambler) erreicht. Die Schrift offenbart, dass sich die Datenverwürfler außerhalb der Speicherbereiche befinden. Die Schrift lehrt ferner, beim Testen von Speicherfeldern möglichst zufällige Daten in den verschiedenen Speicherzellen zu verwenden, um gegenseitige Beeinflussungen möglichst statistisch auszuschließen.
  • Die US 2005/0094477 A1 beschäftigt sich mit CAM (CAM = Content Addressable Memory). Mit diesen Speichern ist es möglich, ein Datenwort anhand seines Inhalts zu identifizieren, im Gegensatz zu einer Identifikation anhand dessen Adresse. Dies ermöglicht beispielsweise eine schnelle Suche in einem Speicher. Das offenbarte Konzept beschäftigt sich daher mit einer schnellen Identifikation eines Datenwortes.
  • Es ist die Aufgabe der vorliegenden Erfindung, einen Speicher effektiver vor Angriffen zu schützen.
  • Zusammenfassung
  • Diese Aufgabe wird durch eine Speicherzelle nach Anspruch 1 und ein Verfahren gemäß Anspruch 17 gelöst.
  • Kurzbeschreibung der Figuren
  • Bevorzugte Ausführungsbeispiele werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
  • 1a ein Ausführungsbeispiel einer Vorrichtung zum Speichern;
  • 1b ein Ausführungsbeispiel einer Schaltung zum Speichern;
  • 2 ein Ausführungsbeispiel eines maskierenden Decoders für zwei Adressbits;
  • 3 ein Ausführungsbeispiel eines dynamischen Wortleitungstreibers zur Demaskierung;
  • 4 ein Ausführungsbeispiel eines Bitleitungsmultiplexers mit peripherer Schaltung;
  • 5 ein Ausführungsbeispiel eines maskierten Multiplexers für zwei Eingangs- und zwei Selektionssignale;
  • 6 ein Multiplexer für zwei Eingangssignale mit Maskierung in Transmission-Gate-Technologie;
  • 7 ein Ausführungsbeispiel eines Adresslatches mit Single to Dual-Rail-Konvertierung;
  • 8 ein Ausführungsbeispiel eines mROM Blockdiagramms; und
  • 9 ein Ausführungsbeispiel eines mROM Floorplans.
  • Detaillierte Beschreibung
  • Eine Möglichkeit, DPA Angriffe zumindest wesentlich zu erschweren, besteht darin, Daten zwischen Teilsystemen eines IC soweit wie möglich nur verschlüsselt auszutauschen bzw. zu übertragen. Das hierfür beste weil beweisbar sichere Kryptosystem ist die sogenannte One-Time-Pad-Verschlüsselung. Bei diesem Verfahren werden als Bitfolge codierte Klartexte m = (m1, m2, ...) verschlüsselt mit aus echten Zufallsfolgen gewonnenen Schlüsseln k = (k1, k2, ...) gemäß c = e(k, m) = (k1 ⊕ m1, k2 ⊕ m2, ...), d. h. ein Bit cj des Cipher-Textes c = e(m, k) ergibt sich aus der XOR-Verknüpfung kj ⊕ mj der korrespondierenden Bits vom Schlüssel k und Klartext m. Wegen k ⊕ k = 0 und 0 ⊕ k = k gilt kj ⊕ cj = m3, d. h. die Entschlüsselung von c, um den Klartext m wiederherzustellen, findet gemäß der gleichen bitweisen XOR-Verknüpfung statt.
  • Für das One-Time-Pad-Kryptosystem ist es wichtig, dass jede Schlüsselfolge nur je einmal zum Ver- und Entschlüsseln verwendet wird, denn andernfalls kann mit Hilfe von statistischen Methoden Information über Klartexte ermittelt werden.
  • Gemäß der obigen Beschreibung zur differentiellen Stromprofilanalyse DPA folgt, dass die auf einem IC integrierten Schaltungen gegenüber DPA-Angriffen im Idealfall so ausgelegt sein sollten, dass sie unabhängig von den zu verarbeitenden Daten immer das gleiche Stromprofil liefern. Für die Single-Rail-Datenpfad-Implementierung ist dies jedoch sicher nicht der Fall. Hier ist der zeitliche Verlauf der Zustände einer Schaltung zugeordneter Ladungsintegrale eine Funktion derjenigen Knoten, bzw. elektrischen Kapazitäten, die elektrisch umgeladen werden und weist somit eine starke Abhängigkeit von den zeitlichen Änderungen der zu verarbeitenden Daten auf.
  • Ausführungsbeispiele setzen zur Implementierung der Daten- und ggf. auch Adresspfade die Dual-Rail-Logic ein. Im Gegensatz zur herkömmlichen Single-Rail-Logic, bei der jedes Bit innerhalb eines Daten- oder Signalpfades physikalisch durch genau einen elektrischen Knoten k eines Schaltnetzes oder Schaltwerkes dargestellt wird, wird in Ausführungsbeispielen mit Dual-Rail-Logic jedes Bit durch zwei Knoten k und kq dargestellt, wobei dieses Bit einen gültigen logischen Wert aufweist, wenn k dem wahren logischen Wert b dieses Bits und kq dem negierten logischen Wert bq entspricht.
  • Ausführungsbeispiele erreichen die gewünschte Invarianz der Ladungsintegrale dadurch, dass zwischen je zwei Zuständen mit gültigen logischen Werten (b, bq) = (1, 0) oder (0, 1) ein sogenannter Vorladezustand (engl. Precharge) eingefügt ist, für den sowohl k als auch kq auf das selbe elektrische Potential geladen werden, also logisch ungültige Werte (1, 1) oder (0, 0) annehmen. Für den Vorladezustand (1, 1) könnte also eine Zustandsfolge aussehen wie folgt:
    (1, 1) → (0, 1) → (1, 1) → (1, 0) → (1, 1) → (1, 0) → (1, 1) → (0, 1) → ... .
  • Für jede beliebige solcher Zustandsfolgen gilt, dass bei jedem Übergang (1, 1) → (b, bq) genau ein Knoten von 1 nach 0 umgeladen wird, und für alle (b, bq) → (1, 1) genau ein Knoten von 0 nach 1, unabhängig vom logisch gültigen Wert b des in Frage stehenden Zustandsbits. Analoges gilt für Zustandsfolgen mit dem Vorladezustand (0, 0).
  • Daraus aber folgt, dass die diesen Zustandsfolgen entsprechenden Ladungsintegrale unabhängig von der Abfolge (b, bq) der logisch gültigen Werte sind, falls nur dafür Sorge getragen wird, dass die Knoten k und kq gleiche elektrische Kapazitäten aufweisen. Das Stromprofil eines so implementierten Datenpfades hängt also nicht von zeitlichen Variationen der zu verarbeitenden Daten ab, Ausführungsbeispiele können somit DPA resistent sein.
  • Die 1a zeigt eine Vorrichtung 100 zum Speichern eines binären Zustandes, der durch einen ersten Binärwert und einen dazu komplementären zweiten Binärwert definiert ist, wobei die Vorrichtung 100 durch ein Abfragesignal abfragbar ist, um abhängig von einem binären Maskierungszustand, den ersten Binärwert an einem ersten Ausgang 110 und den zweiten Binärwert an einem zweiten Ausgang 120 oder umgekehrt auszugeben.
  • In Ausführungsbeispielen kann der Maskierungszustand durch einen ersten Maskierungswert und einem dazu komplementären zweiten Maskierungswert definiert sein, wobei die Vorrichtung 100 dann einen Eingang 130 für den ersten Maskierungswert und einen Eingang 140 für den zweiten Maskierungswert aufweisen kann. Die Vorrichtung 100 kann ferner einen dritten Eingang 150 für das Abfragesignal aufweisen.
  • Ausführungsbeispiele können in der Dual-Rail-Implementierung zum Speichern des binären Zustandes implementiert sein. Ferner können die Binärwerte nach dem OTP Verfahren gespeichert bzw. ausgegeben werden. In einem Ausführungsbeispiel erfolgt das Speichern in einer ROM-Zelle (ROM = Read Only Memory), wobei in anderen Ausführungsbeispiele auch andere Speicherzellen, wie beispielsweise RAM (RAM = Random Access Memory), verwendet werden können. Das Abfragesignal kann in Ausführungsbeispielen über eine Wortleitung in das Innere der Vorrichtung 100 geführt werden, wobei die Wortleitung als Sicherheitsverdrahtung, wie beispielsweise durch Polysilizium oder in einer ersten Metallschicht realisiert, ausgeführt sein kann. Unter der ersten Metallschicht wird an dieser Stelle in einem Ausführungsbeispiel diejenige Metallschicht verstanden, die beispielsweise in einer Implementierung der Vorrichtung 100 auf einem Chip oder Substrat, am weitesten von einer Oberfläche der Vorrichtung 100 entfernt ist. In einem anderen Ausführungsbeispiel liegt die Wortleitung in einer Metallschicht, wobei die Metallschicht wenigstens unter einer weiteren Metallschicht und einer Isolationsschicht angeordnet ist.
  • In Ausführungsbeispielen können ferner die Ausgangsleitungen für den ersten und den zweiten Binärwert, sowie die Eingangsleitungen für den ersten Maskierungswert und den zweiten Maskierungswert durch Sicherheitsverdrahtung, wie beispielsweise durch Polysilizium oder in einer inneren Metallschicht realisiert sein. In einem anderen Ausführungsbeispiel können die Ein- oder Ausgangsleitungen in einer Metallschicht realisiert sein, wobei die Metallschicht wenigstens unter einer weiteren Metallschicht und einer Isolationsschicht angeordnet ist.
  • In einem weiteren Ausführungsbeispiel kann die Wortleitung zwischen zwei Ein- und Ausgangsleitungen angeordnet sein, wobei die, die Wortleitung umgebenden Leitungen eine abschirmende Wirkung haben, die in einem Ausführungsbeispiel einen Faradayischen Käfig zur Abschirmung von elektromagnetischen Signalen von der Wortleitung bilden.
  • In einem weiteren Ausführungsbeispiel ist die Vorrichtung 100 durch eine Schaltung 100 zum Speichern eines binären Zustandes mit einem Eingang 150 für ein binäres Abfragesignal, einem Eingang 130 für einen ersten Maskierwert, einem Eingang 140 für einen zweiten Maskierwert, einem Ausgang 110 für einen ersten Binärwert und einem Ausgang 120 für einen zweiten Binärwert, realisiert.
  • In einem Ausführungsbeispiel ist die Schaltung ausgebildet, um an dem Ausgang 120 für den zweiten Binärwert den komplementären ersten Binärwert auszugeben. Ferner kann die Schaltung dazu ausgebildet sein, um an dem Eingang 140 für den zweiten Maskierwert den komplementären ersten Maskierwert zu empfangen. In einem weiteren Ausführungsbeispiel kann die Schaltung 100 ausgebildet sein, um den Ausgang 110 für den ersten Binärwert zu invertieren, wenn an dem Eingang 130 für den ersten Maskierwert ein invertierter Maskierwert anliegt.
  • In anderen Ausführungsbeispielen kann der Eingang 150 für das Abfragesignal mit einem Feldeffekttransistor (FET = Feldeffekttransistor) über eine Wortleitung gekoppelt sein. Die Wortleitung kann wiederum in Polysilizium oder einer ersten Metallschicht realisiert sein. Alternativ kann die Wortleitung in einer Metallschicht realisiert sein, wobei die Metallschicht wenigstens unter einer weiteren Metallschicht und einer Isolationsschicht angeordnet ist.
  • In weiteren Ausführungsbeispielen kann die Schaltung 100 mehrere Feldeffekttransistoren umfassen, beispielsweise umfasst die Schaltung 100 einen ersten FET, der gegen ein Bezugspotential geschaltet ist, über einen zweiten FET mit dem Ausgang 110 für den ersten Binärwert gekoppelt ist und über einen dritten FET mit dem Ausgang 120 für den zweiten Binärwert gekoppelt ist. Dabei kann in einem Ausführungsbeispiel der erste FET durch die Wortleitung ansteuerbar sein.
  • In einem weiteren Ausführungsbeispiel kann der zweite FET über den Eingang 140 für den zweiten Maskierwert und der dritte FET über den Eingang 130 für den ersten Maskierwert ansteuerbar sein.
  • In einem weiteren Ausführungsbeispiel ist die Schaltung 100 in einer Speicherzelle 100 mit einer Wortleitung 150 für ein binäres Abfragesignal, einer ersten Maskierungsleitung 130 für einen ersten binären Maskierungswert, einer zweiten Maskierungsleitung 140 für einen zweiten binären Maskierungswert, einer ersten Bitleitung 110 für einen ersten Binärwert und einer zweiten Bitleitung 120 für einen zweiten Binärwert realisiert. Die Speicherzelle umfasst ferner eine Schaltung, die mit der Wortleitung 150, der ersten Maskierungsleitung 130, der zweiten Maskierungsleitung 140, der ersten Bitleitung 110 und der zweiten Bitleitung 120 gekoppelt ist, um abhängig von einem ersten binären Maskierungszustand, der durch den ersten binären Maskierungswert an der ersten Maskierungsleitung 130 und den zweiten binären Maskierungswert an der zweiten Maskierungsleitung 140 definiert ist, einen ersten Zustand für den ersten Binärwert an der ersten Bitleitung 110 und einen zweiten, zu dem ersten binären Zustand komplementären, Zustand für den zweiten Binärwert an der zweiten Bitleitung 120 auszugeben, und in dem Fall eines zweiten, zu dem ersten Maskierungszustand komplementären, binären Maskierungszustandes, der durch den ersten binären Maskierungswert an der ersten Maskierungsleitung 130 und den zweiten binären Maskierungswert an der zweiten Maskierungsleitung 140 definiert ist, den ersten Zustand für den ersten Binärwert an der zweiten Bitleitung 120 und den zweiten Zustand für den zweiten Binärwert an der ersten Bitleitung 110 auszugeben.
  • In einem weiteren Ausführungsbeispiel kann die Speicherzelle 100 ausgebildet sein, um an der zweiten Maskierungsleitung 140 für den zweiten Maskierungswert den komplementären ersten binären Maskierungswert zu empfangen. Die Speicherzelle 100 kann ausgebildet sein, um den ersten Binärwert zu invertieren, wenn für den ersten binären Maskierungswert ein invertierter Maskierungswert anliegt. Ferner kann die Wortleitung 150 für das binäre Abfragesignal mit einem Steuereingang eines Transistors gekoppelt sein und/oder in Polysilizium oder in einer Metallschicht realisiert sein, wobei die Metallschicht wenigstens unter einer weiteren Metallschicht und einer Isolationsschicht angeordnet ist. In einem Ausführungsbeispiel weist die Speicherzelle 100 eine ROM-Zelle oder eine Kachel von ROM-Zellen auf. Die Wortleitung 150 kann zwischen zwei der Bit- oder Maskierungsleitungen 110; 120; 130; 140 der Speicherzelle 100 angeordnet sein.
  • Ein maskierter Festwertspeicher, d. h. ein One-Time-Pad masked Read-Only Memory, OTP mROM (mROM = masked ROM), für Sicherheitsanwendungen realisiert somit ein weiteres Ausführungsbeispiel. Vorteilhaft bei diesem Festwertspeicher ist die Resistenz gegenüber DPA, Electromagnetic Analysis (EMA = Electromagnetic Analysis) und invasivem Abhören, dem sogenannten Probing.
  • Die Ausführungsbeispiele der vorliegenden Erfindung erreichen diese Resistenz beispielsweise durch eine bitweise XOR-Maskierung aller Adressen und Daten mit zeitlich variierenden sogenannten „One-Time-Pad (OTP)” Masken. Ferner umfassen die Ausführungsbeispiele eine Dual-Rail-Implementierung wesentlicher Teile des Adress- bzw. Datenpfades, d. h. ladungsneutrale Schaltungen sowie eine Selbsttaktung, die einzelne Komponenten des Festwertspeichers autonom taktet. Somit vermeiden die Ausführungsbeispiele kurzzeitige Pulse auf Signalleitungen, die aufgrund von Laufzeitunterschieden entstehen könnten (diese Impulse werden auch engl. glitches genannt) und zumindest ein theoretisches DPA-Angriffsrisiko darstellen. Ferner verfügen die Ausführungsbeispiele über eine Sicherheitsverdrahtung von besonders relevanten Signalen oder Signalpfaden. Wortleitungen können beispielsweise in MOS-Gate Polysilizium (MOS = Metalloxidschicht) oder in Metall 1, d. h. in einer ersten oder inneren Metallschicht eines Chips, implementiert sein, Bitleitungen in Metall 1 usw. Die Ausführungsbeispiele, die in Chips implementiert sind, verfügen ferner über eine sehr dichte Packung sowie über eine vertikale Schichtung der Verdrahtung zur Verhinderung der Machbarkeit von Probing und EMA, da durch die entsprechende Packung ein Faradayischer Käfig beispielsweise um eine Wortleitung herum realisiert werden kann.
  • Die Ausführungsbeispiele bieten ferner die Möglichkeit, eine Verwürfelung oder Verflechtung von Wort- und Bitleitungen zu realisieren, sowie deren Verteilung auf mehrere Kacheln von beispielsweise mROM-Zellen, womit die Zuordnung von Adressen und zugehörigen Daten noch wesentlich weiter erschwert wird.
  • Die Ausführungsbeispiele bieten ferner, wie beispielsweise beim AES (AES = Advanced Encrpytion Standard), die Möglichkeit einer zeitlich zufälligen, von geeignet erzeugten Zufallsbits gesteuerten, Abfolge der mROM-Adressen bzw. der Zugriffe auf das mROM.
  • Die Ausführungsbeispiele finden somit beispielsweise Verwendung in sogenannten S-Boxen (S = Substitution) für den DES (DES = Data Encryption Standard), den AES, sowie für Befehlsdecoder in CPUs (CPU = Central Processing Unit) für Chipkartenkontroller mit hohen Sicherheitsanforderungen. Nachteile von konventionellen Systemen, die beispielsweise in einer begrenzten Resistenz gegen DPA, EMA und Probing liegen, werden somit durch die Ausführungsbeispiele vermieden. Ferner verbessern Ausführungsbeispiele gegenüber konventionellen Systemen den Flächen- und Energieaufwand und realisieren eine höhere Rechengeschwindigkeit. Ferner reduzieren die Ausführungsbeispiele den Einfluss kapazitiver Unsymmetrien auf die Empfindlichkeit gegenüber DPA.
  • 1b zeigt eine mROM-Zelle 160. Die mROM-Zelle 160 ist auf logisch 0 programmiert, wobei eine Programmierung auf logisch 1 durch die gestrichelt eingezeichneten Verbindungen angedeutet ist. Die mROM-Zelle 160 zeigt eine Wortleitung 150, an der ein binäres Abfragesignal aufgeschaltet werden kann. Ferner zeigt die mROM-Zelle 160 einen ersten Ausgang 110 für einen ersten Binärwert bl und einen zweiten Ausgang 120 für einen zweiten Binärwert blq, der komplementär zum ersten Binärwert bl ist. Ferner zeigt die mROM-Zelle 160 einen ersten Eingang 130 für einen ersten Maskierwert rk und einen zweiten Eingang 140 für einen zweiten Maskierwert rkq, der komplementär zu dem ersten Maskierwert rk ist.
  • In den nachfolgenden Figuren sind die Schaltelemente, die vorwiegend durch n-Kanal und p-Kanal FETs realisiert sind, durch ihre Steuersignale bezeichnet, die in Kleinbuchstaben bzw. überstrichenen Kleinbuchstaben, wenn ein invertiertes Signal bezeichnet wird, gekennzeichnet sind. Aus Gründen der Übersichtlichkeit wird auf die Einführung zusätzlicher Bezugszeichen für alle Bauelemente verzichtet. In Dual-Rail-Logik implementierte Signale sind durch Kleinbuchstaben, wie beispielsweise rk und bl in 1b und die Komplementärkomponenten durch ein nachfolgendes kleines q, wie beispielsweise rkq und bkq in 1b gekennzeichnet.
  • Beispielhaft zeigt die 1b eine Implementierung einer mROM-Zelle 160 mit n-Kanal-FETs. Diese spezielle Implementierung stellt lediglich ein Ausführungsbeispiel dar und ist nicht einschränkend, andere Ausführungsbeispiele sind denkbar in Implementierungen mit p-Kanal-FETs oder anderen Transistoren bzw. elektrischen Schaltern. 1b zeigt ferner einen ersten Transistor 170, der auch mit TN1 bezeichnet ist, der mit dem Eingang 150 gekoppelt ist und über die Wortleitung wl ansteuerbar ist. Der Transistor 170 ist einerseits mit einem Referenzsignal oder einem Bezugspotential 195 gekoppelt und über einen zweiten FET 180, der auch mit TN2 bezeichnet ist, mit dem Ausgang 110 für den ersten Binärwert. Ferner ist der Transistor 170 über einen dritten FET 190, der auch mit TN3 bezeichnet ist, mit dem Ausgang 120 für den zweiten Binärwert gekoppelt. Der zweite FET 180 ist gemäß der 1b von dem zweiten Maskierungswert rkq bzw. über den Eingang 140 ansteuerbar. Der dritte FET 190 ist über den ersten Maskierungswert rk bzw. über den Eingang 130 ansteuerbar.
  • Die in der 1b dargestellte Verschaltung entspricht somit einer gespeicherten logischen 0, wobei die gestrichelten Linien die Ansteuerung der Transistoren 180 und 190 andeuten, für den Fall, dass eine logische 1 gespeichert wäre. Die Betrachtung des Ausführungsbeispiels der gespeicherten logischen 0 ist nicht einschränkend zu verstehen.
  • Gemäß der 1b wird das Bitleitungspaar (bl, blq) für eine aktivierte Wortleitung, wl = 1, und den Maskierwerten (rk, rkq) = (0, 1) von seinem Vorladezustand (1, 1) aus in den Zustand (0, 1) gebracht, während für (rk, rkq) = (1, 0) die Bedeutungen von bl und blq vertauscht werden, denn (bl, blq) nimmt dann den Zustand (1, 0) an. In Ausführungsbeispielen wird durch hinreichend häufiges bzw. unregelmäßiges Wechseln von (rk, rkq), auch jedes Mal die Bedeutung von bl und blq vertauscht. Somit kann das DPA-Angriffsrisiko reduziert werden, in einem Ausführungsbeispiel sogar verhindert werden, Probing wird ebenfalls erheblich erschwert.
  • Die 2 zeigt ein Ausführungsbeispiel eines maskierten Decoders für zwei Adressbits a1 und a0 mit den Masken k1 und k0, während das Ausgangssignal z mit k' maskiert ist. Die Schaltung in 2 ist in Dual-Rail-Schaltungstechnik mit Precharge ausgeführt, insbesondere in DCVSL (DCVSL = Dual-Cascade Voltage Switch Logic). Mit dem Signal en = 0 befindet sich die Schaltung im Precharge-Zustand (z, zq) = (0, 0), wobei in einem Ausführungsbeispiel dafür gesorgt wird, dass keiner der Pull-Down-Pfade leitend ist, solange en = 0 gilt. Dies kann beispielsweise dadurch erreicht werden, dass a1, a0 und die jeweiligen Komplemente also a1 und a0 durch geeignete Schaltungen auf 0 gehalten werden, bis mit en = 1 der Bewertungsvorgang ausgelöst wird. Eine solche Schaltung wird im nachfolgenden anhand der 7 noch weiter erläutert, an dieser Stelle sei vorausgesetzt, dass die Pull-Down-Pfade nicht leitend sind, solange en = 0 gilt. Eine alternative Realisierung dieser Bedingung ergäbe sich durch einen weiteren mit en am Gate gesteuerten n-Kanaltransistor, der zwischen Masse und die in 2 mit Masse verbundenen Transistoren geschaltet werden würde. Die in der 2 gezeigte Schaltung realisiert also die logische Funktion
    Figure DE102007009526B4_0002
  • Beispielhaft wird im Folgenden die Funktion des Schaltungszweiges 200 erläutert, der die Funktion (a0 ⊕ k0) realisiert. Aus dem Schaltungszweig 200 ist ersichtlich, dass sich dieser wiederum aus zwei Zweigen zusammensetzt, von denen jeweils einer leitend wird, wenn die Signale a0 und k0 unterschiedliche logische Werte annehmen, also für (a0, k0) = (1, 0) bzw. für (a0, k0) = (0, 1), was der XOR-Operation entspricht. Analog zu diesem Beispiel lassen sich die anderen Schaltungszweige in der 2 und in den nachfolgenden Figuren analysieren.
  • Die in der 2 und in den folgenden Figuren mit VDD bezeichneten Anschlüsse sind in den jeweiligen Ausführungsbeispielen mit der Versorgungsspannung, wie beispielsweise +1,5 V, beschaltet.
  • Die 3 zeigt ein Ausführungsbeispiel eines dynamischen Wortleitungstreibers mit Demaskierung. Der dynamische Wortleitungstreiber realisiert die Funktion z = en·(a ⊕ k).
  • Die beiden Transistoren, deren Steueranschlüsse mit en bezeichnet sind (von engl. enable), dienen wiederum dazu, die Schaltung in einen Precharge-Zustand zu versetzen. Der dynamische Wortleitungstreiber dient zur Demaskierung der mit k maskierten ausdecodierten (one-hot) Wortleitungsadresse a. Der Ausgang z ist beispielsweise mit einer Wortleitung, wie z. B. der Leitung wl aus 1b, verbunden. In einem weiteren Ausführungsbeispiel kann der mit en am Gate verbundene n-Kanaltransistor weggelassen werden, wenn a bzw. k und deren Komplemente Bedingungen erfüllen, die den oben unter 2 beschriebenen entsprechen, d. h. wenn sie während der Precharge-Phase auf 0 gehalten werden.
  • Die 4 zeigt ein Ausführungsbeispiel eines Bitleitungsmultiplexers mit peripherer Beschaltung. Von links nach rechts zeigt die 4 zunächst einen Pass-Gate-Muliplexer 400 für zwei Bitleitungspaare (b0, b0q) und (b1, b1q), und dem mit k maskierten Auswahlsignal s. Der Pass-Gate-Multiplexer 400 realisiert die beiden Funktionen y = (s ⊕ k)·b1 + s⊕k·b0, yq = (s ⊕ k)·b1q + s ⊕ k·b0q.
  • Der Pass-Gate-Multiplexer dient somit zur Auswahl eines von zwei mit der selben Maske rk beaufschlagten Bitleitungspaares, wobei das Resultat y dieser Operation die selbe Maske rk aufweist. Diese Bedingung kann auch durch weitere eingangs- bzw. ausgangsseitige Pass-Gate-XOR-Stufen realisiert sein.
  • In der 4 dient der Signaleingang en mit den zugehörigen p-Kanal-Transistoren zur Realisierung des Precharge-Zustandes. Darüber hinaus enthält die 4 eine Hold-Funktion, die durch die p-Kanalkreuzkopplung 405 realisiert ist, sowie ein Datenausgangs-Latch 410, mit dem Eingang rdq als Aktivierungssignal, wobei rdq und die mit ihm verbundenen Transistoren auch weggelassen werden können, wenn das zeitliche Verhalten von en bestimmte, von der mROM-Gesamtschaltung abhängige Bedingungen erfüllt, die in Ausführungsbeispielen realisiert sein können.
  • Die 5 zeigt ein Ausführungsbeispiel eines maskierten Multiplexers für zwei Eingangs- und zwei Selektionssignale. 5 zeigt ein in DCVSL ausgeführten Multiplexer für zwei mit k1 und k0 maskierte Dateneingänge a1 und a0, sowie mit l1 und l0 maskierte Auswahlsignale s1 und s0. Da gemäß der Schaltung in 5 für zwei Eingänge s1 gleich dem Komplement von s0 ist, kann die Schaltung auch in Ausführungsbeispielen weiter vereinfacht werden, denn die eine der Kaskaden für s1 oder l1 kann doppelt genutzt werden, diese redundanten Kaskaden wurden jedoch beibehalten, da so die Verallgemeinerung eines maskierten Multiplexers von zwei auf mehrere Dateneingänge leichter ersichtlich wird. Der Datenausgang z ist mit k' maskiert und der Multiplexer realisiert die Funktion
    Figure DE102007009526B4_0003
  • Die 6 zeigt einen in Transmission-Gate-Schaltungstechnik ausgeführten Multiplexer für zwei Dateneingänge a1 und a0, sowie das mit k maskierte Auswahlsignal s. Die mit dem Multiplexer realisierte Funktion ergibt sich zu z = (s ⊕ k)·a1 + s ⊕ k·a0.
  • Daraus geht hervor, dass der Multiplexer dazu geeignet ist, einen von zwei mit der selben Maske beaufschlagten Dateneingängen auszuwählen, wobei auch das Resultat z dieser Operation die selbe Maske aufweist.
  • Die 7 zeigt ein bereits oben erwähntes Adresslatch mit gleichzeitiger Umsetzung eines Single-Rail-Eingangs a zu einem Dual-Rail-Ausgang (z, zq). Gemäß der Schaltung in 7 ergibt sich für (en, enn) = (1, 0), dass der Wert von a in das eingangsseitige Latch übernommen wird, während sich die Ausgangsstufe im Precharge-Zustand (z, zq) = (0, 0) befindet. Mit dem Wechsel von (en, enn) nach (0, 1) wird dann der zuvor übernommene Wert von a in Dual-Rail-Gestalt, d. h. komplementär, auf (z, zq) ausgegeben.
  • Ferner kann in weiteren Ausführungsbeispielen, das beispielhaft in der 8 dargestellt ist, ein System mit einem Feld (840) von Speicherzellen realisiert sein, wobei die Wortleitungen einer Mehrzahl von Speicherzellen gekoppelt sind und das System ferner einen Wortleitungsdecoder (870) umfasst, der mit den Wortleitungen des Feldes (840) von Speicherzellen gekoppelt ist und über erste Adressleitungen ansteuerbar ist. Das System kann ferner einen Bitleitungsmultiplexor (850) aufweisen, der mit den Bitleitungen und den Maskierungsleitungen des Feldes (840) von Speicherzellen gekoppelt ist, über zweite Adressleitungen ansteuerbar ist und Ausgangsleitungen für maskierte Binärwerte aufweist.
  • Der Wortleitungsdecoder (870) kann eine weitere Eingangsleitung für weitere binäre Maskierungswerte aufweisen, um die weiteren binären Maskierungswerte mit Werten der ersten Adressleitungen zu verknüpfen. Der Wortleitungsdecoder (870) kann beispielsweise durch einen maskierten Adressdecoder (820) und einen Wortleitungstreiber (830) realisiert sein. Der Bitleitungsmultiplexor (850) kann eine Eingangsleitung für binäre Maskierungswerte umfassen, um die binären Maskierungswerte mit Werten der zweiten Adressleitungen zu verknüpfen. Der Bitleitungsmultiplexor (850) kann ferner weitere Eingangsleitungen für weitere binären Maskierungswerte aufweisen, um basierend auf den weiteren binären Maskierungswerten die Markierungsleitungen des Feldes (840) von Speicherzellen anzusteuern.
  • In weiteren Ausführungsbeispielen kann eine Speicherzelle oder ein System gemäß obiger Beschreibung auf einer Smartcard, Chipcard oder in einem S-Box-Rom realisiert sein.
  • 8 zeigt ein Ausführungsbeispiel eines Blockdiagramms eines mROM. Das Blockdiagramm in 8 zeigt den mROM-Adress- bzw. Datenfluss. 8 zeigt ein Adresslatch mit Single-to-Dual-Rail-Konvertierung 810, das gemäß der 7 realisiert sein könnte. 8 zeigt ferner einen maskierten Adress-Decoder 820, der gemäß der 2 realisiert sein kann. Ferner zeigt 8 einen Wortleitungstreiber 830, der beispielsweise gemäß der 3 implementiert werden kann. In einem Ausführungsbeispiel kann die maskierte ROM-Zelle 840 gemäß einer Mehrzahl von maskierten ROM-Zellen aus dem Ausführungsbeispiel der 1 zusammengesetzt werden. Die 8 zeigt ferner einen maskierten Bitleitungsmultiplexer 850 mit Peripheriebeschaltung gemäß der 4. Ferner zeigt die 8 den Kontrollblock 860, der die en-Signale für die einzelnen Komponenten zur Verfügung stellt, und somit eine Selbsttaktung realisiert.
  • Der Kontrollblock 860 koordiniert ferner die Precharge-Zustände der einzelnen Komponenten. Die einzelnen Signale, die zwischen den Funktionsblöcken 810860 ausgetauscht werden, sind in der 8 bezeichnet und werden im Folgenden näher erläutert. Dem Adresslatch 810 werden von außen Adresseingänge mAdr mit einer Breite von a Bit zur Verfügung gestellt, die mit einer Maske maskiert sind, die sich aus einem weiteren Eingangssignal mask mit einer Breite von m Bit ergibt. Aus diesen beiden Eingangssignalen kann das Adresslatch 810 die a_” Bit breiten mAdr_msb (msb = most significant bit) höchstwertigen Adressen zur Auswahl an den maskierten Adress-Decoder 820 weitergeben, der basierend auf einer Maske mask_msb mit einer Breite von m_msb Bit, deren Demaskierung vornehmen kann.
  • Das Maskierungssignal mask_msb ergibt sich aus dem Eingangssignal mask, wobei verschiedene Ausführungsbeispiele denkbar sind, in einem Ausführungsbeispiel ergibt sich dieses Signal direkt aus dem Eingangssignal, in einem anderen Ausführungsbeispiel kann es aus dem Eingangssignal hergeleitet werden, beispielsweise auch unter Zuhilfenahme von Zufallsgeneratoren oder Pseudozufallsgeneratoren.
  • Der maskierte Adressdecoder 820 kann nun an den Wortleitungstreiber 830 die Signale mask_Wl mit einer Breite von m_mwl Bit zur Demaskierung der Signale mWl mit einer Bitbreite von a_mWl weitergeben. Der Wortleitungstreiber 830 ist dann in der Lage, aus diesen Signalen die Wortleitungssignale mit einer Breite von a_mWl Bit zu extrahieren, die im Ausführungsbeispiel in der 8 als Klartext vorliegen. Basierend auf diesen Signalen kann nun die maskierte ROM-Zelle 840 einen Adressbereich auslesen, und diesen in einer Breite von d_mbl Bit in einem Signal mBl dem maskierten Bitleitungsmultiplexer 850 zur Verfügung stellen. Der maskierte Bitleitungsmultiplexer 850 erhält von dem Adresslatch 810 ferner die Signale mAdr_lsb (lsb = least significant bit) in einer Breite von a_lsb Bit und zu dessen Maskierung das Signal mask_lsb in einer Breite von m_lsb Bit. Basierend auf diesen Signalen kann dann der maskierte Bitleitungsmultiplexer 850 aus den von dem maskierten ROM-Zellenfeld 840 bereitgestellten Datenbereich die gewünschten Daten extrahieren und am Ausgang als mDo in einer Breite von d Bit zur Verfügung zu stellen. Der maskierende Bitleitungsmultiplexer erhält ferner von dem Adresslatch das Signal mask_dbl, das dieser weiter an das maskierte ROM-Zellenfeld 840 leitet, und auf dessen Basis die Datenbereiche maskiert werden können, d. h. diese Signale erlauben die bitweise Umschaltung zwischen normaler und komplementärer Darstellung des Datenbereichs.
  • Der Kontrollblock 860 koordiniert wie oben beschrieben dabei die einzelnen Precharge-Zustände der Komponenten, und realisiert die Selbsttaktung.
  • In der 8 bedeuten also mAdr die a Bit weiten maskierten Adresseingänge, mask die m Bit weiten Masken für zumindest mAdr und mDo, die d Bit weiten und mit mask maskierten Ausgänge. Die Signale mAdr_msb, die a_msb Bit weit sind, umfassen die höchstwertigen (Dual-Rail)-Adressen zur Auswahl von a_mWl maskierten Wortleitungen mWl, mask_msb und mask_Wl umfassen die korrespondierenden m_msb Bit bzw. m_mWl Bit weiten Masken. Die Signale wl umfassen die a_mwl Bit weiten Wortleitungen in im Allgemeinen mehreren mROM-Zellenfeldern, die parallel ausgelesen werden können und in dem betrachteten Ausführungsbeispiel als Klartext vorliegen. Das Signal mBl umfasst die d_mBl Bit weiten und mit den m_mBl Bit weiten Masken mask_bl maskierten Bitleitungspaare von im Allgemeinen mehreren mROM-Zellenfeldern, aus welchen mit den mAdr_lsb (den a_lsb Bit weiten niedrigwertigsten und mit den m_lsb Bit weiten Masken mask_lsb maskierten Dual-Rail-Adressen) die d Bit weiten Datenausgänge mDo ausgewählt werden.
  • Die Einheit-Control 860 versorgt dabei alle beteiligten Schaltungsteile mit im Wesentlichen aus einem äußeren Takt bzw. Enable-Signal ableitbaren Steuersignalen en_aml, en_mad, en_wld und en_blp.
  • Die 9 zeigt ein Ausführungsbeispiel eines Floorplans für ein mROM-Implementierungsbeispiel. In diesem Ausführungsbeispiel wird ein 256-Byte mROM betrachtet, das als 4-Kachel-Speicherarchitektur mit je 32 Wörtern 16 Bit organisiert ist. Die 9 zeigt die vier Kacheln 910, wobei die fünf msb der maskierten Adressen in zwei Stufen 920 (8 × mD3 + 2 × 32 × mD3) maskiert und decodiert und in den dynamischen Wortleitungstreibern 930 in die 4 × 32 Wortleitungen umsetzt werden, vgl. 820 und 830 in 8. Aus den ausgelesenen 4 × 16 Bitleitungspaaren werden dann in drei Stufen 940 (4 × 8 × mPGMx2 + 2 × 8 × mTGMx2 + 2 × 4 × mMx2) mittels der drei lsb der maskierten Adressen die 8 bitweiten maskierten Datenausgänge ausgewählt, vgl. 840 in 8.
  • Die Ausführungsbeispiele bieten somit Vorteile bei Sicherheitsanwendungen, insofern, als dass Angriffe wie beispielsweise DPA, EMA und Probing erheblich erschwert werden, bzw. nicht mehr möglich sind.

Claims (17)

  1. Speicherzelle (100) mit einer Wortleitung (150) für ein binäres Abfragesignal; einer ersten Maskierungsleitung (130) für einen ersten binären Maskierungswert; einer zweiten Maskierungsleitung (140) für einen zweiten binären Maskierungswert; einer ersten Bitleitung (110) für einen ersten Binärwert; einer zweiten Bitleitung (120) für einen zweiten Binärwert; und einer Schaltung, die mit der Wortleitung (150), der ersten Maskierungsleitung (130), der zweiten Maskierungsleitung (140), der ersten Bitleitung (110) und der zweiten Bitleitung (120) gekoppelt ist, um abhängig von einem ersten binären Maskierungszustand, der durch den ersten binären Maskierungswert an der ersten Maskierungsleitung (130) und den zweiten binären Maskierungswert an der zweiten Maskierungsleitung (140) definiert ist, einen ersten Zustand für den ersten Binärwert an der ersten Bitleitung (110) und einen zweiten, zu dem ersten binären Zustand komplementären, Zustand für den zweiten Binärwert an der zweiten Bitleitung (120) auszugeben, und in dem Fall eines zweiten, zu dem ersten Maskierungszustand komplementären, binären Maskierungszustandes, der durch den ersten binären Maskierungswert an der zweiten Maskierungsleitung (130) und den zweiten binären Maskierungswert an der ersten Maskierungsleitung (140) definiert ist, den ersten Zustand für den ersten Binärwert an der zweiten Bitleitung (120) und den zweiten Zustand für den zweiten Binärwert an der ersten Bitleitung (110) auszugeben, wobei die erste Maskierungsleitung (130) mit einem ersten Maskierungstransistor (190) und die zweite Maskierungsleitung (140) mit einem zweiten Maskierungstransistor (180) gekoppelt ist.
  2. Speicherzelle (100) gemäß Anspruch 1, die ausgebildet ist, um an der zweiten Maskierungsleitung (140) für den zweiten Maskierungswert den komplementären ersten binären Maskierungswert zu empfangen.
  3. Speicherzelle (100) gemäß einem der Ansprüche 1 oder 2, die ausgebildet ist, um den ersten Binärwert zu invertieren, wenn für den ersten binären Maskierungswert ein invertierter Maskierungswert anliegt.
  4. Speicherzelle (100) gemäß einem der Ansprüche 1 bis 3, bei der die Wortleitung (150) für das binäre Abfragesignal mit einem Steuereingang eines Transistors gekoppelt ist.
  5. Speicherzelle (100) gemäß einem der Ansprüche 1 bis 4, bei der die Wortleitung (150) in Polysilizium oder in einer Metallschicht realisiert ist, wobei die Metallschicht wenigstens unter einer weiteren Metallschicht und einer Isolationsschicht angeordnet ist.
  6. Speicherzelle (100) gemäß einem der Ansprüche 1 bis 5, die ferner eine ROM-Zelle aufweist.
  7. Speicherzelle (100) gemäß einem der Ansprüche 1 bis 6, die ferner eine Kachel von ROM-Zellen aufweist.
  8. Speicherzelle (100) gemäß einem der Ansprüche 1 bis 7, bei der die Wortleitung (150) zwischen zwei der Bit- oder Maskierungsleitungen (110; 120; 130; 140) der Speicherzelle (100) angeordnet ist.
  9. System mit einem Feld (840) von Speicherzellen gemäß einem der Ansprüche 1 bis 8, wobei die Wortleitungen einer Mehrzahl von Speicherzellen gekoppelt sind, wobei das System ferner einen Wortleitungsdecoder (870) umfasst, der mit den Wortleitungen des Feldes (840) von Speicherzellen gekoppelt ist und über erste Adressleitungen ansteuerbar ist, und das System ferner einen Bitleitungsmultiplexor (850) aufweist, der mit den Bitleitungen und den Maskierungsleitungen des Feldes (840) von Speicherzellen gekoppelt ist und über zweite Adressleitungen ansteuerbar ist und Ausgangsleitungen für maskierte Binärwerte aufweist.
  10. System gemäß Anspruch 9, bei dem der Wortleitungsdecoder (870) eine weitere Eingangsleitung für weitere binäre Maskierungswerte aufweist, um die weiteren binären Maskierungswerte mit Werten der ersten Adressleitungen zu verknüpfen.
  11. System gemäß einem der Ansprüche 9 oder 10, bei dem der Wortleitungsdecoder (870) einen maskierten Adressdecoder (820) und einen Wortleitungstreiber (830) aufweist.
  12. System gemäß einem der Ansprüche 9 bis 11, bei dem der Bitleitungsmultiplexor (850) ferner eine Eingangsleitung für binäre Maskierungswerte aufweist, um die binären Maskierungswerte mit Werten der zweiten Adressleitungen zu verknüpfen.
  13. System gemäß einem der Ansprüche 9 bis 12, bei dem der Bitleitungsmultiplexor (850) ferner weitere Eingangsleitungen für weitere binären Maskierungswerte aufweist, um basierend auf den weiteren binären Maskierungswerten die Markierungsleitungen des Feldes (840) von Speicherzellen anzusteuern.
  14. Chipcard, die eine Speicherzelle gemäß einem der Ansprüche 1 bis 8 umfasst.
  15. Smartcard, die eine Speicherzelle gemäß einem der Ansprüche 1 bis 8 umfasst.
  16. S-Box-Rom, das eine Speicherzelle gemäß einem der Ansprüche 1 bis 8 umfasst.
  17. Verfahren zum Ausgeben eines binären Zustandes, der durch einen ersten Binärwert und einen dazu komplementären zweiten Binärwert definiert ist, mit folgenden Schritten: Bereitstellen eines binären Abfragesignals auf einer Wortleitung (150); Bereitstellen eines ersten binären Maskierungswertes auf einer ersten Maskierungsleitung (130) und eines zweiten binären Maskierungswertes, der zu dem ersten binären Maskierungswert komplementär ist, auf einer zweiten Maskierungsleitung (140); Erfassen des ersten Binärwertes auf einer ersten Binärleitung (110) und des zweiten Binärwertes auf einer zweiten Binärleitung (120); Verknüpfen des ersten und zweiten Binärwertes mit dem ersten und zweiten Maskierungswert mittels einer Schaltung, die mit der Wortleitung (150), der ersten Maskierungsleitung (130), der zweiten Maskierungsleitung (140), der ersten Bitleitung (110) und der zweiten Bitleitung (120) gekoppelt ist, um abhängig von einem ersten binären Maskierungszustand, der durch den ersten binären Maskierungswert an der ersten Maskierungsleitung (130) und den zweiten binären Maskierungswert an der zweiten Maskierungsleitung (140) definiert ist, einen ersten Zustand für den ersten Binärwert an der ersten Bitleitung (110) und einen zweiten, zu dem ersten binären Zustand komplementären, Zustand für den zweiten Binärwert an der zweiten Bitleitung (120) auszugeben, und in dem Fall eines zweiten, zu dem ersten Maskierungszustand komplementären, binären Maskierungszustandes, der durch den ersten binären Maskierungswert an der zweiten Maskierungsleitung (130) und den zweiten binären Maskierungswert an der ersten Maskierungsleitung (140) definiert ist, den ersten Zustand für den ersten Binärwert an der zweiten Bitleitung (120) und den zweiten Zustand für den zweiten Binärwert an der ersten Bitleitung (110) auszugeben, wobei die erste Maskierungsleitung (130) mit einem ersten Maskierungstransistor (190) und die zweite Maskierungsleitung (140) mit einem zweiten Maskierungstransistor (180) gekoppelt ist; und Bereitstellen des binären Zustandes als verknüpfter Wert zwischen den Binärwerten und den Maskierungswerten.
DE102007009526.2A 2007-02-27 2007-02-27 Vorrichtung zum Speichern eines binären Zustandes Active DE102007009526B4 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102007009526.2A DE102007009526B4 (de) 2007-02-27 2007-02-27 Vorrichtung zum Speichern eines binären Zustandes
US12/038,393 US7894242B2 (en) 2007-02-27 2008-02-27 Device for storing a binary state

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102007009526.2A DE102007009526B4 (de) 2007-02-27 2007-02-27 Vorrichtung zum Speichern eines binären Zustandes

Publications (2)

Publication Number Publication Date
DE102007009526A1 DE102007009526A1 (de) 2008-09-04
DE102007009526B4 true DE102007009526B4 (de) 2017-08-24

Family

ID=39669951

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102007009526.2A Active DE102007009526B4 (de) 2007-02-27 2007-02-27 Vorrichtung zum Speichern eines binären Zustandes

Country Status (2)

Country Link
US (1) US7894242B2 (de)
DE (1) DE102007009526B4 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2929470B1 (fr) * 2008-03-25 2010-04-30 Groupe Ecoles Telecomm Procede de protection de circuit de cryptographie programmable, et circuit protege par un tel procede
US7826299B2 (en) * 2008-04-21 2010-11-02 Infineon Technologies Ag Method and apparatus for operating maskable memory cells
US7898842B2 (en) * 2008-04-21 2011-03-01 Infineon Technologies Ag Memory for storing a binary state
US7898836B2 (en) * 2008-04-21 2011-03-01 Infineon Technologies Ag Masked memory cells
US9130568B2 (en) * 2012-08-09 2015-09-08 Ecole Polytechnique Federale De Lausanne (Epfl) Controllable polarity FET based arithmetic and differential logic
US10380309B2 (en) 2015-06-01 2019-08-13 Ecole Polytechnique Federale De Lausanne (Epfl) Boolean logic optimization in majority-inverter graphs
CA2940152C (en) * 2016-05-18 2017-08-29 Sidense Corp. Method and system for power signature suppression in memory devices
DE102018107114A1 (de) * 2018-03-26 2019-09-26 Infineon Technologies Ag Seitenkanalgehärtete Operation
EP3949182A4 (de) 2019-04-02 2023-01-11 Cryptography Research, Inc. Funktionen mit einer vorladungsoperation und einer evaluierungsoperation

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0669623B1 (de) * 1994-02-24 2000-05-24 Kabushiki Kaisha Toshiba Halbleiter-Speichereinrichtung-Prüfschaltung mit Datenverschlüsslungfunktion
US20050094477A1 (en) * 2002-03-18 2005-05-05 Joel Hatsch Content addressable memory cell
US20050276095A1 (en) * 2003-07-14 2005-12-15 Fulcrum Microsystems Inc. Asynchronous static random access memory

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6385070B1 (en) * 2001-03-13 2002-05-07 Tality, L.P. Content Addressable Memory array, cell, and method using 5-transistor compare circuit and avoiding crowbar current

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0669623B1 (de) * 1994-02-24 2000-05-24 Kabushiki Kaisha Toshiba Halbleiter-Speichereinrichtung-Prüfschaltung mit Datenverschlüsslungfunktion
US20050094477A1 (en) * 2002-03-18 2005-05-05 Joel Hatsch Content addressable memory cell
US20050276095A1 (en) * 2003-07-14 2005-12-15 Fulcrum Microsystems Inc. Asynchronous static random access memory

Also Published As

Publication number Publication date
DE102007009526A1 (de) 2008-09-04
US7894242B2 (en) 2011-02-22
US20080205169A1 (en) 2008-08-28

Similar Documents

Publication Publication Date Title
DE102007009526B4 (de) Vorrichtung zum Speichern eines binären Zustandes
DE102017102037A1 (de) Physisch unklonbare funktionsschaltung
DE102005058238B4 (de) Detektorschaltung zur Erfassung einer externen Manipulation einer elektrischen Schaltung sowie Verfahren zum Betreiben einer Schaltungsanordnung, bei dem externe Manipulation erfasst werden
DE102005055158B4 (de) Schaltungsanordnung mit einer Einrichtung zur Erkennung von Manipulationsversuchen und Verfahren zur Erkennung von Manipulationsversuchen bei einer Schaltungsanordnung
DE102015106508B4 (de) Halbleiterchip
WO2005036406A1 (de) Entschlüsselung bzw. verschlüsselung bei schreibzugriffen auf einen speicher
DE102020106346A1 (de) Integrierter schaltkreis
DE112018004896T5 (de) Speicherarray-zugänglichkeit
DE102016113128A1 (de) Verfahren zur Herstellung einer digitalen Schaltung und digitale Schaltung
DE102009017773B4 (de) Speicher zum Speichern eines binären Zustands
DE102019112583A1 (de) Integrierte elektronische schaltung
DE10344647B3 (de) Schaltungsanordnung und Verfahren zur Verarbeitung eines Dual-Rail-Signals
DE102005037357B3 (de) Logikschaltung und Verfahren zum Berechnen eines maskierten Ergebnisoperanden
DE102004009144B4 (de) Logikzelle und Verfahren zum Durchführen einer Dual-Rail-Logikoperation und Speichermedium
DE102004020576B4 (de) Datenverarbeitungsvorrichtung mit schaltbarer Ladungsneutralität und Verfahren zum Betreiben einer Dual-Rail-Schaltungskomponente
DE10217375B4 (de) Schaltungsanordnung und Verfahren zur Erzeugung eines Dual-Rail-Signals
DE10347301B4 (de) Schaltung mit einem Bus mit mehreren Empfängern
DE102004063898B9 (de) Übertragungsvorrichtung
DE102009018075B4 (de) Verfahren und Vorrichtung zum Betreiben von maskierbaren Speicherzellen
DE10224742A1 (de) Datenverarbeitungsschaltung und Verfahren zum Übertragen von Daten
DE10202726B4 (de) Integrierte Schaltung und Verfahren zum Betrieb der integrierten Schaltung
DE102009018068B4 (de) Maskierte Speicherzellen
DE10211957A1 (de) Inhaltsadressierbare Speicherzelle
DE102015116049B3 (de) Nulldetektionsschaltkreis und maskierter boolescher oder-schaltkreis
DE102004001235B4 (de) Übertragungsvorrichtung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R082 Change of representative