EP1817711A1 - Device and method for testing and establishing test values - Google Patents

Device and method for testing and establishing test values

Info

Publication number
EP1817711A1
EP1817711A1 EP05787389A EP05787389A EP1817711A1 EP 1817711 A1 EP1817711 A1 EP 1817711A1 EP 05787389 A EP05787389 A EP 05787389A EP 05787389 A EP05787389 A EP 05787389A EP 1817711 A1 EP1817711 A1 EP 1817711A1
Authority
EP
European Patent Office
Prior art keywords
values
test
value
check
partial
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.)
Ceased
Application number
EP05787389A
Other languages
German (de)
French (fr)
Inventor
Stefan Kraegeloh
Joerg Pickel
Ralph Kulessa
Patrick Aichroth
Kurt Michael Krauss
Jens Hasselbach
Stefan Puchta
Marc Gayer
Harald Popp
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.)
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Original Assignee
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
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 Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV filed Critical Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Publication of EP1817711A1 publication Critical patent/EP1817711A1/en
Ceased legal-status Critical Current

Links

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S40/00Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
    • Y04S40/20Information technology specific aspects, e.g. CAD, simulation, modelling, system security

Definitions

  • the present invention relates to an apparatus and a method for checking a data volume by means of test values and to a device and a method for determining a comparison test value for a data volume, which may be, for example, a computer file.
  • the amount of data is very large, even if the data is in kompri ⁇ mated form.
  • a typical MP3 coded song generates a data volume of 1 MB per minute of playing time.
  • hash algorithm In order to check the integrity of a file, for example by means of a hash algorithm, the hash algorithm is usually calculated over the entire file and then the result, ie the hash value, is compared with a reference value. Such an integrity check of a data record by a cryptographic hash method is described below.
  • Cryptographic hash values are also called test surranes.
  • Hash methods calculate from an input of indeterminate length defined and clearly a specific output value, the so-called hash. For example, the hash value is a 20-byte string.
  • the type of hash function is to specify a unique output value for any input value from which the input value can not be recalculated.
  • the complete amount of data to be used to calculate the hash value is first processed using the hash algorithm, so that the hash of the data set is formed. For later integrity checks, the data set to be tested is completely reworked using the hash algorithm. If the data quantity to be tested supplies the same hash as in the reference run, it may be assumed that no changes were made to the data set.
  • the main task of hash functions is to check and ensure the integrity of digital data.
  • the application cases range from checksum calculations to signature procedures. That is, the hash is either used directly as a checksum or in addition, signed representative of the original amount of data. For integrity checking, the direct use of the hash value is used as the checksum.
  • hash functions can essentially be defined by the following three points. On the one hand, every hash value must occur the same number of times. This means that the probability of hash values must not differ for different input values. Furthermore, small changes in the input value should lead to a changed hash value. Furthermore, the effort to generate collisions should be very high. This means that It should be as difficult as possible to find a second input value with the same hash value for a given input value.
  • a hash function fulfilling all three requirements is called a cryptographic hash function.
  • SHA-I Secure Hash Algorithm
  • MD4 MD5
  • SHA-I five 32-bit variables, so-called chain variables and the so-called compression function play an important role.
  • the hash function SHA-I first divides the input value into 512-bit blocks.
  • the compression function then picks up the five chain variables and a five 512-bit block and maps them to the next five 32-bit values.
  • the function now runs in four rounds for every 20 identical operations in which the individual bits are shifted according to predefined arithmetic operations. Finally, the contents of the five chain variables are output as a hash value.
  • hash integrity checking techniques Use of hash integrity checking techniques is described, for example, in the specification "Open Mobile Aliance; OMA DRM Specification V2.0; Draft Version 2.0 - ' 10th April 2004. Further test methods are described, for example, in the specification "Internet Streaming Media Alliance, Encryption and Authentication Specification, Version 1.0, February 2004".
  • the integrity check of a dataset is not an end in itself. Rather, the integrity check is only preceded by the actual use of the data record. The effort for the integrity check is therefore disadvantageous when using a data set since the integration an additional expenditure, which causes additional costs and delays the use of the data set.
  • the high level of effort involved is of particular importance because it is always the entire data set that has to be checked before it can be said whether the integrity of the data record is given. This has an especially noticeable effect on very large data sets and can, for example, lead to start delays in the playback of audio data or video data in the case of audio and video files.
  • Another major disadvantage is due to the high energy consumption, which arises from the necessity that always first the entire data set must be checked. This is necessary even if only part of the data is to be used. For example, even with a brief start or fast forward or rewinding of a DRM-protected audio piece or video piece on a portable playback device, a check of the entire audio piece or video piece is first required. In portable devices in particular, this results in a shortening of the battery life.
  • a device for checking a data quantity according to claim 1 a device for determining a test value according to claim 10
  • a method for checking a data amount according to claim 15 a method for determining a test value according to claim 16 and a computer program solved according to claim 17.
  • the present invention provides a device for checking a dataset, wherein the dataset has a plurality of subsets and a sub-test value per subset, with the following features:
  • a device for determining a test value which is designed to determine a common test value from the provided partial test values of the subsets;
  • comparison device which is designed to compare the common test value with a comparison test value provided to the comparison device.
  • the present invention further provides a device for determining a comparison test value from a data quantity which has a plurality of subsets, with the following characteristics:
  • the present invention is based on the finding that a partial or partial integrity check of a data record results in a reduction of the effort required for the integrity check or for the generation of the test value.
  • test values are formed over subsets of the data record.
  • the test values of these subsets are stored either in the data record or separately.
  • an additional test value is formed over the partial test values. This is advantageous because, to verify the integrity of the data set, the partial test values may first be tested against the additional test values. Subsequently, the individual subareas can be checked with the aid of the checksums assigned to the individual subareas.
  • the possibility of checking the integrity in sections results in a number of advantages.
  • the use of data can already take place if only the first section of the data record and not the entire data record has yet been checked. For example, can begin ei ⁇ nes audio / video piece with virtually no time lag 'be ⁇ so playback.
  • a data set can optionally also be used only partially without the entire data set having to be checked. For example, when fast-forwarding and rewinding within an audio / video piece or jumping within the piece, a section-wise review is advantageous. The section-by-section check eliminates the need to check sections that are not required. This saves time and resources.
  • the actual use of the data can be carried out in sections in parallel with the integrity check.
  • a piece of data only needs to be loaded once from a disk to first check the integrity of the piece and then process it immediately. This leads to time, resource and energy savings.
  • the check can also be downstream. This is possible if it is acceptable that individual pieces of the file can already be used without verification. In this case, for example, the first piece or another piece of a music file is used and tested parallel to that of use. This has the advantage that the data to be checked during the execution are checked. Furthermore, the data to be used only needs to be fetched once from the hard disk. If the check is successful, the next piece is released for processing. Otherwise, the processing stops after the currently running piece.
  • the approach according to the invention makes it possible to quickly pre-check a data record by pre-checking the test values of the sub-sections of a data record. This allows, for example, a quick overview of a large number of data records. The actual verification of the data records themselves by means of the test values then takes place only after the test values have been checked.
  • further intermediate test values can be formed from the partial test values of the individual subsets. From the intermediate test values, the number of which is smaller than the number of partial test values, a common test value is again formed.
  • the DCF format is in "Open Mobile Alliance; DRM Content Format V2.0; Draft Verison 2.0 - 20 April 2004 "and is used for encrypted audio / video data in the MPEG-4 data format.
  • FIG. 1 is a block diagram of an apparatus for checking a data amount according to an embodiment of the present invention.
  • FIG. 2 shows a block diagram of a device for determining a test value according to a further exemplary embodiment of the present invention.
  • FIG. 1 shows a schematic representation of a device for checking a data volume, which has a device 102 for determining a test value, a comparison device 103 and a device 104 for using the data volume.
  • the device for checking a data amount is designed to check the amount of data before use by means of partial test values and a comparison test value.
  • the part check values and the comparison check value are provided to the device for checking a data amount along with the data amount.
  • the device 102 for determining a test value is formed to receive a data amount 112.
  • the data set 112 is subdivided into a plurality of subsets (not shown in the figures). For each of the subsets of the data set 112, a partial check value 114 was calculated.
  • the partial test values 114 are also provided to the device 102 for determining a test value.
  • a comparison check value 118 was formed from the partial check values 114, which is also provided to the device for checking a data volume.
  • the partial test values 114 and the comparative test value 118 were determined, for example, in the apparatus shown in FIG. 2 for determining a test value from the data quantity and buffer-stored together with the data quantity.
  • the device 102 for determining a test value is designed to calculate a common test value 116 from the partial test values 114 and to provide it to the comparator 103.
  • the comparison device 103 is also designed to receive a comparison test value 118.
  • the comparison check value 118 was also formed from the partial check values 114. The same calculation function was used to form the comparison test value 118 and the common test value 116.
  • the comparison device 103 is designed to compare the common test value 116 with the comparison test value 118. According to this exemplary embodiment, the comparison device 103 is designed to provide a comparison signal 120 to the device 102 for determining a test value depending on the comparison result between the common test value 116 and the comparison test value 118.
  • the comparison signal 120 indicates whether the comparison test value 118 coincides with the common test value 116. If the common test value 116 and the comparison test value 118 agree, it can be assumed that the partial test values 114 from which the common test value 116 was formed have not changed since the comparison test value 118 was formed.
  • the device 102 for determining a test value is designed to calculate a first further partial test value 122 from a first subset of the data quantity 112 in the case of a comparison signal 120 indicating a match of the comparison value 118 and the common test value 116 and to the comparator 103.
  • the comparison device 103 is likewise designed to receive the partial test values 114.
  • the comparison device 103 is designed to compare the further partial test value 122 with the corresponding partial test value 114, which was formed from the same subset as the further partial test value 122.
  • the comparison device 103 is designed to provide a test result 124 to the device for using the data volume.
  • the test result 124 indicates whether the partial test value 114 matches or does not match the associated further partial test value 122.
  • the further partial test value 122 was formed from the associated subset according to the same algorithm as the partial test value 114. Thus, if the partial test value 114 matches the further partial test value 122, it can be assumed that the partial data quantity is the further partial test value 122 has been calculated since the calculation of the associated partial test value 114 has not been changed.
  • the means 104 for using the amount of data is designed to be used in a test result 124 which has a conformity Mood of the sub-test value 114 with the further sub-test value 122 indicates to use the subset of the data set 112 for which the further sub-test value 122 has been formed and compared in the comparison device 103.
  • the device 102 may be designed to determine a test value in order to determine the further partial test values 122 of the subset of the data amount 112 in parallel as a consequence of the comparison signal 120 and to provide them to the comparison device 103. Furthermore, the device 102 may be designed to determine a test value in order to already generate the further partial test values 122 before the common test value 116 has been compared with the comparison testers 118.
  • the partial test values 114 can be provided separately to the data set 112 to the device 102 for determining a test value. Alternatively, the partial test values 114 may be integrated in the data set 112. Likewise, the compare check value 118 may be provided along with the dataset 112 to the device for checking a dataset.
  • the device 102 can be designed to determine a test value. to already form the further partial check values 122 of the already received subsets. In this case, the common check value 116 is not determined until the partial check values 114 have been received by the check value determining means 114.
  • the device 104 for using the data set can be configured to already use the data set 112 or subsets of the data set 112 before a check result 124 has been received.
  • the device may 104 to use the amount of data to interrupt use of the amount of data when atician ⁇ result 124 is received that a mismatch of a partial test value 114 with another partial test value 122 or a mismatch of the common strigwer ⁇ tes 116 with the comparison check value 118 indicates.
  • FIG. 2 shows a schematic representation of a device for determining a test value according to an exemplary embodiment of the present invention.
  • the device for determining a test value is designed to provide partial test values 114 and a comparison test value 118 which can be used by the device for checking a data quantity shown in FIG. 1 in order to check an integrity of the data volume.
  • the device for determining a test value has a device 206 for determining a partial test value, a device 207 for determining the comparison test value and a device 208 for incorporation.
  • the device for determining a test value is designed to receive a data amount 112.
  • the data set 112 has a plurality of subsets.
  • the device 206 for determining a partial test value is designed to form partial test values 114 from the partial quantities of the received data quantity 112 and to provide them to the device 207 for determining the comparison test value.
  • the means 207 for determining the comparison test value are thus provided a partial test value 114 for each subset of the data set 112.
  • the partial test values 114 are determined by the means 206 for determining a partial test value from the subsets according to a predetermined determination algorithm.
  • means 206 for determining a sub-check value may comprise a means for subdividing the data set (not shown in the figures) in the plurality of Operamen ⁇ gene.
  • the means 207 for determining the comparison check value is designed to determine and provide the comparison check value 118 in accordance with a predetermined determination rule from the partial check values 114.
  • both the partial test values 114 and the comparison test value 118 are stored or made available for further processing.
  • the partial test values 114 are provided to the device 208 for incorporation.
  • the means 208 for incorporation is designed to receive the data set 112, to integrate the partial check values 114 into the data set 112 and to provide them as a data set 212 with partial check values.
  • the sub-test values 114 are interleaved by the means 208 for incorporation into the dataset 112 such that they are, if possible, evenly distributed in the dataset 212.
  • the partial test values 114 in the data set 212 can be arranged together at a predetermined location.
  • a storage of the partial test values 114 at a defined location of the data set 212 has the advantage that in a subsequent test of the data quantity 212, the partial test values can first be read out and compared with the comparison test value 118.
  • the partial check values 114 can be stored separately from the data set 112. Likewise, the same check value 118 was ⁇ integrated into the data set 112 or also be stored separately.
  • the check values are determined by means of cryptographic hash functions.
  • the integrity of a large file for example a song in MP3 format, is checked in sections by means of a hash algorithm, a hash value or a check "on the fly" are divided into sections, such as chunks or access units in MPEG-4 encoded audio data corresponding to the subsets.
  • the hashing in the device for determining a test value is effected by a separate hashing of the individual subsections. Subsequently, the hash values determined from the sections are stored in a table, which, for. B. is stored together with the data. A new hash is formed via this table of hash values and is used as an actual hash, the so-called master hash. The hash values correspond to the partial test values and the master hash to the comparison test value.
  • the division into sections is carried out in sections of suitable or desired size. In this case, a compromise is formed between granularity and additionally required storage effort for the additional hash values.
  • the hash values of the sections are stored in one or more tables. The formation of a hash value via the table or the tables with the partial hash values takes place below. The master hash can then be stored externally and is the reference against which will be checked later.
  • the first step is to pre-check the table of hashes with the master hash, ie a hash is calculated via the table or the tables with the partial hash values. net and compared to the master hash. Subsequently, using the hash values from the table, an examination of the individual subsections follows. This is done by using the partial hash values from the table to individually examine the sections of the file. The examination of the subsections thus follows in this exemplary embodiment after there is an equality between the master hash and the hash which was calculated using the partial hash values. In this way, already tested sections can already be used while others have not yet been tested.
  • a table of partial hash values becomes too large.
  • multiple hash tables can be used hierarchically. This means that the first table contains hash values, which in turn are used as master hashes for child tables.
  • a sequential list can be created. This means that the last hash value in a table is the master hash for the next table, and so on.
  • the DCF object is decomposed into a desired number of sections, the so-called chunks, whereby in each case one or more access units are combined.
  • a chunk table with this information is inserted into the DCF object.
  • Each of the chunks has a hash calculated using the hash algorithm SHA-1. From all computed hashes a table is formed, and this Ta ⁇ beauty inserted as MPEG-4 atom in the DCF object.
  • the hash values table is used to form the master hash, which is stored externally by the DCF object as reference value.
  • An integrity check is performed by exposing the MPEG-4 Atom to the table of hash values from the DCF object. will be. Then, hash values are calculated across the table and compared to the master hash. If equal, the use of the DCF object can be continued, otherwise the DCF object is rejected as being changed. If the use of the DCF object continues, then the desired chunk from the DCF object is searched for next and a processing of this chunk takes place, for example its reproduction during a simultaneous check of the hash in this chunk. The simultaneous check of the hash of the corresponding chunk is called "on the fly", and if the hash value of the chunk matches the corresponding value in the hash table, another chunk can be processed the further processing is rejected because of modification of the DCF object.
  • test values or checksums of any kind can be formed.
  • a parity calculation can be carried out.
  • the approach according to the invention can be used for all applications in which a verification of the integrity of data is required. Such applications may be, for example, computer systems or digital message transmission systems.
  • the test values can be generated and stored when the data is stored. In a subsequent readout and use of the data, the test values are also read out and used to check the data.
  • transmission systems the test values can be calculated directly before transmission of the data and subsequently transmitted together with the data and evaluated in the receiver.
  • the data is subdivided into subsets.
  • the subsets can be independent or overlap.
  • the subsets can be independently decodable or syntactically analyzable.
  • the device for checking a data volume may be part of an encoder and the device for determining a test value may be part of a decoder.
  • the inventive method for checking a data volume as well as the method according to the invention for determining a test value can be implemented in hardware or in software.
  • the implementation can be carried out on a digital storage medium, in particular a floppy disk or CD with electronically readable control signals, which can cooperate with a programmable computer system such that the corresponding method is executed.
  • the invention thus also consists in a computer program product with a program code stored on a machine-readable carrier for carrying out the method according to the invention, when the computer program product runs on a computer.
  • the invention can thus be realized as a computer program with a program code for carrying out the method when the computer program runs on a computer.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Testing And Monitoring For Control Systems (AREA)

Abstract

The invention relates to a device for testing a dataset (112), said data set (112) having a plurality of subsets and one partial test value (114) per subset. The inventive device comprises a facility (102) for establishing a test value and a comparative facility (103). The facility (102) for establishing a test value is adapted to establish, based on the partial test values (114) of the subsets, a common test value (116). The comparative facility (103) is adapted to compare the common test value (116) with a comparative value (118) provided to the comparative facility (103).

Description

Vorrichtungen und Verfahren zum Prüfen und Ermitteln von Apparatus and methods for testing and determining
Prüfwertentest values
Beschreibungdescription
Die vorliegende Erfindung bezieht sich auf eine Vorrichtung und ein Verfahren zum Prüfen einer Datenmenge mittels Prüf¬ werten und eine Vorrichtung und ein Verfahren zum Ermitteln eines Vergleichsprüfwertes für eine Datenmenge, bei der es sich beispielsweise um eine Computerdatei handeln kann.The present invention relates to an apparatus and a method for checking a data volume by means of test values and to a device and a method for determining a comparison test value for a data volume, which may be, for example, a computer file.
Für verschiedenste Anwendungsfälle, beispielsweise beim Di¬ gital Rights Management ist es erwünscht bzw. notwendig die Authentizität oder die Integrität einer Datei oder eines Bitstromes vor der Verwendung zu überprüfen. Bei der Über¬ prüfung einer Datenmenge auf Integrität kann es sich z. B. um zu überprüfende Bereiche im RAM oder ROM eines Computers oder einer Datei auf einem Massenspeicher handeln. Bei der Überprüfung können Manipulationen an den Daten aufgedeckt werden oder es können Speicher bzw. Schreibfehler erkannt werden, bevor die Daten weiter verarbeitet werden.For a very wide variety of applications, for example in digital rights management, it is desirable or necessary to check the authenticity or the integrity of a file or of a bit stream before use. When verifying a data amount for integrity, it may be z. For example, to check areas in the RAM or ROM of a computer or file on a mass storage device. Verification may reveal data manipulation or memory or typing errors before the data is processed further.
Insbesondere bei Audioanwendungen oder Videoanwendungen ist die Datenmenge sehr groß, selbst wenn die Daten in kompri¬ mierter Form vorliegen. Beispielsweise erzeugt ein typi¬ scher MP3 codierter Song eine Datenmenge von 1 MB pro Minu- te Spielzeit auf.Especially in audio applications or video applications, the amount of data is very large, even if the data is in kompri¬ mated form. For example, a typical MP3 coded song generates a data volume of 1 MB per minute of playing time.
Um die Integrität einer Datei beispielsweise mittels einem Hash-Algorithmus zu überprüfen, wird üblicherweise der Hash-Algorithmus über das komplette File gerechnet und an- schließend das Ergebnis, also der Hash-Wert mit einem Refe¬ renzwert verglichen. Eine solche Integritätsprüfung eines Datensatzes durch ein kryptografisches Hash-Verfahren wird im Folgenden beschrie¬ ben. Dabei werden kryptografische Hash-Werte auch als Prüf- surrane bezeichnet. Hash-Verfahren berechnen aus einem Einga- bewert unbestimmter Länge definiert und eindeutig einen be¬ stimmten Ausgabewert, den so genannten Hash. Der Hash-Wert ist beispielsweise eine 20 Byte lange Zeichenkette. Die Ei¬ genart der Hash-Funktion besteht darin, zu jedem beliebigen Eingabewert einen eindeutig zugeordneten Ausgabewert zu bestimmen, aus dem sich der Eingabewert nicht zurückrechnen lässt.In order to check the integrity of a file, for example by means of a hash algorithm, the hash algorithm is usually calculated over the entire file and then the result, ie the hash value, is compared with a reference value. Such an integrity check of a data record by a cryptographic hash method is described below. Cryptographic hash values are also called test surranes. Hash methods calculate from an input of indeterminate length defined and clearly a specific output value, the so-called hash. For example, the hash value is a 20-byte string. The type of hash function is to specify a unique output value for any input value from which the input value can not be recalculated.
Die komplette Datenmenge, über die der Hash-Wert berechnet werden soll, wird zunächst mit dem Hash-Algorithmus bear- beitet, sodass der Hash der Datenmenge gebildet wird. Zur späteren Integritätsprüfung wird die zu testende Datenmenge wieder komplett mit dem Hash-Algorithmus überarbeitet. Lie¬ fert die zu testende Datenmenge denselben Hash wie beim Re¬ ferenzdurchlauf, so darf angenommen werden, dass keine Ver- änderungen am Datensatz vorgenommen wurden.The complete amount of data to be used to calculate the hash value is first processed using the hash algorithm, so that the hash of the data set is formed. For later integrity checks, the data set to be tested is completely reworked using the hash algorithm. If the data quantity to be tested supplies the same hash as in the reference run, it may be assumed that no changes were made to the data set.
Die Hauptaufgabe von Hash-Funktionen ist eine Prüfung und Sicherstellung der Integrität von digitalen Daten. Die An¬ wendungsfälle reichen dabei von Prüfsummenberechnungen bis hin zu Signaturverfahren. Das heißt, der Hash wird entweder direkt als Prüfsumme verwendet oder zusätzlich noch, stell¬ vertretend für die ursprüngliche Datenmenge signiert. Zur Integritätsprüfung wird die direkte Verwendung des Hash- Wertes als Prüfsumme eingesetzt.The main task of hash functions is to check and ensure the integrity of digital data. The application cases range from checksum calculations to signature procedures. That is, the hash is either used directly as a checksum or in addition, signed representative of the original amount of data. For integrity checking, the direct use of the hash value is used as the checksum.
Die Anforderungen an Hash-Funktionen lassen sich im Wesent¬ lichen auf die folgenden drei Punkte festlegen. Zum einen muss jeder Hash-Wert gleich oft vorkommen. Dies bedeutet, dass die Wahrscheinlichkeit von Hash-Werten sich bei ver- schiedenen Eingabewerten nicht unterscheiden darf. Des wei¬ teren sollen kleine Änderungen des Eingabewertes zu einem geänderte Hash-Wert führen. Ferner soll der Aufwand, um Kollisionen zu erzeugen sehr hoch sein. Dies bedeutet, dass es möglichst schwer sein soll, zu einem gegebenen Eingabe¬ wert einen zweiten Eingabewert mit dem gleichen Hash-Wert zu finden. Eine Hash-Funktion die alle drei genannten An¬ forderungen erfüllt, wird als kryptografische Hash-Funktion bezeichnet.The requirements for hash functions can essentially be defined by the following three points. On the one hand, every hash value must occur the same number of times. This means that the probability of hash values must not differ for different input values. Furthermore, small changes in the input value should lead to a changed hash value. Furthermore, the effort to generate collisions should be very high. This means that It should be as difficult as possible to find a second input value with the same hash value for a given input value. A hash function fulfilling all three requirements is called a cryptographic hash function.
Zu den wichtigsten kryptografischen Hash-Funktionen zählen SHA-I, MD4, MD5 sowie RIPE-MD-160. Die derzeit wichtigste kryptografische Hash-Funktion SHA-I (SHA; SHA = Secure Hash Algorithm) verarbeitet Blöcke der Länge 512 Bit und gene¬ riert dabei Hash-Werte der Länge 160 Bit. Für den SHA-I spielen fünf 32-Bit-Variablen, so genannte Kettenvariablen sowie die so genannte Kompressionsfunktion eine wichtige Rolle.Key cryptographic hash functions include SHA-I, MD4, MD5, and RIPE-MD-160. The most important cryptographic hash function SHA-I (SHA = Secure Hash Algorithm) processes blocks of length 512 bits and thereby generates hash values of length 160 bits. For the SHA-I, five 32-bit variables, so-called chain variables and the so-called compression function play an important role.
Bei der Hash-Funktion SHA-I wird zuerst der Eingabewert in Blöcke der Länge 512 Bit aufgeteilt. Anschließend nimmt die Kompressionsfunktion die fünf Kettenvariablen sowie einen fünf 512 Bit-Block auf und bildet diese auf die nächsten fünf 32-Bit-Werte ab. Die Funktion läuft nun in vier Runden zu je 20 identischen Operationen ab, bei denen die einzel¬ nen Bits nach vordefinierten Rechenoperationen verschoben werden. Abschließend wird der Inhalt der fünf Kettenvariab¬ len als Hash-Wert ausgegeben.The hash function SHA-I first divides the input value into 512-bit blocks. The compression function then picks up the five chain variables and a five 512-bit block and maps them to the next five 32-bit values. The function now runs in four rounds for every 20 identical operations in which the individual bits are shifted according to predefined arithmetic operations. Finally, the contents of the five chain variables are output as a hash value.
Eine Verwendung von Hash-Verfahren zur Integritätsprüfung wird beispielsweise in der Spezifikation „Open Mobil AlIi- ance; OMA DRM Specification V2.0; Draft Version 2.0 -'10. April 2004" beschrieben. Weitere Prüfverfahren sind bei- spielsweise in der Spezifikation „Internet Streaming Media Alliance, Encryption and Authentication Specification, Ver¬ sion 1.0, Februar 2004" beschrieben.Use of hash integrity checking techniques is described, for example, in the specification "Open Mobile Aliance; OMA DRM Specification V2.0; Draft Version 2.0 - ' 10th April 2004. Further test methods are described, for example, in the specification "Internet Streaming Media Alliance, Encryption and Authentication Specification, Version 1.0, February 2004".
Für gewöhnlich ist die Integritätsprüfung eines Datensatzes kein Selbstzweck. Vielmehr wird die Integritätsprüfung der eigentlichen Verwendung des Datensatzes nur vorgeschaltet. Der Aufwand für die Integritätsprüfung ist daher bei der Verwendung eines Datensatzes von Nachteil, da die Integri- tätsprüfung mit einem Zusatzaufwand verbunden ist, der Zu¬ satzkosten verursacht und die Verwendung des Datensatzes verzögert.Usually, the integrity check of a dataset is not an end in itself. Rather, the integrity check is only preceded by the actual use of the data record. The effort for the integrity check is therefore disadvantageous when using a data set since the integration an additional expenditure, which causes additional costs and delays the use of the data set.
Insbesondere der hohe Aufwand an Zeit für die Integritäts¬ prüfung und der benötigte Ressourceneinsatz, insbesondere die Rechenleistung zur Ausführung der PrüfSummenberechnung ist von großem Nachteil. Der erforderliche hohe Aufwand fällt insbesondere deshalb ins Gewicht, da immer erst der ganze Datensatz geprüft werden muss, bevor eine Aussage darüber getroffen werden kann, ob die Integrität des Daten¬ satzes gegeben ist. Dies wirkt sich insbesondere bei sehr großen Datensätzen aus und kann beispielsweise bei Audio- und Videodateien durch Startverzögerungen bei der Wiederga- be von Audiodaten bzw. Videodaten führen.In particular, the high expenditure of time for the integrity check and the required use of resources, in particular the computing power for executing the checksum calculation, is a great disadvantage. The high level of effort involved is of particular importance because it is always the entire data set that has to be checked before it can be said whether the integrity of the data record is given. This has an especially noticeable effect on very large data sets and can, for example, lead to start delays in the playback of audio data or video data in the case of audio and video files.
Ein weiterer wesentlicher Nachteil liegt im hohen Energie¬ verbrauch begründet, der durch die Notwendigkeit entsteht, dass immer erst der ganze Datensatz geprüft werden muss. Dies ist auch dann nötig, wenn vielleicht nur ein Teil der Daten verwendet werden soll. So ist beispielsweise auch bei einem kurzen Anspielen oder Vorspulen bzw. Zurückspulen ei¬ nes DRM-geschützten Audio-Stücks oder Video-Stücks auf ei¬ nem tragbaren Abspielgerät zuerst eine Prüfung des gesamten Audiostücks bzw. Videostücks erforderlich. Insbesondere bei tragbaren Geräten hat dies eine Verkürzung der Batteriele¬ bensdauer zur Folge.Another major disadvantage is due to the high energy consumption, which arises from the necessity that always first the entire data set must be checked. This is necessary even if only part of the data is to be used. For example, even with a brief start or fast forward or rewinding of a DRM-protected audio piece or video piece on a portable playback device, a check of the entire audio piece or video piece is first required. In portable devices in particular, this results in a shortening of the battery life.
Ein weiterer Nachteil liegt darin begründet, dass keine Aussage über einen Datensatz möglich ist, so lange nur ein Teil der Daten vorliegt. Dies ist nachteilhaft, da bei ei¬ nem negativen Ausgang des Tests die eigentliche Bearbeitung meist entfallen kann oder muss.Another disadvantage lies in the fact that no statement about a data record is possible as long as only part of the data is available. This is disadvantageous since the actual processing can or must be omitted in the case of a negative outcome of the test.
Ferner ist es nachteilhaft, dass eine teilweise Nutzung der Daten denselben Prüfaufwand erfordert wie eine vollständige Nutzung der Daten. Es entstehen auch dann Startverzögerun¬ gen, wenn Audio/Video-Stücke nur kurz angespielt werden o- der innerhalb eines Stückes vor- oder zurückgespult werden sollen.Furthermore, it is disadvantageous that a partial use of the data requires the same inspection effort as a complete use of the data. Start delays occur even if audio / video pieces are only briefly played. to be rewound or rewound within one track.
Es ist die Aufgabe der vorliegenden Erfindung, eine Vor- richtung und ein Verfahren zum Prüfen einer Datenmenge so¬ wie eine Vorrichtung und ein Verfahren zum Ermitteln eines Prüfwerts zu schaffen, die eine Beschleunigung eines Prüf¬ vorganges bei verringertem Aufwand ermöglichen.It is the object of the present invention to provide a device and a method for checking a data volume as well as a device and a method for determining a test value, which enable an acceleration of a test procedure with reduced expenditure.
Diese Aufgabe wird durch eine Vorrichtung zum Prüfen einer Datenmenge gemäß Anspruch 1, eine Vorrichtung zum Ermitteln eines Prüfwerts gemäß Anspruch 10, ein Verfahren zum Prüfen einer Datenmenge gemäß Anspruch 15, ein Verfahren zum Er¬ mitteln eines Prüfwert gemäß Anspruch 16 sowie ein Compu- terprogramm gemäß Anspruch 17 gelöst.This object is achieved by a device for checking a data quantity according to claim 1, a device for determining a test value according to claim 10, a method for checking a data amount according to claim 15, a method for determining a test value according to claim 16 and a computer program solved according to claim 17.
Die vorliegende Erfindung schafft eine Vorrichtung zum Prüfen einer Datenmenge, wobei die Datenmenge eine Mehrzahl von Teilmengen und pro Teilmenge einen Teil-Prüfwert auf- weist, mit folgenden Merkmalen:The present invention provides a device for checking a dataset, wherein the dataset has a plurality of subsets and a sub-test value per subset, with the following features:
einer Einrichtung zum Bestimmen eines Prüfwertes, die aus¬ gebildet ist, um einen gemeinsamen Prüfwert aus den bereit¬ gestellten Teil-Prüfwerten der Teilmengen zu bestimmen; unda device for determining a test value, which is designed to determine a common test value from the provided partial test values of the subsets; and
einer Vergleichseinrichtung die ausgebildet ist, um den ge¬ meinsamen Prüfwert mit einem an die Vergleichseinrichtung bereitgestellten Vergleichs-Prüfwert zu vergleichen.a comparison device which is designed to compare the common test value with a comparison test value provided to the comparison device.
Die vorliegende Erfindung schafft ferner eine Vorrichtung zum Ermitteln eines Vergleichs-Prüfwertes aus einer Daten¬ menge, die eine Mehrzahl von Teilmengen aufweist, mit fol¬ genden Merkmalen:The present invention further provides a device for determining a comparison test value from a data quantity which has a plurality of subsets, with the following characteristics:
einer Einrichtung zum Bestimmen eines Teil-Prüfwertes pro Teilmenge; und einer Einrichtung zum Bestimmen des Vergleichs-Prüfwertes aus den Teil-Prüfwerten der Teilmengen.means for determining a partial check value per subset; and means for determining the comparison check value from the partial check values of the subsets.
Der vorliegenden Erfindung liegt die Erkenntnis zugrunde, dass eine abschnittsweise oder teilweise Integritätsprüfung eines Datensatzes eine Reduzierung des, für die Integri¬ tätsprüfung bzw. für die Erstellung des Prüfwertes erfor¬ derlichen Aufwands zur Folge hat.The present invention is based on the finding that a partial or partial integrity check of a data record results in a reduction of the effort required for the integrity check or for the generation of the test value.
Gemäß dem erfindungsgemäßen Ansatz wird kein Prüfwert über den gesamten Datensatz gebildet, sondern es werden Prüfwer¬ te über Teilmengen des Datensatzes gebildet. Die Prüfwerte dieser Teilmengen werden entweder in dem Datensatz oder ge¬ trennt gespeichert. Außerdem wird ein zusätzlicher Prüfwert über die Teil-Prüfwerte gebildet. Dies ist vorteilhaft, da zur Überprüfung der Integrität des Datensatzes zuerst die Teil-Prüfwerte gegen die zusätzlichen Prüfwerte geprüft werden können. Anschließend können die einzelnen Teilberei¬ che mit Hilfe der, zu den einzelnen Teilbereichen zugeord- neten Prüfsummen überprüft werden.According to the approach according to the invention, no test value is formed over the entire data record, but test values are formed over subsets of the data record. The test values of these subsets are stored either in the data record or separately. In addition, an additional test value is formed over the partial test values. This is advantageous because, to verify the integrity of the data set, the partial test values may first be tested against the additional test values. Subsequently, the individual subareas can be checked with the aid of the checksums assigned to the individual subareas.
Durch die Möglichkeit, die Integrität gemäß dem erfindungs¬ gemäßen Ansatz abschnittsweise zu prüfen, ergeben sich eine Reihe von Vorteilen. Insbesondere kann die Nutzung von Da- ten bereits erfolgen, wenn lediglich erst der erste Ab¬ schnitt des Datensatzes und noch nicht der gesamte Daten¬ satz geprüft ist. Beispielsweise kann so das Abspielen ei¬ nes Audio/Videostückes praktisch ohne Zeitverzögerung ' be¬ ginnen. Ferner kann ein Datensatz wahlweise auch nur zum Teil verwendet werden, ohne dass der gesamte Datensatz ü- berprüft werden muss. Beispielsweise bei schnellem Vor- und Zurückspulen innerhalb eines Audio/Videostückes oder einem Springen innerhalb des Stückes ist eine abschnittsweise Ü- berprüfung vorteilhaft. Durch die abschnittsweise Überprü- fung entfällt die Prüfung nicht benötigter Abschnitte. Es werden somit Zeit und Ressourcen eingespart. Gemäß einem weiteren Ausführungsbeispiel kann die eigentli¬ che Nutzung der Daten abschnittsweise parallel mit der In¬ tegritätsprüfung erfolgen. Dadurch muss ein Datenabschnitt beispielsweise nur einmal von einer Platte geladen werden um dann erst die Integrität des Abschnitts zu prüfen und ihn dann sofort zu verarbeiten. Dies führt zu Zeit- Ressourcen- und Energieeinsparungen.The possibility of checking the integrity in sections according to the inventive approach results in a number of advantages. In particular, the use of data can already take place if only the first section of the data record and not the entire data record has yet been checked. For example, can begin ei¬ nes audio / video piece with virtually no time lag 'be¬ so playback. Furthermore, a data set can optionally also be used only partially without the entire data set having to be checked. For example, when fast-forwarding and rewinding within an audio / video piece or jumping within the piece, a section-wise review is advantageous. The section-by-section check eliminates the need to check sections that are not required. This saves time and resources. According to a further embodiment, the actual use of the data can be carried out in sections in parallel with the integrity check. As a result, for example, a piece of data only needs to be loaded once from a disk to first check the integrity of the piece and then process it immediately. This leads to time, resource and energy savings.
Gemäß einem weiteren Ausführungsbeispiel kann die Überprü- fung auch nachgelagert werden. Dies ist dann möglich, wenn es akzeptabel ist, dass einzelne Stücke der Datei bereits ohne Prüfung verwendet werden können. Dabei wird beispiels¬ weise das erste Stück oder ein weiteres Stück einer Musik¬ datei verwendet und parallel zu der der Verwendung geprüft. Dies hat den Vorteil, dass die zu überprüfenden Daten wäh¬ rend der Ausführung überprüft werden. Ferner müssen die zu verwendenden Daten nur einmal von der Festplatte geholt werden. Ist die Prüfung erfolgreich, wird das nächste Stück zur Verarbeitung freigegeben. Andernfalls stoppt die Verar- beitung nach dem gerade ausgeführten Stück.According to a further embodiment, the check can also be downstream. This is possible if it is acceptable that individual pieces of the file can already be used without verification. In this case, for example, the first piece or another piece of a music file is used and tested parallel to that of use. This has the advantage that the data to be checked during the execution are checked. Furthermore, the data to be used only needs to be fetched once from the hard disk. If the check is successful, the next piece is released for processing. Otherwise, the processing stops after the currently running piece.
Ferner ermöglicht der erfindungsgemäße Ansatz eine schnelle Vorprüfung eines Datensatzes, indem die Prüfwerte der Teil¬ abschnitte eines Datensatzes vorgeprüft werden. Dadurch kann beispielsweise ein schneller Überblick über eine große Anzahl an Datensätzen erfolgen. Die eigentliche Überprüfung der Datensätze selbst mittels der Prüfwerte erfolgt dann erst nach der Überprüfung der Prüfwerte.Furthermore, the approach according to the invention makes it possible to quickly pre-check a data record by pre-checking the test values of the sub-sections of a data record. This allows, for example, a quick overview of a large number of data records. The actual verification of the data records themselves by means of the test values then takes place only after the test values have been checked.
Gemäß einem weiteren Ausführungsbeispiel können aus den Teil-Prüfwerten der einzelnen Teilmengen weitere Zwischen- Prüfwerte gebildet werden. Aus den Zwischen-Prüfwerten, de¬ ren Anzahl kleiner ist als die Anzahl der Teil-Prüfwerte wird wiederum ein gemeinsamer Prüfwert gebildet. Dies hat den Vorteil, dass bei einer großen Anzahl von Teilmengen eine schnelle Vorprüfung erfolgen kann, indem der gemeinsa¬ me Prüfwert mit einem, aus den Zwischen-Prüfwerten ermit¬ telten Prüfwert verglichen wird. Erst danach werden die Teil-Prüfwerte gegen die zughörigen Zwischen-Prüfwerte ge¬ prüft. Die Ermittlung des gemeinsamen Prüfwertes aus den Zwischen-Prüfwerten ist mit erheblich weniger Aufwand ver¬ bunden als wenn sofort ein gemeinsamer Prüfwert aus den Teil-Prüfwerten berechnet werden muss.According to a further embodiment, further intermediate test values can be formed from the partial test values of the individual subsets. From the intermediate test values, the number of which is smaller than the number of partial test values, a common test value is again formed. This has the advantage that, in the case of a large number of subsets, a quick preliminary check can be carried out by comparing the common test value with a test value determined from the intermediate test values. Only then will the Partial test values are checked against the associated intermediate test values. The determination of the common test value from the intermediate test values is associated with considerably less effort than if a common test value from the test part values has to be calculated immediately.
Vorteilhafterweise kann der erfindungsgemäße Ansatz vor¬ teilhaft in Verbidung mit dem DCF-Format (DCF; DCF = DRM Content Format) eingesetzt werden. Das DCF-Format ist in „Open Mobile Alliance; DRM Content Format V2.0; Draft Ver¬ sion 2.0 - 20. April 2004" beschrieben und wird für ver¬ schlüsselte Audio/Video-Daten im MPEG-4-Daten-Format einge¬ setzt.Advantageously, the approach according to the invention can advantageously be used in conjunction with the DCF format (DCF = DRM Content Format). The DCF format is in "Open Mobile Alliance; DRM Content Format V2.0; Draft Verison 2.0 - 20 April 2004 "and is used for encrypted audio / video data in the MPEG-4 data format.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:Preferred embodiments of the present invention will be explained in more detail below with reference to the accompanying drawings. Show it:
Fig. 1 ein Blockschaltbild einer Vorrichtung zum Prüfen einer Datenmenge gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; und1 is a block diagram of an apparatus for checking a data amount according to an embodiment of the present invention; and
Fig. 2 ein Blockschaltbild einer Vorrichtung zum Ermit¬ teln eines Prüfwerts gemäß einem weiteren Ausfüh- rungsbeispiel der vorliegenden Erfindung.2 shows a block diagram of a device for determining a test value according to a further exemplary embodiment of the present invention.
In der nachfolgenden Beschreibung der bevorzugten Ausfüh¬ rungsbeispiele der vorliegenden Erfindung werden für die in den verschiedenen Zeichnungen dargestellten und ähnlich wirkenden Elemente gleiche oder ähnliche Bezugszeichen ver¬ wendet, wobei eine wiederholte Beschreibung dieser Elemente weggelassen wird.In the following description of the preferred embodiments of the present invention, the same or similar reference numerals are used for the elements shown in the various drawings and having a similar effect, with a repeated description of these elements being omitted.
Fig. 1 zeigt eine schematische Darstellung einer Vorrich- tung zum Prüfen einer Datenmenge, die eine Einrichtung 102 zum Bestimmen eines Prüfwertes, eine Vergleichseinrichtung 103 und eine Einrichtung 104 zum Verwenden der Datenmenge aufweist. Die Vorrichtung zum Prüfen einer Datenmenge ist ausgebildet, um die Datenmenge vor einer Verwendung mittels Teil-Prüfwerten und eines Vergleichsprüfwertes zu überprü¬ fen. Die Teil-Prüfwerte und der Vergleichsprüfwert werden zusammen mit der Datenmenge an die Vorrichtung zum Prüfen einer Datenmenge bereitgestellt.1 shows a schematic representation of a device for checking a data volume, which has a device 102 for determining a test value, a comparison device 103 and a device 104 for using the data volume. The device for checking a data amount is designed to check the amount of data before use by means of partial test values and a comparison test value. The part check values and the comparison check value are provided to the device for checking a data amount along with the data amount.
Die Einrichtung 102 zum Bestimmen eines Prüfwertes ist aus¬ gebildet um eine Datenmenge 112 zu empfangen. Die Datenmen¬ ge 112 ist in eine Mehrzahl von Teilmengen (nicht gezeigt in den Figuren) unterteilt. Für jede der Teilmengen der Da¬ tenmenge 112 wurde ein Teil-Prüfwert 114 berechnet. Die Teil-Prüfwerte 114 werden ebenfalls an die Einrichtung 102 zum Bestimmen eines Prüfwertes bereitgestellt. Ferner wurde aus den Teil-Prüfwerten 114 ein Vergleichsprüfwert 118 ge- bildet, der ebenfalls an die Vorrichtung zum Prüfen einer Datenmenge bereitgestellt wird. Die Teil-Prüfwerte 114 so¬ wie der Vergleichsprüfwert 118 wurden beispielsweise in der in Fig. 2 gezeigten Vorrichtung zum Ermitteln eines Prüf- wertes aus der Datenmenge bestimmt und zusammen mit der Da- tenmenge zwischengespeichert.The device 102 for determining a test value is formed to receive a data amount 112. The data set 112 is subdivided into a plurality of subsets (not shown in the figures). For each of the subsets of the data set 112, a partial check value 114 was calculated. The partial test values 114 are also provided to the device 102 for determining a test value. Furthermore, a comparison check value 118 was formed from the partial check values 114, which is also provided to the device for checking a data volume. The partial test values 114 and the comparative test value 118 were determined, for example, in the apparatus shown in FIG. 2 for determining a test value from the data quantity and buffer-stored together with the data quantity.
Die Einrichtung 102 zum Bestimmen eines Prüfwertes ist aus¬ gebildet, um einen gemeinsamen Prüfwert 116 aus den Teil- Prüfwerten 114 zu berechnen und an die Vergleichseinrich- tung 103 bereitzustellen. Die Vergleichseinrichtung 103 ist ferner ausgebildet um einen Vergleichsprüfwert 118 zu emp¬ fangen. Der Vergleichsprüfwert 118 wurde ebenfalls aus den Teil-Prüfwerten 114 gebildet. Zur Bildung des Vergleichs¬ prüfwertes 118 sowie des gemeinsamen Prüfwertes 116 wurde die gleiche Berechnungsfunktion verwendet. Die Ver¬ gleichseinrichtung 103 ist ausgebildet um den gemeinsamen Prüfwert 116 mit dem Vergleichsprüfwert 118 zu vergleichen. Gemäß diesem Ausführungsbeispiel ist die Vergleichseinrich¬ tung 103 ausgebildet, um abhängig von dem Vergleichsergeb- nis zwischen dem gemeinsamen Prüfwert 116 und dem Ver¬ gleichsprüfwert 118 ein Vergleichssignal 120 an die Ein¬ richtung 102 zum Bestimmen eines Prüfwertes bereitzustel¬ len. Das Vergleichssignal 120 zeigt an, ob der Vergleichs- prüfwert 118 mit dem gemeinsamen Prüfwert 116 überein¬ stimmt. Bei einer Übereinstimmung des gemeinsamen Prüfwer¬ tes 116 und des Vergleichsprüfwertes 118 kann davon ausge¬ gangen werden, dass die Teil-Prüfwerte 114, aus denen der gemeinsame Prüfwert 116 gebildet wurde nicht verändert wur¬ den, seitdem der Vergleichsprüfwert 118 gebildet wurde.The device 102 for determining a test value is designed to calculate a common test value 116 from the partial test values 114 and to provide it to the comparator 103. The comparison device 103 is also designed to receive a comparison test value 118. The comparison check value 118 was also formed from the partial check values 114. The same calculation function was used to form the comparison test value 118 and the common test value 116. The comparison device 103 is designed to compare the common test value 116 with the comparison test value 118. According to this exemplary embodiment, the comparison device 103 is designed to provide a comparison signal 120 to the device 102 for determining a test value depending on the comparison result between the common test value 116 and the comparison test value 118. The comparison signal 120 indicates whether the comparison test value 118 coincides with the common test value 116. If the common test value 116 and the comparison test value 118 agree, it can be assumed that the partial test values 114 from which the common test value 116 was formed have not changed since the comparison test value 118 was formed.
Gemäß diesem Ausführungsbeispiel ist die Einrichtung 102 zum Bestimmen eines Prüfwertes ausgebildet, um bei einem Vergleichssignal 120, das eine Übereinstimmung des Ver¬ gleichsprüfwertes 118 und des gemeinsamen Prüfwertes 116 anzeigt, einen ersten weiteren Teil-Prüfwert 122 aus einer ersten Teilmenge der Datenmenge 112 zu berechnen und an die Vergleichseinrichtung 103 bereitzustellen. Die Ver- gleichseinrichtung 103 ist ebenfalls ausgebildet, um die Teil-Prüfwerte 114 zu empfangen. Ansprechend auf einen Emp¬ fang eines weiteren Teil-Prüfwertes 122 ist die Ver¬ gleichseinrichtung 103 ausgebildet, um den weiteren Teil- Prüfwert 122 mit dem entsprechenden Teil-Prüfwert 114 zu vergleichen, der aus derselben Teilmenge gebildet wurde, wie der weitere Teil-Prüfwert 122. Abhängig von dem Ver¬ gleich des Teil-Prüfwertes 114 mit dem weiteren Teil- Prüfwert 122 ist die Vergleichseinrichtung 103 ausgebildet, um ein Prüfergebnis 124 an die Einrichtung zum Verwenden der Datenmenge bereitzustellen. Das Prüfergebnis 124 zeigt an, ob der Teil-Prüfwert 114 mit dem zugehörigen weiteren Teil-Prüfwert 122 übereinstimmt oder nicht übereinstimmt. Der weitere Teil-Prüfwert 122 wurde aus der zugehörigen Teilmenge gemäß dem gleichen Algorithmus gebildet wie der Teil-Prüfwert 114. Damit kann bei einer Übereinstimmung des Teil-Prüfwertes 114 mit dem weiteren Teil-Prüfwert 122 da¬ von ausgegangen werden, dass die Teildatenmenge aus der der weitere Teil-Prüfwert 122 berechnet wurde seit der Berech¬ nung des zugehörigen Teil-Prüfwertes 114 nicht verändert wurde.According to this exemplary embodiment, the device 102 for determining a test value is designed to calculate a first further partial test value 122 from a first subset of the data quantity 112 in the case of a comparison signal 120 indicating a match of the comparison value 118 and the common test value 116 and to the comparator 103. The comparison device 103 is likewise designed to receive the partial test values 114. In response to a reception of a further partial test value 122, the comparison device 103 is designed to compare the further partial test value 122 with the corresponding partial test value 114, which was formed from the same subset as the further partial test value 122. Depending on the comparison of the partial test value 114 with the further partial test value 122, the comparison device 103 is designed to provide a test result 124 to the device for using the data volume. The test result 124 indicates whether the partial test value 114 matches or does not match the associated further partial test value 122. The further partial test value 122 was formed from the associated subset according to the same algorithm as the partial test value 114. Thus, if the partial test value 114 matches the further partial test value 122, it can be assumed that the partial data quantity is the further partial test value 122 has been calculated since the calculation of the associated partial test value 114 has not been changed.
Die Einrichtung 104 zum Verwenden der Datenmenge ist ausge¬ bildet, um bei einem Prüfergebnis 124, das eine Überein- Stimmung des Teil-Prüfwertes 114 mit dem weiteren Teil- Prüfwert 122 anzeigt, die Teilmenge der Datenmenge 112 zu verwenden, für die der weitere Teil-Prüfwert 122 gebildet und in der Vergleichseinrichtung 103 verglichen wurde.The means 104 for using the amount of data is designed to be used in a test result 124 which has a conformity Mood of the sub-test value 114 with the further sub-test value 122 indicates to use the subset of the data set 112 for which the further sub-test value 122 has been formed and compared in the comparison device 103.
Alternativ kann die Einrichtung 102 zum Bestimmen eines Prüfwertes ausgebildet sein, um als Folge des Vergleichs¬ signals 120 parallel die weiteren Teil-Prüfwerte 122 der Teilmenge der Datenmenge 112 zu ermitteln und an die Ver- gleichseinrichtung 103 bereitzustellen. Ferner kann die Einrichtung 102 zum Bestimmen eines Prüfwertes ausgebildet sein, um die weiteren Teil-Prüfwerte 122 bereits zu erstel¬ len bevor der gemeinsame Prüfwert 116 mit den Vergleichs¬ prüfern 118 verglichen wurde.Alternatively, the device 102 may be designed to determine a test value in order to determine the further partial test values 122 of the subset of the data amount 112 in parallel as a consequence of the comparison signal 120 and to provide them to the comparison device 103. Furthermore, the device 102 may be designed to determine a test value in order to already generate the further partial test values 122 before the common test value 116 has been compared with the comparison testers 118.
Die Teil-Prüfwerte 114 können separat zu der Datenmenge 112 an die Einrichtung 102 zum Bestimmen eines Prüfwertes be¬ reitgestellt werden. Alternativ können die Teil-Prüfwerte 114 in der Datenmenge 112 integriert sein. Ebenso kann der Vergleichsprüfwert 118 zusammen mit der Datenmenge 112 an die Vorrichtung zum Prüfen einer Datenmenge bereitgestellt werden.The partial test values 114 can be provided separately to the data set 112 to the device 102 for determining a test value. Alternatively, the partial test values 114 may be integrated in the data set 112. Likewise, the compare check value 118 may be provided along with the dataset 112 to the device for checking a dataset.
Werden die Teil-Prüfwerte 114 erst an die Vorrichtung zum Prüfen einer Datenmenge bereitgestellt, nachdem bereits ei¬ ne Teilmenge der Datenmenge 112 an die Einrichtung 102 zum Bestimmen eines Prüfwertes bereitgestellt wurde, so kann die Einrichtung 102 zum Bestimmen eines Prüfwertes ausge¬ bildet sein, um bereits die weiteren Teil-Prüfwerte 122 der bereits empfangenen Teilmengen zu bilden. In diesem Fall wird der gemeinsame Prüfwert 116 erst bestimmt, wenn die Teil-Prüfwerte 114 von der Einrichtung 102 zum Bestimmen eines Prüfwertes empfangen wurden.If the partial test values 114 are first provided to the device for checking a data quantity, after a subset of the data volume 112 has already been provided to the device 102 for determining a test value, the device 102 can be designed to determine a test value. to already form the further partial check values 122 of the already received subsets. In this case, the common check value 116 is not determined until the partial check values 114 have been received by the check value determining means 114.
Die Einrichtung 104 zum Verwenden der Datenmenge kann aus¬ gebildet sein, um die Datenmenge 112 oder Teilmengen der Datenmenge 112 bereits zu verwenden, bevor ein Prüfergebnis 124 empfangen wurde. In diesem Fall kann die Einrichtung 104 zum Verwenden der Datenmenge ausgebildet sein, um eine Verwendung der Datenmenge zu unterbrechen wenn ein Prüfer¬ gebnis 124 empfangen wird, das eine Nichtübereinstimmung eines Teil-Prüfwertes 114 mit einem weiteren Teil-Prüfwert 122 bzw. eine Nichtübereinstimmung des gemeinsamen Prüfwer¬ tes 116 mit dem Vergleichsprüfwert 118 anzeigt.The device 104 for using the data set can be configured to already use the data set 112 or subsets of the data set 112 before a check result 124 has been received. In this case, the device may 104 to use the amount of data to interrupt use of the amount of data when a Prüfer¬ result 124 is received that a mismatch of a partial test value 114 with another partial test value 122 or a mismatch of the common Prüfwer¬ tes 116 with the comparison check value 118 indicates.
Fig. 2 zeigt eine schematische Darstellung einer Vorrich¬ tung zum Ermitteln eines Prüfwertes gemäß einem Ausfüh- rungsbeispiel der vorliegenden Erfindung.FIG. 2 shows a schematic representation of a device for determining a test value according to an exemplary embodiment of the present invention.
Insbesondere ist die Vorrichtung zum Ermitteln eines Prüf¬ wertes ausgebildet, um Teilprüfwerte 114 und einen Ver¬ gleichsprüfwert 118 bereitzustellen, die von der in Fig. 1 gezeigten Vorrichtung zum Prüfen einer Datenmenge verwendet werden können, um eine Integrität der Datenmenge zu über¬ prüfen.In particular, the device for determining a test value is designed to provide partial test values 114 and a comparison test value 118 which can be used by the device for checking a data quantity shown in FIG. 1 in order to check an integrity of the data volume.
Die Vorrichtung zum Ermitteln eines Prüfwertes weist eine Einrichtung 206 zum Bestimmen eines Teil-Prüfwertes, eine Einrichtung 207 zum Bestimmen des Vergleichs-Prüfwertes und eine Einrichtung 208 zum Einbinden auf. Die Vorrichtung zum Ermitteln eines Prüfwertes ist ausgebildet um eine Daten¬ menge 112 zu empfangen. Die Datenmenge 112 weist eine Mehr- zahl von Teilmengen auf. Die Einrichtung 206 zum Bestimmen eines Teil-Prüfwertes ist ausgebildet, um aus den Teilmen¬ gen der empfangenen Datenmenge 112 Teilprüfwerte 114 zu bilden und an die Einrichtung 207 zum Bestimmen des Ver¬ gleichs-Prüfwertes bereitzustellen. Der Einrichtung 207 zum Bestimmen des Vergleichs-Prüfwertes werden somit für jede Teilmenge der Datenmenge 112 ein Te-il-Prüfwert 114 bereit¬ gestellt. Die Teil-Prüfwerte 114 werden von der Einrichtung 206 zum Bestimmen eines Teil-Prüfwertes aus den Teilmengen gemäß einem vorbestimmten Bestimmungsalgorithmus bestimmt.The device for determining a test value has a device 206 for determining a partial test value, a device 207 for determining the comparison test value and a device 208 for incorporation. The device for determining a test value is designed to receive a data amount 112. The data set 112 has a plurality of subsets. The device 206 for determining a partial test value is designed to form partial test values 114 from the partial quantities of the received data quantity 112 and to provide them to the device 207 for determining the comparison test value. The means 207 for determining the comparison test value are thus provided a partial test value 114 for each subset of the data set 112. The partial test values 114 are determined by the means 206 for determining a partial test value from the subsets according to a predetermined determination algorithm.
Ist die Datenmenge 112 nicht in Teilmengen unterteilt, so kann die Einrichtung 206 zum Bestimmen eines Teil- Prüfwertes eine Einrichtung zum Unterteilen der Datenmenge (nicht gezeigt in den Figuren) in die Mehrzahl von Teilmen¬ gen aufweisen.If the data set 112 is not subdivided into subsets, then means 206 for determining a sub-check value may comprise a means for subdividing the data set (not shown in the figures) in the plurality of Teilmen¬ gene.
Die Einrichtung 207 zum Bestimmen des Vergleichs-Prüfwertes ist ausgebildet, um den Vergleichsprüfwert 118 gemäß einer vorbestimmten Bestimmungsvorschrift aus den Teil-Prüfwerten 114 zu ermitteln und bereitzustellen.The means 207 for determining the comparison check value is designed to determine and provide the comparison check value 118 in accordance with a predetermined determination rule from the partial check values 114.
Sowohl die Teil-Prüfwerte 114 als auch der Vergleichs- Prüfwert 118 werden gespeichert bzw. zur Weiterverarbeitung bereitgestellt. Gemäß diesem Ausführungsbeispiel werden die Teil-Prüfwerte 114 an die Einrichtung 208 zum Einbinden be¬ reitgestellt. Die Einrichtung 208 zum Einbinden ist ausge¬ bildet, um die Datenmenge 112 zu empfangen, die Teil- Prüfwerte 114 in die Datenmenge 112 einzubinden und als Da¬ tenmenge 212 mit Teil-Prüfwerten bereitzustellen.Both the partial test values 114 and the comparison test value 118 are stored or made available for further processing. According to this exemplary embodiment, the partial test values 114 are provided to the device 208 for incorporation. The means 208 for incorporation is designed to receive the data set 112, to integrate the partial check values 114 into the data set 112 and to provide them as a data set 212 with partial check values.
Gemäß einem Ausführungsbeispiel werden die Teil-Prüfwerte 114 von der Einrichtung 208 zum Einbinden so in die Daten- menge 112 eingeflochten, dass sie nach Möglichkeit gleich verteilt in der Datenmenge 212 angeordnet sind. Alternativ können die Teil-Prüfwerte 114 in der Datenmenge 212 gemein¬ sam an einer vorbestimmten Stelle angeordnet sein.According to one embodiment, the sub-test values 114 are interleaved by the means 208 for incorporation into the dataset 112 such that they are, if possible, evenly distributed in the dataset 212. Alternatively, the partial test values 114 in the data set 212 can be arranged together at a predetermined location.
Sind die Teil-Prüfwerte 114 über die Datenmenge 212 ver¬ streut, so lässt sich durch eine Überprüfung der Teil- Prüfwerte mit hoher Wahrscheinlichkeit bereits feststellen, ob bei der Speicherung oder Weiterübertragung der Datenmen¬ ge 212 Fehler aufgetreten sind. Eine Speicherung der Teil- Prüfwerte 114 an einer festgelegten Stelle der Datenmenge 212 hat den Vorteil, dass bei einer nachfolgenden Prüfung der Datenmeng'e 212 zuerst die Teil-Prüfwerte ausgelesen werden können und gegen den Vergleichs-Prüfwert 118 vergli¬ chen werden können.If the partial test values 114 are scattered over the data quantity 212, a check of the partial test values can already determine with high probability whether errors have occurred during the storage or retransmission of the data quantity 212. A storage of the partial test values 114 at a defined location of the data set 212 has the advantage that in a subsequent test of the data quantity 212, the partial test values can first be read out and compared with the comparison test value 118.
Alternativ können die Teil-Prüfwerte 114 separat zu der Da¬ tenmenge 112 gespeichert werden. Ebenso kann der Ver- gleichs-Prüfwert 118 in die Datenmenge 112 integriert wer¬ den oder ebenfalls separat gespeichert werden.Alternatively, the partial check values 114 can be stored separately from the data set 112. Likewise, the the same check value 118 wer¬ integrated into the data set 112 or also be stored separately.
Gemäß einem Ausführungsbeispiel werden die Prüfwerte mit- tels kryptografischer Hash-Funktionen ermittelt. Gemäß die¬ sem Ausführungsbeispiel erfolgt eine abschnittsweise Prü¬ fung der Integrität eines großen Files, beispielsweise ei¬ nes Songs im MP3-Format mittels eines Hash-Algorithmus, ei¬ nes Hash-Wertes bzw. einer Prüfung „on the fIy" . Die Daten werden dabei in Abschnitte, beispielsweise Chunks oder Ac¬ cess Units bei MPEG-4-codierten Audio-Daten aufgeteilt, die den Teilmengen entsprechen.According to one embodiment, the check values are determined by means of cryptographic hash functions. According to this exemplary embodiment, the integrity of a large file, for example a song in MP3 format, is checked in sections by means of a hash algorithm, a hash value or a check "on the fly" are divided into sections, such as chunks or access units in MPEG-4 encoded audio data corresponding to the subsets.
Das Hashen in der Vorrichtung zum Ermitteln eines Prüfwerts erfolgt durch ein separates Hashen der einzelnen Teil- Abschnitte. Anschließend werden die aus den Abschnitten er¬ mittelten Hash-Werte in einer Tabelle gespeichert, die z. B. mit den Daten zusammen gespeichert wird. Ein neuer Hash wird über diese Tabelle der Hash-Werte gebildet und als ei- gentlicher Hash, dem so genannten Master-Hash verwendet. Die Hash-Werte entsprechen dabei den Teil-Prüfwerten und der Master-Hash dem Vergleichs-Prüfwert.The hashing in the device for determining a test value is effected by a separate hashing of the individual subsections. Subsequently, the hash values determined from the sections are stored in a table, which, for. B. is stored together with the data. A new hash is formed via this table of hash values and is used as an actual hash, the so-called master hash. The hash values correspond to the partial test values and the master hash to the comparison test value.
Das Aufteilen in Teilstücke erfolgt dabei in Teilstücke ge- eigneter bzw. gewünschter Größe. Dabei wird ein Kompromiss zwischen Granularität und zusätzlich nötigem Speicherauf¬ wand für die zusätzliche Hash-Werte gebildet. Nach dem Has¬ hen der Teilstücke erfolgt ein Abspeichern der Hash-Werte der Teilstücke in einer oder mehreren Tabellen. Die Bildung eines Hash-Wertes über die Tabelle bzw. die Tabellen mit den Teil-Hash-Werten erfolgt nachfolgend. Der Master-Hash kann dann extern gespeichert werden und ist die Referenz gegen die später geprüft wird.The division into sections is carried out in sections of suitable or desired size. In this case, a compromise is formed between granularity and additionally required storage effort for the additional hash values. After the hashes of the sections, the hash values of the sections are stored in one or more tables. The formation of a hash value via the table or the tables with the partial hash values takes place below. The master hash can then be stored externally and is the reference against which will be checked later.
Zur Prüfung des Hash in der Vorrichtung zum Prüfen einer Datenmenge erfolgt zunächst eine Vorprüfung der Tabelle der Hashes mit dem Master-Hash, d. h. es wird ein Hash über die Tabelle bzw. die Tabellen mit den Teil-Hash-Werten berech- net und mit dem Master-Hash verglichen. Anschließend er¬ folgt unter Verwendung der Hash-Werte aus der Tabelle eine Prüfung der einzelnen Teilabschnitte. Dazu werden die Teil- Hash-Werte aus der Tabelle verwendet, um die Teilstücke der Datei einzeln zu prüfen. Die Prüfung der Teilabschnitte er¬ folgt in diesem Ausführungsbeispiel somit nachdem eine Gleichheit zwischen dem Master-Hash und dem Hash besteht, der über die Teil-Hash-Werte berechnet wurde. Auf diese Weise können bereits geprüfte Abschnitte schon benutzt wer- den, während andere noch nicht geprüft sind.To check the hash in the device for checking a data set, the first step is to pre-check the table of hashes with the master hash, ie a hash is calculated via the table or the tables with the partial hash values. net and compared to the master hash. Subsequently, using the hash values from the table, an examination of the individual subsections follows. This is done by using the partial hash values from the table to individually examine the sections of the file. The examination of the subsections thus follows in this exemplary embodiment after there is an equality between the master hash and the hash which was calculated using the partial hash values. In this way, already tested sections can already be used while others have not yet been tested.
Gemäß einem weiteren Ausführungsbeispiel werden so viele Teilstücke gebildet, dass eine Tabelle mit Teil-Hash-Werten zu groß wird. In diesem Fall können mehrere Hash-Tabellen hierarchisch verwendet werden. Dies bedeutet dass die erste Tabelle Hash-Werte enthält, die wiederum als Master-Hashes für untergeordnete Tabellen verwendet werden. Als Spezial- fall hiervon kann eine sequenzielle Liste angelegt werden. Dies bedeutet dass der letzte Hash-Wert in einer Tabelle der Master-Hash für die nächste Tabelle, usw. ist.According to another embodiment, so many pieces are formed that a table of partial hash values becomes too large. In this case, multiple hash tables can be used hierarchically. This means that the first table contains hash values, which in turn are used as master hashes for child tables. As a special case, a sequential list can be created. This means that the last hash value in a table is the master hash for the next table, and so on.
Gemäß einem weiteren Ausführungsbeispiel wird die Hash- Tabelle und der Master-Hash für gemäß dem DCF (DCF; DCF = DRM Content Format) verschlüsselte Objekte beschrieben, die meistens verschlüsselte Audio/Video-Daten im MPEG-4-Daten- Format enthalten. Das DCF-Objekt wird in eine gewünschte Anzahl von Teilstücken, den so genannten Chunks zerlegt, wobei jeweils ein oder mehrere Access Units zusammengefasst werden. Eine Chunk-Tabelle mit diesen Informationen wird in das DCF-Objekt eingefügt. Über die Chunks wird jeweils ein Hash mit dem Hash-Algorithmus SHA--1 gerechnet. Aus allen errechneten Hashes wird eine Tabelle gebildet und diese Ta¬ belle als MPEG-4 Atom in das DCF-Objekt eingefügt. Über die Tabelle der Hash-Werte wird der Master-Hash gebildet der extern vom DCF-Objekt als Referenzwert gespeichert wird.According to a further embodiment, the hash table and the master hash are described for objects coded according to the DCF (DCF = DRM Content Format), which mostly contain encrypted audio / video data in the MPEG-4 data format. The DCF object is decomposed into a desired number of sections, the so-called chunks, whereby in each case one or more access units are combined. A chunk table with this information is inserted into the DCF object. Each of the chunks has a hash calculated using the hash algorithm SHA-1. From all computed hashes a table is formed, and this Ta ¬ beauty inserted as MPEG-4 atom in the DCF object. The hash values table is used to form the master hash, which is stored externally by the DCF object as reference value.
Eine Prüfung der Integrität erfolgt indem das MPEG-4 Atom mit der Tabelle der Hash-Werte aus dem DCF-Objekt ausgele- sen wird. Anschließend werden Hash-Werte über die Tabelle berechnet und mit dem Master-Hash verglichen. Bei Gleich¬ heit kann mit der Verwendung des DCF-Objekts fortgefahren werden, andernfalls wird das DCF-Objekt als verändert abge- lehnt. Wird mit der Verwendung des DCF-Objekts weitergefah¬ ren, so wird als nächstes der gewünschte Chunk aus dem DCF- Objekt gesucht und es erfolgt eine Bearbeitung dieses Chunks, beispielsweise seine Wiedergabe bei einer gleich¬ zeitigen Prüfung des Hashes in dieses Chunks. Die gleich- zeitige Prüfung des Hashes des zugehörigen Chunks wird als Prüfung „on the fly" bezeichnet. Stimmt der Hash-Wert des Chunks mit dem entsprechenden Wert aus der Hash-Tabelle ü- berein, kann ein weiterer Chunk verarbeitet werden. Andern¬ falls wird die weitere Verarbeitung wegen Modifikation des DCF-Objekts abgelehnt.An integrity check is performed by exposing the MPEG-4 Atom to the table of hash values from the DCF object. will be. Then, hash values are calculated across the table and compared to the master hash. If equal, the use of the DCF object can be continued, otherwise the DCF object is rejected as being changed. If the use of the DCF object continues, then the desired chunk from the DCF object is searched for next and a processing of this chunk takes place, for example its reproduction during a simultaneous check of the hash in this chunk. The simultaneous check of the hash of the corresponding chunk is called "on the fly", and if the hash value of the chunk matches the corresponding value in the hash table, another chunk can be processed the further processing is rejected because of modification of the DCF object.
Auch wenn in der vorangegangenen Beschreibung eine Berech¬ nung der Prüfwerte mittels Hash-Algorithmen beschrieben wurde, so ist klar, dass der erfindungsgemäße Ansatz nicht auf Hash-Funktionen beschränkt ist, sondern dass Prüfwerte oder Prüfsummen beliebiger Art gebildet werden können. Bei¬ spielsweise kann eine Parity-Berechnung durchgeführt wer¬ den. Ferner kann der erfindungsgemäße Ansatz für alle An¬ wendungen eingesetzt werden, bei denen eine Überprüfung der Integrität von Daten erforderlich ist. Bei solchen Anwen¬ dungen kann es sich beispielsweise um Computer-Systeme oder um digitale Nachrichtenübertragungssysteme handeln. Bei Computer-Systemen können beispielsweise die Prüfwerte bei einer Abspeicherung der Daten erzeugt und mitgespeichert werden. Bei einem nachfolgendem Auslesen und Verwenden der Daten werden die Prüfwerte mit ausgelesen und zur Überprü¬ fung der Daten verwendet. Bei Übertragungssystemen können die Prüfwerte direkt vor einer Übertragung der Daten be¬ rechnet und anschließend zusammen mit den Daten übertragen werden und im Empfänger ausgewertet werden. Dadurch kann sichergestellt werden, dass die Daten korrekt übertragen wurden. Zur abschnittsweisen Integritätsprüfung von digitalen In¬ formationen werden die Daten in Teilmengen unterteilt. Die Teilmengen können dabei unabhängig voneinander sein oder sich überschneiden. Insbesondere können die Teilmengen un- abhängig voneinander decodierbar bzw. syntaktisch analy¬ sierbar sein. Die Vorrichtung zum Prüfen einer Datenmenge kann Teil eines Encoders und die Vorrichtung zum Ermitteln eines Prüfwerts Teil eines Decoders sein.Although in the preceding description a calculation of the test values was described by means of hash algorithms, it is clear that the inventive approach is not limited to hash functions, but that test values or checksums of any kind can be formed. For example, a parity calculation can be carried out. Furthermore, the approach according to the invention can be used for all applications in which a verification of the integrity of data is required. Such applications may be, for example, computer systems or digital message transmission systems. In computer systems, for example, the test values can be generated and stored when the data is stored. In a subsequent readout and use of the data, the test values are also read out and used to check the data. In transmission systems, the test values can be calculated directly before transmission of the data and subsequently transmitted together with the data and evaluated in the receiver. This can ensure that the data has been transferred correctly. For the partial integrity check of digital information, the data is subdivided into subsets. The subsets can be independent or overlap. In particular, the subsets can be independently decodable or syntactically analyzable. The device for checking a data volume may be part of an encoder and the device for determining a test value may be part of a decoder.
Abhängig von den Gegebenheiten kann das erfindungsgemäße Verfahren zum Prüfen einer Datenmenge sowie das erfindungs¬ gemäße Verfahren zum Ermitteln eines Prüfwerts in Hardware oder in Software implementiert werden. Die Implementation kann auf einem digitalen Speichermedium, insbesondere einer Diskette oder CD mit elektronisch auslesbaren Steuersigna¬ len erfolgen, die so mit einem programmierbaren Computer¬ system zusammenwirken können, dass das entsprechende Ver¬ fahren ausgeführt wird. Allgemein besteht die Erfindung so¬ mit auch in einem Computer-Programm-Produkt mit einem auf einem maschinenlesbaren Träger gespeicherten Programmcode zur Durchführung des erfindungsgemäßen Verfahrens, wenn das Computer-Programm-Produkt auf einem Rechner abläuft. In an¬ deren Worten ausgedrückt kann die Erfindung somit als ein Computer-Programm mit einem Programmcode zur Durchführung des Verfahrens realisiert werden, wenn das Computer- Programm auf einem Computer abläuft. Depending on the circumstances, the inventive method for checking a data volume as well as the method according to the invention for determining a test value can be implemented in hardware or in software. The implementation can be carried out on a digital storage medium, in particular a floppy disk or CD with electronically readable control signals, which can cooperate with a programmable computer system such that the corresponding method is executed. In general, the invention thus also consists in a computer program product with a program code stored on a machine-readable carrier for carrying out the method according to the invention, when the computer program product runs on a computer. In other words, the invention can thus be realized as a computer program with a program code for carrying out the method when the computer program runs on a computer.

Claims

Patentansprüche claims
1. Vorrichtung zum Prüfen einer Datenmenge, wobei die Da¬ tenmenge eine Mehrzahl von Teilmengen und pro Teilmen¬ ge einen Teil-Prüfwert aufweist, mit folgenden Merkma¬ len:1. Apparatus for checking a data volume, the data quantity having a plurality of subsets and a sub-check value per subset, with the following characteristics:
einer Einrichtung (102) zum Bestimmen eines Prüfwer¬ tes, die ausgebildet ist, um einen gemeinsamen Prüf¬ wert (116) aus den bereitgestellten Teil-Prüfwerten (114) der Teilmengen der Datenmenge (112) zu bestim¬ men; unda device (102) for determining a test value which is designed to determine a common test value (116) from the provided partial test values (114) of the subsets of the dataset (112); and
einer Vergleichseinrichtung (103) , die ausgebildet ist, um den gemeinsamen Prüfwert (116) mit einem an die Vergleichseinrichtung bereitgestellten Vergleichs- Prüfwert (118) zu vergleichen.a comparison device (103) which is designed to compare the common check value (116) with a comparison check value (118) provided to the comparison device.
2. Vorrichtung zum Prüfen gemäß Anspruch 1, wobei die Einrichtung (102) zum Bestimmen ferner ausgebildet ist, um einen weiteren Teil-Prüfwert (122) für eine der Teilmengen der Datenmenge (112) zu bestimmen; undThe apparatus of claim 1, wherein the means (102) for determining is further adapted to determine a further partial check value (122) for one of the subsets of the data set (112); and
wobei die Vergleichseinrichtung (103) ferner ausgebil¬ det ist, um den weiteren Teil-Prüfwert mit dem bereit¬ gestellten Teil-Prüfwert (114) der zugehörigen Teil¬ menge zu vergleichen.wherein the comparison device (103) is also designed to compare the further partial test value with the provided partial test value (114) of the associated partial quantity.
3. Vorrichtung zum Prüfen gemäß Anspruch 2, wobei die Vergleichseinrichtung (103) ausgebildet ist, um abhän¬ gig von dem Vergleich des gemeinsamen Prüfwertes (116) mit dem Vergleichs-Prüfwert (118) ein Vergleichssignal (120) bereitzustellen, und wobei die Einrichtung (102) zum Bestimmen ferner aus¬ gebildet ist, um den weiteren Teil-Prüfwert (122) ab¬ hängig von dem Vergleichssignal zu bestimmen.3. A device for testing according to claim 2, wherein the comparison device (103) is designed to provide a comparison signal (120) depending on the comparison of the common test value (116) with the comparison test value (118), and wherein the means (102) for determining is further configured to determine the further partial check value (122) as a function of the comparison signal.
4. Vorrichtung zum Prüfen gemäß einem der Ansprüche 2 o- der 3, ferner mit einer Einrichtung (104) zum Verwen¬ den der Daten der Teilmengen, die ausgebildet ist, um die Daten einer der Teilmengen abhängig von einem Prüfergebnis (124) des bereitgestellten Teil- Prüfwertes (114) mit dem weiteren Teil-Prüfwert (122) zu verwenden.4. Apparatus for testing according to one of claims 2 or 3, further comprising means (104) for using the data of the subsets, which is adapted to the data of one of the subsets depending on a test result (124) of the provided Part test value (114) to be used with the further part test value (122).
5. Vorrichtung zum Prüfen gemäß Anspruch 4, wobei die Einrichtung (104) zum Verwenden ausgebildet ist, um die Teilmenge als Folge des Prüfergebnisses (124) zu verwenden, wenn das Prüfergebnis (124) eine Überein¬ stimmung anzeigt.The apparatus for testing of claim 4, wherein the means (104) is adapted to use to use the subset as a result of the test result (124) when the test result (124) indicates a match.
6. Vorrichtung zum Prüfen gemäß Anspruch 4, wobei die Einrichtung (104) zum Verwenden ausgebildet ist, um eine Verwendung der Teilmenge als Folge des Prüfergeb¬ nisses (124) zu unterbrechen, wenn das Prüfergebnis eine Nichtübereinstimmung anzeigt.6. The apparatus of claim 4, wherein the means (104) is adapted for use to interrupt use of the subset as a result of the test result (124) if the test result indicates a mismatch.
7. Vorrichtung zum Prüfen gemäß einem der Ansprüche 1 bis 6, wobei die Datenmenge (112) ferner eine Mehrzahl von Zwischen-Prüfwerten aufweist, wobei jede der Zwischen- Prüfwerte aus einer Mehrzahl der Teil-Prüfwerte (114) gebildet ist, und7. The testing apparatus according to claim 1, wherein the data set further comprises a plurality of intermediate check values, each of the intermediate check values being formed of a plurality of the partial check values, and
wobei die Einrichtung zum Bestimmen ferner ausgebildet ist, um den gemeinsamen Prüfwert aus der Mehrzahl der bereitgestellten Zwischen-Prüfwerte zu bestimmen und ferner ausgebildet ist, um abhängig von dem Vergleich des gemeinsamen Prüfwertes mit dem bereitgestellten Prüfwert eine Mehrzahl von weiteren Zwischenprüfwerten aus der Mehrzahl von Teil-Prüfwerten zu bestimmen. wherein the means for determining is further configured to determine the common check value from the plurality of provided intermediate check values and is further configured to generate a plurality of further intermediate check values from the plurality of parts depending on the comparison of the common check value with the provided check value To determine test values.
8. Vorrichtung zum Prüfen gemäß Anspruch 7, wobei die Vergleichseinrichtung ferner ausgebildet ist, um die weiteren Zwischen-Prüfwerte mit den bereitgestellten Zwischen-Prüfwerten zu vergleichen.The testing apparatus according to claim 7, wherein the comparing means is further configured to compare the further intermediate check values with the provided intermediate check values.
9. Vorrichtung zum Prüfen gemäß einem der Ansprüche 1 bis 8, wobei die Prüfwerte Hash-Werte sind, und wobei die Einrichtung (102) zum Bestimmen ausgebildet ist, um die Hash-Werte unter Verwendung eines vorbestimmten Hash-Algorithmus zu bestimmen.9. The apparatus of claim 1, wherein the check values are hash values, and wherein the means (102) for determining is configured to determine the hash values using a predetermined hashing algorithm.
10. Vorrichtung zum Ermitteln eines Vergleichs-Prüfwertes aus einer Datenmenge, die eine Mehrzahl von Teilmengen aufweist, mit folgenden Merkmalen:An apparatus for determining a comparison check value from a data set having a plurality of subsets, comprising:
einer Einrichtung (206) zum Bestimmen eines Teil- Prüfwertes (114) pro Teilmenge; undmeans (206) for determining a partial check value (114) per subset; and
einer Einrichtung (207) zum Bestimmen eines Ver- gleichs-Prüfwertes (118) aus den Teil-Prüfwerten (114) der Teilmengen.means (207) for determining a comparison check value (118) from the partial check values (114) of the subsets.
11. Vorrichtung zum Ermitteln gemäß Anspruch 10, ferner mit einer Einrichtung zum Unterteilen der Datenmenge (112) in die Mehrzahl von Teilmengen.The apparatus for determining according to claim 10, further comprising means for dividing said data set (112) into said plurality of subsets.
12. Vorrichtung zum Ermitteln gemäß einem der Ansprüche 10 oder 11, ferner mit einer Einrichtung (208) zum Ein¬ binden der Mehrzahl von Teil-Prüfwerten (114) in die Datenmenge (112) und zum Bereitstellen einer Datenmen¬ ge mit Prüfwerten (212) . ..12. Device for determining according to one of claims 10 or 11, further comprising means (208) for integrating the plurality of partial test values (114) in the data set (112) and for providing a Datenmen¬ ge with test values (212 ). ..
13. Vorrichtung zum Ermitteln gemäß Anspruch 12, wobei die Einrichtung (208) zum Einbinden ausgebildet ist, um die Mehrzahl von Teil-Prüfwerten (114) als Tabelle in die Datenmenge (112) einzubinden, dass die Teil- Prüfwerte (114) gemeinsam aus der Datenmenge (112) ausgelesen werden können. The apparatus of claim 12, wherein said means (208) for integrating is adapted to integrate said plurality of sub-check values (114) as a table into said data set (112), said sub-check values (114) being common the amount of data (112) can be read.
14. Vorrichtung zum Ermitteln gemäß Anspruch 12, wobei die Einrichtung (208) zum Einbinden ausgebildet ist, um die Mehrzahl von Teil-Prüfwerten (114) so in die Da- tenmenge (112) einzubinden, dass die Teil-Prüfwerte gleich verteilt in der Datenmenge (112) angeordnet sind.14. The apparatus of claim 12, wherein the means (208) for integrating is configured to integrate the plurality of sub-test values (114) into the data set (112) such that the sub-test values are evenly distributed in the Data set (112) are arranged.
15. Verfahren zum Prüfen einer Datenmenge, wobei die Da- tenmenge eine Mehrzahl von Teilmengen und pro Teilmen¬ ge einen Teil-Prüfwert aufweist, mit folgenden Schrit¬ ten:15. A method for checking a data volume, wherein the data set has a plurality of subsets and a partial check value per subset, with the following steps:
Bestimmen eines gemeinsamen Prüfwertes (116) aus den bereitgestellten Teil-Prüfwerten (114) der Teilmengen; undDetermining a common check value (116) from the provided partial check values (114) of the subsets; and
Vergleichen des gemeinsamen Prüfwertes (116) mit einem bereitgestellten Vergleichsprüfwert (118) .Comparing the common check value (116) with a provided compare check value (118).
16. Verfahren zum Ermitteln eines Vergleichs-Prüfwertes aus einer Datenmenge, die eine Mehrzahl von Teilmengen aufweist, mit folgenden Schritten:16. A method of determining a comparison check value from a data set having a plurality of subsets, comprising the steps of:
Bestimmen eines Teil-Prüfwertes (114) pro Teilmenge; undDetermining a partial test value (114) per subset; and
Bestimmen des Vergleichs-Prüfwertes (118) aus den be¬ reitgestellten Teil-Prüfwerten (114) der Teilmengen.Determining the comparison test value (118) from the provided partial test values (114) of the partial quantities.
17. Computer-Programm mit einem Prαgrammcode zur Durchfüh¬ rung des Verfahrens gemäß einem der Ansprüche 15 oder 16, wenn das Computer-Programm auf einem Computer ab¬ läuft. 17. Computer program with a Prαgrammcode for carrying out the method according to any one of claims 15 or 16, when the computer program runs on a computer ab¬.
EP05787389A 2004-10-15 2005-09-12 Device and method for testing and establishing test values Ceased EP1817711A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102004051771A DE102004051771A1 (en) 2004-10-15 2004-10-15 Apparatus and methods for testing and determining test values
PCT/EP2005/009783 WO2006042593A1 (en) 2004-10-15 2005-09-12 Device and method for testing and establishing test values

Publications (1)

Publication Number Publication Date
EP1817711A1 true EP1817711A1 (en) 2007-08-15

Family

ID=35788918

Family Applications (1)

Application Number Title Priority Date Filing Date
EP05787389A Ceased EP1817711A1 (en) 2004-10-15 2005-09-12 Device and method for testing and establishing test values

Country Status (8)

Country Link
US (1) US20070282924A1 (en)
EP (1) EP1817711A1 (en)
JP (1) JP2008517359A (en)
CN (1) CN101073086B (en)
AU (1) AU2005297525C1 (en)
CA (1) CA2583755C (en)
DE (1) DE102004051771A1 (en)
WO (1) WO2006042593A1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102006057297A1 (en) * 2006-12-05 2008-06-12 Giesecke & Devrient Gmbh Method for monitoring of progress of program, involves processing test value of command sequence of program, which is calculated on basis of commands during execution of program
DE102008010787B4 (en) * 2008-02-22 2016-06-09 Fachhochschule Schmalkalden Method for securing the integrity of data
US9766983B2 (en) 2008-03-05 2017-09-19 Ca, Inc. Proximity and in-memory map based signature searching for duplicate data
US8549322B2 (en) 2010-03-25 2013-10-01 International Business Machines Corporation Secure data scanning method and system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19906449C1 (en) * 1999-02-16 2000-08-10 Fraunhofer Ges Forschung Multimedia data stream encryption method provides first section of useful data block which is not encrypted for providing preview or prelist function

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57143799A (en) * 1981-02-27 1982-09-06 Hitachi Ltd Storage device
JPH0670775B2 (en) * 1986-11-12 1994-09-07 株式会社日立製作所 Error detection / correction system
JPH06324943A (en) * 1993-05-17 1994-11-25 Hitachi Ltd Main memory control method
US5970143A (en) * 1995-11-22 1999-10-19 Walker Asset Management Lp Remote-auditing of computer generated outcomes, authenticated billing and access control, and software metering system using cryptographic and other protocols
JPH10124366A (en) * 1996-10-18 1998-05-15 Nec Corp Parallel management system for file data storage mechanism
US5958051A (en) * 1996-11-27 1999-09-28 Sun Microsystems, Inc. Implementing digital signatures for data streams and data archives
US5907619A (en) * 1996-12-20 1999-05-25 Intel Corporation Secure compressed imaging
DE19811593C1 (en) * 1997-12-19 1999-05-06 V & S Datentechnik Und Softwar Matrix-controlled hash function for ensuring the integrity or authenticity of transmitted data
WO2000036755A1 (en) * 1998-12-15 2000-06-22 Tiernan Communications, Inc. Method and apparatus for backward-compatible error correction for real time communication link
US7478243B2 (en) * 2001-03-21 2009-01-13 Microsoft Corporation On-disk file format for serverless distributed file system with signed manifest of file modifications

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19906449C1 (en) * 1999-02-16 2000-08-10 Fraunhofer Ges Forschung Multimedia data stream encryption method provides first section of useful data block which is not encrypted for providing preview or prelist function

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of WO2006042593A1 *

Also Published As

Publication number Publication date
AU2005297525C1 (en) 2011-06-02
AU2005297525B2 (en) 2009-12-03
JP2008517359A (en) 2008-05-22
WO2006042593A1 (en) 2006-04-27
CN101073086B (en) 2011-11-16
CA2583755C (en) 2013-01-15
AU2005297525A1 (en) 2006-04-27
US20070282924A1 (en) 2007-12-06
CA2583755A1 (en) 2006-04-27
DE102004051771A1 (en) 2006-04-20
CN101073086A (en) 2007-11-14

Similar Documents

Publication Publication Date Title
DE112012005037B4 (en) Manage redundant immutable files using deduplications in storage clouds
DE69901424T2 (en) COMPUTER FILE INTEGRITY TEST
DE60314062T2 (en) Protection for header objects in data streams
EP2515499B1 (en) Method for generating a cryptographic key for a secure digital data object on the basis of the current components of a computer
DE10335943A1 (en) Device for copy-protected distribution of electronic documents via public electronic data network e.g. the internet, with time-limited access to reconstruction server for reconstruction of encrypted document
DE102011056563A1 (en) Data compression devices, operating methods therefor and data processing equipment, including the same
DE102013208930A1 (en) Combining entries in a deduplication index
DE102013201174A1 (en) Online review of a standby database in physical replication environments using log shipping
DE112018003585B4 (en) A method, computer program product, and storage tape drive hardware unit for enhancing deduplication of tape drive storage
DE102011010613A1 (en) A method of storing and restoring data, using the methods in a storage cloud, storage server and computer program product
DE69915041T2 (en) INFORMATION PROCESSING DEVICE AND METHOD, AND PROGRAM STORAGE MEDIUM
DE102014208212A1 (en) Derive a device-specific value
EP3698517A1 (en) Bidirectionally linked blockchain structure
DE102012213788A1 (en) End-to-end privacy while supporting multiple CRC algorithms
EP1817711A1 (en) Device and method for testing and establishing test values
DE112012002796T5 (en) Transfer deduplicated data organized in virtual media to a target set of physical media
DE112013000368T5 (en) Edit source code patches
EP3602387B1 (en) Identifiers for integrity protection of digitally coded copies
DE112021004008T5 (en) VALIDATION OF TRACKED PORTIONS OF RECEIVED SENSOR DATA USING CRYPTOGRAPHIC COMPUTER PROCESSING
DE10018993A1 (en) Database administrative software produces a database file in which compressed requested data is stored has first compression is a special attribute data set group (A) which is to be searched and compressed
EP3563261A1 (en) Bit-sequence-based data classification system
DE112021006506T5 (en) Managing lock coordinator rebalance in distributed file systems
EP3719651A1 (en) Method for characterizing the operating state of a computer system
DE102007011407A1 (en) Device for processing non-structured data and for storing associated metadata, comprises storage unit and interface for reading non-structured data, where coding unit is provided for temporarily coding of data
WO2006050973A1 (en) Device and method for detection of a manipulation of an information signal

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20070413

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR

DAX Request for extension of the european patent (deleted)
RIN1 Information on inventor provided before grant (corrected)

Inventor name: KRAUSS, KURT MICHAEL

Inventor name: PUCHTA, STEFAN

Inventor name: PICKEL, JOERG

Inventor name: AICHROTH, PATRICK

Inventor name: KULESSA, RALPH

Inventor name: POPP, HARALD

Inventor name: KRAEGELOH, STEFAN

Inventor name: GAYER, MARC

Inventor name: HASSELBACH, JENS

REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1107853

Country of ref document: HK

17Q First examination report despatched

Effective date: 20111229

REG Reference to a national code

Ref country code: DE

Ref legal event code: R003

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED

18R Application refused

Effective date: 20130411

REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1107853

Country of ref document: HK