AT513533B1 - 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
AT513533B1
AT513533B1 ATA791/2013A AT7912013A AT513533B1 AT 513533 B1 AT513533 B1 AT 513533B1 AT 7912013 A AT7912013 A AT 7912013A AT 513533 B1 AT513533 B1 AT 513533B1
Authority
AT
Austria
Prior art keywords
checksum
data
cs2s
cs1u
program
Prior art date
Application number
ATA791/2013A
Other languages
English (en)
Other versions
AT513533A3 (de
AT513533A2 (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

Bei einem Verfahren zum Überprüfen von Daten in einer Recheneinheit, die Teil eines Geräts mit sicherheitsgerichteter Funktionalität ist, werden die Daten (DATA) durch Berechnen einer Prüfsumme erster Art (CS2s) und einer Prüfsumme zweiter Art (CS1 u) zur Laufzeit des Programms und Vergleichen jeweils mit einer gespeicherten Prüfsumme (CS1u, CS2s) überprüft. Dabei ist der Rechenzeitbedarf zum Berechnen der Prüfsumme zweiter Art (CS1 u) geringer als jener zum Berechnen der Prüfsumme erster Art (CS2s). Die Prüfsumme erster Art (CS2s) wird bei der Initialisierung des Programms berechnet und mit der gespeicherten Prüfsumme verglichen und die Prüfsumme zweiter Art (CS1u) wird bei der zyklischen Überprüfung während der Laufzeit des Programms mehrmals berechnet und mit der gespeicherten Prüfsumme verglichen. Dabei wird die sicherheitsgerichtete Funktionalität des Geräts fortgesetzt, wenn die berechneten mit den gespeicherten Prüfsummen (CS1u, CS2s) übereinstimmen, und das Gerät wird in einen sicheren Zustand versetzt, wenn keine Übereinstimmung vorliegt. In diesem sicheren Zustand werden keine Bewegungen des Geräts ausgelöst, aufgrund welchen Gefahr für Leib und Leben entstehen kann.

Description

VERFAHREN ZUM ÜBERPRÜFEN VON DATEN MITTELS WENIGSTENS ZWEIER PRÜFSUMMEN
Beschreibung [0001] 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
[0002] Die Erfindung befasst sich mit sicherheitsgerichteter Software, bei der Daten (insbesondere Programmcode und/oder andere statische (konstante) Daten) in einer Speichereinheit liegen.
[0003] Die Datenintegrität dieser Daten muss dabei sichergestellt 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.
[0004] US 2010/033949 A1 beschreibt ganz allgemein die Bildung von zwei Prüfsummen zur Identifikation von Fehlerorten für eine Region eines Speichers. Hierbei wird ein Verfahren ausgeführt, um fehlerhafte Zeilen eines Speichers zu finden. Dieses Verfahren wird jedoch nicht zum Überprüfen von Daten in einer Recheneinheit zur Laufzeit eines Programms ausgeführt.
[0005] WO 2006/108849 A1 zeigt eine Recheneinheit, die eine Recheneinheit eines Gerätes mit sicherheitsgerichteter Funktionalität ist.
[0006] US 2012/0041931 A1 zeigt Systeme und Verfahren für Datenkompression und -dekom-pression, wobei Prüfsummen für eine Datei, einen Dateinamen, usw. gebildet werden.
[0007] Aufgabe der Erfindung ist es, bei einem Gerät mit sicherheitsgerichteter Funktionalität, wie einer Sicherheits-SPS, schnell und sicher die Korrektheit der Daten zu prüfen, so dass immer mit minimaler Rechenleistung der Recheneinheit verhindert werden kann, dass Maschinenbewegungen ausgelöst werden, aufgrund welchen Gefahr für Leib und Leben entstehen kann.
[0008] Diese Aufgabe wird gelöst durch ein Verfahren zum Überprüfen von Daten in einer Recheneinheit zur Laufzeit eines Programms, wobei die Recheneinheit Teil eines Geräts mit sicherheitsgerichteter Funktionalität ist, wobei die Daten mit einer Prüfsumme erster Art und mit einer Prüfsumme zweiter Art überprüft werden, indem die Prüfsumme erster Art und die Prüfsumme zweiter Art zur Laufzeit des Programms berechnet und jeweils mit einer gespeicherten Prüfsumme verglichen werden, wobei zur Laufzeit des Programms der Rechenzeitbedarf zum Berechnen der Prüfsumme zweiter Art geringer als der Rechenzeitbedarf zum Berechnen der Prüfsumme erster Art ist, wobei die Prüfsumme erster Art bei der Initialisierung des Programms berechnet und mit der gespeicherten Prüfsumme verglichen wird und die Prüfsumme zweiter Art bei der zyklischen Überprüfung während der Laufzeit des Programms mehrmals, insbesondere in regelmäßigen und/oder vorgebbaren Zeitabständen berechnet und mit der gespeicherten Prüfsumme verglichen wird, wobei die sicherheitsgerichtete Funktionalität des Geräts fortgesetzt wird, wenn die berechneten Prüfsummen mit den gespeicherten Prüfsummen übereinstimmen, und wobei das Gerät in einen sicheren Zustand versetzt wird, wenn die berechneten Prüfsummen nicht mit den gespeicherten Prüfsummen übereinstimmen, wobei in dem sicheren Zustand keine Bewegungen des Geräts ausgelöst werden, aufgrund welchen Gefahr für Leib und Leben entstehen kann.
[0009] 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 mit 99%iger Wahrscheinlichkeit eine Datenkorruption erkannt werden (DC = 99%).
[0010] 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 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.
[0011] 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.
[0012] 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.
[0013] Es ist daher wünschenswert, die Überprüfung von Daten in einer Recheneinheit zu vereinfachen.
OFFENBARUNG DER ERFINDUNG
[0014] 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.
[0015] 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 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
[0016] 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.
[0017] 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.
[0018] 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.
[0019] 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.
[0020] 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.
[0021] 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.
[0022] 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]; } [0023] Dem Fachmann ist aus dem Softwarebereich bekannt, wie die Tabelle (crcTable ) bei der Initialisierung vorbesetzt werden muss.
[0024] 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.
[0025] 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: [0026] · bei einer 8Bit-Prüfsumme nur 99,6% (CRC- oder Additionsprüfsumme) [0027] · bei einer 16Bit-Prüfsumme 99,998% (CRC- oder Additionsprüfsumme) [0028] · bei einer 23Bit-Prüfsumme 99,99999998 % (CRC- oder Additionsprüfsumme) [0029] 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.
[0030] 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.
[0031] Eine erfindungsgemäße Recheneinheit, z.B. eine SPS, ist, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen.
[0032] 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.
[0033] Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.
[0034] 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
[0035] Figuren 1a und 1b 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.
[0036] 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.
[0037] 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.
[0038] 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
[0039] 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 rechenzeitoptimal, d.h. sie belastet die Sicherheits-CPU während ihrer eigentlichen sicherheitsgerichteten Arbeit nicht.
[0040] In Figur 1a ist dargestellt, dass eine sichere Prüfsumme CS2s (z.B. 128 Bit CRC) mit einer unsicheren Prüfsumme CS1u (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.
[0041] 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 mehrere 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 können.
[0042] In den Figuren 2a und 2b ist gezeigt, dass drei Teildatenbereiche DATA1, DATA2 und DATA3 sowie drei zugehörige sichere Teilprüfsummen CS1s, CS2s und CS3s vorgesehen sind. Die unsichere Prüfsumme CS4u ist hier nicht unterteilt, sondern auf die gesamten Daten 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üssen, sondern die Prüfsummen CS1s, CS2s, CS3s hinten angehängt werden können (ebenso 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 DATA1, DATA2 und DATA3 zusammen mit der unsicheren Prüfsumme CS4u durch die zugehörige sichere Teilprüfsumme CS1s, CS2s bzw. CS3s gesichert ist (beispielsweise kann die unsichere Prüfsumme CS4u gemeinsam mit dem Datenfeld DATA3 durch die sichere Teilprüfsumme CS3s gesichert werden).
[0043] In den Figuren 3a und 3b ist dargestellt, dass die mehreren, jeweils einem Teildatenbereich zugeordneten Teilprüfsummen CS1s, CS2S, CS3s zusammen mit einer weiteren Teilprüfsumme CS5s die Prüfsumme erster Art bilden. Soll eine sehr hohe Sicherheit erreicht werden, so sind lange CRC-Prüfsummen vonnöten (z.B. 128 Bit). Dies kann jedoch vereinfacht 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 CS1s, CS2S, CS3s (und vorzugsweise CS4u) gebildet. Es kann jedoch auch vorgesehen sein, dass die zusätzliche Teilprüfsumme CS5s über alle Teildatenbereiche DA-TA1, DATA2, DATA3 und alle Teilprüfsummen CS1s, CS2S, CS3s (und vorzugsweise CS4u) gebildet wird.
[0044] In den Figuren 4a und 4b ist gezeigt, dass drei Teildatenbereiche DATA1, DATA2 und DATA3 sowie drei zugehörige sichere Teilprüfsummen CS1s, 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 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 Diagnoseabdeckung, 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 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 1-1/2<kM).

Claims (13)

  1. Patentansprüche 1. Verfahren zum Überprüfen von Daten in einer Recheneinheit zur Laufzeit eines Programms, wobei die Recheneinheit Teil eines Geräts mit sicherheitsgerichteter Funktionalität ist, 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 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) geringer als der Rechenzeitbedarf zum Berechnen der Prüfsumme erster Art (CS2s) ist, - wobei die Prüfsumme erster Art (CS2s) bei der Initialisierung des Programms berechnet und mit der gespeicherten Prüfsumme verglichen wird und die Prüfsumme zweiter Art (CS1u) bei der zyklischen Überprüfung während der Laufzeit des Programms mehrmals, insbesondere in regelmäßigen und/oder vorgebbaren Zeitabständen berechnet und mit der gespeicherten Prüfsumme verglichen wird, - wobei die sicherheitsgerichtete Funktionalität des Geräts fortgesetzt wird, wenn die berechneten Prüfsummen (CS1u, CS2s) mit den gespeicherten Prüfsummen (CS1u, CS2s) übereinstimmen, und - wobei das Gerät in einen sicheren Zustand versetzt wird, wenn die berechneten Prüfsummen (CS1u, CS2s) nicht mit den gespeicherten Prüfsummen (CS1u, CS2s) übereinstimmen, wobei in dem sicheren Zustand keine Bewegungen des Geräts ausgelöst werden, aufgrund welchen Gefahr für Leib und Leben entstehen kann.
  2. 2. Verfahren nach Anspruch 1, wobei die Prüfsumme erster Art (CS2s) eine CRC- Prüfsumme ist.
  3. 3. Verfahren nach Anspruch 2, wobei die Prüfsumme zweiter Art (CS1u) eine CRC- Prüfsumme ist, deren Länge kürzer als die der Prüfsumme erster Art (CS2s) ist.
  4. 4. Verfahren nach einem der Ansprüche 1 bis 3, wobei die Prüfsumme zweiter Art (CS1u) eine Additionsprüfsumme, deren Länge vorzugsweise der internen Speicherzugriffsdatenbreite oder einer Registerbreite eines das Programm ausführenden Prozessors der Recheneinheit entspricht, ist.
  5. 5. Verfahren nach einem der Ansprüche 1 bis 4, wobei die Prüfsumme erster Art (CS2s) über die Daten (DATA) und über die Prüfsumme zweiter Art (CS1u) berechnet wird.
  6. 6. Verfahren nach einem der Ansprüche 1 bis 5, wobei die Daten (DATA) in mehrere Teildatenbereiche (DATA1, DATA2, DATA3) unterteilt werden und für jeden der mehreren Teildatenbereiche (DATA1, DATA2, DATA3) jeweils eine Teilprüfsumme erster Art (CS1s, CS2s, CS3s) und/oder jeweils eine Teilprüfsumme zweiter Art (CS4u, CS5u, CS6u) berechnet werden.
  7. 7. Verfahren nach Anspruch 6, wobei eine weitere Teilprüfung erster Art (CS5s) über die jeweils eine Teilprüfsumme erster Art (CS1s, CS2s, CS3s) für jeden der mehreren Teildatenbereiche (DATA1, DATA2, DATA3) berechnet wird.
  8. 8. Verfahren nach einem der Ansprüche 1 bis 7, 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.
  9. 9. Verfahren nach einem der Ansprüche 1 bis 8, wobei eine von der Prüfsumme erster Art (CS2s) erzielbare Diagnosedeckung höher als eine von der Prüfsumme zweiter Art (CS1u) erzielbare Diagnosedeckung ist.
  10. 10. Verfahren nach einem der Ansprüche 1 bis 9, wobei von der Prüfsumme erster Art (CS2s) und/oder von der Prüfsumme zweiter Art (CS1u) eine vorbestimmte Diagnosedeckung erzielbar ist.
  11. 11. Recheneinheit, die dazu eingerichtet ist, ein Verfahren nach einem der Ansprüche 1 bis 10 durchzuführen.
  12. 12. Sicherheits-SPS mit einer Recheneinheit nach Anspruch 11, wobei die Sicherheits-SPS das Gerät mit sicherheitsgerichteter Funktionalität ist.
  13. 13. Maschinenlesbares Speichermedium mit einem darauf gespeicherten Computerprogramm mit Programmcodemitteln, die eine Recheneinheit nach Anspruch 11 oder eine Sicherheits-SPS nach Anspruch 12 veranlassen, ein Verfahren nach einem der Ansprüche 1 bis 10 durchzuführen, wenn das maschinenlesbare Speichermedium in einen Speicher der Recheneinheit geladen ist und die Programmcodemittel ausgeführt werden. Hierzu 1 Blatt Zeichnungen
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 AT513533A2 (de) 2014-05-15
AT513533A3 AT513533A3 (de) 2014-07-15
AT513533B1 true 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

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006108849A1 (de) * 2005-04-12 2006-10-19 Robert Bosch Gmbh Verfahren und rechnereinheit zur fehlererkennung und fehlerprotokollierung in einem speicher
US20100332949A1 (en) * 2009-06-29 2010-12-30 Sandisk Corporation System and method of tracking error data within a storage device
US20120041931A1 (en) * 2004-05-04 2012-02-16 Elsevier Inc. Systems and methods for data compression and decompression

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120041931A1 (en) * 2004-05-04 2012-02-16 Elsevier Inc. Systems and methods for data compression and decompression
WO2006108849A1 (de) * 2005-04-12 2006-10-19 Robert Bosch Gmbh Verfahren und rechnereinheit zur fehlererkennung und fehlerprotokollierung in einem speicher
US20100332949A1 (en) * 2009-06-29 2010-12-30 Sandisk Corporation System and method of tracking error data within a storage device

Also Published As

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

Similar Documents

Publication Publication Date Title
DE102010037457B4 (de) Verfahren zur Datenverarbeitung zum Bereitstellen eines Wertes zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist, Verfahren zur Datenverarbeitung zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist, Verfahren zum Erzeugen von Programm-Code, Datenverarbeitungsanordnungen zum Bereitstellen eines Wertes zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist, Datenverarbeitungsanordnungen zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist, und Datenverarbeitungsanordnungen zum Erzeugen von Programm-Code
DE102012214324B4 (de) Verfahren und Vorrichtung zur Erleichterung der Datenüberprüfung mithilfe einer Prüfsumme in Verbindung mit einem Sidefile
DE102013001627B4 (de) System und Verfahren zur Berechnung mittels Signaturanalyse
DE112007003015B4 (de) Verfahren und Vorrichtung zur Cache-gestützten Fehlerdetektion und -korrektur in einem Speicher
DE102006029138A1 (de) Verfahren und Computerprogrammprodukt zur Detektion von Speicherlecks
DE102010013349A1 (de) Computersystem und Verfahren zum Vergleichen von Ausgangssignalen
DE102012015272A1 (de) Verfahren zur effizienten Absicherung sicherheitskritischer Funktionen eines Steuergeräts und Steuergerät
DE102013018647A1 (de) Funktionalität für Ausfallsicherheitscode
DE102013109315B4 (de) Verfahren und Datenverarbeitungseinrichtung zum Rekonstruieren eines Vektors
DE102016215345A1 (de) Verfahren und Vorrichtung zur redundanten Datenverarbeitung
DE102016223341A1 (de) Integrierte Schaltung mit Hardwareprüfeinheit zum Überprüfen von ausgewählten Speicherzugriffen
DE102011119585A1 (de) Verbesserte skalierbare CPU für die codierte Ausführung von Software in hochabhängigen sicherheitsrelevanten Anwendungen
AT513533B1 (de) Verfahren zum Überprüfen von Daten mittels wenigstens zweier Prüfsummen
DE102013021231A1 (de) Verfahren zum Betrieb eines Assistenzsystems eines Fahrzeugs und Fahrzeugsteuergerät
EP1359485B1 (de) Steuer- und Überwachungssystem
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
DE102019118703A1 (de) System und Verfahren zum kontinuierlichen Verifizieren der Bauelementzustandsintegrität
DE102007040721A1 (de) Datenverarbeitungsanordnung, Verfahren zur Datenverarbeitung, Computerprogrammelement und Überprüfungsanordnung für einen Speicher
WO2006089943A1 (de) Verfahren zur datensicherung und gerät zu dessen ausführung
DE102013112020B4 (de) Verfahren und Vorrichtung zum Erkennen von Bitfehlern
DE102018112816A1 (de) Adresscodierter Zugriff auf Speicher
DE102016203852A1 (de) Verfahren zum Betreiben eines Steuergeräts für ein Kraftfahrzeug
DE102022208087A1 (de) Verfahren zum Überprüfen einer Verarbeitung von Nutzdaten
DE102021209038A1 (de) Verfahren zum automatischen Erkennen und Korrigieren von Speicherfehlern in einem sicheren mehrkanaligen Rechner
DE102021119289A1 (de) Kontinuierliche fehlerkodierung

Legal Events

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

Effective date: 20221014