US20010018741A1 - Method and apparatus for performing data encryption and error code correction - Google Patents

Method and apparatus for performing data encryption and error code correction Download PDF

Info

Publication number
US20010018741A1
US20010018741A1 US09/783,112 US78311201A US2001018741A1 US 20010018741 A1 US20010018741 A1 US 20010018741A1 US 78311201 A US78311201 A US 78311201A US 2001018741 A1 US2001018741 A1 US 2001018741A1
Authority
US
United States
Prior art keywords
data
block
encrypted
ecc block
encryption
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.)
Abandoned
Application number
US09/783,112
Inventor
Josh Hogan
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.)
Individual
Original Assignee
Individual
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
Priority claimed from US08/896,002 external-priority patent/US6047069A/en
Application filed by Individual filed Critical Individual
Priority to US09/783,112 priority Critical patent/US20010018741A1/en
Publication of US20010018741A1 publication Critical patent/US20010018741A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2909Product codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/304Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy based on error correction codes, e.g. McEliece
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/30Compression, e.g. Merkle-Damgard construction

Definitions

  • the invention relates generally to data storage and transmission. More particularly, the invention relates to the encryption of data that includes codewords used for forward error correction.
  • Redundancy data is added to the user data prior to transmission or storage.
  • data storage devices such as hard disk drives, compact disk (CD) players and Digital Video Disk (DVD) players
  • errors can occur due to defects in the storage medium and noise in the read channels. If an error is detected in the transmitted or stored data, the redundancy data allows the error to be corrected.
  • RS-PC Reed-Solomon Product Code
  • the CD and DVD players include error correction circuits for performing the forward error correction.
  • the error correction circuits are computationally intensive and are typically implemented in a hardwired or inflexible manner. Additionally, the error correction circuits tend to be expensive in processing circuitry and high-speed memory.
  • the task of performing error correction could be shifted entirely or partially to the host processor. Consequently, the cost of the storage device could be reduced.
  • the decoder circuit could be reduced or eliminated and expensive static random access memory (RAM) could be reduced in size.
  • the task of performing error correction could be divided between the host processor and the error correction circuit in the storage device.
  • the task of correcting errors would fall initially on the error correction circuit, which would utilize a simple error correction algorithm that identifies and corrects the majority of errors.
  • the error correction circuit could not correct a data block, the task would be shifted to the host processor, which would use a more complex error correction routine.
  • Such flexibility would allow for a fast, inexpensive error correction circuit to be used by the storage device. Consequently, the cost of the storage device would be lowered and the reliability of performing error correction would be improved.
  • ECC error code correction
  • the present invention allows partial or full data encryption to be performed in the drive and partial or full error correction to be performed by the host processor.
  • a block of ECC-encoded data is read.
  • the ECC block includes error correction codewords.
  • An encryption mask is provided and bitwise XOR'ed with the ECC block.
  • the product of the bitwise XOR is an encrypted ECC block, which can then be transmitted to the host processor.
  • the integrity of the codewords is preserved. This allows the host processor to perform some or all error correction on encrypted ECC block.
  • User data in the ECC block can be XOR'ed entirely with numbers in the encryption mask, or the user data can be XOR'ed selectively with numbers in the encryption mask. Portions of the ECC block XOR'ed with zeros or not XOR'ed at all are not encrypted.
  • FIG. 1 is a block schematic diagram of various components of a computer system according to the present invention.
  • FIG. 2 is flowchart of a method of performing error code correction and data encryption according to the invention
  • FIG. 3 is a flowchart of an alternative method of performing error code correction and data encryption according to the invention.
  • FIG. 4 illustrates a simplified layout of an RS-PC block
  • FIG. 5 illustrates a bitwise XOR operation performed by the computer system
  • FIG. 6 is a block diagram showing an RS-PC block, an encryption mask, and a product of a bitwise XOR of the RS-PC block and the encryption mask.
  • the invention is embodied in a system including a host processor and a storage device that reads data from a storage medium (e.g., a compact disc or DVD disc).
  • the data includes ECC codewords.
  • the storage device performs data encryption on the data read from the storage medium, but preserves the integrity of error correction codewords. This allows the encrypted data to be transmitted to the host processor over an unsecure computer bus.
  • the host processor can then perform error correction on the encrypted data. Afterwards, decryption can be performed by a trusted entity.
  • the invention allows partial or full error correction of ECC codewords to be performed by a host computer without the danger of exposing confidential data on an unsecured computer bus.
  • FIG. 1 shows various components of a computer system 10 .
  • the computer system 10 includes a computer bus 12 and a host processor 14 (e.g., a central processing unit) connected to the computer bus 12 .
  • the system 10 further includes a DVD-ROM drive 16 including a DVD-ROM reader 18 that is operable to read RS-PC blocks stored on a DVD-ROM disc.
  • RS-PC blocks are read from the DVD disc and, under control of a controller 20 , buffered in random access memory (RAM) 22 .
  • RAM random access memory
  • Each RS-PC block includes M rows of user data, with each word of user data being N-bytes long. Appended to each of the M words is RS-PC redundancy data having a length of p-bytes. Thus, each row in the RS-PC block has (N+p) bytes, whereby the RS-PC block has (N+p) columns. Appended to each of the (N+p) columns is RS-PC redundancy data having a length of q-bytes. Resulting is an RS-PC block having (M+q) ⁇ (N+p) bytes. Such an RS-PC block 602 is shown in FIG. 6.
  • the DVD-ROM drive 16 does not need to perform error-code correction on the buffered RS-PC blocks. Instead, the DVD-ROM drive 16 performs encryption on the buffered RS-PC blocks.
  • a first pseudorandom generator 24 generates an M ⁇ N block of random numbers, each number having a length of one byte. The random numbers may, for example, be generated from a seed that is accessed from a ROM module 26 .
  • the M ⁇ N block of random numbers is supplied to an RS-PC encoder 28 , which performs RS-PC encoding on the M ⁇ N block.
  • An output of the encoder 28 provides an encryption mask having (M+q) ⁇ (N+p) bytes.
  • the encoder 28 which includes a plurality of linear feedback shift registers, is relatively simple and inexpensive to implement. Additionally, the RS-PC encoding can be performed relatively quickly.
  • the encoder 28 uses the same algorithm that was used for generating the codewords stored on the DVD disc.
  • An XOR circuit 30 performs a bitwise exclusive OR (XOR) of the RS-PC block and the encryption mask.
  • a bitwise XOR operation is illustrated in FIG. 3 and discussed below. Resulting from the bitwise XOR is an (M+q) ⁇ (N+p) encrypted block including encrypted user data and encrypted RS-PC redundancy data.
  • the encrypted block is placed on the computer bus 12 and stored in a buffer 32 for error correction. Even though the computer bus 12 is unsecured, the user data in the encryption block is encrypted and, therefore, protected. Thus, the user data is not made readily available to bus sniffer devices such as storage scopes and data analyzers that could analyze data transferred across the computer bus 12 .
  • the host processor 14 is instructed to perform error correction by executable instructions store in memory 34 . While the instructions are being executed by the host processor 14 , the host processor 14 performs RS-PC correction on the encrypted data block stored in the buffer 32 .
  • the host processor 14 sends the still encrypted, but now error-corrected, (M+q) ⁇ (N+p) block to a DVD decoder card 36 via the computer bus 12 .
  • the encrypted block is received and stored in a buffer 37 on the DVD decoder card 36 . If the DVD decoder card 36 performs decryption on the encrypted block, it accesses the seed stored in the ROM 26 , that is, the seed from which the encryption mask was generated.
  • Modules 38 and 40 perform authentication and exchange of the seed between the DVD-ROM drive 16 and the DVD decoder card 36 . Authentication and exchange can be performed in a conventional manner.
  • a second pseudorandom generator 42 on the DVD decoder card 36 generates the same sequence of random numbers generated by the first pseudorandom generator 24 , and a second encoder 44 generates an M ⁇ N decryption mask from the random numbers.
  • the decryption mask is identical to the M ⁇ N block of random numbers in the encryption mask.
  • the decryption mask is generated by sending a minimum amount of data (i.e., the seed) via the authentication and exchange modules 38 and 40 .
  • a second XOR circuit 46 then performs a bitwise XOR of the decryption mask and the M ⁇ N user data in the encrypted block stored in the buffer 37 .
  • the product of the bitwise XOR is an unencrypted M ⁇ N block of user data.
  • the DVD decoder card 36 also includes a Moving Pictures Experts Group (MPEG) decoder 48 which receives the RS-PC block and decodes the M ⁇ N byte block of decrypted user data according to an MPEG standard.
  • MPEG decoder 48 outputs a stream of uncompressed data, which is displayed on a video display. The uncompressed data is sent directly to the display or display memory. The uncompressed data is not transmitted on the computer bus 12 .
  • MPEG Moving Pictures Experts Group
  • the error-corrected encrypted block can be received by other entities 49 downstream the host processor 14 .
  • a downstream entity 49 could regenerate the encrypted block for subsequent data transmission. Encrypted data that is not accessed by the downstream entity 49 can be discarded by the downstream entity 49 . If a downstream entity 49 is not allowed access to the data in the encrypted block, the seed is not sent to that downstream entity 49 .
  • the drive 16 might also have basic error correction capability.
  • the drive could include a decoder 39 for performing on-the-fly error correction. If the decoder 39 cannot correct a data block, the data block is sent to the host processor 14 .
  • Such flexibility would allow a fast, inexpensive decoder 39 to be used for error correction. Such flexibility would also allow for more complex, more accurate error correction to be performed by the host processor 14 .
  • FIGS. 4 to 6 show the bitwise XOR operation in greater detail
  • FIG. 4 shows a simplified version of an RS-PC block 400 .
  • the M ⁇ N block 405 of user data is 32K bytes.
  • RS-PC redundancy data 403 , 404 is associated with each row and each column in the block 400 .
  • the length of the RS-PC block 400 is 182 bytes, of which 172 bytes are user data 405 .
  • the remaining ten bytes are RS-PC redundancy data 403 that are added for error recovery.
  • the number of rows in the RS-PC block 400 is 208 with sixteen rows including RS-PC redundancy data 404 .
  • a header 401 contains information relating to copy protection, in particular, an encryption key.
  • the M ⁇ N block 405 of user data might also include a lead-in area (not shown) that contains highly confidential data.
  • a row 501 of an RS-PC block includes 172 bytes of user data and tens bytes of RS-PC redundancy data that is created from the user data in the row 501 .
  • a row 502 of an encryption mask includes 172 bytes of random numbers and ten bytes of RS-PC redundancy data that is created from the 172 bytes of random numbers in the row 502 .
  • the row 504 of the encrypted block includes 172 bytes of encrypted data and ten bytes of redundancy data, which provides a valid RS-PC codeword for the 172 bytes of encrypted data in the row 504 .
  • Decryption is performed by XOR'ing the row 504 of the encrypted block with the row 502 of the encryption mask.
  • the bitwise XOR operation can be extended to cover entire blocks.
  • the length of the seed stored in the ROM 26 for the first pseudorandom number generator 24 is long enough to ensure the required cryptographic strength.
  • the associated RS-PC redundancy data are then calculated to complete the encryption mask. Because calculating the RS-PC redundancy data is a relatively trivial matter, little processing power is needed to calculate the RS-PC redundancy data.
  • the error correction capability of the RS-PC codewords is preserved.
  • noise and defects in the storage media introduce errors that are scattered throughout the original RS-PC block 602 .
  • the errors are indicated by dots.
  • the encryption mask 601 does not contain errors.
  • the encryption mask 601 and the RS-PC block 602 are XOR-ed, the integrity of the error correction capability is maintained.
  • the encrypted data block 603 contains errors in the same locations as the RS-PC block 602 and the RS-PC codewords are all consistent so that error correction can be successfully performed. Even if there were errors in the encryption mask 601 , errors could still be corrected and the encryption and subsequent error correction would operate satisfactorily.
  • the processing power required by the pseudorandom number generators 24 , 42 and the RS-PC encoder 28 is not significant when compared to the processing power required to perform error code correction.
  • the invention therefore, imposes only a small burden on the DVD-ROM drive 16 and DVD decoder card 36 , while removing the larger burden of performing error code correction. Error code correction can be shared between the DVD-ROM drive 16 and the host processor 14 or left entirely to the host processor 14 .
  • a seed is provided.
  • the length of the seed is long enough to ensure the required cryptographic strength.
  • a block of random numbers is generated by a pseudorandom number generator, which is seeded or initialized by the seed.
  • Error correction codewords are generated according to the same error correction code generation scheme as was used for the RS-PC block stored on the storage medium. In this way, a sequence of codewords is generated, all of which are determined by the random number seed and which are consistent with the original block stored on the storage medium. Resulting is an encryption mask.
  • the block resulting from the bitwise XOR operation also includes valid codewords which contain any errors contained in the codewords read from the storage medium. No additional errors are introduced because the encryption mask does not contain any errors.
  • the block resulting from the bitwise XOR operation is effectively encrypted and can be sent to the host processor or other processing entity for error correction without risk of unauthorized copying of the original data.
  • Error code correction is performed by the host processor.
  • An error-corrected, but still encrypted block is sent downstream the host processor without risk of unauthorized copying of the original data.
  • decryption is performed by a trusted entity (e.g., an MPEG decoder) downstream the host processor, only the seed need be transferred to the trusted entity.
  • the seed can be transferred in a secure manner using a key that is authenticated and exchanged in accordance with standard techniques.
  • the trusted entity then generates a decryption mask using the same random number pattern used by the encryption mask for encryption of the user data.
  • the decryption mask is bitwise XOR-ed with the user data of the error corrected, but still encrypted data block. Resulting is an M ⁇ N block of decrypted, error-code corrected user data.
  • the invention has been described in connection with encryption of an entire RS-PC block.
  • a portion of the lead-in area might contain confidential data relating to encryption.
  • the initial bytes of the 172 ⁇ 192 block of user data i.e., the header
  • encryption mask bytes corresponding to the header are all zeroes, and the remaining bytes are pseudo random numbers. This allows the host processor 14 to error-correct and confirm the block address, but not to have access to the confidential data, (which it sends to the DVD decoder card 36 ).
  • portions of the RS-PC block are selectively encrypted, thereby protecting the confidentiality of the data from the host processor 14 and perhaps other entities 49 downstream the host processor 14 .
  • an ECC block read from the storage medium already contains encrypted information in certain areas. Therefore, the data that is already encrypted is not in danger of being exposed on the computer bus and, therefore, does not have to be further encrypted by the drive.
  • the ECC block also contains highly confidential, title key data in the header area. Additional header information, such as the address, is not confidential. In this case, only the confidential data in the header needs to be protected. Therefore, the encryption mask contains all zeroes everywhere except at the confidential header data byte locations (which contain pseudo random numbers). This allows the host processor to error correct the ECC block, verify the address and pass on the user data, without gaining access to the confidential information.
  • FIG. 2 shows a method of selectively encrypting data in an ECC block.
  • An ECC block is read from a storage medium (block 200 ). If only a portion of the data in the ECC block (e.g., a byte sequence) needs to be kept confidential, the drive (e.g., a CD ROM or DVD drive) provides an encryption mask including random numbers corresponding to the locations containing confidential data and zeroes elsewhere (block 202 ). The locations of the zeroes in the encryption mask can be determined by convention. For example, if by convention, the header information is to be protected, the encryption mask will contain random numbers at the header locations and zeroes elsewhere.
  • the encryption mask also includes ECC redundancy data for the random numbers and zeros.
  • the encryption mask block is bitwise XOR'ed with the ECC block (block 204 ).
  • the partially-encrypted block that results includes valid ECC codewords, encrypted data at the header location, and unencrypted data elsewhere.
  • the partially-encrypted block is sent to the host processor, which performs error code correction (block 206 ). Additionally, the host processor accesses the unencrypted information (block 208 ).
  • the error-corrected block is then sent to one or more additional entities (block 210 ).
  • a random data sequence may either be reused for processing subsequent data, or a new random data sequence may be generated for each quantity of data to be processed.
  • Additional encryption, either full or partial, by each additional entity would add additional layers of protection. It would also allow selected data to be made available to selected entities.
  • the corrected non-confidential data would be available for immediate use. Seeds would not be sent to entities not performing decryption or not having access to the confidential data.
  • FIG. 3 shows a method in which a drive performs basic ECC and the host processor performs more complex error correction.
  • the drive reads an ECC block from a storage medium and buffers the ECC block (block 300 ).
  • the drive includes a relatively simple circuit that performs a simple error correction algorithm for identifying and correcting the majority of errors in the buffered ECC block (block 302 ).
  • some or all of the buffered ECC block is encrypted (block 304 ) and sent to the host processor (block 306 ).
  • the host processor then performs a more complex error correction routine to recover the errors (block 308 ).
  • Such flexibility would allow for a fast, inexpensive error correction circuit to be used in the drive, which would lower the cost of the drive and improve the speed of performing error correction. Additionally, error correction capability would be improved. This is particularly important for long-term storage of data.
  • ECC-encoded data is encrypted without affecting the integrity of the ECC codewords.
  • the invention allows encrypted data to be error code corrected in the host processor and subsequently decrypted. Performing error code correction in the host processor, in turn, allows for the cost of the storage device to be lowered by reducing expensive ECC circuitry and reducing static RAM.
  • Another advantage of performing ECC in the host processor is that the host processor, unlike hardware, has the flexibility to utilize different ECC routines. Whereas a hardware circuit is typically restricted to using the same ECC algorithm or set of algorithms for all situations, the host processor can use different algorithms. For example, the host processor could analyze the entire ECC block without modifying (i.e., correcting) any data and then decide upon the best strategy to avoid miscorrection. Miscorrection of data can be a problem, especially during on-the-fly processing. A hardware RS-PC decoder typically performs error code correction on the fly and might miscorrect data and, consequently, increase the number of errors in the data block. Miscorrection further increases the likelihood of the block being uncorrectable. A more flexible approach adapted by the host processor could avoid this problem by analyzing the data and error patterns before making any modification to the data block.
  • encryption and decryption are performed by sending only a minimal amount of confidential information—the seed—across the computer bus.
  • the encryption mask is not exposed on the bus. Since the drive manufacturer of a drive such as a DVD-ROM drive will typically sell the decoder card as well, the drive manufacturer can specify matching same pseudorandom number generators on the drive and the decoder card.
  • the host processor can perform error code correction without having access to the encrypted data.
  • selective encryption can be performed, in which case the host processor has access to only selected information. Corrected non-confidential data is immediately accessible for use.
  • DVD-ROM drive Although the invention has been described in connection with a DVD-ROM drive, it is not so limited. The invention is especially applicable where forward error correction is needed, and where it is not practical for the sender to retransmit data.
  • Data storage devices other than DVD players include CD players, Digital Data Storage (DDS) players, and Digital Video Cassette (DVC) players.
  • DDS Digital Data Storage
  • DVC Digital Video Cassette
  • Other applications include space and mobile communication devices.
  • the source of the ECC blocks is not limited to a ROM drive.
  • the DVD-ROM drive could access an apriori encryption mask from a ROM.
  • the DVD-decoder card would also access the encryption mask from a ROM. In addition to reducing processing power, this embodiment would avoid the need for the DVD-ROM drive to pass the seed to the DVD decoder card.

Abstract

A drive such as a DVD-ROM drive encrypts an error code correction (ECC) block in a manner that still retains the error correction capabilities of the ECC block. Encryption is performed by generating an encryption mask including a plurality of random numbers and redundancy data. The encryption mask is bitwise XOR'ed with the ECC block. The product of the bitwise XOR is an encrypted ECC block, which can then be transmitted over an unsecured bus to a host processor. The integrity of the ECC codewords is preserved. This allows the host processor to perform some or all error correction on the encrypted ECC block. Error correction can be removed from the drive altogether, or error correction can be performed by the drive and additionally by the host processor, if necessary. User data in the ECC block can be XOR'ed entirely with random numbers, or the user data can be XOR'ed selectively with random numbers and zeros to selectively encrypt a portion of the user data. Portions of the ECC block XOR'ed with zeros or not XOR'ed at all are not encrypted. If the encrypted data is not required downstream, it is left unencrypted or it is discarded. If the encrypted data is required downstream by an entity such as a trusted decoder, information needed to decrypt the data is transmitted in a secure manner to that entity.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • This is a continuation-in-part of Ser. No. 08/896,002 filed Jul. 15, 1997, now. [0001]
  • BACKGROUND OF THE INVENTION
  • The invention relates generally to data storage and transmission. More particularly, the invention relates to the encryption of data that includes codewords used for forward error correction. [0002]
  • Forward error correction is commonly performed in data transmission channels and data storage devices in order to maintain the integrity of user data. Redundancy data is added to the user data prior to transmission or storage. In data storage devices such as hard disk drives, compact disk (CD) players and Digital Video Disk (DVD) players, errors can occur due to defects in the storage medium and noise in the read channels. If an error is detected in the transmitted or stored data, the redundancy data allows the error to be corrected. [0003]
  • There are various methods of performing forward error correction. For instance, Reed-Solomon Product Code (“RS-PC”) is used in CD and DVD players. [0004]
  • The CD and DVD players include error correction circuits for performing the forward error correction. The error correction circuits are computationally intensive and are typically implemented in a hardwired or inflexible manner. Additionally, the error correction circuits tend to be expensive in processing circuitry and high-speed memory. [0005]
  • Recent increases in processing power of personal computers will make it practical to perform full or partial forward error correction in the computer's host processor instead of the data storage device. Allowing the host processor to perform error correction would allow for more flexible error correction methods to be utilized. For example, the host processor could execute a default routine that is fast and that could correct a large majority of errors. Errors that could not be corrected by the default routine would be corrected by a more complex routine, such as a “heroic data recovery” routine. Heroic recovery is especially valuable in connection with long term storage of data. Hardcopies of valuable data might be destroyed following storage on a storage medium (e.g., a platter of a hard drive or a CD). In the months and years following the storage, long-term degradation of the storage medium might occur. A typical error correction circuit in a storage device might not be able to recover all of the data from the degraded storage medium. If such data cannot be recovered, it might be lost forever. The host processor, however, is more likely to recover the data using heroic data recovery routines. [0006]
  • The task of performing error correction could be shifted entirely or partially to the host processor. Consequently, the cost of the storage device could be reduced. The decoder circuit could be reduced or eliminated and expensive static random access memory (RAM) could be reduced in size. [0007]
  • In the alternative, the task of performing error correction could be divided between the host processor and the error correction circuit in the storage device. The task of correcting errors would fall initially on the error correction circuit, which would utilize a simple error correction algorithm that identifies and corrects the majority of errors. In the event the error correction circuit could not correct a data block, the task would be shifted to the host processor, which would use a more complex error correction routine. Such flexibility would allow for a fast, inexpensive error correction circuit to be used by the storage device. Consequently, the cost of the storage device would be lowered and the reliability of performing error correction would be improved. [0008]
  • However, there can be problems associated with performing the error correction in the host processor, especially after data encryption has been performed on data including error code correction (“ECC”) codewords. If the ECC codewords are encrypted, the integrity of the codewords is typically destroyed. Consequently, errors in the data cannot be corrected by the host processor. [0009]
  • Yet there is an increasing pressure in the industry to encrypt the data before the data is sent from the storage device to the host processor. This is especially true for DVD-ROM drives on computers. Data is sent from a DVD-ROM drive to a DVD decoder card over a computer bus, which is not secure. There is a genuine concern that unencrypted data placed on the bus could be intercepted, and unauthorized copies of high quality movies, music, and proprietary data could be made. If unencrypted data were sent to the host processor for error correction, it would be vulnerable to theft and unauthorized copying. Therefore, the data is not error code corrected in the host processor. Instead, error code correction is performed on the data in the DVD-ROM drive. The error code corrected data is then encrypted before being sent to the DVD decoder card via the unsecured computer bus. [0010]
  • Thus far, the host processor has been precluded from performing error correction due to the need for secure transmissions over the computer bus. Consequently, the cost of the DVD-ROM drive has not been reduced by eliminating the expensive decoder and reducing expensive RAM for performing error correction. Additionally, the flexibility of performing different error correction routines has not been available. [0011]
  • SUMMARY OF THE INVENTION
  • The present invention allows partial or full data encryption to be performed in the drive and partial or full error correction to be performed by the host processor. A block of ECC-encoded data is read. The ECC block includes error correction codewords. An encryption mask is provided and bitwise XOR'ed with the ECC block. The product of the bitwise XOR is an encrypted ECC block, which can then be transmitted to the host processor. The integrity of the codewords is preserved. This allows the host processor to perform some or all error correction on encrypted ECC block. [0012]
  • User data in the ECC block can be XOR'ed entirely with numbers in the encryption mask, or the user data can be XOR'ed selectively with numbers in the encryption mask. Portions of the ECC block XOR'ed with zeros or not XOR'ed at all are not encrypted. [0013]
  • Other aspects and advantages of the present invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention. [0014]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a block schematic diagram of various components of a computer system according to the present invention; [0015]
  • FIG. 2 is flowchart of a method of performing error code correction and data encryption according to the invention; [0016]
  • FIG. 3 is a flowchart of an alternative method of performing error code correction and data encryption according to the invention; [0017]
  • FIG. 4 illustrates a simplified layout of an RS-PC block; [0018]
  • FIG. 5 illustrates a bitwise XOR operation performed by the computer system; and [0019]
  • FIG. 6 is a block diagram showing an RS-PC block, an encryption mask, and a product of a bitwise XOR of the RS-PC block and the encryption mask. [0020]
  • DETAILED DESCRIPTION OF THE INVENTION
  • As shown in the drawings for purposes of illustration, the invention is embodied in a system including a host processor and a storage device that reads data from a storage medium (e.g., a compact disc or DVD disc). The data includes ECC codewords. The storage device performs data encryption on the data read from the storage medium, but preserves the integrity of error correction codewords. This allows the encrypted data to be transmitted to the host processor over an unsecure computer bus. The host processor can then perform error correction on the encrypted data. Afterwards, decryption can be performed by a trusted entity. Thus, the invention allows partial or full error correction of ECC codewords to be performed by a host computer without the danger of exposing confidential data on an unsecured computer bus. [0021]
  • In the paragraphs that follow, the invention will be described in connection with a computer system including a DVD-ROM drive and associated DVD-ROM electronics. It is understood that the invention is not limited to a DVD-ROM drive, and that the DVD-ROM is mentioned merely to facilitate an understanding of the invention. [0022]
  • FIG. 1 shows various components of a [0023] computer system 10. The computer system 10 includes a computer bus 12 and a host processor 14 (e.g., a central processing unit) connected to the computer bus 12. The system 10 further includes a DVD-ROM drive 16 including a DVD-ROM reader 18 that is operable to read RS-PC blocks stored on a DVD-ROM disc. RS-PC blocks are read from the DVD disc and, under control of a controller 20, buffered in random access memory (RAM) 22.
  • Each RS-PC block includes M rows of user data, with each word of user data being N-bytes long. Appended to each of the M words is RS-PC redundancy data having a length of p-bytes. Thus, each row in the RS-PC block has (N+p) bytes, whereby the RS-PC block has (N+p) columns. Appended to each of the (N+p) columns is RS-PC redundancy data having a length of q-bytes. Resulting is an RS-PC block having (M+q)×(N+p) bytes. Such an RS-[0024] PC block 602 is shown in FIG. 6.
  • The DVD-[0025] ROM drive 16 does not need to perform error-code correction on the buffered RS-PC blocks. Instead, the DVD-ROM drive 16 performs encryption on the buffered RS-PC blocks. A first pseudorandom generator 24 generates an M×N block of random numbers, each number having a length of one byte. The random numbers may, for example, be generated from a seed that is accessed from a ROM module 26.
  • The M×N block of random numbers is supplied to an RS-[0026] PC encoder 28, which performs RS-PC encoding on the M×N block. An output of the encoder 28 provides an encryption mask having (M+q)×(N+p) bytes. The encoder 28, which includes a plurality of linear feedback shift registers, is relatively simple and inexpensive to implement. Additionally, the RS-PC encoding can be performed relatively quickly. The encoder 28 uses the same algorithm that was used for generating the codewords stored on the DVD disc.
  • An XOR circuit [0027] 30 performs a bitwise exclusive OR (XOR) of the RS-PC block and the encryption mask. A bitwise XOR operation is illustrated in FIG. 3 and discussed below. Resulting from the bitwise XOR is an (M+q)×(N+p) encrypted block including encrypted user data and encrypted RS-PC redundancy data.
  • Under the control of the controller [0028] 20, the encrypted block is placed on the computer bus 12 and stored in a buffer 32 for error correction. Even though the computer bus 12 is unsecured, the user data in the encryption block is encrypted and, therefore, protected. Thus, the user data is not made readily available to bus sniffer devices such as storage scopes and data analyzers that could analyze data transferred across the computer bus 12.
  • The [0029] host processor 14 is instructed to perform error correction by executable instructions store in memory 34. While the instructions are being executed by the host processor 14, the host processor 14 performs RS-PC correction on the encrypted data block stored in the buffer 32.
  • The [0030] host processor 14 sends the still encrypted, but now error-corrected, (M+q)×(N+p) block to a DVD decoder card 36 via the computer bus 12. The encrypted block is received and stored in a buffer 37 on the DVD decoder card 36. If the DVD decoder card 36 performs decryption on the encrypted block, it accesses the seed stored in the ROM 26, that is, the seed from which the encryption mask was generated. Modules 38 and 40 perform authentication and exchange of the seed between the DVD-ROM drive 16 and the DVD decoder card 36. Authentication and exchange can be performed in a conventional manner.
  • A second [0031] pseudorandom generator 42 on the DVD decoder card 36 generates the same sequence of random numbers generated by the first pseudorandom generator 24, and a second encoder 44 generates an M×N decryption mask from the random numbers. The decryption mask is identical to the M×N block of random numbers in the encryption mask. Thus, the decryption mask is generated by sending a minimum amount of data (i.e., the seed) via the authentication and exchange modules 38 and 40.
  • A [0032] second XOR circuit 46 then performs a bitwise XOR of the decryption mask and the M×N user data in the encrypted block stored in the buffer 37. The product of the bitwise XOR is an unencrypted M×N block of user data.
  • The [0033] DVD decoder card 36 also includes a Moving Pictures Experts Group (MPEG) decoder 48 which receives the RS-PC block and decodes the M×N byte block of decrypted user data according to an MPEG standard. The MPEG decoder 48 outputs a stream of uncompressed data, which is displayed on a video display. The uncompressed data is sent directly to the display or display memory. The uncompressed data is not transmitted on the computer bus 12.
  • The error-corrected encrypted block can be received by [0034] other entities 49 downstream the host processor 14. A downstream entity 49 could regenerate the encrypted block for subsequent data transmission. Encrypted data that is not accessed by the downstream entity 49 can be discarded by the downstream entity 49. If a downstream entity 49 is not allowed access to the data in the encrypted block, the seed is not sent to that downstream entity 49.
  • The [0035] drive 16 might also have basic error correction capability. For example, the drive could include a decoder 39 for performing on-the-fly error correction. If the decoder 39 cannot correct a data block, the data block is sent to the host processor 14. Such flexibility would allow a fast, inexpensive decoder 39 to be used for error correction. Such flexibility would also allow for more complex, more accurate error correction to be performed by the host processor 14.
  • FIGS. [0036] 4 to 6 show the bitwise XOR operation in greater detail FIG. 4 shows a simplified version of an RS-PC block 400. The M×N block 405 of user data is 32K bytes. RS- PC redundancy data 403, 404 is associated with each row and each column in the block 400. The length of the RS-PC block 400 is 182 bytes, of which 172 bytes are user data 405. The remaining ten bytes are RS-PC redundancy data 403 that are added for error recovery. The number of rows in the RS-PC block 400 is 208 with sixteen rows including RS-PC redundancy data 404. A header 401 contains information relating to copy protection, in particular, an encryption key. Under normal circumstances the user receives this data and never needs to know the contents of the header 401 or the RS- PC redundancy data 403 and 404. That information is extracted and checked while the data is in the drive. The M×N block 405 of user data might also include a lead-in area (not shown) that contains highly confidential data.
  • Referring to FIG. 5, a [0037] row 501 of an RS-PC block includes 172 bytes of user data and tens bytes of RS-PC redundancy data that is created from the user data in the row 501. A row 502 of an encryption mask includes 172 bytes of random numbers and ten bytes of RS-PC redundancy data that is created from the 172 bytes of random numbers in the row 502. When the two rows 501 and 502 are bitwise XOR-ed together, a row 504 of an encrypted block is formed. The row 504 of the encrypted block includes 172 bytes of encrypted data and ten bytes of redundancy data, which provides a valid RS-PC codeword for the 172 bytes of encrypted data in the row 504. Decryption is performed by XOR'ing the row 504 of the encrypted block with the row 502 of the encryption mask.
  • The bitwise XOR operation can be extended to cover entire blocks. The length of the seed stored in the [0038] ROM 26 for the first pseudorandom number generator 24 is long enough to ensure the required cryptographic strength. Once the 32K byte are of random numbers is created, the associated RS-PC redundancy data are then calculated to complete the encryption mask. Because calculating the RS-PC redundancy data is a relatively trivial matter, little processing power is needed to calculate the RS-PC redundancy data.
  • As a result of the foregoing operations, the error correction capability of the RS-PC codewords is preserved. Referring to FIG. 6, noise and defects in the storage media introduce errors that are scattered throughout the original RS-[0039] PC block 602. The errors are indicated by dots. The encryption mask 601 does not contain errors. When the encryption mask 601 and the RS-PC block 602 are XOR-ed, the integrity of the error correction capability is maintained. Thus, the encrypted data block 603 contains errors in the same locations as the RS-PC block 602 and the RS-PC codewords are all consistent so that error correction can be successfully performed. Even if there were errors in the encryption mask 601, errors could still be corrected and the encryption and subsequent error correction would operate satisfactorily.
  • The processing power required by the [0040] pseudorandom number generators 24, 42 and the RS-PC encoder 28 is not significant when compared to the processing power required to perform error code correction. The invention, therefore, imposes only a small burden on the DVD-ROM drive 16 and DVD decoder card 36, while removing the larger burden of performing error code correction. Error code correction can be shared between the DVD-ROM drive 16 and the host processor 14 or left entirely to the host processor 14.
  • The basic steps of the invention are as follows: [0041]
  • 1) A seed is provided. The length of the seed is long enough to ensure the required cryptographic strength. [0042]
  • 2) A block of random numbers is generated by a pseudorandom number generator, which is seeded or initialized by the seed. [0043]
  • 3) Error correction codewords are generated according to the same error correction code generation scheme as was used for the RS-PC block stored on the storage medium. In this way, a sequence of codewords is generated, all of which are determined by the random number seed and which are consistent with the original block stored on the storage medium. Resulting is an encryption mask. [0044]
  • 4) A bitwise XOR is performed between the original RS-PC block and the encryption mask. [0045]
  • 5) The block resulting from the bitwise XOR operation also includes valid codewords which contain any errors contained in the codewords read from the storage medium. No additional errors are introduced because the encryption mask does not contain any errors. The block resulting from the bitwise XOR operation is effectively encrypted and can be sent to the host processor or other processing entity for error correction without risk of unauthorized copying of the original data. [0046]
  • 6) Error code correction is performed by the host processor. An error-corrected, but still encrypted block is sent downstream the host processor without risk of unauthorized copying of the original data. [0047]
  • 7) If decryption is performed by a trusted entity (e.g., an MPEG decoder) downstream the host processor, only the seed need be transferred to the trusted entity. The seed can be transferred in a secure manner using a key that is authenticated and exchanged in accordance with standard techniques. The trusted entity then generates a decryption mask using the same random number pattern used by the encryption mask for encryption of the user data. The decryption mask is bitwise XOR-ed with the user data of the error corrected, but still encrypted data block. Resulting is an M×N block of decrypted, error-code corrected user data. [0048]
  • 8) If an entity downstream the host processor does not perform decryption on the block, the seed is not transferred to that entity. Similarly, if an entity downstream the host processor is not allowed access to the data in the block, the seed is not sent to that entity. [0049]
  • Thus far, the invention has been described in connection with encryption of an entire RS-PC block. However, situations might arise where it is not necessary to encrypt the entire RS-PC block. Only a portion of the RS-PC block might need to be encrypted. For example, a portion of the lead-in area might contain confidential data relating to encryption. However, the initial bytes of the 172×192 block of user data (i.e., the header) contains address and other header information that are not confidential. Therefore encryption mask bytes corresponding to the header are all zeroes, and the remaining bytes are pseudo random numbers. This allows the [0050] host processor 14 to error-correct and confirm the block address, but not to have access to the confidential data, (which it sends to the DVD decoder card 36). Thus, portions of the RS-PC block are selectively encrypted, thereby protecting the confidentiality of the data from the host processor 14 and perhaps other entities 49 downstream the host processor 14.
  • In another example, an ECC block read from the storage medium already contains encrypted information in certain areas. Therefore, the data that is already encrypted is not in danger of being exposed on the computer bus and, therefore, does not have to be further encrypted by the drive. However, the ECC block also contains highly confidential, title key data in the header area. Additional header information, such as the address, is not confidential. In this case, only the confidential data in the header needs to be protected. Therefore, the encryption mask contains all zeroes everywhere except at the confidential header data byte locations (which contain pseudo random numbers). This allows the host processor to error correct the ECC block, verify the address and pass on the user data, without gaining access to the confidential information. [0051]
  • FIG. 2 shows a method of selectively encrypting data in an ECC block. An ECC block is read from a storage medium (block [0052] 200). If only a portion of the data in the ECC block (e.g., a byte sequence) needs to be kept confidential, the drive (e.g., a CD ROM or DVD drive) provides an encryption mask including random numbers corresponding to the locations containing confidential data and zeroes elsewhere (block 202). The locations of the zeroes in the encryption mask can be determined by convention. For example, if by convention, the header information is to be protected, the encryption mask will contain random numbers at the header locations and zeroes elsewhere. The encryption mask also includes ECC redundancy data for the random numbers and zeros.
  • Next, the encryption mask block is bitwise XOR'ed with the ECC block (block [0053] 204). The partially-encrypted block that results includes valid ECC codewords, encrypted data at the header location, and unencrypted data elsewhere.
  • The partially-encrypted block is sent to the host processor, which performs error code correction (block [0054] 206). Additionally, the host processor accesses the unencrypted information (block 208).
  • The error-corrected block is then sent to one or more additional entities (block [0055] 210). At each entity a random data sequence may either be reused for processing subsequent data, or a new random data sequence may be generated for each quantity of data to be processed. Additional encryption, either full or partial, by each additional entity would add additional layers of protection. It would also allow selected data to be made available to selected entities. The corrected non-confidential data would be available for immediate use. Seeds would not be sent to entities not performing decryption or not having access to the confidential data.
  • When generating the encryption mask, filling in the zeroes is not necessary. Instead, random numbers can be provided and the redundancy bytes can be generated from the random numbers and their locations. Selective portions of the ECC block can then be bitwise XOR'ed with the random numbers and the redundancy bytes. [0056]
  • FIG. 3 shows a method in which a drive performs basic ECC and the host processor performs more complex error correction. The drive reads an ECC block from a storage medium and buffers the ECC block (block [0057] 300). The drive includes a relatively simple circuit that performs a simple error correction algorithm for identifying and correcting the majority of errors in the buffered ECC block (block 302). In the event the error correction circuit cannot correct a data block, some or all of the buffered ECC block is encrypted (block 304) and sent to the host processor (block 306). The host processor then performs a more complex error correction routine to recover the errors (block 308). Such flexibility would allow for a fast, inexpensive error correction circuit to be used in the drive, which would lower the cost of the drive and improve the speed of performing error correction. Additionally, error correction capability would be improved. This is particularly important for long-term storage of data.
  • Thus disclosed is an invention in which ECC-encoded data is encrypted without affecting the integrity of the ECC codewords. The invention allows encrypted data to be error code corrected in the host processor and subsequently decrypted. Performing error code correction in the host processor, in turn, allows for the cost of the storage device to be lowered by reducing expensive ECC circuitry and reducing static RAM. [0058]
  • Another advantage of performing ECC in the host processor is that the host processor, unlike hardware, has the flexibility to utilize different ECC routines. Whereas a hardware circuit is typically restricted to using the same ECC algorithm or set of algorithms for all situations, the host processor can use different algorithms. For example, the host processor could analyze the entire ECC block without modifying (i.e., correcting) any data and then decide upon the best strategy to avoid miscorrection. Miscorrection of data can be a problem, especially during on-the-fly processing. A hardware RS-PC decoder typically performs error code correction on the fly and might miscorrect data and, consequently, increase the number of errors in the data block. Miscorrection further increases the likelihood of the block being uncorrectable. A more flexible approach adapted by the host processor could avoid this problem by analyzing the data and error patterns before making any modification to the data block. [0059]
  • Among other advantages, encryption and decryption are performed by sending only a minimal amount of confidential information—the seed—across the computer bus. The encryption mask is not exposed on the bus. Since the drive manufacturer of a drive such as a DVD-ROM drive will typically sell the decoder card as well, the drive manufacturer can specify matching same pseudorandom number generators on the drive and the decoder card. [0060]
  • The host processor can perform error code correction without having access to the encrypted data. In the alternative, selective encryption can be performed, in which case the host processor has access to only selected information. Corrected non-confidential data is immediately accessible for use. [0061]
  • Although the invention has been described in connection with a DVD-ROM drive, it is not so limited. The invention is especially applicable where forward error correction is needed, and where it is not practical for the sender to retransmit data. Data storage devices other than DVD players include CD players, Digital Data Storage (DDS) players, and Digital Video Cassette (DVC) players. Other applications include space and mobile communication devices. Thus, the source of the ECC blocks is not limited to a ROM drive. [0062]
  • Specific embodiments of the invention have been described and illustrated above. However, the invention is not limited to the specific forms or arrangements of parts so described and illustrated. For example, the invention can use error correction methods other than the Reed-Solomon Product Code. This, of course, will depend upon the encryption method used for the data stored on the storage medium. [0063]
  • Instead of generating a seed and an encryption mask, the DVD-ROM drive could access an apriori encryption mask from a ROM. The DVD-decoder card would also access the encryption mask from a ROM. In addition to reducing processing power, this embodiment would avoid the need for the DVD-ROM drive to pass the seed to the DVD decoder card. [0064]
  • Therefore, the invention is not limited to the specific embodiments described and illustrated above. Instead, the invention is construed according to the claims that follow. [0065]

Claims (25)

What is claimed is:
1. A system comprising:
a computer bus;
a host processor connected to the computer bus, the host processor being programmed to perform error code correction;
a drive including means for providing a block of ECC-encoded data; means for providing an encryption mask; means for performing a bitwise XOR of the encryption mask and the block of ECC-encoded data, a product of the bitwise XOR being an encrypted block, an output of the bitwise XOR means being coupled to the computer bus, whereby the encrypted block can be sent to the host processor via the computer bus for error code correction.
2. The system of
claim 1
, wherein the means for providing the encryption mask includes means for providing a seed, a pseudorandom data generator for generating a sequence of random numbers from the seed, and an ECC encoder for generating an encryption mask including first and second portions, the first portion including the random numbers, the second portion including redundancy data for the first portion.
3. The system of
claim 2
, further comprising means, coupled to the computer bus, for receiving the encrypted block from the host processor; means for receiving the seed from the drive; a second pseudorandom generator for generating a decryption mask from the seed; means for performing a second bitwise XOR of the decryption mask and user data in the encrypted block, a product of the second bitwise XOR providing unencrypted user data.
4. The system of
claim 3
, further comprising an MPEG decoder coupled to an output of the means for performing the second bitwise XOR.
5. The system of
claim 4
, wherein the drive is a DVD-ROM drive, and wherein a DVD decoder card includes the MPEG decoder, the means for receiving the encrypted block, the means for receiving the seed; the second pseudorandom generator and the means for performing the second bitwise XOR.
6. The system of
claim 1
, wherein the ECC block includes a first portion for user data and a second portion for redundancy data, and wherein the encryption mask includes third and fourth portions corresponding to the first and second portions, respectively, of the ECC block.
7. The system of
claim 6
, wherein the third portion is filled with a plurality of numbers, and wherein the fourth portion includes redundancy data generated from the third portion.
8. The system of
claim 6
, wherein the third portion is filled selectively with a plurality of numbers, and wherein the fourth portion includes redundancy data generated from the third portion.
9. The system of
claim 1
, wherein the ECC block is coded according to an error code correction method, and wherein the encryption mask is coded according to the same error code correction method.
10. The system of
claim 1
, wherein the drive further includes means for performing error code correction, and wherein the host processor also performs error code correction on the encrypted data sent by the drive.
11. A drive comprising:
means for reading an ECC block from a storage medium;
means for providing a seed;
a pseudorandom data generator for generating a sequence of random numbers from the seed;
means for generating an encryption mask including a sequence of random numbers and redundancy data, the random numbers being generated from the seed; and
means for performing a bitwise XOR of the encryption mask and the ECC block, a product of the bitwise XOR being an encrypted ECC block.
12. The drive of
claim 11
, wherein the ECC block includes a first portion for user data and a second portion for redundancy data, and wherein the encryption mask includes a third and fourth portions corresponding to the first and second portions, respectively, of the ECC block.
13. The drive of
claim 12
, wherein the third portion is filled entirely with random numbers, and wherein the fourth portion includes redundancy data generated from the third portion.
14. The drive of
claim 12
, wherein the third portion is filled selectively with random numbers and zeros, and wherein the fourth portion includes redundancy data generated from the third portion.
15. The drive of
claim 11
, wherein the ECC block is coded according to an error code correction method, and wherein the encryption mask is coded according to the same error code correction method.
16. The drive of
claim 11
, further comprising means for performing error code correction on the ECC block.
17. A method of transmitting secured data over a bus, the method comprising:
receiving an ECC block;
generating an encryption mask including a plurality of numbers and redundancy data;
performing a bitwise XOR of the encryption mask and the ECC block, a product of the bitwise XOR being an encrypted ECC block; and
sending the encrypted ECC block over the bus.
18. The method of
claim 17
, further comprising the step of using the host processor to perform error code correction on the encrypted block.
19. The method of
claim 17
, further comprising the step of performing partial error-correction on the ECC block before performing the bitwise XOR and sending the encrypted block sent over the bus.
20. The method of
claim 17
, wherein the ECC block includes a first portion for user data and a second portion for redundancy data, and wherein the step of generating the encryption mask includes the steps of filling a first portion of the encryption mask entirely with random numbers, and filling a second portion of the encryption mask with redundancy data for the first portion, the first and second portions of the encryption mask corresponding to the first and second portions of the ECC block.
21. The method of
claim 17
, wherein the ECC block includes a first portion for user data and a second portion for redundancy data, and wherein the step of generating the encryption mask includes the steps of filling a first portion of the encryption mask selectively with numbers and zeros, and filling a second portion of the encryption mask with redundancy data generated from the numbers, the first and second portions of the encryption mask corresponding to the first and second portions of the ECC block.
22. The method of
claim 17
, further comprising the step of decrypting the encrypted block, the step of decrypting including generating a decryption mask; and performing a bitwise XOR of the decryption mask and user data in the encrypted ECC block, a product of the bitwise XOR providing unencrypted user data.
23. The method of
claim 22
, wherein the encryption mask is generated during encryption via a seed and a random number generator algorithm, and wherein the decryption mask is generated during decryption by using the same seed and the same random number generator algorithm.
24. The method of
claim 17
, further comprising the step of regenerating the encrypted block for subsequent data transmission.
25. The method of
claim 17
, further comprising the step of reusing the random data block for encryption of subsequent data blocks.
US09/783,112 1997-07-17 2001-02-14 Method and apparatus for performing data encryption and error code correction Abandoned US20010018741A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US09/783,112 US20010018741A1 (en) 1997-07-17 2001-02-14 Method and apparatus for performing data encryption and error code correction

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/896,002 US6047069A (en) 1997-07-17 1997-07-17 Method and apparatus for preserving error correction capabilities during data encryption/decryption
US09/053,972 US6252961B1 (en) 1997-07-17 1998-04-02 Method and apparatus for performing data encryption and error code correction
US09/783,112 US20010018741A1 (en) 1997-07-17 2001-02-14 Method and apparatus for performing data encryption and error code correction

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US09/053,972 Continuation US6252961B1 (en) 1997-07-17 1998-04-02 Method and apparatus for performing data encryption and error code correction

Publications (1)

Publication Number Publication Date
US20010018741A1 true US20010018741A1 (en) 2001-08-30

Family

ID=46203327

Family Applications (2)

Application Number Title Priority Date Filing Date
US09/053,972 Expired - Lifetime US6252961B1 (en) 1997-07-17 1998-04-02 Method and apparatus for performing data encryption and error code correction
US09/783,112 Abandoned US20010018741A1 (en) 1997-07-17 2001-02-14 Method and apparatus for performing data encryption and error code correction

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US09/053,972 Expired - Lifetime US6252961B1 (en) 1997-07-17 1998-04-02 Method and apparatus for performing data encryption and error code correction

Country Status (1)

Country Link
US (2) US6252961B1 (en)

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020080971A1 (en) * 2000-12-15 2002-06-27 Yukiyasu Fukami Broardcast apparatus and reception apparatus for providing a storage service by which scrambled content is stored and descrambled using scrambling key list
US20040158703A1 (en) * 2003-02-12 2004-08-12 Martin Lund Method and system for providing synchronous running encoding and encryption
US20040196974A1 (en) * 1999-07-20 2004-10-07 Samsung Electronics Co., Ltd. Scrambler and scrambling method
GB2413743A (en) * 2004-04-29 2005-11-02 Sony Uk Ltd Encrypting MPEG compressed video by replacing codewords in data blocks such that the encrypted block is still suitable for video tape recorder formatting
US20060242429A1 (en) * 2004-12-21 2006-10-26 Michael Holtzman In stream data encryption / decryption method
US20060239450A1 (en) * 2004-12-21 2006-10-26 Michael Holtzman In stream data encryption / decryption and error correction method
US20060239449A1 (en) * 2004-12-21 2006-10-26 Michael Holtzman Memory system with in stream data encryption / decryption and error correction
DE102005031611A1 (en) * 2005-07-06 2007-01-11 Infineon Technologies Ag Proof of a change in the data of a data record
US20070172053A1 (en) * 2005-02-11 2007-07-26 Jean-Francois Poirier Method and system for microprocessor data security
US7320069B1 (en) * 2003-02-14 2008-01-15 Novell, Inc. Selective encryption of media data
US20090122670A1 (en) * 2005-09-09 2009-05-14 Searete Llc Data retrieval systems
US20100034065A1 (en) * 2005-05-09 2010-02-11 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Rotation responsive disk activation and deactivation mechanisms
US20100058004A1 (en) * 2005-05-09 2010-03-04 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Method of manufacturing a limited use data storing device
US7813704B1 (en) * 1999-04-22 2010-10-12 Siemens Aktiengesellschaft Method for regulating the transmitter power in a radio system and corresponding radio system
US20100277828A1 (en) * 2006-06-19 2010-11-04 Searette Llc, A Limited Liability Corporation Of The State Of Delaware Method and system for fluid mediated disk activation and deactivation
US20110019509A1 (en) * 2005-05-09 2011-01-27 Searete Llc, A Limited Liability Corporation Of State Of Delaware Limited use data storing device
US7916592B2 (en) 2005-05-09 2011-03-29 The Invention Science Fund I, Llc Fluid mediated disk activation and deactivation mechanisms
US7916615B2 (en) 2005-06-09 2011-03-29 The Invention Science Fund I, Llc Method and system for rotational control of data storage devices
US20110181981A1 (en) * 2005-05-09 2011-07-28 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Method and system for rotational control of data storage devices
US20110302404A1 (en) * 2010-06-04 2011-12-08 Leanics Corporation System for secure variable data rate transmission
US8089839B2 (en) 2005-05-09 2012-01-03 The Invention Science Fund I, Llc Method and system for fluid mediated disk activation and deactivation
US8099608B2 (en) 2005-05-09 2012-01-17 The Invention Science Fund I, Llc Limited use data storing device
US8140745B2 (en) 2005-09-09 2012-03-20 The Invention Science Fund I, Llc Data retrieval methods
US8159925B2 (en) 2005-08-05 2012-04-17 The Invention Science Fund I, Llc Limited use memory device with associated information
US8462605B2 (en) 2005-05-09 2013-06-11 The Invention Science Fund I, Llc Method of manufacturing a limited use data storing device
US20150154111A1 (en) * 2013-12-04 2015-06-04 Sandisk Technologies Inc. Apparatus and method of offloading processing from a data storage device to a host device
US9215067B2 (en) 2013-04-05 2015-12-15 International Business Machines Corporation Achieving storage efficiency in presence of end-to-end encryption using downstream decrypters
US9396752B2 (en) 2005-08-05 2016-07-19 Searete Llc Memory device activation and deactivation

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100331863B1 (en) * 1998-11-03 2002-05-09 서평원 Apparatus and Method of Cryptographing Data in the Network
JP2000242440A (en) * 1999-02-25 2000-09-08 Alps Electric Co Ltd Disk device
US6760438B1 (en) * 1999-07-01 2004-07-06 Nortel Networks Limited System and method for Viterbi decoding on encrypted data
US7389466B1 (en) * 1999-08-12 2008-06-17 Texas Instruments Incorporated ECC in computer system with associated mass storage device, and method for operating same
US20010034838A1 (en) * 2000-01-14 2001-10-25 Motoshi Ito Control program, device including the control program, method for creating the control program, and method for operating the control program
JP2001318768A (en) * 2000-03-02 2001-11-16 Sony Computer Entertainment Inc Entertainment device, component therefor, method for loading digital information with entertainment device and computer program
JP2002132456A (en) * 2000-10-20 2002-05-10 Sony Corp Information recording device, information reproducing device, information recording method, information reproducing method, information recording medium and program providing medium
US6372974B1 (en) * 2001-01-16 2002-04-16 Intel Corporation Method and apparatus for sharing music content between devices
US6765739B2 (en) 2002-03-18 2004-07-20 Hewlett-Packard Development Company, L.P. Method and apparatus for discouraging duplication of digital data
JP4112520B2 (en) * 2004-03-25 2008-07-02 株式会社東芝 Correction code generation apparatus, correction code generation method, error correction apparatus, and error correction method
EP1607821A1 (en) * 2004-06-17 2005-12-21 Nagracard S.A. Method for secure software upgrade in a security module
JP4643978B2 (en) * 2004-12-01 2011-03-02 ルネサスエレクトロニクス株式会社 Scramble circuit, descramble circuit and method, and disk device
US8271805B2 (en) * 2005-02-04 2012-09-18 Sony Computer Entertainment Inc. Methods and apparatus for providing a secure buffer
US7571368B1 (en) 2006-01-26 2009-08-04 Promethean Storage Llc Digital content protection systems and methods
US8243922B1 (en) 2006-02-24 2012-08-14 Hitachi Global Storage Technologies Netherlands B.V. Digital content modification for content protection
US7996899B1 (en) 2006-02-24 2011-08-09 Hitachi Global Storage Technologies Netherlands B.V. Communication systems and methods for digital content modification and protection
US7613915B2 (en) 2006-11-09 2009-11-03 BroadOn Communications Corp Method for programming on-chip non-volatile memory in a secure processor, and a device so programmed
TWI332611B (en) * 2007-05-24 2010-11-01 Realtek Semiconductor Corp Method for writing data in flash memory and error correction coding/decoding method thereof
KR20090014828A (en) * 2007-08-07 2009-02-11 삼성전자주식회사 Flash memory system encrypting error correction code and encryption method of flash memory system
US20120281832A1 (en) * 2010-04-01 2012-11-08 University Of Mississippi Secure wireless communication transceiver
KR20120070873A (en) * 2010-12-22 2012-07-02 한국전자통신연구원 Subchannel prevention masked addition operator
JP2013031151A (en) 2011-06-20 2013-02-07 Renesas Electronics Corp Encryption communication system and encryption communication method
WO2013074119A1 (en) * 2011-11-18 2013-05-23 Intel Corporation Inter carrier interference cancellation for orthogonal frequency domain multiplexing receivers
US10642992B2 (en) * 2013-01-04 2020-05-05 Pure Storage, Inc. Password augmented all-or-nothin transform
US20150311921A1 (en) * 2014-04-25 2015-10-29 Kabushiki Kaisha Toshiba Memory controller, storage device and decoding method
US11290106B2 (en) 2019-10-21 2022-03-29 Stmicroelectronics S.R.L. Low-power digital signal processing

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4172213A (en) * 1977-11-17 1979-10-23 Burroughs Corporation Byte stream selective encryption/decryption device
US4377862A (en) * 1978-12-06 1983-03-22 The Boeing Company Method of error control in asynchronous communications
US4527273A (en) * 1981-10-21 1985-07-02 Fujitsu Limited Magnetic disc device
US4780905A (en) * 1984-11-26 1988-10-25 Nightwatch, Inc. Computer data encryption system
US5128996A (en) * 1988-12-09 1992-07-07 The Exchange System Limited Partnership Multichannel data encryption device
US5293388A (en) * 1990-11-13 1994-03-08 Hewlett-Packard Company Compression/decompress with ECC data flow architecture
US5325430A (en) * 1991-02-05 1994-06-28 Toven Technologies Inc. Encryption apparatus for computer device
US5343525A (en) * 1992-08-05 1994-08-30 Value Technology Inc. Hard disk data security device
US5355412A (en) * 1992-03-11 1994-10-11 Nokia Technology Gmbh Identifying secret data messages in a one-direction multipoint network
US5594862A (en) * 1994-07-20 1997-01-14 Emc Corporation XOR controller for a storage subsystem
US5825879A (en) * 1996-09-30 1998-10-20 Intel Corporation System and method for copy-protecting distributed video content
US6003151A (en) * 1997-02-04 1999-12-14 Mediatek Inc. Error correction and detection system for mass storage controller

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4637023A (en) * 1983-02-14 1987-01-13 Prime Computer, Inc. Digital data error correction method and apparatus
US4754482A (en) * 1985-11-26 1988-06-28 Samco Investment Company Method and apparatus for synchronizing encrypting and decrypting systems
JP2569478B2 (en) * 1986-02-19 1997-01-08 ソニー株式会社 Data recording device
JP2590821B2 (en) * 1986-05-23 1997-03-12 ソニー株式会社 Magnetic recording / reproducing device
US4833679A (en) * 1987-08-31 1989-05-23 International Business Machines Corporation Method and apparatus with improved error correction and error information availability
US5412667A (en) * 1993-07-08 1995-05-02 Commodore Electronics Limited Decoder for cross interleaved error correcting encoded data

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4172213A (en) * 1977-11-17 1979-10-23 Burroughs Corporation Byte stream selective encryption/decryption device
US4377862A (en) * 1978-12-06 1983-03-22 The Boeing Company Method of error control in asynchronous communications
US4527273A (en) * 1981-10-21 1985-07-02 Fujitsu Limited Magnetic disc device
US4780905A (en) * 1984-11-26 1988-10-25 Nightwatch, Inc. Computer data encryption system
US5128996A (en) * 1988-12-09 1992-07-07 The Exchange System Limited Partnership Multichannel data encryption device
US5293388A (en) * 1990-11-13 1994-03-08 Hewlett-Packard Company Compression/decompress with ECC data flow architecture
US5325430A (en) * 1991-02-05 1994-06-28 Toven Technologies Inc. Encryption apparatus for computer device
US5355412A (en) * 1992-03-11 1994-10-11 Nokia Technology Gmbh Identifying secret data messages in a one-direction multipoint network
US5343525A (en) * 1992-08-05 1994-08-30 Value Technology Inc. Hard disk data security device
US5594862A (en) * 1994-07-20 1997-01-14 Emc Corporation XOR controller for a storage subsystem
US5825879A (en) * 1996-09-30 1998-10-20 Intel Corporation System and method for copy-protecting distributed video content
US6003151A (en) * 1997-02-04 1999-12-14 Mediatek Inc. Error correction and detection system for mass storage controller

Cited By (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7813704B1 (en) * 1999-04-22 2010-10-12 Siemens Aktiengesellschaft Method for regulating the transmitter power in a radio system and corresponding radio system
US20040196974A1 (en) * 1999-07-20 2004-10-07 Samsung Electronics Co., Ltd. Scrambler and scrambling method
US20040196973A1 (en) * 1999-07-20 2004-10-07 Samsung Electronics Co., Ltd. Scrambler and scrambling method
US20020080971A1 (en) * 2000-12-15 2002-06-27 Yukiyasu Fukami Broardcast apparatus and reception apparatus for providing a storage service by which scrambled content is stored and descrambled using scrambling key list
US7391866B2 (en) * 2000-12-15 2008-06-24 Matsushita Electric Industrial Co., Ltd. Broadcast apparatus and reception apparatus for providing a storage service by which scrambled content is stored and descrambled using scrambling key list
US20040158703A1 (en) * 2003-02-12 2004-08-12 Martin Lund Method and system for providing synchronous running encoding and encryption
US8024558B2 (en) 2003-02-12 2011-09-20 Broadcom Corporation Method and system for providing synchronous running encoding and encryption
US20100310067A1 (en) * 2003-02-12 2010-12-09 Martin Lund Method and System for Providing Synchronous Running Encoding and Encryption
US7730296B2 (en) * 2003-02-12 2010-06-01 Broadcom Corporation Method and system for providing synchronous running encoding and encryption
US7320069B1 (en) * 2003-02-14 2008-01-15 Novell, Inc. Selective encryption of media data
GB2413743A (en) * 2004-04-29 2005-11-02 Sony Uk Ltd Encrypting MPEG compressed video by replacing codewords in data blocks such that the encrypted block is still suitable for video tape recorder formatting
US8396208B2 (en) 2004-12-21 2013-03-12 Sandisk Technologies Inc. Memory system with in stream data encryption/decryption and error correction
US20060242429A1 (en) * 2004-12-21 2006-10-26 Michael Holtzman In stream data encryption / decryption method
US20060239450A1 (en) * 2004-12-21 2006-10-26 Michael Holtzman In stream data encryption / decryption and error correction method
US20060239449A1 (en) * 2004-12-21 2006-10-26 Michael Holtzman Memory system with in stream data encryption / decryption and error correction
US20070172053A1 (en) * 2005-02-11 2007-07-26 Jean-Francois Poirier Method and system for microprocessor data security
US20100058004A1 (en) * 2005-05-09 2010-03-04 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Method of manufacturing a limited use data storing device
US8745347B2 (en) 2005-05-09 2014-06-03 The Invention Science Fund I, Llc Limited use data storing device
US20100034065A1 (en) * 2005-05-09 2010-02-11 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Rotation responsive disk activation and deactivation mechanisms
US8220014B2 (en) 2005-05-09 2012-07-10 The Invention Science Fund I, Llc Modifiable memory devices having limited expected lifetime
US8099608B2 (en) 2005-05-09 2012-01-17 The Invention Science Fund I, Llc Limited use data storing device
US20110019509A1 (en) * 2005-05-09 2011-01-27 Searete Llc, A Limited Liability Corporation Of State Of Delaware Limited use data storing device
US7916592B2 (en) 2005-05-09 2011-03-29 The Invention Science Fund I, Llc Fluid mediated disk activation and deactivation mechanisms
US20110181981A1 (en) * 2005-05-09 2011-07-28 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Method and system for rotational control of data storage devices
US8462605B2 (en) 2005-05-09 2013-06-11 The Invention Science Fund I, Llc Method of manufacturing a limited use data storing device
US8218262B2 (en) 2005-05-09 2012-07-10 The Invention Science Fund I, Llc Method of manufacturing a limited use data storing device including structured data and primary and secondary read-support information
US8121016B2 (en) 2005-05-09 2012-02-21 The Invention Science Fund I, Llc Rotation responsive disk activation and deactivation mechanisms
US8089839B2 (en) 2005-05-09 2012-01-03 The Invention Science Fund I, Llc Method and system for fluid mediated disk activation and deactivation
US7916615B2 (en) 2005-06-09 2011-03-29 The Invention Science Fund I, Llc Method and system for rotational control of data storage devices
DE102005031611B4 (en) * 2005-07-06 2007-11-22 Infineon Technologies Ag Proof of a change in the data of a data record
US20070016768A1 (en) * 2005-07-06 2007-01-18 Infineon Technologies Ag Detection of a change of the data of a dataset
US8199914B2 (en) 2005-07-06 2012-06-12 Infineon Technologie Ag Detection of a change of the data of a dataset
DE102005031611A1 (en) * 2005-07-06 2007-01-11 Infineon Technologies Ag Proof of a change in the data of a data record
US9396752B2 (en) 2005-08-05 2016-07-19 Searete Llc Memory device activation and deactivation
US8159925B2 (en) 2005-08-05 2012-04-17 The Invention Science Fund I, Llc Limited use memory device with associated information
US20090122670A1 (en) * 2005-09-09 2009-05-14 Searete Llc Data retrieval systems
US8332724B2 (en) 2005-09-09 2012-12-11 The Invention Science Fund I, Llc Data retrieval systems
US8032798B2 (en) * 2005-09-09 2011-10-04 The Invention Science Fund I, Llc Data retrieval systems
US8140745B2 (en) 2005-09-09 2012-03-20 The Invention Science Fund I, Llc Data retrieval methods
US8264928B2 (en) 2006-06-19 2012-09-11 The Invention Science Fund I, Llc Method and system for fluid mediated disk activation and deactivation
US20100277828A1 (en) * 2006-06-19 2010-11-04 Searette Llc, A Limited Liability Corporation Of The State Of Delaware Method and system for fluid mediated disk activation and deactivation
US20110302404A1 (en) * 2010-06-04 2011-12-08 Leanics Corporation System for secure variable data rate transmission
US8416948B2 (en) * 2010-06-04 2013-04-09 Leanics Corporation System for secure variable data rate transmission
US9215067B2 (en) 2013-04-05 2015-12-15 International Business Machines Corporation Achieving storage efficiency in presence of end-to-end encryption using downstream decrypters
US9473297B2 (en) 2013-04-05 2016-10-18 International Business Machines Corporation Achieving storage efficiency in presence of end-to-end encryption using downstream decrypters
US20150154111A1 (en) * 2013-12-04 2015-06-04 Sandisk Technologies Inc. Apparatus and method of offloading processing from a data storage device to a host device
US9817749B2 (en) * 2013-12-04 2017-11-14 Sandisk Technologies Llc Apparatus and method of offloading processing from a data storage device to a host device

Also Published As

Publication number Publication date
US6252961B1 (en) 2001-06-26

Similar Documents

Publication Publication Date Title
US6252961B1 (en) Method and apparatus for performing data encryption and error code correction
JP4146934B2 (en) Encryption apparatus and encryption method
EP1855281B1 (en) Apparatus for writing data to a medium
KR100475199B1 (en) Data transmission method, data recording device, data recording medium and data reproducing device
US6851055B1 (en) Digital video recorder for encrypting/decrypting video programs in segments to facilitate trick play features
GB2443244A (en) Authenticated Encryption Method and Apparatus
EP1020856A2 (en) Data protection method using decryption key concealed in compliant mark
US6125183A (en) Cryptosystem for optical storage
US20040153918A1 (en) Tamper-resistant computer program product
JPH11266243A (en) Device and method for processing information
US9092619B2 (en) Data processing apparatus
JP3735591B2 (en) Signal processing apparatus, signal processing method, and storage medium
JP3683738B2 (en) Method and apparatus for performing data encryption and error code correction
US7313235B2 (en) Device and method of applying a parity to encrypt data for protection
JP3562132B2 (en) Data transmission method, data recording device, data recording medium, and data reproducing device
KR100734385B1 (en) Data processing apparatus, data recording apparatus, data playback apparatus, and data storage method
JP2004152409A (en) Decoder, computer program, and computer program transmitting/receiving system
WO2007128418A1 (en) Apparatus for writing data to a medium
US7707431B2 (en) Device of applying protection bit codes to encrypt a program for protection
KR20060090562A (en) Data processing apparatus, data recording apparatus, data playback apparatus, and data storage method
EP0855638A1 (en) Method and apparatus for encrypting and for decrypting data arranged in a data sector
JP2001094543A (en) Key information transmission and recording system
JP2001084693A (en) Control code read system
JP2023130311A (en) Method for protecting electronic computer against side-channel attacks, and electronic computer
JP2006013904A (en) Data transmitting device

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- AFTER EXAMINER'S ANSWER OR BOARD OF APPEALS DECISION