The present invention is in the field of data protection and security, respectively, in the field of data safety and data verification.
Data safety and data security is a known problem, and widely combat through large numbers of data backups. In order to secure data, a common method is to backup data on a regular time basis and to store different backups in different locations. However, when referring to data carriers as, for example, a CD (CD=Compact Disk) or a DVD (DVD=Digital Versatile Disk), they are often only available as a single copy, i.e. a user would usually only buy a single piece. When purchasing a CD having any kind of data, it is very unfortunate when data gets lost, either through time or through physical force as, for example, scratches on the surface of the a CD. With conventional copy protection mechanisms, it is not always possible to make private backups as vendors try to prevent product piracy.
Vendors of digital media often copy protect the media, which they offer their products on. This complicates data protection for a user or customer only having a single copy at their disposal, which can be very sensitive to physical impacts. Often data carriers react with data loss or data degradation if for instance scratches occur on a CD or DVD. Vendors of digital media may therefore be in a conflict between preventing product piracy and maintaining user satisfaction.
According to an embodiment, an apparatus for writing data and redundancy data on a storage medium, the storage medium having a defined geometrical structure, may have a writer for writing data and redundancy data onto the storage medium such that a geometrical distance between the data and the redundancy data is larger than a predefined distance, and for generating and writing redundancy location data identifying a location of the redundancy data on the storage medium.
According to another embodiment, a method for writing data and redundancy data on a storage medium, the storage medium having a defined geometrical structure, may have the steps of: writing data and redundancy data onto the storage medium such that a geometrical distance between the data and the redundancy data is larger than a predefined distance; and generating and writing redundancy location data identifying a location of the redundancy data on the storage medium.
An embodiment may have a computer program having a program code for performing the method for writing as mentioned above when the program code runs on a computer.
According to another embodiment, an apparatus for reading a data set from a storage medium may have a means for reading control information from the storage medium, the control information having information on the location of redundancy data on the storage medium and a means for reading data from the storage medium and for indicating, if a subset of the data was read incorrectly. The apparatus further comprises a means for reading redundancy data based on the information on the location of the redundancy data in response to the indication of the subset of data having been read incorrectly. The apparatus further comprises a means for combining the data and the redundancy data to obtain the data set.
According to another embodiment, a method for reading a data set from a storage medium, may have the steps of: reading control information from the storage medium, the control information having information on redundancy data on the storage medium; reading data from the storage medium; indicating if a subset of data was read incorrectly; reading redundancy data based on the information on redundancy data in response to the step of indicating; and combining the data and the redundancy data to obtain the data set.
An embodiment may have a computer program having a program code for performing the method for reading as mentioned above when the computer program runs on a computer.
The present invention is based on the finding, that enhanced data security and reliability can be obtained, by taking into account geometrical properties of a storage medium. In one embodiment, data and redundancy data is written to an optical disc. If data and redundancy data are written close to each other, i.e. without having a geometrical gap in between on e.g. an optical disc, it is likely that if a physical disruption occurs, for example through a scratch that redundancy data and data are affected. According to embodiments of the present invention, a minimum geometrical distance is achieved between data and redundancy on when written for example on an optical disc.
Embodiments therewith reduce the risk of permanent data loss by using an optimizing function assigning each sector on a disc to a certain redundancy group. A redundancy group is a group of data blocks or data segments, in which a certain number of members of the group can be lost, without losing the data content. The assignment of sectors on a disc is chosen such that the probability of two or more sectors belonging to the same redundancy group to be defective is minimized, according to one embodiment. This, can for example be achieved by evaluating the probabilities of other data blocks to be damaged, depending on their geometrical position on the disc, if a certain data block is known to be damaged.
For example, scratches will cause every n-th data block to be damaged where n is a value that needs to be determined from the physical specifications of a disc. Due to bad media quality, a certain spot with a given diameter on a disc may not have been written correctly. So all datablocks located within a certain diameter from a datablock are known to be defective and are therefore not be part of the same redundancy group in some embodiments. Other optimization functions are also conceivable, in an embodiment it may be made sure that data and associated redundancy data is geometrically separated on a storage medium. Moreover, embodiments provide control information, for example in terms of a directory describing the assignment of each datablock to a certain redundancy group, which will also be written or stored on the storage medium, e.g. on a disc. In another embodiment, an assignment function can be identified by a reader, e.g. by an identifier also stored on the storage medium, or a reader could determine redundancy blocks available from the storage medium by scanning the storage medium for redundancy data and identify the geometrical locations of the redundancy datablocks.
Embodiments of the present invention will be described in detail in the following using the accompanying figures, in which
a shows an embodiment of an apparatus for reading;
b shows another embodiment of an apparatus for reading;
In another embodiment the writer may be adapted for writing the data such that a baseline reader and an enhanced reader can read the data and for writing the redundancy data such that the enhanced reader can read and process the redundancy data and the baseline reader can ignore, skip or not read the redundancy data.
In embodiments the predefined geometrical distance may be less than, for example, 5 cm, 1 cm or 1 mm. The writer may be adapted for using optical storage media, however in another embodiment, the writer may be adapted for using magnetic or opto-magnetic media. The writer may be adapted for distributing the data and the redundancy data segments evenly on the geometrical surface of an optical disc.
Moreover, in another embodiment the writer may be adapted for providing redundancy location data in terms of a table having logical sector numbers of the data or the redundancy data. The writer may also be adapted for writing the data and the redundancy data according to a sorting scheme, which may be adapted to the geometrical structure of the storage medium 105. The writer may write the data and redundancy data in one session, i.e. composing a complete data stream fitting the storage medium 105. A sorting scheme may then arrange the data and redundancy data, as well as the location data within the data stream in a way, such that the geometrical distance between redundancy data and data on the storage medium 105 is larger than the predefined distance.
In another embodiment the sorting scheme can be optimized such that a probability of data and redundancy data being stored in a defective sector on the storage medium 105 is lower than if data and redundancy data were stored in adjacent sectors.
a shows an embodiment of an apparatus 150 for reading a data set from a storage medium 155. The apparatus 150 comprises a means 160 for reading control information from the storage medium 155, the control information having information on redundancy data on the storage medium 155. Furthermore, the apparatus 150 comprises a means 165 for reading data from the storage medium 155 and for indicating if a subset of the data has been read incorrectly. Furthermore, the apparatus 150 comprises a means 170 for reading redundancy data based on the information on the redundancy data in response to the indication of the subset of data having been read incorrectly and a means 175 for combining the data and the redundancy data to obtain the data sets.
In one embodiment, the means 160 for reading control information is adapted for reading a table from the storage medium 155, the table having information on an amount of redundancy data or a location of redundancy data on the storage medium 155. In another embodiment, the means 160 for reading control information is adapted for reading control information in terms of a logical sector number of redundancy data on the storage medium. In another embodiment, the means 165 for indicating if a subset of data was read incorrectly is adapted for determining a checksum or for performing a CRC (CRC=Cyclic Redundancy Check) on the data read as indicated in
In yet another embodiment, the means 170 for reading the redundancy data may be adapted for reading redundancy data for which data subsets have been read incorrectly from a location on which information is comprised in the control information. The means 175 for combining can be adapted for combining the redundancy data and the data according to an XOR or Reed Solomon combiner 180, as shown in
According to another embodiment an optical disc drive may comprise an apparatus for writing and an apparatus for reading according to the above embodiments.
The field DSILSN (DSI=Disc Security Information) specifies the logical sector number of the disc security information structure as a Big-Endian value. If this security information is not present, all bytes of this field are set to zero. Furthermore,
Another field shown in
Header information is comprised in the FFITH (FFITH=FFIT Header)-field containing version information and a field indicating the different SecurDisc features that are used on any part of the media. A backup of the FFIT is referenced by the BTAS as mentioned above. Its location may be freely selected. However, to achieve maximum reliability, the backup FFIT should be physically distant from the first copy of the FFIT, as a minimum requirement, the backup FFIT can be stored in a packet different to the primary FFIT.
As indicated in
Moreover,
Furthermore,
Moreover,
Furthermore, there is a SecurDisc global feature flag mask in
The FFITH may grow as additional fields are added in further embodiments. The location of the FFITE can be calculated as
FFITEOFFSET[0]=FFITLSN*BPS+FFITHS
FFITELSN[0]=FFITEOFFSET[0] DIV BPS
FFITERBP[0]=FFITEOFFSET[0] MOD BPS
with FFITEOFFSET[0] being the relative bit position (RBP=Relative Bit Position) of the first FFITE relative to the beginning of the user data area of the disc, BPS is the number of bytes per sector and FFITELSN is the LSN of the FFIT.
The result of this operation is FFITELSN[0], the LSN of the first FFITE and FFITERBP[0], the relative byte position of the first FFITE from the beginning of the sector specified by the FFITELSN[0].
FFITE are stored in ascending order of their fragments' LSN. The location of a particular entry x is calculated as
FFITEOFFSET[x]=FFITEOFFSET[0]+x*FFITECS
FFITELSN[x]=FFITEOFFSET[x] DIV BPS
FFITERBP[x]=FFITEOFFSET[x] MOD BPS,
where FFITEOFFSET[x] is the RBP of the x-th FFITE relative to the beginning of the user data area of the disc, x is a number between 0 and NUMFFITE-1 and FFITECS is the FFITE content size.
The result of this operation is FFITELSN[x], the LSN of the x-th FFITE and FITERBP[x], the relative byte of the x-th FFITE from the beginning of the sector specified by FFITELSN[x].
An embodiment of an FFITE structure is shown in
A pass phrase protected field “PP” comprises a flag, also being part of the SecurDisc feature flag mask. If true, the file fragment managed by this FFIT is pass phrase protected. The “CS”-field is also part of the SecurDisc feature flag mask. If true, the content of the file fragment managed by this FFITE can be verified using the “File Fragment Checksum”-field stored in this FFITE.
The “CP”-field is part of the SecurDisc feature flag mask. It can assume four distinct conditions regarding copy protection for the file fragment managed by this FFITE as specified in the Table in
Moreover, a backup DSI may be referenced by the BTAS in an embodiment. Its location may be freely selected. However, to achieve maximum reliability, the backup DSI should be physically distant from the first DSI copy. As a minimum requirement, the backup DSI should be stored in a different packet than the primary DSI in an embodiment.
If the backup DSI is located on a disc before the primary DSI, a “RSA Disc Signature”-field of the backup DSI may be assumed to have all its bits set to zero when calculating the digital signature in this embodiment (RSA=Initials of Surnames of Inventors, Rivest, Shamir and Adleman). Moreover, the DSI structure may store up to 65535 redundancy map references in embodiments. This allows for a very fine-grained configuration of redundancy mapping.
In an embodiment a SecurDisc DSI version number specifies the version number of the structure. The first byte may contain the higher version number and the second byte may contain the lower version number in this embodiment. The higher version number may be 01h for this embodiment, the low version number may be 00h. An implementation may only rely on the layout of the remaining information of DSI if the higher version number is 01h. If only the low version number is higher than the version number the implementation supports, the implementation may still rely on the structures that have been defined in a previous version.
The number of redundancy maps N specifies the number of redundancy maps referenced by the structure as a 16-bit Big-Endian value. The minimum number of redundancy maps may be 1 in an embodiment, so the actual number of redundancy maps can be N+1. As mentioned above, in the “Reserved”-field, all bytes may be set to zero.
A “Disc Signature RSA Public Key Hash”-field may contain a 128-bit AES hash value of the public key that can be used for signature verification. It may be used by an implementation to check whether the correct public key has been supplied by the user to verify the authenticity of the disc. If the disc is not digitally signed, all bits of the field may be set to zero.
A “RSA Disc Signature”-field may contain a 256-bit RSASSA-PSS digital signature (PSS Probabilistic Signature Scheme). If the disc is not digitally signed, all bytes of this field are set to zero. An SHA-1 (SHA=Secure Hash Algorithm) hash value generated for the digital signature contains all data starting from the beginning of the session until the last byte before the “RSA Disc Signature”-field of the primary DSI. If the area covered by the SHA-1 hash includes the backup DSI structure, the structure can be included in the hash with its “RSA Disc Signature”-field set to all zeros.
The redundancy information contains information about redundancy maps on the SecurDisc media. It is used when data is stored redundantly to allow recovery from fatal read errors, and corresponds to control information, specifying location and presence of redundancy data, according to an embodiment.
A more detailed embodiment of a redundancy information structure is shown in
The “Map Type”-field may specify the type of mapping between redundancy packets and user data packets, i.e. between data and redundancy data. If this bit is set to true, the mapping between user data packets and redundancy packets may be 1:N. This means that for a single user data packet, at least one redundancy packet exists. The exact number may be specified by a “Redundancy Level”-field. If the bit is set to false, the mapping between user data packets and redundancy packets may be N:1. This means that at least one user data packet may be mapped to a single redundancy packet. The exact number of user data packets mapped to a single redundancy packet may be specified by the “Redundancy Level”-field. In the “Reserved”-field, all bits are set to zero as mentioned above.
A “Redundancy Function”-field can specify the redundancy function used. In one embodiment, a value of 00h may indicate that enhanced data security is not used. For example, a value of 01h may indicate that an XOR redundancy grouping scheme is used. In this scheme, two data packets are processed using an XOR operation, of which a redundancy packet results. Any two of the then three packets allow to restore the two data packets. The “Redundancy Function”-field may specify other redundancy functions as, for example, the usage of Reed Solomon encoding, a convolutional coding scheme or even enable the usage of turbo codes.
A “Number of Redundancy Map Entries”-field may specify the number of redundancy map entries as a Big-Endian DWORD value. The “Redundancy Map LSN”-field specifies the LSN of the redundancy map as a Big-Endian 64-bit value or zero if the enhanced data security feature is not used. A “Backup Redundancy Map LSN”-field may specify the LSN of the backup redundancy map as a Big-Endian 64-bit value or zero, when the feature is not used.
The redundancy map information structure provides a 1:N or N:1 mapping between user data packets and redundancy packets. Which mapping mode is in use for a particular disc may be determined by the “Map Type”-field specified in the “Redundancy Information”-field of the DSI structure. If the “Map Type”-field is set to false, a unique packet corresponds to a redundancy packet and a mapped packet corresponds to a user data packet according to the structure depicted in
A backup of the redundancy map information is referenced by the DSI structure. Its location may be freely selected. However, to achieve maximum reliability, the backup redundancy map should by physically distant from the first copy. As a minimum requirement, the backup redundancy should be stored in a different packet than the primary in an embodiment.
In
Embodiments of the present invention provide increased data security to a user. In one embodiment, even if a disc is partially destroyed, the user is able to retrieve his data. If the data stored on the disc is defective, a user can also be notified so that no work is carried out with broken data accidentally.
Embodiments take advantage of, for example, optical media not being completely written when used for transferring data from one person to another. Capacity overhead of media is used by embodiments to redundantly store data that has been written to the media. If parts of e.g. a disc are damaged, the data can be reconstructed from the redundant information stored in the otherwise unused areas of the disc. This is also true for backups where the user is able to trade in reliability for capacity.
According to one detailed embodiment of the present invention, data blocks, or data segments are grouped into redundancy groups. The content of all data blocks belonging to the same redundancy group is combined in a manner that allows restoring one or more members of the same redundancy group from the remaining entries. A very simple but effective approach in an embodiment is an XOR redundancy group in which all data blocks belonging to the same redundancy group are combined using a bit-wise XOR and the result is stored into one extra redundancy data block. If no more than one single data block from a given redundancy group fails, it can be reconstructed from the original data of the remaining group members and the redundancy information stored in the otherwise unused area of the disc.
A more sophisticated method of combining the members of the redundancy group is to use Reed Solomon checksums or codes, which allow for more than a single data block within a group to be restored.
Moreover, in embodiments, the number of data blocks belonging to the same redundancy group determines the security level of the content. The more data blocks belong to the same group, the greater the risk of permanent loss of the data through media damage.
If both the “Redundancy Level”- and the “Redundancy Function”-fields of the DSI structure are set to a value different from zero for the first redundancy map entry, some of the media space may be used to provide redundant storage of user payloads.
Using the redundancy maps referenced through the “Redundancy Information”-field of the DSI structure, a host can restore lost information with a redundancy group by extracting it from the information stored in the same group which is still intact.
In some embodiments a redundancy group can be defined as a group of data blocks, for example ECC blocks (ECC=Error Tracking and Correction), that share a common hash ECC block. The hash ECC block content may be calculated from the ECC block belonging to the same redundancy groups through a redundancy function. In some embodiments a redundancy function supported is XOR.
An embodiment of an apparatus for writing may be free to choose the best strategy to combine ECC blocks to redundancy groups, taking into account optical media properties and other criteria to ensure that no more than a single ECC block within a redundancy group is affected if the media gets damaged.
The redundancy level determines separately for each redundancy map, how many ECC blocks are assigned to a single redundancy group, thus determining the level of safety that should be accomplished. The more ECC blocks are assigned to the same ECC group, the more likely a defection of two or more ECC block, which constitutes a situation in which restoring the defective ECC blocks becomes impossible with e.g. the XOR redundancy function.
To restore a defective ECC block, a reader can for example read the information stored in the DSI structure and find the corresponding entry in the redundancy map and read all other packets that belong to the same redundancy group, i.e. read the corresponding redundancy packets, and calculate the restored content of the defective ECC block as follows:
RESTORED_PACKET=PACKET#1 XOR PACKET#2 XOR [ . . . ] XOR PACKET#REDLEVEL-1 XOR RPACK
where RESTORED_PACKET is the content of the restored packet, PACKET#x is the content of packet x, REDLEVEL is the number of packets pre redundancy group and RPACK is the content of the redundancy packet.
If a packet could not be restored using the first redundancy map, the reader implementation may repeat this process with all remaining redundancy maps until the packet could be restored.
Depending on certain implementation requirements of the inventive methods, the inventive methods can be implemented in hardware or in software. The implementation can be performed using a digital storage medium, in particular, a disc, DVD or a CD having an electronically readable control signals stored thereon, which co-operate with a programmable computer system, such that the inventive methods are performed. Generally, the present invention is, therefore, a computer program product with a program code stored on a machine-readable carrier, the program code being operated for performing the inventive methods when the computer program product runs on a computer. In other words, the inventive methods are, therefore, a computer program having a program code for performing at least one of the inventive methods when the computer program runs on a computer.
While this invention has been described in terms of several embodiments, there are alterations, permutations, and equivalents which fall within the scope of this invention. It should also be noted that there are many alternative ways of implementing the methods and compositions of the present invention. It is therefore intended that the following appended claims be interpreted as including all such alterations, permutations, and equivalents as fall within the true spirit and scope of the present invention.
Number | Date | Country | Kind |
---|---|---|---|
07007619.5 | Apr 2007 | EP | regional |
This application is a continuation of copending International Application No. PCT/EP2007/003654, filed Apr. 25, 2007, which designated the United States.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/EP2007/003654 | Apr 2007 | US |
Child | 11831647 | US |