WO2009034019A1 - Verfahren und vorrichtung zum codieren von datenworten - Google Patents

Verfahren und vorrichtung zum codieren von datenworten Download PDF

Info

Publication number
WO2009034019A1
WO2009034019A1 PCT/EP2008/061732 EP2008061732W WO2009034019A1 WO 2009034019 A1 WO2009034019 A1 WO 2009034019A1 EP 2008061732 W EP2008061732 W EP 2008061732W WO 2009034019 A1 WO2009034019 A1 WO 2009034019A1
Authority
WO
WIPO (PCT)
Prior art keywords
symbols
data
checksum
random
random data
Prior art date
Application number
PCT/EP2008/061732
Other languages
English (en)
French (fr)
Inventor
Bernd Meyer
Marcus Schafheutle
Original Assignee
Continental Automotive 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 Continental Automotive Gmbh filed Critical Continental Automotive Gmbh
Priority to US12/677,410 priority Critical patent/US20100194609A1/en
Priority to EP08803702A priority patent/EP2191408A1/de
Priority to RU2010114221/08A priority patent/RU2485584C2/ru
Publication of WO2009034019A1 publication Critical patent/WO2009034019A1/de

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • 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/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/556Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems

Definitions

  • the present invention relates to a method and a
  • Device for coding data words as required, for example, when storing or transmitting data.
  • Simple data storage is usually not sufficient due to possible errors in reading or writing. Therefore, the corresponding data are usually encoded and stored in coded form.
  • so-called error-correcting or error-detecting codes are used.
  • a codeword and a checksum are determined from a data word to be coded using appropriate algorithms. Often these are particularly security-relevant data that should be stored on protected storage devices.
  • the confidential memory contents of an electronic storage medium which is protected by hardware measures against unauthorized reading by third parties, protected by an error-correcting code from memory errors such as bit flips or the like.
  • access-protected memory for example, smart cards or security modules come into question.
  • the confidential data held in the protected memory are interpreted as code words of an error-correcting code and expanded by corresponding checksums for error detection and / or correction.
  • the checksums calculated for error detection and correction are directly related to the confidential ones Information within the codewords can be, the ArdSummen stylist also conclusions on the information to be protected, unless further protective measures are taken.
  • the checksums generally do not reveal the complete information contained in the codewords, they may provide some information about sub-relations, such as linear equations about the stored data. If particularly sensitive data, such as cryptographic keys, are located in the main memory, that is to say the memory protected against access, and such data are in a common codeword together with further known information, the complete error correction may also be used, depending on the respectively used error correction method , specially protected data, such as a complete key content, from which checksum is extracted. If the checksum of the code word consists, for example, of s bytes, then in the least favorable case s bytes of the key can also be calculated. Therefore, further measures to ensure the confidentiality of such data are required.
  • a semantically secure encryption method has the property that an attacker is not able to distinguish the encryption of records of the same length, even if he has previously selected the records to be encrypted. Encryption therefore does not generally provide an attacker with useable information about the encrypted data.
  • One possibility for ensuring the confidentiality of the checksums for error detection or correction consists in an explicit encryption of the calculated checksums and storage in basically accessible memories or memory areas. This means that after the checksum quantity for the data to be saved, the generated checksum is encrypted using a suitable cryptographic method. keys, and before each check of a codeword the checksum is decrypted again.
  • the data to be backed up against errors is encoded with an encryption method before the coding and calculation of the checksums.
  • the data does not necessarily have to be stored in encrypted form. It may be sufficient to encrypt the data temporarily only for calculating or checking code words, but otherwise store it in plain text in the protected memory.
  • a disadvantage is that additional steps for encryption in the calculation or for decryption in the examination of codewords are required and an additional computational cost significantly th.
  • the keys used must be stored in the protected memory.
  • a method for encoding a data word wherein the data word is constructed from a predetermined number of random data symbols and a predetermined number of user data symbols.
  • a checksum with a predetermined number of check symbols is calculated.
  • the number of random data symbols corresponds at least to the number of check symbols of the checksum.
  • code or coding is understood to mean the generation of a code word and a checksum starting from a data word to be coded.
  • the method also does not represent encryption, since the length of the calculated checksums is usually much smaller than the length of the protected Data or payload and therefore in general there is no clear relationship between calculated checksums and data to be protected.
  • the checksum is preferably calculated according to a method for calculating checksums of error-correcting and / or error-detecting codes.
  • a number of codes or coding methods can be used, such as BCH (Bose-Chaudhuri-Hocquenghem), Reed-Solomon, CRC (Cyclic Judicious Check) or Hamming codes.
  • a corresponding function for calculating the checksum is preferably an indirect mapping of the random data symbols onto the test symbols. As a result, regardless of the concrete choice of the payload data symbols, an entropy which is caused by the random data is retained even in the case of the checksum.
  • the random data symbols can be provided, for example, at predetermined locations of the data word.
  • the respective data symbols such as bits or bytes, can be provided contiguously or else in individual areas of the respective data word.
  • the random data symbols are also regenerated when the user data symbols are changed. This creates additional security.
  • the user data symbols and the random data symbols are stored in an access-protected memory area.
  • An access-protected memory area can be realized for example by a chip card or special mechanical or electronic access mechanisms when reading from the secure memory area.
  • the test symbols on the other hand, can be stored in an unprotected memory area. Since knowledge of the checksum, which is constructed from the check symbols, can not be used to deduce the user data, more expensive memory, for example a memory equipped with an access protection, is thus saved for storing the checksum.
  • the user data symbols are preferably stored in a contiguous memory area, and / or random data symbols are stored in at least one adjacent memory area. Thus, the adjacent random data symbols can be used for coding according to the invention.
  • the payload symbols which form part of the data word to be coded, may be present, for example, sequentially, so that initially a number of data symbols to be coded occur, followed by a number of random data symbols. However, the different data symbols can also occur and be used in a different order.
  • the memory in this way, for example, divided into blocks, for example, are written to the random data, so that a simple encoding and thus generating a secure checksum can be done.
  • the invention further provides a device for coding data words with the features of patent claim 10.
  • This device has a control unit which is set up in such a way that a correspondingly described method for coding a data word is carried out.
  • the device may be constructed, for example, software implemented by appropriate programming of a microprocessor.
  • the device is provided with a random symbol generation unit which generates random data symbols.
  • the device can have a checksum calculation unit which calculates the checksum of a respective data word.
  • the device has a memory device which stores random data symbols, test symbols or user data symbols in memory areas. In this case, an access-protected memory area is preferably provided for the random data symbols and the user data symbols.
  • the invention relates to a computer program product, which causes the implementation of a corresponding method for encoding data words on a program-controlled computer device.
  • a program-controlled computer device is for example a PC in question, is installed on the appropriate software and has the interfaces for storing the encoded data and checksums.
  • the computer program product can be implemented, for example, in the form of a data carrier, such as USB stick, floppy disk, CDROM, DVD, or else implemented on a server device as a downloadable program file.
  • Fig. 1 is a schematic representation of a coded data word
  • 3 is an exemplary flowchart of a variant of the method for encoding data words
  • FIG. 4 shows a block diagram of an embodiment of a coding device for data words
  • Fig. 5 a plurality of data words which are to be coded.
  • FIG. 1 shows a coded data word with user data ND and a checksum PS.
  • the usefulness for example, a predetermined number of data bits or data bytes, and the checksum is indicated by a number of check bits, for example.
  • the codeword illustrated in FIG. 1 could be generated by means of a BCH or RS code.
  • FIG. 2 shows illustrations of a variant of the proposed method for coding data words depictions of data words or code words to be coded.
  • a data word D1 is provided, which has a predetermined number of useful data symbols, such as data bits ND.
  • random data bits ZD are provided in the data word D1. It is assumed that a coding method is used which assigns a check sum s of length n-k symbols to the associated codeword.
  • FIG. 2B likewise shows a data word D1 with the associated checksum PS or the test symbols, wherein, however, the useful data ND1, ND2, ND3 are not split, but are split into subregions. In between are digits in the data word D1, in which the random data bits or random data symbols ZD1, ZD2, ZD3 are provided. The number of random data symbols corresponds to the number of symbols required for the checksum PS. It is also possible to use more random symbols as test symbols.
  • FIG. 3 schematically illustrates an exemplary flowchart for encoding data words. It is initially assumed that a data word in step Sl. In the variant of the coding method, positions of data symbols 0 ⁇ ii ⁇ ... ⁇ i n -k ⁇ k of a data word D are selected for the code nk used and described with random values or random symbols before the calculation of the checksum s (step S2). , The data word D 'obtained in this way is stored in the protected memory of the corresponding storage medium, and the associated calculated checksum S with corresponding checksum symbols PS is stored in the unprotected memory.
  • the check sum calculation is performed in step S3.
  • a further coding of the payload symbols supplemented with random data symbols of the data word to be coded is specified.
  • the check sum calculation takes place with the step designated S3B according to the respective method used.
  • a method according to the Reed-Solomon code can be used.
  • Reed-Solomon codes are cyclic codes and form a subclass of the BCH codes.
  • the error correction of audio CDs is done according to a Reed-Solomon code.
  • RS codes are also used in digital mobile radio or digital video broadcasting. On the basis of the checksum, damaged bits or bytes can then be recovered each time during the transfer or when saving.
  • other known coding methods can be used.
  • the code word is stored in sub-step S4A and, on the other hand, the checksum symbols are stored as a checksum in step S4B.
  • the checksum symbols are preferably stored in a non-protected memory area.
  • the security-sensitive code words which according to the method, however, also have randomized, ie random symbols, are stored in a specially protected memory or memory area.
  • the checksum in a common memory card, such as a Flash memory, stored and the payload and random data in a special smart card.
  • the method can be used if safety-relevant data must be stored in data words. For example, this is the case when electronic tachographs are used.
  • the relevant information of the tachograph which may not be manipulated, is considered as security-relevant data.
  • the collected data of a driver on a personal driver card, which is designed as a chip card with protected memory, are stored.
  • the checksums also obtained during storage and associated coding can be stored in a less sensitive or protected memory device.
  • the property of the function f which is determined by the underlying method for coding or for generating the checksum, is utilized. If the
  • the blocks k of length k before calculation of the checksums are respectively nk positions ii,..., I n - k of each block and described with random symbols. Each time you change the data contents of the blocks, the symbols at these positions should be rewritten with random symbols before the checksums are calculated.
  • the procedure described ensures the confidentiality of the data without the need for explicit encryption or decryption. Only the use of certain mathematical properties of the implemented error-detecting or -correcting code implicitly achieves the protection of the confidentiality of the data to be protected. Only the normal algorithmic steps to compute or check codewords need to be performed. The confidentiality of the checksums is implicitly achieved. Thus, the described method can be implemented very efficiently.
  • the entropy of the inserted random symbols is greater than or equal to the entropy of the checksums calculated therewith. This achieves a higher level of security than with semantic encryption methods.
  • the method only requires that selected ranges be described before computing the checksums with random values.
  • This step can be used, for example, in the initialization of a device equipped with the coding method. For example, if cryptographic keys to be protected are to be installed. In particular, no additional program parts are required for an encryption or decryption function or case distinctions for the treatment of the data to be protected. Neither upstream nor downstream arithmetic operations are necessary, nor must the coding or decoding routines be modified.
  • FIG. 4 shows a block diagram of an exemplary device suitable for carrying out the coding method.
  • the device 1 has a control unit 2 which receives the respective data word D1, for example at an external interface.
  • the coding device 1 furthermore has a checksum generation unit 3, a random symbol generation unit 4 and memory devices 5 and 6.
  • the control unit 2 is coupled to the checksum calculation unit 3 of the random symbol generation unit 4 and the memory devices 5, 6 via, for example, a suitable data bus.
  • the control unit 2 coordinates the respective generation of the checksums and random symbols, as well as the storage in the various memory areas.
  • the memory device 5 is designed as a conventional, non-access-protected memory.
  • the second memory 6 may be implemented, for example, as part of a smart card represented by reference numeral 7.
  • the smart card 7, which has the access-protected memory 6, can be inserted into an insert of the coding device 1, for example.
  • the coding device 1 with its respective elements 2, 3, 4, 5, 6 can also be embodied computer-implemented, with the individual blocks 2, 3, 4, 5, 6 being considered as respective program parts.
  • the method steps described above are carried out in a coordinated manner, for example, by the control unit 2.
  • encoded data whose confidentiality can be ensured exists in the storage areas 5 and 6.
  • the respective memory area In order to protect a larger memory area against errors, usually the respective memory area is divided into sections with a selected length, and for each section, the associated checksum is calculated and stored. If a section now contains data contents whose confidentiality must be specially protected, such as a cryptographic key, then it is sufficient to implement the inventive method if a memory area with random data is located in front of and / or behind the data whose confidentiality is to be protected is inserted. This is illustrated in FIG.
  • Data words D1-D3, Kl, D4, K2 and D5 are shown.
  • the data words Kl and K2 have particularly security-relevant cryptographic keys.
  • the data words exemplified in FIG. 5 can also be understood as data areas in which a plurality of data words are provided in each case.
  • the areas K1 and K2 are to be regarded as data to be protected in particular.
  • the addition of random data ZD1 is illustrated by way of example with reference to the region K1, which is to be protected.
  • By adding the random data symbols ZD1 results in a conventional coding, for example by means of a BCH, CRC or RS code, a code word and a corresponding checksum.
  • the random data symbols are also detected as the data word to be coded. Due to the added random data or the randomization in parts of the data word to be coded, the checksum and the resulting coded user data can be stored separately, even with knowledge of the checksum there is no danger of violating the confidentiality of the coded data.
  • several areas can be provided with additional randomized data. To protect the area K2 this must be extended in a corresponding manner by adding random data symbols.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Verfahren zum Codieren eines Datenwortes (D1) mit einer vorgegebenen Anzahl von Zufallsdatensymbolen (ZD) und einer vorgegebenen Anzahl von Nutzdatensymbole (ND), wobei zu dem Datenwort (D1) eine Prüfsumme mit einer vorgegebene Anzahl von Prüfsymbolen (PS) berechnet wird und die Anzahl der Zufallsdatensymbole (ZD) mindestens der Anzahl der Prüfsymbole (PS) der Prüfsumme entspricht.

Description

Beschreibung
Verfahren und Vorrichtung zum Codieren von Datenworten
Die vorliegende Erfindung betrifft ein Verfahren und eine
Vorrichtung zum Codieren von Datenworten, wie es zum Beispiel beim Speichern oder Übertragen von Daten notwendig ist.
Ein einfaches Abspeichern von Daten ist aufgrund möglicher auftretender Fehler beim Lesen oder Schreiben in der Regel nicht ausreichend. Deshalb werden die entsprechenden Daten üblicherweise codiert und in codierter Form abgespeichert. Es finden insbesondere sogenannte fehlerkorrigierende oder fehlererkennende Codes Anwendung. Dabei werden aus einem zu co- dierenden Datenwort unter Anwendung entsprechender Algorithmen ein Codewort und eine Prüfsumme bestimmt. Häufig handelt es sich dabei um besonders sicherheitsrelevante Daten, die auf geschützten Speichern abgelegt werden sollen.
Bei einem typischen Anwendungsfall wird zum Beispiel der vertrauliche Speicherinhalt eines elektronischen Speichermediums, welches durch Hardware-Maßnahmen gegen unbefugtes Auslesen durch Dritte geschützt ist, durch einen fehlerkorrigierenden Code vor Speicherfehlern wie Bitflips oder ähnliches geschützt. Als zugangsgeschützte Speicher kommen zum Beispiel Chipkarten oder Sicherheitsmodule in Frage. Die im geschützten Speicher gehaltenen, vertraulichen Daten werden dabei als Codewörter eines fehlerkorrigierenden Codes interpretiert und um entsprechende Prüfsummen zur Fehlererkennung und/oder -korrektur erweitert. Aus Speicherplatzgründen ist es dabei wünschenswert, die benötigten Prüfsummen jedoch nicht innerhalb des durch Hardware-Maßnahmen geschützten Speichers abzulegen, sondern auf einen zweiten, kostengünstigen Speicher auszulagern, welcher keinen Schutz gegen unbefugtes Auslesen durch Dritte bietet.
Da die zur Fehlererkennung und -korrektur berechneten Prüfsummen jedoch in direktem Zusammenhang mit den vertraulichen Informationen innerhalb der Codewörter stehen können, lassen die PrüfSummendaten auch Rückschlüsse auf die zu schützenden Informationen zu, sofern nicht weitere Schutzmaßnahmen getroffen werden. Die Prüfsummen offenbaren dabei zwar im AIl- gemeinen nicht die vollständigen, in den Codewörtern enthaltenen Informationen, können jedoch über Teilrelationen, wie zum Beispiel lineare Gleichungen über die gespeicherten Daten, AufSchluss geben. Befinden sich im Hauptspeicher, also dem gegen Zugriffe geschützten Speicher, besonders schützens- werte Daten, wie beispielsweise kryptographische Schlüssel und liegen solche Daten zusammen mit weiteren bekannten Informationen in einem gemeinsamen Codewort, so können in Abhängigkeit vom jeweils verwendeten Verfahren zur Fehlerkorrektur gegebenenfalls auch die vollständigen, besonders zu schützenden Daten, wie zum Beispiel ein kompletter Schlüsselinhalt, aus der Prüfsumme extrahiert werden. Besteht die Prüfsumme des Codeworts aus beispielsweise s Bytes, so können im ungünstigsten Fall auch s Bytes des Schlüssels berechnet werden. Daher sind weitere Maßnahmen zum Gewährleisten der Vertraulichkeit solcher Daten erforderlich.
In der Vergangenheit wurde zum Beispiel der Einsatz von Verschlüsselungstechniken vorgeschlagen. Ein semantisch sicheres Verschlüsselungsverfahren hat dabei die Eigenschaft, dass ein Angreifer nicht in der Lage ist, Verschlüsselungen von Datensätzen gleicher Länge unterscheiden zu können, selbst wenn er die zu verschlüsselnden Datensätze vorher ausgewählt hat. Verschlüsselungen bieten daher einem Angreifer in er Regel keine nutzbare Information über die verschlüsselten Daten.
Eine Möglichkeit, auch die Vertraulichkeit der Prüfsummen zur Fehlererkennung oder -korrektur sicherzustellen, besteht in einer expliziten Verschlüsselung der berechneten Prüfsummen und einer Speicherung in prinzipiell zugänglichen Speichern oder Speicherbereichen. Das heißt, nach der Prüfsummengene- rierung für die zu sichernden Daten wird die generierte Prüfsumme mit einem geeigneten kryptographischen Verfahren ver- schlüsselt, und vor jeder Überprüfung eines Codewortes wird die Prüfsumme wiederum entschlüsselt.
Bei einer derartigen Vorgehensweise treten jedoch eine Reihe von Nachteile auf. Die zusätzlichen Schritte zur Verschlüsselung bei der Berechnung beziehungsweise zur Entschlüsselung bei der Prüfung von Codewörtern erfordern einen zusätzlich notwendigen Rechenaufwand, was insbesondere dann nachteilig ist, wenn eine Überprüfung der Codewörter in regelmäßigen Ab- ständen erfolgen muss.
Die entsprechenden Verfahren zur Ver- und Entschlüsselung müssen ferner derart implementiert werden, dass sie die fehlererkennenden und - korrigierenden Eigenschaften des verwen- deten Codes nicht verschlechtern.
Die Verfahren zur Ver- und Entschlüsselung dürfen keine Rückschlüsse auf Abhängigkeiten zwischen verschiedenen Prüfsummen zulassen. Beispielsweise ist es bei der Verwendung von Strom- Chiffren zur Verschlüsselung der Prüfsummen zwingend notwendig, ein randomisiertes Verschlüsselungsverfahren zu benutzen und bei jeder Verschlüsselung neue Initialisierungsvektoren zu verwenden. Außerdem müssen die verwendeten Schlüssel im geschützten Speicher abgelegt werden, was einen erhöhten Speicherbedarf erfordert.
Alternativ wurde vorgeschlagen, die Dateninhalte zu verschlüsseln. Bei dieser Vorgehensweise werden die gegen Fehler zu sichernden Daten vor der Kodierung und Berechnung der Prüfsummen mit einem Verschlüsselungsverfahren verschlüsselt. Dabei müssen die Daten nicht notwendigerweise verschlüsselt abgespeichert werden. Es kann ausreichend sein, die Daten nur zur Berechnung oder Prüfung von Codewörtern temporär zu verschlüsseln, ansonsten aber im Klartext im geschützten Spei- eher abzulegen. Nachteilig ist dabei jedoch, dass zusätzliche Schritte zur Verschlüsselung bei der Berechnung beziehungsweise zur Entschlüsselung bei der Prüfung von Codewörtern erforderlich sind und einen zusätzlichen Rechenaufwand bedeu- ten . Ferner müssen die verwendeten Schlüssel im geschützten Speicher abgelegt werden.
Eine Aufgabe der Erfindung besteht somit darin, ein verbes- sertes Verfahren zum Codieren von Daten zu schaffen.
Diese Aufgabe wird durch ein Verfahren gemäß Patentanspruch 1 gelöst .
Demgemäß ist ein Verfahren zum Kodieren eines Datenwortes vorgesehen, wobei das Datenwort aus einer vorgegebenen Anzahl von Zufallsdatensymbolen und einer vorgegebenen Anzahl von Nutzdatensymbolen aufgebaut ist. Zu dem Datenwort wird eine Prüfsumme mit einer vorgegebenen Anzahl von Prüfsymbolen be- rechnet. Die Anzahl der Zufallsdatensymbole entspricht dabei mindestens der Anzahl der PrüfSymbole der Prüfsumme.
Wie bereits eingangs erläutert wurde, treten Prüfsummen insbesondere bei Fehlererkennungs- oder Fehlerkorrekturverfahren auf, so dass gemäß der Erfindung keine explizite Ver- oder Entschlüsselung der Daten notwendig ist. Bereits durch die Verwendung von Zufallsdaten und die Wahl der Anzahl von Zufallsdatensymbolen in Abhängigkeit von einer Prüfsummenbe- rechnung kann die Vertraulichkeit der Daten sichergestellt werden. Unter Code oder Codierung wird im Folgenden die Erzeugung eines Codewortes und einer Prüfsumme ausgehend von einem zu codierenden Datenwort verstanden. Es wird durch die Verwendung der mathematischen Eigenschaften, zum Beispiel des jeweiligen implementierten fehlererkennenden oder fehlerkor- rigierenden Codes implizit ein Schutz der zu schützenden Daten erreicht. Durch das Einfügen von Zufallsdaten gehen diese zufälligen Symbole bei der Berechnung der Prüfsumme ein, so dass selbst in Kenntnis der Prüfsumme, welche beispielsweise in einem nicht schreibgeschützten Speicherbereich abgelegt ist, nicht auf die Inhalte der Nutzdaten zurück geschlossen werden kann. Insofern stellt das Verfahren auch keine Verschlüsselung dar, da die Länge der berechneten Prüfsummen meist deutlich kleiner ist als die Länge der zu schützenden Daten beziehungsweise Nutzdaten und daher im Allgemeinen keine eindeutige Beziehung zwischen berechneten Prüfsummen und zu schützenden Daten besteht.
Die Prüfsumme wird vorzugsweise nach einem Verfahren zur Berechnung von Prüfsummen fehlerkorrigierender und/oder fehlererkennender Codes berechnet. Dabei kommen eine Reihe von Codes oder Codierungsverfahren in Frage, wie zum Beispiel BCH- (Bose-Chaudhuri-Hocquenghem) , Reed-Solomon, CRC- (Cyclic Re- dundancy Check) oder Hamming-Codes . Eine entsprechende Funktion zur Berechnung der Prüfsumme ist vorzugsweise eine in- jektive Abbildung der Zufallsdatensymbole auf die PrüfSymbole. Dadurch bleibt unabhängig von der konkreten Wahl der Nutzdatensymbole eine Entropie, welche durch die Zufallsdaten bedingt ist, auch bei der Prüfsumme erhalten.
Die Zufallsdatensymbole können zum Beispiel an vorgegebenen Stellen des Datenwortes vorgesehen werden. Dabei können die jeweiligen Datensymbole, wie zum Beispiel Bits oder Bytes, zusammenhängend oder auch in einzelnen Bereichen des jeweiligen Datenwortes vorgesehen werden.
In einer Variante des Verfahrens werden bei einer Änderung der Nutzdatensymbole auch die Zufallsdatensymbole neu er- zeugt. Damit wird eine zusätzliche Sicherheit geschaffen.
Vorzugsweise werden die Nutzdatensymbole und die Zufallsdatensymbole in einem zugriffsgeschützten Speicherbereich abgespeichert. Ein zugriffsgeschützter Speicherbereich kann zum Beispiel durch eine Chipkarte oder besondere mechanische oder elektronische Zugriffsmechanismen beim Lesen aus dem sicheren Speicherbereich realisiert werden. Die PrüfSymbole hingegen können in einem nicht geschützten Speicherbereich abgespeichert werden. Da in Kenntnis der Prüfsumme, welche aus den Prüfsymbolen aufgebaut ist, nicht auf die Nutzdaten zurück geschlossen werden kann, wird somit aufwändigerer Speicher, zum Beispiel ein mit einem Zugriffsschutz ausgestatteter Speicher, zum Abspeichern der Prüfsumme eingespart. Vorzugsweise werden ferner die Nutzdatensymbole in einem zusammenhängenden Speicherbereich gespeichert, und/oder in mindestens einem angrenzenden Speicherbereich werden Zufallsda- tensymbole gespeichert. Damit können die angrenzenden Zufallsdatensymbole für das erfindungsgemäße Codieren verwendet werden. Die Nutzdatensymbole, die einen Teil des zu codierenden Datenwortes bilden, können zum Beispiel sequenziell vorliegen, so dass zunächst eine Anzahl von zu codierenden Da- tensymbolen auftreten und anschließend eine Anzahl von Zufallsdatensymbolen. Die verschiedenen Datensymbole können jedoch auch in einer anderen Reihenfolge auftreten und verwendet werden. Der Speicher auf diese zum Beispiel Weise in zum Beispiel Blöcke aufgeteilt, in die Zufallsdaten eingeschrie- ben werden, so dass ein einfaches Codieren und damit Erzeugen einer sicheren Prüfsumme erfolgen kann.
Die Erfindung schafft ferner eine Vorrichtung zur Codierung von Datenworten mit den Merkmalen des Patentanspruchs 10.
Diese Vorrichtung weist eine Steuereinheit auf, welche derart eingerichtet ist, dass ein entsprechend vorbeschriebenes Verfahren zum Codieren eines Datenwortes durchgeführt wird.
Die Vorrichtung kann zum Beispiel softwareimplementiert durch geeignete Programmierung eines Mikroprozessors aufgebaut werden .
Vorzugsweise ist die Vorrichtung mit einer Zufallssymboler- zeugungseinheit vorgesehen, welche Zufallsdatensymbole erzeugt. Ferner kann die Vorrichtung eine Prüfsummenberech- nungseinheit aufweisen, welche die Prüfsumme eines jeweiligen Datenwortes berechnet. Ferner weist die Vorrichtung in einer besonderen Ausführungsform eine Speichereinrichtung auf, wel- che Zufallsdatensymbole, Prüfsymbole oder Nutzdatensymbole in Speicherbereiche abspeichert. Dabei ist für die Zufallsdatensymbole und die Nutzdatensymbole vorzugsweise ein zugriffsgeschützter Speicherbereich vorgesehen. Schließlich betrifft die Erfindung ein Computerprogrammprodukt, welches die Durchführung eines entsprechenden Verfahrens zum Codieren von Datenworten auf einer programmgesteuer- ten Rechnereinrichtung veranlasst. Als programmgesteuerte Rechnereinrichtung kommt zum Beispiel ein PC in Frage, auf dem entsprechende Software installiert ist und der Schnittstellen zum Abspeichern der codierten Daten und Prüfsummen aufweist. Das Computerprogrammprodukt kann beispielsweise in der Art eines Datenträgers, wie zum Beispiel USB-Stick, Floppy-Disk, CDROM, DVD, implementiert werden oder auch auf einer Servereinrichtung als herunterladbare Programmdatei implementiert sein.
Weitere vorteilhafte Ausgestaltungen der Erfindung sind Gegenstand der Unteransprüche sowie der im Folgenden beschriebenen Ausführungsbeispiele der Erfindung. Im Weiteren wird die Erfindung anhand von bevorzugten Ausführungsformen unter Bezugnahme auf die beigelegten Figuren näher erläutert.
Es zeigt dabei:
Fig. 1 eine schematische Darstellung eines codierten Datenwortes; Fig. 2 codierte Datenworte gemäß einer Variante des Co- dierverfahrens ; Fig. 3 ein beispielhaftes Ablaufdiagramm einer Variante des Verfahrens zum Codieren von Datenworten;
Fig. 4 ein Blockdiagramm einer Ausführungsform einer Co- diervorrichtung für Datenworte; und
Fig. 5 mehrere Datenworte, welche zu kodieren sind.
In den Figuren sind gleiche oder funktionsgleiche Elemente mit denselben Bezugszeichen versehen worden, sofern nichts anderes angegeben ist.
In der Fig. 1 ist ein codiertes Datenwort mit Nutzdaten ND und einer Prüfsumme PS dargestellt. Dabei umfassen die Nutz- daten beispielsweise eine vorgegebene Anzahl von Datenbits oder Datenbytes und die Prüfsumme ist durch eine Anzahl von beispielsweise Prüfbits angegeben. Beispielsweise könnte das in der Fig. 1 dargestellte Codewort mittels eines BCH- oder RS-Codes erzeugt sein.
Im Folgenden wird ein Code mit den Parametern (n, k, d) angenommen, wobei n die Länge der Codewörter, k die Länge der codierten Datenwörter und d ein Minimalabstand zwischen zwei Codewörtern ist. Mit f ist die Abbildung bezeichnet, die einem Datenwort w = (w0, ..., wk_i) der Länge k die zugehörige Prüfsumme s der Länge n-k des zugehörigen Codewortes zuordnet, wie es in der Figur 1 schematisch dargestellt ist.
Die Fig. 2 zeigt zur Veranschaulichung einer Variante des vorgeschlagenen Verfahrens zum Codieren von Datenworten Darstellungen von zu codierenden Datenworten bzw. Codeworte. In der Fig. 2A ist zunächst ein Datenwort Dl vorgesehen, welches eine vorgegebene Anzahl von Nutzdatensymbolen wie beispiels- weise Datenbits ND aufweist. Ferner sind in dem Datenwort Dl Zufallsdatenbits ZD vorgesehen. Es wird davon ausgegangen, dass ein Codierverfahren verwendet wird, welches eine Prüfsumme s der Länge n-k Symbole dem zugehörigen Codewort zuordnet .
In der Fig. 2B ist ebenso ein Datenwort Dl mit der zugehörigen Prüfsumme PS bzw. den PrüfSymbolen dargestellt, wobei jedoch die Nutzdaten NDl, ND2, ND3 nicht zusammenhängend, sondern in Teilbereiche aufgespaltet sind. Dazwischen liegen Stellen in dem Datenwort Dl, in denen die Zufallsdatenbits oder Zufallsdatensymbole ZDl, ZD2, ZD3 vorgesehen sind. Die Anzahl der Zufallsdatensymbole entspricht dabei der Anzahl der für die Prüfsumme PS benötigten Symbole. Es können auch mehr Zufallssymbole als PrüfSymbole verwendet werden.
In der Fig. 3 ist ein beispielhaftes Ablaufdiagramm für das Codieren von Datenworten schematisch dargestellt. Dabei wird zunächst von einem Datenwort im Schritt Sl ausgegangen. In der Variante des Codierverfahrens werden für den verwendeten Code n-k Positionen von Datensymbolen 0 ≤ ii < ... < in - k < k eines Datenwortes D ausgewählt und vor der Berechnung der Prüfsumme s mit zufälligen Werten bzw. Zufallssymbolen beschrieben (Schritt S2) . Das auf diese Weise erhaltene Datenwort D' wird im geschützten Speicher des entsprechenden Speichermediums abgelegt, und die zugehörige berechnete Prüfsumme S mit entsprechenden PrüfSummensymbolen PS wird im unge- schützten Speicher abgelegt.
Gemäß dem Ablaufdiagramm der Fig. 3 wird im Schritt S3 die PrüfSummenberechnung durchgeführt. Dabei ist als optionaler Unterschritt S3A noch eine weitere Codierung der mit Zufalls- datensymbolen ergänzten Nutzdatensymbole des zu codierenden Datenwortes angegeben. Die PrüfSummenberechnung erfolgt mit dem S3B bezeichneten Schritt gemäß dem jeweiligen verwendeten Verfahren. Dabei kann zum Beispiel ein Verfahren nach dem Reed-Solomon-Code (RS-Code) verwendet werden. Reed-Solomon- Codes sind zyklische Codes und bilden eine Unterklasse der BCH-Codes . Zum Beispiel erfolgt die Fehlerkorrektur von Audio-CDs nach einem Reed-Solomon-Code. RS-Codes finden auch Einsatz beim digitalen Mobilfunk oder Digital Video Broad- casting. Anhand der Prüfsumme können dann jeweils bei der U- bertragung oder beim Speichern beschädigte Bits oder Bytes wieder gewonnen werden. Selbstverständlich können auch andere bekannte Codierverfahren eingesetzt werden.
Im Speicherschritt S4 ist dargestellt, dass einerseits das Codewort im Unterschritt S4A abgespeichert wird und andererseits die PrüfSummensymbole als Prüfsumme im Schritt S4B abgespeichert werden. Dabei werden vorzugsweise die Prüfsummen- symbole in einem nicht weiter geschützten Speicherbereich abgelegt. Die sicherheitssensiblen Codeworte, welche gemäß dem Verfahren jedoch auch randomisierte, also zufällige Symbole aufweisen, werden hingegen in einem besonders geschützten Speicher oder Speicherbereich abgelegt. Beispielsweise kann die Prüfsumme in einer üblichen Speicherkarte, wie einem Flash-Speicher, abgelegt werden und die Nutzdaten und Zufallsdaten in einer speziellen Chipkarte.
Beispielsweise kann das Verfahren Anwendung finden, wenn si- cherheitsrelevante Daten in Datenworten abgespeichert werden müssen. Beispielsweise ist dies der Fall, wenn elektronische Tachografen eingesetzt werden. Als sicherheitsrelevante Daten gelten dabei zum Beispiel die jeweiligen Informationen des Fahrtenschreibers, welche nicht manipuliert werden dürfen. Dabei können die erhobenen Daten eines Fahrers auf einer personengebundenen Fahrerkarte, die als Chipkarte mit geschütztem Speicher ausgeführt ist, abgelegt werden. Die ebenfalls bei der Speicherung und damit verbundenen Codierung erhaltenen Prüfsummen hingegen, können in einer weniger sensiblen oder geschützten Speichereinrichtung abgelegt werden.
Bei dem vorgeschlagenen Verfahren zum Codieren von Datenworten wird die Eigenschaft der Funktion f, welche durch das zugrunde gelegte Verfahren zum Codieren, beziehungsweise zur Erzeugung der Prüfsumme bestimmt ist, ausgenutzt. Wenn die
Funktion f zur Berechnung der Prüfsumme S = f(D') insbesondere die Eigenschaft hat, dass sie für beliebige aber fest gewählte Kombinationen von Symbolen an den 2k-n von ii, ..., in_k verschiedenen Positionen eine injektive Abbildung mit n-k Un- bekannten an den Positionen ii, ..., in_k ist, enthält die berechnete Prüfsumme S keine für einen potenziellen Angreifer verwertbare Information über das codierte Datenwort D' .
Durch die Belegung der n-k Positionen ii, ..., in_k des Daten- worts D' mit zufälligen Symbolen beträgt die Entropie der
Quelle der auf diese Weise erzeugten Datenwörter n-k Symbole. Die Injektivität der Funktion f mit Unbestimmten an den n-k Positionen ii, ..., in_k stellt dabei sicher, dass bei der Berechnung der Prüfsumme S diese Entropie erhalten bleibt. Dies ist unabhängig von den konkreten Symbolen an den übrigen 2k-n Positionen. Die berechnete Prüfsumme S weist dabei in einem informationstheoretischen Sinne keine Information über die Symbole an den restlichen Positionen des Codeworts D' auf. Die zufälligen Symbole an den n-k Positionen ii, ..., in_k überdecken in der Prüfsumme die Information über die restlichen 2k-n Datensymbole.
Um nun Speicherbereiche, welche besonders schützenswerte Daten wie beispielsweise kryptographische Schlüssel des Systems enthalten, gegen Verlust der Vertraulichkeit durch ausgelagerte Prüfsummen zu sichern, werden in Blöcken der Länge k vor Berechnung der Prüfsummen die jeweils n-k Positionen ii, ..., in-k eines jeden Blocks reserviert und mit zufälligen Symbolen beschrieben. Bei jeder Änderung der Dateninhalte der Blöcke sollten die Symbole an diesen Positionen vor der Berechnung der Prüfsummen erneut mit zufälligen Symbolen überschrieben werden.
Durch die beschriebene Vorgehensweise wird die Vertraulichkeit der Daten sichergestellt, ohne dass dazu eine explizite Ver- oder Entschlüsselung notwendig wird. Lediglich durch die Verwendung bestimmter mathematischer Eigenschaften des imple- mentierten fehlererkennenden oder -korrigierenden Codes wird implizit der Schutz der Vertraulichkeit der zu schützenden Daten erreicht. Es müssen lediglich die normalen algorithmischen Schritte zum Berechnen oder Prüfen von Codewörtern ausgeführt werden. Der Schutz der Vertraulichkeit der Prüfsummen wird implizit erzielt. Damit ist das beschriebene Verfahren sehr effizient implementierbar.
Um beim erfindungsgemäßen Verfahren informationstheoretische Sicherheit zu erreichen, ist es ausreichend, wenn die Entro- pie der eingefügten zufälligen Symbole größer oder gleich der Entropie der damit berechneten Prüfsummen ist. Damit wird eine höhere Sicherheit als bei semantischen Verschlüsselungsverfahren erreicht.
Das Verfahren erfordert lediglich, dass ausgewählte Bereiche vor Berechnung der Prüfsummen mit zufälligen Werten beschrieben werden. Dieser Schritt kann beispielsweise bei der Initialisierung eines mit dem Codierverfahren ausgestatteten Gera- tes erfolgen, zum Beispiel wenn zu schützende kryptographi- sche Schlüssel aufgespielt werden. Insbesondere sind keine zusätzlichen Programmteile für eine Ver- oder Entschlüsselungsfunktion oder Fallunterscheidungen zur Behandlung der zu schützenden Daten nötig. Es sind dabei weder vor- beziehungsweise nachgelagerte Rechenoperationen nötig, noch müssen die Codier- beziehungsweise Decodierroutinen modifiziert werden.
Die Fig. 4 zeigt ein Blockdiagramm einer beispielhaften Vor- richtung, die sich zur Durchführung des Codierverfahrens eignet. Dabei weist die Vorrichtung 1 eine Steuereinheit 2 auf, welche das jeweilige Datenwort Dl, beispielsweise an einer externen Schnittstelle, entgegennimmt. Die Vorrichtung zum Codieren 1 weist darüber hinaus eine Prüfsummenerzeugungsein- heit 3, eine Zufallssymbolerzeugungseinheit 4 sowie Speichereinrichtungen 5 und 6 auf. Die Steuereinheit 2 ist über beispielsweise einen geeigneten Datenbus mit der Prüfsummen- berechnungseinheit 3 der Zufallssymbolerzeugungseinheit 4 und den Speichereinrichtungen 5, 6 gekoppelt.
Die Steuereinheit 2 koordiniert das jeweilige Erzeugen der Prüfsummen und Zufallssymbole, sowie das Abspeichern in die verschiedenen Speicherbereiche. Dabei ist beispielsweise die Speichereinrichtung 5 als herkömmlicher, nicht zugriffsge- schützter Speicher ausgeführt. Der zweite Speicher 6 kann zum Beispiel als Teil einer Chipkarte, die mit Bezugszeichen 7 dargestellt ist, ausgeführt werden. Die Chipkarte 7, welche den zugriffsgeschützten Speicher 6 aufweist, kann zum Beispiel in einen Einschub der Codiervorrichtung 1 eingeführt werden.
Die Codiervorrichtung 1 mit ihren jeweiligen Elementen 2, 3, 4, 5, 6 kann auch Computerimplementiert ausgeführt sein, wobei die einzelnen Blöcke 2, 3, 4, 5, 6 als jeweilige Pro- grammteile aufgefasst werden. Im Betrieb der Codiervorrichtung 1 werden die zuvor beschriebenen Verfahrensschritte beispielsweise von der Steuereinheit 2 koordiniert ausgeführt. Im Ergebnis liegen in den Speicherbereichen 5 und 6 codierte Daten, deren Vertraulichkeit gewährleistet werden kann, vor.
Um einen größeren Speicherbereich gegen Fehler zu schützen, wird üblicherweise der jeweilige Speicherbereich in Teilstücke mit einer ausgewählten Länge aufgeteilt, und zu jedem Teilstück wird die zugehörige Prüfsumme berechnet und abgespeichert. Enthält ein Teilstück nun Dateninhalte, deren Vertraulichkeit besonders geschützt werden muss, wie beispiels- weise einen kryptographischen Schlüssel, so genügt es zur Implementierung des erfindungsgemäßen Verfahrens, wenn vor und/oder hinter den Daten, deren Vertraulichkeit geschützt werden soll, ein Speicherbereich mit zufälligen Daten eingefügt wird. Dies ist in der Figur 5 illustriert.
Dabei sind Datenworte D1-D3, Kl, D4, K2 und D5 dargestellt. Die Datenworte Kl und K2 weisen beispielsweise besonders sicherheitsrelevante kryptographische Schlüssel auf. Die in der Fig. 5 beispielhaft dargestellten Datenworte können auch als Datenbereiche aufgefasst werden, in denen jeweils mehrere Datenworte vorgesehen sind. Die Bereiche Kl und K2 sind dabei als besonders zu schützende Daten anzusehen.
In der Fig. 5 ist beispielhaft anhand des Bereiches Kl, wel- eher zu schützen ist, das Hinzufügen von Zufallsdaten ZDl illustriert. Durch ein Hinzufügen der Zufallsdatensymbole ZDl ergibt sich bei einer sonst üblichen Codierung beispielsweise mittels eines BCH-, CRC- oder RS-Codes, ein Codewort sowie eine entsprechende Prüfsumme. Bei dem Codiervorgang werden als zu codierendes Datenwort auch die Zufallsdatensymbole er- fasst. Aufgrund der zugefügten Zufallsdaten beziehungsweise der Randomisierung in Teilen des zu codierenden Datenwortes können die Prüfsumme und die sich ergebenden codierten Nutzdaten getrennt abgespeichert werden, wobei selbst in Kenntnis der Prüfsumme keinerlei Gefahr besteht, die Vertraulichkeit der codierten Daten zu verletzen. Selbstverständlich können auch mehrere Bereiche mit zusätzlichen randomisierten Daten vorgesehen werden. Zum Schutz des Bereiches K2 muss dieser auf entsprechende Weise durch Hinzufügen von Zufallsdatensymbolen erweitert werden.
Überlappt der besonders zu schützende Bereich mehrere Code- Wörter, so müssen in allen betroffenen Codewörtern Speicherbereiche mit zufälligen Daten geeigneter Länge eingefügt werden .
Obwohl die vorliegende Erfindung anhand bevorzugter Ausfüh- rungsformen näher erläutert wurde, ist sie nicht darauf beschränkt, sondern vielfältig modifizierbar. Insbesondere sind die genannten Codierverfahren, welche Prüfsummen erzeugen, lediglich beispielhaft und nicht abschließend zu verstehen. Auch die genannten Beispiele für zu verwendende geschützte und nicht geschützte Speicherbereiche sind nicht abschließend aufgeführt .

Claims

Patentansprüche
1. Verfahren zum Codieren eines Datenwortes (Dl) mit einer vorgegebenen Anzahl von Zufallsdatensymbolen (ZD) und einer vorgegebenen Anzahl von Nutzdatensymbole (ND) , wobei zu dem Datenwort (Dl) eine Prüfsumme mit einer vorgegebene Anzahl von Prüfsymbolen (PS) berechnet wird und die Anzahl der Zufallsdatensymbole (ZD) mindestens der Anzahl der Prüfsymbole (PS) der Prüfsumme entspricht.
2. Verfahren nach Anspruch 1, wobei die Prüfsumme nach einem Verfahren zur Berechnung von Prüfsummen fehlerkorrigierender und/oder fehlererkennender Codes, insbesondere nach einem BCH-, Reed-Solomon-, CRC- oder Hamming-Code, berechnet wird.
3. Verfahren nach Anspruch 1 oder 2, wobei eine Funktion zur Berechung der Prüfsumme verwendet wird, welche für jede beliebig vorgegebene Belegung der Nutz- datensymbole (ND) eine injektive Abbildung der Zufallsdatensymbole (ZD) auf die PrüfSymbole (PS) ist.
4. Verfahren nach einem der Ansprüche 1 - 3, wobei vorgegebene Stellen des Datenwortes (Dl) mit den Zu- fallsdatensymbolen (ZD) beschrieben werden.
5. Verfahren nach einem der Ansprüche 1 - 4, wobei bei einer Änderung der Nutzdatensymbole (ND) die Zufallsdatensymbole (ZD) erneut erzeugt werden.
6. Verfahren nach einem der Ansprüche 1 - 5, wobei die Nutzdatensymbole (ND) und Zufallsdatensymbole (ZD) in einem zugriffsgeschützten Speicherbereich (6) abgespeichert werden.
7. Verfahren nach einem der Ansprüche 1 - 6, wobei die Prüfsymbole (PS) in einem nichtgeschützten Speicherbereich (6) abgespeichert werden.
8. Verfahren nach einem der Ansprüche 1 - 7, wobei die Symbole Datenbits oder Datenbytes sind.
9. Verfahren nach einem der Ansprüche 1 - 8, wobei die Nutzdatensymbole (ND) in einem zusammenhängenden Speicherbereich gespeichert werden und in mindestens einem angrenzenden Speicherbereich Zufallsdatensymbole (ZD) gespeichert werden.
10. Vorrichtung (1) zur Codierung von Datenworten (Dl) mit einer Steuereinheit (2) , welche derart eingerichtete ist, dass ein Verfahren nach einem der Ansprüche 1 - 9 durchgeführt wird.
11. Vorrichtung (1) nach Anspruch 10, wobei eine Zufallsymbolerzeugungseinheit (4) vorgesehen ist, welche Zufallsdatensymbole (ZD) erzeugt.
12. Vorrichtung (1) nach Anspruch 10 oder 11, wobei eine PrüfSummenberechnungseinheit (3) vorgesehen ist, welche die Prüfsumme eines jeweiligen Datenwortes (Dl) berechnet .
13. Vorrichtung (1) nach einem der Ansprüche 10 - 12, wobei eine Speichereinrichtung (5, 6) vorgesehen ist, welche die Zufallsdatensymbole (ZD) , Prüfsymbole (PF) und/oder Nutzdatensymbole (ND) in Speicherbereichen abspeichert.
14. Vorrichtung nach einem der Ansprüche 10 - 13, wobei für die Zufallsdatensymbole (ZF) und die Nutzdatensymbole (ND) ein zugriffsgeschützter Speicherbereich vorgesehen ist.
15. Computerprogrammprodukt, welches die Durchführung eines
Verfahrens nach einem der Ansprüche 1 - 9 auf einer programmgesteuerten Rechnereinrichtung veranlasst.
PCT/EP2008/061732 2007-09-10 2008-09-05 Verfahren und vorrichtung zum codieren von datenworten WO2009034019A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US12/677,410 US20100194609A1 (en) 2007-09-10 2008-09-05 Method and Device For Coding Data Words
EP08803702A EP2191408A1 (de) 2007-09-10 2008-09-05 Verfahren und vorrichtung zum codieren von datenworten
RU2010114221/08A RU2485584C2 (ru) 2007-09-10 2008-09-05 Способ и устройство для кодирования слов данных

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102007043083A DE102007043083A1 (de) 2007-09-10 2007-09-10 Verfahren und Vorrichtung zum Codieren von Datenworten
DE102007043083.5 2007-09-10

Publications (1)

Publication Number Publication Date
WO2009034019A1 true WO2009034019A1 (de) 2009-03-19

Family

ID=40042960

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2008/061732 WO2009034019A1 (de) 2007-09-10 2008-09-05 Verfahren und vorrichtung zum codieren von datenworten

Country Status (5)

Country Link
US (1) US20100194609A1 (de)
EP (1) EP2191408A1 (de)
DE (1) DE102007043083A1 (de)
RU (1) RU2485584C2 (de)
WO (1) WO2009034019A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102011016974A1 (de) * 2011-04-13 2012-11-15 Continental Automotive Gmbh Verfahren zum Speichern einer sicherheitsrelevanten Dateneinheit
DE102011078645A1 (de) * 2011-07-05 2013-01-10 Robert Bosch Gmbh Verfahren zum sicheren Prüfen eines Codes
RU2584755C2 (ru) * 2014-08-12 2016-05-20 Юрий Владимирович Косолапов Способ защиты доступности и конфиденциальности хранимых данных и система настраиваемой защиты хранимых данных
RU2681704C1 (ru) * 2018-04-09 2019-03-12 Публичное акционерное общество "Ракетно-космическая корпорация "Энергия" имени С.П. Королёва" Способ кодирования и декодирования блокового кода
FR3094107B1 (fr) * 2019-03-21 2021-02-26 Commissariat Energie Atomique Procédé d'exécution d'un code binaire d'une fonction sécurisée par un microprocesseur
FR3095869B1 (fr) * 2019-05-09 2021-04-09 Commissariat Energie Atomique Procédé d'exécution d'un code binaire d'une fonction sécurisée par un microprocesseur
KR20210128240A (ko) * 2020-04-16 2021-10-26 에스케이하이닉스 주식회사 컨트롤러 및 이의 동작 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002011361A2 (en) * 2000-08-02 2002-02-07 Vidicast Ltd. Data encryption and decryption using error correction methodologies
WO2005052795A1 (en) * 2003-11-28 2005-06-09 Koninklijke Philips Electronics N.V. Method and means for securing or verifying respectively a program that can be executed in a data processing unit
WO2005091108A1 (en) * 2004-03-19 2005-09-29 Nokia Corporation Secure mode controlled memory
WO2007094857A1 (en) * 2006-02-09 2007-08-23 Thomson Licensing Method and apparatus for securing digital content

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
HU223894B1 (hu) * 1997-12-29 2005-03-29 Koninklijke Philips Electronics N.V. Eljárás többszavas információ kódolására szószerű összesorolás és hibavédelem alkalmazásával, eljárás az ilyen információ dekódolására, eszköz az ilyen információ kódolására és/vagy dekódolására és az abban lévő adathordozó
GB9814960D0 (en) * 1998-07-10 1998-09-09 Koninkl Philips Electronics Nv Coding device and communication system using the same
US6732325B1 (en) * 2000-11-08 2004-05-04 Digeo, Inc. Error-correction with limited working storage
JP4196770B2 (ja) * 2003-07-23 2008-12-17 ソニー株式会社 データ処理方法、データ検査方法
US7188296B1 (en) * 2003-10-30 2007-03-06 Sun Microsystems, Inc. ECC for component failures using Galois fields
US20050193198A1 (en) * 2004-01-27 2005-09-01 Jean-Michel Livowsky System, method and apparatus for electronic authentication
DE102004045000A1 (de) * 2004-09-16 2006-03-30 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Sender zum Senden von Informationsdaten und Empfänger zum Empfangen von Informationsdaten
US7818570B2 (en) * 2005-10-31 2010-10-19 Ntt Docomo, Inc. Exclusive set system constructions including, but not limited to, applications to broadcast encryption and certificate revocation
US7805652B1 (en) * 2006-02-10 2010-09-28 Marvell International Ltd. Methods for generating and implementing quasi-cyclic irregular low-density parity check codes
US7545293B2 (en) * 2006-11-14 2009-06-09 Qualcomm Incorporated Memory efficient coding of variable length codes

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002011361A2 (en) * 2000-08-02 2002-02-07 Vidicast Ltd. Data encryption and decryption using error correction methodologies
WO2005052795A1 (en) * 2003-11-28 2005-06-09 Koninklijke Philips Electronics N.V. Method and means for securing or verifying respectively a program that can be executed in a data processing unit
WO2005091108A1 (en) * 2004-03-19 2005-09-29 Nokia Corporation Secure mode controlled memory
WO2007094857A1 (en) * 2006-02-09 2007-08-23 Thomson Licensing Method and apparatus for securing digital content

Also Published As

Publication number Publication date
US20100194609A1 (en) 2010-08-05
EP2191408A1 (de) 2010-06-02
RU2010114221A (ru) 2011-10-20
DE102007043083A1 (de) 2009-03-12
RU2485584C2 (ru) 2013-06-20

Similar Documents

Publication Publication Date Title
EP2191408A1 (de) Verfahren und vorrichtung zum codieren von datenworten
EP0965076A1 (de) Elektronische datenverarbeitungseinrichtung und -system
DE60127310T2 (de) Vorrichtung zum schutz digitaler daten
DE102012200197B4 (de) Vorrichtung und Verfahren zur Fehlerkorrektur und zum Schutz vor Datenverfälschung
DE10318031A1 (de) Verfahren zur Sicherstellung der Integrität und Authentizität von Flashware für Steuergeräte
DE102009041176A1 (de) Compiler-System und Verfahren zum Kompilieren eines Quellencodes zu einem verschlüsselten Maschinensprachcode
EP3552344B1 (de) Bidirektional verkettete blockchainstruktur
DE102005031611B4 (de) Nachweis einer Veränderung der Daten eines Datensatzes
EP2510475B1 (de) Hardware-einrichtung
EP0280035B1 (de) Verfahren zum Sichern von Programmen und zur Integritätskontrolle gesicherter Programme
EP1590731A2 (de) Modulare exponentiation mit randomisierten exponenten
DE102007026977A1 (de) Kryptographisches System und zugehöriges Betriebsverfahren, Fehlererkennungsschaltung und zugehöriges Betriebsverfahren und Computerprogrammprodukt
DE102004061312A1 (de) Vorrichtung und Verfahren zum Detektieren eines potentiellen Angriffs auf eine kryptographische Berechnung
WO2004114131A1 (de) Verfahren zum nachladen einer software in den bootsektor eines programmierbaren lesespeicher
EP2405317B1 (de) Verfahren zur sicheren Parametrierung eines Sicherheitsgeräts
EP3134845A1 (de) Verfahren und system zur erkennung einer manipulation von datensätzen
EP2122525A1 (de) Verfahren und vorrichtung zum gesicherten speichern und zum gesicherten lesen von nutzdaten
WO2006050973A1 (de) Vorrichtung und verfahren zum detektieren einer manipulation eines informationssignals
EP3804209B1 (de) Verfahren mit safe-error-abwehrmassnahme
EP1643405A1 (de) Manipulationsgeschütztes Mikroprozessorsystem und Betriebsverfahren dafür
EP0135888B1 (de) Verfahren zur Verhinderung des Ablaufs eines Programms auf für den Ablauf dieses Programms nicht zugelassenen Rechnern
DE10324507A1 (de) Verfahren zum Laden von Daten in eine Speichereinrichtung
EP3798873A1 (de) Verfahren zum schützen einer computer-implementierten anwendung vor manipulation
EP3251281B1 (de) Intrinsische authentifizierung von programcode
DE102004030602A1 (de) Paralleler Datenbus

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08803702

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2008803702

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 12677410

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2010114221

Country of ref document: RU