DE102017202611A1 - Vorrichtung zur Bildung einer Prüfsumme und Betriebsverfahren hierfür - Google Patents

Vorrichtung zur Bildung einer Prüfsumme und Betriebsverfahren hierfür Download PDF

Info

Publication number
DE102017202611A1
DE102017202611A1 DE102017202611.1A DE102017202611A DE102017202611A1 DE 102017202611 A1 DE102017202611 A1 DE 102017202611A1 DE 102017202611 A DE102017202611 A DE 102017202611A DE 102017202611 A1 DE102017202611 A1 DE 102017202611A1
Authority
DE
Germany
Prior art keywords
memory
checksum
memory area
determining
memory block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102017202611.1A
Other languages
English (en)
Inventor
Simon Hufnagel
Jens Gladigau
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102017202611.1A priority Critical patent/DE102017202611A1/de
Publication of DE102017202611A1 publication Critical patent/DE102017202611A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

Die Erfindung betrifft eine Vorrichtung (10) zur Bildung einer Prüfsumme (S) für einen mehrere Speicherblöcke (b1, b2, ..., bn) aufweisenden Speicherbereich (A) einer Speichereinrichtung (110), wobei die Vorrichtung (10) dazu ausgebildet ist, für jeden Speicherblock (b1, b2, ..., bn) einen Prüfwert (h1, h2, ..., hn) in Abhängigkeit der Daten des jeweiligen Speicherblocks (b1, b2, ..., bn) zu ermitteln (210) und die Prüfsumme (S) unter Verwendung einer reversiblen mathematischen Funktion in Abhängigkeit der Prüfwerte (h1, h2, ..., hn) der Speicherblöcke (b1, b2, ..., bn) des Speicherbereichs (A) zu ermitteln (220), sowie eine Vorrichtung (20) zur Modifikation einer Prüfsumme (S).

Description

  • Stand der Technik
  • Die Erfindung betrifft eine Vorrichtung zur Bildung einer Prüfsumme für einen mehrere Speicherblöcke aufweisenden Speicherbereich einer Speichereinrichtung, insbesondere für eine Recheneinrichtung. Die Erfindung betrifft ferner ein Betriebsverfahren für eine derartige Vorrichtung.
  • Weiter betrifft die Erfindung eine Vorrichtung zur Modifikation einer Prüfsumme für einen mehrere Speicherblöcke aufweisenden Speicherbereich einer Speichereinrichtung, insbesondere für eine Recheneinrichtung. Die Erfindung betrifft weiter ein Betriebsverfahren für eine derartige Vorrichtung.
  • Darüber hinaus betrifft die Erfindung eine Recheneinrichtung mit wenigstens einem Rechenkern, wobei die Recheneinrichtung dazu ausgebildet ist, eine Prüfsumme für einen mehrere Speicherblöcke aufweisenden Speicherbereich einer der Recheneinrichtung zugeordneten Speichereinrichtung zu ermitteln. Weiter betrifft die Erfindung ein Betriebsverfahren für eine derartige Recheneinrichtung.
  • Vorrichtungen und Verfahren der vorstehend genannten Art sind bekannt und dienen beispielsweise dazu, die Sicherheit bei einem Betrieb einer Recheneinrichtung, die auf die Speichereinrichtung zugreifen kann, zu steigern. Durch die Bildung von Prüfsummen und deren Auswertung können unerwünschte Veränderungen von in der Speichereinrichtung gespeicherten Daten erkannt werden. Solche unerwünschten Veränderungen können beispielsweise aufgrund von permanenten oder sporadischen Fehlern der Speichereinrichtung selbst oder sonstiger mit der Speichereinrichtung zusammenwirkender Hardware entstehen.
  • Offenbarung der Erfindung
  • Es ist Aufgabe der vorliegenden Erfindung, Vorrichtungen und Verfahren der eingangs genannten Art dahingehend zu verbessern, dass ein flexibler Betrieb und ein gesteigerter Gebrauchsnutzen gegeben sind.
  • Diese Aufgabe wird bei der Vorrichtung zur Bildung einer Prüfsumme der eingangs genannten Art erfindungsgemäß dadurch gelöst, dass die Vorrichtung dazu ausgebildet ist, für jeden Speicherblock einen Prüfwert in Abhängigkeit der Daten des jeweiligen Speicherblocks zu ermitteln und die Prüfsumme unter Verwendung einer reversiblen mathematischen Funktion in Abhängigkeit der Prüfwerte der Speicherblöcke des Speicherbereichs zu ermitteln. Die blockweise Ermittlung von Prüfwerten ermöglicht vorteilhaft eine Teilbarkeit bzw. Parallelisierbarkeit der Aufgabe der Berechnung der Prüfwerte. Des Weiteren ermöglicht der vorstehend genannte erfindungsgemäße Ansatz vorteilhaft eine besonders effiziente Aktualisierung einer bereits bestehenden, erfindungsgemäß ermittelten Prüfsumme. Sofern beispielsweise ein Inhalt des interessierenden Speicherbereichs allein innerhalb eines einzigen oder weniger Speicherblöcke verändert worden ist, müssen für eine Aktualisierung der bereits bestehenden Prüfsumme vorteilhaft auch nur Prüfwerte betreffend diesen einzigen bzw. diese wenigen Speicherblöcke berücksichtigt werden.
  • Bei einer bevorzugten Ausführungsform kann die Vorrichtung auch zur Ausführung eines Iterationsverfahrens ausgebildet sein, um die Schritte des Ermittelns von Prüfwerten und des Ermittelns der Prüfsumme zu realisieren. Hierbei kann bevorzugt innerhalb eines Iterationsschritts des Iterationsverfahrens ein Prüfwert eines in dem Iterationsschritt betrachteten Speicherblocks ermittelt und die Prüfsumme bzw. ein vorläufiger Wert für die Prüfsumme in Abhängigkeit des während desselben Iterationsschritt ermittelten Prüfwerts ergänzt werden. Die Prüfwerte gegebenenfalls zusätzlich zu berücksichtigender weiterer Speicherblöcke und deren Beitrag zur Prüfsumme können analog hierzu in weiteren Iterationsschritten gebildet bzw. berücksichtigt werden.
  • Bei einer vorteilhaften Ausführungsform ist vorgesehen, dass die Vorrichtung dazu ausgebildet ist, den mindestens einen Speicherbereich charakterisierende Informationen zu empfangen. Auf diese Weise kann der Vorrichtung vorgegeben werden, für welchen Speicherbereich die Prüfsumme zu bilden ist, sodass beispielsweise für unterschiedliche Speicherbereiche jeweils unter Anwendung des erfindungsgemäßen Prinzips eine entsprechende Prüfsumme berechnet werden kann. Bei einer bevorzugten Ausführungsform kann die Vorrichtung beispielsweise eine Eingangsschnittstelle für den Empfang der den Speicherbereich charakterisierenden Informationen aufweisen.
  • Bei einer bevorzugten Ausführungsform kann Vorrichtung über eine (eigene) Speichereinrichtung bzw. einen Zwischenspeicher verfügen, beispielsweise über statisches RAM bzw. Speicherregister. In diesem Fall kann der Empfang von den mindestens einen Speicherbereich charakterisierenden Informationen dadurch bewerkstelligt werden, dass eine externe Einrichtung wie beispielsweise ein Rechenkern der Recheneinheit die den mindestens einen Speicherbereich charakterisierenden Informationen in den eigenen Speicher der Speichereinrichtung schreibt.
  • Beispielsweise können die den mindestens einen Speicherbereich charakterisierenden Informationen eine Startadresse des Speicherbereichs und eine Endadresse des Speicherbereichs innerhalb der Speichereinrichtung umfassen. Alternativ oder ergänzend können die den mindestens einen Speicherbereich charakterisierenden Informationen die Startadresse des Speicherbereichs und eine Länge des Speicherbereichs oder auch eine Endadresse des Speicherbereichs und die Länge des Speicherbereichs umfassen. Bei weiteren vorteilhaften Ausführungsform kann vorgesehen sein, dass die den mindestens einen Speicherbereich charakterisierenden Informationen auch (nur) eine Startadresse oder eine Endadresse des Speicherbereichs umfassen, und dass eine Länge des interessierenden Speicherbereichs fest vorgegeben ist.
  • Bei der Recheneinrichtung kann es sich beispielsweise um einen Mikrocontroller mit wenigstens einem Rechenkern handeln, oder um einen Mikroprozessor oder dergleichen. Alternativ oder ergänzend kann die Recheneinrichtung auch wenigstens einen programmierbaren Logikbaustein, insbesondere FPGA (englisch: field programmable gate array), und/oder einen digitalen Signalprozessor (DSP), und/oder einen anwendungsspezifischen integrierten Schaltkreis (englisch: ASIC, application specific integrated circuit) oder beliebige Kombinationen hieraus aufweisen.
  • Bei der Speichereinrichtung kann es sich beispielsweise um einen Arbeitsspeicher (englisch: RAM, random access memory), einen FLASH-Speicher (insbesondere FLASH-EEPROM) oder einen sonstigen Speicher handeln. Bei weiteren Ausführungsformen kann die Speichereinrichtung auch optische bzw. magnetische Speichermedien wie beispielsweise Festplatten aufweisen.
  • Bei einer weiteren Ausführungsform kann die Speichereinrichtung zumindest teilweise in die Recheneinheit integriert sein, insbesondere auch auf einem selben Halbleitersubstrat (englisch: „on-chip“) angeordnet sein wie die Recheneinheit bzw. ihr wenigstens einer Rechenkern. Alternativ hierzu kann die Speichereinrichtung auch extern zu der Recheneinheit vorgesehen bzw. sogar entfernt zu der Recheneinheit angeordnet sein.
  • Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass die Vorrichtung dazu ausgebildet ist, die den Speicherbereich, über den die Prüfsumme gebildet werden soll, charakterisierenden Informationen während eines Betriebs der Vorrichtung zu empfangen. Dadurch kann bedarfsweise vorteilhaft während des Betriebs der Vorrichtung ein anderer Speicherbereich vorgegeben werden.
  • Bei einer weiteren vorteilhaften Ausführungsform ist die Vorrichtung dazu ausgebildet, eine Streuwertfunktion (Hashfunktion) zur Ermittlung von Prüfwerten zu verwenden. Als Hashfunktion können beispielsweise Hashfunktionen des SHA-Typs des National Institute of Standards and Technology verwendet werden, vergleiche beispielhaft die Internetpublikation FIPS 180-4, Title: Secure Hash Standard (SHS), Publication Date: 08/2015, abrufbar unter http://csrc.nist.gov/publications/fips/fips180-4/fips-180-4.pdf. Es versteht sich, dass weiteren Ausführungsformen zufolge auch andere Hashfunktionen für die Bildung der Prüfwerte verwendbar sind, insbesondere auch solche anderen Hashfunktionen, welche eine geringere Komplexität aufweisen als die Hashfunktion der SHA-Familie. Bei einer bevorzugten Anwendung werden die Daten eines interessierenden Speicherblocks der Hashfunktion als Eingangsdaten zugeführt, und als Prüfwert wird der Ausgangswert der Hashfunktion erhalten.
  • Besonders vorteilhaft können einer weiteren Ausführungsform zufolge auch Prüfsummen für die Bildung der Prüfwerte verwendet werden, beispielsweise entsprechend den bekannten Verfahren zur zyklischen Redundanzprüfung (englisch: CRC, cyclic redundancy check). In diesem Fall wird für einen bestimmten Speicherblock also der Prüfwert als Prüfsumme über beispielsweise die Daten des Speicherblocks ermittelt.
  • Bei manchen Ausführungsformen ist vorgesehen, dass die Prüfwerte aller Speicherblöcke des für die Bildung der Prüfsumme interessierenden Speicherbereichs unter Verwendung derselben Streuwertfunktion bzw. Hashfunktion ermittelt werden. Bei anderen Ausführungsformen kann vorgesehen sein, dass die Prüfwerte mancher Speicherblöcke des interessierenden Speicherbereichs unter Verwendung einer ersten Streuwertfunktion bzw. Hashfunktion ermittelt werden, und ein Prüfwert wenigstens eines anderen Speicherblocks des interessierenden Speicherbereichs unter Verwendung einer hiervon verschiedenen, zweiten Hashfunktion.
  • Besonders vorteilhaft können bei weiteren Ausführungsformen die Hashfunktion bzw. deren Berechnung in Abhängigkeit von den Sicherheitsanforderungen an die Absicherung der in dem Speicherbereich enthaltenen Daten ausgewählt werden.
  • Bei einer weiteren vorteilhaften Ausführungsform ist die Vorrichtung dazu ausgebildet, eine Speicheradresse eines Speicherblocks bei der Ermittlung des Prüfwerts zu berücksichtigen. Insbesondere kann vorgesehen sein, die Ermittlung des Prüfwerts in Abhängigkeit nicht allein der in dem Speicherblock enthaltenen Daten, sondern zusätzlich auch in Abhängigkeit der Speicheradresse des Speicherblocks auszuführen. Auch diese Variante kann bevorzugt im Rahmen eines Iterationsverfahrens über alle zu Berücksichtigenden Speicherblöcke ausgeführt werden. Als Speicheradresse des Speicherblocks ist bei manchen Ausführungsformen beispielsweise die Startadresse des Speicherblocks oder eine Endadresse des Speicherblocks verwendbar.
  • Bei einer weiteren vorteilhaften Ausführungsform ist die Vorrichtung dazu ausgebildet, wenigstens eine der folgenden Funktionen als reversible mathematische Funktion zur Ermittlung der Prüfsumme zu verwenden: Summation (Addition), Multiplikation, XOR (exklusiv oder)-Operation. Weitere reversible mathematische bzw. logische Funktionen sind anderen Ausführungsformen zufolge ebenfalls denkbar.
  • Unter einer reversiblen mathematischen Funktion wird vorliegend eine Funktion verstanden, die es ermöglicht, bei der Bildung der Prüfsumme alle Prüfwerte zur Ermittlung der Prüfsumme miteinander zu kombinieren, insbesondere durch eine Summation aller Prüfwerte bzw. eine Multiplikation aller Prüfwerte bzw. eine XOR-Operation auf allen Prüfwerten, und die es ferner ermöglicht, selektiv den Beitrag wenigstens eines einzelnen Prüfwerts zu der Prüfsumme wieder aus der Prüfsumme zu entfernen. Dadurch ist vorteilhaft die Möglichkeit gegeben, eine bereits erfindungsgemäß ermittelte Prüfsumme zu aktualisieren, beispielsweise dann, wenn eine Änderung in den Daten eines zur Ermittlung der bereits ermittelten Prüfsumme verwendeten Speicherblocks eingetreten ist. Auf diese Weise kann vorteilhaft vermieden werden, dass alle Prüfwerte für alle Speicherblöcke, insbesondere auch für solche Speicherblöcke, deren Dateninhalt sich seither nicht geändert hat, neu gebildet werden müssen. Hierdurch wird vorteilhaft Rechenleistung und Rechenzeit und elektrische Energie zur Aktualisierung einer Prüfsumme eingespart.
  • Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass die Vorrichtung dazu ausgebildet ist, einen Schreibzugriff auf den Speicherbereich, für den die Prüfsumme gebildet werden soll, zu unterbinden, während die Prüfsumme durch die Vorrichtung ermittelt wird. Dadurch können vorteilhaft Inkonsistenzen bei der Bildung der Prüfsumme vermieden werden. Bei einer Ausführungsform kann das unterbinden aktiv durch die Vorrichtung selbst erfolgen, sofern diese in entsprechender Weise an die Speichereinrichtung angebunden ist. Alternativ oder ergänzend kann die Vorrichtung einer weiteren Ausführungsform zufolge der Recheneinrichtung bzw. einem Rechenkern der Recheneinrichtung signalisieren, dass Schreibzugriffe in dem vorstehend genannten Sinne zumindest zeitweise zu unterbinden sind.
  • Eine weitere Lösung der Aufgabe der vorliegenden Erfindung ist durch ein Verfahren zum Betreiben einer Vorrichtung zur Bildung einer Prüfsumme für einen mehrere Speicherblöcke aufweisenden Speicherbereich einer Speichereinrichtung, insbesondere für eine Recheneinrichtung, gemäß Patentanspruch 6 angegeben. Es ergeben sich vergleichbare Vorteile wie bei der vorstehend beschriebenen Vorrichtung.
  • Die Schritte des Ermittelns eines Prüfwerts und des Ermittelns der Prüfsumme können bei einer vorteilhaften Ausführungsform auch iterativ ausgeführt werden, wobei bevorzugt innerhalb eines Iterationsschritts eines entsprechenden Iterationsverfahrens ein Prüfwert eines in dem Iterationsschritt betrachteten Speicherblocks ermittelt und die Prüfsumme bzw. ein vorläufiger Wert für die Prüfsumme in Abhängigkeit des während desselben Iterationsschritt ermittelten Prüfwerts ergänzt wird. Die Prüfwerte gegebenenfalls zusätzlich zu berücksichtigender weiterer Speicherblöcke und deren Beitrag zur Prüfsumme können analog hierzu in weiteren Iterationsschritten gebildet bzw. berücksichtigt werden
  • Bei einer bevorzugten Ausführungsform ist vorgesehen, dass das Verfahren wenigstens einen der nachfolgenden Schritte aufweist: - Empfangen von den mindestens einen Speicherbereich charakterisierenden Informationen, insbesondere während eines Betriebs der Vorrichtung, - Verwenden einer Streuwertfunktion zur Ermittlung von Prüfwerten, - Berücksichtigen einer Speicheradresse eines Speicherblocks bei der Ermittlung des Prüfwerts, - Verwendung wenigstens einer der folgenden Funktionen als reversible mathematische Funktion zur Ermittlung der Prüfsumme: Summation, Multiplikation, XOR-Operation. Es ist zu beachten, dass anderen Ausführungsformen zufolge die vorstehend genannten Schritte des Empfangens, Verwendens, Berücksichtigens, Verwendens in unterschiedlicher Kombination bzw. abweichender Reihenfolge zueinander ausgeführt werden können.
  • Beispielsweise kann bei einer Ausführungsform vorgesehen sein, dass für eine Zwischenstufe bei der Ermittlung eines Prüfwerts zunächst eine Speicheradresse eines Speicherblocks verwendet wird, beispielsweise einer ersten Hashfunktion zugeführt wird, und dass erst danach die Daten des Speicherblocks - gegebenenfalls nach Anwendung einer weiteren Hashfunktion auf diese Daten - mit der Zwischenstufe des Prüfwerts (erhalten aus dem Hashwert der Speicheradresse) kombiniert werden, um den endgültigen Prüfwert zu erhalten. Andere Reihenfolgen bzw. Kombinationen der vorstehend genannten Schritte bei weiteren Ausführungsformen sind ebenfalls denkbar.
  • Als eine weitere Lösung der Aufgabe der vorliegenden Erfindung ist eine Vorrichtung zur Modifikation einer Prüfsumme für einen mehrere Speicherblöcke aufweisenden Speicherbereich einer Speichereinrichtung, insbesondere für eine Recheneinrichtung, gemäß Patentanspruch 8 vorgesehen.
  • Erfindungsgemäß ist die Vorrichtung zur Modifikation der Prüfsumme zur Ausführung der folgenden Schritte ausgebildet: - Ermitteln, ob ein Schreibzugriff auf den Speicherbereich erfolgt, - falls ein Schreibzugriff auf den Speicherbereich erfolgt ist, Entfernen des ursprünglichen Prüfwerts desjenigen Speicherblocks aus der Prüfsumme, in dem der Schreibzugriff erfolgt ist, wodurch eine reduzierte Prüfsumme erhalten wird, Ermitteln eines neuen Prüfwerts für den Speicherblock, in dem der Schreibzugriff erfolgt ist, Hinzufügen des neuen Prüfwerts zu der reduzierten Prüfsumme, wodurch eine aktualisierte Prüfsumme erhalten wird. Diese aktualisierte Prüfsumme ist bevorzugt fortan als die gültige Prüfsumme für den betreffenden Speicherbereich anzusehen, weil sie der vorstehend beschriebenen Änderung durch den genannten Schreibzugriff Rechnung trägt. Dies ermöglicht vorteilhaft eine besonders effiziente Aktualisierung einer bereits vorliegenden, insbesondere erfindungsgemäß ermittelten, Prüfsumme, bei der wenigstens ein ursprünglich ermittelter Prüfwert durch den genannten Schreibzugriff seine Aktualität eingebüßt hat, also ungültig geworden ist. Hierbei wird vorteilhaft der Aspekt der vorliegenden Erfindung ausgenutzt, wonach die Prüfsumme unter Verwendung einer reversiblen mathematischen Funktion in Abhängigkeit der Prüfwerte gebildet ist.
  • Sofern eine bereits gebildete Prüfsumme zu aktualisieren ist, weil ein Speicherblock einen gegenüber einem früheren Zustand, der auf die bereits gebildete Prüfsumme geführt hat, geänderten Dateninhalt aufweist (beispielsweise durch seither erfolgte ein oder mehrere Schreibzugriffe auf den betreffenden Speicherblock), reicht es unter Anwendung des erfindungsgemäßen Prinzips zur Modifikation der Prüfsumme aus, lediglich den Beitrag des Prüfwerts des betreffenden Speicherblocks für die Aktualisierung der Prüfsumme zu berücksichtigen, insbesondere die vorstehend genannten Schritte des Entfernens, Ermittelns seines neuen Prüfwerts, und Hinzufügens des neuen Prüfwerts zu der reduzierten Prüfsumme auszuführen.
  • Sofern mehrere Speicherblöcke hinsichtlich ihres Dateninhalts geändert worden sind, sind entsprechend deren jeweilige Prüfwerte in dem vorstehend genannten Sinn für die Aktualisierung zu berücksichtigen, nicht jedoch die Prüfwerte aller anderen Speicherblöcke, welche seither unverändert sind.
  • Dadurch ist eine besonders effiziente Aktualisierung einer erfindungsgemäß gebildeten Prüfsumme ermöglicht, die gegenüber konventionellen Ansätzen, welche eine Neuberechnung der Prüfsumme und hierfür die Auswertung aller in dem Speicherbereich vorliegenden Daten erfordern, Rechenzeit, Rechenleistung und elektrische Energie spart.
  • Bei einer Ausführungsform, bei der als reversible mathematische Funktion zur Ermittlung der Prüfsumme eine Summation verwendet wird, kann beispielsweise der Schritt des Entfernens des Prüfwerts eines Speicherblocks aus der Prüfsumme, in dem ein Schreibzugriff erfolgt ist, dadurch erfolgen, dass der Prüfwert des Speicherblocks von der ermittelten Prüfsumme subtrahiert wird. Es wird also die zu der reversiblen mathematischen Funktion (hier: Summation) inverse Funktion auf den betreffenden Prüfwert angewandt.
  • Für die weiteren möglichen Ausführungsformen von reversiblen mathematischen Funktionen gilt Entsprechendes. Im Falle der Aktualisierung mehrerer Prüfwerte gilt Entsprechendes für die jeweils mehreren Prüfwerte.
  • Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass die Vorrichtung zur Modifikation einer Prüfsumme dazu ausgebildet ist, den mindestens einen Speicherbereich charakterisierende Informationen und/oder die Prüfsumme zu empfangen, insbesondere während eines Betriebs der Vorrichtung. Dadurch kann der Betrieb der Vorrichtung vorteilhaft dynamisch gesteuert werden, insbesondere eine Aktualisierung für unterschiedliche Speicherbereiche während des Betriebs der Vorrichtung ausgewählt werden. Für den Empfang der den mindestens einen Speicherbereich charakterisierenden Informationen können manchen Ausführungsformen zufolge die gleichen o.ä. Mittel eingesetzt werden, wie sie weiter oben bereits für die erfindungsgemäße Vorrichtung zur Bildung der Prüfsumme beschrieben sind.
  • Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass die Vorrichtung zur Modifikation der Prüfsumme als Hardwareschaltung, insbesondere als reine Hardwareschaltung, ausgebildet ist. Alternativ kann die Vorrichtung zur Modifikation der Prüfsumme auch zumindest teilweise in Form von Software, also in Form von einem Computerprogramm, ausgebildet sein, dass auf einer entsprechenden Hardware abläuft. Vergleichbares gilt für die weiter oben genannte Vorrichtung zur Bildung der Prüfsumme. Besonders vorteilhaft kann durch die erfindungsgemäße Vorrichtung zur Modifikation der Prüfsumme eine für einen interessierenden Speicherbereich gebildete Prüfsumme stets aktualisiert werden, wenn Schreibzugriffe in dem Speicherbereich erfolgen, und dies ohne, dass eine auf der Recheneinheit ablaufende Software, die gegebenenfalls auf den Speicherbereich zugreift, geändert werden muss. Mit anderen Worten ist die Anwendung des erfindungsgemäßen Prinzips der Modifikation der Prüfsumme transparent für auf der Recheneinheit ablaufende Computerprogramme.
  • Bei manchen Ausführungsformen kann die Vorrichtung zur Modifikation der Prüfsumme und/oder die Vorrichtung zur Bildung der Prüfsumme auf einem selben Halbleitersubstrat angeordnet sein wie die Recheneinrichtung, deren Speichereinrichtung bzw. Speicherbereich(e) für die erfindungsgemäße Bildung bzw. Modifikation bzw. Aktualisierung von Prüfsummen vorgesehen sind.
  • Bei anderen Ausführungsformen kann vorgesehen sein, dass, beispielsweise im Rahmen eines Herstellungsprozesses einer Recheneinheit mit einer Speichereinrichtung, die Vorrichtung zur Bildung der Prüfsumme in einem Produktionsschritt der Recheneinheit verwendet wird, um eine initiale Prüfsumme für einen oder mehrere Speicherbereiche der Speichereinrichtung der Recheneinrichtung zu bilden und diese initiale Prüfsumme, ggf. zusammen mit den Speicherbereich charakterisierenden Information, in einem vorzugsweise nichtflüchtigen Speicher der Recheneinheit abzulegen. Bei diesen Ausführungsformen ist es nicht erforderlich, dass die Funktionalität der Vorrichtung zur Bildung der Prüfsumme in die Recheneinheit integriert ist. Vielmehr kann bei manchen Ausführungsformen vorgesehen sein, dass die Recheneinheit über eine erfindungsgemäße Vorrichtung zur Modifikation einer Prüfsumme verfügt, die nach der Inbetriebnahme der Recheneinheit die initiale Prüfsumme modifiziert, und eine auf diese Weise erhaltene aktualisierte Prüfsumme wiederum in einem Speicher der Recheneinheit bzw. in einem eigenen Speicher für eine zukünftige Verwendung bzw. Aktualisierung bzw. Überprüfung ablegt.
  • Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass die Vorrichtung zur Modifikation der Prüfsumme in einem Speicherzugriffspfad liegt, der der Recheneinrichtung einen Zugriff die Speichereinrichtung ermöglicht.
  • Besonders bevorzugt ist die Vorrichtung zur Modifikation der Prüfsumme nahe an einem Rechenkern der Recheneinrichtung, insbesondere vor einer Kommunikationsinfrastruktur (Bus, „network on chip“) oder hinter einer Kommunikationsinfrastruktur vor der Speichereinrichtung bzw. vor einer Speicherschnittstelle angeordnet. Dadurch kann die erfindungsgemäße Vorrichtung zur Modifikation besonders effizient auf die Speichereinrichtung zugreifen.
  • Als eine weitere Lösung der Aufgabe der vorliegenden Erfindung ist ein Verfahren zum Betreiben einer Vorrichtung zur Modifikation einer Prüfsumme gemäß Patentanspruch 11 angegeben.
  • Bei einer bevorzugten Ausführungsform kann vorgesehen sein, dass die Vorrichtung zur Modifikation der Prüfsumme den mindestens einen Speicherbereich charakterisierende Informationen empfängt, insbesondere während ihres Betriebs.
  • Bei einer weiteren Ausführungsform kann vorgesehen sein, dass eine Streuwertfunktion bzw. Hashfunktion, insbesondere auch Prüfsummenfunktion (z.B. CRC), zur Ermittlung des neuen Prüfwerts verwendet wird.
  • Bei einer weiteren Ausführungsform kann vorgesehen sein, dass auch eine Speicheradresse eines Speicherblocks bei der Ermittlung eines neuen Prüfwerts berücksichtigt wird.
  • Als reversible mathematische Funktionen zur Ermittlung des neuen Prüfwerts können bei vorteilhaften Ausführungsformen des Verfahrens gemäß Patentanspruch 11 beispielsweise die vorstehend bereits beschriebenen Funktionen (Summation, Multiplikation, XOR-Operation) verwendet werden.
  • Als eine weitere Lösung der Aufgabe der vorliegenden Erfindung ist eine Recheneinrichtung mit wenigstens einem Rechenkern gemäß Patentanspruch 12 vorgesehen.
  • Bei einer bevorzugten Ausführungsform kann die Recheneinrichtung auch zur Ausführung eines Iterationsverfahrens ausgebildet sein, um die Schritte des Ermittelns von Prüfwerten und des Ermittelns der Prüfsumme zu realisieren. Hierbei kann bevorzugt innerhalb eines Iterationsschritts des Iterationsverfahrens ein Prüfwert eines in dem Iterationsschritt betrachteten Speicherblocks ermittelt und die Prüfsumme bzw. ein vorläufiger Wert für die Prüfsumme in Abhängigkeit des während desselben Iterationsschritt ermittelten Prüfwerts ergänzt werden. Die Prüfwerte gegebenenfalls zusätzlich zu berücksichtigender weiterer Speicherblöcke und deren Beitrag zur Prüfsumme können analog hierzu in weiteren Iterationsschritten gebildet bzw. berücksichtigt werden.
  • Bei einer Ausführungsform kann die Ermittlung von Prüfwerten bzw. die Ermittlung der Prüfsumme mittels eines oder mehrerer Computerprogramme erfolgen, die auf dem wenigstens einen Rechenkern der Recheneinheit ausgeführt werden. Alternativ oder ergänzend kann bei weiteren Ausführungsformen die Recheneinrichtung über wenigstens eine erfindungsgemäße Vorrichtung zur Bildung einer Prüfsumme und/oder über wenigstens eine erfindungsgemäße Vorrichtung zur Modifikation einer Prüfsumme verfügen. Bei besonders bevorzugten Ausführungsformen sind die Vorrichtungen zur Bildung der Prüfsumme bzw. der Modifikation der Prüfsumme als reine Hardwareschaltungen ausgebildet.
  • Bei einer weiteren bevorzugten Ausführungsform ist die Recheneinrichtung dazu ausgebildet, eine Ist-Prüfsumme für den Speicherbereich zu ermitteln und mit einer mittels der Vorrichtung zur Modifikation einer Prüfsumme bereitgestellten Soll-Prüfsumme für den Speicherbereich zu vergleichen, wodurch gegebenenfalls unerwünschte Abweichungen in den betreffenden Prüfsummen festgestellt werden können. Bei einer bevorzugten Ausführungsform ist vorgesehen, eine Fehlerreaktion einzuleiten, sofern eine derartige Abweichung ermittelt worden ist.
  • Bei einer weiteren bevorzugten Ausführungsform erfolgt die Bildung der Prüfsumme für den Speicherbereich zyklisch oder auch sporadisch.
  • Bei einer weiteren vorteilhaften Ausführungsform ist die Recheneinheit dazu ausgebildet, Schreibzugriffe auf den Speicherbereich zu unterbinden, während die Prüfsumme gebildet wird.
  • Als eine weitere Lösung der Aufgabe der vorliegenden Erfindung ist ein Betriebsverfahren für eine Recheneinrichtung gemäß Patentanspruch 16 angegeben. Auch bei diesem Erfindungsaspekt kann, einer besonders bevorzugten Ausführungsform zufolge, die Ausführung eines Iterationsverfahrens vorgesehen sein, um die Schritte des Ermittelns von Prüfwerten und des Ermittelns der Prüfsumme zu realisieren, vergleiche die vorstehende Beschreibung betreffend die erfindungsgemäße Recheneinrichtung.
  • Weitere Merkmale, Anwendungsmöglichkeiten und Vorteile der Erfindung ergeben sich aus der nachfolgenden Beschreibung von Ausführungsbeispielen der Erfindung, die in den Figuren der Zeichnung dargestellt sind. Dabei bilden alle beschriebenen oder dargestellten Merkmale für sich oder in beliebiger Kombination den Gegenstand der Erfindung, unabhängig von ihrer Zusammenfassung in den Patentansprüchen oder deren Rückbeziehung sowie unabhängig von ihrer Formulierung bzw. Darstellung in der Beschreibung bzw. in der Zeichnung.
  • In der Zeichnung zeigt:
    • 1 schematisch ein vereinfachtes Blockschaltbild einer Ausführungsform einer erfindungsgemäßen Vorrichtung zur Bildung einer Prüfsumme,
    • 2 schematisch einen Speicherbereich einer Speichereinrichtung gemäß einer Ausführungsform,
    • 3 schematisch die Bildung einer Prüfsumme gemäß einer Ausführungsform,
    • Figur 4Aschematisch ein vereinfachtes Flussdiagramm einer Ausführungsform des erfindungsgemäßen Verfahrens,
    • Figur 4Bschematisch ein vereinfachtes Flussdiagramm einer weiteren Ausführungsform des erfindungsgemäßen Verfahrens,
    • 5 schematisch ein vereinfachtes Flussdiagramm einer weiteren Ausführungsform des erfindungsgemäßen Verfahrens,
    • 6 schematisch ein vereinfachtes Blockschaltbild einer Ausführungsform einer erfindungsgemäßen Vorrichtung zur Modifikation einer Prüfsumme,
    • 7 schematisch ein vereinfachtes Flussdiagramm einer weiteren Ausführungsform des erfindungsgemäßen Verfahrens,
    • 8 schematisch eine Modifikation einer Prüfsumme gemäß einer Ausführungsform,
    • 9 schematisch ein vereinfachtes Blockschaltbild einer Ausführungsform einer erfindungsgemäßen Recheneinrichtung,
    • 10A schematisch ein vereinfachtes Flussdiagramm einer Ausführungsform eines erfindungsgemäßen Betriebsverfahrens für die Recheneinrichtung gemäß 9,
    • 10B schematisch ein vereinfachtes Flussdiagramm einer weiteren Ausführungsform eines erfindungsgemäßen Betriebsverfahrens für die Recheneinrichtung gemäß 9, und
    • 11 schematisch ein vereinfachtes Blockdiagramm einer Recheneinrichtung gemäß einer Ausführungsform.
  • 1 zeigt schematisch ein vereinfachtes Blockschaltbild einer Ausführungsform einer erfindungsgemäßen Vorrichtung 10 zur Bildung einer Prüfsumme. Die Vorrichtung 10 ist einer Recheneinrichtung 100 zugeordnet, bei der es sich beispielsweise um einen Mikrocontroller mit einer Speichereinrichtung 110 und zwei Rechenkernen 120a, 120b handelt. Weitere Komponenten des Mikrocontrollers 100 sind in 1 aus Gründen der Übersichtlichkeit nicht abgebildet.
  • Bei der Speichereinrichtung 110 kann es sich beispielsweise um einen Arbeitsspeicher (englisch: RAM, random access memory), einen FLASH-Speicher (insbesondere FLASH-EEPROM) oder einen sonstigen Speicher handeln. Bei weiteren Ausführungsformen kann die Speichereinrichtung 110 auch optische bzw. magnetische Speichermedien wie beispielsweise Festplatten aufweisen.
  • Die Vorrichtung 10 kann vorteilhaft dazu verwendet werden, ein oder mehrere Prüfsummen über Dateninhalte der Speichereinrichtung 110 des Mikrocontrollers 100 zu bilden, wodurch die Betriebssicherheit des Mikrocontrollers 100 in an sich bekannter Weise gesteigert werden kann.
  • Beispielsweise kann der Mikrocontroller 100 seinerseits zyklisch oder sporadisch eine entsprechende Prüfsumme über einen interessierenden Speicherbereich der Speichereinrichtung 110 bilden, beispielsweise mittels eines entsprechenden Programms, das von einem Rechenkern 120a ausgeführt wird, und die selbstgebildete Prüfsumme mit der durch die Vorrichtung 10 gebildeten Prüfsumme vergleichen.
  • Die Vorrichtung 10, die bevorzugt vollständig als Hardwareschaltung ausgebildet ist, verfügt über eine interne Steuerung 11, bei der es sich beispielsweise um einen Zustandsautomaten handelt. Des Weiteren ist die Vorrichtung 10 über eine Datenverbindung 12 mit der Speichereinrichtung 110 des Mikrocontrollers 100 verbunden, sodass die Vorrichtung 10 wenigstens lesend auf die Speichereinrichtung 110 zugreifen kann. Hierzu kann die Vorrichtung 10 bevorzugt in einem Speicherzugriffspfad des Mikrocontrollers 100 angeordnet sein.
  • Die Vorrichtung 10 verfügt ferner optional über einen internen, lokalen Speicher 14, der beispielsweise als statisches RAM bzw. Registerspeicher ausgebildet sein kann. In dem lokalen RAM kann die Vorrichtung 10 beispielsweise von ihr erzeugte Prüfsummen zumindest zeitweise speichern. Alternativ oder ergänzend kann vorgesehen sein, dass die Vorrichtung 10 dazu ausgebildet ist, schreibend auf die Speichereinrichtung 110 bzw. andere (nicht gezeigte) Speichereinrichtungen zuzugreifen, beispielsweise um die von ihr erzeugten Prüfsummen zu speichern. Dies ist in 1 mit dem Pfeil 16 symbolisiert.
  • 2 zeigt schematisch einen Speicherbereich A der Speichereinrichtung 110, der bzw. dessen Dateninhalt beispielsweise Gegenstand der Prüfsummenbildung durch die erfindungsgemäße Vorrichtung 10 (1) sein kann. Der Speicherbereich A ist vorliegend durch eine Startadresse A1 und eine Endadresse A2 charakterisiert und weist mehrere Speicherblöcke b1, b2, ..., bn auf. Typischerweise greifen die Rechenkerne 120a, 120b des Mikrocontrollers 100 (1) blockweise auf in der Speichereinrichtung 110 gespeicherte Daten zu, sodass beispielsweise mindestens ein Speicherblock von dem betreffenden Rechenkern aus der Speichereinrichtung 110 gelesen bzw. von dem Rechenkern in die Speichereinrichtung 110 geschrieben wird. Beispielsweise können die Speicherblöcke vorteilhaft einer Cache-Line eines Cache-Speichers (nicht gezeigt) des Mikrocontrollers 100 entsprechen und z.B. jeweils eine Größe von 256 Bit aufweisen.
  • Es versteht sich, dass die Speichereinrichtung 110 auch mehr als die in 2 explizit angedeuteten n vielen Speicherblöcke b1, b2, ..., bn und/oder andere Speicherbereiche jenseits des Bereichs [A1:A2] aufweisen kann.
  • Bei dem Cache-Speicher handelt es sich um einen schnellen Pufferspeicher, auf den die Rechenkerne des Mikrocontrollers 100 besonders schnell zugreifen können, und in dem - z.B. in Einheiten der oben genannten Speicherblöcke b1, b2, ..., bn - Teile der Daten der Speichereinrichtung 110 zumindest zeitweise zwischengespeichert werden, beispielsweise für einen wiederholten schnellen Zugriff durch die Rechenkerne 120a, 120b. Eine Cache-Line (deutsch: Cache-Zeile) repräsentiert die kleinste Verwaltungseinheit des Cache-Speichers.
  • Erfindungsgemäß bildet die Vorrichtung 10 (1) für einen mehrere Speicherblöcke b1, b2, ..., bn (2) aufweisenden Speicherbereich A eine Prüfsumme. Hierfür ist die Vorrichtung 10 dazu ausgebildet, für jeden Speicherblock b1, b2, ..., bn des Speicherbereichs A einen Prüfwert in Abhängigkeit der Daten des jeweiligen Speicherblocks b1, b2, ..., bn zu ermitteln und die Prüfsumme unter Verwendung einer reversiblen mathematischen Funktion in Abhängigkeit der Prüfwerte der Speicherblöcke b1, b2, ..., bn des Speicherbereichs A zu ermitteln. 3 zeigt hierzu ein vereinfachtes Schema, aus dem ersichtlich ist, dass aus jedem Speicherblock b1, b2, ..., bn ein entsprechender Prüfwert h1, h2, ..., hn erhalten wird, und dass die Bildung der Prüfsumme S unter Verwendung der reversiblen mathematischen Funktion F in Abhängigkeit aller Prüfwerte h1, h2, ..., hn erfolgt.
  • Bei einer vorteilhaften Ausführungsform ist vorgesehen, dass die Vorrichtung 10 dazu ausgebildet ist, den mindestens einen Speicherbereich A charakterisierende Informationen zu empfangen. Auf diese Weise kann der Vorrichtung 10 zum Beispiel durch den Mikrocontroller 100 (1) vorgegeben werden, für welchen Speicherbereich die Prüfsumme zu bilden ist, sodass beispielsweise für unterschiedliche Speicherbereiche jeweils unter Anwendung des erfindungsgemäßen Prinzips eine entsprechende Prüfsumme berechnet werden kann. Bei einer bevorzugten Ausführungsform kann die Vorrichtung 10 beispielsweise eine Eingangsschnittstelle für den Empfang der den Speicherbereich A charakterisierenden Informationen aufweisen, vergleiche die Datenverbindung 12 gemäß 1.
  • Die Ermittlung der Prüfwerte h1, h2, ..., hn durch die Vorrichtung 10 erfolgt bevorzugt unter Verwendung einer Streuwertfunktion bzw. Hashfunktion. Bei manchen Ausführungsformen ist vorgesehen, dass die Prüfwerte h1, h2, ..., hn aller Speicherblöcke b1, b2, ..., bn des für die Bildung der Prüfsumme S interessierenden Speicherbereichs A unter Verwendung derselben Hashfunktion ermittelt werden. Bei anderen Ausführungsformen kann vorgesehen sein, dass die Prüfwerte h1, h2 mancher Speicherblöcke b1, b2 des interessierenden Speicherbereichs A (2) unter Verwendung einer ersten Hashfunktion ermittelt werden, und ein Prüfwert hn (3) wenigstens eines anderen Speicherblocks bn des interessierenden Speicherbereichs A unter Verwendung einer hiervon verschiedenen, zweiten Hashfunktion.
  • Bei einer weiteren vorteilhaften Ausführungsform ist die Vorrichtung 10 (1) dazu ausgebildet, eine Speicheradresse A10 (2) eines Speicherblocks b2 bei der Ermittlung des dem Speicherblock zugeordneten Prüfwerts h2 zu berücksichtigen. Insbesondere kann vorgesehen sein, die Ermittlung des Prüfwerts h2 in Abhängigkeit der in dem Speicherblock b2 enthaltenen Daten und der Speicheradresse A10 des Speicherblocks b2 auszuführen.
  • Bei einer weiteren vorteilhaften Ausführungsform ist die Vorrichtung 10 (1) dazu ausgebildet, wenigstens eine der folgenden Funktionen als reversible mathematische Funktion F (3) zur Ermittlung der Prüfsumme S zu verwenden: Summation, Multiplikation, XOR (exklusiv oder)-Operation. Weitere reversible mathematische bzw. logische Funktionen sind anderen Ausführungsformen zufolge ebenfalls denkbar.
  • Unter einer reversiblen mathematischen Funktion F wird vorliegend eine Funktion verstanden, die es ermöglicht, bei der Bildung der Prüfsumme S alle Prüfwerte h1, h2, ..., hn zur Ermittlung der Prüfsumme S miteinander zu kombinieren, insbesondere durch eine Summation aller Prüfwerte bzw. eine Multiplikation aller Prüfwerte bzw. eine XOR- Operation auf allen Prüfwerten, und die es ferner ermöglicht, selektiv den Beitrag wenigstens eines einzelnen Prüfwerts, z.B. des Prüfwerts h2, zu der Prüfsumme S wieder aus der Prüfsumme S zu entfernen. Dadurch ist vorteilhaft die Möglichkeit gegeben, eine bereits erfindungsgemäß ermittelte Prüfsumme S zu aktualisieren, beispielsweise dann, wenn eine Änderung in den Daten eines zur Ermittlung der bereits ermittelten Prüfsumme verwendeten Speicherblocks b2 eingetreten ist. Auf diese Weise kann vorteilhaft vermieden werden, dass alle Prüfwerte für alle Speicherblöcke, insbesondere auch für solche Speicherblöcke, deren Dateninhalt sich seither nicht geändert hat, neu gebildet werden müssen. Hierdurch wird vorteilhaft Rechenleistung und Rechenzeit und elektrische Energie zur Aktualisierung einer Prüfsumme eingespart.
  • Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass die Vorrichtung 10 (1) dazu ausgebildet ist, einen Schreibzugriff auf den Speicherbereich A (2), für den die Prüfsumme S gebildet werden soll, zu unterbinden, während die Prüfsumme durch die Vorrichtung 10 ermittelt wird. Dadurch können vorteilhaft Inkonsistenzen bei der Bildung der Prüfsumme vermieden werden. Bei einer Ausführungsform kann das Unterbinden aktiv durch die Vorrichtung 10 selbst erfolgen, sofern diese in entsprechender Weise an die Speichereinrichtung 110 (1) angebunden ist, insbesondere in einem Speicherzugriffspfad des Mikrocontrollers 100. Alternativ oder ergänzend kann die Vorrichtung 10 einer weiteren Ausführungsform zufolge dem Mikrocontroller 100 bzw. einem Rechenkern 120a, 120b signalisieren, dass Schreibzugriffe in dem vorstehend genannten Sinne zumindest zeitweise zu unterbinden sind.
  • 4A zeigt schematisch ein vereinfachtes Flussdiagramm einer Ausführungsform eines erfindungsgemäßen Betriebsverfahrens für die Vorrichtung 10 gemäß 1. In Schritt 210 ermittelt die Vorrichtung 10 für jeden Speicherblock b1, b2, ..., bn des der Prüfsummenbildung zugrunde zulegenden Speicherbereichs A (2) einen entsprechenden Prüfwert h1, h2, ..., hn, vergleiche auch das Schema aus 3. Sodann ermittelt die Vorrichtung 10 in Schritt 220 (4A) die Prüfsumme S unter Verwendung der reversiblen Funktion F in Abhängigkeit der in Schritt 210 erhaltenen Prüfwerte h1, h2, ..., hn. Beispielsweise kann die reversible Funktion F eine Summation umfassen, sodass für die Prüfsumme S gilt: S = h1 + h2 + ... + hn. Besonders bevorzugt können in Schritt 210 die darin ermittelten Prüfwerte zumindest zeitweise gespeichert werden, um für den nachfolgenden Schritt 220 vorzuliegen.
  • Bei einer weiteren vorteilhaften Ausführungsform kann alternativ hierzu auch vorgesehen sein, die Prüfsumme S durch Abarbeitung einer Rechenschleife bzw. eines Iterationsverfahrens zu ermitteln, was nachfolgend unter Bezugnahme auf das Flussdiagramm gemäß 4B beschrieben ist. Dieser Ansatz bietet den weiteren Vorteil, dass er gut skalierbar ist und insbesondere keine Zwischenspeicherung von Prüfwerten erfordert.
  • In einem ersten Schritt 205 erfolgt eine Initialisierung einer vorläufigen Prüfsumme S'. Beispielsweise wird der vorläufigen Prüfsumme S' hierbei ein vorgebbarer Anfangswert S0 vorgegeben, bei dem es sich beispielsweise um den Wert Null handeln kann, also S'=S0=0. In einem nachfolgenden Schritt 210a wird zunächst für einen ersten Speicherblock b1 der entsprechende Prüfwert h1 gebildet. Sodann wird in einem weiter nachfolgenden Schritt 210b unter Verwendung des zuvor gebildeten Prüfwerts h1 die vorläufige Prüfsumme gemäß der Gleichung S'=S'+h1 aktualisiert. In Schritt 210c wird ermittelt, ob bereits für alle bei der Bildung der Prüfsumme S zu berücksichtigenden Speicherblöcke ein entsprechender Prüfwert gebildet und zu der vorläufigen Prüfsumme S' hinzugefügt worden ist. Sofern dies der Fall ist, verzweigt das Verfahren zu Schritt 210d, in dem der Prüfsumme S der Wert der vorläufigen Prüfsumme S' zugewiesen wird, S=S'. Andernfalls wird aus Schritt 210c erneut zu Schritt 210a verzweigt, und in Schritt 210a wird sodann für einen weiteren Speicherblock b2 der entsprechende Prüfwert h2 gebildet. Sodann wird in dem nachfolgenden Schritt 210b unter Verwendung des zuvor gebildeten Prüfwerts h2 die vorläufige Prüfsumme S' weiter aktualisiert, beispielsweise gemäß der Gleichung S'=S'+h2, und das Verfahren setzt sich wie vorstehend bereits beschrieben fort, bis für alle Speicherblöcke, die bei der Bildung der Prüfsumme S zu berücksichtigen sind, die vorläufige Prüfsumme S' in entsprechender Weise aktualisiert worden ist, woraufhin das Verfahren in Block 210d endet.
  • Unter Verwendung einer Indexvariable i kann das vorstehend unter Bezugnahme auf 4B beschriebene Verfahren mathematisch auch wie folgt beschrieben werden. In Schritt 205 wird die Indexvariable initialisiert, beispielweise mit dem Wert 1, i=1. Ein Initialisierungswert Si‘ für die vorläufige Prüfsumme kann beispielsweise zu Null gewählt werden, Si‘=0. In Schritt 210a wird für einen der Indexvariable i entsprechenden Speicherblock bi ein entsprechender Prüfwert hi gebildet, und in Schritt 210b wird die vorläufige Prüfsumme Si‘ gemäß der folgenden Gleichung aktualisiert S(i+1)‘=Si‘+hi. Sofern das Abbruchkriterium gemäß Schritt 210d nicht bereits erfüllt ist, wird die Indexvariable i inkrementiert, vorzugsweise um den Wert 1, i=i+1, und von Schritt 210c in den Schritt 210a verzweigt, in dem nun für den nächsten Indexwert (vorliegend i=2) ein nächster Prüfwert berechnet wird, und so fort. Sofern das Abbruchkriterium gemäß Schritt 210c erfüllt ist, wird die Indexvariable i nicht weiter inkrementiert, sondern in Schritt 210d der resultierenden Prüfsumme S der Wert der vorläufigen Prüfsumme Si‘ zugewiesen S=Si‘. 5 zeigt schematisch ein vereinfachtes Flussdiagramm einer weiteren Ausführungsform des erfindungsgemäßen Verfahrens. In Schritt 202 empfängt die Vorrichtung 10, beispielsweise von einem Rechenkern 120a (1) des Mikrocontrollers 100, Informationen, die den mindestens einen Speicherbereich A (2), über dessen Dateninhalt die Prüfsumme zu bilden ist, charakterisieren. In Schritt 212 wird eine Streuwertfunktion bzw. Hashfunktion zur Ermittlung der Prüfwerte in Abhängigkeit der Daten der Datenblöcke verwendet. In Schritt 214 wird zusätzlich eine Speicheradresse der Speicherblöcke bei der Ermittlung der Prüfwerte berücksichtigt. Die Schritte 212, 214 bilden vorliegend zusammen eine Ermittlung der Prüfwerte h1, h2, ..., hn analog zu Schritt 210 gemäß 4A. Sodann verwendet die Vorrichtung 10 in Schritt 222 gemäß 5 wenigstens eine der folgenden Funktionen als reversible mathematische Funktion F zur Ermittlung der Prüfsumme S (3): Summation, Multiplikation, XOR-Operation.
  • Alternativ zu dem Ablauf gemäß 5 kann bei einer Ausführungsform auch das vorstehend unter Bezugnahme auf 4B beschriebene iterative Verfahren zur Prüfsummenbildung mit Berücksichtigung der Speicheradresse der Speicherblöcke gemäß 5 verwendet werden. Z.B. kann die Berücksichtigung der Speicheradresse der Speicherblöcke nach 5 in einem Schritt einer Schleife des iterativen Verfahrens ausgeführt werden. Beispielsweise könnte die Berücksichtigung der Speicheradresse der Speicherblöcke in der Schleife analog zu Schritt 210a aus 4B erfolgen.
  • Die vorstehend beschriebene Vorrichtung 10 (1) zur Bildung der Prüfsumme S bzw. ihr Betriebsverfahren können vorteilhaft zur erstmaligen Ermittlung einer Prüfsumme von Daten in einem Speicherbereich A der Speichereinrichtung 110 verwendet werden, beispielsweise im Rahmen eines Herstellungsprozesses des Mikrocontrollers 100 und/oder der Einrichtung (z.B. Programmierung mittels „Flashen“, also Beschreiben eines dem Mikrocontroller zugeordneten FLASH-EEPROM (oder sonstigen) Speichers mit einem entsprechendem Computerprogramm und/oder entsprechenden Daten für den Betrieb) des Mikrocontrollers 100 für einen bestimmten Einsatzzweck. Es versteht sich, dass die Vorrichtung 10 bzw. ihr Betriebsverfahren auch für nachfolgende, weitere Berechnungen von Prüfsummen gemäß dem vorstehend beschriebenen Ablauf verwendet werden können. Besonders vorteilhaft kann die Funktionalität der Vorrichtung 10 bzw. die Vorrichtung 10 selbst auch in den Mikrocontroller 100 integriert werden.
  • 6 zeigt schematisch ein vereinfachtes Blockschaltbild einer Ausführungsform einer erfindungsgemäßen Vorrichtung 20 zur Modifikation einer Prüfsumme S (3), wie sie gemäß der vorstehenden Beschreibung unter Bezugnahme auf die 1 bis 5 mittels der Vorrichtung 10 gemäß 1 ermittelt worden ist.
  • Die Vorrichtung 20 weist eine interne Steuerung 21 auf, bei der es sich beispielsweise um einen Zustandsautomaten handelt. Des Weiteren ist die Vorrichtung 20 über eine Datenverbindung 22 mit der Speichereinrichtung 110 des Mikrocontrollers 100 verbunden, sodass die Vorrichtung 20 wenigstens lesend auf die Speichereinrichtung 110 zugreifen kann. Hierzu kann die Vorrichtung 20 bevorzugt in einem Speicherzugriffspfad des Mikrocontrollers 100 angeordnet sein.
  • Die Vorrichtung 20 verfügt ferner optional über einen internen, lokalen Speicher 24, der beispielsweise als statisches RAM bzw. Registerspeicher ausgebildet sein kann. In dem lokalen RAM 24 kann die Vorrichtung 20 beispielsweise von ihr erzeugte bzw. modifizierte Prüfsummen zumindest zeitweise speichern. Alternativ oder ergänzend kann vorgesehen sein, dass die Vorrichtung 20 dazu ausgebildet ist, schreibend auf die Speichereinrichtung 110 bzw. andere (nicht gezeigte) Speichereinrichtungen zuzugreifen, beispielsweise um die von ihr erzeugten bzw. modifizierten Prüfsummen zu speichern.
  • 7 zeigt schematisch ein vereinfachtes Flussdiagramm einer Ausführungsform eines erfindungsgemäßen Betriebsverfahrens 300 für die Vorrichtung 20 gemäß 6. In einem ersten Schritt 310 ermittelt die Vorrichtung 20, ob ein Schreibzugriff auf einen Speicherbereich A (2) der Speichereinrichtung 110 (6) erfolgt. Hierbei kann es sich um einen Speicherbereich handeln, für den bereits zuvor eine Prüfsumme S (3) gemäß dem vorstehend beschriebenen erfindungsgemäßen Verfahren ermittelt worden ist, beispielsweise durch die Vorrichtung 10 gemäß 1. Ebenso kann es sich hierbei um einen Speicherbereich handeln, für den bereits zuvor eine modifizierte Prüfsumme ermittelt worden ist, beispielsweise durch die Vorrichtung 20 gemäß 6.
  • Sofern ein Schreibzugriff auf den Speicherbereich A erfolgt ist, verliert die bisher bestehende Prüfsumme ihre Gültigkeit. Für die nachfolgende Erklärung wird beispielhaft davon ausgegangen, dass der Inhalt des Speicherblocks b2 (2) des Speicherbereichs A durch einen Schreibzugriff, beispielsweise mittels des Rechenkerns 120a, verändert worden ist.
  • Daher schlägt das beispielhaft in 7 skizzierte erfindungsgemäße Verfahren vor, in Schritt 320 den ursprünglichen Prüfwert h2 des betreffenden Speicherblocks b2, der vor der Veränderung des Inhalts des Speicherblocks b2 ermittelt wurde, aus der bisher bestehenden Prüfsumme S für den Speicherbereich A zu entfernen, wodurch eine reduzierte Prüfsumme erhalten wird, die nicht mehr von dem derzeit nicht mehr zutreffenden Prüfwert des Speicherblocks b2 abhängt. Zur Berücksichtigung des veränderten Dateninhalts des Speicherblocks b2 wird sodann in Schritt 330 (7) durch die Vorrichtung 20 (6) ein neuer Prüfwert h2neu (8) in Abhängigkeit von dem veränderten Dateninhalt (und gegebenenfalls in Abhängigkeit von der Speicheradresse A10 des Speicherblocks b2) ermittelt, und in Schritt 340 wird der so ermittelte neue Prüfwert h2neu der reduzierten Prüfsumme hinzugefügt, wodurch eine aktualisierte Prüfsumme erhalten wird. Die aktualisierte Prüfsumme enthält vorteilhaft die erfindungsgemäß neu ermittelten Informationen des zuvor geänderten Dateninhalts des Speicherblocks b2.
  • 8 zeigt schematisch die Modifikation einer bestehenden Prüfsumme S gemäß einer Ausführungsform. Wie vorstehend unter Bezugnahme auf 7 beschrieben, wird durch den Schritt 320 eine reduzierte Prüfsumme S_red erhalten, vergleiche auch den Pfeil 320' aus 8. Durch Hinzufügung des neuen Prüfwerts h2neu, vergleiche Block 340' aus 8, wird sodann die aktualisierte Prüfsumme S_neu erhalten.
  • Sofern mehrere Speicherblöcke hinsichtlich ihres Dateninhalts geändert worden sind, sind entsprechend deren jeweilige Prüfwerte in dem vorstehend genannten Sinn für die Aktualisierung zu berücksichtigen (insbesondere gegen entsprechende neue Prüfwerte „auszutauschen“), nicht jedoch die Prüfwerte aller anderen Speicherblöcke, welche seither unverändert sind.
  • Besonders bevorzugt wird für die erfindungsgemäße Modifikation einer Prüfsumme S, wie vorstehend unter Bezugnahme auf die 6, 7, 8 beschrieben, in dem Schritt 320 (7) des Entfernens eines Prüfwerts eine solche mathematische Funktion für das Entfernen verwendet, welche invers zu der reversiblen mathematischen Funktion F ist, die zuvor zur Bildung der Prüfsumme S verwendet worden ist. Weiter bevorzugt wird für den Schritt 330 des Ermittelns des neuen Prüfwerts h2neu dasselbe Verfahren verwendet, wie es zuvor für die Bildung des alten Prüfwerts h2 verwendet worden ist, also beispielsweise dieselbe Hashfunktion bzw. dieselbe CRC-Funktion. Weiter bevorzugt wird für die erfindungsgemäße Modifikation der Prüfsumme in dem Schritt 340 des Hinzufügens des neuen Prüfwerts dieselbe reversible mathematische Funktion F verwendet, wie sie zuvor für die Bildung der Prüfsumme S verwendet worden ist.
  • Bei einer weiteren vorteilhaften Ausführungsform kann die Vorrichtung 20 ( 6) dazu ausgebildet sein, den mindestens einen Speicherbereich A (2) charakterisierende Informationen und/oder die Prüfsumme zu empfangen, insbesondere während ihres Betriebs. Dadurch kann beispielsweise ein Rechenkern 120a des Mikrocontrollers 100 vorgeben, für welchen Speicherbereich A der Speichereinrichtung 110 (6) eine erfindungsgemäße Modifikation der Prüfsumme S im Falle eines Beschreibens wenigstens eines Speicherblocks des Speicherbereichs A auszuführen ist.
  • Bei weiteren vorteilhaften Ausführungsformen können die Vorrichtungen 10, 20 auch Prüfsummen für mehrere verschiedene Speicherbereiche derselben Speichereinrichtung 110 oder sogar verschiedener Speichereinrichtungen (nicht gezeigt) bilden bzw. modifizieren. Insbesondere ist vorstellbar, dass die Vorrichtungen 10, 20 diese Schritte in einem zeitlichen Multiplexbetrieb ausführen. Beispielsweise kann Vorrichtung 20 zyklisch mehrere Speicherbereiche überwachen und gegebenenfalls deren jeweils zugeordnete Prüfsumme aktualisieren, sofern sie entsprechende Schreibzugriffe bzw. Veränderungen von Dateninhalten darin festgestellt hat.
  • 9 zeigt schematisch ein vereinfachtes Blockschaltbild einer Ausführungsform einer erfindungsgemäßen Recheneinrichtung 100, die beispielsweise wiederum als Mikrocontroller ausgebildet ist. Neben den Rechenkernen 120a, 120b verfügt der Mikrocontroller 100 über eine Speichereinrichtung 110.
  • Bei einer vorteilhaften Ausführungsform ist der Mikrocontroller 100 dazu ausgebildet, eine Prüfsumme für einen mehrere Speicherblöcke aufweisenden Speicherbereich A der Speichereinrichtung 110 zu ermitteln. 10A zeigt hierzu schematisch ein vereinfachtes Flussdiagramm des entsprechenden Verfahrens 400. Schritt 410 sieht das Ermitteln eines Prüfwerts für jeden Speicherblock des Speicherbereichs A in Abhängigkeit der Daten des jeweiligen Speicherblocks vor und entspricht damit im Wesentlichen Schritt 210 gemäß 4A. Schritt 420 gemäß 10A sieht das Ermitteln der Prüfsumme unter Verwendung einer reversiblen mathematischen Funktion F in Abhängigkeit der Prüfwerte aus Schritt 410 vor und entspricht damit im Wesentlichen Schritt 220 gemäß 4A. Mit anderen Worten weist der Mikrocontroller 100 bei einer bevorzugten Ausführungsform im Wesentlichen die Funktionalität zur Ermittlung einer Prüfsumme S auf, wie sie vorstehend unter Bezugnahme auf die 1 bis 5 und die Vorrichtung 10 beschrieben worden ist. Bei bevorzugten Ausführungsformen kann wiederum das Iterationsverfahren gemäß 4B verwendet werden.
  • Diese Funktionalität kann in dem Mikrocontroller 100 beispielsweise durch ein Computerprogramm realisiert werden, das auf einem Rechenkern 120a abläuft. Alternativ kann diese Funktionalität in dem Mikrocontroller 100 dadurch bereitgestellt werden, dass eine, bevorzugt komplett als Hardwareschaltung ausgebildete, Vorrichtung 10 in den Mikrocontroller 100 integriert wird, vergleiche 9.
  • Bei einer weiteren vorteilhaften Ausführungsform kann der Mikrocontroller 100 auch wenigstens eine erfindungsgemäße Vorrichtung 20 zur Modifikation einer Prüfsumme aufweisen, wie sie vorstehend unter Bezugnahme auf die 5 bis 8 beschrieben worden ist. Dadurch ist vorteilhaft gewährleistet, dass ein oder mehreren Speicherbereichen der Speichereinrichtung 110 regelmäßig aktualisierte Prüfsummen zugewiesen werden können, wodurch sich die Betriebssicherheit des Mikrocontrollers 100 bzw. darauf laufender Software erhöht.
  • 10B zeigt schematisch ein vereinfachtes Flussdiagramm einer weiteren Ausführungsform eines erfindungsgemäßen Betriebsverfahrens für den Mikrocontroller 100 gemäß 9. In Schritt 430 wird eine Ist-Prüfsumme für den Speicherbereich A ermittelt. Dies kann beispielsweise unter Verwendung eines auf einem Rechenkern 120a ablaufenden Computerprogramms erfolgen. In Schritt 440 gemäß 10B wird die Ist-Prüfsumme aus Schritt 430 mit einer mittels der Vorrichtung 20 bereitgestellten Soll-Prüfsumme, bei der es sich vorteilhaft um eine aktualisierte Prüfsumme handelt, für den Speicherbereich A verglichen. Sofern eine Diskrepanz zwischen der Ist-Prüfsumme und der Soll-Prüfsumme besteht, kann der Mikrocontroller 100 eine Fehlerreaktion einleiten. Sofern keine Diskrepanz zwischen den Prüfsummen besteht, können HardwareFehler im Bereich der Speichereinrichtung 110 mit einer gewissen Wahrscheinlichkeit ausgeschlossen werden.
  • Bei einer weiteren vorteilhaften Ausführungsform ist der Mikrocontroller 100 dazu ausgebildet, Schreibzugriffe auf den Speicherbereich A (2) zu unterbinden (beispielsweise mittels „locking“ oder einem systematischen Ausschluss von Schreibzugriffen), während (beispielsweise in Schritt 430 gemäß 10B) die Prüfsumme S gebildet wird.
  • 11 zeigt schematisch ein vereinfachtes Blockdiagramm eines Mikrocontrollers gemäß einer weiteren Ausführungsform. Der Rechenkern 120a ist über ein Bussystem 130 mit der Speichereinrichtung 110 verbunden. Bei der Speichereinrichtung 110 gemäß 11 kann es sich beispielsweise um einen on-chip-Speicher handeln, also einen Speicher, der auf einem Halbleitersubstrat des Mikrocontrollers bzw. auf demselben Halbleitersubstrat wie der Rechenkern 120a angeordnet ist. Alternativ oder ergänzend kann die Speichereinrichtung 110 auch über ein Speicherinterface angebunden sein, beispielsweise in Form eines externen DDR (double data rate)-Speichers. Eine erfindungsgemäße Vorrichtung 20a zur Modifikation einer Prüfsumme, welche beispielsweise die vorstehend unter Bezugnahme auf die 5 bis 8 beschriebene Funktionalität aufweist, kann beispielsweise zwischen dem Rechenkern 120a und dem Bussystem 130 angeordnet sein. Alternativ oder ergänzend kann auch zwischen dem Bussystem 130 und der Speichereinrichtung 110 eine Vorrichtung 20b zur Modifikation einer Prüfsumme vorgesehen sein, welche beispielsweise die vorstehend unter Bezugnahme auf die 5 bis 8 beschriebene Funktionalität aufweist. Beide (optionalen) Vorrichtungen 20a, 20b sind damit in einem Speicherzugriffspfad M des Mikrocontrollers angeordnet, wodurch ein effizienter Zugriff seitens der Vorrichtungen 20a, 20b auf die Speichereinrichtung 110 gegeben ist. Beide (optionalen) Vorrichtungen 20a, 20b können vorteilhaft einen (eigenen lokalen) Speicher 24a bzw. 24b aufweisen, beispielsweise einen Registerspeicher, in dem z.B. modifizierte Prüfsummen zumindest zeitweise speicherbar sind.
  • Das erfindungsgemäße Prinzip der Berechnung von Prüfsummen bzw. der Modifikation von Prüfsummen kann vorteilhaft zur Absicherung von Daten verwendet werden, die in der Speichereinrichtung 110 gespeichert sind. Besonders vorteilhaft kann das Prinzip selektiv auf einen oder mehrere interessierende Speicherbereiche A (2) angewendet werden, indem für die Bildung der Prüfsumme bzw. die Modifikation der Prüfsumme den entsprechenden Vorrichtungen 10, 20 jeweils der Speicherbereich A bzw. die den Speicherbereich charakterisierenden Informationen wie beispielsweise eine Startadresse A1 sowie eine Endadresse A2 und dergleichen übergeben werden. Dies kann beispielsweise unter Steuerung durch einen Rechenkern 120a des Mikrocontrollers 100 erfolgen.
  • Durch die Anwendung des erfindungsgemäßen Prinzips lassen sich zyklische oder auch sporadische Tests von Speicherinhalten auf Fehlerfreiheit effizient realisieren. Besonders vorteilhaft ist die Konfiguration der Speicherbereiche A, für die eine Prüfsumme gebildet bzw. modifiziert werden soll, dynamisch zur Laufzeit des Mikrocontrollers möglich. Dadurch kann das erfindungsgemäße Prinzip besonders vorteilhaft auch bei Recheneinrichtungen bzw. Mikrocontrollern eingesetzt werden, bei denen ein Hypervisor (z.B. zur Hardware-Virtualisierung) zum Einsatz kommt.
  • Im Vergleich zu konventionellen hardwarebasierten Ansätzen, die pauschal eine gesamte Speichereinrichtung mittels einer Prüfsumme absichern, kann durch die Anwendung des erfindungsgemäßen Prinzips insbesondere bei gemischt kritischen Systemen Strom, Speicherplatz für Prüfsummen und gegebenenfalls auch Speicherbandbreite gespart werden.
  • In einem gemischt kritischen System sind manche Daten besonders kritisch und müssen mit zusätzlichen Maßnahmen abgesichert werden, während für andere Daten keine zusätzlichen Maßnahmen notwendig sind (kritisch im Sinne von funktionaler Sicherheit (englisch: safety)). Weiterhin können Daten im Betrieb geändert (geschrieben) werden, was prinzipiell eine Änderung der Prüfsumme erfordert. Ein gemischt kritisches System im automotive Bereich ist etwa ein Assistenzsystem, das ASIL D Funktionen (im Sinne der ISO26262) und Komfortfunktionen vereint. Bei diesen gemischt kritischen Systemen ist das erfindungsgemäße Prinzip besonders vorteilhaft einsetzbar, weil es eine selektive Beaufschlagung von frei konfigurierbaren Speicherbereichen A mit einer Prüfsumme bzw. deren Überwachung ermöglicht.
  • Durch die freie Konfigurierbarkeit ist weiter gewährleistet, dass die erfindungsgemäße Bildung bzw. Modifikation der Prüfsumme nur auf gewünschte interessierende Speicherbereiche A angewandt wird, wodurch die vorstehend genannten Ressourcen eingespart werden können.
  • Ein weiterer Vorteil der erfindungsgemäßen Modifikation der Prüfsumme besteht darin, dass nur bei Änderungen von Daten innerhalb eines interessierenden bzw. mittels Prüfsumme zu schützenden Speicherbereichs A die zugehörige Prüfsumme entsprechend modifiziert bzw. aktualisiert wird, basierend auf dem geschriebenen Datum, und insbesondere ohne dass alle Daten des zu schützenden Speicherbereichs A gelesen werden müssen. Vielmehr kann durch die selektive Entfernung eines oder weniger Prüfwerte des bzw. der neubeschriebenen Speicherblöcke und ein entsprechendes Hinzufügen eines oder mehrerer neuer Prüfwerte die Prüfsumme des zu schützenden Speicherbereichs A effizient aktualisiert werden.
  • Bei einer bevorzugten Ausführungsform erfolgt eine Überprüfung des Speicherbereichs A auf Fehler vorzugsweise zyklisch oder sporadisch, besonders bevorzugt in Software, also beispielsweise durch ein auf einem Rechenkern des Mikrocontrollers 100 ablaufendes Computerprogramm. Für die Überprüfung kann beispielsweise eine aktuelle Prüfsumme, wie sie durch die Vorrichtung 10 bzw. 20 erfindungsgemäß ermittelt bzw. aktualisiert oder modifiziert worden ist, ausgelesen werden (Soll-Prüfsumme) und mit einer für den Speicherbereich berechneten Prüfsumme (Ist-Prüfsumme) verglichen werden. Eine Abweichung lässt auf einen Hardwarefehler im Bereich des Mikrocontrollers bzw. seiner Speichereinrichtung schließen, woraufhin geeignete Maßnahmen wie beispielsweise eine Fehlerreaktion eingeleitet werden können.
  • Besonders vorteilhaft ist eine Aktualisierung der Prüfsumme erfindungsgemäß nur dann auszuführen, wenn in den zu überwachenden Speicherbereich A geschrieben worden ist. Weiter vorteilhaft ist eine Aktualisierung der Prüfsumme erfindungsgemäß in konstant kurzer Zeit möglich. Die Aktualisierung erfordert beispielsweise einen Rechenzeitverbrauch, der proportional ist zu der Anzahl der beschriebenen Speicherblöcke, welche zu einer betrachteten Prüfsumme beitragen.
  • Ein weiterer bedeutender Vorteil des erfindungsgemäßen Prinzips besteht darin, dass die Funktionalität der Vorrichtung 10 und/oder der Vorrichtung 20, vorzugsweise vollständig, in Form einer Hardwareschaltung bereitgestellt werden kann und damit transparent ist für eine auf den Rechenkernen des Mikrocontrollers 100 ausgeführte Software. Daher muss diese Software nicht modifiziert werden, um auf einem bestehenden Mikrocontroller 100, der an die Funktionalität der Vorrichtungen 10 bzw. 20 ergänzt worden ist, das erfindungsgemäße Prinzip anzuwenden. Insbesondere lässt sich das erfindungsgemäße Prinzip daher auch für in beliebiger Form, beispielsweise als Binärcode, vorliegende Software einsetzen.
  • Besonders vorteilhaft ist unter Anwendung des erfindungsgemäßen Prinzips eine regelmäßige Aktualisierung einer Prüfsumme für einen Speicherbereich A ermöglicht, insbesondere immer dann, wenn sich eine Veränderung in dem Speicherbereich gegeben hat, beispielsweise durch einen Schreibzugriff auf wenigstens einen Speicherblock des Speicherbereichs. Optional kann eine sporadische oder zyklische Prüfung des Speicherbereichs durch den vorstehend bereits mehrfach beschriebenen Vergleich von Ist-Prüfsumme und Soll-Prüfsumme erfolgen.
  • Bei einer weiteren vorteilhaften Ausführungsform ist die Vorrichtung 10 bzw. die Vorrichtung 20 so ausgebildet, dass ihre aktuelle Programmierung, also beispielsweise die den interessierenden Speicherbereich A charakterisierenden Startadressen und Endadressen bzw. zugehörige Prüfsummen ausgelesen werden können, beispielsweise durch Auslesen eines Registers 14 bzw. 24 der entsprechenden Vorrichtung 10, 20 durch einen Rechenkern des Mikrocontrollers. Mit dieser ausgelesenen Prüfsumme kann die vorstehend bereits beschriebene Überprüfung des Speicherbereichs A durch den Rechenkern erfolgen. Alternativ oder ergänzend ist auch eine Überprüfung im Sinne des beschriebenen Vergleichs von Ist-Prüfsumme und Soll-Prüfsumme durch eine zumindest teilweise oder auch vollständig als Hardwareschaltung realisierte Einheit möglich.
  • Bei einer weiteren vorteilhaften Ausführungsform können die Vorrichtung 10 bzw. die Vorrichtung 20 zur Bildung von Prüfsummen bzw. Aktualisierung bzw. Modifizierung von Prüfsummen für mehrere interessierende Speicherbereiche konfiguriert werden. Beispielsweise können den Vorrichtungen 10, 20 hierzu entsprechende Informationen (Startadressen, Endadressen) der interessierenden Speicherbereiche übermittelt werden, beispielsweise durch Schreiben in entsprechende Registerspeicher 14, 24. Bei einer besonders bevorzugten Ausführungsform kann die Vorrichtung 10 bzw. die Vorrichtung 20 beispielsweise mit Informationen über bis zu 16 verschiedene Speicherbereiche versehen werden, und die Vorrichtungen 10, 20 können dementsprechend bis zu 16 den verschiedenen Speicherbereichen zugeordnete (modifizierte) Prüfsummen speichern. Bei anderen Ausführungsformen ist auch eine kleinere oder größere Anzahl als 16 denkbar.
  • Bei einer weiteren vorteilhaften Ausführungsform kann die Größe der Prüfsumme S in Bit in Abhängigkeit von den Sicherheitsanforderungen an den überwachenden Speicherbereich A gewählt sein. Bei manchen Ausführungsformen kann die Prüfsumme einige Bit bis einige 100 Bit umfassen. Bei anderen Ausführungsformen ist es auch denkbar, dass die Prüfsumme mehrere Kilobit umfasst.
  • Das erfindungsgemäße Prinzip ist besonders vorteilhaft in allen Produkten anwendbar, die wenigstens eine Recheneinrichtung wie beispielsweise einen Mikrocontroller 100 aufweisen, die sicherheitskritische (englisch: „safety critical“) Software ausführt, und bei denen insbesondere Hardwareelemente wie die Speichereinrichtung 110 ohne zusätzliche Maßnahmen nicht eigensicher genug sind.

Claims (16)

  1. Vorrichtung (10) zur Bildung einer Prüfsumme (S) für einen mehrere Speicherblöcke (b1, b2, ..., bn) aufweisenden Speicherbereich (A) einer Speichereinrichtung (110), insbesondere für eine Recheneinrichtung (100), wobei die Vorrichtung (10) dazu ausgebildet ist, für jeden Speicherblock (b1, b2, ..., bn) einen Prüfwert (h1, h2, ..., hn) in Abhängigkeit der Daten des jeweiligen Speicherblocks (b1, b2, ..., bn) zu ermitteln (210) und die Prüfsumme (S) unter Verwendung einer reversiblen mathematischen Funktion (F) in Abhängigkeit der Prüfwerte (h1, h2, ..., hn) der Speicherblöcke (b1, b2, ..., bn) des Speicherbereichs (A) zu ermitteln (220).
  2. Vorrichtung (10) nach Anspruch 1, wobei die Vorrichtung (10) dazu ausgebildet ist, den mindestens einen Speicherbereich (A) charakterisierende Informationen (A1, A2) zu empfangen, insbesondere während eines Betriebs der Vorrichtung (10).
  3. Vorrichtung (10) nach einem der vorstehenden Ansprüche, wobei die Vorrichtung (10) dazu ausgebildet ist, eine Streuwertfunktion zur Ermittlung von Prüfwerten zu verwenden.
  4. Vorrichtung (10) nach einem der vorstehenden Ansprüche, wobei die Vorrichtung (10) dazu ausgebildet ist, eine Speicheradresse (A10) eines Speicherblocks (b2) bei der Ermittlung des Prüfwerts (h2) zu berücksichtigen.
  5. Vorrichtung (10) nach einem der vorstehenden Ansprüche, wobei die Vorrichtung (10) dazu ausgebildet ist, wenigstens eine der folgenden Funktionen als reversible mathematische Funktion zur Ermittlung der Prüfsumme (S) zu verwenden: Summation, Multiplikation, XOR-Operation.
  6. Verfahren (200) zum Betreiben einer Vorrichtung (10) zur Bildung einer Prüfsumme (S) für einen mehrere Speicherblöcke (b1, b2, ..., bn) aufweisenden Speicherbereich (A) einer Speichereinrichtung (110), insbesondere für eine Recheneinrichtung (100), wobei das Verfahren (200) die folgenden Schritte aufweist: für jeden Speicherblock (b1, b2, ..., bn) Ermitteln (210) eines Prüfwerts (h1, h2, ..., hn) in Abhängigkeit der Daten des jeweiligen Speicherblocks (b1, b2, ..., bn), Ermitteln (220) der Prüfsumme (S) unter Verwendung einer reversiblen mathematischen Funktion (F) in Abhängigkeit der Prüfwerte (h1, h2, ..., hn) der Speicherblöcke (b1, b2, ..., bn) des Speicherbereichs (A).
  7. Verfahren (200) nach Anspruch 6, wobei das Verfahren (200) wenigstens einen der nachfolgenden Schritte aufweist: - Empfangen (202) von den mindestens einen Speicherbereich (A) charakterisierenden Informationen (A1, A2), insbesondere während eines Betriebs der Vorrichtung (10), - Verwenden (212) einer Streuwertfunktion zur Ermittlung von Prüfwerten (h1, h2, ..., hn), - Berücksichtigen (214) einer Speicheradresse (A10) eines Speicherblocks (b2) bei der Ermittlung (210) des Prüfwerts (h2), - Verwendung (222) wenigstens einer der folgenden Funktionen als reversible mathematische Funktion zur Ermittlung (220) der Prüfsumme (S): Summation, Multiplikation, XOR-Operation.
  8. Vorrichtung (20; 20a; 20b) zur Modifikation einer Prüfsumme (S) für einen mehrere Speicherblöcke (b1, b2, ..., bn) aufweisenden Speicherbereich (A) einer Speichereinrichtung (110), insbesondere für eine Recheneinrichtung (100), wobei für jeden Speicherblock (b1, b2, ..., bn) ein Prüfwert (h1, h2, ..., hn) in Abhängigkeit der Daten des Speicherblocks (b1, b2, ..., bn) ermittelbar ist, und wobei die Prüfsumme (S) unter Verwendung einer reversiblen mathematischen Funktion (F) in Abhängigkeit der Prüfwerte (h1, h2, ..., hn) der Speicherblöcke (b1, b2, ..., bn) des Speicherbereichs (A) ermittelbar ist, wobei die Vorrichtung (20; 20a; 20b) zur Ausführung der folgenden Schritte ausgebildet ist: - Ermitteln (310), ob ein Schreibzugriff auf den Speicherbereich (A) erfolgt, - falls ein Schreibzugriff auf den Speicherbereich (A) erfolgt ist, Entfernen (320) des ursprünglichen Prüfwerts (h2) desjenigen Speicherblocks (b2) aus der Prüfsumme (S), in dem der Schreibzugriff erfolgt ist, wodurch eine reduzierte Prüfsumme (S_red) erhalten wird, Ermitteln (330) eines neuen Prüfwerts (h2neu) für den Speicherblock (b2), in dem der Schreibzugriff erfolgt ist, Hinzufügen (340) des neuen Prüfwerts (h2neu) zu der reduzierten Prüfsumme (S_red), wodurch eine aktualisierte Prüfsumme (S_neu) erhalten wird.
  9. Vorrichtung (20; 20a; 20b) nach Anspruch 8, wobei die Vorrichtung (20; 20a; 20b) dazu ausgebildet ist, den mindestens einen Speicherbereich (A) charakterisierende Informationen (A1, A2) und/oder die Prüfsumme (S) zu empfangen, insbesondere während eines Betriebs der Vorrichtung (20; 20a; 20b).
  10. Vorrichtung (20; 20a; 20b) nach einem der Ansprüche 8 bis 9, wobei die Vorrichtung (20; 20a; 20b) in einem Speicherzugriffspfad (M) liegt, der der Recheneinrichtung (100) einen Zugriff auf die Speichereinrichtung (110) ermöglicht.
  11. Verfahren (300) zum Betreiben einer Vorrichtung (20; 20a; 20b) zur Modifikation einer Prüfsumme (S) für einen mehrere Speicherblöcke (b1, b2, ..., bn) aufweisenden Speicherbereich (A) einer Speichereinrichtung (110), insbesondere für eine Recheneinrichtung (100), wobei für jeden Speicherblock (b1, b2, ..., bn) ein Prüfwert (h1, h2, ..., hn) in Abhängigkeit der Daten des Speicherblocks (b1, b2, ..., bn) ermittelbar ist, und wobei die Prüfsumme (S) unter Verwendung einer reversiblen mathematischen Funktion (F) in Abhängigkeit der Prüfwerte (h1, h2, ..., hn) der Speicherblöcke (b1, b2, ..., bn) des Speicherbereichs (A) ermittelbar ist, wobei das Verfahren (300) die folgenden Schritte aufweist: - Ermitteln (310), ob ein Schreibzugriff auf den Speicherbereich (A) erfolgt, - falls ein Schreibzugriff auf den Speicherbereich (A) erfolgt ist, Entfernen (320) des ursprünglichen Prüfwerts (h2) desjenigen Speicherblocks (b2) aus der Prüfsumme (S), in dem der Schreibzugriff erfolgt ist, wodurch eine reduzierte Prüfsumme (S_red) erhalten wird, Ermitteln (330) eines neuen Prüfwerts (h2neu) für den Speicherblock (b2), in dem der Schreibzugriff erfolgt ist, Hinzufügen (340) des neuen Prüfwerts (h2neu) zu der reduzierten Prüfsumme (S_red), wodurch eine aktualisierte Prüfsumme (S_neu) erhalten wird.
  12. Recheneinrichtung (100) mit wenigstens einem Rechenkern (120a, 120b) wobei die Recheneinrichtung (100) dazu ausgebildet ist, eine Prüfsumme (S) für einen mehrere Speicherblöcke (b1, b2, ..., bn) aufweisenden Speicherbereich (A) einer der Recheneinrichtung (100) zugeordneten Speichereinrichtung (110) zu ermitteln (400), wobei das Ermitteln (400) die folgenden Schritte aufweist: - für jeden Speicherblock (b1, b2, ..., bn) Ermitteln (410) eines Prüfwerts (h1, h2, ..., hn) in Abhängigkeit der Daten des jeweiligen Speicherblocks (b1, b2, ..., bn), - Ermitteln (420) der Prüfsumme (S) unter Verwendung einer reversiblen mathematischen Funktion (F) in Abhängigkeit der Prüfwerte (h1, h2, ..., hn) der Speicherblöcke (b1, b2, ..., bn) des Speicherbereichs (A).
  13. Recheneinrichtung (100) nach Anspruch 12, wobei die Recheneinrichtung (100) wenigstens eine Vorrichtung (10) zur Bildung einer Prüfsumme (S) nach wenigstens einem der Ansprüche 1 bis 5 aufweist und/oder wenigstens eine Vorrichtung (20; 20a; 20b) zur Modifikation einer Prüfsumme (S) nach wenigstens einem der Ansprüche 8 bis 10.
  14. Recheneinrichtung (100) nach wenigstens einem der Ansprüche 12 bis 13, wobei die Recheneinrichtung (100) wenigstens eine Vorrichtung (20; 20a; 20b) zur Modifikation einer Prüfsumme (S) nach wenigstens einem der Ansprüche 8 bis 10 aufweist, und wobei die Recheneinrichtung (100) dazu ausgebildet ist, insbesondere zyklisch oder sporadisch, eine Ist-Prüfsumme für den Speicherbereich (A) zu ermitteln (430) und mit einer mittels der Vorrichtung (20) bereitgestellten Soll-Prüfsumme für den Speicherbereich (A) zu vergleichen (440).
  15. Recheneinrichtung (100) nach wenigstens einem der Ansprüche 12 bis 14, wobei die Recheneinrichtung (100) dazu ausgebildet ist, Schreibzugriffe auf den Speicherbereich (A) zu unterbinden, während die Prüfsumme (S) gebildet wird.
  16. Verfahren zum Betreiben einer Recheneinrichtung (100) mit wenigstens einem Rechenkern (120a, 120b), wobei die Recheneinrichtung (100) eine Prüfsumme (S) für einen mehrere Speicherblöcke (b1, b2, ..., bn) aufweisenden Speicherbereich (A) einer der Recheneinrichtung (100) zugeordneten Speichereinrichtung (110) ermittelt (400), wobei das Ermitteln (400) die folgenden Schritte aufweist: für jeden Speicherblock (b1, b2, ..., bn) Ermitteln (410) eines Prüfwerts (h1, h2, ..., hn) in Abhängigkeit der Daten des jeweiligen Speicherblocks (b1, b2, ..., bn), Ermitteln (420) der Prüfsumme (S) unter Verwendung einer reversiblen mathematischen Funktion (F) in Abhängigkeit der Prüfwerte (h1, h2, ..., hn) der Speicherblöcke (b1, b2, ..., bn) des Speicherbereichs (A).
DE102017202611.1A 2017-02-17 2017-02-17 Vorrichtung zur Bildung einer Prüfsumme und Betriebsverfahren hierfür Pending DE102017202611A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102017202611.1A DE102017202611A1 (de) 2017-02-17 2017-02-17 Vorrichtung zur Bildung einer Prüfsumme und Betriebsverfahren hierfür

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102017202611.1A DE102017202611A1 (de) 2017-02-17 2017-02-17 Vorrichtung zur Bildung einer Prüfsumme und Betriebsverfahren hierfür

Publications (1)

Publication Number Publication Date
DE102017202611A1 true DE102017202611A1 (de) 2018-08-23

Family

ID=63046112

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017202611.1A Pending DE102017202611A1 (de) 2017-02-17 2017-02-17 Vorrichtung zur Bildung einer Prüfsumme und Betriebsverfahren hierfür

Country Status (1)

Country Link
DE (1) DE102017202611A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022111925A1 (de) 2022-05-12 2023-11-16 Infineon Technologies Ag Halbleiterchipvorrichtung und verfahren zum prüfen der integrität eines speichers

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022111925A1 (de) 2022-05-12 2023-11-16 Infineon Technologies Ag Halbleiterchipvorrichtung und verfahren zum prüfen der integrität eines speichers

Similar Documents

Publication Publication Date Title
DE102012214324B4 (de) Verfahren und Vorrichtung zur Erleichterung der Datenüberprüfung mithilfe einer Prüfsumme in Verbindung mit einem Sidefile
DE102013013047B4 (de) Bestimmung einer Kennung
DE102010013349A1 (de) Computersystem und Verfahren zum Vergleichen von Ausgangssignalen
EP3065078A1 (de) Schutz von speicherinhalten eines speichers eines computersystems unter verwendung einer hashfunktion
DE102016215345A1 (de) Verfahren und Vorrichtung zur redundanten Datenverarbeitung
DE102007006612B4 (de) Verfahren, Endgerät und Computerprogrammprodukt zum Erhöhen der Verfügbarkeit eines globalen Navigationssystems
EP3291094A1 (de) Prozessorsystem und verfahren zur überwachung von prozessoren
EP1563629B1 (de) Verfahren zur signaturbildung und übertragung von daten
EP3811260B1 (de) Kryptografiemodul und betriebsverfahren hierfür
DE102016223341A1 (de) Integrierte Schaltung mit Hardwareprüfeinheit zum Überprüfen von ausgewählten Speicherzugriffen
DE112016004301T5 (de) Vornehmen einer flüchtigen Fehleratomarität von Isolierungstransaktionen in einem nichtflüchtigen Speicher
EP2963541B1 (de) Implementierung einer Konstanten in FPGA-Code
DE102017202611A1 (de) Vorrichtung zur Bildung einer Prüfsumme und Betriebsverfahren hierfür
EP3378006B1 (de) Verfahren zum laden eines sicheren speicherabbilds eines mikrocontrollers und anordnung mit einem mikrocontroller
DE102017209856A1 (de) Recheneinheit und Betriebsverfahren hierfür
DE102005016801B4 (de) Verfahren und Rechnereinheit zur Fehlererkennung und Fehlerprotokollierung in einem Speicher
DE102013021231A1 (de) Verfahren zum Betrieb eines Assistenzsystems eines Fahrzeugs und Fahrzeugsteuergerät
DE10131577A1 (de) Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation seines Programms
DE102019212813A1 (de) Verfahren und Überprüfungseinheit zum Überprüfen von Daten in einer Speichereinheit eines System-on-a-Chip
DE102017208522A1 (de) Recheneinheit und Betriebsverfahren hierfür
DE102010026392A1 (de) Verfahren zur sicheren Parametrierung eines Sicherheitsgeräts
DE102018112584A1 (de) Konfigurierbare Sensorvorrichtung und Verfahren zur Überwachung ihrer Konfiguration
DE102006043167B4 (de) Mikrocontroller und Verfahren zum Starten eines Anwendungsprogramms auf einem Mikrocontroller
EP3583477A1 (de) Erhalten von verpackungsanlagenzustandsdaten
EP3876123B1 (de) Anordnung und betriebsverfahren für einen sicheren hochfahrablauf einer elektronischen einrichtung

Legal Events

Date Code Title Description
R012 Request for examination validly filed