DE102006001872B4 - Vorrichtung und Verfahren zum Überprüfen einer Fehlererkennungsfunktionalität einer Datenverarbeitungseinrichtung auf Angriffe - Google Patents

Vorrichtung und Verfahren zum Überprüfen einer Fehlererkennungsfunktionalität einer Datenverarbeitungseinrichtung auf Angriffe Download PDF

Info

Publication number
DE102006001872B4
DE102006001872B4 DE102006001872A DE102006001872A DE102006001872B4 DE 102006001872 B4 DE102006001872 B4 DE 102006001872B4 DE 102006001872 A DE102006001872 A DE 102006001872A DE 102006001872 A DE102006001872 A DE 102006001872A DE 102006001872 B4 DE102006001872 B4 DE 102006001872B4
Authority
DE
Germany
Prior art keywords
error
error detection
error signal
output
detection device
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.)
Active
Application number
DE102006001872A
Other languages
English (en)
Other versions
DE102006001872A1 (de
Inventor
Marcus Janke
Peter Laackmann
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 DE102006001872A priority Critical patent/DE102006001872B4/de
Priority to US11/622,775 priority patent/US8918679B2/en
Publication of DE102006001872A1 publication Critical patent/DE102006001872A1/de
Application granted granted Critical
Publication of DE102006001872B4 publication Critical patent/DE102006001872B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2215Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test error correction or detection circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • G06F21/755Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
    • 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/77Protecting 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 smart cards

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Vorrichtung zur Überprüfung einer Fehlererkennungsfunktionalität auf Angriffe, mit folgenden Merkmalen: einer Datenverarbeitungseinrichtung (100; 300) mit einer Recheneinrichtung (110; 310-1), die ausgelegt ist, um basierend auf mindestens einem Eingangsdatum ein Ausgangsdatum bereitzustellen; einer Fehlererkennungseinrichtung (120; 320), die ausgebildet ist, um die Fehlererkennungsfunktionalität auszuführen und bei einer korrekten Ausführung der Fehlererkennungsfunktionalität einen Fehler des Ausgangsdatums zu erkennen und, falls ein Fehler vorliegt, ein Fehlersignal zu erzeugen; und einer Kontrolleinrichtung (210; 410), die ausgebildet ist, um in einem Normalbetriebsmodus das Fehlersignal an einen Fehlersignalausgang (170; 370) durchzulassen und in einem Überprüfungsmodus das Fehlersignal zu blockieren, um das Fehlersignal nicht an den Fehlersignalausgang (170; 370) durchzulassen, und die ferner ausgebildet ist, um die Recheneinrichtung (110; 310-1) oder mindestens ein Eingangsdatum so zu beeinflussen, dass die Fehlererkennungseinrichtung (120; 320) bei der korrekten Ausführung der Fehlererkennungsfunktionalität einen Fehler erkennt, und, falls auf die Beeinflussung hin kein Fehlersignal empfangen wird, auf einen Angriff auf die Fehlererkennungseinrichtung (120; 320) zu schließen und ein Alarmsignal auszugeben.

Description

  • Die vorliegende Erfindung bezieht sich auf eine Vorrichtung zum Überprüfen einer Fehlererkennungsfunktionalität einer Datenverarbeitungseinrichtung, insbesondere im Bereich von Chipkarten oder Smartcards, die beispielsweise in sensiblen Bereichen eingesetzt werden und daher Angriffen ausgesetzt sein können.
  • In sensiblen, die Sicherheit betreffenden Bereichen werden vielfältige technische Sicherungsmaßnahmen zum Einsatz gebracht. Diese Sicherungsmaßnahmen ermöglichen es beispielsweise, Anwendern auf bestimmte Computersystemen zuzugreifen, berechtigten Personen Zutritt zu bestimmten, für die Öffentlichkeit gesperrten Bereichen zu gewähren, oder auch auf gesicherte Informationen, wie etwa private Schlüssel im Rahmen eines Public-Key-Kryptographie-Verfahrens, Bankdaten oder Kreditkarteninformationen zuzugreifen. Der berechtigte Nutzer, also beispielsweise der berechtigte Anwender eines Computersystems oder auch ein Zutrittsberechtigter zu einem nichtöffentlichen Bereich, erhält häufig eine Chipkarte mit einem Security-Controller, die den Anwender einem Sicherheitssystem gegenüber als autorisiert ausweist. Bei einem Security-Controller handelt es sich um einen Mikrocontroller, der beispielsweise auf einer Chipkarte zur Überwachung von Sicherheitsfunktionen eingesetzt werden kann.
  • Solche Sicherheitssysteme und Sicherheitsschaltungen, die beispielsweise Chipkarten umfassen, werden schon auf Grund des Wertes der durch sie geschützten Güter, Informationen und Privilegien Angriffen ausgesetzt, welche durch verschiedene Gegenmaßnahmen seitens der Sicherheitsschaltungen abgewehrt werden sollen. Die Funktionalität bzw. die Funktionstüchtigkeit der Gegenmaßnahmen wurden bisher durch sogenannte UmSLC-Module (UmSLC = user mode sensor life control = Überwachung der Sensorfunktionsfähigkeit im Betriebsmodus) geprüft. Neben entsprechenden Versorgungsschaltungen und Auswertungsschaltungen waren die zentralen Komponenten der Gegenmaßnahmen bislang Sensoren, die Angriffe erkennen sollten. Zu den Sensoren zählen so beispielsweise Spannungssensoren, Frequenzsensoren, Temperatursensoren und Lichtsensoren. Um die Funktionalität der Gegenmaßnahmen, also die Funktionalität der verschiedenen Sensoren, ihrer Versorgungsschaltungen und der zugehörigen Auswerteschaltungen zu überprüfen, wurden die Sensoren bzw. ihre zugehörigen Komponenten durch das UmSLC-Modul so verstellt bzw. stimuliert, dass ein Alarm ausgelöst wurde. Der ausgelöste Alarm wurde jedoch nicht als Angriff gewertet, mit anderen Worten wurde dieser Alarm nicht wirksam geschaltet, sondern es wurde nur geprüft, ob er überhaupt erzeugt wurde. Falls nun im Rahmen eines solchen Tests der Alarm ausblieb, so wurde von dem UmSLC-Modul auf einen manipulativen Angriff geschlossen, der den Sensor außer Betrieb gesetzt hat. In einem solchen Fall kann das UmSLC-Modul seinerseits ein Alarmsignal erzeugen und ausgeben, das dazu führen kann, dass beispielsweise der Security-Controller einer Chipkarte bzw. die CPU (CPU = central processing unit = Zentralprozessor) des Security-Controllers angehalten wird, sensible Informationen vernichtet bzw. gelöscht werden oder ein Reset (Zurücksetzen) des Security-Controllers hervorgerufen werden.
  • Neue Gegenmaßnahmen fußen nun nicht mehr bzw. nicht mehr ausschließlich auf analogen Sensoren, die Veränderungen der Umweltbedingungen bzw. der Betriebsbedingungen der betreffenden Sicherheitskomponenten (beispielsweise eines Security-Controllers) erkennen, sondern weisen auch logische Maßnahmen auf, die Veränderungen der Informationen in dem Security-Controller erkennen sollen. Herkömmliche UmSLC-Module erfüllen daher nicht mehr diese Anforderungen.
  • Eine Datenverarbeitungseinrichtung, wie sie beispielsweise auf einem Mikrocontroller auf einer Chipkarte zum Einsatz kommen können, umfassen eine oder mehrere Recheneinrichtungen bzw. Rechenwerke, die auch als ALU (ALU = Arithmetic Logic Unit = arithmetische Logikeinheit) bezeichnet werden. Ein solches Rechenwerk bzw. eine ALU kann durch eine Fehlererkennungsfunktionalität bzw. Fehlererkennungsfunktion nach dem Stand der Technik gegen Fehler abgesichert werden. Die Fehlererkennungsfunktionen können hierbei beispielsweise auf Basis der Überprüfung von Paritätsbits, also einem Paritätscheck bzw. Parity-Check, oder einer anderen Implementierung eines Fehlererkennungscodes (EDC; EDC = Error Detection Code = Fehlererkennungscode) realisiert werden. Alternativ oder auch zusätzlich kann auch ein zweites Rechenwerk bzw. eine zweite ALU parallel die gleichen oder veränderte, beispielsweise invertierte, Daten verrechnen bzw. verarbeiten, welche in einem weiteren Schritt dann gegen die Ergebnisse der ersten ALU verglichen werden.
  • Ein Angreifer kann im Rahmen eines Angriffs auf die Datenverarbeitungseinrichtung nun beispielsweise versuchen, durch einen physischen Angriff, etwa in Form eines gezielten Rückätzens ausgewählter Gebiete des Chips, der die Datenverarbeitungseinrichtung umfasst, und durch Anlegen von elektrischen Spannungen oder Spannungspulsen an bestimmte Bereiche des Chips, die Fehlererkennungsfunktionalität zu stören. Hierdurch kann der Angreifer den Ablauf der Berechnung beispielsweise so manipulieren, das diese Manipulation nicht mehr erkannt werden. Als Folge kann beispielsweise das Ergebnis einer Berechnung, eine logische Verknüpfung oder auch ein Zählwert so manipuliert werden, das ein Mikrocontroller, den der Chip ebenfalls umfasst, beispielsweise dazu veranlasst werden kann, eigentlich geheime Daten preiszugeben. Die oben beschriebenen Sensoren sind zwar grundsätzlich geeignet, einen entsprechenden Angriff auf die Fehlererkennungsfunktionalität der Datenverarbeitungsvorrichtung zu detektieren.
  • Diese Sensoren sind aber immer nur für einen bestimmten Satz von Angriffen empfindlich.
  • Die US 5872790 A1 bezieht sich auf einen Multibitfehlergenerator für ECC-Speicher, insbesondere auf einen Fehlergenerator zur Verwendung in einem Speicherbaustein, wie beispielsweise einem DRAM-Speicher, der wiederum mit einer Fehlererkennungs- und Korrektureinheit unter Verwendung fehlerkorrigierender Codes verbunden ist, etwa einer Speichersteuerung. Der Multibitfehlergenerator verwendet hierbei das Taktsignal von einem Computersystem, bestimmt den Zeitpunkt, wenn das Computersystem als erstes versucht, nach einer Synchronisation aus einem Datenstrom zu lesen, und erzeugt hieran anschließend einen Fehler in wenigstens einem Bit des Datenstroms, indem das betreffende Bit invertiert wird. Der Fehlergenerator kann hierbei mit einem Schalter ausgerüstet werden, so dass die Synchronisation auf eine Aktivierung des Schalters hin durchgeführt wird. Der Fehlergenerator wird bevorzugt durch ein kostengünstiges Bauelement, etwa einen programmierbaren Logikgatter-Schaltkreis (PAL), realisiert. Der PAL und der Schalter können hierbei auf einen Zwischenbaustein angebracht werden, der entfernbar mit der Speichermatrix und der Speichersteuerung verbunden ist.
  • Die US 5515383 bezieht sich auf ein eingebautes Selbsttestsystem und ein Verfahren zum Selbsttest einer integrierten Schaltung. Eine integrierte Schaltung beinhaltet einen Selbsttestgenerator, der pseudo-zufällige Testvektoren erzeugt, die jeweils weniger Bits als ein normales Eingabesignal für die integrierte Schaltung haben. Das normale Signal enthält Daten und Paritätsbits, die einer Mehrzahl von Fehlererkennungs- und Korrekturschaltungen auf der integrierten Schaltung zur Verfügung gestellt werden. Ausgewählte Bits des pseudo-zufälligen Testvektors, der von dem Selbsttestgenerator erzeugt wird, werden auf die gesamte Anzahl der Bits der Daten und der Paritätssignale aufgeweitet und eine Testsignatur wird bereitgestellt, nachdem ein vollständiger Satz von Testvektoren von der Fehlererkennungs- und Korrekturschaltung prozessiert wurde. Ein Signaturanalysator vergleicht die Testsignatur mit einer vorbestimmten, erwarteten Signatur, um festzustellen, ob ein Fehler in einer der Fehlererkennungs- und Korrekturschaltungen in der integrierten Schaltung vorliegt. Der Selbsttest kann auf Befehl hin oder alternativ quasi-gleichzeitig mit dem normalen Betriebsmodus ablaufen.
  • Die US 5686885 bezieht sich auf ein Sensortestverfahren und eine Vorrichtung. In einem Sicherheitssystem für ein Haus oder ein Gebäude mit einer entfernten Überwachungsstation kann ein Sensor getestet werden, wenn das Sicherheitssystem in einem normalen Betriebsmodus ist. Der Sensor wird durch Betätigen eines Schalters auf dem Sensor getestet. Eine Betätigung des Schalters erzeugt ein Signal, das anzeigt, dass ein Test durchgeführt wird. Wird sowohl ein Alarmsignal als auch ein Signal, das anzeigt, dass ein Test ausgeführt wurde, erzeugt, stellt das Sicherheitssystem fest, dass das Alarmsignal durch einen Test des Sensors und nicht durch eine Detektion eines Alarmzustandes durch den Sensor hervorgerufen wird.
  • In der US 6799287 wird eine Vorrichtung zur Überprüfung eines Fehlerkorrekturcodes beschrieben. Ein Fehlerinjektionsmodul wird verwendet, um Zufallsfehler in eine ECC-Schaltung zwischen einem Encoder und einem Decoder zu injizieren (ECC = error-correcting code, dt. Kodierung zur Fehlerkorrektur). Der Encoder codiert Datenbits mit Prüfbits, um ein codiertes Signal zu erzeugen. Der Decoder decodiert das codierte Signal, nach der Modifikation durch das Fehlerinjektionsmodul. Das Ausgangssignal des Decoders wird mit erwarteten Werten verglichen, um festzustellen, ob ein Fehler in dem ECC oder der ECC-Schaltung aufgetreten ist.
  • Des Weiteren wird in der US 3699323 ein Fehlerkorrektursystem für ein digitales Rechenwerk mit zugeordneten Quellenregistern beschrieben. Für jede Rechenoperation, für die sowohl Fehlererkennung als auch Fehlerkorrektur gewünscht wird, wird ein Paritätsvorhersager verwendet, um eine vorhergesagte Parität für die Rechenoperation zu bestimmen. Ferner wird ein Paritätsberechner verwendet, um eine tatsächlichen Parität der Rechenoperation zu bestimmen. Die vorhergesagte und die tatsächliche Paritäten werden dann verglichen, um zu bestimmen, ob ein Fehler aufgetreten ist.
  • Ausgehend von diesem Stand der Technik besteht die Aufgabe der vorliegenden Erfindung darin, eine Vorrichtung und ein Verfahren zu schaffen, die eine erhöhte Sicherheit Angriffen auf eine Datenverarbeitungseinrichtung gegenüber ermöglichen.
  • Diese Aufgabe wird durch eine Vorrichtung gemäß Anspruch 1 und ein Verfahren gemäß Anspruch 11 gelöst.
  • Der vorliegenden Erfindung liegt die Erkenntnis zugrunde, dass eine erhöhte Sicherheit Angriffen auf eine Datenverarbeitungseinrichtung gegenüber dadurch erreicht werden kann, dass während des Betriebs die Fehlererkennungsfunktionalität der Datenverarbeitungseinrichtung durch eine Kontrolleinrichtung auf ihre Wirksamkeit hin überprüft wird. Hierdurch ergibt sich der Vorteil, dass im Rahmen eines Angriffs eine Manipulation einer Recheneinrichtung nicht dadurch verschleiert werden kann, dass die Fehlererkennungseinrichtung in ihrer Funktionalität so beeinträchtigt wird, dass eine Manipulation, die bei einer Überprüfung im Rahmen einer korrekten Ausführung der Fehlererkennungsfunktionalität eigentlich als fehlerhaft erkannt werden müsste, als fehlerfrei erkannt wird.
  • Zu diesem Zweck forciert die erfindungsgemäße Vorrichtung einen oder mehrere Fehler in der Datenverarbeitungseinrichtung, indem sie entweder ein Eingangsdatum, das der Recheneinrichtung zugeführt wird, oder die Recheneinrichtung selbst so beeinflusst, dass bei einer Überprüfung im Falle einer korrekten Ausführung der Fehlererkennungsfunktionalität ein Fehlersignal erzeugt werden müsste. Empfängt die erfindungsgemäße Vorrichtung das erwartete Fehlersignal nicht, wird von einer Manipulation bzw. einem Angriff auf die Datenverarbeitungseinrichtung ausgegangen. In diesem Fall gibt die Kontrolleinrichtung ihrerseits ein Alarmsignal aus, das einen erfolgten Angriff anderen Komponenten, mit denen die erfindungsgemäße Vorrichtung gekoppelt ist, gegenüber anzeigt.
  • Die Kontrolleinrichtung kann hierbei sowohl die Recheneinrichtung selbst, wie auch das der Recheneinrichtung bereitgestellte Eingangsdatum, auf Basis dessen die Recheneinrichtung ein Ausgangsdatum bereitstellt, manipulieren. Hierdurch ergibt sich der Vorteil, dass die erfindungsgemäße Vorrichtung über verschiedene Möglichkeiten zur Überprüfung der Fehlererkennungsfunktionalität verfügt, so dass ein Angriff auf die Datenverarbeitungseinrichtung einer Mehrzahl von Überprüfungen widerstehen muss, um eine Chance auf eine erfolgreiche Durchführung zu haben.
  • Ein weiterer Vorteil besteht darin, dass die Überprüfung während des Betriebs durchgeführt werden kann. Die Überprüfung kann hierbei durch das Vorliegen einer Auslösebedingung initiiert werden. Hierdurch wird ein Angriff einem Angreifer erschwert, da er nicht nur zu bestimmten Ereignissen, wie etwa einem Systemstart, mit einer Überprüfung der Fehlererkennungsfunktionalität rechnen muss.
  • Darüber hinaus zeigen die Ausführungsbeispiele, dass die erfindungsgemäße Vorrichtung nicht nur das Ausgeben eines Fehlersignals auf eine Beeinflussung hin überwachen kann, dass also die erfindungsgemäße Vorrichtung nicht nur die Fehlererkennungseinrichtung dahingehend überwacht, einen Fehler zu detektieren. Sie erlaubt es vielmehr auch, nach einer erfolgreichen Fehlererkennung eine Überprüfung der Fehlererkennungsfunktionalität durchzuführen, ohne dass ein Fehler vorliegt. Der Vorteil, der sich hieraus ergibt, besteht darin, dass hierdurch ein möglicher Angriff aufgrund der zugenommenen Komplexität der Überprüfung erneut erschwert wird, da nicht mehr bei jeder Überprüfung durch die Kontrolleinrichtung ein Fehlersignal von derselben erwartet wird.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
  • 1 ein Blockschaltbild eines ersten Ausführungsbeispiels einer Datenverarbeitungseinrichtung mit einer erfindungsgemäßen Vorrichtung zum Überprüfen einer Fehlererkennungsfunktionalität; und
  • 2 ein Blockschaltbild eines zweiten Ausführungsbeispiels einer Datenverarbeitungseinrichtung mit einer erfindungsgemäßen Vorrichtung zum Überprüfen einer Fehlererkennungsfunktionalität.
  • Bezug nehmend auf die 1 und 2 wird nun ein erstes Ausführungsbeispiel einer erfindungsgemäßen Vorrichtung zur Überprüfung einer Fehlererkennungsfunktionalität einer Datenverarbeitungseinrichtung beschrieben. Ähnliche oder gleiche Objekte werden hierbei mit ähnlichen oder gleichen Bezugszeichen bezeichnet.
  • 1 zeigt ein Blockschaltbild eines ersten Ausführungsbeispiels einer Datenverarbeitungseinrichtung 100 mit einer erfindungsgemäßen Vorrichtung zum Überprüfen einer Fehlererkennungsfunktionalität bzw. EDC-Funktion (EDC = Error Detection Code = Fehlererkennungscode) der Datenverarbeitungseinrichtung 100, wie sie beispielsweise im Rahmen eines Security-Controllers auf eine Chipkarte zum Einsatz kommen kann. Die erfindungsgemäße Datenverarbeitungseinrichtung 100 weist eine Recheneinrichtung bzw. Rechenwerk 110 auf, das auch als ALU (ALU = Arithmetic Logic Unit = arithmetische Logikeinheit) bezeichnet wird. Das Rechenwerk bzw. die ALU 110 ist mit einem Ausgang an eine Fehlererkennungseinrichtung 120 gekoppelt.
  • Darüber hinaus weist das Rechenwerk 110 in dem in 1 gezeigten Ausführungsbeispiel einen ersten Eingang, der mit einem ersten Manipulator 130 gekoppelt ist, und einen zweiten Eingang auf, der mit einem zweiten Manipulator 140 gekoppelt ist. Dem ersten Manipulator 130 und dem zweiten Manipulator 140 kann hierbei von einer in 1 nicht gezeigten Komponente über eine erste Eingangsdatenleitung ein erstes Eingangsdatum bereitgestellt werden. Entsprechend kann dem zweiten Manipulator 140 ebenfalls von einer nicht in 1 gezeigten Komponente über eine zweite Eingangsdatenleitung ein zweites Eingangsdatum zur Verfügung gestellt werden. Die beiden Manipulatoren 130, 140 sind jeweils an eine UmSLC-Steuereinheit 150 (UmSLC = Usermode Sensor Life Control = Überwachung der Sensorfunktionsfähigkeit im Betriebsmodus) so angeschlossen, dass diese die beiden Manipulatoren 130, 140 aktivieren kann. Mögliche Realisierungen der beiden Manipulatoren 130, 140 werden weiter unten diskutiert und erläutert.
  • Die UmSLC-Steuereinheit 150 ist darüber hinaus über eine bidirektionale Verbindung mit einer Weiche 160 gekoppelt, um einerseits die Weiche 160 anzusteuern und andererseits ein Fehlersignal über die Weiche 160 zu empfangen. Das Fehlersignal kann hierbei von der Fehlererkennungseinrichtung 120 erzeugt werden, die aus diesem Grund ebenfalls mit der Weiche 160 verbunden ist.
  • Darüber hinaus ist die Weiche 160 mit einem Fehlersignalausgang 170 verbunden, an dem die Fehlererkennungseinrichtung 120 ein eine fehlerhafte Ausführung einer Rechenoperation anzeigendes Fehlersignal an eine externe Komponente ausgegeben kann. Die UmSLC-Steuereinheit 150, die auch als UmSLC-Modul oder kurz UmSLC (UmSLC = Usermode Sensor Life Control = Überwachung der Sensorfunktionsfähigkeit im Betriebsmodus) bezeichnet wird, ist mit einem Alarmsignalausgang 180 verbunden, über den die erfindungsgemäße Vorrichtung ein Alarmsignal einer weiteren, in 1 nicht gezeigten Komponente bereitstellen kann, das eine fehlgeschlagene Überprüfung der Fehlererkennungsfunktionalität der Datenverarbeitungseinrichtung 100 und damit einen Angriff bzw. eine Manipulation der Datenverarbeitungseinrichtung 100 anzeigt.
  • In dem in 1 gezeigten Ausführungsbeispiel der erfindungsgemäßen Vorrichtung zum Überprüfen einer Fehlererkennungsfunktionalität einer Datenverarbeitungseinrichtung 100 ist darüber hinaus die Fehlererkennungseinrichtung 120 über eine erste Datentransferleitung 190 mit der ersten Eingangsdatenleitung und über eine zweite Datentransferleitung 200 mit der zweiten Eingangsdatenleitung gekoppelt.
  • Die UmSLC-Steuereinheit 150, die Weiche 160 und die beiden Manipulatoren 130, 140 bilden so eine Kontrolleinheit 210. 1 zeigt somit eine Datenverarbeitungseinrichtung 100 mit einer UmSLC für eine ALU 110, wie sie beispielsweise im Rahmen eines Security-Controllers zum Einsatz kommen kann.
  • In einem normalen Betriebsmodus (Normalbetriebsmodus), wenn also die UmSLC-Steuereinheit 150 die Fehlererkennungsfunktionalität der Datenverarbeitungseinrichtung 100 nicht überprüft, werden die beiden Manipulatoren 130, 140 und die Weiche 160 in einen neutralen Zustand gebracht. In dem neutralen Zustand beeinflussen die beiden Manipulatoren 130, 140 die eingehenden Eingangsdaten nicht, sondern lassen diese ungehindert passieren, so dass diese in einer unveränderten Form dem Rechenwerk 110 zur Verfügung stehen. In dem neutralen Zustand verbindet die Weiche 160 die Fehlererkennungseinrichtung 120 mit dem Fehlersignalausgang 170.
  • Werden in dem Normalbetriebsmodus dem Rechenwerk 110 nun über die erste und die zweite Eingangsdatenleitung ein erstes und ein zweites Eingangsdatum zur Verfügung gestellt, verknüpft das Rechenwerk 110 die beiden Eingangsdaten mit Hilfe einer oder mehrerer arithmetischer und/oder logischer Operationen zu einem Ausgangsdatum, das bei dem in 1 gezeigten Ausführungsbeispiel zusammen mit dem ersten und dem zweiten Eingangsdatum der Fehlererkennungseinrichtung zur Verfügung gestellt wird. Die Fehlererkennungseinrichtung 120 überprüft nun auf Basis der beiden Eingangsdaten und des Ausgangsdatums das Ausgangsdatum auf das Vorliegen eines Fehlers. Stellt die Fehlererkennungseinrichtung 120 bei dieser Überprüfung das Vorliegen eines Fehlers fest, erzeugt sie ein Fehlersignal, das über die Weiche 160 an den Fehlersignalausgang 170 ausgegeben wird.
  • Die Fehlererkennungseinrichtung 120 kann hierbei die Überprüfung auf das Vorliegen eines Fehlers, also die Fehlererkennungsfunktionalität, durch verschiedene Algorithmen und Vorgehensweisen ermöglichen. So kann das Rechenwerk bzw. die ALU beispielsweise durch Fehlererkennungsfunktionen, wie z. B. eine Paritätsüberprüfung (Parity-Check) oder andere fehlererkennende Codes und Verfahren (EDC; EDC = Error Detection Code = Fehlererkennungscode) nach dem Stand der Technik gegen Fehler abgesichert werden. Neben der bereits erwähnten Überprüfung der Parität kann das Ausgangsdatum so beispielsweise durch eine CRC-Prüfsumme (CRC = cyclic redundancy check = zyklische Redundanzüberprüfung) oder einen Einweg-Hash-Wert, wie er beispielsweise mit Hilfe der Einweg-Hash-Algorithmen MD2, MD4, MD5 oder RIPEMD-160 berechnet werden kann, realisiert werden. Je nach Komplexität der verwendeten Fehlererkennungsfunktion bzw. Fehlererkennungsfunktionalität ist es daher notwendig, die Fehlererkennungseinrichtung 120 ihrerseits mit einer mehr oder weniger komplexen ALU bzw. einem mehr oder weniger komplexen Rechenwerk ihrerseits auszurüsten.
  • Wird im Rahmen der Fehlerüberprüfung in dem Normalbetriebsmodus kein Fehler festgestellt, kann das Ergebnis der Berechnung des Rechenwerks 110 an eine in 1 nicht gezeigte externe Komponente ausgegeben werden. Wird hingegen bei der Fehlerüberprüfung ein Fehler festgestellt, so kann der Security-Controller, der Mikrocontroller, die Chipkarte eine CPU (CPU = central processing unit = Zentralprozessor) oder eine andere externe Komponente, mit der die in 1 gezeigte Datenverarbeitungseinrichtung 100 gekoppelt ist bzw. diese umfasst, auf das an dem Fehlersignalausgang 170 bereitgestellte Fehlersignal hin reagieren. Mögliche Reaktionen stellen so beispielsweise einen Abbruch eines laufenden Programms mit einer Ausgabe einer entsprechenden Fehlermeldung, ein Reset eines Systems, das die Datenverarbeitungseinrichtung 100 umfasst, oder eine erneute Anweisung, die entsprechende Berechnung durchzuführen, dar.
  • Wird nun eine vorbestimmte Auslösebedingung erfüllt, so wechselt die UmSLC-Steuereinheit 150 von dem Normalbetriebsmodus in einen Überprüfungsmodus und leitet die Überprüfung der Fehlererkennungsfunktionalität der Datenverarbeitungseinrichtung 100 ein. Bei dieser Auslösebedingung kann es sich beispielsweise um das Verstreichen einer vorbestimmten Zeitspanne oder das Erreichen einer vorbestimmten Systemzeit oder das Eintreffen eine entsprechenden CPU-Anweisung handeln. Ebenso ist eine zufällige Erfüllung der Auslösebedingung denkbar, wie sie beispielsweise durch einen (Pseudo-)Zufallszahlengenerator und einen entsprechenden vorbestimmten Anteil des Zahlenbereichs des (Pseudo-)Zufallszahlengenerators realisiert werden kann. Wichtig ist in diesem Zusammenhang, dass es sich bei der Auslösebedingung um eine intermittierend erfüllte Bedingung handelt, die einen normalen Zugriff auf die Datenverarbeitungseinrichtung 100 ermöglicht, und darüber hinaus bei Erfüllen der Auslösebedingung das Einleiten der Überprüfung der Fehlererkennungsfunktionalität ermöglicht.
  • Ist nun die Auslösebedingung erfüllt, so forciert die neuartige UmSLC-Funktion der UmSLC-Steuereinheit 150 nun einen oder mehrere Fehler, um die Fehlerfunktionen bzw. die Fehlererkennungsfunktionalität zu überprüfen. Hierzu wird zunächst die Alarmfunktion der ALU 110, also die durch die Fehlererkennungseinrichtung 120 realisierte Absicherung des Rechenwerks 110 in Form eines Fehlersignals durch Aktivieren der Weiche 160 zu der UmSLC-Steuereinheit 150 umgeleitet. Dann wird ein Fehler in der ALU bzw. dem Rechenwerk 110 simuliert. Bei dem in 1 gezeigten Ausführungsbeispiel einer Datenverarbeitungseinrichtung 100 kann dies beispielsweise durch Aktivierung eines der beiden oder durch Aktivierung beider Manipulatoren 130, 140 durch die UmSLC-Steuereinheit 150 erreicht werden. Das Rechenwerk 110 stellt der Fehlererkennungseinrichtung 120 basierend auf den durch die beiden Manipulatoren 130, 140 beeinflussten Eingangsdaten nun ein einen Fehler aufweisendes Ausgangsdatum zur Verfügung, woraufhin die Fehlererkennungseinrichtung 120 im Fall einer korrekten Ausführung der Fehlererkennungsfunktionalität ein Fehlersignal ausgibt.
  • Aufgrund der gegenüber dem neutralen Zustand umgeschalteten Weiche 160 wird das Fehlersignal nicht an den Fehlersignalausgang 170 weitergeleitet, sondern der UmSLC-Steuereinheit bzw. dem UmSLC-Modul 150 zur Verfügung gestellt. Mit anderen Worten muss die UmSLC-Steuereinheit dann eine Fehlermeldung in Form des Fehlersignals von der ALU-Überprüfung durch die Fehlererkennungseinrichtung 120 erhalten. Sollte dieses nicht erfolgen, sollte also das Fehlersignal nach einer Beeinflussung der Eingangsdaten durch die beiden Manipulatoren 130, 140 nicht erfolgen, erzeugt die UmSLC-Steuereinheit bzw. das UmSLC-Modul 150 seinerseits ein Alarmsignal (Alarm) als Fehlermeldung und gibt es an dem Alarmsignalausgang 180 aus, da in diesem Fall von einer Manipulation, also einem Angriff, auszugehen ist. In diesem Fall kann eine in 1 nicht gezeigte externe Komponente auf Basis des an dem Alarmsignalausgang 180 bereitgestellten Alarmsignals Gegenmaßnahmen, wie etwas das Ausführen eines Sicherheitsresets, dem Löschen sicherheitsrelevanter oder sensibler Daten, Zerstörung gezielter Komponenten das System das die Datenverarbeitungseinrichtung 100 umfasst, um das System unbrauchbar zu machen, oder andere Maßnahmen ergreifen.
  • Im Fall einer korrekten Ausführung der Fehlererkennungsfunktionalität, wenn also aufgrund der Beeinflussung durch die beiden Manipulatoren 130, 140 von der Fehlererkennungseinrichtung 120 ein Fehlersignal erzeugt und über die Weiche 160 der UmSLC-Steuereinheit 150 übermittelt wird, kann die korrekte Ausführung der Fehlererkennungsfunktionalität in einem zweiten Überprüfungsschritt durchgeführt werden. Zu diesem Zweck weist die UmSLC-Steuereinheit 150 die beiden Manipulatoren 130, 140 an, die Beeinflussung der Eingangsdaten aufzuheben und in den neutralen Zustand zurückzukehren. Hierdurch wird die Simulation eines Fehlers in dem Rechenwerk 110 deaktiviert, so dass das Ergebnis der Verknüpfung der Eingangsdaten zu einem korrekten bzw. fehlerfreien Ausgangsdatum führen müsste, das der Fehlererkennungseinrichtung 120 übermittelt wird. Die Fehlererkennungseinrichtung 120 sollte in diesem Fall keinen Fehler feststellen, woraufhin kein Fehlersignal bereitgestellt wird bzw. das erzeugte Fehlersignal gelöscht wird. Über die Weiche 160 wird der UmSLC-Steuereinheit 150 das Löschen des Fehlersignals bzw. die Rücknahme des Fehlersignals übermittelt.
  • Mit anderen Worten wird im korrekten Betriebsfall, wenn also die Fehlererkennungsfunktionalität korrekt ausgeführt wird, nachdem das UmSLC-Modul 150 die ALU-Fehlermeldung in Form des Fehlersignals erhalten hat, der ALU-Fehler bzw. dessen Simulation wieder abgeschaltet und die Rücknahme der ALU-Fehlermeldung in Form des Fehlersignals abgewartet.
  • Wird im Rahmen dieses zweiten Teilschrittes der Überprüfung der Fehlererkennungsfunktionalität der Datenverarbeitungseinrichtung 100 die Rücknahme bzw. das Löschen des Fehlersignals nicht festgestellt, kann wiederum auf eine Manipulation bzw. einen Angriff geschlossen werden, so dass die UmSLC-Steuereinheit 150 ein Alarmsignal ausgibt, das an dem Alarmsignalausgang 180 bereitgestellt wird. Nach Abschluss der Überprüfung der Fehlererkennungsfunktionalität der Datenverarbeitungseinrichtung 100 versetzt die UmSLC-Steuereinheit 150 auch die Weiche 160 in den neutralen Zustand zurück, so dass ein von der Fehlererkennungseinrichtung 120 erzeugtes Fehlersignal direkt an den Fehlersignalausgang 170 durchgeschaltet wird und nicht zu dem UmSLC-Modul 150 umgeleitet wird. Mit diesem letzten Schritt des Umschaltens der Weiche 160 ist die erfindungsgemäße Vorrichtung wieder in den Normalbetriebsmodus übergegangen. Mit anderen Worten wird dann die ALU-Alarmleitung wieder auf das ursprüngliche, nicht in 1 gezeigte Alarmmodul zurückgeschaltet.
  • Die beiden Manipulatoren 130, 140 können auf verschiedene Arten und Weisen ausgeführt sein. Im Fall der Verwendung eines Fehlercodes, beispielsweise im Rahmen einer Paritätsüberprüfung (Parity-Check) oder eines anderen fehlererkennenden Codes (EDC), können die Daten beispielsweise durch eine (bitweise) XOR-Verknüpfung (XOR = exclusive-OR = Exklusiv-ODER) manipuliert werden. Durch eine bitweise XOR-Verknüpfung kann so gezielt eine Invertierung einzelner Bits der Daten oder aber eine Invertierung des gesamten Datums hervorgerufen bzw. erzeugt werden. Alternativ oder ergänzend kann in den Manipulatoren 130, 140 auch eine Fehlersimulation eines „Stuck-At-1”- bzw. „Stuck-At-0”-Fehlers implementiert sein, bei denen einzelne Bits oder das ganze Datum auf einen vorbestimmten Wert, also je nach Fehler auf eine logische 1 oder eine logische 0, festgelegt bzw. modifiziert werden. In diesem Fall sollen die Fehlercodes bei der Überprüfung durch die Fehlererkennungseinrichtung 120 diese Fehler erkennen und den Fehler durch Erzeugen eines Fehlersignals an das UmSLC-Modul 150 melden.
  • Neben einer Beeinflussung durch eine XOR-Verknüpfung oder durch einen simulierten „Stuck-At-1”- bzw. „Stuck-At-0”-Fehler ist es durchaus auch denkbar, die beiden Manipulatoren 130, 140 mit der Möglichkeit einer Verschiebung der Bits des entsprechenden Datums zu implementieren. Hierbei kann die Verschiebung um eine vorbestimmte Anzahl Bits oder beispielsweise auch um eine von der UmSLC-Steuereinheit 150 bestimmte oder zufällige Zahl von Bits erfolgen. Ebenso kann die Richtung der Verschiebung vorbestimmt oder beispielsweise durch das UmSLC-Modul 150 bestimmbar sein. Darüber hinaus kann auch die Art der Verschiebung vorbestimmt bzw. von dem UmSLC-Modul 150 bestimmt werden, wobei unter der Art der Verschiebung die Frage verstanden wird, ob die Bits des betreffenden Datums zyklisch verschoben werden oder ob das Datum mit vorbestimmten, zufällig bestimmten oder von dem Datenwort abgeleiteten Bits aufgefüllt wird. Die Beeinflussung sollte jedoch vorteilhafter Weise so arbeiten, dass die Manipulation jedenfalls auch zu dieser Veränderung des Datums führt.
  • Ein weiteres Ausführungsbeispiel der vorliegenden Erfindung besteht darin, dass die UmSLC-Steuereinheit 150 nicht bzw. nicht ausschließlich die Eingangsdaten des Rechenwerks 110 beeinflusst, sondern auch das Rechenwerk 110 direkt beeinflusst, wie dies in 1 durch die gestrichelte Verbindung zwischen der UmSLC-Steuereinheit 150 und dem Rechenwerk 110 angedeutet ist. Ein solches Ausführungsbeispiel kann beispielsweise dadurch implementiert sein, dass das aus den Eingangsdaten abgeleitete Ausgangsdatum durch den Einsatz eines „nachgeschalteten” Manipulators modifiziert wird. Ein solcher „nachgeschalteter” Manipulator kann sowohl als Teil des Rechenwerks 110 wie auch als eigenständige Einheit, also vergleichbar zu den beiden Manipulatoren 130, 140, ausgeführt sein. Ein solcher „nachgeschalteter” Manipulator kann analog zu einem der beiden Manipulatoren 130, 140 ausgeformt sein, so dass auch dieser Manipulator beispielsweise über eine bitweise XOR-Verknüpfung eine teilweise Invertierung der Daten oder beispielsweise durch die Simulation eines „Stuck-At-1”- bzw. „Stuck-At-0”-Fehlers eine Modifikation der Daten erreichen kann. Ebenso ist für einen solchen Manipulator auch eine Verschiebung der Daten denkbar, wie dies bereits im Zusammenhang mit den beiden Manipulatoren 130, 140 erläutert wurde. Die Beeinflussung des Rechenwerks 110 kann selbstverständlich auch durch eine direkte Beeinflussung des Rechenwerks 110 erfolgen, so dass dieses auf Basis der beiden Eingangsdaten ein fehlerhaftes Ausgangsdatum bereitstellt, das ohne Beeinflussung durch die UmSLC-Steuereinheit 150 einen anderen Wert aufgewiesen hätte. Im Falle des Einsatzes fehlererkennender Codes (EDC) ist es darüber hinaus denkbar, das Rechenwerk 110 so beeinflussen, dass nur ein den „fehlererkennenden Code”, also den EDC umfassenden Teil des Ausgangsdatums manipuliert ist. Dies kann beispielsweise dadurch geschehen, dass ein Teil des Rechenwerks 110 beeinflusst wird, der den fehlererkennenden Code erzeugt.
  • Je nach konkreter Auslegung der Datenverarbeitungseinrichtung 100 kann unter Umständen auch die Implementierung der ersten Datentransferleitung 190 und der zweiten Datentransferleitung 200 zu der Fehlererkennungseinrichtung 120 entfallen. Dies ist beispielsweise dann der Fall, wenn die Überprüfung des Ausgangsdatums auf einen Fehler darin besteht, zu überprüfen, ob das Ausgangsdatum einen Wert aufweist, der in einer vorbestimmten Teilmenge aller möglichen Werte des Ausgangsdatums liegt. Ebenso kann die Implementierung der beiden Datentransferleitungen 190, 200 entfallen, wenn die Überprüfung des Ausgangsdatums auf das Vorliegen eines Fehlers darin besteht, den Wert eines einzelnen Bits zu überprüfen, um beispielsweise zu überprüfen, ob das Ausgangsdatum einen geraden oder ungeraden Wert aufweist. Des weiteren kann die Implementierung der beiden Datentransferleitungen 190, 200 entfallen, wenn beispielsweise im Fall einer Beeinflussung des Rechenwerks 110 bzw. bei Verwendung eines „nachgeschalteten” Manipulators einzelne Bits des Ausgangsdatums invertiert werden, so dass beispielsweise die Parität des der Fehlererkennungseinrichtung 120 übermittelten Ausgangsdatums von einem vorbestimmten oder der Fehlererkennungseinrichtung 120 übermittelten Wert abweicht. Je nach Auslegung der Datenverarbeitungseinrichtung 100 ist so eine mehr oder weniger komplexe Implementierung eines Rechenwerks bzw. einer ALU der Teil der Fehlererkennungseinrichtung 120 notwendig.
  • Die obigen Ausführungsbeispiele ermöglichen damit vorteilhaft die Überprüfung einer Angriffsdetektion für Rechenwerke, die auch als ALU (ALU = Arithmetic Logic Unit) bezeichnet werden und Teil beispielsweise einer CPU (CPU = central processing unit = Zentralprozessor), eines Prozessors, eines (Pseudo-)Zufallszahlengenerators, eines Spezialprozessors, eines Kryptoprozessors oder einer anderen integrierten Schaltung ausgeführt sein können. Die obigen Vorrichtungen zur Überprüfung einer Fehlererkennungsfunktionalität einer Datenverarbeitungseinrichtung 100 ermöglichen es insbesondere, neuartige logische Gegenmaßnahmen während des Betriebs auf die Erkennungsmöglichkeit von Angriffen hin, also auf ihre Wirksamkeit hin, zu testen. Sie liefern somit eine neuartige UmSLC-Funktion für die Alarmeinheit zur Absicherung der ALU bzw. des Rechenwerks 110 und ermöglichen es somit, eine neuartige UmSLC für die Überprüfung einer Angriffdetektion auf eine CPU bzw. eine ALU einer CPU anzuwenden.
  • 2 zeigt ein Blockschaltbild eines zweiten Ausführungsbeispiels einer erfindungsgemäßen Vorrichtung zum Überprüfen einer Fehlererkennungsfunktionalität einer Datenverarbeitungseinrichtung 300. Die Datenverarbeitungseinrichtung 300 weist ein erstes Rechenwerk 310-1 und ein zweites Rechenwerk 310-2 auf. Sowohl das erste Rechenwerk 310-1 wie auch das zweite Rechenwerk 310-2 sind jeweils mit einem Ausgang an eine Fehlererkennungseinrichtung 320 angeschlossen. Die beiden Rechenwerke 310-1, 310-2 weisen jeweils einen Eingang für ein erstes Eingangsdatum bzw. ein aus dem ersten Eingangsdatum abgeleitetes Datum und einen zweiten Eingang für ein zweites Eingangsdatum bzw. für ein aus dem zweiten Eingangsdatum abgeleitetes Datum auf. Hierbei ist jeweils der erste Eingang der beiden Rechenwerke 310-1, 310-2 mit einem ersten Manipulator 330-1, 330-2 und jeweils der zweite Eingang der beiden Rechenwerke 310-1, 310-2 mit jeweils einem zweiten Manipulator 340-1, 340-2 verbunden. Die beiden ersten Manipulatoren 330-1, 330-2 sind hierbei jeweils mit der ersten Eingangsdatenleitung verbunden. Die zweiten Manipulatoren 340-1, 340-2 sind mit der jeweils zweiten Eingangsdatenleitung verbunden.
  • Die vier Manipulatoren 330-1, 330-2, 340-1, 340-2 sind jeweils über eine Steuerleitung mit einer UmSLC-Steuereinheit 350 verbunden. Darüber hinaus ist die UmSLC-Steuereinheit 350 mit einer Weiche 360 gekoppelt, die ihrerseits mit der Fehlererkennungseinrichtung 320 und einem Fehlersignalanschluss 370 verbunden ist. Die UmSLC-Steuereinheit 350 ist außerdem mit einem Alarmsignalausgang 380 verbunden. Die UmSLC-Steuereinheit 350, die Weiche 360 und die vier Manipulatoren 330-1, 330-2, 340-1, 340-2 bilden so eine Kontrolleinrichtung 410.
  • Die Funktionsweise der Datenverarbeitungseinrichtung 300 in 2 unterscheidet sich von der in 1 gezeigten Datenverarbeitungseinrichtung 100 nur geringfügig. Im Normalbetriebsmodus, wenn also die Auslösebedingung nicht erfüllt ist, sind die Weiche 360 und die vier Manipulatoren 330-1, 330-2, 340-1, 340-2 jeweils in einem neutralen Zustand. Das bedeutet, dass beispielsweise die Weiche 360 die Fehlererkennungseinrichtung 320 mit dem Fehlersignalausgang 370 verbindet. Die vier Manipulatoren 330-1, 330-2, 340-1, 340-2 beeinflussen die Daten, die sie passieren, nicht, so dass aufgrund der Verschaltung der Eingänge der beiden Rechenwerke 310-1, 310-2 im Falle einer fehlerfrei arbeitenden Datenverarbeitungseinrichtung 300 identische Ergebnisse jeweils als Ausgangsdaten der Fehlererkennungseinrichtung 320 zur Verfügung stellen. In diesem Fall kann die in der Fehlererkennungseinrichtung 320 implementierte Fehlererkennungsfunktionalität darin bestehen, die beiden Ausgangsdaten der beiden Rechenwerke 310-1, 310-2 miteinander zu vergleichen und im Fall einer Abweichung der beiden Ausgangsdaten der beiden Rechenwerke 310-1, 310-2 ein Fehlersignal auszugeben.
  • Darüber hinaus besteht die Möglichkeit, als neutralen Zustand des ersten Manipulators 330-2 und des zweiten Manipulators 340-2 des zweiten Rechenwerks 310-2 eine vollständige bitweise Invertierung der Eingangsdaten durchzuführen. In diesem Fall liefern die beiden Rechenwerke 310-1, 310-2 nicht mehr identische Ergebnisse. Vielmehr liefert das zweite Rechenwerk 310-2 ein auf Basis der (teilweise) invertierten Eingangsdaten ermitteltes Ausgangsdatum, das der Fehlererkennungseinrichtung 320 übermittelt wird. In diesem Fall muss im Allgemeinen ein komplexerer Vergleich der Ausgangsdaten der beiden Rechenwerke 310-1, 310-2 in der Fehlererkennungseinrichtung 320 implementiert werden, da in diesem Fall die beiden Ausgangsdaten im Allgemeinen eine kompliziertere Beziehung zueinander aufweisen. Durch die Verwendung des zweiten Rechenwerks 310-2 ist die Implementierung eines Paritätsvergleichs bzw. eines fehlererkennenden Codes (EDC) nicht notwendig. Mit anderen Worten kann alternativ zur expliziten Verwendung einer Fehlererkennungsfunktionalität, beispielsweise in Form eines Paritäts-Vergleichs oder einer Verwendung eines anderen fehlererkennenden Codes (EDC), auch ein zweites Rechenwerk bzw. eine zweite ALU 310-2 parallel die gleichen oder veränderte, beispielsweise invertierte, Daten verrechnen, welche in einem weiteren Schritt in einer Fehlererkennungseinrichtung 320 gegen die Ergebnisse der ersten ALU 310-1 verglichen werden.
  • Ist die Auslösebedingung erfüllt, wechselt die Datenverarbeitungseinrichtung 300, und damit die UmSLC-Steuereinheit 350, von dem Normalbetriebsmodus in einen Überprüfungsmodus. Auch bei der in 2 gezeigten Datenverarbeitungseinrichtung 300 wird hierbei die Weiche 360 so angesteuert, dass ein von der Fehlererkennungseinrichtung 320 ausgegebenes Fehlersignal blockiert und nicht an den Fehlersignalausgang 370 durchgelassen wird. Vielmehr wird ein von der Fehlererkennungseinrichtung 320 ausgegebenes Fehlersignal an die UmSLC-Steuereinheit 350 umgeleitet bzw. weitergeleitet. Darüber hinaus wird einer oder mehrere der Manipulatoren 330-1, 330-2, 340-1, 340-2 angesteuert und somit aus dem neutralen Zustand gebracht. Im Fall, dass der neutrale Zustand der Manipulatoren 330-1, 330-2, 340-1, 340-2 darin besteht, die die Manipulatoren passierenden Daten unverändert zu lassen, kommt es nun aufgrund der Ansteuerung eines oder mehrerer Manipulatoren zu abweichenden Ausgangsdaten der beiden Rechenwerke 310-1, 310-2. Aufgrund der unterschiedlichen Ausgangsdatenworte, die der Fehlererkennungseinrichtung 320 zur Verfügung gestellt werden, sollte diese einen Fehler feststellen und gibt daraufhin ein Fehlersignal aus, das von der Weiche 360 dem UmSLC-Modul 350 weitergeleitet und nicht zu dem Fehlersignalausgang 370 durchgelassen wird.
  • Empfängt die UmSLC-Steuereinheit 350 auf eine Beeinflussung der Eingangsdaten durch die Manipulatoren 330-1, 330-2, 340-1, 340-2 hin von der Fehlererkennungseinrichtung 320 über die Weiche 360 kein Fehlersignal, so kann auf eine Manipulation der Fehlererkennungseinrichtung 320 bzw. einen Angriff geschlossen werden, woraufhin die UmSLC-Steuereinheit 350 an dem Alarmsignalausgang 380 ein Alarmsignal zur Verfügung stellt. Das Alarmsignal kann von einer nicht in 2 gezeigten externen Komponente an dem Alarmsignalausgang 380 abgegriffen werden. Auf das Alarmsignal hin können entsprechende Maßnahmen, beispielsweise das Einleiten eines Sicherheitsresets, das Löschen sensibler bzw. sicherheitsrelevanter Daten oder das gezielte Zerstören einzelner Komponenten des Systems, das die Datenverarbeitungseinrichtung 300 umfasst, eingeleitet werden, um das System unbrauchbar zu machen.
  • In einem korrekten Betriebsfall jedoch, wenn also die UmSLC-Steuereinheit 350 die ALU-Fehlermeldung in Form des Fehlersignals erhalten hat, wird der ALU-Fehler bzw. dessen Simulation wieder abgeschaltet und die Rücknahme der ALU-Fehlermeldung in Form des Fehlersignals abgewartet. Das heißt, dass die Manipulatoren 330-1, 330-2, 340-1, 340-2 durch die UmSLC-Steuereinheit 350 nach dem Empfang des Fehlersignals wiederum in ihren neutralen Zustand geschaltet werden. Wird daraufhin, aufgrund einer erneuten Berechnung der Ausgangsdaten durch die beiden Rechenwerke 310-1, 310-2, von der Fehlererkennungseinrichtung 320 über die Weiche 360 kein Fehlersignal der UmSLC-Steuereinheit 350 übermittelt, wird auch die Weiche 360 wieder in ihren neutralen Zustand gebracht, indem ein mögliches Fehlersignal von der Fehlererkennungseinrichtung 320 zu dem Fehlersignalausgang 370 gelangen kann und nicht blockiert wird. Mit dem Schalten der Weiche 360 in den neutralen Zustand ist auch in diesem Ausführungsbeispiel die Überprüfung der Fehlererkennungsfunktionalität der Datenverarbeitungseinrichtung 300 abgeschlossen und die Datenverarbeitungseinrichtung 300 wechselt wieder von den Überprüfungsmodus in den Normalbetriebsmodus.
  • Bleibt jedoch nach der Deaktivierung der Manipulatoren 330-1, 330-2, 340-1, 340-2, also dem Schalten der Manipulatoren in den neutralen Zustand, das Fehlersignal bestehen bzw. wird nicht gelöscht, geht die UmSLC-Steuereinheit 350 auch hier von einem Angriff bzw. eine Manipulation aus und gibt an dem Alarmsignalausgang 380 ein einen Angriff anzeigendes Alarmsignal aus.
  • Ähnlich wie bereits im Zusammenhang mit dem in 1 gezeigten Ausführungsbeispiel einer Datenverarbeitungseinrichtung 100 können die Manipulatoren 330-1, 330-2, 340-1, 340-2 so ausgelegt sein, dass sie die Daten durch eine (bitweise) XOR-Verknüpfung manipulieren, was zu einer Invertierung einzelner oder aller Bits der Eingangsdaten führt. Darüber hinaus besteht zusätzlich oder alternativ die Möglichkeit, die Daten, in diesem Fall also die Eingangsdaten der beiden Rechenwerke 310-1, 310-2, durch einen „Stuck-At-1”- bzw. „Stuck-At-0”-Fehler zu simulieren, die Manipulation der Daten also zu forcieren. Ebenso kann im Rahmen der Manipulatoren 330-1, 330-2, 340-1, 340-2 eine bereits im Zusammenhang mit den Manipulatoren 130, 140 aus 1 beschriebene Verschiebung der Bits der Daten, die die Manipulatoren passieren, angewendet werden. Bei der Verwendung eines Systems, beispielsweise einer CPU, eines (Pseudo-)Zufallszahlengenerators, eines Spezialprozessors, eines Kryptoprozessors, eines Prozessors oder einer anderen integrierten Schaltung, mit zwei ALU-Rechenwerken 310-1, 310-2 werden die Eingangsdaten zu einem oder zu beiden Rechenwerken bzw. ALU-Modulen 310-1, 310-2 verändert. Hierbei ist zu beachten, dass im Falle, dass die Eingangsdaten beider Rechenwerke 310-1, 310-2 verändert werden, diese Veränderung in unterschiedlicher Weise erfolgen muss, um sicherzustellen, dass ein Fehler in Form zweier voneinander abweichender Ausgangsdaten erzeugt wird. Die Auslegung der Manipulatoren 330-1, 330-2, 340-1, 340-2 muss so erfolgen, dass die ALU-Kontrollschaltung bzw. die Fehlererkennungseinrichtung 320 die absichtlich fehlerhafte bzw. unterschiedliche Berechnung der beiden Rechenwerke bzw. der ALUs 310-1, 310-2 erkennen und den Fehler in Form eines Fehlersignals an das UmSLC-Modul 350 melden kann.
  • Unter den bereits oben beschriebenen Vorbedingungen des Überprüfungsmodus führen die unterschiedlichen Berechnungen der beiden ALUs bzw. der beiden Rechenwerke 310-1, 310-2 dann nicht zu einem Alarm in Form eines Fehlersignals, sondern sind Teil des korrekten Testverhaltens im Rahmen der neuartigen UmSLC-Funktion, die durch das UmSLC-Modul 350 bzw. die UmSLC 350 durchgeführt wird.
  • Auch bei dem in 2 gezeigten Ausführungsbeispiel sind verschiedene Modifikationen, die zu neuen Ausführungsbeispielen führen, denkbar. Ist beispielsweise der neutrale Zustand der beiden Manipulatoren 330-2, 340-2 des zweiten Rechenwerks 310-2 ein Zustand, in dem einzelne oder alle Bits der Eingangsdaten beispielsweise durch Anwendung einer XOR-Verknüpfung im Rahmen der Manipulatoren invertiert werden, sollte in der Fehlererkennungseinrichtung 320 im Allgemeinen ein komplexerer Fehlererkennungsalgorithmus als ein einfacher Vergleich der beiden Ausgangsdaten der beiden Rechenwerke 310-1, 310-2 implementiert werden, der je nach ausgeführter Operation durch die beiden Rechenwerke 310-1, 310-2 unterschiedlich sein kann.
  • Darüber hinaus besteht die Möglichkeit, dass die UmSLC-Steuereinheit 350 auch die beiden Rechenwerke 310-1, 310-2 einzeln bzw. auch zusammen direkt beeinflusst. Beispielsweise ist es denkbar, dass die Beeinflussung in diesem Fall so aussieht, dass das von den Rechenwerken 310-1, 310-2 ausgegebene Ausgangsdatum beeinflusst bzw. manipuliert wird. Hierbei können die gleichen Beeinflussungen bzw. Manipulationen angewendet werden, wie sie bezugnehmend auf die Manipulatoren 330-1, 330-2, 340-1, 340-2 beschrieben wurden. In diesem Fall könnte also beispielsweise eine Beeinflussung der Rechenwerke 310-1, 310-2 durch die UmSLC-Steuereinheit 350 darin bestehen, einen „nachgeschalteten” Manipulator zu aktivieren und anschließend wieder zu deaktivieren. Darüber hinaus können auch hier die beiden Rechenwerke 310-1, 310-2 so ausgeführt sein, dass eine Manipulation die korrekte Berechnung der Ausgangsdaten auf Basis der Eingangsdaten durch eine Manipulation der Teile der Rechenwerke 310-1, 310-2 durchgeführt wird, die die eigentliche Berechnung, also die Verknüpfung der Eingangsdaten zu den Ausgangsdaten durchführt.
  • Eine weitere Modifikation des in 2 gezeigten Ausführungsbeispiels besteht darin, auch hier Fehlercodes, beispielsweise eine Paritäts-Überprüfung (Parity) oder andere fehlererkennende Codes (EDC) zu verwenden. Bei der Verwendung von Fehlercodes mit einem oder mehreren Rechenwerken bzw. ALUs 310-1, 310-2 können die Daten, also die Eingangsdaten oder die Ausgangsdaten, wiederum durch eine XOR-Verknüpfung, die zu einer Invertierung einzelner oder aller Bits der betroffenen Daten führt, durch Simulation eines „Stuck-At-1”- bzw. „Stuck-At-0”-Fehlers oder durch eine bereits beschriebene Verschiebung der Bits modifiziert werden. In diesem Fall ist ebenfalls eine Manipulation der Teile der Rechenwerke 310-1, 310-2 denkbar, die für die Berechnung der fehlererkennenden Codes (EDC) zuständig sind. In diesem Fall kann die Beeinflussung der beiden Rechenwerke 310-1, 310-2 darin bestehen, nur die fehlererkennenden Codes zu manipulieren.
  • Es ist somit auch eine Kombination oder eine sequentielle Nutzung der in den 1 und 2 beschriebenen Ausführungsbeispiele denkbar. Je nach Ausführung kann es dabei notwendig sein, der Fehlererkennungseinrichtung, also im Falle des in 2 gezeigten Ausführungsbeispiels der Fehlererkennungseinrichtung 320, neben den Ausgangsdaten der beiden Rechenwerke 310-1, 310-2, also dem Ausgangsdatum des ersten Rechenwerks 310-1 und einem zweiten Ausgangsdatum des zweiten Rechenwerks 310-2, auch die Eingangsdaten in Form weiterer Eingangsdaten der beiden Rechenwerke zur Verfügung zu stellen.
  • Eine weitere Modifikation des in 2 gezeigten Ausführungsbeispiels besteht darin, im Normalbetriebsmodus teilweise die Fehlererkennungsfunktionalität, also die Fehlererkennungseinrichtung 320, nicht zu verwenden, um die beiden Rechenwerke 310-1, 310-2 getrennt, für unterschiedliche Berechnungen zu verwenden, um beispielsweise eine Berechnung zu beschleunigen. In diesem Fall ist es denkbar, die Fehlererkennungsfunktionalität „nur gelegentlich” zu verwenden, also nur bei Erfüllen einer weiteren Auslösebedingung. In diesem Fall würde die Fehlererkennungsfunktionalität durch ein intermettierendes Erfüllen der weiteren Auslösebedingung initiiert. Darüber hinaus ist es in diesem Fall notwendig, abweichend von der in 2 gezeigten Verschaltung den beiden Rechenwerken 310-1, 310-2 unterschiedliche, also nicht voneinander abgeleitete Eingangsdaten zur Verfügung zu stellen.
  • Des weiteren sollte darauf hingewiesen werden, dass das zweite Rechenwerk 310-2 auch als Teil der Fehlererkennungseinrichtung 120 des in 1 gezeigten Ausführungsbeispiels verstanden werden kann. Es besteht somit prinzipiell die Möglichkeit, das in 2 gezeigte Ausführungsbeispiel auch in das in 1 gezeigte Ausführungsbeispiel zu überführen. Im Unterschied allerdings hierzu ermöglicht das in 2 gezeigte Ausführungsbeispiel in diesem Fall auch eine Beeinflussung der Fehlererkennungseinrichtung durch die beiden Manipulatoren 330-2, 340-2, was einer Beeinflussung der Fehlererkennungseinrichtung 120 in 1 entsprechen würde.
  • Des weiteren sollte darauf hingewiesen werden, dass abweichend von den bisher beschriebenen Ausführungsbeispielen es nicht notwendig ist, den Rechenwerken jeweils genau zwei Eingangsdaten zur Verfügung zu stellen. Es ist vielmehr denkbar, dass die Rechenwerke jeweils nur ein einzelnes Eingangsdatum oder eine Mehrzahl von Eingangsdaten erfordern bzw. erhalten.
  • Die Datenverarbeitungseinrichtungen können hierbei Teil einer CPU, eines (Pseudo-)Zufallszahlengenerators, eines Kryptoprozessors, eines Spezialprozessors, eines Prozessors, einer Speicherschaltung oder einer anderen integrierten Schaltung sein, die wiederum Teil eines Systems, etwa eines Computers, eines PC (Personalcomputer), eines PDA (PDA = personal data assistant = persönlicher Datenassistent), eine Chipkarte oder eines anderen prozessorgestützten Systems ist, das einen Prozessor umfasst.
  • Abhängig von den Gegebenheiten kann das erfindungsgemäße Verfahren zur Überprüfung einer Fehlererkennungsfunktionalität einer Datenverarbeitungseinrichtung in Hardware oder in Software implementiert werden. Die Implementierung kann auf einem digitalen Speichermedium, insbesondere einer Diskette, CD oder DVD mit elektronisch auslesbaren Steuersignalen erfolgen, die so mit einem programmierbaren Computersystem zusammenwirken können, dass das erfindungsgemäße Verfahren zum Überprüfen einer Fehlererkennungsfunktionalität einer Datenverarbeitungseinrichtung ausgeführt wird. Der Prozessor kann hierbei von einem Computer, einer Chipkarte (Smartcard) oder einem anderen integrierten Schaltkreis gebildet sein.
  • Bezugszeichenliste
  • 100
    Datenverarbeitungseinrichtung
    110
    Rechenwerk
    120
    Fehlererkennungseinrichtung
    130
    erster Manipulator
    140
    zweiter Manipulator
    150
    UmSLC-Steuereinheit
    160
    Weiche
    170
    Fehlersignalausgang
    180
    Alarmsignalausgang
    190
    erste Datentransferleitung
    200
    zweite Datentransferleitung
    210
    Kontrolleinrichtung
    300
    Datenverarbeitungseinrichtung
    310-1
    erstes Rechenwerk
    310-2
    zweites Rechenwerk
    320
    Fehlererkennungseinrichtung
    330-1
    erster Manipulator
    330-2
    erster Manipulator
    340-1
    zweiter Manipulator
    340-2
    zweiter Manipulator
    350
    UmSLC-Steuereinheit
    360
    Weiche
    370
    Fehlersignalausgang
    380
    Alarmsignalausgang
    410
    Kontrolleinrichtung

Claims (11)

  1. Vorrichtung zur Überprüfung einer Fehlererkennungsfunktionalität auf Angriffe, mit folgenden Merkmalen: einer Datenverarbeitungseinrichtung (100; 300) mit einer Recheneinrichtung (110; 310-1), die ausgelegt ist, um basierend auf mindestens einem Eingangsdatum ein Ausgangsdatum bereitzustellen; einer Fehlererkennungseinrichtung (120; 320), die ausgebildet ist, um die Fehlererkennungsfunktionalität auszuführen und bei einer korrekten Ausführung der Fehlererkennungsfunktionalität einen Fehler des Ausgangsdatums zu erkennen und, falls ein Fehler vorliegt, ein Fehlersignal zu erzeugen; und einer Kontrolleinrichtung (210; 410), die ausgebildet ist, um in einem Normalbetriebsmodus das Fehlersignal an einen Fehlersignalausgang (170; 370) durchzulassen und in einem Überprüfungsmodus das Fehlersignal zu blockieren, um das Fehlersignal nicht an den Fehlersignalausgang (170; 370) durchzulassen, und die ferner ausgebildet ist, um die Recheneinrichtung (110; 310-1) oder mindestens ein Eingangsdatum so zu beeinflussen, dass die Fehlererkennungseinrichtung (120; 320) bei der korrekten Ausführung der Fehlererkennungsfunktionalität einen Fehler erkennt, und, falls auf die Beeinflussung hin kein Fehlersignal empfangen wird, auf einen Angriff auf die Fehlererkennungseinrichtung (120; 320) zu schließen und ein Alarmsignal auszugeben.
  2. Vorrichtung nach Anspruch 1, bei der die Fehlererkennungseinrichtung (120) ausgebildet ist, um abhängig von mindestens einem Eingangsdatum und dem Ausgangsdatum ein Vorliegen eines Fehlers zu erkennen.
  3. Vorrichtung nach Anspruch 1, bei der die Datenverarbeitungseinrichtung (300) eine weitere Recheneinrichtung (310-2) aufweist, die ausgebildet ist, um basierend auf dem mindestens einen Eingangsdatum ein weiteres Ausgangsdatum bereitzustellen, und bei der die Fehlererkennungseinrichtung (320) ausgebildet ist, um abhängig von dem Ausgangsdatum und dem weiteren Ausgangsdatum ein Vorliegen eines Fehlers zu erkennen.
  4. Vorrichtung nach Anspruch 3, bei der die Kontrolleinrichtung (410) weiterhin ausgebildet ist, um die weitere Recheneinrichtung (310-2) oder das mindestens eine Eingangsdatum beeinflussen zu können, um bei einer korrekten Ausführung der Fehlererkennungsfunktionalität durch die Fehlererkennungseinrichtung (320) zu einem Fehler zu führen.
  5. Vorrichtung nach einem der Ansprüche 1 oder 2, bei der die Fehlererkennungseinrichtung (120; 320) ausgebildet ist, auf einen Fehler zu schließen, wenn das Ausgangsdatum eine vorbestimmte Bedingung erfüllt.
  6. Vorrichtung nach einem der vorhergehenden Ansprüche, bei der die Fehlererkennungseinrichtung (120; 320) ausgebildet ist, um auf einen Fehler zu schließen, wenn das Ausgangsdatum und das mindestens eine Eingangsdatum eine vorbestimmte Beziehung zueinander nicht aufweisen.
  7. Vorrichtung nach einem der vorhergehenden Ansprüche, bei der die Kontrolleinrichtung (210; 410) ausgebildet ist, um in den Überprüfungsmodus zu wechseln, wenn eine vorbestimmte Auslösebedingung erfüllt ist, und in den Normalbetriebsmodus zu wechseln, wenn die vorbestimmte Auslösebedingung nicht erfüllt ist.
  8. Vorrichtung nach Anspruch 7, bei der die vorbestimmte Auslösebedingung intermittierend erfüllt ist.
  9. Vorrichtung nach einem der vorhergehenden Ansprüche, bei der die Kontrolleinrichtung (210; 410) weiterhin ausgebildet ist, um nach dem Empfang des Fehlersignals auf die Beeinflussung hin die Fehlererkennungseinrichtung (120; 320) ohne eine Beeinflussung zur Überprüfung des Ausgangsdatums auf einen Fehler hin zu veranlassen und, falls die Kontrolleinrichtung (210; 410) daraufhin weiterhin das Fehlersignal von der Fehlererkennungseinrichtung (120; 320) empfängt, das Alarmsignal auszugeben.
  10. Vorrichtung nach einem der vorhergehenden Ansprüche, bei der die Vorrichtung in einer integrierten Schaltung umfasst ist.
  11. Verfahren zum Überprüfen einer Fehlererkennungsfunktionalität einer Datenverarbeitungseinrichtung (100; 300) auf Angriffe, wobei die Datenverarbeitungseinrichtung (100; 300) eine Recheneinrichtung (110; 310-1) aufweist, die ausgelegt ist, um basierend auf mindestens einem Eingangsdatum ein Ausgangsdatum bereitzustellen; und eine Fehlererkennungseinrichtung (120; 320) aufweist, die ausgebildet ist, um die Fehlererkennungsfunktionalität auszuführen und bei einer korrekten Ausführung der Fehlererkennungsfunktionalität einen Fehler des Ausgangsdatums zu erkennen und, falls ein Fehler vorliegt, ein Fehlersignal zu erzeugen, mit folgenden Schritten: in einem Normalbetriebsmodus: – Ausführen der Fehlererkennungsfunktionalität durch die Fehlererkennungseinrichtung (120; 320); – Erzeugen des Fehlersignals durch die Fehlererkennungseinrichtung (120; 320), wenn bei dem Ausführen der Fehlererkennungsfunktionalität ein Fehler des Ausgabedatums erkannt wurde; – Durchlassen des Fehlersignals an einen Fehlersignalausgang (170; 370); in einem Überprüfungsmodus: – Blockieren des Fehlersignals, um dasselbe nicht an den Fehlersignalausgang (170; 370) durchzulassen; – Beeinflussen der Recheneinrichtung (110; 310-1) oder mindestens eines Eingangsdatums, so dass die Fehlererkennungseinrichtung (120; 320) bei der korrekten Ausführung der Fehlererkennungsfunktionalität einen Fehler erkennt; – Ausführen der Fehlererkennungsfunktionalität durch die Fehlererkennungseinrichtung (120; 320); – Erzeugen des Fehlersignals durch die Fehlererkennungseinrichtung (120; 320), wenn bei dem Ausführen der Fehlererkennungsfunktionalität ein Fehler des Ausgabedatums erkannt wurde; – Schließen auf einen Angriff auf die Fehlererkennungseinrichtung (120; 320) und Ausgeben eines Alarmsignals, falls die Fehlererkennungseinrichtung (120; 320) kein Fehlersignal ausgibt.
DE102006001872A 2006-01-13 2006-01-13 Vorrichtung und Verfahren zum Überprüfen einer Fehlererkennungsfunktionalität einer Datenverarbeitungseinrichtung auf Angriffe Active DE102006001872B4 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102006001872A DE102006001872B4 (de) 2006-01-13 2006-01-13 Vorrichtung und Verfahren zum Überprüfen einer Fehlererkennungsfunktionalität einer Datenverarbeitungseinrichtung auf Angriffe
US11/622,775 US8918679B2 (en) 2006-01-13 2007-01-12 Apparatus and method for checking an error detection functionality of a data processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102006001872A DE102006001872B4 (de) 2006-01-13 2006-01-13 Vorrichtung und Verfahren zum Überprüfen einer Fehlererkennungsfunktionalität einer Datenverarbeitungseinrichtung auf Angriffe

Publications (2)

Publication Number Publication Date
DE102006001872A1 DE102006001872A1 (de) 2007-07-19
DE102006001872B4 true DE102006001872B4 (de) 2013-08-22

Family

ID=38189993

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102006001872A Active DE102006001872B4 (de) 2006-01-13 2006-01-13 Vorrichtung und Verfahren zum Überprüfen einer Fehlererkennungsfunktionalität einer Datenverarbeitungseinrichtung auf Angriffe

Country Status (2)

Country Link
US (1) US8918679B2 (de)
DE (1) DE102006001872B4 (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101436982B1 (ko) * 2007-10-12 2014-09-03 삼성전자주식회사 반도체 집적 회로 및 그것의 검사 방법
DE102007053295B4 (de) 2007-11-08 2010-10-28 Infineon Technologies Ag Schaltungsanordnung und Verfahren zur Funktionsüberprüfung einer Logikschaltung in einer Schaltungsanordnung
DE102007055654A1 (de) * 2007-11-21 2009-05-28 Giesecke & Devrient Gmbh Tragbarer Datenträger
US20110138249A1 (en) * 2008-09-11 2011-06-09 Infineon Technologies Ag Apparatus and Method for Detecting an Error Within a Plurality of Coded Binary Words Coded by an Error Correction Code
US8898535B2 (en) * 2010-12-03 2014-11-25 Infineon Technologies Ag Apparatus and method for detecting an error within a coded binary word
FR2968855B1 (fr) * 2010-12-14 2012-12-07 Schneider Electric Ind Sas Procede et dispositif de surveillance d'un dispositif equipe d'un microprocesseur
US9118351B2 (en) 2012-02-15 2015-08-25 Infineon Technologies Ag System and method for signature-based redundancy comparison
DE102012108981A1 (de) * 2012-09-24 2014-03-27 Infineon Technologies Ag Ein-/Ausgabe-Modul, Datenverarbeitungsvorrichtung und Verfahren zum Überprüfen der Funktion einer Datenverarbeitungsvorrichtung
AP2015008828A0 (en) * 2013-04-05 2015-10-31 Visa Int Service Ass Systems, methods and devices for transacting
WO2015008116A1 (en) * 2013-07-18 2015-01-22 Freescale Semiconductor, Inc. Fault detection apparatus and method
GB2528443B (en) 2014-07-21 2016-12-14 Ibm Checking arithmetic computations
DE102015209123A1 (de) * 2015-05-19 2016-11-24 Robert Bosch Gmbh Recheneinrichtung und Betriebsverfahren hierfür
US10270471B2 (en) * 2016-08-02 2019-04-23 Taiwan Semiconductor Manufacturing Company Ltd. Memory system having ECC self-checking function and associated method

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3699323A (en) * 1970-12-23 1972-10-17 Ibm Error detecting and correcting system and method
US5515383A (en) * 1991-05-28 1996-05-07 The Boeing Company Built-in self-test system and method for self test of an integrated circuit
US5686885A (en) * 1995-09-28 1997-11-11 Interactive Technologies, Inc. Sensor test method and apparatus
US5872790A (en) * 1997-02-28 1999-02-16 International Business Machines Corporation ECC memory multi-bit error generator
US6799287B1 (en) * 2000-05-01 2004-09-28 Hewlett-Packard Development Company, L.P. Method and apparatus for verifying error correcting codes

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2407241A1 (de) * 1974-02-15 1975-08-21 Ibm Deutschland Verfahren und anordnung zur erhoehung der verfuegbarkeit eines digitalrechners
US4048481A (en) * 1974-12-17 1977-09-13 Honeywell Information Systems Inc. Diagnostic testing apparatus and method
DE3539415A1 (de) 1985-11-07 1987-05-14 Bosch Gmbh Robert Verfahren und schaltungsanordnung zum erkennen und verdecken von fehlern in einem digitalen videosignal
DE3729882A1 (de) 1987-09-05 1989-03-23 Bosch Gmbh Robert Verfahren und anordnung zur messung der qualitaet von digitalen signalen
US5251219A (en) 1990-09-10 1993-10-05 Advanced Micro Devices, Inc. Error detection and correction circuit
US5341428A (en) * 1992-01-30 1994-08-23 Gbs Systems Corporation Multiple cross-check document verification system
US5736777A (en) * 1995-12-29 1998-04-07 Intel Corporation Method and apparatus for fast self-destruction of a CMOS integrated circuit
US5872910A (en) * 1996-12-27 1999-02-16 Unisys Corporation Parity-error injection system for an instruction processor
US6658606B1 (en) 1997-10-29 2003-12-02 Continental Teves Ag & Co. Ohg Method and device for checking an error control procedure of a circuit
JP4136086B2 (ja) 1998-06-30 2008-08-20 富士通株式会社 プリンタ制御装置および印刷システム
US6223309B1 (en) 1998-10-02 2001-04-24 International Business Machines Corporation Method and apparatus for ECC logic test
JP2001175630A (ja) 1999-12-14 2001-06-29 Fujitsu Ltd データ送信装置、データ受信装置、データ転送装置および方法
US6654648B2 (en) * 2000-04-03 2003-11-25 Toyota Jidosha Kabushiki Kaisha Technique of monitoring abnormality in plurality of CPUs or controllers
US20020152425A1 (en) * 2001-04-12 2002-10-17 David Chaiken Distributed restart in a multiple processor system
US20030182611A1 (en) 2002-03-19 2003-09-25 Chung-Che Wu Method for verifying error correction code function of a computer system
US7444551B1 (en) * 2002-12-16 2008-10-28 Nvidia Corporation Method and apparatus for system status monitoring, testing and restoration
EP1496435A1 (de) * 2003-07-11 2005-01-12 Yogitech Spa Gesicherte Mikrokontroller, Verfahren zum Entwurf eines gesichertes Mikrokontrollers, und Computerprogrammprodukt dafür
US7406628B2 (en) * 2003-07-15 2008-07-29 Seagate Technology Llc Simulated error injection system in target device for testing host system
JP3940713B2 (ja) 2003-09-01 2007-07-04 株式会社東芝 半導体装置
JP2005228039A (ja) 2004-02-13 2005-08-25 Toshiba Corp 半導体装置及びそのメモリテスト方法
US7546585B2 (en) * 2005-01-24 2009-06-09 International Business Machines Corporation Method, system and computer program product for testing computer programs

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3699323A (en) * 1970-12-23 1972-10-17 Ibm Error detecting and correcting system and method
US5515383A (en) * 1991-05-28 1996-05-07 The Boeing Company Built-in self-test system and method for self test of an integrated circuit
US5686885A (en) * 1995-09-28 1997-11-11 Interactive Technologies, Inc. Sensor test method and apparatus
US5872790A (en) * 1997-02-28 1999-02-16 International Business Machines Corporation ECC memory multi-bit error generator
US6799287B1 (en) * 2000-05-01 2004-09-28 Hewlett-Packard Development Company, L.P. Method and apparatus for verifying error correcting codes

Also Published As

Publication number Publication date
US20070277070A1 (en) 2007-11-29
US8918679B2 (en) 2014-12-23
DE102006001872A1 (de) 2007-07-19

Similar Documents

Publication Publication Date Title
DE102006001872B4 (de) Vorrichtung und Verfahren zum Überprüfen einer Fehlererkennungsfunktionalität einer Datenverarbeitungseinrichtung auf Angriffe
DE102006001873B4 (de) Vorrichtung und Verfahren zum Überprüfen einer Fehlererkennungsfunktionalität einer Speicherschaltung
DE60117066T2 (de) Verfahren und Vorrichtung zum Überprüfen von fehlerkorrigierenden Codes
US8117512B2 (en) Failure detection and mitigation in logic circuits
EP1738233B2 (de) Sicherheitssteuerung
DE102011112174B4 (de) Vorrichtung und Verfahren zum Schutz und zur zerstörungsfreien Prüfung sicherheitsrelevanter Register
EP2889797A2 (de) Überwachungsvorrichtung zur Überwachung eines Schaltkreises
DE102019122145A1 (de) Gesicherte x-modulare redundanz
DE102014112865A1 (de) Elektronische Schaltung und Verfahren zum Überwachen einer Datenverarbeitung
EP2533154A2 (de) Fehlererfassung und -minderung in logischen Schaltungen
DE102022105600A1 (de) Register-fehlerdetektor
DE102010003153B4 (de) Verarbeitungseinheit, Vorrichtung, die zwei Verarbeitungseinheiten aufweist, Verfahren zum Testen einer Verarbeitungseinheit und einer Vorrichtung, die zwei Verarbeitungseinheiten aufweist
DE102014002302B4 (de) System und Verfahren zum Bestimmen der operativen Robustheit eines Systems auf einem Chip
EP1664978B1 (de) Vorrichtung und verfahren zur sicheren ausführung eines programmes
EP1359485B1 (de) Steuer- und Überwachungssystem
EP2677429A1 (de) Fehlerkorrektur
Lee et al. Evaluation of error detection coverage and fault-tolerance of digital plant protection system in nuclear power plants
DE102007053295B4 (de) Schaltungsanordnung und Verfahren zur Funktionsüberprüfung einer Logikschaltung in einer Schaltungsanordnung
DE102006036384A1 (de) Mikroprozessorsystem zur Steuerung bzw. Regelung von zumindest zum Teil sicherheitskritischen Prozessen
DE102014114157B4 (de) Verfahren zur Datenverarbeitung zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist und Datenverarbeitungsanordnungen zum Erzeugen von Programm-Code
Chonnad et al. A quantitative approach to SoC functional safety analysis
DE102018102386A1 (de) Verfahren zum Senden von Daten, Verfahren zum Empfangen von Daten, Master-, Slave-, und Master-Slave-System
DE10307797B4 (de) Vorrichtung und Verfahren zum Ermitteln einer Unregelmäßigkeit in einem Ablauf eines Nutzprogramms
DE102017115058B4 (de) Verfahren zur Überprüfung sicherheitsrelevanter Register- oder Speicherzellen auf Stuck-At-Fehler im Betrieb und Herbeiführung der Ausfallsicherheit
DE10341593B4 (de) Prozessor und Verfahren zum Ausführen einer Sequenz von Befehlen

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R019 Grant decision by federal patent court
R130 Divisional application to

Ref document number: 102006062964

Country of ref document: DE

Effective date: 20130110

R020 Patent grant now final

Effective date: 20131123

R082 Change of representative