DE102021121328A1 - System und Verfahren zur Steuerung einer Logikschaltung mit nicht-deterministischer Taktflankenvariation - Google Patents

System und Verfahren zur Steuerung einer Logikschaltung mit nicht-deterministischer Taktflankenvariation Download PDF

Info

Publication number
DE102021121328A1
DE102021121328A1 DE102021121328.2A DE102021121328A DE102021121328A1 DE 102021121328 A1 DE102021121328 A1 DE 102021121328A1 DE 102021121328 A DE102021121328 A DE 102021121328A DE 102021121328 A1 DE102021121328 A1 DE 102021121328A1
Authority
DE
Germany
Prior art keywords
clock
latches
signal
logic
jitter
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
DE102021121328.2A
Other languages
English (en)
Inventor
Sebastian T. Ventrone
Johnatan Kantarovsky
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.)
GlobalFoundries US Inc
Original Assignee
GlobalFoundries US Inc
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 GlobalFoundries US Inc filed Critical GlobalFoundries US Inc
Publication of DE102021121328A1 publication Critical patent/DE102021121328A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K3/00Circuits for generating electric pulses; Monostable, bistable or multistable circuits
    • H03K3/84Generating pulses having a predetermined statistical distribution of a parameter, e.g. random pulse generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/20Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K3/00Circuits for generating electric pulses; Monostable, bistable or multistable circuits
    • H03K3/02Generators characterised by the type of circuit or by the means used for producing pulses
    • H03K3/027Generators characterised by the type of circuit or by the means used for producing pulses by the use of logic circuits, with internal or external positive feedback
    • H03K3/037Bistable circuits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K2005/00013Delay, i.e. output pulse is delayed after input pulse and pulse length of output pulse is dependent on pulse length of input pulse
    • H03K2005/00078Fixed delay
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/01Shaping pulses

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Manipulation Of Pulses (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

Ausführungsformen der Erfindung stellen Systeme und Verfahren zum Betrieb einer Logikschaltung mit nicht-deterministischen Taktflankenvariationen bereit. Ein System kann einen Taktgeber aufweisen, der mit einer Logikschaltung gekoppelt ist, wobei die Logikschaltung einen Satz von Source-Latches aufweist, die mit einem Satz von Capture-Latches über einen Satz von Logikkegeln gekoppelt sind. Der Taktgeber weist eine feste Taktkomponente, die so ausgebildet ist, dass sie ein Taktsignal mit einer ersten Taktflanke erzeugt, und eine Jitter-Taktkomponente auf, die mit der festen Taktkomponente gekoppelt und die ausgebildet ist, um das Taktsignal so zu modifizieren, dass es eine zweite Taktflanke auf Grundlage eines nicht-deterministischen Wertes aufweist. Der Taktgeber überträgt das Taktsignal mit der zweiten Taktflanke, um den Satz von Source-Latches und den Satz von Capture-Latches der Logikschaltung anzutreiben. Eine mit der Jitter-Taktkomponente gekoppelte Taktsteuerung erzeugt den nicht-deterministischen Wert.

Description

  • Technisches Gebiet
  • Ausführungsformen der Erfindung betreffen im Allgemeinen den Betrieb von Logikschaltungen. Genauer stellen Ausführungsformen der Erfindung Systeme und Verfahren zum Betrieb einer Logikschaltung mit einer nicht-deterministischen Taktflankenvariation bereit, wodurch interne Funktionen eines Produkts vor verschiedenen Formen einer externen Analyse verborgen werden.
  • Hintergrund
  • Ein wachsendes Problem im Bereich der Technologie für integrierte Schaltungen (IC) ist die Anfälligkeit eines Produkts für eine externe Analyse der Funktionen des Produkts im aktiven Zustand. Eine solche Analyse kann als „aktiver Angriff“ auf ein Produkt bezeichnet werden. Aktive Angriffe können durch die Analyse von Spannungskontrasten über Abschnitten eines Produkts während des Betriebs durchgeführt werden. Aktive Angriffe beruhen auf einem wiederholten Durchlaufen von verschiedenen Funktionen und einem Beobachten des beabsichtigten Energiepotenzials innerhalb von betroffenen Schaltkreisen. Die Beobachtungen können z. B. mit einem Scanner, wie z. B. einem Röntgengerät, durchgeführt werden.
  • Während eines aktiven Angriffs kann das Analysegerät mehrere Proben von Schaltkreisoperationen über eine bestimmte Zeitspanne erfassen. Die Röntgenanalyse der Proben kann Logikwerte (z. B. hohe und niedrige Spannungen) an Verbindungen zwischen Abschnitten eines Produkts anzeigen. Die Logikwerte können mit Taktflanken korreliert werden, die über ein deterministisches Zeitmuster betrieben werden. Eine solche Korrelation wird durch die Automatisierung von Triggerzeiten der Röntgenanalyse erreicht, die auf der Taktfrequenz der zu analysierenden Vorrichtung basieren. Aktive Angriffe haben sich für das Reverse-Engineering vieler Logikzustände innerhalb einer logischer Zustände Vorrichtung als effektiv erwiesen. Die Logikzustände der aktiven Schaltungen können nicht allein durch die Analyse einer inaktiven Vorrichtung ermittelt werden.
  • Zusammenfassung
  • Aspekte der Erfindung stellen ein System bereit, umfassend: einen Taktgeber, der mit einer Logikschaltung gekoppelt ist, wobei die Logikschaltung einen Satz von Source-Latches aufweist, die mit einem Satz von Capture-Latches über einen Satz von Logikkegeln gekoppelt sind, wobei der Taktgeber umfasst: eine feste Taktkomponente, die ausgebildet ist, ein Taktsignal mit einer ersten Taktflanke zu erzeugen, und eine Jitter-Taktkomponente, die mit der festen Taktkomponente gekoppelt ist und ausgebildet ist, das Taktsignal zu modifizieren, so dass es eine zweite Taktflanke auf der Grundlage eines nicht-deterministischen Wertes aufweist, wobei der Taktgeber das Taktsignal mit der zweiten Taktflanke überträgt, um den Satz von Source-Latches und den Satz von Capture-Latches der Logikschaltung anzusteuern; und eine Taktsteuerung, die mit der Jitter-Taktkomponente gekoppelt ist, wobei die Taktsteuerung den nicht-deterministischen Wert erzeugt.
  • Weitere Aspekte der Erfindung stellen eine integrierte Schaltungsstruktur (IC) bereit, umfassend: einen Satz von Source-Latches, die ausgebildet sind, ein Eingangslogiksignal weiterzuleiten; einen Satz von Logikkegeln, die mit dem Satz von Source-Latches gekoppelt sind und die ausgebildet sind, das Eingangslogiksignal über einen von mehreren Signalpfaden in ein Ausgangslogiksignal umzuwandeln; einen Satz von Capture-Latches, die mit dem Satz von Logikkegeln gekoppelt sind und die ausgebildet sind, das Ausgangslogiksignal von dem Satz von Logikkegeln zu verarbeiten; einen Taktgeber, der mit dem Satz von Source-Latches und dem Satz von Capture-Latches gekoppelt ist, wobei der Taktgeber eine feste Taktkomponente, die ausgebildet ist, ein Taktsignal mit einer ersten Taktflanke zu erzeugen, und eine Jitter-Taktkomponente aufweist, die mit der festen Taktkomponente gekoppelt ist und die ausgebildet ist, das Taktsignal zu modifizieren, so dass es eine zweite Taktflanke auf der Grundlage eines nicht-deterministischen Werts aufweist, wobei der Taktgeber das Taktsignal mit der zweiten Taktflanke überträgt, um den Satz von Source-Latches und den Satz von Capture-Latches zu betreiben; und eine Taktsteuerung, die mit der Jitter-Taktkomponente gekoppelt ist, wobei die Taktsteuerung den nicht-deterministischen Wert erzeugt.
  • Zusätzliche Aspekte der Erfindung stellen ein Verfahren bereit, umfassend: ein Erzeugen eines Taktsignals mit einer ersten Taktflanke; ein Erzeugen eines nicht-deterministischen Wertes über eine Taktsteuerung; ein Modifizieren des Taktsignals von der ersten Taktflanke zu einer zweiten Taktflanke auf der Grundlage des nicht-deterministischen Wertes; und ein Übertragen des Taktsignals mit der zweiten Taktflanke an eine Logikschaltung mit einem Satz von Source-Latches, die mit einem Satz von Capture-Latches über einen Satz von Logikkegeln gekoppelt sind, so dass das Taktsignal mit der zweiten Taktflanke einen jeden aus dem Satz von Source-Latches und dem Satz von Capture-Latches ansteuert.
  • Figurenliste
  • Diese und andere Merkmale dieser Erfindung sind aus der folgenden detaillierten Beschreibung der verschiedenen Aspekte der Erfindung in Verbindung mit den beiliegenden Zeichnungen leichter ersichtlich, die verschiedene Ausführungsformen der Erfindung zeigen und in denen:
    • 1 eine beispielhafte Vorrichtung zur Durchführung eines aktiven Angriffs auf ein Produkt mit einem Röntgengerät zeigt.
    • 2 eine schematische Ansicht eines Systems zur Steuerung einer Logikschaltung mit nicht-deterministischer Taktflankenvariation gemäß Ausführungsformen der Erfindung zeigt.
    • 3 eine erweiterte Ansicht der Signalpfade von einem Satz von Source-Latches zu einem Satz von Capture-Latches durch Logikkegel in Ausführungsformen der Erfindung zeigt.
    • 4 ein digitales Schaltungsschema eines Systems zur Ansteuerung einer Logikschaltung mit nicht-deterministischen Taktflankenschwankungen gemäß Ausführungsformen der Erfindung zeigt.
    • 5 ein vergleichendes Taktdiagramm zeigt, das einen Anfangstakt C1 und drei mögliche Verzögerungstakte zeigt, die in Ausführungsformen der Erfindung wählbar sind.
    • 6 ein beispielhaftes Flussdiagramm eines Verfahrens zur Ansteuerung einer Logikschaltung mit nicht-deterministischen Taktflankenvariationen gemäß Ausführungsformen der Erfindung zeigt.
  • Die Zeichnungen der Erfindung sind nicht unbedingt maßstabsgetreu. Die Zeichnungen sollen nur typische Aspekte der Erfindung darstellen und sind daher nicht als die Erfindung beschränkend anzusehen. In den Zeichnungen stehen gleiche Bezugszeichen für gleiche Elemente.
  • Detaillierte Beschreibung
  • In der folgenden Beschreibung wird auf die beilegenden Zeichnungen Bezug genommen, die einen Teil davon bilden und in denen zur Veranschaulichung bestimmte beispielhafte Ausführungsformen gezeigt sind, in denen die vorliegende Lehre praktiziert werden kann. Diese Ausführungsformen sind ausreichend detailliert beschrieben, um dem Fachmann die Anwendung der vorliegenden Erfindung zu ermöglichen, und es versteht sich, dass auch andere Ausführungsformen verwendet und Änderungen vorgenommen werden können, ohne vom Umfang der vorliegenden Erfindung abzuweichen. Die folgende Beschreibung ist daher lediglich illustrativ.
  • Ausführungsformen der vorliegenden Erfindung stellen Systeme und Verfahren bereit, um den Betrieb einer Logikschaltung mit nicht-deterministischen Taktflankenvariationen zu steuern.
  • Taktflanken beziehen sich auf die ansteigende und abfallende Flanke von Spannungen innerhalb eines Taktsignals zur Ansteuerung des Betriebs einer Logikschaltung. Die nicht-deterministische Taktflankenvariation kann die Anfälligkeit einer integrierten Schaltung für aktive Angriffe reduzieren, z. B. indem sie den Zeitpunkt schwierig oder unmöglich macht, wann eine Röntgenaufnahme von Spannungszuständen innerhalb von Logikschaltungen eines Produkts ausgelöst wird. Systeme gemäß der Erfindung stellen einen Taktgeber bereit, der mit einer Logikschaltung gekoppelt ist. Die Logikschaltung weist einen Satz von Source-Latches auf, die mit einem Satz von Capture-Latches über einen Satz von Logikkegeln gekoppelt sind. Das Timing der an die Logikschaltung übertragenen Taktflanken beeinflusst, welche Logikkegel Signale an den Satz von Capture-Latches übertragen.
  • Der Taktgeber kann eine feste Taktkomponente, um ein Taktsignal mit einer ersten Taktflanke zu erzeugen (d.h. einen Satz von ansteigenden und abfallenden Signalen zu jeweiligen Zeitpunkten), und eine Jitter-Taktkomponente aufweisen, die mit der festen Taktkomponente gekoppelt ist, um das Taktsignal so zu modifizieren, dass es eine zweite Taktflanke aufweist (d.h. ansteigende und abfallende Signale zu unterschiedlichen Zeitpunkten, aber mit im Wesentlichen derselben Frequenz). In einigen Implementierungen ist ein Taktsteuersystem mit der Jitter-Taktsteuerung gekoppelt und/oder darin enthalten, um eine nicht-deterministische Anzahl („N“) von verzögerten Takten zu erzeugen, so dass der Takt, der zum Latch geht, relative Flanken von Zyklus zu Zyklus verschiebt. Die nicht-deterministische Steuerung wählt aus, welcher verzögerte Takt eine Differenz zwischen dem Taktsignal mit der ersten Taktflanke und der zweiten Taktflanke von Zyklus zu Zyklus erzeugt. Der Taktgeber überträgt den Taktwert mit der zweiten Taktflanke, um den Satz von Source-Latches und den Satz von Capture-Latches zu steuern. In dieser Konfiguration kann ein Erfassungsgerät, wie z. B. ein Röntgengerät, seine Abtastung der Logikschaltung nicht zuverlässig in Übereinstimmung mit den Taktflankenschwankungen auslösen. Ausführungsformen der Erfindung verschleiern dadurch die Funktion der mit dem Taktgeber und der Taktsteuerung gekoppelten Logikschaltungen.
  • 1 zeigt ein Beispiel dafür, wie ein Angreifer versuchen kann, die Funktionen eines Geräts 10 zu analysieren, z. B. mit einem Scanner 12 (z. B. einem Röntgengerät). Es versteht sich, dass der Scanner 12 auch andere Arten von bildgebenden Werkzeugen (z. B. Wärmebildgeräte) bei anderen Arten von Angriffen oder Einstellungen aufweisen kann. Die Vorrichtung 10 kann in Form einer einzelnen Logikschaltung und/oder einer teilweisen oder vollständigen Vorrichtung mit mehreren zu analysierenden Logikschaltungen vorliegen. Der Scanner 12 kann ausgebildet sein, um Bilder der Vorrichtung 10 im Betrieb aufzunehmen. Ein Oszilloskop 14 oder ein ähnliches elektrisches Werkzeug kann an die Vorrichtung 10 angeschlossen werden. Das Oszilloskop 14 kann eine Versorgungsspannung und/oder andere Eingaben erzeugen, um Taktsignale innerhalb der Vorrichtung 10 anzutreiben, und somit die Vorrichtung 10 in einen aktiven Zustand versetzen.
  • Eine Angriffssteuerung 16 kann über das Oszilloskop 14 elektrisch mit der Vorrichtung 10 gekoppelt werden, um zu versuchen, die Vorrichtung 10 zu zwingen, verschiedene Logikfunktionen auszuführen. Die Angriffssteuerung 16 kann auch mit dem Scanner 12 elektrisch gekoppelt werden, um Röntgenbildaufnahmen der Vorrichtung 10 im Betrieb auszulösen. Auf diese Weise kann die Angriffssteuerung 16 sowohl das Gerät 10 als auch den Scanner 12 und/oder das Oszilloskop 14 steuern, um den Spannungszustand der Vorrichtung 10 zu analysieren, während es in Betrieb ist. In dieser Konfiguration ist es für die Angriffssteuerung 16 möglich, Logikfunktionen der Vorrichtung 10 abzuleiten, indem sie den Scanner 12 synchron mit Taktflanken triggert, die von einem internen oder anderweitig mit dem Gerät 10 verbundenen Taktgeber getaktet werden. Ausführungsformen der Erfindung stellen Systeme und Verfahren bereit, die Logikschaltungen (z. B. die in der Vorrichtung 10) davor schützen, von der Angriffssteuerung 16 und den damit verbundenen Elementen (z. B. Scanner 12 und Oszilloskop 14) erkannt und analysiert zu werden.
  • Mit Bezug auf 2 ist ein System 100 gemäß Ausführungsformen der Erfindung dargestellt, das mit einer Logikschaltung 102 betriebsfähig gekoppelt ist. Die Logikschaltung 102 kann einen Satz von Source-Latches 104 aufweisen, um ein Logikeingangssignal durch die Logikschaltung 102 weiterzuleiten. Source-Latches 104 können mit einem Satz von Capture-Latches 106 über einen Satz von Logikkegeln 108 gekoppelt sein. Die Logikkonen 108 sind so angeordnet, dass sie das/die von den Source-Latchs 104 weitergeleitete(n) logische(n) Eingangssignal(e) über einen entsprechenden Signalweg in ein oder mehrere entsprechende logische Ausgangssignale umwandeln. Der Signalpfad durch die Logikkegel 108 kann von der zu verarbeitenden Signalinformation und/oder den Taktflanken eines Taktsignals, das die Logikschaltung 102 antreibt, abhängig sein. Capture-Latches 106 in der Logikschaltung 102 können die Ausgangslogiksignale vom Satz von Logikkegeln 108 zur Verarbeitung und Weiterleitung an andere Elemente empfangen.
  • Der Satz von Source-Latches 104 kann mehrere verschiedene Latches 104a, 104b, 104c, 104d aufweisen. Der Satz von Capture-Latches 106 kann ebenfalls mehrere verschiedene Latches 106a, 106b, 106c, 106d aufweisen. Die Gesamtzahl an Latches in jedem Satz von Latches 104, 106 kann von Produkt zu Produkt variieren und in einigen Fällen kann die Logikschaltung 102 Hunderte oder Tausende von Latches in jedem Satz von Latches 104, 106 aufweisen. Die Logikschaltung 102 kann Teil einer jeden denkbaren Schaltung sein, die für die Übertragung von Daten in Form eines seriellen oder parallelen Datenstrings ausgebildet ist, und insbesondere kann sie in einem Produkt wie der Vorrichtung 10 (1) ganz oder teilweise vorhanden sein. Source-Latches 104 und Capture-Latches 106 können die Form einer digitalen Speicherschaltung zur Aufzeichnung eines hohen oder niedrigen Spannungswertes (d. h. einer „Null“ oder „Eins“) haben. Jedes Latch innerhalb der Source-Latches 104 und Capture-Latches 106 kann die Form einer beliebigen Schaltung annehmen, die zwei stabile Zustände aufweist und zum Speichern von Zustandsinformationen verwendet werden kann, einschließlich verschiedener Arten von digitalen Speichern.
  • Logikkegel 108 können ein oder mehrere Logikgatter darstellen, die so ausgebildet sind, dass sie Logiksignale von einem oder mehreren Source-Latches 104 und/oder anderen Logikkegeln 108 empfangen, um verschiedene Funktionen zu implementieren. Solche Funktionen können eine grundlegende Logik (z. B. „oder“, „und“, „exklusiv oder“, „exklusiv und“, „negativ oder“, „negativ und“ usw.) und/oder Kombinationen dieser Funktionen umfassen. Der Satz von Capture-Latches 106 kann die Ausgabe der Logikkegel 108 zur Verarbeitung und Weiterleitung an andere Teile der Vorrichtung empfangen und/oder speichern. Solche Teile können sich innerhalb oder außerhalb der Logikschaltung 102 befinden. Der Aufbau und die Funktion der Source-Latches 104 und Capture-Latches 106 sind in der Praxis gut bekannt und sind daher nicht ausführlich beschrieben.
  • Das System 100 kann mit der Logikschaltung 102 interagieren oder einen Teil davon darstellen, um einen aktiven Angriff zu verhindern. Das System 100 kann ein variables Steuersystem 110 mit einem Taktgeber 112 aufweisen, um eine digitale Takteingabe (z. B. eine periodische Hoch-Tief-Wellenform mit einer vorbestimmten Frequenz und entsprechenden Taktflanken zu bestimmten Zeitpunkten) für die Logikschaltung 102 bereitzustellen. Die Logikschaltung 102 kann ausgebildet sein, um mit einem Taktsignal zu arbeiten, das von dem Taktgeber 112 an sie übertragen wird. Im Gegensatz zu konventionellen Taktmechanismen für die Logikschaltung 102 liefert der Taktgeber 112 in Ausführungsformen der Erfindung ein Taktsignal, bei dem die Taktflanken nicht-deterministisch (z. B. zufällig) sind, um die Logikschaltung 102 zu steuern. Der Taktgeber 112 kann somit bewirken, dass Logiksignale zu nicht-deterministischen Zeiten von den Source-Latches 104 zum Satz von Capture-Latches 106 weitergeleitet werden. Das variable Steuersystem 110 kann eine gewisse Kontrolle über die Taktflanken eines an die Logikschaltung 102 übertragenen Signals bieten. Der nicht-deterministische Wert zur Erzeugung von Taktflankenvariationen kann Vorrichtungen, wie die Angriffssteuerung 16 (1), daran hindern oder daran behindern, Erkennungswerkzeuge (z. B. den Scanner 12) synchron mit der Ausbreitung und Erfassung von Logiksignalen auszulösen. Der Begriff „nicht-deterministischer Wert“, wie er hier verwendet wird, kann sich auf einen Zufallswert beziehen, muss sich aber auch nicht auf einen mathematisch reinen Zufallswert beziehen. Andere Arten von numerischen Werten, die ohne Eingabe eines Benutzers bestimmt werden (z. B. Pseudo-Zufallswerte), oder andere Mechanismen zur Bereitstellung einer nicht-deterministischen numerischen Ausgabe können verwendet werden, um einen „nicht-deterministischen Wert“ zu erzeugen, wie hier beschrieben.
  • Um Taktsignale mit variierenden Taktflanken zu erzeugen, kann der Taktgeber 112 des variablen Steuersystems 110 mehrere Komponenten aufweisen, um ein Signal mit Taktflanken zu erzeugen, die nicht-deterministisch sind, aber immer noch innerhalb einer Jitter-Grenze für die daran angeschlossene(n) Logikschaltung(en) 102 liegen. Der Taktgeber 112 kann z. B. eine feste Taktkomponente 114 zur Erzeugung eines Taktsignals 115 mit einer ersten (z. B. anfänglichen) Taktflanke aufweisen. Die erste Taktflanke im Taktsignal 115 kann ein vorbestimmter Spezifikationsfall sein, in dem die Logikschaltung 102 steigende und/oder fallende Flanken für den Logikzyklus erkennt, und/oder kann ein Signalverlauf mit dem geringstmöglichen Jitter sein. Die feste Taktkomponente 114 kann einen Taktgenerator (z. B. einen oder mehrere elektronische Oszillatoren wie einen Quarzoszillator oder eine beliebige Art von Lokaloszillator-„LO“-Schaltung in einer Vorrichtung) aufweisen oder anderweitig mit diesem gekoppelt sein, um den Betrieb der Logikschaltung 102 zu steuern und zu synchronisieren. Die feste Taktkomponente 114 kann verschiedene Unterkomponenten aufweisen, z. B. einen Resonanzkreis, einen Verstärker, eine Stromversorgungskopplung usw., um eine Wellenform mit einer gewünschten Frequenz zu erzeugen. Das mit der festen Taktkomponente 114 erzeugte Taktsignal 115 kann deterministisch sein, d. h. die Taktflanken der von ihr erzeugten Taktsignale variieren nicht auf der Grundlage von Eingangssignalen zum Taktgeber 112.
  • Der Taktgeber 112 kann auch eine Jitter-Taktkomponente 116 aufweisen, die operativ mit der festen Taktkomponente 114 gekoppelt ist. Die Jitter-Taktkomponente 116 kann keinen Taktgenerator oder eine ähnliche Oszillationsschaltung aufweisen und kann stattdessen eine eigene Schaltung zum Ändern der Taktflanken des Signals (z. B. Ändern ihrer Instanzen ohne Beeinflussung der Frequenz) auf der Grundlage eines nicht-deterministischen Werts sein. Die Jitter-Taktkomponente 116 kann also das Timing der vom Taktgeber 112 ausgesendeten Taktflanken ändern, z. B. durch Verwendung eines nicht-deterministischen Wertes, um die ausgehenden Flanken von den ursprünglichen Taktflanken zu unterscheiden. „Jitter“ bezieht sich auf die zeitliche Verschiebung (d. h. die Phasendifferenz) zwischen zwei Instanzen eines Taktsignals mit zwei unterschiedlichen Sätzen von Taktflanken, ohne Unterschiede in der Frequenz oder Amplitude eines Signals. In einigen Implementierungen kann die Jitter-Taktkomponente 116 eine Komponente sein, die das Taktsignal absichtlich jittert, indem sie es um einen nicht-deterministischen (z. B. zufälligen) Zeitbetrag verzögert (gemessen z. B. in Nanosekunden). Die Jitter-Taktkomponente 116 bewirkt somit, dass der Taktgeber 112 ein Taktsignal 118 mit einer zweiten Taktflanke aussendet, und das ausgesendete Taktsignal 118 wird an die Logikschaltung 102 übertragen, wie an anderer Stelle hierin beschrieben ist.
  • Eine Taktsteuerung 120 kann operativ mit der Jitter-Taktkomponente 116 gekoppelt sein, um nicht-deterministische Werte zur Bestimmung des Betrags des Jitters, d. h. der Variation zwischen der ersten und der zweiten Taktflanke, bereitzustellen. Die Taktsteuerung 120 kann somit die Form eines beliebigen derzeit bekannten oder später entwickelten Instruments zur Erzeugung nicht-deterministischer Variablen annehmen, die zufällig, pseudozufällig und/oder durch einen beliebigen Mechanismus erzeugt werden können, den ein Beobachter nicht genau vorhersagen kann. Solche Instrumente können z. B. einen Zufallszahlengenerator (RNG), Pseudo-Zufallszahlengenerator (PRNG) in Form einer digitalen Schaltung zur Erzeugung von Zufallswerten auf der Grundlage einer beliebigen denkbaren Funktion, eines Algorithmus usw. aufweisen. In weiteren Implementierungen kann der Taktgeber 120 eine physical unclonable function (PUF) aufweisen oder die Form einer PUF annehmen, ein physikalisches Objekt, das in Antwort auf verschiedene Eingaben eine eindeutige Ausgabe erzeugt. Als Ergebnis ihrer einzigartigen Ausgabe(n) können PUFs scheinbar zufällige Ausgaben in Antwort auf eingehende Spannungssignale erzeugen. Die eingehenden Spannungssignale können wiederum selbst von einem RNG oder einem ähnlichen Element übertragen werden, um in den nicht-deterministischen Werten von der Taktsteuerung 120 mehr Variation bereitzustellen.
  • Der Taktgeber 112 kann optional verschiedene Komponenten aufweisen oder mit diesen gekoppelt sein, um auf die Jitter-Taktkomponente 116 ohne Rücksicht auf den nicht-deterministischen Wert von der Taktsteuerung 120 zu wirken. Solche Komponenten können das Ausmaß steuern oder begrenzen, in dem die Jitter-Taktkomponente 116 das Taktsignal von der festen Taktkomponente 114 modifiziert. In einem Beispiel kann der Taktgeber 112 mit einem Jitter-Schalter 122 gekoppelt sein, um die Jitter-Taktkomponente 116 während des Betriebs des Systems 100 selektiv zu aktivieren oder zu deaktivieren. In einem vereinfachten Beispiel kann der Jitter-Schalter 122 die Form eines elektrischen Schalters, einer Sicherung, eines Transistors und/oder eines ähnlichen Elements annehmen, um zu steuern, ob die Jitter-Taktkomponente 116 die Taktflanken in einem von der festen Taktkomponente 114 ausgegebenen Signal modifiziert, bevor es zur Logikschaltung 102 gelangt. In weiteren Beispielen kann der Jitter-Schalter 122 ein separater Controller zum Erkennen und/oder Ausgeben von Befehlen sein, um die Funktion der Logikschaltung 102 zu verschleiern, indem die Jitter-Taktkomponente 116 aktiviert wird, und/oder um zu bewirken, dass die Logikschaltung 102 ohne Taktflankenänderung arbeitet, indem die Jitter-Taktkomponente 116 deaktiviert wird.
  • In welcher Ausführungsform auch immer, kann der Jitter-Schalter 122 steuern, ob das System 100 die Betriebsfrequenz der Logikschaltung 102 beeinflusst, je nachdem, ob ein Hersteller seine Funktionen verschleiern möchte. Der Jitter-Schalter 122 kann die Jitter-Taktkomponente 116 während der Herstellung eines Produkts und/oder nach dem Feldeinsatz aktivieren oder deaktivieren. Genauer gesagt kann der Jitter-Schalter 122 einen Befehl zur Verschleierung der Logikschaltung 102 empfangen (z. B. von einem Benutzer oder Hersteller) und in Antwort darauf die Jitter-Taktkomponente 116 aktivieren, um die Taktflanken in den Taktsignalen 118 zu variieren, die an die Source-Latches 104 und Capture-Latches 106 übertragen werden. In einigen Fällen kann der Jitter-Schalter 122 ganz weggelassen werden, so dass die Jitter-Taktkomponente 116 immer arbeitet.
  • Das System 100 und/oder der Taktgeber 112 können auch eine Jitter-Steuerung 124 aufweisen, der mit der Jitter-Taktkomponente 116 und/oder der Taktsteuerung 120 betriebsfähig gekoppelt ist, um sicherzustellen, dass der Betrag des Jitters im Taktsignal unter einem Zielwert bleibt. Im Fall, dass die Jitter-Steuerung 124 mit der Taktsteuerung 120 gekoppelt ist, kann die Jitter-Steuerung 124 den/die nicht-deterministischen Wert(e) von der Taktsteuerung 120 so begrenzen, dass sie mindestens eine Mindestfrequenz für den Betrieb der Logikschaltung 102 erzeugen. Wenn die Jitter-Steuerung 124 mit dem Taktgeber 112 gekoppelt ist, kann die Jitter-Steuerung 124 die Schwankungsbreite zwischen der ersten und zweiten Taktflanke verringern. Während des Betriebs kann die Taktsteuerung 120 und/oder die Jitter-Steuerung 124 eine Jitter-Grenze für das Taktsignal 118 basierend auf einer oder mehreren Eigenschaften der Logikschaltung 102 (z. B. der Anordnung der Logikkegel) berechnen. Sobald die Jitter-Grenze berechnet ist, kann die Taktsteuerung 120 den nicht-deterministischen Wert erzeugen und/oder die Jitter-Taktkomponente 116 kann das Taktsignal 118 erzeugen, um zu verhindern, dass die Jitter-Grenze überschritten wird.
  • Der Taktgeber 112 kann das Taktsignal 118 mit variierenden Taktflanken erzeugen, um verschiedene Komponenten der Logikschaltung 102 zu steuern. Genauer gesagt kann das Taktsignal 118 mit der zweiten (d. h. nicht-deterministischen) Taktflanke zusätzlich zu den Capture-Latches 106 an die Source-Latches 104 übertragen werden. Durch diese Anordnung kann das System 100 sicherstellen, dass jeder Satz von Latches 104, 106 die Signale wie gewünscht ausbreitet und einfängt, selbst nachdem die Jitter-Taktkomponente 116 die anfänglichen Taktflanken gegenüber ihren von der festen Taktkomponente 114 übertragenen Werten modifiziert hat. Ein Bediener der Logikschaltung 102 kann die Übertragung der Taktsignale 118 an jeden Satz von Latches 104, 106 verzögern wollen. In diesem Fall kann das System 100 einen oder mehrere Taktpuffer 130 aufweisen, die zwischen dem Taktgeber 112 und den Source-Latches 104 und/oder den Capture-Latches 106 gekoppelt sind, um die Weiterleitung des Taktsignals 118 an die Logikschaltung 102 zu verzögern (z. B. um eine vorgegebene Anzahl von Millisekunden). Ein Puffer ist ein elektrisches Bauteil, das die Amplitude, die Frequenz und/oder andere Eigenschaften von elektrischen Signalen, die es durchlaufen, nicht beeinflusst, sondern lediglich die Laufzeit von einem Element zum anderen verzögert. In einem Beispiel kann jeder Taktpuffer 130 ein „und“-Gatter mit einer Gruppe von seriell gekoppelten Invertem aufweisen, die mit einem Anschluss verbunden sind, so dass ein Signal den Taktpuffer 130 erst dann durchläuft, wenn es alle Inverter durchlaufen hat. Die Taktpuffer 130 können identisch oder nicht identisch sein, die Verzögerung in jedem Puffer kann so gewählt werden, dass die vom Taktgeber 112 ausgesendeten Taktsignale 118 die Source-Latches 104 und die Capture-Latches 106 im Wesentlichen zur gleichen Zeit erreichen.
  • In 3 zeigt eine erweiterte Ansicht der Logikschaltung 102 ein Beispiel für die Auswirkungen, die das System 100 auf den Betrieb der Logikschaltung 102 haben kann. Im Beispiel von 3 kann ein Satz von Latches 104 aus sieben Source-Latches 104a-104g Logiksignale an einen Satz von Latches 106 aus drei Capture-Latches 106a-106c durch mehrere Logikkegel 108 (z. B. sechs im Beispiel von 3) weiterleiten. Die Pfade vom Satz von Source-Latches 104 zum Satz von Capture-Latches 106 sind in Bezug auf die Taktflanken des an die Logikschaltung 102 übertragenen Taktsignals nicht fest. Das heißt, die Struktur und die Kopplungen über die Logikkegel 108 können dazu führen, dass sich Logiksignale entlang eines Pfades mit Taktsignalen 118 ausbreiten, die einen Satz von Taktflanken haben, aber entlang verschiedener Pfade mit der gleichen Frequenz unterschiedliche Taktflanken aufweisen. Somit weist die Logikschaltung 102 nicht-deterministische Logikpfade auf, die zumindest teilweise von den Taktflanken der Taktsignale 118 zur Ansteuerung des Satzes von Source-Latches 104 und des Satzes von Capture-Latches 106 abhängen. Der Unterschied in den Pfaden stellt sicher, dass die Daten von den Source-Latches 104 genau propagiert und in den Capture-Latches 106 unter Einhaltung der Zeitanforderungen aufgezeichnet werden können.
  • 3 zeigt ein Beispiel für zwei Timing-Pfade P1, P2 vom Source-Latch 104 zum Capture-Latch 106b durch den Satz von Logikkegeln 108. Das System 100 (2) und die Logikschaltung 102 können so strukturiert sein, dass sie die zweiten (d. h. nicht-deterministischen) Taktflanken in den vom Taktgeber 112 ausgegebenen Taktsignalen 118 berücksichtigen. Dies kann über das Design und die Timing-Analyse der Logikschaltung 102 sichergestellt werden, um einen Schlupf (slack) bereitzustellen, der die Taktsignale 118 mit unterschiedlichen Taktflanken aufnimmt. Der Begriff „Schlupf“ bezieht sich auf eine Differenz zwischen der (z. B. deterministisch oder statistisch ausgedrückten) Ankunftszeit eines Logiksignals an einem bestimmten Zusammenführungspunkt (z. B. einem der Capture-Latches 106a-c) von einem Eingang (z. B. einem der Source-Latches 104a-104g) und der erforderlichen Ankunftszeit für den Zusammenführungspunkt. Der Begriff „Ausbreitungszeit“ bezieht sich auf die Zeit, die ein Signal benötigt, um vom Eingang zum Zusammenführungspunkt zu gelangen.
  • Im Beispiel von 3 können sich Logiksignale durch die Logikschaltung 102 über den Timing-Pfad P1 ausbreiten, wenn das Taktsignal mit der ersten Taktflanke propagiert wird, aber sie können sich durch die Logikschaltung 102 über den Timing-Pfad P2 mit der zweiten Taktflanke ausbreiten. In beiden Fällen kann der Schlupf der Pfade P1, P2 größer sein als die Gesamtlaufzeit, die ein Taktsignal benötigt, um vom Satz der Source-Latches 104 zum Satz der Capture-Latches 106 zu gelangen. Somit nehmen die Logiksignale, die durch die Logikschaltung 102 laufen, verschiedene Wege mit unterschiedlichen Taktflanken, während sie immer noch die Funktionen der Logikschaltung 102 implementieren. Wenn das System 100 also Taktsignale 118 mit unterschiedlichen Taktflanken erzeugt, nehmen die Signale nicht-deterministische Pfade durch die Logikschaltung 102 und in unterschiedlichen Zeitintervallen. Dies kann einen Angreifer daran hindern, zu erkennen, wann er ein Gerät wie den Scanner 12 (1) auslösen muss, und die Funktionen zu verstehen, die die Logikschaltung 102 implementiert.
  • In den 4 und 5 wird eine digitale Schaltung zum Variieren des Jitters im Taktsignal 118 betrachtet. Ein digitales Schaltungsschema des Systems 100 und der Logikschaltung 102 ist in 4 dargestellt, während 5 ein Beispiel für drei mögliche Taktsignale 118a, 118b, 118c zeigt, die über die in 4 dargestellte Ausführungsform des Systems 100 erzeugt werden können. Die feste Taktkomponente 114 kann das Taktsignal 115 mit einer vorgegebenen ersten Taktflanke erzeugen. Das Taktsignal 115 kann seinerseits an die Jitter-Taktkomponente 116 übertragen werden. Gemäß der Beschreibung hierin wandelt die Jitter-Taktkomponente 116 das Taktsignal 115 mit einer ersten Taktflanke in ein Taktsignal 118 mit einer zweiten Taktflanke zur Übertragung an die Source-Latches 104 um. Die Taktsteuerung 120 kann die nicht-deterministischen Werte bereitstellen, die zur Steuerung des Jitteranteils im Taktsignal 118 verwendet werden, das an die Logikschaltung 102 übertragen wird. Gemäß einem Beispiel kann die Jitter-Taktkomponente 116 das Taktsignal 115 in drei verschiedene Taktsignale unter Verwendung entsprechender Verzögerungspuffer 148a, 148b, 148c aufteilen. Obwohl drei Verzögerungspuffer 148a, 148b, 148c als Beispiel angegeben sind, kann eine beliebige Anzahl von Verzögerungspuffern vorhanden sein. Jeder Verzögerungspuffer liefert ein entsprechendes Taktsignal 118a, 118b, 118c (5), das eines aus einer Gruppe von möglichen Taktsignalen darstellt, die von der Jitter-Taktkomponente 116 ausgegeben werden. Die Taktsignale 118a, 118b, 118c haben wiederum unterschiedliche Beträge der Zeitverzögerung d1, d2, d3 relativ zu den Taktflanken des Taktsignals 115. Es versteht sich also, dass alle möglichen Taktsignale 118a, 118b, 118c in der Jitter-Taktkomponente 116 erzeugt werden, ohne Rücksicht auf den nicht-deterministischen Wert, der von der Taktsteuerung 120 ausgegeben wird. Die Jitter-Taktkomponente 116 kann auch einen Demultiplexer („Demux“) 150 aufweisen, um eines der mehreren Taktsignale 118a, 118b, 118c für die Übertragung als Taktsignal 118 zu den Source-Latches 104 auszuwählen.
  • Die Taktsteuerung 120 verwendet also den nicht-deterministischen Wert, um den Demux 150 zu veranlassen, nur eines der mehreren Taktsignale und damit einen entsprechenden Betrag an Jitter auszuwählen, um die Logikschaltung 102 zu steuern.
  • Ein Satz von Source-Latches 104, die von den Taktsignalen 118a, 118b, 118c angesteuert werden, kann sich durch die Logikkegel 108 zu einem Satz von Capture-Latches 106 ausbreiten. Der Satz von Erfassungszwischenspeichern 106 kann seinerseits mit einem Multiplexer 152 („Mux“) gekoppelt sein. Mux 152 kann elektrisch mit der Taktsteuerung 120 gekoppelt sein, so dass derselbe nicht-deterministische Wert, der dem Demux 150 zugeführt wird, auch bewirkt, dass Mux 152 ausgehende Logiksignale mit der Geschwindigkeit des ausgewählten Taktsignals 118 empfängt und verarbeitet, unabhängig von dem Mechanismus zur Erzeugung eines nicht-deterministischen Werts zur Auswahl eines Taktsignals 118a, 118b, 118c. Der Mux 152 stellt danach die ausgehenden Daten den Capture-Latches 106 zur Verfügung. Somit können die Funktionen der Logikschaltung 102 durch die ausgewählten Taktflanken des Taktsignals 118 angesteuert werden, ohne jedoch die beabsichtigte Funktion der Logikschaltung 102 zu beeinträchtigen.
  • Mit Bezug auf 2 und 6 zusammen stellen Ausführungsformen der Erfindung ein Verfahren zur Ansteuerung der Logikschaltung 102 mit einer Taktflankenvariation bereit, z.B. unter Verwendung des Systems 100 gemäß Ausführungsformen der Erfindung. Im Verfahren P1 gemäß Ausführungsformen der Erfindung kann die feste Taktkomponente 114 des Taktes 112 ein Taktsignal mit einer ersten Taktflanke erzeugen. Das Verfahren kann dann zur Entscheidung D1 übergehen, in der das variable Steuersystem 110 bestimmt, ob eine Verschleierung von Signalen durch die Logikschaltung 102 gewünscht ist. Die Entscheidung D1 kann z.B. aufweisen, dass ein Signal vom Jitter-Schalter 122 detektiert oder nicht detektiert wird, dass der Jitter-Schalter 122 in eine Ein- oder Aus-Stellung gebracht wird und/oder andere Mechanismen zur Steuerung des Betriebs der Jitter-Taktkomponente 116. Für den Fall, dass keine Verschleierung erwünscht ist (d.h. „Nein“ bei Entscheidung D1), kann das System 100 die Logikschaltung 102 unter Verwendung der ersten Taktflanke von Taktgeber 112 ansteuern (d.h. wie durch die Zeile zu Prozess P6 angezeigt). Für den Fall, dass eine Verschleierung gewünscht ist (d.h. „Ja“ bei Entscheidung D1), kann das Verfahren mit weiteren Schritten zur Variation der Taktflanke fortfahren. In einigen Fällen (z. B. wenn der Jitter-Schalter 122 im System 100 weggelassen oder permanent eingeschaltet ist) kann die Entscheidung D1 weggelassen werden.
  • Der Prozess P2 kann in Verfahren gemäß Ausführungsformen der Erfindung ein Erzeugen eines nicht-deterministischen Wertes über die Taktsteuerung 120 aufweisen. Wie an anderer Stelle hierin beschrieben, kann der nicht-deterministische Wert mit jeder derzeit bekannten oder später entwickelten Zufallskomponente wie einem RNG, PUF usw. erzeugt werden. Der nicht-deterministische Wert kann an die Jitter-Taktkomponente 116 übertragen werden, z. B. als kodiertes elektrisches Signal. Im Prozess P3 verwendet die Jitter-Taktkomponente 116 den nicht-deterministischen Wert, um ein Taktsignal 118 mit einer zweiten Taktflanke zu erzeugen, z. B. durch Auswahl aus einem von mehreren möglichen Taktsignalen mit unterschiedlichen Taktflanken. Die Konvertierung kann z. B. unter Verwendung des Mux 150 (4) und/oder jeder derzeit bekannten oder später entwickelten digitalen Lösung zur Korrelation nicht-deterministischer Werte mit möglichen Taktsignalen zur Übertragung an die Logikschaltung 102 erfolgen. In einem vereinfachten Beispiel können Verfahren der Erfindung mit weiteren Operationen zur Ausgabe des Taktsignals mit der zweiten Taktflanke an die Logikschaltung 102 fortfahren (d. h., wie durch die gestrichelte Linie zum Prozess P5 angezeigt), wie an anderer Stelle hierin beschrieben wird.
  • In einigen Ausführungsformen können die Verfahren der Erfindung weitere Prozesse aufweisen, um sicherzustellen, dass das Timing für die zweite Taktflanke, wie aus dem nicht-deterministischen Wert umgewandelt, innerhalb einer Jitter-Grenze für die Logikschaltung 102 liegt. Der Prozess P4 kann z.B. die Auswertung der Jitter-Grenze für die Logikschaltung 102 aufweisen. Der Jitter-Grenzwert kann in der Jitter-Steuerung 124 voraufgezeichnet sein und/oder aktiv mit der Jitter-Steuerung 124 auf der Grundlage verschiedener Eigenschaften der Logikschaltung 102 berechnet werden. Unabhängig von einer Auswertung kann der Prozess P4 den maximal zulässigen Jitter für den Betrieb der Logikschaltung 102 mit ausreichender Zeit für die Signalausbreitung vom Satz der Source-Latches 104 zum Satz der Capture-Latches 106 ausgeben. Danach kann die Jitter-Steuerung 124 die Entscheidung D2 implementieren, um festzustellen, ob die zweite Taktflanke von Prozess P3 innerhalb der in Prozess P4 ausgewerteten Jitter-Grenze liegt. Wenn die zweite Taktflanke nicht innerhalb der Jitter-Grenze liegt (d.h. „Nein“ bei Entscheidung D2), kann die Jitter-Steuerung 124 die TaktSteuerung veranlassen, einen neuen nicht-deterministischen Wert zu generieren (d.h., der Prozess P2 wird wiederholt), um eine neue zweite Taktflanke zur Auswertung auszuwählen. Wenn die zweite Taktflanke innerhalb der Jitter-Grenze liegt (d.h. „Ja“ bei Entscheidung D2), kann das Taktsignal mit der zweiten Taktflanke verwendet werden, um jeden Satz von Latches 104, 106 anzutreiben, wie hierin beschrieben. In weiteren Implementierungen kann die Jitter-Taktkomponente 116 so strukturiert sein, dass sie niemals bewirkt, dass die zweite Taktflanke außerhalb der Jitter-Grenze für die Logikschaltung 102 liegt.
  • Der Prozess P5 in Verfahren gemäß Ausführungsformen der Erfindung kann die Ausgabe des Taktsignals 118 vom variablen Steuersystem 110 mit der zweiten Taktflanke aufweisen, um den Betrieb der Latches 104, 106 zu steuern. Die zweite Taktflanke wird auf der Grundlage des in Prozess P2 erzeugten nicht-deterministischen Wertes nicht-deterministisch gewählt und verschleiert somit die Verarbeitung von Signalen in der Logikschaltung 102 unter Beibehaltung einer gewünschten Frequenz. Der Prozess P6 in Verfahren gemäß der Erfindung kann die Übertragung des Taktsignals 118 an die Sätze von Latches 104, 106 auf jede denkbare Weise aufweisen, z. B. durch Taktpuffer 130. In Fällen, in denen die Prozesse P2-P5 und/oder die Entscheidung D2 ausgelassen werden (d.h. „Nein“ bei Entscheidung D1), kann der Prozess P6 die Ansteuerung der Logikschaltung 102 mit Taktsignal(en) mit nur einem festen Satz von Taktflanken aufweisen.
  • Ausführungsformen der Erfindung bieten verschiedene technische und kommerzielle Vorteile, von denen einige hier beispielhaft beschrieben sind. Systeme und Verfahren gemäß der Erfindung stellen eine Architektur zur selektiven Verschleierung der Funktionen und/oder Signalpfade der Logikschaltung 102 bereit, ohne die Struktur der Logikschaltung 102 und/oder die Taktfrequenz anderweitig zu verändern. Das System 100 kann mit beliebig vielen oder wenigen Logikschaltungen 102 in einer einzigen Vorrichtung gekoppelt werden, so dass die Funktion empfindlicher Komponenten verschleiert werden kann, während ansonsten ein Platz- und Stromverbrauch in nicht empfindlichen Teilen einer Vorrichtung eingespart werden. In einer beispielhaften Implementierung kann eine einzelne Vorrichtung mehrere Logikschaltungen aufweisen, die nicht mit Ausführungsformen des Systems 100 verbunden sind, während es auch mehrere Logikschaltungen 102 aufweist, die mit Ausführungsformen des Systems 100 gekoppelt sind, wie hier beschrieben ist. Somit können die Verfahren gemäß der Erfindung den Betrieb von nicht angeschlossenen Logikschaltungen 102 mit deterministischen Taktflanken aufweisen, während andere Logikschaltungen 102 mit Taktflankenvariation über Ausführungsformen des Systems 100 und/oder hierin beschriebene Verfahren betrieben werden.
  • Aspekte der vorliegenden Erfindung sind oben unter Bezugnahme auf Flussdiagramme und/oder Blockdiagramme von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Flussdiagramme und/oder Blockdiagramme sowie Kombinationen von Blöcken in den Flussdiagrammabbildungen und/oder Blockdiagrammen durch Computerprogrammanweisungen implementiert werden können. Diese Computerprogrammanweisungen können einem Prozessor eines Allzweckcomputers, eines Spezialcomputers oder eines anderen programmierbaren Datenverarbeitungsgeräts zur Verfügung gestellt werden, um eine Maschine zu erzeugen, so dass die Anweisungen, die über den Prozessor des Computers oder des anderen programmierbaren Datenverarbeitungsgeräts ausgeführt werden, Mittel zum Implementieren der im Flussdiagramm und/oder im Blockdiagramm-Block oder in den Blöcken angegebenen Funktionen/Aktionen schaffen.
  • Gemäß der Verwendung hierin kann sich der Begriff „ausgebildet“, „ausgebildet, so dass“ und/oder „ausgebildet zur“ auf zweckspezifische Merkmale der so beschriebenen Komponente beziehen. Beispielsweise kann ein System oder eine Vorrichtung, die zur Ausführung einer Funktion ausgebildet ist, ein Computersystem oder eine Computervorrichtung aufweisen, das oder die zur Ausführung dieser spezifischen Funktion programmiert oder anderweitig modifiziert wurde. In anderen Fällen kann ein Programmcode, der auf einem computerlesbaren Medium (z. B. Speichermedium) gespeichert ist, so ausgebildet sein, dass er mindestens eine Computervorrichtung veranlasst, Funktionen auszuführen, wenn dieser Programmcode auf dieser Computervorrichtung ausgeführt wird. In diesen Fällen löst die Anordnung des Programmcodes bei der Ausführung bestimmte Funktionen in der Computervorrichtung aus. In anderen Beispielen kann eine Vorrichtung, die zur Interaktion mit anderen Komponenten und/oder zur Einwirkung auf diese ausgebildet ist, speziell ausgebildet und/oder gestaltet sein, um effektiv mit diesen Komponenten zu interagieren und/oder auf diese einzuwirken. In einigen Fällen ist das Gerät so ausgebildet, dass es mit einer anderen Komponente interagiert, weil mindestens ein Teil seiner Form mindestens einen Teil der Form dieser anderen Komponente ergänzt. In einigen Fällen ist mindestens ein Teil der Vorrichtung so dimensioniert, dass sie mit mindestens einem Teil der anderen Komponente interagiert. Die physikalische Beziehung (z. B. komplementär, größengleich usw.) zwischen der Vorrichtung und der anderen Komponente kann die Ausführung einer Funktion unterstützen, z. B. die Verschiebung einer oder mehrerer Komponenten der Vorrichtung oder der anderen Komponente, den Eingriff einer oder mehrerer Komponenten der Vorrichtung oder der anderen Komponente, usw.
  • Die Beschreibung der verschiedenen Ausführungsformen der vorliegenden Erfindung erfolgte zur Veranschaulichung, soll aber nicht vollständig sein oder auf die beschriebenen Ausführungsformen beschränkt sein. Viele Modifikationen und Variationen sind dem Fachmann ersichtlich, ohne vom Umfang und Wesen der beschriebenen Ausführungsformen abzuweichen. Die hier verwendete Terminologie wurde gewählt, um die Prinzipien der Ausführungsformen, die praktische Anwendung oder die technische Verbesserung gegenüber den auf dem Markt befindlichen Technologien bestmöglich zu erklären oder um es anderen als dem Fachmann zu ermöglichen, die hier beschriebenen Ausführungsformen zu verstehen.

Claims (20)

  1. System, umfassend: einen Taktgeber, der mit einer Logikschaltung gekoppelt ist, wobei die Logikschaltung einen Satz von Source-Latches aufweist, die mit einem Satz von Capture-Latches über einen Satz von Logikkegeln gekoppelt sind, wobei der Taktgeber aufweist: eine feste Taktkomponente, die zum Erzeugen eines Taktsignals mit einer ersten Taktflanke ausgebildet ist, und eine Jitter-Taktkomponente, die mit der festen Taktkomponente gekoppelt und die ausgebildet ist, um das Taktsignal so zu modifizieren, dass es eine zweite Taktflanke auf Grundlage eines nicht-deterministischen Wertes aufweist, wobei der Taktgeber das Taktsignal mit der zweiten Taktflanke überträgt, um den Satz von Source-Latches und den Satz von Capture-Latches der Logikschaltung anzutreiben; und eine Taktsteuerung, die mit der Jitter-Taktkomponente gekoppelt ist, wobei die Taktsteuerung den nicht-deterministischen Wert erzeugt.
  2. System nach Anspruch 1, wobei die Taktsteuerung ausgebildet ist, um die Jitter-Taktkomponente in Antwort auf ein Erfassen eines Befehls zur Verschleierung der Logikschaltung zu aktivieren.
  3. System nach Anspruch 1, wobei die Taktsteuerung eine physical unclonable function (PUF) zum Erzeugen des nicht-deterministischen Werts aufweist.
  4. System nach Anspruch 1, wobei die Taktsteuerung einen Zufallszahlengenerator (RNG) zum Erzeugen des nicht-deterministischen Wertes aufweist.
  5. System nach Anspruch 1, wobei die Jitter-Taktkomponente ferner ausgebildet ist, um das Taktsignal so modifizieren, dass die zweite Taktflanke innerhalb einer Jitter-Grenze für die Logikschaltung liegt.
  6. System nach Anspruch 5, wobei jeder aus einer Mehrzahl von Signalpfaden durch den Satz von Logikkegeln einen Schlupf aufweist, der größer ist als eine Laufzeit von dem Satz von Source-Latches zu dem Satz von Capture-Latches mit der zweiten Taktflanke.
  7. System nach Anspruch 1, wobei der Taktgeber mit dem Satz von Source-Latches und dem Satz von Capture-Latches der Logikschaltung über einen Taktpuffer gekoppelt ist, der zum Verzögern des Taktsignals ausgebildet ist.
  8. System, umfassend: einen Satz von Source-Latches, die ausgebildet sind, um ein Eingangslogiksignal weiterzuleiten; einen Satz von Logikkegeln, die mit dem Satz von Source-Latches gekoppelt und die ausgebildet sind, um das Eingangslogiksignal über einen von mehreren Signalpfaden in ein Ausgangslogiksignal umzuwandeln; einen Satz von Capture-Latches, die mit dem Satz von Logikkegeln gekoppelt und die ausgebildet sind, um das Ausgangslogiksignal von dem Satz von Logikkegeln zu verarbeiten; einen Taktgeber, der mit dem Satz von Source-Latches und dem Satz von Capture-Latches gekoppelt ist, wobei der Taktgeber umfasst: eine feste Taktkomponente, die zum Erzeugen eines Taktsignals mit einer ersten Taktflanke ausgebildet ist, und eine Jitter-Taktkomponente, die mit der festen Taktkomponente gekoppelt und die ausgebildet ist, um das Taktsignal so modifizieren, dass es eine zweite Taktflanke auf Grundlage eines nicht-deterministischen Wertes aufweist, wobei der Takt das Taktsignal mit der zweiten Taktflanke überträgt, um den Satz von Source-Latches und den Satz von Capture-Latches anzutreiben; und eine Taktsteuerung, die mit der Jitter-Taktkomponente gekoppelt ist, wobei die Taktsteuerung den nicht-deterministischen Wert erzeugt.
  9. System nach Anspruch 8, wobei die Mehrzahl von Signalpfaden des Satzes von Logikkegeln einen ersten Signalpfad für das Taktsignal mit der zweiten Taktflanke und einen zweiten Signalpfad für das Taktsignal mit der zweiten Taktflanke aufweist.
  10. System nach Anspruch 8, wobei die Taktsteuerung entweder eine physical unclonable function (PUF) oder einen Zufallszahlengenerator (RNG) umfasst.
  11. System nach Anspruch 8, wobei jeder aus einer Mehrzahl von Signalpfaden durch den Satz von Logikkegeln einen Schlupf aufweist, der größer ist als eine Laufzeit von dem Satz von Source-Latchs zu dem Satz von Capture-Latchs mit der zweiten Taktflanke.
  12. System nach Anspruch 8, wobei die Jitter-Taktkomponente ferner ausgebildet ist, um das Taktsignal so zu modifizieren, dass die zweite Taktflanke innerhalb einer Jitter-Grenze für die Logikschaltung liegt.
  13. System nach Anspruch 12, wobei jeder aus einer Mehrzahl von Signalpfaden durch den Satz von Logikkegeln einen Schlupf aufweist, der größer ist als eine Laufzeit von dem Satz von Source-Latches zu dem Satz von Capture-Latches mit der zweiten Taktflanke.
  14. System nach Anspruch 8, ferner umfassend einen Taktpuffer, der zwischen den Taktgeber und jeden aus dem Satz von Source-Latches und dem Satz von Capture-Latches geschaltet ist, wobei der Taktpuffer ausgebildet ist, um das Taktsignal zu verzögern.
  15. Verfahren, umfassend: ein Erzeugen eines Taktsignals mit einer ersten Taktflanke; ein Erzeugen eines nicht-deterministischen Wertes über eine Taktsteuerung; ein Modifizieren des Taktsignals von der ersten Taktflanke zu einer zweiten Taktflanke auf Grundlage des nicht-deterministischen Wertes; und ein Übertragen des Taktsignals mit der zweiten Taktflanke an eine Logikschaltung mit einem Satz von Source-Latches, die mit einem Satz von Capture-Latches über einen Satz von Logikkegeln gekoppelt sind, so dass das Taktsignal mit der zweiten Taktflanke jeden aus dem Satz von Source-Latches und dem Satz von Capture-Latches ansteuert.
  16. Verfahren nach Anspruch 15, wobei das Modifizieren des Taktsignals von der ersten Taktflanke zur zweiten Taktflanke bewirkt, dass der Satz von Logikkegeln einen Signalpfad von dem Satz von Source-Latches zu dem Satz von Capture-Latches modifiziert.
  17. Verfahren nach Anspruch 15, wobei die Taktsteuerung entweder eine physical unclonable function (PUF) oder einen Zufallszahlengenerator (RNG) aufweist.
  18. Verfahren nach Anspruch 15, ferner umfassend: ein Berechnen einer Jitter-Grenze für das Taktsignal auf Grundlage der Logikschaltung; und ein Erzeugen des nicht-deterministischen Wertes, so dass die zweite Taktflanke innerhalb der Jitter-Grenze für die Logikschaltung liegt.
  19. Verfahren nach Anspruch 15, femer umfassend ein Aktivieren der Taktsteuerung in Antwort auf ein Erkennen eines Befehls zum Verschleiern der Logikschaltung.
  20. Verfahren nach Anspruch 15, wobei das Übertragen des Taktsignals mit der zweiten Taktflanke an die Logikschaltung ein Durchleiten des Taktsignals durch einen Taktpuffer aufweist, um das Taktsignal zu verzögern.
DE102021121328.2A 2020-09-25 2021-08-17 System und Verfahren zur Steuerung einer Logikschaltung mit nicht-deterministischer Taktflankenvariation Pending DE102021121328A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/032,027 2020-09-25
US17/032,027 US11054854B1 (en) 2020-09-25 2020-09-25 System and method to drive logic circuit with non-deterministic clock edge variation

Publications (1)

Publication Number Publication Date
DE102021121328A1 true DE102021121328A1 (de) 2022-03-31

Family

ID=76658052

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021121328.2A Pending DE102021121328A1 (de) 2020-09-25 2021-08-17 System und Verfahren zur Steuerung einer Logikschaltung mit nicht-deterministischer Taktflankenvariation

Country Status (3)

Country Link
US (1) US11054854B1 (de)
CN (1) CN114257233A (de)
DE (1) DE102021121328A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114301605B (zh) * 2021-12-30 2023-08-25 北京中科睿芯科技集团有限公司 基于脉冲逻辑的非确定性物理不可克隆函数的信号处理装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7475311B2 (en) * 2005-08-30 2009-01-06 Kabushiki Kaisha Toshiba Systems and methods for diagnosing rate dependent errors using LBIST
US20080046772A1 (en) 2006-07-17 2008-02-21 International Business Machines Corporation Shifting inactive clock edge for noise reduction
GB2479871A (en) * 2010-04-26 2011-11-02 David Coyne System for preventing side channel attacks on a synchronous logic device.
US20110285421A1 (en) * 2010-05-24 2011-11-24 Alexander Roger Deas Synchronous logic system secured against side-channel attack
US8427194B2 (en) * 2010-05-24 2013-04-23 Alexander Roger Deas Logic system with resistance to side-channel attack by exhibiting a closed clock-data eye diagram
US10489611B2 (en) * 2015-08-26 2019-11-26 Rambus Inc. Low overhead random pre-charge countermeasure for side-channel attacks

Also Published As

Publication number Publication date
CN114257233A (zh) 2022-03-29
US11054854B1 (en) 2021-07-06

Similar Documents

Publication Publication Date Title
EP1643643B1 (de) Zufallszahlengenerator sowie Verfahren zur Erzeugung von Zufallszahlen
DE112017000048T5 (de) Taktperiodenrandomisierung zur Verteidigung gegen kryptographische Angriffe
DE102008048292B4 (de) Vorrichtung und Verfahren zum Erzeugen einer Zufallsbitfolge
DE60303126T2 (de) Verfahren und vorrichtung zum sicheren scan-testen
EP2271980A1 (de) Vorrichtung und verfahren zum erzeugen einer zufallsbitfolge
DE102009008224B4 (de) Invertierende Zelle
DE60013424T2 (de) Datenverarbeitungsvorrichtung und integrierter Schaltkreis
DE102020106346A1 (de) Integrierter schaltkreis
DE10103071A1 (de) Zufallszahlengenerator und Verfahren zum Erzeugen einer Zufallszahl
DE102012210990A1 (de) Verfahren zum Erzeugen von Zufallszahlen
DE102019119831A1 (de) Verschlüsselungsschaltung zum Durchführen von virtuellen Verschlüsselungsoperationen
DE102015110144B4 (de) Chip und Verfahren zum Testen einer Verarbeitungskomponente eines Chips
DE102013204274A1 (de) Verfahren zum Erkennen einer Korrelation
DE102021121328A1 (de) System und Verfahren zur Steuerung einer Logikschaltung mit nicht-deterministischer Taktflankenvariation
DE102009007246A1 (de) Pseudozufallszahlengenerator und Verfahren zum Erzeugen einer Pseudozufallszahlenbitsequenz
DE112008001707T5 (de) Finite-Feld-Operationen verwendender kryptographischer Zufallszahlengenerator
DE10345150B3 (de) Verfahren, Vorrichtung und System zum Analysieren digitaler Schaltungen
DE60213878T2 (de) Digitales elektronisches bauelement, das gegen elektrische und elektromagnetische analysen geschützt ist
DE102012216677B3 (de) Identifikationsschaltung
DE102010026688A1 (de) Vorrichtung und Verfahren zum Erzeugen von Zufallsbits
DE102004009144B4 (de) Logikzelle und Verfahren zum Durchführen einer Dual-Rail-Logikoperation und Speichermedium
EP1913457B1 (de) Gals-schaltung und verfahren zum betrieb einer gals-schaltung
DE10227618A1 (de) Logikschaltung
DE102016200850A1 (de) Verfahren zum Betreiben einer sicherheitsrelevanten Vorrichtung und Vorrichtung
DE102014224421A1 (de) Verfahren und Vorrichtung zum Erzeugen von Zufallsbits

Legal Events

Date Code Title Description
R012 Request for examination validly filed