PatentDe  


Dokumentenidentifikation DE102006001872A1 19.07.2007
Titel Vorrichtung und Verfahren zum Überprüfen einer Fehlererkennungsfunktionalität einer Datenverarbeitungseinrichtung
Anmelder Infineon Technologies AG, 81669 München, DE
Erfinder Janke, Marcus, 81541 München, DE;
Laackmann, Peter, 81541 München, DE
Vertreter Schoppe, Zimmermann, Stöckeler & Zinkler, 82049 Pullach
DE-Anmeldedatum 13.01.2006
DE-Aktenzeichen 102006001872
Offenlegungstag 19.07.2007
Veröffentlichungstag im Patentblatt 19.07.2007
IPC-Hauptklasse G06F 21/00(2006.01)A, F, I, 20060113, B, H, DE
IPC-Nebenklasse G06F 11/00(2006.01)A, L, I, 20060113, B, H, DE   G06F 11/30(2006.01)A, L, I, 20060113, B, H, DE   
Zusammenfassung Es wird eine Vorrichtung zur Überprüfung einer Fehlererkennungsfunktionalität einer Datenverarbeitungseinrichtung (100) mit einer Recheneinrichtung (110), die ausgelegt ist, um, basierend auf einem Eingangsdatum, ein Ausgangsdatum bereitzustellen, und einer Fehlererkennungseinrichtung (120), die ausgebildet ist, um die Fehlererkennungsfunktionalität auszuführen und um bei einer korrekten Ausführung der Fehlererkennungsfunktionalität, basierend auf dem Ausgangsdatum, einen Fehler zu erkennen und, falls ein Fehler vorliegt, ein Fehlersignal zu erzeugen, beschrieben, die eine Kontrolleinrichtung (210) umfasst, die ausgebildet ist, um in einem Normalbetriebsmodus das Fehlersignal an einen Fehlersignalausgang (170) durchzulassen und in einem Überprüfungsmodus das Fehlersignal zu blockieren, um das Fehlersignal nicht an den Fehlersignalausgang (170) durchzulassen, die Recheneinrichtung (110), die Fehlererkennungseinrichtung (120) oder das Eingangsdatum so zu beeinflussen, dass die Fehlererkennungseinrichtung (120) bei der korrekten Ausführung der Fehlererkennungsfunktionalität einen Fehler erkennt, und, falls auf die Beeinflussung hin kein Fehlersignal empfangen wird, ein eine nicht korrekte Ausführung der Fehlererkennungsfunktionalität anzeigendes Alarmsignal auszugeben.

Beschreibung[de]

Vorrichtung und Verfahren zum Überprüfen einer Fehlererkennungsfunktionalität einer Datenverarbeitungseinrichtung 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.

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, ein Verfahren gemäß Anspruch 11 oder ein Software-Programm gemäß Anspruch 12 gelöst.

Die erfindungsgemäße Vorrichtung zur Überprüfung einer Fehlererkennungsfunktionalität einer Datenverarbeitungseinrichtung mit einer Recheneinrichtung, die ausgelegt ist, um basierend auf einem Eingangsdatum ein Ausgangsdatum bereitzustellen, und einer Fehlererkennungseinrichtung, die ausgelegt ist, um die Fehlererkennungsfunktionalität auszuführen, um bei einer korrekten Ausführung der Fehlererkennungsfunktionalität basierend auf dem Ausgangsdatum einen Fehler zu erkennen und, falls ein Fehler vorliegt, ein Fehlersignal zu erzeugen, umfasst eine Kontrolleinrichtung, die ausgelegt ist, um in einem Normalbetriebsmodus das Fehlersignal an einen Fehlersignalausgang durchzulassen und in einem Überprüfungsmodus das Fehlersignal zu blockieren, um das Fehlersignal nicht an den Fehlersignalausgang durchzulassen, die Recheneinrichtung, die Fehlererkennungseinrichtung oder das Eingangsdatum so zu beeinflussen, dass die Fehlererkennungseinrichtung bei der korrekten Ausführung der Fehlererkennungsfunktionalität einen Fehler erkennt, und, falls auf die Beeinflussung hin kein Fehlersignal empfangen wird, ein eine nichtkorrekte Ausführung der Fehlererkennungsfunktionalität anzeigendes Alarmsignal auszugeben.

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, das bei einer Überprüfung im Falle einer korrekten Ausführung der Fehlererkennungsfunktionalität zu einem Fehlersignal führen 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, 140aktivieren 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 110beeinflusst, 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 Ausgabedatums 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 Ausgabedatums auf einen Fehler darin besteht, zu überprüfen, ob das Ausgabedatum einen Wert aufweist, der in einer vorbestimmten Teilmenge aller möglichen Werte des Ausgabedatums liegt. Ebenso kann die Implementierung der beiden Datentransferleitungen 190, 200 entfallen, wenn die Überprüfung des Ausgabedatums auf das Vorliegen eines Fehlers darin besteht, den Wert eines einzelnen Bits zu überprüfen, um beispielsweise zu überprüfen, ob das Ausgabedatum 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 Ausgabedatums invertiert werden, so dass beispielsweise die Parität des der Fehlererkennungseinrichtung 120 übermittelten Ausgabedatums 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 Ausgabedaten 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. Allgemein besteht die Erfindung somit auch in einem Software-Programm-Produkt bzw. einem Computer-Programm-Produkt bzw. einem Programm-Produkt mit einem auf einem maschinenlesbaren Träger gespeicherten Programmcode zur Durchführung des erfindungsgemäßen Verfahrens, wenn das Software-Programm-Produkt auf einem Rechner oder einem Prozessor abläuft. In anderen Worten ausgedrückt kann die Erfindung somit als ein Computer-Programm bzw. Software-Programm bzw. Programm mit einem Programmcode zur Durchführung des Verfahrens realisiert werden, wenn das Programm auf einem Prozessor abläuft. Der Prozessor kann hierbei von einem Computer, einer Chipkarte (Smartcard) oder einem anderen integrierten Schaltkreis gebildet sein.

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


Anspruch[de]
Vorrichtung zur Überprüfung einer Fehlererkennungsfunktionalität einer Datenverarbeitungseinrichtung (100; 300) mit einer Recheneinrichtung (110; 310-1), die ausgelegt ist, um basierend auf einem Eingangsdatum ein Ausgangsdatum bereitzustellen, und einer Fehlererkennungseinrichtung (120; 320), die ausgebildet ist, um die Fehlererkennungsfunktionalität auszuführen und bei einer korrekten Ausführung der Fehlererkennungsfunktionalität basierend auf dem Ausgangsdatum einen Fehler zu erkennen und, falls ein Fehler vorliegt, ein Fehlersignal zu erzeugen, mit folgenden Merkmalen:

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, die Recheneinrichtung (110; 310-1), die Fehlererkennungseinrichtung (120; 320) oder das 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, ein eine nicht korrekte Ausführung der Fehlererkennungsfunktionalität anzeigendes Alarmsignal auszugeben.
Vorrichtung nach Anspruch 1, bei der die Fehlererkennungseinrichtung (120) weiterhin ausgebildet ist, um zusätzlich basierend auf dem Eingangsdatum ein Vorliegen eines Fehlers zu erkennen. Vorrichtung nach Anspruch 1, bei der die Datenverarbeitungseinrichtung (300) eine weitere Recheneinrichtung (310-2) aufweist, die ausgebildet ist, um basierend auf einem weiteren Eingangsdatum ein weiteres Ausgangsdatum bereitzustellen, und bei der die Fehlererkennungseinrichtung (320) weiterhin ausgebildet ist, um zusätzlich basierend auf dem weiteren Ausgangsdatum ein Vorliegen eines Fehlers zu erkennen. Vorrichtung nach Anspruch 3, bei der die Kontrolleinrichtung (410) weiterhin ausgebildet ist, um die weitere Recheneinrichtung (310-2) oder das weitere Eingangsdatum beeinflussen zu können, um bei einer korrekten Ausführung der Fehlererkennungsfunktionalität durch die Fehlererkennungseinrichtung (320) zu einem Fehler zu führen. 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 Ausgabedatum eine vorbestimmte Bedingung erfüllt. Vorrichtung nach einem der vorhergehenden Ansprüche, bei der die Fehlererkennungseinrichtung (120; 320) ausgebildet ist, um auf einen Fehler zu schließen, wenn das Ausgabedatum und das Eingabedatum eine vorbestimmte Beziehung zueinander nicht aufweisen. Vorrichtung nach einem der vorhergehenden Ansprüche, bei der die Fehlererkennungseinrichtung (320) ausgebildet ist, um auf einen Fehler zu schließen, wenn ein Datum oder eine Mehrzahl von Daten aus einer Gruppe der Daten eine vorbestimmte Beziehung zueinander nicht aufweisen, wobei die Gruppe der Daten das Ausgangsdatum, das weitere Ausgangsdatum, das Eingangsdatum und das weitere Eingangsdatum umfasst. 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. Vorrichtung nach Anspruch 8, bei der die vorbestimmte Auslösebedingung intermittierend erfüllt ist. 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 Datenverarbeitungseinrichtung ohne eine Beeinflussung die Fehlererkennungseinrichtung (120; 320) zur Überprüfung des Ausgabedatums auf einen Fehler hin zu veranlassen und, falls die Kontrolleinrichtung (210; 410) daraufhin ein weiteres Fehlersignal von der Fehlererkennungseinrichtung (120; 320) empfängt, das Alarmsignal auszugeben. Verfahren zum Überprüfen einer Fehlererkennungsfunktionalität einer Datenverarbeitungseinrichtung (100; 300) mit einer Recheneinrichtung (110; 310-1), die ausgelegt ist, um basierend auf einem Eingangsdatum ein Ausgangsdatum bereitzustellen, und einer Fehlererkennungseinrichtung (120; 320), die ausgebildet ist, um die Fehlererkennungsfunktionalität auszuführen und um bei einer korrekten Ausführung der Fehlererkennungsfunktionalität basierend auf dem Ausgangsdatum einen Fehler zu erkennen und, falls ein Fehler vorliegt, ein Fehlersignal zu erzeugen, mit folgenden Schritten:

in einem Normalbetriebsmodus:

– 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), der Fehlererkennungseinrichtung (120; 320) oder des Eingangsdatums, so dass die Fehlererkennungseinrichtung (120; 320) bei der korrekten Ausführung der Fehlererkennungsfunktionalität einen Fehler erkennt;

– Ausgeben eines eine nicht korrekte Ausführung der Fehlererkennungsfunktionalität anzeigendes Alarmsignal, falls die Fehlererkennungseinrichtung (120; 320) kein Fehlersignal ausgibt.
Programm mit einem Programmcode zum Durchführen des Verfahrens zum Überprüfen einer Fehlererkennungsfunktionalität einer Datenverarbeitungseinrichtung (100; 300) nach Anspruch 11, wenn das Programm auf einem Prozessor abläuft.






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com