AT513533A2 - Verfahren zum Überprüfen von Daten mittels wenigstens zweier Prüfsummen - Google Patents

Verfahren zum Überprüfen von Daten mittels wenigstens zweier Prüfsummen Download PDF

Info

Publication number
AT513533A2
AT513533A2 ATA791/2013A AT7912013A AT513533A2 AT 513533 A2 AT513533 A2 AT 513533A2 AT 7912013 A AT7912013 A AT 7912013A AT 513533 A2 AT513533 A2 AT 513533A2
Authority
AT
Austria
Prior art keywords
checksum
data
cs2s
cslu
program
Prior art date
Application number
ATA791/2013A
Other languages
English (en)
Other versions
AT513533A3 (de
AT513533B1 (de
Original Assignee
Bosch Gmbh Robert
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 Bosch Gmbh Robert filed Critical Bosch Gmbh Robert
Publication of AT513533A2 publication Critical patent/AT513533A2/de
Publication of AT513533A3 publication Critical patent/AT513533A3/de
Application granted granted Critical
Publication of AT513533B1 publication Critical patent/AT513533B1/de

Links

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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zum Überprüfen von Daten in einer Recheneinheit zur Laufzeit eines Programms, wobei die Daten (DATA) mit einer Prüfsumme erster Art (CS2s) und mit einer Prüfsumme zweiter Art (CS1u) überprüft werden, indem die Prüfsumme erster Art und die Prüfsumme zweiter Art zur Laufzeit des Programms berechnet und mit jeweils mit einer gespeicherten Prüfsumme (CS1u, CS2s) verglichen werden, wobei zur Laufzeit des Programms der Rechenzeitbedarf zum Berechnen der Prüfsumme zweiter Art (CS1u) gerin¬ger als der Rechenzeitbedarf zum Berechnen der Prüfsumme erster Art (CS2s) ist.

Description

Robert Bosch GmbH, Stuttgart
Verfahren zum Überprüfen von Daten mittels wenigstens zweier Prüfsummen
Beschreibung
Die vorliegende Erfindung betrifft ein Verfahren zum Überprüfen von Daten mittels wenigstens zweier Prüfsummen sowie eine Recheneinheit zu dessen Durchführung.
Stand der Technik
Die Erfindung befasst sich mit sicherheitsgerichteter Software, bei der Daten (insbesondere Programmcode und/oder andere statische (konstante) Daten) in einer Speichereinheit liegen. Die Datenintegrität dieser Daten muss dabei sichergesteilt werden, um sicherzustellen, dass die Daten während der Laufzeit bzw. Lebenszeit des Gerätes nicht verändert werden. Solche Anwendungen findet man beispielsweise bei Sicherheits-SPSen.
Es kann vorgesehen sein, die Daten zyklisch zu überprüfen. Hierbei soll ein bestimmter Diagnosedeckungsgrad "DC" pro Prüfungsdurchlauf erreicht werden und die Prüfungsdurchläufe finden innerhalb einer vorgegebenen Zeit statt (z.B. mindestens alle 8 Stunden). Die Sicherheit wird dabei dadurch erreicht, dass die zyklische Prüfung bei einer vorgegebenen Zykluszeit mit einer vorgegebenen Wahrscheinlichkeit aufgetretene Datenkorruption erkennt. Beispielsweise soll eine Prüfung alle 8 Stunden mit einer Diagnosedeckung von 99% erreicht werden. D.h. bei jedem Durchlauf soll mit99%iger Wahrscheinlichkeit eine Datenkorruption erkannt werden (DC = 99%).
Die Datenintegritätsprüfung kann dabei mittels Redundanzinformation stattfinden. Dies kann in Geräten mit sicherheitsgerichteter Funktionalität durch Redundanzinformationen (beispielsweise Prüfsummen), die zu den zu sichernden Daten hinzugefügt werden, in Verbindung mit einer zyklischen Überprüfung erreicht werden. Dabei wird wiederum zyklisch (z.B. alle 8 Stunden) überprüft, ob eine berechnete Prüfsumme noch mit einer gespeicherten
Seil2 / 1 32
Prüfsumme der Daten übereinstimmt. Ist dies der Fall, wird die sicherheitsgerichtete Funktion fortgesetzt, ist dies nicht der Fall, wird das System in einen sicheren Zustand versetzt. Damit soll z.B. verhindert werden, dass bei korrumpiertem Programmcode Gefahr für Leib und Leben entstehen kann, indem z.B. Maschinenbewegungen ausgelöst werden, die nicht ausgelöst werden sollen.
Bei sicherheitsgerichteter Software muss die Prüfung der Datenintegrität immer erfolgen. Sie ist besonders dadurch notwendig, da der Programmcode bzw. statische Daten beim Start des sicherheitsgerichteten Gerätes meist aus einem nichtflüchtigen Speicher (z.B. Flash-Speicher) in einen flüchtigen Speicher (RAM) umkopiert wird und dieser Programmcode dann aus dem schnelleren RAM heraus ausgeführt bzw. mit den statischen Daten aus dem RAM heraus gearbeitet wird. Durch Fehler in Programmen kann dabei der flüchtige Speicher (RAM) korrumpiert werden, d.h. es werden durch ungewollte RAM-Speicherveränderungen aufgrund von Softwarefehlern Programmcodeinformationen bzw. Werte der eigentlich statischen Daten verändert. Neben Programmcodeinformationen sind somit auch statische Daten, mit denen das Programm arbeitet (z.B. konstante Variablen) zu sichern.
Insbesondere die zyklische Überprüfung bereitet jedoch Probleme, da sie zur Laufzeit der sicherheitsgerichteten Software durchgeführt wird und daher Rechenleistung der ausführenden Recheneinheit, insbesondere SPS, bzw. deren CPU beansprucht, die dann nicht für andere Funktionen zur Verfügung steht.
Es ist daher wünschenswert, die Überprüfung von Daten in einer Recheneinheit zu vereinfachen.
Offenbarung der Erfindung
Erfindungsgemäß wird ein Verfahren zum Überprüfen von Daten mittels wenigstens zweier Prüfsummen mit den Merkmalen des Patentanspruchs 1 vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.
Die Erfindung basiert auf der Maßnahme, die zu sichernden Daten mit wenigstens zwei Prüfsummen unterschiedlicher Art abzusichern, wobei eine Prüfsumme einer ersten Art eine hohe Sicherheit bei ggf. auch erhöhtem Rechenleistungsbedarf und eine Prüfsumme zweiter Art einen geringen Rechenleistungsbedarf bei ggf. auch verringerter Sicherheit bietet. Die
Sei3 / 1 3.2
Prüfsumme erster Art ist daher auf hohe Sicherheit ausgelegt, die Prüfsumme zweiter Art auf geringe Rechenleistung. Die Prüfsumme erster Art wird vorzugsweise bei der Initialisierung bzw. beim Start der Software verwendet, die Prüfsumme zweiter Art bei der zyklischen Überprüfung während der Laufzeit.
Vorteile der Erfindung
Bisher werden zur zyklischen Prüfung bei sicherheitsgerichteten Geräten aufwändige Prüfsummen (meist CRCs) auch bei großen Datenmengen verwendet, obwohl diese zur Erreichung eines geforderten Diagnosedeckungsgrades nicht notwendig sind. Dies liegt insbesondere an möglichen Forderungen (z.B. Hammingabstände deutlich größer 3) an die Sicherheit bei der Initialisierung bzw. beim Start der Software, die mit einfachen Prüfsummen nicht zu erfüllen sind. Die Erfindung verknüpft nun eine sehr sichere Prüfsummenprüfung beim Programmstart bzw. bei der Initialisierung und eine deutlich einfachere Prüfsummenprüfung (regelmäßig bzw. zyklisch) während des Betriebs.
Durch die Erfindung besitzt man den Vorteil, dass die erstmalige Datenintegritätsprüfung mit deutlich besserer Fehleraufdeckungswahrscheinlichkeit als bisher ausgeführt werden kann, da ein Rechenzeitbedarf zu diesem Zeitpunkt nicht relevant ist. Die spätere zyklische Datenintegritätsprüfung wird hingegen rechenzeitoptimal durchgeführt.
Vorzugsweise handelt es sich bei der Prüfsumme erster Art um eine CRC-Prüfsumme (zyklische Redundanzprüfung, englisch cyclic redundancy check). Eine CRC-Prüfsumme basiert auf einer Polynomdivision. Eine solche Prüfsumme kann eine höhere Fehlererkennung liefern, ist jedoch auch aufwändiger zu berechnen. Eine CRC-Prüfsumme besitzt die Eigenschaft, dass bei kürzeren Daten eine höhere Erkennbarkeit der Fehler vorhanden ist. Hierbei spricht man vom sog. Hammingabstand, dies ist die Mindestanzahl an Bits, in denen sich zwei Datenfelder (incl. CRC) unterscheiden und somit auch die Anzahl an beliebig verteilten Fehlern, die nicht mehr in jedem Falle erkannt werden können. Beispielsweise wird durch eine CRC-Prüfsumme nach IEC 802.3 (CRC32) bei großen Datenmengen eine Diagnosedeckung von ca. 99,99999998 % erreicht. CRC-Prüfsummen besitzen die Eigenschaft, dass der Vorteil der höheren Erkennbarkeit von Fehlern bei kürzeren Daten bei Anwendung auf große Datenmengen nicht mehr gegeben ist und sie im Grenzfall nur eine minimal bessere Fehlererkennung besitzen als einfache Additionsprüfsummen.
Seit4 /13?
Vorzugsweise handelt es sich bei der Prüfsumme zweiter Art um eine Additionsprüfsumme. Unter Additionsprüfsummen versteht man Prüfsummen, die durch die einfache Addition der Daten entstehen. Eine solche Prüfsumme ist sehr einfach zu berechnen und benötigt nur wenig Rechenkapazität. Man kann abschätzen, dass eine einfache Additionsprüfsumme ca. nur 10% des Rechenzeitbedarfs einer CRC32 besitzt. Mittels Additionsprüfsummen wird jeder Ein-Bit-Fehler erkannt. Zwei-Bit-Fehler werden nicht mehr sicher erkannt. Allgemein wird eine beliebige Datenverfälschung der Daten bei M Prüfsummenbits mit einer Wahrscheinlichkeit von 1-1/2m erkannt. Will man beispielsweise eine Diagnosedeckung von 99% erreichen, reicht dafür eine 7 Bit Additionsprüfsumme.
Vorzugsweise entspricht die Länge der Additionsprüfsumme der internen Speicherzugriffsdatenbreite oder der CPU-internen Registerbreite (z.B. 16,32, 64... Bit) der die Software ausführenden CPU (z.B. Sicherheits-CPU). Sie ist dann zwar meist länger als durch die einzuhaltende Diagnosedeckung gefordert, jedoch kann der Speicherzugriff dadurch beschleunigt und der gesamte Rechenzeitbedarf der Prüfsummenberechnung optimiert werden.
Gemäß einer anderen Ausgestaltung handelt es sich bei der Prüfsumme zweiter Art um eine CRC-Prüfsumme, deren Berechnung jedoch weniger Rechenzeit benötigt als die Berechnung der Prüfsumme erster Art. Beispielsweise kann sie kürzer sein (z.B. nur 8 Bit). Gemäß einer weiteren bevorzugten Ausführungsform handelt es sich bei der Prüfsumme zweiter Art um eine 8Bit-CRC-Prüfsumme, die über einfache Tabellenzugriffe (Tabelle mit 256 Bytewerten) den jeweiligen Folge-Bytewert anhand des Datenbytewertes berechnet, beispielsweise nach dem Schema: for (byte = 0; byte < nBytes; ++byte) { checksum = crcTable[data]; }
Dem Fachmann ist aus dem Softwarebereich bekannt, wie die Tabelle (crcTableO) bei der Initialisierung vorbesetzt werden muss.
Ein solches Verfahren ist besonders für kurze Prüfsummen geeignet, da die Tabelle 2M Einträge besitzen muss, wobei M die Anzahl der Prüfsummenbits ist.
Seil5 / 1 32
Im Vergleich dazu schneidet eine 16bittige oder 32bittige Additionsprüfsumme mit vergleichbarem Rechenaufwand wie eine 8bittige CRC bei langen Datenfeldern deutlich besser ab: Die Diagnoseabdeckung beträgt bei langen Datenfeldern ungefähr: • bei einer 8Bit-Prüfsumme nur 99,6% (CRC- oder Additionsprüfsumme) • bei einer 16Bit-Prüfsumme 99,998% (CRC- oder Additionsprüfsumme) • bei einer 23Bit-Prüfsumme 99,99999998 % (CRC- oder Additionsprüfsumme)
Nimmt man an, dass die geforderte Diagnoseabdeckung der zyklischen Integritätsprüfung 99% betragen soll, reicht eine 7bittige (in der Praxis 8 Bit) Additionsprüfsumme aus. Aufgrund der typischen Organisation von Speichern bzw. Registern in Computern in Vielfachen von 8 Bit ist jedoch eine 8bittige Berechnung die kürzeste Prüfsumme, die normalerweise implementiert wird.
Vorzugsweise sind die Daten und die Prüfsumme zweiter Art durch die Prüfsumme erster Art gesichert. Hierdurch wird erreicht, dass bei Programmstart auch eine Korrumpierung der einfacheren Prüfsumme sicher erkannt wird.
Eine erfindungsgemäße Recheneinheit, z.B. eine SPS, ist, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen.
Auch die Implementierung der Erfindung in Form von Software ist vorteilhaft, da dies besonders geringe Kosten ermöglicht, insbesondere wenn eine ausführende Recheneinheit noch für weitere Aufgaben genutzt wird und daher ohnehin vorhanden ist. Geeignete Datenträger zur Bereitstellung des Computerprogramms sind insbesondere Disketten, Festplatten, Flash-Speicher, EEPROMs, CD-ROMs, DVDs u.a.m. Auch ein Download eines Programms über Computernetze (Internet, Intranet usw.) ist möglich.
Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.
Es versteht sich, dass die vorstehend genannten und die nachfolgend noch zu erläuternden Merkmale nicht nur in der jeweils angegebenen Kombination, sondern auch in anderen Kombinationen oder in Alleinstellung verwendbar sind, ohne den Rahmen der vorliegenden Erfindung zu verlassen. se,6/.1.32
Die Erfindung ist anhand von Ausführungsbeispielen in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung ausführlich beschrieben.
Figurenbeschreibung
Figuren la und lb zeigen jeweils eine bevorzugte Ausführungsform einer Anordnung aus Daten und Prüfsummen in einer Speichereinheit, wobei jeweils eine Prüfsumme erster Art und eine Prüfsumme zweiter Art vorgesehen sind.
Figuren 2a bis 2d zeigen jeweils eine bevorzugte Ausführungsform einer Anordnung aus Daten und Prüfsummen in einer Speichereinheit, wobei die Prüfsumme erster Art jeweils aus drei Teilprüfsummen besteht.
Figuren 3a und 3b zeigen jeweils eine bevorzugte Ausführungsform einer Anordnung aus Daten und Prüfsummen in einer Speichereinheit, wobei die Prüfsumme erster Art jeweils aus drei Teilprüfsummen und einer zusätzlichen Teilprüfsumme besteht.
Figuren 4a und 4b zeigen jeweils eine bevorzugte Ausführungsform einer Anordnung aus Daten und Prüfsummen in einer Speichereinheit, wobei die Prüfsumme erster Art und die Prüfsumme zweiter Art jeweils aus drei Teilprüfsummen bestehen.
Detaillierte Beschreibung der Zeichnung
In den Figuren werden unterschiedliche bevorzugte Ausgestaltungen der Erfindung am Beispiel von zu sichernden Daten und Prüfsummen als Anordnung in einer Speichereinheit dargestellt. Die zu sichernden Daten sind mit DATA bezeichnet. Die Prüfsumme erster Art ("sichere Prüfsumme") ist mit CS_s, die Prüfsumme zweiter Art ("unsichere Prüfsumme") ist mit CS_u bezeichnet. Die Prüfsumme erster Art wird vorzugsweise nur einmalig, insbesondere beim Programmstart, zur Überprüfung verwendet, wohingegen die Prüfsumme zweiter Art vorzugsweise regelmäßig während des Programmbetriebs zur Überprüfung verwendet wird. Beide Prüfsummen sind vorhanden und werden verwendet. Die sichere Prüfsumme CS_s ist aufwändig und rechenzeitintensiv. Dies ist jedoch beim Programmstart (Initialisierung des Gerätes) meist von untergeordneter Bedeutung. Die einfache Prüfsumme CS_u ist rechen-
Sei?/13, • ·· ·· · I ·· • ·· · ·« · · · · « ·· ο··*· · ······ · · ·· ·· ·· · ·· zeitoptimal, d.h. sie belastet die Sicherheits-CPU während ihrer eigentlichen sicherheitsgerichteten Arbeit nicht.
In Figur la ist dargestellt, dass eine sichere Prüfsumme CS2s (z.B. 128 Bit CRC) mit einer 5 unsicheren Prüfsumme CSlu (z.B. 8 Bit Addition) verknüpft wird. Vorzugsweise sind die Daten und die Prüfsumme zweiter Art durch die Prüfsumme erster Art gesichert. Dies ist in Figur 1b illustriert. Hierdurch wird erreicht, dass beim erstmaligen Prüflauf (Programmstart) auch eine Korrumpierung der einfacheren Prüfsumme sicher erkannt wird. 10 Es kann vorgesehen sein, dass die Prüfsumme erster Art und/oder die Prüfsumme zweiter Art jeweils mehrere Teilprüfsummen umfassen. Dementsprechend können die Daten in meh-{ rere Teildatenbereiche unterteilt werden. Vorzugsweise wird jedem Teildatenbereich eine
Teilprüfsumme zugeordnet. Dies erhöht insbesondere bei CRC-Prüfsummen erster Art die Sicherheit, da Fehler in kleineren Datenmengen mit größerer Sicherheit erkannt werden 15 können.
In den Figuren 2a und 2b ist gezeigt, dass drei Teildatenbereiche DATA1, DATA2 und DATA3 sowie drei zugehörige sichere Teilprüfsummen CSls, CS2s und CS3s vorgesehen sind. Die unsichere Prüfsumme CS4u ist hier nicht unterteilt, sondern auf die gesamten Da-20 ten DATA gerichtet. Figur 2b unterscheidet sich von Figur 2a nur durch die Platzierung der Teildatenbereiche und Teilprüfsummen in der Speichereinheit. Die Platzierung gemäß Figur 2b, bei der die Teildatenbereiche unmittelbar aneinander stehen, ist im Hinblick auf die Generierung der Daten vorteilhaft, da keine Unterbrechungen im Code gemacht werden müs-C sen, sondern die Prüfsummen CSls, CS2s, CS3s hinten angehängt werden können (ebenso 25 Figuren 2d, 3b, 4a, 4b). In Figur 2c ist illustriert, dass die Daten DATA3 und die unsichere Prüfsumme CS4u durch die sichere Teilprüfsumme CS3s gesichert sind. In Figur 2d ist illustriert, dass jeder Teildatenbereich DATAl, DATA2 und DATA3 zusammen mit der unsicheren Prüfsumme CS4u durch die zugehörige sichere Teilprüfsumme CSls, CS2s bzw. CS3s gesichert ist (beispielsweise kann die unsichere Prüfsumme CS4u gemeinsam mit dem Daten-30 feld DATA3 durch die sichere Teilprüfsumme CS3s gesichert werden).
In den Figuren 3a und 3b ist dargestellt, dass die mehreren, jeweils einem Teildatenbereich zugeordneten Teilprüfsummen CSls, CS2S, CS3s zusammen mit einerweiteren Teilprüfsumme CS5s die Prüfsumme erster Art bilden. Soll eine sehr hohe Sicherheit erreicht wer-35 den, so sind lange CRC-Prüfsummen vonnöten (z.B. 128 Bit). Dies kann jedoch vereinfacht
Sej8 / 132 werden, indem mehrere kürzere CRC-Teilprüfsummen verwendet werden (z.B. 32 Bit), die relativ einfach berechnet werden können, und diese mit einer langen weiteren Prüfsumme gesichert werden (z.B. 128 Bit).Vorzugsweise wird die zusätzliche Teilprüfsumme CS5s nur über die Teilprüfsummen CSls, CS2S, CS3s (und vorzugsweise CS4u) gebildet. Es kann 5 jedoch auch vorgesehen sein, dass die zusätzliche Teilprüfsumme CS5s über alle Teildatenbereiche DATA1, DATA2, DATA3 und alle Teilprüfsummen CSls, CS2S, CS3s (und vorzugsweise CS4u) gebildet wird.
In den Figuren 4a und 4b ist gezeigt, dass drei Teildatenbereiche DATAl, DATA2 und 10 DATA3 sowie drei zugehörige sichere Teilprüfsummen CSls, CS2s und CS3s und drei zugehörige unsichere Teilprüfsummen CS4u, CS5u und CS6u vorgesehen sind. Der Gesamtaufwand einer Prüfsummenprüfung ist nahezu unabhängig davon, in wie viele Teildatenfelder eine Datenmenge zerteilt wird. Lediglich fällt für jedes Teildatenfeld eine Initialisierung bzw. Prüfung der Prüfsumme zusätzlich an. Dies kann bei relativ großen Teildatenfeldern im 15 Vergleich zur Bildung der jeweiligen Prüfsumme jedoch vernachlässigt werden. Aus diesem Grunde kann optional auch die einfachere Prüfsummenprüfung auf mehrere kleinere Teildatenfelder zerlegt werden. Hierdurch ergibt sich zwar keine Erhöhung der Diagnoseabdek-kung, wenn man als Annahme einer Additionsprüfsumme davon ausgeht, dass für das Teildatenfeld auch nur eine Erkennung von 1-1/2M erreicht wird. Jedoch kann dadurch die 20 Wahrscheinlichkeit, dass aufgetretene Datenkorruption unerkannt bleibt, ohne komplexe und aufwändige Algorithmen signifikant verringert werden. Da hierzu alle Prüfsummen der k Teildatenfelder CS4u.....CS6u unerkannt verfälscht werden müssten, potenziert sich diese
Wahrscheinlichkeit mit der Anzahl k der Prüfsummen auf l-l/2(kM).
Seit^ /13,

Claims (19)

  1. 5 Ansprüche 1. Verfahren zum Überprüfen von Daten in einer Recheneinheit zur Laufzeit eines Programms, wobei die Daten (DATA) mit einer Prüfsumme erster Art (CS2s) und mit einer Prüfsumme zweiter Art (CSlu) überprüft werden, indem die Prüfsumme erster Art und die Prüfsumme zweiter Art zur Laufzeit des Programms berechnet und mit jeweils mit einer gespei- 10 cherten Prüfsumme (CSlu, CS2s) verglichen werden, wobei zur Laufzeit des Programms der Rechenzeitbedarf zum Berechnen der Prüfsumme zweiter Art (CSlu) geringer als der Rechenzeitbedarf zum Berechnen der Prüfsumme erster Art (CS2s) ist.
  2. 2. Verfahren nach Anspruch 1, wobei zur Laufzeit des Programms die Prüfsumme ers-15 ter Art (CS2s) weniger häufig berechnet wird als die Prüfsumme zweiter Art (CSlu).
  3. 3. Verfahren nach Anspruch 1 oder 2, wobei die Prüfsumme erster Art (CS2s) bei der Initialisierung des Programms berechnet und mit der gespeicherten Prüfsumme verglichen wird. 20
  4. 4. Verfahren nach einem der vorstehenden Ansprüche, wobei zur Laufzeit des Programms die Prüfsumme zweiter Art (CSlu) mehrmals, insbesondere in regelmäßigen und/oder vorgebbaren Zeitabständen, berechnet und mit der gespeicherten Prüfsumme verglichen wird. 25
  5. 5. Verfahren nach einem der vorstehenden Ansprüche, wobei die Prüfsumme erster Art (CS2s) eine CRC-Prüfsumme ist.
  6. 6. Verfahren nach Anspruch 5, wobei die Prüfsumme zweiter Art (CSlu) eine CRC-30 Prüfsumme ist, deren Länge kürzer als die der Prüfsumme erster Art (CS2s) ist.
  7. 7. Verfahren nach einem der Ansprüche 1 bis 5, wobei die Prüfsumme zweiter Art (CSlu) eine Additionsprüfsumme, deren Länge vorzugsweise der internen Speicherzugriffsdatenbreite oder einer Registerbreite eines das Programm ausführenden Prozessors der 35 Recheneinheit entspricht, ist. s<10/13
  8. 8. Verfahren nach einem der vorstehenden Ansprüche, wobei die Prüfsumme erster Art (CS2s) über die Daten (DATA) und über die Prüfsumme zweiter Art (CSlu) berechnet wird.
  9. 9. Verfahren nach einem der vorstehenden Ansprüche, wobei die Daten (DATA) in mehrere Teildatenbereiche (DATAl, DATA2, DATA3) unterteilt werden und für jeden der mehreren Teildatenbereiche (DATA1, DATA2, DATA3) jeweils eine Teilprüfsumme erster Art (CSls, CS2s, CS3s) und/oder jeweils eine Teilprüfsumme zweiter Art (CS4u, CS5u, CS6u) berechnet werden.
  10. 10. Verfahren nach Anspruch 9, wobei eine weitere Teilprüfsumme erster Art (CS5s) über die jeweils eine Teilprüfsumme erster Art (CSls, CS2s, CS3s) für jeden der mehreren Teildatenbereiche (DATA1, DATA2, DATA3) berechnet wird.
  11. 11. Verfahren nach einem der vorstehenden Ansprüche, wobei die zu überprüfenden Daten vor der Überprüfung aus einem nichtflüchtigen Speicher in einen flüchtigen Speicher der Recheneinheit umkopiert werden und die Daten in dem flüchtigen Speicher überprüft werden.
  12. 12. Verfahren nach einem der vorstehenden Ansprüche, wobei bei einer durch das Vergleichen festgestellten Abweichung einer berechneten Prüfsumme von einer gespeicherten Prüfsumme eine Fehlerreaktion ein geleitet wird.
  13. 13. Verfahren nach einem der vorstehenden Ansprüche, wobei eine von der Prüfsumme erster Art (CS2s) erzielbare Diagnosedeckung höher als eine von der Prüfsumme zweiter Art (CSlu) erzielbare Diagnosedeckung ist.
  14. 14. Verfahren nach einem der vorstehenden Ansprüche, wobei von der Prüfsumme erster Art (CS2s) und/oder von der Prüfsumme zweiter Art (CSlu) eine vorbestimmte Diagnosedeckung erzielbar ist.
  15. 15. Recheneinheit, die dazu eingerichtet ist, ein Verfahren nach einem der vorstehenden Ansprüche durchzuführen. Sei 1 /132 • I · · * · • · φ φ- φ φ
    # ·- I » · φ φ · · φ φφφ φφφ
  16. 16. Recheneinheit nach Anspruch 15, die dazu eingerichtet ist, sicherheitsgerichtete oder sicherheitskritische Anwendungen durchzuführen.
  17. 17. Recheneinheit nach Anspruch 15 oder 16, die Teil einer Sicherheits-SPS ist. 5
  18. 18. Computerprogramm mit Programmcodemitteln, die eine Recheneinheit veranlassen, ein Verfahren nach einem der Ansprüche 1 bis 14 durchzuführen, wenn sie auf der Recheneinheit, insbesondere nach Anspruch 15,16 oder 17 ausgeführt werden.
  19. 19. Maschinenlesbares Speichermedium mit einem darauf gespeicherten Computerpro gramm nach Anspruch 18. 1 h. Okt. 2013 PUCHBEF Λ-1010 Wien Telefon 512 23 02
    ien Reich? 2 23 02 TeL
    Se12 / 132
ATA791/2013A 2012-10-18 2013-10-14 Verfahren zum Überprüfen von Daten mittels wenigstens zweier Prüfsummen AT513533B1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102012020442.6A DE102012020442B4 (de) 2012-10-18 2012-10-18 Verfahren zum Überprüfen von Daten mittels wenigstens zweier Prüfsummen

Publications (3)

Publication Number Publication Date
AT513533A2 true AT513533A2 (de) 2014-05-15
AT513533A3 AT513533A3 (de) 2014-07-15
AT513533B1 AT513533B1 (de) 2015-05-15

Family

ID=50436701

Family Applications (1)

Application Number Title Priority Date Filing Date
ATA791/2013A AT513533B1 (de) 2012-10-18 2013-10-14 Verfahren zum Überprüfen von Daten mittels wenigstens zweier Prüfsummen

Country Status (2)

Country Link
AT (1) AT513533B1 (de)
DE (1) DE102012020442B4 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11216443B2 (en) * 2018-06-20 2022-01-04 EMC IP Holding Company LLC Processing device configured for data integrity testing utilizing signature-based multi-phase write operations

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8977859B2 (en) * 2004-05-04 2015-03-10 Elsevier, Inc. Systems and methods for data compression and decompression
DE102005016801B4 (de) * 2005-04-12 2018-04-26 Robert Bosch Gmbh Verfahren und Rechnereinheit zur Fehlererkennung und Fehlerprotokollierung in einem Speicher
DE102006003146B4 (de) * 2006-01-23 2016-05-12 Infineon Technologies Ag Vorrichtung und Verfahren zum Auslesen eines Datenwortes und Vorrichtung und Verfahren zum Speichern eines Datenblocks
US8255773B2 (en) * 2009-06-29 2012-08-28 Sandisk Technologies Inc. System and method of tracking error data within a storage device

Also Published As

Publication number Publication date
AT513533A3 (de) 2014-07-15
DE102012020442A1 (de) 2014-04-24
AT513533B1 (de) 2015-05-15
DE102012020442B4 (de) 2020-03-05

Similar Documents

Publication Publication Date Title
DE112007003015B4 (de) Verfahren und Vorrichtung zur Cache-gestützten Fehlerdetektion und -korrektur in einem Speicher
DE112012005016T5 (de) Zielgerichtete Sicherheitsprüfung
DE102013211077A1 (de) Verfahren zum Testen eines Speichers und Speichersystem
DE102013013047B4 (de) Bestimmung einer Kennung
DE102012015272A1 (de) Verfahren zur effizienten Absicherung sicherheitskritischer Funktionen eines Steuergeräts und Steuergerät
DE102016215345A1 (de) Verfahren und Vorrichtung zur redundanten Datenverarbeitung
DE102015107875A1 (de) Decodieren von Anweisungen, die von einer oder mehreren anderen Anweisungen modifiziert werden
DE102016107718A1 (de) Auslesen von Fehlervektoren aus einer Speichereinheit
AT514215B1 (de) Verfahren zur Feststellung von Abweichungen von einem vorgegebenen Normalzustand
DE102015115287A1 (de) Verfahren und vorrichtung zum prüfen eines identifikators
DE102011119585A1 (de) Verbesserte skalierbare CPU für die codierte Ausführung von Software in hochabhängigen sicherheitsrelevanten Anwendungen
DE102013109315A1 (de) Verfahren und Datenverarbeitungseinrichtung zum Rekonstruieren eines Vektors
DE102013220749A1 (de) Positionsmesssystem
AT513533B1 (de) Verfahren zum Überprüfen von Daten mittels wenigstens zweier Prüfsummen
EP3378006B1 (de) Verfahren zum laden eines sicheren speicherabbilds eines mikrocontrollers und anordnung mit einem mikrocontroller
DE102018112584A1 (de) Konfigurierbare Sensorvorrichtung und Verfahren zur Überwachung ihrer Konfiguration
DE102010041680B9 (de) Vorrichtung und Verfahren zum Bestimmen einer Position eines 1-Bit-Fehlers in einer codierten Bitsequenz, Vorrichtung und Verfahren zur Korrektur eines 1-Bit-Fehlers in einer codierten Bitsequenz und Decodierer und Verfahren zum Decodieren einer fehlerhaften, codierten Bitsequenz
DE102015105414A1 (de) Bearbeiten eines Zielspeichers
EP2539899B1 (de) Verfahren zur überprüfung der funktionsfähigkeit eines speicherelements
DE102013021231A1 (de) Verfahren zum Betrieb eines Assistenzsystems eines Fahrzeugs und Fahrzeugsteuergerät
DE102013219088B9 (de) Schaltungsanordnung und Verfahren zur Realisierung von Prüfbitkompaktierung für Cross-Parity-Codes
DE102014114157B4 (de) Verfahren zur Datenverarbeitung zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist und Datenverarbeitungsanordnungen zum Erzeugen von Programm-Code
DE102007040721A1 (de) Datenverarbeitungsanordnung, Verfahren zur Datenverarbeitung, Computerprogrammelement und Überprüfungsanordnung für einen Speicher
AT515341A1 (de) Verfahren zur Überprüfung der Abarbeitung von Software
DE102014210192A1 (de) Die Erfindung betrifft ein Verfahren zur Überprüfung von Invarianten in parallelen Programmen

Legal Events

Date Code Title Description
MM01 Lapse because of not paying annual fees

Effective date: 20221014