(57)【特許請求の範囲】
【請求項１】
ドメイン鍵情報とｍ個（ｍは自然数）のコンテンツ鍵情報とを含み且つ改竄の有無を検出される鍵情報を生成するデータ生成部と、
前記データ生成部によって生成された鍵情報をターゲット機器に書き込むデータ書込部とを備えるホスト機器による鍵情報の生成方法であって、
前記ターゲット機器は、第１記憶領域と、当該第１記憶領域よりもセキュリティレベルが高い第２記憶領域とを含み、
前記ｍ個のコンテンツ鍵情報の各々は、コンテンツを暗号化および復号化するために使用されるコンテンツ鍵を含み、
前記ドメイン鍵情報は、前記ｍ個のコンテンツ鍵情報を暗号化および復号化するために使用されるドメイン鍵を含み、
前記生成方法は、
前記データ生成部が、前記ｍ個のコンテンツ鍵情報の各々に対して、改竄検出処理のために使用される部分検査用データに相当する第１データを追加し、前記ドメイン鍵を用いて当該ｍ個のコンテンツ鍵情報の各々を連鎖暗号化するステップ（Ａ）と、
前記データ生成部が、前記ステップ（Ａ）において暗号化されたｍ個のコンテンツ鍵情報の各々の中から前記第１データを暗号化されたままの状態で抽出するステップ（Ｂ）と、
前記データ生成部が、前記ステップ（Ｂ）において抽出されたｍ個の第１データを含む連結データに対して所定演算を実行して、第２データを生成するステップ（Ｃ）と、
前記データ生成部が、前記ステップ（Ｃ）において生成された第２データを全体検査用データとして前記ドメイン鍵情報に追加するステップ（Ｄ）と、
前記データ書込部が、前記ｍ個の暗号化されたコンテンツ鍵情報を前記第１記憶領域に書き込み、且つ、前記ドメイン鍵情報を前記第２記憶領域に書き込むステップ（Ｅ）とを備える
ことを特徴とする鍵情報生成方法。
【請求項２】
請求項１において、
前記所定演算は、ハッシュ演算である
ことを特徴とする鍵情報生成方法。
【請求項３】
請求項２において、
前記連鎖暗号化のアルゴリズムと前記ハッシュ演算のアルゴリズムとは、一部が共通している
ことを特徴とする鍵情報生成方法。
【請求項４】
ドメイン鍵情報とｍ個（ｍは自然数）のコンテンツ鍵情報とを含み且つ改竄の有無を検出される鍵情報を生成するデータ生成部と、
前記データ生成部によって生成された鍵情報をターゲット機器に書き込むデータ書込部とを備えるホスト機器による鍵情報の生成方法であって、
前記ターゲット機器は、第１記憶領域と、当該第１記憶領域よりもセキュリティレベルが高い第２記憶領域とを含み、
前記ｍ個のコンテンツ鍵情報の各々は、コンテンツを暗号化および復号化するために使用されるコンテンツ鍵を含み、
前記ドメイン鍵情報は、前記ｍ個のコンテンツ鍵情報を暗号化および復号化するために使用されるドメイン鍵を含み、
前記生成方法は、
前記データ生成部が、前記ｍ個のコンテンツ鍵情報の各々に対して、改竄検出処理のために使用される部分検査用データに相当する第１データを追加し、前記ドメイン鍵を用いて当該ｍ個のコンテンツ鍵情報の各々を連鎖暗号化するステップ（Ａ）と、
前記データ生成部が、前記ステップ（Ａ）において暗号化されたｍ個のコンテンツ鍵情報の各々の中から前記第１データを暗号化されたままの状態で抽出するステップ（Ｂ）と、
前記データ生成部が、第２データと前記ステップ（Ｂ）において抽出されたｍ個の第１データとを含む連結データを前記ドメイン鍵を用いて連鎖暗号化し、当該暗号化された連結データの中から前記第２データを暗号化されたままの状態で抽出するステップ（Ｃ）と、
前記データ生成部が、前記ステップ（Ｃ）において抽出された第２データを全体検査用データとして前記ドメイン鍵情報に追加するステップ（Ｄ）と、
前記データ書込部が、前記ステップ（Ｃ）において暗号化された連結データに含まれるｍ個の暗号化された第１データを前記第１記憶領域に書き込み、前記ｍ個の暗号化されたコンテンツ鍵情報を前記第１記憶領域に書き込み、且つ、前記ドメイン鍵情報を前記第２記憶領域に書き込むステップ（Ｅ）とを備える
ことを特徴とする鍵情報生成方法。
【請求項５】
請求項１または請求項４において、
前記ｍ個のコンテンツ鍵情報の各々では、前記第１データは、当該コンテンツ鍵情報のうち予め指定された位置に配置される
ことを特徴とする鍵情報生成方法。
【請求項６】
請求項１または請求項４において、
前記ｍ個のコンテンツ鍵情報の各々では、前記第１データは、当該コンテンツ鍵情報の最下位に位置する所定長のデータとして配置される
ことを特徴とする鍵情報生成方法。
【請求項７】
請求項１または請求項４において、
前記ｍ個のコンテンツ鍵情報に対して、所定位置に前記部分検査用データを格納する付加情報を対応付けるステップ（Ｆ）をさらに備え、
前記ステップ（Ｅ）では、さらに、
前記データ書込部が、前記ｍ個の付加情報を前記第１記憶領域に書き込む
ことを特徴とする鍵情報生成方法。
【請求項８】
ドメイン鍵情報とｍ個（ｍは自然数）のコンテンツ鍵情報とを含み且つ改竄の有無を検出される鍵情報を生成するデータ生成部と、
前記データ生成部によって生成された鍵情報をターゲット機器に書き込むデータ書込部とを備えるホスト機器による鍵情報の生成方法であって、
前記ターゲット機器は、第１記憶領域と、当該第１記憶領域よりもセキュリティレベルが高い第２記憶領域とを有し、
前記ｍ個のコンテンツ鍵情報の各々は、コンテンツを暗号化および復号化するために使用されるコンテンツ鍵を含み、
前記ドメイン鍵情報は、前記ｍ個のコンテンツ鍵情報を暗号化および復号化するために使用されるドメイン鍵を含み、
前記生成方法は、
前記データ生成部が、前記ドメイン鍵を用いて前記ｍ個のコンテンツ鍵情報の各々を暗号化するステップ（Ａ）と、
前記データ生成部が、前記ステップ（Ａ）によって暗号化されたｍ個のコンテンツ鍵情報の各々に対して第１演算を実行して、ｍ個の第１データを生成するステップ（Ｂ）と、
前記データ生成部が、前記ステップ（Ｂ）において生成されたｍ個の第１データを含む連結データに対して第２演算を実行して、第２データを生成するステップ（Ｃ）と、
前記データ生成部が、前記ステップ（Ｃ）において生成された第２データを全体検査用データとして前記ドメイン鍵情報に追加するステップ（Ｄ）と、
前記データ書込部が、前記ｍ個の第１データをｍ個の部分検査用データとして前記第１記憶領域に書き込み、前記ｍ個の暗号化されたコンテンツ鍵情報を前記第１記憶領域に書き込み、且つ、前記ドメイン鍵情報を前記第２記憶領域に書き込むステップ（Ｅ）とを備える
ことを特徴とする鍵情報生成方法。
【請求項９】
請求項８において、
前記第１および第２演算の各々は、ハッシュ演算である
ことを特徴とする鍵情報生成方法。
【請求項１０】
請求項１，請求項４，請求項８のうちいずれか１つにおいて、
前記鍵情報は、前記ドメイン鍵情報を暗号化および復号化するために使用される認証鍵をさらに含み、
前記ターゲット機器は、前記第２領域よりもセキュリティレベルが高く、且つ、前記認証鍵を格納する第３記憶領域をさらに含み、
前記生成方法は、
前記データ生成部が、前記認証鍵を用いて前記ドメイン鍵情報を暗号化するステップ（Ｆ）をさらに備え、
前記ステップ（Ｅ）では、
前記データ書込部が、前記ステップ（Ｆ）において暗号化されたドメイン鍵情報を前記第２記憶領域に書き込む
ことを特徴とする鍵情報生成方法。
【請求項１１】
請求項１０において、
前記第１記憶領域は、前記ホスト機器が任意にアクセスすることができ、
前記第２記憶領域は、前記ホスト機器と前記ターゲット機器との間で認証が成功すると、当該ホスト機器がアクセスすることができ、
前記第３記憶領域は、前記ホスト機器と前記ターゲット機器との間で相互認証を実行するために使用される
ことを特徴とする鍵情報生成方法。
【請求項１２】
請求項１１において、
前記第３記憶領域は、前記認証鍵が書き込まれた後に書き換えができなくなるように処理される
ことを特徴とする鍵情報生成方法。
【請求項１３】
請求項１，請求項４，請求項８のうちいずれか１つにおいて、
前記ターゲット機器は、前記ホスト機器からのクロックおよび動作命令に従って動作する可搬型記憶デバイスである
ことを特徴とする鍵情報生成方法。
【請求項１４】
ドメイン鍵とｍ個（ｍは自然数）のコンテンツ鍵情報とを含み且つ改竄の有無を検出される鍵情報を生成する鍵情報生成装置であって、
前記ターゲット機器は、第１記憶領域と、当該第１記憶領域よりもセキュリティレベルが高い第２記憶領域とを含み、
前記ｍ個のコンテンツ鍵情報の各々は、コンテンツを暗号化および復号化するために使用されるコンテンツ鍵を含み、
前記ドメイン鍵情報は、前記ｍ個のコンテンツ鍵情報を暗号化および復号化するために使用されるドメイン鍵を含み、
前記鍵情報生成装置は、
前記ｍ個のコンテンツ鍵情報の各々に対して、改竄検出処理のために使用される部分検査用データに相当する第１データを追加し、前記ドメイン鍵を用いて当該ｍ個のコンテンツ鍵情報の各々を連鎖暗号化する暗号化部と、
前記暗号化部によって暗号化されたｍ個のコンテンツ鍵情報の各々の中から前記第１データを暗号化されたままの状態で抽出するデータ抽出部と、
前記データ抽出部によって抽出されたｍ個の第１データを含む連結データに対して所定演算を実行して、第２データを生成するデータ生成部と、
前記データ生成部によって生成された第２データを全体検査用データとして前記ドメイン鍵情報に追加するデータ追加部と、
前記ｍ個の暗号化されたコンテンツ鍵情報を前記第１記憶領域に書き込み、且つ、前記ドメイン鍵情報を前記第２記憶領域に書き込むデータ書込部とを備える
ことを特徴とする鍵情報生成装置。
【請求項１５】
ドメイン鍵とｍ個（ｍは自然数）のコンテンツ鍵情報とを含み且つ改竄の有無を検出される鍵情報を生成する鍵情報生成装置であって、
前記ターゲット機器は、第１記憶領域と、当該第１記憶領域よりもセキュリティレベルが高い第２記憶領域とを含み、
前記ｍ個のコンテンツ鍵情報の各々は、コンテンツを暗号化および復号化するために使用されるコンテンツ鍵を含み、
前記ドメイン鍵情報は、前記ｍ個のコンテンツ鍵情報を暗号化および復号化するために使用されるドメイン鍵を含み、
前記鍵情報生成装置は、
前記ｍ個のコンテンツ鍵情報の各々に対して、改竄検出処理のために使用される部分検査用データに相当する第１データを追加し、前記ドメイン鍵を用いて当該ｍ個のコンテンツ鍵情報の各々を連鎖暗号化する暗号化部と、
前記暗号化部によって暗号化されたｍ個のコンテンツ鍵情報の各々の中から前記第１データを暗号化されたままの状態で抽出するデータ抽出部と、
第２データと前記データ抽出部によって抽出されたｍ個の第１データとを含む連結データを前記ドメイン鍵を用いて連鎖暗号化し、当該暗号化された連結データの中から前記第２データを暗号化されたままの状態で抽出するデータ処理部と、
前記データ処理部によって抽出された第２データを全体検査用データとして前記ドメイン鍵情報に追加するデータ追加部と、
前記データ処理部によって暗号化された連結データに含まれるｍ個の暗号化された第１データを前記第１記憶領域に書き込み、前記ｍ個の暗号化されたコンテンツ鍵情報を前記第１記憶領域に書き込み、且つ、前記ドメイン鍵情報を前記第２記憶領域に書き込むデータ書込部とを備える
ことを特徴とする鍵情報生成装置。
【請求項１６】
ドメイン鍵とｍ個（ｍは自然数）のコンテンツ鍵情報とを含み且つ改竄の有無を検出される鍵情報を生成する鍵情報生成装置であって、
前記ターゲット機器は、第１記憶領域と、当該第１記憶領域よりもセキュリティレベルが高い第２記憶領域とを含み、
前記ｍ個のコンテンツ鍵情報の各々は、コンテンツを暗号化および復号化するために使用されるコンテンツ鍵を含み、
前記ドメイン鍵情報は、前記ｍ個のコンテンツ鍵情報を暗号化および復号化するために使用されるドメイン鍵を含み、
前記鍵情報生成装置は、
前記ドメイン鍵を用いて前記ｍ個のコンテンツ鍵情報の各々を暗号化する暗号化部と、
前記暗号化部によって暗号化されたｍ個のコンテンツ鍵情報の各々に対して第１演算を実行して、ｍ個の第１データを生成する第１演算部と、
前記第１演算部によって生成されたｍ個の第１データを含む連結データに対して第２演算を実行して、第２データを生成する第２演算部と、
前記第２演算部によって生成された第２データを全体検査用データとして前記ドメイン鍵情報に追加するデータ追加部と、
前記ｍ個の第１データを前記ｍ個の部分検査用データとして前記第１記憶領域に書き込み、前記ｍ個の暗号化されたコンテンツ鍵情報を前記第１記憶領域に書き込み、且つ、前記ドメイン鍵情報を前記第２記憶領域に書き込むデータ書込部とを備える
ことを特徴とする鍵情報生成装置。
【請求項１７】
改竄の有無を検出される鍵情報に対して新たなコンテンツ鍵情報を追加するとともに、当該鍵情報を更新するデータ更新部と、
前記データ更新部によって更新された鍵情報をターゲット機器に書き込むデータ書込部とを備えるホスト機器による鍵情報の更新方法であって、
前記ターゲット機器は、第１記憶領域と、前記第１記憶領域よりもセキュリティレベルが高い第２記憶領域とを含み、
前記鍵情報は、ドメイン鍵情報と、ｍ個（ｍは自然数）のコンテンツ鍵情報とを含み、
前記ｍ個のコンテンツ鍵情報の各々は、コンテンツを暗号化および復号化するために使用されるコンテンツ鍵と、改竄検出処理のために使用される部分検査用データに相当する第１データとを含み、
前記ドメイン鍵情報は、前記ｍ個のコンテンツ鍵情報を暗号化および復号化するために使用されるドメイン鍵と、全体検査用データとを含み、
前記ｍ個のコンテンツ鍵情報の各々は、暗号化されており、
前記更新方法は、
前記データ更新部が、前記新たなコンテンツ鍵情報に対して前記第１データを追加し、当該コンテンツ鍵情報を前記ドメイン鍵を用いて連鎖暗号化するステップ（Ａ）と、
前記データ更新部が、前記ステップ（Ａ）において暗号化されたコンテンツ鍵情報の中から前記第１データを暗号化されたままの状態で抽出するステップ（Ｂ）と、
前記データ更新部が、前記ステップ（Ｂ）において抽出された第１データと前記ｍ個の暗号化されたコンテンツ鍵情報の各々に含まれる第１データとを含む連結データに対して所定演算を実行して、第２データを生成するステップ（Ｃ）と、
前記データ更新部が、前記ドメイン鍵情報に含まれる全体検査用データを前記ステップ（Ｃ）において生成された第２データに書き換えるステップ（Ｄ）と、
前記データ書込部が、前記ｍ個の暗号化されたコンテンツ鍵情報と前記暗号化された新たなコンテンツ鍵情報とを前記第１記憶領域に書き込み、且つ、前記ドメイン鍵情報を前記第２記憶領域に書き込むステップ（Ｅ）とを備える
ことを特徴とする鍵情報更新方法。
【請求項１８】
改竄の有無を検出される鍵情報に対して新たなコンテンツ鍵情報を追加するとともに、当該鍵情報を更新するデータ更新部と、
前記データ更新部によって更新された鍵情報をターゲット機器に書き込むデータ書込部とを備えるホスト機器による鍵情報の更新方法であって、
前記ターゲット機器は、第１記憶領域と、前記第１記憶領域よりもセキュリティレベルが高い第２記憶領域とを含み、
前記鍵情報は、ドメイン鍵情報と、ｍ個（ｍは自然数）のコンテンツ鍵情報と、ｍ個の暗号化された第１データと、第２データとを含み、
前記ｍ個のコンテンツ鍵情報の各々は、コンテンツを暗号化および復号化するために使用されるコンテンツ鍵と、改竄検出処理のために使用される部分検査用データに相当する第１データとを含み、
前記ドメイン鍵情報は、前記ｍ個のコンテンツ鍵情報を暗号化および復号化するために使用されるドメイン鍵と、全体検査用データとを含み、
前記ｍ個のコンテンツ鍵情報の各々は、暗号化されており、
前記更新方法は、
前記データ更新部が、前記新たなコンテンツ鍵情報に対して前記第１データを追加し、当該コンテンツ鍵情報を前記ドメイン鍵を用いて連鎖暗号化するステップ（Ａ）と、
前記データ更新部が、前記ステップ（Ａ）において暗号化されたコンテンツ鍵情報の中から前記第１データを暗号化されたままの状態で抽出するステップ（Ｂ）と、
前記データ更新部が、前記第２データ，前記ｍ個の暗号化された第１データ，および前記ステップ（Ｂ）において抽出された第１データを含む連結データを、前記ドメイン鍵を用いて連鎖暗号化し、当該暗号化された連結データの中から前記第２データを暗号化されたままの状態で抽出するステップ（Ｃ）と、
前記データ更新部が、前記ドメイン鍵情報に含まれる全体検査用データを前記ステップ（Ｃ）において抽出された第２データに書き換えるステップ（Ｄ）と、
前記データ書込部が、前記ステップ（Ｃ）において暗号化された連結データに含まれる（ｍ＋１）個の第１データを前記第１記憶領域に書き込み、前記ｍ個の暗号化されたコンテンツ鍵情報および前記暗号化された新たなコンテンツ鍵情報を前記第１記憶領域に書き込み、且つ、前記ドメイン鍵情報を前記第２記憶領域に書き込むステップ（Ｅ）とを備える
ことを特徴とする鍵情報更新方法。
【請求項１９】
改竄の有無を検出される鍵情報に対して新たなコンテンツ鍵情報を追加するとともに、当該鍵情報を更新するデータ更新部と、
前記データ更新部によって更新された鍵情報をターゲット機器に書き込むデータ書込部とを備えるホスト機器による鍵情報の更新方法であって、
前記ターゲット機器は、第１記憶領域と、前記第１記憶領域よりもセキュリティレベルが高い第２記憶領域とを含み、
前記鍵情報は、ドメイン鍵情報と、ｍ個（ｍは自然数）のコンテンツ鍵情報と、ｍ個の部分検査用データとを含み、
前記ｍ個のコンテンツ鍵情報の各々は、コンテンツを暗号化および復号化するために使用されるコンテンツ鍵を含み、
前記ドメイン鍵情報は、前記ｍ個のコンテンツ鍵情報を暗号化および復号化するために使用されるドメイン鍵と、全体検査用データとを含み、
前記ｍ個のコンテンツ鍵情報の各々は、暗号化されており、
前記更新方法は、
前記データ更新部が、前記新たなコンテンツ鍵情報を暗号化するステップ（Ａ）と、
前記データ更新部が、前記ステップ（Ａ）において暗号化された新たなコンテンツ鍵情報に対して第１演算を実行して、第１データを生成するステップ（Ｂ）と、
前記データ更新部が、前記ｍ個の部分検査用データと前記ステップ（Ｂ）において生成された第１データとを含む連結データに対して第２演算を実行して、第２データを生成するステップ（Ｃ）と、
前記データ更新部が、前記ドメイン鍵情報に含まれる全体検査用データを前記ステップ（Ｃ）において生成された第２データに書き換えるステップ（Ｄ）と、
前記データ書込部が、ｍ個の部分検査用データと前記第１データとを（ｍ＋１）個の部分検査用データとして前記第１記憶領域に書き込み、前記ｍ個の暗号化されたコンテンツ鍵情報および前記暗号化された新たなコンテンツ鍵情報を前記第１記憶領域に書き込み、且つ、前記ドメイン鍵情報を前記第２記憶領域に書き込むステップ（Ｅ）とを備える
ことを特徴とする鍵情報更新方法。
【請求項２０】
改竄の有無を検出される鍵情報の中からいずれか１つのコンテンツ鍵情報を削除するとともに、当該鍵情報を更新するデータ更新部と、
前記データ更新部によって更新された鍵情報をターゲット機器に書き込むデータ書込部とを備えるホスト機器による鍵情報の更新方法であって、
前記ターゲット機器は、第１記憶領域と、前記第１記憶領域よりもセキュリティレベルが高い第２記憶領域とを含み、
前記鍵情報は、ドメイン鍵情報と、ｍ個（ｍは自然数）のコンテンツ鍵情報とを含み、
前記ｍ個のコンテンツ鍵情報の各々は、コンテンツを暗号化および復号化するために使用されるコンテンツ鍵と、改竄検出処理のために使用される部分検査用データに相当する第１データとを含み、
前記ドメイン鍵情報は、前記ｍ個のコンテンツ鍵情報を暗号化および復号化するために使用されるドメイン鍵と、全体検査用データとを含み、
前記ｍ個のコンテンツ鍵情報の各々は、暗号化されており、
前記更新方法は、
前記データ更新部が、前記ｍ個の暗号化されたコンテンツ鍵情報のうちいずれか１つを削除するステップ（Ａ）と、
前記データ更新部が、前記ステップ（Ａ）において削除されなかった（ｍ−１）個の暗号化されたコンテンツ鍵情報の各々に含まれる第１データを暗号化されたままの状態で抽出するステップ（Ｂ）と、
前記データ更新部が、前記ステップ（Ｂ）において抽出された（ｍ−１）個の第１データを含む連結データに対して所定演算を実行して、第２データを生成するステップ（Ｃ）と、
前記データ更新部が、前記ドメイン鍵情報に含まれる全体検査用データを前記ステップ（Ｃ）において生成された第２データに書き換えるステップ（Ｄ）と、
前記データ書込部が、前記（ｍ−１）個の暗号化されたコンテンツ鍵情報を前記第１記憶領域に書き込み、且つ、前記ドメイン鍵情報を前記第２記憶領域に書き込むステップ（Ｅ）とを備える
ことを特徴とする鍵情報更新方法。
【請求項２１】
改竄の有無を検出される鍵情報の中からいずれか１つのコンテンツ鍵情報を削除するとともに、当該鍵情報を更新するデータ更新部と、
前記データ更新部によって更新された鍵情報をターゲット機器に書き込むデータ書込部とを備えるホスト機器による鍵情報の更新方法であって、
前記ターゲット機器は、第１記憶領域と、前記第１記憶領域よりもセキュリティレベルが高い第２記憶領域とを含み、
前記鍵情報は、ドメイン鍵情報と、ｍ個（ｍは自然数）のコンテンツ鍵情報と、ｍ個の暗号化された第１データと、第２データとを含み、
前記ｍ個のコンテンツ鍵情報の各々は、コンテンツを暗号化および復号化するために使用されるコンテンツ鍵と、改竄検出処理のために使用される部分検査用データに相当する第１データとを含み、
前記ドメイン鍵情報は、前記ｍ個のコンテンツ鍵情報を暗号化および復号化するために使用されるドメイン鍵と、全体検査用データとを含み、
前記ｍ個の暗号化された第１データは、前記ｍ個のコンテンツ鍵情報と一対一で対応し、
前記ｍ個のコンテンツ鍵情報の各々は、暗号化されており、
前記更新方法は、
前記データ更新部が、前記ｍ個のコンテンツ鍵情報のうちいずれか１つを削除するステップ（Ａ）と、
前記データ更新部が、前記ステップ（Ａ）において削除されなかった（ｍ−１）個の暗号化されたコンテンツ鍵情報の各々に含まれる第１データを暗号化されたままの状態で抽出するステップ（Ｂ）と、
前記データ更新部が、前記ｍ個の暗号化された第１データのうち前記ステップ（Ａ）において削除されたコンテンツ鍵情報に対応する第１データを削除するステップ（Ｃ）と、
前記データ更新部が、前記第２データと前記ステップ（Ｃ）において削除されなかった（ｍ−１）個の暗号化された第１データとを含む連結データを前記ドメイン鍵を用いて連鎖暗号化し、当該暗号化された連結データの中から前記第２データを暗号化されたままの状態で抽出するステップ（Ｄ）と、
前記データ更新部が、前記ドメイン鍵情報に含まれる全体検査用データを前記ステップ（Ｄ）において抽出された第２データに書き換えるステップ（Ｅ）と、
前記データ書込部が、前記ステップ（Ｄ）において暗号化された連結データに含まれる（ｍ−１）個の第１データを前記第１記憶領域に書き込み、前記（ｍ−１）個の暗号化されたコンテンツ鍵情報を前記第１記憶領域に書き込み、且つ、前記ドメイン鍵情報を前記第２記憶領域に書き込むステップ（Ｆ）とを備える
ことを特徴とする鍵情報更新方法。
【請求項２２】
改竄の有無を検出される鍵情報の中からいずれか１つのコンテンツ鍵情報を削除するとともに、当該鍵情報を更新するデータ更新部と、
前記データ更新部によって更新された鍵情報をターゲット機器に書き込むデータ書込部とを備えるホスト機器による鍵情報の更新方法であって、
前記ターゲット機器は、第１記憶領域と、前記第１記憶領域よりもセキュリティレベルが高い第２記憶領域とを含み、
前記鍵情報は、ドメイン鍵情報と、ｍ個（ｍは自然数）のコンテンツ鍵情報と、ｍ個の部分検査用データとを含み、
前記ｍ個のコンテンツ鍵情報の各々は、コンテンツを暗号化および復号化するために使用されるコンテンツ鍵を含み、
前記ドメイン鍵情報は、前記ｍ個のコンテンツ鍵情報を暗号化および復号化するために使用されるドメイン鍵と、全体検査用データとを含み、
前記ｍ個の部分検査用データは、前記ｍ個のコンテンツ鍵情報と一対一で対応し、
前記ｍ個のコンテンツ鍵情報の各々は、暗号化されており、
前記更新方法は、
前記データ更新部が、前記ｍ個の暗号化されたコンテンツ鍵情報のうちいずれか１つを削除するステップ（Ａ）と、
前記データ更新部が、前記ｍ個の部分検査用データのうち前記ステップ（Ａ）において削除されたコンテンツ鍵情報に対応する部分検査用データを削除するステップ（Ｂ）と、
前記データ更新部が、前記ステップ（Ｂ）において削除されなかった（ｍ−１）個の部分検査用データを含む連結データに対して第２演算を実行して、第２データを生成するステップ（Ｃ）と、
前記データ更新部が、前記ドメイン鍵情報に含まれる全体検査用データを前記ステップ（Ｃ）において生成された第２データに書き換えるステップ（Ｄ）と、
前記データ書込部が、前記ステップ（Ｂ）において削除されなかった（ｍ−１）個の部分検査用データを前記第１記憶領域に書き込み、前記（ｍ−１）個の暗号化されたコンテンツ鍵情報を前記第１記憶領域に書き込み、且つ、前記ドメイン鍵情報を前記第２記憶領域に書き込むステップ（Ｅ）とを備える
ことを特徴とする鍵情報更新方法。
【請求項２３】
ホスト機器によって、ターゲット機器に格納された鍵情報における改竄の有無を検出する改竄検出方法であって、
前記鍵情報は、ドメイン鍵情報と、ｍ個（ｍは自然数）のコンテンツ鍵情報とを含み、
前記ｍ個のコンテンツ鍵情報の各々は、コンテンツを暗号化および復号化するために使用されるコンテンツ鍵と、改竄検出処理のために使用される部分検査用データに相当する第１データとを含み、
前記ドメイン鍵情報は、前記ｍ個のコンテンツ鍵を暗号化および復号化するために使用されるドメイン鍵と、全体検査用データとを含み、
前記ｍ個のコンテンツ鍵情報の各々は、暗号化されており、
前記改竄検出方法は、
前記ホスト機器が、前記ターゲット機器に格納された前記ｍ個の暗号化されたコンテンツ鍵情報のうちいずれか１つを前記ターゲット機器に格納された前記ドメイン鍵を用いて連鎖復号化し、当該復号化されたコンテンツ鍵情報の中から前記第１データを抽出するステップ（Ａ）と、
前記ホスト機器が、前記ステップ（Ａ）において抽出された第１データと予め用意された部分検査用データとを比較するステップ（Ｂ）と、
前記ホスト機器が、前記ターゲット機器に格納された前記ｍ個のコンテンツ鍵情報の各々の中から前記第１データを暗号化されたままの状態で抽出し、当該抽出されたｍ個の第１データを含む連結データに対して所定演算を実行して、第２データを生成するステップ（Ｃ）と、
前記ホスト機器が、前記ステップ（Ｃ）において生成された第２データと前記ターゲット機器に格納された前記ドメイン鍵情報に含まれる全体検査用データとを比較するステップ（Ｄ）と、
前記ホスト機器が、前記ステップ（Ｂ）において前記第１データと前記部分検査用データとが一致し、且つ、前記ステップ（Ｄ）において前記第２データと前記全体検査用データとが一致すると、前記ターゲット機器に格納された前記鍵情報が改竄されていないと判断するステップ（Ｅ）とを備える
ことを特徴とする改竄検出方法。
【請求項２４】
請求項２３において、
前記全体検査用データは、改竄されていないｍ個の暗号化されたコンテンツ鍵情報の中からｍ個の第１データを暗号化されたままの状態で抽出し、当該抽出されたｍ個の第１データを含む連結データに対して所定演算を実行することによって得られるデータに相当する
ことを特徴とする改竄検出方法。
【請求項２５】
請求項２３において、
前記ターゲット機器は、
前記ｍ個の暗号化されたコンテンツ鍵情報を格納する第１記憶領域と、
前記第１記憶領域よりもセキュリティレベルが高く、且つ、前記ドメイン鍵情報を格納する第２記憶領域とを含む
ことを特徴とする改竄検出方法。
【請求項２６】
請求項２３において、
前記所定演算は、ハッシュ演算である
ことを特徴とする改竄検出方法。
【請求項２７】
請求項２６において、
前記ハッシュ演算のアルゴリズムと前記連鎖暗号化のアルゴリズムとは、一部が共通している
ことを特徴とする改竄検出方法。
【請求項２８】
ホスト機器によって、ターゲット機器に格納された鍵情報における改竄の有無を検出する改竄検出方法であって、
前記鍵情報は、ドメイン鍵情報と、ｍ個（ｍは自然数）のコンテンツ鍵情報と、ｍ個の暗号化された第１データと、第２データとを含み、
前記ｍ個のコンテンツ鍵情報の各々は、コンテンツを暗号化および復号化するために使用されるコンテンツ鍵と、改竄検出処理のために使用される部分検査用データに相当する第１データとを含み、
前記ドメイン鍵情報は、前記ｍ個のコンテンツ鍵を暗号化および復号化するために使用されるドメイン鍵と、全体検査用データとを含み、
前記ｍ個のコンテンツ鍵情報の各々は、暗号化されており、
前記改竄検出方法は、
前記ホスト機器が、前記ターゲット機器に格納された前記ｍ個の暗号化されたコンテンツ鍵情報のうちいずれか１つを前記ターゲット機器に格納された前記ドメイン鍵を用いて連鎖復号化し、当該復号化されたコンテンツ鍵情報の中から前記第１データを抽出するステップ（Ａ）と、
前記ホスト機器が、前記ステップ（Ａ）において抽出された第１データと予め用意された部分検査用データとを比較するステップ（Ｂ）と、
前記ホスト機器が、前記ターゲット機器に格納された前記ドメイン鍵情報に含まれる全体検査用データと前記ｍ個の暗号化された第１データとを含む連結データを前記ドメイン鍵を用いて連鎖復号化し、当該復号化された連結データの中から当該全体検査用データを抽出するステップ（Ｃ）と、
前記ホスト機器が、前記ターゲット機器に格納された前記第２データと前記ステップ（Ｃ）において抽出された全体検査用データとを比較するステップ（Ｄ）と、
前記ホスト機器が、前記ステップ（Ｂ）において前記第１データと前記部分検査用データとが一致し、且つ、前記ステップ（Ｄ）において前記第２データと前記全体検査用データとが一致すると、前記ターゲット機器に格納された前記鍵情報が改竄されていないと判断するステップ（Ｅ）とを備える
ことを特徴とする改竄検出方法。
【請求項２９】
請求項２８において、
前記全体検査用データは、改竄されていないｍ個の暗号化された第１データと前記第２データとを含む連結データを前記ドメイン鍵を用いて連鎖暗号化し、当該暗号化された連結データの中から暗号化されたままの状態で抽出される第２データに相当する
ことを特徴とする改竄検出方法。
【請求項３０】
請求項２８において、
前記ターゲット機器は、
前記ｍ個の暗号化されたコンテンツ鍵，前記ｍ個の暗号化された第１データ，および前記第２データを格納する第１記憶領域と、
前記第１記憶領域よりもセキュリティレベルが高く、且つ、前記ドメイン鍵情報を格納する第２記憶領域とを含む
ことを特徴とする改竄検出方法。
【請求項３１】
請求項２３または請求項２８において、
前記ｍ個のコンテンツ鍵情報の各々では、前記第１データは、当該コンテンツ鍵情報のうち予め指定された位置に配置されている
ことを特徴とする改竄検出方法。
【請求項３２】
請求項２３または請求項２８において、
前記ｍ個のコンテンツ鍵情報の各々では、前記第１データは、当該コンテンツ鍵情報の最下位に位置する所定長のデータとして配置されている
ことを特徴とする改竄検出方法。
【請求項３３】
請求項２３または請求項２８において、
前記鍵情報は、ｍ個のコンテンツ鍵情報と一対一で対応するｍ個の付加情報をさらに含み、
前記ｍ個の付加情報の各々には、前記部分検査用データが所定位置に格納されており、
前記ステップ（Ｂ）では、
前記ホスト機器が、前記ステップ（Ａ）において抽出された第１データと当該第１データが抽出されたコンテンツ鍵情報に対応する付加情報に格納された部分検査用データとを比較する
ことを特徴とする改竄検出方法。
【請求項３４】
ホスト機器によって、ターゲット機器に格納された鍵情報における改竄の有無を検出する改竄検出方法であって、
前記鍵情報は、ドメイン鍵情報と、ｍ個（ｍは自然数）のコンテンツ鍵情報と、ｍ個の部分検査用データとを含み、
前記ｍ個のコンテンツ鍵情報の各々は、コンテンツを暗号化および復号化するために使用されるコンテンツ鍵と含み、
前記ドメイン鍵情報は、前記ｍ個のコンテンツ鍵を暗号化および復号化するために使用されるドメイン鍵と、全体検査用データとを含み、
前記ｍ個の部分検査用データは、前記ｍ個のコンテンツ鍵情報と一対一で対応し、
前記ｍ個のコンテンツ鍵情報の各々は、暗号化されており、
前記改竄検出方法は、
前記ホスト機器が、前記ターゲット機器に格納された前記ｍ個の暗号化されたコンテンツ鍵情報のうちいずれか１つに対して第１演算を実行して、第１データを生成するステップ（Ａ）と、
前記ホスト機器が、前記ステップ（Ａ）において生成された第１データと前記ターゲット機器に格納された前記ｍ個の部分検査用データのうち前記ステップ（Ａ）において第１演算が実行されたコンテンツ鍵情報に対応する部分検査用データとを比較するステップ（Ｂ）と、
前記ホスト機器が、前記ターゲット機器に格納された前記ｍ個の部分検査用データを含む連結データに対して第２演算を実行して、第２データを生成するステップ（Ｃ）と、
前記ホスト機器が、前記ステップ（Ｃ）において生成された第２データと前記ターゲット機器に格納された前記ドメイン鍵情報に含まれる全体検査用データとを比較するステップ（Ｄ）と、
前記ホスト機器が、前記ステップ（Ｂ）において前記第１データと前記部分検査用データとが一致し、且つ、前記ステップ（Ｄ）において前記第２データと前記全体検査用データとが一致すると、前記ターゲット機器に格納された前記鍵情報が改竄されていないと判断するステップ（Ｅ）とを備える
ことを特徴とする改竄検出方法。
【請求項３５】
請求項３４において、
前記ｍ個の部分検査用データの各々は、当該部分検査用データに対応する改竄されていないコンテンツ鍵情報に対して前記第１演算を実行することによって得られるデータに相当し、
前記全体検査用データは、改竄されていないｍ個の部分検査用データを含む連結データに対して前記第２演算を実行することによって得られるデータに相当する
ことを特徴とする改竄検出方法。
【請求項３６】
請求項３４において、
前記ターゲット機器は、
前記ｍ個の暗号化されたコンテンツ鍵情報と前記ｍ個の部分検査用データとを格納する第１記憶領域と、
前記第１記憶領域よりもセキュリティレベルが高く、且つ、前記ドメイン鍵情報を格納する第２記憶領域とを含む
ことを特徴とする改竄検出方法。
【請求項３７】
請求項３４において、
前記第１および第２演算の各々は、ハッシュ演算である
ことを特徴とする改竄検出方法。
【請求項３８】
請求項２５，請求項３０，請求項３６のうちいずれか１つにおいて、
前記鍵情報は、前記ドメイン鍵情報を暗号化および復号化するために使用される認証鍵をさらに含み、
前記ターゲット機器は、前記第２領域よりもセキュリティレベルが高く、且つ、前記認証鍵を格納する第３記憶領域をさらに含み、
前記ドメイン鍵情報は、暗号化されている
ことを特徴とする改竄検出方法。
【請求項３９】
請求項３８において、
前記第１記憶領域は、前記ホスト機器が任意にアクセスすることができ、
前記第２記憶領域は、前記ホスト機器と前記ターゲット機器との間で認証が成立すると、当該ホスト機器がアクセスすることができ、
前記第３記憶領域は、前記ホスト機器と前記ターゲット機器との間で相互認証を実行するために使用される
ことを特徴とする改竄検出方法。
【請求項４０】
請求項３９において、
前記第３記憶領域は、前記認証鍵が書き込まれた後に書き換えができなくなるように処理される
ことを特徴とする改竄検出方法。
【請求項４１】
請求項２３，請求項２８，請求項３４のうちいずれか１つにおいて、
前記ターゲット機器は、前記ホスト機器からのクロックおよび動作命令に従って動作する可搬型記憶デバイスである
ことを特徴とする改竄検出方法。
【請求項４２】
ターゲット機器に格納された鍵情報における改竄の有無を検出する改竄検出装置であって、
前記鍵情報は、ドメイン鍵情報と、ｍ個（ｍは自然数）のコンテンツ鍵情報とを含み、
前記ｍ個のコンテンツ鍵情報の各々は、コンテンツを暗号化および復号化するために使用されるコンテンツ鍵と、改竄検出処理のために使用される部分検査用データに相当する第１データとを含み、
前記ドメイン鍵情報は、前記ｍ個のコンテンツ鍵を暗号化および復号化するために使用されるドメイン鍵と、全体検査用データとを含み、
前記ｍ個のコンテンツ鍵情報の各々は、暗号化されており、
前記改竄検出装置は、
前記ｍ個の暗号化されたコンテンツ鍵情報のうちいずれか１つを前記ドメイン鍵を用いて連鎖復号化し、当該復号化されたコンテンツ鍵情報の中から前記第１データを抽出するデータ処理部と、
前記データ処理部によって抽出された第１データと予め用意された部分検査用データとを比較する第１比較部と、
前記ｍ個のコンテンツ鍵情報の各々の中から前記第１データを暗号化されたままの状態で抽出し、当該抽出されたｍ個の第１データを含む連結データに対して所定演算を実行して、第２データを生成するデータ生成部と、
前記データ生成部によって生成された第２データと前記ドメイン鍵情報に含まれる全体検査用データとを比較する第２比較部と、
前記第１比較部において前記第１データと前記部分検査用データとが一致し、且つ、前記第２比較部において前記第２データと前記全体検査用データとが一致すると、前記鍵情報が改竄されていないと判断する改竄判断部とを備える
ことを特徴とする改竄検出装置。
【請求項４３】
ターゲット機器に格納された鍵情報における改竄の有無を検出する改竄検出装置であって、
前記鍵情報は、ドメイン鍵情報と、ｍ個（ｍは自然数）のコンテンツ鍵情報と、ｍ個の暗号化された第１データと、第２データとを含み、
前記ｍ個のコンテンツ鍵情報の各々は、コンテンツを暗号化および復号化するために使用されるコンテンツ鍵と、改竄検出処理のために使用される部分検査用データに相当する第１データとを含み、
前記ドメイン鍵情報は、前記ｍ個のコンテンツ鍵を暗号化および復号化するために使用されるドメイン鍵と、全体検査用データとを含み、
前記ｍ個のコンテンツ鍵情報の各々は、暗号化されており、
前記改竄検出装置は、
前記ｍ個の暗号化されたコンテンツ鍵情報のうちいずれか１つを前記ドメイン鍵を用いて連鎖復号化し、当該復号化されたコンテンツ鍵情報の中から前記第１データを抽出する第１データ処理部と、
前記第１データ処理部によって抽出された第１データと予め用意された部分検査用データとを比較する第１比較部と、
前記ドメイン鍵情報に含まれる全体検査用データと前記ｍ個の暗号化された第１データとを含む連結データを前記ドメイン鍵を用いて連鎖復号化し、当該復号化された連結データの中から当該全体検査用データを抽出する第２データ処理部と、
前記第２データと前記第２データ処理部によって抽出された全体検査用データとを比較する第２比較部と、
前記第１比較部において前記第１データと前記部分検査用データとが一致し、且つ、前記第２比較部において前記第２データと前記全体検査用データとが一致すると、前記鍵情報が改竄されていないと判断する改竄判断部とを備える
ことを特徴とする改竄検出装置。
【請求項４４】
ターゲット機器に格納された鍵情報における改竄を有無を検出する改竄検出装置であって、
前記鍵情報は、ドメイン鍵情報と、ｍ個（ｍは自然数）のコンテンツ鍵情報と、ｍ個の部分検査用データとを含み、
前記ｍ個のコンテンツ鍵情報の各々は、コンテンツを暗号化および復号化するために使用されるコンテンツ鍵と含み、
前記ドメイン鍵情報は、前記ｍ個のコンテンツ鍵を暗号化および復号化するために使用されるドメイン鍵と、全体検査用データとを含み、
前記ｍ個の部分検査用データは、前記ｍ個のコンテンツ鍵情報と一対一で対応し、
前記ｍ個のコンテンツ鍵情報の各々は、暗号化されており、
前記改竄検出装置は、
前記ｍ個の暗号化されたコンテンツ鍵情報のうちいずれか１つに対して第１演算を実行して、第１データを生成する第１演算部と、
前記第１演算部によって生成された第１データと前記ｍ個の部分検査用データのうち前記第１演算部によって第１演算が実行されたコンテンツ鍵情報に対応する部分検査用データとを比較する第１比較部と、
前記ｍ個の部分検査用データを含む連結データに対して第２演算を実行して、第２データを生成する第２演算部と、
前記第２演算部によって生成された第２データと前記ドメイン鍵情報に含まれる全体検査用データとを比較する第２比較部と、
前記第１比較部において前記第１データと前記部分検査用データとが一致し、且つ、前記第２比較部において前記第２データと前記全体検査用データとが一致すると、前記ｍ個のコンテンツ鍵情報が改竄されていないと判断する改竄判断部とを備える
ことを特徴とする改竄検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ターゲット機器等に格納される機密情報における改竄の有無を検出する方法および装置，改竄の有無を検出される機密情報を生成する方法および装置，改竄の有無を検出される機密情報のデータ構造に関する。
【背景技術】
【０００２】
著作物や個人情報等に関するコンテンツ（例えば、音楽データや映像データに代表されるコンテンツ）は、不正なコピーあるいは外部への漏洩を防ぐ必要がある。このようなコンテンツは、暗号化された状態でターゲット機器に格納される。ホスト機器がターゲット機器に格納された暗号化コンテンツを扱う際には、ホスト機器は、ターゲット機器との間で認証処理を実行する。この認証が失敗すると、ホスト機器は、暗号化コンテンツを復号化するためのコンテンツ鍵をターゲット機器から入手することができない。一方、この認証が成功すると、ホスト機器は、ターゲット機器に格納されたコンテンツにアクセスして、そのコンテンツを利用することができる。このような構成にすることにより、不正なホスト機器による暗号化コンテンツの復号化を防いでいる。なお、ここで、ターゲット機器は、例えば、ＳＤカードのようなメモリカードである。また、ホスト機器は、メモリカードからデータを読み出す半導体集積回路，その半導体集積回路を実装したセット機器，あるいはターゲット機器へとコンテンツを配信するコンテンツ配信機器である。
【０００３】
次に、図３２を参照しつつ、従来におけるターゲット機器の格納領域およびその格納領域に格納される機密情報について説明する。なお、以下の説明において、機密情報とはコンテンツを再生するために必要な情報（例えば、鍵情報等）を示す。
【０００４】
ターゲット機器内の格納領域は、システム領域９０１，保護領域９０２，および通常領域９０３に分けられている。システム領域９０１は、ターゲット機器とホスト機器との間で認証を行うための情報が格納される領域である。ホスト機器は、システム領域９０１へのアクセスが許可された所定の処理でなければ、システム領域９０１にアクセスすることができない。保護領域９０２は、ユーザ（ホスト機器）が任意にアクセスをすることができず、且つ、認証に成功して初めてアクセスすることができる領域である。通常領域９０３は、ユーザが任意にアクセスすることができる領域である。システム領域９０１には、認証鍵が格納される。保護領域９０２には、暗号化コンテンツ鍵が格納される。通常領域９０３には、暗号化コンテンツが格納される。
【０００５】
また、ターゲット機器に多くのコンテンツを格納することができるように、コンテンツを格納する通常領域９０３の格納サイズは、保護領域９０２の格納サイズよりも大きく設定されている。したがって、保護領域９０２に格納することができるデータ量は、通常領域９０３に格納することができるデータ量よりも少ない。
【０００６】
次に、ホスト機器がターゲット機器内の暗号化コンテンツを復号化して利用する方法について説明する。まず、ホスト機器は、自己に格納している認証鍵とターゲット機器に格納された認証鍵とを用いて、認証を行う。認証に成功すると、ホスト機器は、これらの認証鍵を用いて認証中間鍵を生成する。この認証中間鍵は、暗号化コンテンツ鍵を復号化するための鍵として規定されている。したがって、ホスト機器は、ターゲット機器から暗号化コンテンツ鍵を取得するとともに、その暗号化コンテンツ鍵を認証中間鍵で復号化して、平文（暗号化されていない状態を示す）のコンテンツ鍵を生成する。さらに、ホスト機器は、暗号化コンテンツをターゲット機器から取得し、平文のコンテンツ鍵を用いてその暗号化コンテンツを復号化して、平文のコンテンツを生成する。これにより、コンテンツが利用可能になる。以上のような処理を実行することにより、認証に成功したホスト機器のみがターゲット機器に格納された暗号化コンテンツを利用することができる。
【０００７】
上述のコンテンツの復号化では、認証に成功すれば認証中間鍵が生成されるので、認証にさえ成功すれば暗号化コンテンツを復号化することが可能である。すなわち、ターゲット機器に格納されている暗号化コンテンツは、正当なホスト機器であれば利用することができる。
【０００８】
一方で、近年では、電子配信を利用して暗号化コンテンツを特定のユーザに送信することによって、その特定ユーザのみにコンテンツを利用させるといった動きが活発である。しかし、このような電子配信での利用を想定した場合、特定ユーザに送信される暗号化コンテンツは、その特定ユーザが所有する特定のホスト機器でしか復号化できないようにする必要がある。しかし、上述の方法ではその要求を満足することができない。
【０００９】
そのため、有効なドメイン鍵を特定のユーザにのみ設定する方法が新たに考えられている。ドメイン鍵が設定された場合、コンテンツはコンテンツ鍵で暗号化され、コンテンツ鍵は認証中間鍵ではなく特定ユーザのみに設定されたドメイン鍵を用いて暗号化されることになる。また、ドメイン鍵自体も、認証中間鍵，あるいは認証中間鍵の情報を用いて生成される別の鍵を用いて、暗号化してターゲット機器に格納される。これにより、ドメイン鍵自体の秘匿性も確保される。
【００１０】
図３３を参照しつつ、このようにドメイン鍵を設定した場合における、ターゲット機器内の格納領域に格納される機密情報について説明する。ドメイン鍵を設定した場合であっても従来のターゲット機器との互換性を保つために、ターゲット機器内の領域の分割方法は同一でなくてはならない。また、ドメイン鍵とコンテンツ鍵との双方を保護領域９０２に格納してしまうと、ドメイン鍵は、コンテンツ鍵の復号化のための鍵であるにもかかわらず、コンテンツ鍵と同一のセキュリティレベルの領域に格納されてしまう。したがって、セキュリティと互換性とを保つために、ドメイン鍵を設定した場合は、ドメイン鍵は、暗号化された状態で、保護領域９０２に格納される。また、コンテンツ鍵は、暗号化された状態で、通常領域９０３に格納される。
【００１１】
図３４を参照しつつ、ターゲット機器内に格納される機密情報についてさらに詳細に説明する。ターゲット機器内の保護領域９０２には、ｎ個（ｎは１以上の整数）の暗号化されたドメイン鍵Ku(1)〜Ku(n)が格納されている。ドメイン鍵Ku(1)〜Ku(n)には、ｎ個のドメイン鍵管理情報UR[u](1)〜UR[u](n)が一対一で付与されている。
【００１２】
ターゲット機器の通常領域９０３には、複数のコンテンツ鍵が格納されている。コンテンツ鍵の各々は、ドメイン鍵Ku(1)〜Ku(n)のうちいずれか１つに対応する。すなわち、１つのドメイン鍵を用いて、複数の暗号化コンテンツ鍵を復号化することができる。例えば、ドメイン鍵Ku(1)には、ｍ個（ｍは１以上の整数）のコンテンツ鍵Kt(1-1)〜Kt(1-m)が対応する。コンテンツ鍵Kt(1-1)〜Kt(1-m)には、ｍ個のコンテンツ鍵管理情報UR[t](1-1)〜UR[t](1-m)とｍ個の付加情報info(1-1)〜info(1-m)とが一対一で付与されている。
【００１３】
なお、図３４では、ドメイン鍵Ku(1)〜Ku(n)とドメイン鍵管理情報UR[u](1)〜UR[u](n)との集合は「ドメイン鍵群UKURE」と示し、コンテンツ鍵Kt(1-1)〜Kt(1-m)，コンテンツ鍵管理情報UR[t](1-1)〜UR[t](1-m)，および付加情報info(1-1)〜info(1-m)の集合は「コンテンツ鍵群TKURE(1)」と示されている。
【００１４】
暗号化されたコンテンツを復号化するためには、平文のコンテンツ鍵が必要である。また、暗号化されたコンテンツ鍵を復号化するためには、ドメイン鍵が必要である。どのコンテンツ鍵がどのドメイン鍵によって復号化できるのかを素早く検索するために、通常領域には鍵対応テーブルAddress Listも格納されている。鍵対応テーブルAddress Listには、ドメイン鍵とコンテンツ鍵との対応関係が記されている。例えば、ドメイン鍵Ku(1)には、そのドメイン鍵を用いて復号化できるコンテンツ鍵Kt(1-1)〜Kt(1-m)が対応付けられている。
【００１５】
このように、暗号化コンテンツ鍵は、通常領域９０３に格納される。通常領域９０３はユーザが任意にアクセスすることが可能な領域であるので、通常領域９０３に格納された暗号化コンテンツ鍵の正当性を保証すること、言い換えれば改竄を検査することが重要となってくる。
【００１６】
ターゲット機器に格納された機密情報の改竄を検査する場合、機密情報毎にハッシュ関数を用いる方法がある。ここで、機密情報に関連する全ての情報についてハッシュ演算を実行することによって、機密情報における改竄の有無を検出する手順について説明する。なお、ここで、「Enc」は、暗号化された状態を表す接頭語として使用する。例えば、「EncUR[u](1)」は、暗号化されたドメイン鍵管理情報UR[u](1)を示す。
【００１７】
まず、ドメイン鍵Ku(1)によって復号化することができる暗号化コンテンツ鍵EncKt(1-1)〜EncKt(1-m)，それらの暗号化コンテンツ鍵EncKt(1-1)〜EncKt(1-m)に対応する暗号化コンテンツ鍵管理情報EncUR[t](1-1)〜EncUR[t](1-m)，およびそれら暗号化コンテンツ鍵EncKt(1-1)〜EncKt(1-m)に対応する付加情報info(1-1)〜info(1-m)をすべて連結してハッシュ演算を実行する。そのハッシュ演算によって得られたハッシュ値Hash(Ku(1))をドメイン鍵管理情報UR[u](1)に格納する。
【００１８】
次に、暗号化コンテンツ鍵EncKt(1-1)における改竄を検査する際には、ホスト機器は、鍵対応テーブルAddress Listを参照して、ターゲット機器内の通常領域９０３からコンテンツ鍵群TKURE(1)を読み出し、ハッシュ演算を実行する。一方、ホスト機器は、認証によって得られた認証中間鍵を用いて、ターゲット機器内の保護領域９０２に格納された暗号化ドメイン鍵管理情報EncUR[u](1)を復号化する。次に、ホスト機器は、復号化によって得られたドメイン鍵管理情報UR[u](1)の中からハッシュ値Hash(Ku(1))を抽出する。次に、ホスト機器は、ハッシュ演算によって算出したハッシュ値とドメイン鍵管理情報UR[u](1)の中から抽出したハッシュ値とを比較する。ホスト機器は、両者が一致すれば改竄されていないと判断して、暗号化コンテンツ鍵を復号化する。一方、ホスト機器は、両者が不一致であれば改竄されたものとして暗号化コンテンツを復号化しない。
【特許文献１】特開２００１−２０３６８６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１９】
しかしながら、図３４に示したような改竄検出方法では、処理量が非常に大きくなる。すなわち、１つのコンテンツ鍵（コンテンツ鍵Kt(1-1)）の改竄をチェックするためには、ホスト機器は、同一のドメイン鍵で復号化可能な全てのコンテンツ鍵とそれに付随する全ての情報（コンテンツ鍵群TKURE(1)）をターゲット機器から読み出し、その読み出した情報に対してハッシュ演算を実行する必要がある。特に、ターゲット機器に格納されるコンテンツの個数が増加すると、それに従って、コンテンツ鍵の個数も増加する。その結果、１つのドメイン鍵に対応付けられるコンテンツ鍵は増加していくので、処理時間は、さらに増加していく。
【００２０】
また、コンテンツとコンテンツ鍵とが一組のデータとして、ネットワーク等を介して配信されることも想定される。そのような場合には、１つのドメイン鍵に対応付けられるコンテンツ鍵の追加／削除が生じる。しかしながら、従来の方法によれば、コンテンツ鍵を追加／削除する場合、１つのドメイン鍵（ドメイン鍵Ku(1)）に対応付けられる全てのコンテンツ鍵とそれに付随する全ての情報（コンテンツ鍵群TKURE(1)）についてハッシュ演算を再度やりなおし、算出されたハッシュ値をそのドメイン鍵に付随するドメイン鍵管理情報（ドメイン鍵管理情報UR[u](1)）に埋め込む必要がある。このように、コンテンツ鍵の追加／削除のたびに、膨大な処理を実行する必要がある。
【００２１】
ここで、同一のドメイン鍵で復号化可能な全てのコンテンツ鍵とそれに付随する全ての情報（コンテンツ鍵群TKURE(1)）に対してハッシュ演算を実行するのではなく、１つのドメイン鍵に関連づけられた複数のコンテンツ鍵の各々に対して予めハッシュ演算を実行してハッシュ値を算出しておき、算出された複数のハッシュ値をドメイン鍵管理情報に埋め込んでおく方法も考えられる。
【００２２】
しかし、コンテンツ鍵の個数が多くなると算出されるハッシュ値の個数も多くなるので、格納サイズが小さい保護領域９０２に対してすべてのハッシュ値を格納することは困難である。この場合、保護領域９０２の格納サイズを拡大する必要があり、通常領域９０３の格納サイズが小さくなってしまうので、好ましくない。
【００２３】
そこで、本発明は、所定領域に格納されるデータ量を低減し、且つ、改竄検出時における処理量を低減することを目的とする。さらに詳しくは、所定領域に格納されるデータ量が少なく且つ改竄検出時における処理量が少ない鍵情報のデータ構造，その鍵情報を生成する方法および装置，その鍵情報における改竄を検出する方法および装置，その鍵情報を更新する方法を提供することを目的とする。
【課題を解決するための手段】
【００２４】
この発明の１つの局面に従うと、鍵情報生成方法では、ホスト機器によって鍵情報が生成される。鍵情報は、ドメイン鍵情報と、ｍ個（ｍは自然数）のコンテンツ鍵情報とを含む。鍵情報は、改竄の有無を検出される。ホスト機器は、データ生成部と、データ書込部とを備える。データ生成部は、鍵情報を生成する。データ書込部は、データ生成部によって生成された鍵情報をターゲット機器に書き込む。ターゲット機器は、第１記憶領域と、第１記憶領域よりもセキュリティレベルが高い第２記憶領域とを含む。ｍ個のコンテンツ鍵情報の各々は、コンテンツを暗号化および復号化するために使用されるコンテンツ鍵を含む。ドメイン鍵情報は、ｍ個のコンテンツ鍵情報を暗号化および復号化するために使用されるドメイン鍵を含む。上記生成方法は、ステップ（Ａ）〜ステップ（Ｅ）を備える。ステップ（Ａ）では、データ生成部が、ｍ個のコンテンツ鍵情報の各々に対して、第１データを追加し、ドメイン鍵を用いてそのｍ個のコンテンツ鍵情報の各々を連鎖暗号化する。第１データは、改竄検出処理のために使用される部分検査用データに相当する。ステップ（Ｂ）では、データ生成部が、ステップ（Ａ）において暗号化されたｍ個のコンテンツ鍵情報の各々の中から第１データを暗号化されたままの状態で抽出する。ステップ（Ｃ）では、データ生成部が、ステップ（Ｂ）において抽出されたｍ個の第１データを含む連結データに対して所定演算を実行して、第２データを生成する。ステップ（Ｄ）では、データ生成部が、ステップ（Ｃ）において生成された第２データを全体検査用データとしてドメイン鍵情報に追加する。ステップ（Ｅ）では、データ書込部が、上記ｍ個の暗号化されたコンテンツ鍵情報を第１記憶領域に書き込み、且つ、上記ドメイン鍵情報を第２記憶領域に書き込む。
【００２５】
上記鍵情報生成方法では、改竄検出処理のために使用されるデータが複数段階に分けて生成される。また、改竄検出処理のために使用されるデータのすべてが所定領域（セキュリティレベルが比較的高い第２記憶領域）に格納されるのではなく、最終段階の検査用データが所定領域に格納される。これにより、所定領域に格納されるデータ量を低減することができる。また、ある１つのコンテンツ鍵情報に対して所定処理を実行して得られる第１データと予め用意された部分検査用データとの比較を行えば、そのコンテンツ鍵情報における改竄の有無を検出できる。また、ｍ個の第１データに基づいて生成される第２データと全体検証用データとの比較を行えば、鍵情報全体における改竄の有無を検出することができる。したがって、鍵情報全体に対して処理を実行する必要がないので、改竄検出処理時の処理量を低減することができる。
【００２６】
また、鍵情報生成方法では、ホスト機器によって鍵情報が生成される。鍵情報は、ドメイン鍵情報と、ｍ個のコンテンツ鍵情報とを含む。鍵情報は、改竄の有無を検出される。ホスト機器は、データ生成部と、データ書込部とを備える。データ生成部は、鍵情報を生成する。データ書込部は、データ生成部によって生成された鍵情報をターゲット機器に書き込む。ターゲット機器は、第１記憶領域と、第１記憶領域よりもセキュリティレベルが高い第２記憶領域とを含む。ｍ個のコンテンツ鍵情報の各々は、コンテンツを暗号化および復号化するために使用されるコンテンツ鍵を含む。ドメイン鍵情報は、ｍ個のコンテンツ鍵情報を暗号化および復号化するために使用されるドメイン鍵を含む。上記生成方法は、ステップ（Ａ）〜ステップ（Ｅ）を備える。ステップ（Ａ）では、データ生成部が、ｍ個のコンテンツ鍵情報の各々に対して、第１データを追加し、ドメイン鍵を用いてそのｍ個のコンテンツ鍵情報の各々を連鎖暗号化する。第１データは、改竄検出処理のために使用される部分検査用データに相当する。ステップ（Ｂ）では、データ生成部が、ステップ（Ａ）において暗号化されたｍ個のコンテンツ鍵情報の各々の中から第１データを暗号化されたままの状態で抽出する。ステップ（Ｃ）では、データ生成部が、第２データとステップ（Ｂ）において抽出されたｍ個の第１データとを含む連結データをドメイン鍵を用いて連鎖暗号化し、その暗号化された連結データの中から第２データを暗号化されたままの状態で抽出する。ステップ（Ｄ）では、データ生成部が、ステップ（Ｃ）において抽出された第２データを全体検査用データとしてドメイン鍵情報に追加する。ステップ（Ｅ）では、データ書込部が、ステップ（Ｃ）において暗号化された連結データに含まれるｍ個の暗号化された第１データを第１記憶領域に書き込む。また、ステップ（Ｅ）では、データ書込部が、上記ｍ個の暗号化されたコンテンツ鍵情報を第１記憶領域に書き込み、且つ、上記ドメイン鍵情報を第２記憶領域に書き込む。
【００２７】
また、鍵情報生成方法では、ホスト機器によって鍵情報が生成される。鍵情報は、ドメイン鍵情報と、ｍ個のコンテンツ鍵情報とを含む。鍵情報は、改竄の有無を検出される。ホスト機器は、データ生成部と、データ書込部とを備える。データ生成部は、鍵情報を生成する。データ書込部は、データ生成部によって生成された鍵情報をターゲット機器に書き込む。ターゲット機器は、第１記憶領域と、第１記憶領域よりもセキュリティレベルが高い第２記憶領域とを含む。ｍ個のコンテンツ鍵情報の各々は、コンテンツを暗号化および復号化するために使用されるコンテンツ鍵を含む。ドメイン鍵情報は、ｍ個のコンテンツ鍵情報を暗号化および復号化するために使用されるドメイン鍵を含む。上記生成方法は、ステップ（Ａ）〜ステップ（Ｅ）を備える。ステップ（Ａ）では、データ生成部が、ドメイン鍵を用いてｍ個のコンテンツ鍵情報の各々を暗号化する。ステップ（Ｂ）では、データ生成部が、ステップ（Ａ）によって暗号化されたｍ個のコンテンツ鍵情報の各々に対して第１演算を実行して、ｍ個の第１データを生成する。ステップ（Ｃ）では、データ生成部が、ステップ（Ｂ）において生成されたｍ個の第１データを含む連結データに対して第２演算を実行して、第２データを生成する。ステップ（Ｄ）では、データ生成部が、ステップ（Ｃ）において生成された第２データを全体検査用データとしてドメイン鍵情報に追加する。ステップ（Ｅ）では、データ書込部が、上記ｍ個の第１データをｍ個の部分検査用データとして第１記憶領域に書き込む。また、ステップ（Ｅ）では、データ書込部が、上記ｍ個の暗号化されたコンテンツ鍵情報を第１記憶領域に書き込み、且つ、上記ドメイン鍵情報を第２記憶領域に書き込む。
【００２８】
この発明のもう１つの局面に従うと、鍵情報更新方法では、ホスト機器によって鍵情報が更新される。鍵情報は、改竄の有無を検出される。ホスト機器は、データ更新部と、データ書込部とを備える。データ更新部は、鍵情報に対して新たなコンテンツ鍵情報を追加するとともに、その鍵情報を更新する。データ書込部は、データ更新部によって更新された鍵情報をターゲット機器に書き込む。ターゲット機器は、第１記憶領域と、第１記憶領域よりもセキュリティレベルが高い第２記憶領域とを含む。鍵情報は、ドメイン鍵情報と、ｍ個のコンテンツ鍵情報とを含む。ｍ個のコンテンツ鍵情報の各々は、コンテンツを暗号化および復号化するために使用されるコンテンツ鍵と、改竄検出処理のために使用される部分検査用データに相当する第１データとを含む。ドメイン鍵情報は、ｍ個のコンテンツ鍵情報を暗号化および復号化するために使用されるドメイン鍵と、全体検査用データとを含む。ｍ個のコンテンツ鍵情報の各々は、暗号化されている。上記更新方法は、ステップ（Ａ）〜ステップ（Ｅ）を備える。ステップ（Ａ）では、データ更新部が、新たなコンテンツ鍵情報に対して第１データを追加し、そのコンテンツ鍵情報をドメイン鍵を用いて連鎖暗号化する。ステップ（Ｂ）では、データ更新部が、ステップ（Ａ）において暗号化されたコンテンツ鍵情報の中から第１データを暗号化されたままの状態で抽出する。ステップ（Ｃ）では、データ更新部が、ステップ（Ｂ）において抽出された第１データとｍ個の暗号化されたコンテンツ鍵情報の各々に含まれる第１データとを含む連結データに対して所定演算を実行して、第２データを生成する。ステップ（Ｄ）では、データ更新部が、ドメイン鍵情報に含まれる全体検査用データをステップ（Ｃ）において生成された第２データに書き換える。ステップ（Ｅ）では、データ書込部が、上記ｍ個の暗号化されたコンテンツ鍵情報と暗号化された新たなコンテンツ鍵情報とを第１記憶領域に書き込み、且つ、上記ドメイン鍵情報を第２記憶領域に書き込む。
【００２９】
上記鍵情報更新方法では、鍵情報を更新するときに、鍵情報全体に対して所定処理を実行する必要がない。したがって、鍵情報の更新時における処理量を低減することができる。また、更新された鍵情報では、改竄検出処理のために使用されるデータのすべてが所定領域（セキュリティレベルが比較的高い第２記憶領域）に格納されるのではなく、最終段階の検査用データが所定領域に格納される。これにより、所定領域に格納されるデータ量を低減することができる。また、更新された鍵情報に対して改竄検出処理を実行する場合、鍵情報全体に対して処理する必要がないので、改竄検出時における処理量を低減することができる。
【００３０】
また、鍵情報更新方法では、ホスト機器によって鍵情報が更新される。鍵情報は、改竄の有無を検出される。ホスト機器は、データ更新部と、データ書込部とを備える。データ更新部は、鍵情報に対して新たなコンテンツ鍵情報を追加するとともに、その鍵情報を更新する。データ書込部は、データ更新部によって更新された鍵情報をターゲット機器に書き込む。ターゲット機器は、第１記憶領域と、第１記憶領域よりもセキュリティレベルが高い第２記憶領域とを含む。鍵情報は、ドメイン鍵情報と、ｍ個のコンテンツ鍵情報と、ｍ個の暗号化された第１データと、第２データとを含む。ｍ個のコンテンツ鍵情報の各々は、コンテンツを暗号化および復号化するために使用されるコンテンツ鍵と、改竄検出処理のために使用される部分検査用データに相当する第１データとを含む。ドメイン鍵情報は、ｍ個のコンテンツ鍵情報を暗号化および復号化するために使用されるドメイン鍵と、全体検査用データとを含む。ｍ個のコンテンツ鍵情報の各々は、暗号化されている。上記更新方法は、ステップ（Ａ）〜ステップ（Ｅ）を備える。ステップ（Ａ）では、データ更新部が、新たなコンテンツ鍵情報に対して第１データを追加し、そのコンテンツ鍵情報をドメイン鍵を用いて連鎖暗号化する。ステップ（Ｂ）では、データ更新部が、ステップ（Ａ）において暗号化されたコンテンツ鍵情報の中から第１データを暗号化されたままの状態で抽出する。ステップ（Ｃ）では、データ更新部が、第２データ，ｍ個の暗号化された第１データ，およびステップ（Ｂ）において抽出された第１データを含む連結データを、ドメイン鍵を用いて連鎖暗号化し、その暗号化された連結データの中から第２データを暗号化されたままの状態で抽出する。ステップ（Ｄ）では、データ更新部が、ドメイン鍵情報に含まれる全体検査用データをステップ（Ｃ）において抽出された第２データに書き換える。ステップ（Ｅ）では、データ書込部が、ステップ（Ｃ）において暗号化された連結データに含まれる（ｍ＋１）個の第１データを第１記憶領域に書き込む。また、ステップ（Ｅ）では、データ書込部が、上記ｍ個の暗号化されたコンテンツ鍵情報および上記暗号化された新たなコンテンツ鍵情報を第１記憶領域に書き込み、且つ、上記ドメイン鍵情報を第２記憶領域に書き込む。
【００３１】
また、鍵情報更新方法では、ホスト機器によって鍵情報が更新される。鍵情報は、改竄の有無を検出される。ホスト機器は、データ更新部と、データ書込部とを備える。データ更新部は、鍵情報に対して新たなコンテンツ鍵情報を追加するとともに、その鍵情報を更新する。データ書込部は、データ更新部によって更新された鍵情報をターゲット機器に書き込む。上記ターゲット機器は、第１記憶領域と、第１記憶領域よりもセキュリティレベルが高い第２記憶領域とを含む。鍵情報は、ドメイン鍵情報と、ｍ個のコンテンツ鍵情報と、ｍ個の部分検査用データとを含む。ｍ個のコンテンツ鍵情報の各々は、コンテンツを暗号化および復号化するために使用されるコンテンツ鍵を含む。ドメイン鍵情報は、ｍ個のコンテンツ鍵情報を暗号化および復号化するために使用されるドメイン鍵と、全体検査用データとを含む。ｍ個のコンテンツ鍵情報の各々は、暗号化されている。上記更新方法は、ステップ（Ａ）〜ステップ（Ｅ）を備える。ステップ（Ａ）では、データ更新部が、新たなコンテンツ鍵情報を暗号化する。ステップ（Ｂ）では、データ更新部が、ステップ（Ａ）において暗号化された新たなコンテンツ鍵に対して第１演算を実行して、第１データを生成する。ステップ（Ｃ）では、データ更新部が、ｍ個の部分検査用データとステップ（Ｂ）において生成された第１データとを含む連結データに対して第２演算を実行して、第２データを生成する。ステップ（Ｄ）では、データ更新部が、ドメイン鍵情報に含まれる全体検査用データをステップ（Ｃ）において生成された第２データに書き換える。ステップ（Ｅ）では、データ書込部が、ｍ個の部分検査用データと上記第１データとを（ｍ＋１）個の部分検査用データとして第１記憶領域に書き込む。また、ステップ（Ｅ）では、データ書込部が、上記ｍ個の暗号化されたコンテンツ鍵情報および上記暗号化された新たなコンテンツ鍵情報を第１記憶領域に書き込み、且つ、上記ドメイン鍵情報を第２記憶領域に書き込む。
【００３２】
また、鍵情報更新方法では、ホスト機器によって鍵情報が更新される。鍵情報は、改竄の有無を検出される。ホスト機器は、データ更新部と、データ書込部とを備える。データ更新部は、改竄の有無を検出することができる鍵情報の中からいずれか１つのコンテンツ鍵情報を削除するとともに、その鍵情報を更新する。データ書込部は、データ更新部によって更新された鍵情報をターゲット機器に書き込む。ターゲット機器は、第１記憶領域と、第１記憶領域よりもセキュリティレベルが高い第２記憶領域とを含む。鍵情報は、ドメイン鍵情報と、ｍ個のコンテンツ鍵情報とを含む。ｍ個のコンテンツ鍵情報の各々は、コンテンツを暗号化および復号化するために使用されるコンテンツ鍵と、改竄検出処理のために使用される部分検査用データに相当する第１データとを含む。ドメイン鍵情報は、上記ｍ個のコンテンツ鍵情報を暗号化および復号化するために使用されるドメイン鍵と、全体検査用データとを含む。ｍ個のコンテンツ鍵情報の各々は、暗号化されている。上記更新方法は、ステップ（Ａ）〜ステップ（Ｅ）を備える。ステップ（Ａ）では、データ更新部が、ｍ個の暗号化されたコンテンツ鍵情報のうちいずれか１つを削除する。ステップ（Ｂ）では、データ更新部が、ステップ（Ａ）において削除されなかった（ｍ−１）個の暗号化されたコンテンツ鍵情報の各々に含まれる第１データを暗号化されたままの状態で抽出する。ステップ（Ｃ）では、データ更新部が、ステップ（Ｂ）において抽出された（ｍ−１）個の第１データを含む連結データに対して所定演算を実行して、第２データを生成する。ステップ（Ｄ）では、データ更新部が、ドメイン鍵情報に含まれる全体検査用データをステップ（Ｃ）において生成された第２データに書き換える。ステップ（Ｅ）では、データ書込部が、上記（ｍ−１）個の暗号化されたコンテンツ鍵情報を第１記憶領域に書き込み、且つ、上記ドメイン鍵情報を第２記憶領域に書き込む。
【００３３】
また、鍵情報更新方法では、ホスト機器によって鍵情報が更新される。鍵情報は、改竄の有無を検出される。ホスト機器は、データ更新部と、データ書込部とを備える。データ更新部は、改竄の有無を検出することができる鍵情報の中からいずれか１つのコンテンツ鍵情報を削除するとともに、その鍵情報を更新する。ターゲット機器は、第１記憶領域と、第１記憶領域よりもセキュリティレベルが高い第２記憶領域とを含む。鍵情報は、ドメイン鍵情報と、ｍ個のコンテンツ鍵情報と、ｍ個の暗号化された第１データと、第２データとを含む。ｍ個のコンテンツ鍵情報の各々は、コンテンツを暗号化および復号化するために使用されるコンテンツ鍵と、改竄検出処理のために使用される部分検査用データに相当する第１データとを含む。ドメイン鍵情報は、ｍ個のコンテンツ鍵情報を暗号化および復号化するために使用されるドメイン鍵と、全体検査用データとを含む。ｍ個の暗号化された第１データは、ｍ個のコンテンツ鍵情報と一対一で対応する。ｍ個のコンテンツ鍵情報の各々は、暗号化されている。上記更新方法は、ステップ（Ａ）〜ステップ（Ｆ）を備える。ステップ（Ａ）では、データ更新部が、ｍ個のコンテンツ鍵情報のうちいずれか１つを削除する。ステップ（Ｂ）では、データ更新部が、ステップ（Ａ）において削除されなかった（ｍ−１）個の暗号化されたコンテンツ鍵情報の各々に含まれる第１データを暗号化されたままの状態で抽出する。ステップ（Ｃ）では、データ更新部が、ｍ個の暗号化された第１データのうちステップ（Ａ）において削除されたコンテンツ鍵情報に対応する第１データを削除する。ステップ（Ｄ）では、データ更新部が、第２データとステップ（Ｃ）において削除されなかった（ｍ−１）個の暗号化された第１データとを含む連結データをドメイン鍵を用いて連鎖暗号化し、その暗号化された連結データの中から第２データを暗号化されたままの状態で抽出する。ステップ（Ｅ）では、データ更新部が、ドメイン鍵情報に含まれる全体検査用データをステップ（Ｄ）において抽出された第２データに書き換える。ステップ（Ｆ）では、データ書込部が、ステップ（Ｄ）において暗号化された連結データに含まれる（ｍ−１）個の第１データを第１記憶領域に書き込む。また、ステップ（Ｆ）では、データ書込部が、上記（ｍ−１）個の暗号化されたコンテンツ鍵情報を第１記憶領域に書き込み、且つ、上記ドメイン鍵情報を第２記憶領域に書き込む。
【００３４】
また、鍵情報更新方法では、ホスト機器によって鍵情報が更新される。鍵情報は、改竄の有無を検出される。ホスト機器は、データ更新部と、データ書込部とを備える。データ更新部は、改竄の有無を検出することができる鍵情報の中からいずれか１つのコンテンツ鍵情報を削除するとともに、その鍵情報を更新する。ターゲット機器は、第１記憶領域と、第１記憶領域よりもセキュリティレベルが高い第２記憶領域とを含む。鍵情報は、ドメイン鍵情報と、ｍ個のコンテンツ鍵情報と、ｍ個の部分検査用データとを含む。ｍ個のコンテンツ鍵情報の各々は、コンテンツを暗号化および復号化するために使用されるコンテンツ鍵を含む。ドメイン鍵情報は、ｍ個のコンテンツ鍵情報を暗号化および復号化するために使用されるドメイン鍵と、全体検査用データとを含む。ｍ個の部分検査用データは、ｍ個のコンテンツ鍵情報と一対一で対応する。ｍ個のコンテンツ鍵情報の各々は、暗号化されている。上記更新方法は、ステップ（Ａ）〜ステップ（Ｅ）を備える。ステップ（Ａ）では、データ更新部が、ｍ個の暗号化されたコンテンツ鍵情報のうちいずれか１つを削除する。ステップ（Ｂ）では、データ更新部が、ｍ個の部分検査用データのうちステップ（Ａ）において削除されたコンテンツ鍵情報に対応する部分検査用データを削除する。ステップ（Ｃ）では、データ更新部が、ステップ（Ｂ）において削除されなかった（ｍ−１）個の部分検査用データを含む連結データに対して第２演算を実行して、第２データを生成する。ステップ（Ｄ）では、データ更新部が、ドメイン鍵情報に含まれる全体検査用データをステップ（Ｃ）において生成された第２データに書き換える。ステップ（Ｅ）では、データ書込部が、ステップ（Ｂ）において削除されなかった（ｍ−１）個の部分検査用データを上記第１記憶領域に書き込む。また、ステップ（Ｅ）では、データ書込部が、上記（ｍ−１）個の暗号化されたコンテンツ鍵情報を第１記憶領域に書き込み、且つ、上記ドメイン鍵情報を第２記憶領域に書き込む。
【００３５】
この発明のさらにもう１つの局面に従うと、改竄検出方法では、ホスト機器によって、ターゲット機器に格納された鍵情報における改竄の有無が検出される。鍵情報は、ドメイン鍵情報と、ｍ個（ｍは自然数）のコンテンツ鍵情報とを含む。ｍ個のコンテンツ鍵情報の各々は、コンテンツを暗号化および復号化するために使用されるコンテンツ鍵と、改竄検出処理のために使用される部分検査用データに相当する第１データとを含む。ドメイン鍵情報は、ｍ個のコンテンツ鍵を暗号化および復号化するために使用されるドメイン鍵と、全体検査用データとを含む。ｍ個のコンテンツ鍵情報の各々は、暗号化されている。上記改竄検出方法は、ステップ（Ａ）〜ステップ（Ｅ）を備える。ステップ（Ａ）では、ホスト機器が、ターゲット機器に格納されたｍ個の暗号化されたコンテンツ鍵情報のうちいずれか１つをターゲット機器に格納されたドメイン鍵を用いて連鎖復号化し、その復号化されたコンテンツ鍵情報の中から上記第１データを抽出する。ステップ（Ｂ）では、ホスト機器が、ステップ（Ａ）において抽出された第１データと予め用意された部分検査用データとを比較する。ステップ（Ｃ）では、ホスト機器が、ターゲット機器に格納されたｍ個のコンテンツ鍵情報の各々の中から第１データを暗号化されたままの状態で抽出し、その抽出されたｍ個の第１データを含む連結データに対して所定演算を実行して、第２データを生成する。ステップ（Ｄ）では、ホスト機器が、ステップ（Ｃ）において生成された第２データとターゲット機器に格納されたドメイン鍵情報に含まれる全体検査用データとを比較する。ステップ（Ｅ）では、ホスト機器が、ステップ（Ｂ）において第１データと部分検査用データとが一致し、且つ、ステップ（Ｄ）において第２データと全体検査用データとが一致すると、ターゲット機器に格納された鍵情報が改竄されていないと判断する。
【００３６】
上記改竄検出方法では、鍵情報全体に対して処理を実行する必要がないので、改竄検出処理時の処理量を低減することができる。また、改竄検出処理のために使用されるデータのすべてが所定領域（セキュリティレベルが比較的高い第２記憶領域）に格納されている必要はなく、最終段階で使用される検査用データが所定領域に格納されていれば良い。したがって、所定領域に格納されるデータ量を低減することができる。
【００３７】
また、改竄検出方法では、ホスト機器によって、ターゲット機器に格納された鍵情報における改竄の有無が検出される。鍵情報は、ドメイン鍵情報と、ｍ個のコンテンツ鍵情報と、ｍ個の暗号化された第１データと、第２データとを含む。ｍ個のコンテンツ鍵情報の各々は、コンテンツを暗号化および復号化するために使用されるコンテンツ鍵と、改竄検出処理のために使用される部分検査用データに相当する第１データとを含む。ドメイン鍵情報は、ｍ個のコンテンツ鍵を暗号化および復号化するために使用されるドメイン鍵と、全体検査用データとを含む。ｍ個のコンテンツ鍵情報の各々は、暗号化されている。上記改竄検出方法は、ステップ（Ａ）〜ステップ（Ｅ）を備える。ステップ（Ａ）では、ホスト機器が、ターゲット機器に格納されたｍ個の暗号化されたコンテンツ鍵情報のうちいずれか１つをターゲット機器に格納されたドメイン鍵を用いて連鎖復号化し、その復号化されたコンテンツ鍵情報の中から第１データを抽出する。ステップ（Ｂ）では、ホスト機器が、ステップ（Ａ）において抽出された第１データと予め用意された部分検査用データとを比較する。ステップ（Ｃ）では、ホスト機器が、ターゲット機器に格納されたドメイン鍵情報に含まれる全体検査用データとｍ個の暗号化された第１データとを含む連結データをドメイン鍵を用いて連鎖復号化し、その復号化された連結データの中からその全体検査用データを抽出する。ステップ（Ｄ）では、ホスト機器が、ターゲット機器に格納された第２データとステップ（Ｃ）において抽出された全体検査用データとを比較する。ステップ（Ｅ）では、ホスト機器が、ステップ（Ｂ）において第１データと部分検査用データとが一致し、且つ、ステップ（Ｄ）において第２データと全体検査用データとが一致すると、ターゲット機器に格納された鍵情報が改竄されていないと判断する。
【００３８】
また、改竄検出方法では、ホスト機器によって、ターゲット機器に格納された鍵情報における改竄の有無が検出される。鍵情報は、ドメイン鍵情報と、ｍ個のコンテンツ鍵情報と、ｍ個の部分検査用データとを含む。ｍ個のコンテンツ鍵情報の各々は、コンテンツを暗号化および復号化するために使用されるコンテンツ鍵を含む。ドメイン鍵情報は、ｍ個のコンテンツ鍵を暗号化および復号化するために使用されるドメイン鍵と、全体検査用データとを含む。ｍ個の部分検査用データは、ｍ個のコンテンツ鍵情報と一対一で対応する。ｍ個のコンテンツ鍵情報の各々は、暗号化されている。上記改竄検出方法は、ステップ（Ａ）〜ステップ（Ｅ）を備える。ステップ（Ａ）では、ホスト機器が、ターゲット機器に格納されたｍ個の暗号化されたコンテンツ鍵情報のうちいずれか１つに対して第１演算を実行して、第１データを生成する。ステップ（Ｂ）では、ホスト機器が、ステップ（Ａ）において生成された第１データとターゲット機器に格納されたｍ個の部分検査用データのうちステップ（Ａ）において第１演算が実行されたコンテンツ鍵情報に対応する部分検査用データとを比較する。ステップ（Ｃ）では、ホスト機器が、ターゲット機器に格納されたｍ個の部分検査用データを含む連結データに対して第２演算を実行して、第２データを生成する。ステップ（Ｄ）では、ホスト機器が、ステップ（Ｃ）において生成された第２データとターゲット機器に格納されたドメイン鍵情報に含まれる全体検査用データとを比較する。ステップ（Ｅ）では、ホスト機器が、ステップ（Ｂ）において第１データと部分検査用データとが一致し、且つ、ステップ（Ｄ）において第２データと全体検査用データとが一致すると、ターゲット機器に格納された鍵情報が改竄されていないと判断する。
【００３９】
この発明のさらにもう１つの局面に従うと、鍵情報のデータ構造は、ｍ個のコンテンツ鍵情報と、ドメイン鍵情報とを備える。鍵情報は、ターゲット機器に格納される。また、鍵情報は、ホスト機器によって改竄の有無を検出される。ターゲット機器は、第１記憶領域と、第１記憶領域よりもセキュリティレベルが高い第２記憶領域とを含む。ｍ個のコンテンツ鍵情報は、第１記憶領域に格納される。ドメイン鍵情報は、第２記憶領域に格納される。ｍ個のコンテンツ鍵情報の各々は、コンテンツを暗号化および復号化するために使用されるコンテンツ鍵と、ホスト機器による改竄検出処理のために使用される部分検査用データに相当する第１データとを含む。ドメイン鍵情報は、ｍ個のコンテンツ鍵情報を暗号化および復号化するために使用されるドメイン鍵と、ホスト機器による改竄検出処理のために使用される全体検査用データとを含む。ｍ個のコンテンツ鍵情報の各々は、暗号化されている。全体検査用データは、改竄されていないｍ個の暗号化されたコンテンツ鍵情報の各々から第１データを暗号化されたままの状態で抽出し、その抽出されたｍ個の第１データを含む連結データに対して所定演算を実行することによって得られるデータに相当する。
【００４０】
上記鍵情報のデータ構造では、改竄検出処理のために使用されるデータのすべてが所定領域（セキュリティレベルが比較的高い第２記憶領域）に格納されているのではなく、最終段階の検査用データが所定領域に格納されている。したがって、所定領域に格納されるデータ量を低減することができる。また、ある１つのコンテンツ鍵情報に対して所定処理を実行して得られる第１データと予め用意された部分検査用データとの比較を行えば、そのコンテンツ鍵情報における改竄の有無を検出できる。また、ｍ個の第１データに基づいて生成される第２データと全体検証用データとの比較を行えば、鍵情報全体における改竄の有無を検出することができる。したがって、鍵情報全体に対して処理を実行する必要がないので、改竄検出処理時における処理量を低減することができる。
【００４１】
また、鍵情報のデータ構造は、ｍ個のコンテンツ鍵情報と、ドメイン鍵情報と、ｍ個の暗号化された第１データと、第２データとを備える。鍵情報は、ターゲット機器に格納される。また、鍵情報は、ホスト機器によって改竄の有無を検出される。ターゲット機器は、第１記憶領域と、第１記憶領域よりもセキュリティレベルが高い第２記憶領域とを含む。ｍ個のコンテンツ鍵情報，ｍ個の暗号化された第１データ，および第２データは、第１記憶領域に格納される。ドメイン鍵情報は、第２記憶領域に格納される。ｍ個のコンテンツ鍵情報の各々は、コンテンツを暗号化および復号化するために使用されるコンテンツ鍵と、ホスト機器による改竄検出処理のために使用される部分検査用データに相当する第１データとを含む。ドメイン鍵情報は、ｍ個のコンテンツ鍵情報を暗号化および復号化するために使用されるドメイン鍵と、ホスト機器による改竄検出処理のために使用される全体検査用データとを含む。ｍ個の暗号化された第１データは、ｍ個のコンテンツ鍵情報と一対一で対応する。ｍ個のコンテンツ鍵情報の各々は、暗号化されている。全体検査用データは、改竄されていないｍ個の暗号化された第１データと第２データとを含む連結データをドメイン鍵を用いて連鎖暗号化し、その暗号化された連結データの中から暗号化されたままの状態で抽出される第２データに相当する。
【００４２】
また、鍵情報のデータ構造は、ｍ個のコンテンツ鍵情報と、ドメイン鍵情報と、ｍ個の部分検査用データとを備える。鍵情報は、ターゲット機器に格納される。また、鍵情報は、ホスト機器によって改竄の有無を検出される。ターゲット機器は、第１記憶領域と、第１記憶領域よりもセキュリティレベルが高い第２記憶領域とを含む。ｍ個のコンテンツ鍵情報およびｍ個の部分検査用データは、第１記憶領域に格納される。ドメイン鍵情報は、第２記憶領域に格納される。ｍ個のコンテンツ鍵情報の各々は、コンテンツを暗号化および復号化するために使用されるコンテンツ鍵を含む。ドメイン鍵情報は、ｍ個のコンテンツ鍵情報を暗号化および復号化するために使用されるドメイン鍵と、ホスト機器による改竄検出処理のために使用される全体検査用データとを含む。ｍ個の部分検査用データは、ｍ個のコンテンツ鍵情報と一対一で対応する。ｍ個の部分検査用データの各々は、その部分検査用データに対応する改竄されていないコンテンツ鍵情報に対して第１演算を実行することによって得られるデータに相当する。全体検査用データは、改竄されていないｍ個の部分検査用データを含む連結データに対して第２演算を実行することによって得られるデータに相当する。
【発明の効果】
【００４３】
以上のように、改竄検出処理のために使用されるデータのすべてが所定領域（セキュリティレベルが比較的高い第２記憶領域）に格納されるのではなく、最終段階の検査用データが所定領域に格納される。これにより、所定領域に格納されるデータ量を低減することができる。
【００４４】
また、鍵情報全体に対して処理を実行する必要がないので、改竄検出処理時における処理量を低減することができる。
【００４５】
また、鍵情報を更新するときに、鍵情報全体に対して所定処理を実行する必要がない。したがって、鍵情報の更新時における処理量を低減することができる。
【発明を実施するための最良の形態】
【００４６】
以下、この発明の実施の形態を図面を参照して詳しく説明する。なお、図中同一または相当部分には同一の符号を付しその説明は繰り返さない。
（第１の実施形態）
＜全体構成＞
図１は、この発明の第１の実施形態による機密情報処理システムの全体構成を示す。この機密情報処理システムは、ターゲット機器１０と、ホスト機器１１とを備える。ターゲット機器１０は、例えば、ＳＤカードに代表されるメモリカードのような可搬型記憶デバイスであり、鍵情報を含むデータを格納する。ホスト機器１１は、ターゲット機器１０が接続されて、ターゲット機器１０との間で鍵情報の読み出し／書き込みを行う。なお、ターゲット機器１０とホスト機器１１とが一体となっていても良い。
【００４７】
＜ターゲット機器の内部構成＞
ターゲット機器１０は、システム領域１０１と、保護領域１０２と、通常領域１０３とを含む。システム領域１０１，保護領域１０２，通常領域の各々の格納サイズは、予め設定されている。例えば、ターゲット機器１０の格納領域全体（例えば、５１２ＭＢ）のうち、約１％がシステム領域１０１および保護領域１０２に割り当てられ、残りが通常領域１０３に割り当てられることが理想的である。
【００４８】
〔システム領域〕
システム領域１０１は、ホスト機器１１からアクセスすることができる領域と、ホスト機器１１からアクセスすることができない領域に分かれている。システム領域１０１のうちホスト機器１１からアクセス可能な領域には、ターゲット機器１０とホスト機器１１との間で実行される認証処理に必要な情報（ターゲット機器用認証鍵）が格納されている。システム領域１０１のうちホスト機器１１からアクセス不可能な領域には、相互認証の結果得られる認証中間鍵Ａが予め格納されている。システム領域１０１に格納されるべき情報は製造段階で予め書き込まれており、製品となって出荷された後に書き換えることはできない。
【００４９】
〔保護領域〕
保護領域１０２は、ターゲット機器１０とホスト機器１１との間で実行される認証処理が成功して初めてホスト機器１１がアクセスすることができる領域である。保護領域１０２には、少なくとも１つのドメイン鍵情報が格納されている。ドメイン鍵情報は、ドメイン鍵を含む。また、ドメイン鍵情報は、ドメイン鍵管理情報を含んでいても良い。ドメイン鍵管理情報には、このドメイン鍵を使用することができるホスト機器を特定するための情報等が書き込まれている。
【００５０】
〔通常領域〕
通常領域１０３は、ホスト機器１１が任意にアクセスすることができる領域である。通常領域１０３には、複数のコンテンツ鍵情報と、複数のコンテンツとが格納されている。複数のコンテンツ鍵情報の各々は、保護領域１０２に格納されたドメイン鍵情報のうちいずれか１つに対応する。複数のコンテンツ鍵情報の各々は、コンテンツ鍵を含む。また、複数のコンテンツ鍵情報の各々は、コンテンツ鍵管理情報を含んでいても良い。コンテンツ鍵管理情報には、コンテンツの再生限度回数やコピー限度回数，コンテンツについての著作権に関する情報等が書き込まれている。複数のコンテンツは、複数のコンテンツ鍵情報と一対一で対応する。
【００５１】
ドメイン鍵情報は、認証中間鍵Ａを用いて暗号化されている。複数のコンテンツ鍵情報の各々は、対応するドメイン鍵を用いて暗号化されている。コンテンツは、対応するコンテンツ鍵を用いて暗号化されている。
【００５２】
＜ホスト機器の内部構成＞
ホスト機器１１は、内部バス１１１と、ターゲットＩ／Ｆ部１１２と、機密情報処理部１１３と、ホストＩ／Ｆ部１１４と、ホストＣＰＵ１１５と、ＲＯＭ１１６と、ＲＡＭ１１７とを含む。ターゲットＩ／Ｆ部１１２は、ターゲット機器１０との間でデータの入出力を行う。機密情報処理部１１３は、所定シーケンスに従って、ターゲット機器１０との間で認証を実行する。また、機密情報処理部１１３は、ターゲット機器１０に格納された機密情報の暗号化／復号化を実行する。ホストＩ／Ｆ部１１４は、ターゲットＩ／Ｆ部１１２との間，機密情報処理部１１３との間，およびホストＣＰＵ１１５との間で、データの入出力を行う。ホストＣＰＵ１１５は、機密情報処理部１１３に所定シーケンスを実行させる。ＲＯＭ１１６には、ホスト機器用認証鍵が格納されている。ＲＡＭ１１７は、ホストＣＰＵ１１５や機密情報処理部１１３に、データを一時格納しておくためのワーク領域として使用される。
【００５３】
ターゲット機器１０とホスト機器１１との間において機密情報の読み出し／書き込みが行われる場合には、ターゲット機器１０とホスト機器１１との間で認証を行う必要がある。この場合、ホストＣＰＵ１１５によって機密情報処理部１１３が起動され、機密情報処理部１１３が認証処理を行う。認証が成功すると、ホスト機器１１では、ターゲット機器１０からターゲットＩ／Ｆ部１１２を介して機密情報が読み出され、機密情報処理部１１３によって復号化される。
【００５４】
機密情報処理部１１３は、秘匿されたハードウェアである。また、機密情報処理部１１３は、ホストＣＰＵ１１５によって起動されると、セキュリティの確保された，あるいはセキュリティの必要の少ない所定のシーケンスのみを実行する。
【００５５】
＜機密情報＞
次に、ターゲット機器１０に格納される機密情報について図２を参照しつつ説明する。保護領域１０２には、ドメイン鍵群UKUREが格納されている。通常領域１０３には、鍵対応テーブルAddress Listと、コンテンツ鍵群TKURE(i)と、ハッシュリストHash List(i)とが格納されている。なお、通常領域１０３には、暗号化されたコンテンツも格納されているが、図２では省略する。
【００５６】
〔ドメイン鍵群〕
ドメイン鍵群UKUREは、ｎ個（ｎは１以上の整数）の暗号化ドメイン鍵EncKu(1)〜EncKu(n)と、ｎ個の暗号化ドメイン鍵管理情報EncUR[u](1)〜EncUR[u](n)とを含む。
【００５７】
暗号化ドメイン鍵EncKu(1)〜EncKu(n)の各々には、複数の暗号化コンテンツ鍵（１つのコンテンツ鍵群）が対応付けられている。また、図３のように、暗号化ドメイン鍵EncKu(1)〜EncKu(n)は、認証中間鍵Ａを用いて復号化されることによって、ドメイン鍵Ku(1)〜Ku(n)になる。ドメイン鍵Ku(1)〜Ku(n)の各々は、自己に対応付けられた複数のコンテンツ鍵を暗号化／復号化するために使用される。つまり、１つのドメイン鍵を用いて、複数のコンテンツ鍵を暗号化／復号化することができる。
【００５８】
暗号化ドメイン鍵管理情報EncUR[u](1)〜EncUR[u](n)は、暗号化ドメイン鍵EncKu(1)〜EncKu(n)と一対一で対応する。また、図３のように、暗号化ドメイン鍵管理情報EncUR[u](1)〜EncUR[u](n)は、認証中間鍵Ａを用いて復号化されることによって、ドメイン鍵管理情報UR[u](1)〜UR[u](n)になる。さらに、暗号化ドメイン鍵管理情報EncUR[u](1)〜EncUR[u](n)の各々の所定位置には、全体検査用データが格納されている。全体検査用データは、その暗号化ドメイン鍵管理情報に対応するコンテンツ鍵群に基づいて生成されている。例えば、暗号化ドメイン鍵管理情報EncUR[u](1)〜EncUR[u](n)のうちｉ番目の暗号化ドメイン鍵管理情報EncUR[u](i)（ｉは整数，且つ，１≦ｉ≦ｎ）の所定位置には、コンテンツ鍵群TKURE(i)に基づいて生成された全体検査用データDATA11(i)が格納される。
【００５９】
なお、図２では、暗号化ドメイン鍵EncKu(i)に対応するコンテンツ鍵群TKURE(i)のみしか図示していないが、暗号化ドメイン鍵EncKu(i)以外の暗号化ドメイン鍵の各々にもコンテンツ鍵群が一対一で対応していてもよい。
【００６０】
〔コンテンツ鍵群〕
コンテンツ鍵群TKURE(i)は、ドメイン鍵Ku(i)を用いて暗号化／復号化することができるコンテンツ鍵およびそのコンテンツ鍵に付随する情報の集合である。コンテンツ鍵群TKURE(i)は、ｍ個（ｍは１以上の整数）の暗号化コンテンツ鍵EncKt(i-1)〜EncKt(i-m)と、ｍ個の暗号化コンテンツ鍵管理情報EncUR[t](i-1)〜EncUR[t](i-m)とを含む。
【００６１】
図３のように、暗号化コンテンツ鍵EncKt(i-1)〜EncKt(i-m)は、ドメイン鍵Ku(i)を用いて復号化されることによって、コンテンツ鍵Kt(i-1)〜Kt(i-m)になる。コンテンツ鍵Kt(i-1)〜Kt(i-m)の各々は、自己に対応するコンテンツ（図示せず）を暗号化／復号化するために使用される。
【００６２】
暗号化コンテンツ鍵管理情報EncUR[t](i-1)〜EncUR[t](i-m)は、暗号化コンテンツ鍵EncKt(i-1)〜EncKt(i-m)と一対一で対応する。また、図３のように、暗号化コンテンツ鍵管理情報EncUR[t](i-1)〜EncUR[t](i-m)は、ドメイン鍵Ku(i)を用いて復号化されることによって、コンテンツ鍵管理情報UR[t](i-1)〜UR[t](i-m)になる。
【００６３】
〔鍵対応テーブル〕
鍵対応テーブルAddress Listには、ｎ個の暗号化ドメイン鍵のアドレスKu addr(1)〜Ku addr(n)とｎ個のコンテンツ鍵テーブルKt addr list(1)〜Kt addr list(n)とが対応付けられている。ｎ個のコンテンツ鍵テーブルの各々は、ｎ個のコンテンツ群（図２では、コンテンツ鍵群TKURE(i)のみを図示している。）と一対一で対応する。また、コンテンツ鍵テーブルの各々には、対応するコンテンツ鍵群に含まれる暗号化コンテンツ鍵のアドレスが書き込まれている。例えば、ドメイン鍵Ku(i)のアドレスKu addr (i)に対応するコンテンツ鍵テーブルKt addr list(i)を参照して、ドメイン鍵Ku(i)に対応するコンテンツ鍵群TKURE(i)（詳しくは、暗号化コンテンツ鍵EncKt(i-1)〜EncKt(i-m)）を検索することができる。このように、鍵管理テーブルAddress Listを参照することによって、ドメイン鍵とコンテンツ鍵との対応関係を素早く検索することができる。
【００６４】
〔ハッシュリスト〕
ハッシュリストHash List(i)は、コンテンツ鍵群TKURE(i)に対応する。また、ハッシュリストHash List(i)は、ｍ個のハッシュ値Hash(i-1)〜Hash(i-m)を含む。ハッシュ値Hash(i-1)〜Hash(i-m)は、暗号化コンテンツ鍵EncKt(i-1)〜EncKt(i-m)と一対一で対応する。なお、図２では、コンテンツ鍵群TKURE(i)に対応するハッシュリストHash List(i)のみしか図示していないが、コンテンツ鍵群TKURE(i)以外のコンテンツ鍵群（図示せず）の各々に対応するハッシュリストも存在していても良い。
【００６５】
＜ハッシュリストの生成手順＞
次に、図４を参照しつつ、図２に示したハッシュリストHash List(i)の生成手順について説明する。
【００６６】
〔ステップＳＴ１０１−１〕
まず、暗号化コンテンツ鍵EncKt(i-1)および暗号化コンテンツ鍵管理情報EncUR[t](i-1)は、１つに連結される。暗号化コンテンツ鍵EncKt（i-2）〜EncKt(i-m)の各々においても、同様に、その暗号化コンテンツ鍵，その暗号化コンテンツ鍵に付随する暗号化コンテンツ鍵管理情報が、１つに連結される。これにより、ｍ個の連結データが生成される。
【００６７】
〔ステップＳＴ１０１−２〕
次に、暗号化コンテンツ鍵EncKt(i-1)に対応する連結データに対して、ハッシュ演算が実行される。これにより、ハッシュ値Hash(i-1)が算出される。暗号化コンテンツ鍵EncKt(i-2)〜EncKt(i-m)の各々に対応する連結データにおいても、同様に、その連結データに対してハッシュ演算が実行される。このようにして、ｍ個のハッシュ値Hash(i-1)〜Hash(i-m)が算出される。
【００６８】
〔ステップＳＴ１０１−３〕
次に、算出されたｍ個のハッシュ値Hash(i-1)〜Hash(i-m)は、１つのリストにまとめられる。これにより、コンテンツ鍵群TKURE(i)に対応するハッシュリストHash List(i)が完成する。
【００６９】
＜連結ハッシュ値の生成手順＞
次に、図４を参照しつつ、図２に示した全体検査用データDATA11(i)の生成手順について説明する。
【００７０】
〔ステップＳＴ１０１−４〕
まず、ハッシュリストHash List(i)に存在するｍ個のハッシュ値Hash(i-1)〜Hash(i-m)は、１つに連結される。これにより、１つのハッシュ連結データが生成される。
【００７１】
〔ステップＳＴ１０１−５〕
次に、ステップＳＴ１０１−４において生成されたハッシュ連結データに対して、ハッシュ演算が実行される。これにより、連結ハッシュ値Hash(i)が算出される。
【００７２】
〔ステップＳＴ１０１−６〕
次に、ステップＳＴ１０１−５において算出された連結ハッシュ値Hash(i)は、全体検査用データDATA11(i)として、暗号化ドメイン鍵管理情報EncUR[u](i)の所定位置に格納される。暗号化ドメイン鍵管理情報EncUR[u](i)は、ハッシュリストHash List(i)に対応する。
【００７３】
ここで、暗号化ドメイン鍵管理情報EncUR[u](i)を更新する場合（例えば、既に存在する暗号化ドメイン鍵EncKu(i)に対して新たなコンテンツ鍵情報が対応付けられた場合や、暗号化ドメイン鍵EncKu(i)に対して対応付けられているコンテンツ鍵情報が削除された場合）は、暗号化ドメイン鍵管理情報EncUR[u](i)は、連結ハッシュ値Hash(i)を格納する前に一旦復号化されて、ドメイン鍵管理情報UR[u](i)になる。そして、ドメイン鍵管理情報UR[u](i)に連結ハッシュ値Hash(i)が格納されると、そのドメイン鍵管理情報UR[u](i)は、暗号化されて暗号化ドメイン鍵管理情報EncUR[u](i)に戻る。このようにして、全体検査用データDATA11(i)が更新される。
【００７４】
ただし、ドメイン鍵Ku(i)も新たに作成された場合は、ドメイン鍵管理情報UR[u](i)も新規に作成されることになるので、一旦復号化の処理を行う必要はない。この場合、新たに作成されたドメイン鍵管理情報UR[u](i)に連結ハッシュ値Hash(i)を格納した後、そのドメイン鍵管理情報UR[u](i)が暗号化される。このようにして新たな暗号化ドメイン鍵管理情報EncUR[u](i)が生成される。
【００７５】
＜全体の処理の流れ＞
次に、図５を参照しつつ、ホスト機器１１がターゲット機器１０に格納された暗号化コンテンツを復号化する処理について説明する。
【００７６】
〔ステップＳＴ１１〕
まず、ターゲット機器１０がホスト機器１１に接続されると、ターゲット機器１０のシステム領域１０１に格納されたターゲット機器用認証鍵を読み出す。
【００７７】
〔ステップＳＴ１２〕
次に、ホスト機器１１は、ターゲット機器１０から読み出したターゲット機器用認証鍵と自らが有するホスト機器用認証鍵とを用いて、認証処理を実行する。
【００７８】
〔ステップＳＴ１３〕
認証処理の結果、認証に失敗した場合には、ホスト機器１１は、不正なアクセスであると判断して異常終了を実行する。一方、ホスト機器１１が認証に成功した場合には、ステップＳＴ１４へ進む。
【００７９】
〔ステップＳＴ１４〕
次に、ホスト機器１１は、ターゲット機器１０から読み出したターゲット機器用認証鍵と自らが有するホスト機器用認証鍵とに基づいて、認証中間鍵を生成する。生成された認証中間鍵は、機密情報処理部１１３内の認証中間鍵格納領域に格納される。これによって、ターゲット機器１０とホスト機器１１との間で以降のやりとりを行う準備が完了する。
【００８０】
〔ステップＳＴ１５〕
次に、ホスト機器１１は、ターゲット機器１０に格納された暗号化コンテンツの復号化をユーザなどから要求されているか否かを判断する。要求されていると判断すると、ステップＳＴ１６へ進む。
【００８１】
〔ステップＳＴ１６〕
次に、ホスト機器１１は、暗号化コンテンツの復号化に必要となる機密情報（暗号化コンテンツ鍵、暗号化ドメイン鍵、およびそれらに付随する情報）をターゲット機器１０から読み出す。具体的な処理としては、ホスト機器１１は、まず、暗号化コンテンツに付随する情報からコンテンツＩＤを抽出し、コンテンツＩＤに基づいて、暗号化コンテンツの復号化に必要となるコンテンツ鍵を特定する。コンテンツＩＤとコンテンツ鍵との対応関係はテーブルとして準備されている。次に、ホスト機器１１は、特定されたコンテンツ鍵に基づいてターゲット機器１０内の通常領域１０３に格納された鍵対応テーブルを参照して、必要となるドメイン鍵を特定する。コンテンツ鍵とドメイン鍵とが特定されると、必要となる鍵情報が読み出される。
【００８２】
〔ステップＳＴ１７〕
次に、ホスト機器１１は、ステップＳＴ１４において生成された認証中間鍵を用いて、ステップＳＴ１６において読み出された暗号化ドメイン鍵を復号化する。これにより、平文のドメイン鍵が生成される。
【００８３】
〔ステップＳＴ１８〕
次に、ホスト機器１１は、ステップＳＴ１６において読み出された暗号化コンテンツ鍵に対して改竄チェックを実行する。
【００８４】
〔ステップＳＴ１９〕
暗号化コンテンツ鍵の改竄が検出された場合には、ホスト機器１１は、不正なアクセスであると判断して異常終了を実行する。一方、暗号化コンテンツ鍵の改竄が検出されなかった場合には、ステップＳＴ２０へ進む。
【００８５】
〔ステップＳＴ２０〕
次に、ホスト機器１１は、ステップＳＴ１７において生成されたドメイン鍵を用いて、暗号化コンテンツ鍵を復号化する。これにより、ホスト機器１１は、平文のコンテンツ鍵を取得する。
【００８６】
〔ステップＳＴ２１〕
次に、ホスト機器１１は、ステップＳＴ２０において取得した平文のコンテンツ鍵を用いて、暗号化コンテンツを復号化する。これにより、コンテンツが利用可能となる。
【００８７】
＜認証処理＞
ここで、図６を参照しつつ、ターゲット機器１０とホスト機器１１との間で実行される認証処理について説明する。
【００８８】
〔ステップＳＴ３１〕
まず、ホスト機器１１は、ターゲット機器１０のシステム領域１０１に格納されたターゲット機器用認証鍵を読み出す。
【００８９】
〔ステップＳＴ３２〕
次に、ホスト機器１１は、ＲＯＭ１１６に格納されたホスト機器用認証鍵を読み出す。
【００９０】
〔ステップＳＴ３３〕
次に、ホスト機器１１は、ターゲット機器用認証鍵とホスト機器用認証鍵とに基づいて、認証中間鍵Ａを生成する。具体的には、ホスト機器１１は、ターゲット機器用認証鍵とホスト機器用認証鍵とを掛け合わせることによって、認証中間鍵Ａを生成する。
【００９１】
〔ステップＳＴ３４〕
次に、ホスト機器１１およびターゲット機器１０の各々は、互いに個別に所定関数（例えば、乱数）を生成し、生成した所定関数を互いに交換する。
【００９２】
〔ステップＳＴ３５〕
次に、ホスト機器１１は、ステップＳＴ３３において生成された認証中間鍵Ａに対して、ステップＳＴ３４においてホスト機器１１において生成された所定関数およびターゲット機器１０で生成された所定関数を掛け合わせることによって、認証中間鍵Ｂを生成する。
【００９３】
〔ステップＳＴ３６〕
一方、ターゲット機器１０（具体的にはターゲット機器１０内の処理部（図示せず））は、システム領域１０１に格納された認証中間鍵Ａを読み出し、読み出した認証中間鍵Ａに対してステップＳＴ３４においてターゲット機器１０で生成された所定関数およびホスト機器１１において生成された所定関数を掛け合わせることによって、認証中間鍵Ｂを生成する。
【００９４】
〔ステップＳＴ３７〕
次に、ターゲット機器１０は、保護領域１０２に格納された暗号化ドメイン鍵情報（ここでは、暗号化ドメイン鍵EncKu(i)，暗号化ドメイン鍵管理情報EncUR[u](i)）を読み出し、ステップＳＴ３６において生成された認証中間鍵Ｂを用いて、読み出した暗号化ドメイン鍵情報を暗号化する。
【００９５】
〔ステップＳＴ３８〕
次に、ターゲット機器１０は、暗号化されたドメイン鍵情報をホスト機器１０へ送る。
【００９６】
〔ステップＳＴ３９〕
次に、ホスト機器１１は、ステップＳＴ３４において生成された認証中間鍵Ｂを用いて、ターゲット機器１０から送られたドメイン鍵情報を復号化する。
【００９７】
〔ステップＳＴ４０〕
次に、ホスト機器１１は、ステップＳＴ３３において生成された認証中間鍵Ａを用いて、ステップＳＴ３９において復号化されたドメイン鍵情報をさらに復号化する。これにより、平文状態のドメイン鍵情報（ここでは、ドメイン鍵Ku(i)，ドメイン鍵管理情報UR[u](i)）が生成される。
【００９８】
このように、ターゲット機器１０とホスト機器１１との間でドメイン鍵情報がやりとりされる場合、ドメイン鍵情報は、認証中間鍵Ａ，認証中間鍵Ｂを用いて、２重に暗号化される。
【００９９】
＜コンテンツ鍵の改竄検出＞
図７を参照しつつ、ホスト機器１１がターゲット機器１０に格納された機密情報における改竄を検出する処理（ステップＳＴ２２における処理）について説明する。ここでは、ホスト機器１１は、ドメイン鍵Ku(i)に対応するコンテンツ鍵Kt(i-1)〜Kt(i-m)のうちｊ番目（ｊは整数，且つ，１≦ｊ≦ｍ）のコンテンツ鍵Kt(i-j)を改竄検出の対象とする。
【０１００】
〔ステップＳＴ１０２−１〕
まず、ホスト機器１１は、暗号化コンテンツ鍵EncKt(i-j)とそれに付随する暗号化コンテンツ鍵管理情報EncUR[t](i-j)とを連結する。これにより、１つの連結データが生成される。
【０１０１】
〔ステップＳＴ１０２−２〕
次に、ホスト機器１１は、ステップＳＴ１０２−１において生成された連結データに対してハッシュ演算を実行して、ハッシュ値Hash（i-j）を算出する。
【０１０２】
〔ステップＳＴ１０２−３〕
次に、ホスト機器１１は、ステップＳＴ１０２−２において算出されたハッシュ値Hash(i-j)とターゲット機器１０の通常領域１０３に格納されたハッシュリストHash List(i)内のハッシュ値Hash(i-j)とを比較する。
【０１０３】
〔ステップＳＴ１０２−４〕
ステップＳＴ１０２−３における比較の結果、ステップＳＴ１０２−２において算出されたハッシュ値Hash(i-j)とハッシュリストHash List(i)のハッシュ値Hash(i-j)とが不一致であると判断すると、ホスト機器１１は、暗号化コンテンツ鍵EncKt(i-j)，あるいは暗号化コンテンツ鍵管理情報EncUR[t](i-j)が改竄されていると判断して、異常終了を実行する。一方、両者が一致すると判断された場合には、ステップＳＴ１０２−５へ進む。
【０１０４】
〔ステップＳＴ１０２−５〕
次に、ホスト機器１１は、ターゲット機器１０に格納されたハッシュリストHash List(i)の中からコンテンツ鍵Kt(i-j)に対応するハッシュ値Hash(i-j)を除いた（ｍ−１）個のハッシュ値Hash(i-1)〜Hash(i-(j-1))，Hash(i-(j+1))〜Hash(i-m)を取得する。つまり、ホスト機器１１は、暗号化ドメイン鍵EncKu(i)に対応する暗号化コンテンツ鍵EncKt(i-1)〜EncKt(i-m)のうち暗号化コンテンツ鍵EncKt(i-j)以外の（ｍ−１）個の暗号化コンテンツ鍵に対しては、ハッシュ演算を実行しない。次に、ホスト機器１１は、ハッシュ値Hash(i-j)の直前に位置するハッシュ値Hash(i-(j-1))とハッシュ値Hash(i-j)の直後に位置するハッシュ値Hash(i-(j+1))との間にステップＳＴ１０２−２において算出されたハッシュ値Hash（i-j）を配置する。そして、ホスト機器１１は、それらのハッシュ値Hash(i-1)〜Hash(i-(j-1))，Hash(i-j)，Hash(i-(j+1))〜Hash(i-m)を１つに連結する。これにより、ハッシュ連結データが生成される。つまり、このハッシュ連結データでは、ハッシュリストHash List(i)に存在するｍ個のハッシュ値Hash(i-1)〜Hash(i-m)のうちハッシュ値Hash(i-j)がステップＳＴ１０２−２において算出されたハッシュ値Hash(i-j)に置換されている。
【０１０５】
なお、ハッシュ値Hash(i-j)を置換する必要は必ずしもなく、すでにハッシュリストHash List(i)内のハッシュ値との比較によって正当性は検証されているので、ハッシュリストHash List(i)をそのまま連結してハッシュ連結データを生成しても良い。
【０１０６】
〔ステップＳＴ１０２−６〕
次に、ホスト機器１１は、ステップＳＴ１０２−５において生成されたハッシュ連結データに対してさらにハッシュ演算を行い、連結ハッシュ値Hash(i)を算出する。次に、ステップＳＴ１０２−９へ進む。
【０１０７】
〔ステップＳＴ１０２−７〕
一方、ホスト機器１１は、鍵対応テーブルAddress Listを参照して、暗号化コンテンツ鍵EncKt(i-j)の復号化に必要な暗号化ドメイン鍵EncKu(i)を検出する。そして、ホスト機器１１は、認証中間鍵Ａを用いて、その検出した暗号化ドメイン鍵EncKu(i)および暗号化ドメイン鍵管理情報EncUR[u](i)を復号化する。これにより、ドメイン鍵Ku(i)およびドメイン鍵管理情報UR[u](i)が生成される。
【０１０８】
〔ステップＳＴ１０２−８〕
次に、ホスト機器１１は、ドメイン鍵管理情報UR[u](i)の中から所定のビット位置に格納された全体検査用データDATA11(i)を抽出する。次に、ステップＳＴ１０２−９へ進む。
【０１０９】
〔ステップＳＴ１０２−９〕
次に、ホスト機器１１は、ステップＳＴ１０２−６において算出された連結ハッシュ値Hash(i)とステップＳＴ１０２−８において抽出された全体検査用データDATA11(i)とを比較する。
【０１１０】
〔ステップＳＴ１０２−１０〕
ステップＳＴ１０２−９における比較の結果、ステップＳＴ１０２−６において算出された連結ハッシュ値Hash(i)とステップＳＴ１０２−８において抽出された全体検査用データDATA11(i)とが不一致であると判断すると、ホスト機器１１は、ハッシュリストHash List(i)が改竄されていると判断して、異常終了を実行する。一方、両者が一致すると判断された場合には、ステップＳＴ２０へ進む。
【０１１１】
このようにして、ターゲット機器に格納された機密情報における改竄の有無が検出される。
【０１１２】
＜コンテンツ鍵情報の追加や削除＞
また、今後は、ネットワークを介した配信によってコンテンツ鍵を追加したり、削除したりすることも考えられる。コンテンツ鍵情報の追加や削除にともない、ハッシュリストHash List(i)，および全体検査用データDATA11(i)が更新される。
【０１１３】
〔コンテンツ鍵情報の追加〕
図８を参照しつつ、コンテンツ鍵情報が追加された場合について説明する。なお、ここでは、暗号化コンテンツ鍵EncKt(i-a)，暗号化コンテンツ鍵管理情報EncUR[t](i-a)を含む暗号化コンテンツ鍵情報が追加される。この暗号化コンテンツ鍵情報は、コンテンツ鍵Kt(i-a)，コンテンツ鍵管理情報UR[t](i-a)を含むコンテンツ鍵情報がドメイン鍵Ku(i)を用いて暗号化されることによって生成される。
【０１１４】
〔ステップＳＴ１０３−１〕
まず、追加された暗号化コンテンツ鍵EncKt(i-a)，暗号化コンテンツ鍵管理情報EncUR[t](i-a)は、１つに連結される。これにより、１つの連結データが生成される。
【０１１５】
〔ステップＳＴ１０３−２〕
次に、ステップＳＴ１０３−１において生成された連結データに対して、ハッシュ演算が実行される。これにより、ハッシュ値Hash(i-a)が算出される。
【０１１６】
〔ステップＳＴ１０３−３〕
次に、ステップＳＴ１０３−２において算出されたハッシュ値Hash(i-a)がハッシュリストHash List(i)に追加される。
【０１１７】
次に、ハッシュリストHash List(i)に存在するハッシュ値Hash(i-1)〜Hash(i-m)とステップＳＴ１０３−２において算出されたハッシュ値Hash(i-a)とが１つに連結される。これにより、１つのハッシュ連結データが生成される。
【０１１８】
〔ステップＳＴ１０１−４〜１０１−６〕
次に、ステップＳＴ１０１−４，１０１−５における処理と同様に、（ｍ＋１）個のハッシュ値Hash(i-1)〜Hash(i-m)，Hash(i-a)が１つに連結されてハッシュ連結データが生成され、そのハッシュ連結データに対してハッシュ演算が実行されて、新たな連結ハッシュ値Hash(i')が算出される。次に、ステップＳＴ１０１−６における処理と同様に、算出された新たな連結ハッシュ値Hash(i')は、新たな全体検査用データDATA11(i)として、暗号化ドメイン鍵管理情報EncUR[t](i)の所定位置に格納される。
【０１１９】
このようにして、ハッシュリストHash List(i)，全体検査用データDATA11(i)が更新される。
【０１２０】
〔コンテンツ鍵情報の削除〕
図９を参照しつつ、コンテンツ鍵情報が削除された場合について説明する。なお、ここでは、暗号化コンテンツ鍵EncKt(i-2)，暗号化コンテンツ鍵管理情報EncUR[t](i-2)を含む暗号化コンテンツ鍵情報が削除される。
【０１２１】
〔ステップＳＴ１０４−１〕
まず、暗号化コンテンツ鍵EncKt(i-1)〜EncKt(i-m)のうち削除された暗号化コンテンツ鍵EncKt(i-2)に対応するハッシュ値Hash(i-2)が、ハッシュリストHash List(i)の中から削除される。
【０１２２】
〔ステップＳＴ１０４−２〕
次に、ハッシュリストHash List(i)に存在する（ｍ−１）個のハッシュ値Hash(i-1)，Hash(i-3)〜hash(i-m)が１つに連結される。これにより、１つのハッシュ連結データが生成される。
【０１２３】
〔ステップＳＴ１０１−５〕
次に、ステップＳＴ１０１−５における処理と同様に、ステップＳＴ１０４−２において生成された連結データに対してハッシュ演算が実行されて、新たな連結ハッシュ値Hash(i")が生成される。算出された新たな連結ハッシュ値Hash(i")は、新たな全体検査用データDATA11(i)として、暗号化ドメイン鍵管理情報EncUR[u](i)の所定位置に格納される。
【０１２４】
このようにして、ハッシュリストHash List(i)，全体検査用データDATA11(i)が更新される。
【０１２５】
＜効果＞
以上のように、機密情報における改竄の有無を検出する処理において、１つのコンテンツ鍵情報に対するハッシュ演算と、ハッシュリストに存在するｍ個のハッシュ値からなる連結データに対するハッシュ演算とが実行される。このように、コンテンツ鍵群TKURE(i)全体に対してハッシュ演算を実行する必要がないので、改竄検出処理時における処理量を低減することができる。
【０１２６】
また、機密情報を生成する処理において、ｍ個の暗号化されたコンテンツ鍵情報の各々からハッシュ値が算出された後、ｍ個のハッシュ値から１つの全体検査用データが生成される。このように、改竄検出処理のために使用されるデータ（ハッシュリスト，全体検査用データ）が複数段階に分けて生成される。そして、最終段階の検査用データ（全体検査用データ）が保護領域に格納される。このように、保護領域に格納されるデータ量を低減することができる。
【０１２７】
さらに、機密情報に新たなコンテンツ鍵情報が追加された場合、追加されたコンテンツ鍵情報から新たなハッシュ値を算出し、算出されたハッシュ値とハッシュリストのｍ個のハッシュ値とから新たな全体検査用データを生成する。また、コンテンツ鍵情報が削除された場合、ハッシュリストを更新して、更新したハッシュリストから新たな全体検査用データを生成する。このように、コンテンツ鍵群TKURE(i)全体に対してハッシュ演算を実行する必要がないので、機密情報の更新時における処理量を低減することができる。
【０１２８】
＜エントリー＞
ターゲット機器によっては、コンテンツ鍵が格納される領域を、エントリーという形で、予め確保しているものもある。エントリーの各々は、複数のドメイン鍵のうちいずれか１つに対応付けられる。つまり、ドメイン鍵の各々には、複数のエントリーが対応付けられる。エントリーに格納される暗号化コンテンツ鍵は、そのエントリーに対応付けられたドメイン鍵によって復号化することができる。このような場合には、各々のエントリーに対応するハッシュ値をまとめたハッシュリストという概念が生じる。すなわち、コンテンツ鍵が実際に格納されているか否かに関わらず、同一のドメイン鍵に対応付けられた全てのエントリーについてのハッシュ値をハッシュリストとして通常領域１０３に格納してもよい。また、同一のドメイン鍵に対応付けられた全てのエントリーのハッシュ値を１つに連結して、その連結データに対してハッシュ演算を実行してハッシュ値を算出し、その算出したハッシュ値をドメイン鍵管理情報に格納してもよい。もちろん、処理量を軽減するためには、ハッシュ演算の演算量が少ない方が好ましい。したがって、コンテンツ鍵が実際に格納されているエントリーのみにハッシュ演算を実行することによってハッシュリストを生成し、そのハッシュリストのハッシュ値を連結したものに対してハッシュ演算を実行することによって算出されるハッシュ値をドメイン鍵管理情報に格納する方が好ましい。
【０１２９】
＜付加情報＞
また、図１０のように、ｍ個の暗号化コンテンツ鍵EncKt(i-1)〜EncKt(i-m)に対してｍ個の付加情報info(i-1)〜info(i-m)が一対一で対応付けられていても良い。ｍ個の付加情報info(i-1)〜info(i-m)の各々は、暗号化されておらず、機密性の比較的低い情報（例えば、曲名）を格納する。
【０１３０】
また、付加情報をハッシュ演算の対象にしても構わない。例えば、付加情報info(i-j)，暗号化コンテンツ鍵EncKt(i-j)，および暗号化コンテンツ鍵管理情報EncUR[t](i-j)からなる連結データに対してハッシュ演算を実行することによって、ハッシュ値Hash(i-j)を算出しても構わない。
【０１３１】
＜改変例＞
本実施形態について様々な改変例が考えられるが、代表例として以下の改変例を開示する。
【０１３２】
（１）暗号化コンテンツは、必ずしも暗号化コンテンツ鍵を格納するターゲット機器と同一のターゲット機器内に格納されている必要はなく、別の記録媒体に格納されるものであっても良い。その場合には、ホスト機器は、その別の記録媒体に格納された暗号化コンテンツをネットワーク等を介して取得し、本実施形態の改竄チェック方法によって正当性が保証されたコンテンツ鍵を用いてその暗号化コンテンツを復号化することになる。
【０１３３】
（２）第１の実施形態では、同一のドメイン鍵で復号化されるコンテンツ鍵の集合（コンテンツ鍵群TKURE(i)）に対して１つのハッシュリストHash List(i)が設けられている構成であるが、１つのコンテンツ鍵群に対してＰ個（Ｐは２以上の整数）の部分集合ハッシュリストおよび１つの全体集合ハッシュリストを設けることも可能である。ここで、部分集合ハッシュリストおよび全体集合ハッシュリストについてコンテンツ鍵群TKURE(i)を例に挙げて図１１を参照しつつ説明する。ここでは、ドメイン鍵Ku(i)を用いて復号化することができる複数の暗号化コンテンツ鍵（コンテンツ鍵群TKURE(i)に含まれるｍ個の暗号化コンテンツ鍵EncKt(i-1)〜EncKt(i-m)）は、Ｐ個（Ｐは２以上の整数）の部分集合に分割される。Ｐ個の部分集合には、Ｐ個の部分集合ハッシュリストHash List(i-Gr1)〜Hash List(i-GrP)が一対一で対応する。例えば、ｊ番目のコンテンツ鍵Kt(i-j)からｋ番目（ｋは整数，且つ，ｊ＜ｋ≦ｍ）のコンテンツ鍵Kt(i-K)までの部分集合には、部分集合ハッシュリストHash List (i-GrJ)が対応する（Ｊは整数，且つ，１≦Ｊ≦Ｐ）。また、部分集合ハッシュリストHash List(i-GrJ)は、（ｋ−ｊ）個のハッシュ値Hash(i-j)〜Hash(i-k)を含む。また、部分集合ハッシュリストHash List(i-Gr1)〜Hash List(i-GrP)は、全体集合ハッシュリストHash List(i-ALL)に対応付けられる。全体集合ハッシュリストHash List(i-ALL)は、Ｐ個の部分集合ハッシュリストHash List(i-Gr1)〜Hash List(i-GrP)と一対一で対応するＰ個の部分ハッシュ値Hash(i-Gr1)〜Hash(i-GrP)を含む。全体ハッシュ値ALL Hash(i)は、全体集合ハッシュリストHash List(i-ALL)に基づいて生成される。なお、全体ハッシュ値ALL Hash(i)は、全体検査用データALL DATA11(i)として暗号化ドメイン鍵管理情報EncUR[u](i)に格納される。このような構成にすれば、暗号化コンテンツ鍵EncKt(i-j)について改竄チェックを実行する場合、暗号化コンテンツ鍵EncKt(i-j)と暗号化コンテンツ鍵管理情報EncUR[t](i-j)とからなる連結データに対するハッシュ演算（ハッシュ演算１），コンテンツ鍵Kt(i-j)が属する部分集合に対応する部分集合ハッシュリストHash List(i-GrJ)に対するハッシュ演算（ハッシュ演算２），および全体集合ハッシュリストHash List(i-ALL)に対するハッシュ演算（ハッシュ演算３）を実行することになる。ハッシュ演算２とハッシュ演算３とをあわせた処理量は、図４に示した処理における処理量よりも小さい。したがって、さらなる処理の高速化を期待できる。
【０１３４】
（第２の実施形態）
この発明の第２の実施形態では、コンテンツ鍵およびコンテンツ鍵管理情報は、連鎖暗号方式によって暗号化／復号化される（連鎖暗号化／連鎖復号化される）。
【０１３５】
＜連鎖暗号方式＞
ここで、連鎖暗号方式（Cipher Block Chaining）による暗号化方法について図１２を参照しつつ説明する。なお、ここでは、暗号化の対象がコンテンツ鍵Kt(i-j)およびコンテンツ鍵管理情報UR[t](i-j)であるものとする。
【０１３６】
〔暗号化処理〕
まず、コンテンツ鍵Kt(i-j)およびコンテンツ鍵管理情報UR[t](i-j)は、１つに連結された後、先頭から順番に８バイト毎に分割されて、「データ１」，「データ２」，…，「データＸ」になる（Ｘは２以上の整数）。なお、８バイトではなく任意に分割され得ることはいうまでもない。
【０１３７】
次に、ＭＳＢ（Most significant bit または Most Significant Byte）側の最初の８バイトである「データ１」は、ドメイン鍵Ku(i)を用いて暗号化されて「暗号化データ１」になる。次に、「データ１」に対する暗号化の中間値１に所定演算が実行されて、連鎖鍵１が生成される（例えば、中間値１とドメイン鍵Ku(i)とが掛け合わされて連鎖鍵１が生成される）。次に、「データ１」の１つ後ろに位置する「データ２」は、連鎖鍵１を用いて暗号化されて「暗号化データ２」になる。次に、「データ２」に対する暗号化の中間値２に所定演算が実行されて、連鎖鍵２が生成される。このように、先頭の８バイトである「データ１」は、ドメイン鍵Ku(i)を用いて暗号化される。また、２番目以降の８バイトデータの各々は、１つ前の８バイトデータについての暗号化の結果を利用して順次暗号化される。
【０１３８】
ＭＳＢから数えて最後の８バイト（つまり、ＬＳＢ（Least Significant Bit または Least Significant Byte））である「データＸ」まで上述の暗号化処理が繰り返されることにより、「データ１」〜「データＸ」は、「暗号化データ１」〜「暗号化データＸ」になる。この「暗号化データ１」〜「暗号化データＸ」の集合が、暗号化コンテンツ鍵EncKt(i-j)および暗号化コンテンツ鍵管理情報EncUR[t](i-j)の集合となる。
【０１３９】
〔復号化処理〕
次に、連鎖暗号方式による復号化方法について説明する。
【０１４０】
まず、暗号化コンテンツ鍵EncKt(i-j)および暗号化コンテンツ鍵管理情報EncUR[t](i-j)の集合は、先頭から順番に８バイト毎に分割されて、「暗号化データ１」，「暗号化データ２」，…，「暗号化データＸ」になる。次に、「暗号化データ１」は、ドメイン鍵Ku(i)を利用して復号化されて、「データ１」になる。次に、「暗号化データ２」は、「暗号化データ１」の復号化の結果を利用して復号化されて、「データ２」になる。このように、先頭の８バイトである「暗号化データ１」は、ドメイン鍵Ku(i)を利用して復号化される。２番目以降の暗号化データの各々は、１つ前の暗号化データについての復号化の結果を利用して順次復号化される。
【０１４１】
このような連鎖暗号方式では、部分毎のデータが（８バイトデータ毎に）連鎖しながら暗号化／復号化されていく。つまり、このような連鎖暗号方式は、復号化の際に何れかの段階で復号化に失敗すると、その段階以降の暗号化データの全てが正常に復号化されないという特徴を有する。したがって、例えば、最後の８バイト（ＬＳＢ）である暗号化データＸの復号化に成功すれば、全てのデータが正当であることが保証される。
【０１４２】
また、このような連鎖暗号方式では、同一のデータを暗号化する場合であっても、事前に暗号化されたデータが異なっている場合には暗号化の結果が異なるという特徴を有する。
【０１４３】
＜構成＞
以上を踏まえて、この発明の第２の実施形態による機密情報処理システムについて説明する。図１３は、この発明の第２の実施形態による機密情報処理システムの全体構成を示す。ここで、ＲＯＭ１１６には、部分検査用データDATA21がさらに格納されている。
【０１４４】
＜機密情報＞
図１４は、図１３に示したターゲット機器１０に格納される機密情報を示す。保護領域１０２には、ドメイン鍵群UKUREが格納される。通常領域１０３には、鍵対応テーブルAddress Listと、コンテンツ鍵群TKURE(i)とが格納される。なお、通常領域１０３には、暗号化されたコンテンツも格納されているが、図１４では省略する。
【０１４５】
〔ドメイン鍵群〕
ドメイン鍵群UKUREは、図２と同様に、ｎ個の暗号化ドメイン鍵EncKu(1)〜EncKu(n)と、ｎ個の暗号化ドメイン鍵管理情報EncUR[u](1)〜EncUR[u](n)とを含む。また、暗号化ドメイン鍵管理情報EncUR[u](1)〜EncUR[u](n)の各々の所定位置には、全体検査用データが格納される。全体検査用データは、その暗号化ドメイン鍵管理情報に対応するコンテンツ鍵群に基づいて生成されている。例えば、暗号化ドメイン鍵管理情報EncUR[u](i)の所定位置には、コンテンツ鍵群TKURE(i)に基づいて生成された全体検査用データDATA22(i)が格納されている。
【０１４６】
なお、図１４では、暗号化ドメイン鍵EncKu(i)に対応するコンテンツ鍵群TKURE(i)のみしか図示していないが、暗号化ドメイン鍵EncKu(i)以外の暗号化ドメイン鍵の各々にもコンテンツ鍵群が対応していてもよい。
【０１４７】
〔コンテンツ鍵群〕
コンテンツ鍵群TKURE(i)は、図２に示したコンテンツ鍵群TKURE(i)に加えて、ｍ個の暗号化チェック値EncCheck(i-1)〜EncCheck(i-m)を含む。暗号化チェック値EncCheck(i-1)〜EncCheck(i-m)は、暗号化コンテンツ鍵EncKt(i-1)〜EncKt(i-m)と一対一で対応する。平文状態のチェック値Check(i-1)〜Check(i-m)の各々は、ホスト機器１１のＲＯＭ１１６に格納されている部分検査用データDATA21に相当する。
【０１４８】
鍵対応テーブルAddress Listは、図２に示した鍵対応テーブルAddress Listと同様である。
【０１４９】
＜コンテンツ鍵およびそれに付随する情報の暗号化＞
次に、コンテンツ鍵，コンテンツ鍵管理情報，チェック値の暗号化処理について説明する。ここでは、コンテンツ鍵Kt(i-j)，コンテンツ鍵管理情報UR[t](i-j)，チェック値Check(i-j)を例に挙げて説明する。
【０１５０】
まず、コンテンツ鍵Kt(i-j)とコンテンツ鍵管理情報UR[t](i-j)とが連結される。次に、指定バイトに従って、コンテンツ鍵Kt(i-j)およびコンテンツ鍵管理情報UR[t](i-j)からなる連結データの所定位置にチェック値Check(i-j)が埋め込まれる。この例（図１４参照）ではＬＳＢにチェック値を埋め込んでいる。次に、連鎖暗号方式に従って、チェック値Check(i-j)が埋め込まれた連結データが、暗号化される。次に、暗号化された連結データを、暗号化コンテンツ鍵EncKt(i-j)，暗号化コンテンツ鍵管理情報EncUR[t](i-j)，および暗号化チェック値EncCheck(i-j)に分割する。
【０１５１】
このようにして、コンテンツ鍵，コンテンツ鍵管理情報，およびチェック値が暗号化される。また、チェック値が埋め込まれる位置が固定位置ではなく指定バイトによって指定することも可能であるので、チェック値が埋め込まれる位置を秘匿することができ、セキュリティが向上する。
【０１５２】
＜全体検査用データの生成手順＞
図１５を参照しつつ、図１４に示した全体検査用データDATA22(i)の生成手順について説明する。なお、ここでは、暗号化コンテンツ鍵管理情報EncUR[t](i-1)〜EncUR[t](i-m)の各々は、対応する暗号化コンテンツ鍵の後段に連結されているものとし、暗号化チェック値EncCheck(i-1)〜EncCheck(i-m)の各々は、対応する暗号化コンテンツ鍵管理情報の後段に連結されているものとする。また、暗号化チェック値EncCheck(i-1)〜EncCheck(i-m)の各々は、８バイトデータであるものとする。
【０１５３】
〔ステップＳＴ２０１−１〕
まず、指定バイトに従って、コンテンツ鍵群TKURE(i)の中からｍ個の暗号化チェック値EncCheck(i-1)〜EncCheck(i-m)が抽出される。例えば、暗号化コンテンツ鍵EncKt(i-j)とこれに付随する情報（暗号化コンテンツ鍵管理情報EncUR[t](i-j)および暗号化チェック値EncCheck(i-j)）との集合の中から、所定位置のデータ（ここでは、暗号化コンテンツ鍵管理情報EncUR[t](i-j)の直後に存在する８バイトデータ）が抽出される。これにより、暗号化チェック値EncCheck(i-j)が抽出されたことになる。このような抽出処理を、暗号化コンテンツ鍵EncKt(i-1)〜EncKt(i-m)の各々に対して実行されることによって、ｍ個の暗号化チェック値EncCheck(i-1)〜EncCheck(i-m)が抽出される。
【０１５４】
〔ステップＳＴ２０１−２〕
次に、抽出されたｍ個の暗号化チェック値EncCheck(i-1)〜EncCheck(i-m)が１つに連結される。これにより、１つのチェック値連結データが生成される。
【０１５５】
〔ステップＳＴ２０１−３〕
次に、ステップＳＴ２０１−２において生成されたチェック値連結データに対してハッシュ演算が実行される。これにより、連鎖ハッシュ値Chain Hash(i)が算出される。
【０１５６】
〔ステップＳＴ２０１−４〕
次に、ステップＳＴ２０１−３において算出された連鎖ハッシュ値Chain Hash(i)は、全体検査用データDATA22(i)として、暗号化ドメイン鍵管理情報EncUR[u](i)の所定位置に格納される。
【０１５７】
ここで、暗号化ドメイン鍵管理情報EncUR[u](i)を更新する場合は、暗号化ドメイン鍵管理情報EncUR[u](i)は、連鎖ハッシュ値Chain Hash(i)を格納する前に一旦復号化されて、ドメイン鍵管理情報UR[u](i)になる。そして、ドメイン鍵管理情報UR[u](i)に連鎖ハッシュ値Chain Hash(i)が格納されると、そのドメイン鍵管理情報UR[u](i)は、暗号化されて暗号化ドメイン鍵管理情報EncUR[u](i)に戻る。このようにして、全体検査用データDATA22(i)が更新される。
【０１５８】
ただし、ドメイン鍵Ku(i)も新たに作成された場合は、ドメイン鍵管理情報UR[u](i)も新規に作成されることになるので、一旦復号化の処理を行う必要はない。この場合、新たに作成されたドメイン鍵管理情報UR[u](i)に連鎖ハッシュ値Chain Hash(i)を格納した後、そのドメイン鍵管理情報UR[u](i)が暗号化される。このようにして新たな暗号化ドメイン鍵管理情報EncUR[u](i)が生成される。
【０１５９】
なお、チェック値は、また８バイトである必要はなく任意のバイト数でよい。
【０１６０】
＜コンテンツ鍵情報の改竄検出＞
図１６を参照しつつ、図１４に示したチェック値Check(i-1)〜Check(i-m)を利用した改竄検出方法について説明する。ここでは、暗号化コンテンツ鍵EncKt(i-j)，暗号化コンテンツ鍵管理情報EncUR[t](i-j)，および暗号化チェック値EncCheck(i-j)を例に挙げて説明する。
【０１６１】
〔ステップＳＴ２０２−１〕
まず、暗号化コンテンツ鍵EncKt(i-j)，暗号化コンテンツ鍵管理情報EncUR[t](i-j)，および暗号化チェック値EncCheck(i-j)が１つに連結される。これにより、１つの連結データが生成される。
【０１６２】
〔ステップＳＴ２０２−２〕
次に、連鎖暗号方式によって連結データが復号化される。これにより、コンテンツ鍵Kt(i-j)，コンテンツ鍵管理情報UR[t](i-j)，およびチェック値Check(i-j)からなる連結データが生成される。この連結データは、所定位置にチェック値Check(i-j)が埋め込まれた構成になっている。
【０１６３】
〔ステップＳＴ２０２−３〕
次に、指定バイト（所定のビット位置を示す情報）に従って、コンテンツ鍵Kt(i-j)，コンテンツ鍵管理情報UR[t](i-j)，およびチェック値Check(i-j)からなる連結データの中からチェック値Check(i-j)が抽出される。
【０１６４】
〔ステップＳＴ２０２−４〕
次に、ステップＳＴ２０２−３において抽出されたチェック値Check(i-j)とホスト機器１１のＲＯＭ１１６に格納された部分検査用データDATA21とが比較される。
【０１６５】
このように、コンテンツ鍵Kt(i-1)〜Kt(i-m)の各々において、復号化された連結データの中から抽出されたチェック値とＲＯＭ１１６に格納された部分検査用データを比較することによって、そのコンテンツ鍵の正当性が検証される。
【０１６６】
なお、チェック値は、コンテンツ鍵管理情報の直後に付加することが好ましい。つまり、コンテンツ鍵，コンテンツ鍵管理情報，チェック値で構成される連結データにおいて、その連結データのＬＳＢがチェック値であることが好ましい。それは、連鎖暗号方式では、ＬＳＢをチェックすることによって復号化の対象となるデータ全体の正当性を検証することができるからである。
【０１６７】
＜改竄検出方法＞
図１７を参照しつつ、図１３に示した機密情報処理システムにおける改竄検出方法（図５のステップＳＴ２２における処理）について説明する。ここでは、ドメイン鍵Ku(i)に対応するコンテンツ鍵Kt(i-j)を改竄検出の対象とする。また、チェック値Check(i-j)は、コンテンツ鍵管理情報UR[t](i-j)の直後に付加された８バイトデータであるものとする。
【０１６８】
〔ステップＳＴ２０３−１〕
まず、ホスト機器１１は、暗号化コンテンツ鍵EncKt(i-j)，暗号化コンテンツ鍵管理情報EncUR[t](i-j)，および暗号化チェック値EncCheck(i-j)を復号化する。これらは１つの連結データとして上述の連鎖暗号方式によって暗号化されているので、この連結データはＭＳＢ（最初の８バイト）から順番に復号化される。
【０１６９】
〔ステップＳＴ２０３−２〕
次に、ホスト機器１１は、指定バイトに従って、復号化して平文になった連結データ（コンテンツ鍵Kt(i-j），コンテンツ鍵管理情報UR[t](i-j)，およびチェック値Check(i-j)からなる連結データ）の中から８バイト分のデータを抽出する。なお、ここでは、チェック値Check(i-j)がコンテンツ鍵管理情報UR[t](i-j)の直後に付加されているので、指定バイトは、ＬＳＢ（最後の８バイト）を示す。これにより、平文になった連結データの中からチェック値Check(i-j)が抽出されたことになる。次に、ステップＳＴ２０３−４へ進む。
【０１７０】
〔ステップＳＴ２０３−３〕
一方、ホスト機器１１は、ＲＯＭ１１６に格納された部分検査用データDATA21を抽出する。
【０１７１】
〔ステップＳＴ２０３−４〕
次に、ホスト機器１１は、ステップＳＴ２０３−２において抽出されたチェック値Check(i-j)とステップＳＴ２０３−３において抽出された部分検査用データDATA21とを比較する。このように、両者を比較することにより、コンテンツ鍵，コンテンツ鍵管理情報，およびチェック値からなる連結データのうちチェック値が埋め込まれた位置までのデータの正当性を検証することができる。
【０１７２】
〔ステップＳＴ２０３−５〕
ステップＳＴ２０３−４における比較の結果、ステップＳＴ２０３−２において抽出されたチェック値Check(i-j)とステップＳＴ２０３−３において抽出された部分検査用データDATA21とが一致しないと判断すると、ホスト機器１１は、暗号化コンテンツ鍵EncKt(i-j)，暗号化コンテンツ鍵管理情報EncUR[t](i-j)，あるいは暗号化チェック値EncCheck(i-j)が改竄されていると判断して、異常終了を実行する。一方、両者が一致すると判断された場合には、ステップＳＴ２０３−６へ進む。
【０１７３】
〔ステップＳＴ２０３−６〕
次に、ホスト機器１１は、指定バイトに従って、コンテンツ鍵群TKURE(i)の中からｍ個の暗号化チェック値EncCheck(i-1)〜EncCheck(i-m)を抽出する。例えば、ホスト機器１１は、指定バイトに従って、暗号化コンテンツ鍵EncKt(i-j)，暗号化コンテンツ鍵管理情報EncUR[t](i-j)，暗号化チェック値EncCheck(i-j)からなる連結データの中から８バイト分のデータを抽出する。これにより、暗号化チェック値EncCheck(i-j)が抽出されたことになる。ホスト機器１１は、このような抽出処理を、各々の連結データに対して実行することによって、ｍ個の暗号化チェック値EncCheck(i-1)〜EncCheck(i-m)を抽出する。
【０１７４】
〔ステップＳＴ２０３−７〕
次に、ホスト機器１１は、ステップＳＴ２０３−６において抽出された暗号化チェック値EncCheck(i-1)〜EncCheck(i-m)を１つに連結する。これにより、１つのチェック値連結データが生成される。
【０１７５】
〔ステップＳＴ２０３−８〕
次に、ホスト機器１１は、ステップＳＴ２０３−７において生成されたチェック値連結データに対してハッシュ演算を実行する。これにより、連鎖ハッシュ値Chain Hash(i)が算出される。次に、ステップＳＴ２０３−１１へ進む。
【０１７６】
〔ステップＳＴ２０３−９〕
一方、ホスト機器１１は、鍵対応テーブルAddress Listを参照して、暗号化コンテンツ鍵EncKt(i-j)の復号化に必要な暗号化ドメイン鍵EncKu(i)を検出する。そして、ホスト機器１１は、認証中間鍵Ａを用いて、その検出した暗号化ドメイン鍵EncKu(i)および暗号化ドメイン鍵管理情報EncUR[u](i)を復号化する。これにより、ホスト機器１１は、ドメイン鍵Ku(i)およびドメイン鍵管理情報UR[u](i)を取得する。なお、復号化されたドメイン鍵は、ステップＳＴ２０３−１においてコンテンツ鍵の復号化に使用される。
【０１７７】
〔ステップＳＴ２０３−１０〕
次に、ホスト機器１１は、ドメイン鍵管理情報UR[u](i)の中から所定のビット位置に格納された全体検査用データDATA22(i)を抽出する。
【０１７８】
〔ステップＳＴ２０３−１１〕
次に、ホスト機器１１は、ステップＳＴ２０３−８において算出された連鎖ハッシュ値Chain Hash(i)とステップＳＴ２０３−１０において抽出された全体検査用データDATA22(i)とを比較する。
【０１７９】
〔ステップＳＴ２０３−１２〕
ステップＳＴ２０３−１１における比較の結果、ステップＳＴ２０３−８において算出された連鎖ハッシュ値Chain Hash(i)とステップＳＴ２０３−１０において抽出された全体検査用データDATA22(i)とが一致しないと判断すると、ホスト機器１１は、暗号化チェック値EncCheck(i-1)〜EncCheck(i-m)が改竄されていると判断して、異常終了を実行する。一方、両者が一致すると判断された場合には、ステップＳＴ２０へ進む。
【０１８０】
このような処理によって得られた平文のコンテンツ鍵Kt(i-j)を用いて、ホスト機器１１は、暗号化されたコンテンツを復号化する。
【０１８１】
＜コンテンツ鍵情報の追加や削除＞
また、今後は、ネットワークを介した配信によってコンテンツ鍵を追加したり、削除したりすることも考えられる。コンテンツ鍵情報の追加や削除にともない、全体検査用データDATA22(i)が更新される。
【０１８２】
〔コンテンツ鍵情報の追加〕
図１８を参照しつつ、コンテンツ鍵が追加された場合について説明する。なお、ここでは、暗号化コンテンツ鍵EncKt(i-a)，暗号化コンテンツ鍵管理情報EncUR[t](i-a)，暗号化チェック値EncCheck(i-a)を含む暗号化コンテンツ鍵情報が追加される。この暗号化されたコンテンツ鍵情報は、コンテンツ鍵Kt(i-a)，コンテンツ鍵管理情報UR[t](i-a)を含むコンテンツ鍵情報にチェック値Check(i-a)が追加された後、そのコンテンツ鍵情報がドメイン鍵Ku(i)を用いて連鎖暗号化されることによって生成される。また、コンテンツ鍵情報の追加や削除を実行する場合には、まず上述の方法（図１７参照）によって既存のコンテンツ鍵情報に対して改竄検出処理を実行することもあるが、ここでは説明を省略する。
【０１８３】
〔ステップＳＴ２０４−１〕
まず、暗号化コンテンツ鍵EncKt(i-1)〜EncKt(i-m)に付随する暗号化チェック値EncCheck(i-1)〜EncCheck(i-m)と、追加された暗号化コンテンツ鍵EncKt(i-a)に付随するチェック値EncCheck(i-a)とが抽出される。
【０１８４】
〔ステップＳＴ２０４−２〕
次に、抽出された（ｍ＋１）個の暗号化チェック値EncCheck(i-1)〜EncCheck(i-m)，EncCheck(i-a)が１つに連結される。これにより、１つのチェック値連結データが生成される。
【０１８５】
〔ステップＳＴ２０１−３〕
次に、ステップＳＴ２０１−３における処理と同様に、ステップＳＴ２０４−２において生成されたチェック値連結データに対してハッシュ演算が実行されて、新たな連鎖ハッシュ値Chain Hash(i')が算出される。算出された新たな連鎖ハッシュ値Chain Hash(i')は、新たな全体検査用データDATA22(i)として、暗号化ドメイン鍵管理情報EncUR[t](i)の所定位置に格納される。
【０１８６】
このようにして、全体検査用データDATA22(i)が更新される。
【０１８７】
〔コンテンツ鍵情報の削除〕
図１９を参照しつつ、コンテンツ鍵情報が削除された場合について説明する。なお、ここでは、暗号化コンテンツ鍵EncKt(i-2)，暗号化コンテンツ鍵管理情報EncUR[t](i-2)，暗号化チェック値EncCheck(i-2)を含む暗号化されたコンテンツ鍵情報が削除される。
【０１８８】
〔ステップＳＴ２０５−１〕
まず、削除された暗号化コンテンツ鍵EncKt(i-2)以外の（ｍ−１）個の暗号化コンテンツ鍵EncKt(i-1)，EncKt(i-3)〜EncKt(i-m)に付随する暗号化チェック値EncCheck(i-1)，EncCheck(i-3)〜EncCheck(i-m)が抽出される。
【０１８９】
〔ステップＳＴ２０５−２〕
次に、抽出された（ｍ−１）個の暗号化チェック値EncCheck(i-1)，EncCheck(i-3)〜EncCheck(i-m)が１つに連結される。これにより、チェック値連結データが生成される。
【０１９０】
〔ステップＳＴ２０１−３〕
次に、ステップＳＴ２０１−３における処理と同様に、ステップＳＴ２０５−２において生成されたチェック値連結データに対してハッシュ演算が実行されて、新たな連鎖ハッシュ値Chain Hash(i")が算出される。算出された新たな連鎖ハッシュ値Chain Hash(i")は、新たな全体検査用データDATA22(i)として、暗号化ドメイン鍵管理情報EncUR[t](i)の所定位置に格納される。
【０１９１】
このようにして、全体検査用データDATA22(i)が更新される。
【０１９２】
＜暗号アルゴリズム＞
ここで、ハッシュ演算および連鎖暗号方式による暗号アルゴリズムについて説明する。
【０１９３】
図２０は、一方向関数型のハッシュ演算（DES HASH）についての暗号アルゴリズムを示す概念図である。図２１は、一方向関数型のハッシュ演算（DES HASH）についての暗号アルゴリズムを示すフローチャートである。図２２は、一方向関数型のハッシュ演算（C2 HASH）についての暗号アルゴリズムを示す概念図である。図２３は、連鎖暗号方式（DES E-CBC）についての暗号アルゴリズムを示す概念図である。図２４は、連鎖暗号方式（DES E-CBC）についての暗号アルゴリズムを示すフローチャートである。図２５は、連鎖暗号方式（C2 E-CBC）についての暗号アルゴリズムを示す概念図である。
【０１９４】
図２１と図２４とを比較すると、一方向関数型のハッシュ演算と連鎖暗号方式とは、暗号アルゴリズムの一部が互いに共通している。したがって、演算回路を共有することができ、回路面積を低減することができる。
【０１９５】
＜効果＞
以上のように、機密情報における改竄の有無を検出する処理において、１つのコンテンツ鍵情報におけるチェック値の抽出と、ｍ個の暗号化チェック値からなる連結データに対するハッシュ演算とが実行される。このように、コンテンツ鍵群TKURE(i)全体に対してハッシュ演算を実行する必要がないので、改竄検出処理時における処理量を低減することができる。
【０１９６】
また、機密情報を生成する処理において、ｍ個の暗号化されたコンテンツ鍵情報の各々からチェック値が抽出され、ｍ個の暗号化チェック値から１つの全体検査用データが生成される。このように、改竄検出処理のために使用されるデータ（チェック値，全体検査用データ）が複数段階に分けて生成される。そして、最終段階の検査用データ（全体検査用データ）が保護領域に格納される。このように、保護領域に格納されるデータ量を低減することができる。
【０１９７】
さらに、機密情報に新たなコンテンツ鍵情報が追加された場合、追加されたコンテンツ鍵情報からチェック値を抽出し、一方で、既存のコンテンツ鍵情報から抽出された暗号化チェック値と新たなコンテンツ鍵情報から抽出された暗号化チェック値とから新たな全体検査用データを生成する。また、機密情報からコンテンツ鍵情報が削除された場合、削除されたコンテンツ鍵情報以外のコンテンツ鍵情報に含まれるチェック値から全体検査用データが生成される。このように、コンテンツ鍵群TKURE(i)全体に対してハッシュ演算を実行する必要がないので、機密情報の更新時における処理量を低減することができる。
【０１９８】
さらに、本実施形態では、コンテンツ鍵情報の各々に対する改竄検出処理と、すべてのチェック値に対する改竄検出処理とを別々の方式で行っている。すなわち、コンテンツ鍵の各々に対する改竄検出処理では、そのコンテンツ鍵情報に対して連鎖暗号方式を利用した復号化処理が実行され抽出処理が実行される。一方、すべてのチェック値に対する改竄検出処理では、すべての暗号化チェック値に対してハッシュ演算が実行される。このように、改竄検出時における検査手段が互いに異なっているので、セキュリティレベルを向上させることができる。
【０１９９】
なお、部分検査用データDATA21は、ＲＯＭ１１６やレジスタ（図示せず）に格納されている必要はない。また、部分検査用データDATA21の定数がある規則性を有する場合には、レジスタを設けなくとも、演算器の組み合わせなどで実現することも可能である。一般に、レジスタを設けるよりも演算器の組み合わせによって定数を実装する方が、回路面積としては有利である。
【０２００】
また、ドメイン鍵管理情報の中にチェック値が埋め込まれていても良い。例えば、ドメイン鍵管理情報UR[t](i)の中にチェック値Check(i)が埋め込まれていても良い。この場合、暗号化コンテンツ鍵EncKt(i-j)，暗号化コンテンツ鍵管理情報EncUR[t](i-j)，および暗号化チェック値EncCheck(i-j)を含む暗号化コンテンツ鍵情報に対する改竄検出処理（図１６参照）と同様の処理を実行すれば、暗号化ドメイン鍵EncKu(i)および暗号化ドメイン鍵管理情報EncUR[t](i)を含むドメイン鍵情報における改竄の有無を検出することができる。
【０２０１】
＜付加情報＞
また、図２６のように、ｍ個の暗号化コンテンツ鍵EncKt(i-1)〜EncKt(i-m)に対してｍ個の付加情報info(i-1)〜info(i-m)が対応付けられていても構わない。付加情報info(i-1)〜info(i-m)の各々には、暗号化チェック値EncCheck(i-1)〜EncCheck(i-m)のうち自己に対応するチェック値が平文の状態で格納されている（図２６では、代表としてチェック値Check(i-j)のみを図示している。）。例えば、暗号化チェック値EncCheck(i-j)が付随する暗号化コンテンツ鍵EncKt(i-j)の付加情報info(i-j)には、平文のチェック値Check(i-j)が格納されている。この場合、コンテンツ鍵毎に異なるチェック値を設けることが可能であり、セキュリティを向上させることができる。また、チェック値Check(i-j)は、指定バイトに従って、対応する付加情報info(i-j)の所定位置に格納されていても良い。
【０２０２】
ここで、暗号化コンテンツ鍵EncKt(i-j)について改竄チェックを実行する場合、指定バイトに従って、付加情報info(i-j)の中から部分検査用データDATA21が抽出される（ＳＴ２０２−５）。次に、ステップ２０２−４では、ステップＳＴ２０２−１〜ＳＴ２０２−３における処理によって得られたチェック値Check(i-j)とステップＳＴ２０２−５において抽出された部分検査用データDATA21とが比較される。このようにして、暗号化コンテンツ鍵EncKt(i-j)における改竄の有無を検査する。
【０２０３】
＜エントリー＞
なお、ターゲット機器によっては、コンテンツ鍵が格納される領域を、エントリーという形で、予め確保しているものもある。エントリーの各々には、ドメイン鍵が対応付けられる。エントリーに格納される暗号化コンテンツ鍵は、そのエントリーに対応付けられたドメイン鍵によって復号化することができる。このような場合には、各々のエントリーに対応するチェック値を連結してハッシュ演算を実行するという概念が生じる。すなわち、コンテンツ鍵が実際に格納されているか否かに関わらず、同一のドメイン鍵が対応付けられた全てのエントリーの中から指定バイトに従って所定位置のデータを抽出し、その抽出したデータを１つに連結してハッシュ演算を実行し、算出されたハッシュ値をドメイン鍵管理情報に格納してもよい。もちろん、処理量を軽減するためにはハッシュ演算の演算量が少ない方が好ましい。したがって、コンテンツ鍵が実際に格納されているエントリーだけに指定バイトに従ったデータ抽出を実行し、その抽出したデータを１つに連結してハッシュ演算を実行し、算出されたハッシュ値をドメイン鍵管理情報に格納する方が好ましい。
【０２０４】
＜改変例＞
本実施形態について様々な改変例が考えられるが、代表例として以下の改変例を開示する。
【０２０５】
（１）暗号化コンテンツは、必ずしも暗号化コンテンツ鍵を格納するターゲット機器と同一のターゲット機器内に格納されている必要はなく、別の記録媒体に格納されるものであっても良い。その場合には、ホスト機器は、その別の記録媒体に格納された暗号化コンテンツをネットワーク等を介して取得し、本実施形態の改竄検出方法によって正当性が保証されたコンテンツ鍵を用いてその暗号化コンテンツを復号化することになる。
【０２０６】
（２）チェック値が埋め込まれる位置は、指定バイトで指定する必要は必ずしもなく、固定でも構わない。例えば、ＬＳＢの８バイトと固定して埋め込んでおけば、全てのデータ（コンテンツ鍵、コンテンツ鍵管理情報）の改竄をチェックすることが可能である。
【０２０７】
（第３の実施形態）
この発明の第３の実施形態では、全体チェック値を利用して改竄検出が実行される。連鎖暗号方式は図１２に示したものと同様である。また、コンテンツ鍵Kt(i-j)およびそれに付随する情報UR[t](i-j)の改竄の有無を検出する方法は、第２の実施形態と同様である。
【０２０８】
＜構成＞
この発明の第３の実施形態による機密情報処理システムの全体構成は、図１３に示したものと同様である。ただし、ターゲット機器１０に格納される機密情報が異なる。
【０２０９】
＜機密情報＞
図２７は、本実施形態におけるターゲット機器１０に格納される機密情報を示す。保護領域１０２には、ドメイン鍵群UKUREが格納される。通常領域１０３には、鍵対応テーブルAddress Listと、コンテンツ鍵群TKURE(i)と、チェック値リストCheck List(i)と、全体チェック値Check(i)とが格納される。なお、通常領域１０３には、暗号化されたコンテンツも格納されているが、図２７では省略する。
【０２１０】
〔ドメイン鍵群〕
ドメイン鍵群UKUREは、図１４と同様に、ｎ個の暗号化ドメイン鍵EncKu(1)〜EncKu(n)と、ｎ個の暗号化ドメイン鍵管理情報EncUR[u](1)〜EncUR[u](n)とを含む。また、暗号化ドメイン鍵管理情報EncUR[u](1)〜EncUR[u](n)の各々の所定位置には、全体検査用データが格納される。全体検査用データは、そのドメイン鍵に対応するコンテンツ鍵群と全体チェック値とに基づいて生成されている。例えば、暗号化ドメイン鍵管理情報EncUR[u](i)の所定位置には、コンテンツ鍵群TKURE(i)および全体チェック値Check(i)に基づいて生成された全体検査用データDATA32(i)が格納されている。
【０２１１】
なお、図２７では、暗号化ドメイン鍵EncKu(i)に対応するコンテンツ鍵群TKURE(i)のみしか図示していないが、暗号化ドメイン鍵EncKu(i)以外の暗号化ドメイン鍵EncKu(1)〜EncKu(n)の各々にもコンテンツ鍵群が対応していてよい。
【０２１２】
〔コンテンツ鍵群および鍵対応テーブル〕
コンテンツ鍵群TKURE(i)および鍵対応テーブルAddress Listは、図１４に示したものと同様である。
【０２１３】
〔チェック値リスト〕
チェック値リストCheck List(i)は、コンテンツ鍵群TKURE(i)に対応する。また、チェック値リストCheck List(i)は、ｍ個の二重暗号化チェック値Enc２Check(i-1)〜Enc２Check(i-m)を含む。二重暗号化チェック値Enc２Check(i-1)〜Enc２Check(i-m)は、コンテンツ鍵群TKURE(i)に含まれる暗号化チェック値EncCheck(i-1)〜EncCheck(i-m)と一対一で対応する。
【０２１４】
なお、図２７では、コンテンツ鍵群TKURE(i)に対応するチェック値リストCheck List(i)のみしか図示していないが、コンテンツ鍵群TKURE(i)以外のコンテンツ鍵群（図示せず）の各々に対応するハッシュリストも存在していても良い。
【０２１５】
〔全体チェック値〕
全体チェック値Check(i)は、コンテンツ鍵群TKURE(i)に対応する。なお、図２７では、コンテンツ鍵群TKURE(i)に対応する全体チェック値Check(i)のみ図示されているが、コンテンツ鍵群TKURE(i)以外のコンテンツ鍵群（図示せず）の各々に対応する全体チェック値も存在していても良い。
【０２１６】
＜チェック値リストおよび暗号化チェック値の生成手順＞
図２８を参照しつつ、図２７に示したチェック値リストCheck List(i)および全体検査用データDATA32(i)の生成手順について説明する。
【０２１７】
〔ステップＳＴ３０１−１〕
まず、指定バイトに従って、コンテンツ鍵群TKURE(i)の中からｍ個の暗号化チェック値EncCheck(i-1)〜EncCheck(i-m)が抽出される。例えば、暗号化コンテンツ鍵EncKt(i-j)，暗号化コンテンツ鍵管理情報EncUR(i-j)，および暗号化チェック値EncCheck(i-j)からなる連結データの中から暗号化チェック値EncCheck(i-j)が抽出される。このようにして、ｍ個の暗号化チェック値EncCheck(i-1)〜EncCheck(i-m)が抽出される。
【０２１８】
〔ステップＳＴ３０１−２〕
次に、ステップＳＴ３０１−１において抽出されたｍ個の暗号化チェック値EncCheck(i-1)〜EncCheck(i-m)と全体チェック値Check(i)とが１つに連結される。これにより、１つのチェック値連結データが生成される。
【０２１９】
〔ステップＳＴ３０１−３〕
次に、連鎖暗号方式にしたがって、ドメイン鍵Ku(i)を用いてチェック値連結データが暗号化される。これにより、二重暗号化チェック値Enc２Check(i-1)〜Enc２Check(i-m)と暗号化全体チェック値EncCheck(i)との集合が生成される。
【０２２０】
〔ステップＳＴ３０１−４〕
次に、二重暗号化チェック値Enc２Check(i-1)〜Enc２Check(i-m)と暗号化全体チェック値EncCheck(i)との集合の中から、暗号化全体チェック値EncCheck(i)が取り出される。これにより、二重暗号化チェック値Enc２Check(i-1)〜Enc２Check(i-m)の集合は、チェック値リストCheck List(i)になる。
【０２２１】
〔ステップＳＴ３０１−５〕
次に、ステップＳＴ３０１−４において取り出された暗号化全体チェック値EncCheck(i)は、全体検査用データDATA32(i)として、ドメイン鍵管理情報UR[u](i)の所定位置に格納される。
【０２２２】
ここで、暗号化ドメイン鍵管理情報EncUR[u](i)を更新する場合（例えば、既に存在する暗号化ドメイン鍵EncKu(i)に対して新たなコンテンツ鍵情報が対応付けられた場合や、暗号化ドメイン鍵EncKu(i)に対して対応付けられているコンテンツ鍵情報が削除された場合）は、暗号化ドメイン鍵管理情報EncUR[u](i)は、暗号化全体チェック値EncCheck(i)を格納する前に一旦復号化されて、ドメイン鍵管理情報UR[u](i)になる。そして、ドメイン鍵管理情報UR[u](i)に暗号化全体チェック値EncCheck(i)が格納されると、そのドメイン鍵管理情報UR[u](i)は、暗号化されて暗号化ドメイン鍵管理情報EncUR[u](i)に戻る。このようにして、全体検査用データDATA32(i)が更新される。
【０２２３】
ただし、ドメイン鍵Ku(i)も新たに作成された場合は、ドメイン鍵管理情報UR[u](i)も新規に作成されることになるので、一旦復号化の処理を行う必要はない。この場合、新たに作成されたドメイン鍵管理情報UR[u](i)に暗号化全体チェック値EncCheck(i)を格納した後、そのドメイン鍵管理情報UR[u](i)が暗号化される。このようにして新たな暗号化ドメイン鍵管理情報EncUR[u](i)が生成される。
【０２２４】
＜改竄検出方法＞
図２９を参照しつつ、図２７に示した全体チェック値Check(i)を利用した改竄検出方法について説明する。ここでは、暗号化ドメイン鍵EncKu(i)，チェック値リストCheck List(i)，および全体チェック値Check(i)を例に挙げて説明する。なお、図２７に示したチェック値Check(i-1)〜Check(i-m)を利用した改竄検出方法は、図１６に示した方法と同様である。
【０２２５】
〔ステップＳＴ３０２−１〕
まず、暗号化ドメイン鍵管理情報EncUR[u](i)が復号化される。これにより、ドメイン鍵管理情報UR[u](i)が生成される。そして、ドメイン鍵管理情報UR[u](i)の所定位置に格納された全体検査用データDATA32(i)が抽出される。
【０２２６】
〔ステップＳＴ３０２−２〕
次に、チェック値リストCheck List(i)に存在するｍ個の二重暗号化チェック値Enc２Check(i-1)〜Enc２Check(i-m)が１つに連結される。そして、ステップＳＴ３０２−１において抽出された全体検査用データDATA32(i)は、それらｍ個の二重暗号化チェック値Enc２Check(i-1)〜Enc２Check(i-m)からなる連結データの後段にさらに連結される。つまり、二重暗号化チェック値Enc２Check(i-1)〜Enc２Check(i-m)と全体検査用データDATA32(i)とからなる連結データにおいて、その連結データのＬＳＢは、全体検査用データDATA32(i)である。これにより、１つのチェック値連結データが生成される。
【０２２７】
〔ステップＳＴ３０２−３〕
次に、ドメイン鍵Ku(i)を用いて、連鎖暗号方式による復号化がチェック値連結データに対して実行される。
【０２２８】
〔ステップＳＴ３０２−４〕
次に、復号化されたチェック値連結データの中から所定位置のデータ（ここでは、その集合のＬＳＢである８バイトデータ）が抽出される。これにより、全体チェック値Check(i)に相当するデータが抽出されたことになる。次に、ステップＳＴ３０２−６へ進む。
【０２２９】
〔ステップＳＴ３０２−５〕
一方、指定バイトに従って、ターゲット機器１０の通常領域１０３に格納されている全体チェック値Check(i)が抽出される。次に、ステップＳＴ３０２−６へ進む。
【０２３０】
〔ステップＳＴ３０２−６〕
次に、ステップＳＴ３０２−４において抽出されたデータとステップＳＴ３０２−５において抽出された全体チェック値Check(i)とが比較される。ここで、両者が一致する場合チェック値リストCheck List(i)あるいは全体チェック値Check(i)に改竄がなかったものと判断される。一方、両者が一致しない場合チェック値リストCheck List(i)あるいは全体チェック値Check(i)が改竄されていると判断されて、異常終了が実行される。
【０２３１】
このようにして、チェック値リストCheck List(i)の正当性を検証することができる。チェック値リストが改竄されていなければ、暗号化コンテンツ鍵の改竄の有無を検出することができる。例えば、暗号化コンテンツ鍵EncKt(i-j)の改竄について検査したい場合、ステップＳＴ３０２−３において復号化されたチェック値リストCheck List(i)の中からコンテンツ鍵Kt(i-j)に対応する暗号化チェック値EncCheck(i-j)を抽出する。一方、コンテンツ鍵群TKURE(i)の中から暗号化チェック値EncCheck(i-j)を抽出する。そして、復号化されたチェック値リストCheck List(i)から抽出された暗号化チェック値EncCheck(i-j)とコンテンツ鍵群TKURE(i)から抽出された暗号化チェック値EncCheck(i-j)とを比較する。このようにすれば、暗号化コンテンツ鍵EncKt(i-j)およびこれに付随する情報（暗号化コンテンツ鍵管理情報EncUR[t](i-j)等）が改竄されているか否かを検証することができる。
【０２３２】
＜改竄検出方法＞
次に、本実施形態の機密情報処理システムによる動作について説明する。本実施形態の機密情報処理システムによる動作の全体の流れは、図５と同様であるが、コンテンツ鍵の改竄をチェックする処理（ステップＳＴ２２）における詳細な処理が異なる。本実施形態では、ステップＳＴ２２において、図１６に示した改竄チェック方法（チェック値Check(i-1)〜Check(i-m)を利用した改竄チェック方法）と図２９に示した改竄チェック方法（全体チェック値Check(i)を利用した改竄チェック方法）を実行することによって、コンテンツ鍵の正当性を検証する。
【０２３３】
＜コンテンツ鍵情報の追加や削除＞
また、今後は、ネットワークを介した配信によってコンテンツ鍵を追加したり、削除したりすることも考えられる。コンテンツ鍵情報の追加や削除にともない、チェック値リストCheck List(i)，および全体検査用データDATA32(i)が更新される。
【０２３４】
〔コンテンツ鍵情報の追加〕
図３０を参照しつつ、コンテンツ鍵情報が追加された場合について説明する。なお、ここでは、暗号化コンテンツ鍵EncKt(i-a)，暗号化コンテンツ鍵管理情報EncUR[t](i-a)，暗号化チェック値EncCheck(i-a)を含む暗号化コンテンツ鍵情報が追加される。この暗号化コンテンツ鍵情報は、コンテンツ鍵Kt(i-a)，コンテンツ鍵管理情報UR[t](i-a)を含むコンテンツ鍵情報にチェック値Check(i-a)が追加された後、そのコンテンツ鍵情報がドメイン鍵Ku(i)を用いて連鎖暗号化されることによって生成される。
【０２３５】
〔ステップＳＴ３０３−１〕
まず、暗号化コンテンツ鍵EncKt(i-1)〜EncKt(i-m)に付随する暗号化チェック値EncCheck(i-1)〜EncCheck(i-m)と、追加された暗号化コンテンツ鍵EncKt(i-a)に付随する暗号化チェック値EncCheck(i-a)とが抽出される。
【０２３６】
〔ステップＳＴ３０３−２〕
次に、抽出された暗号化チェック値EncCheck(i-1)〜EncCheck(i-m)，EncCheck(i-a)と全体チェック値Check(i)とが１つに連結される。これにより、１つのチェック値連結データが生成される。
【０２３７】
〔ステップＳＴ３０３−３〕
次に、連鎖暗号方式にしたがって、ステップＳＴ３０３−２において生成されたチェック値連結データが暗号化される。これにより、二重暗号化チェック値Enc２Check(i-1)〜Enc２Check(i-m)，Enc２Check(i-a)と暗号化全体チェック値EncCheck(i')との集合が生成される。
【０２３８】
〔ステップＳＴ３０３−４，ＳＴ３０３−５〕
次に、ステップＳＴ３０３−４における処理と同様に、二重暗号化チェック値Enc２Check(i-1)〜Enc２Check(i-m)，Enc２Check(i-a)と暗号化全体チェック値EncCheck(i)との集合の中から、暗号化全体チェック値EncCheck(i')が取り出される。これにより、二重暗号化チェック値Enc２Check(i-1)〜Enc２Check(i-m)，Enc２Check(i-a)の集合は、新たなチェック値リストCheck List(i')になる。次に、ステップＳＴ３０３−５における処理と同様に、取り出された暗号化全体チェック値EncCheck(i')は、新たな全体検査用データDATA32(i)として、ドメイン鍵管理情報UR[u](i)の所定位置に格納される。
【０２３９】
このようにして、チェック値リストCheck List(i)，および全体検査用データDATA32(i)が更新される。
【０２４０】
〔コンテンツ鍵情報の削除〕
図３１を参照しつつ、コンテンツ鍵情報が削除された場合について説明する。なお、ここでは、暗号化コンテンツ鍵EncKt(i-2)，暗号化コンテンツ鍵管理情報EncUR[t](i-2)，暗号化チェック値EncCheck(i-2)を含む暗号化されたコンテンツ鍵情報が削除される。
【０２４１】
〔ステップＳＴ３０４−１〕
まず、削除された暗号化コンテンツ鍵EncKt(i-2)以外の（ｍ−１）個の暗号化コンテンツ鍵EncKt(i-1)，EncKt(i-3)〜EncKt(i-m)に付随する暗号化チェック値EncCheck(i-1)，EncCheck(i-3)〜EncCheck(i-m)が抽出される。
【０２４２】
〔ステップＳＴ３０４−２〕
次に、抽出された（ｍ−１）個の暗号化チェック値EncCheck(i-1)，EncCheck(i-3)〜EncCheck(i-m)と全体チェック値Check(i)とが１つに連結される。これにより、チェック値連結データが生成される。
【０２４３】
〔ステップＳＴ３０４−３〕
次に、連鎖暗号方式にしたがって、ステップＳＴ２０５−２において生成されたチェック値連結データが暗号化される。これにより、二重暗号化チェック値Enc２Check(i-1)，Enc２Check(i-3)〜Enc２Check(i-m)と暗号化全体チェック値EncCheck(i")との集合が生成される。
【０２４４】
〔ステップＳＴ３０１−４，ＳＴ３０１−５〕
次に、ステップＳＴ３０１−４における処理と同様に、二重暗号化チェック値Enc２Check(i-1)，Enc２Check(i-3)〜Enc２Check(i-m)と暗号化全体チェック値EncCheck(i")との集合の中から、暗号化全体チェック値EncCheck(i")が取り出される。これにより、二重暗号化チェック値Enc２Check(i-1)，Enc２Check(i-3)〜Enc２Check(i-m)の集合は、新たなチェック値リストCheck List(i")になる。次に、ステップＳＴ３０１−５における処理と同様に、取り出された暗号化全体チェック値EncCheck(i")は、新たな全体検査用データDATA32(i)として、ドメイン鍵管理情報UR[u](i)の所定位置に格納される。
【０２４５】
このようにして、チェック値リストCheck List(i)，および全体検査用データDATA32(i)が更新される。
【０２４６】
＜効果＞
以上のように、機密情報における改竄の有無を検出する処理において、１つのコンテンツ鍵情報におけるチェック値の抽出と、全体検査用データとｍ個の二重暗号化チェック値とからなる連結データに対する復号化処理とが実行される。このように、コンテンツ鍵群TKURE(i)全体に対してハッシュ演算を実行する必要がないので、改竄検出処理時における処理量を低減することができる。
【０２４７】
また、機密情報を生成する処理において、ｍ個の暗号化されたコンテンツ鍵情報の各々からチェック値が抽出され、全体チェック値およびｍ個の暗号化チェック値から１つの全体検査用データが生成される。このように、改竄検出処理のために使用されるデータ（チェック値，全体検査用データ）が複数段階に分けて生成される。そして、最終段階の検査用データ（全体検査用データ）が保護領域に格納される。このように、保護領域に格納されるデータ量を低減することができる。
【０２４８】
さらに、機密情報に新たなコンテンツ鍵情報が追加された場合、追加されたコンテンツ鍵情報からチェック値を抽出し、一方で、全体チェック値，既存のコンテンツ鍵情報から抽出された暗号化チェック値，新たなコンテンツ鍵情報から抽出された暗号化チェック値を含む連結データから新たな全体検査用データが生成される。また、機密情報からコンテンツ鍵情報が削除された場合、削除されたコンテンツ鍵情報に対応する二重暗号化チェック値をチェック値リストの中から削除し、全体チェック値と削除されなかった二重暗号化チェック値とを含む連結データに対して連鎖暗号方式を利用した暗号化処理が実行されて、新たな全体検査用データが生成される。このように、コンテンツ鍵群TKURE(i)全体に対してハッシュ演算を実行する必要がないので、機密情報の更新時における処理量を低減することができる。
【０２４９】
＜改変例＞
本実施形態について様々な改変例が考えられるが、代表例として以下の３つの改変例を開示する。
【０２５０】
（１）暗号化コンテンツは、必ずしも暗号化コンテンツ鍵を格納するターゲット機器と同一のターゲット機器内に格納されている必要はなく、別の記録媒体に格納されるものであっても良い。その場合には、ホスト機器は、その別の記録媒体に格納された暗号化コンテンツをネットワーク等を介して取得し、本実施形態の改竄検出方法によって正当性が保証されたコンテンツ鍵を用いてその暗号化コンテンツを復号化することになる。
【０２５１】
（２）チェック値が埋め込まれる位置は、指定バイトで指定する必要は必ずしもなく、固定でも構わない。例えば、ＬＳＢの８バイトと固定して埋め込んでおけば、全てのデータ（コンテンツ鍵、コンテンツ鍵管理情報）の改竄の有無を検出することが可能である。
【０２５２】
（３）全体チェック値Check(i)も、部分検査用データDATA21と同様に、定数としてＲＯＭ１１６やレジスタ（図示せず）などに格納しておいても良い。また、その定数がある規則性を有する場合には、レジスタを設けなくとも、演算器の組み合わせなどで実現することも可能である。一般に、レジスタを設けるよりも演算器の組み合わせによって定数を実装する方が、回路面積としては有利である。
【０２５３】
以上の各実施形態の説明において、図５に示した概略フローチャートは、各々の実施形態によるコンテンツ鍵の改竄チェック方法（ステップＳＴ２２における処理）に応じて、適宜変更されても構わない。当業者であれば、図５の概略フローチャートを各実施形態に応じて適宜変更することは容易である。
【産業上の利用可能性】
【０２５４】
本発明は、ターゲット機器とホスト機器から構成される機密情報処理システム等に利用可能である。
【図面の簡単な説明】
【０２５５】
【図１】図１は、この発明の第１の実施形態による機密情報処理システムの全体構成を示すブロック図である。
【図２】図２は、この発明の第１の実施形態におけるターゲット機器に格納される機密情報を示す図である。
【図３】図３は、ドメイン鍵の暗号化／復号化とコンテンツ鍵の暗号化／復号化とについて説明するための図である。
【図４】図４は、図２に示したハッシュリストおよび全体検査用データの生成手順について説明するための図である。
【図５】図５は、機密情報処理システムによる動作についての概略フローチャートである。
【図６】図６は、認証処理について説明するための図である。
【図７】図７は、この発明の第１の実施形態における改竄検出方法についてのフローチャートである。
【図８】図８は、コンテンツ鍵情報が追加された場合におけるハッシュリストおよび全体検査用データの更新手順について説明するための図である。
【図９】図９は、コンテンツ鍵情報が削除された場合におけるハッシュリストおよび全体検査用データの更新手順について説明するための図である。
【図１０】図１０は、図２に示した機密情報の改変例について説明するための図である。
【図１１】図１１は、図２に示した機密情報の改変例について説明するための図である。
【図１２】図１２は、連鎖暗号方式について説明するための図である。
【図１３】図１３は、この発明の第２の実施形態による機密情報処理システムの全体構成を示すブロック図である。
【図１４】図１４は、図１３に示したターゲット機器に格納される機密情報を示す図である。
【図１５】図１５は、図１４に示した全体検査用データの生成手順について説明するための図である。
【図１６】図１６は、チェック値を利用した改竄検出処理の手順について説明するための図である。
【図１７】図１７は、この発明の第２の実施形態における改竄検出方法についてのフローチャートである。
【図１８】図１８は、コンテンツ鍵情報が追加された場合における全体検査用データの更新手順について説明するための図である。
【図１９】図１９は、コンテンツ鍵情報が削除された場合における全体検査用データの更新手順について説明するための図である。
【図２０】図２０は、一方向関数型のハッシュ演算（DES HASH）について説明するための図である。
【図２１】図２１は、図２０に示したハッシュ演算を実行するためのアルゴリズムを示す図である。
【図２２】図２２は、一方向関数型のハッシュ演算（C2）について説明するための図である。
【図２３】図２３は、連鎖暗号方式（DES E-CBC）について説明するための図である。
【図２４】図２４は、図２３に示した連鎖暗号方式を実行するためのアルゴリズムを示す図である。
【図２５】図２５は、連鎖暗号方式（C2 E-CBC）について説明するための図である。
【図２６】図２６は、図１４に示した機密情報の改変例について説明するための図である。
【図２７】図２７は、この発明の第３の実施形態におけるターゲット機器に格納される機密情報を示す図である。
【図２８】図２８は、図２７に示したチェック値リストおよび全体検査用データの生成手順について説明するための図である。
【図２９】図２９は、全体チェック値およびチェック値リストを利用した改竄検出処理の手順について説明するための図である。
【図３０】図３０は、コンテンツ鍵情報が追加された場合におけるチェック値リストおよび全体検査用データの更新手順について説明するための図である。
【図３１】図３１は、コンテンツ鍵情報が削除された場合におけるチェック値リストおよび全体検査用データの更新手順について説明するための図である。
【図３２】図３２は、従来のターゲット機器に格納される機密情報を示す図である。
【図３３】図３３は、ドメイン鍵を設定した場合のターゲット機器に格納される機密情報を示す図である。
【図３４】図３４は、ターゲット機器に格納される機密情報についてさらに詳細に示した図である。
【符号の説明】
【０２５６】
（10）  ターゲット機器
（11）  ホスト機器
（101，901）  システム領域
（102，902）  保護領域
（103，903）  通常領域
（111）  内部バス
（112）  ターゲットＩ／Ｆ部
（113）  機密情報処理部
（114）  ホストＩ／Ｆ部
（115）  ホストＣＰＵ
（116）  ＲＯＭ
（117）  ＲＡＭ
【図１】
0004606421.tif 000002
【図２】
0004606421.tif 000003
【図３】
0004606421.tif 000004
【図４】
0004606421.tif 000005
【図５】
0004606421.tif 000006
【図６】
0004606421.tif 000007
【図７】
0004606421.tif 000008
【図８】
0004606421.tif 000009
【図９】
0004606421.tif 000010
【図１０】
0004606421.tif 000011
【図１１】
0004606421.tif 000012
【図１２】
0004606421.tif 000013
【図１３】
0004606421.tif 000014
【図１４】
0004606421.tif 000015
【図１５】
0004606421.tif 000016
【図１６】
0004606421.tif 000017
【図１７】
0004606421.tif 000018
【図１８】
0004606421.tif 000019
【図１９】
0004606421.tif 000020
【図２０】
0004606421.tif 000021
【図２１】
0004606421.tif 000022
【図２２】
0004606421.tif 000023
【図２３】
0004606421.tif 000024
【図２４】
0004606421.tif 000025
【図２５】
0004606421.tif 000026
【図２６】
0004606421.tif 000027
【図２７】
0004606421.tif 000028
【図２８】
0004606421.tif 000029
【図２９】
0004606421.tif 000030
【図３０】
0004606421.tif 000031
【図３１】
0004606421.tif 000032
【図３２】
0004606421.tif 000033
【図３３】
0004606421.tif 000034
【図３４】
0004606421.tif 000035