DE102009024179A1 - Schaltung mit einer Mehrzahl von Funktionsweisen - Google Patents

Schaltung mit einer Mehrzahl von Funktionsweisen Download PDF

Info

Publication number
DE102009024179A1
DE102009024179A1 DE200910024179 DE102009024179A DE102009024179A1 DE 102009024179 A1 DE102009024179 A1 DE 102009024179A1 DE 200910024179 DE200910024179 DE 200910024179 DE 102009024179 A DE102009024179 A DE 102009024179A DE 102009024179 A1 DE102009024179 A1 DE 102009024179A1
Authority
DE
Germany
Prior art keywords
circuit
state
mode
states
integrated circuit
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.)
Granted
Application number
DE200910024179
Other languages
English (en)
Other versions
DE102009024179B4 (de
Inventor
Franz Klug
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of DE102009024179A1 publication Critical patent/DE102009024179A1/de
Application granted granted Critical
Publication of DE102009024179B4 publication Critical patent/DE102009024179B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/74Protecting 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 operating in dual or compartmented mode, i.e. at least one secure mode
    • 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/72Protecting 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 in cryptographic circuits

Abstract

Eine Schaltung, die in einer ersten und einer zweiten Funktionsweise betrieben werden kann, umfasst eine Speicherstelle, die angepasst ist, um zumindest einen ersten Zustand, einen zweiten Zustand und einen dritten Zustand zu speichern, wobei die Schaltung angepasst ist, um zu der ersten Funktionsweise zu speichern, wenn die Speicherstelle den ersten oder den dritten Zustand erfasst, und wobei die Schaltung angepasst ist, um zu der zweiten Funktionsweise zu schalten, wenn die Speicherstelle den zweiten Zustand erfasst.

Description

  • Ausführungsbeispiele gemäß der vorliegenden Erfindung beziehen sich auf Schaltungen, die in einer Vielzahl von Funktionsweisen betrieben werden können, die beispielsweise unterschiedliche Sicherheitsebenen oder unterschiedliche Widerstandsebenen bezüglich Angriffen bieten.
  • Schaltungen und integrierte Schaltungen werden heutzutage in vielen Technologiegebieten angewendet. Die Vielfalt dieser Gebiete ist enorm, da Schaltungen und integrierte Schaltungen nicht nur zum Erfassen von Einflüssen, Durchführen von Messungen, Ausführen von Berechnungen und andere Datenmanipulationen verwendet werden, sondern auch Implementierungen äußerst komplexer Algorithmen umfassen, die beispielsweise auf dem Gebiet verwendet werden können, was normalerweise als Informationstechnologie bezeichnet wird.
  • Schaltungen und integrierte Schaltungen werden beispielsweise häufig auf dem Gebiet von sicherheitsbezogenen Anwendungen verwendet, die Verschlüsselung, digitales Unterschreiben und weiteres Verarbeiten von Informationen umfassen können. Andere sicherheitsbezogene Anwendungen umfassen Zugriffssteuersysteme, Privilegien, Zugriffs- oder Rechteverwaltungssysteme und Systeme, die andere Informationen, Besitztümer, Güter, Rechte oder Privilegien vor Zugriff oder Übernahme durch unbefugte Personen schützen. Diese und andere Systeme werden manchmal als Sicherheitssysteme bezeichnet.
  • Aufgrund der Werte im Zusammenhang mit diesen Informationen, Privilegien, Rechten, Zugriffsmöglichkeiten, Gütern oder anderen Werten erfahren Schaltungen und integrierte Schaltungen, die auf dem Gebiet von sicherheitsbezogenen Anwendungen verwendet werden, häufig Angriffe, um unbefugten Zugriff auf diese Werten zu gewinnen, die durch eine jeweilige Schaltung oder integrierte Schaltung gesichert werden.
  • Folglich besteht der Bedarf, die Sicherheit zu erhöhen oder Schaltungen und integrierten Schaltungen zu stärken hinsichtlich Angriffen, die ausgeführt werden können, um Informationen oder andere privilegierte Daten zu erhalten, um Sicherheitssysteme zu überwinden, die zum Schützen von Werten verwendet werden.
  • Es ist die Aufgabe der vorliegenden Erfindung, eine Schaltung, die in einer ersten und einer zweiten Funktionsweise betrieben werden kann, eine integrierte Schaltung, eine Vorrichtung, ein Verfahren sowie ein Computerprogramm mit verbesserten Charakteristika zu schaffen.
  • Die Aufgabe wird gelöst durch die Merkmale der unabhängigen Ansprüche. Weiterbildungen finden sich in den abhängigen Ansprüchen.
  • Ausführungsbeispiele gemäß der vorliegenden Erfindung basieren auf der Erkenntnis, dass ein Sicherheitspegel oder Widerstandspegel hinsichtlich von Angriffen auf eine Schaltung erhöht werden kann im Fall einer Schaltung, die in zumindest einer ersten Funktionsweise und einer zweiten Funktionsweise betrieben werden kann, wobei die Schaltung angepasst ist, um zu einer jeweiligen Funktionsweise zu schalten, basierend auf einem Zustand, der an einer Speicherstelle gespeichert ist, durch Schalten der Schaltung zu der ersten Funktionsweise, wenn die Speicherstelle einen ersten Zustand erfasst, der der ersten Funktionsweise entspricht, oder einen dritten Zustand, und durch Schalten zu der zweiten Funktionsweise, wenn die Speicherstelle einen zweiten Zustand erfasst, der der zweiten Funktionsweise entspricht. Durch Schalten zu der ersten Funktionsweise, die beispielsweise einen höheren Sicherheitspegel oder einen höheren Widerstandspegel hinsichtlich Angriffen auf die Schaltung bieten kann, wenn die Speicherstel le den dritten Zustand erfasst, der normalerweise nicht der ersten oder zweiten Funktionsweise entspricht, kann eine Last für einen Angreifer auf die Schaltung beispielsweise erhöht werden wenn ein Ausführungsbeispiel gemäß der vorliegenden Erfindung verwendet wird.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
  • 1 ein Blockdiagramm eines Ausführungsbeispiels gemäß der vorliegenden Erfindung; und
  • 2 schematisch das Schalten zu unterschiedlichen Funktionsweisen basierend auf einer Speicherstelle, die vier Bits umfasst.
  • Nachfolgend wird ein erstes Ausführungsbeispiel gemäß der vorliegenden Erfindung mit Bezugnahme auf 1 und 2 beschrieben.
  • Schaltungen, integrierte Schaltungen und elektronische Bauelemente werden in vielen Gebieten der Technologie angewendet, die beispielsweise von Datenerfassung, Datenübertragung, einfachen Berechnungen und Manipulationen bis zu Implementierungen von hochkomplexen Datenverarbeitungsprozeduren reichen. Beispiele komplexer Datenmanipulationsprozeduren finden sich beispielsweise auf dem Gebiet der Kryptographie und Kryptoanalyse.
  • Da sich die letzteren beiden Beispiele auf dem Gebiet des Schützens von Daten und anderen Informationen vor unbefugtem Zugriff finden, betonen diese Beispiele, dass Schaltungen, integrierte Schaltungen und andere elektronische Bauelemente auf dem Gebiet von Sicherheitssystemen verwendet werden, wie z. B. Sicherheitsverwaltungssystemen, Rechteverwaltungssystemen und Privilegverwaltungssystemen, die Zugriff auf Daten, Informationen, begrenzte Bereiche, Güter, Privilegien oder jedes andere Objekt steuern, das einen bestimmten Wert darstellt, so dass die jeweiligen Objekte durch eines der obigen Systeme geschützt werden. Beispiele finden sich beispielsweise auf dem Gebiet von Zugriffssteuersystemen oder Zugriffsverwaltungssystemen, die einen unbefugten Zugang zu einem begrenzten Bereich verhindern, wie z. B. den Geschäftsräumen einer Firma, einer Abteilung, einem Labor oder anderen Versuchseinrichtungen oder anderen Bereiche mit begrenztem Zugang. Andere Beispiele finden sich in Privilegs-, Zugriffs- oder Rechteverwaltungssystemen, die Zugriff auf privilegierte Informationsdaten steuern und begrenzen, wie z. B. vertrauliche E-Mails, vertrauliche Dateien, vertrauliche Dokumente, Zugriff auf Bankkonten und andere geheime Informationen.
  • Schaltungen und integrierte Schaltungen, die diese Sicherheitssysteme umfassen, basieren häufig auf verteilten Schaltungen, die integrierte Schaltungen verwenden, wie z. B. elektronische Token, Smartcards, Chipcards oder andere elektronische Bauelemente auf der einen Seite und entsprechende Komponenten (z. B. einen Kartenleser) auf der anderen Seite. Aufgrund des Werts der Güter, die durch diese Schaltungen und integrierte Schaltungen geschützt werden, unterliegen dieselben Angriffen, die von einfachen Trial- und Error-Versuchen zum Knacken eines Codes zu äußerst komplexen Angriffen reichen, die eine detaillierte Analyse des Layouts der integrierten Schaltung oder Schaltung die Manipulation der Umgebungsbedingungen während des Betriebs, und selbst physikalische Angriffe auf die Schaltung oder integrierte Schaltung selbst umfassen, beispielsweise durch Ätzen oder Entfernen bestimmter Teile der Schaltung, häufig begleitet durch direkte physikalische Manipulation des Betriebs der Schaltung durch Anlegen eines Lasers, von Spannungsabtastimpulsen oder anderen Störungen. Andere Angriffsszenarien umfassen die Manipulation eines Programms, das auf einem Prozessor läuft, der in der Schaltung oder einer integrierten Schaltung ent halten ist, oder einem Prozessor, von dem die Schaltung oder die integrierte Schaltung ein Teil ist.
  • Folglich besteht der Bedarf, die Sicherheit vieler Schaltungen und integrierter Schaltungen zu stärken, und Angriffe auf diese Schaltungen schwieriger zu machen durch Verwenden von Sicherheitsgegenmaßnahmen und Sicherheitsschemata.
  • In vielen Fällen umfasst eine Schaltung oder integrierte Schaltung eine Speicherstelle, wie z. B. ein Register oder Steuerregister, an die Informationen geschrieben werden können, die eine Funktionsweise der Schaltung oder integrierten Schaltung bestimmen. In solchen Schaltungen kann ein Angriff beispielsweise an die Speicherstelle gerichtet sein, die die Funktionsweise der Schaltung steuert, durch Ändern oder Manipulieren des Zustands der Speicherstelle. Wie es vorher skizziert wurde, kann dies erreicht werden durch Verwenden eines Lasers zum direkten Ändern oder Beeinflussen des Inhalts der Speicherstelle oder durch Verwenden einer manipulierten Programmierung der Schaltung oder integrierten Schaltung, um die Manipulation basierend auf Befehlen eines Programms durchzuführen, das durch die Schaltung selbst ausgeführt wird. Als Folge können Informationen über die Prozesse der Schaltungen beispielsweise durch Angriffsstrategien durchsickern, wie z. B. (elementare) Leistungsanalyse, differentielle Leistungsanalyse oder Zeitanalyse von Berechnungen der Schaltung, was dazu führt, dass verarbeitete oder rohe Daten direkt offenbart werden.
  • 1 zeigt ein Blockdiagramm einer Schaltung 100 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung, die eine Speicherstelle 110 umfasst. Die Schaltung 100 kann in einer Mehrzahl von Funktionsweisen betrieben werden, die zumindest eine erste und eine zweite Funktionsweise umfassen, abhängig von einem Zustand, der durch die Speicherstelle 110 erfasst wird. Die Schaltung 100 ist konfiguriert, um zu der ersten Funktionsweise zu schalten, wenn die Speicherstelle einen ersten Zustand erfasst, der der ersten Funktionsweise entspricht. Darüber hinaus ist die Schaltung 100 angepasst, um zu der zweiten Funktionsweise zu schalten, wenn die Speicherstelle 110 einen zweiten Zustand erfasst, der der zweiten Funktionsweise entspricht, der sich von dem ersten Zustand unterscheidet.
  • Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung ist die Speicherstelle ferner in der Lage, zumindest einen dritten Zustand zu erfassen, der nicht einer Funktionsweise zugeordnet sein muss. Dies kann beispielsweise daran liegen, dass die Speicherstelle in der Lage ist, mehr Zustände als notwendig zu speichern oder zu erfassen, um jede der unterschiedlichen Funktionsweisen der Schaltung 100 zu adressieren. Wenn die Speicherstelle 110 den dritten Zustand erfasst, ist die Schaltung 100 angepasst, um zu einer definierten oder vordefinierten Funktionsweise zu schalten, beispielsweise der ersten Funktionsweise, die beispielsweise einen höheren Sicherheitspegel oder einen höheren Widerstandspegel bezüglich eines Angriffs bietet als die zweite Funktionsweise. Beispiele unterschiedlicher Funktionsweisen, die unterschiedliche Sicherheitspegel oder unterschiedliche Widerstandspegel bezüglich Angriffen auf die Schaltung 100 bieten, werden im weiteren Verlauf der Beschreibung näher beschrieben. Darüber hinaus kann die erste Funktionsweise beispielsweise eine Funktionsweise sein, bei der zumindest Teile des Betriebs der Schaltung 100 angehalten werden, so dass keine Datenverarbeitung oder nur eine begrenzte Datenverarbeitung durch die Schaltung 100 ausgeführt wird.
  • Bei Ausführungsbeispielen gemäß der vorliegenden Erfindung kann die Speicherstelle 110 beispielsweise ein Register, ein Steuerregister oder ein Spezialfunktionsregister (SFR) sein, das den Betrieb der Schaltung 100 steuert. Selbstverständlich kann die Speicherstelle 110 auch Teil eines Cachespeichers oder anderen Speichers sein, der mehr Speicherstellen umfasst als nur die Speicherstelle 110. Die Technologie, die hinter der Speicherstelle 110 steckt, kann beispielsweise diejenige eines dynamischen Direktzugriffsspeichers (DRAM; DRAM = dynamic random access memory), diejenige eines statischen Direktzugriffsspeichers (SRAM; SRAM = static random access memory), diejenige eines nichtflüchtigen Speichers (NVM; NVM = non-volatile memory) oder jede andere Technologie sein, die sowohl zumindest eine einmalige Speicherung von Daten in als auch mehrere Auslesungen von Daten von der Speicherstelle 100 ermöglicht.
  • Ausführungsbeispiele gemäß der vorliegenden Erfindung basieren auf der Erkenntnis, dass ein Sicherheitspegel oder Widerstandspegel bezüglich eines Angriffs auf die Schaltung 100 erhöht werden kann durch Schalten der Schaltung 100 zu einer Funktionsweise (erste Funktionsweise), die einen höheren Sicherheitspegel oder einen höheren Widerstandspegel bezüglich eines Angriffs bietet, wenn der Zustand einer Speicherstelle 110 nicht dem Zustand (explizit) entspricht, der jeder der beabsichtigten Funktionsweisen gemäß der Spezifikation des Bauelements zugeordnet ist. Als Folge führt absichtliche oder zufällige Manipulation des Inhalts der Speicherstelle 110 in vielen Fällen zu einer Stärkung der Schaltung 100 gegen den aktuellen Angriff.
  • Ausführungsbeispiele gemäß der vorliegenden Erfindung basieren auf der Tatsache, dass viele Register und Speicherstellen Breiten von n Bits anbieten, wobei n eine positive Ganzzahl ist, beispielsweise 2 bis 8, 10, 12, 14, 16, 20, 24, 32 oder 64. Jeder dieser Register oder Speicherstellen 110 bietet 2n potentielle Zustände, die an der Speicherstelle speicherbar sind. Die Anzahl m von erforderlichen Zuständen, wobei m ebenfalls eine positive Ganzzahl ist, die erforderlich sind, um die unterschiedlichen Funktionsweisen zu codieren, ist häufig wesentlich kleiner als die Anzahl potentieller Zustände (m < 2n). Somit basiert dieser Lösungsansatz auf einer Situation, bei der die n Bits nicht vollständig verwendet werden beim Codieren der unterschiedlichen Funktionsweisen.
  • Anders ausgedrückt, die Speicherstelle oder das Register 110 ist angepasst, um zumindest die Summe einer ersten Anzahl von Zuständen und einer zweiten Anzahl von Zuständen zu speichern, wobei jeder Zustand einer ersten Anzahl von Zuständen genau einer Funktionsweise einer Mehrzahl von Funktionsweisen entspricht, und wobei eine vorbestimmte Funktionsweise ausgewählt wird, wenn der Zustand des Registers 110 einer der zweiten Anzahl von Zuständen ist. Bei vielen Ausführungsbeispielen gemäß der vorliegenden Erfindung ist die erste Anzahl zumindest 3, und die zweite Anzahl ist zumindest 1, so dass das Register in der Lage ist, vier unterschiedliche Zustände zu speichern. Die Zustände einer ersten Anzahl von Zuständen unterscheiden sich nicht nur untereinander, sondern auch von den Zuständen der zweiten Anzahl von Zuständen. Selbstverständlich unterscheiden sich die Zustände einer zweiten Anzahl von Zuständen auch voneinander und von den Zuständen der ersten Anzahl von Zuständen.
  • Darüber hinaus ist das Register 110 oder die Speicherstelle 110 bei Ausführungsbeispielen gemäß der vorliegenden Erfindung in der Lage, die Summe der ersten Anzahl von Zuständen und der zweiten Anzahl von Zuständen genau zu speichern. In dem obigen Fall entsprechen alle Zustände der Speicherstelle 110 „definierten Funktionsweisen”. Alternativ oder zusätzlich ist die zweite Anzahl normalerweise größer als die erste Anzahl, bei Ausführungsbeispielen gemäß der vorliegenden Erfindung. Die zweite Anzahl kann beispielsweise gleich oder größer zweimal der ersten Anzahl von Zuständen, gleich oder größer dreimal der ersten Anzahl von Zuständen oder gleich oder größer N mal der ersten Anzahl von Zuständen sein, wobei N eine positive Ganzzahl ist, die gleich oder größer 4 ist.
  • Da die vorbestimmte Funktionsweise oder die erste Funktionsweise einen höheren Sicherheitspegel oder einen höheren Widerstandspegel bezüglich eines Angriffs bietet, muss ein Angreifer ein erhöhtes Risiko akzeptieren, dass der Angriff selbst zu einem weniger vielversprechenden und schwierigeren Anfangspunkt für genau diesen Angriff führt. Als Folge wird die Wahrscheinlichkeit eines erfolgreichen Zufallsangriffs verringert und die Anzahl von notwendigen Versuchen steigt höchstwahrscheinlich an.
  • Somit bieten Ausführungsbeispiele gemäß der vorliegenden Erfindung die Möglichkeit, in eine sicherere Funktionsweise zu schalten, wenn der Zustand, der in der Speicherstelle 110 oder dem Register 110 gespeichert ist, einen „ungültigen Code” anzeigt. Die vorbestimmte oder erste Funktionsweise ist somit weniger kritisch bezüglich Sicherheitsproblemen als weitere Funktionsweisen. Der Grund dafür, dass ein solcher ungültiger Code in der Speicherstelle 110 gespeichert wird, kann beispielsweise ein Angriff sein (z. B. über einen Laser) oder eine fehlerhafte oder falsche Programmierung über eine Software.
  • Ausführungsbeispiele gemäß der vorliegenden Erfindung bieten eine sicherere oder stärkere Implementierung von Schaltungen bezüglich Angriffen bei vergleichsweise niedrigen Kosten. Darüber hinaus kann bei einigen Ausführungsbeispielen gemäß der vorliegenden Erfindung eine erforderliche Fläche des Chips für die Schaltung 100, die auch als der Chipflächenmehraufwand bezeichnet wird, und/oder eine erforderliche zusätzliche Laufzeit für Sicherheitsprozeduren, die auch als Laufzeitmehraufwand bezeichnet wird, eingespart werden, da eine Modifikation oder Verifikation von sicherheitsbezogenen (Steuer-)Registern typischerweise einen wesentlichen Aufwand bezüglich Schreiben, Lesen, Vergleichen der gespeicherten Werte erfordert, oder sogar eine doppelte Implementierung der sicherheitsbezogenen Komponenten, die wesentliche Ressourcen wie Chipfläche und Zugriffszeit binden. Anders ausgedrückt, indem bezüglich der Speicherstelle 110 oder des Registers 110 einfach einige Bits mehr verwendet werden, kann die Sicherheit der Schaltung 100 erhöht werden.
  • Bei Ausführungsbeispielen gemäß der Erfindung sind die Zustände der ersten Anzahl von Zuständen, die unterschiedlichen Funktionsweisen der Schaltung 100 entsprechen, in vielen Fällen nicht fortlaufend nummeriert bezüglich der Werte, die durch die Bits in der Speicherstelle 110 dargestellt werden. Wie es im Zusammenhang mit 2 näher skizziert wird, müssen die Werte, die den unterschiedlichen Zuständen entsprechen, die unterschiedlichen Funktionsweisen zugeordnet sind, nicht fortlaufend nummeriert sein bezüglich ihrer binären Darstellungen, da beispielsweise ein spezifisches Bit des Register 110 direkt verwendet werden kann zum Aktivieren oder Deaktivierungen einer oder mehrerer Komponenten der Schaltung 100. Somit existieren in diesen Fällen zumindest zwei Werte, die zwei Zuständen zugeordnet sind, die zwei unterschiedlichen Funktionsweisen entsprechen, so dass ein absoluter Wert der Differenz der beiden Werte größer als 1 ist, und dass kein Wert, der einer anderen Funktionsweise entspricht als der ersten Funktionsweise oder der vorbestimmten Funktionsweise, zwischen den beiden Werten liegt. Ein Beispiel dafür wird im Zusammenhang mit 2 näher beschrieben.
  • Bei weiteren Ausführungsbeispielen gemäß der vorliegenden Erfindung kann die Schaltung 100 ferner eine Schaltschaltung 120 als eine optionale Komponente umfassen, die mit der Speicherstelle 110 gekoppelt ist. Die Schaltschaltung 120 kann angepasst sein, um den Zustand der Speicherstelle 110 zu bestimmen, beispielsweise durch Auslesen des Werts derselben. Dann kann die Schaltschaltung 120 den Wert, der von der Speicherstelle 110 ausgelesen wird, mit einer Liste von Werten vergleichen, die den Zuständen der ersten Anzahl von Zuständen entsprechen. In diesem Fall kann die Schaltschaltung 120 angepasst sein, um ein optionales Schaltsignal 130 zu liefern, das die Funktionsweise anzeigt, die identisch sein kann mit dem Wert, der in der Speicherstelle 110 gespeichert ist. Die Schaltschaltung 120 kann jedoch auch optional ein oder mehrere Signale liefern, die Datenschalter, Multi plexer oder andere Komponenten der Schaltung aktivieren oder deaktivieren, oder kann die Funktionsweise der Schaltung 100 auf eine andere Weise verändern.
  • Falls der Wert, der von der Speicherstelle 110 ausgelesen wird, nicht in der oben erwähnten Liste enthalten ist, erzeugt die Schaltschaltung 120 ein Schaltsignal, das einer vorbestimmten Funktionsweise einer Mehrzahl von Funktionsweisen entspricht, wie es oben beschrieben ist. Optional kann die Schaltschaltung den Wert liefern, der von der Speicherstelle 110 auf codierte Weise als Schaltsignal 130 gelesen wird. In dem Fall, dass eine Schaltschaltung 120 in der Lage ist, ein oder mehrere Signale zu liefern, um die oben erwähnten Komponenten zu aktivieren oder zu deaktivieren, werden diese Signale gemäß der vorbestimmten Funktionsweise erzeugt.
  • Die Schaltschaltung 120 sowie die gesamte Schaltung 100 können als eine integrierte Schaltung, eine diskrete Schaltung oder eine Kombination von beiden implementiert sein. Darüber hinaus kann ein Ausführungsbeispiel eines Verfahrens gemäß der vorliegenden Erfindung auch als ein Software- oder Firmwareprogramm implementiert sein, das in einem entsprechenden Speicher gespeichert ist und durch einen Prozessor ausgeführt wird. In diesem Fall kann das Bestimmen eines Zustands sowie das Vergleichen von Werten oder Zuständen das Lesen von und Schreiben in implementierungsspezifische Adressen eines Speichers umfassen, oder andere implementierungsspezifische Prozeduren.
  • 2 stellt schematisch das Schalten der Schaltung 100 in unterschiedliche Funktionsweisen dar, abhängig von dem Zustand einer Speicherstelle oder eines Registers 110 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Das in 2 dargestellte Ausführungsbeispiel basiert jedoch auf den Implementierungseinzelheiten und Spezifikationen dieser Schaltungen, die im Zusammenhang von 1 beschrieben sind. Hier umfasst die Speicherstelle 110 4 Bits, die in der Lage sind, Werte in dem Bereich von 0 (= 0000) bis 15 (= 1111) zu erfassen, wobei die Werte in den Klammern binäre Darstellungen sind. Auf der linken Seite von 2 sind die 16 unterschiedlichen Werte 200 in der binären Darstellung zusammen mit ihren entsprechenden dezimalen Darstellungen 210 gezeigt.
  • Auf der rechten Seite von 2 sind drei Funktionsweisen 220-1 (Modus 1), 220-2 (Modus 2) und 220-3 (Modus 3) durch drei Rechtecke dargestellt. Wie es durch einen Pfeil 230 in 2 dargestellt ist, umfasst Modus 1 einen höheren Sicherheits- oder Widerstandspegel als Modus 2 und Modus 3, während Modus 2 einen höheren Sicherheits- oder Widerstandspegel als Modus 3 umfasst.
  • Wie es durch die fetten Linien 240-1, 240-2 und 240-3 angezeigt ist, ist der Modus 1 220-1 einem Zustand 200 zugeordnet, der dem Dezimalwert 3 entspricht, als ein beabsichtigter Wert zum Schalten der Schaltung 100 zu Modus 1. Der Zustand 200, der dem Dezimalwert 7 entspricht, ist dem Modus 2 220-2 zugeordnet, während der Zustand 200, der dem Dezimalwert 12 entspricht, dem Modus 3 220-3 zugeordnet ist. Folglich sind diese drei Zustände, die die Dezimalwerte 3, 7, 12 aufweisen, die Zustände, die zu der ersten Anzahl von Zuständen gehören, wie es oben beschrieben ist. Bei dem in 2 gezeigten Ausführungsbeispiel gehören die anderen Zustände 200 mit Dezimalwerten 0, 1, 2, 4, 5, 6, 8, 9, 10, 11, 13, 14, 15 zu der zweiten Anzahl von Zuständen. Für alle diese Zustände ist die zugeordnete oder vorbestimmte Funktionsweise der Mehrzahl von Funktionsweisen 220 der erste Modus 220-1, wie es durch die dünnen Linien 250 in 2 dargestellt ist.
  • Wie es angezeigt ist, stellt 2 ein Ausführungsbeispiel gemäß der vorliegenden Erfindung dar, bei dem alle potentiellen Zustände des Registers oder der Speicherstelle 110 einer Funktionsweise zugeordnet sind. Anders ausgedrückt, die erste Anzahl ist gleich 3, was den Werten 3, 7, 12 entspricht, und die zweite Anzahl ist gleich 13, was den anderen Zuständen 200 entspricht, so dass die Gesamtanzahl von Zuständen dieser Speicherposition 110 genau gleich der Summe der ersten Anzahl und der zweiten Anzahl ist. Darüber hinaus sind die Werte der Zustände, die den drei Funktionsweisen gemäß der Spezifikation der Schaltung 100 zugeordnet sind, nicht fortlaufend nummeriert. Abgesehen von der Tatsache, dass 3, 7 und 12 keine fortlaufende Ganzzahlen sind, gibt es zwischen dem Wert von 3 und 7 keinen anderen der zugeordneten Werte der ersten Anzahl von Zuständen (was 12 wäre), und der absolute Wert der Differenz der beiden Werte der entsprechenden Zustände ist 4 = |7 3| = |3 7|, wie es oben beschrieben ist.
  • Anders ausgedrückt, bei dem in 2 gezeigten Ausführungsbeispiel entspricht der erste Zustand dem Wert von 3, der zweite Zustand dem Wert von 7 und der dritte Zustand beispielsweise dem Wert von 4.
  • Ferner zeigt 2 ein Ausführungsbeispiel gemäß der vorliegenden Erfindung, bei dem ein Verhältnis zwischen der zweiten Anzahl von Zuständen (13) und der ersten Anzahl von Zuständen (3) mehr als 4 ist. Wie bei dem in 2 gezeigten Ausführungsbeispiel existieren nur drei unterschiedliche Funktionsweisen 220, in diesem Fall ist die Anzahl von Bits, die erforderlich ist, um zwischen den unterschiedlichen Funktionsweisen zu schalten, 2. Da das Register 110 4 Bits umfasst, ist jedoch das vorher erwähnte Verhältnis mehr als 4 = 22. Bei Ausführungsbeispielen gemäß der vorliegenden Erfindung ist das Verhältnis zwischen der zweiten Anzahl von Zuständen und der ersten Anzahl von Zuständen häufig gleich oder größer als 2, was jedoch keine Bedingung ist. Mit einem steigenden Verhältnis ist ein zunehmender Sicherheitspegel gegenüber zufälligen Angriffen und anderen Angriffen auf die Speicherstelle oder das Register 110 erreichbar.
  • Bevor weitere Ausführungsbeispiele gemäß der vorliegenden Erfindung beschrieben werden, wobei der Schwerpunkt der Beschreibung auf die unterschiedlichen Funktionsweisen gelegt wird, sollte erneut darauf hingewiesen werden, dass Ausführungsbeispiele gemäß der vorliegenden Erfindung auf alle Schaltungen mit sicherheitsbezogenen oder sicherheitskritischen Anwendungen anwendbar sind. Solche Schaltungen können als integrierte Schaltungen oder Sicherheitsbauelemente gebildet sein, die eine oder mehrere integrierte Schaltungen umfassen. Eine integrierte Schaltung oder Schaltung kann beispielsweise eine Smartcard, eine Chipcard, ein Prozessor, eine anwendungsspezifische integrierte Schaltung (ASIC; ASIC = application specific integrated circuit) oder eine integrierte Schaltung sein, die in einem Sicherheitstoken implementiert werden soll. Im Fall einer Schaltung für eine Smartcard oder eine Chipcard kann die Schaltung beispielsweise eine Chipcardsteuerung sein, und die Speicherstelle 110 kann Teil des entsprechenden Steuerspeichers oder Steuerregisters der Chipcardsteuerung sein. Beispiele von Prozessoren sind neben zentralen Verarbeitungseinheiten (CPU; CPU = central processing unit), mathematische Prozessoren und Kryptoprozessoren, die Arithmetik-Logik-Einheiten (ALU; ALU = arithmetic logical unit) umfassen, die in der Lage sind, spezifische komplexe mathematische Operationen, wie z. B. Verschlüsselung, Entschlüsselung, Berechnung von Hash-Werten und andere Operationen äußerst effektiv und/oder sicher auszuführen.
  • Ausführungsbeispiele gemäß der vorliegenden Erfindung bieten die Möglichkeit sicherer Handhabung von absichtlichen oder zufälligen falschen Eingaben in ein Steuerregister, wie es oben beschrieben ist. In diesem Fall wird das jeweilige Register (z. B. ein Spezialfunktionsregister) „zurückgesetzt” auf einen sicheren Wert, der der vorbestimmten Funktionsweise entspricht.
  • In dem Fall eines Ausführungsbeispiels gemäß der vorliegenden Erfindung ist eine Schaltung 100 in der Lage, Daten, die mit einer anderen Komponente ausgetauscht werden, wie z. B. einer weiteren Schaltung oder einem Chipkartenleser, durch Verwenden einer Übertragungsmaske zu verbergen oder zu tarnen, so dass die ausgetauschten Daten gegen einfaches Ausschnüffeln während des Austausches geschützt sind. Eine solche Übertragungsmaske kann beispielsweise XOR-verknüpft werden mit den Daten, die zu übertragen sind, um die echten Daten zu tarnen oder zu verbergen. In diesem Fall ist die Übertragungsmaske typischerweise ein Binärmuster, das nur Nullen und Einsen umfasst, mit denen die Daten, die zu übertragen sind, XOR-verknüpft werden vor und nach der Übertragung, so dass der Einfluss der Übertragungsmaske eliminiert wird nach dem Empfang der maskierten Daten durch die Empfangskomponente.
  • Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung kann die Schaltung 100 angepasst sein, um eine Frequenz der Änderungen der Übertragungsmaske zu modifizieren, abhängig von einem Steuerregister, das beispielsweise vier Bits enthält. In diesem Fall entsprechen die unterschiedlichen Funktionsweisen Modi mit unterschiedlichen Frequenzen der Änderung der Übertragungsmaske. Die Speicherstelle 110 ist in diesem Fall das 4 Bit lange Steuerregister. Die gültigen Zustände, die in vier Bits codiert sind, können beispielsweise die Werte 15 (= 1111), einer Änderung der Übertragungsmaske mit jedem Zyklus eines Taktsignals zugeordnet, 7 (= 0111), dem Ändern der Übertragungsmaske alle 4 Taktzyklen zugeordnet, 3 (= 0011), dem Ändern der Übertragungsmaske alle 16 Taktzyklen zugeordnet, 1 (= 0001), dem Ändern der Übertragungsmaske alle 64 Taktzyklen zugeordnet, und 0 (= 0000) sein, dem zugeordnet, dass die Übertragungsmaske niemals verändert oder überhaupt nicht verwendet wird. Somit gehören die fünf Zustände, die oben erwähnt wurden, zu einer ersten Anzahl von Zuständen.
  • Wenn jedoch das Steuerregister 110 mit einem falsch codierten Zustand versorgt wird, der einem anderen Wert entspricht als den oben erwähnten Werten, wird die Schaltung 100 zu der Funktionsweise geschaltet, die den häufigsten Maskenänderungen entspricht. Anders ausgedrückt, bei dieser Implementierung wird jeder andere Wert als der Zustand interpretiert, der dem Dezimalwert 15 (= 1111) entspricht, so dass die Übertragungsmaske mit jedem Taktzyklus geändert wird.
  • Als Folge muss ein Angreifer ein erhöhtes Risiko in Kauf nehmen, das ein Angriff beinahe immer zu einer schwierigeren Ausgangsposition für genau diesen Angriff führt. Somit wird die Wahrscheinlichkeit eines erfolgreichen Zufallszugriffs wesentlich verringert und die Anzahl von notwendigen Versuchen wird möglicherweise drastisch ansteigen.
  • Die unterschiedlichen Übertragungsmasken sowie die Masken und Schlüssel zum Verbergen können beispielsweise bestimmt werden unter Verwendung eines Pseudozufallszahlengenerators oder eines Echte-Zufallszahlengenerators. Selbstverständlich können Ausführungsbeispiele gemäß der vorliegenden Erfindung mit einer unterschiedlichen Anzahl von Funktionsweisen oder Frequenzen oder Änderungsfrequenzen der Übertragungsmaske implementiert werden, mit einem längeren oder einem kürzeren Register als der Speicherstelle 110 oder mit einer anderen Codierung für die jeweilige Frequenz von Maskenänderungen.
  • Bei einem ähnlichen Ausführungsbeispiel gemäß der vorliegenden Erfindung, das gegenüber einem Differentielle-Leistungsanalyse-Angriff gestärkt oder abgehärtet wird, kann eine Schaltung 100 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung mit unterschiedlichen Funktionsweisen implementiert werden, die unterschiedlichen Frequenzen einer Maskenänderung für eine interne Verwendung der Schaltung 100 entsprechen. Eine solche Schaltung 100 kann – als eine Gegenmaßnahmestrategie gegen eine differentielle Leistungsanalyse – eine Maskierung der jeweiligen Eingangsdaten vor den Berechnungen verwenden, und eine Demaskierung der Ausgabe der Berechnungen, nachdem die mathematischen Prozeduren angewendet wurden. Abhängig von den Implementierungseinzelheiten kann es sein, dass nicht alle potentiellen Algorithmen auf solch eine Weise implementiert werden können.
  • Gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung, das eine weitere Gegenmaßnahmestrategie gegen differentielle Leistungsanalyse verwendet, die ähnlich ist wie das Maskieren, wie es vorher beschrieben wurde, können Schaltungen 100 eine algorithmische Modifikation umfassen, wie z. B. dass eine kryptographische Operation an Daten auftritt, die sich auf den tatsächlichen Wert beziehen, durch eine mathematische Beziehung, die die kryptographische Operation überlebt. Diese Technik wird Verbergen (Blinding) genannt und impliziert sehr häufig einen Algorithmus, der auf Zahlentheorie basiert, wie z. B. Factoring- oder diskrete Logarithmen. Bei Ausführungsbeispielen gemäß der vorliegenden Erfindung, die diese Technik verwenden, kann die Schaltung in unterschiedlichen Funktionsweisen betrieben werden, entsprechend unterschiedlichen Frequenzen von Schlüsseländerungen der darunterliegenden kryptographischen Funktion.
  • Gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung kann die Schaltung 100 ein symmetrischer Kryptoprozessor sein, und die Speicherstelle 110 kann in diesem Fall ein Kryptoprozessorsteuerregister sein. Ein solches Ausführungsbeispiel gemäß der vorliegenden Erfindung kann beispielsweise zehn Funktionsweisen umfassen, die basierend darauf ausgewählt werden, dass das Register 110 5 Bits umfasst. Bei diesem Ausführungsbeispiel gemäß der vorliegenden Erfindung kann der Zustand, der einem Wert 0 (= 0000) entspricht, einer Funktionsweise zugeordnet sein, die anzeigt, dass kein kryptographischer Modus ausgewählt wurde. Diese Funktionsweise kann die vorbestimmte Funktionsweise sein und kann ferner als ein Rücksetzmodus dienen, um den Prozessor anzuhalten, zu unterbrechen oder neu zu starten im Fall eines ungültigen Werts, der einem Zustand entspricht, der nicht zu der ersten Anzahl von Zuständen gehört. Das Auswählen dieser Funktionsweisen kann es für einen Angreifer schwieriger machen, einen Zufallsangriff auszuführen.
  • Die unterschiedliche Funktionsweise eines solchen kryptographischen Prozessors kann sich beispielsweise bezüglich unterschiedlicher kryptographischer Algorithmen, Schlüssellängen und Frequenzen für Schlüsseländerungen unterscheiden, wie es oben beschrieben ist. Der kryptographische Prozessor kann beispielsweise zwischen DES, AES, IDEA, CAST und anderen Algorithmen schalten, die auf elliptischen Kurven basieren. Darüber hinaus kann der Prozessor 100 bezüglich Ein-Weg-Hash-Funktionen zwischen MD5, RIPE160, SHA1, SHA1a und SHA2 schalten. Natürlich können bei anderen Ausführungsbeispielen andere Funktionsweisen, ein Teilsatz der oben erwähnten Modi und andere implementierungsspezifische Einzelheiten implementiert werden.
  • Bei einem weiteren Ausführungsbeispiel gemäß der vorliegenden Erfindung kann ein Steuerregister 110 die Schaltung 100 über die optionale Schaltschaltung 120 zwischen unterschiedlichen ALUs schalten, von denen eine beispielsweise äußerst effektiv implementiert sein kann, aber einen geringen Widerstand gegenüber einem differentiellen Leistungsangriff oder anderen Angriffen umfasst, und einer, die den sogenannten Doppel-Schiene-Lösungsansatz verwendet, der auf dem gleichzeitigen Verarbeiten der Daten und der invertierten Daten basiert, um weniger oder keine Leistungsfluktuationen zu erzeugen, abhängig von den Daten, die verarbeitet werden. Darüber hinaus kann die Schaltung 100 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung ferner in der Lage sein, sogenanntes Vorladen oder Vor-Entladen zu aktivieren, abhängig von dem Zustand des entsprechenden Steuerregisters 110. In der vorgeladenen Funktionsweise werden alle Doppel-Schiene-Signalleitungen vor der tatsächlichen algorithmischen Operation auf einen logischen Wert 1 für jeden Taktzyklus initialisiert. In diesem Fall einer vor-entladenen Funktionsweise werden alle Signalleitungen der Doppel-Schiene-Architektur auf einen logischen Zustand initialisiert, der für beide Signalleitungen jeweils 0 entspricht. Anders ausgedrückt, das Verwenden der Vorladungs- oder Vor-Entladungsfunktionsweise am Anfang jedes Taktzyklus wird dazu führen, dass das Signalleitungspaar in einem „illegalen Zustand” ist, da unter normalen Bedingungen eine der beiden Signalleitungen einen invertierten Signalpegel der anderen umfasst.
  • Bei Ausführungsbeispielen gemäß der vorliegenden Erfindung, die beispielsweise zwei unterschiedliche ALUs verwenden, können die unterschiedlichen Funktionsweisen beispielsweise das Verwenden der effizienten ALU, das Verwenden der verstärkten ALU ohne Vorladen oder Vor-Entladen, das Verwenden der verstärkten ALU mit Vorladen und das Verwenden der verstärkten ALU mit Vor-Entladen umfassen. Als vorbestimmte Funktionsweise kann beispielsweise der Modus verwendet werden, der die gestärkte ALU mit Vor-Entladung verwendet. Da die Anzahl unterschiedlicher Funktionsweisen bei diesem Ausführungsbeispiel gemäß der vorliegenden Erfindung 4 beträgt, so dass ein Register mit zumindest 2 Bits erforderlich ist, um alle 4 Modi zu bezeichnen, da die erste Anzahl von Zuständen in diesem Fall 4 ist, sollte das Register 110 zumindest 3 Bits umfassen, um zumindest 8 unterschiedliche Zustände zu speichern. Selbstverständlich kann die Anzahl von Bits des Registers 110 höher sein, was dazu führt, dass die Schaltung 100 noch sicherer ist gegenüber Zufallsangriffen gegen das Register 110 der Schaltung 100. Darüber hinaus können bei unterschiedlichen Ausführungsbeispielen eine unterschiedliche Anzahl von ALUs, unterschiedliche Funktionsweisen und andere implementierungsspezifische Einzelheiten implementiert werden.
  • Bei einem weiteren Ausführungsbeispiel gemäß der vorliegenden Erfindung kann die Schaltung 100 in unterschiedlichen Funktionsweisen betrieben werden, die unterschiedliche Korrelationswerte von Leistungsaufnahme zu verarbeiteten Daten umfassen. Dies kann beispielsweise erreicht werden durch eine (Pseudo-)Zufallsaktivierung von dissipativen elektrischen Elementen, die ausreichende Rauschpegel-Maskenfluktuationen der durch die Datenverarbeitung verursachten Leistungsaufnah me umfassen. Dies kann beispielsweise erreicht werden durch Aktivieren oder Deaktivieren von Widerstandselementen, die parallel geschaltet sind, wie z. B. pn-Übergänge, ohmsche Widerstände oder andere elektrische Elemente, die physikalische Rauschquellen (z. B. Schrotrauschen) umfassen.
  • In solch einem Ausführungsbeispiel gemäß der vorliegenden Erfindung können sich die unterschiedlichen Funktionsweisen erneut unterscheiden bezüglich einer potentiellen Bandbreite von Leistungsaufnahmen, einer Frequenz des Aktivierens oder Deaktivierens bestimmter dissipativer Elemente. Abhängig von der beabsichtigten Anwendung kann es empfehlenswert sein, in der Lage zu sein, zwischen einer Niedrigleistungsfunktionsweise mit nur einer begrenzten Anzahl von oder keinen aktivierten dissipativen Elementen, was daher die Gesamtleistungsaufnahme reduziert, aber einem potentiellen Angreifer mehr Informationen offenbaren kann, und Funktionsweisen mit einer höheren Leistungsaufnahme zu schalten. Als ein Beispiel kann es empfehlenswert sein, eine Funktionsweise beispielsweise nur für eine kurzfristige Periode zu implementieren, in der die höhere Gesamtleistungsaufnahme ein weniger wichtiger Nachteil ist im Vergleich zu einer verstärkten Sicherheit gegenüber Angriffen, beispielsweise kann eine lange Batterielebensdauer im Fall eines Angriffs weniger wichtig sein.
  • Erneut können sich Ausführungsbeispiele gemäß der vorliegenden Erfindung abhängig von den Implementierungseinzelheiten unterscheiden bezüglich eines großen Bereichs von Parametern, wie z. B. der Anzahl von dissipativen Elementen, Frequenzen der Aktivierung und Deaktivierung und der Bandbreite von Leistungsverbrauchsfluktuationen, die dadurch verursacht werden, dass die unterschiedlichen Elemente aktiviert werden. In solch einem Fall kann die vorbestimmte Funktionsweise der Modus mit höchsten und häufigsten Leistungsfluktuationen sein, um Spuren der Daten, die verarbeitet werden, in der Leistungsaufnahme so gut wie möglich zu maskieren.
  • Ein weiteres Ausführungsbeispiel gemäß der vorliegenden Erfindung ist eine Schaltung 100, die sowohl einen Pseudozufallszahlengenerator als auch einen Echte-Zufallszahlengenerator umfasst. Der Echte-Zufallszahlengenerator ist typischerweise eine Komponente, die eine inhärente physikalische Rauschquelle umfasst. Ein Beispiel dafür ist beispielsweise eine Phasenregelschleife (PLL; PLL = phase locked loop), ein Widerstand oder ein Tunnelübergang (z. B. ein umgekehrt vorgespannter pn-Übergang), der eine physikalische Rauschquelle umfasst, wie z. B. das vorher erwähnte Schrotrauschen oder andere regelmäßig auftretende Störungen, die zufällig beherrscht werden.
  • Ein Pseudozufallszahlengenerator wird andererseits häufig als ein lineares Rückkopplungsschieberegister (LFSR; LFSR = linear feedback shift register) implementiert, basierend auf einem Polynom mit einer maximalen Länge einer Sequenz von Bits, die für viele Anwendungen ein ausreichend nützliches statistisches Verhalten zeigt. Ein Pseudozufallszahlengenerator ist jedoch ein deterministisches System, so dass die Ausgabe im Wesentlichen bestimmt wird durch einen Initialisierungsvektor, der an den Pseudozufallszahlengenerator geliefert wird.
  • Die Energieaufnahme eines Pseudozufallszahlengenerators ist jedoch normalerweise wesentlich niedriger als diejenige eines Echte-Zufallszahlengenerators, da eine Energiemenge, die an die physikalische Rauschquelle geliefert wird, wesentlich niedriger ist als diejenige eines Echte-Zufallszahlengenerators, da eine Energiemenge, die an die physikalische Rauschquelle geliefert wird, in vielen Fällen wesentlich größer ist als diejenige, die für eine effiziente Implementierung eines Pseudozufallszahlengenerators erforderlich ist. Daher kann es empfehlenswert sein, einen Pseudozufallszahlengenerator zu initialisieren basierend auf einem Initialisierungsvektor, der durch den Echte-Zufallszahlengenerator erzeugt wird. Abhängig von den Sicherheitsanforderungen einer Anwendung kann in diesem Fall auch die Frequenz einer Aktivierung des Echte-Zufallszahlengenerators zum Initialisieren des Pseudozufallszahlengenerators in unterschiedlichen Funktionsweisen unterschiedlich sein. Wie bei dem vorher beschriebenen Ausführungsbeispiel gemäß der vorliegenden Erfindung mit unterschiedlichen Frequenzen für eine Änderung einer Übertragungsmaske können auch bei diesem Ausführungsbeispiel gemäß der vorliegenden Erfindung unterschiedliche Funktionsweisen mit unterschiedlichen Frequenzen einer Initialisierung des Pseudozufallszahlengenerators implementiert werden, wobei die vorbestimmte Funktionsweise diejenige mit der höchsten Anzahl von Initialisierungen ist.
  • Abhängig von bestimmten Implementierungsanforderungen von Ausführungsbeispielen erfindungsgemäßer Verfahren können Ausführungsbeispiele der erfindungsgemäßen Verfahren in Hardware oder in Software implementiert sein. Die Implementierung kann durchgeführt werden unter Verwendung eines digitalen Speichermediums, insbesondere einer Platte, einer CD oder DVD mit darauf gespeicherten elektronisch lesbaren Steuersignalen, die mit einem programmierbaren Computer oder Prozessor zusammenarbeiten, so dass ein Ausführungsbeispiel der erfindungsgemäßen Verfahren ausgeführt wird. Allgemein ist ein Ausführungsbeispiel der vorliegenden Erfindung daher ein Computerprogrammprodukt mit einem Programmcode, der auf einem maschinenlesbaren Träger gespeichert ist, wobei der Programmcode wirksam ist zum Durchführen eines Ausführungsbeispiels des erfindungsgemäßen Verfahrens, wenn das Computerprogrammprodukt auf dem Computer oder Prozessor läuft. Anders ausgedrückt, Ausführungsbeispiele der erfindungsgemäßen Verfahren sind daher ein Computerprogramm mit einem Programmcode zum Durchführen von zumindest einem der Ausführungsbeispiele der erfindungsgemäßen Verfahren, wenn das Computerprogramm auf dem Computer oder Prozessor läuft. Ein Prozessor kann gebildet werden durch einen Computer, eine Chipcard, eine Smartcard, eine anwendungsspezifische integrierte Schaltung (ASIC) oder eine integrierte Schaltung (IC).
  • Obwohl das Vorhergehende insbesondere mit Bezugnahme auf bestimmte Ausführungsbeispiele desselben gezeigt und beschrieben wurde, ist es für Fachleute auf diesem Gebiet klar, dass verschiedene andere Änderungen in den Formen und Einzelheiten durchgeführt werden können, ohne von der Wesensart und dem Schutzbereich desselben abzuweichen. Es ist klar, dass verschiedene Änderungen beim Anpassen an unterschiedliche Ausführungsbeispiele durchgeführt werden können, ohne von dem hierin offenbarten breiteren Konzept abzuweichen, das die folgenden Ansprüche umfassen.

Claims (25)

  1. Schaltung (100), die angepasst ist, um in einer ersten und einer zweiten Funktionsweise (220-1, 220-2) betrieben zu werden, die folgende Merkmale umfasst: eine Speicherstelle (110), die angepasst ist, um zumindest einen ersten Zustand, einen zweiten Zustand und einen dritten Zustand zu speichern, wobei die Schaltung (100) angepasst ist, um zu der ersten Funktionsweise (220-1) zu schalten, wenn die Speicherstelle (110) den ersten Zustand oder den dritten Zustand erfasst, und wobei die Schaltung (100) angepasst ist, um zu der zweiten Funktionsweise (220-2) zu schalten, wenn die Speicherstelle (110) den zweiten Zustand erfasst.
  2. Schaltung (100) gemäß Anspruch 1, wobei die Schaltung (100) ferner angepasst ist, um in einer dritten Funktionsweise (220-3) betrieben zu werden, wobei die Speicherstelle (110) ferner angepasst ist, um einen vierten Zustand zu speichern, und wobei die Schaltung (100) ferner angepasst ist, um zu der dritten Funktionsweise (220-3) zu schalten, wenn die Speicherstelle (110) den vierten Zustand erfasst.
  3. Schaltung (100) gemäß Anspruch 1 oder 2, bei der die Speicherstelle (110) angepasst ist, so dass Werte, die den Zuständen entsprechen, nicht fortlaufend sind, wenn dieselben in einer aufsteigenden Reihenfolge angeordnet werden.
  4. Schaltung (100) gemäß einem der Ansprüche 1 bis 3, wobei die Schaltung (100) angepasst ist, so dass ein Sicherheitspegel oder ein Widerstandspegel bezüglich Angriffen auf die Schaltung (100) für die erste Funktionsweise (220-1) höher ist als für die zweite Funktionsweise (220-2), oder wobei die Schaltung (100) angepasst ist, so dass die Schaltung (100) in der ersten Funktionsweise (220-1) angehalten wird.
  5. Schaltung (100) gemäß Anspruch 4, wobei die Schaltung (100) angepasst ist, um Daten zu verarbeiten oder zu einer externen Komponente zu übertragen, wobei die Daten während der Verarbeitung oder der Übertragung durch eine veränderbare Maske maskiert werden, oder wobei die Daten basierend auf einem veränderbaren Schlüssel verborgen werden, wobei sich die unterschiedlichen Funktionsweisen (220) bezüglich zumindest entweder einer Frequenz von Maskenänderungen und Schlüsseländerungen oder bezüglich zumindest entweder einer Maskenlänge oder einer Schlüssellänge unterscheiden, wobei die Schaltung (100) angepasst ist, so dass die erste Funktionsweise (220-1) der höchsten Frequenz oder dem längsten Schlüssel entspricht.
  6. Schaltung (100) gemäß Anspruch 4 oder 5, wobei die Schaltung (100) ein Kryptoprozessor ist und die Schaltung (100) angepasst ist, so dass die erste Funktionsweise (220-1) einem Rücksetzen des Kryptoprozessors oder einem Anhaltmodus des Kryptoprozessors entspricht, so dass ein Verarbeiten der Daten angehalten wird.
  7. Schaltung (100) gemäß einem der Ansprüche 4 bis 6, wobei die Schaltung (100) ein Kryptoprozessor ist und die unterschiedlichen Funktionsweisen (220) sich unterscheiden bezüglich zumindest entweder einem Kryptoalgorithmus, einer Schlüssellänge und einer Schlüsseländerungsfrequenz.
  8. Schaltung (100) gemäß einem der Ansprüche 4 bis 7, wobei die Schaltung (100) angepasst ist, so dass die unterschiedlichen Funktionsweisen (220) unterschiedliche Korrelationen von Leistungsverbrauch und verarbeiteten Daten umfassen, und so dass die erste Funktionsweise (220-1) den niedrigsten Korrelationspegel umfasst.
  9. Schaltung (100) gemäß einem der Ansprüche 4 bis 8, wobei die Schaltung (100) angepasst ist, so dass die unterschiedlichen Funktionsweisen (220) unterschiedliche Bandbreiten von potentiellen Leistungsaufnahmen umfassen.
  10. Schaltung (100) gemäß einem der Ansprüche 4 bis 9, wobei die Schaltung (100) einen Echte-Zufallszahlengenerator und einen Pseudozufallszahlengenerator umfasst, wobei die Schaltung (100) angepasst ist, so dass der Echte-Zufallszahlengenerator verwendet wird zum Initialisieren des Pseudozufallszahlengenerators, und wobei die Schaltung (100) angepasst ist, so dass die unterschiedlichen Funktionsweisen (220) unterschiedlichen Frequenzen der Initialisierung des Pseudozufallszahlengenerators entsprechen.
  11. Schaltung (100) gemäß einem der Ansprüche 1 bis 10, bei der die Speicherstelle (110) ein Register ist.
  12. Schaltung (100) gemäß Anspruch 11, bei der das Register ein Steuerregister oder ein Spezialfunktionsregister ist.
  13. Schaltung (100) gemäß einem der Ansprüche 1 bis 12, wobei die Schaltung (100) eine integrierte Schaltung ist.
  14. Schaltung (100) gemäß einem der Ansprüche 1 bis 13, wobei die Schaltung (100) in einem Prozessor, Kryptoprozessor oder einer anwendungsspezifischen integrierten Schaltung enthalten ist.
  15. Integrierte Schaltung, die folgende Merkmale umfasst: ein Register, das angepasst ist, um eine erste Anzahl von Zuständen und eine zweite Anzahl von Zuständen zu speichern, wobei die erste Anzahl zumindest 3 ist und die zweite Anzahl zumindest 1 ist; wobei die integrierte Schaltung angepasst ist, um zu einer ausgewählten Funktionsweise einer Mehrzahl von Funktionsweisen (220) zu schalten, abhängig von einem Zustand, der in dem Register gespeichert ist; wobei jeder Zustand der ersten Anzahl von Zuständen genau einer Funktionsweise der Mehrzahl von Funktionsweisen (220) entspricht; wobei eine ausgewählte Funktionsweise eine Funktionsweise ist, die dem Zustand entspricht, der in dem Register gespeichert ist, wenn der Zustand, der in dem Register gespeichert ist, einer der ersten Anzahl von Zuständen ist; wobei die ausgewählte Funktionsweise eine vorbestimmte Funktionsweise der Mehrzahl von Funktionsweisen (220) ist, wenn der Zustand einem Zustand der zweiten Anzahl von Zuständen entspricht; und wobei die vorbestimmte Funktionsweise einen Sicherheitspegel oder Widerstandspegel bezüglich eines Angriffs auf die integrierte Schaltung umfasst, der gleich oder höher ist als die jeweiligen Sicherheits- oder Widerstandspegel der anderen Funktionsweisen der Mehrzahl von Funktionsweisen (220), oder wobei die vorbestimmte Funktionsweise einer Funktionsweise entspricht, bei der die integrierte Schaltung zumindest teilweise angehalten wird.
  16. Integrierte Schaltung gemäß Anspruch 15, wobei die integrierte Schaltung angepasst ist, so dass die Zustände der ersten Anzahl von Zuständen Werten entsprechen, die nicht fortlaufend sind, wenn dieselben in einer aufsteigenden Reihenfolge angeordnet sind.
  17. Integrierte Schaltung gemäß Anspruch 15 oder 16, bei der das Register angepasst ist, um genau die erste Anzahl von Zuständen und die zweite Anzahl von Zuständen zu speichern.
  18. Integrierte Schaltung gemäß einem der Ansprüche 15 bis 17, wobei die zweite Anzahl gleich oder höher ist als zweimal die erste Anzahl.
  19. Integrierte Schaltung gemäß einem der Ansprüche 15 bis 18, wobei die integrierte Schaltung angepasst ist, um Daten zu verarbeiten oder zu einer externen Komponente zu übertragen, wobei die Daten während der Verarbeitung oder der Übertragung durch eine veränderbare Maske maskiert werden, oder basierend auf einem veränderbaren Schlüssel verborgen werden, wobei sich die Funktionsweisen (220) unterscheiden bezüglich zumindest entweder einer Frequenz von Maskenänderungen, Schlüsseländerungen, einer Maskenlänge und einer Schlüssellänge, und wobei die vorbestimmte Funktionsweise der Funktionsweise mit der höchsten Frequenz oder dem längsten Schlüssel oder der längsten Maske entspricht.
  20. Integrierte Schaltung gemäß einem der Ansprüche 15 bis 19, wobei die integrierte Schaltung einen Kryptoprozessor umfasst, der angepasst ist, so dass die vorbestimmte Funktionsweise das Zurücksetzen des Kryptoprozessors oder das Anhalten des Kryptoprozessors umfasst, so dass Datenverarbeitung angehalten wird.
  21. Integrierte Schaltung gemäß einem der Ansprüche 15 bis 20, wobei die integrierte Schaltung einen Kryptoprozessor umfasst und wobei der Kryptoprozessor angepasst ist, so dass die unterschiedlichen Funktionsweisen (220) sich unterscheiden bezüglich zumindest entweder einem Kryptoalgorithmus, einer Schlüssellänge oder einer Schlüsseländerungsfrequenz.
  22. Vorrichtung, die in zumindest einer ersten und einer zweiten Funktionsweise (220-1, 220-2) betrieben werden kann, die folgende Merkmale umfasst: eine Speichereinrichtung zum Speichern von zumindest einem ersten Zustand, einem zweiten Zustand und einem dritten Zustand; und eine Schalteinrichtung zum Schalten der Vorrichtung zu der ersten Funktionsweise (220-1), wenn die Speichereinrichtung den ersten oder den dritten Zustand erfasst, und zum Schalten der Vorrichtung zu der zweiten Funktionsweise (220-2), wenn die Speichereinrichtung den zweiten Zustand erfasst.
  23. Verfahren zum Schalten einer Schaltung in eine erste Funktionsweise (220-1) oder eine zweite Funktionsweise (220-2), das folgende Schritte umfasst: Bestimmen eines Zustands einer Speicherstelle (110), die angepasst ist, um zumindest einen ersten Zustand, einen zweiten Zustand und einen dritten Zustand zu speichern; Schalten der Schaltung zu der ersten Funktionsweise (220-1), wenn der bestimmte Zustand der erste Zustand oder der dritte Zustand ist; und Schalten der Schaltung zu der zweiten Funktionsweise (220-2), wenn der bestimmte Zustand der zweite Zustand ist.
  24. Verfahren zum Schalten einer integrierten Schaltung in eine ausgewählte Funktionsweise, das folgende Schritte umfasst: Bestimmen eines Zustands eines Registers, das angepasst ist, um eine erste Anzahl von Zuständen und eine zweite Anzahl von Zuständen zu speichern, wobei die erste Anzahl zumindest 3 beträgt und die zweite Anzahl zumindest 1 beträgt; Schalten der integrierten Schaltung zu der ausgewählten Funktionsweise einer Mehrzahl von Funktionsweisen (220), die dem bestimmten Zustand entsprechen, wenn der bestimmte Zustand ein Zustand einer ersten Anzahl von Zuständen ist; Schalten der integrierten Schaltung zu einer vorbestimmten Funktionsweise der Mehrzahl von Funktionsweisen (220), wenn der bestimmte Zustand ein Zustand der zweiten Anzahl von Zuständen ist, wobei die vorbestimmte Funktionsweise einen Sicherheitspegel oder Widerstandspegel bezüglich eines Angriffs auf die integrierte Schaltung umfasst, der gleich oder höher ist als die jeweiligen Sicherheits- oder Widerstandspegel der anderen Funktionsweisen der Mehrzahl von Funktionsweisen (220), oder wobei die vorbestimmte Funktionsweise einer Funktionsweise entspricht, bei der die integrierte Schaltung zumindest teilweise angehalten ist.
  25. Computerprogramm zum Durchführen, wenn dasselbe auf einem Prozessor läuft, eines Verfahrens zum Schalten einer Schaltung zu einer ersten Funktionsweise (220-1) oder einer zweiten Funktionsweise (220-2), das folgende Schritte umfasst: Bestimmen eines Zustands einer Speicherstelle (110), die angepasst ist, um zumindest einen ersten Zustand, einen zweiten Zustand und einen dritten Zustand zu speichern; Schalten der Schaltung zu der ersten Funktionsweise (220-1), wenn der bestimmte Zustand der erste Zustand oder der dritte Zustand ist; und Schalten der Schaltung zu einer zweiten Funktionsweise (220-2), wenn der bestimmte Zustand der zweite Zustand ist.
DE102009024179.5A 2008-06-16 2009-06-08 Schaltung mit einer Mehrzahl von Funktionsweisen Expired - Fee Related DE102009024179B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/139,711 2008-06-16
US12/139,711 US9087219B2 (en) 2008-06-16 2008-06-16 Circuit with a plurality of modes of operation

Publications (2)

Publication Number Publication Date
DE102009024179A1 true DE102009024179A1 (de) 2009-12-24
DE102009024179B4 DE102009024179B4 (de) 2016-05-12

Family

ID=41335168

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102009024179.5A Expired - Fee Related DE102009024179B4 (de) 2008-06-16 2009-06-08 Schaltung mit einer Mehrzahl von Funktionsweisen

Country Status (2)

Country Link
US (1) US9087219B2 (de)
DE (1) DE102009024179B4 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8352400B2 (en) 1991-12-23 2013-01-08 Hoffberg Steven M Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore
US7966078B2 (en) 1999-02-01 2011-06-21 Steven Hoffberg Network media appliance system and method
US7913289B2 (en) * 2005-05-23 2011-03-22 Broadcom Corporation Method and apparatus for security policy and enforcing mechanism for a set-top box security processor
US9652637B2 (en) 2005-05-23 2017-05-16 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for allowing no code download in a code download scheme
US7844996B2 (en) * 2005-05-23 2010-11-30 Broadcom Corporation Method and apparatus for constructing an access control matrix for a set-top box security processor
US9177176B2 (en) 2006-02-27 2015-11-03 Broadcom Corporation Method and system for secure system-on-a-chip architecture for multimedia data processing
US9904809B2 (en) 2006-02-27 2018-02-27 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for multi-level security initialization and configuration
US9489318B2 (en) 2006-06-19 2016-11-08 Broadcom Corporation Method and system for accessing protected memory
FR2964218B1 (fr) * 2010-08-25 2013-08-09 Oberthur Technologies Securisation d'un element de memorisation d'une donnee binaire, registre de controle et d'une carte a puce
US10210350B2 (en) 2015-08-10 2019-02-19 Samsung Electronics Co., Ltd. Electronic device against side channel attacks
US11175893B2 (en) * 2017-10-17 2021-11-16 Blue ArmorTechnologies, LLC Statistical object generator

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5301312A (en) * 1991-08-21 1994-04-05 International Business Machines Corporation Method and system for utilizing benign fault occurrence to measure interrupt-blocking times
US5201000A (en) * 1991-09-27 1993-04-06 International Business Machines Corporation Method for generating public and private key pairs without using a passphrase
WO2000016182A1 (en) * 1998-09-14 2000-03-23 Silicon Gaming-Nevada, Inc. Random number generator seeding method and apparatus
AU761317B2 (en) * 1999-01-29 2003-06-05 General Instrument Corporation Self-generation of certificates using a secure microprocessor in a device for transferring digital information
US7660986B1 (en) 1999-06-08 2010-02-09 General Instrument Corporation Secure control of security mode
US6419159B1 (en) * 1999-06-14 2002-07-16 Microsoft Corporation Integrated circuit device with power analysis protection circuitry
US6678825B1 (en) * 2000-03-31 2004-01-13 Intel Corporation Controlling access to multiple isolated memories in an isolated execution environment
US7519833B2 (en) * 2003-04-18 2009-04-14 Via Technologies, Inc. Microprocessor apparatus and method for enabling configurable data block size in a cryptographic engine
US7392399B2 (en) * 2003-05-05 2008-06-24 Sun Microsystems, Inc. Methods and systems for efficiently integrating a cryptographic co-processor
US7277999B1 (en) * 2004-08-12 2007-10-02 Vmware, Inc. Restricting memory access to protect data when sharing a common address space
US7607032B1 (en) * 2006-07-19 2009-10-20 Rockwell Collins, Inc. Power manageable scalable distributed multiple independent levels of security (MILS) computing platform
US20100142594A1 (en) 2006-12-04 2010-06-10 Andrew Thomas Yule Method of processing an rf signal
US10503662B2 (en) * 2012-06-29 2019-12-10 Intel Corporation Systems, apparatuses, and methods for implementing temporary escalated privilege

Also Published As

Publication number Publication date
US9087219B2 (en) 2015-07-21
DE102009024179B4 (de) 2016-05-12
US20090313461A1 (en) 2009-12-17

Similar Documents

Publication Publication Date Title
DE102009024179B4 (de) Schaltung mit einer Mehrzahl von Funktionsweisen
DE69938045T2 (de) Verwendung von unvorhersagbarer Information zur Leckminimierung von Chipkarten und anderen Kryptosystemen
DE60217260T2 (de) Datenverarbeitungs- und Verschlüsselungseinheit
DE102009041176B4 (de) Compiler-System und Verfahren zum Kompilieren eines Quellencodes zu einem verschlüsselten Maschinensprachcode
CN102063586B (zh) 用于检测故障攻击的方法和装置
EP0981115B1 (de) Verfahren zur Ausführung eines Verschlüsselungsprogramms zur Verschlüsselung von Daten in einem mikroprozessorgestützten, tragbaren Datenträger
DE102014112865A1 (de) Elektronische Schaltung und Verfahren zum Überwachen einer Datenverarbeitung
EP1496420B1 (de) Sicherheits-Datenverarbeitungseinheit sowie dazugehöriges Verfahren
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
DE102014214792A1 (de) Vorrichtung und Verfahren zum Zugreifen auf einen verschlüsselten Speicherabschnitt
EP1321888B1 (de) Verfahren zur Erhöhung der Sicherheit von Schaltkreisen gegen unbefugten Zugriff
DE102009007246A1 (de) Pseudozufallszahlengenerator und Verfahren zum Erzeugen einer Pseudozufallszahlenbitsequenz
EP1272984B1 (de) Tragbarer datenträger mit schutz vor seitenkanalattacken
DE112009000152T5 (de) Modulare Reduktion unter Verwendung einer speziellen Form des Modulo
DE102014117311B4 (de) Kommunikationsanordnung und Verfahren zum Generieren eines Kryptografieschlüssels
EP1355269B1 (de) Datenverarbeitungsvorrichtung und Verfahren zum Betreiben eines Datenverarbeitungsmoduls
DE10164419A1 (de) Verfahren und Anordnung zum Schutz von digitalen Schaltungsteilen
DE102013108073B4 (de) Datenverarbeitungsanordnung und verfahren zur datenverarbeitung
DE102015209120A1 (de) Recheneinrichtung und Betriebsverfahren hierfür
DE102004016342B4 (de) Verfahren und Vorrichtung zum Erfassen eines manipulativen Angriffs auf eine elektrische Schaltung
DE102022125835A1 (de) Datenverarbeitungsvorrichtung und verfahren zum erzeugen einer zufallszahl
DE10341593B4 (de) Prozessor und Verfahren zum Ausführen einer Sequenz von Befehlen
DE102004023902A1 (de) Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung
EP1750217B1 (de) Absicherung von Speichereinhalten eines Datenträgers
DE102022111925A1 (de) Halbleiterchipvorrichtung und verfahren zum prüfen der integrität eines speichers

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R082 Change of representative
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee