DE102012020442B4 - Method for checking data using at least two checksums - Google Patents

Method for checking data using at least two checksums Download PDF

Info

Publication number
DE102012020442B4
DE102012020442B4 DE102012020442.6A DE102012020442A DE102012020442B4 DE 102012020442 B4 DE102012020442 B4 DE 102012020442B4 DE 102012020442 A DE102012020442 A DE 102012020442A DE 102012020442 B4 DE102012020442 B4 DE 102012020442B4
Authority
DE
Germany
Prior art keywords
checksum
type
cs2s
cs1u
data
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.)
Expired - Fee Related
Application number
DE102012020442.6A
Other languages
German (de)
Other versions
DE102012020442A1 (en
Inventor
Stephan Schultze
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 DE102012020442.6A priority Critical patent/DE102012020442B4/en
Priority to ATA791/2013A priority patent/AT513533B1/en
Publication of DE102012020442A1 publication Critical patent/DE102012020442A1/en
Application granted granted Critical
Publication of DE102012020442B4 publication Critical patent/DE102012020442B4/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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

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 Maschinenbewegungen ausgelöst werden, aufgrund welchen Gefahr von Leib und Leben entstehen kann.Method for checking data in an arithmetic unit at runtime of a program, the arithmetic unit being part of a device with safety-oriented functionality, the data (DATA) being checked with a checksum of the first type (CS2s) and with a checksum of the second type (CS1u), by calculating the checksum of the first type and the checksum of the second type at runtime of the program and in each case comparing them with a stored checksum (CS1u, CS2s), the calculation time required to calculate the checksum of the second type (CS1u) less than the calculation time required at runtime of the program Calculating the first type of checksum (CS2s), - whereby the first type of checksum (CS2s) is calculated when the program is initialized and compared with the stored checksum and the second type of checksum (CS1u) is checked several times during the cyclical check during the program runtime , in particular at regular and / or predefinable time intervals b is calculated and compared with the stored checksum, - the safety-related functionality of the device is continued if the calculated checksums (CS1u, CS2s) match the stored checksums (CS1u, CS2s), and - the device is placed in a safe state , if the calculated checksums (CS1u, CS2s) do not match the stored checksums (CS1u, CS2s), whereby no machine movements are triggered in the safe state, due to which danger to life and limb can arise.

Description

Die vorliegende Erfindung betrifft ein Verfahren zum Überprüfen von Daten mittels wenigstens zweier Prüfsummen sowie eine Recheneinheit zu dessen Durchführung.The present invention relates to a method for checking data by means of at least two checksums and a computing unit for carrying it out.

Stand der TechnikState of the art

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 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.The invention is concerned with safety-related software in which data (in particular program code and / or other static (constant) data) are located in a storage unit. The data integrity of this data must be ensured to ensure that the data are not changed during the runtime or lifetime of the device. Such applications can be found, for example, in safety PLCs.

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%).The data can be checked cyclically. A certain degree of diagnostic coverage should be " DC “Can be achieved per test run and the test runs take place within a specified time (eg at least every 8 hours). Security is achieved in that the cyclical test detects data corruption with a predetermined probability at a predetermined cycle time. For example, a test should be achieved every 8 hours with a diagnostic coverage of 99%. This means that data corruption should be detected with a 99% probability with each run (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 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.The data integrity check can take place using redundancy information. In devices with safety-related functionality, this can be achieved through redundancy information (for example, checksums) that is added to the data to be backed up in connection with a cyclical check. Again, it is checked cyclically (e.g. every 8 hours) whether a calculated checksum still matches a stored checksum of the data. If this is the case, the safety-related function is continued. If this is not the case, the system is put into a safe state. With this e.g. Preventing danger to life and limb if the program code is corrupted, e.g. by Machine movements are triggered that should not be triggered.

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.In the case of safety-related software, the data integrity must always be checked. It is particularly necessary because the program code or static data usually starts from a non-volatile memory (e.g. flash memory) in a volatile memory ( R.A.M. ) is copied and this program code then from the faster R.A.M. executed or with the static data from the R.A.M. is worked out. The volatile memory ( R.A.M. ) are corrupted, ie program code information or values of the actually static data are changed by unwanted changes to the RAM memory due to software errors. In addition to program code information, static data with which the program works (eg constant variables) must also be saved.

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.However, the cyclical check in particular causes problems since it is carried out during the runtime of the safety-related software and therefore requires computing power from the executing computing unit, in particular the PLC, or its CPU, which is then not available for other functions.

US 2010/0 332 949 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. US 2010/0 332 949 A1 describes in general the formation of two checksums for the identification of fault locations for a region of a memory. Here, a method is carried out to find faulty lines in a memory. However, this method is not carried out to check data in a computing unit at runtime of a program.

Die WO 2006/ 108 849 A1 zeigt eine Recheneinheit, die eine Recheneinheit eines Gerätes mit sicherheitsgerichteter Funktionalität ist.WO 2006/108 849 A1 shows a computing unit that is a computing unit of a device with safety-related functionality.

Es ist daher wünschenswert, die Überprüfung von Daten in einer Recheneinheit zu vereinfachen.It is therefore desirable to simplify the checking of data in a computing unit.

Offenbarung der ErfindungDisclosure of the invention

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.According to the invention, a method for checking data by means of at least two checksums with the features of claim 1 is proposed. Advantageous embodiments are the subject of the subclaims and the following description.

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. The invention is based on the measure of securing the data to be backed up with at least two checksums of different types, a checksum of a first type offering a high level of security with possibly also increased computing power requirements and a checksum of the second type offering a low level of computing power requirements with possibly also reduced security. The first type of checksum is therefore designed for high security, the second type of checksum for low computing power. The checksum of the first type is preferably used during the initialization or when the software is started, the checksum of the second type is used for the cyclical check during the runtime.

Vorteile der ErfindungAdvantages of the invention

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.Up to now, complex checksums (mostly CRCs) have been used for cyclical testing of safety-related devices, even with large amounts of data, although these are not necessary to achieve the required diagnostic coverage. This is due in particular to possible requirements (e.g. Hamming distances significantly larger 3 ) security when initializing or starting the software, which cannot be met with simple checksums. The invention now links a very secure checksum check at program start or during initialization and a significantly simpler checksum check (regularly or cyclically) during operation.

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.The invention has the advantage that the first-time data integrity check can be carried out with a significantly better probability of error detection than before, since a computing time requirement is not relevant at this point in time. The subsequent cyclical data integrity check, however, is carried out optimally in terms of computing time.

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.
The first type of checksum is preferably a CRC checksum (cyclic redundancy check). A CRC checksum is based on a polynomial division. Such a checksum can provide higher error detection, but is also more complex to calculate. A CRC checksum has the property that the errors are more recognizable with shorter data. This is called the so-called Hamming distance, this is the minimum number of bits in which two data fields (incl. CRC ) and therefore also the number of arbitrarily distributed errors that can no longer be recognized in every case. For example, a CRC checksum according to IEC 802.3 ( CRC32 ) Diagnostic coverage of approx. 99.99999998% is achieved with large amounts of data.
CRC checksums have the property that the advantage of higher detectability of errors with shorter data when applied to large amounts of data is no longer present and, in the limit case, they only have a slightly better error detection than simple addition checksums.

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.The checksum of the second type is preferably an addition checksum. Addition checksums are checksums that result from the simple addition of the data. Such a checksum is very easy to calculate and requires little computing capacity. One can estimate that a simple addition checksum is only about 10% of the computing time required by one CRC32 has. Each one-bit error is recognized by means of addition checksums. Two-bit errors are no longer reliably recognized. In general, any data corruption of the data will M Checksum bits detected with a probability of 1-1 / 2 M. For example, if you want to achieve diagnostic coverage of 99%, a 7-bit addition checksum is sufficient.

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.The length of the addition checksum preferably corresponds to the internal memory access data width or the CPU-internal register width (for example 16 . 32 . 64 ... bit) of the executing the software CPU (e.g. safety CPU). It is then usually longer than required by the diagnostic coverage to be adhered to, but this can accelerate memory access and optimize the total computing time required for the checksum calculation.

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];
        }
According to another embodiment, the checksum of the second type is a CRC checksum, the calculation of which, however, requires less computing time than the calculation of the checksum of the first type. For example, it can be shorter (for example only 8 bits). According to a further preferred embodiment, the checksum of the second type is an 8-bit CRC checksum which uses simple table accesses (table with 256 byte values) to calculate the respective subsequent byte value on the basis of the data byte value, for example according to the scheme:
       for (byte = 0; byte <nBytes; ++ byte) 

         {
            checksum = crcTable [data];
        } 

Dem Fachmann ist aus dem Softwarebereich bekannt, wie die Tabelle (crcTable⌷) bei der Initialisierung vorbesetzt werden muss.The person skilled in the software knows how the table (crcTable⌷) must be preset during initialization.

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.Such a procedure is particularly suitable for short checksums, since the table must have 2 M entries, where M is the number of checksum bits.

Im Vergleich dazu schneidet eine 16bittige oder 32bittige Additionsprüfsumme mit vergleichbarem Rechenaufwand wie eine Sbittige 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)
In comparison, a 16-bit or 32-bit addition checksum with comparable computational effort as a Sbittige CRC performs significantly better for long data fields: The diagnostic coverage for long data fields is approximately:
  • • with an 8-bit checksum only 99.6% (CRC or addition checksum)
  • • 99.998% for a 16-bit checksum (CRC or addition checksum)
  • • with a 23-bit checksum 99.99999998% (CRC or addition checksum)

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.Assuming that the required diagnostic coverage of the cyclical integrity check should be 99%, a 7-bit (in practice 8th Bit) addition checksum. However, due to the typical organization of memories or registers in computers in multiples of 8 bits, an 8-bit calculation is the shortest checksum that is normally implemented.

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.The data and the checksum of the second type are preferably secured by the checksum of the first type. This ensures that corruption of the simpler checksum is reliably detected when the program starts.

Eine erfindungsgemäße Recheneinheit, z.B. eine SPS, ist, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen.A computing unit according to the invention, for example a PLC , is set up, in particular in terms of programming, to carry out a method according to the invention.

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.The implementation of the invention in the form of software is also advantageous, since this enables particularly low costs, in particular if an executing computing unit is still used for further tasks and is therefore present anyway. Suitable data carriers for providing the computer program are, in particular, floppy disks, hard disks, flash memory, EEPROMs, CD-ROMs, DVDs, etc. It is also possible to download a program via computer networks (internet, intranet, etc.).

Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.Further advantages and refinements of the invention result from the description and the accompanying drawing.

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.It goes without saying that the features mentioned above and those yet to be explained below can be used not only in the combination specified in each case, but also in other combinations or on their own without departing from the scope of the present invention.

Die Erfindung ist anhand von Ausführungsbeispielen in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung ausführlich beschrieben.The invention is illustrated schematically in the drawing using exemplary embodiments and is described in detail below with reference to the drawing.

FigurenlisteFigure list

  • 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. 1a and 1b each show a preferred embodiment of an arrangement of data and checksums in a memory unit, a checksum of the first type and a checksum of the second type being provided in each case.
  • 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. 2a to 2d each show a preferred embodiment of an arrangement of data and checksums in a memory unit, the checksum of the first type each consisting of three partial checksums.
  • 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. 3a and 3b each show a preferred embodiment of an arrangement of data and checksums in a memory unit, the checksum of the first type each consisting of three partial checksums and an additional partial checksum.
  • 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. 4a and 4b each show a preferred embodiment of an arrangement of data and checksums in a memory unit, the checksum of the first type and the checksum of the second type each consisting of three partial checksums.

Detaillierte Beschreibung der ZeichnungDetailed description of the drawing

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.In the figures, different preferred configurations of the invention are shown using the example of data to be saved and checksums as an arrangement in a storage unit. The data to be backed up are included DATA designated. The first type of checksum ("secure checksum") is called CS_s, the second type of checksum ("unsafe checksum") is called CS_u. The checksum of the first type is preferably used for checking only once, in particular when the program is started, whereas the checksum of the second type is preferably used for checking regularly during program operation. Both checksums are available and are used. The secure checksum CS_s is complex and time-consuming. However, this is usually of minor importance when the program is started (device initialization). The simple checksum CS_u is optimal in terms of computing time, ie it does not load the safety CPU during its actual safety-related work.

In 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 1b illustriert. Hierdurch wird erreicht, dass beim erstmaligen Prüflauf (Programmstart) auch eine Korrumpierung der einfacheren Prüfsumme sicher erkannt wird.In 1a is shown to be a safe checksum CS2s (e.g. 128 bit CRC ) with an uncertain checksum CS1u (e.g. 8 bit addition) is linked. The data and the checksum of the second type are preferably secured by the checksum of the first type. This is in 1b illustrated. This ensures that corruption of the simpler checksum is reliably detected during the first test run (program start).

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.It can be provided that the checksum of the first type and / or the checksum of the second type each comprise several partial checksums. Accordingly, the data can be divided into several partial data areas. A partial checksum is preferably assigned to each partial data area. This increases security in particular with CRC checksums of the first type, since errors in smaller amounts of data can be detected with greater certainty.

In den 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. 2b unterscheidet sich von 2a nur durch die Platzierung der Teildatenbereiche und Teilprüfsummen in der Speichereinheit. Die Platzierung gemäß 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 2d, 3b, 4a, 4b). In 2c ist illustriert, dass die Daten DATA3 und die unsichere Prüfsumme CS4u durch die sichere Teilprüfsumme CS3s gesichert sind. In 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).In the 2a and 2 B is shown that three partial data areas DATA1 . DATA2 and DATA3 as well as three associated safe partial checksums CS1s . CS2s and CS3s are provided. The uncertain checksum CS4u is not divided here, but on the entire data DATA directed. 2 B differs from 2a only by placing the partial data areas and partial checksums in the storage unit. The placement according to 2 B , in which the partial data areas are directly adjacent to one another, is advantageous with regard to the generation of the data, since no breaks in the code have to be made, but rather the checksums CS1s . CS2s . CS3s can be attached at the back (likewise 2d . 3b . 4a . 4b) , In 2c is illustrated that the data DATA3 and the uncertain checksum CS4u through the safe partial checksum CS3s are secured. In 2d is illustrated that each partial data area DATA1 . DATA2 and DATA3 along with the uncertain checksum CS4u through the associated secure partial checksum CS1s . CS2s respectively. CS3s is secured (for example, the uncertain checksum CS4u together with the data field DATA3 through the safe partial checksum CS3s be secured).

In den 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 DATA1, DATA2, DATA3 und alle Teilprüfsummen CS1s, CS2S, CS3s (und vorzugsweise CS4u) gebildet wird.In the 3a and 3b it is shown that the plurality of partial checksums, each assigned to a partial data area CS1s . CS2S . CS3s together with another partial checksum CS5s form the checksum of the first kind. If a very high level of security is to be achieved, long CRC checksums are required (e.g. 128 bits). However, this can be simplified by using several shorter CRC partial checksums (e.g. 32 bits) that are relatively easy to calculate and securing them with a long additional checksum (e.g. 128 bits). The additional partial checksum is preferred CS5s only about the partial checksums CS1s . CS2S . CS3s (and preferably CS4u ) educated. However, it can also be provided that the additional partial checksum CS5s across all partial data areas DATA1 . DATA2 . DATA3 and all partial checksums CS1s . CS2S . CS3s (and preferably CS4u ) is formed.

In den 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 Teildatenfeldem 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).In the 4a and 4b is shown that three partial data areas DATA1 . DATA2 and DATA3 as well as three associated safe partial checksums CS1s . CS2s and CS3s and three associated uncertain partial checksums CS4u . CS5u and CS6u are provided. The total effort of a checksum check is almost independent of how many partial data fields a data set is divided into. An initialization or check of the checksum is only required for each partial data field. In the case of relatively large partial data fields, however, this can be neglected in comparison to the formation of the respective checksum. For this reason, the simpler checksum check can optionally be broken down into several smaller partial data fields. This does not result in an increase in the diagnostic coverage if, as an assumption of an addition checksum, it is assumed that only a detection of 1-1 / 2 M is achieved for the partial data field. However, this can significantly reduce the likelihood that data corruption will remain undetected without complex and complex algorithms. Since all checksums of the k Sub data fields CS4u , ..., CS6u would have to be falsified undetected, this probability increases to 1-1 / 2 (kM) with the number k of the checksums.

Claims (14)

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 Maschinenbewegungen ausgelöst werden, aufgrund welchen Gefahr von Leib und Leben entstehen kann.Method for checking data in an arithmetic unit at runtime of a program, the arithmetic unit being part of a device with safety-related functionality, the data (DATA) being checked with a checksum of the first type (CS2s) and with a checksum of the second type (CS1u), by calculating the checksum of the first type and the checksum of the second type at runtime of the program and comparing each with a stored checksum (CS1u, CS2s), the calculation time required to calculate the checksum of the second type (CS1u) less than the calculation time required at runtime of the program Calculating the first type of checksum (CS2s), - The checksum of the first type (CS2s) is calculated during the initialization of the program and compared with the stored checksum and the checksum of the second type (CS1u) is calculated several times during the cycle of the program, in particular at regular and / or specifiable time intervals and compared with the stored checksum, - The safety-related functionality of the device is continued when the calculated checksums (CS1u, CS2s) match the stored checksums (CS1u, CS2s), and - whereby the device is put into a safe state if the calculated checksums (CS1u, CS2s) do not match the stored checksums (CS1u, CS2s), whereby no machine movements are triggered in the safe state, due to which danger to life and limb arises can. Verfahren nach Anspruch 1, wobei zur Laufzeit des Programms die Prüfsumme erster Art (CS2s) weniger häufig berechnet wird als die Prüfsumme zweiter Art (CS1u).Procedure according to Claim 1 , whereby the checksum of the first type (CS2s) is calculated less frequently than the checksum of the second type (CS1u) at program runtime. Verfahren nach Anspruch 1 oder 2, wobei die Prüfsumme erster Art (CS2s) eine CRC-Prüfsumme ist.Procedure according to Claim 1 or 2 , the first type of checksum (CS2s) being a CRC checksum. Verfahren nach Anspruch 3, 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.Procedure according to Claim 3 , wherein the checksum of the second type (CS1u) is a CRC checksum, the length of which is shorter than that of the checksum of the first type (CS2s). Verfahren nach einem der Ansprüche 1 bis 4, 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.Procedure according to one of the Claims 1 to 4 , wherein the checksum of the second type (CS1u) is an addition checksum, the length of which preferably corresponds to the internal memory access data width or a register width of a processor of the computing unit executing the program. 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 (CS1u) berechnet wird.Method according to one of the preceding claims, wherein the checksum of the first type (CS2s) is calculated via the data (DATA) and via the checksum of the second type (CS1u). Verfahren nach einem der vorstehenden Ansprüche, 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.Method according to one of the preceding claims, the data (DATA) being divided into a plurality of partial data areas (DATA1, DATA2, DATA3) and a partial checksum of the first type (CS1s, CS2s, CS3s) for each of the plurality of partial data areas (DATA1, DATA2, DATA3). and / or a partial checksum of the second type (CS4u, CS5u, CS6u) is calculated. Verfahren nach Anspruch 7, wobei eine weitere Teilprüfsumme 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.Procedure according to Claim 7 , wherein a further partial checksum of the first type (CS5s) is calculated via the respective partial checksum of the first type (CS1s, CS2s, CS3s) for each of the plurality of partial data areas (DATA1, DATA2, DATA3). 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.Method according to one of the preceding claims, wherein the data to be checked are copied from a non-volatile memory to a volatile memory of the computing unit before the check and the data in the volatile memory are checked. 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 (CS1u) erzielbare Diagnosedeckung ist. Method according to one of the preceding claims, wherein a diagnostic coverage achievable by the checksum of the first type (CS2s) is higher than a diagnostic coverage achievable by the checksum of the second type (CS1u). Verfahren nach einem der vorstehenden Ansprüche, wobei von der Prüfsumme erster Art (CS2s) und/oder von der Prüfsumme zweiter Art (CS1u) eine vorbestimmte Diagnosedeckung erzielbar ist.Method according to one of the preceding claims, wherein a predetermined diagnostic coverage can be achieved from the checksum of the first type (CS2s) and / or from the checksum of the second type (CS1u). Recheneinheit, die dazu eingerichtet ist, ein Verfahren nach einem der vorstehenden Ansprüche durchzuführen.Computing unit which is set up to carry out a method according to one of the preceding claims. Sicherheits-SPS mit einer Recheneinheit nach Anspruch 12, wobei die Sicherheits-SPS das Gerät mit sicherheitsgerichteter Funktionalität ist.Safety PLC with an arithmetic unit Claim 12 , whereby the safety PLC is the device with safety-related functionality. Maschinenlesbares Speichermedium mit einem darauf gespeicherten Computerprogramm mit Programmcodemitteln, die eine Recheneinheit nach Anspruch 12 oder eine Sicherheits-SPS nach Anspruch 13 veranlassen, ein Verfahren nach einem der Ansprüche 1 bis 11 durchzuführen, wenn das maschinenlesbare Speichermedium in einen Speicher der Recheneinheit geladen ist und die Programmcodemittel ausgeführt werden.Machine-readable storage medium with a computer program stored on it with program code means that a computing unit after Claim 12 or a safety PLC after Claim 13 to initiate a procedure according to one of the Claims 1 to 11 to be carried out when the machine-readable storage medium is loaded into a memory of the computing unit and the program code means are executed.
DE102012020442.6A 2012-10-18 2012-10-18 Method for checking data using at least two checksums Expired - Fee Related DE102012020442B4 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102012020442.6A DE102012020442B4 (en) 2012-10-18 2012-10-18 Method for checking data using at least two checksums
ATA791/2013A AT513533B1 (en) 2012-10-18 2013-10-14 Method for checking data by means of at least two checksums

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102012020442.6A DE102012020442B4 (en) 2012-10-18 2012-10-18 Method for checking data using at least two checksums

Publications (2)

Publication Number Publication Date
DE102012020442A1 DE102012020442A1 (en) 2014-04-24
DE102012020442B4 true DE102012020442B4 (en) 2020-03-05

Family

ID=50436701

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012020442.6A Expired - Fee Related DE102012020442B4 (en) 2012-10-18 2012-10-18 Method for checking data using at least two checksums

Country Status (2)

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

Cited By (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 (en) * 2005-04-12 2006-10-19 Robert Bosch Gmbh Method and computer unit for error recognition and error logging in a memory
DE102006003146A1 (en) * 2006-01-23 2007-08-02 Infineon Technologies Ag Device and method for reading out a data word and device and method for storing a data block
US20100332949A1 (en) * 2009-06-29 2010-12-30 Sandisk Corporation System and method of tracking error data within a storage device

Family Cites Families (1)

* 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

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006108849A1 (en) * 2005-04-12 2006-10-19 Robert Bosch Gmbh Method and computer unit for error recognition and error logging in a memory
DE102006003146A1 (en) * 2006-01-23 2007-08-02 Infineon Technologies Ag Device and method for reading out a data word and device and method for storing a data block
US20100332949A1 (en) * 2009-06-29 2010-12-30 Sandisk Corporation System and method of tracking error data within a storage device

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
KÜHN, Dr. V.: Vorlesungsskript Kanalcodierung II. Fachbereich Physik/Elektrotechnik (FB 1), Arbeitsbereich Nachrichtentechnik, Bremen, 04.04.2011. Im Internet: <URL:http://www.ant.uni-bremen.de/sixcms/media.php/102/9702/kc2_skript.pdf> *
NIKOLAIZIK, u.a.: Fehlertolerante Mikrocomputersysteme. Verlag Technik GmbH Berlin. ISBN: 3-341-00859-4. 1. Auflage, 1990, S. 40 - 47 *

Cited By (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

Also Published As

Publication number Publication date
AT513533A2 (en) 2014-05-15
AT513533A3 (en) 2014-07-15
AT513533B1 (en) 2015-05-15
DE102012020442A1 (en) 2014-04-24

Similar Documents

Publication Publication Date Title
DE112007003015B4 (en) Method and device for cache-based error detection and correction in a memory
DE102012204256B4 (en) METHOD AND SYSTEM FOR INITIATING A RE-OPERATION PROCESS IN A NON-VOLATILE SOLID STORAGE DEVICE
DE102010037457B4 (en) A method of data processing for providing a value for determining whether an error has occurred during execution of a program, methods of data processing for determining whether an error has occurred during execution of a program, method for generating program code, data processing arrangements for providing a program Value for determining whether an error has occurred during execution of a program, data processing arrangements for determining whether an error has occurred during execution of a program, and data processing arrangements for generating program code
DE102013013047B4 (en) Determination of an identifier
DE102009020389A1 (en) System for updating firmware and methods therefor, and method for creating firmware
DE102011108933A1 (en) Secure storage through internal backup
DE102005052698A1 (en) Processing data stored in a non-volatile manner involves handling the error differently depending on whether selected memory block belongs to code data region or user data region
DE102013018647A1 (en) Failover code functionality
DE102016107718A1 (en) Reading out error vectors from a memory unit
DE102013109315B4 (en) Method and data processing device for reconstructing a vector
DE102012020442B4 (en) Method for checking data using at least two checksums
DE102016223341A1 (en) Integrated circuit with hardware check unit for checking selected memory accesses
EP3378006B1 (en) Method for loading of a secure memory image of a microcontroler and arrangement with a microcontroller
DE102014114157B4 (en) A method of data processing for determining whether an error has occurred during execution of a program and data processing arrangements for generating program code
WO2006089943A1 (en) Method for data protection and device for carrying out the same
DE102007040721A1 (en) Data processing arrangement comprises coding device, which is adjusted to assign codeword to data item to be stored in memory element based on signal information
DE102005021546B4 (en) Microcontroller or microprocessor system, in particular microcontroller or microprocessor system with error detection or correction
DE102009033211A1 (en) Chip card for monitoring data integrity and software development integrity, has software module generating software counter-measures and counter-measures relative to redundant data engaged or integrated into components of tool chain
DE102020209236A1 (en) Method of operating a non-volatile memory device
DE102013112020A1 (en) Method and device for detecting bit errors
DE102014002369B4 (en) Memory programming in a security module
DE102021209038A1 (en) Method for automatically detecting and correcting memory errors in a secure multi-channel computer
DE102022111925A1 (en) SEMICONDUCTOR CHIP DEVICE AND METHOD FOR CHECKING THE INTEGRITY OF A MEMORY
DE3105254A1 (en) Method for checking data stored in memories
DE102022125477A1 (en) EXECUTION ON-SITE ARCHITECTURE WITH INTEGRITY CHECK

Legal Events

Date Code Title Description
R163 Identified publications notified
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee