-
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, 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 feh lererkennende 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 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 not wendig. 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