(57)【要約】【課題】記録装置とホスト装置との間で秘匿すべきデータを暗号化して入出力するときの処理効率を向上させる。【解決手段】記録装置のコントローラは、ストレージデバイスにセキュアコマンドを発行した後、ストレージデバイスがそのセキュアコマンドを実行するのに要すると推定される時間待機してから、次のセキュアコマンドを発行する（Ｓ５００）。ストレージデバイスのコントローラは、直前の命令を実行中であれば、記録装置へ処理中である旨を通知し（Ｓ５０８）、直前の命令の実行が正常に終了していれば、次の処理へうつる。コマンドの実行時間を推定するための情報は予めストレージデバイスから取得しておく。【選択図】        図１６
2004295692.tif 000002
【特許請求の範囲】
【請求項１】
データを保持する記憶装置との間でデータを入出力するホスト装置であって、
秘匿すべきデータを暗号化して入出力するための一連の暗号入出力処理を複数の手順に分割し、該手順のうち前記記憶装置側で実行すべき手順を前記記憶装置に実行させるための命令を前記記憶装置に対して発行するコントローラを備え、
前記コントローラは、前記命令を発行する前に前記記憶装置から前記命令の実行に要する時間を推定するための情報を取得し、前記命令を前記記憶装置に対して発行した後、前記記憶装置が前記命令の実行に必要と推定される時間待機してから、その次の手順の命令を前記記憶装置に発行することを特徴とするホスト装置。
【請求項２】
前記推定するための情報は、前記命令を実行するのに要する典型的な処理時間、平均処理時間、または最大処理時間を含むことを特徴とする請求項１に記載のホスト装置。
【請求項３】
前記推定するための情報は、前記命令を実行するために用いられる、暗号化演算、復号演算、ハッシュ演算、乱数発生演算、およびログ検索のうち少なくとも１つの基本処理に要する典型的な処理時間、平均処理時間、または最大処理時間を含むことを特徴とする請求項１に記載のホスト装置。
【請求項４】
データを保持する記憶媒体と、
前記記憶媒体とホスト装置との間で秘匿すべきデータを暗号化して入出力するための一連の暗号入出力処理を行う際に、その暗号入出力処理を複数の手順に分割して発行された命令を前記ホスト装置から受信するコントローラと、
前記命令を実行する暗号処理部と、を備え、
前記コントローラは、前記ホスト装置からの要求に応じて、前記暗号処理部が前記命令の実行に要する時間を前記ホスト装置が推定するための情報を提供することを特徴とする記憶装置。
【請求項５】
前記暗号入出力処理は、該処理の手順に沿って、
前記ホスト装置からデータの入力を受け、必要に応じて前記暗号処理部にて暗号化または復号を行う処理、
前記ホスト装置へデータを出力するために、前記暗号処理部にて暗号化、復号、または署名を行う処理、
前記ホスト装置へデータを出力する処理、
のいずれかの処理単位に分割され、
前記命令は、分割された処理単位ごとに発行されることを特徴とする請求項４に記載の記憶装置。
【請求項６】
前記推定するための情報は、前記命令を実行するのに要する典型的な処理時間、平均処理時間、または最大処理時間を含むことを特徴とする請求項４または５に記載の記憶装置。
【請求項７】
前記推定するための情報は、前記命令を実行するために用いられる、暗号化演算、復号演算、ハッシュ演算、乱数発生演算、およびログ検索のうち少なくとも１つの基本処理に要する典型的な処理時間、平均処理時間、または最大処理時間を含むことを特徴とする請求項４または５に記載の記憶装置。
【請求項８】
データを保持する記憶装置とホスト装置との間で、秘匿すべきデータを暗号化して入出力するための一連の暗号入出力処理を実行するためのデータ入出力方法であって、
前記暗号入出力処理を複数の手順に分割し、該手順のうち前記ホスト装置側で実行すべき手順を前記ホスト装置が実行するステップと、
前記記憶装置側で実行すべき手順を前記記憶装置に実行させるために、前記ホスト装置が前記記憶装置に対して命令を発行するステップと、
前記記憶装置が前記命令を受信するステップと、
前記記憶装置が前記命令を実行するステップと、を含み、
前記ホスト装置は、前記命令を発行する前に、前記記憶装置から該記憶装置が前記命令の実行に要する時間を推定するための情報を取得し、前記命令を前記記憶装置に対して発行した後、前記命令の実行に必要と推定される時間待機してから、その次の手順の命令を発行することを特徴とするデータ入出力方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ入出力技術に関し、とくに、記憶装置とホスト装置との間で秘匿すべきデータを暗号化して入出力する技術に関する。
【０００２】
【従来の技術】
近年、記憶素子の小型化、集積化、量産化が飛躍的に進み、記録媒体の小型化、大容量化、低価格化が進んでいる。そのような状況下、本出願人らは、さらに利便性の高い記録媒体の実現を目指し、従来一つのホスト装置に固定的に接続されて使用されるのが一般的であった大容量ハードディスクを、ホスト装置に着脱自在に構成することにより、複数のホスト装置でデータを共有可能なリムーバブルメディアとして扱えるようにしようと考えた。小型かつ大容量で、アクセス速度も比較的高速なハードディスクをリムーバブルメディアとして利用できることのメリットは大きい。
【０００３】
【特許文献１】
特開２０００−１７３１５８号公報  （全文）
【０００４】
【発明が解決しようとする課題】
ユーザの利便性を考えると、あらゆるホスト装置でこのリムーバブルなハードディスクを読み書きできるようにすることが望ましいが、反面、あらゆるホスト装置で読み書き可能ということは、第三者にデータが漏洩する危険性もはらんでいることを意味する。音楽や映像などのデジタルコンテンツの流通が注目される現在、著作権を適切に保護し、デジタルコンテンツの流出を防ぐためにも、秘匿すべきデータを適切に保護することのできる技術を開発することが重要である。
【０００５】
本発明はこうした状況に鑑みてなされたものであり、その目的は、記憶装置とホスト装置との間で秘匿すべきデータを暗号化して入出力するときの処理効率を向上させる技術の提供にある。
【０００６】
【課題を解決するための手段】
本発明のある態様は、ホスト装置に関する。このホスト装置は、データを保持する記憶装置との間でデータを入出力するホスト装置であって、秘匿すべきデータを暗号化して入出力するための一連の暗号入出力処理を複数の手順に分割し、該手順のうち記憶装置側で実行すべき手順を記憶装置に実行させるための命令を記憶装置に対して発行するコントローラを備え、コントローラは、命令を発行する前に記憶装置から命令の実行に要する時間を推定するための情報を取得し、命令を記憶装置に対して発行した後、記憶装置が命令の実行に必要と推定される時間待機してから、その次の手順の命令を記憶装置に発行する。
【０００７】
暗号入出力処理を複数の手順に分割し、命令を細分化することで、バスを効率良く解放し、暗号化、復号、ハッシュ演算、乱数発生、ログ検索などの比較的時間を要する処理を行っている間に、他の命令を発行することが可能となる。暗号入出力処理に属する命令を発行した後、後続の命令を発行するまでに、前回の命令の実行が終了しているか否かを何度も記憶装置に問い合わせるのは効率が悪いので、命令の実行に要すると推定される時間だけ待機した後に、後続の命令を発行する。
【０００８】
推定するための情報は、命令を実行するのに要する典型的な処理時間、平均処理時間、または最大処理時間を含んでもよい。推定するための情報は、命令を実行するために用いられる、暗号化演算、復号演算、ハッシュ演算、乱数発生演算、およびログ検索のうち少なくとも１つの基本処理に要する典型的な処理時間、平均処理時間、または最大処理時間を含んでもよい。これらの基本処理に要する時間に基づいて、命令を実行するのに要する時間を推定してもよい。
【０００９】
本発明の別の態様は、記憶装置に関する。この記憶装置は、データを保持する記憶媒体と、記憶媒体とホスト装置との間で秘匿すべきデータを暗号化して入出力するための一連の暗号入出力処理を行う際に、その暗号入出力処理を複数の手順に分割して発行された命令をホスト装置から受信するコントローラと、命令を実行する暗号処理部と、を備え、コントローラは、ホスト装置からの要求に応じて、暗号処理部が命令の実行に要する時間をホスト装置が推定するための情報を提供する。
【００１０】
暗号入出力処理は、該処理の手順に沿って、ホスト装置からデータの入力を受け、必要に応じて暗号処理部にて暗号化または復号を行う処理、ホスト装置へデータを出力するために、暗号処理部にて暗号化、復号、または署名を行う処理、ホスト装置へデータを出力する処理、のいずれかの処理単位に分割され、命令は、分割された処理単位ごとに発行されてもよい。
【００１１】
推定するための情報は、命令を実行するのに要する典型的な処理時間、平均処理時間、または最大処理時間を含んでもよい。推定するための情報は、命令を実行するために用いられる、暗号化演算、復号演算、ハッシュ演算、乱数発生演算、およびログ検索のうち少なくとも１つの基本処理に要する典型的な処理時間、平均処理時間、または最大処理時間を含んでもよい。
【００１２】
本発明のさらに別の態様は、データ入出力方法に関する。この方法は、データを保持する記憶装置とホスト装置との間で、秘匿すべきデータを暗号化して入出力するための一連の暗号入出力処理を実行するためのデータ入出力方法であって、暗号入出力処理を複数の手順に分割し、該手順のうちホスト装置側で実行すべき手順をホスト装置が実行するステップと、記憶装置側で実行すべき手順を記憶装置に実行させるために、ホスト装置が記憶装置に対して命令を発行するステップと、記憶装置が命令を受信するステップと、記憶装置が命令を実行するステップと、を含み、ホスト装置は、命令を発行する前に、記憶装置から該記憶装置が命令の実行に要する時間を推定するための情報を取得し、命令を記憶装置に対して発行した後、命令の実行に必要と推定される時間待機してから、その次の手順の命令を発行する。
【００１３】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【００１４】
【発明の実施の形態】
（第１の実施の形態）
図１は、第１の実施の形態に係るデータ管理システム１０の全体構成を示す。データ管理システム１０は、ストレージデバイス２００へのデータの記録を制御する記録装置１００、ストレージデバイス２００に記録されたデータの再生を制御する再生装置３００、およびデータを記憶保持するストレージデバイス２００を備える。本実施の形態のストレージデバイス２００は、データを保持する記憶媒体だけでなく、記録装置１００または再生装置３００などのホスト装置と記憶媒体との間でのデータの入出力を制御するコントローラなどの構成を備えるドライブ一体型の記憶装置である。本実施の形態では、ストレージデバイス２００として、ハードディスクドライブを例にとって説明する。
【００１５】
従来のハードディスクは、一つのホスト装置に固定的に接続されて使用されるのが一般的であったが、本実施の形態のストレージデバイス２００は、記録装置１００および再生装置３００などのホスト装置に対して着脱自在に構成されている。すなわち、本実施の形態のストレージデバイス２００は、ＣＤやＤＶＤなどと同様にホスト装置から取り外して持ち運ぶことができ、記録装置１００、再生装置３００、記録および再生が可能な記録再生装置など、複数のホスト装置間で共用することが可能な記憶装置である。
【００１６】
このように、本実施の形態のストレージデバイス２００は、複数のホスト装置に接続されることを前提にしており、たとえば所有者以外の第三者のホスト装置に接続されて、内部に記録されたデータを読み出される可能性もある。このストレージデバイス２００に、音楽や映像などの著作権により保護されるべきコンテンツ、企業や個人の機密情報などの秘匿すべきデータを記録することを想定したとき、それらの秘匿データが外部に漏洩することを防ぐためには、ストレージデバイス２００自身にデータを適切に保護するための構成を設け、十分な耐タンパ機能を持たせることが好ましい。このような観点から、本実施の形態のストレージデバイス２００は、ホスト装置との間で秘匿データを入出力するときに、その秘匿データを暗号化してやり取りするための構成を備える。また、秘匿データを格納するために、通常の記録領域とは異なる機密データ記憶領域を設け、その機密データ記憶領域はストレージデバイス２００内に設けられた暗号エンジンを介さないとアクセスできないように構成する。暗号エンジンは正当な権限を有すると認証されたホスト装置にのみ秘匿データを出力する。以下、このようなデータ保護機能を「セキュア機能」ともいう。上記の構成および機能により、ストレージデバイス２００に記録された秘匿データを適切に保護することができる。
【００１７】
ストレージデバイス２００のリムーバブルメディアとしての特徴を最大限に生かすため、通常のデータについては、セキュア機能に非対応のホスト装置でも入出力可能とするのが好ましい。そのため、本実施の形態のストレージデバイス２００は、従来のハードディスクとの互換性を保つべく、ＡＮＳＩ（Ａｍｅｒｉｃａｎ  Ｎａｔｉｏｎａｌ  Ｓｔａｎｄａｒｄｓ  Ｉｎｓｔｉｔｕｔｅ）の標準規格であるＡＴＡ（ＡＴ  Ａｔｔａｃｈｍｅｎｔ）に対応しており、上述のセキュア機能は、ＡＴＡの拡張コマンドとして実現される。ＡＴＡはシングルタスクインタフェースを採用しており、一つの命令が発行されると、その命令が終了するまでバスが占有され、次の命令を発行できない。ところが、上述のように、ストレージデバイス２００側にも暗号通信のための構成を設け、秘匿データを暗号化して入出力するようにすると、暗号化および復号などの処理には比較的長い時間を要するため、秘匿データの入出力命令に要する時間は、通常データの入出力命令に要する時間に比べて長くなる。たとえば、秘匿データをストレージデバイス２００から読み出すとき、ストレージデバイス２００に対して読出命令を発行すると、ストレージデバイス２００は、自身の暗号エンジンにより該当する秘匿データを機密データ記憶領域から読み出し、その秘匿データをホスト装置に送出するために用いる暗号鍵をホスト装置との間でやり取りした後、その秘匿データを暗号鍵で暗号化してからバスに出力する。このとき、暗号化および復号などの処理を実行している間は、バスは実際には使われていないにもかかわらず、この命令により占有された状態にある。
【００１８】
本実施の形態では、このような無駄なバスの占有を極力省き、バスを効率良く利用して処理の高速化を図るために、秘匿データの入出力のための一連の暗号入出力処理を複数の手順に分割し、命令を細分化して発行する。そして、暗号化または復号など、バスを使わない処理が行われている間は、できる限りバスを開放して他の命令が発行できるようにする。
【００１９】
ところが、秘匿データを入出力するための暗号入出力処理を複数の手順に分割したとき、それらの手順の実行順序が前後すると、セキュリティホールが発生する恐れがある。そのため、本実施の形態では、ストレージデバイス２００の暗号エンジンは、秘匿データの入出力における手順の実行順序を管理し、不正な順序の命令を受信した場合、その命令の実行を拒否し、エラー応答を返す。
【００２０】
記録装置１００や再生装置３００などのホスト装置がストレージデバイス２００に対して暗号入出力処理に関する命令を発行し、つづいて、その次の順序の命令を発行したとき、ストレージデバイス２００側が前の命令を実行中の場合は、次の命令は受理されない。ホスト装置が、次の命令を受理されるまで、闇雲にストレージデバイス２００に命令を発行し続けるのは効率的でない。そのため、本実施の形態では、ホスト装置は予めストレージデバイス２００から命令の実行に要する時間を推定するための情報を取得し、命令を発行した後、その命令の実行に要すると推定される時間だけ待機した後、次の命令を発行する。これにより、無駄な命令の発行を最小限に抑えることができる。
【００２１】
以下、秘匿データの入出力の例として、画像や音楽などのデジタルコンテンツを記録再生する場合について説明する。コンテンツ自身を秘匿データとして扱ってもよいが、本実施の形態では、コンテンツを暗号化し、暗号化されたコンテンツ自身は通常のデータとして入出力を行う。そして、暗号化されたコンテンツを復号するための鍵（コンテンツ鍵と呼ぶ）を含む、コンテンツの復号および利用に必要なデータ（ライセンスデータと呼ぶ）を、秘匿データとして上述のセキュア機能を用いて入出力を行う。これにより、十分な耐タンパ性を維持しつつ、データの入出力を簡略化し、処理の高速化および消費電力の低減を図ることができる。ここで、ライセンスデータは、コンテンツ鍵の他に、ライセンスの利用、移動、複製に関する情報や、ライセンスデータを特定するためのライセンスＩＤなどを含む。以下、記録装置１００、再生装置３００などのホスト装置がストレージデバイス２００に対して発行する命令のうち、セキュア機能のための命令を「セキュアコマンド」とも呼び、その他の命令を「通常コマンド」とも呼ぶ。
【００２２】
図２は、実施の形態に係る記録装置１００の内部構成を示す。この構成は、ハードウエア的には、任意のコンピュータのＣＰＵ、メモリ、その他のＬＳＩなどで実現でき、ソフトウエア的にはメモリにロードされた記録制御機能のあるプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。記録装置１００は、主に、コントローラ１０１、ストレージインタフェース１０２、暗号エンジン１０３、暗号器１０４、コンテンツエンコーダ１０５、およびそれらを電気的に接続するデータバス１１０を備える。
【００２３】
コンテンツエンコーダ１０５は、オンラインまたはオフラインにより取得したコンテンツを所定の形式にエンコードする。たとえば、ネットワークを介して取得した画像データをＪＰＥＧ形式にエンコードしてもよいし、放送波から取得した映像データをＭＰＥＧ形式にエンコードしてもよい。暗号器１０４は、エンコードされたコンテンツを暗号化し、暗号化されたコンテンツを復号するためのコンテンツ鍵を発行する。暗号化されたコンテンツは、データバス１１０およびストレージインタフェース１０２を介してストレージデバイス２００に記録される。コンテンツ鍵は、暗号エンジン１０３に通知され、暗号エンジン１０３を介してストレージデバイス２００に記録される。暗号エンジン１０３は、コンテンツ鍵を含むライセンスデータをストレージデバイス２００に入力するために、ストレージデバイス２００との間で暗号通信の制御を行う。ストレージインタフェース１０２は、ストレージデバイス２００とのデータの入出力を制御する。コントローラ１０１は、記録装置１００の構成要素を統括的に制御する。
【００２４】
図３は、実施の形態に係る再生装置３００の内部構成を示す。これらの機能ブロックも、ハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できる。再生装置３００は、主に、コントローラ３０１、ストレージインタフェース３０２、暗号エンジン３０３、復号器３０４、コンテンツデコーダ３０５、およびそれらを電気的に接続するデータバス３１０を備える。
【００２５】
ストレージインタフェース３０２は、ストレージデバイス２００とのデータの入出力を制御する。暗号エンジン３０３は、コンテンツ鍵を含むライセンスデータをストレージデバイス２００から受信するために、ストレージデバイス２００との間で暗号通信の制御を行う。復号器３０４は、ストレージデバイス２００から読み出した暗号化されたコンテンツを、ストレージデバイス２００から入手したライセンスデータに含まれるコンテンツ鍵により復号する。コンテンツデコーダ３０５は、復号器３０４により復号されたコンテンツをデコードして出力する。たとえば、画像データであれば、図示しない表示装置に出力し、音声データであれば、図示しないスピーカに出力する。コントローラ３０１は、再生装置３００の構成要素を統括的に制御する。
【００２６】
図４は、実施の形態に係るストレージデバイス２００の内部構成を示す。ストレージデバイス２００は、主に、コントローラ２０１、ストレージインタフェース２０２、暗号エンジン２０３、通常データ記憶部２０４、機密データ記憶部２０５、およびそれらを電気的に接続するデータバス２１０を備える。
【００２７】
ストレージインタフェース２０２は、記録装置１００および再生装置３００とのデータの入出力を制御する。暗号エンジン２０３は、コンテンツ鍵を含むライセンスデータなどの秘匿データを記録装置１００および再生装置３００との間で入出力するための暗号通信の制御を行う。通常データ記憶部２０４は、暗号化されたコンテンツや通常のデータなどを記録する。機密データ記憶部２０５は、コンテンツ鍵を含むライセンスデータなどの秘匿データを記録する。コントローラ２０１は、ストレージデバイス２００の構成要素を統括的に制御する。通常データ記憶部２０４は、外部から直接アクセス（データの入出力）が行われるが、機密データ記憶部２０５は、暗号エンジン２０３を介さないとアクセス（データの入出力）ができないように構成される。
【００２８】
図５は、図２に示した記録装置１００の暗号エンジン１０３の内部構成を示す。暗号エンジン１０３は、認証部１２０、第１暗号部１２１、乱数発生部１２２、復号部１２３、第２暗号部１２４、ログメモリ１２５、およびこれらの構成要素の少なくとも一部を電気的に接続するローカルバス１３０を備える。
【００２９】
認証部１２０は、ストレージデバイス２００から取得した証明書を認証する。証明書は、公開鍵を含む平文の情報（「証明書本体」と呼ぶ）と、証明書本体に対して付される電子署名からなる。この電子署名は、証明書本体に対してハッシュ関数による演算（この演算処理を「ハッシュ演算」と呼ぶ）を施した結果を、第三者機関である認証局（図示せず）のルート鍵Ｋｐａによって暗号化したデータである。ルート鍵Ｋｐａは、認証局によって厳重に管理されている非公開な鍵であり、認証局の秘密鍵となる。認証部１２０は、このルート鍵Ｋｐａと対をなす認証鍵ＫＰａを保持している。この認証鍵ＫＰａは証明書の正当性を検証する公開鍵である。証明書の正当性の検証は、検証すべき証明書の証明書本体に対するハッシュ関数の演算結果と、認証鍵ＫＰａで電子署名を復号した結果を比較する処理であり、両者が一致したとき、正当であると判断する。この証明書の正当性を判断し、正当な証明書を承認する処理を認証と呼ぶ。認証部１２０は、認証に成功すると、ストレージデバイス２００の公開鍵ＫＰｃを取り出して第１暗号部１２１に伝達し、認証に失敗すると、エラー通知を出力する。
【００３０】
乱数発生部１２２は、ストレージデバイス２００との間で暗号通信を行うために一時的に使用されるチャレンジ鍵Ｋｓ１を発生する。暗号通信を行う度に、乱数によりチャレンジ鍵Ｋｓ１を生成することで、チャレンジ鍵Ｋｓ１を見破られる可能性を最小限に抑えることができる。生成されたチャレンジ鍵Ｋｓ１は、第１暗号部１２１および復号部１２３に伝達される。第１暗号部１２１は、ストレージデバイス２００にチャレンジ鍵Ｋｓ１を通知するために、認証部１２０により取り出されたストレージデバイス２００の公開鍵ＫＰｃでチャレンジ鍵Ｋｓ１を暗号化して、暗号化共通鍵Ｅ（ＫＰｃ、Ｋｓ１）を生成する。ここで、関数Ｅは暗号化を示し、Ｅ（ＫＰｃ、Ｋｓ１）は、ＫＰｃでＫｓ１を暗号化したものであることを示す。
【００３１】
復号部１２３は、チャレンジ鍵Ｋｓ１で暗号化されたデータを復号する。ストレージデバイス２００で発行されたセッション鍵Ｋｓ２は、チャレンジ鍵Ｋｓ１により暗号化されてストレージデバイス２００から供給されるため、復号部１２３は、乱数発生部１２２が発生したチャレンジ鍵Ｋｓ１を取得して、セッション鍵Ｋｓ２を復号する。復号したセッション鍵Ｋｓ２は第２暗号部１２４に伝達される。第２暗号部１２４は、暗号器１０４がコンテンツを暗号化する際に発行したコンテンツ鍵を含むライセンスデータを取得し、そのライセンスデータをストレージデバイス２００で発行されたセッション鍵Ｋｓ２により暗号化する。ログメモリ１２５は、一連の暗号入出力処理におけるトランザクションログを保持する。
【００３２】
図５では、暗号エンジン１０３の構成要素のうち、認証部１２０、第１暗号部１２１、復号部１２３、第２暗号部１２４、およびログメモリ１２５がローカルバス１３０により電気的に接続されており、ローカルバス１３０を介して記録装置１００のデータバス１１０に接続されている。各構成要素を接続する形態にはいろいろな変更例が考えられるが、本実施の形態では、チャレンジ鍵を発生する乱数発生部１２２が、直接データバス１１０に接続されないよう配慮している。これにより、暗号エンジン１０３内で使用される各鍵が、記録装置１００の他の構成要素などを介して外部に漏洩することを防ぎ、セキュリティ性を向上させることができる。
【００３３】
図６は、図３に示した再生装置３００の暗号エンジン３０３の内部構成を示す。暗号エンジン３０３は、証明書出力部３２０、第１復号部３２１、暗号部３２２、乱数発生部３２３、第２復号部３２４、およびこれらの構成要素の少なくとも一部を電気的に接続するローカルバス３３０を備える。
【００３４】
証明書出力部３２０は、再生装置３００の証明書を出力する。証明書は、証明書出力部３２０が保持してもよいし、図示しない証明書保持部に保持しておき、それを読み出してもよい。証明書は、再生装置３００の公開鍵ＫＰｂを含む証明書本体と、証明書本体に対して付される電子署名からなる。電子署名は、ストレージデバイス２００の証明書と同様に、認証局のルート鍵Ｋｐａにより暗号化される。第１復号部３２１は、公開鍵ＫＰｂによって暗号化されたデータを秘密鍵Ｋｐｂで復号する。ストレージデバイス２００で発行されたチャレンジ鍵Ｋｓ３は、再生装置３００の公開鍵ＫＰｂにより暗号化されてストレージデバイス２００から供給されるため、第１復号部３２１は、自身の秘密鍵Ｋｐｂにより復号してチャレンジ鍵Ｋｓ３を取り出す。取り出されたチャレンジ鍵Ｋｓ３は、暗号部３２２に伝達される。乱数発生部３２３は、ストレージデバイス２００との間で暗号通信を行うために一時的に使用されるセッション鍵Ｋｓ４を発生する。生成されたセッション鍵Ｋｓ４は、暗号部３２２および第２復号部３２４に伝達される。
【００３５】
暗号部３２２は、ストレージデバイス２００にセッション鍵Ｋｓ４を通知するために、復号部３２１により取り出されたチャレンジ鍵Ｋｓ３でセッション鍵Ｋｓ４を暗号化する。第２復号部３２４は、セッション鍵Ｋｓ４で暗号化されたデータを復号する。ライセンスデータは、セッション鍵Ｋｓ４により暗号化されてストレージデバイス２００から供給されるため、第２復号部３２４は、乱数発生部３２３が発生したセッション鍵Ｋｓ４により復号して、ライセンスデータを取り出す。取り出されたライセンスデータは、復号器３０４に伝達され、復号器３０４はこのライセンスデータに含まれるコンテンツ鍵を用いて暗号化されたコンテンツを復号する。
【００３６】
図６に示した暗号エンジン３０３においても、各構成要素を接続する形態にはいろいろな変更例が考えられるが、本実施の形態では、チャレンジ鍵を発生する乱数発生部３２３が直接データバス３１０に接続されないように構成することで、暗号エンジン３０３内で使用される暗号鍵が外部に漏洩することを防ぐ。
【００３７】
図７は、図４に示したストレージデバイス２００の暗号エンジン２０３の内部構成を示す。これらの機能ブロックも、ハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できる。暗号エンジン２０３は、データレジスタ２２０、状態レジスタ２２１、制御部２２２、乱数発生部２２４、証明書出力部２２５、認証部２２６、第１復号部２２７、第１暗号部２２８、第２復号部２２９、第２暗号部２３０、ログメモリ２３１、およびこれらの構成要素の少なくとも一部を電気的に接続するローカルバス２４０を備える。
【００３８】
データレジスタ２２０は、データ入出力用のレジスタであり、暗号エンジン２０３の外部の構成との間でデータの入出力を仲介する。状態レジスタ２２１は、コントローラ２０１が記録装置１００または再生装置３００から受信したセキュアコマンドの実行を暗号エンジン２０３に指示するための実行指示と、暗号エンジン２０３がセキュアコマンドの処理状態または処理結果などをコントローラ２０１に通知するためのステータス情報などを保持する。
【００３９】
ストレージデバイス２００のコントローラ２０１が、記録装置１００または再生装置３００のコントローラからセキュアコマンドを受信すると、状態レジスタ２２１にその命令の実行指示（開始指示）を格納する。たとえば、セキュアコマンドのそれぞれに実行順に番号を付しておき、コントローラ２０１が受信したセキュアコマンドの番号を状態レジスタ２２１に格納することで、暗号エンジン２０３に対してそのコマンドの実行を指示する。制御部２２２は、状態レジスタ２２１に新しい実行指示が格納されると、その処理を開始する。
【００４０】
制御部２２２は、コントローラ２０１から通知された命令の処理状態および処理結果を状態レジスタ２２１に格納する。処理状態は、たとえば、処理が実行されている状態を示す「Ｂｕｓｙ」、処理が実行されていない状態を示す「Ｒｅａｄｙ」の２つのステータスで表現することができ、処理結果は、たとえば、処理が正常に終了したことを示す「Ｎｏｒｍａｌ」、処理が異常終了したことを示す「Ｅｒｒｏｒ」の２つのステータスで表現することができる。制御部２２２は、暗号エンジン２０３によりセキュアコマンドの実行が開始されると、状態レジスタ２２１の処理状態を「Ｂｕｓｙ」に変更し、セキュアコマンドの実行が終了すると、状態レジスタ２２１の処理状態を「Ｒｅａｄｙ」に変更するとともに、その命令の終了理由を処理結果に反映させる。
【００４１】
乱数発生部２２４は、記録装置１００または再生装置３００との間の暗号通信に一時的に使用されるセッション鍵Ｋｓ２またはチャレンジ鍵Ｋｓ３を発生する。このとき乱数発生部２２４は乱数演算を行う。ログメモリ２３１は、一連の暗号入出力処理におけるトランザクションログを保持する。
【００４２】
証明書出力部２２５は、ストレージデバイス２００の証明書を出力する。証明書は、証明書出力部２２５が保持してもよいし、ストレージデバイス２００の所定の記憶領域、たとえば機密データ記憶部２０５に保持しておき、それを読み出してもよい。証明書は、ストレージデバイス２００の公開鍵ＫＰｃを含む証明書本体と、証明書本体に付された電子署名とを含む。電子署名は、認証局のルート鍵Ｋｐａにより暗号化される。認証部２２６は、再生装置３００から取得した証明書を認証する。認証部２２６は、外部から提供された証明書の正当性を認証鍵ＫＰａにより検証する。認証部２２６は、認証に成功すると、証明書に含まれる再生装置３００の公開鍵ＫＰｂを取り出してデータレジスタ２２０に格納し、認証に失敗すると、制御部２２２へエラー通知を出力する。認証部２２６は、証明書を認証する際、公開鍵暗号方式の公開鍵で暗号化されたデータを復号する復号演算、および証明書本体に対するハッシュ演算を行う。
【００４３】
第１復号部２２７は、公開鍵暗号方式の公開鍵で暗号化されたデータを復号するための復号演算を行う。具体的には、自身の公開鍵ＫＰｃで暗号化されたデータを、自身の秘密鍵Ｋｐｃで復号する。第１暗号部２２８は、公開鍵暗号方式の公開鍵でデータを暗号化するための暗号化演算を行う。具体的には、再生装置３００から受け取った再生装置３００の公開鍵ＫＰｂで、乱数発生部２２４が発行したチャレンジ鍵Ｋｓ３を暗号化する。第２復号部２２９は、共通鍵暗号方式の鍵で暗号化されたデータを復号するための復号演算を行う。具体的には、乱数発生部２２４が発行したセッション鍵Ｋｓ２またはチャレンジ鍵Ｋｓ３で暗号化されたデータを、それぞれセッション鍵Ｋｓ２またはチャレンジ鍵Ｋｓ３で復号する。第２暗号部２３０は、共通鍵暗号方式の鍵でデータを暗号化するための暗号化演算を行う。具体的には、記録装置１００が発行したチャレンジ鍵Ｋｓ１または再生装置３００が発行したセッション鍵Ｋｓ４で、乱数発生部２２４が発行されたセッション鍵Ｋｓ２またはライセンスデータをそれぞれ暗号化する。
【００４４】
図８は、ホスト装置が、ストレージデバイスがセキュアコマンドセットをサポートしているか否かを示す情報、さらに、セキュアコマンドに対応している場合、セキュアコマンドの実行に必要な時間を推定するための情報をストレージデバイスから取得するイニシャル手順を示す。ストレージデバイス２００が記録装置１００に接続されると、記録装置１００のコントローラ１０１は、ストレージデバイス２００にデバイス情報出力命令を発行する（Ｓ４００）。ストレージデバイス２００のコントローラ２０１は、記録装置１００のコントローラ１０１からデバイス情報出力命令を受信すると（Ｓ４０２）、デバイス情報を出力する（Ｓ４０４）。デバイス情報として、たとえば、ハードディスクの種類、通常データの記録容量、インタフェースの条件、サポートするコマンドセットなどの情報が通知される。コントローラ１０１は、ストレージデバイス２００のデバイス情報を受信すると（Ｓ４０６）、ストレージデバイス２００がセキュアコマンドセットをサポートしているか否かを判断し（Ｓ４０８）、サポートしていなければ（Ｓ４０８のＮ）、セキュアコマンド非対応のハードディスクとして取り扱う。
【００４５】
ストレージデバイス２００がセキュアコマンドをサポートしていれば（Ｓ４０８のＹ）、つづいて、コントローラ１０１は、セキュア情報出力命令を発行する（Ｓ４１０）。コントローラ２０１は、セキュア情報出力命令を受信すると（Ｓ４１２）、セキュア情報を出力する（Ｓ４１４）。セキュア情報として、ストレージデバイス２００がセキュアコマンドを受信したときに、その命令を実行するのに要する時間を推定するための情報、たとえば、セキュアコマンド命令を実行するために用いられる基本処理、すなわち、公開鍵方式暗号化演算、共通鍵方式暗号化演算、公開鍵方式復号演算、共通鍵方式復号演算、ハッシュ演算、乱数発生演算、ログ検索処理、などの個々の基本処理に要する典型的な時間（Ｔｙｐｉｃａｌ  ｔｉｍｅ）が通知される。典型的な時間とは、たとえば、同一のセキュアコマンドを１００回発行すると、そのうち９９回はその時間内に終了するといった、例外を除く処理時間を意味する。コントローラ１０１は、ストレージデバイス２００のセキュア情報を受信すると（Ｓ４１６）、受信した情報をもとに各セキュアコマンドを発行したときの待ち時間を決定する（Ｓ４１８）。
【００４６】
命令を実行するのに要する時間を推定するための情報として、各基本処理に要する典型的な処理時間に代えて、平均処理時間または最大処理時間を出力するようにしても良いし、これらを組み合わせて出力するようにしてもよい。いずれにしても、コントローラ１０１は、ストレージデバイス２００が出力した基本処理に要する処理時間を取得し、各セキュアコマンドが実行する基本処理に基づいて、各セキュアコマンドに要する時間を推定する。また、基本処理に要する処理時間に代えて、各セキュアコマンドの実行に要する典型的な処理時間、平均処理時間または最大処理時間を出力するようにしても良いし、これらを組み合わせて出力するようにしてもよい。いずれにしても、コントローラ１０１は、ストレージデバイス２００が出力した推定するための情報から、各セキュアコマンドの発行後に次のセキュアコマンドを発行するまでの待ち時間を推定する。図８では、記録装置１００がホスト装置として機能する例について説明したが、再生装置３００がホスト装置として機能する場合も同様である。
【００４７】
図９、図１０、および図１１は、記録装置１００がストレージデバイス２００にライセンスデータを記録するまでの手順を示す。まず、記録装置１００のコントローラ１０１は、ストレージデバイス２００に対して証明書出力命令を発行する（Ｓ１０２）。コントローラ２０１は、証明書出力命令を正常に受理すると、暗号エンジン２０３に証明書の出力を命じる。セキュアコマンドの発行と受理の詳細については図１６において詳述する。制御部２２２は、状態レジスタ２２１の処理状態を「Ｂｕｓｙ」に変更し（Ｓ３００）、証明書出力部２２５は証明書をデータレジスタ２２０に格納する（Ｓ３０２）。処理が終了すると、制御部２２２は状態レジスタ２２１の処理状態を「Ｒｅａｄｙ」、処理結果を「Ｎｏｒｍａｌ」に変更する（Ｓ３０４）。コントローラ２０１は、データレジスタ２２０から証明書を読み出して記録装置１００へ出力する（Ｓ１０６）。
【００４８】
コントローラ１０１は、ストレージデバイス２００から証明書を取得すると、それを記録装置１００の暗号エンジン１０３に送る（Ｓ１０８）。暗号エンジン１０３がストレージデバイス２００の証明書を受信すると（Ｓ１１０）、認証部１２０は、認証鍵ＫＰａで証明書の正当性を認証する（Ｓ１１２）。証明書の正当性が承認されなかった場合は（Ｓ１１２のＮ）、認証部１２０はエラー通知をコントローラ１０１に送信する（Ｓ１９０）。コントローラ１０１は、エラー通知を受信すると（Ｓ１９２）、処理を異常終了する。証明書が認証された場合は（Ｓ１１２のＹ）、暗号エンジン１０３は、乱数発生部１２２によりチャレンジ鍵Ｋｓ１を発生し（Ｓ１１４）、生成したチャレンジ鍵Ｋｓ１を暗号部１２１によりストレージデバイス２００の公開鍵ＫＰｃで暗号化して暗号化共通鍵Ｅ（ＫＰｃ、Ｋｓ１）を生成し、コントローラ１０１へ送る（Ｓ１１６）。
【００４９】
コントローラ１０１は、暗号化共通鍵Ｅ（ＫＰｃ、Ｋｓ１）を受信すると（Ｓ１１８）、ストレージデバイス２００に対してチャレンジ鍵入力命令を発行する（Ｓ１２０）。コントローラ２０１は、チャレンジ鍵入力命令を正常に受理すると、暗号化共通鍵Ｅ（ＫＰｃ、Ｋｓ１）の入力要求を記録装置１００へ出力する（Ｓ１２２）。コントローラ１０１は、この入力要求に応じて、暗号化共通鍵Ｅ（ＫＰｃ、Ｋｓ１）をストレージデバイス２００へ出力する（Ｓ１２４）。コントローラ２０１は、暗号化共通鍵Ｅ（ＫＰｃ、Ｋｓ１）を受理すると（Ｓ１２６）、それをデータレジスタ２２０に格納し（Ｓ１２８）、受理通知をコントローラ１０１に返す（Ｓ１３０）。そして、チャレンジ鍵の受理を暗号エンジン２０３に命じる。
【００５０】
制御部２２２は、状態レジスタ２２１の処理状態を「Ｂｕｓｙ」に変更し（Ｓ３１０）、データレジスタ２２０より暗号化共通鍵（ＫＰｃ、Ｋｓ１）を取り出し、第１復号部２２７に与える。第１復号部２２７は、ストレージデバイス２００の秘密鍵Ｋｐｃで与えられた暗号化共通鍵Ｅ（ＫＰｃ、Ｋｓ１）を復号してチャレンジ鍵Ｋｓ１を取り出し（Ｓ３１２）、制御部２２２に出力する（Ｓ３１４）。制御部２２２は、チャレンジ鍵Ｋｓ１を取得すると、状態レジスタ２２１の処理状態を「Ｒｅａｄｙ」、処理結果を「Ｎｏｒｍａｌ」に変更する（Ｓ３１６）。
【００５１】
一方、コントローラ１０１は、暗号化共通鍵Ｅ（ＫＰｃ、Ｋｓ１）の入力を終了すると、ストレージデバイス２００がチャレンジ鍵入力命令の実行に要すると推定される時間待機する（Ｓ１３１）。チャレンジ鍵入力命令で実行される処理は、暗号化共通鍵Ｅ（ＫＰｃ、Ｋｓ１）を復号して共通鍵Ｋｓ１を取り出し、それを保持する処理であるから、公開鍵方式の復号処理に要する時間だけ待機すればよい。この間は、通常コマンドの発行が可能となり、コントローラ１０１は必要に応じて通常コマンドを発行する。チャレンジ鍵入力命令の実行に要すると推定される時間が経過すると、コントローラ１０１は、ストレージデバイス２００に対してセッション鍵準備命令を発行する（Ｓ１３２）。後述するように、チャレンジ鍵入力命令の実行が終了していなければ、コントローラ２０１はセッション鍵準備命令を受理しないが、命令の実行が終了していれば、コントローラ２０１はセッション鍵準備命令を受理する。
【００５２】
コントローラ２０１は、セッション鍵準備命令を正常に受理すると、ライセンスＩＤの入力要求を記録装置１００へ出力する（Ｓ１３３）。このライセンスＩＤは、図９から図１１に示される一連の暗号入出力処理によってストレージデバイス２００へ書き込まれるライセンスデータのＩＤであり、トランザクションログの記録、入力されたライセンスデータの確認のために用いられる。コントローラ１０１は、この入力要求に応じて、ライセンスＩＤをストレージデバイス２００へ出力する（Ｓ１３４）。コントローラ２０１は、ライセンスＩＤを受理すると（Ｓ１３６）、それをデータレジスタ２２０に格納し（Ｓ１３８）、受理通知をコントローラ１０１に返す（Ｓ１４０）。
【００５３】
制御部２２２は、状態レジスタ２２１の処理状態を「Ｂｕｓｙ」に変更する（Ｓ３２０）。乱数発生部２２４は、セッション鍵Ｋｓ２を発生し、制御部２２２に出力する（Ｓ３２２）。そして、制御部２２２は、ログメモリ２３１にトランザクションログとしてライセンスＩＤ、生成したセッション鍵Ｋｓ２およびステータス情報としてＲＰ（Ｒｅｃｅｉｖｅ  Ｐｒｅｐａｒｅ／受信準備）を記録し（Ｓ３２６）、セッション鍵Ｋｓ２およびチャレンジ鍵Ｋｓ１を第２暗号部２３０に与える。第２暗号部２３０は、セッション鍵Ｋｓ２をチャレンジ鍵Ｋｓ１で暗号化して暗号化鍵Ｅ（Ｋｓ１、Ｋｓ２）を生成し、データレジスタ２２０に格納する（Ｓ３２８）。処理が終了すると、制御部２２２は状態レジスタ２２１の処理状態を「Ｒｅａｄｙ」、処理結果を「Ｎｏｒｍａｌ」に変更する（Ｓ３２９）。
【００５４】
一方、コントローラ１０１は、セッション鍵準備命令の受理通知を受け取ると、ストレージデバイス２００がセッション鍵準備命令の実行に要すると推定される時間待機する（Ｓ１４１）。セッション鍵準備命令で実行される処理は、セッション鍵Ｋｓ２を発生し、Ｋｓ１でＫｓ２暗号化する処理であるから、乱数発生処理と共通鍵方式の暗号化処理に要する時間だけ待機すればよい。セッション鍵準備命令の実行に要すると推定される時間が経過すると、コントローラ１０１はストレージデバイス２００に対してセッション鍵出力命令を発行し、コントローラ２０１はセッション鍵出力命令を受理する（Ｓ１４２）。後述するように、セッション鍵準備命令の実行が終了していなければ、セッション鍵出力命令は受理されないが、命令の実行が終了していれば、受理される。命令を受理すると、コントローラ２０１は、暗号化鍵Ｅ（Ｋｓ１、Ｋｓ２）をデータレジスタ２２０から読み出してコントローラ１０１へ出力する（Ｓ１４６）。
【００５５】
コントローラ１０１は、ストレージデバイス２００から暗号化鍵Ｅ（Ｋｓ１、Ｋｓ２）を受信すると、それを暗号エンジン１０３に送る（Ｓ１４８）。暗号エンジン１０３がコントローラ１０１から暗号化鍵Ｅ（Ｋｓ１、Ｋｓ２）を受信すると（Ｓ１５０）、復号部１２３は、チャレンジ鍵Ｋｓ１で暗号化鍵Ｅ（Ｋｓ１、Ｋｓ２）を復号してセッション鍵Ｋｓ２を取り出す（Ｓ１５２）。つづいて、暗号エンジン１０３は、第２暗号部１２４により、暗号器１０４が発行したコンテンツのコンテンツ鍵とライセンスＩＤを含むライセンスデータをストレージデバイス２００が発行したセッション鍵Ｋｓ２で暗号化して暗号化ライセンスデータを生成し、コントローラ１０１に送る（Ｓ１５４）。
【００５６】
コントローラ１０１は、暗号化ライセンスデータを受信すると（Ｓ１５６）、ストレージデバイス２００に対してライセンスデータ入力命令を発行する（Ｓ１５８）。ライセンス入力命令はストレージデバイス２００に対してライセンスデータを書き込むアドレスの指定を伴っている。コントローラ２０１がライセンスデータ入力命令を正常に受理すると、コントローラ２０１は、暗号ライセンスデータの入力要求を記録装置１００へ出力する（Ｓ１６０）。コントローラ１０１は、データの入力要求に応え、暗号化ライセンスデータをストレージデバイス２００へ出力する（Ｓ１６２）。コントローラ２０１は、暗号化ライセンスデータを受理すると（Ｓ１６４）、それをデータレジスタ２２０に格納する（Ｓ１６６）。そして、データの受理通知を記録装置１００へ出力し、同時に、ライセンスデータを受理するように暗号エンジン２０３へ命じる（Ｓ１６７）。
【００５７】
制御部２２２は、状態レジスタ２２１の処理状態を「Ｂｕｓｙ」に変更し（Ｓ３３０）、データレジスタ２２０から暗号化ライセンスデータを取得して、セッション鍵Ｋｓ２と共に第２復号部２２９へ与える。第２復号部２２９は、セッション鍵Ｋｓ２で暗号化ライセンスデータを復号し、ライセンスデータを取り出し、取り出したライセンスデータを制御部２２２に提供する（Ｓ３３２）。制御部２２２は、ライセンスデータを受け取ると、ライセンスデータ内のライセンスＩＤとトランザクションログ内のライセンスＩＤとの比較を行う（Ｓ３３４）。２つのライセンスＩＤが異なった場合（Ｓ３３４のＮ）、制御部２２２は、状態レジスタ２２１の処理状態を「Ｒｅａｄｙ」、処理結果を「Ｅｒｒｏｒ」に変更する（Ｓ３３６）。
【００５８】
２つのライセンスＩＤが一致した場合（Ｓ３３４のＹ）、制御部２２２は、トランザクションログに指定アドレスを記録し、トランザクションログ内のステータス情報をＲＰからＲＬ（Ｒｅｃｅｉｖｅ  Ｌｉｃｅｎｓｅ／ライセンス受理）へ変更する（Ｓ３３８）。そして、ライセンスデータを機密データ記憶部２０５の指定アドレスに記憶する格納処理を行う（Ｓ３４０）。データの記憶が何らかの理由で正常に終了しないとライセンスデータが失われるので、格納処理が正常に終了したか否かの確認を行う（Ｓ３４２）。データが記録されずに格納処理が終了した場合（Ｓ３４２のＮ）、制御部２２２は、状態レジスタ２２１の処理状態を「Ｒｅａｄｙ」、処理結果を「Ｅｒｒｏｒ」に変更する（Ｓ３４４）。データが正常に記憶されている場合（Ｓ３４２のＹ）、ログメモリ２３１のトランザクションログ内のステータス情報をＲＬからＲＣ（Ｒｅｃｅｉｖｅ  Ｃｏｍｐｌｅｔｅｄ／受信完了）へ変更する（Ｓ３４６）。トランザクションログの変更が終了すると、制御部２２２は、状態レジスタ２２１の処理状態を「Ｒｅａｄｙ」、処理結果を「Ｎｏｒｍａｌ」に変更する（Ｓ３４８）。
【００５９】
一方、コントローラ１０１は、データの受理通知を受信すると、ストレージデバイス２００がライセンスデータ入力命令の実行に要すると推定される時間待機する（Ｓ１６８）。ライセンスデータ入力命令で実行される処理は、暗号化ライセンスデータをセッション鍵Ｋｓ２で復号する処理と、入力したライセンスデータを機密データ記憶部２０５に記録する処理であるから、共通鍵方式の復号処理に要する時間と記録に要する時間を加算した時間だけ待機すればよい。ライセンスデータ入力命令の実行に要すると推定される時間が経過すると、コントローラ１０１はストレージデバイス２００に対してライセンスデータの記憶を確認するために終了確認命令を発行し、ライセンスデータ入力命令の実行が終了していれば、コントローラ２０１は終了確認命令を受理する（Ｓ１７０）。制御部２２２は、状態レジスタ２２１の処理結果を参照して、先の命令、すなわちライセンスデータ入力命令の処理結果をコントローラ１０１に返す（Ｓ１７２）。コントローラ１０１は、コントローラ２０１からライセンス入力命令の処理結果を受信すると（Ｓ１７４）、受信した処理結果を参照してライセンス入力命令が正常終了したか否かを確認する（Ｓ１７６）。ライセンスデータがストレージデバイス２００に記憶された場合は（Ｓ１７６のＹ）、コントローラ１０１は処理を正常に終了する。一方、記憶に失敗した場合は（Ｓ１７６のＮ）、コントローラ１０１は処理を異常終了する。このとき、コントローラ１０１は、ライセンスデータの記録を再度試みることとなる。
【００６０】
以上の手順により、コンテンツを復号するためのライセンスデータがストレージデバイス２００に記録される。暗号化コンテンツは、通常データであるため通常コマンドによって直接ストレージデバイス２００の通常コマンドによって書き込まれるため、ここでは説明を省略する。
【００６１】
図１２は、電源投入後、ストレージデバイス２００にライセンスデータを記憶するまでのＡＴＡインタフェース上の一連の手順を示すシーケンス図である。図８に示したイニシャル手順と、図９から図１１に示した記録装置１００がストレージデバイス２００にライセンスデータを記録するまでの手順が、正常に処理が推移した場合の例である。
【００６２】
「Ｈｏｓｔ  ＡＴＡ−ＩＦ」は、記録装置１００のストレージインタフェース１０２に、「Ｓｔｏｒａｇｅ  ＡＴＡ−ＩＦ」は、ストレージデバイス２００のストレージインタフェース２０２に相当する。２つのＡＴＡ−ＩＦに挟まれた中央部分には、セキュアコマンドが記載されている。コマンド名の後ろに記載されている（Ｗ）、（Ｒ）、（Ｓ）はコマンドの特性を示すもので、（Ｗ）はデータ列の入力を伴うコマンド、すなわち、命令受理後ストレージデバイス２００からデータ要求があるコマンドであることを示し、（Ｒ）は、逆にデータ列の出力を伴うコマンド、（Ｓ）は、データ列の入出力を伴わないコマンドであることを示す。
【００６３】
また、コマンド「ＩＤＥＮＴＩＦＹ＿ＤＥＶＩＣＥ」、「ＧＥＴ＿ＳＥＣＵＲＩＴＹ＿ＦＥＡＴＵＲＥ」、「ＧＥＴ＿ＣＥＲＴＩＦＩＣＡＴＥ」、「ＰＵＴ＿ＣＨＡＬＬＥＮＧＥ＿ＫＥＹ」、「ＣＲＥＡＴＥ＿ＳＥＳＳＩＯＮ＿ＫＥＹ」、「ＧＥＴ＿ＳＥＳＳＩＯＮ＿ＫＥＹ」、「ＰＵＴ＿ＬＩＣＥＮＳＥ」、「ＧＥＴ＿ＣＯＭＰＬＥＴＩＯＮ＿ＳＴＡＴＵＳ」は、それぞれデバイス情報出力命令、セキュア情報出力命令、証明書出力命令、チャレンジ鍵入力命令、セッション鍵準備命令、チャレンジ鍵出力命令、ライセンス入力命令、終了確認命令に相当する。また、１１は、Ｓ１１０、Ｓ１１２、Ｓ１１４、Ｓ１１６の処理、１２は、Ｓ１５０、Ｓ１５２、Ｓ１５４の処理および記録装置１００におけるログ記録処理、２１は、Ｓ１２８、Ｓ３１２の処理、２２は、Ｓ１３８、Ｓ３２２、Ｓ３２６、Ｓ３２８の処理、２３は、Ｓ１７２、Ｓ３３２、Ｓ３３４、Ｓ３３８、Ｓ３４０、Ｓ３４６の処理に対応し、図１２では、内部の詳細な処理は示されていない。
【００６４】
このシーケンスは、ストレージデバイス２００の情報を取得する「Ｉｎｉｔｉａｌｉｚａｔｉｏｎ  ＳＴＥＰ（イニシャル手順）」、チャレンジ鍵Ｋｓ１をストレージデバイス２００が取得するまでの「Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  ＳＴＥＰ」、およびライセンスを転送して書き込むまでの「Ｔｒａｎｓｍｉｓｓｉｏｎ  ＳＴＥＰ」に区分される。「Ｔｒａｎｓｍｉｓｓｉｏｎ  ＳＴＥＰ」終了後、「Ｔｒａｎｓｍｉｓｓｉｏｎ  ＳＴＥＰ」の先頭へ戻る矢印は、ライセンスデータを続けてストレージデバイス２００に記憶する場合、「Ｉｎｉｔｉａｌｉｚａｔｉｏｎ  ＳＴＥＰ」および「Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  ＳＴＥＰ」を共有しても良いことを示す。「Ｉｎｉｔｉａｌｉｚａｔｉｏｎ  ＳＴＥＰ」および「Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  ＳＴＥＰ」を省略することによりライセンスデータに対する安全性が低下することはない。また、「Ｔｒａｎｓｍｉｓｓｉｏｎ  ＳＴＥＰ」終了後、「Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  ＳＴＥＰ」の先頭へ戻る矢印は、すべての手順において「Ｉｎｉｔｉａｌｉｚａｔｉｏｎ  ＳＴＥＰ」を共通して良いことを示す。
【００６５】
図１３、図１４、および図１５は、再生装置３００がストレージデバイス２００からライセンスデータを読み出すまでの手順を示す。まず、再生装置３００の暗号エンジン３０３は、証明書出力部３２０により、証明書をコントローラ３０１へ送る（Ｓ２０２）。コントローラ３０１は、暗号エンジン３０３から証明書を受信すると（Ｓ２０４）、ストレージデバイス２００に対して証明書入力命令を発行する（Ｓ２０６）。コントローラ２０１は、証明書入力命令を正常に受理すると、証明書の入力要求をコントローラ３０１に出力する（Ｓ２０８）。コントローラ３０１は、この入力要求に応じて、コントローラ２０１に証明書を出力する（Ｓ２１０）。コントローラ２０１は、証明書を受理すると（Ｓ２１２）、それをデータレジスタ２２０に格納し（Ｓ２１３）、受理通知をコントローラ３０１に返す（Ｓ２１４）。
【００６６】
制御部２２２は、状態レジスタ２２１の処理状態を「Ｂｕｓｙ」に変更し（Ｓ４００）、認証部２２６は、認証鍵ＫＰａで証明書の正当性を検証する（Ｓ４０２）。証明書の正当性が承認されなかった場合は（Ｓ４０２のＮ）、認証部４０２はエラー通知を出力し（Ｓ４０８）、コントローラ２０１は、そのエラー通知をコントローラ３０１に出力する（Ｓ２９０）。コントローラ３０１は、エラー通知を受信すると（Ｓ２９２）、処理を異常終了する。証明書の正当性が承認された場合は（Ｓ４０２のＹ）、認証部２２６は、証明書から取り出された公開鍵ＫＰｂをデータレジスタ２２０に格納し（Ｓ４０４）、制御部２２２は、状態レジスタ２２１の処理状態を「Ｒｅａｄｙ」に、処理結果を「Ｎｏｒｍａｌ」に変更する（Ｓ４０６）。
【００６７】
一方、コントローラ３０１は、証明書の受理通知を受け取ると、ストレージデバイス２００が証明書入力命令の実行に要すると推定される時間待機する（Ｓ２１６）。証明書入力命令の実行に要すると推定される時間が経過すると、コントローラ３０１は、ストレージデバイス２００に対してチャレンジ鍵準備命令を発行する（Ｓ２１８）。コントローラ２０１がチャレンジ鍵準備命令を受理すると、チャレンジ鍵準備命令の受理通知をコントローラ３０１に返す（Ｓ２２０）。制御部２２２は、状態レジスタ２２１の処理状態を「Ｂｕｓｙ」に変更し（Ｓ４１０）、乱数発生部２２４は、チャレンジ鍵Ｋｓ３を発生し（Ｓ４１２）、第１暗号部２２８は、公開鍵ＫＰｂでチャレンジ鍵Ｋｓ３を暗号化して暗号化鍵Ｅ（ＫＰｂ、Ｋｓ３）を生成し、データレジスタ２２０に一時格納する（Ｓ４１４）。処理が終了すると、制御部２２２は、状態レジスタ２２１の処理状態を「Ｒｅａｄｙ」に、処理結果を「Ｎｏｒｍａｌ」に変更する（Ｓ４１６）。
【００６８】
一方、コントローラ３０１は、チャレンジ鍵準備命令の受理通知を受け取ると、ストレージデバイス２００がチャレンジ鍵準備命令の実行に要すると推定される時間待機する（Ｓ２２２）。チャレンジ鍵準備命令の実行に要すると推定される時間が経過すると、コントローラ３０１は、ストレージデバイス２００に対してチャレンジ鍵出力命令を発行する（Ｓ２２４）。コントローラ２０１は、チャレンジ鍵出力命令を受理すると、暗号化鍵Ｅ（ＫＰｂ、Ｋｓ３）をデータレジスタ２２０から読み出してコントローラ３０１に送信する（Ｓ２２６）。
【００６９】
コントローラ３０１は、暗号化共通鍵Ｅ（ＫＰｂ、Ｋｓ３）を受信すると、それを暗号エンジン３０３に送る（Ｓ２２８）。暗号エンジン３０３が暗号化共通鍵Ｅ（ＫＰｂ、Ｋｓ３）を受信すると（Ｓ２３０）、第１復号部３２１は、暗号化共通鍵Ｅ（ＫＰｂ、Ｋｓ３）を自身の秘密鍵Ｋｐｂで復号してチャレンジ鍵Ｋｓ３を取り出す（Ｓ２３２）。つづいて、暗号エンジン３０３は、乱数発生部３２３によりセッション鍵Ｋｓ４を発生し（Ｓ２３４）、暗号部３２２によりチャレンジ鍵Ｋｓ３でセッション鍵Ｋｓ４を暗号化して暗号化共通鍵Ｅ（Ｋｓ３、Ｋｓ４）を生成し、コントローラ３０１へ送る（Ｓ２３６）。コントローラ３０１は、暗号化共通鍵Ｅ（Ｋｓ３、Ｋｓ４）を受信すると（Ｓ２３８）、ストレージデバイス２００に対してセッション鍵入力命令を発行する（Ｓ２３９）。
【００７０】
コントローラ２０１は、セッション鍵入力命令を正常に受理すると、暗号化鍵Ｅ（Ｋｓ３、Ｋｓ４）の入力要求をコントローラ３０１に出力する（Ｓ２４０）。コントローラ３０１は、この入力要求に応じて、コントローラ２０１に暗号化鍵Ｅ（Ｋｓ３、Ｋｓ４）を出力する（Ｓ２４２）。コントローラ２０１は、暗号化鍵を受理すると（Ｓ２４４）、それをデータレジスタ２２０に格納し（Ｓ２４６）、受理通知をコントローラ３０１に返す（Ｓ２４８）。制御部２２２は、状態レジスタ２２１の処理状態を「Ｂｕｓｙ」に変更し（Ｓ４２０）、データレジスタ２２０からチャレンジ鍵Ｋｓ３を読み出し、第２復号部２２９に受信した暗号化共通鍵Ｅ（Ｋｓ３、Ｋｓ４）とチャレンジ鍵Ｋｓ３を与える。第２復号部２２９は、チャレンジ鍵Ｋｓ３で暗号化共通鍵Ｅ（Ｋｓ３、Ｋｓ４）を復号してセッション鍵Ｋｓ４を取り出し（Ｓ４２２）、データレジスタ２２０にセッション鍵Ｋｓ４を格納する（Ｓ４２４）。制御部２２２は、処理が終了すると、状態レジスタ２２１の処理状態を「Ｒｅａｄｙ」に、処理結果を「Ｎｏｒｍａｌ」に変更する（Ｓ４２６）。
【００７１】
コントローラ３０１は、セッション鍵入力命令の受理通知を受け取ると、ストレージデバイス２００がセッション鍵入力命令の実行に要すると推定される時間待機する（Ｓ２５０）。セッション鍵入力命令の実行に要すると推定される時間が経過すると、コントローラ３０１は、ストレージデバイス２００に対してライセンス読出命令を発行する（Ｓ２５２）。このとき、読み出すべきライセンスデータのアドレスが指定される。コントローラ２０１は、ライセンス読出命令を正常に受理すると、ライセンス読出命令の受理通知をコントローラ３０１に返す（Ｓ２５４）。制御部２２２は、状態レジスタ２２１の処理状態を「Ｂｕｓｙ」に変更し（Ｓ４３０）、機密データ記憶部２０５の指定されたアドレスからライセンスデータを読み出し、データレジスタ２２０に保持する（Ｓ４３２）。制御部２２２は、処理が終了すると、状態レジスタ２２１の処理状態を「Ｒｅａｄｙ」に、処理結果を「Ｎｏｒｍａｌ」に変更する（Ｓ４３４）。
【００７２】
コントローラ３０１は、ライセンス読出命令の受理通知を受け取ると、ストレージデバイス２００がライセンス読出命令の実行に要すると推定される時間待機する（Ｓ２５６）。ライセンス読出命令の実行に要すると推定される時間が経過すると、コントローラ３０１は、ストレージデバイス２００に対してライセンス準備命令を発行する（Ｓ２５８）。コントローラ２０１は、ライセンス準備命令を正常に受理すると、ライセンス準備命令の受理通知をコントローラ３０１に返す（Ｓ２６０）。制御部２２２は、状態レジスタ２２１の処理状態を「Ｂｕｓｙ」に変更し（Ｓ４４０）、第２暗号部２３０は、ライセンスデータをセッション鍵Ｋｓ４で暗号化してデータレジスタ２２０に保持する（Ｓ４４２）。制御部２２２は、処理が終了すると、状態レジスタ２２１の処理状態を「Ｒｅａｄｙ」に、処理結果を「Ｎｏｒｍａｌ」に変更する（Ｓ４４４）。
【００７３】
コントローラ３０１は、ライセンス準備命令の受理通知を受け取ると、ストレージデバイス２００がライセンス準備命令の実行に要すると推定される時間待機する（Ｓ２６２）。ライセンス準備命令の実行に要すると推定される時間が経過すると、コントローラ３０１は、ストレージデバイス２００に対してライセンス出力命令を発行する（Ｓ２６４）。コントローラ２０１は、ライセンス出力命令を正常に受理すると、暗号化ライセンスデータをデータレジスタ２２０から読み出してコントローラ３０１に出力する（Ｓ２６６）。コントローラ３０１は、暗号化ライセンスデータを取得すると、それを暗号エンジン３０３に送る（Ｓ２６８）。暗号エンジン３０３が暗号化ライセンスデータを受信すると（Ｓ２７０）、第２復号部３２４は、セッション鍵Ｋｓ４で暗号化ライセンスデータを復号する（Ｓ２７２）。得られたライセンスデータは、復号器３０４に送られ、復号器３０４がコンテンツを復号するのに用いられる。以上の手順により、コンテンツを復号するためのライセンスデータが再生装置３００により読み出される。
【００７４】
上述した一連の暗号エンジン２０３のセキュアコマンドに対する処理において。処理結果として「Ｎｏｒｍａｌ」を返す場合のみを説明したが、セキュアコマンドに対する処理において何らかの問題が発生し、処理が正常に終了しなかった場合には、制御部２２２は、状態レジスタ２２１の処理状態を「Ｒｅａｄｙ」、処理結果を「Ｅｒｒｏｒ」に変更する。さらに、暗号入出力処理の途中で、何らかのエラーが発生して処理が中断されたときに、その暗号入出力処理における手順を復元するための手段としてトランザクションログを記録している。トランザクションログを参照して、処理がどの手順まで進行していたかを確認し、エラーが発生した手順から再度実行してもよい。このときのトランザクションログの入出力も、セキュア機能を利用して行われる。そのため、トランザクションログの入出力に伴って発行される命令も、「セキュアコマンド」に該当する。ログメモリ１２５または２３１から必要なトランザクションログを検索する処理には比較的時間を要するため、記録装置１００がストレージデバイス２００にトランザクションログの出力命令を発行したとき、ストレージデバイス２００がログメモリ２３１からトランザクションログを検索するのに要する時間を考慮して、待ち時間を設定するのが好ましい。
【００７５】
図１６は、記録装置１００がストレージデバイス２００にセキュアコマンドを発行し、ストレージデバイス２００が受理する様子を示す。図９から図１１におけるＳ１０２、Ｓ１２０、Ｓ１３２、Ｓ１４２、Ｓ１５８、Ｓ１７０、および図１２から図１５におけるＳ２０６、Ｓ２１８、Ｓ２２４、Ｓ２３９、Ｓ２５２、Ｓ２５８、Ｓ２６４がセキュアコマンドの発行と受理を行う処理である。記録装置１００のコントローラ１０１は、ストレージデバイス２００にセキュアコマンドを発行した後、ストレージデバイス２００がそのセキュアコマンドを実行するのに要すると推定される時間待機してから、次のセキュアコマンドを発行する（Ｓ５００）。ストレージデバイス２００のコントローラ２０１は、記録装置１００からセキュアコマンドを受信すると（Ｓ５０２）、受信したセキュアコマンドが正規の発行手順で発行されているか否か確認する（Ｓ５０４）。正規の発行手順に従わない場合には（Ｓ５０４のＮ）、命令を受理することができないため処理を終了するためにＳ５１６へ進む。正規の発行手順に従っているの場合には（Ｓ５０４のＹ）、状態レジスタ２２１を参照して、その処理系の直前の命令がまだ実行中か否かを確認する（Ｓ５０６）。状態レジスタ２２１の処理状態が「Ｂｕｓｙ」であれば、直前の命令を実行中であるから、記録装置１００へ処理中である旨を通知する（Ｓ５０８）。コントローラ１０１は、ストレージデバイス２００から処理中である旨の通知を受信すると（Ｓ５１０）、さらに所定の時間待機した後（Ｓ５１２）、再度Ｓ５００に戻り、セキュアコマンドを発行する。
【００７６】
Ｓ５０４において、状態レジスタ２２１の処理状態が「Ｒｅａｄｙ」であれば、直前の命令の実行が終了したので、直前の命令の処理結果を確認するために状態レジスタの処理結果を参照する（Ｓ５１４）。状態レジスタの処理結果が「Ｎｏｒｍａｌ」であれば（Ｓ５１４の「Ｎｏｒｍａｌ」）、直前の命令の実行が正常に終了したので受信したセキュアコマンドを受理して次の処理へ移る。一方、状態レジスタ２２１の処理結果が「Ｅｒｒｏｒ」であれば（Ｓ５１４の「Ｅｒｒｏｒ」）、直前の命令の実行が正常に終了していないので、次の処理へ移ることができないため処理を終了するためにＳ５１６へ進む。命令が正規の発行手順を守っていない場合、あるいは、直前の命令が正常に終了しなかった場合、コントローラ２０１は、記録装置１００へエラーの通知をする（Ｓ５１６）。コントローラ１０１は、ストレージデバイス２００からエラーの通知を受信すると（Ｓ５１８）、処理を異常終了する。
【００７７】
（第２の実施の形態）
図１７は、第２の実施の形態に係るデータ管理システム１０の全体構成を示す。本実施の形態では、第１の実施の形態における記録装置１００および再生装置３００が一つの記録再生装置４００として実現されている。
【００７８】
図１８は、本実施の形態に係る記録再生装置４００の内部構成を示す。本実施の形態の記録再生装置４００は、図２に示した第１の実施の形態の記録装置１００の構成と、図３に示した第１の実施の形態の再生装置３００の構成の双方を備えており、同様の構成には同じ符号を付している。第１暗号エンジン１０３は、第１の実施の形態における記録装置１００の暗号エンジン１０３に対応し、第２暗号エンジン３０３は、第１の実施の形態における再生装置３００の暗号エンジン３０３に対応する。第１暗号エンジン１０３の内部構成は、図５に示した第１の実施の形態の暗号エンジン１０３と同様であり、第２暗号エンジン３０３の内部構成は、図６に示した第１の実施の形態の暗号エンジン３０３の内部構成と同様である。コントローラ４０１は、第１の実施の形態における記録装置１００のコントローラ１０１と再生装置３００のコントローラ３０１の双方の機能を有する。ストレージインタフェース４０２は、ストレージデバイス２００とのデータの入出力を制御し、データバス４１０は、記録再生装置４００の構成を電気的に接続する。
【００７９】
本実施の形態の記録再生装置４００の動作も、第１の実施の形態と同様であり、第１の実施の形態で説明した動作において、記録装置１００を記録再生装置４００に、暗号エンジン１０３を第１暗号エンジン１０３に、コントローラ１０１をコントローラ４０１に、再生装置３００を記録再生装置４００に、暗号エンジン３０３を第２暗号エンジン３０３に、コントローラ３０１をコントローラ４０１にそれぞれ置き換えたものと同様である。
【００８０】
（第３の実施の形態）
図１９は、第３の実施の形態に係る記録装置１００の内部構成を示す。本実施の形態では、第１の実施の形態における記録装置１００が、コンテンツを配信する配信サーバ１５０とコンテンツの提供を受ける端末装置１６０として実現されている。配信サーバ１５０は、暗号エンジン１０３、通信装置１５２、コンテンツデータベース１５３、ライセンスデータベース１５４、ユーザデータベース１５５、それらを制御するコントローラ１５１、およびそれらを電気的に接続するデータバス１５６を備える。端末装置１６０は、コントローラ１０１、ストレージインタフェース１０２、通信装置１６２、およびそれらを電気的に接続するデータバス１６６を備える。配信サーバ１５０と端末装置１６０は、それぞれ通信装置１５２および１６２を介して、ネットワークの一例としてのインターネット２０により接続される。配信サーバ１５０の暗号エンジン１０３は、第１の実施の形態の暗号エンジン１０３と同様の機能を有し、端末装置１６０のコントローラ１０１およびストレージインタフェース１０２は、それぞれ第１の実施の形態のコントローラ１０１およびストレージインタフェース１０２と同様の機能を有する。
【００８１】
コンテンツデータベース１５３は、ユーザに提供するコンテンツを保持する。ライセンスデータベース１５４は、コンテンツを暗号化するのに用いられるコンテンツ鍵を含むライセンスデータを保持する。本実施の形態では、コンテンツは既にコンテンツ鍵により暗号化されてコンテンツデータベース１５３に格納されているが、コンテンツデータベース１５３に暗号化される前のコンテンツデータを格納しておき、配信サーバ１５０に第１の実施の形態におけるコンテンツエンコーダ１０５および暗号器１０４をさらに設け、コンテンツデータベース１５３からコンテンツを読み出してエンコードし、暗号化してもよい。ユーザデータベース１５５は、コンテンツを提供するユーザの情報を保持する。たとえば、ユーザの個人情報、端末装置１６０のアドレス、コンテンツの購入履歴、課金情報などを保持してもよい。コントローラ１５１は、ユーザからの要求に応じて暗号化されたコンテンツをコンテンツデータベース１５３から読み出してユーザに提供する。そして、暗号エンジン１０３によりそのコンテンツを復号するためのライセンスデータがユーザに提供されると、そのコンテンツの対価を課金すべくユーザデータベース１５５を更新する。
【００８２】
本実施の形態の暗号入出力処理の手順は、第１の実施の形態と同様である。本実施の形態では、暗号エンジン１０３とコントローラ１０１との間の通信がインターネット２０を介して行われるので、同一装置内で通信が行われる第１の実施の形態に比べてよりデータの漏洩の危険性が増すが、図９から図１５で説明したように、暗号エンジン１０３とコントローラ１０１との間でも必ずデータを暗号化して送受信を行うので、高い耐タンパ性を実現することができる。
【００８３】
（第４の実施の形態）
図２０は、第４の実施の形態に係る端末装置１６０の内部構成を示す。本実施の形態は、第３の実施の形態における端末装置１６０が、一方のストレージデバイス２００からライセンスデータを読み出し、他方のストレージデバイス２００へ転送する例を示す。すなわち、端末装置１６０は、一方のストレージデバイス２００には再生装置３００として、他方のストレージデバイス２００には記録装置１００として機能する。それぞれの場合の動作については、第１の実施の形態と同様である。
【００８４】
以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００８５】
実施の形態では、暗号エンジン内において暗号化や復号を行う機能ブロックを別に示したが、それらの構成要素において回路を共有してもよい。これにより、ハードウェア規模を抑え、小型化、低消費電力化に寄与することができる。
【００８６】
【発明の効果】
本発明によれば、記録装置とホスト装置との間で秘匿すべきデータを暗号化して入出力するときの処理効率を向上させることができる。
【図面の簡単な説明】
【図１】第１の実施の形態に係るデータ管理システムの全体構成を示す図である。
【図２】第１の実施の形態に係る記録装置の内部構成を示す図である。
【図３】第１の実施の形態に係る再生装置の内部構成を示す図である。
【図４】第１の実施の形態に係るストレージデバイスの内部構成を示す図である。
【図５】図２に示した記録装置の暗号エンジンの内部構成を示す図である。
【図６】図３に示した再生装置の暗号エンジンの内部構成を示す図である。
【図７】図４に示したストレージデバイスの暗号エンジンの内部構成を示す図である。
【図８】ホスト装置が、ストレージデバイスにおける命令の実行に必要な時間を推定するための情報をストレージデバイスから取得する手順を示す図である。
【図９】記録装置がストレージデバイスにライセンスデータを記録するまでの手順を示す図である。
【図１０】記録装置がストレージデバイスにライセンスデータを記録するまでの手順を示す図である。
【図１１】記録装置がストレージデバイスにライセンスデータを記録するまでの手順を示す図である。
【図１２】記録装置がストレージデバイスにライセンスデータを記録するまでのＡＴＡインタフェース上の手順を示す図である。
【図１３】再生装置がストレージデバイスからライセンスデータを読み出すまでの手順を示す図である。
【図１４】再生装置がストレージデバイスからライセンスデータを読み出すまでの手順を示す図である。
【図１５】再生装置がストレージデバイスからライセンスデータを読み出すまでの手順を示す図である。
【図１６】記録装置がストレージデバイスにセキュアコマンドを発行する様子を示す図である。
【図１７】第２の実施の形態に係るデータ管理システムの全体構成を示す図である。
【図１８】第２の実施の形態に係る記録再生装置の内部構成を示す図である。
【図１９】第３の実施の形態に係る記録装置の内部構成を示す図である。
【図２０】第４の実施の形態に係る端末装置の内部構成を示す図である。
【符号の説明】
１０・・・データ管理システム、１００・・・記録装置、１０１・・・コントローラ、１０２・・・ストレージインタフェース、１０３・・・暗号エンジン、１０４・・・暗号器、１０５・・・コンテンツエンコーダ、１１０・・・データバス、１２０・・・認証部、１２１・・・第１暗号部、１２２・・・乱数発生部、１２３・・・復号部、１２４・・・第２暗号部、１２５・・・ログメモリ、１３０・・・ローカルバス、１５０・・・配信サーバ、１５１・・・コントローラ、１５２・・・通信装置、１５３・・・コンテンツデータベース、１５４・・・ライセンスデータベース、１５５・・・ユーザデータベース、１５６・・・データバス、１６０・・・端末装置、１６２・・・通信装置、１６６・・・データバス、２００・・・ストレージデバイス、２０１・・・コントローラ、２０２・・・ストレージインタフェース、２０３・・・暗号エンジン、２０４・・・通常データ記憶部、２０５・・・機密データ記憶部、２１０・・・データバス、２２０・・・データレジスタ、２２１・・・状態レジスタ、２２２・・・制御部、２２４・・・乱数発生部、２２５・・・証明書出力部、２２６・・・認証部、２２７・・・第１復号部、２２８・・・第１暗号部、２２９・・・第２復号部、２３０・・・第２暗号部、２３１・・・ログメモリ、２４０・・・ローカルバス、３００・・・再生装置、３０１・・・コントローラ、３０２・・・ストレージインタフェース、３０３・・・暗号エンジン、３０４・・・復号器、３０５・・・コンテンツデコーダ、３１０・・・データバス、３２０・・・証明書出力部、３２１・・・第１復号部、３２２・・・暗号部、３２３・・・乱数発生部、３２４・・・第２復号部、３３０・・・ローカルバス、４００・・・記録再生装置、４０１・・・コントローラ、４０２・・・ストレージインタフェース、４１０・・・データバス。
【図１】
2004295692.tif 000003
【図２】
2004295692.tif 000004
【図３】
2004295692.tif 000005
【図４】
2004295692.tif 000006
【図５】
2004295692.tif 000007
【図６】
2004295692.tif 000008
【図７】
2004295692.tif 000009
【図８】
2004295692.tif 000010
【図９】
2004295692.tif 000011
【図１０】
2004295692.tif 000012
【図１１】
2004295692.tif 000013
【図１２】
2004295692.tif 000014
【図１３】
2004295692.tif 000015
【図１４】
2004295692.tif 000016
【図１５】
2004295692.tif 000017
【図１６】
2004295692.tif 000018
【図１７】
2004295692.tif 000019
【図１８】
2004295692.tif 000020
【図１９】
2004295692.tif 000021
【図２０】
2004295692.tif 000022