DE102014214722A1 - Vorrichtung und Verfahren zum Erkennen einer Integritätsverletzung - Google Patents

Vorrichtung und Verfahren zum Erkennen einer Integritätsverletzung Download PDF

Info

Publication number
DE102014214722A1
DE102014214722A1 DE102014214722.0A DE102014214722A DE102014214722A1 DE 102014214722 A1 DE102014214722 A1 DE 102014214722A1 DE 102014214722 A DE102014214722 A DE 102014214722A DE 102014214722 A1 DE102014214722 A1 DE 102014214722A1
Authority
DE
Germany
Prior art keywords
sequence
shift register
feedback shift
output
registers
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
DE102014214722.0A
Other languages
English (en)
Inventor
Berndt Gammel
Stefan Mangard
Steffen Sonnekalb
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
Publication of DE102014214722A1 publication Critical patent/DE102014214722A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • 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
    • 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/86Secure or tamper-resistant housings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/58Indexing scheme relating to groups G06F7/58 - G06F7/588
    • G06F2207/583Serial finite field implementation, i.e. serial implementation of finite field arithmetic, generating one new bit or trit per step, e.g. using an LFSR or several independent LFSRs; also includes PRNGs with parallel operation between LFSR and outputs
    • 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/582Pseudo-random number generators
    • G06F7/584Pseudo-random number generators using finite field arithmetic, e.g. using a linear feedback shift register

Landscapes

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

Abstract

Eine Vorrichtung zum Erkennen einer Integritätsverletzung umfasst ein Rückkopplungsschieberegister, welches Folgendes umfasst: mehrere Register, die in Reihe geschaltet sind, und eine Rückkopplungsfunktionseinheit, die zwischen einen Ausgang einer Anzahl der Register und einen Eingang wenigstens eines der Register geschaltet ist. Die Vorrichtung umfasst ferner einen Integritätsverletzungsdetektor, der dafür eingerichtet ist, Folgendes auszuführen: Bestimmen, ob eine Sequenz von Werten an einem Eingang oder Ausgang wenigstens eines der Register oder eine logische Kombination davon eine nicht konstante Sequenz oder eine konstante Sequenz ist. Die Vorrichtung ist ferner dafür eingerichtet, eine Angabe auszugeben, dass sich das Rückkopplungsschieberegister in einem integralen Zustand befindet, falls die Sequenz von Werten eine nicht konstante Sequenz ist, oder eine Angabe auszugeben, dass das Rückkopplungsschieberegister einer Integritätsverletzung ausgesetzt ist, falls die Sequenz von Werten eine konstante Sequenz ist.

Description

  • Technisches Gebiet
  • Ausführungsformen der Erfindung betreffen eine Vorrichtung, einen Integritätsverletzungsdetektor, ein Verfahren zum Erkennen einer Integritätsverletzung, ein nicht flüchtiges Speichermedium und ein eingebettetes System.
  • Hintergrund
  • Rückkopplungsschieberegister sind dafür ausgelegt, eine lineare Wiederauftrittsgleichung (”linear recurrence equation” – LFSR) oder eine nicht lineare Wiederauftrittsgleichung (”nonlinear recurrence equation” – NLFSR) aufzuweisen. Ferner können Rückkopplungsschieberegister in der Fibonacci-Konfiguration F(N)LFSR ausgelegt sein. Eine weitere Konfiguration ist die Galois-Konfiguration G(N)LFSR.
  • Beim Betrieb des Rückkopplungsschieberegisters wird eine Anzahl von Registerwerten einer Rückkopplungsfunktionseinheit zugeführt, die eine Rückkopplungsfunktion f(D) ausführt, welche entweder eine lineare oder eine nicht lineare Funktion der eingegebenen Registerwerte ist. Daher ergibt der für einen aktuellen Zustand D berechnete Wert der Rückkopplungsfunktion f(D) einen Rückkopplungswert.
  • In der Fibonacci-Konfiguration wird dieser Rückkopplungswert im nächsten Taktzyklus in das letzte Register Dn-1 eingegeben. In der Galois-Konfiguration wird dieser Rückkopplungswert zusätzlichen Registern innerhalb der Registerkette durch eine Exklusiv-ODER-(XOR)-Operation zurückgeführt, wobei es sich um eine Addition im Feld F2 handelt. In einer allgemeineren Konfiguration kann ein Rückkopplungsschieberegister mehrere Rückkopplungsfunktionen aufweisen, deren verschiedene Rückkopplungswerte zu verschiedenen Registern in der Registerkette zurückgeführt werden.
  • Für Rückkopplungsschieberegister in der Galois-Konfiguration verschwindet die Rückkopplungsfunktion f(D). Mit anderen Worten wird der Wert des Registers D0 direkt zurückgeführt, weil das lineare Wiederauftreten durch die Auswahl der Menge von Rückkopplungspositionen bereits vollständig definiert ist.
  • Kurzfassung
  • Eine Ausführungsform sieht eine Vorrichtung vor, die ein Rückkopplungsschieberegister und einen Integritätsverletzungsdetektor umfasst. Das Rückkopplungsschieberegister umfasst mehrere in Reihe geschaltete Register und eine Rückkopplungsfunktionseinheit, die zwischen einen Ausgang einer Anzahl der Register und einen Eingang wenigstens eines der Register geschaltet ist. Der Integritätsverletzungsdetektor ist dafür eingerichtet, zu bestimmen, ob eine Sequenz von Werten an einem Eingang oder Ausgang wenigstens eines der Register oder eine logische Kombination davon eine nicht konstante Sequenz oder eine konstante Sequenz ist. Der Integritätsverletzungsdetektor ist ferner dafür eingerichtet, eine Angabe auszugeben, dass sich das Rückkopplungsschieberegister in einem integralen Zustand befindet, falls die Sequenz von Werten eine nicht konstante Sequenz ist, oder eine Angabe auszugeben, dass das Rückkopplungsschieberegister einer Integritätsverletzung ausgesetzt ist, falls die Sequenz von Werten eine konstante Sequenz ist.
  • Eine weitere Ausführungsform sieht eine Vorrichtung vor, welche ein Rückkopplungsschieberegister in einer Fibonacci-Konfiguration, in einer Galois-Konfiguration oder in der allgemeinen Konfiguration umfasst. Das Rückkopplungsschieberegister umfasst mehrere in Reihe geschaltete Register und eine Rückkopplungsfunktionseinheit, die zwischen einen Ausgang einer Anzahl der Register und einen Eingang wenigstens eines der Register geschaltet ist. Die Vorrichtung umfasst ferner einen Integritätsverletzungsdetektor. Der Integritätsverletzungsdetektor ist dafür eingerichtet, zu bestimmen, ob eine Sequenz von Werten an einem Eingang oder Ausgang wenigstens eines der Register oder eine logische Kombination davon eine nicht konstante Sequenz oder eine konstante Sequenz ist. Ferner ist der Integritätsverletzungsdetektor dafür eingerichtet, eine Angabe auszugeben, dass sich das Rückkopplungsschieberegister in einem integralen Zustand befindet, falls die Sequenz von Werten eine nicht konstante Sequenz ist, oder eine Angabe auszugeben, dass das Rückkopplungsschieberegister einer Integritätsverletzung ausgesetzt ist, falls die Sequenz von Werten eine konstante Sequenz ist. Ferner umfasst der Integritätsverletzungsdetektor einen Onlinetester, der dafür eingerichtet ist, Folgendes auszuführen: Zählen einer Länge von Läufen von 0-Bits und 1-Bits in einer eingehenden Sequenz von Werten und Ausgeben der Angabe, dass das Rückkopplungsschieberegister der Integritätsverletzung ausgesetzt ist, falls die Länge von Läufen einen vorgegebenen Wert überschreitet. Die Rückkopplungsfunktionseinheit ist über ein Exklusiv-ODER-Gatter, das zwischen das Register und ein vorhergehendes Register geschaltet ist, mit dem Eingang eines der mehreren Register verbunden, und ein Onlinetester ist mit dem Ausgang des vorhergehenden Registers verbunden. Zusätzlich oder alternativ ist ein Seed-Injektionseingang über ein Exklusiv-ODER-Gatter, das zwischen das Register und ein vorhergehendes Register geschaltet ist, mit dem Eingang eines der mehreren Register verbunden, ist eine Logikschaltung parallel zwischen den Ausgang des Registers und den Ausgang des vorhergehenden Registers geschaltet und ist ein Onlinetester mit dem Ausgang der Logikschaltung verbunden. Zusätzlich oder alternativ umfasst die Logikschaltung eine Reihenschaltung eines Registers und eines Exklusiv-ODER-Gatters, wobei der Ausgang des Exklusiv-ODER-Gatters mit dem Onlinetester verbunden ist. Zusätzlich oder alternativ ist der Ausgang des vorhergehenden Registers inline mit dem Onlinetester verbunden. Zusätzlich oder alternativ ist der Onlinetester inline mit dem Eingang eines ersten Registers des Rückkopplungsschieberegisters verbunden.
  • Eine weitere Ausführungsform sieht einen Integritätsverletzungsdetektor vor, der dafür eingerichtet ist, eine auf ein zugeordnetes Rückkopplungsschieberegister, das durch mehrere Register gebildet ist, ausgeübte Integritätsverletzung zu erkennen. Der Integritätsverletzungsdetektor ist dafür eingerichtet, zu bestimmen, ob eine Sequenz von Werten an einem Eingang oder Ausgang wenigstens eines der Register oder eine logische Kombination davon eine nicht konstante Sequenz oder eine konstante Sequenz ist. Ferner ist der Integritätsverletzungsdetektor dafür eingerichtet, eine Angabe auszugeben, dass sich das Rückkopplungsschieberegister in einem integralen Zustand befindet, falls die Sequenz von Werten eine nicht konstante Sequenz ist, oder eine Angabe auszugeben, dass das Rückkopplungsschieberegister einer Integritätsverletzung ausgesetzt ist, falls die Sequenz von Werten eine konstante Sequenz ist.
  • Eine weitere Ausführungsform sieht ein Verfahren zum Erkennen einer auf ein Rückkopplungsschieberegister ausgeübten Integritätsverletzung vor, wobei das Rückkopplungsschieberegister Folgendes umfasst: mehrere Register, die in Reihe geschaltet sind, und eine Rückkopplungsfunktionseinheit, die zwischen einen Ausgang einer Anzahl der Register und einen Eingang wenigstens eines der Register geschaltet ist. Das Verfahren umfasst das Bestimmen, ob eine Sequenz von Werten an einem Eingang oder Ausgang wenigstens eines der Register oder eine logische Kombination davon eine nicht konstante Sequenz oder eine konstante Sequenz ist. Das Verfahren umfasst ferner das Ausgeben einer Angabe, dass sich das Rückkopplungsschieberegister in einem integralen Zustand befindet, falls die Sequenz von Werten eine nicht konstante Sequenz ist, oder das Ausgeben einer Angabe, dass das Rückkopplungsschieberegister einer Integritätsverletzung ausgesetzt ist, falls die Sequenz von Werten eine konstante Sequenz ist.
  • Eine weitere Ausführungsform sieht ein nicht flüchtiges Speichermedium vor, worauf ein Computerprogramm gespeichert ist, das einen Programmcode aufweist, um, wenn es auf einem Computer ausgeführt wird, ein Verfahren zum Erkennen einer auf ein Rückkopplungsschieberegister ausgeübten Integritätsverletzung auszuführen, wobei das Verfahren Folgendes umfasst: Bestimmen, ob eine Sequenz von Werten an einem Eingang oder Ausgang wenigstens eines der Register oder eine logische Kombination davon eine nicht konstante Sequenz oder eine konstante Sequenz ist. Ferner umfasst das Verfahren das Ausgeben einer Angabe, dass sich das Rückkopplungsschieberegister in einem integralen Zustand befindet, falls die Sequenz von Werten eine nicht konstante Sequenz ist, oder das Ausgeben einer Angabe, dass das Rückkopplungsschieberegister einer Integritätsverletzung ausgesetzt ist, falls die Sequenz von Werten eine konstante Sequenz ist.
  • Eine weitere Ausführungsform sieht ein eingebettetes System vor, das einen Speicher und eine Steuereinrichtung umfasst, wobei die Steuereinrichtung dafür eingerichtet ist, eine auf ein Rückkopplungsschieberegister ausgeübte Integritätsverletzung zu erkennen, wobei dies in Software durch ein Verfahren implementiert ist, welches Folgendes umfasst: Bestimmen, ob eine Sequenz von Werten an einem Eingang oder Ausgang wenigstens eines der Register oder eine logische Kombination davon eine nicht konstante Sequenz oder eine konstante Sequenz ist. Das Verfahren umfasst ferner das Ausgeben einer Angabe, dass sich das Rückkopplungsschieberegister in einem integralen Zustand befindet, falls die Sequenz von Werten eine nicht konstante Sequenz ist, oder das Ausgeben einer Angabe, dass das Rückkopplungsschieberegister einer Integritätsverletzung ausgesetzt ist, falls die Sequenz von Werten eine konstante Sequenz ist.
  • Fachleute werden beim Lesen der folgenden detaillierten Beschreibung und beim Betrachten der anliegenden Zeichnung zusätzliche Merkmale und Vorteile erkennen.
  • Kurzbeschreibung der Zeichnung
  • Die Elemente der Zeichnung sind nicht notwendigerweise maßstabsgerecht zueinander. Gleiche Bezugszahlen bezeichnen entsprechende ähnliche Teile. Die Merkmale der verschiedenen erläuterten Ausführungsformen können kombiniert werden, es sei denn, dass sie einander ausschließen. Ausführungsformen sind in der Zeichnung dargestellt und werden in der folgenden Beschreibung detailliert ausgeführt.
  • 1 zeigt eine Konfiguration eines Rückkopplungsschieberegisters.
  • 2 zeigt eine Konfiguration einer Vorrichtung, welche das Rückkopplungsschieberegister umfasst.
  • 3 zeigt ein eingebettetes System, welches die in 2 dargestellte Vorrichtung umfasst.
  • Detaillierte Beschreibung
  • Verschiedene Ausführungsformen der hier offenbarten Lehren werden nachstehend mit Bezug auf die 1 und 2 erörtert. In der Zeichnung sind identische Bezugszahlen für Objekte bereitgestellt, die identische oder ähnliche Funktionen aufweisen, so dass Objekte, die in den verschiedenen Ausführungsformen mit identischen Bezugszahlen bezeichnet sind, austauschbar sind und die Beschreibung wechselseitig anwendbar ist.
  • In 1 ist ein Rückkopplungsschieberegister 100 dargestellt, das eine Schiebekette 112 aus n in Reihe geschalteten Registern Dk umfasst (k = 0 bis n – 1). Die Register können durch Verzögerungselemente in der Art von Flipflops verwirklicht werden. Zu irgendeinem Zeitpunkt t nehmen die Register den Zustand Dt = (D0,t, D1,t, ..., Dn-1,t) des Rückkopplungsschieberegisters 100 an. In der Zeichnung sind n = 16 Register dargestellt, die Länge kann jedoch geändert werden.
  • Das Rückkopplungsschieberegister 100 umfasst einen Ausgang zur Ausgabe von Pseudozufallssequenzen, wobei der Ausgang durch den Ausgang von mindestens einem der Register und/oder den Eingang von irgendeinem davon gebildet ist. Solche Pseudozufallssequenzen können beispielsweise als Masken in Geheimnisteilungsschemata verwendet werden, die für das Schützen kryptographischer Algorithmen vor Seitenkanalangriffen verwendet werden. Pseudozufallssequenzen werden beispielsweise als Komponenten in kryptographischen Pseudozufallszahlgeneratoren verwendet.
  • Ferner umfasst das Rückkopplungsschieberegister 100 eine Rückkopplungsfunktionseinheit 114 zum Berechnen einer Rückkopplungsfunktion f(D). Mehrere von einer Untermenge der Anzahl von Registern ausgegebene Werte werden jeweils der Rückkopplungsfunktionseinheit 114 zugeführt. In der Zeichnung werden die Ausgaben der Register D0, D3, D8 und D13 der Rückkopplungsfunktionseinheit 114 zugeführt. Die durch die Rückkopplungsfunktionseinheit 114 berechnete Rückkopplungsfunktion f(D) ist entweder eine lineare oder eine nicht lineare Funktion. Der für den aktuellen Zustand D berechnete Wert f(D) repräsentiert den Rückkopplungswert, der von der Rückkopplungsfunktionseinheit 114 ausgegeben wird und der Ausgangsleitung 116 zur Rückkopplung in die Register zugeführt wird. Rückkopplungswerte können in den Eingang des ersten Registers – in der Schiebeordnung – eingegeben werden, hier D15, und sie können optional in den Eingang eines oder mehrerer der anderen Register eingegeben werden.
  • In 1 sind zwei Rückkopplungsschieberegisterkonfigurationen dargestellt, insbesondere eine Fibonacci-Konfiguration und eine Galois-Konfiguration.
  • Bei der durch eine durchgezogene Linie 118 dargestellten Fibonacci-Konfiguration wird der für den aktuellen Zustand D berechnete Wert f(D) in das letzte Register D15 innerhalb der Schiebekette 112 von Registern im nachfolgfenden Taktzyklus, d. h. in das erste, wenn entlang einer Schieberichtung 119 betrachtet wird, eingegeben.
  • Bei der durch eine gepunktete Linie 120 dargestellten Galois-Konfiguration wird der für den aktuellen Zustand D berechnete Wert f(D) zu mehreren Registern innerhalb der Schiebekette 112 über einen jeweiligen ersten Eingang eines zugeordneten Exklusiv-ODER-Gatters, d. h. über seinen zweiten Eingang und seinen Ausgang, der mit der Sequenz von Registern verbunden ist, zurückgeführt. In der Zeichnung wird der Wert f(D) als Beispiel zu den Eingängen der Register D1 und D8 über die Exklusiv-ODER-Gatter XOR3 bzw. XOR1 zurückgeführt.
  • Bei der vorstehend beschriebenen Konfiguration wird das Rückkopplungsschieberegister 100 in einem autonomen Betriebsmodus betrieben, d. h. sein Zustand wird ohne eine weitere Eingabe vorwärts gestuft, sobald ein Anfangszustand eingegeben wurde. Das heißt, dass jedes Register Di pro Taktzyklus seinen darin gespeicherten Wert an seinem Ausgang an das nächste Register Di-1 in Schieberichtung 119 ausgibt, wobei das letzte Register D0 in der Linie seinen gespeicherten Wert an einen Eingang der Rückkopplungsfunktionsschaltung 114 zusammen mit optional einem oder mehreren weiteren der Register D, wie beispielsweise D3, D8 und D13, ausgibt und wobei die Rückkopplungsfunktionsschaltung 114 ihr Rückkopplungsfunktionsergebnis in den Eingang des ersten Registers in der Linie, d. h. D15, und optional den Eingang weiterer Register, wie hier beispielsweise D8 und D1, ausgibt. Durch diese Maßnahme erzeugt das Rückkopplungsschieberegister 100 an jedem der Eingänge und Ausgänge der Register eine Pseudozufallszahlsequenz mit einer bestimmten Periodenlänge, die verglichen mit der Anzahl der Register, d. h. verglichen mit der Länge des Rückkopplungsschieberegisters 100, riesig sein kann. Während im vorliegenden Fall beispielsweise die Länge des Rückkopplungsschieberegisters 100 16 ist, kann die Rückkopplungsfunktion f(D) so ausgelegt werden, dass die Periodenlänge der erzeugten Pseudozufallszahlsequenz 2n – 1 ist, während es fortlaufend im autonomen Modus bleibt.
  • Bei einer weiteren Konfiguration wird das Rückkopplungsschieberegister 100 in einem nicht autonomen Betriebsmodus betrieben. In diesem Betriebsmodus werden m externe Werte st = (s0,t, s1,t, ..., sm-1,t), die als die Seed-Werte bzw. Startparameter-Werte bezeichnet werden, zu einem bestimmten Zeitpunkt gleichzeitig in einen Zustand versetzt. Insbesondere werden die Seed-Werte über einen ersten Eingang eines Exklusiv-ODER-Gatters, das über seinen zweiten Eingang und seinen Ausgang in die Sequenz von Registern geschaltet ist, jeweils dem Eingang von m der Register zugeführt. In 1 sind Seed-Eingänge, an welche die Werte s0 und s1 angelegt werden, beispielhaft als über Exklusiv-ODER-Gatter XOR2 bzw. XOR1 mit den Eingängen der Register D4 und D8 zu verbindend dargestellt. Die Seed-Positionen können mit den Rückkopplungspositionen identisch sein. Diese Möglichkeit ist an der Seed-Position s1 am Eingang des Registers D8 beispielhaft dargestellt. Das Exklusiv-ODER-Gatter XOR1 weist wie dargestellt vier Eingänge auf. Es kann als eine Sequenz von Exklusiv-ODER-Gattern implementiert sein, die über ihre zweiten Eingänge und ihre Ausgänge seriell zwischen die Register D9 und D8 geschaltet sind, wobei ihre Eingänge einerseits mit dem Seed-Eingang für den Seed-Wert s1 und andererseits mit dem Rückkopplungswert der Rückkopplungsfunktion f(D) verbunden sind.
  • Die vorgegebene Rückkopplungsfunktion f(D) führt zu Pseudozufallssequenzen am Ausgang der Anzahl von Registern des Rückkopplungsschieberegisters 100. Diese Pseudozufallssequenzen zeigen gewünschte Eigenschaften, die bei Sicherheitsanwendungen verwendet werden können. Normalerweise sind die Sequenzen ausgeglichen, so dass im Durchschnitt die Anzahlen von 0-Bits und 1-Bits gleich sind. Die Sequenz von Bitwerten erscheint als unkorreliert.
  • Bei Sicherheitsanwendungen werden solche Pseudozufallssequenzen verwendet, um vor einer Integritätsverletzung zu schützen. Die Pseudozufallssequenzen werden beispielsweise als Masken in Geheimnisteilungsschemata verwendet, die zum Schützen kryptographischer Algorithmen verwendet werden. Ein Beispiel ist die Anwendung im Datenverschlüsselungsstandard (”Data Encryption Standard” – DES), welcher ein vorherrschender Algorithmus für die Verschlüsselung elektronischer Daten ist. Ferner können die Pseudozufallssequenzen als Masken verwendet werden, die dafür eingerichtet sind, kryptographische Algorithmen in der Art des fortgeschrittenen Verschlüsselungsstandards (”Advanced Encryption Standard” – AES) zu schützen, welcher eine Spezifikation für die Verschlüsselung elektronischer Daten unter Verwendung eines Symmetrischer-Schlüssel-Algorithmus ist, was bedeutet, dass der gleiche Schlüssel sowohl für das Verschlüsseln als auch das Entschlüsseln der Daten verwendet wird.
  • Die durch das Rückkopplungsschieberegister 100 erzeugten Pseudozufallssequenzen können vor Seitenkanalangriffen schützen. Einer dieser Seitenkanalangriffe ist die differenzielle Leistungsanalyse (”Differential Power Analysis” – DPA), bei der Leistungsverbrauchsmessungen von einem Kryptosystem statistisch analysiert werden.
  • Ferner können die durch das Rückkopplungsschieberegister 100 erzeugten Pseudozufallssequenzen als eine Maske dienen, die vor der differenziellen Fehleranalyse (”Differential Fault Analysis” – DFA) schützt, die ein Typ eines Seitenkanalangriffs auf dem Gebiet der Kryptographie ist, insbesondere der Kryptoanalyse. Der Grundgedanke der DFA besteht darin, Fehler, d. h. unerwartete Umgebungsbedingungen, in kryptographische Implementationen einzubringen, um ihre inneren Zustände zu offenbaren.
  • Eine weitere Anwendung der durch das Rückkopplungsschieberegister 100 erzeugten Pseudozufallssequenzen kann sich beim Schutz vor einer nicht invasiven Analyse in der Art der differenziellen elektromagnetischen Analyse (”Differential Electro-Magnetic Analysis” – DEMA) ergeben. Bei der DEMA werden Informationen von Schwankungen des elektromagnetischen Felds gesammelt, das aus einer Vorrichtung austritt, während eine kryptographische Operation ausgeführt wird.
  • Im Allgemeinen werden die Pseudozufallssequenzen als Komponenten beispielsweise in kryptographischen Pseudozufallszahlgeneratoren verwendet. Daher hängt die Sicherheit des Gesamtsystems entscheidend von der Integrität des Rückkopplungsschieberegisters 100 ab. Falls ein Angreifer beispielsweise in der Lage ist, einen Draht in einem Rückkopplungsschieberegister 100 zu zerschneiden oder eines der Register permanent auf einen bestimmten Wert zu zwingen oder die Injektion von Seed-Werten zu unterdrücken, kann die gewünschte Eigenschaft der Ausgabe des Rückkopplungsschieberegisters 100 nicht mehr garantiert werden. Folglich werden kryptographische Angriffe oder Seitenkanalangriffe auf den die Pseudozufallssequenzen verbrauchenden Algorithmus möglich. Es ist wünschenswert, eine Onlinetestfunktionalität zu erreichen, die in der Lage ist zu überwachen, ob das Rückkopplungsschieberegister 100 manipuliert wurde oder nicht.
  • Wie vorstehend erwähnt wurde, kann das Rückkopplungsschieberegister 100 für sicherheitskritische Aufgaben verwendet werden. Daher könnte ein durch einen aktiven Angreifer hervorgerufener Fehler der Funktionalität zu einer unerwünschten Extraktion von Geheimnissen führen. Falls das Rückkopplungsschieberegister 100 beispielsweise für die Erzeugung von Masken bei einem Maskierungsschema gegen Seitenkanalangriffe verwendet wird, ermöglicht das Erzwingen des Anhaltens des Maskengenerators die Anwendung der differenziellen Leistungsanalyse (”Differential Power Analysis” – DPA) für das Extrahieren des Geheimnisses.
  • Nachfolgend werden unter anderen Angriffen mehrere mögliche Angriffswege angegeben, welche zu einem unerwünschten Versagen des Rückkopplungsschieberegisters 100 führen könnten.
  • Ein möglicher Angriff besteht darin, einen der Seed-Injizierungseingänge s0 und/oder s1 aufzutrennen. Dabei würde die Ausgabesequenz deterministisch oder zumindest teilweise deterministisch werden und sich eine Integritätsverletzung ergeben.
  • Ein weiterer Angriff besteht darin, einen der Schieberegisterdrähte aufzutrennen, der die mehreren Register in Reihe schaltet. Dabei würde das Rückkopplungsschieberegister oder ein Segment des Rückkopplungsschieberegisters mit einem konstanten Wert gefüllt werden, was zu einer Integritätsverletzung führt.
  • Bei der Galois-Konfiguration besteht ein weiterer Angriff darin, einen der Rückkopplungsdrähte, welche den Ausgang der Rückkopplungsfunktionseinheit 114 mit dem Eingang wenigstens eines der Register über die Exklusiv-ODER-Gatter verbinden, aufzutrennen. Dabei würde das Rückkopplungsschieberegister oder ein Segment des Rückkopplungsschieberegisters mit einem konstanten Wert gefüllt werden, was zu einer Integritätsverletzung führt.
  • In diesem Zusammenhang werden die Begriffe Auftrennen und Zerschneiden, wie sie hier verwendet werden, synonym verwendet. Diese Begriffe haben die Bedeutung des Zwingens auf einen konstanten Wert.
  • 2 zeigt eine Konfiguration einer Vorrichtung 200, welche ein Rückkopplungsschieberegister 100 umfasst, wobei die Vorrichtung in der Lage ist, Fehlerangriffe zu erkennen, wie gerade dargelegt wurde.
  • Die Vorrichtung 200 umfasst einen Integritätsverletzungsdetektor 210 zusätzlich zum Rückkopplungsschieberegister 100, wie in 1 dargestellt ist und vorstehend beschrieben wurde. Der Integritätsverletzungsdetektor 210 umfasst eine Logikschaltung, die für die Detektion mindestens einer Integritätsverletzung verwendet wird. Mit anderen Worten stellt der Integritätsverletzungsdetektor 210 Gegenmaßnahmen gegen Angriffe auf das Rückkopplungsschieberegister 100 bereit.
  • Im Allgemeinen ist der Integritätsverletzungsdetektor 210 dafür eingerichtet, zu bestimmen, ob eine Sequenz von Werten, die an einem Eingang oder Ausgang wenigstens eines der Register bereitgestellt wird, oder eine logische Kombination davon, eine nicht konstante Sequenz oder eine konstante Sequenz ist. Nach der Bestimmung ist der Integritätsverletzungsdetektor 210 dafür eingerichtet, eine Angabe auszugeben, dass sich das Rückkopplungsschieberegister 100 in einem integralen Zustand befindet, falls die Wertesequenz eine nicht konstante Sequenz ist. Ferner ist der Integritätsverletzungsdetektor 210 dafür eingerichtet, eine Angabe, dass das Rückkopplungsschieberegister 100 einer Integritätsverletzung unterliegt, auszugeben, falls die Wertesequenz eine konstante Sequenz ist. Nachfolgend wird der Integritätsverletzungsdetektor 210 in weiteren Einzelheiten beschrieben.
  • Wie in 2 dargestellt ist, ist der Integritätsverletzungsdetektor 210 gemäß einer ersten Struktur S1 dafür eingerichtet, eine Integritätsverletzung der Schiebekette 112 zu erkennen. Die Rückkopplungsfunktionseinheit 114 wird als Beispiel über das Exklusiv-ODER-Gatter XOR3, das wiederum zwischen dieses Register D1 und das vorhergehende Register D2 geschaltet ist, mit dem Eingang des Registers D1 verbunden. Ein Onlinetester 212 des Integritätsverletzungsdetektors 210 wird gemäß der ersten Struktur 51 über einen Testausgangsabgriff v1 mit dem Ausgang des vorhergehenden Registers D2 verbunden. Falls das Rückkopplungsschieberegister 100 durch Zerschneiden der Schiebekette 112 vor dem Register D2 angegriffen wird, kommen beispielsweise konstante Werte am Onlinetester 212 an. Falls der Onlinetester 212 konstante Werte an seinem mit dem Abgriff v1 verbundenen Eingang erkennt, ist er dafür eingerichtet, beispielsweise eine eine Integritätsverletzung angebende Warnung auszugeben.
  • Wie in 2 dargestellt ist, umfasst der Integritätsverletzungsdetektor 210 gemäß einer zweiten Struktur S2 eine Schaltung, die dafür eingerichtet ist, eine Integritätsverletzung eines Seed-Injektionswerts s0 in die Schiebekette 112 von Registern zu erkennen. Bei dieser Struktur S2 ist ein Seed-Injektionseingang über ein Exklusiv-ODER-Gatter XOR2 mit dem Eingang des Registers D4 von den mehreren Registern verbunden. Dieses Exklusiv-ODER-Gatter XOR2 ist wiederum zwischen das Register D4 und das vorhergehende Register D5 geschaltet. Ferner ist eine Logikschaltung parallel zwischen den Ausgang des Registers D4 und den Ausgang des vorhergehenden Registers D5 geschaltet. Die Logikschaltung umfasst eine Reihenschaltung, welche ein Register C2 und ein Exklusiv-ODER-Gatter XOR4 umfasst. Der Ausgang des Exklusiv-ODER-Gatters XOR4 ist mit einem Testausgangsabgriff v2 verbunden, welcher mit dem Onlinetester 212 verbunden ist.
  • Falls bei dieser Struktur der Seed-Injektionswert s0 auf einen konstanten Wert gezwungen wird, wird der Wert des Testausgangsabgriffs v2 zu einem konstanten Wert. Falls ferner der Zustand des Rückkopplungsschieberegisters 100 eine Pseudozufallssequenz durchläuft, wird auch der Wert des Testausgangsabgriffs v2 zu einem konstanten Wert.
  • Ferner ist gemäß einer dritten Struktur S3 der Ausgang des vorhergehenden Registers D5 inline mit einem Testausgangsabgriff v3 verbunden, der mit dem Onlinetester 212 verbunden ist. Der Wert des Testausgangsabgriffs v3 ist konstant, falls die Schiebekette 112 stromaufwärts des Registers D9 zerschnitten ist. Falls das Rückkopplungsschieberegister 100 daher durch Zerschneiden der Schiebekette 112 beispielsweise stromaufwärts des Registers D9 angegriffen wird, nimmt der Ausgang des Testausgangsabgriffs v3 konstante Werte an, die im Onlinetester 212 erkannt werden. In diesem Fall des Erkennens konstanter Werte ist der Onlinetester 212 dafür eingerichtet, eine Angabe oder Benachrichtigung auszugeben, welche eine Integritätsverletzung angibt.
  • In 2 ist gemäß einer vierten Struktur S4 zwischen den Registern D8 und D9 ein Zustand dargestellt, der die Injektion eines Seed-Werts s1 und die Eingabe eines Rückkopplungswerts umfasst. Herkömmlich wird sowohl für die Injektion eines Seed-Werts s1 als auch die Eingabe eines Rückkopplungswerts ein einziges Exklusiv-ODER-Gatter mit 3 Eingängen verwendet. Bei der in 2 dargestellten Struktur ist das Exklusiv-ODER-Gatter mit 3 Eingängen durch zwei Exklusiv-ODER-Gatter mit 2 Eingängen ersetzt. Zusätzlich werden die vorstehend erwähnten Logikschaltungen getrennt angewendet.
  • In 2 ist gemäß einer fünften Struktur S5 ein erstes Register D15 der Schiebekette 112 von Registern mit einem Testausgangsabgriff v7 verbunden, der wiederum mit dem Onlinetester 212 verbunden ist. Falls eine Rückkopplungsleitung des Rückkopplungsschieberegisters 100 infolge einer Integritätsverletzung zerschnitten ist, ergibt der Ausgang des Testausgangsabgriffs v7 konstante Werte, die wiederum durch den Onlinetester 212 erkannt werden. In diesem Fall des Erkennens konstanter Werte ist der Onlinetester 212 dafür eingerichtet, beispielsweise eine Warnung auszugeben, die eine Integritätsverletzung angibt.
  • Vorstehend umfasste der Integritätsverletzungsdetektor 210 nur als Beispiel den mit den Testausgangsabgriffen v1 bis v7 verbundenen Onlinetester 212. Diese Testausgangsabgriffe v1 bis v7 dienen jedoch der Veranschaulichung. Alternativ können diese Testausgangsabgriffe v1 bis v7 einzeln vorhanden sein, oder es ist nur eine Untermenge davon vorhanden. Mit anderen Worten kann nur eine Untermenge der vorstehenden Strukturen S1 bis S5 verwirklicht werden. Dabei kann der Onlinetester 212 mit Eingängen oder Ausgängen der jeweiligen Register oder der logischen Kombination davon direkt verbunden werden.
  • Im Allgemeinen ist der Onlinetester 212 dafür eingerichtet, in den Taktzyklen des Schieberegisters 112 eine Länge von Läufen von 0-Bits und 1-Bits in einer eingehenden Wertesequenz, d. h. der am Abgriff v1, am Abgriff v2, ... oder am Abgriff v7 ankommenden Sequenz, zu zählen. Ferner ist der Onlinetester 212 dafür eingerichtet, die Angabe auszugeben, dass das Rückkopplungsschieberegister 100 der Integritätsverletzung unterliegt, falls die Länge jeglicher der Läufe an irgendwelchen der eingehenden Wertesequenzen einen vorgegebenen Wert überschreitet. Beispielsweise ist ein möglicher Konfigurationswert gleich 63. Für diesen Wert ist die Wahrscheinlichkeit eines falschen Alarms gleich 2–63, vorausgesetzt, dass das Seeden bei jedem Taktzyklus stattfindet. Dies würde dazu führen, dass die Wahrscheinlichkeit eines falschen Alarms vernachlässigbar ist.
  • In 2 umfasst das Rückkopplungsschieberegister 100 eine Schiebekette 112 von Registern. Diese Schiebekette 112 besteht aus 16 in Reihe geschalteten Registern D0 bis D15. Das Rückkopplungsschieberegister 100 umfasst ferner eine Rückkopplungsfunktionseinheit 114. In der Fibonacci-Konfiguration ist der Ausgang der Rückkopplungsfunktionseinheit 114 mit dem Eingang der Kette 112 von Registern, d. h. mit dem ersten Register D15 in der Kette, verbunden. In der Galois-Konfiguration ist der Ausgang der Rückkopplungsfunktionseinheit 114 über ein Exklusiv-ODER-Gatter mit dem Eingang wenigstens eines von den mehreren Registern verbunden. In 2 ist der Ausgang der Rückkopplungsfunktionseinheit 114 über Exklusiv-ODER-Gatter XOR3 bzw. XOR1 mit dem Eingang der Register D1 und D8 verbunden.
  • In der Zeichnung umfasst die Schiebekette 112 von Registern im nicht autonomen Betriebsmodus des Rückkopplungsschieberegisters 100 mehrere Seed-Injektionseingänge, die jeweils über ein Exklusiv-ODER-Gatter mit dem Eingang eines der mehreren Register verbunden sind. In der Zeichnung ist der Seed-Injektionseingang s0 über das Exklusiv-ODER-Gatter XOR2 zwischen das Register D4 und das vorhergehende Register D5 geschaltet. Ferner ist der Seed-Injektionseingang s1 über das Exklusiv-ODER-Gatter XOR1 zwischen das Register D8 und das vorhergehende Register D9 geschaltet.
  • Über die Seed-Injektionseingänge s0 und s1 werden externe Werte, die als Seed-Werte bezeichnet werden, gleichzeitig in die Schiebekette 112 von Registern eingegeben. Die Seed-Werte werden einer Exklusiv-ODER-Operation unterzogen, um dadurch Werte zwischen jeweiligen Registerpaaren oder vor dem letzten Register zu verschieben.
  • Ferner werden die Ausgaben (Registerwerte) von mindestens einem der Register in die Rückkopplungsfunktionseinheit 114 eingegeben. In dieser Rückkopplungsfunktionseinheit 114 werden Rückkopplungswerte erzeugt, indem die Registerwerte einer Rückkopplungsfunktion f(D) unterzogen werden, welche eine lineare oder nicht lineare Funktion der eingegebenen Registerwerte ist.
  • Das in 2 dargestellte Rückkopplungsschieberegister 100 umfasst ferner einen Integritätsverletzungsdetektor 210 mit einem Onlinetester 212.
  • Ferner umfasst dieser Integritätsverletzungsdetektor 210 bei einer ersten Option zum Erkennen einer Integritätsverletzung der Schiebekette 112 eine Inlineverbindung, welche den Ausgang des Registers D2 mit dem Onlinetester 212 verbindet (siehe v1). Zum Verbessern der Erkennung einer Integritätsverletzung der Schiebekette 112 oder als eine Alternative wird eine zweite Inlineverbindung, wie vorstehend beschrieben, bereitgestellt (siehe v6).
  • Bei einer zweiten Option wird zum Erkennen einer Integritätsverletzung der Seed-Injektion der Seed-Injektionseingang s0 über das Exklusiv-ODER-Gatter XOR2, das wiederum zwischen das Register D4 und das vorhergehende Register D5 geschaltet ist, mit dem Eingang des Registers D4 verbunden. Ferner wird eine Logikschaltung parallel zwischen den Ausgang des Registers D4 und den Ausgang des vorhergehenden Registers D5 geschaltet. Ferner wird der Onlinetester 212 mit dem Ausgang der vorstehend beschriebenen Logikschaltung verbunden. Die Logikschaltung umfasst eine Reihenschaltung des Registers C2 und des Exklusiv-ODER-Gatters XOR4, wobei der Ausgang des Exklusiv-ODER-Gatters XOR4 mit dem Onlinetester 212 verbunden ist (siehe v2). Ferner ist der Ausgang des vorhergehenden Registers D5 inline mit dem Onlinetester 212 verbunden (siehe v3). Es sei bemerkt, dass die Rate der Eingabe von Seed-Werten synchron mit der Taktrate des Rückkopplungsschieberegisters 100 festgelegt werden kann. Alternativ kann diese Rate der Eingabe von Seed-Werten benutzerabhängig festgelegt werden. Zum Verbessern der Erkennung der Integritätsverletzung oder als Alternative wird eine zweite Logikschaltung, wie vorstehend beschrieben, bereitgestellt (siehe v4 und v5).
  • Ferner ist der Onlinetester 212 inline mit dem Eingang des ersten Registers D15 des Rückkopplungsschieberegisters 100 verbunden (siehe v7).
  • Der Onlinetester 212 ist dafür eingerichtet, die Erkennung der Integritätsverletzung durch Überwachen der jeweiligen Eingabewerte auszuführen. Falls erkannt wird, dass nicht konstante Werte, d. h. eine Zufallszahl (Zeichenkette) von 0-Bits und 1-Bits, in den Onlinetester 212 eingegeben werden, wird ein Signal, eine Mitteilung oder eine andere Art einer Angabe vom Onlinetester 212 ausgegeben, wodurch angegeben wird, dass sich das Rückkopplungsschieberegister 100 in einem von einer Integritätsverletzung freien Zustand befindet.
  • Falls andernfalls eine Anzahl in den Onlinetester 212 eingegebener Bits konstante Werte zeigen, gibt der Onlinetester 212 an, dass sich das Rückkopplungsschieberegister 100 in einem Zustand einer Integritätsverletzung befindet. Es sei bemerkt, dass die Länge einer jeweiligen Sequenz konstante Werte zeigender Bits, d. h. die Länge einer Sequenz aufeinander folgender 0-Bits oder aufeinander folgender 1-Bits, bei der der Onlinetester 212 eine Integritätsverletzung angeben muss, beispielsweise ein vorgegebener Wert oder ein vom Benutzer festgelegter Wert ist. Falls mit anderen Worten der Onlinetester 212 eine konstante Sequenz mit einer vorgegebenen oder festgelegten Länge erkennt, gibt der Onlinetester 212 eine Angabe eines Fehlerangriffs aus. Ein möglicher Konfigurationswert der Bitlänge ist beispielsweise 63. Für diese Bitlänge ist die Wahrscheinlichkeit eines falschen Alarms 2–63. Dieser Fall zeigt beispielhaft, dass die Wahrscheinlichkeit eines falschen Alarms vernachlässigt werden kann, selbst wenn die Taktrate hoch ist.
  • Falls der Onlinetester 212 eine Integritätsverletzung erkennt, kann der Prozess der Weiterbehandlung verschiedenartig und benutzerabhängig sein, d. h. von der jeweiligen Anwendung, dem gewünschten Sicherheitsniveau usw. abhängig sein. Eine mögliche Behandlung ist das Signalisieren der erkannten Integritätsverletzung durch einen Alarm. Eine andere Art einer Behandlung ist das Unterbrechen des Betriebs des Rückkopplungsschieberegisters 100 und des eingebetteten Systems für eine gegebene Zeitdauer oder eine festgelegte Zeitdauer. Im Fall eines massiven Angriffs kann selbst die Unterbrechung des Betriebs des Rückkopplungsschieberegisters 100 und des einbettenden Systems beispielsweise für einige Sekunden oder weniger ausreichen, um eine Integritätsverletzung des Rückkopplungsschieberegisters 100 und/oder einer zugeordneten kryptographischen Vorrichtung, die durch eine Smartcard-Steuereinrichtung, ein RFID-Tag, eine eingebettete Sicherheitssteuereinrichtung usw. gegeben ist, fast unmöglich oder zumindest zeitaufwendig gemacht werden.
  • Ein Vorteil der vorstehenden Ausführungsform bei irgendeiner oder einer beliebigen Kombination der vorstehend dargelegten Strukturen S1 bis S5 des Integritätsverletzungsdetektors 210 ist eine erheblich verringerte Fläche und ein verringerter Leistungsverbrauch verglichen mit einem mehrmaligen Instanziieren eines Rückkopplungsschieberegisters und einem Vergleich der Ergebnisse, was für kleine eingebettete Systeme, beispielsweise in der Art von Smartcard-Steuereinrichtungen, RFID-Tags oder eingebetteten Sicherheitssteuereinrichtungen, entscheidend ist.
  • Die vorstehend beschriebene Vorrichtung kann durch ein Verfahren zum Erkennen einer auf ein Rückkopplungsschieberegister 100 ausgeübten Integritätsverletzung implementiert werden, wobei das Rückkopplungsschieberegister 100 mehrere in der Schiebekette 112 von Registern in Reihe geschaltete Register umfasst. Das Rückkopplungsschieberegister 100 umfasst ferner die zwischen einen Ausgang einer Anzahl der Register und einen Eingang wenigstens eines der Register geschaltete Rückkopplungsfunktionseinheit 114.
  • Das Verfahren umfasst das Bestimmen, ob eine Sequenz von Werten an einem Eingang oder Ausgang wenigstens eines der mehreren Register, die das Rückkopplungsschieberegister bilden, oder eine logische Kombination davon eine nicht konstante Sequenz oder eine konstante Sequenz ist. Wie vorstehend erwähnt wurde, ist, falls die Sequenz von Werten ein konstanter Wert ist, dies ein Hinweis auf eine Integritätsverletzung der Schiebekette 112 oder auf eine Integritätsverletzung der Seed-Injektion.
  • Das Verfahren umfasst ferner das Ausgeben einer Angabe, dass sich das Rückkopplungsschieberegister in einem integralen Zustand befindet, falls die Sequenz von Werten eine nicht konstante Sequenz ist, oder das Ausgeben einer Angabe, dass das Rückkopplungsschieberegister einer Integritätsverletzung ausgesetzt ist, falls die Sequenz von Werten eine konstante Sequenz ist. Dieses Verfahren sieht eine geeignete Angabe eines Fehlerangriffs auf das Rückkopplungsschieberegister 100 vor.
  • Mit anderen Worten umfasst das Verfahren das Empfangen einer Sequenz von Werten an einem Eingang oder Ausgang wenigstens eines der mehreren das Rückkopplungsschieberegister 100 bildenden Register oder einer logischen Kombination davon. Das Verfahren umfasst ferner das Zählen der Länge von Läufen von 0-Bits und 1-Bits und das Angeben der Erkennung einer Integritätsverletzung, falls die Länge eines Laufs einen vorgegebenen Wert oder einen festgelegten Wert überschreitet.
  • Die Vorrichtung und das Verfahren, die vorstehend beschrieben wurden, können in einem eingebetteten System, beispielsweise einer Sicherheitssteuereinrichtung, die in Smartcards, RFID-Tags, Mobiltelefonen, Automobilen, Spielkonsolen usw. verwendet wird, implementiert werden. Eine mögliche Implementation besteht in mehreren Pseudozufallszahlgeneratoren für eine interne Maskierung.
  • Ferner sind eine Mehrfachimplementation des Rückkopplungsschieberegisters 100 und ein Onlinevergleich ausgegebener oder verschobener Werte möglich.
  • 3 zeigt eine schematische Konfiguration eines eingebetteten Systems 300, das die in 2 dargestellte Vorrichtung 200 umfasst. Das eingebettete System 300 kann Teil einer Smartcard-Steuereinrichtung, eines RFID-Tags, einer eingebetteten Sicherheitssteuereinrichtung usw. sein. Ferner umfasst das eingebettete System 300 einen wahren Zufallszahlgenerator (”True Random Number Generator” – TRNG) 310 zum Erzeugen von Zufallszahlen, die für Seed-Werte s0 und s1 zu verwenden sind. Die erzeugten Zufallszahlen werden in Seed-Injektionseingänge der Schiebekette eingegeben, die im Rückkopplungsschieberegister in der vorstehend beschriebenen Vorrichtung 200 enthalten ist.
  • Wie vorstehend erwähnt wurde, ist die Vorrichtung 200 dafür eingerichtet, beispielsweise entsprechend den Seed-Werten s0 und s1 eine Integritätsverletzung zu erkennen und eine Angabe auszugeben, dass sich die Vorrichtung in einem integralen Zustand befindet oder einer Integritätsverletzung ausgesetzt ist. Mit anderen Worten ist die Vorrichtung 200 in der Lage, eine Vielzahl von Manipulationen zu erkennen, die an in die Vorrichtung 200 eingegebenen Werten (beispielsweise den Seed-Werten s0 und s1) und/oder an in der Vorrichtung 200 erzeugten Werten selbst ausgeführt werden.
  • Der Ausgang des vorstehend beschriebenen Onlinetesters ist über die Leitung L1 mit dem Eingang einer Gegenmaßnahmeeinheit 320 verbunden. Die Gegenmaßnahmeeinheit 320 ist dafür ausgelegt, über die Leitung L1 auf eine eine Integritätsverletzung angebende Eingabe zu reagieren. Ein Weg zum Reagieren auf eine Integritätsverletzung ist das Signalisieren der erkannten Integritätsverletzung durch einen Alarm. Ein anderer Weg zum Reagieren auf eine Integritätsverletzung ist die Unterbrechung des Betriebs des Rückkopplungsschieberegisters der Vorrichtung 200 und des einbettenden Systems während einer gegebenen Zeitdauer oder während einer festgelegten Zeitdauer. In diesem Fall wird ein jeweiliges Signal beispielsweise über eine Leitung L2 von der Gegenmaßnahmeeinheit 320 zur Vorrichtung 200 gesendet.
  • Falls der Onlinetester eine Integritätsverletzung erkennt, kann der Prozess der Weiterbehandlung verschiedenartig und benutzerabhängig sein, d. h. von der jeweiligen Anwendung, dem gewünschten Sicherheitsniveau usw. abhängig sein. Falls ein massiver Angriff ausgeführt wird, kann selbst die Unterbrechung des Betriebs des Rückkopplungsschieberegisters und des einbettenden Systems beispielsweise für einige Sekunden oder weniger ausreichen, um die Integritätsverletzung des Rückkopplungsschieberegisters fast unmöglich oder zumindest zeitaufwendig zu machen.
  • Das eingebettete System 300 umfasst ferner einen Randomisierer 330, der über eine Leitung L3 mit dem Ausgang der Vorrichtung 200 verbunden ist, um durch die Vorrichtung 200, wie vorstehend beschrieben, erzeugte Schiebewerte zu empfangen. Beispielsweise ist der Randomisierer 330 dafür eingerichtet, Signale zu transponieren oder zu invertieren oder andernfalls eine Nachricht zu codieren. Dabei können dem Randomisierer 330 beispielsweise über Leitungen L4 und L5 eingegebene Eingangssequenzen zugeführt werden, wobei diese Eingangssequenzen geeignet codiert sind. Die Ausgabe des Randomisierers 330 führt die codierte Nachricht über eine Leitung L6 einer Zufallszahlempfangseinrichtung (nicht dargestellt) zur Weiterverarbeitung zu.
  • Falls eine Integritätsverletzung durch den Onlinetester der Vorrichtung 200 erkannt wird, kann der Betrieb des Randomisierers 330 während einer festgelegten oder vorgegebenen Zeitdauer unterbrochen werden. Im Fall eines massiven Angriffs kann selbst die Unterbrechung des Betriebs des Rückkopplungsschieberegisters und des einbettenden Systems beispielsweise für einige Sekunden oder weniger ausreichen, um eine Integritätsverletzung des Randomisierers 330 fast unmöglich oder zumindest zeitaufwendig zu machen.
  • Wenngleich einige Aspekte in Zusammenhang mit einer Vorrichtung beschrieben wurden, ist klar, dass diese Aspekte auch eine Beschreibung des entsprechenden Verfahrens repräsentieren, wobei ein Block oder eine Vorrichtung einem Verfahrensschritt oder einem Merkmal eines Verfahrensschritts entspricht. Analog repräsentieren in Zusammenhang mit einem Verfahrensschritt beschriebene Aspekte auch eine Beschreibung eines entsprechenden Blocks oder Bestandteils oder Merkmals einer entsprechenden Vorrichtung. Einige oder alle der Verfahrensschritte können durch eine (oder unter Verwendung einer) Hardwarevorrichtung, wie beispielsweise einen Mikroprozessor, einen programmierbaren Computer oder eine elektronische Schaltung, ausgeführt werden. Gemäß einigen Ausführungsformen können ein oder mehrere der wichtigsten Verfahrensschritte durch eine solche Vorrichtung ausgeführt werden.
  • Die vorstehend beschriebenen Ausführungsformen sollen lediglich die Grundgedanken der vorliegenden Erfindung erläutern. Es ist zu verstehen, dass Modifikationen und Variationen der Anordnungen und der Einzelheiten, die hier beschrieben werden, anderen Fachleuten verständlich sein werden. Es ist daher vorgesehen, dass eine Einschränkung nur durch den Schutzumfang der anliegenden Patentansprüche und nicht durch die spezifischen Einzelheiten gegeben ist, die zur Beschreibung und Erklärung der hier angegebenen Ausführungsformen präsentiert sind.

Claims (20)

  1. Vorrichtung, welche Folgendes umfasst: ein Rückkopplungsschieberegister, welches Folgendes umfasst: mehrere Register, die in Reihe geschaltet sind, und eine Rückkopplungsfunktionseinheit, die zwischen einen Ausgang einer Anzahl der Register und einen Eingang wenigstens eines der Register geschaltet ist, und einen Integritätsverletzungsdetektor, der dafür eingerichtet ist, Folgendes auszuführen: Bestimmen, ob eine Sequenz von Werten an einem Eingang oder Ausgang wenigstens eines der Register oder eine logische Kombination davon eine nicht konstante Sequenz oder eine konstante Sequenz ist, und Ausgeben einer Angabe, dass sich das Rückkopplungsschieberegister in einem integralen Zustand befindet, falls die Sequenz von Werten eine nicht konstante Sequenz ist, oder Ausgeben einer Angabe, dass das Rückkopplungsschieberegister einer Integritätsverletzung ausgesetzt ist, falls die Sequenz von Werten eine konstante Sequenz ist.
  2. Vorrichtung nach Anspruch 1 oder 2, wobei der Integritätsverletzungsdetektor einen Onlinetester umfasst, der dafür eingerichtet ist, Folgendes auszuführen: Zählen einer Länge von Läufen von 0-Bits und 1-Bits in einer eingehenden Sequenz von Werten und Ausgeben der Angabe, dass das Rückkopplungsschieberegister der Integritätsverletzung ausgesetzt ist, falls die Länge von Läufen einen vorgegebenen Wert überschreitet.
  3. Vorrichtung nach Anspruch 2, wobei die Rückkopplungsfunktionseinheit über ein Exklusiv-ODER-Gatter, das zwischen das Register und ein vorhergehendes Register geschaltet ist, mit dem Eingang eines der mehreren Register verbunden ist und ein Onlinetester mit dem Ausgang des vorhergehenden Registers verbunden ist.
  4. Vorrichtung nach Anspruch 2 oder 3, wobei ein Seed-Injektionseingang über ein Exklusiv-ODER-Gatter, das zwischen das Register und ein vorhergehendes Register geschaltet ist, mit dem Eingang eines der mehreren Register verbunden ist, eine Logikschaltung parallel zwischen den Ausgang des Registers und den Ausgang des vorhergehenden Registers geschaltet ist und ein Onlinetester mit dem Ausgang der Logikschaltung verbunden ist.
  5. Vorrichtung nach Anspruch 4, wobei die Logikschaltung eine Reihenschaltung eines Registers und eines Exklusiv-ODER-Gatters umfasst, wobei der Ausgang des Exklusiv-ODER-Gatters mit dem Onlinetester verbunden ist.
  6. Vorrichtung nach Anspruch 4 oder 5, wobei der Ausgang des vorhergehenden Registers inline mit dem Onlinetester verbunden ist.
  7. Vorrichtung nach einem der Ansprüche 2 bis 6, wobei der Onlinetester inline mit dem Eingang eines ersten Registers des Rückkopplungsschieberegisters verbunden ist.
  8. Vorrichtung nach einem der Ansprüche 1 bis 7, wobei die Register durch Flipflops gebildet sind.
  9. Vorrichtung nach einem der Ansprüche 1 bis 8, wobei das Rückkopplungsschieberegister ein lineares oder nicht lineares Rückkopplungsschieberegister ist.
  10. Vorrichtung nach einem der Ansprüche 1 bis 9, wobei das Rückkopplungsschieberegister einen Ausgang zum Ausgeben von Pseudozufallswertesequenzen umfasst, wobei der Ausgang durch den Ausgang mindestens eines der Register gebildet ist.
  11. Vorrichtung nach einem der Ansprüche 1 bis 10, wobei die Rückkopplungsfunktionseinheit entweder eine lineare oder eine nicht lineare Funktion implementiert.
  12. Vorrichtung nach einem der Ansprüche 1 bis 11, wobei das Rückkopplungsschieberegister in einer Fibonacci-Konfiguration oder in einer Galois-Konfiguration vorliegt.
  13. Vorrichtung, welche Folgendes umfasst: ein Rückkopplungsschieberegister in einer Fibonacci-Konfiguration oder in einer Galois-Konfiguration, wobei das Rückkopplungsschieberegister Folgendes umfasst: mehrere in Reihe geschaltete Register und eine Rückkopplungsfunktionseinheit, die zwischen einen Ausgang einer Anzahl der Register und einen Eingang wenigstens eines der Register geschaltet ist, und einen Integritätsverletzungsdetektor, der dafür ausgelegt ist, Folgendes auszuführen: Bestimmen, ob eine Sequenz von Werten an einem Eingang oder Ausgang wenigstens eines der Register oder eine logische Kombination davon eine nicht konstante Sequenz oder eine konstante Sequenz ist, und Ausgeben einer Angabe, dass sich das Rückkopplungsschieberegister in einem integralen Zustand befindet, falls die Sequenz von Werten eine nicht konstante Sequenz ist, oder Ausgeben einer Angabe, dass das Rückkopplungsschieberegister einer Integritätsverletzung ausgesetzt ist, falls die Sequenz von Werten eine konstante Sequenz ist, wobei der Integritätsverletzungsdetektor einen Onlinetester umfasst, der dafür eingerichtet ist, Folgendes auszuführen: Zählen einer Länge von Läufen von 0-Bits und 1-Bits in einer eingehenden Sequenz von Werten und Ausgeben der Angabe, dass das Rückkopplungsschieberegister der Integritätsverletzung ausgesetzt ist, falls die Länge von Läufen einen vorgegebenen Wert überschreitet, wobei die Rückkopplungsfunktionseinheit über ein Exklusiv-ODER-Gatter, das zwischen das Register und ein vorhergehendes Register geschaltet ist, mit dem Eingang eines der mehreren Register verbunden ist und ein Onlinetester mit dem Ausgang des vorhergehenden Registers verbunden ist, und/oder ein Seed-Injektionseingang über ein Exklusiv-ODER-Gatter, das zwischen das Register und ein vorhergehendes Register geschaltet ist, mit dem Eingang eines der mehreren Register verbunden ist, eine Logikschaltung parallel zwischen den Ausgang des Registers und den Ausgang des vorhergehenden Registers geschaltet ist und ein Onlinetester mit dem Ausgang der Logikschaltung verbunden ist, und/oder die Logikschaltung eine Reihenschaltung eines Registers und eines Exklusiv-ODER-Gatters umfasst, wobei der Ausgang des Exklusiv-ODER-Gatters mit dem Onlinetester verbunden ist, und/oder der Ausgang des vorhergehenden Registers inline mit dem Onlinetester verbunden ist, und/oder der Onlinetester inline mit dem Eingang eines ersten Registers des Rückkopplungsschieberegisters verbunden ist.
  14. Integritätsverletzungsdetektor, der dafür eingerichtet ist, eine Integritätsverletzung zu erkennen, die auf ein zugeordnetes Rückkopplungsschieberegister ausgeübt wird, das aus mehreren Registern besteht, wobei der Integritätsverletzungsdetektor ferner dafür eingerichtet ist, Folgendes auszuführen: Bestimmen, ob eine Sequenz von Werten an einem Eingang oder Ausgang wenigstens eines der Register oder eine logische Kombination davon eine nicht konstante Sequenz oder eine konstante Sequenz ist, und Ausgeben einer Angabe, dass sich das Rückkopplungsschieberegister in einem integralen Zustand befindet, falls die Sequenz von Werten eine nicht konstante Sequenz ist, oder Ausgeben einer Angabe, dass das Rückkopplungsschieberegister einer Integritätsverletzung ausgesetzt ist, falls die Sequenz von Werten eine konstante Sequenz ist.
  15. Integritätsverletzungsdetektor nach Anspruch 14, welcher einen Onlinetester umfasst, der dafür eingerichtet ist, Folgendes auszuführen: Zählen einer Länge von Läufen von 0-Bits und 1-Bits in einer eingehenden Sequenz von Werten und Ausgeben der Angabe, dass das Rückkopplungsschieberegister der Integritätsverletzung ausgesetzt ist, falls die Länge von Läufen einen vorgegebenen Wert überschreitet.
  16. Verfahren zum Erkennen einer auf ein Rückkopplungsschieberegister ausgeübten Integritätsverletzung, wobei das Rückkopplungsschieberegister Folgendes umfasst: mehrere Register, die in Reihe geschaltet sind, und eine Rückkopplungsfunktionseinheit, die zwischen einen Ausgang einer Anzahl der Register und einen Eingang wenigstens eines der Register geschaltet ist, wobei das Verfahren folgende Schritte umfasst: Bestimmen, ob eine Sequenz von Werten an einem Eingang oder Ausgang wenigstens eines der mehreren Register, welche das Rückkopplungsschieberegister bilden, oder eine logische Kombination davon eine nicht konstante Sequenz oder eine konstante Sequenz ist, und Ausgeben einer Angabe, dass sich das Rückkopplungsschieberegister in einem integralen Zustand befindet, falls die Sequenz von Werten eine nicht konstante Sequenz ist, oder Ausgeben einer Angabe, dass das Rückkopplungsschieberegister einer Integritätsverletzung ausgesetzt ist, falls die Sequenz von Werten eine konstante Sequenz ist.
  17. Verfahren nach Anspruch 16, welches folgende Schritte umfasst: Empfangen einer Sequenz von Werten an einem Eingang oder einem Ausgang wenigstens eines der mehreren Register, welche das Rückkopplungsschieberegister bilden, oder einer logischen Kombination davon, Zählen der Länge der Läufe von 0-Bits und 1-Bits und Angeben der Erkennung einer Integritätsverletzung, falls die Länge eines Laufs einen vorgegebenen Wert überschreitet.
  18. Nicht flüchtiges Speichermedium, worauf ein Computerprogramm gespeichert ist, das einen Programmcode aufweist, um, wenn es auf einem Computer ausgeführt wird, ein Verfahren zum Erkennen einer auf ein Rückkopplungsschieberegister ausgeübten Integritätsverletzung auszuführen, wobei das Verfahren folgende Schritte umfasst: Bestimmen, ob eine Sequenz von Werten an einem Eingang oder Ausgang wenigstens eines der mehreren Register, welche das Rückkopplungsschieberegister bilden, oder eine logische Kombination davon eine nicht konstante Sequenz oder eine konstante Sequenz ist, und Ausgeben einer Angabe, dass sich das Rückkopplungsschieberegister in einem integralen Zustand befindet, falls die Sequenz von Werten eine nicht konstante Sequenz ist, oder Ausgeben einer Angabe, dass das Rückkopplungsschieberegister einer Integritätsverletzung ausgesetzt ist, falls die Sequenz von Werten eine konstante Sequenz ist.
  19. Eingebettetes System, das einen Speicher und eine Steuereinrichtung umfasst, wobei die Steuereinrichtung dafür ausgelegt ist, eine auf ein Rückkopplungsschieberegister ausgeübte Integritätsverletzung zu erkennen, wobei dies in Software durch ein Verfahren implementiert ist, welches folgende Schritte umfasst: Bestimmen, ob eine Sequenz von Werten an einem Eingang oder Ausgang wenigstens eines der mehreren Register, welche das Rückkopplungsschieberegister bilden, oder eine logische Kombination davon eine nicht konstante Sequenz oder eine konstante Sequenz ist, und Ausgeben einer Angabe, dass sich das Rückkopplungsschieberegister in einem integralen Zustand befindet, falls die Sequenz von Werten eine nicht konstante Sequenz ist, oder Ausgeben einer Angabe, dass das Rückkopplungsschieberegister einer Integritätsverletzung ausgesetzt ist, falls die Sequenz von Werten eine konstante Sequenz ist.
  20. Eingebettetes System nach Anspruch 19, wobei das eingebettete System eine Smartcard-Steuereinrichtung, ein RFID-Tag oder eine eingebettete Sicherheitssteuereinrichtung umfasst.
DE102014214722.0A 2013-07-26 2014-07-25 Vorrichtung und Verfahren zum Erkennen einer Integritätsverletzung Pending DE102014214722A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/951,635 2013-07-26
US13/951,635 US10514892B2 (en) 2013-07-26 2013-07-26 Apparatus and method for detecting integrity violation

Publications (1)

Publication Number Publication Date
DE102014214722A1 true DE102014214722A1 (de) 2015-01-29

Family

ID=52274253

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014214722.0A Pending DE102014214722A1 (de) 2013-07-26 2014-07-25 Vorrichtung und Verfahren zum Erkennen einer Integritätsverletzung

Country Status (2)

Country Link
US (1) US10514892B2 (de)
DE (1) DE102014214722A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106548806B (zh) * 2016-10-13 2019-05-24 宁波大学 一种能够防御dpa攻击的移位寄存器

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4355366A (en) * 1980-11-28 1982-10-19 Ncr Corporation Circuitry for minimizing auto-correlation and bias in a random number generator
US7082449B2 (en) * 2002-05-03 2006-07-25 Sun Microsystems, Inc. Method and apparatus for generating pseudo-random numbers
DE102004037814B4 (de) 2004-08-04 2010-12-16 Infineon Technologies Ag Vorrichtung und Verfahren zum Erzeugen einer Folge von Zahlen
US7734969B2 (en) * 2007-10-30 2010-06-08 Infineon Technologies Ag Feedback shift register control

Also Published As

Publication number Publication date
US20150032787A1 (en) 2015-01-29
US10514892B2 (en) 2019-12-24

Similar Documents

Publication Publication Date Title
DE102004062825B4 (de) Kryptographische Einheit und Verfahren zum Betreiben einer kryptographischen Einheit
US10491372B2 (en) Protection method and device against a side-channel analysis
DE102011078642A1 (de) Verfahren zum Prüfen eines m aus n Codes
DE60101147T2 (de) Mikroprozessor beständig gegen eine energie-analyse
DE102006001872A1 (de) Vorrichtung und Verfahren zum Überprüfen einer Fehlererkennungsfunktionalität einer Datenverarbeitungseinrichtung
EP3686871A1 (de) Verfahren zum härten von softwareapplikationen
DE102009024179A1 (de) Schaltung mit einer Mehrzahl von Funktionsweisen
DE102015112143A1 (de) Ein Verfahren zum Bestimmen einer Integrität einer Ausführung eines Codefragments und ein Verfahren zum Bereitstellen einer abstrahierten Repräsentation eines Programmcodes
DE102010029735A1 (de) Verfahren zum Generieren eines Bitvektors
DE102015107823A1 (de) Randomisierter Speicherzugriff
DE102019122145A1 (de) Gesicherte x-modulare redundanz
DE10223176B3 (de) Integrierte Schaltung mit sicherheitskritischen Schaltungskomponenten
DE102015110144B4 (de) Chip und Verfahren zum Testen einer Verarbeitungskomponente eines Chips
DE102009007246A1 (de) Pseudozufallszahlengenerator und Verfahren zum Erzeugen einer Pseudozufallszahlenbitsequenz
DE102013205542A1 (de) Vorrichtung und Verfahren zur Verarbeitung von Daten
DE102004061312B4 (de) Vorrichtung und Verfahren zum Detektieren eines potentiellen Angriffs auf eine kryptographische Berechnung
EP2689373B1 (de) Detektieren von angriffen auf einen portablen datenträger
DE102013227165A1 (de) Überwachungsvorrichtung zur Überwachung eines Schaltkreises
DE102014214722A1 (de) Vorrichtung und Verfahren zum Erkennen einer Integritätsverletzung
DE102011078645A1 (de) Verfahren zum sicheren Prüfen eines Codes
EP1596527B1 (de) Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung
DE102013108073B4 (de) Datenverarbeitungsanordnung und verfahren zur datenverarbeitung
DE102010031030B3 (de) Datenschnittstelle mit eigensicherer, integrierter Fehlererkennung
DE102015209120A1 (de) Recheneinrichtung und Betriebsverfahren hierfür
DE102006012635A1 (de) Vorrichtung und Verfahren zum Erzeugen einer Zahl mit einer zufälligen Verteilung

Legal Events

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