JP2000041031A - Method and device for executing data enciphery and error code correction - Google Patents

Method and device for executing data enciphery and error code correction

Info

Publication number
JP2000041031A
JP2000041031A JP11095876A JP9587699A JP2000041031A JP 2000041031 A JP2000041031 A JP 2000041031A JP 11095876 A JP11095876 A JP 11095876A JP 9587699 A JP9587699 A JP 9587699A JP 2000041031 A JP2000041031 A JP 2000041031A
Authority
JP
Japan
Prior art keywords
data
block
host processor
error correction
encrypted
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.)
Granted
Application number
JP11095876A
Other languages
Japanese (ja)
Other versions
JP3683738B2 (en
Inventor
Josh N 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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 US09/053,972 external-priority patent/US6252961B1/en
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JP2000041031A publication Critical patent/JP2000041031A/en
Application granted granted Critical
Publication of JP3683738B2 publication Critical patent/JP3683738B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

PROBLEM TO BE SOLVED: To encipher error code correction(ECC) encoding data without damaging the completeness of an ECC code word and to make an ECC circuit inexpensive. SOLUTION: A system is composed of a host processor 14 connected to a computer bus 12 so as to perform error correction, a providing means 18 for ECC encoding data for one block, means 24, 26 and 28 for performing enciphering mask and drive 16 equipped with an EX-OR 30 for each bit concerning the enciphering mask and ECC encoding data for one block, and the output of the EX-OR for each bit is coupled to the computer bus so that an enciphered block can be transmitted through the computer bus to the host processor for error correction.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、一般にはデータの
記憶及び伝送に関する。より詳細には本発明は、順方向
誤り修正に使用されるコードワードを含むデータの暗号
化に関する。
The present invention relates generally to data storage and transmission. More particularly, the present invention relates to encryption of data including codewords used for forward error correction.

【0002】[0002]

【従来の技術】順方向誤り修正は、ユーザデータの完全
性を維持するために、データ伝送チャネル及びデータ記
憶装置において実行されるのが普通である。伝送又は記
憶する前に、冗長データがユーザデータに追加される。
ハードディスクドライブ、コンパクトディスク(CD)
プレーヤ、ディジタルビデオディスク(DVD)プレー
ヤ等のデータ記憶装置では、記憶媒体の欠陥及び読み出
しチャネルでのノイズのために誤りが生じる可能性があ
る。伝送又は記憶データに誤りが検出された場合、冗長
データによってこの誤りを修正することができる。
2. Description of the Related Art Forward error correction is commonly performed on data transmission channels and data storage to maintain the integrity of user data. Before transmission or storage, redundant data is added to the user data.
Hard disk drive, compact disk (CD)
In data storage devices such as players, digital video disk (DVD) players, etc., errors can occur due to defects in the storage medium and noise in the read channel. If an error is detected in the transmitted or stored data, the error can be corrected by the redundant data.

【0003】順方向誤り修正を実行するための様々な方
法がある。例えばリード−ソロモンプロダクトコード
(「RS−PC」)が、CDプレーヤ及びDVDプレー
ヤに使用される。
There are various ways to perform forward error correction. For example, Reed-Solomon product code ("RS-PC") is used for CD players and DVD players.

【0004】CDプレーヤ及びDVDプレーヤには、順
方向誤り修正を実行するための誤り修正回路が含まれて
いる。この誤り修正回路は強力な計算能力を要求され、
通常はハードワイヤードすなわち柔軟性のない方式で実
装されている。その上、この誤り修正回路には処理回路
及び高速メモリが必要なため、コスト高になる傾向があ
る。
[0004] CD players and DVD players include an error correction circuit for performing forward error correction. This error correction circuit requires strong computing power,
Usually implemented in a hardwired or inflexible manner. In addition, since the error correction circuit requires a processing circuit and a high-speed memory, the cost tends to be high.

【0005】最近パーソナルコンピュータの処理能力が
向上したため、データ記憶装置の代わりに、コンピュー
タのホストプロセッサで全部又は一部の順方向誤り修正
を実行することが実用的になりつつある。ホストプロセ
ッサが誤り修正を実行できるようになると、より柔軟性
のある誤り修正方法が利用できる。例えばホストプロセ
ッサは、高速で大多数の誤りを修正できるデフォルトル
ーチンを実行することができる。デフォルトルーチンに
よって修正できない誤りは、「ヒロイックデータ回復
(heroic data recovery)」ルーチンなどのより複雑な
ルーチンによって修正される。ヒロイック回復は、デー
タの長期記憶に関して特に貴重である。貴重なデータの
ハードコピーは、記憶媒体(例えばハードドライブ又は
CDのプラッタ)に記憶された後に破壊される可能性が
ある。記憶された後、長い年月の間に、記憶媒体の長期
劣化が生じる可能性がある。記憶装置の代表的な誤り修
正回路は、劣化した記憶媒体からデータの全てを回復で
きない可能性がある。そのようなデータを回復できない
場合、そのデータが永久に失われる可能性がある。しか
しホストプロセッサを使用すれば、ヒロイックデータ回
復ルーチンを使用してデータを回復する可能性がより高
くなる。
With the recent increase in the processing power of personal computers, it has become practical to perform all or some of the forward error correction in a computer host processor instead of a data storage device. As the host processor becomes able to perform error correction, more flexible error correction methods are available. For example, the host processor can execute a default routine that is fast and can correct most errors. Errors that cannot be corrected by the default routine are corrected by more complex routines, such as the "heroic data recovery" routine. Heroic recovery is particularly valuable for long-term storage of data. Hard copies of valuable data can be corrupted after being stored on a storage medium (eg, a hard drive or CD platter). After storage, long-term degradation of the storage medium may occur over many years. A typical error correction circuit of a storage device may not be able to recover all of the data from a deteriorated storage medium. If such data cannot be recovered, it can be lost forever. However, with the use of a host processor, it is more likely to recover data using a heroic data recovery routine.

【0006】誤り修正を実行するタスクを、ホストプロ
セッサに全部又は一部移すことができる。その結果記憶
装置のコストを低下できる。デコーダ回路を縮小又は省
略することができ、高価な静的ランダムアクセスメモリ
(RAM)のサイズを縮小することができる。
The task of performing error correction can be completely or partially transferred to the host processor. As a result, the cost of the storage device can be reduced. The decoder circuit can be reduced or omitted, and the size of the expensive static random access memory (RAM) can be reduced.

【0007】あるいは誤り修正を実行するタスクを、ホ
ストプロセッサと記憶装置の誤り修正回路に振り分ける
ことができる。誤りを修正するタスクは、初めは誤り修
正回路に入る。この誤り修正回路は誤りの大多数を識別
し修正する簡単な誤り修正アルゴリズムを利用する。こ
の誤り修正回路がデータブロックを修正できなかった場
合、タスクは、より複雑な誤り修正ルーチンを利用する
ホストプロセッサに移される。このような柔軟性によっ
て、記憶装置が高速で廉価な誤り修正回路を使用するこ
とができる。その結果、記憶装置のコストを下げ、誤り
修正を実行する信頼性を改善することができる。
Alternatively, the task of performing error correction can be assigned to the host processor and the error correction circuit of the storage device. The task of correcting an error initially enters the error correction circuit. The error correction circuit utilizes a simple error correction algorithm to identify and correct the majority of errors. If the error correction circuit fails to correct the data block, the task is transferred to the host processor utilizing a more complex error correction routine. Such flexibility allows the storage device to use fast and inexpensive error correction circuits. As a result, the cost of the storage device can be reduced, and the reliability of performing error correction can be improved.

【0008】しかしながら特に、誤りコード修正(「E
CC」)コードワードを含むデータにデータ暗号化を実
行した後に、ホストプロセッサで誤り修正を実行するこ
とに関連して問題が生じる可能性がある。ECCコード
ワードを暗号化する場合、通常はコードワードの完全性
が破壊される。その結果ホストプロセッサが、データ中
の誤りを修正することができない。
However, in particular, error code correction (“E
CC ") After performing data encryption on the data containing the codeword, problems may occur in connection with performing error correction at the host processor. When encrypting an ECC codeword, the integrity of the codeword is usually destroyed. As a result, the host processor cannot correct errors in the data.

【0009】データが記憶装置からホストプロセッサに
送信される前に、データを暗号化しなければならないと
いう必要性が、当業界でさらに強くなっている。このこ
とは特にコンピュータのDVD−ROMドライブについ
て当てはまる。データは、コンピュータバスを介して、
DVD−ROMドライブからDVDデコーダカードに送
信されるが、これは安全ではない。このバスに配置され
た暗号化されていないデータは傍受され、高品質の映
画、音楽及び知的所有権のあるデータの無許可コピーを
作成できることは本当に問題である。誤り修正のために
暗号化されていないデータがホストプロセッサに万一送
信された場合、暗号化されていないデータは盗み及び無
許可のコピーに対して無防備である。したがってこのデ
ータは、ホストプロセッサ中で誤りコード修正されな
い。その代わりに誤りコード修正は、DVD−ROMド
ライブ中のデータに実行される。次いで誤りコード修正
したデータは、安全ではないコンピュータバスを介して
DVDデコーダカードに送信される前に、暗号化され
る。
[0009] The need in the art to encrypt data before it is transmitted from storage to a host processor is even stronger in the industry. This is especially true for computer DVD-ROM drives. Data is transferred via a computer bus
Sent from the DVD-ROM drive to the DVD decoder card, which is not secure. The unencrypted data located on this bus is intercepted and the ability to make unauthorized copies of high quality movie, music and intellectual property data is a real problem. Should unencrypted data be sent to the host processor for error correction, the unencrypted data is vulnerable to theft and unauthorized copying. Therefore, this data is not corrected by the error code 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 transmitted to the DVD decoder card over an insecure computer bus.

【0010】[0010]

【発明が解決しようとする課題】これまでのところ、コ
ンピュータバスを介して安全に伝送する必要があるため
に、ホストプロセッサが誤り修正を実行することが不可
能である。その結果、誤り修正を実行するための高価な
デコーダを省略し、高価なRAMを減少することによっ
て、DVD−ROMドライブのコストを減少することが
できなかった。その上、異なる誤り修正ルーチンを実行
する柔軟性が得られなくなった。
So far, it has not been possible for the host processor to perform error correction due to the need for secure transmission over the computer bus. As a result, the cost of a DVD-ROM drive could not be reduced by omitting expensive decoders for performing error correction and reducing expensive RAM. Moreover, there is no flexibility to perform different error correction routines.

【0011】[0011]

【課題を解決するための手段】本発明によれば、ドライ
ブ中で一部又は全部のデータ暗号化を実行することがで
き、ホストプロセッサによって一部又は全部の誤り修正
を実行することができる。1ブロックのECCエンコー
ドしたデータが読み取られる。このECCブロックは、
誤り修正コードワードを含む。暗号化マスクが提供さ
れ、ECCブロックとビットごと排他的論理和が演算さ
れる。このビットごと排他的論理和の積は、暗号化した
ECCブロックであり、次いでこのECCブロックをホ
ストプロセッサに伝送することができる。コードワード
の完全性は保持される。これによってホストプロセッサ
が、暗号化したECCブロックにいくつかの又は全ての
誤り修正を実行することができる。
According to the present invention, some or all data encryption can be performed in a drive, and some or all error correction can be performed by a host processor. One block of ECC encoded data is read. This ECC block is
Includes error correction codeword. An encryption mask is provided and a bitwise exclusive OR is performed with the ECC block. The bitwise exclusive OR product is an encrypted ECC block, which can then be transmitted to the host processor. Codeword integrity is preserved. This allows the host processor to perform some or all error correction on the encrypted ECC block.

【0012】ECCブロック中のユーザデータを暗号化
マスク中の数と全部排他的論理和とすることができ、又
はユーザデータを暗号化マスク中の数と選択的に排他的
論理和とすることができる。ゼロと排他的論理和をとっ
た、又は全く排他的論理和をとらなかったECCブロッ
クの部分は暗号化されない。
The user data in the ECC block can be exclusively ORed with the number in the encryption mask, or the user data can be selectively XORed with the number in the encryption mask. it can. Portions of the ECC block that are XORed with zero or not XORed at all are not encrypted.

【0013】本発明の他の態様及び利点は、本発明の原
理を例示的なものとして図示する添付図面と共に行う以
下の詳しい説明から明かになるであろう。
[0013] Other aspects and advantages of the present invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, which illustrate, by way of example, the principles of the invention.

【0014】[0014]

【発明の実施の形態】例示するために図面に示すよう
に、本発明は、ホストプロセッサ及び記憶媒体(例えば
コンパクトディスク又はDVDディスク)からデータを
読み取る記憶装置を含むシステムにおいて実施される。
データはECCコードワードを含む。記憶装置は記憶媒
体から読み取ったデータにデータ暗号化を実行するが、
誤り修正コードワードの完全性を保持する。これによっ
て、暗号化したデータを安全ではないコンピュータバス
を介してホストプロセッサに送信することができる。次
いでホストプロセッサは、暗号化したデータに誤り修正
を実行することができる。この後信頼できるエンティテ
ィによって暗号解読を実行することができる。したがっ
て本発明によれば、安全ではないコンピュータバス上に
機密データを曝す危険性なく、ホストコンピュータがE
CCコードワードの一部又は全部の誤り修正を実行する
ことができる。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS As illustrated in the drawings for purposes of illustration, the present invention is embodied in a system that includes a host processor and a storage device that reads data from a storage medium (eg, a compact disk or DVD disk).
The data includes an ECC codeword. The storage device performs data encryption on data read from the storage medium,
Maintain the integrity of the error correction codeword. This allows the encrypted data to be sent to the host processor over an insecure computer bus. The host processor can then perform error correction on the encrypted data. The decryption can then be performed by a trusted entity. Thus, according to the present invention, the host computer is able to access the E without risking exposing sensitive data on an insecure computer bus.
Error correction of some or all of the CC codewords can be performed.

【0015】以下の段落では、本発明を、DVD−RO
Mドライブ及びこれに関連するDVD−ROM電子機器
を含むコンピュータシステムに関して説明する。本発明
は、DVD−ROMドライブに限定されるものではな
く、単に本発明の理解を容易にするためにDVD−RO
Mを説明することを理解されたい。
In the following paragraphs, the present invention will be referred to as a DVD-RO
A computer system including an M drive and associated DVD-ROM electronics is described. The present invention is not limited to DVD-ROM drives, but is merely intended to facilitate understanding of the present invention.
It should be understood that M is explained.

【0016】図1はコンピュータシステム10の種々の構
成要素を示す。コンピュータシステム10は、コンピュー
タバス12及びコンピュータバス12に接続されたホストプ
ロセッサ14(例えば中央演算処理装置)を含む。さらに
システム10は、DVD−ROM読取り装置18を含むDV
D−ROMドライブ16を含み、このDVD−ROM読取
り装置18はDVD−ROMディスクに記憶されたRS−
PCブロックを読み取るよう動作する。RS−PCブロ
ックは、DVDディスクから読み取られ、コントローラ
20の制御下で、ランダムアクセスメモリ(RAM)22中
にバッファリングされる。
FIG. 1 shows various components of 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. In addition, the system 10 includes a DV including a DVD-ROM reader 18.
The DVD-ROM reader 18 includes a D-ROM drive 16 and an RS-ROM drive 16 stored on a DVD-ROM disc.
Operate to read PC blocks. The RS-PC block is read from the DVD disk and the controller
Under the control of 20, it is buffered in a random access memory (RAM) 22.

【0017】各RS−PCブロックは、M行のユーザデ
ータを含み、ユーザデータの各語長はNバイトである。
Mワードのそれぞれには、pバイトの長さを有するRS
−PC冗長データが付いている。したがってRS−PC
ブロック中の各行は、(N+p)バイトを有し、それに
よってRS−PCブロックは(N+p)列を有する。
(N+p)列のそれぞれには、qバイトの長さを有する
RS−PC冗長データが付いている。その結果RS−P
Cブロックは、(M+q)×(N+p)バイトを有す
る。図6にそのようなRS−PCブロック602を示す。
Each RS-PC block includes M rows of user data, and each word of the user data is N bytes.
Each of the M words has an RS with a length of p bytes
-With PC redundant data. Therefore RS-PC
Each row in the block has (N + p) bytes, so that the RS-PC block has (N + p) columns.
Each of the (N + p) columns is accompanied by RS-PC redundant data having a length of q bytes. As a result RS-P
The C block has (M + q) × (N + p) bytes. FIG. 6 shows such an RS-PC block 602.

【0018】DVD−ROMドライブ16は、バッファリ
ングされたRS−PCブロックに誤りコード修正を実行
する必要はない。その代わりDVD−ROMドライブ16
は、バッファリングされたRS−PCブロックに暗号化
を実行する。第1疑似乱数発生器24が、M×Nブロック
の乱数を発生し、各乱数は1バイトの長さを有する。例
えば乱数は、ROMモジュール26からアクセスされるシ
ードから発生してもよい。
The DVD-ROM drive 16 does not need to perform error code correction on the buffered RS-PC blocks. Instead, DVD-ROM drive 16
Performs encryption on the buffered RS-PC blocks. A first pseudo-random number generator 24 generates M × N blocks of random numbers, each random number having a length of one byte. For example, the random number may be generated from a seed accessed from the ROM module 26.

【0019】M×Nブロックの乱数が、RS−PCエン
コーダ28に供給され、RS−PCエンコーダがM×Nブ
ロックにRS−PCエンコードを実行する。エンコーダ
28の出力は、(M+q)×(N+p)バイトを有する暗
号化マスクを提供する。複数の線形フィードバックシフ
トレジスタを有するエンコーダ28は、実施するのが比較
的簡単であり、費用がかからない。その上RS−PCエ
ンコードは、比較的高速で実行することができる。エン
コーダ28は、DVDディスク上に記憶されたコードワー
ドを発生するために使用された同じアルゴリズムを使用
する。
The random numbers of the M × N blocks are supplied to the RS-PC encoder 28, and the RS-PC encoder performs the RS-PC encoding on the M × N blocks. Encoder
The output of 28 provides an encryption mask having (M + q) * (N + p) bytes. An encoder 28 having multiple linear feedback shift registers is relatively simple to implement and inexpensive. Moreover, RS-PC encoding can be performed at a relatively high speed. Encoder 28 uses the same algorithm used to generate the codeword stored on the DVD disc.

【0020】排他的論理和回路30は、RS−PCブロッ
クと暗号化マスクのビットごと排他的論理和(XOR)
を実行する。図3に、ビットごとの排他的論理和演算を
図示して以下に論じる。ビットごと排他的論理和演算の
結果、暗号化したユーザデータ及び暗号化したRS−P
C冗長データを含む(M+q)×(N+p)の暗号化し
たブロックが生じる。
The exclusive OR circuit 30 performs an exclusive OR (XOR) for each bit of the RS-PC block and the encryption mask.
Execute FIG. 3 illustrates the bitwise exclusive OR operation and is discussed below. As a result of a bitwise exclusive OR operation, the encrypted user data and the encrypted RS-P
(M + q) × (N + p) encrypted blocks containing C redundant data result.

【0021】コントローラ20の制御下で、暗号化したブ
ロックは、誤り修正のためにコンピュータバス12に置か
れてバッファ32中に記憶される。コンピュータバス12が
安全ではなくても、暗号化ブロック中のユーザデータは
暗号化され、したがって保護される。よってコンピュー
タバス12を渡って転送されるデータを解析することがで
きるデータ解析器及び記憶スコープなどのバススニッフ
ァ(sniffer)装置は、容易にユーザデータを利用する
ことができない。
Under the control of controller 20, the encrypted blocks are placed on computer bus 12 and stored in buffer 32 for error correction. Even if the computer bus 12 is not secure, the user data in the encrypted block is encrypted and therefore protected. Thus, a bus sniffer device such as a data analyzer and storage scope that can analyze data transferred across the computer bus 12 cannot easily utilize user data.

【0022】ホストプロセッサ14は、メモリ34中に記憶
された実行可能な命令によって、誤り修正を実行するよ
うに命令される。この命令は、ホストプロセッサ14によ
って実行されているが、ホストプロセッサ14はバッファ
32中に記憶された暗号化したデータブロックにRS−P
C修正を実行する。
The host processor 14 is instructed to perform error correction by executable instructions stored in the memory 34. This instruction is being executed by the host processor 14, but the host processor 14
RS-P to the encrypted data block stored in 32
Execute C correction.

【0023】ホストプロセッサ14は、依然暗号化されて
いるが、ここで誤り修正された(M+q)×(N+p)
ブロックを、コンピュータバス12を介してDVDデコー
ダカード36に送信する。この暗号化したブロックは受信
されて、DVDデコーダカード36上のバッファ37中に記
憶される。DVDデコーダカード36が暗号化したブロッ
クに暗号解読を実行すると、ROM26中に記憶したシー
ド、すなわち暗号化マスクが発生したシードにアクセス
する。モジュール38及び40が、DVD−ROMドライブ
16とDVDデコーダカード36の間のシードの認証及び交
換を実行する。認証及び交換は従来の方式で実行するこ
とができる。
The host processor 14 is still encrypted, but has been corrected here (M + q) × (N + p).
The block is transmitted to the DVD decoder card 36 via the computer bus 12. This encrypted block is received and stored in the buffer 37 on the DVD decoder card 36. When the DVD decoder card 36 decrypts the encrypted block, it accesses the seed stored in the ROM 26, that is, the seed where the encryption mask has been generated. Modules 38 and 40 are DVD-ROM drives
Perform authentication and exchange of seeds between 16 and DVD decoder card 36. Authentication and exchange can be performed in a conventional manner.

【0024】DVDデコーダカード36の第2疑似乱数発
生器42は、第1疑似乱数発生器24が発生するのと同じ一
連の乱数を発生し、第2エンコーダ44がこの乱数からM
×N暗号解読マスクを発生する。暗号解読マスクは、暗
号化マスク中のM×Nブロックの乱数と一致する。した
がって、認証及び交換モジュール38及び40を介して、最
小量のデータ(すなわちシード)を送信することによっ
て、暗号解読マスクが発生する。
The second pseudo random number generator 42 of the DVD decoder card 36 generates the same series of random numbers as generated by the first pseudo random number generator 24, and the second encoder 44
Generate a × N decryption mask. The decryption mask matches the random number of M × N blocks in the encryption mask. Thus, by transmitting a minimal amount of data (ie, a seed) via authentication and exchange modules 38 and 40, a decryption mask is generated.

【0025】次いで第2排他的論理和回路46が、バッフ
ァ37中に記憶された暗号化したブロック中のM×Nユー
ザデータと暗号解読マスクのビットごと排他的論理和を
実行する。ビットごと排他的論理和の積は、暗号化され
ていないM×Nブロックのユーザデータである。
Next, the second exclusive OR circuit 46 performs an exclusive OR for each bit of the M × N user data in the encrypted block stored in the buffer 37 and the decryption mask. The product of the bit-wise exclusive OR is M × N blocks of user data that are not encrypted.

【0026】またDVDデコーダカード36は、ムービン
グピクチャーズエキスパートグループ(MPEG)デコ
ーダ48を含み、このデコーダは、RS−PCブロックを
受信して、MPEG標準に基づいてM×Nバイトブロッ
クの暗号解読したユーザデータをデコードする。MPE
Gデコーダ48は連続する圧縮解除したデータを出力し、
この連続する圧縮解除したデータはビデオディスプレイ
上に表示される。圧縮解除したデータは、ディスプレイ
又はディスプレイメモリに直接送信される。圧縮解除し
たデータは、コンピュータバス12上を伝送されない。
The DVD decoder card 36 also includes a Moving Pictures Expert Group (MPEG) decoder 48, which receives the RS-PC block and decrypts the M × N byte block based on the MPEG standard. Decode the data. MPE
G decoder 48 outputs continuous decompressed data,
This continuous decompressed data is displayed on a video display. The decompressed data is sent directly to the display or display memory. The decompressed data is not transmitted on the computer bus 12.

【0027】誤り修正し暗号化したブロックを、ホスト
プロセッサ14の下流にある他のエンティティ49が受信す
ることができる。下流エンティティ49は、後続のデータ
伝送のために暗号化したブロックを再発生することがで
きる。下流エンティティ49は、下流エンティティ49がア
クセスしない暗号化したデータを廃棄することができ
る。下流エンティティ49が、暗号化したブロック中のデ
ータにアクセスすることができない場合、シードはこの
下流エンティティ49に送信されない。
The error-corrected and encrypted block can be received by another entity 49 downstream of the host processor 14. The downstream entity 49 can regenerate the encrypted blocks for subsequent data transmission. The downstream entity 49 can discard the encrypted data that the downstream entity 49 does not access. If the downstream entity 49 cannot access the data in the encrypted block, the seed is not sent to this downstream entity 49.

【0028】またドライブ16も基本の誤り修正能力を有
することができる。例えばドライブは、オンザフライ
(on-the-fly)誤り修正を実行するためにデコーダ39を
含むことができる。デコーダ39がデータブロックを修正
できない場合、このデータブロックはホストプロセッサ
14に送信される。このような柔軟性があるので、誤り修
正のために高速、かつ廉価なデコーダ39を使用すること
ができる。またこのような柔軟性があるので、ホストプ
ロセッサ14は、より複雑で、より正確な誤り修正を実行
することができる。
The drive 16 can also have basic error correction capabilities. For example, the drive may include a decoder 39 to perform on-the-fly error correction. If the decoder 39 cannot modify the data block, this data block is
Sent to 14. Such flexibility allows the use of a fast and inexpensive decoder 39 for error correction. Such flexibility also allows the host processor 14 to perform more complex and more accurate error correction.

【0029】図4〜図6は、ビットごと排他的論理和演
算をさらに詳細に示す。図4はRS−PCブロックの簡
略版400を示す。ユーザデータのM×Nブロック405は、
32Kバイトである。RS−PC冗長データ403、404は、
ブロック400の各行及び各列に関連している。RS−P
Cブロック400の長さは、182バイトであり、そのうちの
172バイトがユーザデータ405である。残りの10バイト
は、誤り回復のために追加されるRS−PC冗長データ
403である。RS−PCブロック400の行数は208であっ
て、そのうちの16行にRS−PC冗長データ404が含ま
れている。ヘッダ401は、コピー保護、特に暗号化鍵に
関する情報を含む。通常の状況下では、ユーザはこのデ
ータを受信して、ヘッダ401又はRS−PC冗長データ4
03と404の内容を知る必要はない。この情報は、データ
がドライブ中にある間に、抽出されてチェックされる。
またM×Nブロック405のユーザデータも、極秘データ
を含む引込み領域(lead-in area)(図示せず)を含
む。
4 to 6 show the bitwise exclusive OR operation in more detail. FIG. 4 shows a simplified version 400 of the RS-PC block. The M × N block 405 of user data is
32K bytes. The RS-PC redundant data 403 and 404 are
Associated with each row and each column of block 400. RS-P
The length of the C block 400 is 182 bytes, of which
172 bytes are the user data 405. The remaining 10 bytes are RS-PC redundant data added for error recovery.
403. The number of lines of the RS-PC block 400 is 208, and 16 lines among them contain RS-PC redundant data 404. The header 401 contains information on copy protection, especially on encryption keys. Under normal circumstances, the user receives this data and receives the header 401 or RS-PC redundant data 4
You do not need to know the contents of 03 and 404. This information is extracted and checked while the data is in the drive.
The user data of the M × N block 405 also includes a lead-in area (not shown) including confidential data.

【0030】図5を参照すると、RS−PCブロックの
行501が、行501中のユーザデータから生成される10バイ
トのRS−PC冗長データ及び172バイトのユーザデー
タを含む。行502の暗号化マスクは、172バイトの乱数
と、行502中の172バイトの乱数から生成される10バイト
のRS−PC冗長データを含む。2つの行501及び502
が、共にビットごと排他的論理和されると、行504の暗
号化したブロックが形成される。行504の暗号化したブ
ロックは、172バイトの暗号化したデータと、行504中の
172バイトの暗号化したデータに有効なRS−PCコー
ドワードを提供する10バイトの冗長データを含む。暗号
解読は、行504の暗号化したブロックを行502の暗号化マ
スクと排他的論理和することによって実行される。
Referring to FIG. 5, row 501 of the RS-PC block includes 10 bytes of RS-PC redundant data generated from the user data in row 501 and 172 bytes of user data. The encryption mask in row 502 includes a 172-byte random number and 10-byte RS-PC redundant data generated from the 172-byte random number in row 502. Two rows 501 and 502
Are ORed bit-by-bit together to form the encrypted block of row 504. The encrypted block in line 504 is the 172 bytes of encrypted data and
Includes 10 bytes of redundant data to provide a valid RS-PC codeword for 172 bytes of encrypted data. Decryption is performed by XORing the encrypted block in row 504 with the encryption mask in row 502.

【0031】全ブロックをカバーするように、ビットご
と排他的論理和演算を拡張することができる。第1疑似
乱数発生器24のためにROM26中に記憶されるシードの
長さは、必要な暗号強度を確保するに足る長さである。
32Kバイトの乱数が生成された後は、関連するRS−P
C冗長データが計算されて、暗号化マスクを完成され
る。RS−PC冗長データの計算は比較的ささいなこと
であるので、RS−PC冗長データを計算するのに処理
電力をほとんど必要としない。
The exclusive OR operation can be extended bit by bit so as to cover all blocks. The length of the seed stored in the ROM 26 for the first pseudorandom number generator 24 is long enough to secure the required encryption strength.
After a 32K byte random number is generated, the associated RS-P
C redundant data is calculated to complete the encryption mask. Since calculating RS-PC redundant data is relatively trivial, little processing power is required to calculate RS-PC redundant data.

【0032】前述の演算の結果として、RS−PCコー
ドワードの誤り修正能力が保持される。図6を参照する
と、記憶媒体中のノイズ及び欠陥のために、元のRS−
PCブロック602全体にばらまかれる誤りが生じる。こ
の誤りは点によって示される。暗号化マスク601は誤り
を含まない。暗号化マスク601とRS−PCブロック602
の排他的論理和をとると、誤り修正能力の完全性が維持
される。したがって暗号化したデータブロック603は、
RS−PCブロック602と同じ場所に誤りを含み、全て
のRS−PCコードワードは、誤り修正を首尾よく実行
することができるように整合している。暗号化マスク60
1中に万一誤りがあった場合でも、誤りは依然として修
正することができ、暗号化及び後続の誤り修正が満足に
行われる。
As a result of the above-described operation, the error correction capability of the RS-PC codeword is maintained. Referring to FIG. 6, due to noise and defects in the storage medium, the original RS-
An error is scattered throughout the PC block 602. This error is indicated by a dot. The encryption mask 601 does not contain any errors. Encryption mask 601 and RS-PC block 602
XORing maintains the integrity of the error correction capability. Therefore, the encrypted data block 603 is
Including the error in the same location as RS-PC block 602, all RS-PC codewords are aligned so that error correction can be performed successfully. Encryption mask 60
In the unlikely event that there is an error, the error can still be corrected and the encryption and subsequent error correction will be satisfactory.

【0033】疑似乱数発生器24、42及びRS−PCエン
コーダ28に必要な処理電力は、誤りコード修正を実行す
るのに必要な処理電力と比較すると大したことはない。
したがって本発明によれば、誤りコード修正の実行から
より大きな負担が除去されるとともに、DVD−ROM
ドライブ16及びDVDデコーダカード36には小さな負担
がかかるだけになる。誤りコード修正は、DVD−RO
Mドライブ16とホストプロセッサ14に分配するか、又は
ホストプロセッサ14に全部委ねることができる。
The processing power required for the pseudo-random number generators 24, 42 and the RS-PC encoder 28 is negligible compared to the processing power required to perform error code correction.
Therefore, according to the present invention, a greater burden is removed from performing the error code correction, and the DVD-ROM
The drive 16 and the DVD decoder card 36 only have a small burden. Error code correction is DVD-RO
It can be distributed to the M drive 16 and the host processor 14, or can be entirely delegated to the host processor 14.

【0034】本発明の基本ステップは次の通りである: 1)シードが提供される。シードの長さは、必要な暗号
強度を確保するのに充分な長さである。
The basic steps of the present invention are as follows: 1) A seed is provided. The length of the seed is long enough to ensure the required encryption strength.

【0035】2)1ブロックの乱数が疑似乱数発生器に
よって発生され、この乱数はシードによってシードされ
るか、又は初期化される。
2) One block of random numbers is generated by a pseudo-random number generator, which is seeded or initialized by a seed.

【0036】3)誤り修正コードワードが、記憶媒体に
記憶されたRS−PCブロックに使用したのと同じ誤り
修正コード発生方式に基づいて発生される。このように
して一連のコードワードが発生され、そのすべてが乱数
シードによって決定され、記憶媒体に記憶された元のブ
ロックと整合する。その結果暗号化マスクが生じる。
3) Error correction code words are generated based on the same error correction code generation scheme used for the RS-PC blocks stored on the storage medium. In this way, a series of codewords are generated, all of which are determined by the random number seed and are consistent with the original blocks stored on the storage medium. The result is an encryption mask.

【0037】4)元のRS−PCブロックと暗号化マス
クの間で、ビットごと排他的論理和が実行される。
4) Bitwise exclusive OR is performed between the original RS-PC block and the encryption mask.

【0038】5)またビットごと排他的論理和演算の結
果生じるブロックも、記憶媒体から読み取られたコード
ワード中に含まれるいずれの誤りも含む有効なコードワ
ードを含む。暗号化マスクが誤りを含まないので、追加
の誤りは生じない。ビットごと排他的論理和演算の結果
生じるブロックは、有効に暗号化され、元のデータを無
許可でコピーされる危険性なしで、誤り修正のためにホ
ストプロセッサ又は他の処理エンティティに送信するこ
とができる 6)誤りコード修正がホストプロセッサによって実行さ
れる。誤りは修正されたが、依然として暗号化されてい
るブロックが、元のデータが無許可でコピーされる危険
性なく、ホストプロセッサの下流に送信される。
5) The block resulting from the bitwise exclusive OR operation also contains a valid codeword containing any errors contained in the codeword read from the storage medium. No additional errors occur because the encryption mask contains no errors. The block resulting from the bitwise exclusive OR operation is effectively encrypted and transmitted to the host processor or other processing entity for error correction without the risk of unauthorized copying of the original data 6) Error code correction is performed by the host processor. The error has been corrected, but the block still encrypted is sent downstream of the host processor without the danger of unauthorized copying of the original data.

【0039】7)暗号解読が、ホストプロセッサの下流
にある信頼できるエンティティ(例えばMPEGデコー
ダ)によって実行される場合、シードだけを信頼できる
エンティティに転送する必要がある。シードは、標準技
法に基づいて認証されて交換される鍵を使用する安全な
方式で転送することができる。次いで信頼できるエンテ
ィティが、ユーザデータの暗号化のために暗号化マスク
によって使用される同じ乱数パターンを使用して暗号解
読マスクを発生する。暗号解読マスクは、誤り修正した
が依然として暗号化されているデータブロックのユーザ
データと、ビットごと排他的論理和演算される。その結
果M×Nブロックが暗号解読され、誤りコード修正され
たユーザデータが生じる。
7) If the decryption is performed by a trusted entity downstream of the host processor (eg, an MPEG decoder), only the seed needs to be transferred to the trusted entity. The seeds can be transferred in a secure manner using keys that are authenticated and exchanged based on standard techniques. The trusted entity then generates a decryption mask using the same random number pattern used by the encryption mask for encrypting the user data. The decryption mask is bitwise XORed with the user data of the error-corrected but still encrypted data block. As a result, the M × N block is decrypted, and user data with the corrected error code is generated.

【0040】8)ホストプロセッサの下流にあるエンテ
ィティがブロックに暗号解読を実行しない場合、シード
はこのエンティティに転送されない。同様にホストプロ
セッサの下流にあるエンティティが、ブロック中のデー
タにアクセスすることができない場合、シードはこのエ
ンティティに送信されない。
8) If an entity downstream of the host processor does not decrypt the block, the seed is not transferred to this entity. Similarly, if an entity downstream of the host processor cannot access the data in the block, no seed is sent to this entity.

【0041】ここまでは、RS−PCブロック全体の暗
号化に関して本発明を説明してきた。しかしながらRS
−PCブロック全体を暗号化する必要のない状況が発生
する可能性がある。RS−PCブロックの一部だけを暗
号化する必要がある可能性がある。例えば引込み領域の
一部が、暗号化に関する機密データを含む可能性があ
る。しかし172×192ブロックのユーザデータの最初のバ
イト(すなわちヘッダ)が、機密でないアドレス及び他
のヘッダ情報を含む。したがってヘッダに対応する暗号
化マスクのバイトは、全てゼロであって、残りのバイト
は疑似乱数である。これによって、ホストプロセッサ14
は誤り修正してブロックアドレスを確認することができ
るが、(ホストプロセッサがDVDデコーダカード36に
送信する)機密データにアクセスすることはできない。
したがってRS−PCのいくつかの部分は選択的に暗号
化され、それによってデータの機密性が、ホストプロセ
ッサ14及び、ことによるとホストプロセッサ14の下流に
ある他のエンティティ49から保護される。
So far, the invention has been described with reference to encryption of the entire RS-PC block. However, RS
-A situation may arise where it is not necessary to encrypt the entire PC block. It may be necessary to encrypt only part of the RS-PC block. For example, a part of the attraction area may include confidential data related to encryption. However, the first byte of the 172 × 192 block of user data (ie, the header) contains the non-sensitive address and other header information. Therefore, the bytes of the encryption mask corresponding to the header are all zeros, and the remaining bytes are pseudo-random numbers. This allows the host processor 14
Can correct the error and confirm the block address, but cannot access sensitive data (sent by the host processor to the DVD decoder card 36).
Accordingly, some portions of the RS-PC are selectively encrypted, thereby protecting the confidentiality of the data from the host processor 14 and possibly other entities 49 downstream of the host processor 14.

【0042】別の例では、記憶媒体から読み取ったEC
Cブロックは、ある領域中の暗号化した情報をすでに含
んでいる。したがって、すでに暗号化されているデータ
は、コンピュータバス上で曝される危険性がなく、した
がってドライブによってさらに暗号化する必要はない。
しかしECCブロックもまた、ヘッダ領域に極秘のタイ
トル鍵データ(title key data)を含んでいる。アドレ
スなどの追加のヘッダ情報は機密ではない。この場合、
ヘッダ中の機密データのみを保護する必要がある。した
がって暗号化マスクは、(疑似乱数を含む)機密ヘッダ
データバイト場所以外のあらゆる場所ですべてのゼロを
含む。このことによって、ホストプロセッサは、機密情
報へのアクセス権を得ないで、ECCブロックを誤り修
正し、アドレスを確認し、ユーザデータを次に回すこと
ができる。
In another example, an EC read from a storage medium
The C block already contains the encrypted information in a certain area. Thus, data that has already been encrypted is not at risk of being exposed on the computer bus and therefore does not need to be further encrypted by the drive.
However, the ECC block also includes title key data that is confidential in the header area. Additional header information, such as addresses, is not confidential. in this case,
Only the sensitive data in the header needs to be protected. Thus, the encryption mask includes all zeros everywhere except the sensitive header data byte location (including pseudorandom numbers). This allows the host processor to erroneously correct the ECC block, verify the address, and pass on user data without gaining access to sensitive information.

【0043】図2はECCブロック中のデータを選択的
に暗号化する方法を示す。記憶媒体からECCブロック
を読み取る(ブロック200)。ECCブロック中の一部
のデータ(例えばバイトシーケンス)のみを機密保持す
る必要がある場合、ドライブ(例えばCD ROMドラ
イブ又はDVDドライブ)が、機密データを含む場所に
対応する乱数及び他の場所のゼロを含む暗号化マスクを
提供する(ブロック202)。暗号化マスク中のゼロの場
所は、規約により決定することができる。例えば規約に
よりヘッダ情報が保護される場合、暗号化マスクはヘッ
ダ場所に乱数及び他の場所にゼロを含む。また暗号化マ
スクも、乱数及びゼロについてのECC冗長データを含
む。
FIG. 2 shows a method for selectively encrypting data in an ECC block. An ECC block is read from the storage medium (block 200). If only some data (e.g., a byte sequence) in the ECC block needs to be kept secret, the drive (e.g., a CD ROM drive or DVD drive) will send a random number corresponding to the location containing the sensitive data and zeros elsewhere. Is provided (block 202). The location of the zero in the encryption mask can be determined by convention. For example, if the header information is protected by convention, the encryption mask contains a random number in the header location and zeros elsewhere. The encryption mask also includes random number and ECC redundant data for zero.

【0044】次に暗号化マスクブロックとECCブロッ
クとのビットごと排他的論理和をとる(ブロック20
4)。その結果生じる一部暗号化したブロックは、有効
なECCコードワード、ヘッダ場所に暗号化したデー
タ、及び他の場所に暗号化されていないデータを含む。
Next, an exclusive OR is calculated for each bit of the encryption mask block and the ECC block (block 20).
Four). The resulting partially encrypted block contains a valid ECC codeword, encrypted data in the header location, and unencrypted data elsewhere.

【0045】一部暗号化したブロックはホストプロセッ
サに送信され、ホストプロセッサは誤りコード修正を実
行する(ブロック206)。さらにホストプロセッサは、
暗号化されていない情報にアクセスする(ブロック20
8)。
The partially encrypted block is sent to the host processor, which performs error code correction (block 206). In addition, the host processor
Accessing unencrypted information (Block 20
8).

【0046】次いで誤り修正したブロックは、1つ又は
複数の追加のエンティティに送信される(ブロック21
0)。各エンティティでは、ランダムデータシーケンス
が後続のデータを処理するために再使用されるか、又は
新しいランダムデータシーケンスが各データ量を処理す
るために発生することもできる。追加の各エンティティ
による全部あるいは一部いずれかの追加の暗号化によ
り、保護の追加の層が付加される。またこれによって、
選択したエンティティが選択したデータを利用できるよ
うになる。修正された機密ではないデータは直ちに使用
できる。シードは、暗号解読を実行していない、又は機
密データにアクセスしていないエンティティには送信さ
れない。
The error-corrected block is then sent to one or more additional entities (block 21).
0). At each entity, the random data sequence may be reused to process subsequent data, or a new random data sequence may be generated to process each data volume. Additional encryption, either in whole or in part by each additional entity, adds an additional layer of protection. This also gives
The selected entity will be able to use the selected data. The modified non-sensitive data is immediately available. The seed is not sent to entities that have not performed decryption or have access to sensitive data.

【0047】暗号化マスクを発生しているとき、ゼロを
書き込む必要はない。その代わり、乱数を提供すること
ができ、この乱数及びその場所から冗長バイトを発生す
ることができる。次いでECCブロックの選択的部分と
この乱数及び冗長バイトとのビットごと排他的論理和を
とることができる。
When generating an encryption mask, it is not necessary to write a zero. Instead, a random number can be provided and a redundant byte can be generated from this random number and its location. The exclusive portion of the selected portion of the ECC block and this random number and redundant byte can then be XORed.

【0048】図3は、ドライブが基本ECCを実行し、
ホストプロセッサがより複雑な誤り修正を実行する方法
を示す。ドライブは、記憶媒体からECCブロックを読
み取り、このECCブロックをバッファリングする(ブ
ロック300)。ドライブは、バッファリングされたEC
Cブロック中の誤りの大多数を識別して修正するために
簡単な誤り修正アルゴリズムを実行する比較的簡単な回
路を含む(ブロック302)。誤り修正回路がデータブロ
ックを修正できない場合、バッファリングされたECC
ブロックのいくつか又は全ては暗号化され(ブロック30
4)、ホストプロセッサに送信される(ブロック306)。
次いでホストプロセッサは、より複雑な誤り修正ルーチ
ンを実行して、誤りを回復する(ブロック308)。この
ような柔軟性があるので、ドライブに高速かつ廉価な誤
り修正回路を使用することができ、これによってドライ
ブのコストが下がると共に、誤り修正を実行する速度が
改善される。その上誤り修正能力が改善される。このこ
とは、データの長期記憶に特に重要である。
FIG. 3 shows that the drive performs basic ECC,
4 illustrates how the host processor performs more complex error correction. The drive reads the ECC block from the storage medium and buffers the ECC block (block 300). The drive uses a buffered EC
It includes relatively simple circuitry that implements a simple error correction algorithm to identify and correct the majority of errors in the C block (block 302). If the error correction circuit cannot correct the data block, the buffered ECC
Some or all of the blocks are encrypted (block 30
4) sent to the host processor (block 306).
The host processor then executes a more complex error correction routine to recover the error (block 308). Such flexibility allows the use of fast and inexpensive error correction circuitry in the drive, which reduces the cost of the drive and improves the speed at which error correction is performed. In addition, the ability to correct errors is improved. This is especially important for long-term storage of data.

【0049】以下においては、本発明の種々の構成要件
の組み合わせからなる例示的な実施態様を示す。
In the following, exemplary embodiments comprising combinations of various constituent elements of the present invention will be described.

【0050】1. コンピュータバス(12)と、前記コ
ンピュータバスに接続され、誤り修正を実行するように
プログラムされたホストプロセッサ(14)と、1ブロッ
クのECCエンコードしたデータを提供するための手段
(18)と、暗号化マスクを提供するための手段(24、2
6、28)と、前記暗号化マスクと前記1ブロックのEC
Cエンコードしたデータのビットごと排他的論理和を実
行するための手段(30)とを含むドライブ(16)と、前
記ビットごと排他的論理和の積が暗号化されたブロック
であり、前記ビットごと排他的論理和を実行するための
手段の出力が前記コンピュータバスに結合され、それに
より前記暗号化されたブロックが誤り修正のために前記
コンピュータバスを介して前記ホストプロセッサに送信
することが可能であることとを含むシステム。
1. A computer bus (12), a host processor (14) connected to said computer bus and programmed to perform error correction, means (18) for providing a block of ECC encoded data, Means for providing a mask (24, 2)
6, 28), the encryption mask and the EC of the one block.
A drive (16) including means (30) for performing a bit-wise exclusive OR of the C-encoded data, and a product in which the product of the bit-wise exclusive OR is an encrypted block; The output of the means for performing an exclusive-or is coupled to the computer bus so that the encrypted block can be sent to the host processor via the computer bus for error correction. A system that includes:

【0051】2. 暗号化マスクを形成するための前記
手段(24、26、28)が、シードを提供するための手段
(26)と、前記シードから一連の乱数を発生するための
疑似ランダムデータ発生器(24)と、第1部分及び第2
部分を含む暗号化マスクを発生するためのECCエンコ
ーダ(28)とを含み、前記第1部分が乱数を含み、前記
第2部分が前記第1部分に関する冗長データを含む、1
項に記載のシステム。
2. Said means for forming an encryption mask (24, 26, 28) means for providing a seed (26) and a pseudo-random data generator (24) for generating a series of random numbers from said seed And the first and second parts
An ECC encoder (28) for generating an encryption mask including a portion, wherein the first portion includes a random number, and wherein the second portion includes redundant data for the first portion.
The system according to paragraph.

【0052】3. さらに、前記コンピュータバスに接
続された、前記ホストプロセッサから前記暗号化された
ブロックを受信するための手段(37)と、前記ドライブ
から前記シードを受信するための手段(40)と、前記シ
ードから暗号解読マスクを発生するための第2疑似ラン
ダムデータ発生器(42)と、前記暗号解読マスクと前記
暗号化したブロック中のユーザデータの第2のビットご
と排他的論理和を実行するための手段(46)とを備え、
前記第2のビットごと排他的論理和の積が暗号化されて
いないユーザデータを提供する、2項に記載のシステ
ム。
3. A means for receiving the encrypted block from the host processor connected to the computer bus; a means for receiving the seed from the drive; and a means for receiving the seed from the drive. A second pseudo-random data generator (42) for generating a decryption mask, and means for performing an exclusive OR of the decryption mask and a second bit of user data in the encrypted block (46)
3. The system of claim 2, wherein the second bitwise exclusive OR product provides unencrypted user data.

【0053】4. 前記ドライブ(16)がDVD−RO
Mドライブであること、ならびにDVDデコーダカード
(36)が、MPEGデコーダ(48)と、前記暗号化した
ブロックを受信するための前記手段(37)と、前記シー
ドを受信するための前記手段(40)と、前記第2疑似ラ
ンダムデータ発生器(42)と、前記第2のビットごと排
他的論理和を実行する前記手段(46)とを備え、前記M
PEGデコーダが前記第2のビットごと排他的論理和を
実行するための前記手段(46)の出力に結合されてい
る、3項に記載のシステム。
4. The drive (16) is a DVD-RO
M drive, and the DVD decoder card (36) includes an MPEG decoder (48), the means (37) for receiving the encrypted block, and the means (40) for receiving the seed. ), The second pseudo-random data generator (42), and the means (46) for performing an exclusive OR of the second bits.
A system according to claim 3, wherein a PEG decoder is coupled to the output of said means (46) for performing an exclusive OR of said second bits.

【0054】5. 前記ECCブロックがユーザデータ
に関する第1部分及び冗長データに関する第2部分を含
み、ならびに前記暗号化マスクが、前記ECCブロック
の第1部分及び第2部分にそれぞれ対応する第3部分及
び第4部分を含む、請求項1に記載のシステム。
5. The ECC block includes a first part for user data and a second part for redundant data, and the encryption mask includes a third part and a fourth part corresponding to the first part and the second part of the ECC block, respectively. The system of claim 1, comprising:

【0055】6. 前記第3部分が複数の乱数で満たさ
れて、ならびに前記第4部分が前記第3部分から発生す
る冗長データを含む、5項に記載のシステム。
6. The system of claim 5, wherein the third portion is filled with a plurality of random numbers, and wherein the fourth portion includes redundant data originating from the third portion.

【0056】7. 前記第3部分が乱数及びゼロで選択
的に満たされ、ならびに前記第4部分が前記第3部分か
ら発生する冗長データを含む、5項に記載のシステム。
7. The system of claim 5, wherein the third portion is selectively filled with random numbers and zeros, and wherein the fourth portion includes redundant data originating from the third portion.

【0057】8. 前記ECCブロックが誤り修正方法
によってコード化され、ならびに前記暗号化マスクが同
じ誤り修正方法によってコード化される、1項に記載の
システム。
8. The system of claim 1, wherein the ECC block is coded by an error correction method, and wherein the encryption mask is coded by the same error correction method.

【0058】9. 前記ドライブ(16)が誤り修正を実
行するための手段(39)をさらに含み、ならびにまたホ
ストプロセッサ(14)が、前記ドライブによって送信さ
れた暗号化されたデータに誤り修正を実行する、1項に
記載のシステム。
9. The drive (16) further comprises means (39) for performing error correction, and also the host processor (14) performs error correction on the encrypted data transmitted by the drive. System.

【0059】[0059]

【発明の効果】以上、ECCコードワードの完全性に影
響を及ぼさないで、ECCエンコードしたデータを暗号
化する本発明を開示した。本発明によれば、暗号化した
データの誤りコードをホストプロセッサで修正し、その
後で暗号解読することができる。次にホストプロセッサ
で誤りコード修正を実施すると、高価なECC回路を縮
小し、静的RAMを縮小することによって、記憶装置の
コストを下げることができる。
Thus, the invention has been disclosed for encrypting ECC encoded data without affecting the integrity of the ECC codeword. According to the present invention, the error code of the encrypted data can be corrected by the host processor and then decrypted. Then, when the host processor corrects the error code, the cost of the storage device can be reduced by reducing the expensive ECC circuit and the static RAM.

【0060】ホストプロセッサでECCを実行する別の
利点は、ハードウエアと違って、ホストプロセッサは、
異なるECCルーチンを利用する柔軟性を有することで
ある。ハードウエア回路は、すべての状況について同じ
ECCアルゴリズム又は1組のアルゴリズムを使用する
ように通常制限されるが、ホストプロセッサは異なるア
ルゴリズムを使用することができる。例えばホストプロ
セッサは、どのデータも変更(すなわち修正)せずにE
CCブロック全体を解析し、次いで最善の戦略を決定し
て修正ミスを回避することができる。データの修正ミス
は、特にオンザフライ処理中に問題になる可能性があ
る。ハードウエアRS−PCデコーダは、通常誤りコー
ド修正をオンザフライで実行し、データを誤って修正し
て、その結果データブロック中の誤りの数を増加させる
可能性がある。修正ミスは、ブロックが修正不可能とな
る可能性をさらに増大させる。ホストプロセッサが採用
するより柔軟性のある手法によれば、データブロックに
なんらかの変更をする前に、データ及び誤りパターンを
解析することによって、この問題を回避することができ
る。
Another advantage of performing ECC on the host processor is that, unlike hardware, the host processor
The flexibility to use different ECC routines. Hardware circuits are usually limited to using the same ECC algorithm or set of algorithms for all situations, but the host processor can use different algorithms. For example, the host processor may change E without changing (ie, modifying) any data.
The entire CC block can be analyzed and the best strategy can then be determined to avoid correction errors. Miscorrection of data can be a problem, especially during on-the-fly processing. Hardware RS-PC decoders typically perform error code correction on the fly and may erroneously correct data, thereby increasing the number of errors in a data block. Miscorrections further increase the likelihood that a block will become uncorrectable. According to the more flexible approach employed by the host processor, this problem can be avoided by analyzing the data and error patterns before making any changes to the data blocks.

【0061】別の利点は、特に暗号化及び暗号解読が、
最小量の機密情報、すなわちシードをコンピュータバス
を介して送信することによって実行されることである。
暗号化マスクはバス上に曝されない。DVD−ROMド
ライブなどのドライブのドライブ製造者は通常デコーダ
カードも同様に販売するので、ドライブ製造者が、ドラ
イブ及びデコーダカードに整合する同じ疑似乱数発生器
を指定することができる。
Another advantage is that encryption and decryption, in particular,
This is done by sending a minimum amount of sensitive information, the seed, over the computer bus.
The encryption mask is not exposed on the bus. Drive manufacturers of drives such as DVD-ROM drives typically sell decoder cards as well, so that the drive manufacturer can specify the same pseudo-random number generator that matches the drive and decoder card.

【0062】ホストプロセッサは、暗号化したデータへ
アクセスせずに、誤りコード修正を実行することができ
る。代替的には選択的暗号化を実行することができ、そ
の場合ホストプロセッサは、選択した情報のみにアクセ
スする。修正した機密ではないデータは、使用のために
直ちにアクセス可能である。
The host processor can perform error code correction without accessing the encrypted data. Alternatively, selective encryption can be performed, in which case the host processor accesses only the selected information. The modified non-sensitive data is immediately accessible for use.

【0063】DVD−ROMドライブに関して本発明を
説明してきたが、本発明はそれに限定されるものではな
い。本発明は、順方向誤り修正が必要である場合あるい
は送信側がデータを再伝送することが実用的でない場合
に特に適用できる。DVDプレーヤ以外のデータ記憶装
置には、CDプレーヤ、ディジタルデータ記憶(DD
S)プレーヤ、及びディジタルビデオカセット(DV
C)プレーヤが含まれる。他の適用例には、宇宙通信装
置及びモバイル通信装置が含まれる。したがってECC
ブロック源はROMドライブに限定されない。
Although the invention has been described with reference to a DVD-ROM drive, the invention is not so limited. The invention is particularly applicable when forward error correction is required or when it is not practical for the transmitting side to retransmit the data. Data storage devices other than DVD players include CD players and digital data storage (DD).
S) Player and digital video cassette (DV
C) A player is included. Other applications include space communication devices and mobile communication devices. Therefore ECC
The block source is not limited to a ROM drive.

【0064】以上、本発明の特定の実施形態を説明し、
例示してきた。しかし本発明は、説明及び例示した特定
の形態及び部品の配列に限定されるものではない。例え
ば本発明によれば、リード−ソロモンプロダクトコード
以外の誤り修正方法を使用することができる。これは、
もちろん、記憶媒体に記憶されるデータに使用される暗
号化方法によって決まる。
The specific embodiment of the present invention has been described above.
Illustrated. However, the invention is not limited to the specific forms and arrangements of parts described and illustrated. For example, according to the present invention, error correction methods other than Reed-Solomon product codes can be used. this is,
Of course, it depends on the encryption method used for the data stored in the storage medium.

【0065】シード及び暗号化マスクを発生する代わり
に、DVD−ROMドライブは、ROMからアプリオリ
暗号化マスクにアクセスできる。またDVDデコーダカ
ードも、ROMから暗号化マスクにアクセスする。処理
電力を減少することに加えて、この実施形態では、DV
D−ROMドライブが、DVDデコーダカードにシード
を渡す必要がない。
Instead of generating the seed and encryption mask, the DVD-ROM drive can access the a priori encryption mask from ROM. The DVD decoder card also accesses the encryption mask from the ROM. In addition to reducing processing power, in this embodiment, the DV
There is no need for the D-ROM drive to pass the seed to the DVD decoder card.

【0066】したがって、本発明は、以上説明し、例示
した特定の実施形態に限定されるものではない。それよ
りも、本発明は添付の特許請求の範囲に基づいて解釈さ
れる。
Accordingly, the present invention is not limited to the specific embodiments described and illustrated above. Instead, the invention is construed according to the claims that follow.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明に基づくコンピュータシステムの種々の
構成要素のブロック略図である。
FIG. 1 is a schematic block diagram of various components of a computer system according to the present invention.

【図2】本発明に基づく誤りコード修正及びデータ暗号
化を実行する方法のフローチャートである。
FIG. 2 is a flowchart of a method for performing error code correction and data encryption according to the present invention.

【図3】本発明に基づく誤りコード修正及びデータ暗号
化を実行する代替的な方法のフローチャートである。
FIG. 3 is a flowchart of an alternative method for performing error code correction and data encryption according to the present invention.

【図4】RS−PCブロックの簡略化したレイアウトを
示す図である。
FIG. 4 is a diagram showing a simplified layout of an RS-PC block.

【図5】コンピュータシステムによって実行されるビッ
トごと排他的論理和演算を示す図である。
FIG. 5 is a diagram illustrating a bit-by-bit exclusive OR operation performed by the computer system.

【図6】RS−PCブロック、暗号化マスク及びRS−
PCブロックと暗号化マスクのビットごと排他的論理和
の積を示すブロック図である。
FIG. 6 illustrates an RS-PC block, an encryption mask, and an RS-
It is a block diagram which shows the product of the exclusive OR for every bit of a PC block and an encryption mask.

【符号の説明】[Explanation of symbols]

10 コンピュータシステム 12 バス 14 ホストプロセッサ 16 ドライバ 36 デコーダ 10 Computer system 12 Bus 14 Host processor 16 Driver 36 Decoder

Claims (1)

【特許請求の範囲】[Claims] 【請求項1】 コンピュータバス(12)と、 前記コンピュータバスに接続され、誤り修正を実行する
ようにプログラムされたホストプロセッサ(14)と、 1ブロックのECCエンコードしたデータを提供するた
めの手段(18)と、暗号化マスクを提供するための手段
(24、26、28)と、前記暗号化マスクと前記1ブロック
のECCエンコードしたデータのビットごと排他的論理
和を実行するための手段(30)とを含むドライブ(16)
と、前記ビットごと排他的論理和の積が暗号化されたブ
ロックであり、前記ビットごと排他的論理和を実行する
ための手段の出力が前記コンピュータバスに結合され、
それにより前記暗号化されたブロックが誤り修正のため
に前記コンピュータバスを介して前記ホストプロセッサ
に送信することが可能であることとを含むシステム。
1. A computer bus (12), a host processor (14) connected to said computer bus and programmed to perform error correction, and means for providing a block of ECC encoded data (1). (18), means for providing an encryption mask (24, 26, 28), and means (30) for performing a bitwise exclusive OR of the encryption mask and the one block of ECC encoded data. ) And including drives (16)
And the product of the bitwise exclusive OR is an encrypted block, the output of the means for performing the bitwise exclusive OR is coupled to the computer bus,
Whereby the encrypted blocks can be transmitted to the host processor via the computer bus for error correction.
JP09587699A 1998-04-02 1999-04-02 Method and apparatus for performing data encryption and error code correction Expired - Fee Related JP3683738B2 (en)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
JP2000041031A true JP2000041031A (en) 2000-02-08
JP3683738B2 JP3683738B2 (en) 2005-08-17

Family

ID=21987836

Family Applications (1)

Application Number Title Priority Date Filing Date
JP09587699A Expired - Fee Related JP3683738B2 (en) 1998-04-02 1999-04-02 Method and apparatus for performing data encryption and error code correction

Country Status (1)

Country Link
JP (1) JP3683738B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140072855A (en) * 2014-05-23 2014-06-13 삼성전자주식회사 Flash memory system and encryption method thereof

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140072855A (en) * 2014-05-23 2014-06-13 삼성전자주식회사 Flash memory system and encryption method thereof
KR101593519B1 (en) * 2014-05-23 2016-02-17 삼성전자주식회사 Flash memory system and encryption method thereof

Also Published As

Publication number Publication date
JP3683738B2 (en) 2005-08-17

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
US6883097B1 (en) Coincidence-free media key block for content protection for recordable media
EP0755055B1 (en) Transmitting recording and reproducing data
US10678636B2 (en) Techniques for detecting and correcting errors in data
JP4718319B2 (en) Apparatus and method for generating a secret key
EP3575971A1 (en) An apparatus and method for memory encryption with reduced decryption latency
EP1612988A1 (en) Apparatus and/or method for encryption and/or decryption for multimedia data
WO2002029566A1 (en) Digital video recorder for encrypting/decrypting video programs
JP2013005314A (en) Semiconductor device
JP6882666B2 (en) Key generator and key generator
EP3697021B1 (en) Secure and encrypted logging systems and methods with data recovery
US6125183A (en) Cryptosystem for optical storage
JPH1131105A (en) Device and method for producing data capsule
KR100782614B1 (en) Detection of a change of the data of a dataset
US20040153918A1 (en) Tamper-resistant computer program product
KR101687492B1 (en) Storing method of data dispersively and credential processing unit
JP3683738B2 (en) Method and apparatus for performing data encryption and error code correction
US11841944B2 (en) Parameter checking system and parameter checking method
US7313235B2 (en) Device and method of applying a parity to encrypt data for protection
JP5986279B2 (en) Semiconductor device
US7707431B2 (en) Device of applying protection bit codes to encrypt a program for protection
JP3562132B2 (en) Data transmission method, data recording device, data recording medium, and data reproducing device
WO2007128418A1 (en) Apparatus for writing data to a medium

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050517

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050526

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090603

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100603

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100603

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110603

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120603

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120603

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130603

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130603

Year of fee payment: 8

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

LAPS Cancellation because of no payment of annual fees