Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND DEVICE FOR PROCESSING BINARY CODE DATA
Document Type and Number:
WIPO Patent Application WO/2017/220299
Kind Code:
A1
Abstract:
The invention relates to a method for processing binary code data (BCD) containing at least one machine program (MP1), characterised by the following steps: forming (10) test data (PD) on the basis of at least one portion of the binary code data (BCD), in particular on the basis of a portion of the binary code data which contains the machine program (MP1) or a portion of the machine program (MP1), the test data (PD) in particular allowing changes to the at least one portion of the binary code data (BCD) to be recognised; inserting (20) at least one portion of the test data (PD) into the binary code data (BCD), as a result of which supplemented binary code data (BCD'; BCD'') is obtained.

Inventors:
MUELLER BERND (DE)
GLADIGAU JENS (DE)
BOLK SEBASTIAN (DE)
Application Number:
PCT/EP2017/063107
Publication Date:
December 28, 2017
Filing Date:
May 31, 2017
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
BOSCH GMBH ROBERT (DE)
International Classes:
G05B19/042; G06F11/10
Domestic Patent References:
WO2003025936A22003-03-27
Foreign References:
DE10238095A12004-03-04
EP1569117A12005-08-31
Other References:
None
Download PDF:
Claims:
Ansprüche

1 . Verfahren zum Bearbeiten von wenigstens ein Maschinenprogramm (MP1 ) enthaltenden Binärcodedaten (BCD), gekennzeichnet durch die folgenden Schritte: Bilden (10) von Prüfdaten (PD) in Abhängigkeit wenigstens eines Teils der Binärcodedaten (BCD), insbesondere in Abhängigkeit eines Teils der Binärcodedaten welcher das Maschinenprogramm (MP1 ) oder einen Teil des Maschinenprogramms (MP1 ) enthält, wobei die Prüfdaten (PD) insbesondere eine Erkennung von Änderungen des wenigstens einen Teils der Binärcodedaten (BCD) ermöglichen, Einfügen (20) wenigstens eines Teils der Prüfdaten (PD) in die Binärcodedaten (BCD), wodurch ergänzte Binärcodedaten (BCD'; BCD") erhalten werden.

2. Verfahren nach Anspruch 1 , wobei das Bilden (10) der Prüfdaten (PD)

wenigstens eine der folgenden Maßnahmen umfasst: a) Bilden mindestens eines Prüfwerts, insbesondere mindestens einer Prüfsumme, zur zyklischen Redundanzprüfung, b) Bilden mindestens eines Hashwerts.

3. Verfahren nach einem der vorstehenden Ansprüche, wobei die

Binärcodedaten (BCD) in Blöcke (B) gleicher oder verschiedener Größe aufgeteilt werden, und wobei wenigstens einem der auf diese Weise erhaltenen Blöcke (B) Prüfdaten zugeordnet werden.

4. Verfahren nach einem der vorstehenden Ansprüche, wobei

Speicheradressen, insbesondere Einsprungadressen bzw. Sprungziele, der ergänzten Binärcodedaten (BCD'; BCD") angepasst (30) werden, insbesondere um in die Binärcodedaten (BCD) eingefügte Prüfdaten (PD) zu berücksichtigen.

5. Vorrichtung (100) zum Bearbeiten von wenigstens ein Maschinenprogramm (MP1 , MP2) enthaltenden Binärcodedaten (BCD), dadurch gekennzeichnet, dass die Vorrichtung (100) zur Ausführung der folgenden Schritte

ausgebildet ist: Bilden (10) von Prüfdaten (PD) in Abhängigkeit wenigstens eines Teils der Binärcodedaten (BCD), insbesondere in Abhängigkeit eines Teils der Binärcodedaten welcher das Maschinenprogramm (MP1 , MP2) oder einen Teil des Maschinenprogramms (MP1 , MP2) enthält, wobei die Prüfdaten (PD) insbesondere eine Erkennung von Änderungen des wenigstens eines Teils der Binärcodedaten ermöglichen, Einfügen (20) wenigstens eines Teils der Prüfdaten (PD) in die Binärcodedaten (BCD), wodurch ergänzte Binärcodedaten (BCD'; BCD") erhalten werden, wobei die Vorrichtung (100) ferner insbesondere zur Ausführung des Verfahrens nach einem der Ansprüche 2 bis 4 ausgebildet ist.

Verfahren zum Verarbeiten von wenigstens ein Maschinenprogramm (MP1 , MP2) enthaltenden Binärcodedaten (BCD', BCD"), gekennzeichnet durch die folgenden Schritte: Auswerten (60) von zumindest teilweise in den

Binärcodedaten enthaltenen Prüfdaten (PD), die in Abhängigkeit wenigstens eines Teils der Binärcodedaten (BCD) zu einem ersten Zeitpunkt (t1 ) gebildet worden sind, wobei die Auswertung (60) der Prüfdaten (PD) insbesondere zum Gegenstand hat, festzustellen, ob der wenigstens eine Teil der Binärcodedaten (BCD', BCD") zu dem Zeitpunkt (t2) der Auswertung (60) gegenüber dem ersten Zeitpunkt (t1 ) verändert ist, Verarbeiten (70) zumindest eines Teils der Binärcodedaten (BCD', BCD") in Abhängigkeit der Auswertung (60).

Verfahren nach Anspruch 6, wobei vor dem Auswerten (60) zunächst ermittelt (50) wird, ob die Binärcodedaten (BCD, BCD'; BCD") Prüfdaten (PD) enthalten.

Verfahren nach einem der Ansprüche 6 bis 7, wobei dann, wenn die

Auswertung (60) ergibt, dass der wenigstens eine Teil der Binärcodedaten (BCD, BCD'; BCD") zu dem Zeitpunkt (t2) der Auswertung (60) gegenüber dem ersten Zeitpunkt (t1 ) verändert ist, eine Fehlerreaktion eingeleitet wird (72).

Verfahren nach einem der Ansprüche 6 bis 8, wobei in den Binärcodedaten (BCD, BCD'; BCD") enthaltene Prüfdaten (PD) vor einer Ausführung des wenigstens einen Maschinenprogramms (MP1 , MP2) durch eine

Recheneinheit (300) durch von der Recheneinheit (300) ausführbare Maschinenbefehle ersetzt werden, wobei die Maschinenbefehle bevorzugt eine oder mehrere Nulloperationen umfassen.

10. Vorrichtung (200) zum Verarbeiten von wenigstens ein Maschinenprogramm (MP1 , MP2) enthaltenden Binärcodedaten (BCD, BCD'; BCD"), dadurch gekennzeichnet, dass die Vorrichtung (200) zur Ausführung der folgenden Schritte ausgebildet ist: Auswerten (60) von zumindest teilweise in den Binärcodedaten enthaltenen Prüfdaten (PD), die in Abhängigkeit wenigstens eines Teils der Binärcodedaten (BCD) zu einem ersten Zeitpunkt (t1 ) gebildet worden sind, wobei die Auswertung (60) der Prüfdaten (PD) insbesondere zum Gegenstand hat, festzustellen, ob der wenigstens eine Teil der Binärcodedaten (BCD, BCD') zu dem Zeitpunkt (t2) der Auswertung (60) gegenüber dem ersten Zeitpunkt (t1 ) verändert ist, Verarbeiten (70) zumindest eines Teils der Binärcodedaten (BCD, BCD') in Abhängigkeit der Auswertung (60).

1 1 . Vorrichtung (200) nach Anspruch 10, wobei die Vorrichtung (200) ferner zur Ausführung des Verfahrens nach einem der Ansprüche 7 bis 9 ausgebildet ist.

12. Recheneinheit (300), insbesondere MikroController, mit wenigstens einem Rechenkern (302) zur Ausführung von Maschinenprogrammen (MP1 , MP2), dadurch gekennzeichnet, dass der Recheneinheit (300) wenigstens eine Vorrichtung (200) nach einem der Ansprüche 10 bis 1 1 zugeordnet ist, wobei die wenigstens eine Vorrichtung (200) bevorzugt in die Recheneinheit (300) integriert ist.

13. Steuergerät (400) für ein Fahrzeug (500), insbesondere ein Kraftfahrzeug, wobei das Steuergerät (400) wenigstens eine Vorrichtung (200) nach einem der Ansprüche 10 bis 1 1 und/oder wenigstens eine Recheneinheit (300) nach Anspruch 12 aufweist.

Description:
Beschreibung

Titel

Verfahren und Vorrichtung zum Bearbeiten von Binärcodedaten Stand der Technik

Die Erfindung betrifft ein Verfahren zum Bearbeiten von wenigstens ein

Maschinenprogramm enthaltenden Binärcodedaten. Die Erfindung betrifft ferner eine Vorrichtung zur Ausführung eines derartigen Verfahrens.

Die Erfindung betrifft weiter ein Verfahren zum Verarbeiten von wenigstens ein Maschinenprogramm enthaltenden Binärcodedaten und eine entsprechende Vorrichtung. Bei eingebetteten Systemen (englisch: embedded Systems) und anderen

Rechnersystemen ist es wünschenswert, eine Veränderung eines Binärcodes, der durch eine Recheneinheit des betreffenden Systems aus einem Speicher ausgeführt wird, erkennen zu können, um die Verarbeitung von fehlerhaften Daten zu vermeiden. Insbesondere bei sicherheitsrelevanten Anwendungen, wie beispielsweise bei Steuergeräten für Brennkraftmaschinen oder Bremssystemen von Kraftfahrzeugen, ist eine derartige Veränderungserkennung von Binärcode wichtig. Es ist bereits bekannt, Arbeitsspeicher (RAM, Random Access Memory )- Bausteine, insbesondere externe Speicherbausteine, so auszubilden, dass sie eine Veränderung von in ihnen gespeichertem Binärcode erkennen. Beispiele hierfür sind RAM-Bausteine mit ECC (Error Correcting Code, fehlerkorrigierender

Code)-Schutz. Solche ECC-RAM-Bausteine sind jedoch aus verschiedenen Gründen (z.B. Kosten, Stromverbrauch, Speicherbandbreite) nicht bei allen Anwendungsgebieten einsetzbar. Des Weiteren ist es bekannt, softwarebasierte Lösungen zur Erkennung einer Veränderung von Binärcode einzusetzen. Diese Verfahren sind allerdings langsam in der Ausführung und aufwändig zu implementieren. Offenbarung der Erfindung

Das der Erfindung zugrunde liegende Problem wird durch ein Verfahren nach Anspruch 1 und eine Vorrichtung nach Anspruch 5 gelöst. Weiter wird das der Erfindung zugrunde liegende Problem durch ein Verfahren nach Anspruch 6 und eine Vorrichtung nach Anspruch 10 gelöst.

Erfindungsgemäß ist ein Verfahren zum Bearbeiten von wenigstens ein

Maschinenprogramm enthaltenden Binärcodedaten vorgeschlagen, welches durch die folgenden Schritte gekennzeichnet ist: Bilden von Prüfdaten in

Abhängigkeit wenigstens eines Teils der Binärcodedaten, insbesondere in

Abhängigkeit eines Teils der Binärcodedaten, welcher das Maschinenprogramm oder einen Teil des Maschinenprogramms enthält, wobei die Prüfdaten insbesondere eine Erkennung von Änderungen des wenigstens einen Teils der Binärcodedaten ermöglichen, Einfügen wenigstens eines Teils der Prüfdaten in die Binärcodedaten, wodurch ergänzte Binärcodedaten erhalten werden.

Dies ermöglicht einer die Binärcodedaten bzw. die ergänzten Binärcodedaten auswertenden bzw. verarbeitenden Recheneinheit eine Auswertung der

Prüfdaten auszuführen und somit auf eine Veränderung der durch die Prüfdaten abgesicherten Binärcodedaten zu schließen. Mit anderen Worten kann unter

Auswertung der erfindungsgemäß in die Binärcodedaten eingebetteten Prüfdaten vorteilhaft auf eine an sich unerwünschte Veränderung der Binärcodedaten geschlossen werden, wodurch z.B. eine effiziente Fehlererkennung von

Binärcodedaten realisierbar ist.

Besonders bevorzugt werden die Prüfdaten in Abhängigkeit mindestens eines Teils eines in den Binärcodedaten enthaltenen Maschinenprogramms gebildet, so dass eine Veränderung des Maschinenprogramms unter Anwendung des erfindungsgemäßen Prinzips feststellbar ist. Alternativ oder ergänzend können Prüfdaten auch in Abhängigkeit von anderen Inhalten der Binärcodedaten wie beispielsweise Nutzdaten bzw. konstanten Daten, welche insbesondere keine ausführbaren Maschinenbefehle enthalten, gebildet werden, wodurch auch die Nutzdaten bzw. konstanten Daten, ggf. zusätzlich zu Maschinenprogrammen, dem erfindungsgemäßen Prinzip folgend abgesichert werden können.

Bei einer bevorzugten Ausführungsform werden alle Prüfdaten, die

erfindungsgemäß gebildet worden sind, in die Binärcodedaten eingefügt, wodurch die erfindungsgemäße Überprüfung auf Veränderung der

Binärcodedaten bzw. der ergänzten Binärcodedaten allein bei Vorliegen der ergänzten Binärcodedaten ausgeführt werden kann. Bei weiteren

Ausführungsformen ist es jedoch auch vorstellbar, wenigstens einen ersten Teil der erfindungsgemäß gebildeten Prüfdaten an einem anderen Speicherort als eingebettet in die Binärcodedaten vorzuhalten, wohingegen ein zweiter Teil der erfindungsgemäß gebildeten Prüfdaten wie vorstehend bereits beschrieben, in die Binärcodedaten eingefügt bzw. eingebettet wird. In diesem Fall ist zur Beurteilung der Tatsache, ob eine Veränderung der Binärcodedaten vorliegt, u.U. ein Rückgriff auf sowohl den ersten Teil der Prüfdaten als auch den zweiten Teil der Prüfdaten erforderlich, was bei einer entsprechenden Ausführung eines Prüfverfahrens zu berücksichtigen ist.

Bei einer besonders bevorzugten Ausführungsform umfasst das Bilden der Prüfdaten ein Bilden mindestens eines Prüfwerts, insbesondere mindestens einer Prüfsumme, zur zyklischen Redundanzprüfung (englisch: CRC, Cyclic

Redundancy Check). Hierbei können in an sich bekannter Weise zu den abzusichernden Binärcodedaten redundante Informationen als Prüfdaten eingefügt werden. Alternativ oder ergänzend kann mindestens ein Hashwert (deutsch: "Streuwert") in Abhängigkeit des wenigstens einen Teils der

Binärcodedaten gebildet werden. Beispielsweise ist es denkbar, eine

Hashwertbildung gemäß dem Secure Hash Algorithm (SHA) vorzusehen, wie er in dem Secure Hash Standard (SHS), Publikationsnummer FITS 180-4, Ausgabe 08/2015, definiert und beispielsweise aus dem Internet unter

http://csrc.nist.gov/publications/fips/fips180-4/fips-180 -4.pdf abrufbar ist.

Andere vergleichbare Verfahren sind ebenfalls vorstellbar zur Bildung der Prüfdaten. Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass die Binärcodedaten in Blöcke gleicher oder verschiedener Größe aufgeteilt werden, wobei wenigstens einem der auf diese Weise erhaltenen Blöcke Prüfdaten zugeordnet werden. Besonders bevorzugt wird eine entsprechende Blockgröße angepasst an die Größe einer Cache-Line eines Speichersystems einer die Binärcodedaten verarbeitenden Recheneinheit. Auf diese Weise ist ein besonders effizienter Zugriff auf die einzelnen Blöcke und die zugeordneten Prüfdaten ermöglicht. Beispielsweise kann die Blockgröße 512 Bit betragen. Hiervon abweichende Werte sind alternativ ebenfalls möglich.

Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass

Speicheradressen, insbesondere Einsprungadressen bzw. Sprungziele, der ergänzten Binärcodedaten angepasst werden, insbesondere um die in die Binärcodedaten eingefügten Prüfdaten zu berücksichtigen. Dadurch ist es vorteilhaft ermöglicht, trotz der erfindungsgemäß in die Binärcodedaten eingebetteten Prüfdaten eine ungestörte Ausführung von in den Binärcodedaten enthaltenen Maschinenprogrammen sicherzustellen.

Als eine weitere Lösung der Aufgabe der vorliegenden Erfindung ist eine Vorrichtung zum Bearbeiten von wenigstens ein Maschinenprogramm

enthaltenen Binärcodedaten gemäß Patentanspruch 5 angegeben.

Noch eine weitere Lösung der Aufgabe der vorliegenden Erfindung ist durch ein Verfahren zum Verarbeiten von wenigstens ein Maschinenprogramm enthaltenen Binärcodedaten angegeben, wobei das Verfahren die folgenden Schritte aufweist: Auswerten von zumindest teilweise in den Binärcodedaten enthaltenen Prüfdaten, die in Abhängigkeit wenigstens eines Teils der Binärcodedaten zu einem ersten Zeitpunkt gebildet worden sind, wobei die Auswertung der

Prüfdaten insbesondere zum Gegenstand hat, festzustellen, ob der wenigstens eine Teil der Binärcodedaten zu dem Zeitpunkt der Auswertung gegenüber dem ersten Zeitpunkt verändert ist, Verarbeiten zumindest eines Teils der

Binärcodedaten in Abhängigkeit der Auswertung.

Bei einer besonders bevorzugten Variante des erfindungsgemäßen

Verarbeitungsverfahrens sind die Prüfdaten, welche in den Binärcodedaten enthalten bzw. eingebettet sind, durch das vorstehend beschriebene Verfahren zum Bearbeiten von Binärcodedaten erhalten worden.

Wie vorstehend bereits beschrieben, können die Prüfdaten bei einer

Ausführungsform vollständig in die Binärcodedaten eingebettet werden bzw. in den ergänzten Binärcodedaten enthalten sein. In diesem Fall können die Prüfdaten dementsprechend den Binärcodedaten entnommen und der

Auswertung zugeführt werden. Bei weiteren Ausführungsformen, bei denen die Prüfdaten zumindest teilweise auch außerhalb der (ergänzten) Binärcodedaten vorgehalten werden, sind ggf. die unterschiedlichen Teile der Prüfdaten aus den unterschiedlichen Speicherorten (untersuchte Binärcodedaten, andere

Speicherorte) bereitzustellen, bevor diese ausgewertet werden.

Die Auswertung der Prüfdaten kann beispielsweise durch Verifizieren eines Prüfwerts bzw. einer Prüfsumme zur zyklischen Redundanzprüfung ausgeführt werden, sofern ein CRC-Verfahren zur Bildung der Prüfdaten verwendet worden ist. Sofern ein oder mehrere Hashwerte zur Bildung der Prüfdaten verwendet worden sind, können entsprechend andere Auswertealgorithmen in der erfindungsgemäßen Auswertung der Prüfdaten eingesetzt werden.

Beispielsweise kann in diesem Fall eine Auswertung der Prüfdaten eine erneute Hashwertbildung über die durch die Prüfdaten geschützten Teile der

Binärcodedaten vorsehen und einen anschließenden Vergleich dieses im Rahmen der Auswertung neuerlich erhaltenen Hashwerts mit dem in den Prüfdaten enthaltenen Hashwert. Sofern beide Hashwerte übereinstimmen, kann auf Unversehrtheit der durch die Prüfdaten geschützten Teile der Binärcodedaten geschlossen werden.

Bei einer bevorzugten Ausführungsform ist vorgesehen, dass vor dem Schritt des Auswertens zunächst ermittelt wird, ob die Binärcodedaten Prüfdaten enthalten. Dadurch wird eine Zuverlässigkeit des Verfahrens weiter gesteigert und insbesondere kann dadurch gesteuert werden, dass eine Auswertung nur dann erfolgt, wenn tatsächlich Prüfdaten vorhanden sind. Alternativ kann eine

Auswertung ggf. vorhandener Prüfdaten auch von einem Betriebszustand einer die Binärcodedaten verarbeitenden Einheit abhängig gemacht werden. Es ist beispielsweise denkbar, dass an sich vorhandene Prüfdaten nicht immer ausgewertet werden, sondern beispielsweise nur sporadisch und/oder periodisch in größeren Zeitabständen.

Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass dann, wenn die Auswertung ergibt, dass der wenigstens eine Teil der Binärcodedaten zu dem Zeitpunkt der Auswertung gegenüber dem ersten Zeitpunkt verändert ist, eine Fehlerreaktion eingeleitet wird. Als Fehlerreaktion kann einer

Ausführungsform zufolge beispielsweise eine Unterbrechungsanforderung (englisch: Interrupt oder Interrupt request (IRQ)) an eine Recheneinheit gesendet werden, welche die Binärcodedaten verarbeitet bzw. darin enthaltene

Maschinenprogramme ausführen soll. Alternativ oder ergänzend zu der

Unterbrechungsanforderung kann ein Eintrag in einem Fehlerspeicher (nicht flüchtiger Speicher oder auch Register einer Recheneinheit oder dergleichen) erfolgen.

Auch die Verwendung einer dedizierten Logik innerhalb der Recheneinheit zur zentralen Behandlung von Fehlern ist bei einer Ausführungsform denkbar; dieser zentralen Fehlerbehandlungslogik wird dann eine Veränderung von

Binärcodedaten signalisiert. Eine mögliche Reaktion der Fehlerbehandlungslogik ist Signalisierung eines Fehlers an das System, das die Recheneinheit integriert, über einen so genannten Error-Pin.

Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass in dem Binärcode enthaltene Prüfdaten vor einer Ausführung des wenigstens einen Maschinenprogramms durch von der Recheneinheit ausführbare

Maschinenbefehle ersetzt werden. Dadurch ist vorteilhaft sichergestellt, dass der Recheneinheit nicht versehentlich die Prüfdaten als ausführbare Daten zur Verfügung gestellt werden, wodurch unerwünschte Reaktionen der

Recheneinheit hervorgerufen werden könnten. Besonders bevorzugt werden die Maschinenbefehle in diesem Fall so gewählt, dass sie eine oder mehrere

Nulloperationen (z.B. NOP, englisch: "no Operation") umfassen. Dadurch kann ein zunächst für die Speicherung von Prüfdaten verwendeter Bereich der Binärcodedaten einfach und effizient in ein maschinenausführbares

"Programmmodul" transformiert werden. Eine weitere Lösung der Aufgabe der vorliegenden Erfindung ist durch eine Vorrichtung zum Verarbeiten von wenigstens ein Maschinenprogramm enthaltenden Binärcodedaten gemäß Patentanspruch 10 angegeben. Bei bevorzugten Ausführungsformen ist die Vorrichtung ferner zur Ausführung der vorstehend beschriebenen Verfahrensaspekte ausgebildet.

Als eine weitere Lösung der vorliegenden Erfindung ist eine Recheneinheit, insbesondere ein Mikrocontroller, digitaler Signalprozessor oder ein sonstiger Prozessor mit wenigstens einem Rechenkern zur Ausführung von

Maschinenprogrammen angegeben, die dadurch gekennzeichnet ist, dass ihr wenigstens eine erfindungsgemäße Vorrichtung zum Verarbeiten von

Binärcodedaten zugeordnet ist, wobei besonders bevorzugt die wenigstens eine Vorrichtung in die Recheneinheit integriert ist. Bei einer Ausbildung der

Recheneinheit als programmierbarer Logikbaustein, beispielsweise FPGA (englisch: field programmable gate array), ist es auch denkbar, die Funktionalität der erfindungsgemäßen Verarbeitungsvorrichtung durch einen Teil des FPGA- Bausteins zu realisieren.

Bei Anwendung des erfindungsgemäßen Prinzips kann vorteilhaft ein

Steuergerät für ein Fahrzeug, insbesondere ein Kraftfahrzeug, bereitgestellt werden, welches eine erfindungsgemäße Vorrichtung zum Verarbeiten von Binärcodedaten und/oder wenigstens einer erfindungsgemäßer Recheneinheit aufweist.

Nachfolgend werden beispielhafte Ausführungsformen der Erfindung unter Bezugnahme auf die Zeichnung erläutert. In der Zeichnung zeigt:

Figur 1 a schematisch Binärcodedaten, die mehrere Maschinenprogramme

enthalten,

Figur 1 b schematisch Binärcodedaten gemäß einer ersten Ausführungsform der vorliegenden Erfindung,

Figur 1 c schematisch Binärcodedaten gemäß einer weiteren Ausführungsform der Erfindung, Figur 2 schematisch ein vereinfachtes Flussdiagramm einer Ausführungsform des erfindungsgemäßen Verfahrens,

Figur 3 schematisch ein vereinfachtes Blockdiagramm einer Ausführungsform einer erfindungsgemäßen Vorrichtung,

Figur 4 schematisch ein Zeitdiagramm gemäß einer Ausführungsform der Erfindung,

Figur 5 schematisch ein vereinfachtes Flussdiagramm einer weiteren

Ausführungsform des erfindungsgemäßen Verfahrens,

Figur 6 schematisch ein Blockdiagramm einer Ausführungsform einer

erfindungsgemäßen Vorrichtung,

Figur 7 schematisch ein Blockdiagramm einer weiteren Ausführungsform einer erfindungsgemäßen Vorrichtung, und

Figur 8 schematisch ein Kraftfahrzeug mit einem Steuergerät gemäß einer Ausführungsform der Erfindung.

Figur 1 zeigt schematisch Binärcodedaten BCD, wie sie in an sich bekannter Weise von Recheneinheiten z.B. in eingebetteten Systemen (englisch:

embedded Systems) erhalten bzw. verarbeitet werden. Die Binärcodedaten BCD weisen beispielhaft ein erstes Maschinenprogramm MP1 und ein zweites Maschinenprogramm MP2 auf, sowie einen Datenbereich DB, der Nutzdaten bzw. konstante Daten enthält, die mithin keine von einer Recheneinheit bzw. einem Rechenkern der Recheneinheit ausführbare Maschinenprogramme repräsentieren. Optional können die Binärcodedaten BCD auch weitere, vorliegend nicht näher abgebildete Komponenten bzw. Daten enthalten.

Die in Fig. 1 a abgebildeten Binärcodedaten BCD können beispielsweise durch eine in Figur 7 beispielhaft abgebildete Recheneinheit 300, bei der es sich um einen Mikrocontroller oder dergleichen handeln kann, ver- bzw. bearbeitet werden. Insbesondere können beispielsweise die Maschinenprogramme MP1 , MP2 (Fig. 1 ) durch einen Rechenkern 302 (Figur 7) des MikroControllers 300 ausgeführt werden. Der Mikrocontroller 300 weist ferner einen Arbeitsspeicher 310 auf, bei dem es sich beispielsweise um einen DDR (Double Data Rate, deutsch: doppelte Datenrate) - RAM (Random Access Memory, deutsch:

Direktzugriffs- bzw. Arbeitsspeicher)-Baustein handeln kann. Das DDR-RAM kann optional auch als externes RAM ausgebildet sein.

Der Mikrocontroller 300 verfügt ferner über einen sekundären Speicher 320, bei dem es sich beispielsweise um einen Flash-Speicher handeln kann.

Nachfolgend wird beispielhaft davon ausgegangen, dass der Mikrocontroller 300 ein Teil eines eingebetteten Systems (embedded System), beispielsweise Bestandteil eines Steuergeräts 400 (Fig. 8) eines Kraftfahrzeugs 500 ist, und dass bei einem Systemstart des Mikrocontrollers 300 (Fig. 7) bzw. des

Steuergeräts aus dem Flash-Speicher 320 ein zur Ausführung vorgesehener Programmcode in den Arbeitsspeicher 310 kopiert wird. Der Rechenkern 302 des Mikrocontrollers 300 führt dann den in dem Arbeitsspeicher 310 befindlichen Programmcode aus diesem Arbeitsspeicher 310 heraus aus.

Besonders bevorzugt werden hierbei üblicherweise immer ganze sog. Cache- Lines (z.B. also Datenblöcke mit einer Länge von 512 Bit) aus dem

Arbeitsspeicher 310 in einen internen Cache (nicht gezeigt), insbesondere einen Instruktions-Cache, des Rechenkerns 302 kopiert.

Der Mikrocontroller 300 verfügt ferner über eine erfindungsgemäße Vorrichtung 200 zum Verarbeiten von Binärcodedaten, wie sie weiter unten mit Bezugnahme auf die Figuren 5 und 6 näher beschrieben wird.

Bei dem vorstehend beispielhaft unter Bezugnahme auf Figur 7 beschriebenen Programmcode, welcher zu einem Systemstart aus dem Flash-Speicher 320 in den Arbeitsspeicher 310 kopiert wird, kann es sich z.B. um die in Figur 1 a abgebildeten und bereits vorstehend beschriebenen Binärcodedaten BCD handeln.

Erfindungsgemäß ist eine Bearbeitung der Binärcodedaten BCD mit dem Ziel vorgesehen, dass eine in der Regel unerwünschte Veränderung der

Binärcodedaten, wie sie beispielsweise bei einem Fehler im Bereich des Flash- Speichers 320 (Figur 7) oder auch des Arbeitsspeichers 310 auftreten können, erkennbar ist. Bei solchen Fehlern kann es sich z.B. um sogenannte "Bitkipper" handeln, also das spontane Ändern des Werts einer binären Speicherzelle von dem Wert "logisch Null" zu dem Wert "logisch Eins" oder umgekehrt.

Figur 2 zeigt ein vereinfachtes Flussdiagramm einer Ausführungsform des erfindungsgemäßen Verfahrens. In einem ersten Schritt 10 werden Prüfdaten in Abhängigkeit wenigstens eines Teils der Binärcodedaten BCD (Figur 1 a) gebildet. Die Prüfdaten ermöglichen vorteilhaft eine Erkennung von Änderungen des wenigstens einen Teils der Binärcodedaten BCD. Anschließend werden in

Schritt 20 die Prüfdaten bzw. wenigstens ein Teil der Prüfdaten PD in die Binärcodedaten BCD eingefügt, wodurch ergänzte Binärcodedaten BCD' erhalten werden. Dieser Zustand ist in Figur 1 b abgebildet. Aus Figur 1 b ist ersichtlich, dass die durch das erfindungsgemäße Verfahren erhaltenen ergänzten

Binärcodedaten BCD' gegenüber den Elementen MP1 , MP2, DB aus Figur 1 a zusätzlich auch die Prüfdaten PD erhalten. Aus Figur 1 b ist ferner ersichtlich, dass die ergänzten Binärcodedaten BCD' entlang einer Speicherkoordinate x einen Speicherbereich von dem Koordinatenwert (bzw. Speicheradresse) xO bis zu dem Koordinatenwert x3 einnehmen, wobei vorliegend die Prüfdaten PD in den Speicherbereich zwischen den Koordinaten x1 , x2 eingefügt worden sind, mithin zwischen den Maschinenprogrammen MP1 , MP2 in die Binärcodedaten BCD gemäß Fig. 1 a eingebettet worden sind.

Die Prüfdaten PD können erfindungsgemäß vorteilhaft in einer weiter unten beschriebenen Weise ausgewertet werden, um Änderungen des wenigstens einen Teils der Binärcodedaten BCD festzustellen, in Abhängigkeit deren die Prüfdaten PD gebildet worden sind.

Beispielsweise ist es bei einer Ausführungsform vorstellbar, dass das erste Maschinenprogramm MP1 eine sicherheitsrelevante Funktion beinhaltet und demzufolge die zuverlässige Ausführung des Maschinenprogramms MP1 von besonderer Bedeutung ist. In diesem Fall können die erfindungsgemäßen Prüfdaten PD in Abhängigkeit des ersten Maschinenprogramms MP1 gebildet und wie bereits beschrieben und in Figur 1 b abgebildet in die Binärcodedaten BCD eingebettet werden. In einem später näher beschriebenen Verfahren können die Prüfdaten PD sodann ausgewertet werden, wobei durch diese Auswertung feststellbar ist, ob das erste Maschinenprogramm MP1 oder Teile hiervon gegenüber einem Zeitpunkt, zu dem die Prüfdaten PD in Abhängigkeit von dem ersten Maschinenprogramm MP1 gebildet worden sind, verändert worden sind.

Bei weiteren Ausführungsformen ist es vorstellbar, weitere Prüfdaten auch für das zweite Maschinenprogramm MP2 und/oder für den Datenbereich DB zu bilden.

Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass die Binärcodedaten BCD bzw. Teile hiervon, vorliegend beispielhaft gezeigt für das erste Maschinenprogramm MP1 , in Blöcke B (Figur 1 c) gleicher oder verschiedener Größe aufgeteilt werden, wobei wenigstens einem der auf diese Weise erhaltenen Blöcke B Prüfdaten in der vorstehend beschriebenen Weise zugeordnet werden. Vorliegend ist in Figur 1 c beispielhaft das erste

Maschinenprogramm MP1 in eine Vielzahl von unterschiedlich großen Blöcken B aufgeteilt, wobei einzelnen dieser Blöcke B entsprechende Prüfdaten PD zuordenbar sind. Die Prüfdaten PD für die jeweiligen Blöcke B können analog zu dem vorstehend unter Bezugnahme auf Figur 1 b beschriebenen

Ausführungsbeispiel in die Binärcodedaten BCD" integriert werden, was vorliegend in Figur 1 c aus Gründen der Übersichtlichkeit nicht abgebildet ist.

Besonders bevorzugt wird eine entsprechende Blockgröße für die Blöcke B gewählt anhand der Größe einer Cache-Line eines Speichersystems der die

Binärcodedaten verarbeitenden Recheneinheit 300. Auf diese Weise ist ein besonders effizienter Zugriff auf die einzelnen Blöcke B und die zugeordneten Prüfdaten ermöglicht. Beispielsweise kann die Blockgröße 512 Bit betragen. Hiervon abweichende Werte sind alternativ ebenfalls möglich.

Bei einer weiteren bevorzugten Ausführungsform ist es möglich, dass nach dem Schritt 20 des Einfügens (Figur 2) der Prüfdaten PD in die Binärcodedaten BCD Speicheradressen, insbesondere Einsprungadressen bzw. Sprungziele, der ergänzten Binärcodedaten BCD' (Figur 1 b) und BCD" (Figur 1 c) angepasst werden, insbesondere um in die Binärcodedaten BCD eingefügte Prüfdaten PD zu berücksichtigen. Es ist beispielsweise denkbar, dass ein oder mehrere in den Binärcodedaten BCD enthaltene Maschinenprogramme Sprungbefehle oder sonstige Verzweigungen aufweisen, welche im Rahmen eines

Kompilierungsprozesses bzw. eines Bindungsprozesses (englisch: "linking") in Form von absoluten Speicheradressen entlang der Speicherkoordinate x (Figur 1 b) angegeben werden. In diesem Fall werden die entsprechenden

Adresszusammenhänge für die Sprungziele durch das erfindungsgemäße Einfügen der Prüfdaten PD ggf. gestört, was durch den optionalen Schritt 30 gemäß Figur 2 ggf. korrigiert werden kann. Beispielsweise kann bei den ergänzten Binärcodedaten BCD' der Figur 1 b eine Anpassung von in dem Adressbereich des zweiten Maschinenprogramms MP2 liegenden

Einsprungadressen derart vorgenommen werden, dass der Einfügung der Prüfdaten PD ab der Adresse x1 Rechnung getragen wird. Vereinfacht ausgedrückt können beispielsweise diejenigen Sprungbefehle in

Maschinenprogrammen MP1 , MP2 der ergänzten Binärcodedaten BCD' hinsichtlich ihrer Zieladressen für die Sprungoperation so angepasst werden, das die durch die Einfügung der Prüfdaten PD erfolgte "Vergrößerung" der Länge der ergänzten Binärcodedaten BCD' ausgeglichen wird. Z.B. können die betreffenden Zieladressen um den Wert (x2-x1 ) inkrementiert werden.

Vergleichbare Maßnahmen sind für die Adressierung von in dem Datenbereich DB der ergänzten Binärcodedaten BCD' liegende Daten denkbar.

Bei einer besonders bevorzugten Ausführungsform umfasst das Bilden 10 (Fig. 2) der Prüfdaten PD (Fig. 1 b) ein Bilden mindestens eines Prüfwerts, insbesondere mindestens einer Prüfsumme, zur zyklischen Redundanzprüfung (englisch: CRC, Cyclic Redundancy Check). Hierbei können in an sich bekannter Weise zu den abzusichernden Binärcodedaten redundante

Informationen als Prüfdaten eingefügt werden. Alternativ oder ergänzend kann mindestens ein Hashwert (deutsch: "Streuwert") in Abhängigkeit des wenigstens einen Teils der Binärcodedaten gebildet werden. Beispielsweise ist es denkbar, eine Hashwertbildung gemäß dem Secure Hash Algorithm (SHA) vorzusehen, wie er in dem Secure Hash Standard (SHS), Publikationsnummer FITS 180-4, Ausgabe 08/2015, definiert und beispielsweise aus dem Internet unter http://csrc.nist.gov/publications/fips/fips180-4/fips-180-4. pdf abrufbar ist.

Andere vergleichbare Verfahren sind ebenfalls vorstellbar zur Bildung der Prüfdaten. Figur 3 zeigt schematisch ein vereinfachtes Blockdiagramm einer

Ausführungsform einer erfindungsgemäßen Vorrichtung 100 zum Bearbeiten von wenigstens ein Maschinenprogramm MP1 , MP2 enthaltenden

Binärcodedaten BCD. Die Vorrichtung 100 ist zur Ausführung des vorstehend unter Bezugnahme auf Fig. 2 beschriebenen erfindungsgemäßen Verfahrens bzw. entsprechender Varianten hiervon ausgebildet. Hierzu kann die

Vorrichtung 100 über eine Recheneinheit 1 10 zur Abarbeitung des

erfindungsgemäßen Verfahrens verfügen, sowie über einen Speicher 120 zum zumindest zeitweisen Speichern von erfindungsgemäß zu bearbeitenden Binärcodedaten BCD. Beispielsweise sind der Vorrichtung 100 als

Eingangsdaten die Binärcodedaten BCD gemäß Fig. 1 a zuführbar. Sodann führt die Vorrichtung 100 nach Fig. 2 aus, wodurch ergänzte Binärcodedaten BCD', vgl. z.B. Fig. 1 b erhalten werden. Diese ergänzten Binärcodedaten BCD' können sodann auf einem elektronischen oder optischen oder sonstigen Speichermedium (flüchtig oder nichtflüchtig) gespeichert werden für eine spätere Verarbeitung durch die Recheneinheit 300. Alternativ können die ergänzten Binärcodedaten BCD' auch direkt an die Recheneinheit 300 übertragen werden. Die Vorrichtung 100 kann beispielsweise auch Teil einer Software-

Entwicklungsumgebung sein, auf der Computerprogramme für die

Recheneinheit 300 entwickelt werden können, beispielsweise mittels eines Hochsprachencompilers und eines Linkers. Nach dem Binden durch den Linker liegen z.B. die Binärcodedaten BCD gemäß Fig. 1 a vor, und sodann kann hierauf das erfindungsgemäße Verfahren (Fig. 2) angewandt werden.

Beispielsweise kann die Recheneinheit 1 10 auch Teil eines Personal- Computers sein.

Der erfindungsgemäße Aspekt der Erzeugung und Einbettung der Prüfdaten PD (Fig. 1 b, 2) kann auch als statische Binärcodetransformation von dem

Eingangszustand BCD (Fig. 1 a) zu dem Ausgangszustand BCD' (Fig. 1 b) bzw. BCD" (Fig. 1 c) bezeichnet werden. Bevorzugt werden einer Ausführungsform zufolge die Prüfdaten auf Cache-Line-Basis (also jeweils zu

Binärcodedatenblöcken aufweisend die Länge einer Cache-Line) gebildet und hinzugefügt. Die statische Binärcodetransformation bewirkt ersichtlich eine

Vergrößerung der Datenmenge mindestens um die Prüfdaten PD, wohingegen eine Ausführung der eingebetteten Maschinenprogramme MP1 , MP2 i.d.R. unbeeinflusst von den Prüfdaten möglich ist.

Ein zweiter Aspekt der Erfindung, der gegenüber der vorstehend genannten statischen Binärcodetransformation auch als dynamischer Aspekt bezeichnet werden kann, ist durch das nachstehend beispielhaft unter Bezugnahme auf das Flussdiagramm der Figur 5 und das Zeitdiagramm der Figur 4

beschriebene Verfahren zum Verarbeiten von wenigstens ein

Maschinenprogramm MP1 , MP2 enthaltenden Binärcodedaten BCD, BCD' angegeben. Dieser Verfahrensaspekt ist gekennzeichnet durch die folgenden Schritte: Auswerten 60 von zumindest teilweise in den (ergänzten)

Binärcodedaten BCD' (Fig. 1 b) enthaltenen Prüfdaten PD, die in Abhängigkeit wenigstens eines Teils der Binärcodedaten BCD zu einem ersten Zeitpunkt t1 (Fig. 4) gebildet worden sind (beispielsweise durch die Vorrichtung 100 nach Figur 3 und das Verfahren nach Figur 2), wobei die Auswertung 60 der Prüfdaten PD insbesondere zum Gegenstand hat, festzustellen, ob der wenigstens eine Teil der Binärcodedaten BCD', BCD" zu dem Zeitpunkt t2 > t1 (Fig. 4) der Auswertung 60 gegenüber dem ersten Zeitpunkt t1 verändert ist, Verarbeiten 70 (Fig. 5) zumindest eines Teils der Binärcodedaten BCD', BCD" in Abhängigkeit der Auswertung 60.

Bei einer bevorzugten Ausführungsform ist vorgesehen, dass die Verarbeitung 70 (Fig. 5) zumindest eines Teils der Binärcodedaten BCD, BCD' unabhängig von der Auswertung 60 erfolgt. Dies ermöglicht z.B. eine zeitversetzte

Auswertung bzw. eine schnellere Verarbeitung der Daten.

Bei einer bevorzugten Ausführungsform ist vorgesehen, dass vor dem

Auswerten 60 zunächst ermittelt 50 wird, ob die Binärcodedaten BCD, BCD', BCD" Prüfdaten PD enthalten.

Bei einer bevorzugten Ausführungsform ist vorgesehen, dass dann, wenn die Auswertung 60 ergibt, dass der wenigstens eine Teil der Binärcodedaten BCD', BCD" zu dem Zeitpunkt t2 (Fig. 4) der Auswertung 60 gegenüber dem ersten Zeitpunkt t1 verändert ist, eine Fehlerreaktion eingeleitet wird 72 (Fig. 5). Dies kann beispielsweise zu dem Zeitpunkt t3 > t2 nach Figur 4 erfolgen. Als Fehlerreaktion kann einer Ausführungsform zufolge beispielsweise eine Unterbrechungsanforderung (englisch: Interrupt oder Interrupt request (IRQ)) an eine Recheneinheit 300 (Fig. 7) gesendet werden, welche die Binärcodedaten verarbeitet bzw. darin enthaltene Maschinenprogramme ausführen soll.

Alternativ oder ergänzend zu der Unterbrechungsanforderung kann ein Eintrag in einem Fehlerspeicher (nicht flüchtiger Speicher oder auch Register einer Recheneinheit oder dergleichen) erfolgen. Auch die Signalisierung des Fehlers an eine Fehlerbehandlungslogik ist denkbar.

Bei einer bevorzugten Ausführungsform ist vorgesehen, dass in den

Binärcodedaten BCD', BCD" enthaltene Prüfdaten PD (Fig. 1 b, 1 c) vor einer Ausführung des wenigstens einen Maschinenprogramms MP1 , MP2 durch eine Recheneinheit 300 durch von der Recheneinheit 300 ausführbare

Maschinenbefehle ersetzt werden, wobei die Maschinenbefehle bevorzugt eine oder mehrere Nulloperationen (z.B. NOP) umfassen. Das vorstehend beschriebene Ersetzen kann beispielsweise im Schritt 70 oder davor oder danach erfolgen.

Figur 6 zeigt schematisch ein Blockdiagramm einer Ausführungsform einer erfindungsgemäßen Vorrichtung 200 zur Ausführung des vorstehend unter Bezugnahme auf Figur 5 beschriebenen Verfahrens. Die Vorrichtung 200 weist hierzu eine Rechen- bzw. Steuereinheit 202 auf, auf der das Verfahren nach Figur 5 ausführbar ist. Wie in Figur 6 schematisch durch den Blockpfeil dargestellt, kann die Vorrichtung 200 auf die Binärcodedaten BCD bzw. die erfindungsgemäß ergänzten Binärcodedaten BCD' (bzw. BCD", vgl. auch Fig. 1 c) zugreifen bzw. diese schreiben und/oder lesen. Beispielsweise kann die Vorrichtung 200 die ergänzten Binärcodedaten BCD' als Eingangsdaten erhalten, darauf das Verfahren nach Figur 5 anwenden, und daraus erhaltene Binärcodedaten (in denen zuvor vorhandene Prüfdaten PD z.B. durch

Nulloperationen ersetzt worden sind) speichern bzw. der Recheneinheit 300 zur Verfügung stellen.

Besonders bevorzugt ist die Vorrichtung 200 der Recheneinheit 300 (Figur 7) zugeordnet bzw. in diese integriert. Bei einer bevorzugten Ausführungsform ist die Vorrichtung 200 so in der Recheneinheit 300 integriert, dass sie in einem Speicherzugriffspfad zwischen dem Rechenkern 302 und beispielsweise einem Prozessor-(lnstruktions-)Cache (nicht gezeigt) und einem (externen) Speicher 320 angeordnet ist bzw. darin wirken kann im Sinne des erfindungsgemäßen Verfahrens.

Besonders bevorzugt ist die erfindungsgemäße Vorrichtung 200 zumindest teilweise, vorzugsweise jedoch vollständig, als Hardware-Schaltung

ausgebildet, wodurch eine besonders effiziente Abarbeitung des

erfindungsgemäßen Verfahrens möglich ist. Die Vorrichtung 200 kann auch als "Hardware-Prüfeinheit" bezeichnet werden.

Grundsätzlich lässt sich die Hardware-Prüfeinheit anderen Erfindungsvarianten zufolge auch auf einem Speicherzugriffspfad zu einem internen ("on-chip") Speicher der Recheneinheit 300 (Figur 7) einsetzen.

Bei Vorsehung einer erfindungsgemäßen Vorrichtung 200 im Bereich bzw. in einer Recheneinheit 300 kann für die Recheneinheit 300 vorteilhaft auf die Vorsehung von konventionellen Schutzmaßnahmen vor Änderungen von Binärcode, wie beispielsweise den Einsatz von ECC-Speicher, verzichtet werden. Gegenüber den konventionellen hardware-basierten Ansätzen, wie beispielsweise der Vorsehung von ECC-Speicher, bietet das erfindungsgemäße Prinzip den besonderen Vorteil, dass selektiv auch nur Teile von betrachteten Binärcodedaten BCD, wie beispielsweise einzelne Maschinenprogramme MP1 , MP2 bzw. entsprechende Datenbereiche DB (Figur 1 a) oder auch nur Teile dieser Informationen geschützt werden können. Es ist unter Anwendung des erfindungsgemäßen Prinzips beispielsweise denkbar, einen bestimmten Block B (Figur 1 c) eines interessierenden Maschinenprogramms MP1 mit den erfindungsgemäßen Prüfdaten PD abzusichern, wohingegen die restlichen Binärcodedaten nicht erfindungsgemäß abgesichert werden.

Ein weiterer Vorteil des erfindungsgemäßen Prinzips besteht darin, dass es auch dann anwendbar ist, wenn Binärcodedaten mit ausführbarem

Programmcode bzw. Maschinenprogrammen aus externem oder internem Flash-Speicher ausgeführt werden. Auch in diesem Fall ergeben sich die vorstehend bereits genannten erfindungsgemäßen Vorteile. Obwohl vorstehend beispielhaft zur Bildung von den Prüfdaten PD CRC- Verfahren bzw. Hashwert-Verfahren genannt worden sind, kann weiteren Ausführungsformen zufolge generell jegliche Art von (bevorzugt) statischer Transformation von Binärcodedaten BCD oder Teilen hiervon eingesetzt werden, um die Prüfdaten PD zu bilden. Besonders bevorzugt wird hierbei wiederum auf Blockebene mit Datenblöcken B (Figur 1 c) im Bereich der Größe einer Cache-Line der ausführenden Prozessorarchitektur (vgl. Recheneinheit 300) gearbeitet. Eine entsprechende "Rücktransformation" kann wie vorstehend bereits beschrieben (Figur 5, insbesondere Austausch der Prüfdaten PD durch Nulloperationen) erfolgen.

Sofern die Vorrichtung 200 dazu ausgebildet ist, zu erkennen, ob ein

Datenblock B bzw. eine Cache-Line bzw. generell die erfindungsgemäß vorgesehenen Binärcodedaten BCD' überhaupt Prüfdaten PD enthalten, kann auch unmodifizierter Code (also Binärcode, der nicht erfindungsgemäß mit Prüfdaten PD versehen worden ist), transparent ausgeführt werden, ohne dass die Vorrichtung 200 abgeschaltet werden müsste.

Sofern zu einem gegebenen zukünftigen Zeitpunkt wiederum Prüfdaten PD durch die Vorrichtung 200 in den ergänzten Binärcodedaten BCD' detektiert werden, kann wiederum eine erfindungsgemäße Auswertung (Schritt 60 von Figur 5) erfolgen.

Sofern die erfindungsgemäße Vorrichtung 200 vor einem Instruktions-Cache der Recheneinheit 300 platziert wird, besteht die Möglichkeit, nur Cache-Lines mit Instruktionen zu prüfen. Sofern es einen geteilten Daten/Code-Cache gibt oder sofern die Vorrichtung 200 in einem Speicherzugriffspfad vor einer Aufteilung zwischen Code- und Daten-Cache liegt, kann vorgesehen sein, dass die Vorrichtung 200 bei Daten-Cache-Lines (also dann, wenn in dem

entsprechenden Cachespeicher keine Maschinenbefehle, sondern Nutzdaten und dergleichen enthalten sind), keinen blinden Alarm schlägt, mithin keine Fehlerreaktion ob des Nichtvorhandenseins von Prüfdaten PD einleitet. Bei einer weiteren vorteilhaften Ausführungsform ist es möglich, Datenzugriffe der Recheneinheit bzw. des Rechenkerns 302 anstelle von Code-Zugriffen etwa über Informationen an einem die Speicher mit dem Rechenkern verbindenden Bus oder einem Transportmedium zu erkennen (beispielsweise Busmaster-ID, Adresszusatz, und dergleichen). Besonders bevorzugt ermöglicht das erfindungsgemäße Verfahren eine

Absicherung von Binärcode, also Maschinenprogrammen in Binärcodeform. Alternativ oder ergänzend ist auch eine vergleichbare Absicherung von konstanten Daten und anderen Daten denkbar, die in den vorstehend beschriebenen Binärcodedaten BCD gespeichert bzw. enthalten sein können.

Besonders vorteilhaft ermöglicht die Anwendung des erfindungsgemäßen Prinzips eine Erkennung von Veränderungen von Binärcode, insbesondere in einem externen RAM, aber auch in einem lokalen RAM, einer Recheneinheit, wobei insbesondere diese Erkennung transparent für den Rechenkern und/oder einen Speichercontroller der Recheneinheit und/oder Speicherbausteine und/oder eine Anwendungssoftware ist.

Das erfindungsgemäße Prinzip ermöglicht eine Absicherung einer gewünschten Binärcodeintegrität vorteilhaft direkt in einem Speicherzugriffspfad, weil die Vorrichtung 200 beispielsweise direkt in dem Speicherzugriffspfad

implementiert werden kann. Vorteilhaft ist das vorgeschlagene Verfahren wie bereits erwähnt transparent für Speicher, Controller, Cache und Prozessor, und insbesondere können für sich jeweils nicht abgesicherte Speicherbausteine verwendet werden, da die Absicherung dem erfindungsgemäßen Prinzip folgend durch die Vorrichtung 200 ausgeführt wird. Daher kann besonders vorteilhaft auf verhältnismäßig kostenintensive ECC-Speicherelemente verzichtet werden, welche zudem nicht für alle geforderten

Betriebsumgebungen verfügbar sind. Besonders vorteilhaft können wie vorstehend ebenfalls bereits erwähnt die erfindungsgemäß gebildeten Prüfdaten PD zu einer Compile-Zeit (also während einer Compilierung eines Computerprogramms mit dem Ziel der Erstellung der Binärcodedaten) in die Binärcodedaten BCD integriert werden, um die ergänzten Binärcodedaten BCD', BCD" zu erhalten. Durch die

erfindungsgemäße Vorrichtung 200, die bevorzugt direkt in einen Speicherpfad einer Recheneinheit 300 integriert wird, ist gleichsam eine automatische Uberprüfung des Binärcodes bzw. der darin eingebetteten Prüfdaten PD ermöglicht. Das Einbetten der Prüfdaten PD kann bei einer Variante auch mittels eines konventionellen Linkers erfolgen, der mehrere Binärcodemodule zu einem in Binärcodeform vorliegenden Programm verbindet.

Besonders bevorzugt wird das erfindungsgemäße Prinzip auf Basis ganzer Cache-Lines angewendet, wodurch sich gegenüber herkömmlichen ECC- Verfahren eine deutliche Einsparung an Speicher und Speicherbandbreite ergibt.

Besonders vorteilhaft kann einer weiteren Ausführungsform zufolge das erfindungsgemäße Prinzip auch selektiv auf zu sichernde Anteile der

Binärcodedaten, beispielsweise einzelne Maschinenprogramme MP1 , MP2, wie auch einzelne Bereiche bzw. Teile hiervon angewendet werden.

Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass die Vorrichtung 200 per Software aktiviert bzw. deaktiviert wird, oder generell dass ein Betrieb der Vorrichtung 200 mittels einer Software, die auf der

Recheneinheit 300 bzw. dem Rechenkern 302 abläuft, gesteuert wird. Eine Steuerung ist beispielsweise denkbar in Abhängigkeit von einem

Systemzustand der Recheneinheit 300, und/oder einer Code-Kritikalität (die Code-Kritikalität definiert beispielsweise, ob ein betreffendes

Maschinenprogramm MP1 in besonderer Weise abzusichern ist durch die erfindungsgemäßen Prüfdaten PD, oder ob - ggf. auch in Abhängigkeit weiterer Kriterien, wie z.B. Betriebsgrößen der Recheneinheit 300 - auf eine

erfindungsgemäße Absicherung - zumindest zeitweise - verzichtet werden kann), und/oder von Funktionen bzw. Softwaremodulen, usw.

Ferner ist vorstellbar, dass bei einer weiteren Ausführungsform die Vorrichtung 200 konfigurierbar steuerbar ist, insbesondere konfigurierbar aktivierbar ist, vorzugsweise abhängig von einem Betriebsmodus der Recheneinheit 300 bzw. eines Rechenkerns 302 (Superuser, User, ...), oder abhängig von einem Adressbereich, z.B. ähnlich einer MPU (englisch: Memory Protection Unit). Besonders bevorzugt hat die Vorrichtung 200 unter Anwendung des

erfindungsgemäßen Prinzips in der Regel einige Takte Zeit für die Ausführung des erfindungsgemäßen Verfahrens und muss nicht etwa wie eine

herkömmliche MPU einen Zugriff direkt unterbinden.

Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass ein frühzeitiges Auslösen (Triggern) einer nächsten fetch-Operation (Laden von Befehlen) ausgeführt wird, mit der die nächste Cache-Line aus dem

Arbeitsspeicher, beispielsweise einem externen DDR RAM, geholt wird. Damit ist insbesondere vorteilhaft eine Reduktion der Cache Miss rate erreichbar.

Die erfindungsgemäße Vorrichtung 200 ist besonders vorteilhaft in eine Wirkungskette der folgenden Art integrierbar: Prozessor - Befehlscache - Bus - Speichercontroller - externer DDR-Speicher.

Das erfindungsgemäße Prinzip kann besonders vorteilhaft in allen

Recheneinheiten eingesetzt werden, welche zur Bearbeitung von

sicherheitsrelevanten oder in sonstiger Weise kritischen Aufgaben vorgesehen sind, insbesondere im Bereich von Fahrerassistenzsystemen, der

Videoüberwachung und dem autonomen Fahren.