DE102013108073A1 - Datenverarbeitungsanordnung und verfahren zur datenverarbeitung - Google Patents

Datenverarbeitungsanordnung und verfahren zur datenverarbeitung Download PDF

Info

Publication number
DE102013108073A1
DE102013108073A1 DE102013108073.1A DE102013108073A DE102013108073A1 DE 102013108073 A1 DE102013108073 A1 DE 102013108073A1 DE 102013108073 A DE102013108073 A DE 102013108073A DE 102013108073 A1 DE102013108073 A1 DE 102013108073A1
Authority
DE
Germany
Prior art keywords
value
data
data processing
data output
memory element
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
DE102013108073.1A
Other languages
English (en)
Other versions
DE102013108073B4 (de
Inventor
Gerd Dirscherl
Berndt Gammel
Rainer Göttfert
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE102013108073.1A priority Critical patent/DE102013108073B4/de
Priority to US14/341,925 priority patent/US9652232B2/en
Publication of DE102013108073A1 publication Critical patent/DE102013108073A1/de
Application granted granted Critical
Publication of DE102013108073B4 publication Critical patent/DE102013108073B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • 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/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units

Abstract

Gemäß einer Ausführungsform wird eine Datenverarbeitungsanordnung mit einer ersten Datenverarbeitungskomponente und einer zweiten Datenverarbeitungskomponente bereitgestellt, die mittels einer Kommunikationsverbindung verbunden sind. Die zweite Datenverarbeitungskomponente weist eine Verarbeitungseinrichtung auf, die eingerichtet ist, zu überprüfen, ob ein aus dem zweiten Datenausgabespeicherelement gelesene Wert gemäß einer vorgegebenen Funktion auf einem aus dem ersten Datenausgabespeicherelement gelesenen Wert basiert und abhängig von dem Vergleichsergebnis den aus dem ersten Datenausgabespeicherelement gelesenen Wert zu verarbeiten.

Description

  • Ausführungsbeispiele betreffen allgemein Datenverarbeitungsanordnungen und Verfahren zur Datenverarbeitung.
  • Bei einem Datenverarbeitungssystem kann es erforderlich sein, dass der Datentransfer von einer Komponente des Datenverarbeitungssystems, z. B. von einer Peripherie-Einheit (PER), zu einer Prozessor-Einheit (z. B. der CPU) oder umgekehrt gegen physikalische Angriffe geschützt wird. Bei der Datenverarbeitungssystem zur Verarbeitung sicherheitskritischer Daten kann es sich z. B. um eine Chipkarte handeln, die zur sicheren Authentifizierung oder für sichere Bezahlvorgänge eingesetzt wird, oder um einen Sicherheitscontroller, ein sog. „Secure Element”, in einem Mobiltelefon, einem Personal Computer, einem Automobil, einer Gaming Konsole, oder einer Industriesteuerung. Dies wird im Folgenden einfach „Sicherheitscontroller” genannt.
  • Bei einem Schreib- oder Lesezugriff, z. B. von einer CPU auf eine Peripherie-Einheit, wird dabei typischerweise von der CPU eine Adresse auf einem Bus (z. B. einem dedizierten Adressbus) übertragen und damit ein gewünschtes Register (R) der Peripherie-Einheit angewählt. Dann werden typischerweise über einen Bus (z. B. einen dedizieren Datenbus) die zu übertragenden Daten von/zu der Peripherie-Einheit übertragen.
  • In einem manipulativen Angriff könnte ein Angreifer temporär Adressbits auf dem Adressbus ändern, so dass ein anderes Register in einer anderen Peripherie-Einheit adressiert wird. Dann würden die Daten von/zu dieser Peripherie-Einheit übertragen statt von/zur gewünschten Peripherie-Einheit. Zum anderen könnten durch den Angriff die übertragenen Daten verfälscht werden. In beiden Fällen kann dies die Sicherheit des Systems kompromittieren.
  • Gemäß einer Ausführungsform wird eine Datenverarbeitungsanordnung mit einer ersten Datenverarbeitungskomponente und einer zweiten Datenverarbeitungskomponente bereitgestellt, die mittels einer Kommunikationsverbindung verbunden sind. Die erste Datenverarbeitungskomponente weist ein erstes Datenausgabespeicherelement und ein zweites Datenausgabespeicherelement und eine Steuereinrichtung auf, die eingerichtet ist, in dem ersten Datenausgabespeicherelement einen auszugebenden Wert zu speichern und in dem zweiten Datenausgabespeicherelement einen gemäß einer vorgegebenen Funktion auf dem auszugebenden Wert basierenden Wert zu speichern, wobei die Steuereinrichtung eingerichtet ist, nach jedem Auslesen eines in dem ersten Datenausgabespeicherelement gespeicherten auszugebenden Werts durch die zweite Datenverarbeitungskomponente einen neuen auszugebenden Wert in dem ersten Datenausgabespeicherelement zu speichern. Die zweite Datenverarbeitungskomponente weist eine Leseeinrichtung, die eingerichtet ist, den in dem ersten Datenausgabespeicherelement gespeicherten Wert und den in dem zweiten Datenausgabespeicherelement gespeicherten Wert mittels der Kommunikationsverbindung auszulesen, und eine Verarbeitungseinrichtung auf, die eingerichtet ist, zu überprüfen, ob der aus dem zweiten Datenausgabespeicherelement gelesene Wert gemäß der vorgegebenen Funktion auf dem aus dem ersten Datenausgabespeicherelement gelesenen Wert basiert und abhängig davon, ob der aus dem zweiten Datenausgabespeicherelement gelesene Wert gemäß der vorgegebenen Funktion auf dem aus dem ersten Datenausgabespeicherelement gelesenen Wert basiert, den aus dem ersten Datenausgabespeicherelement gelesenen Wert zu verarbeiten.
  • Außerdem wird ein Verfahren zur Datenverarbeitung gemäß der oben beschriebenen Datenverarbeitungsanordnung bereitgestellt.
  • Die Figuren geben nicht die tatsächlichen Größenverhältnisse wieder sondern sollen dazu dienen, die Prinzipien der verschiedenen Ausführungsbeispiele zu illustrieren. Im Folgenden werden verschiedene Ausführungsbeispiele mit Bezug auf die folgenden Figuren beschrieben.
  • 1 zeigt eine Datenverarbeitungsanordnung, bei der eine Datenverarbeitungskomponente mittels eines Busses auf mehrere weitere Datenverarbeitungskomponenten zugreift.
  • 2 zeigt eine Datenverarbeitungsanordnung, bei der in einer Datenverarbeitungskomponente, die ausgelesen wird, für ein Ausgabespeicherelement ein weiteres Ausgabespeicherelement vorgesehen ist, das es der auslesenden Komponente ermöglicht, sicherheitskritische Vorgänge zu detektieren.
  • 3 zeigt ein Ablaufdiagramm das ein Verfahren zur Datenverarbeitung veranschaulicht.
  • 4 zeigt eine Datenverarbeitungsanordnung gemäß einem Ausführungsbeispiel in größeren Detail.
  • Die folgende detaillierte Beschreibung bezieht sich auf die beiliegenden Figuren, die Details und Ausführungsbeispiele zeigen. Diese Ausführungsbeispiele sind so detailliert beschrieben, dass der Fachmann die Erfindung ausführen kann. Andere Ausführungsformen sind auch möglich und die Ausführungsbeispiele können in struktureller, logischer und elektrischer Hinsicht geändert werden, ohne vom Gegenstand der Erfindung abzuweichen. Die verschiedenen Ausführungsbeispiele schließen sich nicht notwendig gegenseitig aus, sondern es können verschiedene Ausführungsformen miteinander kombiniert werden, so dass neue Ausführungsformen entstehen.
  • 1 zeigt eine Datenverarbeitungsanordnung 100 gemäß einer Ausführungsform.
  • Die Datenverarbeitungsanordnung 100 weist eine oder mehrere erste Datenverarbeitungskomponenten 101, beispielsweise Peripherie-Einheiten, und eine zweite Datenverarbeitungskomponente 102 (z. B. einen Prozessor, beispielsweise eine CPU) auf. Die ersten Datenverarbeitungskomponenten 101 sind mittels eines Adressbusses 103 und mittels eines Datenbusses mit der zweiten Datenverarbeitungskomponente 102 verbunden. Durch übertragen einer Adresse mittels des Adressbusses 103 kann die zweite Datenverarbeitungskomponente 102 eine erste Datenverarbeitungskomponente 101 oder ein Register einer ersten Datenverarbeitungskomponente 101 adressieren und mittels des Datenbusses 104 an die adressierte Datenverarbeitungskomponente bzw. das adressierte Register zu übertragende Daten übertragen oder aus der adressierte Datenverarbeitungskomponente bzw. aus dem adressierten Register zu übertragende Daten auslesen.
  • Der Datenbus 104 und der Adressbus 103 können auch identisch sein. Bei der Auswahl einer ersten Datenverarbeitungskomponente 101 oder eines Registers einer ersten Datenverarbeitungskomponente 101 kann statt eines Adressbusses auch ein dediziertes Select-Signal benutzt werden, das von einem Adressdekoder in der CPU aktiviert wird (dies entspricht einer sogenannten One-Hot-Kodierung).
  • Zum Schutz der Datenverarbeitungsanordnung 100 gegen Angriffe, bei denen Adressbits auf dem Adressbus 103 geändert werden, kann Informationsredundanz eingeführt werden. Beispielsweise kann mit den zu übertragenden Daten auf dem Datenbus 104 eine Signatur in Form eines fehlererkennenden Codes übertragen werden (wobei unter Code hier auch eine einfache Verdopplung der zu übertragenden Daten verstanden werden kann). Dies ist jedoch aufwändig, da dafür eine erhöhte effektive Wortbreite der Datentransfers erforderlich ist (d. h. ein breiterer Datenbus).
  • Ferner kann auch zeitliche Redundanz zum Schutz gegen Angriffe genutzt werden. Beispielsweise liest dabei im Falle eines lesenden Zugriffs die zweite Datenverarbeitungskomponente 102, z. B. eine CPU, zweimal (oder mehrfach) hintereinander Werte aus einer zweiten ersten Datenverarbeitungskomponente 101, z. B. einer Peripherie-Einheit und überprüft die gelesenen Werte auf Identität (Prüflesen). Beim schreibenden Zugriff kann die CPU z. B. zweimal schreiben (Prüfschreiben) oder Schreiben und dann Zurücklesen, um zu überprüfen ob der richtige Wert bei der Peripherie-Einheit angekommen ist und geschrieben wurde. Wenn davon ausgegangen wird, dass der Angreifer nur temporäre Fehler erzeugt und nicht in der Lage ist, den gleichen Fehler beim Prüflesen oder Prüfschreiben einzufügen, so kann der Angriff mit hoher Sicherheit erkannt werden. Wenn der Angreifer allerdings permanente Fehler erzeugen kann, so sind zusätzliche Maßnahmen nötig, wobei unter einem „permanenten Fehler” verstanden wird, dass der Angreifer den gleichen Fehler über mehrere Datentransfers einprägt.
  • Gegenüber der Nutzung von Informationsredundanz ermöglicht die Nutzung von zeitlicher Redundanz geringere Kosten der Hardware und Skalierbarkeit und Flexibilität in der Software (z. B. mehrfaches Lesen, variable Zeitpunkte des Lesens) Allerdings kann die zeitliche Redundanz nicht in Form eines Prüflesens aus einem Register, das zuvor gelesen oder beschrieben wurde, für ein Register einer Peripherie-Einheit verwendet werden, bei der das Lesen eines Registers eine Zustandsänderung auslöst. Beispielsweise würde bei einem Zufallszahlengenerator bei jedem Prüflesen eine neue Zufallszahl in R erscheinen, sofern das Auslesen eines Werts die Generierung des nächsten Werts anstößt und das Prüflesen würde fehlschlagen. Peripherie-Einheiten, oder allgemein Datenverarbeitungskomponenten, bei denen das Lesen aus einem Ausgaberegister bewirkt, das ein neuer Ausgabewert in dem Ausgaberegister gespeichert wird, werden im Folgenden auch als ZÄPER (Zustandsändernde Peripherieregister) bezeichnet.
  • Gemäß einer Ausführungsform wird eine Datenverarbeitungsanordnung bereitgestellt, bei der ein Schutz vor Angriffen eingesetzt wird, der auch für ein ZÄPER verwendet werden kann. Im Folgenden wird eine Datenverarbeitungsanordnung mit einer ersten Datenverarbeitungskomponente
  • 2 zeigt eine Datenverarbeitungsanordnung 200 gemäß einer Ausführungsform.
  • Die Datenverarbeitungsanordnung 200 weist eine erste Datenverarbeitungskomponente 201 und eine zweite Datenverarbeitungskomponente 202, die mittels einer Kommunikationsverbindung 203 verbunden sind, auf.
  • Die erste Datenverarbeitungskomponente 201 weist ein erstes Datenausgabespeicherelement 204 und ein zweites Datenausgabespeicherelement 205 und eine Steuereinrichtung 206 auf, die eingerichtet ist, in dem ersten Datenausgabespeicherelement 204 einen auszugebenden Wert zu speichern und in dem zweiten Datenausgabespeicherelement 205 einen gemäß einer vorgegebenen Funktion auf dem auszugebenden Wert basierenden Wert zu speichern, wobei die Steuereinrichtung 206 eingerichtet ist, nach jedem Auslesen eines in dem ersten Datenausgabespeicherelement 204 gespeicherten auszugebenden Werts durch die zweite Datenverarbeitungskomponente 202 einen neuen auszugebenden Wert in dem ersten Datenausgabespeicherelement 204 zu speichern.
  • Die zweite Datenverarbeitungskomponente 205 weist eine Leseeinrichtung 207 auf, die eingerichtet ist, den in dem ersten Datenausgabespeicherelement 204 gespeicherten Wert und den in dem zweiten Datenausgabespeicherelement 205 gespeicherten Wert mittels der Kommunikationsverbindung 203 auszulesen.
  • Ferner weist die zweite Datenverarbeitungskomponente 205 eine Verarbeitungseinrichtung 208 auf, die eingerichtet ist, zu überprüfen, ob der aus dem zweiten Datenausgabespeicherelement 205 gelesene Wert gemäß der vorgegebenen Funktion auf dem aus dem ersten Datenausgabespeicherelement gelesenen Wert basiert und abhängig davon, ob der aus dem zweiten Datenausgabespeicherelement gelesene Wert gemäß der vorgegebenen Funktion auf dem aus dem ersten Datenausgabespeicherelement gelesenen Wert basiert, den aus dem ersten Datenausgabespeicherelement gelesenen Wert zu verarbeiten.
  • In anderen Worten ist gemäß einer Ausführungsform in einem ZÄPER zusätzlich zu einem ersten Ausgabelement (z. B. einem ersten Ausgabeelement) ein zweites Ausgabeelement (z. B. ein zweites Ausgaberegister) vorgesehen, das einen auf dem auszugebenden und in dem ersten Ausgabeelement gespeicherten Wert basierenden Wert speichert und die lesende Komponente liest den Wert aus dem ersten Ausgabeelement und den Wert aus dem zweiten Ausgabeelement und stellt anhand der beiden Werte fest, ob der aus dem ersten Ausgabelement gespeicherte Wert verarbeitet werden soll. Stellt die lesende Komponente beispielsweise fest, dass der aus dem zweiten Ausgabeelement gelesene Wert nicht in der vorgesehenen Weise auf dem aus dem ersten Ausgabeelement gelesenen Wert basiert, nimmt sie an, dass ein unerwünschter Vorgang (beispielsweise ein Angriff oder ein unberechtigter oder unerwünschter Zugriff aufgetreten ist) und verwirft beispielsweise den aus dem ersten Ausgabelement gelesenen Wert.
  • Die Funktion ist beispielsweise die Identität.
  • Gemäß einer Ausführungsform ist die Funktion eine umkehrbare Transformation.
  • Die Funktion kann auch eine Hash-Funktion sein.
  • Die vorgegebene Funktion hängt beispielsweise von einer Nonce ab. Beispielsweise ändert die Steuereinrichtung die Nonce regelmäßig, z. B. nach jedem Erzeugen eines Werts, der in dem zweiten Datenausgabespeicherelement gespeichert wird.
  • Die Verarbeitungseinrichtung ist beispielsweise eingerichtet, den aus dem ersten Datenausgabespeicherelement gelesenen Wert zu verwerfen, falls der aus dem zweiten Datenausgabespeicherelement gelesene Wert nicht gemäß der vorgegebenen Funktion auf dem aus dem ersten Datenausgabespeicherelement gelesenen Wert basiert.
  • Die Leseeinrichtung ist beispielsweise eingerichtet, einen neuen Wert aus dem ersten Datenverarbeitungselement auszulesen, falls der aus dem zweiten Datenausgabespeicherelement gelesene Wert nicht gemäß der vorgegebenen Funktion auf dem aus dem ersten Datenausgabespeicherelement gelesenen Wert basiert.
  • Gemäß einer Ausführungsform ist die Steuereinrichtung eingerichtet, nach dem Auslesen des in dem zweiten Datenausgabespeicherelements gespeicherten Werts einen vorgegebenen Signalwert in dem zweiten Datenausgabespeicherelement zu speichern. Der vorgegebene Signalwert ist beispielsweise unabhängig von dem auszugebenden Wert (kann aber beispielsweise von einer Nonce abhängen).
  • Gemäß einer Ausführungsform ist die Steuereinrichtung eingerichtet, nach dem Auslesen des in dem zweiten Datenausgabespeicherelements gespeicherten Werts einen vorgegebenen Signalwert in einem weiteren Datenausgabespeicherelement zu speichern, wobei die Leseeinrichtung eingerichtet ist, den in dem weiteren Datenausgabespeicherelement gespeicherten Wert auszulesen und wobei die Verarbeitungseinrichtung eingerichtet ist, zu überprüfen, ob in dem weiteren Datenausgabespeicherelement der vorgegebene Signalwert gespeichert ist und abhängig davon, ob in dem weiteren Datenausgabespeicherelement der vorgegebene Signalwert gespeichert ist, den aus dem ersten Datenausgabespeicherelement gelesenen Wert zu verarbeiten. Der vorgegebene Signalwert ist beispielsweise unabhängig von dem auszugebenden Wert (kann aber beispielsweise von einer Nonce abhängen).
  • Die Verarbeitungseinrichtung ist beispielsweise eingerichtet, den aus dem ersten Datenausgabespeicherelement gelesenen Wert zu verwerfen, falls in dem weiteren Datenausgabespeicherelement der vorgegebene Signalwert gespeichert ist.
  • Die erste Datenverarbeitungskomponente ist beispielsweise eine CPU.
  • Die zweite Datenverarbeitungskomponente ist beispielsweise eine Peripherie-Einheit.
  • Gemäß einer Ausführungsform ist die zweite Datenverarbeitungskomponente ein Zufallszahlengenerator.
  • Die Datenverarbeitungsanordnung ist beispielsweise in einem Sicherheitscontroller angeordnet, beispielsweise auf einer Chipkarte, z. B. in einem Chipkarten-Modul der Chipkarte, die zur sicheren Authentifizierung oder für sichere Bezahlvorgänge eingesetzt wird, oder in einen Sicherheitscontroller, einem sog. „Secure Element”, in einem Mobiltelefon, einem Personal Computer, einem Automobil, einer Gaming Konsole, oder einer Industriesteuerung
  • Die Datenausgabespeicherelemente sind beispielsweise Ausgaberegister.
  • Die Kommunikationsverbindung ist beispielsweise ein (Computer-)Bus.
  • Beispielsweise weist die Kommunikationsverbindung einen Adressbus und einen Datenbus auf.
  • Die Komponten der Datenverarbeitungsanordnung 200 (wie beispielsweise die Steuereinrichtung und die Verarbeitungseinrichtung) sind beispielsweise durch einen oder mehrere Schaltkreise implementiert. In einer Ausführungsform ist ein ”Schaltkreis” als jegliche Einheit zu verstehen, die eine Logik implementiert, und die sowohl Hardware, Software, Firmware oder eine Kombination daraus sein kann. Somit kann ein ”Schaltkreis” in einer Ausführungsform ein hart-verdrahteter Logik-Schaltkreis oder ein programmierbarer Logik-Schaltkreis sein, wie beispielsweise ein programmierbarer Prozessor. Unter einem ”Schaltkreis” kann auch ein Prozessor zu verstehen sein, der Software ausführt, zu verstehen sein, z. B. jegliche Art von Computer-Programm. Unter einem ”Schaltkreis” kann in einer Ausführungsform jegliche Art der Implementierung der im Weiteren beschriebenen Funktionen zu verstehen sein.
  • Die Datenverarbeitungsanordnung 200 führt beispielsweise ein Verfahren auf, wie es in 3 dargestellt ist.
  • 3 zeigt ein Ablaufdiagramm 300 gemäß einer Ausführungsform.
  • Das Ablaufdiagramm 300 veranschaulicht ein Verfahren zur Datenverarbeitung.
  • In 301 wird ein auszugebender Wert in einem ersten Datenausgabespeicherelement einer ersten Datenverarbeitungskomponente gespeichert.
  • In 302 wird in einem zweiten Datenausgabespeicherelement der ersten Datenverarbeitungskomponente ein gemäß einer vorgegebenen Funktion auf dem auszugebenden Wert basierender Wert gespeichert.
  • In 303 liest eine zweite Datenverarbeitungskomponente den in dem ersten Datenausgabespeicherelement gespeicherten Wert und den in dem zweiten Datenausgabespeicherelement gespeicherten Wert.
  • Die erste Datenverarbeitungsanordnung speichert nach jedem Auslesen eines in dem ersten Datenausgabespeicherelement gespeicherten auszugebenden Werts durch die zweite Datenverarbeitungskomponente einen neuen auszugebenden Wert in dem ersten Datenausgabespeicherelement.
  • In 304 wird überprüft, ob der aus dem zweiten Datenausgabespeicherelement gelesene Wert gemäß der vorgegebenen Funktion auf dem aus dem ersten Datenausgabespeicherelement gelesenen Wert basiert.
  • In 305 wird der aus dem ersten Datenausgabespeicherelement gelesene Wert abhängig davon verarbeitet, ob der aus dem zweiten Datenausgabespeicherelement gelesene Wert gemäß der vorgegebenen Funktion auf dem aus dem ersten Datenausgabespeicherelement gelesenen Wert basiert.
  • Ausführungsbeispiele, die im Zusammenhang mit der Datenverarbeitungsanordnung 200 beschrieben sind, gelten analog für das Verfahren zur Datenverarbeitung und umgekehrt.
  • Im Folgenden wird ein Ausführungsbeispiel in höherem Detail beschrieben.
  • 4 zeigt eine Datenverarbeitungsanordnung 400 gemäß einer Ausführungsform.
  • Die Datenverarbeitungsanordnung 400 weist mehrere erste Datenverarbeitungskomponenten 401, 402 auf, in diesem Fall eine erste Peripherie-Einheit 401 und eine zweite Peripherie-Einheit 402. Ferner weist die Datenverarbeitungsanordnung 400 eine zweite Datenverarbeitungskomponente 403, in diesem Beispiel eine CPU 403, auf. Die ersten Datenverarbeitungskomponenten 401, 402 und die zweite Datenverarbeitungskomponente 403 sind wie oben mit Bezug auf 1 beschrieben mittels eines Adressbusses 404 und mittels eines Datenbusses 405 gekoppelt, wobei die erste Peripherie-Einheit 401 ein erstes Ausgaberegister 406 (R1) und ein zweites Ausgaberegister 407 (R1*) aufweist, auf die individuell mittels des Adressbusses 404 und des Datenbusses 405 zugegriffen werden kann, d. h. die beide mittels des Adressbusses adressiert werden können und aus denen jeweils der dort gespeicherte Wert mittels des Datenbusses 405 ausgelesen werden kann.
  • Es wird in diesem Beispiel angenommen, dass die erste Peripherie-Einheit 401 ein ZÄPER ist. Die zweite Peripherie-Einheit 402 ist in diesem Beispiel kein ZÄPER und sie weist ein Ausgaberegister 408 auf, in dem von einer Prozessoreinheit 409 der zweiten Peripherie-Einheit 402 ein Ausgabewert gespeichert werden kann.
  • Für jedes ZÄPER, in diesem Beispiel die erste Peripherie-Einheit 401, ist zusätzlich dem Ausgaberegister 406 ein Prüfregister, in diesem Fall das zweite Ausgaberegister 407 vorgesehen.
  • Gemäß einer Ausführungsform speichert eine Prozessoreinheit 410 der ersten Peripherie-Einheit 401 in diesem den gleichen Wert wie in dem ersten Ausgaberegister 406.
  • Die CPU 403 liest beispielsweise den in dem ersten Ausgaberegister 406 gespeicherten Wert, liest dann den in dem zweiten Ausgaberegister 407 gespeicherten Wert und vergleicht die ausgelesenen Werte, um festzustellen, ob das erste Ausgaberegister 406 korrekt ausgelesen wurde. Die erste Peripherie-Einheit 401 kann nach dem Lesen des ersten Ausgaberegisters 406 bereits eine Zustandsänderung des ersten Ausgaberegisters 406 durchführen, d. h. einen neuen Ausgabewert darin speichern. In diesem Fall ist der in dem zweiten Ausgaberegister 407 gespeicherte Wert gleich dem zuletzt aus dem ersten Ausgaberegister 406 gelesene Wert.
  • Zur Gewährleistung der Sicherheit in dem Angriffsmodell mit permanenten Fehlern kann der Wert, bevor er in dem zweiten Ausgaberegister 407 gespeichert wird, von einem Transformationselement gemäß einer Transformation T verändert werden, so dass der Wert, der in dem zweiten Ausgaberegister 407 gespeichert wird, eine Funktion des Werts, der in dem ersten Ausgaberegister 406 gespeichert wird, ist.
  • Die Transformation ist beispielsweise von einer Form, so dass die CPU 403 die Transformation leicht rückgängig machen kann (d. h. leicht die entsprechende Umkehrtransformation durchführen kann), um durch Vergleich des durch die Umkehrtransformation erhaltenden Werts mit dem aus dem ersten Ausgabeelement 406 gelesenen Werts feststellen zu können, ob der Wert aus dem ersten Ausgaberegister korrekt ausgelesen wurde. Alternativ kann statt einer leicht umkehrbaren Transformation eine nicht-umkehrbare Funktion verwendet werden, z. B. eine Hash-Funktion oder eine kryptographische Einweg-Hash-Funktion H und die CPU 403 vergleicht den aus dem zweiten Ausgaberegister 407 gelesenen Wert mit dem aus dem ersten Ausgaberegister ausgelesen Wert, auf den sie die Funktion H angewendet hat.
  • Gemäß einer Ausführungsform wird der folgende zusätzliche Mechanismus für ein praktisches Prozessorsystem verwendet. Dieser ermöglicht die Unterstützung von asynchroner Unterbrechbarkeit von Programmen (Tasks) bei Interrupts und Multitasking. In dieser Ausführungsform wird berücksichtigt, dass ein erstes Programm (TASK1) an jeder Stelle durch ein zweites Programm kurzzeitig unterbrochen werden kann, um dann wieder an der gleichen Stelle fortgesetzt zu werden. Es wird angenommen, dass das zweite Programm (TASK2) auch Zugriff auf die erste Peripherie-Einheit 401, d. h. das ZÄPER, hat (ansonsten kann auf den zusätzlichen Mechanismus verzichtet werden).
  • Beispielsweise ist die erste Peripherie-Einheit 401 ein Zufallszahlengenerator. Bei jedem Lesen des ersten Ausgaberegisters 406 wird eine neue Zufallszahl ausgegeben, d. h. in dem ersten Ausgaberegister 406 gespeichert. Wird das erste Programm zwischen dem Lesen des ersten Ausgaberegisters 406 und des zweiten Ausgaberegisters 407 von denn zweiten Programm unterbrochen, so könnte das zweite Programm aus dem zweiten Ausgaberegister 407 die Zufallszahl, die das erste Programm ausgelesen hat, lesen, ohne dass das erste Programm dies bemerken würde, sobald es fortgesetzt wird. Je nachdem, für was die Zufallszahl verwendet wird, kann dies eine Sicherheitslücke darstellen.
  • Um dies zu vermeiden, wird in dieser Ausführungsform der folgende zusätzliche Mechanismus verwendet: Die Information, dass das zweite Ausgaberegister gelesen wurde, wird von der ersten Peripherie-Einheit 401 an die CPU 403 signalisiert. Das kann dadurch geschehen, dass z. B. das zweite Ausgaberegister nach dem Lesen von der ersten Peripherie-Einheit 401 immer auf einen speziellen Signalisierungswert (SIG) gesetzt wird. Alternativ kann der Signalisierungswert in einem anderen Register R1+ von der ersten Peripherie-Einheit 401 angezeigt werden. Wenn das in dem obigen Beispiel das zweite Programm die Kontrolle an das erste Programm zurückgeben hat, kann das erste Programm nun sehen, oh sein Prüfwert, d. h. der Inhalt des zweiten Ausgaberegisters 407, von einem Unterbrecher ausgelesen wurde. Im Beispiel des Zufallszahlengenerators könnte nun das erste Programm eine neue Zufallszahl anfordern, indem es noch einmal das erste Ausgaberegister 406 liest (und danach auch wieder den Prüfwert aus dem zweiten Ausgaberegster 407). Bei dieser Vorgehensweise hat das zweite Programm durch lesen das zweiten Ausgaberegisters 407 keine Information gewonnen, welche Zufallszahl das erste Programm benutzt. Das Ausspionieren eines Tasks durch einen anderen Task bei der ersten Peripherie-Einheit als geteilte Ressource der beiden Tasks wird dadurch vermieden.
  • Ein weiteres Beispiel, in dem der oben beschriebene zusätzliche Mechanismus nicht genutzt wird, um Integrität und Vertraulichkeit der Daten zu schützen (wie im obigen Beispiel, in dem die erste Peripherie-Einheit 401 ein Zufallszahlengenerator ist), sondern nur um einen Integritätsschutz zu erreichen, wird im Folgenden beschrieben.
  • Es wird in diesem Beispiel angenommen, dass die erste Peripherie-Einheit 401 ein Speicher ist, der Daten in der Form eines Stapels (Stacks) speichert und dass das Lesen des ersten Ausgaberegisters 406 ein Lesen des Stapels darstellt. Lesen des Ausgaberegisters 406 holt und entfernt somit das oberste Element des Stacks, sodass beim nächsten Lesen das nächste Element des Stacks gelesen wird. Zum einen wird durch die Redundanz der Information in dem ersten Ausgaberegister 406 und dem zweiten Ausgaberegister 407 die Integrität des jeweiligen Datenwertes sichergestellt (z. B. gegen physikalische Angriffe) und zum anderen wird die Integrität der Zugriffe sichergestellt: Falls nämlich ein nichtberechtigtes zweites Programm während der Ausführung eines ersten Programms, das mit dem Stapel arbeitet von dem ersten Ausgaberegister 406 oder dem zweiten Ausgaberegster 407 liest (z. B. im Rahmen eines Interrupts), so kann das erste Programm dies erkennen, da nun der aus dem zweiten Ausgaberegister 406 gelesene Prüfwert nicht zu dem aus dem ersten Ausgaberegister 406 gelesenen Datenwert passt (beispielsweise nicht mit diesem identisch ist oder ihm gemäß der Transformation oder Hash-Funktion nicht entspricht) oder da das andere Register den Signalisierungswert enthält.
  • Gemäß einer Ausführungsform wird zur Verstärkung des Schutzes ein eindeutiger Sequenzidentifizierer (engl: Nonce, N) verwendet, dergestalt, dass der Prüfwert, der im zweiten Ausgaberegister 407 für einen mittels des ersten Ausgaberegisters 406 auszugebenden Werts berechnet wird in Abhängigkeit von dem auszugebenen Wert und dem Sequenzidentifizierer N. Beispielsweise wird bei jedem neuen auszugebenden Wert ein noch nicht vorher verwendeter Sequenzidentifizierer benutzt (z. B. indem einfach ein Zähler erhöht wird (N, N + 1, N + 2, ...) und als Sequenzidentifizierer verwendet wird).
  • In einer Ausführungsform, in der ein Sequenzidentifizierer auf diese Weise verwendet wird, kann nach dem Auslesens des Prüfwerts aus dem zweiten Ausgaberegister 407, anstatt es auf einen konstanten Signalwert zu setzen, das zweite Ausgaberegister 407 auf einen Signalwert gesetzt werden, der von dem Sequenzidentifizierer abhängt. Daran kann ein erstes Programm erkennen, ob durch ein zweites Programm ein Zugriff erfolgt ist, der die Integrität des Zustands verändert (oder kompromitiert) hat.
  • Im Folgenden wird in Form eines Pseudocodes ein Beispiel für einen Ablaufbeschrieben, gemäß dem die CPU 403 einen Wert aus der ersten Peripherie-Einheit 401 ausliest:
    Load A1, PER_R1 [Lies Wert R1 nach CPU Register A1]
    Load A2, PER_R1* [Lies Prüfwert R1* nach CPU Register A2]
    Move A3, T(A1) [Berechne Transformation T, Speichere
    Resultat in A3]
    Cmp A2, A3 [Prüfe ob A2 = T(A1)]
    JmpEqual Proc1 [Wenn ja, gehe zu Proc1, verarbeite Wert
    R1]
    Cmp A2, SIG [Wenn nein, prüfe ob R1* der Signalwert ist]
    JmpEqual Proc2 [Wenn ja, gehe zu Proc2, Wert
    weggenommen]
    Alarm: [Wenn nein, gehe von Angriff aus]
    ...
    Proc1: [Prüfwert R1* passt, verarbeite Wert R1]
    ...
    Proc2: [Wert R1* wurde in von anderer Task
    geholt]
    ...
  • Zusammenfassend sind gemäß verschiedenen Ausführungsformen ein oder mehrere der folgenden Funktionalitäten vorgesehen:
    • a) Für jedes Register einer Mehrzahl von Registern Rk, k = 1, 2, 3, ... einer Peripherie-Einheit ist ein Prüfregister Rk* vorgesehen.
    • b) Der Wert, den die Peripherie-Einheit in Rk* speichert, wird berechnet durch eine Funktion Rk* = T(Rk) oder Rk* = T(Rk, N) wobei mit Rk* und Rk jeweils der jeweilige Registerinhalt gemeint ist. T ist eine Transformation (umkehrbar) oder eine Einwegfunktion (Hash). Optional geht in die Funktion ein eindeutiger Identifizierer N (None) ein.
    • c) Das Prüfregister Rk* wird nach dem Lesen (oder Schreiben) automatisch auf einen konstanten Signalwert SIG zurückgesetzt.
    • d) Wenn gemäß b) eine Nonce N verwendet wird, wird das Prüfregister Rk*, anstatt wie in c) auf einen konstanten Signalwert auf einen variablen Signalwert SIGN = f(N) gesetzt, der von der Nonce abhängt.
    • e) Alternativ wird der Signalwert SIG in einem anderen Register als Rk* gesetzt, und darüber hinaus optional das Prüfregister Rk* zurückgesetzt (d. h. sein Inhalt gelöscht).
    • f) Die CPU (d. h. allgemein die Komponente, die die Registerinhalte ausliest) prüft die Registerinhalte von Rk, Rk* (ggf. unter Verwendung des Signalwerts) gemäß dem obigen Pseudocode.
  • Die Überprüfung, ob das Prüfregister (oder ggf. das andere dafür verwendete Register) den Signalwert enthält, wird Beispielsweise nur im Multitasking-Betrieb und falls die Peripherie-Einheit mehreren Tasks gleichzeitig zur Verfügung steht (d. h. eine gemeinsam genutzte Peripherie-Einheit (shared peripheral) ist) durchgeführt.
  • Die Transformation T kann umkehrbar sein (z. B. Bitkomplement), falls das Rückrechnen der Daten des Registerinhalts von Rk* aus Rk bei Erkennung des Signalwerts unkritisch ist (z. B. bei Zufallszahlen wird das Datum verworfen und ein neues Datum generiert, so dass es unkritisch ist, falls ein anderer Task das ursprüngliche Datum ermitteln kann) Bei einer nichtumkehrbaren Transformation kann das Datum nicht direkt berechnet werden, allerdings könnte das wiederholte Auftreten des gleichen Datums erkannt werden (nämlich wenn der gleiche Wert Rk* wiederholt auftritt).
  • Obwohl die Erfindung vor allem unter Bezugnahme auf bestimmte Ausführungsformen gezeigt und beschrieben wurde, sollte es von denjenigen, die mit dem Fachgebiet vertraut sind, verstanden werden, dass zahlreiche Änderungen bezüglich Ausgestaltung und Details daran vorgenommen werden können, ohne vom Wesen und Bereich der Erfindung, wie er durch die nachfolgenden Ansprüche definiert wird, abzuweichen. Der Bereich der Erfindung wird daher durch die angefügten Ansprüche bestimmt, und es ist beabsichtigt, dass sämtliche Änderungen, welche unter den Wortsinn oder den Äquivalenzbereich der Ansprüche fallen, umfasst werden.

Claims (20)

  1. Datenverarbeitungsanordnung aufweisend: eine erste Datenverarbeitungskomponente und eine zweite Datenverarbeitungskomponente, die mittels einer Kommunikationsverbindung verbunden sind; wobei die erste Datenverarbeitungskomponente aufweist: ein erstes Datenausgabespeicherelement und ein zweites Datenausgabespeicherelement; und eine Steuereinrichtung, die eingerichtet ist, in dem ersten Datenausgabespeicherelement einen auszugebenden Wert zu speichern und in dem zweiten Datenausgabespeicherelement einen gemäß einer vorgegebenen Funktion auf dem auszugebenden Wert basierenden Wert zu speichern, wobei die Steuereinrichtung eingerichtet ist, nach jedem Auslesen eines in dem ersten Datenausgabespeicherelement gespeicherten auszugebenden Werts durch die zweite Datenverarbeitungskomponente einen neuen auszugebenden Wert in dem ersten Datenausgabespeicherelement zu speichern; und wobei die zweite Datenverarbeitungskomponente aufweist: eine Leseeinrichtung, die eingerichtet ist, den in dem ersten Datenausgabespeicherelement gespeicherten Wert und den in dem zweiten Datenausgabespeicherelement gespeicherten Wert mittels der Kommunikationsverbindung auszulesen; eine Verarbeitungseinrichtung, die eingerichtet ist, zu überprüfen, ob der aus dem zweiten Datenausgabespeicherelement gelesene Wert gemäß der vorgegebenen Funktion auf dem aus dem ersten Datenausgabespeicherelement gelesenen Wert basiert und abhängig davon, ob der aus dem zweiten Datenausgabespeicherelement gelesene Wert gemäß der vorgegebenen Funktion auf dem aus dem ersten Datenausgabespeicherelement gelesenen Wert basiert, den aus dem ersten Datenausgabespeicherelement gelesenen Wert zu verarbeiten.
  2. Datenverarbeitungsanordnung gemäß Anspruch 1, wobei die Funktion die Identität ist.
  3. Datenverarbeitungsanordnung gemäß Anspruch 1, wobei die Funktion eine umkehrbare Transformation ist.
  4. Datenverarbeitungsanordnung gemäß Anspruch 1, wobei die Funktion eine Hash-Funktion ist.
  5. Datenverarbeitungsanordnung gemäß Anspruch 3 oder 4, wobei die vorgegebene Funktion von einer Nonce abhängt.
  6. Datenverarbeitungsanordnung gemäß einem der Ansprüche 1 bis 5, wobei die Verarbeitungseinrichtung eingerichtet ist, den aus dem ersten Datenausgabespeicherelement gelesenen Wert zu verwerfen, falls der aus dem zweiten Datenausgabespeicherelement gelesene Wert nicht gemäß der vorgegebenen Funktion auf dem aus dem ersten Datenausgabespeicherelement gelesenen Wert basiert.
  7. Datenverarbeitungsanordnung gemäß einem der Ansprüche 1 bis 6, wobei die Leseeinrichtung eingerichtet ist, einen neuen Wert aus dem ersten Datenverarbeitungselement auszulesen, falls der aus dem zweiten Datenausgabespeicherelement gelesene Wert nicht gemäß der vorgegebenen Funktion auf dem aus dem ersten Datenausgabespeicherelement gelesenen Wert basiert.
  8. Datenverarbeitungsanordnung gemäß einem der Ansprüche 1 bis 7, wobei die Steuereinrichtung eingerichtet ist, nach dem Auslesen des in dem zweiten Datenausgabespeicherelements gespeicherten Werts einen vorgegebenen Signalwert in dem zweiten Datenausgabespeicherelement zu speichern.
  9. Datenverarbeitungsanordnung gemäß Anspruch 8, wobei der vorgegebene Signalwert unabhängig von dem auszugebenden Wert ist.
  10. Datenverarbeitungsanordnung gemäß einem der Ansprüche 1 bis 7, wobei die Steuereinrichtung eingerichtet ist, nach dem Auslesen des in dem zweiten Datenausgabespeicherelements gespeicherten Werts einen vorgegebenen Signalwert in einem weiteren Datenausgabespeicherelement zu speichern, wobei die Leseeinrichtung eingerichtet ist, den in dem weiteren Datenausgabespeicherelement gespeicherten Wert auszulesen und wobei die Verarbeitungseinrichtung eingerichtet ist, zu überprüfen, ob in dem weiteren Datenausgabespeicherelement der vorgegebene Signalwert gespeichert ist und abhängig davon, ob in dem weiteren Datenausgabespeicherelement der vorgegebene Signalwert gespeichert ist, den aus dem ersten Datenausgabespeicherelement gelesenen Wert zu verarbeiten.
  11. Datenverarbeitungsanordnung gemäß Anspruch 10, wobei der vorgegebene Signalwert unabhängig von dem auszugebenden Wert ist.
  12. Datenverarbeitungsanordnung gemäß Anspruch 10 oder 11, wobei die Verarbeitungseinrichtung eingerichtet ist, den aus dem ersten Datenausgabespeicherelement gelesenen Wert zu verwerfen, falls in dem weiteren Datenausgabespeicherelement der vorgegebene Signalwert gespeichert ist.
  13. Datenverarbeitungsanordnung gemäß einem der Ansprüche 1 bis 12, wobei die erste Datenverarbeitungskomponente eine CPU ist.
  14. Datenverarbeitungsanordnung gemäß einem der Ansprüche 1 bis 13, wobei die zweite Datenverarbeitungskomponente eine Peripherie-Einheit ist.
  15. Datenverarbeitungsanordnung gemäß einem der Ansprüche 1 bis 14, wobei die zweite Datenverarbeitungskomponente ein Zufallszahlengenerator ist.
  16. Datenverarbeitungsanordnung gemäß einem der Ansprüche 1 bis 15, angeordnet in einem Sicherheitscontroller.
  17. Datenverarbeitungsanordnung gemäß einem der Ansprüche 1 bis 16, wobei die Datenausgabespeicherelemente Ausgaberegister sind.
  18. Datenverarbeitungsanordnung gemäß einem der Ansprüche 1 bis 17, wobei die Kommunikationsverbindung ein Bus ist.
  19. Datenverarbeitungsanordnung gemäß Anspruch 18, wobei die Kommunikationsverbindung einen Adressbus und einen Datenbus aufweist.
  20. Verfahren zur Datenverarbeitung aufweisend: Speichern eines auszugebenden Werts in einem ersten Datenausgabespeicherelement einer ersten Datenverarbeitungskomponente, Speichern, in einem zweiten Datenausgabespeicherelement der ersten Datenverarbeitungskomponente, einen gemäß einer vorgegebenen Funktion auf dem auszugebenden Wert basierenden Wert, wobei die erste Datenverarbeitungsanordnung nach jedem Auslesen eines in dem ersten Datenausgabespeicherelement gespeicherten auszugebenden Werts durch eine zweite Datenverarbeitungskomponente einen neuen auszugebenden Wert in dem ersten Datenausgabespeicherelement speichert; Lesen des in dem ersten Datenausgabespeicherelement gespeicherten Werts und des in dem zweiten Datenausgabespeicherelement gespeicherten Wert durch die zweite Datenverarbeitungskomponente; Überprüfen, ob der aus dem zweiten Datenausgabespeicherelement gelesene Wert gemäß der vorgegebenen Funktion auf dem aus dem ersten Datenausgabespeicherelement gelesenen Wert basiert und Verarbeiten des aus dem ersten Datenausgabespeicherelement gelesenen Werts abhängig davon, ob der aus dem zweiten Datenausgabespeicherelement gelesene Wert gemäß der vorgegebenen Funktion auf dem aus dem ersten Datenausgabespeicherelement gelesenen Wert basiert.
DE102013108073.1A 2013-07-29 2013-07-29 Datenverarbeitungsanordnung und verfahren zur datenverarbeitung Active DE102013108073B4 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102013108073.1A DE102013108073B4 (de) 2013-07-29 2013-07-29 Datenverarbeitungsanordnung und verfahren zur datenverarbeitung
US14/341,925 US9652232B2 (en) 2013-07-29 2014-07-28 Data processing arrangement and method for data processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102013108073.1A DE102013108073B4 (de) 2013-07-29 2013-07-29 Datenverarbeitungsanordnung und verfahren zur datenverarbeitung

Publications (2)

Publication Number Publication Date
DE102013108073A1 true DE102013108073A1 (de) 2015-01-29
DE102013108073B4 DE102013108073B4 (de) 2019-12-19

Family

ID=52273942

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013108073.1A Active DE102013108073B4 (de) 2013-07-29 2013-07-29 Datenverarbeitungsanordnung und verfahren zur datenverarbeitung

Country Status (2)

Country Link
US (1) US9652232B2 (de)
DE (1) DE102013108073B4 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017075246A1 (en) 2015-10-27 2017-05-04 D-Wave Systems Inc. Systems and methods for degeneracy mitigation in a quantum processor
CN106649140A (zh) * 2016-12-29 2017-05-10 深圳前海弘稼科技有限公司 一种数据处理方法、装置及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004062825A1 (de) * 2004-12-27 2006-07-13 Infineon Technologies Ag Kryptographische Einheit und Verfahren zum Betreiben einer kryptographischen Einheit

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100391727B1 (ko) * 1994-11-09 2003-11-01 소니 일렉트로닉스 인코포레이티드 메모리시스템및메모리억세싱방법
JP3724001B2 (ja) * 1994-12-12 2005-12-07 富士通株式会社 情報処理装置
US7010607B1 (en) * 1999-09-15 2006-03-07 Hewlett-Packard Development Company, L.P. Method for training a communication link between ports to correct for errors
DE10340411B4 (de) 2003-09-02 2005-10-13 Infineon Technologies Ag Vorrichtung und Verfahren zur sicheren Ausführung eines Programms
DE102005028221B4 (de) * 2005-06-17 2007-10-11 Infineon Technologies Ag Vorrichtung und Verfahren zum Schutz der Integrität von Daten
WO2011047069A1 (en) * 2009-10-13 2011-04-21 Tiger's Lair Inc. Method and apparatus for ensuring consistent system configuration in secure applications
TWI564747B (zh) * 2012-10-19 2017-01-01 威盛電子股份有限公司 電子裝置與安全開機方法
US9147086B1 (en) * 2013-06-07 2015-09-29 Amazon Technologies, Inc. Trusted computing host
FR3007552B1 (fr) * 2013-06-24 2016-10-28 Stmicroelectronics Rousset Procede securise de comparaison de deux operandes et dispositif correspondant
US9032273B2 (en) * 2013-09-05 2015-05-12 Infineon Technologies Ag Method, apparatus and device for data processing

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004062825A1 (de) * 2004-12-27 2006-07-13 Infineon Technologies Ag Kryptographische Einheit und Verfahren zum Betreiben einer kryptographischen Einheit

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Technical Report On Basic I/O Hardware Adressing. Arbeitsgruppe JTC1/SC22/WG14 für die internationale Standardisierung von C. Archiviert in www.archive.org mit Stand vom 16.September 2004. URL: https://web.archive.org/web/20040917114309/http://www.open-std.org/jtc1/sc22/wg14/www/docs/n910.pdf
Technical Report On Basic I/O Hardware Adressing. Arbeitsgruppe JTC1/SC22/WG14 für die internationale Standardisierung von C. Archiviert in www.archive.org mit Stand vom 16.September 2004. URL: https://web.archive.org/web/20040917114309/http://www.open-std.org/jtc1/sc22/wg14/www/docs/n910.pdf *

Also Published As

Publication number Publication date
DE102013108073B4 (de) 2019-12-19
US9652232B2 (en) 2017-05-16
US20150032992A1 (en) 2015-01-29

Similar Documents

Publication Publication Date Title
DE112017001766T5 (de) Power-side-channel-angriffsresistenter advanced-encryption-standard-beschleunigungsprozessor
EP3136285B1 (de) Verfahren und speichermodul für sicherheitsgeschützte schreibvorgänge und/oder lesevorgänge auf dem speichermodul
DE3128740A1 (de) Dynamisches halbleiter-speichersystem
DE102010054614A1 (de) Eindringen in eine gesicherte EDV-Umgebung unter Verwendung mehrerer authentifizierter Codemodule
DE102016205289A1 (de) Verfahren, Prozessor und Gerät zur Integritätsprüfung von Nutzerdaten
DE112016001972T5 (de) Sicherer Zugriff in einem Mikrokontrollersystem
DE112021000648T5 (de) Speichervorrichtung, die gegen cyber-angriffe und fehlfunktionen widerstandsfähig ist
DE102016120558A1 (de) Datenverarbeitungsvorrichtung und -verfahren für kryptographische verarbeitung von daten
DE102019128528A1 (de) Datenkryptografievorrichtungen und speichersysteme
DE102015107823A1 (de) Randomisierter Speicherzugriff
DE102005061367A1 (de) IC-Chipkarte und Verfahren zur Detektion von Datenmanipulation
DE102018125786A1 (de) Verschlüsselte Systemspeicherverwaltung
DE102016210788B4 (de) Komponente zur Verarbeitung eines schützenswerten Datums und Verfahren zur Umsetzung einer Sicherheitsfunktion zum Schutz eines schützenswerten Datums in einer solchen Komponente
EP3065078A1 (de) Schutz von speicherinhalten eines speichers eines computersystems unter verwendung einer hashfunktion
DE102015210651B4 (de) Schaltung und Verfahren zum Testen einer Fehlerkorrektur-Fähigkeit
DE112018006401T5 (de) Transparent zugeordnete flash-memory-sicherheit
EP2673731B1 (de) Verfahren zur programmierung eines mobilendgeräte-chips
DE102014214792A1 (de) Vorrichtung und Verfahren zum Zugreifen auf einen verschlüsselten Speicherabschnitt
DE102018105090A1 (de) Sichere Rücksetztechniken für Mikrocontrollersysteme in sicherheitsbezogenen Anwendungen
DE102010003153B4 (de) Verarbeitungseinheit, Vorrichtung, die zwei Verarbeitungseinheiten aufweist, Verfahren zum Testen einer Verarbeitungseinheit und einer Vorrichtung, die zwei Verarbeitungseinheiten aufweist
DE102006035610B4 (de) Speicherzugriffssteuerung und Verfahren zur Speicherzugriffssteuerung
DE102016223341A1 (de) Integrierte Schaltung mit Hardwareprüfeinheit zum Überprüfen von ausgewählten Speicherzugriffen
DE102019110440A1 (de) Replay-Schutz für Speicher auf der Basis eines Schlüsselauffrischens
DE102013108073A1 (de) Datenverarbeitungsanordnung und verfahren zur datenverarbeitung
DE102013101709A1 (de) Schaltkreis-Anordnung, Verfahren zum Bilden einer Schaltkreis-Anordnung und Verfahren zum Prüfen der Integrität

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R082 Change of representative