DE102019112583A1 - Integrierte elektronische schaltung - Google Patents

Integrierte elektronische schaltung Download PDF

Info

Publication number
DE102019112583A1
DE102019112583A1 DE102019112583.9A DE102019112583A DE102019112583A1 DE 102019112583 A1 DE102019112583 A1 DE 102019112583A1 DE 102019112583 A DE102019112583 A DE 102019112583A DE 102019112583 A1 DE102019112583 A1 DE 102019112583A1
Authority
DE
Germany
Prior art keywords
output
states
binary
integrated circuit
secret
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.)
Pending
Application number
DE102019112583.9A
Other languages
English (en)
Inventor
Thomas Kuenemund
Berndt Gammel
Franz Klug
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 DE102019112583.9A priority Critical patent/DE102019112583A1/de
Priority to US15/931,966 priority patent/US11171647B2/en
Publication of DE102019112583A1 publication Critical patent/DE102019112583A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/08Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using semiconductor devices
    • H03K19/094Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using semiconductor devices using field-effect transistors
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/003Modifications for increasing the reliability for protection

Abstract

Gemäß einer Ausführungsform wird eine integrierte elektronische Schaltung beschrieben, aufweisend ein Schaltnetz, das eingerichtet ist, binäre Steuerzustände zu empfangen, ein oder mehrere geheimnistragende Gatter, wobei jedes geheimnistragende Gatter Boolesche Geheimnisse repräsentiert und eingerichtet ist, binäre Eingangszustände zu empfangen und mindestens eines der Booleschen Geheimnisse in Abhängigkeit von einer zeitlichen Zustandsfolge der binären Eingangszustände auszugeben und ein oder mehrere Flip-Flops, die eingerichtet sind, von dem Schaltnetz ausgegebene binäre Ausgangszustände zu speichern und basierend auf den gespeicherten binären Ausgangszuständen den ein oder mehreren geheimistragenden Gattern binäre Eingangszustände zuzuführen, wobei das Schaltnetz eingerichtet ist, die binären Ausgangszustände durch Kombinieren der binären Steuerzustände und von den ein oder mehreren geheimnistragenden Gattern ausgegebenen Booleschen Geheimnissen zu erzeugen und wobei die integrierte elektronische Schaltung ferner einen Ausgang aufweist, der eingerichtet ist, von den ein oder mehreren geheimnistragenden Gattern ausgegebene Boolesche Geheimnisse und/oder von dem Schaltnetz ausgegebene binäre Ausgangszustände an eine andere integrierte elektronische Schaltung auszugeben.

Description

  • Ausführungsbeispiele betreffen allgemein integrierte elektronische Schaltungen.
  • Das Reverse Engineering (RE) integrierter Schaltungen (IC) kann als eine der größten Bedrohungen für die Halbleiterindustrie angesehen werden, weil es von einem Angreifer missbraucht werden kann, um einen Schaltungsentwurf zu stehlen und/oder zu übernehmen. Ein Angreifer, der ein erfolgreiches Reverse Engineering einer integrierten Schaltung vornimmt, kann eine ähnliche, d.h. geklonte Schaltung herstellen und verkaufen und den Entwurf illegal verkaufen und öffentlich machen und beispielsweise Geschäftsgeheimnisse eines Konkurrenten preisgeben.
  • Daher sind Konzepte und Techniken wünschenswert, welche das Reverse Engineering integrierter Schaltungen verhindern oder zumindest erschweren.
  • Gemäß einer Ausführungsform wird eine integrierte elektronische Schaltung bereitgestellt, aufweisend ein Schaltnetz, das eingerichtet ist, binäre Steuerzustände zu empfangen, ein oder mehrere geheimnistragende Gatter, wobei jedes geheimnistragende Gatter Boolesche Geheimnisse repräsentiert und eingerichtet ist, binäre Eingangszustände zu empfangen und mindestens eines der Booleschen Geheimnisse in Abhängigkeit von einer Zustandsfolge der binären Eingangszustände auszugeben und ein oder mehrere Flip-Flops, die eingerichtet sind, von dem Schaltnetz ausgegebene binäre Ausgangszustände zu speichern und basierend auf den gespeicherten binären Ausgangszuständen den ein oder mehreren geheimistragenden Gattern binäre Eingangszustände zuzuführen, wobei das Schaltnetz eingerichtet ist, die binären Ausgangszustände durch Kombinieren der binären Steuerzustände und von den ein oder mehreren geheimnistragenden Gattern ausgegebenen Booleschen Geheimnissen zu erzeugen und wobei die integrierte elektronische Schaltung ferner einen Ausgang aufweist, der eingerichtet ist, von den ein oder mehreren geheimnistragenden Gattern ausgegebene Boolesche Geheimnisse und/oder von dem Schaltnetz ausgegebene binäre Ausgangszustände an eine andere integrierte elektronische Schaltung auszugeben.
  • Die Figuren geben nicht die tatsächlichen Größenverhältnisse wieder sondern sollen dazu dienen, die Prinzipien der verschiedenen Ausführungsbeispiele zu illustrieren. Im Folgenden werden verschiedene Ausführungsbeispiele mit Bezug auf die folgenden Figuren beschrieben.
    • 1 zeigt ein Kommunikationssystem gemäß einem Ausführungsbeispiel.
    • 2 zeigt das Gattersymbol eines MH-Gatters.
    • 3 zeigt eine Schaltung, die eine MH-Zelle auf der Grundlage selbst-dualer NICHT-UND-NICHT-ODER-Gatter implementiert.
    • 4 zeigt ein Zustandsdiagramm für ein Schaltwerk gemäß einer Ausführungsform.
    • 5 zeigt eine Schaltung zur Realisierung eines Schaltwerks entsprechend dem Zustandsdiagram.
    • 6 zeigt eine Schaltwerk-Anordnung gemäß einer Ausführungsform.
    • 7 zeigt ein Zustandsdiagramm für ein Schaltwerk gemäß einer weiteren Ausführungsform.
    • 8 zeigt eine Schaltung zur Realisierung eines Schaltwerks entsprechend dem Zustandsdiagram.
    • 9 zeigt eine allgemeine Struktur eines endlichen Automaten, der unter Verwendung von Zellen, die Boolesche Geheimnisse repräsentieren, vor Reverse Engineering geschützt wird.
    • 10 zeigt einen Chip gemäß einer Ausführungsform.
    • 11 zeigt einen Chip gemäß einer weiteren Ausführungsform.
    • 12 zeigt eine integrierte elektronische Schaltung gemäß einer Ausführungsform.
  • Die folgende detaillierte Beschreibung bezieht sich auf die beiliegenden Figuren, die Details und Ausführungsbeispiele zeigen. Diese Ausführungsbeispiele sind so detailliert beschrieben, dass der Fachmann die Erfindung ausführen kann. Andere Ausführungsformen sind auch möglich und die Ausführungsbeispiele können in struktureller, logischer und elektrischer Hinsicht geändert werden, ohne vom Gegenstand der Erfindung abzuweichen. Die verschiedenen Ausführungsbeispiele schließen sich nicht notwendig gegenseitig aus sondern es können verschiedene Ausführungsformen miteinander kombiniert werden, so dass neue Ausführungsformen entstehen. Im Rahmen dieser Beschreibung werden die Begriffe „verbunden“, „angeschlossen“ sowie „gekoppelt“ verwendet zum Beschreiben sowohl einer direkten als auch einer indirekten Verbindung, eines direkten oder indirekten Anschlusses sowie einer direkten oder indirekten Kopplung.
  • Es ist wünschenswert, eine große Vielfalt von Chips vor Reverse Engineering zu schützen, insbesondere für Chips, die in sicherheitsbezogenen Kontexten verwendet werden, wie etwa auf einer Chipkarte, wie in 1 dargestellt.
  • 1 zeigt eine Chipkarte 100 gemäß einer Ausführungsform.
  • Die Chipkarte 100 umfasst einen Träger 101, auf dem ein Chipkartenmodul 102 angeordnet ist. Das Chipkartenmodul 102 umfasst verschiedene Datenverarbeitungskomponenten, wie zum Beispiel einen Speicher 103, einen Prozessor 104 oder zum Beispiel einen dedizierten Kryptoprozessor 105.
  • Beispielsweise soll das Chipkartenmodul 102 gegen Reverse Engineering geschützt werden. Dies soll jedoch nur als Beispiel dienen und Chips in vielen verschiedenen Anwendungsbereichen können gemäß Ausführungsbeispielen gegen Reverse Engineering geschützt werden, z.B. Mikrocontroller-Chips, z.B. in Steuereinrichtungen wie beispielsweise in einem Fahrzeug, z.B. in einer ECU (electronic control unit), für Chipkarten mit jeglichem Formfaktor, Kommunikationschips, Steuerungschips verschiedener Geräte wie z.B. Drucker etc.
  • Typischerweise ist in einer integrierten Schaltung, die gegen Reverse Engineering geschützt werden soll, vorgesehen, dass eine Logikfunktion einen Wert yj = f (xi) geheim aus Eingaben xi ein Ergebnis yj berechnet. Schaltungen zum Schutz vor Reverse Engineering werden oft als Tarnschaltungen bezeichnet. Bei einigen Implementierungstechniken führt eine solche Schaltung, wenn sie auf Reverse Engineering basiert, eine andere Logikfunktion aus, als sie es in der ursprünglichen Schaltung tut - dies erklärt den Bezeichnung „Tarnung“.
  • Verschiedene Ausführungsbeispiele basieren auf einer Untergruppe von Tarnungsmechanismen, nämlich auf Zellen (speziell Gattern), die ein oder mehrere boolesche Geheimnisse bereitstellen und im Folgenden auch als MH-Zellen (für „Magic Hood“, d.h. Tarnkappe) bezeichnet werden.
  • Diese Zellen sind streng genommen sogar nicht unbedingt Tarnschaltungen im obigen Sinne (werden aber trotzdem im Folgenden als solche verstanden), da die Zellen mittels Reverse Engineering typischerweise identifiziert werden können. Der Ausgabewert einer MH-Zelle kann jedoch nicht in einem klassischen statischen Reverse Engineering (Schicht-für-Schicht-Analyse, Zusammenfügen und Rekonstruktion der Schaltung) auf der Grundlage herkömmlicher Reverse-Engineering-Techniken erhalten werden. Nur wenn der Ausgang der aktiven Schaltung zum richtigen Zeitpunkt gemessen wird, kann ihre geheime Ausgabe ermittelt werden.
  • MH-Zellen haben einige nicht-triviale Eigenschaften, die zum Aufbau von Schaltungen genutzt werden können, die die Vertraulichkeit bei einem Reverse Engineering schützen, und gleichzeitig einen Integritätsschutz bei einem aktiven Angriff bieten (durch Nadeln oder Laserfehlerinjektion (LFI)).
  • Gemäß verschiedenen Ausführungsbeispielen werden endliche Automaten auf der Basis geheimnistragender Gatter (die Boolesche Geheimnisse tragen), insbesondere MH-Zellen, implementiert.
  • Eine MH-Zelle (oder ein MH-Gatter) weist in einem bestimmten Taktzyklus einen geheimen Zustand auf. Abhängig von ihrem Zustand versetzen ein oder mehrere bestimmte Eingangszustände die MH-Zelle in einen neuen geheimen Zustand (entsprechend einem von ihr gespeicherten Booleschen Geheimnis). Die MH-Zelle hat also anschaulich ein Gedächtnis und abhängig von ihrem aktuellen Zustand (der von der Vergangenheit abhängt) sind nur bestimmte Eingangszustandsübergänge zulässig, d.h. es gibt verbotene (d.h. unzulässige) Eingangszustandsübergänge.
  • 2 zeigt das Gattersymbol eines MH-Gatters 200.
  • Wie aus dem Gattersymbol ersichtlich, hat das MH-Gatter 200, das mit MH-X^4 bezeichnet wird, da es vier Boolesche Geheimnisse repräsentiert die beiden Eingangszustände S1 (oder T) und S0 (oder S) sowie die beiden Ausgangszustände Z1 (oder Y) und Z0 (oder Z).
  • Es gelten zunächst folgende Zuordnungen zwischen den beiden Vorlade(Precharge)-Zuständen <S1,S0> der Eingangssignale und denen der Ausgangssignale <Z1,Z0>:
  • Vorladezustand 0: <S1,S0> = <0,0> impliziert <Z1,Z0> = <0,0>, und
    Vorladezustand 1: <S1,S0> = <1,1> impliziert <Z1,Z0> = <1,1>.
  • Weiter gelten folgende Regeln für Zustandsübergänge ausgehend von einem der beiden Vorladezustände:
    • Der Zustandsübergang (symbolisiert durch einen Pfeil „→‟)
    • <S1,S0> = <0,0> → <0,1> impliziert <Z1,Z0> = <0,0> → <X0,\X0>, der Zustandsübergang
    • <S1,S0> = <1,1> → <0,1> impliziert <Z1,Z0> = <1,1> → <X2,\X2>, der Zustandsübergang
    • <S1,S0> = <0,0> → <1,0> impliziert <Z1,Z0> = <0,0> → <X1,\X1> und der Zustandsübergang
    • <S1,S0> = <1,1> → <1,0> impliziert <Z1,Z0> = <1,1> → <X3,\X3>.
  • Die vier in MH-X^4 verborgenen und voneinander unabhängigen Booleschen Geheimnisse werden hierbei mit Xn für n=0,1,2,3 bezeichnet und jedes Xn kann 0 oder 1 sein. Die Booleschen Geheimnisse erscheinen bei den oben angegebenen Zustandsübergängen an den Ausgängen Z1 und Z0 von MH-X4.
  • Dabei wird die Boolesche Inversion NICHT(X) von X mit \X bezeichnet: \X = NICHT(X). Außerdem bezeichnen im Folgenden die Operationen J+K bzw. J*K die Booleschen ODER-Verknüpfung bzw. UND-Verknüpfung von J und K.
  • Die beiden Zustandsübergänge der Eingangssignale
    <S1,S0> = <0,1> -> <1,0> und
    <S1,S0> = <1,0> -> <0,1>
    sind nicht zulässig, da sie unbestimmtes (metastabiles) Verhalten von MH-X^4 bzw. von <Z1,Z0> zur Folge haben würden.
  • Da das MH-Gatter MH-X^4 vier unabhängige Boolesche Geheimnisse repräsentieren kann, gibt es 16 Ausprägungen des MH-Gatters MH-X^4, je nachdem, welche Kombination der vier Geheimnisse es repräsentiert.
  • Ein Beispiel für eine Implementierung des MH-Gatters MH-X^4 ist in 3 dargestellt.
  • 3 zeigt eine Schaltung 300, die eine MH-Zelle auf der Grundlage selbst-dualer NICHT-UND-NICHT-ODER-Gatter implementiert.
  • Die Schaltung 300 hat zwei Eingänge T und S und zwei Ausgänge Z und Y. Die Eingänge T und S entsprechend beispielsweise S1 und S0 aus 2 und die Ausgänge Z und Y entsprechen beispielsweise Z1 und Z0 aus 2.
  • Wie im Beispiel von 2 repräsentiert die MH-Zelle 300 vier Boolesche Geheimnisse X0, X1, X2, X3. Welche Geheimnisse die MH-Zelle 300 speichert, ergibt sich aus der Konfiguration verschiedener Feldeffekttransistoren (FETs) der MH-Zelle 300, wie es unten erläutert wird. Dabei bezeichnet Vth(FET-Name) die Schwellenspannung eines FETs, der mit FET-Name bezeichnet ist.
  • Die Schaltung 300 weist ein erstes vereinheitlichtes NICHT-UND-NICHT-ODER 301, ein zweites vereinheitlichtes NICHT-UND-NICHT-ODER 302, einen ersten Inverter 303 und einen zweiten Inverter 304 auf.
  • Das erste vereinheitlichte NICHT-UND-NICHT-ODER 301 weist einen ersten p-Kanal-FET 305 auf, dessen Source mit dem hohen Versorgungspotential (VDD) verbunden ist und dessen Gate das Signal S zugeführt wird. Das erste vereinheitlichte NICHT-UND-NICHT-ODER 301 weist ferner einen zweiten p-Kanal-FET 306 auf, dessen Source mit dem hohen Versorgungspotential (VDD) verbunden ist. Die Drains des ersten p-Kanal-FET 305 und des zweiten p-Kanal-FET 306 sind mit der Source eines dritten p-Kanal-FET 307 verbunden, dessen Gate das Signal T zugeführt wird und dessen Drain mit einem ersten Ausgangsknoten (oder Rückkopplungsknoten) 308 verbunden ist, dessen Zustand als SY bezeichnet wird.
  • Das erste vereinheitlichte NICHT-UND-NICHT-ODER 301 weist ferner einen vierten p-Kanal-FET 309 auf, dessen Source mit dem hohen Versorgungspotential verbunden ist, dessen Gate mit dem Gate des zweiten p-Kanal-FET 306 verbunden ist und dessen Drain mit der Source eines fünften p-Kanal-FET 310 verbunden ist, dessen Gate das Signal S zugeführt wird und dessen Drain mit dem ersten Ausgangsknoten 308 verbunden ist.
  • Ferner weist das erste vereinheitlichte NICHT-UND-NICHT-ODER 301 einen ersten n-Kanal-FET 311 auf, dessen Source mit dem niedrigen Versorgungspotential (VSS) verbunden ist und dessen Gate das Signal S zugeführt wird. Das erste vereinheitlichte NICHT-UND-NICHT-ODER 301 weist ferner einen zweiten n-Kanal-FET 312 auf, dessen Source mit dem niedrigen Versorgungspotential (VSS) verbunden ist. Die Drains des ersten n-Kanal-FET 311 und des zweiten n-Kanal-FET 312 sind mit der Source eines dritten n-Kanal-FET 313 verbunden, dessen Gate das Signal T zugeführt wird und dessen Drain mit dem ersten Ausgangsknoten 308 verbunden ist.
  • Das erste vereinheitlichte NICHT-UND-NICHT-ODER 301 weist ferner einen vierten n-Kanal-FET 314 auf, dessen Source mit dem niedrigen Versorgungspotential verbunden ist, dessen Gate mit dem Gate des zweiten n-Kanal-FET 312 verbunden ist und dessen Drain mit der Source eines fünften n-Kanal-FET 315 verbunden ist, dessen Gate das Signal S zugeführt wird und dessen Drain mit dem ersten Ausgangsknoten 308 verbunden ist.
  • Das zweite vereinheitlichte NICHT-UND-NICHT-ODER 302 weist einen sechsten p-Kanal-FET 316 auf, dessen Source mit dem hohen Versorgungspotential (VDD) verbunden ist und dessen Gate das Signal S zugeführt wird. Das zweite vereinheitlichte NICHT-UND-NICHT-ODER 302 weist ferner einen siebten p-Kanal-FET 317 auf, dessen Source mit dem hohen Versorgungspotential (VDD) verbunden ist. Die Drains des sechsten p-Kanal-FET 316 und des siebten p-Kanal-FET 317 sind mit der Source eines achten p-Kanal-FET 318 verbunden, dessen Gate das Signal T zugeführt wird und dessen Drain mit einem zweiten Ausgangsknoten (oder Rückkopplungsknoten) 319 verbunden ist, dessen Zustand als SZ bezeichnet wird.
  • Das zweite vereinheitlichte NICHT-UND-NICHT-ODER 302 weist ferner einen neunten p-Kanal-FET 320 auf, dessen Source mit dem hohen Versorgungspotential verbunden ist, dessen Gate mit dem Gate des siebten p-Kanal-FET 317 verbunden ist und dessen Drain mit der Source eines zehnten p-Kanal-FET 321 verbunden ist, dessen Gate das Signal S zugeführt wird und dessen Drain mit dem zweiten Ausgangsknoten 319 verbunden ist.
  • Ferner weist das zweite vereinheitlichte NICHT-UND-NICHT-ODER 302 einen sechsten n-Kanal-FET 322 auf, dessen Source mit dem niedrigen Versorgungspotential (VSS) verbunden ist und dessen Gate das Signal S zugeführt wird. Das zweite vereinheitlichte NICHT-UND-NICHT-ODER 302 weist ferner einen siebten n-Kanal-FET 323 auf, dessen Source mit dem niedrigen Versorgungspotential (VSS) verbunden ist. Die Drains des sechsten n-Kanal-FET 322 und des siebten n-Kanal-FET 323 sind mit der Source eines achten n-Kanal-FET 324 verbunden, dessen Gate das Signal T zugeführt wird und dessen Drain mit dem zweiten Ausgangsknoten 319 verbunden ist.
  • Das zweite vereinheitlichte NICHT-UND-NICHT-ODER 302 weist ferner einen neunten n-Kanal-FET 325 auf, dessen Source mit dem niedrigen Versorgungspotential verbunden ist, dessen Gate mit dem Gate des siebten n-Kanal-FET 323 verbunden ist und dessen Drain mit der Source eines zehnten n-Kanal-FET 326 verbunden ist, dessen Gate das Signal S zugeführt wird und dessen Drain mit dem zweiten Ausgangsknoten 319 verbunden ist.
  • Der erste Ausgangsknoten 308 ist ferner mit dem Eingang des ersten Inverters 303 verbunden, dessen Ausgabe die Ausgabe Y ist. Ferner ist der erste Ausgangsknoten 308 mit den Gates des neunten p-Kanal-FET 320 und des neunten n-Kanal-FET 325 verbunden.
  • Der zweite Ausgangsknoten 319 ist ferner mit dem Eingang des zweiten Inverters 304 verbunden, dessen Ausgabe die Ausgabe Z ist. Ferner ist der zweite Ausgangsknoten 319 mit den Gates des vierten p-Kanal-FET 309 und des vierten n-Kanal-FET 314 verbunden.
  • Die Inverter 303, 304 sind beispielsweise durch einen p-Kanal-FET und einen n-Kanal-FET verwirklicht, die in Reihe zwischen das hohe Versorgungspotential und das niedrige Potential geschaltet sind, welche die Eingabe der Inverter 303, 304 an ihren Gates empfangen und wobei der Knoten zwischen ihnen der Ausgangsknoten der jeweiligen Inverter 303, 304 ist.
  • Für (T, S) = (0, 0) befindet sich die Schaltung 300 in einem ersten Vorladezustand:
    • (T, S) = (0, 0) => (SZ, SY) = (1, 1) => (Z, Y) = (0, 0),
    • und für (T, S) = (1, 1) befindet sich die Schaltung in einem zweiten Vorladezustand:
    • (T, S) = (1, 1) => (SZ, SY) = (0, 0) => (Z, Y) = (1, 1).
  • Der erste Zustandsübergang, der zur Ausgabe eines durch die MH-Zelle 300 repräsentierten Booleschen Geheimnisses führt, ist durch (T, S) = (0, 0) → (0, 1) gegeben, wobei die beiden konkurrierenden Pull-down-Wege, einschließlich der seriellen Verbindungen des zehnten n-Kanal-FET 326, mit TNZ4 bezeichnet, und des neunten n-Kanal-FET 325, mit TNZ3 bezeichnet, für SZ, sowie des fünften n-Kanal-FET 315, mit TNY4 bezeichnet, und des vierten n-Kanal-FET 314, mit TNY3 bezeichnet, für SY, aktiviert sind.
  • Demgemäß entsprechen die beiden verschiedenen Schwellenspannungskonfigurationen
    Vth(NZ4) < Vth(NY4); Vth(NZ3) < Vth(NY3) und
    Vth(NZ4) > Vth(NY4); Vth(NZ3) > Vth(NY3)
    den beiden verschiedenen Werten X0 = 1 und X0 = 0 für den ersten Zustandsübergang:
    (T, S) = (0, 0) → (0, 1) => (Z, Y) = (0, 0) -> (X0, NICHT(X0)).
  • Der zweite Zustandsübergang, der zur Ausgabe eines durch die MH-Zelle 300 repräsentierten Booleschen Geheimnisses führt, ist durch (T, S) = (0, 0) → (1, 0) gegeben, wobei die beiden konkurrierenden Pull-down-Wege, einschließlich der seriellen Verbindungen des achten n-Kanal-FET 324, mit TNZ2 bezeichnet, und des siebten n-Kanal-FET 323, mit TNZ1 bezeichnet, für SZ, sowie des dritten n-Kanal-FET 313, mit TNY2 bezeichnet, und des zweiten n-Kanal-FET 312, mit TNY1 bezeichnet, für SY, aktiviert sind.
  • Demgemäß entsprechen die beiden verschiedenen Schwellenspannungskonfigurationen
    Vth(NZ2) < Vth(NY2); Vth(NZ1) < Vth(NY1) und
    Vth(NZ2) > Vth(NY2); Vth(NZ1) > Vth(NY1)
    den beiden verschiedenen Werten X1 = 1 und X1 = 0 für den zweiten Zustandsübergang
    (T, S) = (0, 0) → (1, 0) => (Z, Y) = (0, 0) → (X1, NICHT(X1)).
  • Der dritte Zustandsübergang, der zur Ausgabe eines durch die MH-Zelle 300 repräsentierten Booleschen Geheimnisses führt, ist durch (T, S) = (1, 1) → (1, 0) gegeben, wobei die beiden konkurrierenden Pull-up-Wege, einschließlich der seriellen Verbindungen des zehnten p-Kanal-FET 321, mit TPZ4 bezeichnet, und des neunten p-Kanal-FET 320, mit TPZ3 bezeichnet, für SZ, sowie des fünften p-Kanal-FET 310, mit TPY4 bezeichnet, und des vierten p-Kanal-FET 309, mit TPY3 bezeichnet, für SY, aktiviert sind.
  • Demgemäß entsprechen die beiden verschiedenen Schwellenspannungskonfigurationen
    Vth(PZ4) < Vth(PY4); Vth(PZ3) < Vth(PY3) und
    Vth(PZ4) > Vth(PY4); Vth(PZ3) > Vth(PY3)
    den beiden verschiedenen Werten X3 = 0 und X3 = 1 für den dritten Übergang:
    (T, S) = (1, 1) → (1, 0) => (Z, Y) = (1, 1) → (X3, NICHT(X3)).
  • Der vierte Zustandsübergang, der zur Ausgabe eines durch die MH-Zelle 300 repräsentierten Booleschen Geheimnisses führt, ist durch (T, S) = (1, 1) → (0, 1) gegeben, wobei die beiden konkurrierenden Pull-up-Wege, einschließlich der seriellen Verbindungen des achten p-Kanal-FET 318, mit TPZ2 bezeichnet, und des siebten p-Kanal-FET 317, mit TPZ1 bezeichnet, für SZ, sowie des dritten p-Kanal-FET 307, mit TPY2 bezeichnet, und des zweiten p-Kanal-FET 306, mit TPY1 bezeichnet, für SY, aktiviert sind.
  • Demgemäß entsprechen die beiden verschiedenen Schwellenspannungskonfigurationen
    Vth(PZ2) < Vth(PY2); Vth(PZ1) < Vth(PY1) und
    Vth(PZ2) > Vth(PY2); Vth(PZ1) > Vth(PY1)
    den beiden verschiedenen Werten X2 = 0 und X2 = 1 für den vierten Übergang:
    (T, S) = (1, 1) → (0, 1) => (Z, Y) = (1, 1) → (X2, NICHT(X2)).
  • Weil sich alle vier relevanten Pull-up- und Pull-down-Wege voneinander unterscheiden und daher unabhängig voneinander gewählt werden können, können auch die vier MH-Geheimnisse, d.h. die Werte X0, X1, X3 und X2, unabhängig gewählt werden. Demgemäß können für die MH, die auf den selbst-dualen Gattern aus 3 beruht, 24 = 16 verschiedene MH-Inkarnationen verwirklicht werden, d.h. 16 verschiedene MH-Ausprägungen, welche das gleiche physikalische Layout aufweisen (d.h. in Bezug auf ihren physikalischen Entwurf ununterscheidbar sind), jedoch infolge ihrer unterschiedlichen CMOS(Complementary Metal Oxide Semiconductor)-Schwellenspannungskonfigurationen unterschiedliche elektronische Verhaltensweisen aufweisen. Überdies entspricht die Unabhängigkeit von X0, X1, X3 und X2 einer Wegabhängigkeit der Booleschen Geheimnisse, d.h. jedes Geheimnis (X0, X1, X3 und X2) hängt nicht nur vom Eingangssteuersignalzustand, sondern auch von der Art ab, in der zu diesem Zustand gelangt wurde.
  • Die verschiedenen Schwellenspannungskonfigurationen können durch geeignete Dotierungen eingestellt werden.
  • Gemäß verschiedenen Ausführungsformen wird das Gatter MH-X^4 aus 2 als Element eines Schaltwerkes eingesetzt, wie es im Folgenden beschrieben ist.
  • 4 zeigt ein Zustandsdiagramm 400 für ein Schaltwerk gemäß einer Ausführungsform.
  • Die Zustände <S1,S0> = <0,0>, <0,1>, <1,0>, <1,1> der Eingangszustände von MH-X^4 werden als Zustände 401, 402, 403, 404 des entsprechenden Schaltwerkes mit Eingangszustand J interpretiert.
  • Die vier möglichen Zustände von <S1,S0> sind dabei dargestellt durch ovale Symbole, welche jeweils einen der vier möglichen Werte von <S1,S0> enthält, während die für die möglichen Zustandsübergänge zwischen den Zuständen 401 bis 404 notwendigen Bedingungen an den Eingangszustand J des Schaltwerkes innerhalb der gestrichelten Kreise angegeben sind.
  • Das Zustandsdiagramm zeigt auch, dass die beiden unzulässigen Eingangszustandsübergänge
    <S1,S0> = <0,1> → <1,0> und <S1,S0> = <1,0> → <0,1>
    nicht von dem entsprechenden Schaltwerk realisiert werden.
  • Unzulässige Eingangszustandsübergänge können dazu verwendet werden, Zustandsübergänge der MH-Zelle abzusichern, d.h. zu verhindern, dass ein Angreifer durch Manipulieren von Eingangszuständen einer MH-Zelle einen beliebigen Zustand erreicht. Beispielsweise können unzulässige Eingangszustandsübergänge auf einen sicheren Zustand der MH-Zelle abgebildet werden, von dem aus die von der MH-Zelle repräsentierten Geheimnisse nicht mehr erreicht werden können (und die MH-Zelle z.B. konstant nur noch 00 oder 11 ausgibt).
  • 5 zeigt eine Schaltung (speziell ein Schaltwerk) 500 zur Realisierung eines Schaltwerks entsprechend dem Zustandsdiagram 400.
  • Die Schaltung weist ein MH-Gatter MH-X^4, wie es in 2 dargestellt ist, auf. Die beiden Ausgänge des MH-Gatters 501 sind mit Steuereingängen M0 und M1 eines Schaltnetzes 502, in diesem Beispiel ein Multiplexer MUX, verbunden. Der Multiplexer hat vier Dateneingänge, die den vier möglichen Bit-Kombinationen an den Steuereingängen M0 und M1 zugeordnet sind.
  • Die Schaltung empfängt einen Steuerzustand J. Die Kombinationen <\J,J>, <J,J>, <J,\J> und <\J,\J> werden derart den Dateneingängen des Multiplexers 502 zugeführt, dass gilt:
    • <Z1,Z0> = <1,1> impliziert <N1,N0> = <\J,J>,
    • <Z1,Z0> = <1,0> impliziert <N1,N0> = <J,J>,
    • <Z1,Z0> = <0,1> impliziert <N1,N0> = <\J,\J>,
    • <Z1,Z0> = <0,0> impliziert <N1,N0> = <J,\J>.
  • Dabei bezeichnen N0 und N1 die Ausgangszustände des Multiplexers 502.
  • Die Schaltung 502 weist außerdem zwei taktflankengesteuerte Daten-Flip-Flops 503 und 504 auf. Beide Flip-Flops 503 und 504 empfangen ein Taktsignal CK an ihrem jeweiligen Takteingang. Das erste Flip-Flop 503 empfängt den Ausgangszustand N0 des Multiplexers 502 und das zweite Flip-Flop 504 empfängt den Ausgangszustand N1 des Multiplexers 502. Der vom ersten Flip-Flop 503 gespeicherte Wert ist der Eingangszustand S0 des MH-Gatters 501 und der vom zweiten Flip-Flop 504 gespeicherte Wert ist der Eingangszustand S1 des MH-Gatters 501.
  • Der Eingangs-Steuerzustand J des betrachteten Schaltwerks kann sich innerhalb jeder Periode des Systemtaktes CK ändern. Insbesondere kann J zum Beispiel abgeleitet werden aus Ausgängen Z1 und Z0 anderer MH-X^4 Gatter aus einem anderen, ähnlich oder genauso aufgebauten Schaltwerk.
  • Auf diese Weise können beliebig komplexe Anordnungen von Schaltwerken des betrachteten Typs aufgebaut werden, wobei dann alle Zustandsübergänge in allen Schaltwerken abhängen von allen in den MH-X^4 verborgenen Booleschen Geheimnissen.
  • Damit wird ein erfolgreiches Reverse Engineering solcher Schaltwerk-Komplexe extrem schwierig, risikoreich (was Fehlinterpretationen anlangt) und aufwändig. In 6 ist ein Beispiel für einen solchen Schaltwerk-Komplex dargestellt.
  • 6 zeigt eine Schaltwerk-Anordnung 600 gemäß einer Ausführungsform.
  • Die Schaltwerk-Anordnung 600 weist mehrere Schaltwerke 601 auf, die jeweils dem Schaltwerk 500 aus 5 entsprechen und in einer Kette angeordnet sind (gemäß einem Index n=1, 2, ...). Dementsprechend hat jedes Schaltwerk (mit Index n) einen Eingangs-Steuerzustand J<n> und empfängt das Taktsignal CK. Außerdem sind die Ausgangszustände des jeweiligen MH-Gatters 501 Ausgangszustände Z0<n> und Z1<n> des Gatters.
  • Der Eingangs-Steuerzustand J<n> wird von einem jeweiligen EXKLUSIV-ODER-Gatter aus dem Ausgangszustand Z0<n+1> des nachfolgenden Schaltwerks und dem Ausgangszustand Z1<n-1> des vorhergehenden Schaltwerks angeordnet.
  • Somit wird der Eingangs-Steuerzustand J<n> eines Schaltwerks 601 gebildet aus der EXKLUSIV-ODER-Verknüpfung von MH-X^4-Ausgaben Z1 und Z0 von (in der Kette) benachbarter Schaltwerke mit Indizes n-1 und n+1.
  • Dem ersten Schaltwerk und dem letzten Schaltwerk in der Kette, die jeweils auf einer Seite keine Nachbarn haben, können von dieser Konstanten zugeführt werden oder die Kette kann zyklisch geschlossen sein.
  • Anschaulich gibt es in der Schaltwerk-Anordnung eine Weitergabe von Zuständen in beide Richtungen (die Kette nach oben und die Kette nach unten). Es ist aber in anderen möglichen Ausführungsformen auch eine Weitergabe von Zuständen in nur eine Richtung möglich oder auch eine Weitergabe einer Ausgabe an ein Schaltwerk, das in der Kette weiter entfernt ist.
  • Im Folgenden wird ein etwas komplexeres Beispiel für ein Schaltwerk erläutert, bei dem das MH-Gatter MH-X^4 eingesetzt wird.
  • 7 zeigt ein Zustandsdiagramm 700 für ein Schaltwerk gemäß einer weiteren Ausführungsform.
  • Im Unterschied zu dem Beispiel aus 4 hat das Schaltwerk zwei Steuereingangszustände J und K.
  • Die Zustände <S1,S0> = <0,0>, <0,1>, <1,0>, <1,1> der Eingangszustände von MH-X^4 werden als Zustände 701, 702, 703, 704 des entsprechenden Schaltwerkes mit Eingangszuständen J und K interpretiert.
  • Die vier möglichen Zustände von <S1,S0> sind dabei wie in 4 durch ovale Symbole dargestellt, welche jeweils einen der vier möglichen Werte von <S1,S0> enthält, während die für die möglichen Zustandsübergänge zwischen den Zuständen 701 bis 704 notwendigen Bedingungen an die Eingangszustände J und K des Schaltwerkes innerhalb der gestrichelten Kreise angegeben sind.
  • Das Zustandsdiagramm zeigt auch, dass die beiden unzulässigen Eingangszustandsübergänge <S1,S0> = <0,1> → <1,0> und <S1,S0> = <1,0> → <0,1> nicht von dem entsprechenden Schaltwerk realisiert werden. 8 zeigt eine Schaltung (speziell ein Schaltwerk) 800 zur Realisierung eines Schaltwerks entsprechend dem Zustandsdiagram 700.
  • Die Schaltung weist ein MH-Gatter MH-X^4 801, wie es in 2 dargestellt ist, auf. Die beiden Ausgänge des MH-Gatters 801 sind mit Steuereingängen M0 und M1 eines Schaltnetzes 802, in diesem Beispiel ein Multiplexer MUX, verbunden. Der Multiplexer hat vier Dateneingänge, die den vier möglichen Bit-Kombinationen an den Steuereingängen M0 und M1 zugeordnet sind.
  • Die Schaltung empfängt zwei Steuerzustände J und K. Die Kombinationen <\[K+J],\[K+\J]>, <J,J>, <J,J> und werden derart den Dateneingängen des Multiplexers 802 zugeführt, dass gilt:
    • <Z1,Z0> = <1,1> impliziert <N1,N0> = <\[K+J],\[K+\J]>,
    • <Z1,Z0> = <1,0> impliziert <N1,N0> = <J,J>,
    • <Z1,Z0> = <0,1> impliziert <N1,N0> = <J,J>,
    • <Z1,Z0> = <0,0> impliziert <N1,N0> = <\[K*\J],\[K*J]>.
  • Dabei bezeichnen N0 und N1 die Ausgangszustände des Multiplexers 802.
  • Die Schaltung 802 weist außerdem zwei taktflankengesteuerte Daten-Flip-Flops 803 und 804 auf. Beide Flip-Flops 803 und 804 empfangen ein Taktsignal CK an ihrem jeweiligen Takteingang. Das erste Flip-Flop 803 empfängt den Ausgangszustand N0 des Multiplexers 802 und das zweite Flip-Flop 804 empfängt den Ausgangszustand N1 des Multiplexers 802. Der vom ersten Flip-Flop 803 gespeicherte Wert ist der Eingangszustand S0 des MH-Gatters 801 und der vom zweiten Flip-Flop 804 gespeicherte Wert ist der Eingangszustand S1 des MH-Gatters 801.
  • Die Eingangs-Steuerzustände J und K des betrachteten Schaltwerks können sich innerhalb jeder Periode des Systemtaktes CK ändern. Insbesondere können J und K zum Beispiel abgeleitet werden aus Ausgängen Z1 und Z0 anderer MH-X^4 Gatter aus einem anderen, ähnlich oder genauso aufgebauten Schaltwerk.
  • Auf diese Weise können beliebig komplexe Anordnungen von Schaltwerken des betrachteten Typs aufgebaut werden, wobei dann alle Zustandsübergänge in allen Schaltwerken abhängen von allen in den MH-X^4 verborgenen Booleschen Geheimnissen.
  • Damit wird ein erfolgreiches Reverse Engineering solcher Schaltwerk-Komplexe extrem schwierig, risikoreich (was Fehlinterpretationen anlangt) und aufwändig. Beispielsweise kann das Schaltwerk 800 aus 8 analog zu dem Schaltwerk 500 aus 5 in der Schaltwerk-Anordnung 600 von 6 eingesetzt werden.
  • 9 zeigt eine allgemeine Struktur eines endlichen Automaten 900, der unter Verwendung von Zellen (speziell Gattern), die Boolesche Geheimnisse repräsentieren (z.B. MH-Gatter), vor Reverse Engineering geschützt wird (d.h. dessen Vertraulichkeit geschützt wird).
  • Der endliche Automat 900 weist mehrere Stufen (oder Schichten) 901 auf, die von 1 bis N nummeriert sind.
  • Jede Stufe 901 weist eine Hintereinanderschaltung einer MH-Schicht 902 (bezeichnet mit µ), einer Kombinationsschicht 903 (bezeichnet mit φ) und einer sequentiellen (Zustands-)Schicht 904 (die einen Zustand der Stufe bezeichnet mit Σ speichert).
  • Die MH-Schicht 902 weist ein oder mehrere MH-Gatter auf (sequentiell und/oder parallel), die Kombinationsschicht 903 ist beispielsweise ein Schaltnetz und die sequentielle Schicht 904 ist eine Pufferschicht, z.B. gebildet aus ein oder mehreren Flip-Flops.
  • Der Ausgang der sequentiellen Schicht 904 einer Stufe 901 ist mit dem Eingang der MH-Schicht 902 der darauffolgenden Stufe 901 verbunden, wobei die Stufen 901 zyklisch miteinander verbunden sind, d.h. der Ausgang der sequentiellen Schicht 904 der N-ten Stufe ist mit dem Eingang der MH-Schicht 902 der ersten Stufe verbunden.
  • Der Ausgang der sequentiellen Schicht 904 jeder Stufe 901 ist außerdem mit einer jeweiligen Ausgabeschicht 905 (bezeichnet mit ω) verbunden, die eine Ausgabe (bezeichnet mit Ω) erzeugt und beispielsweise an eine mit dem endlichen Automaten 900 verbundene Schaltung ausgibt (die sich z.B. auf demselben Chip wie die Schatlung, die den endlichen Automat 900 implementiert, befindet).
  • Somit befindet sich zwischen jeder sequentiellen Schicht 904 und kombinatorischen Schicht 903 (der folgenden Stufe) eine MH-Schicht 902, die den Zustand der sequentiellen Schicht 904 (beispielsweise einen Satz binärer Zustände) entsprechend Geheimnissen, die ein oder mehrere MH-Zellen der MH-Schicht repräsentieren, transformiert. Die Kombinationsschicht 903 jeder Stufe 901 operiert somit auf geheimen Daten und die Ausgabeschicht 905 hat eine geheime Eingabe und erzeugt die geheime Ausgabe Ω.
  • Optional kann der endliche Automat 900 ein oder mehrere Rückführungen (d.h. Rückführschleifen) aufweisen, um ein gewünschtes Verhalten (Zustände und Zustandsübergänge des Automaten) zu realisieren. Im Beispiel von 9 gibt es eine große Rückführschleife durch die Verbindung der N-ten Stufe mit der ersten Stufe wie oben erläutert.
  • Dem endlichen Automaten 900 können Eingaben (z.B. Eingangs-Steuersignale), in 9 mit Φ bezeichnet, mittels einer oder mehrerer der kombinatorischen Schichten 903 zugeführt werden. Mittels dieser Eingaben, die von der einen oder mehreren der kombinatorischen Schichten 903 aufgenommen werden, können beispielsweise Zustandsübergänge des Automaten 900 gesteuert bzw. bewirkt werden.
  • In der k-ten Stufe (k=1, ..., N) gibt es somit
    • - einen Zustand Σk mit nk Bits,
    • - (optional) eine Eingabe Φk mit pk Bits und
    • - eine Ausgabe Ωk mit qk Bits.
  • Der endliche Automat 900 kann als Verallgemeinerung der Schaltwerke 500, 800 aus den 5 und 8 angesehen werden, beispielsweise wie folgt: N=1, die MH-Schicht besteht aus dem einen MH-Gatter 501, 801, die kombinatorische Schicht besteht aus dem Multiplexer 502, 802 und die sequentielle Schicht besteht aus den Flip-Flops 503, 504, 803, 804. Ausgegeben werden können beispielsweise S1 und/oder S0.
  • Der endliche Automat 900 kann auch als Verallgemeinerung der Schaltwerk-Anordnung 600 angesehen werden, beispielsweise dadurch, dass ein EXKLUSIV-ODER-Gatter 602 zusammen mit dem Multiplexer eines Schaltwerks 601 als Kombinationsschicht einer Stufe angesehen wird, die Flip-Flops eines Schaltwerks 601 als sequentielle Schicht der Stufe und das MH-Gatter des Schaltwerks 601 als MH-Schicht der darauffolgenden Stufe. Bei dieser Interpretation gibt es eine Rückführung von der MH-Schicht jeder Stufe zur Kombinationsschicht der Stufe, die zwei Stufen vorhergeht (aufgrund der Rückführung von Z0).
  • Mittels der Multi-Schicht-Struktur, wie sie in 9 dargestellt ist, kann im Grunde jeder endliche Automat mit N Zuständen repräsentiert werden.
  • Im Folgenden werden einige Anwendungsbeispiele zum Schutz gegen Reverse-Engineering beschrieben.
  • Als erstes Anwendungsbeispiel werden die geheimen Ausgaben Ω1, Ω2, ... (z.B. über mehrere Takte) als Steuerinformationsfolge für einen Algorithmus verwendet.
  • Beispielsweise wird heutzutage typischerweise redundantes Kodieren als Integritätsschutz verwendet. Allerdings kann ein Angreifer durch Reverse Engineering die exakten Positionen und Werte herausfinden, die er benötigt, um einen gültigen (aber schadhaften) Zustandsübergang zu erzwingen. Mittels eines MH-geschützten Zustandsautomaten, wie er beispielsweise in 9 beschrieben ist, kann erreicht werden, dass ein Angreifer durch Reverse Engineering keine gültige Zustandskodierung und gültige Zustandsübergänge in Erfahrung bringen kann. Der Angreifer müsste deshalb auf gut Glück Fehler injizieren (Trial-and-Error) oder alle Zustände und Register (z.B. Flip-Flops) des Zustandsautomaten abgreifen. Dies erhöht den Aufwand für den Angreifer erheblich.
  • Beispielsweise kann die Steuerung eines (z.B. proprietären) Kryptoalgorithmus mittels eines MH-geschützten Zustandsautomaten implementiert werden.
  • Als erstes Anwendungsbeispiel werden die geheimen Ausgaben Ω1, Ω2, ... (z.B. über mehrere Takte) als Folge kryptographischer Schlüssel verwendet. Beispielsweise repräsentiert ein Satz Ω1, Ω2, ..., ΩN einen kryptographischen Schlüssel und nach einer bestimmten Anzahl von Takten einen nächsten kryptographischen Schlüssel der Folge. Es kann auch ein Zustandsautomat mit nur einer Stufe 901 genommen werden, die einen kryptographischen Schlüssel (ggf. Teile des Schlüssels über mehrere Takte hinweg) ausgibt.
  • Die Basis für den Schutz der Vertraulichkeit und Integrität auf einem (Sicherheits-)Controller ist typischerweise ein geheimer Wert, der in schlüsselabhängigen kryptographischen Funktionen verwendet wird und auch als Root Key bezeichnet wird. Solche schlüsselabhängigen kryptographischen Funktionen sind beispielsweise Verschlüsselungsalgorithmen, die zur Bereitstellung der Vertraulichkeit eines Speichers, für Authentifizierungsalgorithmen zur Steuerung des Zugriffs auf Inhalte oder Funktionen sowie Integritätsschutzalgorithmen (MAC, AE), die die Integrität von Speicherinhalten oder anderen Funktionen gewährleisten sollen, verwendet wird. Typischerweise sollte der Root-Schlüssel R vor dem Extrahieren durch Reverse Engineering geschützt werden (da dies die Produktion von geklonten Chips ermöglichen würde). Daher ist dieser Schlüssel ein natürlicher Kandidat dafür, bei einer Implementierung unter Verwendung einer Schaltungstarnungstechnik geschützt zu werden.
  • In einem Standard-IC-Herstellungsprozess werden typischerweise eine große Anzahl identischer Kopien des IC hergestellt. In den meisten Sicherheitsanwendungen sind jedoch IC-individuelle Stammschlüssel erforderlich. Dies steht im Konflikt mit der statischen Natur der Schaltungstarnung, denn eine Tarnschaltung, die den Root Key erzeugt, wäre auf identischen ICs identisch.
  • Um diesen Konflikt zu lösen, kann ein anderer IC-individuellen geheimer Wert, hierin mit IV bezeichnet, eingeführt werden und zu diesem Zweck in einem nichtflüchtigen Speicher (NVM) des ICs gespeichert werden. Der IC-individuelle Wert IV kann dann mit festen Komponentenwerten (die für alle der ICs identisch sind) kombiniert werden, die z.B. in einem ROM (Nur-Lese-Speicher) und/der einem Semi-Custom-Chip-Bereich gespeichert sind.
  • Jedoch muss der nichtflüchtige Speicher in vielen Fällen als unsicher betrachtet werden, d. h. es muss angenommen werden, dass sein Inhalt bei einem Reverse-Engineering-Angriff extrahiert werden kann, wie dies auch für ROM- und Semi-Custom-Blöcke gilt. Somit kann bei dieser Herangehensweise ein Angreifer einen Klon des ICs herstellen.
  • Gemäß einer Ausführungsform wird dies dadurch verhindert, dass der IC-individuelle Wert IV, der in einem nicht-flüchtigen Speicher gespeichert ist, durch Verwendung eines Zustandsautomaten gemäß 9 transformiert wird, indem Φ= IV und Ω=R gesetzt wird. Dieser stellt einen geschützten Schlüsselgenerator da der basierend auf dem (nicht notwendig geheimen) Wert IV einen IC-individuellen Schlüssel R erzeugt. Dies ist in 10 dargestellt.
  • 10 zeigt einen Chip 1000 gemäß einer Ausführungsform.
  • Der Chip 1000 weist einen Zustandsautomaten 1001 auf, der MH-Gatter, beispielsweise wie mit Bezug auf 9 erläutert, aufweist. Der Chip weist außerdem einen nicht-flüchtigen Speicher 1002 auf, der eine (beispielsweise öffentliche, d.h. nicht geheime) Information IV speichert. Der Zustandsautomat 1001 empfängt die Information IV und erzeugt einen Schlüssel (z.B. einen Root Key) R, gemäß einer Funktion fX(IV), der für den Chip 1000 individuell ist, weil die MH-Gatter für den Chip individuelle konfiguriert sind (d.h. Chip-individuelle Geheimnisse repräsentieren). X kann ein statischer Schlüssel sein, der beispielsweise auch mittels einer Tarnschaltung gegenüber Reverse Engineering geschützt werden kann und der in die Funktion fX(IV) eingeht. Die geheime Funktion fX(.) wird beispielsweise derart gewählt, dass Kollisionen vermieden werden in dem Sinne, dass für Eingabetupel (IV, X) die Wahrscheinlichkeit, dass von der Funktion fX(IV)=f(X, IV) eines anderen Chips derselbe Root Key erzeugt wird, verschwindend gering ist (zum Beispiel akzeptabel ist in Hinblick auf das jeweilige Anwendungsszenario).
  • Der Zustandsautomat ist beispielsweise der Zustandsautomat von 9 mit einer Stufe und Φ= IV und Ω=R und implementiert einen gegen Reverse-Engineering geschützten Schlüsselgenerator. Der erzeugte Chip-individuelle Schlüssel R wird beispielsweise von dem Chip 1000 zur Speicherverschlüsselung, zur sicheren Datenübertragung oder zur Authentifizierung verwendet.
  • Integritätsschutz wird in diesem Beispiel erreicht, weil das Erzwingen von Eingangssteuerzuständen des Zustandsautomaten 1001 auf bestimmte Werte im Allgemeinen zu unzulässigen Eingangszustandsübergängen und einem falschen (bzw. zufälligen) Schlüssel führt. Schutz vor Reverse Engineering ergibt sich durch die Verwendung des durch MH-Gatter geschützten Zustandsautomaten 1001.
  • Als Verallgemeinerung kann ein Zustandsautomat 1001 mit mehreren Stufen 901 verwendet werden und so eine Folge (oder Menge) von kryptographischen Schlüsseln von dem Zustandsautomat 1001 erzeugt werden (z.B. einer pro Stufe). Der Zustandsautomat 1001 kann einen Schlüssel nach dem anderen in deterministische Reihenfolge ausgeben (d.h. lässt keinen Schlüssel aus und erzeugt keinen früheren Schlüssel). Durch geeignete Kodierung kann erreicht werden, dass dies auch bei Fehlerattacken gültig bleibt. Zu diesem Zweck kann die Kodierung die Tatsache ausnutzen, dass eine MH-Zelle kein von ihr repräsentiertes Geheimnis mehr ausgibt, wenn ihre Eingabe auf einen unzulässigen Zustand (bzw. einen ungültigen Zustandsübergang) gebracht wird.
  • Die Funktion fX(IV) wird beispielsweise derart gewählt, dass sie einen starke Vermischung von X und IV bewirkt. Sie kann beispielsweise die Eigenschaften einer Schlüssel-basierten Hash-Funktion haben. Die Länge des Werts IV (d.h. die Anzahl von Bits) wird derart gewählt, dass sie zu ausreichender Diversität führt.
  • Mittels statischem Reverse Engineering zusammen mit Extraktion von IV aus dem nichtflüchtigen Speicher 1002 kann ein Angreifer den geheimen Schlüssel R nicht ermitteln (unter der Annahme einer starken Tarnschaltungstechnologie, wie sie durch MH-Gatter erreicht werden kann). Somit kann der Angreifer keinen nachgemachten IC (d.h. Chip) mit dem Root Key R herstellen, da er den Root Key R nicht kennt und aus der Kenntnis des Werts IV den Root Key R nicht berechnen kann, da er die unbekannte Funktion fX(.) nicht kennt und nicht kopieren kann.
  • Nichtsdestotrotz ist ein anderer Angriff zum Klonen des Chips 1000 möglich: Unter der Annahme, dass der Wert IV durch Reverse Engineering extrahiert werden kann, kann ein Angreifer einen anderen, identischen Chip des Herstellers nehmen und versuchen, den Wert IV in den anderen Chip zu injizieren. Dies ist typischerweise schwierig, kann für einen mächtigen Angreifer jedoch möglich sein. Somit kann der Angreifer einen Eins-Zu-Eins-Identitätstransfer durchführen, muss aber einen Original-IC für jeden hergestellten geklonten IC opfern. Eine Massenproduktion von geklonten ICs ist dem Angreifer also nicht möglich, was für viele Anwendungsfälle schon genügen kann.
  • Um einen vollständigen Klon-Schutz zu erreichen wird gemäß einer Ausführungsform das nichtflüchtige Speichern des IC-individuellen Werts IV mit einer Schreibesperre (write-lock) oder einer OTP(one-time programmability, d.h. einmalige Programmierbarkeit)-Funktionalität versehen. Dies ist in 11 dargestellt.
  • 11 zeigt einen Chip 1100 gemäß einer weiteren Ausführungsform.
  • Der Chip 1100 weist entsprechend dem Chip 1000 aus 10 einen Zustandsautomaten 1101 und einen nichtflüchtigen Speicher 1102 auf. Der nichtflüchtige Speicher 1102 ist mit einer OTP-Funktionalität oder Schreibe-Sperre 1103 versehen.
  • In einem Personalisierungsschritt wird (nach der Hardware Herstellung des Chips 1100) der Wert IV in den nichtflüchtigen Speicher 1102 geschrieben und ein weiteres Schreiben in den Speicherbereich, der den Wert IV speichert (d.h. ein Überschreiben des Werts IV) wird durch die OTP-Funktionalität oder Schreibe-Sperre 1103 verhindert (gesperrt).
  • Die OTP-Funktionalität 1103 ist hierbei nicht auf eine klassische NVM-OTP-Funktionalität eingeschränkt. Sie kann jede Einweg-Funktionalität sein, wie beispielsweise eine spezialisierte Prozedur, die nur eine einmalige Programmierung ermöglicht oder die einen physikalisch irreversiblen Sperrschritt aufweist (wie Halbleiter-Schmelzsicherungen (Fuses), Laser-Schmelzsicherungen etc.). Wie oben erläutert braucht der Wert IV nicht geheim gehalten zu werden. Die Kombination einer Tarnschaltungstechnologie mit einem Speichern des Werts IV, sodass er nur einmal geschrieben werden kann, wie es das Beispiel von 11 vorsieht, ermöglicht einen vollständigen Schutz gegen Klonen und die Sicherheit des Root Keys.
  • Es kann eine geschützte und kontrollierte Entsperrungs-Funktionalität vorgesehen sein, um eine Neuprogrammierung von IV zu ermöglichen (bei Verwendung einer Schreib-Sperre anstatt einer OTP-Funktionalität).
  • Die geheime Funktion fX(.) kann eine (z.B. übliche) kryptographische Hash-Funktion, eine AE(authenticated encryption)-Funktion, eine MAC(Message Authentication Code)-Funktion oder eine andere dedizierte Funktion sein, die einen Angreifer daran hindert, den Wert des Root Keys R aus den Eingabewerten abzuleiten oder zu erraten.
  • Die geheime Funktion fX(.) kann unter Verwendung von Gegenmaßnahmen gegen Seitenkanalattacken und/oder Fehlerattacken implementiert werden, abhängig von der Zugänglichkeit des Werts IV für einen Angreifer.
  • Als drittes Anwendungsbeispiel werden die geheimen Ausgaben Ω1, Ω2, ... (z.B. über mehrere Takte) als pseudozufällige Folge zum Maskieren von Daten zum Schutz (Gegenmaßnahme) gegen Seitenkanalattacken und differentielle Fehleranalyse verwendet. Die Eingabe Φ kann hierbei eine echte Zufallsfolge sein.
  • Ein lineares oder nichtlineares Schieberegister kann realisiert werden, indem Φ durch eine lineare bzw. nichtlineare Übergangsfunktion bereitgestellt wird. Das Schieberegister durchläuft dann eine Folge von Werten, die von einem Angreifer, der ein Reverse Engineering durchführt, nicht vorhersagbar ist.
  • Zusammenfassend wird gemäß verschiedenen Ausführungsbeispielen eine integrierte elektronische Schaltung bereitgestellt, wie sie in 12 dargestellt ist.
  • 12 zeigt eine integrierte elektronische Schaltung 1200 gemäß einer Ausführungsform.
  • Die integrierte elektronische Schaltung 1200 weist ein Schaltnetz 1201 auf, das eingerichtet ist, binäre Steuerzustände zu empfangen.
  • Die integrierte elektronische Schaltung 1200 weist ferner ein oder mehrere geheimnistragende Gatter 1202 auf, wobei jedes geheimnistragende Gatter 1202 Boolesche Geheimnisse repräsentiert und eingerichtet ist, binäre Eingangszustände zu empfangen und mindestens eines der Booleschen Geheimnisse in Abhängigkeit von einer Zustandsfolge (d.h. einer zeitlichen Folge von Zuständen) der binären Eingangszustände auszugeben.
  • Außerdem weist die integrierte elektronische Schaltung 1200 ein oder mehrere Flip-Flops 1203 auf, die eingerichtet sind, von dem Schaltnetz ausgegebene binäre Ausgangszustände zu speichern und basierend auf den gespeicherten binären Ausgangszuständen den ein oder mehreren geheimistragenden Gatter binäre Eingangszustände zuzuführen.
  • Das Schaltnetz 1201 ist eingerichtet, die binären Ausgangszustände durch Kombinieren der binären Steuerzustände und von den ein oder mehreren geheimnistragenden Gattern ausgegebenen Booleschen Geheimnissen zu erzeugen.
  • Die integrierte elektronische Schaltung 1200 weist ferner einen Ausgang 1204 auf, der eingerichtet ist, von den ein oder mehreren geheimnistragenden Gattern ausgegebene Boolesche Geheimnisse und/oder von dem Schaltnetz 1201 ausgegebene binäre Ausgangszustände an eine andere integrierte elektronische Schaltung auszugeben.
  • In anderen Worten wird gemäß verschiedenen Ausführungsformen ein Schaltwerk in einer integrierten Schaltung (z.B. auf einem Chip) vorgesehen, das ein oder mehrere geheimnistragende Gatter (d.h. Tarnschaltung wie z.B. MH-Gatter) aufweist. Ausgegebene Geheimnisse werden verarbeitet und erneut den geheimnistragenden Gattern zugeführt, sodass die integrierte Schaltung eine geheime Folge von (Logik-)Zuständen durchläuft.
  • Die integrierte elektronische Schaltung implementiert somit einen endlichen Automaten. Gemäß verschiedenen Ausführungsformen wird somit eine Schutz eines endlichen Automaten vor Reverse-Engineering basierend auf ein oder mehreren geheimnistragenden Zellen (speziell Gattern) erreicht, die jeweils ein oder mehrere Boolesche Geheimnisse tragen bzw. liefern können. Ein Beispiel für solche geheimnistragenden Zellen sind MH-Zellen. Es sollte jedoch beachtet werden, dass mehrere MH-Zellen hintereinander zu einer Kette geschaltet werden können, so dass das von der Kette in Reaktion auf einen Zustandsübergang ausgegebene Geheimnisse von einer Folge von (mehreren) vorhergehenden Zustandsübergängen abhängt. Da der aktuelle Ausgabewert einer MH-Zelle (auch) für (ein oder mehrere) aktuelle Eingangszustände von den (ein oder mehreren) unmittelbar vorhergehenden Eingangszuständen abhängt, eine MH-Zelle somit anschaulich einen Taktzyklus in die Vergangenheit blickt, kann durch Verketten mehrerer MH-Zellen mehrere Taktzyklen in die Vergangenheit geblickt werden.
  • Der Ausgang der integrierten Schaltung ist beispielsweise ein binärer Ausgang mit ein oder mehreren Bitleitungen. Die von dem Ausgang ausgegebenen Zustände können von der anderen integrierten Schaltung auf verschiede Weise verwendet werden, z.B. als Steuerinformationen (z.B. Steuerbits bzw. Steuerbitfolge), als Teil eines kryptographischer Schlüssels etc.
  • Ein Zustand, der einer Schaltung oder einer Schaltungskomponente zugeführt wird, kann als Logikzustand verstanden werden. Ein Signal kann ein oder mehrere Zustände (über die Zeit) repräsentieren. Ein Zustandsfolge ist entsprechend beispielsweise ein Signal, das seinen Logik-Pegel (typischerweise 1 oder 0) über die Zeit ändern kann und somit sich ändernde LogikZustände repräsentieren kann.
  • Im Folgenden werden verschiedene Ausführungsbeispiele angegeben.
  • Ausführungsbeispiel 1 ist eine integrierte elektronische Schaltung, wie sie in 12 dargestellt ist.
  • Ausführungsbeispiel 2 ist eine integrierte Schaltung gemäß Ausführungsbeispiel 1, wobei das Schaltnetz einen Multiplexer realisiert.
  • Ausführungsbeispiel 3 ist eine integrierte Schaltung gemäß Ausführungsbeispiel 2, wobei die von den ein oder mehreren geheimistragenden Gattern ausgegebenen Booleschen Geheimnisse steuern, welche binären Steuerzustände von dem Multiplexer als binäre Ausgangszustände ausgeben werden.
  • Ausführungsbeispiel 4 ist eine integrierte Schaltung gemäß einem der Ausführungsbeispiele 1 bis 3, wobei jedes geheimistragende Gatter mehrere Feldeffekttransistorpaare aufweist, die derart verbunden sind, dass ansprechend auf einen ersten Übergang von einem ersten binären Zustand zweier Knoten des Gatters und ansprechend auf einen zweiten Übergang von einem zweiten binären Zustand der Knoten des Gatters die Knoten jeweils einen undefinierten binären Logikzustand aufweisen, wenn für jedes Feldeffekttransistorpaar die Schwellenspannungen der Feldeffekttransistoren des Feldeffekttransistorpaars gleich sind, und die Schwellenspannungen der Feldeffekttransistoren der Feldeffekttransistorpaare derart festgelegt sind, dass die Knoten ansprechend auf den ersten Übergang und ansprechend auf den zweiten Übergang jeweils einen vorgegebenen definierten binären Logikzustand aufweisen.
  • Ausführungsbeispiel 5 ist eine integrierte Schaltung gemäß Ausführungsbeispiel 4, wobei die Booleschen Geheimnisse die vorgegebenen definierten binären Logikzustände sind.
  • Ausführungsbeispiel 6 ist eine integrierte Schaltung gemäß Ausführungsbeispiel 4 oder 5, wobei das Gatter ein oder mehrere Paare konkurrierender Pfade aufweist, so dass für jedes Feldeffekttransistorpaar die beiden Feldeffekttransistoren in verschiedenen konkurrierenden Pfaden eines Paars konkurrierender Pfade liegen.
  • Ausführungsbeispiel 7 ist ein Chip aufweisend mindestens eine integrierte Schaltung gemäß einem der Ausführungsbeispiele 1 bis 6.
  • Ausführungsbeispiel 8 ist ein Chip gemäß Ausführungsbeispiel 7, aufweisend mehrere integrierte Schaltungen gemäß einem der Ausführungsbeispiele 1 bis 6, in der einer ersten der integrierten Schaltungen ein vom Ausgang einer zweiten der integrierten Schaltungen ausgegebenes Signal zugeführt wird.
    Ausführungsbeispiel 9 ist ein Chip gemäß Ausführungsbeispiel 8, aufweisend eine Kombinationsschaltung, die eingerichtet ist, die binären Steuerzustände der ersten integrierten Schaltung basierend auf dem vom Ausgang der zweiten integrierten Schaltungen ausgegebenen Signal zu erzeugen.
  • Ausführungsbeispiel 10 ist ein Chip gemäß Ausführungsbeispiel 8 oder 9, in der der zweiten integrierten Schaltung ein vom Ausgang der ersten integrierten Schaltung ausgegebenes Signal zugeführt wird.
  • Ausführungsbeispiel 11 ist ein Chip gemäß Ausführungsbeispiel 10, aufweisend eine Kombinationsschaltung, die eingerichtet ist, die binären Steuerzustände der zweiten integrierten Schaltung basierend auf dem vom Ausgang der ersten integrierten Schaltung ausgegebenen Signal zu erzeugen.
  • Ausführungsbeispiel 12 ist ein Chip gemäß einem der Ausführungsbeispiele 8 bis 11, aufweisend eine Kette von integrierten Schaltungen, die durch die Mehrzahl von integrierten Schaltungen gebildet wird, in der einer nachfolgenden integrierten Schaltung in der Kette ein vom Ausgang einer vorhergehenden integrierten Schaltung in der Kette ausgegebenes Signal zugeführt wird.
  • Ausführungsbeispiel 13 ist ein Chip gemäß Ausführungsbeispiel 12, wobei der nachfolgenden integrierten Schaltung das vom Ausgang der vorhergehenden integrierten Schaltung ausgegebene Signal als ein oder mehrere der binären Steuerzustände und/oder ein oder mehrere mit gespeicherten binäre Ausgangszuständen zu kombinierende binäre Zustände zugeführt wird.
  • Ausführungsbeispiel 14 ist ein Chip gemäß Ausführungsbeispiel 12 oder 3, in der der vorhergehenden integrierten Schaltung in der Kette ein vom Ausgang der nachfolgenden integrierten Schaltung in der Kette ausgegebenes Signal zugeführtes wird.
  • Ausführungsbeispiel 15 ist ein Chip gemäß Ausführungsbeispiel 14, wobei der vorhergehenden integrierten Schaltung das vom Ausgang der nachfolgenden integrierten Schaltung ausgegebene Signal als ein oder mehrere der binären Steuerzustände und/oder ein oder mehrere mit gespeicherten binären Ausgangszuständen zu kombinierende binäre Zustände zugeführt wird.
  • Ausführungsbeispiel 16 ist ein Chip gemäß einem der Ausführungsbeispiele 12 oder 15, in der mindestens einer der integrierten Schaltung in der Kette ein vom Ausgang der nachfolgenden integrierten Schaltung in der Kette ausgegebenen Signal und ein vom Ausgang der vorhergehenden integrierten Schaltung in der Kette ausgegebenes Signal zugeführt wird.
  • Ausführungsbeispiel 17 ist ein Chip gemäß Ausführungsbeispiel 16, wobei der mindestens einen integrierten Schaltung das vom Ausgang der nachfolgenden integrierten Schaltung ausgegebene Signal und das vom Ausgang der vorhergehenden integrierten Schaltung ausgegebene Signal als ein oder mehrere der binären Steuerzustände und/oder ein oder mehrere mit gespeicherten binären Ausgangszuständen zu kombinierende binäre Zustände zugeführt werden.
  • Ausführungsbeispiel 18 ist ein Chip gemäß einem der Ausführungsbeispiele 7 bis 14, aufweisend einen nichtflüchtigen Speicher, der einen Wert speichert und eingerichtet ist, basierend auf dem Wert der mindestens einen integrierten Schaltung ein oder mehrere der binären Steuerzustände und/oder ein oder mehrere mit gespeicherten binären Ausgangszuständen zu kombinierende binäre Zustände zuzuführen.
  • Ausführungsbeispiel 19 ist ein Chip gemäß Ausführungsbeispiel 18, wobei der Speicher einen Verriegelungsmechanismus aufweist, sodass er nur einmal beschrieben werden kann.
  • Ausführungsbeispiel 20 ist ein Chip gemäß Ausführungsbeispiel 18 oder 19, wobei der Wert ein Chip-individueller geheimer Wert ist.
  • Ausführungsbeispiel 21 ist ein Chip gemäß einem der Ausführungsbeispiele 7 bis 20, aufweisend eine Verarbeitungsschaltung, wobei der Ausgang mindestens einer der integrierten Schaltungen eingerichtet ist, von den ein oder mehreren geheimistragenden Gattern ausgegebene Boolesche Geheimnisse und/oder von dem Schaltnetz ausgegebene binäre Ausgangszustände an die Verarbeitungsschaltung auszugeben und die Verarbeitungsschaltung eingerichtet ist, eine Folge von von der mindestens einen integrierten Schaltung empfangenen binären Zuständen als kryptographischen Schlüssel zu verwenden.
  • Gemäß einem weiteren Ausführungsbeispiel wird eine integrierte elektronische Schaltung bereitgestellt aufweisend ein Schaltnetz, das eingerichtet ist, ein oder mehrere Steuersignale zu empfangen, ein oder mehrere geheimistragende Gatter, wobei jedes geheimistragende Gatter ein oder mehrere Boolesche Geheimnisse repräsentiert und eingerichtet ist, ein oder mehrere Eingangssignale zu empfangen und mindestens eines der Booleschen Geheimnisse in Abhängigkeit von einer Binärer Zustandsfolge der ein oder mehreren Eingangssignale auszugeben und ein oder mehrere Flip-Flops, die eingerichtet sind, von dem Schaltnetz ein oder mehrere ausgegebene Ausgangssignale zu speichern und gespeicherte Signale den ein oder mehreren geheimistragenden Gatter als das Eingangssignal oder die mehreren Eingangssignale zuzuführen, wobei das Schaltnetz eingerichtet ist, die ein oder mehreren Ausgangssignale durch Kombinieren der ein oder mehreren Steuersignale und ein oder mehreren von den ein oder mehreren geheimistragenden Gatter ausgegebenen Booleschen Geheimnissen zu erzeugen und die integrierte elektronische Schaltung ferner einen Ausgang aufweist, der eingerichtet ist, ein oder mehrere von den ein oder mehreren geheimistragenden Gatter ausgegebene Boolesche Geheimnisse oder ein oder mehrere von dem Schaltnetz ausgegebene Ausgangssignale an eine andere integrierte elektronische Schaltung auszugeben.
  • Obwohl die Erfindung vor allem unter Bezugnahme auf bestimmte Ausführungsformen gezeigt und beschrieben wurde, sollte es von denjenigen, die mit dem Fachgebiet vertraut sind, verstanden werden, dass zahlreiche Änderungen bezüglich Ausgestaltung und Details daran vorgenommen werden können, ohne vom Wesen und Bereich der Erfindung, wie er durch die nachfolgenden Ansprüche definiert wird, abzuweichen. Der Bereich der Erfindung wird daher durch die angefügten Ansprüche bestimmt, und es ist beabsichtigt, dass sämtliche Änderungen, welche unter den Wortsinn oder den Äquivalenzbereich der Ansprüche fallen, umfasst werden.
  • Bezugszeichenliste
  • 100
    Chipkarte
    101
    Träger
    102
    Chipkartenmodul
    103
    Speicher
    104
    Prozessor
    105
    Kryptoprozessor
    200
    MH-Gatter
    300
    Schaltung
    301,302
    NICHT-UND-NICHT-ODER
    303,304
    Inverter
    305-307
    p-Kanal-FETs
    308
    Ausgangsknoten
    309,310
    p-Kanal-FETs
    311-315
    n-Kanal-FETs
    316-318
    p-Kanal-FETs
    319
    Ausgangsknoten
    320,321
    p-Kanal-FETs
    322-326
    n-Kanal-FETs
    400
    Zustandsdiagramm
    500
    Schaltung
    501
    MH-Gatter
    502
    Schaltnetz
    503, 504
    Flip-Flops
    600
    Schaltwerk-Anordnung
    601
    Schaltwerke
    602
    EXKLUSIV-ODER-Gatter
    700
    Zustandsdiagramm
    800
    Schaltung
    801
    MH-Gatter
    802
    Schaltnetz
    803,504
    Flip-Flops
    900
    endlicher Automat
    901
    Stufe
    902
    MH-Schicht
    903
    kombinatorische Schicht
    904
    sequentielle Schicht
    905
    Ausgabeschicht
    1000
    Chip
    1001
    Zustandsautomat
    1002
    nichtflüchtiger Speicher
    1100
    Chip
    1101
    Zustandsautomat
    1102
    nichtflüchtiger Speicher
    1103
    OTP-Funktionalität oder Schreibe-Sperre
    1200
    integrierte elektronische Schaltung
    1201
    Schaltnetz
    1202
    geheimnistragende Gatter
    1203
    Flip-Flops
    1204
    Ausgang

Claims (20)

  1. Integrierte elektronische Schaltung aufweisend: Ein Schaltnetz, das eingerichtet ist, binäre Steuerzustände zu empfangen; Ein oder mehrere geheimnistragende Gatter, wobei jedes geheimnistragende Gatter Boolesche Geheimnisse repräsentiert und eingerichtet ist, binäre Eingangszustände zu empfangen und mindestens eines der Booleschen Geheimnisse in Abhängigkeit von einer Zustandsfolge der binären Eingangszustände auszugeben; und Ein oder mehrere Flip-Flops, die eingerichtet sind, von dem Schaltnetz ausgegebene binäre Ausgangszustände zu speichern und basierend auf den gespeicherten binären Ausgangszuständen den ein oder mehreren geheimistragenden Gattern binäre Eingangszustände zuzuführen; wobei das Schaltnetz eingerichtet ist, die binären Ausgangszustände durch Kombinieren der binären Steuerzustände und von den ein oder mehreren geheimnistragenden Gattern ausgegebenen Booleschen Geheimnissen zu erzeugen; und wobei die integrierte elektronische Schaltung ferner einen Ausgang aufweist, der eingerichtet ist, von den ein oder mehreren geheimnistragenden Gattern ausgegebene Boolesche Geheimnisse und/oder von dem Schaltnetz ausgegebene binäre Ausgangszustände an eine andere integrierte elektronische Schaltung auszugeben.
  2. Integrierte Schaltung gemäß Anspruch 1, wobei das Schaltnetz einen Multiplexer realisiert.
  3. Integrierte Schaltung gemäß Anspruch 2, wobei die von den ein oder mehreren geheimistragenden Gattern ausgegebenen Booleschen Geheimnisse steuern, welche binären Steuerzustände von dem Multiplexer als binäre Ausgangszustände ausgeben werden.
  4. Integrierte Schaltung gemäß einem der Ansprüche 1 bis 3, wobei jedes geheimistragende Gatter mehrere Feldeffekttransistorpaare aufweist, die derart verbunden sind, dass ansprechend auf einen ersten Übergang von einem ersten binären Zustand zweier Knoten des Gatters und ansprechend auf einen zweiten Übergang von einem zweiten binären Zustand der Knoten des Gatters die Knoten jeweils einen undefinierten binären Logikzustand aufweisen, wenn für jedes Feldeffekttransistorpaar die Schwellenspannungen der Feldeffekttransistoren des Feldeffekttransistorpaars gleich sind, und die Schwellenspannungen der Feldeffekttransistoren der Feldeffekttransistorpaare derart festgelegt sind, dass die Knoten ansprechend auf den ersten Übergang und ansprechend auf den zweiten Übergang jeweils einen vorgegebenen definierten binären Logikzustand aufweisen.
  5. Integrierte Schaltung gemäß Anspruch 4, wobei die Booleschen Geheimnisse die vorgegebenen definierten binären Logikzustände sind.
  6. Integrierte Schaltung gemäß Anspruch 4 oder 5, wobei das Gatter ein oder mehrere Paare konkurrierender Pfade aufweist, so dass für jedes Feldeffekttransistorpaar die beiden Feldeffekttransistoren in verschiedenen konkurrierenden Pfaden eines Paars konkurrierender Pfade liegen.
  7. Chip aufweisend mindestens eine integrierte Schaltung gemäß einem der Ansprüche 1 bis 6.
  8. Chip gemäß Anspruch 7, aufweisend mehrere integrierte Schaltungen gemäß einem der Ansprüche 1 bis 6, in der einer ersten der integrierten Schaltungen ein vom Ausgang einer zweiten der integrierten Schaltungen ausgegebenes Signal zugeführt wird.
  9. Chip gemäß Anspruch 8, aufweisend eine Kombinationsschaltung, die eingerichtet ist, die binären Steuerzustände der ersten integrierten Schaltung basierend auf dem vom Ausgang der zweiten integrierten Schaltungen ausgegebenen Signal zu erzeugen.
  10. Chip gemäß Anspruch 8 oder 9, in der der zweiten integrierten Schaltung ein vom Ausgang der ersten integrierten Schaltung ausgegebenes Signal zugeführt wird.
  11. Chip gemäß Anspruch 10, aufweisend eine Kombinationsschaltung, die eingerichtet ist, die binären Steuerzustände der zweiten integrierten Schaltung basierend auf dem vom Ausgang der ersten integrierten Schaltung ausgegebenen Signal zu erzeugen.
  12. Chip gemäß einem der Ansprüche 8 bis 11, aufweisend eine Kette von integrierten Schaltungen, die durch die Mehrzahl von integrierten Schaltungen gebildet wird, in der einer nachfolgenden integrierten Schaltung in der Kette ein vom Ausgang einer vorhergehenden integrierten Schaltung in der Kette ausgegebenes Signal zugeführt wird.
  13. Chip gemäß Anspruch 12, wobei der nachfolgenden integrierten Schaltung das vom Ausgang der vorhergehenden integrierten Schaltung ausgegebene Signal als ein oder mehrere der binären Steuerzustände und/oder ein oder mehrere mit gespeicherten binäre Ausgangszuständen zu kombinierende binäre Zustände zugeführt wird.
  14. Chip gemäß Anspruch 12 oder 3, in der der vorhergehenden integrierten Schaltung in der Kette ein vom Ausgang der nachfolgenden integrierten Schaltung in der Kette ausgegebenes Signal zugeführtes wird.
  15. Chip gemäß Anspruch 14, wobei der vorhergehenden integrierten Schaltung das vom Ausgang der nachfolgenden integrierten Schaltung ausgegebene Signal als ein oder mehrere der binären Steuerzustände und/oder ein oder mehrere mit gespeicherten binären Ausgangszuständen zu kombinierende binäre Zustände zugeführt wird.
  16. Chip gemäß einem der Ansprüche 12 oder 15, in der mindestens einer der integrierten Schaltung in der Kette ein vom Ausgang der nachfolgenden integrierten Schaltung in der Kette ausgegebenen Signal und ein vom Ausgang der vorhergehenden integrierten Schaltung in der Kette ausgegebenes Signal zugeführt wird.
  17. Chip gemäß Anspruch 16, wobei der mindestens einen integrierten Schaltung das vom Ausgang der nachfolgenden integrierten Schaltung ausgegebene Signal und das vom Ausgang der vorhergehenden integrierten Schaltung ausgegebene Signal als ein oder mehrere der binären Steuerzustände und/oder ein oder mehrere mit gespeicherten binären Ausgangszuständen zu kombinierende binäre Zustände zugeführt werden.
  18. Chip gemäß einem der Ansprüche 7 bis 14, aufweisend einen nichtflüchtigen Speicher, der einen Wert speichert und eingerichtet ist, basierend auf dem Wert der mindestens einen integrierten Schaltung ein oder mehrere der binären Steuerzustände und/oder ein oder mehrere mit gespeicherten binären Ausgangszuständen zu kombinierende binäre Zustände zuzuführen.
  19. Chip gemäß Anspruch 18, wobei der Speicher einen Verriegelungsmechanismus aufweist, sodass er nur einmal beschrieben werden kann.
  20. Chip gemäß Anspruch 18 oder 19, wobei der Wert ein Chip-individueller geheimer Wert ist.
DE102019112583.9A 2019-05-14 2019-05-14 Integrierte elektronische schaltung Pending DE102019112583A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102019112583.9A DE102019112583A1 (de) 2019-05-14 2019-05-14 Integrierte elektronische schaltung
US15/931,966 US11171647B2 (en) 2019-05-14 2020-05-14 Integrated electronic circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102019112583.9A DE102019112583A1 (de) 2019-05-14 2019-05-14 Integrierte elektronische schaltung

Publications (1)

Publication Number Publication Date
DE102019112583A1 true DE102019112583A1 (de) 2020-11-19

Family

ID=73018882

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019112583.9A Pending DE102019112583A1 (de) 2019-05-14 2019-05-14 Integrierte elektronische schaltung

Country Status (2)

Country Link
US (1) US11171647B2 (de)
DE (1) DE102019112583A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021129408A1 (de) 2021-11-11 2023-05-11 Infineon Technologies Ag Integrierte schaltung und verfahren zum schützen einer integrierten schaltung vor reverse engineering

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11689510B2 (en) * 2020-12-08 2023-06-27 TrustFour Technologies, Inc. Cryptographic platform system and method
CN116628770B (zh) * 2023-07-19 2023-11-28 北京芯驰半导体科技有限公司 芯片的数据保护方法、装置、芯片、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1994011950A1 (en) * 1992-11-10 1994-05-26 Infinite Technology Corporation Programmable logic devices and configurable logic networks
US20170019104A1 (en) * 2015-07-17 2017-01-19 Infineon Technologies Ag Method for manufacturing a digital circuit and digital circuit
US20180091155A1 (en) * 2016-09-23 2018-03-29 Infineon Technologies Ag Programmable logic circuit and method for implementing a boolean function

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4818651B2 (ja) * 2005-07-13 2011-11-16 ルネサスエレクトロニクス株式会社 暗号化・復号化回路
US8600061B2 (en) * 2011-06-24 2013-12-03 Broadcom Corporation Generating secure device secret key
US9431353B2 (en) * 2014-04-09 2016-08-30 Infineon Technologies Ag Method for manufacturing a digital circuit and digital circuit
US9705501B2 (en) * 2014-10-01 2017-07-11 Maxim Integrated Products, Inc. Systems and methods for enhancing confidentiality via logic gate encryption

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1994011950A1 (en) * 1992-11-10 1994-05-26 Infinite Technology Corporation Programmable logic devices and configurable logic networks
US20170019104A1 (en) * 2015-07-17 2017-01-19 Infineon Technologies Ag Method for manufacturing a digital circuit and digital circuit
US20180091155A1 (en) * 2016-09-23 2018-03-29 Infineon Technologies Ag Programmable logic circuit and method for implementing a boolean function

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021129408A1 (de) 2021-11-11 2023-05-11 Infineon Technologies Ag Integrierte schaltung und verfahren zum schützen einer integrierten schaltung vor reverse engineering

Also Published As

Publication number Publication date
US11171647B2 (en) 2021-11-09
US20200366291A1 (en) 2020-11-19

Similar Documents

Publication Publication Date Title
DE102020106346A1 (de) Integrierter schaltkreis
EP2240848B1 (de) Schaltung und verfahren zur generierung einer echten, schaltungsspezifischen und zeitinvarianten zufallszahl
DE102015110431A1 (de) Kryptografischer Prozessor, Verfahren zum Implementieren eines kryptografischen Prozessors und Schlüsselgenerierungsschaltung
DE102019112583A1 (de) Integrierte elektronische schaltung
DE102009024179B4 (de) Schaltung mit einer Mehrzahl von Funktionsweisen
WO2013004489A1 (de) Verfahren zum prüfen eines m aus n codes
DE102017126217B4 (de) PUF-Arbiter-Schaltung
DE102015106508A1 (de) Halbleiterchip
DE102010029735A1 (de) Verfahren zum Generieren eines Bitvektors
DE102015105417A1 (de) Verfahren zum Herstellen einer Digitalschaltung und Digitalschaltung
DE102017102037A1 (de) Physisch unklonbare funktionsschaltung
DE102016113128B4 (de) Verfahren zur Herstellung einer digitalen Schaltung und digitale Schaltung
DE102007009526B4 (de) Vorrichtung zum Speichern eines binären Zustandes
DE112019001438T5 (de) Kryptographisches asic mit kombinierten funktionen
DE102009007246A1 (de) Pseudozufallszahlengenerator und Verfahren zum Erzeugen einer Pseudozufallszahlenbitsequenz
DE102016120009A1 (de) Digitalschaltung und verfahren zum herstellen einer digitalschaltung
DE102009027086A1 (de) Vorrichtung und Verfahren zur Bildung einer Signatur
EP1022659B1 (de) Schaltungsanordnung zur elektonischen Datenverarbeitung
DE102012111414A1 (de) Speicherschaltung
DE102004009144B4 (de) Logikzelle und Verfahren zum Durchführen einer Dual-Rail-Logikoperation und Speichermedium
DE102009017773A1 (de) Speicher zum Speichern eines binären Zustands
EP1495542B1 (de) Schaltungsanordnung und verfahren zur erzeugung eines dual-rail-signals
DE102015116049B3 (de) Nulldetektionsschaltkreis und maskierter boolescher oder-schaltkreis
DE10227618A1 (de) Logikschaltung
DE102021129408A1 (de) Integrierte schaltung und verfahren zum schützen einer integrierten schaltung vor reverse engineering

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication