明細書 機密データの入出力処理に関する履歴情報を 重複することなく複数格納できるデータ記憶装置 技術分野
この発明は、 機密データの読出処理および書込処理を安全に提供するデータ記 憶装置に関し、 特に、' 著作権保護を可能とするデータ配信システムを用いて取得 された暗号化データを復号および再生するためのライセンスを記憶し、 マルチァ クセスが可能なデータ記憶装置においてコピーされた情報に対する著作権保護を 可能とするデータ記憶装置に関するものである。 背景技術
近年、 インタ一ネット等のデジタル情報通信網等の進歩により、 携帯電話機等 を用いた個人向け端末により、 各ユーザが容易にネットワーク情報にアクセスす ることが可能となっている。
このようなデジタル情報通信網においては、 デジタル信号により情報が伝送さ れる。 したがって、 たとえば上述のような情報通信網において伝送された音楽や 映像データを各個人ユーザがコピーした場合でも、 そのようなコピーによる音質 や画質の劣化をほとんど生じさせることなく、 データのコピーを行なうことが可 能である。
したがって、 このようなデジタル情報通信網上において音楽データや画像デー タ等の著作者の権利が存在するコンテンツが伝達される場合、 適切な著作権保護 のための方策が取られていないと、 著しく著作権者の権利が侵害されてしまうお それがある。
一方で、 著作権保護の目的を最優先して、 急拡大するデジタル情報通信網を介 してコンテンツデータの配信を行なうことができないとすると、 基本的には、 著 作物データの複製に際し一定の著作権料を徴収することが可能な著作権者にとつ ても、 かえって不利益となる。
し力 し、 音楽データや画像データ等のコンテンツデータをデジタル情報通信網 を通じて公衆に配信することは、 それ自体が著作権者の公衆送信権による制限を 受ける行為であるから、 著作権保護のための十分な方策が講じられる必要がある。 この場合、 デジタル情報通信網を通じて公衆に送信される著作物である音楽デ ータゃ画像データ等のコンテンツデータについて、 一度受信されたコンテンツデ 一夕が、 さらに勝手に複製されることを防止することが必要となる。
そこで、 コンテンツデータを暗号化した暗号化コンテンツデータを保持する配 信サーバが、 携帯電話機等の端末装置に装着されたメモリカードに対して端末装 置を介して暗号化コンテンツデータを配信するデータ配信システムが提案されて いる。 このデータ配信システムにおいては、 予め認証局で認証されたメモリカー ドの公開暗号鍵とその証明書を暗号化コンテンツデータの配信要求の際に配信サ ーバへ送信し、 配信サーバが認証された証明書を受信したことを確認した上でメ モリカードに対して暗号化コンテンツデータと、 暗号化コンテンツデータを復号 するためのライセンスを送信する。 ライセンスは、 暗号化コンテンツデータを復 号するための復号鍵 ( 「コンテンツ鍵」 と言う。 以下同じ。 ) 、 ライセンスを識 別するためのライセンス I D、 およびライセンスの利用を制限するための制御情 報等を含んでいる。 配信サーバからメモリカードに対してライセンスを送信する 際には、 配信サーバおよびメモリカードは、 それぞれがセッション鍵を生成し、 配信サーバとメモリカードとの間で鍵の交換を行なうことによって、 暗号通信路 を構築し、 配信サーバはメモリカードに対して構築した暗号通信路を介してライ センスを送信する。 その際、 メモリカードは、 受信した暗号化コンテンツデータ とライセンスとを内部のメモリに記憶する。
メモリカードに記憶した暗号化コンテンツデータを再生する場合は、 メモリ力 一ドを携帯電話機に装着する。 最終的に、 携帯電話機は、 通常の通話機能の他に メモリカードから暗号化コンテンツデータとコンテンツ鍵を読み出して暗号ィ匕コ ンテンッデータを復号し、 かつ、 再生して外部へ出力するための専用回路も有す る。 ライセンス鍵の読み出しに際しては、 メモリカードと専用回路との間に喑号 通信路を構築し、 暗号通信路を介してメモリカードから専用回路に送信される。 また、 メモリカードは、 他のメモリカードとの間でライセンスの移動または複
製を行なう機能を備えている。 この場合、 配信サーバからライセンスの送信と同 様に、 送信元のメモリカードと送信先のメモリカードの双方の機能によって暗号 通信路を構築した上で、 ライセンスが送信元のメモリカードから送信先のメモリ カードに対して送信される。 ライセンスを移動する力複製するかは、 ライセンス に含まれる制御情報に従って決定される。
さらに、 送受信中の不慮の中断によってライセンスが消失した場合に、 その処 理を再開でき、 かつ、 ライセンスの重複送信を防ぐためにライセンスの入出力に 関する直近の履歴情報を記録し、 必要に応じて出力する機能をメモリカードは備 えている。 送信元である配信サーバあるいはメモリカードは、 送信先のメモリ力 ドから履歴情報を取得して、 この履歴情報に従ってライセンスの送受信の再開 を判断する。 履歴情報は、 ライセンス I Dと送受信を示すステータス情報を含ん でいる。
このように、 携帯電話機のユーザは、 携帯電話網を用いて暗号化コンテンツデ ータとライセンスとを配信サーバから受信し、 メモリカードに記憶したうえで、 メモリカードに記憶された暗号化コンテンツデータを再生したり、 他のメモリ力 ードに移したりできる。 また、 著作権者の権利を保護することができる。
し力 し、 従来のメモリカードにおいては、 直近の履歴情報を保持するのみで、 中断後、 他のライセンスに対する送受信を行った場合に先の中断に対する履歴情 報が消えてしまう。 このような場合、 複数の履歴情報を格納することにより、 ュ 一ザの利便性を改善することが可能である。
また、 記憶素子に対するアクセスの高速化や、 記憶素子の大容量化に伴い、 複 数のライセンスの送受信を並行して行なう要求が発生することが、 今後、 予想さ れる。 その場合、 少なくとも並行して行われる処理に関する履歴情報を格納でき るようにする必要性が生ずる。
このように、 複数の履歴情報を格納できるようにする場合に、 ライセンスの受 信後に、 該ライセンスを他のメモリカードに対して移したとすると、 同一のライ センス I Dに対して異なったステータスを持つ履歴情報が格納されるという問題 が生じる。
発明の開示
それゆえに、 この発明の目的は、 ライセンスに対して著作権を保護し、 つ、 ライセンスの送受信を再開可能とするための履歴情報を重複することなく複数格 納できるデータ記憶装置を提供することである。
なお、 この発明は、 コンテンツデータに対するライセンスに限られるものでは なく、 秘密にする必要がある機密データ一般に拡大され得る。
したがって、 この発明によれば、 データ記憶装置は、 一定の手順に従って機密 データの入出力を行ない、 機密データを記憶し、 かつ、 一定の手順の進行に従つ て履歴情報を格納あるいは当該履歴情報を随時更新するデータ記憶装置であって、 外部とデータの入出力を行なうインターフェースと、 複数の機密データを格納す るデータ記憶部と、 機密データの入出力に関する複数の履歴情報を格納するログ 記憶部と、 機密データの入出力を制御する制御部とを備え、 ログ記憶部は、 それ ぞれ 1つの履歴情報を格納する 2つ以上の領域を循環的に利用するリングバッフ ァとして設けられており、 口グ記憶部に記憶される複数の履歴情報の各々は、 当 該履歴情報を記憶した入出力対象の機密データを識別する識別情報を含み、 制御 部は、 機密データの入出力の処理が開始されたことに伴い入出力の対象となった 機密データを識別する識別情報をィンターフェースを介して受取り、 口グ記憶部 の複数の領域を所定の順序で検索して、 ログ記憶部に格納されている最も古い履 歴情報を格納する領域を最古領域として特定し、 その特定した最古領域に受取つ た識別情報を含む機密データの入出力処理に対する履歴情報を新たに格納する。 好ましくは、 履歴情報の出力要求に対して履歴情報の一部または全てを出力す る履歴情報の出力処理において、 制御部は、 入出力の対象となる機密データの識 別情報をィンタフェースを介して受取り、 口グ記憶部の複数の領域を所定の順序 で検索して、 最古領域と、 受取った識別情報を含む最も新しい履歴情報を格納す る領域を最新領域として特定し、 最新領域に格納されている履歴情報の一部また は全てをインタフェースを介して出力する。
好ましくは、 履歷情報の出力を伴う前記機密データの入力処理において、 制御 部は、 入出力の対象となる機密データの識別情報をインタフェースを介して受取 り、 ログ記憶部の複数の領域を所定の順序で検索して、 最古領域と、 受取った識
別情報を含む最も新しい履歴情報を格納する最新領域とを特定し、 その特定した 最新領域に格納されている履歴情報の一部または全てを、 特定した最古領域に複 製することによって機密データの入力処理に対する新たな履歴情報として格納し、 特定された最古領域に格納された履歴情報の一部または全てをインタフェースを 介して出力する。
好ましくは、 他の装置によって一定の手順の進行によって記録されたもう 1つ の履歴情報の入力を伴う機密データの再出力処理において、 制御部は、 入出力の 対象となる機密データの識別情報およびもう 1つの履 ®情報とをインタフェース を介して受取り、 最古領域および最新領域を特定し、 その特定した最新領域に格 納された履歴情報と、 受取ったもう 1つの履歴情報とに基づいて、 機密データを 出力するか否かを判定する。
好ましくは、 他の装置によって一定の手順の進行に従って記録されたもう 1つ の履歴情報の入力を伴う機密データの出力処理において、 制御部は、 入出力の対 象となる機密データの識別情報およびもう 1つの履歴情報をインタフェースを介 して受取り、 最古領域および最新領域を特定し、 その特定した最新領域に格納さ れている履歴情報の一部または全てを、 特定した最古領域に複製することによつ て機密データの出力処理に対する新たな履歴情報として格納し、 特定した最古領 域に格納された履歴情報と、 受取ったもう 1つの履歴情報とに基づいて、 機密デ ータを出力するか否かを判定する。
好ましくは、 最古領域を特定した後、 制御部は、 入出力処理における一定の手 順が終了あるいは中止されるまでの間、 特定された最古領域に格納された履歴情 報を、 当該手順の進行に従って随時更新する。
好ましくは、 複数の履歴情報の各々は、 ログ記憶部へ記憶された順序を識別す るための管理番号をさらに含み、 管理番号は、 ログ記憶部に連続して配置された 2つの領域に格納された 2つの履歴情報に含まれる各々の管理番号に基づいて、 古い履歴情報が格納される最古領域を検出する。
好ましくは、 ログ記憶部は、 N (Nは 2以上の自然数) 個の領域を循環的に利 用するリングバッファからなり、 管理番号は、 M (Mは、 N < Mを満たす自然 数) の剰余系からなる。
好ましくは、 制御部は、 口グ記憶部に連続して配置された 2つの領域に格納さ れた 2つの履歴情報に含まれる各々の管理番号を取得し、 その取得した 2つの管 理番号の差に基づいて、 2つの当該管理番号を含む 2つの履歴情報が連続して格 納されたか否かを判定し、 2つの履歴情報が不連続に格納された履歴情報である とき、 連続する 2つの領域のうち、 後続領域を最古領域として検出する。
したがって、 この発明によれば、 機密データを保護し、 かつ、 機密データの入 出力処理に関する複数の履歴情報を重複することなく格納し、 出力あるいは参照 できる。 図面の簡単な説明
図 1は、 データ配信システムを概念的に説明する概略図である。
図 2は、 図 1に示すデータ配信システムにおいて送受信されるデータ、 情報等 の特性を示す図である。 '
図 3は、 図 1に示すデータ配信システムにおいて使用される暗号通信に用いら れる鍵、 情報等の特性を示す図である。
図 4は、 図 1に示すライセンス提供装置の構成を示す概略ブロック図である。 図 5は、 図 1に示す端末装置の構成を示す概略ブロック図である。
図 6は、 図 1に示す端末装置に装着されるハードディスクの構成を示す概略ブ 口ック図である。
図 7は、 図 6に示すハードディスクにおけるセキュアデータ記憶部の構成を示 す図である。
図 8は、 図 6に示すハードディスクにおけるノーマルデータ記憶部の構成を示 す図である。 '
図 9は、 図 1に示すデータ配信システムにおける配信処理を説明するための実 施の形態 1における第 1のフローチャートである。
図 1 0は、 図 1に示すデータ配信システムにおける配信処理を説明するための 実施の形態 1における第 2のフローチヤ一トである。
図 1 1は、 図 9に示すステップ S 2 0の詳細な動作を説明するためのフローチ ヤートである。
図 1 2は、 図 1 1に示すステップ S 2 0 aの詳細な動作を説明するためのフロ 一チャートである。
図 1 3は、 図 1に示すデータ配信システムにおける配信処理中の再書込処理を 説明するための実施の形態 1における第 1のフローチャートである。
図 1 4は、 図 1に示すデータ配信システムにおける配信処理中の再書込処理を 説明するための実施の形態 1における第 2のフローチャートである。
図 1 5は、 図 1に示すデータ配信システムにおける配信処理中の再書込処理を 説明するための実施の形態 1における第 3のフローチャートである。
図 1 6は、 図 1 3に示すステップ S 1 1 2 aの詳細な動作を説明するためのフ ローチャートである。
図 1 7は、 複製 ·移動処理が行なわれるシステム構成を概念的に説明する概略 図である。
図 1 8は、 図 1 7に示すシステムにおける複製または移動処理を説明するため の実施の形態 1における第 1のフローチヤ一トである。
図 1 9は、 図 1 7に示すシステムにおける複製または移動処理を説明するため の実施の形態 1における第 2のフローチヤ一トである。
図 2 0は、 図 1 8に示すステップ S 2 1 8の詳細な動作を説明するためのフロ 一チヤ一トである。
図 2 1は、 図 1 7に示すシステムにおける複製または移動処理中の再書込処理 を説明するための実施の形態 1における第 1のフローチャートである。
図 2 2は、 図 1 7に示すシステムにおける複製または移動処理中の再書込処理 を説明するための実施の形態 1における第 2のフローチャートである。
図 2 3は、 図 1 7に示すシステムにおける複製または移動処理中の再書込処理 を説明するための実施の形態 1における第 3のフローチャートである。
図 2 4は、 図 5に示す端末装置に対する再生許諾処理を説明するためのフロー チヤ一トである。
図 2 5は、 図 1に示すデータ配信システムにおける配信処理を説明するための 実施の形態 5における第 1のフローチャートである。
図 2 6は、 図 1に示すデータ配信システムにおける配信処理を説明するための
実施の形態 5における第 2のフローチャートである。
図 2 7は、 図 2 5に示すステップ S 1 6 aの詳細な動作を説明するためのフロ 一チヤ一トである。
図 2 8は、 図 1 7に示すシステムにおける複製または移動処理を説明するため の実施の形態 5における第 1のフローチャートである。
図 2 9は、 図 1 7に示すシステムにおける複製または移動処理を説明するため の実施の形態 5における第 2のフローチャートである。
図 3 0は、 図 2 8に示すステップ S 2 0 8の詳細な動作を説明する'ためのフロ 一チヤ一トである。 発明を実施するための最良の形態
本発明の実施の形態について図面を参照しながら詳細に説明する。 なお、 図中 同一または相当部分には同一符号を付してその説明は繰返さない。
[実施の形態 1 ]
図 1は、 本努明によるデータ記憶装置が、 暗号化コンテンツデータおよび暗号 化コンテンツデータを復号するためのライセンスを取得するデ一タ配信システム の全体構成を概念的に説明するための概略図である。
なお、 以下では、 デジタル放送網により配信された映像データを端末装置 1 0 により受信して端末装置 1 0に装着されたデータ記憶装置である HD (ハードデ イスクドライブ) 2 0に記憶し、 また、 暗号化された映像データを復号するため のライセンスを双方向のネットワーク 3 0に端末装置 1 0と接続されるライセン ス提供装置 4 0からネットワーク 3 0を介してから受信して HD 2 0に格納し、 暗号化された映像データを端末装置 1 0に内蔵された専用の再生回路 (図示せ ず) にて再生するデータ配信システムの構成を例にとって説明する。 一方、 以下 の説明で明らかとなるように、 本発明はこのような場合に限定されることなく、 他の著作物としてのコンテンツデータ、 たとえば画像データ、 音楽データ、 教材 データ、 朗読データ、 書籍データ、 ゲームなどのプログラムが扱われる場合にお いても適用することが可能なものである。 また、 データ記憶装置についても同様 で、 ハードディスクに限定されることなく、 他のデータ記憶装置、 たとえばメモ
リカードなどにおいても適用することが可能である。
図 1を参照して、 端末装置 1 0は、 デジタル放送網により配信される、 暗号化 された映像データ (以下、 コンテンツデータとも呼ぶ) をアンテナ 1 1を介して 受信し、 HD 2 0に記憶する。 暗号化されたコンテンツデータ (以下、 暗号化コ ンテンッデータとも呼ぶ) を復号するためのコンテンツ鍵を含むライセンスを管 理し、 かつ、 配信するライセンス提供装置 4 0は、 ライセンスの配信を求めてァ クセスしてきた端末装置 1 0に装着された HD 2 0が正当な認証データを持つか 否か、 すなわち、 ライセンス管理機能を備えた正規のデータ記憶装置であるか否 かの認証処理を行ない、 HD 2 0が正当なデータ記憶装置であった場合のみ、 端 末装置 1 0に対して HD 2 0においてのみ復号可能な所定の暗号方式によって暗 号化したライセンスを送信する。 そして、 端末装置 1 0は、 ネットワーク 3 0に 接続されたモデムを介して暗号化されたライセンスを受信すると、 その暗号化さ れたライセンスを装着された HD 2 0へ送信する。
図 1においては、 たとえば、 HD 2 0は、 端末装置 1 0に着脱可能な構成とな つている。 端末装置 1 0に装着された HD 2 0は、 端末装置 1 0により受信され た暗号化されたライセンスを受取り、 著作権を保護するためにライセンス対して なされている暗号化を復号したうえで HD 2 0内に記憶する。 そして、 ライセン スに対応した暗号化コンテンツデータを再生する場合、 ライセンスに含まれるコ ンテンッ鍵と暗号化コンテンッデータとを端末装置 1 0に与える。
そして、 端末装置 1 0のユーザは、 端末装置 1 0においてコンテンツ鍵を用い て復号されるコンテンツデータを再生することが可能となる。
このような構成とすることで、 端末装置 1 0のユーザは、 ライセンス管理機能 を備えた正規の認証データを有する HD 2 0を利用しないと、 暗号化されたコン テンッデータを受信して記憶したところでライセンスの提供を受けることができ ず、 コンテンツデータを再生することができない。
なお、 上述したデータ配信システムにおいては、 暗号化コンテンツデータの提 供元は、 デジタル放送業者の放送サーバであるが、 ライセンスを管理するライセ ンス提供装置 4 0であってもよいし、 インターネットなどの通信網を介して接続 されるライセンス提供装置 4 0とは別.の配信サーバであってもよい。 また、 他の
ユーザからの複製であってもよい。 すなわち、 暗号化コンテンツデータ自体は、 どこから発信されても、 また、 どこで受信されてもよく、 要は暗号化コンテンツ データを復号可能なライセンスを厳重に管理しておきさえすれば、 コンテンッデ 一タの著作権を保護することができる。
したがって、 本発明の実施の形態においては、 HD 2 0、 端末装置 1 0および ライセンス提供装置 4 0のそれぞれの間で行なわれるライセンスの送受信処理に おいて、 暗号化コンテンッデ一タを再生するために必要なライセンスの提供元が、 提供先に対する認証およびチェック機能を行ない、 非認証の装置に対するライセ ンスの出力を防止する。 さらに、 ライセンスの送受信処理中に異常が発生したと きに、 ライセンスが重複して存在することがないように、 再処理の必要なライセ ンスを特定することでコンテンツデータの著作権保護を実現しつつ、 不慮の送受 信処理の異常終了から回復可能なシステムの構成について説明する。
図 2は、 図 1に示したデータ配信システムにおいて送受信されるデータ、 情報 等の特性を説明する図である。
データ D cは、 コンテンツデータであって、 ここでは映像データである。 デー タ D cは、 コンテンツ鍵 K cで復号可能な喑号ィ匕が施される。 コンテンツ鍵 K c によって復号可能な暗号化が施された暗号化コンテンツデータ E (K c , D c ) 、 この形式でデジタル放送網により端末装置 1 0のユーザに配布される。
なお、 以下においては、 E (X , Y) という表記は、 データ Yを、 復号鏈 Xに より復号可能な暗号化を施したことを示すものとする。 また、 データ D cに付随 して、 コンテンツデータに関する著作権あるいはサーバアクセス関連等の平文情 報としての付加情報 D iが配布される。
また、 ライセンスの配信を特定するとともに、 各々のライセンスを特定する管 理コードであるライセンス I D ( L I D) が端末装置 1 0を介してライセンス提 供装置 4 0と HD 2 0との間でやり取りされる。 さらに、 ライセンスとしては、 データ D cおよびコンテンツ鍵 K cを識別するためのコードであるデータ I D (D I D) や、 利用者側からの指定によって決定されるライセンス数や機能限定 など、 データ記憶装置におけるライセンスゃ再生の取扱レ、に対する制限に関する 制御情報 A Cが存在する。
コンテンツ鍵 Kcと、 制御情報 ACと、 D I Dと、 L I Dとを併せて、 以後、 ライセンス L I Cと総称することとする。 D I Dは、 データ D cとコンテンツ鍵 Kcとの対に対して割り当てられた識別情報、 すなわち、 暗号化データ E (Kc, D c) を識別するための識別情報となる。 D I Dは、 ライセンス L I Cの他に、 暗号化データ E (Kc, D c) とともに常に扱われる付加情報 D iにも含まれ、 参照できるようになっている。
図 3は、 図 1に示すデータ配信システムにおいて使用される認証のためのデー タ、 情報等の特性を説明する図である。
HD 20などのデータ記憶装置および端末装置 10などに備えられる再生回路 には、 固有のクラス公開鍵 KP cmyおよび KP c p yがそれぞれ設けられ、 ク ラス公開鍵 KP cmyおよび KP c p yは、 データ記憶装置に固有のクラス秘密 鍵 K c myおよび再生回路に固有のクラス秘密鍵 K c p yによってそれぞれ復号 可能である。 これらクラス公開鍵およびクラス秘密鍵は、 再生回路あるいはデー タ記憶装置の種類ごとに異なる値を持ち、 これらクラス公開鍵およびクラス秘密 鍵を共有する単位をクラスと称する。 記号 「y」 は、 そのクラスを識別するため の識別子を表わす。 クラスは、 製造会社や製品の種類、 製造時のロット等によつ て異なる。
また、 データ記憶装置のクラス証明書として Cm yが設けられ、 再生回路のク ラス証明書として Cp yが設けられる。 これらのクラス証明書は、 データ記憶装 置および再生回路のクラスごとに異なる情報を有する。
データ記憶装置のクラス証明書 Cmyは、 KP cmyZZl cmyZ/E (K a, H (KP cmy//l cmy) ) の形式で出荷時にデータ記憶装置に記憶さ れ、 再生回路のクラス証明書 Cp yは、 KP c p y // I c p y//E ( a , H (KP c p y/Xl c p y) ) の形式で出荷時に再生回路に記憶される。 ここ で、 X//Yは、 Xと Yとの連結を表わし、 H (X) は、 ハッシュ関数により演 算されたデータ Xのハッシュ値を表わす。 マスタ鍵 K aは、 これらのクラス証明 書を作成するために使用される秘密暗号鍵であり、 このデータ配信システム全体 で共通の秘密暗号鍵であって、 認証局によって安全に管理運用される。 また、 ク ラス情報 I cmy, I c p yは、 クラスごとの機器に関する情報およびクラス公
開鍵を含む情報データである。
また、 E (K a , H (KP c my // I cmy) ) および E (K a , H (KP c p / / I c p y ) ) は、 それぞ、れ KP cmy / I cmyおよび KP c p y //I c p yに対する電子署名を行なった署名データである。
なお、 認証局は、 署名データを作成する公的な第三者機関であり、 署名データ E (K a , I- I (KP cmy //I cmy) ) および E (K a , H (KP c p y / / I c p y) ) は、 認証局によって生成される。
さらに、 データ記憶装置に対して安全かつ確実にライセンス L I Cを送信する ための鍵として、 データ記憶装置という媒体ごとに設定される個別公開鍵 KP o mzと、 個別公開鍵 KP omzで暗号化されたデータを復号することが可能な個 別秘密鍵 Komzとが存在する。 ここで、 記号 「Z」 は、 データ記憶装置を個別 に識別するための識別子である。
データ配信システムにおいてデータの送受信が行なわれるごとに、 ライセンス 提供装置 40、 データ記憶装置 (HD 20) 、 および端末装置 10の再生回路に おいて生成されるセッション鍵 K s 1 X , Ks 2 xが用いられる。
ここで、 セッション鍵 K s i x, Ks 2 xは、 ライセンス提供装置 40、 デー タ記憶装置 (HD 20) 、 もしくは端末装置 10の再生回路間の通信の単位ある いはアクセスの単位である 「セッション」 ごとに発生する固有の共通鍵である。 「セッション」 には、 ライセンス提供装置 40からデータ記憶装置 (HD20) へライセンスを配信する 「配信セッション」 、 データ記憶装置間でのライセンス の複製や移動を行なう 「複製 '移動セッション」 、 およびデータ記憶装置 (HD 20) から端末装置 10の再生回路へライセンスを出力する 「再生許諾セッショ ン」 がある。
これらのセッション鍵 K s 1 x, Ks 2 xは、 各セッションごとに固有の値を 有することにより、 ライセンス提供装置 40、 データ記憶装置 (HD 20) 、 お よび端末装置 10の再生回路によって管理される。 具体的には、 セッション鍵 K s i xは、 ライセンスを送受信する際に、 ライセンスの送信側によってセッショ ンごとに発生され、 セッション鍵 K s 2 Xは、 ライセンスの受信側によってセッ シヨンごとに発生される。 なお、 記号 「x」 は、 セッションにおける一連の処理
を識別するための識別子である。 そして、 各セッションにおいてこれらのセッシ ョン鍵を各機器間で相互に授受し、 他の機器で生成されたセッション鍵を受けて、 そのセッション鍵による暗号化を実行したうえで、 ライセンス L I C、 またはコ ンテンッ鍵を含むライセンス L I Cの一部の送信を行なうことによって、 セッシ ョンにおけるセキュリティ強度を向上させることができる。
図 4は、 図 1に示したライセンス提供装置 40の構成を示す概略プロック図で ある。
ライセンス提供装置 40は、 管理対象のライセンスを保持するデータベースで あるコンテンツ DB 402と、 ライセンスを配信する配信セッションにおける全 ての通信記録を随時記憶し、 保持するデータベースであるログ DB 404と、 コ ンテンッ DB 402およびログ DB 404とバス B S 1を介してデータをやり取 りし、 所定の処理を行なうためのデータ処理部 410と、 ネットワーク 30を介 して端末装置 10とデータ処理部 410との間でデータ授受を行なうための通信 装置 450とを備える。
データ処理部 410は、 バス B S 1上のデータに応じて、 データ処理部 410 の動作を制御するための配信制御部 41 2と、 配信制御部 412により制御され て、 配信セッション時にセッション鍵 K s 1 Xを発生するためのセッション鍵発 生部 414と、 端末装置 10から送られてくる HD 20のクラス証明書 Cmyに 含まれる署名データ E (Ka, H (KP cmy// I cmy) ) を復号するため の HD 20の認証鍵 KP aを保持する KP a保持部 416と、 HD 20から送ら れてきたクラス証明書 Cmyを通信装置 450およびバス B S 1を介して受け、 KP a保持部 416から受ける認証鍵 KP aによって復号処理を行ない、 クラス 証明書 Cmyに含まれる署名データ E (Ka, H (KP cmy// I cmy) ) の復号処理と、 クラス証明書 Cmyに含まれる KP cmy// l cmyのハツシ ュ値の計算を行ない、 両者の結果を比較チェックしてクラス証明書 Cmyの検証 を行なう認証部 418と、 配信セッシヨンごとに、 セッション鍵発生部 414に より生成されたセッション鍵 K s 1 Xを認証部 418によってクラス証明書 Cm yから抽出したクラス公開鍵 KP cmyを用いて暗号ィ匕し、 バス B S 1に出力す るための喑号処理部 420と、 セッション鍵 Ks 1 Xによって暗号化された上で
送信されたデータをバス B S 1より受け、 復号処理を行なう復号処理部 4 2 2と を含む。
データ処理部 4 1 0は、 さらに、 配信制御部 4 1 2から与えられるライセンス
L I Cを、 復号処理部 4 2 2によって得られたデータ記憶装置ごとに固有な個別 公開鍵 K P o m zによって暗号化するための暗号処理部 4 2 4と、 暗号処理部 4
2 4の出力を、 復号処理部 4 2 2から与えられるセッション鍵 K s 2 xによって さらに暗号化してバス B S 1に出力するための暗号処理部 4 2 6とを含む。
なお、 個別公開鍵 K P o m zおよびセッション鍵 K s 2 Xは、 セッション鍵 K s 1 Xによって暗号化されたうえで端末装置 1 0から提供される。 復号処理部 4 2 2は、 これを復号して個別公開鍵 K P o m zを得る。
ライセンス提供装置 4 0の配信セッションにおける動作については、 後ほどフ ローチャートを使用して詳細に説明する。 図 5は、 図 1に示した端末装置 1 0の構成を説明するための概略ブロック図で ある。
端末装置 1 0は、 デジタル放送網によって伝送される信号を受信するアンテナ 1 0 2と、 アンテナ 1 0 2からの信号を復調してデータに変換、 あるいはアンテ ナ 1 0 2から送信するデータを変調してアンテナ 1 0 2に与える受信部 1 0 4と、 端末装置 1 0をネットワーク 3 0に接続するモデム 1 0 6と、 端末装置 1 0の各 部のデータ授受を行なうバス B S 2と、 バス B S 2を介して端末装置 1 0の動作 を制御するコントローラ 1 0 8と、 HD 2 0とバス B S 2との間のデータの授受 を制御する HDインターフェース部 1 1 0とを含む。
端末装置 1 0は、 さらに、 上述したクラス証明書 C p yを保持する認証データ 保持部 1 5 0 2を含む。 ここで、 端末装置 1 0のクラスを識別する識別子 yは、 y = 3であるとする。
端末装置 1 0は、 さらに、 クラス固有の復号鍵であるクラス秘密鍵 K c p 3を 保持する K c p保持部 1 5 0 4と、 バス B S 2から受けたデータをクラス秘密鍵 K c p 3によって復号し、 HD 2 0によって発生されたセッション鍵 K s 1 Xを 得る復号処理部 1 5 0 6とを含む。
端末装置 1 0は、 さらに、 H D 2 0に記憶されたコンテンツデータの再生を行
なう再生許諾セッションにおいて、 HD 2 0との間でやり取りされるデータを暗 号化するためのセッション鍵 K s 2 Xを乱数等により発生するセッション鍵発生 部 1 5 0 8と、 HD 2 0からコンテンツ鍵 K cを受取る際に、 セッション鍵発生 部 1 5 0 8により発生されたセッション鍵 K s 2 Xを復号処理部 1 5 0 6によつ て得られたセッション鍵 K s 1 Xによって暗号化し、 バス B S 2に出力する暗号 処理部 1 5 1 0と、 バス B S 2上のデータをセッション鍵 K s 2 xによって復号 して、 コンテンツ鍵 K cを出力する復号処理部 1 5 1 2と、 バス B S 2より喑号 化コンテンツデータ E (K c , D c ) を受けて、 復号処理部 1 5 1 2からのコン テンッ鍵 K cによって暗号化コンテンツデータ E (K c, D c ) を復号してデー タ D cを再生部 1 5 1 6へ出力する復号処理部 1 5 1 4と、 復号処理部 1 5 1 4 からの出力を受けてコンテンツを再生するための再生部 1 5 1 6と、 再生部 1 5 1 6の出力をデジタル信号からアナログ信号に変換する D A変換部 1 5 1 8と、 D A変換部 1 5 1 8の出力をテレビモニターなどの外部出力装置 (図示省略) へ 出力するための端子 1 5 2 0とを含む。
なお、 図 5においては、 点線で囲んだ領域は暗号化コンテンツデータを復号し て映像データを再生する専用回路である再生回路 1 5 0を構成する。 再生回路 1
5 0は、 セキュリティを向上させるために 1チップ構成の半導体デバイスである ことが好ましい。 さらには、 再生回路 1 5 0は、 外部からの解析が困難な耐タン パモジュールとして構成されることが好ましい。
端末装置 1 0の各構成部分の各セッションにおける動作については、 後ほどフ ローチャートを使用して詳細に説明する。 ここでは、 端末装置 1 0は、 暗号化コンテンツデータを受信する機能、 ライセ ンスの配信を受ける機能、 再生許諾によって暗号化コンテンツデータを再生する 機能を備えていたが、 HD 2 0が端末装置 1 0から脱着可能なデータ記憶装置で あることから明らかなように、 これらの機能を別々の装置によって実現してもよ い。 この場合、 目的とする機能を実現する装置に HD 2 0を装着することで容易 に実現できる。
図 6は、 図 1に示す HD 2 0の構成を説明するための概略ブロック図である。 すでに説明したように、 データ記憶装置である HD 2 0には、 クラス公開鍵 K
P c myとクラス秘密鍵 Kc myのペア、 および個別公開鍵 KP om ζと個別秘 密鍵 Komzのペアが設けられるが、 HD 20においては、 これらを識別する識 別子 y=l、 識別子 z = 2で表されるものとする。
したがって、 HD 20は、 クラス証明書 Cm 1として認証データ KP cm 1ノ / I cml //E (K a , H (KP cml / / I c m 1 ) ) を保持する認証デー タ保持部 202と、 クラス秘密鍵 K c m 1を保持する K c m保持部 204と、 個 別秘密鍵 K om2を保持する K o m保持部 206と、 個別秘密鍵 K o m 2によつ て復号可能な個別公開鍵 K P o m 2を保持する K P o m保持部 208とを含む。 このように、 データ記憶装置 (ここでは HD 20) の喑号鍵を設けることによ つて、 以下の説明で明らかになるように、 配信されたコンテンツデータや暗号化 されたコンテンツ鍵の管理をデータ記憶装置単位で実行することが可能になる。
HD 20は、 さらに、 端末装置 10の HDインターフェース部 1 10と端子 2 10を介して信号を授受する AT A (AT— A t t a c hme n t) ィンターフ エース部 212と、 HD 20におけるデータ伝送路であるバス B S 3と、 ATA ィンターフェース部 21 2からコントローラ 214を介してバス B S 3に出力さ れたデータを、 K o m保持部 206により与えられた個別秘密鍵 K o m 2により 復号し、 ライセンス提供装置 40から配信されたライセンス L I Cをセキュアデ ータ記憶部 250へ出力する復号処理部 216と、 KP a保持部 218から認証 鍵 KP aを受け、 バス B S 3に出力されたデータの認証鍵 KP aによる復号処理 を実行して復号結果をコントローラ 214へ出力し、 かつ、 得られたクラス公開 鍵 K P c m 1を暗号処理部 222へ出力する認証部 220と、 切換スィツチ 26 0によって選択的に与えられるセッション鍵 K s 1 Xまたは K s 2 Xによって、 切換スィツチ 262によって選択的に与えられるデータを暗号ィ匕してバス B S 3 に出力する喑号処理部 224とを含む。
HD 20は、 さらに、 配信、 複製 ·移動、 および再生許諾の各セッションにお いて、 セッション鍵 K s i x, K s 2 Xを発生するセッション鍵発生部 226と、 セッション鍵発生部 226の出力したセッション鍵 K s 1 Xを認証部 220によ つて得られる端末装置 10の再生回路 150のクラス公開鍵 KP c p yあるいは 他のデータ記憶装置 (HD 21とする) のクラス公開鍵 KP c myによって暗号
化してバス B S 3に送出する暗号処理部 222と、 バス B S 3よりセッション鍵 K s 2 Xによって暗号化されたデータを受けてセッション鍵発生部 226より得 たセッション鍵 Ks 1 Xまたは Ks 2 Xによって復号する復号処理部 228とを 含む。
HD 20は、 さらに、 バス B S 3上のデータをクラス公開鍵 KP cm 1と対を なすクラス秘密鍵 Kcmlによって復号するための復号処理部 230と、 ライセ ンス L I Cを HD 20から HD 21へ移動または複製するために出力する際に、 提供先の HD 21から受信した個別公開鍵 KP omz (z≠2) によりライセン ス L I Cを暗号化する暗号処理部 232とを含む。
HD 20は、 さらに、 暗号化コンテンツデータ E (Kc, D c) を再生するた めのライセンス L I Cと、 HD 20が処理しているセッションの処理記録である ログとをバス B S 3より受けて記憶するセキュアデータ記憶部 250を含む。 そ して、 ライセンス L I Cは、 セキュアデータ記憶部 250内のライセンス領域に 格納され、 ログは、 セキュアデータ記憶部 250内のログメモリに格納される。 セキュアデータ記憶部 250は、 たとえば半導体メモリによって構成される。 図 7は、 セキュアデータ記憶部 250におけるメモリ構成を示した図である。 図 7を参照して、 セキュアデータ記憶部 250は、 ライセンス領域 251と、 有効フラグ領域 252と、 ログメモリ 253とを含む。
ライセンス領域 251は、 L個 (Lは自然数) の領域 251 1〜251 から 成り、 それぞれ 1つのライセンス (コンテンツ鍵 Kc、 制御情報 AC、 ライセン ス I D (L I D) 、 データ I D (D I D) ) を格納する。
領域 25 1 1〜251 Lに格納された複数のライセンスの各々は、 ァドレス (以下、 LBA : L o g i c a l B l o c k Ad d r e s sと称する。 ) に よって管理される。 そして、 各セッションにおいて記憶あるいは読出されるライ センス L I Cは、 全て LBAにより特定される。
領域 25 1 1〜251 Lに対応して ma x LB A+ 1〜m a x LBA+Lの L BAが付与されているものとする。 たとえば、 領域 2513に格納されたライセ ンス L I Cは、 LBA: ma X LBA+ 3によって特定される。 このとき、 LB A: 0〜! na x LBAは、 ノーマルデータ記憶領域 270に割当てられるものと
する。 詳細は後述する。
なお、 ライセンス領域 25 1には、 ノーマルデータ記憶領域 270に割当てら れた LBA (0〜ma x LBA) に続く値、 すなわち、 ma x LBA+ l〜ma し8 +1^がし8 として割当てられると説明したが、 ライセンス領域 25 1 に割当てる LBAを限定するものではない。 ライセンス領域 251に割当てた L 個の LB Aによって、 それぞれが領域 251 1〜251 Lのいずれか 1つを指定 できる値であればいかなる値であってもよく、 ノーマルデータ記憶領域 270に 割当てた LBAと重複する値、 あるいは、 独立した値を LBAとして割当てても よい。
また、 有効フラグ領域 252は、 セキュアデータ記憶部 250上の記憶位置を 特定する LB Aそれぞれに対応して設けられ、 対応する LB Aによって特定され る位置に記憶されるライセンスの有効性を示すフラグを記憶する。
有効フラグ領域 252は、 領域 2521〜252 Lから成り、 領域 2521〜 252 Lは、 それぞれ、 対応する領域 251 1〜251 Lに格納されたライセン ス L I Cの" 有効" 、 または" 無効" を格納する。
有効フラグ領域 252のフラグが" 有効" であるとき、 フラグに対応する LB Aによって特定されるセキュアデータ記憶部 250上の記憶位置に記憶されてい るライセンス L I Cは利用可能であり、 ユーザはそのライセンス L I C内のコン テンッ鍵 Kcを再生許諾によって読出して、 対応する暗号化コンテンツデータを 復号し、 コンテンツデータを再生したり、 そのライセンス L I Cを他のデータ記 憶装置に移動 ·複製することができる。
一方、 有効フラグ領域 252のフラグが" 無効" であるとき、 そのフラグに対 応する LB Aによって特定されるセキュアデータ記憶部 250上の記憶位置に記 憶されているライセンス L I Cは利用不可であり、 HD 20のコントローラ 2 1 4によって、 その LBAからのライセンス L I Cは拒否される。 すなわち、 消去 されたのと同じ状態である。 したがって、 ユーザはそのライセンス L I Cに対応 したコンテンツデータを再生することはできない。 この有効フラグ領域 252の フラグは、 ライセンスの新たな記憶によって" 有効" とされ、 ライセンスの移動 によって" 無効" とされる。
ログメモリ 253は、 ライセンスを HD 20に入出力する場合の履歴情報 (以 下では 「ログ」 と呼ぶ。 ) を 1つ格納する N (Nは自然数) 個の領域 253 1〜 253 Nからなるリングメモリである。 領域 2531〜253 Nは、 それぞれ、 バンク 0〜N— 1と称される領域を特定する名称が付与されている。 したがって、 バンク n (nは Nの剰余系) とは、 ログメモリ上の領域 253 (n— 1) を示す。 ログメモリ 253は、 複数のログをリング状に格納する。 すなわち、 ログメモ リ 253は、 バンク 0によって特定される領域 2531からログの格納を開始し、 バンク N— 1によって特定される領域 253Nにログを格納すると、 再びバンク 0によって特定される領域 253 1に戻り、 ログを格納する。
ノ ンク 0〜N— 1、 すなわち、 ログメモリ 253の領域 253 1~253 Nの 各々に格納されるログは、 管理番号領域 2541と、 ライセンス I D (L I D) 領域 2542と、 3 2 領域2543と、 S T 1領域 2544と、 ST 2領域 2545と、 KP c m y領域 2546と、 LB A領域 2547とを含む。
管理番号領域 2541は、 ログをバンク 0〜N_ 1の各々に格納する際に、 口 グの格納の順序を示す管理番号を格納する。 そして、 管理番号は、 M (M>N、 Mは自然数) の剰余系をなして、 昇順に付与される。 この管理番号を格納するこ とによって、 最新のログを格納した、 あるいは、 最も古いログを格納したバンク を検索することができるようになる。 すなわち、 最初に管理番号 1のログがバン ク 0に格納されるとすると、 そのログの管理番号領域 2541は、 管理番号" 1" を格納する。 そして、 ライセンスの入出力に伴い、 新たなログを格納するご とに、 バンク 2から順に使用し、 そのログの管理番号領域 2541に、 新たな口 グを格納するバンクの直前のバンクに格納される最新の口グの管理番号領域 25 41に格納される管理番号に 1づっ増加した管理番号を格納する。 したがって、 各バンク 0〜N— 1、 すなわち、 領域 2531〜253 Nに格納されたログの管 理番号領域 2541から管理番号を読み出せば、 管理番号に基づいてそのログが 新しいか古いかを判断できる。 この判断は、 次のようにして行なう。 すなわち、 連続する 2つのバンク n, n+ 1 (nは Nの剰余系) が保持する管理番号が不連 続である場合、 バンク nには最新のログが、 バンク n+ 1には最も古いログが保 持されている。 さらに、 詳細な説明は、 後述する。
以降では、 特に断らない限り、 管理番号に関する表記および演算は全て Mの剰 余系においてログメモリ 253の領域 2531〜253 Nを指定するバンクの番 号に関する表記および演算は全て Nの剰余系における表記および演算を示してい る。
ライセンス I D領域 2542は、 セッションの対象となるライセンス L I Cを 特定するライセンス I D (L I D) を格納する。 K s 2 X領域 2543は、 セッ シヨンにおいてライセンス L I Cの受信側のデータ記憶装置によって生成された' セッション鍵 K s 2 Xを格納する。
ST 1領域 2544は、 動作中のセッションにおける処理の状態を示すステー タス ST 1を格納する。 ST 2領域 2545は、 ライセンス I D領域 2542に 格納されるライセンス I Dに対応したライセンスの記憶状態を示すステータス S T 2を格納する。
KP cmx領域 2546は、 ライセンスを移動 ·複製によって出力する場合、 送信側のデータ記憶装置において受信側のデータ記憶装置のクラス公開鍵 KP c mxを格納する。 LBA領域 2547は、 各セッションにおいてライセンス L I Cを読出あるいは記憶するために指示された L B Aを格納する。
一連のセッションの処理が進行するにつれて、 上記各領域のデータが更新ある いは参照されていく。 ステータス ST 1は、 " 受信待" 、 " 受信済" 、 " 送信待 " および" 送信済" の 4状態のいずれかであり、 ステータス ST 2は、 " データ 有" 、 " データ無" および" 移動済" の 3状態のいずれかである。
そして、 セッション中に予期しない異常が発生し、 セッションが中断した場合、 そのセッションにおいて送受信されていたライセンス L I Cに対して、 ログメモ リ 253内のライセンス I D領域 25.41に格納されているライセンス I Dと、 LBA領域 2547に格納された LB Aとによって当該ライセンス L I Cの記憶 状態が確認され、 その確認結果に応じてステータス ST 2が更新される。 また、 中断したセッションにおけるライセンスの送信側では、 ライセンスの受信側の口 グメモリ 253内に格納されているライセンス L I C、 セッション鍵 K s 2 x、 ステータス ST 1およびステータス ST 2を受取って、 自.身が記録するログの内 容と受取ったライセンス L I C、 セッション鍵 Ks 2 x、 ステータス ST 1およ
びステータス ST 2とを確認することにより、 再度のライセンスの送信を行なつ てもよいか否かの判断がされる。
なお、 セッション鍵 Ks 2 xは、 各セッションを特定するために記憶され、 セ ッシヨン鍵 Ks 2 Xを共有していることは、 ライセンスの送受信先おょぴその処 理を共有していたことを示している。
また、 ステータス ST 2には、 出力ログが出力される際に、 ログメモリ 253 に格納されているライセンス I D (L I D) と LBAとによってセキュアデータ 記憶部 250における対象のライセンスの記憶状態が格納され、 これによつて出 力ログが成立する。
詳細については、 後ほど各セッション毎のフローチャートを使用して説明する。 再び図 6を参照して、 HD 20のデータ記録部に関して説明する。 HD 20は、 さらに、 暗号ィ匕コンテンツデータを記憶するノーマルデータ記憶部 270を含む。 ノ一マルデータ記憶部 270は、 データが記憶される円盤状の磁気記録媒体 27 01と、 磁気記録媒体 2701を回転させるモータ 2702と、 モータ 2702 を制御するサーポ制御部 2703と、 磁気記録媒体 2701上における磁気へッ ' ドの位置を制御するシーク制御部 2704と、 磁気へッドへデータの記録および 再生を指示する記録再生処理部 2705とを含む。
HD 20は、 さらに、 ATAインターフェース部 21 2を介して外部との間で データ授受、 制御情報 ACに基づくライセンスの出力に関する判断、 およびセキ ユアデータ記憶部 250の管理などの HD 20内の動作を制御するためのコント ローラ 214を含む。
なお、 ノーマルデータ記憶部 270、 AT Aインターフェース部 21 2および 端子 210を除く他の構成は、 耐タンパモジュール領域に構成される。
図 8を参照して、 ノ一マルデータ記憶部 270の構成は、 一般の公知のハード ディスクの構成と変わるところはなく、 データ記憶部 2700を含む。 データ記 憶部 2700は、 領域 2800〜280A (A = m a x LBA、 ma x LB Aは 自然数) の各々は、 喑号ィ匕コンテンツデータおよび暗号化コンテンツデータの付 属データ、 ライセンステーブル等を格納する。 そして、 領域2800〜280 に対応して LB A: 0〜ma x LB Aが付与されており、 各領域 2800〜28
OAは、 LBA: 0〜! na x LBAによって指定され、 暗号化コンテンツデータ 等のデータは、 指定された 領域 2800〜28 OAに入出力される。
なお、 ライセンステーブルは、 暗号化コンテンツデータとライセンス 関係を 示す情報テーブルであり、 ライセンステーブルを参照することで、 暗号化コンテ ンッデータに対応するライセンスと、 そのライセンスが記憶されている LB Aを 特定することができる。 したがって、 ライセンステーブルは、 暗号化コンテンツ データの記憶、 削除時、 あるいはライセンスの記憶、 移動、 削除時にその内容が 変更される。
したがって、 HD 20は、 LBA: 0〜ma x L B Aによって指定できるノー マルデータ記憶部 270と、 それに続く LBA: ma X LBA+ l〜ma X LB A+Lによって指定できるセキュアデータ記憶部 250、 より具体的には、 ライ センスメモリ 251に対してデータあるいはライセンスの入出力が行なうことが できる。
また、 ノーマルデータ記憶領域 270およびライセンス領域 251に対する L B Aの値については、 本実施の形態に限るものではない。
なお、 セキュアデータ記憶部 250は、 通常のアクセスコマンドでは ATAィ ンタフェース部 212を介して、 直接、 外部からアクセスできない等の手段を設 けることで耐タンパ性を確保した、 耐タンパ構造を備えている。
また、 HD 20のセキュアデータ記憶部 250は、 全て半導体メモリによって 構成されるものとして説明したが、 耐タンパ性を確保した上で、 セキュアデータ 記憶部 250の一部あるいはその全てを、 磁気記録媒体2701上に記憶する構 成としてもよい。
以下、 図 1に示すデータ配信システムにおける各セッションの動作について説 明する。
[配信]
まず、 図 1に示すデータ配信システムにおいて、 ライセンス提供装置 40から 端末装置 10に装着された HD 20へライセンスを配信する動作について説明す る。
図 9および図 10は、 図 1に示すデータ配信システムにおいて、 端末装置 10
のユーザが端末装置 1 0から暗号化コンテンツデータのライセンス配信のリクェ ストを行なうことにより、 ライセンスがライセンス提供装置 40から端末装置 1 0に装着された HD 20へ向けて送信され、 HD 20に記憶される際の処理 (配 信セッション) を説明するための第 1および第 2のフローチヤ一トである。 図 9における処理開始以前に、 端末装置 1 0のユーザは、 端末装置 1 0をモデ ム 1 06によりネットワーク 30に接続し、 端末装置 1◦をネットワーク 30を 介してライセンス提供装置 40に接続していることを前提としている。
図 9を参照して、 端末装置 1 0のユーザから所望のコンテンツデータのライセ ンスに対する配信リクエストがなされると、 端末装置 1 0のコントローラ 1 0 8 は、 バス B S 2および HDィンターフェース部 1 1 0を介して HD 20へクラス 証明書の出力要求を出力する (ステップ S I) 。 HD 20のコントローラ 2 1 4 は、 端子 2 1 0および AT Aインターフェース部 2 1 2を介してクラス証明書の 出力要求を受理すると (ステップ S 2) 、 バス B S 3を介して認証データ保持部 202からクラス証明書 Cm 1 =KP cml / / I cm 1//E (K a, H (K P cml // I cm l) ) を読出し、 クラス証明書 Cmlを AT Aインタ一フエ ース部 2 1 2および端子 2 1 0を介して端末装置 1 0へ出力する (ステップ S 3) 。
端末装置 1 0のコントローラ 1 08は、 HD 20から HDインターフェース部 1 1 0およびバス B S 2を介してクラス証明書 Cmlを受理すると (ステップ S 4) 、 受理したクラス証明書 Cmlをモデム 1 06およびネットワーク 30を介 してライセンス提供装置 40へ送信する (ステップ S 5) 。
ライセンス提供装置 40では、 端末装置 1 0からクラス証明書 Cmlを受信す ると (ステップ S 6) 、 受信した Cmlが正当なクラス証明書であるか否かを認 証する (ステップ S 7) 。 認証処理は次のように行なわれる。
ライセンス提供装置 40は、 クラス証明書 Cml =KP cml /Zl cmlノ
/E (K a , H (KP cml //I cml) ) を受理すると、 HD 20から出力 されたクラス証明書 Cmlに含まれる署名データ E (Ka , H (KP cml// I cml) ) を認証部 4 1 8において認証鍵 KP aで復号し、 ハッシュ値 H (K P m 1 // I cml) を抽出する。 そして、 さらに、 認証部 4 1 8は、 クラス証
明書 Cmlに含まれる KP cml //I c m 1のハッシュ値を演算し、 クラス証 明書 Cmlから抽出したハッシュ値と演算したハッシュ値とを比較する。 配信制 御部 4 1 2は、 認証部 4 1 8における復号処理結果から、 上記の復号ができ、 力、 つ、 2つのハッシュ値の値が一致したと判断すると、 HD 20から受理したクラ ス証明書 Cmlは、 正当な証明書であると判断する。
ステップ S 7において、 クラス証明書 Cm lが正当な証明書であると判断され た場合、 配信制御部 4 1 8は、 クラス公開鍵 K P cmlを受理する (ステップ S 8) 。 そして、 次の処理 (ステップ S 9) へ移行する。 正当なクラス証明書でな い場合には、 クラス証明書 Cmlを受理しないでエラー通知を端末装置 1 0へ出 力し (図 1 0のステップ S 44) 、 端末装置 1 0においてエラー通知が受理され ると (図 1 0のステップ S 4 5) 、 配信セッションが終了する。
ステップ S 8においてクラス公開鍵 KP cmlが受理されると、 配信制御部 4 1 2は、 ライセンス I D (L I D) を生成し (ステップ S 9) 、 さらに制御情報 ACを生成する (ステップ S 1 0) 。 そして、 セッション鍵発生部 4 1 4は、 配 信のためのセッション鍵 K s 1 aを生成する (ステップ S 1 1) 。 セッション鍵 K s 1 aは、 認証部 4 1 8によって得られた HD 20に対応するクラス公開鍵 K P cmlによって、 暗号処理部 420によって暗号化され、 暗号データ E (K P cml, K s 1 a) が生成される (ステップ S 1 2) 。
そして、 配信制御部 4 1 2は、 ライセンス I D (L I D) および暗号化された セッション鏈 K s 1 aを 1つのデータ列 L I Ό//Ε (KP c m 1 , K s 1 a ) として、 バス B S 1および通信装置 4 50を介して端末装置 1 0へ向けて出力す る (ステップ S 1 3) 。
端末装置 1 0は、 ネットワーク 30を介して L I D/ZE (KP cml , K s 1 a) を受信すると (ステップ S 1 4) 、 受信した L I D//E (KP cm l , K s 1 a) を I-ID 20へ出力する (ステップ S 1 5) 。 そして、 HD 20のコン トローラ 2 14は、 端子 2 1◦および AT Aインターフェース部 21 2を介して L I D//E (KP cml, K s 1 a) を受理する (ステップ S 16) 。 コント ローラ 2 1 4は、 バス B S 3を介して受理した E (KP cml, K s 1 a) を復 号処理部 2 30へ与え、 復号処理部 2 30は、 K c m保持部 204に保持される
HD 20に固有なクラス秘密鍵 K cm 1によって復号処理することにより、 セッ ション鍵 K s 1 aを復号し、 セッション鍵 K s 1 aを受理する (ステップ S 1 7) 。
HD 20のコントローラ 214は、 ライセンス提供装置 40で生成されたセッ シヨン鍵 K s 1 aの受理を確認すると、 AT Aインターフェース部 21 2および 端子 210を介してその旨を端末装置 10に通知する。 端末装置 10のコント口 ーラ 108は、 HDインターフェース部 1 10およびバス B S 2を介して、 HD 20においてセッション鍵 Ks 1 aが受理された旨の通知を受理すると、 HD 2 0にセッション鍵の生成の要求通知をバス B S 2および HDィンターフェース部 1 10を介して HD 20へ出力する (ステップ S 18) 。 HD 20のコントロー ラ 214は、 端子 210および ATAコントローラ 21 2を介してセッション鍵 の生成要求通知を受理すると、 セッション鍵発生部 226に対してセ、夕ション鍵 の生成を指示する。 そして、 セッション鍵発生部 226は、 セッション鍵 Ks 2 aを生成する (ステップ S 19) 。
そして、 コントローラ 214は、 セキュアデータ記憶部 250のログメモリ 2
53から最も古いをログが格納されているバンクを検索し、 その検索したバンク η (0≤η≤Ν-1) の管理番号領域 2541、 ライセンス I D領域 2542、 K s 2 a領域 2543、 ST 1領域 2544に対して、 それぞれ、 新たな管理番 号、 ステップ S 16で受理したライセンス I D、 ステップ S 19において生成さ れたセッション鍵 Ks 2 a、 および" 受信待" を格納する (ステップ S 20) 。 したがって、 バンク nに格納されるログは最も新しいログとなる。 このとき、 口 グを構成する他の領域については、 その内容を初期化、 たとえば、 全て" 0" と してもよいし、 そのままの状態であってもよい。
ここで、 図 1 1を参照して、 ステップ S 20の詳細な動作について説明する。 図 1 1は、 ステップ S 20の詳細な動作を示すフローチャートである。 、 コント ローラ 2 14は、 ステップ S 1 9の後、 ログメモリ 253のうち、 最新のログが 記録されているログ領域に対応するバンク n— 1を特定し、 そのバンク n— 1に よつて指定される口グ領域に格納された履歴情報に含まれる管理番号 mを取得す る (ステップ S 20 a) 。
図 12を参照して、 ステップ S 20 aの詳細な動作について説明する。 図 1 2 は、 ステップ S 20のさらに詳細なフローチャートである。 コントローラ 214 は、 ステップ S 19の後、 変数 nに対して領域 2532を示すバンク 1のバンク 番号 1を設定し (ステップ S 20 c) 、 バンク 0に格納されている管理番号を取 得して、 変数 mに代入する (ステップ S 20 d) 。 そして、 コントローラ 214 は、 ログメモリ 253のバンク 11に格納されている管理番号を取得して、 変数 m aに代入する (ステップ S 20 e) 、 m a—mを演算して演算結果が" 1" であ るか否かを判定する (ステップ S 20 f ) 。 演算結果が" 1" であるとき、 コン トローラ 214は、 変数 nに、 1を加えた n+ 1を代入し (ステップ S 20 g) 、 変数 maに代入されている管理番号を変数 mに代入する (ステップ S 2 O h) 。 その後、 ステップ S 20 e〜S 20 hが繰返し行なわれる。
ステップ S 20 f において、 コントローラ 214は、 演算結果が" 1" でない とき、 バンク n_l力 最新のログが記録されている領域であると判断し、 最新 の管理番号 mの取得を終了し、 図 1 1に示すステップ S 20 bへ移行する。 この とき、 最も古いログはバンク nに格納されている。
ステップ S 20 f において、 演算結果が" 1" であると判定された場合に、 ス テツプ S 20 g, S 20 h, S 20 e , S 20 f 力 順次、 行なわれるのは、 演 算結果が" 1" である場合、 変数 mと変数 maとに代入された管理番号 mと管理 番号 maとが連続した番号であり、 バンク n_ 1とバンク nとに、 前後してログ が格納されたことを示している。 つまり、 ログメモリ 253の領域はバンク番号 順に巡回的に使用され、 かつ、 管理番号も Mの剰余系において巡回的に使用され るのであるから連続して格納された場合、 連続するバンクに格納された管理番号 の差は" 1" となるからである。 したがって、 バンク n—lには、 最新のログが 格納されていないことが判る。 なお、 バンク nについては不明である。 そして、 判断する領域を 1つ進めて、 バンク nに格納されているログについて判定する。 すなわち、 バンク nに格納されているログの管理と、 次の領域であるバンク n + 1に格納されているログの管理番号に基づいて判定する。 フローチャートでは、 ステップ S 20 gにおいて、 nには n+ 1が代入されることで次の領域に対する 判定となる。
このように、 ステップ S 20 f , S 20 g, S 20 h, S 20 eのループを繰 返し行なうことによってバンク 0から順にバンク N— 1まで連続した領域に格納 された管理番号が連続しているか否かが判定される。 なお、 バンク N— 1と比較 されるのはバンク◦の番号である、 上述したように、 バンクの番号に対する演算 は Nの剰余系においてなされる。 すなわち、 バンク N— 1の判定においては、 n — 1=N_ 1、 n = 0である。
ステップ S 20 f において、 演算結果が" 1" でない場合に、 バンク n— 1に 格納されたログを最新のログと判定するのは、 この場合、 バンク n— 1およびバ ンク nに格納される 2つのログの管理番号が不連続であるからである。 すなわち、 上述したように、 前後してログの管理番号は連続する。 逆に連続しない管理番号 を含む口グは連続しないこととなる。
また、 図 1 2に従ってバンク n— 1を特定するためには、 HD 20の出荷時に おけるログメモリ 253の初期化によってログメモリ 253の全ての領域 253 1〜253Nに、 すなわち、 バンク 0〜バンク N— 1に対して、 所定の管理番号 を含むログを格納しておく必要がある。 管理番号として全てのバンクに対して同 じ値、 あるいは、 連続するバンクに連続する値 (一ヶ所不連続となる) を持つ口 グを格納しておく。 なお、 ログの他の領域については、 いずれの値であってもよ い。
再び、 図 1 1を参照して、 上述した方法によって最新の履歴情報 (ログ) が記 録されているバンク n_ 1と、 バンク n_ 1に格納された管理番号 mとを取得し た後、 コントローラ 214は、 ノ ンク nに、 管理番号 m+ 1、 ステップ S 16で 受理したライセンス I D、 ステップ S 19で受理したセッション鍵 K s 2 aを格 納し、 ST 1領域 2545のステータス ST 1を" 受信待" に設定する (ステツ プ S 20 b) 。 これにより、 図 9に示すステップ S 20の動作が終了し、 ステツ プ S 21へ移行する。 .
再び、 図 9を参照して、 ステップ S 20の後、 暗号処理部 224は、 切换スィ ツチ 260の接点 P bを介して復号処理部 230より与えられるセッション鍵 K s 1 aによって、 切換スィッチ 262の接点 P dと P f とを順に切換えることに よって与えられるセッション鍵 K s 2 aと個別公開鍵 KP om2とからなる 1つ
のデータ列を暗号化し、 E (K s l a, K s 2 a//KP o m 2 ) 生成する (ス テツプ S 21) 。 そして、 暗号処理部 224は、 E (Ks l a, K s 2 a/ZK P om2) をバス B S 3に出力する。 バス B S 3に出力された暗号化データ E (Ks l a, s 2 a//KP om2) は、 コントローラ 214により受理され、 コントローラ 214は、 受理した暗号化データとライセンス I D (L I D) とを 1つのデータ列としたデータ L I D//E (Ks l a, K s 2 a// P o m 2) を AT Aインターフェース部 212および端子 210を介して端末装置 10 へ出力する (ステップ S 22) 。
そして、 端末装置 10は、 データ L I D//E (K s l a, K s 2 a//KP om2) を HD 20から受理すると (ステップ S 23) 、 受理したデータをネッ トワーク 30を介してライセンス提供装置 40に出力する (ステップ S 24) 。 ライセンス提供装置 40は、 データ L I DZ/E (K s l a, K s 2 a//K P om 2) を受信すると (ステップ S 25) 、 復号処理部 422においてセッシ ヨン鍵 Ks 1 aによる復号処理を実行し、 HD 20で生成されたセッション鍵 K s 2 a、 および HD 20の個別公開鍵 KP om2を受理する (ステップ S 26) 。 配信制御部 412は、 ライセンス I D (L I D) に対応するデータ I D (D I D) およびコンテンツ鍵 Kcをコンテンツ DB 402から取得し (ステップ S 2 7) 、 ライセンス I D (L I D) および制御情報 ACと併せた 1つのデータ列と してのライセンス L I C = K c//AC//D I D//L I Dを生成する。
配信制御部 412は、 生成したライセンス L I Cを暗号処理部 424に与える。 喑号処理部 424は、 復号処理部 422によって得られた I- ID 20の個別公開鍵 KP om2によってライセンス L I Cを暗号化して暗号化データ E (KP o m 2 , L I C) を生成する (ステップ S 28) 。 そして、 暗号処理部 426は、 暗号処 理部 424から受ける暗号化データ E (KP om2, L I C) を、 復号処理部 4 22から受けるセッション鍵 K s 2 aによって暗号化し、 暗号化データ E (K s 2 a, E (KPom2, L I C) ) を生成する (ステップ S 29) 。
図 10を参照して、 配信制御部 41 2は、 バス B S 1および通信装置 450を 介して暗号化データ E (K s 2 a , E (KP o m 2 , L I C) ) を端末装置 10 へ向けて出力する (ステップ S 30) 。 端末装置 10は、 ネッ トワーク 30を介
して暗号化データ E (K s 2 a, E (KP om2, L I C) ) を受理すると (ス テツプ S 3 1) 、 受理した暗号化データを HD 2 0へ出力する (ステップ S 3 2) 。
HD 20のコントローラ 2 1 4は、 端子 2 1 0および AT Aインターフェース 部 2 1 2を介して暗号化データ E (K s 2 a , E (KP om2, L I C) ) を受 理すると (ステップ S 3 3) 、 バス B S 3へ出力する。 復号処理部 2 28は、 セ ッシヨン鍵発生部 2 26から与えられたセッション鍵 K s 2 aを用いてバス B S 3に出力されたデータ E (K s 2 a, E (KP om2, L I C) ) を復号し、 H D 20において、 ライセンス L I Cが個別公開鍵 KP om 2により暗号化された 暗号化ライセンス E (KP om2, L I C) が受理される (ステップ S 34) 。 そして、 復号処理部 2 28は、 暗号化ライセンス E (KP om2, L I C) をバ ス B S 3へ出力する。
コントローラ 2 14の指示によって、 暗号化ライセンス E (KP om2, L I C) は、 復号処理部 2 1 6において個別秘密鍵 Kom2によって復号され、 ライ センス L I Cが受理される (ステップ S 3 5) 。
HD 20のコントローラ 2 14は、 ライセンス L I Cの受理を確認すると、 A T Aインターフェース部 2 1 2および端子 2 1 0を介してその旨を端末装置 1 0 に通知する。 端末装置 1 0のコントローラ 1 08は、 HDインターフェース部 1 1 0およびバス B S 2を介して、 HD 20においてライセンス L I Cが受理され た旨の通知を受理すると、 HD 20のセキュアデータ記憶部 2 50において、 そ の受信したライセンス L I Cを格納する LBA ( 「格納 LBA」 と呼ぶ。 ) をバ ス B S 2および HDインターフェース 1 1 0を介して HD 20へ出力する (ステ ップ S 3 6) 。 HD 20のコントローラ 2 1 4は、 端子 2 1 0および AT Aイン ターフェース部 2 1 2を介してライセンス L I Cの格納 LB Aを受理すると (ス テツプ S 3 7) 、 その受理した格納 LBAをログメモリ 2 5 3のバンク nに格納 されたログの LB A領域 2 547に記憶する (ステップ S 3 8) 。
そして、 コントローラ 2 14は、 受理したライセンス L I Cに含まれるライセ ンス I D (L I D) と、 ステップ S 1 6において受理したライセンス L I D (L I D) とを比較し、 一致しているか否かをチェックする (ステップ S 3 9) 。 コ
ントローラ 214は、 L I Dがー致しており、 受理したライセンス L I Cが正し いものであると判断すると、 端末装置 10から受理したセキュアデータ記憶部 2 50内の LBAに、 受理したライセンス L I Cを記憶する (ステップ S40) 。 コントローラ 214は、 指定された LB Aにライセンス L I Cを記憶すると、 有効フラグ領域 252のその L B Aに対応するフラグを" 有効" にする (ステッ プ S41) 。 そして、 コントローラ 214は、 さらに、 ログメモリ 253のバン ク nに格納されたログの S T 1領域 2544のステータス S T 1を" 受信済" に 変更し (ステップ S 42) 、 配信セッションにおける一連の処理が終了したこと を端末装置 10に通知する。
そして、 端末装置 10において、 HD 20から処理終了通知が受理されると、 データ配信システムにおける配信セッションが正常終了する。
一方、 ステップ S 39において、 コントローラ 214は、 L I Dがー致せず、 受理したライセンス L I Cが正しくないと判断すると、 エラー通知を端末装置 1 0へ出力し (ステップ S 43) 、 端末装置 10は、 エラー通知を受理すると (ス テツプ S 45) 、 処理を終了する。
図 9および図 10に示された配信処理においては、 ライセンス提供装置 40に おけるログの記録に関する記載がなされていないが、 図 4に示すように、 ライセ ンス提供装置 40には、 十分な記憶容量を持つログ DB 404が備えられており、 配信セッションにおける各ステップにおけるログがログ DB 404に記憶される。 また、 ログ DB 404には、 ライセンスの送信に伴なう課金情報なども記憶され る。
図 9および図 10に示された配信処理における一連の処理において、 ステップ S 25からステップ S 44の処理中に異常が発生して処理が中断したときは、 再 書込処理の対象となる。 たとえば、 中断の理由として、 上記処理中に端末装置 1 0の電源が遮断されたり、 ライセンス提供装置 40側の異常、 あるいは端末装置 10とライセンス提供装置 40との通信異常など、 種々の異常ケースが考えられ る。 ここで、 HD 20内のログメモリ 253に格納されたステータス ST 2を除 く出力ログの内容がすべて格納されたステップ S 22終了後からステップ S 44 までの処理中に処理が中断した場合には、 HD 20は、 再書込処理を行なってラ
ィセンスの提供を受けることが可能である。 ここでは、 端末装置 10の判断によ つて再書込処理を行なうものとしたため、 端末装置 10において処理の進行が確 認できるステップ S 22からステップ S 24を除く、 ステップ S 25からステツ プ S 44の処理中に処理が中断した場合を再書込処理の対象とし、 他のステップ における処理の中断においてはライセンス提供装置 40からライセンスの提供が なされなかったものと判断し、 図 9および図 10に示したフローチャートに従つ て、 最初から処理を行なうこととした。
同様に、 ライセンス提供装置 40がライセンスを出力するまでのライセンス提 供装置 40内のステップ S 25からステップ S 30までの処理については、 端末 装置 10において、 これらのいずれのステップを処理中に処理が中断したかを特 定できる場合には、 再書込処理の対象から除外して、 図 9および図 10に示した フローチャートにしたがって、 最初から処理を行なうものとしてもよい。
[配信における再書込]
図 1 3〜図 15は、 図 9および図 10において示した配信処理におけるステツ プ S 25からステップ S 44の処理中に異常が発生したときに行なわれる再書込 処理の第 1から第 3のフローチャートであり、 図 16は、 図 13のステップ S 1 1 2 aの詳細な動作を説明するためのフローチャートである。
図 1 3を参照して、 端末装置 10は、 ステップ S 25からステップ S 44の処 理中に異常が発生したと判断すると、 ライセンス L I Cの L I D//再書込要求 をネットワーク 30を介してライセンス提供装置 40へ出力する (ステップ S 1 01) 。 配信制御部 412は、 通信装置 450およびバス B S 1を介して L I D Z/再書込要求を受理すると (ステップ S 102) 、 セッション鍵発生部 414 にセッション鍵を生成するように指示する。 指示を受けたセッション鍵発生部 4 14は、 再書込処理のためのセッションキー鍵 K s 1 bを生成する (ステップ S 103) 。 そして、 配信制御部 412は、 このセッションにおいて HD 20とや り取りしたログが格納されているログ DB 402から HD 20に対応するクラス 公開鍵 KP cm 1を取得し (ステップ S 104) 、 暗号処理部 420に与える。 クラス公開鏈 KP cmlを受けた暗号処理部 420は、 クラス公開鏈 KP c m 1 をによりセッション鍵 K s 1 bを暗号化し、 E (KP cml, K s 1 b) が生成
される (ステップ S 105) 。 そして、 配信制御部 412は、 L I D//E (K P cml, K s l b) をバス B S 1および通信装置 450を介して端末装置 10 へ向けて出力する (ステップ S 106) 。
端末装置 10は、 ネットワーク 30を介して L I D//E (KP cml, K s l b) を受理すると (ステップ S 107) 、 受理した L I D/ZE (KP cml, Ks l b) を HD 20へ出力する (ステップ S 108) 。 そして、 HD 20のコ ントローラ 214は、 端子 210および ATAィンターフェース部 212を介し てし I D//E (KP cml, s l b) を受理する (ステップ S 109) 。 コ ントローラ 214は、 受理した E (KP cml, Ks l b) をバス B S 3を介し て復号処理部 230へ与え、 復号処理部 230は、 K c m保持部 204に保持さ れる HD 20に固有なクラス秘密鍵 Kc mlによって復号処理することにより、 セッション鍵 K s 1 bを復号し、 セッション鍵 K s 1 bが受理される (ステップ S 1 10) 。
HD 20のコントローラ 214は、 ライセンス提供装置 40で生成されたセッ シヨン鍵 K s 1 bの受理を確認すると、 ATAインターフェース部 21 2および 端子 210を介してその旨を端末装置 1◦に通知する。 端末装置 10のコント口 ーラ 108は、 HDインターフェース部 1 10およびバス B S 2を介して、 HD 20においてセッション鍵 K s 1 bが受理された旨の通知を受理すると、 ログの 出力要求をバス B S 2および HDインターフェース部 1 10を介して HD 20へ 出力する (ステップ S 111) 。
HD 20のコントローラ 214は、 端子 210および AT Aコントローラ 21 2を介してログの出力要求通知を受理し (ステップ S 1 12) 、 ログの複製処理 を行なう (ステップ S 112 a) 。
ここで、 図 16を参照して、 ステップ S 1 12 aの詳細な動作について説明す る。 コントローラ 214は、 ログメモリ 253のうち、 最新のログが格納された バンク n_ 1の特定と、 バンク n— 1に格納されているログの管理番号 mとを取 得する (ステップ S 1 12 b) 。 このステップ S 1 1 2 bの詳細な動作は、 図 1 1および図 12に示すフローチャートに従って行なわれる。
ステップ S 1 1 2 bの後、 コントローラ 214は、 変数 k (kは自然数、 1≤
k≤N) に" 1" を、 変数 ERRに" 偽,, を代入し (ステップ S 1 12 c) 、 ノ ンク n— kに格納されたログのライセンス I D (L I D) 力 ステップ S 109 で受理したライセンス I D (L I D) に一致するか否かを判定する。 すなわち、 コントローラ 214は、 ステップ S 1 1 2 bで検出した最新のログに格納された ライセンス I D (L I D) 力 ステップ S 109で受理したライセンス I D (L I D) に一致するか否かを判定する。
2つのライセンス I D (L I D) が不一致である場合、 コントローラ 214は、 kが N (バンクの総数) よりも小さいか否かを判定し (ステップ S 1 1 2 e) 、 kが N以上であるとき、 全てのバンクに対して確認が終了し、 つまり、 受理した ライセンス I D (L I D) に一致する L I Dを記録したログが格納されていない ことが確認され、 ステップ S I 1 2 hへ進み、 変数 ERRに" 真" を代入する (ステップ S 1 1 2 h) 。 そして、 図 13のステップ S 1 1 3 aに戻り、 変数 E RRを確認する。
再び、 図 1 3を参照して、 コントローラ 214は、 変数 ERRを確認する (ス テツプ S 1 1 3 a) 。 図 16のステップ S 1 12 hから移行した場合、 変数 ER Rは" 真" であり、 該当するライセンス I Dを記録するログが、 ログメモリ 25 3に格納されていなかったことを示しているので処理を継続することはできない。 したがって、 図 15に示すステップ S 160へ移行し、 エラー通知を端末装置 1 0へ出力する (ステップ S 160) 。 そして、 端末装置 10は、 エラー通知を受 理し (ステップ S 161) 、 書込拒否により一連の動作が終了する。
図 16を参照して、 ステップ S 1 1 2 eにおいて、 コントローラ 214は、 k は Nよりも小さいと判定すると、 全てのバンクに対する確認が終了していないの で、 今、 確認したログより、 1つ古いログを確認するために、 変数 kに k— 1を 代入する (ステップ S 1 12 f ) 、 ステップ S 1 12 dへ移行する。 そして、 .コ ントローラ 214は、 バンク n_kに格納されたライセンス I D (L I D) が、 ステップ S 109で受理したライセンス I D (L I D) と一致するか否かを判定 する。 この場合、 変数 kの値は" 2" であるので、 コントローラ 214は、 バン ク n_ 2に格納されたログのライセンス I D (L I D) 力 ステップ S 109で 受理したライセンス I D (L I D) に一致するか否かを判定する。 そして、 2つ
のライセンス I D (L I D) が不一致である場合、 ステップ S 1 1 2 e, S 1 1 2 f , S 1 12 dが行なわれる。
このように、 コントローラ 214は、 最新のログから、 より古いログが格納さ れるバンクへ向けて、 各バンクに格納されたライセンス I D (L I D) 力 ステ ップ S 109で受理したライセンス I D (L I D) と一致するか否かを判定する。 そして、 この動作 (ステップ S 1 1 2 e, S 1 12 f , S 1 1 2 d) は、 ステツ プ S 109で受理したライセンス I D (L I D) に一致するライセンス I D (L I D) が検出されるまで、 あるいは、 全てのバンクの確認が終了するまで繰返し 行なわれる。 なお、 バンク番号は Nの剰余系であるので、 ライセンス I Dの確認 は、 バンク n— 1 (k= 1) , n— 2 (k = 2) , · . · , 1 (k = n- l) ,
0 (k = n) , N- 1 (k = n + 1 ) , · · ·, n (k=N) の順に確認される。 ステップ S 112 dにおいて、 2つのライセンス I D (L I D) がー致したと き、 コントローラ 214は、 バンク n_kに格納されたログを取得し、 その取得 したログの管理番号 mを m+ 1に変更した後、 そのログをバンク 11に格納する (ステップ S 112 g) 。 つまり、 コントローラ 214は、 ライセンス提供装置
40から送信されたライセンス I D (L I D) に一致するライセンス I D (L I D) を含むログがログメモリ 253に格納されている場合、 そのログ (複数有る 場合は、 より新しいログ) を、 最も古いログが格納されたバンク nに複製する。 この場合、 管理番号のみは複製されず、 複製したログが新しいログとして扱われ るよう先のバンク n— 1に格納されたログの管理番号に 1を加えた値を記録する。 したがって、 最も古いログは削除され、 そこに、 現在、 進行中の再書込処理に対 する新たな口グが格納される。
その後、 図 13に示すステップ S 1 13 aへ移行する。
再ぴ、 図 13を参照して、 コントローラ 214は、 変数 ERRを格納する (ス テツプ S 1 33 a) 。 図 16に示すステップ S 1 1 2 gから移行した場合、 変数 ERRは" 偽" であり、 該当するライセンス I Dを記録したログがバンク nに複 製されるので処理の継続が可能であると判断され、 ステップ S 1 13へ移行して、 ログメモリ 253のバンク nに格納された格納 LBAに記憶されるライセンス L
1 Cのライセンス I D (L I D) と、 ログメモリ 253に格納されたライセンス
I D (L ID) とが一致するか否かをチェックする (ステップ S 1 13) 。
コントローラ 214は、 両ライセンス I D (L I D) がー致すると判断すると、 配信処理としては、 ライセンス提供装置 40からのライセンス L I Cの受理まで は行なわれ、 HD 20においてライセンス L I Cは受理していると認識する。 そ うすると、 コントローラ 214は、 ログメモリ 253のバンク nに格納された格 納 L B Aにより指定された領域に記憶されるライセンスに対応する有効フラグ領 域 252に格納されているフラグをチェックして、 そのライセンスの有効性をチ エックする (ステップ S 1 14) 。
コントローラ 214は、 ライセンスが有効であると判断すると、 ログメモリ 2 53のバンク nに格納されたログのステータス ST 2を" データ有" に変更し、 次の処理 (ステップ S 1 18) へ移行する。 一方、 コントローラ 214は、 ステ ップ S 114においてライセンスが無効であると判断すると、 ログメモリ 253 のバンク nに格納されたログのステータス ST 2を" 移動済" に変更し、 次の処 理 (ステップ S 1 18) へ移行する。
ステップ 1 1 3において、 コントローラ 2 14は、 比較したライセンス I D
(L I D) がー致しないと判断したときは、 ログメモリ 253のバンク nに格納 されたログのステータス ST 2を" データ無" に変更する (ステップ S 1 17) 。 ステータス S T 2の変更処理がなされると、 コントローラ 214は、 ログメモ リ 253のバンク nからライセンス I D (L I D) 、 ステータス S T 1 , ST 2 およびセッション鍵 K s 2 cを取得する (ステップ S 1 18) 。 ここで、 この処 理は図 9および図 10のフローチャートに従って配信セッションの中断に対する 処理であるためログメモリ 253のバンク nに格納されているセッション鍵は K s 2 aである力 説明の関係上、 ログメモリ 253のバンク nから取得したセッ ション鍵を K s 2 cとしている。 そして、 コントローラ 214は、 取得したセッ ション鍵 K s 2 cをバス B S 3を介して喑号処理部 224へ出力する。
暗号処理部 224は、 切換スィツチ 260の接点 P bを介して復号処理部 23 0より与えられるセッション鍵 Ks 1 bによって、 バス B S 3から取得したセッ ション鍵 K s 2 cを暗号化し、 E (K s l b, K s 2 c) 生成する (ステップ S 1 1 9 ) 。 そして、 暗号処理部 224は、 生成した E (K s 1 b , K s 2 c) を
バス B S 3に出力する。 バス B S 3に出力された E (K s l b, K s 2 c) は、 コントローラ 214により受理され、 コントローラ 214は、 ステップ S 1 1 8 において取得したデータとともに 1つのデータ列 L I DZZE (Ks l b, K s 2 c) //ST 1 //ST 2を生成し、 ハッシュ関数を用いてハッシュ値 H (L I D//E (K s l b, K s 2 c) //ST 1//S T 2) を生成する (ステツ プ S 1 20) 。 そして、 コントローラ 2 14は、 ハッシュ値 H (L I D//E (Ks l b, K s 2 c) //ST 1//ST 2) をバス BS 3を介して暗号処理 部 224へ出力する。
暗号処理部 224は、 切換スィツチ 260の接点 P bを介して復号処理部 23 0より与えられるセッション鍵 Ks 1 bによって、 バス B S 3から取得したハツ シュ値 H (L I D//E (Ks l b, K s 2 c) //ST 1//ST 2) を暗号 ィ匕し、 E (K s l b, H (L I D//E (K s l b, K s 2 c) //ST 1// ST2) ) 生成する (ステップ S I 21) 。 そして、 暗号処理部 224は、 生成 した E (Ks l b, H (L I D//E (Ks l b, K s 2 c) //ST 1 // S T2) ) をバス B S 3に出力する。 ここで、 データ列 L I DZZE, (K s 1 b, K s 2 c) //S T 1/ZS T 2を受信ログと称し、 E (Ks l b, H (L I D //E (Ks l b, K s 2 c) //ST lZ/ST 2) ) は、 受信ログに対して セッション鍵 K s 1 bを用いて電子署名を行なった署名データである。 また、 口 グメモリ 253に格納されていたセッション鍵 K s 2 cをセッション鍵 K s 1 b を用いて暗号化するのは、 セッション鍵 K s 2 cの漏洩によるライ: ンスの流出 の危険性を排除するためである。
コントローラ 214は、 バス B S 3から署名データを受理すると、 ステップ S 1 18において取得した受信ログを用いて、 署名付き受信ログ L I DZZE (K s i b, K s 2 c) //ST 1//ST 2//E (Ks l b, H (L I D//E (Ks l b, K s 2 c) // S T 1 // S T 2 ) ) を生成し、 AT Aインターフ ユース部 21 2および端子 210を介して端末装置 10へ出力する (ステップ S 122)
端末装置 10は、 署名付き受信ログ L I D//E (Ks l b, K s 2 c ) // ST 1//ST 2//E (Ks l b, H (L I D//E (Ks l b, K s 2 c)
//ST 1//ST 2) ) を HD 20から受理すると (ステップ S .1 23) 、 受 理したデータをネットワーク 30を介してライセンス提供装置 40へ出力する (ステップ S 1 24) 。 そして、 ライセンス提供装置 40は、 ネットワーク 30 を介して署名付き受信ログ L I D//E (Ks 1 b, Ks 2 c) //ST 1// ST 2//E (K s l b, I- I (L I D//E (K s l b, K s 2 c) //ST 1 //ST 2) ) を受信する。 (ステップ S 1 25)
図 14を参照して、 ライセンス提供装置 40は、 受信した署名付き受信ログ L I D//E (K s 1 b , K s 2 c ) //ST 1//ST 2//E (K s l b, H (L I D//E (K s l b, K s 2 c) //ST I // T 2) ) の検証を行な う (ステップ S 1 26) 。 検証処理は次のように行なわれる。
配信制御部 412は、 署名付き受信ログを受理すると、 まず、 受理した署名付 き受信ログの後半部である署名データ E (K s 1 b, H (L I D//E ( s 1 b, K s 2 c) //ST 1//ST 2) ) を復号処理部 422へ出力するととも に、 セッション鍵発生部 414にセッション鍵 K s 1 bを発生するように指示す る。 そして、 復号処理部 422は、 セッション鍵 K s 1 bによって署名データ E (K s l b , H (L I D//E (K s l b , K s 2 c ) // S T 1 / / S T 2) ) を復号し、 HD 20にて演算したハッシュ値を抽出する。 一方、 配信制御 部 41 2は、 署名付き受信ログの前半部である受信ログ L I D//E (Ks 1 b, K s 2 c) //ST 1//ST 2のハッシュ値を演算し、 復号処理部 422によ り復号された HD 20で演算されたハッシュ値と比較する。 配信制御部 41 2は、 2つのハッシュ値が一致したと判断すると、 HD 20から受理したデータ列は、 正当なデータを含むものとしてライセンス提供装置 40において承認される。 ステップ S 1 26において HD 20から受理した署名付き受信ログが承認され ると、 配信制御部 41 2は、 受理したライセンス I D (L I D) に基づいてログ DB 404を検索する (ステップ S 127) 。 配信制御部 41 2は、 受理したラ ィセンス I D (L I D) がログ DB 404内に格納されており、 HD 20に対し て確かに提供を行なったライセンスであると判断すると、 受理したステータス S T 1 , ST 2の内容を確認する (ステップ S 128) 。
配信制御部 412は、 ステータス ST 1力 ' 受信待" であり、 ステータス ST
2が" データ無" であるとき、 HD 20に送信したはずのライセンス L I Cが何 らかの異常により HD 20において受理されていないと判断し、 受信したデータ 列に含まれる暗号化データ E (K s l b, K s 2 c) を復号処理部 422へ出力 してセッション鍵 K s 1 bによってセッション鍵 K s 2 cを復号する。 そして、 復号されたセッション鍵 K s 2 cは、 バス B S 1を介して配信制御部 41 2へ出 力され、 配信制御部 412においてセッション鍵 K s 2 cが受理される (ステツ プ S 1 29) 。
そして、 配信制御部 412は、 異常発生時のセッション鍵 K s 2 aを今回受理 したセッション鍵 K s 2 cと比較チェックする (ステップ S 1 30) 。 配信制御 部 41 2は、 セッション鍵 K s 2 aとセッション鍵 K s 2 cとが一致していると 判断すると、 ライセンス L I Cの再書込に対する許可通知を端末装置 10へ出力 する (ステップ S 1 33) 。
一方、 ステップ S 126において HD 20から受理したデータ列が承認されな かったとき、 ステップ S 1 27において HD 20から受理したライセンス I D (L I D) がログ DB 404内に格納されておらず、 HD 20に対して提供を行 なったライセンスであると判断できないとき、 ステップ S 128において、 HD 20においてライセンス L I Cが受理されたものと判断されたとき、 またはステ ップ S 130において、 セッション鍵 K s 2 aがセッション鍵 K s 2 cと一致し ないと判断されたときは、 配信制御部 412は、 ライセンスの再送信は不可と判 断し、 バス B S 1および通信装置 450を介してエラー通知を端末装置 10へ向 けて出力し (ステップ S 131) 、 端末装置 10は、 ネットワーク 30を介して エラー通知を受理すると (ステップ S 1 32) 、 処理が終了する。 すなわち、 ラ ィセンス提供装置 40において、 ライセンスの再書込が拒否されて処理が終了す る。
端末装置 10のコントローラ 108は、 ステップ S 133においてライセンス 提供装置 40が出力した許可通知を受理すると (ステップ S 1 34) 、 HD 20 に対するセッション鍵の生成の要求通知をバス B S 2および HDインターフエ一 ス部 1 10を介して HD20へ出力する (ステップ S 135) 。
HD 20は、 ライセンス提供装置 40からの再書込処理許可通知に基づいて、
端末装置 1 0からセッション鍵の生成要求通知を受理すると、 新たにセッシヨン 鍵 K s 2 bを生成し (ステップ S 1 3 6 ) 、 ログメモリ 2 5 3のバンク nのログ に記録されているセッション鍵 K s 2 c (= K s 2 a ) を、 生成したセッション 鍵 K s 2 bに、 ログのステータス S T 1を" 受信待" に変更する (ステップ S 1 3 7 )
以下、 ステップ S 1 3 8からの一連の処理は、 図 9および図 1 0において説明 したステップ S 2 1から処理終了までの一連の処理において、 セッション K s 2 aに代えて新たに生成してセッション鍵 K s 2 bが使用される他は、 同様の処理 が行なわれる。 したがって、 ステップ S 1 3 8からの一連の処理の説明は繰返し になるので省略する。
なお、 図 1 3〜図 1 5のフローチャートに示されるライセンスの配信における 再書込処理中の中断に対しては、 ステップ S 1 0 1 ~ S 1 3 1、 ステップ S 1 3 3およびステップ S 1 4 2〜S 1 6 0のいずれかのステップにおいて処理が中断 した場合には、 再び図 1 3〜図 1 5のフローチャートに従って再書込処理を行な うことができる。 一方、 ステップ S 1 3 4〜S 1 4 1のいずれかのステップにお いて処理が中断した場合には、 図 9および図 1 0のフローチャートに示されるラ ィセンスの配信処理を最初から行なうことによって、 処理を再開することができ る。
このようにして、 端末装置 1 0に装着された HD 2 0が正規のクラス証明書 C m lを保持する機器であることを確認したうえで、 クラス証明書 C m 1に含まれ て送信されたクラス公開鍵 K P c m 1によってライセンス提供装置 4 0および H D 2 0でそれぞれ生成される暗号鍵 (セッション鍵) をやり取りし、 お互いが受 領した暗号鍵を用いた暗号化を実行して、 その暗号化データを相手方に送信する ことによって、 それぞれの暗号化データの送受信においても享実上の相互認証を 行なうことができる。 これによつて、 不正なハードディスクへのライセンスの配 信を禁止することができ、 データ配信システムのセキュリティを向上させること ができる。
さらに、 ライセンスの配信処理が中断しても、 受信側のデータ記憶装置である H D 2 0における署名付き受信ログをライセンス提供装置 4 0へ送信することで、
ライセンスの重複配信を行なうことなく、 ライセンスの再送処理を安全に行なう ことができる。
[複製 ·移動]
図 1 7は、 ライセンスの複製 .移動が行なわれるシステムの構成を概念的に示 した概略図である。 図 17を参照して、 端末装置 10にデータ記憶装置として 2 台の HD 20, 21が装着可能であり、 端末装置 10を介して HD 20から HD 21へライセンスの複製または移動が行なわれる。
ここで、 HD 21は、 HD 20と異なるデータ記憶装置であるため、 HD 20 とは異なる個別公開鍵 KP om 5と個別秘密鍵 Kom 5とを保持している。 この 場合、 HD 21における識別子 zは、 HD 20の z = 2とは異なる z = 5となる。 また、 HD21のクラスは、 HD 20のクラスと同じ y = 1として以下説明する。 すなわち、 HD 20、 HD21とも、 クラス証明書 Cm 1 =KP c ml// I c ml /E (K a , KP c m 1 / / I c m 1 ) およびクラス秘密鍵 K c m 1を保 持する。 しかしながら、 HD 2 1のクラスが HD 20のクラスと異なる (y≠ 1) 場合には、 クラス証明書およびクラス秘密鍵も、 個別公開鍵および個別秘密 鍵と同様に、 HD 20とは異なったものとなる。
図 18および図 1 9は、 図 1 7に示すライセンスの複製 '移動が可能なシステ ムにおいて、 端末装置 10のユーザが端末装置 10から暗号化コンテンツデータ のライセンスの複製または移動のリクエストを行なうことにより、 端末装置 10 を介して端末装置 10に装着された HD 20から HD 21へライセンスの複製ま たは移動が行なわれる際の処理 (複製 .移動セッション) を説明するための第 1 および第 2のフローチャートである。
図 18を参照して、 端末装置 10のユーザから所望のコンテンツデータのライ センスに対する複製または移動の要求が発せられると、 端末装置 10のコント口 ーラ 108は、 バス B S 2および HDインターフェース部 1 10を介して HD 2 1へクラス証明書の出力要求を出力する (ステップ S 201) 。 HD 21におい ては、 端子 210および AT Aインターフェース部 212を介してクラス証明書 の出力要求が受理されると (ステップ S 202) 、 コントローラ 214は、 認証 データ保持部 202からクラス証明書 Cm 1 =KP c m 1 // I cml //E
(Ka , H (KP c m 1 // I cml) ) を読出し、 クラス証明書 Cm 1を AT Aインターフェース部 21 2および端子 210を介して端末装置 10へ出力する (ステップ S 203) 。
端末装置 10は、 HD 21からクラス証明書 Cmlを受理すると (ステップ S 204) 、 受理したクラス証明書 Cmlを HD 20へ送信する (ステップ S 20 5) 。
HD 20では、 端末装置 10から HD 21のクラス証明書 Cm 1を受理すると (ステップ S 206) 、 認証部 220およびコントローラ 214によって受理し た HD 21のクラス証明書 Cm 1が正当なクラス証,書であるか否かを認証する (ステップ S 207) 。 認証処理は、 ライセンス提供装置 40における認証処理
(図 9のステップ S 7) と同一であるため詳細な説明は省略する。
ステップ S 207において、 コントローラ 214は、 正当な HD 21のクラス 証明書でないと判定した場合には、 HD 21のクラス証明書 Cm 1を非承認とし て受理せず、 エラー通知を端末装置 10へ出力する (図 1 9のステップ S 25 2) 。 そして、 端末装置 10においてエラー通知が受理されると (図 15のステ ップ S 253) 、 配信セッションが終了する。
ステップ S 207において、 HD 21のクラス証明書 Cmlが正当な証明書で あると判断されると、 HD 20のコントローラ 214は、 HD 21のクラス証明 書 Cm 1を承認し、 セッション鍵 K s 1 aを生成するようにセッション鍵発生部 226を制御し、 セッション鍵発生部 226は、 セッション鍵 K s 1 aを生成す る (ステップ S 209) 。
セッション鍵 K s 1 aは、 認証部 220によって得られた HD 21のクラス公 開鍵 KP cmlによって、 暗号処理部 222において暗号化され、 暗号化データ E (KP cml, K s 1 a) が生成される (ステップ S 210) 。
そして、 コントローラ 214は、 暗号化データ E (KP cml, Ks l a) を、
ATAインターフェース部 212および端子 210を介して端末装置 10へ出力 する (ステップ S 21 1) 。
端末装置 10は、 暗号化データ E (KP cml, Ks l a) を受理すると (ス テツプ S 212) 、 受理した暗号化データ E (KP cml, Ks l a) を HD 2
1へ出力する (ステップ S 213) 。 ここで、 ライセンス I D (L I D) は、 事 前に管理ファイルを参照することで端末装置 10が取得している。 管理ファイル は、 HD 20に記憶されている暗号化コンテンツデータとライセンスとの関係を 管理するための管理データを記録したデータファイルであって、 ノーマルデータ 記憶部 270に記憶され、 暗号化コンテンツデータの記録消去や、 ライセンスの 書込、 移動および消去によってその内容が更新される。
そして、 HD 21においては、 コントローラ 214力 端子 210および AT Aインターフェース部 212を介して L I D/ZE (KP cml, K s l a) を 受理する (ステップ S 214) 。 続いて、 コントローラ 214は、 バス B S 3を 介して E (KP cml, Ks l a) を復号処理部 230へ与え、 復号処理部 23 0は、 K cm保持部 204に保持される HD 21に固有なクラス秘密鍵 K c m 1 によって復号処理することにより、 セッション鍵 K s 1 aを復号し、 セッション 鍵 K s 1 aを受理する (ステップ S 215) 。
HD 21のコントローラ 214は、 HD 20で生成されたセッション鍵 K s 1 aの受理を確認すると、 ATAインターフェース部 212および端子 210を介 してその旨を端末装置 10に通知する。 端末装置 10は、 HD21においてセッ シヨン鍵 Ks 1 aが受理された旨の通知を受理すると、 セッション鍵の生成の要 求通知を HD 21へ出力する (ステップ S 216) 。 HD 21のコントローラ 2 14は、 端子 210および ATAコントローラ 21 2を介してセッション鍵の生 成要求通知を受理すると、 セッション鍵発生部 226に対してセッション鍵の生 成を指示する。 そして、 セッション鍵発生部 226は、 セッション鍵 K s 2 aを 生成する (ステップ S 217) 。
セッション鍵発生部 226は、 セッション鍵 K s 2 aを生成すると、 バス B S 3を介してコントローラ 214へ出力し、 コントローラ 214は、 セッション鍵 K s 2 aを受ける。 そして、 コントローラ 214は、 最も古いログを格納したバ ンクを検索し、 そこに処理中のセッションに対するログを新たに格納する (ステ ップ S 218) 。 ステップ S 218の詳細な動作は、 図 1 1およぴ図 12に示す フローチャートに従って行なわれる。 ただし、 HD 21における処理と、 HD 2
0における同様の処理結果を区別するために最も古いログを格納したバンクは、
バンク n aであるとする。 すなわち、 図 1.1および図 12に示すフローチャート における変数 nを変数]! aと読替えればよい。
したがって、 ログメモリ 253のバンク n aに、 バンク n a— 1に格納される ログの管理番号に 1を加えた新しい管理番号と、 ステップ S 214において受理 したライセンス I D (L I D) とセッション鍵 K s 2 aとを格納し、 ステータス ST 1を" 受信待" にする。
続いて、 HD 21においては、 続いて、 暗号処理部 224は、 切換スィッチ 2 60の接点 P bを介して復号処理部 230より与えられるセッション鍵 K s 1 a によって、 切換スィツチ 262の接点 P dと P f とを順に切換えることによって 与えられるセッション鍵 K s 2 aと個別公開鍵 KP om5と力 らなる 1つのデー タ列を暗号化し、 E (K s 1 a , K s 2 a//KP om5) を生成する (ステツ プ S 21 9) 。 そして、 暗号処理部 224は、 E (K s 1 a , K s 2 a//KP om5) をバス B S 3に出力する。 バス B S 3に出力された暗号化データ E (K s i a, K s 2 a//KP o m 5 ) は、 コントローラ 214により受理され、 コ ントローラ 214は、 受理した暗号化データとライセンス I D (L I D) とを 1 つのデータ列としたデータ L I D//E (K s 1 a , K s 2 a//KP o m 5 ) を AT Aインターフェース部 212および端子 210を介して端末装置 10へ出 力する (ステップ S 220) 。
そして、 端末装置 10は、 データ L I D//E (K s 1 a , K s 2 a //K Ρ om5) を HD 21から受理すると (ステップ S 221) 、 受理したデータを H D 20へ出力する (ステップ S 222) 。
HD 20 は、 端子 210および ATAインタフェース部 1 10を介してデー タ L I D//E (K s 1 a , K s 2 a//KP o m 5 ) を受理すると (ステップ S 223) 、 復号処理部 228においてセッション鍵 K s 1 aによる復号処理を 実行し、 HD 21で生成されたセッション鍵 K s 2 a、 および HD 21の個別公 開鍵 KP om5を抽出して受理する (ステップ S 224) 。 そして、 復号処理部 228は、 復号したセッション鍵 Ks 2 aをバス BS 3を介してコントローラ 2 14へ出力し、 コントローラ 214は、 セッション鍵 K s 2 aを受ける。 そして、 コントローラ 214は、 最も古いログを格納したバンクに、 処理中のセッション
に対するログを新たに格納する (ステップ S 225) 。 ステップ S 225の詳細 な動作は、 図 20に示すフローチャートに従って行なわれる。 図 20を参照して、 ステップ S 225は、 ログメモリ 253の最新ログが記録されたバンク n— 1を 特定し、 かつ、 バンク n— 1に格納された管理番号 mを取得するステップ S 22 5 aと、 バンク ηに、 管理番号 m+ 1、 ライセンス I D (L I D) 、 セッション 鍵 K s 2 a、 およびクラス公開鍵 KP c myを格納し、 かつ、 ステータス領域を "送信待" に設定するステップ S 225 bと力 ら成る。 そして、 ステップ S 22 5 aの詳細な動作は、 図 12に示すフローチャートに従って行なわれる。 したが つて、 コントローラ 214は、 図 20および図 12に示すフローチャートに従つ て、 ステップ S 223において受理したライセンス I D (L I D) とステップ S 224で受理したセッション鍵 K s 2 aとをバンク nに格納し、 ステータス S T 1を "送信待" にする。
HD20では、 ステップ S 225の処理を終えると、 HD20のコントローラ 214は、 その旨を ATAインターフェース部 21 2および端子 210を介して 端末装置 10に通知する。 端末装置 10のコントローラ 108は、 HDインター フェース部 1 10およびバス B S 2を介して、 HD20からの通知を受理すると、 HD 20のセキュアデータ記憶部 250において、 HD 20から HD 21へ送信 するライセンス L I Cが格納されている LB A (格納 LBA) をバス B S 2およ び HDインターフェース 1 10を介して HD 20へ出力する (ステップ S 22 6) 。 HD 20のコントローラ 2 14は、 端子 210および AT Aインターフエ —ス部 2 1 2を介して送信対象のライセンス L I Cの格納 LB Aを受理すると (ステップ S 227) 、 その受理した格納 LB Aをセキュアデータ記憶部 250 のログメモリ 253のバンク nに記憶する (ステップ S 228) 。
そして、 コントローラ 214は、 受理した格納 LBAに格納されるライセンス L I Cに対応する有効フラグ領域 252のフラグが "有効" であるか "無効" で あるかを確認する (ステップ S 229) 。 コントローラ 214は、 有効フラグが "有効" であると、 格納 LB Aに格納されているライセンス L I Cを取得する (ステップ S 230) 。
図 1 9を参照して、 HD20では、 コントローラ 214が、 対象のライセンス
L I Cを取得すると、 ライセンス L I Cに含まれるライセンス I D (L I D) と、 ステップ S 223において受理し、 ログメモリ 253のバンク n aに格納されて いるログに記憶されているライセンス I D (L I D) とを比較し、 一致している か否かをチェックする (ステップ S 23 1) 。 コントローラ 214は、 一致して いると判断すると、 取得したライセンス L I Cに含まれる制御情報 ACを確認し て利用制限がかけられていないかをチェックする (ステップ S 232) 。
コントローラ 214は、 制御情報 ACにおいてライセンス L I Cの利用が禁止 されていないことを確認すると、 取得したライセンス L I Cを暗号処理部 232 に与える。 暗号処理部 232は、 復号処理部 228によって得られた HD 21の 個別公開鍵 KP om5によってライセンス L I Cを暗号化して暗号化データ E (KP om5, L I C) を生成する (ステップ S 233) 。 そして、 暗号処理部 232は、 暗号化データ E (KP om5, L I C) を切替スィッチ P cを介して 喑号処理部 224へ出力し、 暗号処理部 224は、 暗号処理部 232から受けた 暗号化データを復号処理部 228から受けたセッション鍵 K s 2 aによって暗号 化し、 暗号化データ E (K s 2 a , E (KP om 5 , L I C) ) を生成する (ス テツプ S 234) 。
続いて、 コントローラ 214は、 対象のライセンス L I Cに含まれる制御情報 ACに基づいて、 HD 20から HD 21へのライセンス L I Cの送信が 「移動」 であるか 「複製」 であるかを確認する (ステップ S 235) 。 コントローラ 21 4は、 「移動」 であると確認したときは、 その対象のライセンス L I Cに対応す る、 すなわち、 格納 LBAに対応する有効フラグ領域 252のフラグを "無効" に変更する (ステップ S 236) 。 一方、 コントローラ 214は、 「複製」 であ ると確認したときには、 当該ライセンス L I Cが HD 20に残っていてもよいの で、 有効フラグ領域 252のフラグの変更は行なわずに次の処理 (ステップ S 2 37) へ移行する。
コントローラ 214は、 有効フラグ領域 252の処理が終わると、 ログメモリ 253のバンク nに格納されているログのステータス ST 1を "送信済" に変更 し (ステップ S 237) 、 ATAインターフェース部 21 2および端子 210を 介して暗号化データ E (K s 2 a , E (KP om5, L I C) ) を端末装置 10
へ送信する (ステップ S 238) 。
一方、 ステップ S 229において受理した格納 LB Aに対応する有効フラグ領 域 252のフラグが "無効" であったとき、 ステップ S 23 1においてライセン ス I D (L I D) がー致しないとき、 または、 ステップ S 232において、 取得 したライセンス L I Cに含まれる制御情報 ACにより当該ライセンス L I Cの利 用が禁止されているときは、 コントローラ 214は、 端末装置 10に対してエラ 一通知を出力し (ステップ S 252) 、 端末装置 10においてエラー通知が受理 されると (ステップ S 253) 、 処理が終了する。
端末装置 10は、 ステップ S 238において HD 20から出力された暗号化デ ータ E (K s 2 a , E (KP om5, L I C) ) を受理すると (ステップ S 23 9) 、 受理した暗号化データを HD 21へ出力する (ステップ S 240) 。
HD 21では、 コントローラ 214が、 端子 210および AT Aインターフエ ース部 21 2を介して暗号化データ E (K s 2 a, E (KP om5, L I C) ) を受理し (ステップ S 241) 、 バス B S 3へ出力する。 復号処理部 228は、 セッション鍵発生部 226から与えられたセッション鍵 K s 2 aを用いてバス B S 3に出力されたデータ E (K s 2 a , E (KP om5, L I C) ) を復号し、 HD 21において、 ライセンス L I Cが個別公開鍵 KP om 5により暗号化され た暗号化ライセンス E (KP om5, L I C) が受理される (ステップ S 24 2) 。 そして、 復号処理部 228は、 暗号化ライセンス E (KP om5, L I C) をバス B S 3へ出力する。
コントローラ 214の指示によって、 暗号化ライセンス E (KP om5, L I C) は、 復号処理部 216において個別秘密鍵 Kom 5によって復号され、 HD 21においてライセンス L I Cが受理される (ステップ S 243) 。
コントローラ 214は、 ライセンス L I Cの受理を確認すると、 ATAインタ 一フェース部 212および端子 210を介してその旨を端末装置 10に通知する。 端末装置 10のコントローラ 108は、 HDインターフェース部 1 10およぴバ ス B S 2を介して、 HD 21においてライセンス L I Cが受理された旨の通知を 受理すると、 HD 21のセキュアデータ記憶部 250において、 その受信したラ ィセンス L I Cを格納する LBA (格納 LBA) をバス B S 2および HDインタ
一フェース 1 10を介して HD 21へ出力する (ステップ S 244) 。 HD 21 のコントローラ 214は、 端子 210および AT Aィンターフェース部 212を 介してライセンス L I Cを格納する格納 LB Aを受理すると (ステップ S 24 5) 、 その受理した格納 LBAをログメモリ 253のバンク nに格納されるログ の LBA領域 2544に記録する (ステップ S 246) 。
そして、 コントローラ 214は、 受理したライセンス L I Cに含まれるライセ ンス I D (L I D) と、 ステップ S 214において受理したライセンス L I D (L I D) とを比較し、 一致しているか否かをチェックする (ステップ S 24 7) 。 コントローラ 214は、 L I Dがー致しており、 受理したライセンス L I Cが正しいものであると判断すると、 端末装置 10から受理したセキュアデータ 記憶部 250内の格納 LB Aに対応する領域に、 受理したライセンス L I Cを記 憶する (ステップ S 248) 。
コントローラ 214は、 指定された格納 LB Aにライセンス L I Cを記憶する と、 有効フラグ領域 252のその格納 LBAに対応するフラグを "有効" にする (ステップ S 249) 。 そして、 コントローラ 214は、 さらに、 ログメモリ 2
53のバンク nに格納されたログのステータス ST 1を "受信済" にし (ステツ プ S 250) 、 複製 '移動セッションにおける一連の処理が終了したことを AT Aインターフェース部 212および端子 210を介して端末装置 10に通知する。 そして、 端末装置 10において、 HD 21からの処理終了通知が受理されると、 HD 20から HD 21へのライセンス L I Cの複製 ·移動セッションが正常終了 する。
一方、 ステップ S 247において、 HD 20のコントローラ 214力 L I D がー致しておらず、 受理したライセンス L I Cが正しくないと判断すると、 AT Aインターフェース部 2 12および端子 210を介してエラー通知を端末装置 1 0へ出力し (ステップ S 251) 、 端末装置 10においてエラー通知が受理され ると (ステップ S 25 3) 、 HD 20から HD 2 1へのライセンス L I Cの複 製 ·移動セッションが異常終了する。
ここで、 配信セッションのときと同様に、 図 1 8および図 1 9に示された複 製 ·移動セッションにおける一連の処理において、 ステップ S 227からステツ
プ S 2 5 2の処理中に異常が発生し、 処理が中断したときは、 再書込処理の対象 となる。
ここで、 図 1 8および図 1 9に示された複製 '移動セッションにおいて、 ステ ップ S 2 2 7力 らステップ S 2 3 5までの処理を再書込処理の対象としたのは、 この一連の処理が HD 2 0の内部処理であり、 ステップ S 2 2 6の終了後は、 ス テツプ S 2 3 8まで端末装置 1 0においていずれのステップを処理中に処理が中 断したかを特定できないため、 すべてステップ S 2 3 6が実行されてライセンス が無効化されたものとし、 必ず再書込処理の対象としたものである。
そして、 ステップ S 2 3 6からステップ S 2 4 7までの処理を再書込処理の対 象としたのは、 「移動」 の場合、 この間は、 HD 2 0内のライセンスがステップ S 2 3 6において無効化され、 かつ、 HD 2 1内に有効なライセンスが格納され ていない状態であって、 この間に処理が中断すると、 対象となるライセンスが消 失してしまうからである。
また、 ステップ S 2 4 8からステップ S 2 5 0までの処理を再書込処理の対象 としたのは、 ステップ S 2 4 9, S 2 5 0については、 とれらの処理はステップ S 2 4 8におけるライセンス書込後の処理であるから本来は処理が終了している ところ、 端末装置 1 0からはステップ S 2 4 8の終了が特定できないため、 ステ ップ S 2 4 8が終了していないものとみなして、 ステップ S 2 4 8からステップ S 2 5 0を再書込処理の対象としたものである。 なお、 ステップ S 2 4 8が終了 していて再書込処理が行なわれた場合には、 再書込は拒否される。
また、 ステップ S 2 5 1の処理を再書込処理の対象としたのは、 本来、 この処 理で処理が中断するのはかなり特殊な場合に限られるものであるが、 端末装置 1 0においては、 ステップ S 2 5 1において処理が中断したことを特定することが できないため、 再書込処理の対象としたものである。
なお、 端末装置 1 0において、 上述したように当該セッションがライセンスの
「複製」 であると判断できる場合、 あるいはステップ S 2 2 7からステップ S 2 3 5およびステップ S 2 4 9からステップ S 2 5 1のいずれかのステップで処理 が中断したかを特定できる場合においては、 必ずしも再書込処理とする必要はな く、 図 1 8および図 1 9に示された複製 ·移動セッションを再度実行すればよい。
[移動/複製における再書込]
図 21〜図 23は、 図 18および図 19において示した複製 ·移動セッション の処理フローにおけるステップ S 227からステップ S 252の処理中に異常が 発生したときに行なわれる再書込処理の第 1から第 3のフローチャートである。 図 21を参照して、 端末装置 10は、 ステップ S 227力、らステップ S 252 の処理中に異常が発生したと判断すると、 ライセンス I D (L I D) とライセン ス L I Cの再送要求とをデータ列 L I DZZ再送要求として HD 20へ出力する (ステップ S 301) 。 HD 20では、 コントローラ 214力 端子 210およ び ATAインターフェース部 212を介して L I DZ/再送要求を受理する (ス テツプ S 301 a) 。 そして、 ログの複製処理を行なう (301 b) 。 複製処理 では、 ログメモリ 253内にステップ S 301 aにおいて受理した L I Dを含む ログが格納されていないかを検索し、 格納されていた場合、 ログメモリ 253の 最も古いログを格納しているバンク nに、 検索された L I Dを含むログを複製し、 変数 ERR= "偽" とする。 一方、 ログメモリ 253内にステップ S 301 aに おいて受理した L I Dを含むログが格納されていない場合には、 変数 ERR = "真" とする。 この複製処理の詳細な動作は、 図 1 6に示すフローチャートに従 つて行なわれる。
そして、 コントローラ 214は、 ステップ S 301 aの処理結果の判定、 すな わち、 変数 ERRが "真" 、 "偽" のいずれであるかを判定する (ステップ S 3 01 b) 。 "真" の場合、 受理した L I Dを含むログがバンク nへ複製されたこ とを示すので、 再送要求に対する処理を開始するために次のステップ S 302へ 移行する。 "偽" の場合、 受理した L I Dを含む口グがログメモリ 253に格納 されていなかった、 つまり、 HD 20において受理した L I Dによって特定され るライセンス L I Cの入出力処理がなされていなかつたことを示すので、 再送要 求に対応不能と判断し、 図 23のステップ S 372へ移行し、 エラー通知を端末 装置 10に対して出力する。 端末装置 10においてはエラー通知が受理されると (ステップ S 373) 、 処理が終了する。
HD 20において、 ステップ S 301 bにおいて変数 ERR = " 偽" を確認す ると、 コントローラ 214は、 ログメモリ 253のバンク nに複製され、 かつ、
格納されているログのステータス S T 1の状態を確認する (ステップ S 302) 。 コントローラ 214は、 ステータス ST 1力 S "送信待" または "送信済" でない とき、 すなわち複製■移動セッションにおいてライセンス L I Cの送信側でない ときは、 図 23に示すステップ S 371へ処理が移行する。
HD 20のコントローラ 214は、 ステータス S Τ 1が "送信待" または "送 信済" であるときは、 セッション鍵発生部 226にセッション鍵を生成するよう に指示し、 セッション鍵発生部 226は、 セッション鍵 K s 1 aを生成する (ス テツプ S 303) 。 セッション鍵 Ks 1 bが生成されると、 コントローラ 214 は、 中断以前に受理した、 ライセンス L I Cの移動/複製先の HD 21のクラス 公開鍵 KP cmlを、 ログメモリ 253のバンク nに格納されたログから取得す る (ステップ S 304) 。 ここで、 移動/複製先の HD 21から再びクラス証明 書 Imc 1を受理することなくログに記憶されるクラス公開鍵 KP cmlを用い るのは、 再書込処理におけるなりすまし攻擊によるライセンス L I Cの漏洩を防 ぐためである。 したがって、 再び、 クラス証明書 Imc 1を受理する場合には、 HD 20において、 中断した処理において受理したクラス証明書と再書込処理に おいて受理したクラス証明書とが同一か否かを確認する必要がある。 たとえば、 再書込処理において受理したクラス証明書 I mc 1に含まれるクラス公開鍵と口 グに記録されるクラス公開鍵を比較して再書込処理を行なうか否かを判断する。 そして、 HD21では、 そのクラス公開鍵 KP cm 1によって、 セッション鍵 K s 1 bが暗号処理部 222によって暗号化され、 暗号化データ E (KP cml, K s 1 b) が生成される (ステップ S 305) 。 コントローラ 214は、 生成さ れた暗号化データ E (KP cml , Ks l b) とライセンス I D (L I D) とを データ列 L I D//E (KP cml, K s l b) として AT Aインターフェース 部 2 1 2および端子 210を介して端末装置 10へ出力する (ステップ S 30 6) 。
端末装置 10は、 L I D//E (KP cml, Ks l b) を受理すると (ステ ップ S 307) 、 受理した L I D//E (KP cml, Ks l b) を HD 21へ 出力する (ステップ S 308) 。
HD 21において、 コントローラ 214は、 端子 210および ATAインター
フェース部 212を介して L I D//E (KP cml, K s 1 b) を受理すると (ステップ S 309) 、 バス B S 3を介して E (KP cml, s 1 b) を復号 処理部 230へ与える。 そうすると、 復号処理部 230は、 K cm保持部 204 に保持される HD 21に固有なクラス秘密鍵 Kcmlによって復号処理を実行し てセッション鍵 K s 1 bを復号し、 セッション鍵 K s 1 bを受理する (ステップ S 3 10) 。
HD 21のコントローラ 214は、 HD 20で生成されたセッション鍵 K s 1 bの受理を確認すると、 ATAインターフェース部 212および端子 210を介 してその旨を端末装置 10に通知する。 端末装置 10のコントローラ 108は、 HDインターフェース部 1 10およびバス B S 2を介して HD 21からの通知を 受理すると、 HD 21のログメモリ 253に格納されるログの HD 20への出力 要求をバス B S 2および HDインターフェース部 1 10を介して HD 21へ出力 する (ステップ S 31 1) 。 HD 21のコントローラ 214は、 端子 210およ び AT Aコントローラ 21 2を介してログの出力要求通知を受理する (ステップ S 31 2) 。 そして、 HD 20におけるステップ S 301 aと同様にログの複製 処理を行なう (ステップ S 21 3 a) 。 複製処理時、 ログメモリ 253内にステ ップ S 309において受理した L I Dを含むログが格納されていないかを検索し、 格納されていた場合、 ログメモリ 253の最も古いログを格納しているバンク n aに、 検索された L I Dを含むログを複製し、 変数 ERR a = "偽" とする。 一 方、 ログメモリ 253内にステップ S 309において受理した L I Dを含むログ が格納されていない場合には、 ERRa= "真" とする。 このステップ S 3 1 2 aの詳細な動作は、 図 16に示すフローチャートに従って行なわれる。 ただし、 HD 21における処理と、 HD 20における同様の処理結果を区別するために変 数 nを変数 n aとし、 変数 ERRを変数 ERR aとする。 すなわち、 図 16のス テツプ S 1 1 2 bに相当する図 1 2に示すフローチャートにおける変数 nを変数 n aに、 変数 ERRを変数 ERR aにそれぞれ読替えればよい。
そして、 コントローラ 214は、 ステップ S 312 aの処理結果の判定、 すな わち、 ERR aカ "真" 、 "偽" のいずれであるかを判定する (ステップ S 3 2 1 2 b) 。 "偽" の場合、 受理した L I Dを含むログがバンク n aへ複製ざれた
ことを示すので、 再送要求に対する処理を開始するために次のステップ S 31 3 へ移行する。 "真" の場合、 受理した L I Dを含むログがログメモリ 253に格 納されていなかった、 つまり、 HD 21において、 ステップ S 31 3において受 理した L I Dによって特定されるライセンス L I Cの入出力処理がなされなかつ たことを示すので、 再送要求に対応不能と判断し、 図 23のステップ S 371へ 移行し、 エラー通知を端末装置 10に対して出力する。 端末装置 10においては、 エラー通知が受理されると (ステップ S 373) 、 処理が終了する。
HD 21において、 ステップ S 31 2 bにおいて ERR a = " 偽" を確認する と、 コントローラ 214は、 ログメモリ 253のバンク n aに格納されている口 グの格納 LB Aに対する領域に記憶されるライセンス L I Cのライセンス I D (L I D) と、 ログメモリ 253のバンク n aに格納されているログのライセン ス I D (L I D) とが一致するか否かを確認する (ステップ S 31 3) 。
コントローラ 214は、 ライセンス I D (L I D) がー致すると、 さらに、 口 グメモリ 253のバンク n aに格納されているログの格納 L B Aに対応する有効 フラグ領域 252のフラグを確認し、 そのライセンス L I Cが有効であるか無効 であるかを確認する (ステップ S 314) 。 コントローラ 214は、 有効フラグ 領域 252のフラグが "有効" であるときは、 ログメモリ 253のバンク n aに 格納されているログのステータス ST 2を "データ有" に変更し (ステップ S 3 1 5) 、 次の処理 (ステップ S 318) へ移行する。 一方、 コントローラ 214 は、 有効フラグ領域 252のフラグが "無効" であるときは、 ログメモリ 25 3 のバンク n aに格納されているログのステータス S T 2を "移動済" に変更し (ステップ S 316) 、 次の処理 (ステップ S 3 18) へ移行する。
また、 コントローラ 214は、 ステップ S 3 1 3において両ライセンス I D (L I D) がー致しないときは、 ログメモリ 253のバンク n aに格納されてい るログのステータス ST 2を "データ無" に変更する (ステップ S 31 7) 。 ステータス ST 2の変更処理がなされると、 コントローラ 214は、 ログメモ リ 253のバンク n aからライセンス I D (L I D) 、 ステータス ST 1, ST 2、 セッション鍵 K s 2 cおよび格納 LBAを取得する (ステップ S 318) 。 ここで、 この処理は、 図 9および図 10のフローチャートに従った配信セッショ
ンの中断に対する処理であるため、 HD 21のログメモリ 253に格納されてい る当該処理のログに記憶されているセッション鍵は K s 2 aであるが、 説明の関 係上、 ログメモリ 253のバンク nから取得したセッション鏈を K s 2 cとして いる。 そして、 コントローラ 214は、 取得したセッション鍵 K s 2 cをバス B S 3を介して暗号処理部 224へ出力する。
暗号処理部 224は、 切換スィツチ 260の接点 P bを介して復号処理部 23 0より与えられるセッション鍵 K s 1 bによってセッション鍵 K s 2 cを暗号化 し、 E (K s 1 b, K s 2 c) 生成する (ステップ S 31 9) 。 そして、 喑号処 理部 224は、 生成した E (K s 1 b, K s 2 c) をバス B S 3に出力する。 ノ ス B S 3に出力された E (K s l b, K s 2 c) は、 コントローラ 214により 受理され、 コントローラ 214は、 ステップ S 318において取得したデータと ともに 1つの受信ログ L I D//E (K s l b, K s 2 c ) //ST 1//ST 2を生成し、 そのハッシュ値 H (L I D//E (Ks l b, Ks 2 c) //ST 1//ST2) を生成する (ステップ S 320) 。 そして、 コントローラ 214 は、 ハッシュ値 H (L I D//E (Ks l b, K s 2 c) //ST 1//S T 2) をバス B S 3を介して暗号処理部 224へ出力する。
暗号処理部 224は、 切換スィツチ 260の接点 P bを介して復号処理部 23 0より与えられるセッション鍵 K s 1 bによって、 バス B S 3から取得したハツ シュ値 H (L I D//E (Ks l b, K s 2 c) //ST 1//ST 2) を暗号 化し、 署名データ E (Ks l b, H (L I D//E (Ks l b, K s 2 c) / / ST 1//ST 2) ) 生成する (ステップ S 321) 。 そして、 喑号処理部 22 4は、 生成した E (Ks l b, H (L I D//E (Ks l b, K s 2 c) //S T 1 / / ST 2) ) をバス B S 3に出力する。
コントローラ 214は、 バス B S 3から署名データを取得すると、 ステップ S 318において取得した受信ログを用いて、 署名付き受信ログ L I D//E (K s i b, K s 2 c) //S T 1//S T 2//Ε (Ks l b, Η (L I D//E (K s l b, Κ s 2 c) // S T 1 // S T 2 ) ) を生成し、 署名付き受信ログ L I D//E (Ks l b, K s 2 c) // S T 1 // S T 2 //E (Κ s l b, H (L I D//E (Ks l b, K s 2 c) //ST 1 / / S T 2) ) と格納 LB
Aとを、 AT Aインターフェース部 2 1 2および端子 2 1 0を介して端末装置 1 0へ出力する (ステップ S 3 22) 。
図 22を参照して、 端末装置 1 0は、 署名付き受信ログ L I D//E (K s 1 b, K s 2 c) //ST 1//ST 2//E (K s l b, H (L I D//E (K s i b, K s 2 c) //ST 1//ST 2) ) と格納 LB Aとを HD 2 1から受 理すると (ステップ S 3 2 3) 、 受理したデータを HD 20へ出力する (ステツ プ S 324) 。
HD 20において、 コントローラ 2 1 4は、 署名付き受信ログ L I D//E ( s 1 b , K s 2 c) //ST 1//ST 2//E ( s 1 b , H (L I Ό/ /E (K s 1 b, K s 2 c) // S T 1 // S T 2 ) ) を受理すると (ステップ S 3 25) 、 受理した署名付き受信ログの検証を行なう (ステップ S 3 26) 。 検証処理は、 以下のように行われる。
HD 20のコントローラ 2 14は、 署名付き受信ログを受理すると、 まず、 受 理した署名付き受信ログの後半部である署名データ E (K s 1 b, H (L I D/ /E (K s 1 b, s 2 c) //ST 1 // S T 2 ) ) を復号処理部 2 28へ出 力するとともに、 セッション鍵発生部 2 26にセッション鍵 K s 1 bを発生する ように指示する。 そして、 復号処理部 228は、 セッション鍵 K s 1 bによって 署名データ E (K s l b, H (L I D//E (K s l b, s 2 c) //ST 1 //ST 2) ) を復号し、 HD 2 1によって求められたハッシュ値を抽出する。 一方、 HD 20のコントローラ 2 1 4は、 署名付き受信ログの前半部である受信 ログ L I DZ/E ( s l b, K s 2 c) //ST 1/ZST 2のハッシュ値を 演算し、 復号処理部 228により抽出されたハッシュ値と比較する。 HD 20の コントローラ 2 14は、 2つのハッシュ値が一致したと判断すると、 HD 2 1力、 ら受理した受信ログは、 正当なデータを含むものとして HD 20において承認、さ れる。
ステップ S 3 26において承認されると、 HD 20のコントローラ 2 14は、 ステップ S 3 2 5において承認した受信ログに含まれるライセンス I D (L I D) をログメモリ 2 5 3のバンク nに格納されるライセンス I D (L I D) と比 較する (ステップ S 3 2 7) 。
コントローラ 214は、 ライセンス I D (L I D) がー致すると、 受信ログに 含まれる暗号データ E (K s 1 b, K s 2 c) を復号処理部 228へ出力し、 復 号処理部 228は、 セッション鍵発生部 226から受けるセッション鍵 K s 1 b によってセッション鍵 K s 2 cを復号し、 セッション鍵 K s 2 cが受理される (ステップ S 328) 。 そして、 復号されたセッション鍵 K s 2 cは、 バス B S 3を介してコントローラ 214へ出力される。 続いて、 コントローラ 214は、 エラー発生時のセッション鍵、 すなわち、 バンク nのログに記録されているセッ ション鍵 K s 2 aと、 今回、 承認した受信ログに含まれていたセッション鍵 K s
2 cとを比較する (ステップ S 329) 。 コントローラ 214は、 セッション鏈 K s 2 aとセッション鍵 K s 2 cとが一致していると判断すると、 受理したステ 一タス ST 1, ST 2の内容を確認する (ステップ S 330) 。
HD 20のコントローラ 214は、 受信した受信ログのステータス S T 1が "受信待" であり、 受信ログのステータス S丁 2が "データ無" であるとき、 H D 21に送信したはずのライセンス L I Cが何らかの異常により HD 21におい て受理されていないと判断する。 そうすると、 HD 20のコントローラ 214は、 さらに、 ログメモリ 253のバンク nのログの格納 LBAに記憶されるライセン ス L I Cのライセンス I D (L I D) と、 ログメモリ 253のバンク nのログの ライセンス I D (L I D) とが一致するか否かを確認する (ステップ S 331) 。 HD 20のコントローラ 214は、 ライセンス I D (L I D) がー致すると、 さ らに、 ログメモリ 253のバンク nのログの格納 LB Aに対応する有効フラグ領 域 252のフラグを確認し、 そのライセンス L I Cが有効であるか無効であるか を確認する (ステップ S 332) 。 そして、 コントローラ 214は、 有効フラグ 領域 252のフラグが "無効" であるときは、 その有効フラグ領域 252のフラ グを "有効" に変更する (ステップ S 333) 。 一方、 コントローラ 214は、 有効フラグ領域 252のフラグが "有効" であるときは、 次の処理 (ステップ S
334) へ移行する。 そして、 コントローラ 214は、 ログメモリ 253のバン ク nのログの格納 LBAと許可通知とを ATAインターフェース部 212および 端子 210を介して端末装置 10へ出力する (ステップ S 334) 。
端末装置 10のコントローラ 108は、 HD 20から HDインターフェース部
1 10およびバス B S 2を介して対象のライセンス L I Cが格納される格納 LB Aと許可通知とを受理すると (ステップ S 335) 、 HD 21に対してセッショ ン鍵の生成の要求通知をバス B S 2および HDインターフエ一ス部 1 10を介し て HD 21へ出力する (ステップ S 336) 。
HD 21は、 端末装置 10からセッション鍵の生成要求通知を受理すると、 新 たにセッション鍵 K s 2 bを生成し (ステップ S 337) 、 ログメモリ 253の バンク 11 aのログに記憶されているセッション鍵 K s 2 c (K s 2 a) を、 生成 したセッション鍵 K s 2 bに、 ログのステータス ST 1を "受信待" に変更する (ステップ S 338) 。
以下、 ステップ S 339からの一連の処理は、 図 18および図 19において説 明したステップ S 21 9から処理終了までの一連の処理において、 セッション鍵 K s 2 aに代えて新たに生成したセッション鍵 K s 2 bが使用される他は、 同様 の処理が行なわれる。 したがって、 ステップ S 339に続く一連の処理の説明は 繰返しになるので省略する。
なお、 ステップ S 335において処理を終了し、 HD 20にライセンスを残す ことも可能である。 この場合、 図 18および図 19に示したフローチャートにし たがって、 再度ライセンスを移動させることができる。
なお、 図 21〜図 23のフローチャートに示されるライセンスの移動または複 製における再書込処理の中断に対しては、 ステップ S 301〜S 344およびス テツプ S 347〜S 371のいずれかのステップにおいて処理が中断した場合に は、 再び図 21〜図 23に示されるフローチャートに従って再書込処理を行なう ことができる。 一方、 ステップ S 325〜S 346のいずれかのステップにおい て処理が中断した場合には、 図 18および図 19のフローチャートに示されるラ ィセンスの移動または複製の処理を最初から行なうことによって、 処理を再開す ることができる。
このようにして、 端末装置 10に装着された複数のハードディスク間における ライセンスの複製または移動に関しても、 複製先または移動先の HD 21から受 取ったクラス証明書 Cm 1が有効であることを確認し、 クラス証明書 Cm 1に含 まれて送信されたクラス公開鍵 KP cm 1によってライセンスの複製■移動が行
なわれる複数のハードディスク間でそれぞれ生成される喑号鍵 (セッシヨン鍵) をやり取りし、 お互いが受領した暗号鍵を用いた暗号化を実行して、 その暗号化 データを相手方に送信することによって、 不正なハードディスクへのライセンス の複製または移動を禁止することができる。 さらには、 それぞれの暗号化データ の送受信においても事実上の相互認証を行なうことができ、 出力先のなりすまし からライセンスを保護して、 システムのセキュリティを向上させることができる。 さらに、 ライセンスの複製 '移動セッションの中断においても、 配信セッショ ンと同様に、 受信側のデータ記憶装置である HD 21における複製 .移動セッシ ヨンの対象となったライセンス L I Cに対する受信ログを送信側のデータ記憶装 置である HD 20へ送信し、 HD 20において、 自身のログメモリ 253に格納 されるログの内容と、 その口グに記憶される格納 L B Aによつて特定されるセキ ユアデータ記憶部 250の領域に記憶されるライセンス L I Cとを比較し、 さら に有効フラグ領域 252に記憶されるフラグを参照することによって、 中断した 複製 ·移動セッションがライセンスの移動を行なう処理である場合において、 2 つのデータ記憶装置 HD 20および HD 21に利用可能なライセンスが重複して 存在することのない安全な再書込処理が提供される。
このように、 本発明は、 複製 '移動セッションの中断によるライセンス L I C の消失を回避し、 迅速な処理を行なうことができるデータ記憶装置およびその処 理手順を提供するとともに、 再書込処理に至った場合でも安全に処理が行なわれ、 確実な著作権保護を実現することができるデータ記憶装置およびその処理手順を 提供する。
なお、 図 18〜図 23における HD 21の処理ステップ S 202, 203, S 214, S 21 5, S 217〜S 220, S 241〜S 243, S 245〜S 2 51, S 309, S 310, S 3 1 2〜S 322, S 337〜S 340, S 36 1〜S 363, S 365〜S 371は、 図 9、 図 10および図 1 3〜図 1 5にお ける HD 20の処理ステップ S 2, S 3, S 16, S 17, S 19〜S 22, S 33〜S 35, S 37〜S43, S 109, S 1 10, S 1 1 2〜S 1 22, S 1 36〜S 139, S 150〜S 152, S 154〜 S 160とそれぞれ同じで ある。 すなわち、 ライセンスの移動または複製時における HD 21の処理とライ
センスの配信処理時における HD 20の処理とは同じ処理であって、 これらの処 理は、 いずれも、 データ記憶装置 (HD 20, HD21) においてライセンスを 書込むためのデータ記憶装置における処理である。
[再生許諾]
再び図 5を参照して、 コンテンツデータを再生する再生回路 1 50を備えた端 末装置 10にデータ記憶装置としての HD 20が装着され、 コンテンツデータの 再生許諾は、 HD 20から端末装置 10内の再生回路 150に対して行なわれる。 図 24は、 端末装置 10のユーザが端末装置 10から暗号化コンテンツデータ の再生リクエストを行なうことにより、 端末装置 10に装着された HD 20から 端末装置 10内の再生回路 1 50へ再生許諾が行なわれる際の処理 (再生許諾セ ッシヨン) を説明するためのフローチャートである。
図 24を参照して、 端末装置 10のユーザから所望のコンテンツデータの再生 リクエストがなされると、 端末装置 10のコントローラ 108は、 バス B S 2を 介して再生回路 1 50へクラス証明書の出力要求を出力する (ステップ S 40 1) 。 再生回路 150において、 認証データ保持部 1 502は、 バス BS 2から クラス証明書の出力要求を受けると (ステップ S 402) 、 保持しているクラス 証明書 C p 3 =KP c p 3ΖΖ I c ρ 3//Ε (K a , Η (ΚΡ c ρ 3// I c ρ 3) ) をバス BS 2へ出力する (ステップ S 403) 。
コントローラ 108は、 バス BS 2からクラス証明書 Cp 3を受理すると (ス テツプ S 404) 、 受理したクラス証明書 C p 3をバス B S 2および HDインタ 一フェース部 1 10を介して HD 20へ出力する (ステップ S 405) 。
HD 20では、 端末装置 10からクラス証明書 Cp 3を受理すると (ステップ S 406) 、 受理したクラス証明書 C p 3が正当なクラス証明書であるか否かを 検証する (ステップ S 407 ) 。 検証処理は、 複製■移動セッションにおけるス テツプ S 207において説明したのと同様の方法で行なわれ、 説明は省略する。 ステップ S 407において、 クラス証明書 Cp 3が正当な証明書であると判断 された場合、 コントローラ 214は、 クラス証明書 C p 3を承認し、 クラス証明 書 Cp 3に含まれるクラス公開鍵 KP c p 3を受理する (ステップ S 408) 。 そして、 次の処理 (ステップ S 409) へ移行する。 コントローラ 214は、 正
当なクラス証明書でない場合には、 クラス証明書 C p 3を非承認とし、 クラス証 明書 Cp 3を受理せずにエラー通知を端末装置 1 0へ出力し (ステップ S 43 5) 、 端末装置 10においてエラー通知が受理されると (ステップ S 436) 、 再生許諾セッションが終了する。
ステップ S 408においてクラス公開鍵 KP c ρ 3が受理されると、 HD 20 のセッション鍵発生部 226は、 セッション鍵 K s 1 dを生成する (ステップ S
409) 。 セッション鍵 K s 1 dは、 受理されたクラス公開鍵 KP c p 3によつ て、 暗号処理部 222において暗号化され、 暗号化データ E (KP c p 3, K s 1 d) が生成される (ステップ S 410) 。
そして、 コントローラ 214は、 暗号処理部 222からバス B S 3を介して喑 号化データ E (KP c p 3, Ks 1 d) を受けると、 ATAインターフェース部 212および端子 210を介して端末装置 10へ出力する (ステップ S 41 1) 。 端末装置 10において、 HDインターフェース部 1 10およびバス B S 2を介 してコントローラ 108が暗号データ E (KP c p 3, K s 1 d) を受理すると (ステップ S 412) 、 コントローラ 108は、 受理した暗号化データ E ( P c p 3, Ks l d) をバス B S 2を介して再生回路 1 50へ出力する (ステップ
541 3) 。 再生回路 1 50の復号処理部 1506は、 バス B S 2から暗号化デ ータ E (KP c p 3, Ks l d) を受理すると (ステップ S 414) 、 Kc p保 持部 1 504に保持される再生回路 150に固有なクラス秘密鍵 Kc p 3によつ て復号処理することによりセッション鍵 K s 1 dを復号し、 セッション鍵 K s 1 dが受理される (ステップ S 415) 。
セッション鍵 K s 1 dが受理されると、 セッション鍵発生部 1508は、 セッ ション鍵 K s 2 dを生成し (ステップ S 416) 、 生成したセッション鍵 K s 2 dを喑号処理部 1 5 10に与える。 暗号処理部 1 5 10は、 復号処理部 1506 から受けるセッション鍵 Ks 1 dをセッション鍵 Ks 2 dにより暗号化し、 暗号 化データ E (Ks l d, K s 2 d) を生成する (ステップ S 417) 。 そして、 暗号処理部 1 510は、 暗号化データ E (Ks l d, K s 2 d) をバス B S 2へ 出力する (ステップ S418) 。
コントローラ 108は、 バス B S 2から暗号化データ E (Ks l d, K s 2
d) を受理し (ステップ S 419) 、 受理したデータをバス B S 2および HDィ ンターフェース部 1 10を介して HD20へ出力する (ステップ S 420) 。
HD 20のコントローラ 214は、 端子 210および AT Aインターフェース 部 212を介して暗号化データ E (K s 1 d, K s 2 d) を受理すると (ステツ プ S421) 、 受理したデータをバス B S 3へ出力する。 復号処理部 228は、 セッション鍵発生部 226から与えられたセッション鍵 K s 1 dを用いてバス B S 3に出力された暗号化データ E (K s 1 d, K s 2 d) を復号し、 HD 20に おいてセッション鍵 K s 2 dが受理される (ステップ S 422) 。 そして、 コン トローラ 214は、 セッション鍵 K s 2 dが受理されると、 その旨の通知を AT Aインターフェース部 212および端子 210を介して端末装置 10へ出力する。 端末装置 1◦のコントローラ 108は、 HDインターフェース部 1 10および バス BS 2を介して HD20においてセッション鍵 K s 2 dが受理された旨の通 知を受理すると、 再生リクエストのあったコンテンツデータに対応する対象のラ ィセンス L I Cが格納されているセキュアデータ記憶部 250の LBAをバス B S 2および HDインターフェース部 11◦を介して HD 20へ出力する。
HD 20のコントローラ 214は、 端子 210および A T Aインターフェース 部 212を介して対象のライセンス L I Cが格納されている LBAを受理すると (ステップ S 424) 、 その LBAに格納されるライセンス L I Cに対応する有 効フラグ領域 25 2のフラグが "有効" であるか "無効" であるかを確認する (ステップ S 425) 。
コントローラ 214は、 有効フラグ領域 252のフラグが "有効" であると、 受理した LB Aに基づいて、 対象のライセンス L I Cをセキュアデータ記憶部 2 50から取得する (ステップ S 426) 。 そして、 コントローラ 214は、 取得 したライセンス L I Cに含まれる制御情報 ACの内容を確認する (ステップ S 4 27) 。 コントローラ 214は、 制御情報 ACにおいて利用回数が指定されてい るときは、 制御情報 ACの利用回数を 1増分し、 次の処理 (ステップ S 429) へ移行する。 一方、 コントローラ 214は、 制御情報 ACにより再生制限がかけ られていないときは、 取得したライセンス L I Cに含まれるコンテンツ鍵 K cを バス B S 3へ出力する。
暗号処理部 224は、 復号処理部 228から受けるセッション鍵 K s 2 dによ りバス B S 3上に出力されたコンテンツ鍵 Kcを暗号ィヒして暗号化データ E (K s 2 d, Kc) を生成し (ステップ S 429) 、 生成したデータをバス B S 3へ 出力する。 そして、 コントローラ 214は、 バス B S 3上に出力された暗号化デ ータ E (K s 2 d, Kc) を ATAインターフェース部 212および端子 210 を介して端末装置 10へ出力する (ステップ S 430) 。
端末装置 10のコントローラ 108は、 HDインターフェース部 1 10および バス B S 2を介して暗号化データ E (K s 2 d, Kc) を受理すると (ステップ S 431) 、 受理したデータをバス B S 2へ出力する (ステップ S 432) 。 再生回路 1 50の復号処理部 1 51 2は、 バス B S 2から暗号化データ E (K s 2 d, Kc) を受理すると (ステップ S 433) 、 セッション鍵発生部 1 50 8から与えられるセッション鍵 Ks 2 dを用いて喑号化データ E (K s 2 d, K c) を復号する。 これにより、 再生回路 1 50においてコンテンツ鍵 Kcが受理 され (ステップ S 434) 、 一連の再生許諾セッションの処理が正常終了する。 一方、 ステップ S 425において、 有効フラグ領域 252のフラグが "無効" であったとき、 またはステップ S 427において、 制御情報 ACに含まれる内容 が再生不可であったときは、 コントローラ 214は、 端末装置 10に対してエラ 一通知を出力し (ステップ S 435) 、 端末装置 10においてエラー通知が受理 されると (ステップ S 436) 、 再生許諾セッションが終了する。
このようにして、 データ記憶装置である HD 20から端末装置 10に備えられ る再生回路 1 50への再生許諾に関しても、 再生回路 150が正規のクラス証明 書 Cp 3を保持していること、 およびクラス証明書 Cp 3に含まれて送信された クラス公開鍵 KP c p 3が有効であることを確認した上でコンテンツ鍵 Kcが再 生回路 1 50へ送信され、 不正なコンテンツデータの再生を禁止することができ る。
なお、 フローチャートにおいて図示しないが、 再生回路 150は、 コンテンツ の再生許諾がなされ、 コンテンツ鍵 Kcを受理すると、 HD 20から出力された 暗号化コンテンツデータ E (Kc , D c) を復号処理部 1 514において復号し、 再生部 1 51 6において復号処理部により復号されたデータ D cが再生され、 D
A変換部 1 5 1 8によりデジタル/アナログ変換されてモニタやスピーカなどが 接続される端子 1 5 2 0へ再生信号が出力される。
このように、 HD 2 0では、 ライセンスの漏洩が無いように安全に保護し、 記 憶、 入出力の管理を行なうために、
( 1 ) 他の装置 (ライセンス提供装置または他の HD ) からライセンスの提供を 受けて格納する書込処理 (図 9および図 1 0における HD 2 0および図 2 1 〜 図 2 3における HD 2 1の処理)
( 2 ) 書込処理の中断から、 書込処理を再開する再書込処理 (図 1 3〜図 1 5に おけるおける HDおよび図 2 1〜図 2 3における HD 2 1の処理)
( 3 ) 他の HDに対してライセンスを移動または複製する提供処理 (図 1 6〜図
1 8における HD 2 0の処理) ,
( 4 ) 提供処理の中断から、 移動複製処理を再開する再提供処理 (ライセンスの 提供元としての再書込処理、 図 2 1〜図 2 3における HD 2 0の処理)
( 5 ) 暗号化コンテンツデータを復号することを目的として再生回路に対してコ ンテンッ鍵 K cを提供する再生許諾処理 (図 2 4における HD 2 0の処理) の 5つの処理を、 暗号技術によって実現している。 '
なお、 上述した全ての説明においては、 コンテンツデータに対するライセンス について説明したが、 対象は、 上述したライセンスに限られるものではなく、 秘 密にする必要がある機密データ一般に拡大されうる。 上述した手段によって、 デ ータの機密性が保護され、 かつ、 データ記憶装置における機密データの特定に関 する本発明の目的が達成できるからである。
[実施の形態 2 ]
実施の形態 1においては、 HD 2 0は、 図 1 3〜図 1 5のフローチャートに示 される再書込処理おょぴ図 2 1〜図 2 3のフローチャートに示される再提供処理 において、 再書込/提供処理を開始するにあたって、 処理の可否を判断するため に、 再書込/提供処理の対象となるライセンスに対する直前のログを検索する。 そして、 対応した口グが検索された場合、 検索したログをログメモリ 2 5 3のバ ンク nに複製して、 以後の処理においてはバンク nに格納されたログを処理の手 順に従って更新していくものとして説明した。
し力 し、 再書込処理においては、 複製したログはライセンスの提供側に対して 直前の処理に対するログとして出力した後、 図 1 4のステップ S 1 3 7において、 その内容が書換えられてしまう。 ログの複製は、 古いログが格納されたバンクか ら順に新たなログの格納バンクに向けて循環的に使用していくログメモリ 2 5 3 の特性に由来するものであり、 再書込処理の初期における中断 (図 1 4のステツ プ S 1 3 6以前) においても、 再書込処理に対応するログが、 より長くログメモ リ 2 5 3に保持されることを目的としてレヽる。
したがって、 十分に大きなログメモリ 2 5 3を備えた HDにおいては、 再書込 処理における検索された口グの複製を行なうことなく、 検索された口グが格納さ れていたバンクから直接出力するように構成することも可能である。 この場合、 ステータス S T 2の変更 (ステップ S 1 1 5 , S 1 1 6 , S 1 1 7 ) は、 当該バ ンクのログに対して行なわれ、 出力するためのログの取得 (ステップ S 1 1 8 ) は、 当該バンクから行なわれることとなる。
また、 ログの複写がなされないため、 再書込処理に対応するログを格納するた めのバンクは、 図 1 4のステップ S 1 3 7において確保される。 したがって、 ス テツプ S 1 3 7は、 「ログメモリの最も古いログを格納しているバンク n aに新 たなログを格納」 と変更される。
さらに、 H D 2 1も同様に処理を変更することが可能である。 その他の全ての 処理は、 実施の形態 1と同じである。 なお、 この処理の変更によってライセンス の安全性は何ら変化することはなく、 実施の形態 1と同様の効果を得ることがで きる。
[実施の形態 3 ]
ライセンスの再書込処理と同様に、 ライセンスの再提供処理において、 検索さ れた口グの複製を行なうことなく、 検索された口グが格納されていたバンクから 直接読出し、 再提供の可否を判定することも可能である。 図 2 1のステップ S 3 0 1 aにおいて複製を行なうことなく、 図 2 1のステップ S 3 0 2および図 2 2 のステップ S 3 2 9 , S 3 3 1 , S 3 3 2において検索されたログが格納されて いたバンクから直接ログを取得するように処理を変更すればよい。 その他の全て の処理は、 実施の形態 1と同じである。
この処理の変更によってライセンスの安全性は、 何ら変化することはなく、 実 施の形態 1と同様の効果を得ることができる。 また、 実施の形態 2と組合わせる ことも可能である。
[実施の形態 4]
HD 20の実装における処理を軽減するためには、 通常の書込処理および再書 込処理は、 より共通していることが望ましい。 そこで、 実施の形態 1における 「セッション鍵要求」 移行の HD 20における処理、 すなわち、 通常の書込処理 (図 9のステップ S 19〜S 22、 図 10のステップ S 33〜S 35, S 38〜 S 43) と再書込処理 (図 14のステップ S 136〜S 1 39、 図 1 5のステツ プ3150〜31 52, S 1 54〜S 160) を共通とする。 この場合、 図 9の ステップ S 20と図 14のステップ S 137とを同一処理とすることで容易に実 現できる。
この場合、 ステップ S 137をステップ S 20と同一処理とし、 "ログメモリ の最も古いログを格納しているバンク n bに新たなログを格納" とする。 また、 詳細な処理は、 図 1 1および図 1 2のフローチャートに従い、 変数 nを変数 n b と読替えればよい。 また、 変数 nを変数 11 bと読替えるのは、 図 1 3および図 1 4のステップ S 137までの処理における変数 nと区別するためである。 これに 伴って、 図 14および図 15のステップ S 1 37以降のステップ S 1 54, S 1 55, S 1 59におけるバンク nを全てバンク n bと読替える。
同様に、 移動複製セッションでは、 図 21〜図 23のフローチャートに示され るステップ S 342以降の処理と、 図 16〜図 18のフローチャートに示される ステップ S 222以降の処理との違いが、 ログの記録の違い (図 23のステップ S 345と図 18のステップ S 225との違い) のみである。 図 23のステップ S 345の処理を図 18のステップ S 225と同一の処理とすることによって H D 20の実装を容易にすることができる。 この場合、 ステップ S 345をステツ プ S 20と同一処理とし、 "ログメモリの最も古いログを格納しているバンク n bに新たなログを格納" とする。 また、 詳細な処理は、 図 20および図 12のフ ローチャートに従い、 変数 nを変数 n bと読替えればよい。 また、 変数 nを変数 n bと読替えるのは、 図 21およぴ図 22のステップ S 245までの処理におけ
る変数 nと区別するためである。 これに伴って、 図 2 3のステップ S 3 4 5以降 のステップ S 3 4 8 , S 5 7におけるバンク 11を全てバンク n bと読替える。 その他の全ての処理は、 実施の形態 1と同一である。 また、 処理の変更によつ てライセンスの安全性は何ら変化することなく、 実施の形態 1と同様な効果を得 ることができる。 さらに、 HD 2 1も同様に処理を変更することが可能である。 このように、 通常書込処理および再書込処理の共通化によって、 実施の形態 1 と同様なライセンスの安全な管理を実現した上で実装する処理量の軽減を図るこ とができる。
[実施の形態 5 ]
口グの記録開始タイミングを明確にするために、 全ての処理において HD外部 からライセンス I D ( L I D ) を受理することによって、 ログメモリ 2 5 3から バンクを 1つ確保し、 当該処理に対する口グを記録するように変更した実施の形 態 5について説明する。
まず、 実施の形態 5におけるライセンスの配信動作について説明する。
実施の形態 5においては、 ライセンス提供措置 4 0から HD 2 0へのライセン スの配信は、 図 2 5および図 2 6に示すフローチャートに従って行なわれる。 図 2 5および図 2 6に示すフローチヤ一トは、 図 9および図 1 0に示すフロ一チヤ ートのステップ S 1 6とステップ S 1 7との間にステップ S 1 6 aを挿入し、 ス テツプ S 2 0をステップ S 2 0 1 aに代えたものであり、 その他は図 9およぴ図 1 0に示すフローチャートと同じである。
ステップ S 1 6 aの詳細な動作は、 図 2 7に示すフローチャートに従って行な われる。 図 2 7を参照して、 HD 2 0にコントローラ 2 1 4は、 ステップ S 1 6 の後、 最新のログが格納されているバンク n— 1を特定し、 バンク nに格納され ている管理番号 mを取得する (ステップ S 1 6 b ) 。 そして、 このステップ S 1 6 bの詳細な動作は、 図 1 2に示すフローチヤ一トに従って行なわれる。
コントローラ 2 1 4は、 ステップ S 1 6 bの後、 管理番号 m+ 1、 およびステ ップ S 1 6で受理したライセンス I D ( L I D) をバンク nに格納し、 バンク n に格納されたログの S T 1領域 2 5 4 4を "受信待" に設定する (ステップ S 1 6 c ) 。 これにより、 図 2 5に示すステップ S 1 6 aの動作が終了する。
また、 コントローラ 2 1 4は、 ステップ S I 9の後、 ログメモリ 2 5 3のバン ク nに格納されたログの K s 2 X領域 2 5 4 3に、 ステップ S 1 9で受理したセ ッション鍵 K s 2 aを記録する (ステップ S 2 0 1 a ) 。
その他は、 実施の形態 1において説明したとおりである。
[配信における再書込]
実施の形態 5におけるライセンスの配信が途中で中断した場合のライセンスの 再書込の動作は、 図 1 3〜図 1 5に示すフローチャートに従って行なわれる。 そ の詳細な動作は実施の形態 1において説明したとおりである。
[移動/複製]
図 2 8および図 2 9は、 図 1 7に示すライセンスの複製 '移動が可能なシステ ムにおいて、 端末装置 1 0のユーザが端末装置 1 0から暗号化コンテンツデータ のライセンスの複製または移動のリクエストを行なうことにより、 端末装置 1 0 を介して端末装置 1 0に装着された H D 2 0力 ら H D 2 1へライセンスの複製ま たは移動が行なわれる際の処理 (複製 '移動セッション) を説明するための実施 の形態 5における第 1および第 2のフローチャートである。
図 2 8および図 2 9に示すフローチャートは、 図 1 8および図 1 9に示すフロ 一チヤ一トのステップ S 2 0 7とステップ S 2 0 9との間にステップ S 2 0 8を 挿入し、 ステップ S 2 1 4とステップ S 2 1 5との間にステップ S 2 1 4 aを揷 入し、 ステップ S 2 1 8をステップ S 2 1 8 aに代え、 ステップ S 2 2 5をステ ップ S 2 2 5 aに代えたものであり、 その他は図 1 8および図 1 9に示すフロー チヤ一トと同じである。
図 2 8を参照して、 H D 2 0のコントローラ 2 1 4は、 ステップ S 2 0 7にお いて H D 2 1からの証明書 C m 1を承認したとき、 ログメモリ 2 5 3のうち最も 古いログが格納されたバンク riに新たなログを格納する (ステップ S 2 0 8 ) 。 このステップ S 2 0 8の詳細な動作は、 図 3 0に示すフローチャートに従って行 なわれる。 .
図 3 0を参照して、 ステップ S 2 0 8は、 HD 2 0においてログメモリ 2 5 3 の最新ログが記録されたバンク n— 1を特定し、 かつ、 バンク n—lに格納され た管理番号 mを取得するステップ S 2 0 8 aと、 バンク nに、 管理番号 m+ 1、
ライセンス I D (L I D) 、 およびクラス公開鍵 KP cmyを格納し、 かつ、 S T 1領域 2544のステータス S T 1を "送信待" に設定するステップ S 208 bとから成る。 そして、 ステップ S 208 aの詳細な動作は、 図 1 2に示すフロ 一チャートに従って行なわれる。 したがって、 コントローラ 214は、 図 1 2お よび図 30に示すフローチャートに従って、 ステップ S 206において受理した ライセンス I D (L I D) と HD 21のクラス公開鍵 KP cmlと、 "送信待" に設定されたステータス ST 1とを記録した新たなログをバンク nに格納する。 また、 HD 21のコントローラ 214は、 ステップ S 214の後、 最も古い口 グが格納されたバンク n aに新たなログを格納する (ステップ S 214 a) 。 こ のステップ S 214 aの詳細な動作は、 上述した図 12および図 27に示すフロ 一チャートに従って行なわれる。 ただし、 変数 nは、 変数 n aに読替える。
したがって、 HD 21のコントローラ 214は、 図 12および図 27に示すフ ローチャートに従って、 ステップ s 214において受理したライセンス I D (L I D) と、 "受信待" に設定されたステータス ST 1とを記録した新たなログを、 ログメモリ 254の中で最も古い口グが格納されていたバンク n aに格納する (ステップ S 214 a) 。
さらに、 HD 21のコントローラ 214は、 ステップ S 21 7の後、 ログメモ リ 253のバンク n aにステップ S 21 7において生成されたセッション鍵 K s 2 aを格納する (ステップ S 218 a) 。
さらに、 HD 20のコントローラ 214は、 ステップ S 224の後、 ログメモ
U 253のバンク nに、 ステップ S 224で受理したセッション鍵 K s 2 aを格 納する (ステップ S 225 a) 。
その他は、 実施の形態 1において説明したとおりである。
[移動/複製における再書込]
実施の形態 5における HD 21から HD 20へのライセンスの移動 ·複製セッ シヨンが途中で中断した場合のライセンスの再書込動作は、 図 21〜図 23に示 すフローチャートに従って行なわれる。 したがって、 その詳細な動作は実施の形 態 1で説明したとおりである。
このように、 実施の形態 5では、 実施の形態 1と同様に安全なライセンスの再
書込 Z提供処理を実現し、 かつ、 それぞれの処理におけるログの発生タイミング を明確にするとともに、 実施の形態 3と同様に、 通常書込/再書込処理の共通化 によって実装する処理量の軽減を図ることができる。 なお、 H D 2 1も同様に処 理を変更することが可能である。
今回開示された実施の形態はすべての点で例示であって制限的なものではない と考えられるべきである。 本発明の範囲は、 上記した実施の形態の説明ではなく て特許請求の範囲によって示され、 特許請求の範囲と均等の意味および範囲内で のすベての変更が含まれることが意図される。 産業上の利用可能性
この発明は、 機密データの入出力処理に関する履歴情報を重複することなく複 数格納できるデータ記憶装置に適用可能である。