JP3683738B2 - 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
JP3683738B2
JP3683738B2 JP09587699A JP9587699A JP3683738B2 JP 3683738 B2 JP3683738 B2 JP 3683738B2 JP 09587699 A JP09587699 A JP 09587699A JP 9587699 A JP9587699 A JP 9587699A JP 3683738 B2 JP3683738 B2 JP 3683738B2
Authority
JP
Japan
Prior art keywords
data
block
error correction
host processor
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.)
Expired - Fee Related
Application number
JP09587699A
Other languages
Japanese (ja)
Other versions
JP2000041031A (en
Inventor
ジョシュ・エヌ・ホーガン
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

Images

Landscapes

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

Description

【0001】
【発明の属する技術分野】
本発明は、一般にはデータの記憶及び伝送に関する。より詳細には本発明は、順方向誤り修正に使用されるコードワードを含むデータの暗号化に関する。
【0002】
【従来の技術】
順方向誤り修正は、ユーザデータの完全性を維持するために、データ伝送チャネル及びデータ記憶装置において実行されるのが普通である。伝送又は記憶する前に、冗長データがユーザデータに追加される。ハードディスクドライブ、コンパクトディスク(CD)プレーヤ、ディジタルビデオディスク(DVD)プレーヤ等のデータ記憶装置では、記憶媒体の欠陥及び読み出しチャネルでのノイズのために誤りが生じる可能性がある。伝送又は記憶データに誤りが検出された場合、冗長データによってこの誤りを修正することができる。
【0003】
順方向誤り修正を実行するための様々な方法がある。例えばリード−ソロモンプロダクトコード(「RS−PC」)が、CDプレーヤ及びDVDプレーヤに使用される。
【0004】
CDプレーヤ及びDVDプレーヤには、順方向誤り修正を実行するための誤り修正回路が含まれている。この誤り修正回路は強力な計算能力を要求され、通常はハードワイヤードすなわち柔軟性のない方式で実装されている。その上、この誤り修正回路には処理回路及び高速メモリが必要なため、コスト高になる傾向がある。
【0005】
最近パーソナルコンピュータの処理能力が向上したため、データ記憶装置の代わりに、コンピュータのホストプロセッサで全部又は一部の順方向誤り修正を実行することが実用的になりつつある。ホストプロセッサが誤り修正を実行できるようになると、より柔軟性のある誤り修正方法が利用できる。例えばホストプロセッサは、高速で大多数の誤りを修正できるデフォルトルーチンを実行することができる。デフォルトルーチンによって修正できない誤りは、「ヒロイックデータ回復(heroic data recovery)」ルーチンなどのより複雑なルーチンによって修正される。ヒロイック回復は、データの長期記憶に関して特に貴重である。貴重なデータのハードコピーは、記憶媒体(例えばハードドライブ又はCDのプラッタ)に記憶された後に破壊される可能性がある。記憶された後、長い年月の間に、記憶媒体の長期劣化が生じる可能性がある。記憶装置の代表的な誤り修正回路は、劣化した記憶媒体からデータの全てを回復できない可能性がある。そのようなデータを回復できない場合、そのデータが永久に失われる可能性がある。しかしホストプロセッサを使用すれば、ヒロイックデータ回復ルーチンを使用してデータを回復する可能性がより高くなる。
【0006】
誤り修正を実行するタスクを、ホストプロセッサに全部又は一部移すことができる。その結果記憶装置のコストを低下できる。デコーダ回路を縮小又は省略することができ、高価な静的ランダムアクセスメモリ(RAM)のサイズを縮小することができる。
【0007】
あるいは誤り修正を実行するタスクを、ホストプロセッサと記憶装置の誤り修正回路に振り分けることができる。誤りを修正するタスクは、初めは誤り修正回路に入る。この誤り修正回路は誤りの大多数を識別し修正する簡単な誤り修正アルゴリズムを利用する。この誤り修正回路がデータブロックを修正できなかった場合、タスクは、より複雑な誤り修正ルーチンを利用するホストプロセッサに移される。このような柔軟性によって、記憶装置が高速で廉価な誤り修正回路を使用することができる。その結果、記憶装置のコストを下げ、誤り修正を実行する信頼性を改善することができる。
【0008】
しかしながら特に、誤りコード修正(「ECC」)コードワードを含むデータにデータ暗号化を実行した後に、ホストプロセッサで誤り修正を実行することに関連して問題が生じる可能性がある。ECCコードワードを暗号化する場合、通常はコードワードの完全性が破壊される。その結果ホストプロセッサが、データ中の誤りを修正することができない。
【0009】
データが記憶装置からホストプロセッサに送信される前に、データを暗号化しなければならないという必要性が、当業界でさらに強くなっている。このことは特にコンピュータのDVD−ROMドライブについて当てはまる。データは、コンピュータバスを介して、DVD−ROMドライブからDVDデコーダカードに送信されるが、これは安全ではない。このバスに配置された暗号化されていないデータは傍受され、高品質の映画、音楽及び知的所有権のあるデータの無許可コピーを作成できることは本当に問題である。誤り修正のために暗号化されていないデータがホストプロセッサに万一送信された場合、暗号化されていないデータは盗み及び無許可のコピーに対して無防備である。したがってこのデータは、ホストプロセッサ中で誤りコード修正されない。その代わりに誤りコード修正は、DVD−ROMドライブ中のデータに実行される。次いで誤りコード修正したデータは、安全ではないコンピュータバスを介してDVDデコーダカードに送信される前に、暗号化される。
【0010】
【発明が解決しようとする課題】
これまでのところ、コンピュータバスを介して安全に伝送する必要があるために、ホストプロセッサが誤り修正を実行することが不可能である。その結果、誤り修正を実行するための高価なデコーダを省略し、高価なRAMを減少することによって、DVD−ROMドライブのコストを減少することができなかった。その上、異なる誤り修正ルーチンを実行する柔軟性が得られなくなった。
【0011】
【課題を解決するための手段】
本発明によれば、ドライブ中で一部又は全部のデータ暗号化を実行することができ、ホストプロセッサによって一部又は全部の誤り修正を実行することができる。1ブロックのECCエンコードしたデータが読み取られる。このECCブロックは、誤り修正コードワードを含む。暗号化マスクが提供され、ECCブロックとビットごと排他的論理和が演算される。このビットごと排他的論理和の積は、暗号化したECCブロックであり、次いでこのECCブロックをホストプロセッサに伝送することができる。コードワードの完全性は保持される。これによってホストプロセッサが、暗号化したECCブロックにいくつかの又は全ての誤り修正を実行することができる。
【0012】
ECCブロック中のユーザデータを暗号化マスク中の数と全部排他的論理和とすることができ、又はユーザデータを暗号化マスク中の数と選択的に排他的論理和とすることができる。ゼロと排他的論理和をとった、又は全く排他的論理和をとらなかったECCブロックの部分は暗号化されない。
【0013】
本発明の他の態様及び利点は、本発明の原理を例示的なものとして図示する添付図面と共に行う以下の詳しい説明から明かになるであろう。
【0014】
【発明の実施の形態】
例示するために図面に示すように、本発明は、ホストプロセッサ及び記憶媒体(例えばコンパクトディスク又はDVDディスク)からデータを読み取る記憶装置を含むシステムにおいて実施される。データはECCコードワードを含む。記憶装置は記憶媒体から読み取ったデータにデータ暗号化を実行するが、誤り修正コードワードの完全性を保持する。これによって、暗号化したデータを安全ではないコンピュータバスを介してホストプロセッサに送信することができる。次いでホストプロセッサは、暗号化したデータに誤り修正を実行することができる。この後信頼できるエンティティによって暗号解読を実行することができる。したがって本発明によれば、安全ではないコンピュータバス上に機密データを曝す危険性なく、ホストコンピュータがECCコードワードの一部又は全部の誤り修正を実行することができる。
【0015】
以下の段落では、本発明を、DVD−ROMドライブ及びこれに関連するDVD−ROM電子機器を含むコンピュータシステムに関して説明する。本発明は、DVD−ROMドライブに限定されるものではなく、単に本発明の理解を容易にするためにDVD−ROMを説明することを理解されたい。
【0016】
図1はコンピュータシステム10の種々の構成要素を示す。コンピュータシステム10は、コンピュータバス12及びコンピュータバス12に接続されたホストプロセッサ14(例えば中央演算処理装置)を含む。さらにシステム10は、DVD−ROM読取り装置18を含むDVD−ROMドライブ16を含み、このDVD−ROM読取り装置18はDVD−ROMディスクに記憶されたRS−PCブロックを読み取るよう動作する。RS−PCブロックは、DVDディスクから読み取られ、コントローラ20の制御下で、ランダムアクセスメモリ(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−PCブロックは、(M+q)×(N+p)バイトを有する。図6にそのようなRS−PCブロック602を示す。
【0018】
DVD−ROMドライブ16は、バッファリングされたRS−PCブロックに誤りコード修正を実行する必要はない。その代わりDVD−ROMドライブ16は、バッファリングされたRS−PCブロックに暗号化を実行する。第1疑似乱数発生器24が、M×Nブロックの乱数を発生し、各乱数は1バイトの長さを有する。例えば乱数は、ROMモジュール26からアクセスされるシードから発生してもよい。
【0019】
M×Nブロックの乱数が、RS−PCエンコーダ28に供給され、RS−PCエンコーダがM×NブロックにRS−PCエンコードを実行する。エンコーダ28の出力は、(M+q)×(N+p)バイトを有する暗号化マスクを提供する。複数の線形フィードバックシフトレジスタを有するエンコーダ28は、実施するのが比較的簡単であり、費用がかからない。その上RS−PCエンコードは、比較的高速で実行することができる。エンコーダ28は、DVDディスク上に記憶されたコードワードを発生するために使用された同じアルゴリズムを使用する。
【0020】
排他的論理和回路30は、RS−PCブロックと暗号化マスクのビットごと排他的論理和(XOR)を実行する。図3に、ビットごとの排他的論理和演算を図示して以下に論じる。ビットごと排他的論理和演算の結果、暗号化したユーザデータ及び暗号化したRS−PC冗長データを含む(M+q)×(N+p)の暗号化したブロックが生じる。
【0021】
コントローラ20の制御下で、暗号化したブロックは、誤り修正のためにコンピュータバス12に置かれてバッファ32中に記憶される。コンピュータバス12が安全ではなくても、暗号化ブロック中のユーザデータは暗号化され、したがって保護される。よってコンピュータバス12を渡って転送されるデータを解析することができるデータ解析器及び記憶スコープなどのバススニッファ(sniffer)装置は、容易にユーザデータを利用することができない。
【0022】
ホストプロセッサ14は、メモリ34中に記憶された実行可能な命令によって、誤り修正を実行するように命令される。この命令は、ホストプロセッサ14によって実行されているが、ホストプロセッサ14はバッファ32中に記憶された暗号化したデータブロックにRS−PC修正を実行する。
【0023】
ホストプロセッサ14は、依然暗号化されているが、ここで誤り修正された(M+q)×(N+p)ブロックを、コンピュータバス12を介してDVDデコーダカード36に送信する。この暗号化したブロックは受信されて、DVDデコーダカード36上のバッファ37中に記憶される。DVDデコーダカード36が暗号化したブロックに暗号解読を実行すると、ROM26中に記憶したシード、すなわち暗号化マスクが発生したシードにアクセスする。モジュール38及び40が、DVD−ROMドライブ16とDVDデコーダカード36の間のシードの認証及び交換を実行する。認証及び交換は従来の方式で実行することができる。
【0024】
DVDデコーダカード36の第2疑似乱数発生器42は、第1疑似乱数発生器24が発生するのと同じ一連の乱数を発生し、第2エンコーダ44がこの乱数からM×N暗号解読マスクを発生する。暗号解読マスクは、暗号化マスク中のM×Nブロックの乱数と一致する。したがって、認証及び交換モジュール38及び40を介して、最小量のデータ(すなわちシード)を送信することによって、暗号解読マスクが発生する。
【0025】
次いで第2排他的論理和回路46が、バッファ37中に記憶された暗号化したブロック中のM×Nユーザデータと暗号解読マスクのビットごと排他的論理和を実行する。ビットごと排他的論理和の積は、暗号化されていないM×Nブロックのユーザデータである。
【0026】
またDVDデコーダカード36は、ムービングピクチャーズエキスパートグループ(MPEG)デコーダ48を含み、このデコーダは、RS−PCブロックを受信して、MPEG標準に基づいてM×Nバイトブロックの暗号解読したユーザデータをデコードする。MPEGデコーダ48は連続する圧縮解除したデータを出力し、この連続する圧縮解除したデータはビデオディスプレイ上に表示される。圧縮解除したデータは、ディスプレイ又はディスプレイメモリに直接送信される。圧縮解除したデータは、コンピュータバス12上を伝送されない。
【0027】
誤り修正し暗号化したブロックを、ホストプロセッサ14の下流にある他のエンティティ49が受信することができる。下流エンティティ49は、後続のデータ伝送のために暗号化したブロックを再発生することができる。下流エンティティ49は、下流エンティティ49がアクセスしない暗号化したデータを廃棄することができる。下流エンティティ49が、暗号化したブロック中のデータにアクセスすることができない場合、シードはこの下流エンティティ49に送信されない。
【0028】
またドライブ16も基本の誤り修正能力を有することができる。例えばドライブは、オンザフライ(on-the-fly)誤り修正を実行するためにデコーダ39を含むことができる。デコーダ39がデータブロックを修正できない場合、このデータブロックはホストプロセッサ14に送信される。このような柔軟性があるので、誤り修正のために高速、かつ廉価なデコーダ39を使用することができる。またこのような柔軟性があるので、ホストプロセッサ14は、より複雑で、より正確な誤り修正を実行することができる。
【0029】
図4〜図6は、ビットごと排他的論理和演算をさらに詳細に示す。図4はRS−PCブロックの簡略版400を示す。ユーザデータのM×Nブロック405は、32Kバイトである。RS−PC冗長データ403、404は、ブロック400の各行及び各列に関連している。RS−PCブロック400の長さは、182バイトであり、そのうちの172バイトがユーザデータ405である。残りの10バイトは、誤り回復のために追加されるRS−PC冗長データ403である。RS−PCブロック400の行数は208であって、そのうちの16行にRS−PC冗長データ404が含まれている。ヘッダ401は、コピー保護、特に暗号化鍵に関する情報を含む。通常の状況下では、ユーザはこのデータを受信して、ヘッダ401又はRS−PC冗長データ403と404の内容を知る必要はない。この情報は、データがドライブ中にある間に、抽出されてチェックされる。またM×Nブロック405のユーザデータも、極秘データを含む引込み領域(lead-in area)(図示せず)を含む。
【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の暗号化マスクと排他的論理和することによって実行される。
【0031】
全ブロックをカバーするように、ビットごと排他的論理和演算を拡張することができる。第1疑似乱数発生器24のためにROM26中に記憶されるシードの長さは、必要な暗号強度を確保するに足る長さである。32Kバイトの乱数が生成された後は、関連するRS−PC冗長データが計算されて、暗号化マスクを完成される。RS−PC冗長データの計算は比較的ささいなことであるので、RS−PC冗長データを計算するのに処理電力をほとんど必要としない。
【0032】
前述の演算の結果として、RS−PCコードワードの誤り修正能力が保持される。図6を参照すると、記憶媒体中のノイズ及び欠陥のために、元のRS−PCブロック602全体にばらまかれる誤りが生じる。この誤りは点によって示される。暗号化マスク601は誤りを含まない。暗号化マスク601とRS−PCブロック602の排他的論理和をとると、誤り修正能力の完全性が維持される。したがって暗号化したデータブロック603は、RS−PCブロック602と同じ場所に誤りを含み、全てのRS−PCコードワードは、誤り修正を首尾よく実行することができるように整合している。暗号化マスク601中に万一誤りがあった場合でも、誤りは依然として修正することができ、暗号化及び後続の誤り修正が満足に行われる。
【0033】
疑似乱数発生器24、42及びRS−PCエンコーダ28に必要な処理電力は、誤りコード修正を実行するのに必要な処理電力と比較すると大したことはない。したがって本発明によれば、誤りコード修正の実行からより大きな負担が除去されるとともに、DVD−ROMドライブ16及びDVDデコーダカード36には小さな負担がかかるだけになる。誤りコード修正は、DVD−ROMドライブ16とホストプロセッサ14に分配するか、又はホストプロセッサ14に全部委ねることができる。
【0034】
本発明の基本ステップは次の通りである:
1)シードが提供される。シードの長さは、必要な暗号強度を確保するのに充分な長さである。
【0035】
2)1ブロックの乱数が疑似乱数発生器によって発生され、この乱数はシードによってシードされるか、又は初期化される。
【0036】
3)誤り修正コードワードが、記憶媒体に記憶されたRS−PCブロックに使用したのと同じ誤り修正コード発生方式に基づいて発生される。このようにして一連のコードワードが発生され、そのすべてが乱数シードによって決定され、記憶媒体に記憶された元のブロックと整合する。その結果暗号化マスクが生じる。
【0037】
4)元のRS−PCブロックと暗号化マスクの間で、ビットごと排他的論理和が実行される。
【0038】
5)またビットごと排他的論理和演算の結果生じるブロックも、記憶媒体から読み取られたコードワード中に含まれるいずれの誤りも含む有効なコードワードを含む。暗号化マスクが誤りを含まないので、追加の誤りは生じない。ビットごと排他的論理和演算の結果生じるブロックは、有効に暗号化され、元のデータを無許可でコピーされる危険性なしで、誤り修正のためにホストプロセッサ又は他の処理エンティティに送信することができる
6)誤りコード修正がホストプロセッサによって実行される。誤りは修正されたが、依然として暗号化されているブロックが、元のデータが無許可でコピーされる危険性なく、ホストプロセッサの下流に送信される。
【0039】
7)暗号解読が、ホストプロセッサの下流にある信頼できるエンティティ(例えばMPEGデコーダ)によって実行される場合、シードだけを信頼できるエンティティに転送する必要がある。シードは、標準技法に基づいて認証されて交換される鍵を使用する安全な方式で転送することができる。次いで信頼できるエンティティが、ユーザデータの暗号化のために暗号化マスクによって使用される同じ乱数パターンを使用して暗号解読マスクを発生する。暗号解読マスクは、誤り修正したが依然として暗号化されているデータブロックのユーザデータと、ビットごと排他的論理和演算される。その結果M×Nブロックが暗号解読され、誤りコード修正されたユーザデータが生じる。
【0040】
8)ホストプロセッサの下流にあるエンティティがブロックに暗号解読を実行しない場合、シードはこのエンティティに転送されない。同様にホストプロセッサの下流にあるエンティティが、ブロック中のデータにアクセスすることができない場合、シードはこのエンティティに送信されない。
【0041】
ここまでは、RS−PCブロック全体の暗号化に関して本発明を説明してきた。しかしながらRS−PCブロック全体を暗号化する必要のない状況が発生する可能性がある。RS−PCブロックの一部だけを暗号化する必要がある可能性がある。例えば引込み領域の一部が、暗号化に関する機密データを含む可能性がある。しかし172×192ブロックのユーザデータの最初のバイト(すなわちヘッダ)が、機密でないアドレス及び他のヘッダ情報を含む。したがってヘッダに対応する暗号化マスクのバイトは、全てゼロであって、残りのバイトは疑似乱数である。これによって、ホストプロセッサ14は誤り修正してブロックアドレスを確認することができるが、(ホストプロセッサがDVDデコーダカード36に送信する)機密データにアクセスすることはできない。したがってRS−PCのいくつかの部分は選択的に暗号化され、それによってデータの機密性が、ホストプロセッサ14及び、ことによるとホストプロセッサ14の下流にある他のエンティティ49から保護される。
【0042】
別の例では、記憶媒体から読み取ったECCブロックは、ある領域中の暗号化した情報をすでに含んでいる。したがって、すでに暗号化されているデータは、コンピュータバス上で曝される危険性がなく、したがってドライブによってさらに暗号化する必要はない。しかしECCブロックもまた、ヘッダ領域に極秘のタイトル鍵データ(title key data)を含んでいる。アドレスなどの追加のヘッダ情報は機密ではない。この場合、ヘッダ中の機密データのみを保護する必要がある。したがって暗号化マスクは、(疑似乱数を含む)機密ヘッダデータバイト場所以外のあらゆる場所ですべてのゼロを含む。このことによって、ホストプロセッサは、機密情報へのアクセス権を得ないで、ECCブロックを誤り修正し、アドレスを確認し、ユーザデータを次に回すことができる。
【0043】
図2はECCブロック中のデータを選択的に暗号化する方法を示す。記憶媒体からECCブロックを読み取る(ブロック200)。ECCブロック中の一部のデータ(例えばバイトシーケンス)のみを機密保持する必要がある場合、ドライブ(例えばCD ROMドライブ又はDVDドライブ)が、機密データを含む場所に対応する乱数及び他の場所のゼロを含む暗号化マスクを提供する(ブロック202)。暗号化マスク中のゼロの場所は、規約により決定することができる。例えば規約によりヘッダ情報が保護される場合、暗号化マスクはヘッダ場所に乱数及び他の場所にゼロを含む。また暗号化マスクも、乱数及びゼロについてのECC冗長データを含む。
【0044】
次に暗号化マスクブロックとECCブロックとのビットごと排他的論理和をとる(ブロック204)。その結果生じる一部暗号化したブロックは、有効なECCコードワード、ヘッダ場所に暗号化したデータ、及び他の場所に暗号化されていないデータを含む。
【0045】
一部暗号化したブロックはホストプロセッサに送信され、ホストプロセッサは誤りコード修正を実行する(ブロック206)。さらにホストプロセッサは、暗号化されていない情報にアクセスする(ブロック208)。
【0046】
次いで誤り修正したブロックは、1つ又は複数の追加のエンティティに送信される(ブロック210)。各エンティティでは、ランダムデータシーケンスが後続のデータを処理するために再使用されるか、又は新しいランダムデータシーケンスが各データ量を処理するために発生することもできる。追加の各エンティティによる全部あるいは一部いずれかの追加の暗号化により、保護の追加の層が付加される。またこれによって、選択したエンティティが選択したデータを利用できるようになる。修正された機密ではないデータは直ちに使用できる。シードは、暗号解読を実行していない、又は機密データにアクセスしていないエンティティには送信されない。
【0047】
暗号化マスクを発生しているとき、ゼロを書き込む必要はない。その代わり、乱数を提供することができ、この乱数及びその場所から冗長バイトを発生することができる。次いでECCブロックの選択的部分とこの乱数及び冗長バイトとのビットごと排他的論理和をとることができる。
【0048】
図3は、ドライブが基本ECCを実行し、ホストプロセッサがより複雑な誤り修正を実行する方法を示す。ドライブは、記憶媒体からECCブロックを読み取り、このECCブロックをバッファリングする(ブロック300)。ドライブは、バッファリングされたECCブロック中の誤りの大多数を識別して修正するために簡単な誤り修正アルゴリズムを実行する比較的簡単な回路を含む(ブロック302)。誤り修正回路がデータブロックを修正できない場合、バッファリングされたECCブロックのいくつか又は全ては暗号化され(ブロック304)、ホストプロセッサに送信される(ブロック306)。次いでホストプロセッサは、より複雑な誤り修正ルーチンを実行して、誤りを回復する(ブロック308)。このような柔軟性があるので、ドライブに高速かつ廉価な誤り修正回路を使用することができ、これによってドライブのコストが下がると共に、誤り修正を実行する速度が改善される。その上誤り修正能力が改善される。このことは、データの長期記憶に特に重要である。
【0049】
以下においては、本発明の種々の構成要件の組み合わせからなる例示的な実施態様を示す。
【0050】
1. コンピュータバス(12)と、
前記コンピュータバスに接続され、誤り修正を実行するようにプログラムされたホストプロセッサ(14)と、
1ブロックのECCエンコードしたデータを提供するための手段(18)と、暗号化マスクを提供するための手段(24、26、28)と、前記暗号化マスクと前記1ブロックのECCエンコードしたデータのビットごと排他的論理和を実行するための手段(30)とを含むドライブ(16)と、前記ビットごと排他的論理和の積が暗号化されたブロックであり、前記ビットごと排他的論理和を実行するための手段の出力が前記コンピュータバスに結合され、それにより前記暗号化されたブロックが誤り修正のために前記コンピュータバスを介して前記ホストプロセッサに送信することが可能であることとを含むシステム。
【0051】
2. 暗号化マスクを形成するための前記手段(24、26、28)が、シードを提供するための手段(26)と、前記シードから一連の乱数を発生するための疑似ランダムデータ発生器(24)と、第1部分及び第2部分を含む暗号化マスクを発生するためのECCエンコーダ(28)とを含み、前記第1部分が乱数を含み、前記第2部分が前記第1部分に関する冗長データを含む、1項に記載のシステム。
【0052】
3. さらに、前記コンピュータバスに接続された、前記ホストプロセッサから前記暗号化されたブロックを受信するための手段(37)と、前記ドライブから前記シードを受信するための手段(40)と、前記シードから暗号解読マスクを発生するための第2疑似ランダムデータ発生器(42)と、前記暗号解読マスクと前記暗号化したブロック中のユーザデータの第2のビットごと排他的論理和を実行するための手段(46)とを備え、前記第2のビットごと排他的論理和の積が暗号化されていないユーザデータを提供する、2項に記載のシステム。
【0053】
4. 前記ドライブ(16)がDVD−ROMドライブであること、ならびにDVDデコーダカード(36)が、MPEGデコーダ(48)と、前記暗号化したブロックを受信するための前記手段(37)と、前記シードを受信するための前記手段(40)と、前記第2疑似ランダムデータ発生器(42)と、前記第2のビットごと排他的論理和を実行する前記手段(46)とを備え、前記MPEGデコーダが前記第2のビットごと排他的論理和を実行するための前記手段(46)の出力に結合されている、3項に記載のシステム。
【0054】
5. 前記ECCブロックがユーザデータに関する第1部分及び冗長データに関する第2部分を含み、ならびに前記暗号化マスクが、前記ECCブロックの第1部分及び第2部分にそれぞれ対応する第3部分及び第4部分を含む、請求項1に記載のシステム。
【0055】
6. 前記第3部分が複数の乱数で満たされて、ならびに前記第4部分が前記第3部分から発生する冗長データを含む、5項に記載のシステム。
【0056】
7. 前記第3部分が乱数及びゼロで選択的に満たされ、ならびに前記第4部分が前記第3部分から発生する冗長データを含む、5項に記載のシステム。
【0057】
8. 前記ECCブロックが誤り修正方法によってコード化され、ならびに前記暗号化マスクが同じ誤り修正方法によってコード化される、1項に記載のシステム。
【0058】
9. 前記ドライブ(16)が誤り修正を実行するための手段(39)をさらに含み、ならびにまたホストプロセッサ(14)が、前記ドライブによって送信された暗号化されたデータに誤り修正を実行する、1項に記載のシステム。
【0059】
【発明の効果】
以上、ECCコードワードの完全性に影響を及ぼさないで、ECCエンコードしたデータを暗号化する本発明を開示した。本発明によれば、暗号化したデータの誤りコードをホストプロセッサで修正し、その後で暗号解読することができる。次にホストプロセッサで誤りコード修正を実施すると、高価なECC回路を縮小し、静的RAMを縮小することによって、記憶装置のコストを下げることができる。
【0060】
ホストプロセッサでECCを実行する別の利点は、ハードウエアと違って、ホストプロセッサは、異なるECCルーチンを利用する柔軟性を有することである。ハードウエア回路は、すべての状況について同じECCアルゴリズム又は1組のアルゴリズムを使用するように通常制限されるが、ホストプロセッサは異なるアルゴリズムを使用することができる。例えばホストプロセッサは、どのデータも変更(すなわち修正)せずにECCブロック全体を解析し、次いで最善の戦略を決定して修正ミスを回避することができる。データの修正ミスは、特にオンザフライ処理中に問題になる可能性がある。ハードウエアRS−PCデコーダは、通常誤りコード修正をオンザフライで実行し、データを誤って修正して、その結果データブロック中の誤りの数を増加させる可能性がある。修正ミスは、ブロックが修正不可能となる可能性をさらに増大させる。ホストプロセッサが採用するより柔軟性のある手法によれば、データブロックになんらかの変更をする前に、データ及び誤りパターンを解析することによって、この問題を回避することができる。
【0061】
別の利点は、特に暗号化及び暗号解読が、最小量の機密情報、すなわちシードをコンピュータバスを介して送信することによって実行されることである。暗号化マスクはバス上に曝されない。DVD−ROMドライブなどのドライブのドライブ製造者は通常デコーダカードも同様に販売するので、ドライブ製造者が、ドライブ及びデコーダカードに整合する同じ疑似乱数発生器を指定することができる。
【0062】
ホストプロセッサは、暗号化したデータへアクセスせずに、誤りコード修正を実行することができる。代替的には選択的暗号化を実行することができ、その場合ホストプロセッサは、選択した情報のみにアクセスする。修正した機密ではないデータは、使用のために直ちにアクセス可能である。
【0063】
DVD−ROMドライブに関して本発明を説明してきたが、本発明はそれに限定されるものではない。本発明は、順方向誤り修正が必要である場合あるいは送信側がデータを再伝送することが実用的でない場合に特に適用できる。DVDプレーヤ以外のデータ記憶装置には、CDプレーヤ、ディジタルデータ記憶(DDS)プレーヤ、及びディジタルビデオカセット(DVC)プレーヤが含まれる。他の適用例には、宇宙通信装置及びモバイル通信装置が含まれる。したがってECCブロック源はROMドライブに限定されない。
【0064】
以上、本発明の特定の実施形態を説明し、例示してきた。しかし本発明は、説明及び例示した特定の形態及び部品の配列に限定されるものではない。例えば本発明によれば、リード−ソロモンプロダクトコード以外の誤り修正方法を使用することができる。これは、もちろん、記憶媒体に記憶されるデータに使用される暗号化方法によって決まる。
【0065】
シード及び暗号化マスクを発生する代わりに、DVD−ROMドライブは、ROMからアプリオリ暗号化マスクにアクセスできる。またDVDデコーダカードも、ROMから暗号化マスクにアクセスする。処理電力を減少することに加えて、この実施形態では、DVD−ROMドライブが、DVDデコーダカードにシードを渡す必要がない。
【0066】
したがって、本発明は、以上説明し、例示した特定の実施形態に限定されるものではない。それよりも、本発明は添付の特許請求の範囲に基づいて解釈される。
【図面の簡単な説明】
【図1】本発明に基づくコンピュータシステムの種々の構成要素のブロック略図である。
【図2】本発明に基づく誤りコード修正及びデータ暗号化を実行する方法のフローチャートである。
【図3】本発明に基づく誤りコード修正及びデータ暗号化を実行する代替的な方法のフローチャートである。
【図4】RS−PCブロックの簡略化したレイアウトを示す図である。
【図5】コンピュータシステムによって実行されるビットごと排他的論理和演算を示す図である。
【図6】RS−PCブロック、暗号化マスク及びRS−PCブロックと暗号化マスクのビットごと排他的論理和の積を示すブロック図である。
【符号の説明】
10 コンピュータシステム
12 バス
14 ホストプロセッサ
16 ドライバ
36 デコーダ
[0001]
BACKGROUND OF THE INVENTION
The present invention relates generally to data storage and transmission. More particularly, the present invention relates to the encryption of data containing codewords used for forward error correction.
[0002]
[Prior art]
Forward error correction is typically performed in data transmission channels and data storage devices in order to maintain user data integrity. Redundant data is added to the user data before transmission or storage. In data storage devices such as hard disk drives, compact disc (CD) players, and digital video disc (DVD) players, errors can occur due to defects in the storage media and noise in the read channel. If an error is detected in transmitted or stored data, this error can be corrected by redundant data.
[0003]
There are various ways to perform forward error correction. For example, the Reed-Solomon product code (“RS-PC”) is used for CD players and DVD players.
[0004]
CD players and DVD players include an error correction circuit for performing forward error correction. This error correction circuit is required to have a strong calculation capability and is usually implemented in a hard-wired or inflexible manner. In addition, the error correction circuit requires a processing circuit and a high-speed memory, which tends to increase costs.
[0005]
With recent improvements in personal computer processing power, it is becoming practical to perform all or part of forward error correction on a computer host processor instead of a data storage device. Once the host processor can perform error correction, more flexible error correction methods are available. For example, the host processor can execute a default routine that can correct most errors at high speed. 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 destroyed 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 a long period of time. A typical error correction circuit in a storage device may not be able to recover all of the data from a degraded storage medium. If such data cannot be recovered, the data can be lost forever. However, using a host processor increases the chances of recovering data using a heroic data recovery routine.
[0006]
The task of performing error correction can be transferred in whole or in part 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 for executing error correction can be distributed to the error correction circuit of the host processor and the storage device. The task for correcting errors initially enters the error correction circuit. The error correction circuit utilizes a simple error correction algorithm that identifies and corrects the majority of errors. If the error correction circuit fails to correct the data block, the task is transferred to a host processor that utilizes a more complex error correction routine. Such flexibility allows the storage device to use an error correction circuit that is fast and inexpensive. As a result, the cost of the storage device can be reduced and the reliability of executing error correction can be improved.
[0008]
In particular, however, problems can arise in connection with performing error correction at the host processor after performing data encryption on data that includes error code correction (“ECC”) codewords. 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]
The need for data to be encrypted before it is transmitted from the storage device to the host processor is even stronger in the industry. This is especially true for computer DVD-ROM drives. Data is sent over the computer bus from the DVD-ROM drive to the DVD decoder card, which is not secure. The unencrypted data placed on this bus is intercepted and the real problem is the ability to create unauthorized copies of high quality movies, music and intellectual property data. In the unlikely event that unencrypted data is sent to the host processor for error correction, the unencrypted data is vulnerable to theft and unauthorized copying. This data is therefore not corrected for error codes 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 an insecure computer bus.
[0010]
[Problems to be solved by the invention]
So far, it is impossible for the host processor to perform error correction due to the need to transmit securely over the computer bus. As a result, the cost of the DVD-ROM drive could not be reduced by omitting an expensive decoder for performing error correction and reducing the expensive RAM. In addition, the flexibility to run different error correction routines is no longer available.
[0011]
[Means for Solving the Problems]
According to the present invention, part or all of the data encryption can be performed in the drive, and part or all of the error correction can be performed by the host processor. One block of ECC encoded data is read. This ECC block includes an error correction codeword. An encryption mask is provided and a bitwise exclusive OR is calculated with the ECC block. This 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]
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 exclusive ORed with the number in the encryption mask. The portion of the ECC block that has been XORed with zero or has not been XORed at all is 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]
DETAILED DESCRIPTION OF THE INVENTION
As shown in the drawings for purposes of illustration, the present invention is implemented in a system that includes a host processor and a storage device that reads data from a storage medium (eg, a compact disc or DVD disc). The data includes an ECC code word. The storage device performs data encryption on the data read from the storage medium, but retains the integrity of the error correction codeword. This allows encrypted data to be sent to the host processor via an insecure computer bus. The host processor can then perform error correction on the encrypted data. After this, decryption can be performed by a trusted entity. Therefore, according to the present invention, the host computer can perform error correction on some or all of the ECC codewords without the risk of exposing sensitive data on an insecure computer bus.
[0015]
In the following paragraphs, the present invention will be described with reference to a computer system including a DVD-ROM drive and associated DVD-ROM electronics. It should be understood that the present invention is not limited to DVD-ROM drives, but merely describes a DVD-ROM to facilitate an understanding of the present invention.
[0016]
FIG. 1 illustrates various components of a computer system 10. The computer system 10 includes a computer bus 12 and a host processor 14 (for example, a central processing unit) connected to the computer bus 12. Further, the system 10 includes a DVD-ROM drive 16 that includes a DVD-ROM reader 18, which operates to read RS-PC blocks stored on a DVD-ROM disc. The RS-PC block is read from the DVD disk and buffered in random access memory (RAM) 22 under the control of the controller 20.
[0017]
Each RS-PC block includes M rows of user data, and each word length of the user data is N bytes. Each M word is accompanied by RS-PC redundant 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. Each (N + p) column is accompanied by RS-PC redundant data having a length of q bytes. As a result, the RS-PC block has (M + q) × (N + p) bytes. FIG. 6 shows such an RS-PC block 602.
[0018]
The DVD-ROM drive 16 need not perform error code correction on the buffered RS-PC block. Instead, the DVD-ROM drive 16 performs encryption on the buffered RS-PC block. A first pseudorandom number generator 24 generates M × N block random numbers, each random number having a length of 1 byte. For example, the random number may be generated from a seed accessed from the ROM module 26.
[0019]
A random number of M × N blocks is supplied to the RS-PC encoder 28, and the RS-PC encoder performs RS-PC encoding on the M × N block. The output of encoder 28 provides an encryption mask having (M + q) × (N + p) bytes. An encoder 28 with 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 that was used to generate the codewords stored on the DVD disc.
[0020]
The exclusive OR circuit 30 performs exclusive OR (XOR) for each bit of the RS-PC block and the encryption mask. FIG. 3 illustrates the bitwise exclusive OR operation and is discussed below. The bitwise exclusive OR operation results in (M + q) × (N + p) encrypted blocks containing encrypted user data and encrypted RS-PC redundant data.
[0021]
Under control of the controller 20, the encrypted block is placed on the computer bus 12 and stored in the buffer 32 for error correction. Even if the computer bus 12 is not secure, the user data in the encryption block is encrypted and thus protected. Thus, data sniffers such as data analyzers and storage scopes that can analyze data transferred across the computer bus 12 cannot readily utilize user data.
[0022]
Host processor 14 is instructed to perform error correction by executable instructions stored in memory 34. This instruction is being executed by the host processor 14, which performs RS-PC modification on the encrypted data block stored in the buffer 32.
[0023]
The host processor 14 transmits the (M + q) × (N + p) block, which is still encrypted but corrected here, to the DVD decoder card 36 via the computer bus 12. This encrypted block is received and stored in a buffer 37 on the DVD decoder card 36. When the DVD decoder card 36 performs decryption on the encrypted block, the seed stored in the ROM 26, that is, the seed in which the encryption mask is generated is accessed. Modules 38 and 40 perform seed authentication and exchange between the DVD-ROM drive 16 and the DVD decoder card 36. Authentication and exchange can be performed in a conventional manner.
[0024]
The second pseudo random number generator 42 of the DVD decoder card 36 generates the same series of random numbers that the first pseudo random number generator 24 generates, and the second encoder 44 generates an M × N decryption mask from this random number. To do. The decryption mask matches the random number of the M × N block in the encryption mask. Accordingly, a decryption mask is generated by transmitting a minimal amount of data (ie, seed) via the authentication and exchange modules 38 and 40.
[0025]
A second exclusive OR circuit 46 then performs a bitwise exclusive OR on the M × N user data in the encrypted block stored in the buffer 37 and the decryption mask. The product of bitwise exclusive OR is M × N block user data that is not encrypted.
[0026]
The DVD decoder card 36 also includes a Moving Pictures Expert Group (MPEG) decoder 48 which receives the RS-PC block and decodes the decrypted user data of M × N byte blocks based on the MPEG standard. To do. The MPEG decoder 48 outputs continuous decompressed data which is displayed on the video display. The decompressed data is sent directly to the display or display memory. The decompressed data is not transmitted over the computer bus 12.
[0027]
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 block 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]
The drive 16 can also have basic error correction capabilities. For example, the drive can 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 the host processor 14. Due to such flexibility, a high-speed and inexpensive decoder 39 can be used for error correction. Such flexibility also allows the host processor 14 to perform more complex and more accurate error correction.
[0029]
4-6 illustrate 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. RS-PC redundancy data 403, 404 is associated with each row and each column of block 400. The length of the RS-PC block 400 is 182 bytes, of which 172 bytes are user data 405. The remaining 10 bytes are RS-PC redundant data 403 added for error recovery. The number of rows of the RS-PC block 400 is 208, of which 16 rows include the RS-PC redundant data 404. The header 401 includes information related to copy protection, particularly an encryption key. Under normal circumstances, the user does not need to receive this data and know the contents of the header 401 or the RS-PC redundant data 403 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]
Referring to FIG. 5, a row 501 of the RS-PC block includes 10 bytes of RS-PC redundant data and 172 bytes of user data generated from the user data in the row 501. The encryption mask in row 502 includes 172 bytes of random numbers and 10 bytes of RS-PC redundant data generated from the 172 bytes of random numbers in row 502. When the two rows 501 and 502 are bitwise exclusive ORed together, the encrypted block of row 504 is formed. The encrypted block in row 504 includes 172 bytes of encrypted data and 10 bytes of redundant data that provides a valid RS-PC codeword for the 172 bytes of encrypted data in row 504. Decryption is performed by exclusive ORing the encrypted block in row 504 with the encryption mask in row 502.
[0031]
The bitwise exclusive OR operation can be extended to cover all blocks. The seed length stored in the ROM 26 for the first pseudorandom number generator 24 is long enough to ensure the required cryptographic strength. After the 32K byte random number is generated, the associated RS-PC redundant data is calculated to complete the encryption mask. Since the calculation of RS-PC redundant data is relatively trivial, little processing power is required to calculate RS-PC redundant data.
[0032]
As a result of the above operation, the error correction capability of the RS-PC codeword is retained. Referring to FIG. 6, errors that are scattered throughout the original RS-PC block 602 occur due to noise and defects in the storage medium. This error is indicated by a dot. The encryption mask 601 contains no errors. When the exclusive OR of the encryption mask 601 and the RS-PC block 602 is taken, the integrity of the error correction capability is maintained. Thus, the encrypted data block 603 contains errors in the same location as the RS-PC block 602, and all RS-PC codewords are aligned so that error correction can be performed successfully. Should there be an error in the encryption mask 601, the error can still be corrected and the encryption and subsequent error correction are done satisfactorily.
[0033]
The processing power required for the pseudo-random number generators 24, 42 and the RS-PC encoder 28 is not much compared to the processing power required to perform error code correction. Therefore, according to the present invention, a larger burden is removed from the execution of error code correction, and only a small burden is imposed on the DVD-ROM drive 16 and the DVD decoder card 36. Error code correction can be distributed to the DVD-ROM drive 16 and the host processor 14 or can be left entirely to the host processor 14.
[0034]
The basic steps of the present invention are as follows:
1) A seed is provided. The length of the seed is sufficient to ensure the necessary encryption strength.
[0035]
2) A block of random numbers is generated by a pseudo-random number generator, which is seeded or initialized by a seed.
[0036]
3) Error correction codewords are generated based on the same error correction code generation scheme used for 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 block stored on the storage medium. The result is an encryption mask.
[0037]
4) A bitwise exclusive OR is performed between the original RS-PC block and the encryption mask.
[0038]
5) The block resulting from the bitwise exclusive OR operation also includes a valid codeword that includes any errors contained in the codeword read from the storage medium. Since the encryption mask contains no errors, no additional errors occur. Blocks resulting from bitwise exclusive OR operations are effectively encrypted and sent to the host processor or other processing entity for error correction without the risk of unauthorized copying of the original data Can
6) Error code correction is performed by the host processor. The error is corrected, but the still encrypted block is sent downstream of the host processor without the risk of unauthorized copying of the original data.
[0039]
7) If the decryption is performed by a trusted entity (eg MPEG decoder) downstream of the host processor, only the seed needs to be transferred to the trusted entity. The seed can be transferred in a secure manner using keys that are authenticated and exchanged according to standard techniques. The trusted entity then generates a decryption mask using the same random number pattern used by the encryption mask for encryption of user data. The decryption mask is bitwise exclusive ORed with the user data of the data block that has been error corrected but is still encrypted. As a result, the M × N block is decrypted, resulting in user data with an error code corrected.
[0040]
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 is unable to access the data in the block, no seed is sent to this entity.
[0041]
So far, the present invention has been described with respect to encryption of the entire RS-PC block. However, there may be situations where it is not necessary to encrypt the entire RS-PC block. Only a portion of the RS-PC block may need to be encrypted. For example, part of the pull-in area may contain confidential data related to encryption. However, the first byte (i.e. header) of the 172x192 block of user data contains an insensitive address and other header information. Therefore, the bytes of the encryption mask corresponding to the header are all zero, and the remaining bytes are pseudorandom numbers. This allows the host processor 14 to correct the error and confirm the block address, but cannot access the confidential data (sent by the host processor to the DVD decoder card 36). Thus, some parts 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]
In another example, an ECC block read from a storage medium already contains encrypted information in an 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 confidential title key data in the header area. Additional header information such as addresses is not confidential. In this case, it is necessary to protect only the confidential data in the header. Thus, the encryption mask contains all zeros everywhere except the sensitive header data byte location (including pseudo-random numbers). This allows the host processor to correct the ECC block, check the address, and pass the user data to the next without obtaining the right to access the confidential information.
[0043]
FIG. 2 illustrates a method for selectively encrypting data in an ECC block. The ECC block is read from the storage medium (block 200). If only some data (eg, byte sequences) in the ECC block needs to be kept confidential, the drive (eg, CD ROM drive or DVD drive) will have a random number corresponding to the location containing the sensitive data and zeros elsewhere An encryption mask including is provided (block 202). The zero location 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 ECC redundancy data for random numbers and zeros.
[0044]
Next, an exclusive OR is performed for each bit of the encryption mask block and the ECC block (block 204). The resulting partially encrypted block contains a valid ECC codeword, encrypted data in the header location, and unencrypted data elsewhere.
[0045]
The partially encrypted block is sent to the host processor, which performs error code correction (block 206). In addition, the host processor accesses unencrypted information (block 208).
[0046]
The error corrected block is then transmitted to one or more additional entities (block 210). At each entity, a random data sequence can be reused to process subsequent data, or a new random data sequence can be generated to process each amount of data. Additional encryption, either in whole or in part by each additional entity, adds an additional layer of protection. This also allows the selected entity to use the selected data. The modified non-sensitive data can be used immediately. The seed is not sent to entities that are not performing decryption or accessing sensitive data.
[0047]
There is no need to write zero when generating the encryption mask. Instead, a random number can be provided, and redundant bytes can be generated from this random number and its location. A bitwise exclusive OR of the selected portion of the ECC block with this random number and redundant byte can then be taken.
[0048]
FIG. 3 illustrates how the drive performs basic ECC and 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 includes relatively simple circuitry that implements a simple error correction algorithm to identify and correct the majority of errors in the buffered ECC block (block 302). If the error correction circuit cannot correct the data block, some or all of the buffered ECC blocks are encrypted (block 304) and sent to the host processor (block 306). The host processor then executes a more complex error correction routine to recover the error (block 308). This flexibility allows a fast and inexpensive error correction circuit to be used for the drive, which reduces the cost of the drive and improves the speed of performing error correction. In addition, error correction capability is improved. This is particularly important for long-term storage of data.
[0049]
In the following, exemplary embodiments consisting of combinations of various constituents of the present invention are shown.
[0050]
1. A computer bus (12),
A host processor (14) connected to the computer bus and programmed to perform error correction;
Means (18) for providing one block of ECC encoded data, means (24, 26, 28) for providing an encryption mask, and the encryption mask and one block of ECC encoded data. A drive (16) including means (30) for performing bitwise exclusive OR, and a block in which a product of the bitwise exclusive OR is encrypted, and the bitwise exclusive OR The output of the means for performing is coupled to the computer bus so that the encrypted block can be transmitted to the host processor via the computer bus for error correction. system.
[0051]
2. The means (24, 26, 28) for forming an encryption mask comprises means (26) for providing a seed and a pseudo-random data generator (24) for generating a series of random numbers from the seed And an ECC encoder (28) for generating an encryption mask including a first portion and a second portion, wherein the first portion includes a random number, and the second portion includes redundant data relating to the first portion. The system of claim 1, comprising.
[0052]
3. Means (37) for receiving the encrypted block from the host processor connected to the computer bus; means (40) for receiving the seed from the drive; A second pseudo-random data generator (42) for generating a decryption mask, and means for performing a second bitwise exclusive OR of the decryption mask and user data in the encrypted block (46), wherein the second bitwise exclusive OR product provides unencrypted user data.
[0053]
4). The drive (16) is a DVD-ROM drive, and a DVD decoder card (36) includes an MPEG decoder (48), the means (37) for receiving the encrypted block, and the seed. Said means for receiving (40), said second pseudo-random data generator (42), and said means (46) for performing an exclusive OR for said second bit, wherein said MPEG decoder comprises: A system according to claim 3, coupled to the output of said means (46) for performing a second bitwise exclusive OR.
[0054]
5. The ECC block includes a first portion relating to user data and a second portion relating to redundant data, and the encryption mask includes a third portion and a fourth portion corresponding to the first portion and the second portion of the ECC block, respectively. The system of claim 1, comprising:
[0055]
6). The system of claim 5, wherein the third portion is filled with a plurality of random numbers, and the fourth portion includes redundant data generated from the third portion.
[0056]
7. The system of claim 5, wherein the third part is selectively filled with a random number and zero, and the fourth part includes redundant data originating from the third part.
[0057]
8). The system of claim 1, wherein the ECC block is encoded by an error correction method and the encryption mask is encoded by the same error correction method.
[0058]
9. The drive (16) further includes means (39) for performing error correction, and also the host processor (14) performs error correction on the encrypted data transmitted by the drive. The system described in.
[0059]
【The invention's effect】
Thus, the present invention has been disclosed that encrypts 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. Next, when error code correction is performed by the host processor, the cost of the storage device can be reduced by reducing the expensive ECC circuit and reducing the static RAM.
[0060]
Another advantage of running ECC on the host processor is that, unlike hardware, the host processor has the flexibility to utilize different ECC routines. Although the hardware circuitry is usually limited 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 can analyze the entire ECC block without changing (ie, correcting) any data, and then determine the best strategy to avoid correction errors. Data correction errors can be a problem, especially during on-the-fly processing. Hardware RS-PC decoders typically perform error code correction on the fly and can correct data incorrectly, resulting in an increased number of errors in the data block. Correction errors further increase the likelihood that the block will be uncorrectable. A more flexible approach adopted by the host processor can avoid this problem by analyzing the data and error patterns before making any changes to the data block.
[0061]
Another advantage is that encryption and decryption are performed in particular by transmitting a minimal amount of sensitive information, i.e. a 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 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 only accesses the selected information. The modified non-sensitive data is immediately accessible for use.
[0063]
Although the present invention has been described with respect to a DVD-ROM drive, the present invention is not limited thereto. The present invention is particularly applicable when forward error correction is necessary or when it is not practical for the transmitting side 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 communication devices and mobile communication devices. Therefore, the ECC block source is not limited to the ROM drive.
[0064]
Thus, specific embodiments of the present invention have been described and 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 of course depends on the encryption method used for the data stored on the storage medium.
[0065]
Instead of generating a 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, this embodiment does not require the DVD-ROM drive to pass 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 based on the claims that follow.
[Brief description of the drawings]
FIG. 1 is a block schematic diagram of various components of a computer system in accordance with the present invention.
FIG. 2 is a flowchart of a method for performing error code correction and data encryption according to the present invention.
FIG. 3 is a flowchart of an alternative method of performing error code correction and data encryption according to the present invention.
FIG. 4 is a diagram showing a simplified layout of an RS-PC block.
FIG. 5 illustrates a bitwise exclusive OR operation performed by a computer system.
FIG. 6 is a block diagram showing a product of an exclusive OR for each bit of an RS-PC block, encryption mask, and RS-PC block and encryption mask.
[Explanation of symbols]
10 Computer system
12 bus
14 Host processor
16 drivers
36 decoder

Claims (9)

コンピュータバス(12)と、
前記コンピュータバスに接続され、誤り修正を実行するようにプログラムされたホストプロセッサ(14)と、
ECCエンコードされたデータのブロックを提供するための手段(18)と、暗号化マスクを提供するための手段(24、26、28)と、前記暗号化マスクと前記ECCエンコードされたデータのブロックとのビットごとの排他的論理和を実行するための手段(30)とを含むドライブ(16)と、
からなるシステムであって、
前記ビットごとの排他的論理和の結果が暗号化されたブロックであり、前記ビットごとの排他的論理和を実行するための手段の出力が前記コンピュータバスに接続され、それによって前記暗号化されたブロックを誤り修正のために前記コンピュータバスを介して前記ホストプロセッサへ送信可能である、システム。
A computer bus (12),
A host processor (14) connected to the computer bus and programmed to perform error correction;
Means (18) for providing a block of ECC encoded data, means (24, 26, 28) for providing an encryption mask, the encryption mask and the block of ECC encoded data, A drive (16) comprising means (30) for performing a bitwise exclusive OR of
A system comprising:
The result of the bitwise exclusive OR is an encrypted block, and the output of the means for performing the bitwise exclusive OR is connected to the computer bus, whereby the encrypted A system capable of transmitting blocks to the host processor via the computer bus for error correction.
前記暗号化マスクを形成するための手段(24、26、28)が、
シードを提供するための手段(26)と、
前記シードから一連の乱数を生成するための疑似ランダムデータ発生器(24)と、
乱数を含む第1の部分と該第1の部分に関する冗長データを含む第2の部分とを含む暗号化マスクを生成するためのECCエンコーダ(28)とを含む、請求項1のシステム。
Means (24, 26, 28) for forming the encryption mask;
Means (26) for providing seeds;
A pseudo-random data generator (24) for generating a series of random numbers from the seed;
The system of claim 1, comprising an ECC encoder (28) for generating an encryption mask that includes a first portion that includes a random number and a second portion that includes redundant data relating to the first portion.
前記コンピュータバスに接続され、前記ホストプロセッサから前記暗号化されたブロックを受信するための手段(37)と、
前記ドライブから前記シードを受信するための手段(40)と、
前記シードから暗号解読マスクを生成するための第2の疑似ランダムデータ発生器(42)と、
前記暗号解読マスクと前記暗号化されたブロック中のユーザデータとの第2のビットごとの排他的論理和を実行するための手段(46)とをさらに含み、
前記第2のビットごとの排他的論理和の結果として暗号化されていないユーザデータが提供される、請求項2のシステム。
Means (37) connected to the computer bus for receiving the encrypted block from the host processor;
Means (40) for receiving the seed from the drive;
A second pseudo-random data generator (42) for generating a decryption mask from the seed;
Means (46) for performing a second bitwise exclusive OR of the decryption mask and user data in the encrypted block;
3. The system of claim 2, wherein unencrypted user data is provided as a result of the second bitwise exclusive OR.
前記ドライブ(16)がDVD−ROMドライブであり、
DVDデコーダカード(36)が、
MPEGデコーダ(48)と、
前記暗号化されたブロックを受信するための手段(37)と、
前記シードを受信するための手段(40)と、
前記第2の疑似ランダムデータ発生器(42)と、
前記第2のビットごとの排他的論理和を実行するための手段(46)とを含み、
前記MPEGデコーダが前記第2のビットごとの排他的論理和を実行するための手段(46)の出力に接続されている、請求項3のシステム。
The drive (16) is a DVD-ROM drive;
DVD decoder card (36)
MPEG decoder (48),
Means (37) for receiving the encrypted block;
Means (40) for receiving the seed;
The second pseudo-random data generator (42);
Means (46) for performing the second bitwise exclusive OR
The system of claim 3 wherein said MPEG decoder is connected to the output of means (46) for performing said second bitwise exclusive OR.
前記ECCエンコードされたブロックがユーザデータに関する第1の部分と冗長データに関する第2の部分とを含み、前記暗号化マスクが前記ECCエンコードされたブロックの第1の部分及び第2の部分にそれぞれ対応する第3の部分及び第4の部分を含む、請求項1のシステム。The ECC encoded block includes a first part for user data and a second part for redundant data, and the encryption mask corresponds to the first part and the second part of the ECC encoded block, respectively. The system of claim 1 including a third portion and a fourth portion. 前記第3の部分が複数の乱数で満たされ、前記第4の部分が前記第3の部分から生成された冗長データを含む、請求項5のシステム。6. The system of claim 5, wherein the third portion is filled with a plurality of random numbers, and the fourth portion includes redundant data generated from the third portion. 前記第3の部分が乱数及びゼロで選択的に満たされ、前記第4の部分が前記第3の部分から生成された冗長データを含む、請求項5のシステム。6. The system of claim 5, wherein the third portion is selectively filled with a random number and zero, and the fourth portion includes redundant data generated from the third portion. 前記ECCブロックが誤り修正方法によってコード化され、前記暗号化マスクが同じ誤り修正方法によってコード化される、請求項1のシステム。The system of claim 1, wherein the ECC block is encoded by an error correction method and the encryption mask is encoded by the same error correction method. 前記ドライブ(16)が誤り修正を実行するための手段(39)をさらに含み、ホストプロセッサ(14)がドライブによって送信された前記暗号化されたデータに誤り修正を実行する、請求項1のシステム。The system of claim 1, wherein the drive (16) further comprises means (39) for performing error correction, wherein the host processor (14) performs error correction on the encrypted data transmitted by the drive. .
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 JP2000041031A (en) 2000-02-08
JP3683738B2 true 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)

Families Citing this family (1)

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

Also Published As

Publication number Publication date
JP2000041031A (en) 2000-02-08

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
EP1654661B1 (en) Apparatus and method for memory encryption with reduced decryption latency
EP1855281B1 (en) Apparatus for writing data to a medium
KR101577886B1 (en) Method and apparatus for memory encryption with integrity check and protection against replay attacks
JP4718319B2 (en) Apparatus and method for generating a secret key
JP5839659B2 (en) Semiconductor device
US20130254557A1 (en) Message authentication code pre-computation with applications to secure memory
JP2010509690A (en) Method and system for ensuring security of storage device
GB2443244A (en) Authenticated Encryption Method and Apparatus
KR101117588B1 (en) Record carrier comprising encryption indication information
EP3697021B1 (en) Secure and encrypted logging systems and methods with data recovery
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
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
WO2007128418A1 (en) Apparatus for writing data to a medium
JP3562132B2 (en) Data transmission method, data recording device, data recording medium, and data reproducing device
JP2023130311A (en) Method for protecting electronic computer against side-channel attacks, and electronic computer
JP2006220747A (en) Data processor, data recorder, data reproducing device, and data storage method
JP5407585B2 (en) Program code encryption apparatus and program

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