(57)【要約】【課題】  １つの元になるドメイン鍵に複数のコンテンツ鍵が対応付けられてユーザからアクセス可能な領域に格納される機密情報処理システムにおいて、処理量の少ないコンテンツ鍵の改竄チェックの方法を提供する。【解決手段】  同一のドメイン鍵に対応付けられるコンテンツ鍵毎のハッシュ値をハッシュリストとして通常領域に格納し、保護領域にはドメイン鍵のハッシュ値としてハッシュリストのハッシュ値を格納する。あるいは、コンテンツ鍵内に検証用データを埋め込んでコンテンツ鍵の改竄をチェックすると共に、同一のドメイン鍵に対応付けられる検証用データを連結したハッシュ値をドメイン鍵のハッシュ値として保護領域に格納する。【選択図】 図３
2006197540.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのドメイン鍵を第１の領域に記憶し、かつ各々が何れかの前記ドメイン鍵情報に関連付けられる複数のコンテンツ鍵情報を前記第１の領域と異なる第２の領域に記憶するターゲット機器内の、前記コンテンツ鍵情報の改竄を検出するための改竄検出用データ生成方法であって、
一のドメイン鍵に関連付けられる前記複数のコンテンツ鍵情報を連鎖暗号方式によって暗号化するステップと、
前記暗号化された状態の複数のコンテンツ鍵情報から所定位置のデータを抽出するステップと、
前記複数のコンテンツ鍵情報から抽出された複数の前記所定位置のデータを連結するステップと、
前記連結された複数の前記所定位置のデータに対してハッシュ演算を行い、連鎖ハッシュ値を算出するステップと、
平文状態の前記所定位置のデータに相当するチェック値を前記ターゲット機器内に格納するステップと、
前記連鎖ハッシュ値を前記ターゲット機器内に格納するステップと、を備えることを特徴とする改竄検出用データ生成方法。
【請求項２】
請求項１において、
前記コンテンツ鍵情報が、コンテンツの再生のための鍵となるコンテンツ鍵と、前記コンテンツ鍵を管理するためのコンテンツ鍵管理情報を備えることを特徴とする改竄検出用データ生成方法。
【請求項３】
請求項１において、
前記第１の領域は所定のアクセスのみを受けつける保護領域であり、
前記第２の領域はユーザからの任意のアクセスを受けつける通常領域であり、
前記チェック値を前記第２の領域に、前記連鎖ハッシュ値を前記第１の領域に格納することを特徴とする改竄検出用データ生成方法。
【請求項４】
請求項１において、
前記所定位置のデータが、前記コンテンツ鍵情報の最下位に位置する所定長のデータであることを特徴とする改竄検出用データ生成方法。
【請求項５】
請求項１において、
平文状態の前記所定位置のデータは、前記一のドメイン鍵に関連付けられる前記複数のコンテンツ鍵情報で共通であることを特徴とする改竄検出用データ生成方法。
【請求項６】
少なくとも１つのドメイン鍵情報を第１の領域に記憶し、各々が何れかの前記ドメイン鍵情報に関連付けられる複数のコンテンツ鍵情報を前記第１の領域と異なる第２の領域に記憶するターゲット機器内の、前記複数のコンテンツ鍵情報のうち一のコンテンツ鍵情報の改竄を検出する改竄検出方法であって、
前記一のコンテンツ鍵情報に第１の演算を施し検証用データを算出する第１の算出ステップと、
前記第１の算出ステップで算出された検証用データと、前記第２の領域に予め格納された検証用データとを比較する第１の比較ステップと、
前記一のコンテンツ鍵情報と同一のドメイン鍵情報に関連付けられる複数のコンテンツ鍵情報に関連する複数の検証用データを、前記第１の演算を行うことなく抽出する抽出ステップと、
前記抽出ステップで抽出された前記複数の検証用データに第２の演算を施し、全体検証用データを算出する第２の算出ステップと、
前記第２の算出ステップで算出された全体検証用データと、前記第１の領域に前記同一のドメイン鍵情報と関連付けて予め格納された全体検証用データを比較する第２の比較ステップとを備える
ことを特徴とする改竄検出方法。
【請求項７】
請求項６において、
前記第１の領域は所定のアクセスのみを受けつける保護領域であり、
前記第２の領域はユーザからの任意のアクセスを受けつける通常領域である
ことを特徴とする改竄検出方法。
【請求項８】
請求項６において、
前記ドメイン鍵情報が暗号化された状態で前記第１の領域に、前記コンテンツ鍵情報が暗号化された状態で前記第２の領域に格納されている
ことを特徴とする改竄検出方法。
【請求項９】
請求項８において、
前記第１の演算及び前記第２の演算がハッシュ演算である
ことを特徴とする改竄検出方法。
【請求項１０】
請求項８において、
前記全体検証用データは暗号化された状態で前記第１の領域に予め格納されており、前記ドメイン鍵情報を復号化することにより、平文の状態で前記全体検証用データを取得し、
取得した平文の状態の前記全体検証用データを、前記第２の比較ステップにおいて前記算出された全体検証用データと比較する
ことを特徴とする改竄検出方法。
【請求項１１】
請求項８において、
前記コンテンツ鍵情報は連鎖暗号方式で暗号化されており、
前記第１の演算は、前記コンテンツ鍵情報を復号化して所定位置のデータを抽出する演算である
ことを特徴とする改竄検出方法。
【請求項１２】
請求項６において、
前記第２の領域に予め格納された検証用データは前記コンテンツ鍵情報内に平文の状態で埋め込まれている
ことを特徴とする改竄検出方法。
【請求項１３】
請求項１１において、
前記所定位置を指定可能である
ことを特徴とする改竄検出方法。
【請求項１４】
請求項１１において、
前記所定位置のデータが前記コンテンツ鍵情報の最下位に位置する所定長のデータである
ことを特徴とする改竄検出方法。
【請求項１５】
請求項６において、
前記コンテンツ鍵情報が追加された場合に、前記追加されたコンテンツ鍵情報について前記第１の演算を施して追加検証用データを算出し、
算出された前記追加検証用データを加えた上で、前記複数の検証用データに前記第２の演算を施して全体検証用データを算出し、
算出された前記全体検証用データを、前記ドメイン鍵情報と関連付けて前記第１の領域に格納する
ことを特徴とする改竄検出方法。
【請求項１６】
請求項６において、
前記コンテンツ鍵情報が削除された場合に、前記削除されたコンテンツ鍵情報の検証用データを削除した上で、前記複数の検証用データに前記第２の演算を施して全体検証用データを算出し、
算出された前記全体検証用データを、前記ドメイン鍵情報と関連付けて前記第１の領域に格納する
ことを特徴とする改竄検出方法。
【請求項１７】
少なくとも１つのドメイン鍵情報と、各々が何れかの前記ドメイン鍵情報に関連付けられる複数のコンテンツ鍵情報と、を暗号化された状態で記憶するターゲット機器内の、前記複数のコンテンツ鍵情報のうち一のコンテンツ鍵情報の改竄を検出する改竄検出方法であって、
前記ターゲット機器には、連鎖暗号方式で暗号化された状態の全体チェック値と、平文の状態の全体チェック値とが予め格納されており、
前記一のコンテンツ鍵情報に第１の演算を施し検証用データを算出する第１の算出ステップと、
前記第１の算出ステップで算出された検証用データと、前記ターゲット機器に予め格納された検証用データとを比較する第１の比較ステップと、
前記一のコンテンツ鍵情報と同一のドメイン鍵情報に関連付けられる複数のコンテンツ鍵情報に関連する暗号化された状態の複数の検証用データを抽出する抽出ステップと、
前記暗号化された状態の複数の検証用データと前記暗号化された状態の全体チェック値を連結した上で、復号化を行って平文の状態の全体チェック値を算出する第２の算出ステップと、
前記第２の算出ステップで算出された平文の状態の全体チェック値と、前記予め格納された平文の状態の全体チェック値とを比較する第２の比較ステップとを備えることを特徴とする改竄検出方法。
【請求項１８】
請求項１７において、
前記ドメイン鍵情報と前記暗号化された状態の全体チェック値は所定のアクセスのみを受けつける保護領域に格納されており、
前記コンテンツ鍵情報と前記平文の状態の全体チェック値と前記暗号化された状態の複数の検証用データはユーザからのアクセスを受けつける通常領域に格納されている
ことを特徴とする改竄検出方法。
【請求項１９】
請求項１７において、
前記コンテンツ鍵情報が追加された場合に、前記追加されたコンテンツ鍵情報についての追加検証用データを加えた上で、前記暗号化された状態の複数の検証用データ及び前記暗号化された状態の全体チェック値を更新する
ことを特徴とする改竄検出方法。
【請求項２０】
請求項１７において、
前記コンテンツ鍵情報が削除された場合に、前記削除されたコンテンツ鍵情報の検証用データを削除した上で、前記暗号化された状態の複数の検証用データ及び前記暗号化された状態の全体チェック値を更新する
ことを特徴とする改竄検出方法。
【請求項２１】
少なくとも１つのドメイン鍵情報と、各々が何れかの前記ドメイン鍵情報に関連付けられる複数のコンテンツ鍵情報と、を記憶するターゲット機器内の、前記複数のコンテンツ鍵情報のうち一のコンテンツ鍵情報の改竄を検出する改竄検出方法であって、
前記複数のコンテンツ鍵情報の各々は、連鎖暗号方式で暗号化された状態で前記ターゲット機器内に記憶されており、
前記一のコンテンツ鍵情報を復号化して所定位置のデータを抽出することによりチェック値を算出する第１の算出ステップと、
前記第１の算出ステップで算出されたチェック値と、前記ターゲット機器に予め格納されたチェック値とを比較する第１の比較ステップと、
前記一のコンテンツ鍵情報と同一のドメイン鍵情報に関連付けられる複数のコンテンツ鍵情報に関連する複数のチェック値を抽出する抽出ステップと、
前記抽出ステップで抽出された前記複数のチェック値に第２の演算を施し、全体検証用データを算出する第２の算出ステップと、
前記第２の算出ステップで算出された全体検証用データと、前記同一のドメイン鍵情報と関連付けて予め格納された全体検証用データを比較する第２の比較ステップとを備えることを特徴とする改竄検出方法。
【請求項２２】
請求項２１において、
前記予め格納されたチェック値は前記コンテンツ鍵情報内に平文の状態で埋め込まれていることを特徴とする改竄検出方法。
【請求項２３】
請求項２１において、
前記所定位置を指定可能である
ことを特徴とする改竄検出方法。
【請求項２４】
請求項２１において、
前記チェック値が前記コンテンツ鍵情報の最下位に位置する所定長のデータである
ことを特徴とする改竄検出方法。
【請求項２５】
請求項２１において、
前記予め格納されたチェック値が定数である
ことを特徴とする改竄検出方法。
【請求項２６】
請求項２１において、
前記第２の演算がハッシュ演算である
ことを特徴とする改竄検出方法。
【請求項２７】
請求項２１において、
前記ドメイン鍵情報と前記予め格納された全体検証用データとは所定のアクセスのみを受けつける保護領域に格納されており、
前記コンテンツ鍵情報と前記予め格納されたチェック値とはユーザからのアクセスを受けつける通常領域に格納されている
ことを特徴とする改竄検出方法。
【請求項２８】
請求項２７において、
前記ドメイン鍵情報と前記予め格納された全体検証用データとは暗号化された状態で前記保護領域に格納されており、
前記コンテンツ鍵情報と前記予め格納されたチェック値とは連結して連鎖暗号方式で暗号化された状態で前記通常領域に格納されている
ことを特徴とする改竄検出方法。
【請求項２９】
請求項２８において、
前記コンテンツ鍵情報が追加された場合に、前記追加されたコンテンツ鍵情報に関連するチェック値を追加した上で、前記複数のチェック値にハッシュ演算を施し、得られたハッシュ値を前記全体検証用データとして、前記ドメイン鍵情報と関連付けて前記保護領域に格納する
ことを特徴とする改竄検出方法。
【請求項３０】
請求項２８において、
前記コンテンツ鍵情報が削除された場合に、前記削除されたコンテンツ鍵情報のチェック値を削除した上で、前記複数のチェック値にハッシュ演算を施し、得られたハッシュ値を前記全体検証用データとして、前記ドメイン鍵情報と関連付けて前記第１の領域に格納する
ことを特徴とする改竄検出方法。
【請求項３１】
少なくとも１つのドメイン鍵情報を第１の領域に、各々が何れかの前記ドメイン鍵情報に関連付けられる複数のコンテンツ鍵情報を前記第１の領域と異なる第２の領域に記憶するターゲット機器内の、前記複数のコンテンツ鍵情報のうち一のコンテンツ鍵情報の改竄を検出する改竄検出装置であって、
前記一のコンテンツ鍵情報に第１の演算を施し検証用データを算出する第１の算出手段と、
前記第１の算出ステップで算出された検証用データと、前記第２の領域に予め格納された検証用データとを比較する第１の比較手段と、
前記一のコンテンツ鍵情報と同一のドメイン鍵情報に関連付けられる複数のコンテンツ鍵情報に関連する複数の検証用データを、前記第１の演算を行うことなく抽出する抽出手段と、
前記抽出ステップで抽出された前記複数の検証用データに第２の演算を施し、全体検証用データを算出する第２の算出手段と、
前記第２の算出ステップで算出された全体検証用データと、前記第１の領域に前記同一のドメイン鍵情報と関連付けて予め格納された全体検証用データを比較する第２の比較手段とを備える
ことを特徴とする改竄検出装置。
【請求項３２】
少なくとも１つのドメイン鍵情報と、各々が何れかの前記ドメイン鍵情報に関連付けられる複数のコンテンツ鍵情報と、を暗号化された状態で記憶するターゲット機器内の、前記複数のコンテンツ鍵情報のうち一のコンテンツ鍵情報の改竄を検出する改竄検出装置であって、
前記ターゲット機器には、連鎖暗号方式で暗号化された状態の全体チェック値と、平文の状態の全体チェック値とが予め格納されており、
前記一のコンテンツ鍵情報に第１の演算を施し検証用データを算出する第１の算出手段と、
前記第１の算出ステップで算出された検証用データと、前記ターゲット機器に予め格納された検証用データとを比較する第１の比較手段と、
前記一のコンテンツ鍵情報と同一のドメイン鍵情報に関連付けられる複数のコンテンツ鍵情報に関連する暗号化された状態の複数の検証用データを抽出する抽出手段と、
前記暗号化された状態の複数の検証用データと前記暗号化された状態の全体チェック値を連結した上で、復号化を行って平文の状態の全体チェック値を算出する第２の算出手段と、
前記第２の算出ステップで算出された平文の状態の全体チェック値と、前記予め格納された平文の状態の全体チェック値とを比較する第２の比較手段とを備える
ことを特徴とする改竄検出装置。
【請求項３３】
少なくとも１つのドメイン鍵情報と、各々が何れかの前記ドメイン鍵情報に関連付けられる複数のコンテンツ鍵情報と、を記憶するターゲット機器内の、前記複数のコンテンツ鍵情報のうち一のコンテンツ鍵情報の改竄を検出する改竄検出装置であって、
前記複数のコンテンツ鍵情報の各々は、連鎖暗号方式で暗号化された状態で前記ターゲット機器内に記憶されており、
前記一のコンテンツ鍵情報を復号化して所定位置のデータを抽出することによりチェック値を算出する第１の算出手段と、
前記第１の算出ステップで算出されたチェック値と、前記ターゲット機器に予め格納されたチェック値とを比較する第１の比較手段と、
前記一のコンテンツ鍵情報と同一のドメイン鍵情報に関連付けられる複数のコンテンツ鍵情報に関連する複数のチェック値を抽出する抽出手段と、
前記抽出ステップで抽出された前記複数の検証用データに第２の演算を施し、全体検証用データを算出する第２の算出手段と、
前記第２の算出ステップで算出された全体検証用データと、前記第１の領域に前記同一のドメイン鍵情報と関連付けて予め格納された全体検証用データを比較する第２の比較手段とを備える
ことを特徴とする改竄検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ターゲット機器に格納された機密情報の正当性や改竄の有無を検証する方法および装置に関する。
【背景技術】
【０００２】
著作物や個人情報等に関するコンテンツ（例えば、音楽データや映像データに代表されるコンテンツ）は、不正なコピーあるいは外部への漏洩を防ぐ必要がある。このようなコンテンツは、暗号化された状態でターゲット機器に格納される。ホスト機器がターゲット機器に格納された暗号化コンテンツを扱う際には、ホスト機器は、ターゲット機器との間で認証処理を実行する。この認証が失敗すると、ホスト機器は、暗号化コンテンツを復号化するためのコンテンツ鍵をターゲット機器から入手することができない。一方、この認証が成功すると、ホスト機器は、ターゲット機器に格納されたコンテンツにアクセスして、そのコンテンツを利用することができる。このような構成にすることにより、不正なホスト機器による暗号化コンテンツの復号化を防いでいる。なお、ここで、ターゲット機器は、例えば、ＳＤカードのようなメモリカードである。また、ホスト機器は、メモリカードからデータを読み出す半導体集積回路，その半導体集積回路を実装したセット機器，あるいはターゲット機器へとコンテンツを配信するコンテンツ配信機器である。
【０００３】
次に、従来におけるターゲット機器の格納領域およびその格納領域に格納される機密情報について図１７を参照しつつ説明する。なお、以下の説明において、機密情報とはコンテンツを再生するために必要な情報（例えば、鍵情報等）を示す。
【０００４】
ターゲット機器内の格納領域は、システム領域９０１，保護領域９０２，および通常領域９０３に分けられている。システム領域９０１は、ターゲット機器とホスト機器との間で認証を行うための情報が格納される領域である。ホスト機器は、システム領域９０１へのアクセスが許可された所定の処理でなければ、システム領域９０１にアクセスすることができない。保護領域９０２は、ユーザ（ホスト機器）が任意にアクセスをすることができず、かつ、認証に成功して初めてアクセスすることができる領域である。通常領域９０３は、ユーザが任意にアクセスすることができる領域である。システム領域９０１には、認証鍵が格納される。保護領域９０２には、暗号化コンテンツ鍵が格納される。通常領域９０３には、暗号化コンテンツが格納される。
【０００５】
次に、ホスト機器がターゲット機器内の暗号化コンテンツを復号化して利用する方法について説明する。まず、ホスト機器は、自己に格納している認証鍵とターゲット機器に格納された認証鍵とを用いて、認証を行う。認証に成功すると、ホスト機器は、これらの認証鍵を用いて認証中間鍵を生成する。この認証中間鍵は、暗号化コンテンツ鍵を復号化するための鍵として規定されている。したがって、ホスト機器は、ターゲット機器から暗号化コンテンツ鍵を取得するとともに、その暗号化コンテンツ鍵を認証中間鍵で復号化して、平文（暗号化されていない状態を示す）のコンテンツ鍵を生成する。さらに、ホスト機器は、暗号化コンテンツをターゲット機器から取得し、平文のコンテンツ鍵を用いてその暗号化コンテンツを復号化して、平文のコンテンツを生成する。これにより、コンテンツが利用可能になる。以上のような処理を実行することにより、認証に成功したホスト機器のみがターゲット機器に格納された暗号化コンテンツを利用することができる。
【０００６】
上述のコンテンツの復号化では、認証に成功すれば認証中間鍵が生成されるので、認証にさえ成功すれば暗号化コンテンツを復号化することが可能である。すなわち、ターゲット機器に格納されている暗号化コンテンツは、正当なホスト機器であれば利用することができる。
【０００７】
一方で、近年では、電子配信を利用して暗号化コンテンツを特定のユーザに送信することによって、その特定ユーザのみにコンテンツを利用させるといった動きが活発である。しかし、このような電子配信での利用を想定した場合、特定ユーザに送信される暗号化コンテンツは、その特定ユーザが所有する特定のホスト機器でしか復号化できないようにする必要がある。しかし、上述の方法ではその要求を満足することができない。
【０００８】
そのため、有効なドメイン鍵を特定のユーザにのみ設定する方法が新たに考えられている。ドメイン鍵が設定された場合、コンテンツはコンテンツ鍵で暗号化され、コンテンツ鍵は認証中間鍵ではなく特定ユーザのみに設定されたドメイン鍵を用いて暗号化されることになる。また、ドメイン鍵自体も、認証中間鍵，あるいは認証中間鍵の情報を用いて生成される別の鍵を用いて、暗号化してターゲット機器に格納される。これにより、ドメイン鍵自体の秘匿性も確保される。
【０００９】
このようにドメイン鍵を設定した場合における、ターゲット機器内の格納領域に格納される機密情報について図１７を参照しつつ説明する。ドメイン鍵を設定した場合であっても従来のターゲット機器との互換性を保つために、ターゲット機器内の領域の分割方法は同一でなくてはならない。また、ドメイン鍵とコンテンツ鍵との双方を保護領域９０３に格納してしまうと、ドメイン鍵は、コンテンツ鍵の復号化のための鍵であるにもかかわらず、コンテンツ鍵と同一のセキュリティレベルの領域に格納されてしまう。したがって、セキュリティと互換性とを保つために、ドメイン鍵を設定した場合は、ドメイン鍵は、暗号化された状態で、保護領域９０２に格納される。また、コンテンツ鍵は、暗号化された状態で、通常領域９０３に格納される。
【００１０】
しかしながら、上述のように通常領域９０３はユーザが任意にアクセスすることが可能な領域であるので、通常領域９０３に格納された暗号化コンテンツ鍵の正当性を保証すること、言い換えれば改竄をチェックすることが重要となってくる。
【００１１】
なお、本発明に関連する先行技術文献として、特開２００１−２０３６８６号公報がある。特開２００１−２０３６８６号公報では、１つのコンテンツデータを複数部分に分割して部分毎にチェック値を算出し、予め保持されたチェック値との比較を行っている。これによって、必要部分のみの改竄チェックが可能である。
【００１２】
しかしながら、単に１つのコンテンツデータを部分毎に分割しているに過ぎず、後述するように、１つのドメイン鍵に対応する複数のコンテンツ鍵が存在する場合に、これら複数のコンテンツ鍵を関連付けてドメイン鍵内に埋め込まれたデータと照合することにより改竄チェックを行う本発明とは基本的に異なっている。
【特許文献１】特開２００１−２０３６８６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
ここで、ターゲット機器内に格納される機密情報について図１９を参照しつつさらに詳細に説明する。ターゲット機器内の保護領域９０２には、ｎ個（ｎは１以上の整数）の暗号化されたドメイン鍵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)によって復号化することができる暗号化コンテンツ鍵EncKu(1-1)〜EncKu(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)をすべて連結してハッシュ演算を実行する。そのハッシュ演算によって得られたハッシュ値をドメイン鍵管理情報UR[u](1)に格納する。
【００２０】
次に、暗号化コンテンツ鍵EncKt(1-1)を復号化する際には、ホスト機器は、鍵対応テーブルAddress Listを参照して、ターゲット機器内の通常領域９０３からコンテンツ鍵群TKURE(1)を読み出し、ハッシュ演算を実行する。一方、ホスト機器は、認証によって得られた認証中間鍵を用いて、ターゲット機器内の保護領域９０２に格納された暗号化ドメイン鍵管理情報EncUR[u](1)を復号化する。次に、ホスト機器は、復号化によって得られたドメイン鍵管理情報UR[u](1)の中からハッシュ値を抽出する。次に、ホスト機器は、ハッシュ演算によって算出したハッシュ値とドメイン鍵管理情報UR[u](1)の中から抽出したハッシュ値とを比較する。ホスト機器は、両者が一致すれば改竄されていないと判断して、暗号化コンテンツ鍵を復号化する。一方、ホスト機器は、両者が不一致であれば改竄されたものとして暗号化コンテンツを復号化しない。
【００２１】
しかしながら、図１９に示したような改竄チェック方法では、処理量が非常に大きくなる。すなわち、１つのコンテンツ鍵（コンテンツ鍵Kt(1-1)）の改竄をチェックするためには、ホスト機器は、同一のドメイン鍵で復号化可能な全てのコンテンツ鍵とそれに付随する全ての情報（コンテンツ鍵群TKURE(1)）をターゲット機器から読み出し、その読み出した情報に対してハッシュ演算を実行する必要がある。特に、ターゲット機器に格納されるコンテンツの個数が増加すると、それに従って、コンテンツ鍵の個数も増加する。その結果、１つのドメイン鍵に対応付けられるコンテンツ鍵は増加していくので、処理時間は、さらに増加していく。
【００２２】
また、コンテンツとコンテンツ鍵とが一組のデータとして、ネットワーク等を介して配信されることも想定される。そのような場合には、１つのドメイン鍵に対応付けられるコンテンツ鍵の追加／削除が生じる。しかしながら、従来の方法によれば、コンテンツ鍵を追加／削除する場合、１つのドメイン鍵（ドメイン鍵Ku(1)）に対応付けられる全てのコンテンツ鍵とそれに付随する情報（コンテンツ鍵群TKURE(1)）についてハッシュ演算を再度やりなおし、算出したハッシュ関数をそのドメイン鍵に付随するドメイン鍵管理情報（ドメイン鍵管理情報UR[u](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)になる。さらに、図３のように、暗号化ドメイン鍵管理情報UR[u](1)〜UR[u](n)各々の所定位置には、連結ハッシュ値が格納されている。連結ハッシュ値は、その暗号化ドメイン鍵管理情報に対応するコンテンツ鍵群に基づいて生成されている。例えば、暗号化ドメイン鍵EncKu(1)〜EncKu(n)のうちｉ番目の暗号化ドメイン鍵EncKu(i)（ｉは整数，かつ，１≦ｉ≦ｎ）の所定位置には、連結ハッシュ値Hash(i)が格納される。この連結ハッシュ値Hash(i)は、コンテンツ鍵群TKURE(i)に基づいて生成されている。
【００５２】
なお、図３では、暗号化ドメイン鍵EncKu(i)に対応するコンテンツ鍵群TKURE(i)のみしか図示していないが、暗号化ドメイン鍵EncKu(i)以外の暗号化ドメイン鍵EncKu(1)〜EncKu(n)の各々にもコンテンツ鍵群が一対一で対応していてもよい。
【００５３】
〔コンテンツ鍵群〕
コンテンツ鍵群TKURE(i)は、ドメイン鍵Ku(i)を用いて暗号化／復号化することができるコンテンツ鍵およびそのコンテンツ鍵に付随する情報の集合である。コンテンツ鍵群TKURE(i)は、ｍ個（ｍは１以上の整数）の暗号化コンテンツ鍵EncKt(i-1)〜EncKt(i-m)と、ｍ個の暗号化コンテンツ鍵管理情報EncUR[t](i-1)〜EncUR[t](i-m)と、ｍ個の付加情報info(i-1)〜info(i-m)とを含む。
【００５４】
図４のように、暗号化コンテンツ鍵EncKt(i-1)〜EncKt(i-m)は、ドメイン鍵Ku(i)を用いて復号化されることによって、コンテンツ鍵Kt(i-1)〜Kt(i-m)になる。コンテンツ鍵Kt(i-1)〜Kt(i-m)の各々は、自己に対応するコンテンツ（図示せず）の暗号化／復号化に用いられる。
【００５５】
コンテンツ鍵管理情報UR[t](i-1)〜UR[t](i-m)は、コンテンツ鍵Kt(i-1)〜Kt(i-m)に一対一で対応する。また、図４のように、暗号化コンテンツ鍵管理情報EncUR[t](i-1)〜EncUR[t](i-m)は、ドメイン鍵Ku(i)を用いて復号化されることによって、コンテンツ鍵管理情報UR[t](i-1)〜UR[t](i-m)になる。
【００５６】
付加情報info(i-1)〜info(i-m)は、暗号化コンテンツ鍵EncKt(i-1)〜EncKt(i-m)に一対一で対応する。
【００５７】
〔鍵対応テーブル〕
鍵対応テーブルAddress Listには、ｎ個の暗号化ドメイン鍵のアドレスKu addr(1)〜Ku addr(n)とｎ個のコンテンツ鍵テーブルKt addr list(1)〜Kt addr list(n)とが対応付けられている。コンテンツ鍵テーブルの各々は、複数のコンテンツ鍵テーブルのうちいずれか１つに対応する。また、コンテンツ鍵テーブルの各々には、対応するコンテンツ鍵群に含まれる暗号化コンテンツ鍵のアドレスが書き込まれている。例えば、ドメイン鍵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)，平文の付加情報info(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)が完成する。
【００６３】
＜連結ハッシュ値の生成手順＞
次に、図３に示した連結ハッシュ値Hash(i)の生成手順について図５を参照しつつ説明する。
【００６４】
〔ステップＳＴ１０１−４〕
まず、ハッシュリストHash List(i)に存在するｍ個のハッシュ値Hash(i-1)〜Hash(i-m)は、１つに連結される。これにより、１つのハッシュ連結データが生成される。
【００６５】
〔ステップＳＴ１０１−５〕
次に、ステップＳＴ１０１−４において生成されたハッシュ連結データに対して、ハッシュ演算が実行される。これにより、連結ハッシュ値Hash(i)が算出される。
【００６６】
〔ステップＳＴ１０１−６〕
次に、ステップＳＴ１０１−５において算出された連結ハッシュ値Hash(i)は、暗号化ドメイン鍵管理情報EncUR[u](i)の所定位置に格納する。暗号化ドメイン鍵管理情報EncUR[u](i)は、ハッシュリストHash List(i)に対応する。
なお、ドメイン鍵に既存のものを用い、コンテンツ鍵を更新・追加・削除した結果として、暗号化ドメイン鍵管理情報EncUR[u](i)を更新する場合は、暗号化ドメイン鍵管理情報EncUR[u](i)は、連結ハッシュ値Hash(i)を格納する前に一旦復号化されて、ドメイン鍵管理情報UR[u](i)になる。そして、ドメイン鍵管理情報UR[u](i)に連結ハッシュ値Hash(i)が格納されると、そのドメイン鍵管理情報UR[u](i)は、暗号化されて暗号化ドメイン鍵管理情報EncUR[u](i)に戻る。
【００６７】
ただし、ドメイン鍵を新規作成する場合は、ドメイン鍵管理情報UR[u](i)も新規作成されることになり、その場合、一旦復号化の処理を行う必要はなく、ドメイン鍵管理情報UR[u](i)に連結ハッシュ値Hash(i)を格納し、そのドメイン鍵管理情報UR[u](i)を暗号化して暗号化ドメイン鍵管理情報EncUR[u](i)を生成する。
【００６８】
＜コンテンツ鍵の改竄チェック＞
次に、ホスト機器１１がターゲット機器１０に格納されたコンテンツ鍵の改竄をチェックする処理（ステップＳＴ２２における処理）について図６を参照しつつ説明する。ここでは、ホスト機器１０は、ドメイン鍵Ku(i)に対応するコンテンツ鍵Kt(i-1)〜Kt(i-m)のうちｊ番目（ｊは整数，かつ，１≦ｊ≦ｍ）のコンテンツ鍵Kt(i-j)の改竄をチェックする。
【００６９】
〔ステップＳＴ１０２−１〕
次に、ホスト機器１１は、暗号化コンテンツ鍵EncKt(i-j)とそれに付随する平文の付加情報info(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)，付加情報info(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)を算出する。次に、ステップＳＴ１０２−９へ進む。なお、ハッシュ値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)の中から所定のビット位置に格納された連結ハッシュ値Hash(i)を抽出する。次に、ステップＳＴ１０２−９へ進む。
【００７７】
〔ステップＳＴ１０２−９〕
次に、ホスト機器１１は、ステップＳＴ１０２−６において算出した連結ハッシュ値Hash(i)とステップＳＴ１０２−８において抽出した連結ハッシュ値Hash(i)とを比較する。
【００７８】
〔ステップＳＴ１０２−１０〕
ステップＳＴ１０２−９における比較の結果、ステップＳＴ１０２−６において算出した連結ハッシュ値Hash(i)とステップＳＴ１０２−８において抽出した連結ハッシュ値Hash(i)とが不一致であると判断すると、ホスト機器１１は、暗号化コンテンツ鍵EncKt(i-j)，付加情報info(i-j)，あるいは暗号化コンテンツ鍵管理情報EncUR[t](i-j)が改竄されていると判断して、異常終了を実行する。一方、両者が一致すると判断された場合には、ステップＳＴ１０２−１１へ進む。
【００７９】
〔ステップＳＴ１０２−１１〕
次に、ホスト機器１１は、コンテンツ鍵の正当性が保証されたものとして、ステップＳＴ１０２−７において生成されたドメイン鍵Ku(i)を用いて、暗号化コンテンツ鍵EncKt(i-j)および暗号化コンテンツ鍵管理情報EncUR[t](i-j)を復号化する。これにより、ホスト機器１１は、平文のコンテンツ鍵Kt(i-j)および平文のコンテンツ鍵管理情報UR[t](i-j)を取得する。
【００８０】
このような処理によって得られた平文のコンテンツ鍵Kt(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)に基づいて生成される。このような構成にすれば、暗号化コンテンツ鍵EncKt(i-j)について改竄チェックを実行する場合、暗号化コンテンツ鍵EncKt(i-j)と暗号化コンテンツ鍵管理情報EncUR[t](i-j)と付加情報info(i-j)とからなる連結データに対するハッシュ演算（ハッシュ演算１），コンテンツ鍵Kt(i-j)が属する部分集合に対応する部分集合ハッシュリストHash List(i-GrJ)に対するハッシュ演算（ハッシュ演算２），および全体集合ハッシュリストHash List(i-ALL)に対するハッシュ演算（ハッシュ演算３）を実行することになる。ハッシュ演算２とハッシュ演算３とをあわせた処理量は、図５に示した処理における処理量よりも小さい。したがって、さらなる処理の高速化を期待できる。
【００８８】
（第２の実施形態）
この発明の第２の実施形態では、コンテンツ鍵およびコンテンツ鍵管理情報は、連鎖暗号方式によって暗号化される。
【００８９】
＜連鎖暗号方式＞
ここで、連鎖暗号方式による暗号化方法について図８を参照しつつ説明する。なお、ここでは、暗号化の対象がコンテンツ鍵Kt(i-j)およびコンテンツ鍵管理情報UR[t](i-j)であるものとする。
【００９０】
〔暗号化処理〕
まず、コンテンツ鍵Kt(i-j)およびコンテンツ鍵管理情報UR[t](i-j)は、１つに連結された後、先頭から順番に８バイト毎に分割されて、「データ１」，「データ２」，…，「データＸ」になる（Ｘは２以上の整数）。なお、８バイトではなく任意に分割され得ることはいうまでもない。
【００９１】
次に、ＭＳＢ（Most sigificant bit または Most Significant Byte）側の最初の８バイトである「データ１」は、ドメイン鍵Ku(i)を用いて暗号化されて「暗号化データ１」になる。次に、「データ１」に対する暗号化の中間値１に所定演算が実行されて、連鎖鍵１が生成される。次に、「データ１」の１つ後ろに位置する「データ２」は、連鎖鍵１を用いて暗号化されて「暗号化データ２」になる。次に、「データ２」に対する暗号化の中間値２に所定演算が実行されて、連鎖鍵２が生成される。このように、先頭の８バイトである「データ１」は、ドメイン鍵Ku(i)を用いて暗号化される。また、２番目以降の８バイトデータの各々は、１つ前の８バイトデータについての暗号化の結果を利用して順次暗号化される。
【００９２】
ＭＳＢから数えて最後の８バイト（つまり、ＬＳＢ（Least Significant Bit または Least Significant Byte））である「データＸ」まで上述の暗号化処理が繰り返されることにより、「データ１」〜「データＸ」は、「暗号化データ１」〜「暗号化データＸ」になる。この「暗号化データ１」〜「暗号化データＸ」の集合が、暗号化コンテンツ鍵EncKt(i-j)および暗号化コンテンツ鍵管理情報EncUR[t](i-j)の集合となる。
【００９３】
〔復号化処理〕
次に、連鎖暗号方式による復号化方法について説明する。
【００９４】
まず、暗号化コンテンツ鍵EncKt(i-j)および暗号化コンテンツ鍵管理情報UR[t](i-j)の集合は、先頭から順番に８バイト毎に分割されて、「暗号化データ１」，「暗号化データ２」，…，「暗号化データＸ」になる。次に、「暗号化データ１」は、ドメイン鍵Ku(i)を利用して復号化されて、「データ１」になる。次に、「暗号化データ２」は、「暗号化データ１」の復号化の結果を利用して復号化されて、「データ２」になる。このように、先頭の８バイトである「暗号化データ１」は、ドメイン鍵Ku(i)を利用して復号化される。２番目以降の暗号化データの各々は、１つ前の暗号化データについての復号化の結果を利用して順次復号化される。
【００９５】
このような連鎖暗号方式では、部分毎のデータが連鎖しながら暗号化／復号化されていく。つまり、このような連鎖暗号方式は、復号化の際に何れかの段階で復号化に失敗すると、その段階以降の暗号化データの全てが正常に復号化されないという特徴を有する。したがって、例えば、最後の８バイト（ＬＳＢ）である暗号化データＸの復号化に成功すれば、全てのデータが正当であることが保証される。
【００９６】
また、このような連鎖暗号方式では、同一のデータを暗号化する場合であっても、事前に暗号化されたデータが異なっている場合には暗号化の結果が異なるという特徴を有する。
【００９７】
＜構成＞
以上を踏まえて、この発明の第２の実施形態による機密情報処理システムについて説明する。本実施形態による機密情報システムの全体構成は、図１に示したものと同様である。ただし、ターゲット機器１０に格納される機密情報は、図３に示したものとは異なる。
【００９８】
＜機密情報＞
本実施形態において、ターゲット機器１０に格納される機密情報を図９に示す。保護領域１０２には、ドメイン鍵群UKUREが格納される。通常領域１０３には、鍵対応テーブルAddress List(i)と、コンテンツ鍵群TKURE(i)とが格納される。
【００９９】
〔ドメイン鍵群〕
ドメイン鍵群UKUREは、図３と同様に、ｎ個の暗号化ドメイン鍵EncKu(1)〜EncKu(n)と、ｎ個の暗号化ドメイン鍵管理情報EncUR[u](1)〜EncUR[u](n)とを含む。また、暗号化ドメイン鍵管理情報EncUR[u](1)〜EncUR[u](n)の各々の所定位置には、連鎖ハッシュ値が格納される。連鎖ハッシュ値は、その暗号化ドメイン鍵管理情報に対応するコンテンツ鍵群に基づいて生成されている。例えば、暗号化ドメイン鍵管理情報UR[u](i)の所定位置には連鎖ハッシュ値Chain Hash(i)が格納されている。連鎖ハッシュ値Chain Hash(i)は、コンテンツ鍵群TKURE(i)に基づいて生成されている。
【０１００】
なお、図９では、暗号化ドメイン鍵EncKu(i)に対応するコンテンツ鍵群TKURE(i)のみしか図示していないが、暗号化ドメイン鍵EncKu(i)以外の暗号化ドメイン鍵EncKu(1)〜EncKu(n)の各々にもコンテンツ鍵群が対応していてもよい。
【０１０１】
〔コンテンツ鍵群〕
コンテンツ鍵群TKURE(i)は、図３に示したコンテンツ鍵群TKURE(i)に加えて、ｍ個の暗号化チェック値EncCheck(i-1)〜EncCheck(i-m)を含む。暗号化チェック値EncCheck(i-1)〜EncCheck(i-m)は、暗号化コンテンツ鍵EncKt(i-1)〜EncKt(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)の所定位置に格納される。
【０１０２】
鍵対応テーブル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)に分割する。
【０１０５】
このようにして、コンテンツ鍵，コンテンツ鍵管理情報，およびチェック値が暗号化される。また、チェック値が埋め込まれる位置が固定位置ではなく指定バイトによって指定されるので、チェック値が埋め込まれる位置を秘匿することができ、セキュリティが向上する。
【０１０６】
＜連鎖ハッシュ値の生成手順＞
次に、図９に示した連鎖ハッシュ値Chain Hash(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)は、暗号化ドメイン鍵管理情報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)に戻る。
【０１１１】
ただし、ドメイン鍵を新規作成する場合は、ドメイン鍵管理情報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)からなる連結データが生成される。この連結データは、コンテンツ鍵Kt(i-j)およびコンテンツ鍵管理情報UR[t](i-j)との連結データの所定位置にチェック値Check(i-j)が埋め込まれた構成になっている。
【０１１５】
〔ステップＳＴ２０２−３〕
次に、指定バイトに従って、コンテンツ鍵Kt(i-j)，コンテンツ鍵管理情報UR[t](i-j)，およびチェック値Check(i-j)からなる連結データの中からチェック値Check(i-j)が抽出される。次に、ステップＳＴ２０２−５へ進む。
【０１１６】
〔ステップＳＴ２０２−４〕
一方、付加情報info(i-j)の所定位置に格納されたチェック値Check(i-j)が抽出される。次に、ステップＳＴ２０２−５へ進む。
【０１１７】
〔ステップＳＴ２０２−５〕
次に、ステップＳＴ２０２−３において抽出されたチェック値Check(i-j)とステップＳＴ２０２−４において抽出されたチェック値Check(i-j)とが比較される。
【０１１８】
このように、コンテンツ鍵Kt(i-1)〜Kt(i-m)の各々において、付加情報から抽出されたチェック値と復号化された連結データの中から抽出されたチェック値とを比較することによって、そのコンテンツ鍵の正当性が検証される。
【０１１９】
なお、チェック値は、コンテンツ鍵管理情報の直後に付加することが好ましい。つまり、コンテンツ鍵，コンテンツ鍵管理情報，チェック値で構成される連結データにおいて、その連結データのＬＳＢがチェック値であることが好ましい。それは、連鎖暗号方式では、ＬＳＢをチェックすることによって復号化の対象となるデータ全体の正当性を検証することができるからである。
【０１２０】
＜動作＞
次に、本実施形態の機密情報処理システムによる動作について説明する。本実施形態の機密情報処理システムによる動作の全体の流れは、図２と同様であるが、コンテンツ鍵の改竄をチェックする処理（ステップＳＴ２２）における詳細な処理が異なる。
【０１２１】
＜コンテンツ鍵の改竄チェック＞
本実施形態において、ホスト機器１１がターゲット機器１０に格納されたコンテンツ鍵の改竄をチェックする処理（ステップＳＴ２２における処理）について図１２を参照しつつ説明する。ここでは、ドメイン鍵Ku(i)に対応するコンテンツ鍵Kt(i-j)の改竄をチェックする。また、チェック値Check(i-j)は、コンテンツ鍵管理情報UR[t](i-j)の直後に付加された８バイトデータであるものとする。
【０１２２】
〔ステップＳＴ２０３−１〕
まず、ホスト機器１１は、暗号化コンテンツ鍵EncKt(i-j)，暗号化コンテンツ鍵管理情報EncKt[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)が抽出されたことになる。次に、ステップＳＴ２０３−４へ進む。
【０１２４】
〔ステップＳＴ２０３−３〕
一方、ホスト機器１１は、付加情報info(i-j)の中から８バイト分のデータを抽出する。これにより、付加情報info(i-j)の中からチェック値Check(i-j)が抽出されたことになる。
【０１２５】
〔ステップＳＴ２０３−４〕
次に、ホスト機器１１は、ステップＳＴ２０３−２において抽出したチェック値Check(i-j)とステップＳＴ２０３−３において抽出したチェック値Check(i-j)とを比較する。このように、両者を比較することにより、コンテンツ鍵，コンテンツ鍵管理情報，およびチェック値からなる連結データのうちチェック値が埋め込まれた位置までのデータの正当性を検証することができる。
【０１２６】
〔ステップＳＴ２０３−５〕
ステップＳＴ２０３−４における比較の結果、ステップＳＴ２０３−２において抽出したチェック値Check(i-j)とステップＳＴ２０３−３において抽出したチェック値Check(i-j)とが一致しないと判断すると、ホスト機器１１は、暗号化コンテンツ鍵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)の中から所定のビット位置に格納された連鎖ハッシュ値Chain Hash(i)を抽出する。
【０１３２】
〔ステップＳＴ２０３−１１〕
次に、ホスト機器１１は、ステップＳＴ２０３−８において算出した連鎖ハッシュ値Chain Hash(i)とステップＳＴ２０３−１０において抽出した連鎖ハッシュ値Chain Hash(i)とを比較する。
【０１３３】
〔ステップＴＳ２０３−１２〕
ステップＳＴ２０３−１１における比較の結果、ステップＳＴ２０３−８において算出した連鎖ハッシュ値Chain Hash(i)とステップＳＴ２０３−１０において抽出した連鎖ハッシュ値Chain Hash(i)とが一致しないと判断すると、ホスト機器１１は、暗号化コンテンツ鍵EncKt(i-j)，暗号化コンテンツ鍵管理情報EncUR[t](i-j)，あるいは暗号化チェック値EncCheck(i-j)が改竄されていると判断して、異常終了を実行する。一方、両者が一致すると判断された場合には、ステップＳＴ２０３−１３へ進む。
【０１３４】
〔ステップＳＴ２０３−１３〕
次に、ホスト機器１１は、コンテンツ鍵の正当性が保証されたものとして、ステップＳＴ２０３−９において生成されたドメイン鍵Ku(i)を用いて、暗号化コンテンツ鍵EncKt(i-j)および暗号化コンテンツ鍵管理情報EncUR[t](i-j)を復号化する。これにより、ホスト機器１１は、平文のコンテンツ鍵Kt(i-j)および平文のコンテンツ鍵管理情報UR[t](i-j)を取得する。
【０１３５】
このような処理によって得られた平文のコンテンツ鍵Kt(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)の所定位置には暗号化全体チェック値EncCheck(i)が格納されている。暗号化全体チェック値EncCheck(i)は、コンテンツ鍵群TKURE(i)および全体チェック値Check(i)に基づいて生成されている。
【０１４９】
なお、図１４では、暗号化ドメイン鍵EncKu(i)に対応するコンテンツ鍵群TKURE(i)のみしか図示していないが、暗号化ドメイン鍵EncKu(i)以外の暗号化ドメイン鍵EncKu(1)〜EncKu(n)の各々にもコンテンツ鍵群が対応していてよい。
【０１５０】
〔コンテンツ鍵群および鍵対応テーブル〕
コンテンツ鍵群TKURE(i)および鍵対応テーブルAddress Listは、図９に示したものと同様である。
【０１５１】
〔チェック値リスト〕
チェック値リストCheck List(i)は、コンテンツ鍵群TKURE(i)に対応する。ｍ個の二重暗号化チェック値Enc2Check(i-1)〜Enc2Check(i-m)と暗号化全体チェック値EncCheck(i)とを含む。二重暗号化チェック値Enc2Check(i-1)〜Enc2Check(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)および暗号化全体チェック値EncCheck(i)の生成手順について図１５を参照しつつ説明する。
【０１５４】
〔ステップＳＴ３０１−１〕
まず、指定バイトに従って、コンテンツ鍵群TKURE(i)の中からｍ個の暗号化チェック値EncCheck(i-1)〜EncCheck(i-m)が抽出される。例えば、暗号化コンテンツ鍵EncKt(i-j)，暗号化コンテンツ鍵管理情報EncKt(i-j)，および暗号化チェック値EncCheck(i-j)からなる連結データの中から暗号化チェック値EncCheck(i-j)が抽出される。このようにして、ｍ個の暗号化チェック値EncCheck(i-1)〜EncCheck(i-m)が抽出される。
【０１５５】
〔ステップＳＴ３０１−２〕
次に、ステップＳＴ３０１−１において抽出されたｍ個の暗号化チェック値EncCheck(i-1)〜EncCheck(i-m)と全体チェック値Check(i)とが１つに連結される。これにより、１つのチェック値連結データが生成される。
【０１５６】
〔ステップＳＴ３０１−３〕
次に、連鎖暗号方式にしたがって、ドメイン鍵Ku(i)を用いてチェック値連結データが暗号化される。これにより、二重暗号化チェック値Enc2Check(i-1)〜Enc2Check(i-m)と暗号化全体チェック値EncCheck(i)との集合が生成される。
【０１５７】
〔ステップＳＴ３０１−４〕
次に、二重暗号化チェック値Enc2Check(i-1)〜Enc2Check(i-m)と暗号化全体チェック値EncCheck(i)との集合の中から、暗号化全体チェック値EncCheck(i)が取り出される。これにより、二重暗号化チェック値Enc2Check(i-1)〜Enc2Check(i-m)の集合は、チェック値リストCheck List(i)になる。
【０１５８】
〔ステップＳＴ３０１−５〕
次に、ステップＳＴ３０１−４において取り出された暗号化全体チェック値EncCheck(i)は、ドメイン鍵管理情報UR[u](i)の所定位置に格納される。
なお、ドメイン鍵に既存のものを用い、コンテンツ鍵を更新・追加・削除した結果として、暗号化ドメイン鍵管理情報EncUR[u](i)を更新する場合は、暗号化ドメイン鍵管理情報EncUR[u](i)は、暗号化全体チェック値EncCheck(i)を格納する前に一旦復号化されて、ドメイン鍵管理情報UR[u](i)になる。そして、ドメイン鍵管理情報UR[u](i)に暗号化全体チェック値EncCheck(i)が格納されると、そのドメイン鍵管理情報UR[u](i)は、暗号化されて暗号化ドメイン鍵管理情報EncUR[u](i)に戻る。
【０１５９】
ただし、ドメイン鍵を新規作成する場合は、ドメイン鍵管理情報UR[u](i)も新規作成されることになり、その場合、一旦復号化の処理を行う必要はなく、ドメイン鍵管理情報UR[u](i)に全体チェック値Check(i)を格納し、そのドメイン鍵管理情報UR[u](i)を暗号化して暗号化ドメイン鍵管理情報EncUR[u](i)を生成する。
【０１６０】
＜改竄チェック方法＞
次に、図１４に示した全体チェック値Check(i)を利用した改竄チェック方法について図１６を参照しつつ説明する。ここでは、暗号化ドメイン鍵EncKu(i)，チェック値リストCheck List(i)，および全体チェック値Check(i)を例に挙げて説明する。なお、図１４に示したチェック値Check(i-1)〜Check(i-m)を利用した改竄チェック方法は、図１１に示した方法と同様である。
【０１６１】
〔ステップＳＴ３０２−１〕
まず、暗号化ドメイン鍵管理情報UR[u](i)が復号化される。これにより、ドメイン鍵管理情報UR[u](i)が生成される。そして、ドメイン鍵管理情報UR[u](i)の所定位置に格納された暗号化全体チェック値EncCheck(i)が抽出される。
【０１６２】
〔ステップＳＴ３０２−２〕
次に、チェック値リストCheck List(i)に存在するｍ個の二重暗号化チェック値Enc2Check(i-1)〜Enc2Check(i-m)が１つに連結される。そして、ステップＳＴ３０２−１において抽出された暗号化全体チェック値EncCheck(i)は、それらｍ個の二重暗号化チェック値Enc2Check(i-1)〜Enc2Check(i-m)からなる連結データの後段にさらに連結される。つまり、二重暗号化チェック値Enc2Check(i-1)〜Enc2Check(i-m)と暗号化全体チェック値EncCheck(i)とからなる連結データにおいて、その連結データのＬＳＢは、暗号化全体チェック値EncCheck(i)である。これにより、１つのチェック値連結データが生成される。
【０１６３】
〔ステップＳＴ３０２−３〕
次に、ドメイン鍵Ku(i)を用いて、連鎖暗号方式による復号化がチェック値連結データに対して実行される。これにより、ｍ個の暗号化チェック値EncCheck(i-1)〜EncCheck(i-m)と全体チェック値Check(i)との集合が生成される。
【０１６４】
〔ステップＳＴ３０２−４〕
次に、ｍ個の暗号化チェック値Check(i-1)〜Check(i-m)と全体チェック値Check(i)との集合の中から所定位置のデータ（ここでは、その集合のＬＳＢである８バイトデータ）が抽出される。これにより、全体チェック値Check(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)を利用した改竄チェック方法）を実行することによって、コンテンツ鍵の正当性を検証する。
【０１６９】
以上のように、１つのコンテンツ鍵に関して改竄のチェックを実行するときに、抽出されたチェック値の比較と、全体チェック値の比較とを実行する。この改竄チェック方法によれば、図１９に示した改竄チェック方法と比較すると、処理量が著しく小さくすることができ、処理速度を高速化することができる。
【０１７０】
また、今後は、ネットワークを介した配信によってコンテンツ鍵を追加したり、削除したりすることも考えられる。本実施の形態においては、コンテンツ鍵が追加された場合には、その追加されたコンテンツ鍵に対応するチェック値を付加情報に格納するとともにそのチェック値を暗号化してコンテンツ鍵およびコンテンツ鍵管理情報のいずれかに埋め込めば良い。このようにすれば、追加したコンテンツ鍵に対する改竄チェックを実行することができる。また、追加したコンテンツ鍵に対応する暗号化チェック値と既存の暗号化チェック値とからなる連結データに対して連鎖暗号方式による暗号化を実行すれば（ステップＳＴ３０１−１〜ＳＴ３０１−３における処理を実行すれば）、チェック値リストを更新することができる。一方、コンテンツ鍵が削除された場合には、削除されなかったコンテンツ鍵に対応する暗号化チェック値を抽出し、それらの暗号化チェック値を１つに連結して再度暗号化すれば（ステップＳＴ３０１−１〜ＳＴ３０１−３における処理を実行すれば）、チェック値リストを更新することができる。また、チェック値リストに全体チェック値を連結して連鎖暗号方式による暗号化を再度実行すれば（ステップＳＴ３０１−４，ＳＴ３０１−５における処理を実行すれば）、連鎖チェック値を更新することができる。
【０１７１】
＜改変例＞
本実施形態について様々な改変例が考えられるが、代表例として以下の３つの改変例を開示する。
【０１７２】
（１）暗号化コンテンツは、必ずしも暗号化コンテンツ鍵を格納するターゲット機器と同一のターゲット機器内に格納されている必要はなく、別の記録媒体に格納されるものであっても良い。その場合には、ホスト機器は、その別の記録媒体に格納された暗号化コンテンツをネットワーク等を介して取得し、本実施形態の改竄チェック方法によって正当性が保証されたコンテンツ鍵を用いてその暗号化コンテンツを復号化することになる。
【０１７３】
（２）全体チェック値が埋め込まれる位置は、指定バイトで指定する必要は必ずしもなく、固定でも構わない。例えば、ＬＳＢの８バイトと固定して埋め込んでおけば、全てのデータ（コンテンツ鍵、コンテンツ鍵管理情報）の改竄をチェックすることが可能である。
【０１７４】
（３）全体チェック値も、コンテンツ鍵毎のチェック値と同様に、定数としてレジスタなどに格納しておいても良い。また、その定数がある規則性を有する場合には、レジスタを設けなくとも、演算器の組み合わせなどで実現することも可能である。一般に、レジスタを設けるよりも演算器の組み合わせによって定数を実装する方が、回路面積としては有利である。
【０１７５】
以上の実施形態の説明において、図２に示した概略フローチャートは、各々の実施形態によるコンテンツ鍵の改竄チェック方法（ステップＳＴ２２における処理）に応じて、適宜変更されても構わない。当業者であれば、図２の概略フローチャートを各実施形態に応じて適宜変更することは容易である。
【産業上の利用可能性】
【０１７６】
本発明は高速で改竄チェックを行うことが可能であるので、ターゲット機器とホスト機器から構成される機密情報処理システム等に利用可能である。
【図面の簡単な説明】
【０１７７】
【図１】この発明の第１の実施形態による機密情報処理システムを示す全体構成図。
【図２】図１に示した機密情報処理システムによる動作についての概略フローチャート。
【図３】この発明の第１の実施形態におけるターゲット機器に格納される機密情報を示す図。
【図４】ドメイン鍵の暗号化／復号化とコンテンツ鍵の暗号化／復号化とについて説明するための図。
【図５】図３に示したハッシュリストおよび連結ハッシュ値の生成手順について説明するための図。
【図６】この発明の第１の実施形態における改竄チェック方法についてのフローチャート。
【図７】この発明の第１の実施形態の改変例について説明するための図。
【図８】連鎖暗号方式について説明するための図。
【図９】この発明の第２の実施形態におけるターゲット機器に格納される機密情報を示す図。
【図１０】図９に示した連鎖ハッシュ値を生成する手順について説明するための図。
【図１１】図９に示したコンテンツ鍵群の改竄をチェックする手順について説明するための図。
【図１２】この発明の第２の実施形態における改竄チェック方法についてのフローチャート。
【図１３】この発明の第２の実施形態の改変例について説明するための図。
【図１４】この発明の第３の実施形態におけるターゲット機器に格納される機密情報を示す図。
【図１５】図１４に示したチェック値リストおよび暗号化全体チェック値を生成する手順について説明するための図。
【図１６】図１４に示したチェック値リストの改竄をチェックする手順について説明するための図。
【図１７】従来のターゲット機器に格納される機密情報を示す図。
【図１８】ドメイン鍵を設定した場合のターゲット機器に格納される機密情報を示す図。
【図１９】ターゲット機器に格納される機密情報についてさらに詳細に示した図。
【符号の説明】
【０１７８】
１０  ターゲット機器
１１  ホスト機器
１０１，９０１  システム領域
１０２，９０２  保護領域
１０３，９０３  通常領域
１１１  内部バス
１１２  ターゲットＩ／Ｆ部
１１３  機密情報処理部
１１４  ホストＩ／Ｆ部
１１５  ホストＣＰＵ
１１６  ＲＡＭ
【図１】
2006197540.tif 000003
【図２】
2006197540.tif 000004
【図３】
2006197540.tif 000005
【図４】
2006197540.tif 000006
【図５】
2006197540.tif 000007
【図６】
2006197540.tif 000008
【図７】
2006197540.tif 000009
【図８】
2006197540.tif 000010
【図９】
2006197540.tif 000011
【図１０】
2006197540.tif 000012
【図１１】
2006197540.tif 000013
【図１２】
2006197540.tif 000014
【図１３】
2006197540.tif 000015
【図１４】
2006197540.tif 000016
【図１５】
2006197540.tif 000017
【図１６】
2006197540.tif 000018
【図１７】
2006197540.tif 000019
【図１８】
2006197540.tif 000020
【図１９】
2006197540.tif 000021
【手続補正書】
【提出日】平成17年12月28日(2005.12.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ターゲット機器に格納された鍵情報の改竄を、ホスト機器を用いて検出する改竄検出方法であって、
前記鍵情報は、少なくとも１つのドメイン鍵情報と、各々が何れかの前記ドメイン鍵情報に関連付けられる複数のコンテンツ鍵情報とを含み、
前記ターゲット機器には、
前記少なくとも１つのドメイン鍵情報を各々暗号化して得られる、少なくとも１つの暗号化ドメイン鍵情報と、
一のドメイン鍵に関連付けられる前記複数のコンテンツ鍵情報を各々連鎖暗号方式によって暗号化して得られる、複数の暗号化コンテンツ鍵情報と、
前記複数の暗号化コンテンツ鍵情報から所定位置のデータを抽出し、抽出された複数の前記所定位置のデータを連結し、この連結されたデータに対してハッシュ演算を施した連鎖ハッシュ値と、が予め格納されており、
前記ホスト機器が、
前記暗号化コンテンツ鍵情報を復号化し、復号化されたコンテンツ鍵情報から所定位置のデータをチェック値として抽出するステップと、
前記チェック値と予め定められた値とを比較するステップと、
前記ターゲット機器に格納された前記複数の暗号化コンテンツ鍵情報から暗号化された状態の所定位置のデータを抽出するステップと、
抽出された複数の前記暗号化された状態の所定位置のデータを連結した上でハッシュ演算を行い、連鎖ハッシュ値を得るステップと、
得られた連鎖ハッシュ値と、前記予め格納された連鎖ハッシュ値とを比較するステップとを行う
ことを特徴とする改竄検出方法。
【請求項２】
請求項１において、
前記コンテンツ鍵情報が、コンテンツの再生のための鍵となるコンテンツ鍵と、前記コンテンツ鍵を管理するためのコンテンツ鍵管理情報を備える
ことを特徴とする改竄検出方法。
【請求項３】
請求項１において、
前記ターゲット機器は、
所定のアクセスのみを受けつける保護領域である第１の領域と、
ユーザからの任意のアクセスを受けつける通常領域である第２の領域とを有し、
前記暗号化ドメイン鍵情報は前記第１の領域に、
前記暗号化コンテンツ鍵情報は前記第２の領域に、
前記予め格納された連鎖ハッシュ値は前記暗号化ドメイン鍵情報の一部として、暗号化された状態で前記第１の領域に格納される
ことを特徴とする改竄検出方法。
【請求項４】
請求項１において、
前記所定位置のデータが、前記暗号化コンテンツ鍵情報の最下位に位置する所定長のデータであることを特徴とする改竄検出方法。
【請求項５】
請求項１において、
平文状態の前記所定位置のデータは、前記一のドメイン鍵に関連付けられる前記複数のコンテンツ鍵情報で共通である
ことを特徴とする改竄検出方法。
【請求項６】
ターゲット機器に格納された鍵情報の改竄を、ホスト機器を用いて検出する改竄検出方法であって、
前記鍵情報は、少なくとも１つのドメイン鍵情報と、各々が何れかの前記ドメイン鍵情報に関連付けられる複数のコンテンツ鍵情報とを含み、
一のコンテンツ鍵情報に第１の演算を施し検証用データを算出する第１の算出ステップと、
前記第１の算出ステップで算出された検証用データと、予め定められた検証用データとを比較する第１の比較ステップと、
前記一のコンテンツ鍵情報と同一のドメイン鍵情報に関連付けられる複数のコンテンツ鍵情報に関連する複数の検証用データを、前記第１の演算を行うことなく抽出する抽出ステップと、
前記抽出ステップで抽出された前記複数の検証用データに第２の演算を施し、全体検証用データを算出する第２の算出ステップと、
前記第２の算出ステップで算出された全体検証用データと、前記ターゲット機器に前記同一のドメイン鍵情報と関連付けて予め格納された全体検証用データを比較する第２の比較ステップとを備える
ことを特徴とする改竄検出方法。
【請求項７】
請求項６において、
前記ターゲット機器は、
所定のアクセスのみを受けつける保護領域である第１の領域と、
ユーザからの任意のアクセスを受けつける通常領域である第２の領域とを有する
ことを特徴とする改竄検出方法。
【請求項８】
請求項７において、
前記ドメイン鍵情報が暗号化された状態で前記第１の領域に、前記コンテンツ鍵情報が暗号化された状態で前記第２の領域に格納されている
ことを特徴とする改竄検出方法。
【請求項９】
請求項６において、
前記第１の演算及び前記第２の演算がハッシュ演算である
ことを特徴とする改竄検出方法。
【請求項１０】
請求項７において、
前記全体検証用データは暗号化された状態で前記第１の領域に予め格納されており、この暗号化された全体検証用データを復号化することにより、平文の状態で前記全体検証用データを取得し、
取得した平文の状態の前記全体検証用データを、前記第２の比較ステップにおいて前記算出された全体検証用データと比較する
ことを特徴とする改竄検出方法。
【請求項１１】
請求項８において、
前記コンテンツ鍵情報は連鎖暗号方式で暗号化されており、
前記第１の演算は、前記コンテンツ鍵情報を復号化して所定位置のデータを抽出する演算である
ことを特徴とする改竄検出方法。
【請求項１２】
請求項６において、
前記予め定められた検証用データは前記コンテンツ鍵情報内に平文の状態で埋め込まれている
ことを特徴とする改竄検出方法。
【請求項１３】
請求項１１において、
前記所定位置を指定可能である
ことを特徴とする改竄検出方法。
【請求項１４】
請求項１１において、
前記所定位置のデータが前記コンテンツ鍵情報の最下位に位置する所定長のデータである
ことを特徴とする改竄検出方法。
【請求項１５】
請求項６において、
前記コンテンツ鍵情報が追加された場合に、前記追加されたコンテンツ鍵情報について前記第１の演算を施して追加検証用データを算出し、
算出された前記追加検証用データを加えた上で、前記複数の検証用データに前記第２の演算を施して全体検証用データを算出し、
算出された前記全体検証用データを、前記ドメイン鍵情報と関連付けて前記ターゲット機器に格納する
ことを特徴とする改竄検出方法。
【請求項１６】
請求項６において、
前記コンテンツ鍵情報が削除された場合に、前記削除されたコンテンツ鍵情報の検証用データを削除した上で、前記複数の検証用データに前記第２の演算を施して全体検証用データを算出し、
算出された前記全体検証用データを、前記ドメイン鍵情報と関連付けて前記ターゲット機器に格納する
ことを特徴とする改竄検出方法。
【請求項１７】
ターゲット機器に格納された鍵情報の改竄を、ホスト機器を用いて検出する改竄検出方法であって、
前記鍵情報は、少なくとも１つのドメイン鍵情報と、各々が何れかの前記ドメイン鍵情報に関連付けられる複数のコンテンツ鍵情報とを含み、
前記ターゲット機器には、連鎖暗号方式で暗号化された状態の全体チェック値と、平文の状態の全体チェック値とが予め格納されており、
一のコンテンツ鍵情報に第１の演算を施し検証用データを算出する第１の算出ステップと、
前記第１の算出ステップで算出された検証用データと、前記ターゲット機器に予め格納された検証用データとを比較する第１の比較ステップと、
前記一のコンテンツ鍵情報と同一のドメイン鍵情報に関連付けられる複数のコンテンツ鍵情報に関連する暗号化された状態の複数の検証用データを抽出する抽出ステップと、
前記暗号化された状態の複数の検証用データと前記暗号化された状態の全体チェック値を連結した上で、復号化を行って平文の状態の全体チェック値を算出する第２の算出ステップと、
前記第２の算出ステップで算出された平文の状態の全体チェック値と、前記予め格納された平文の状態の全体チェック値とを比較する第２の比較ステップとを備える
ことを特徴とする改竄検出方法。
【請求項１８】
請求項１７において、
前記ドメイン鍵情報と前記暗号化された状態の全体チェック値は所定のアクセスのみを受けつける保護領域に格納されており、
前記コンテンツ鍵情報と前記平文の状態の全体チェック値と前記暗号化された状態の複数の検証用データはユーザからのアクセスを受けつける通常領域に格納されている
ことを特徴とする改竄検出方法。
【請求項１９】
請求項１７において、
前記コンテンツ鍵情報が追加された場合に、前記追加されたコンテンツ鍵情報についての追加検証用データを加えた上で、前記暗号化された状態の複数の検証用データ及び前記暗号化された状態の全体チェック値を更新する
ことを特徴とする改竄検出方法。
【請求項２０】
請求項１７において、
前記コンテンツ鍵情報が削除された場合に、前記削除されたコンテンツ鍵情報の検証用データを削除した上で、前記暗号化された状態の複数の検証用データ及び前記暗号化された状態の全体チェック値を更新する
ことを特徴とする改竄検出方法。
【請求項２１】
ターゲット機器に格納された鍵情報の改竄を、ホスト機器を用いて検出する改竄検出方法であって、
前記鍵情報は、少なくとも１つのドメイン鍵情報と、各々が何れかの前記ドメイン鍵情報に関連付けられる複数のコンテンツ鍵情報とを含み、
前記複数のコンテンツ鍵情報の各々は、連鎖暗号方式で暗号化された状態で前記ターゲット機器内に記憶されており、
暗号化された状態の一のコンテンツ鍵情報を復号化して所定位置のデータを抽出することによりチェック値を算出する第１の算出ステップと、
前記第１の算出ステップで算出されたチェック値と、予め定められたチェック値とを比較する第１の比較ステップと、
前記一のコンテンツ鍵情報と同一のドメイン鍵情報に関連付けられる複数のコンテンツ鍵情報に関連する複数の暗号化された状態のチェック値を抽出する抽出ステップと、
前記抽出ステップで抽出された前記複数の暗号化された状態のチェック値に第２の演算を施し、全体検証用データを算出する第２の算出ステップと、
前記第２の算出ステップで算出された全体検証用データと、前記同一のドメイン鍵情報と関連付けて予め格納された全体検証用データを比較する第２の比較ステップとを備えることを特徴とする改竄検出方法。
【請求項２２】
請求項２１において、
前記予め定められたチェック値は前記コンテンツ鍵情報内に平文の状態で埋め込まれている
ことを特徴とする改竄検出方法。
【請求項２３】
請求項２１において、
前記所定位置を指定可能である
ことを特徴とする改竄検出方法。
【請求項２４】
請求項２１において、
前記チェック値が前記コンテンツ鍵情報の最下位に位置する所定長のデータである
ことを特徴とする改竄検出方法。
【請求項２５】
請求項２１において、
前記予め定められたチェック値が定数である
ことを特徴とする改竄検出方法。
【請求項２６】
請求項２１において、
前記第２の演算がハッシュ演算である
ことを特徴とする改竄検出方法。
【請求項２７】
請求項２１において、
前記ターゲット機器は、
所定のアクセスのみを受けつける保護領域である第１の領域と、
ユーザからの任意のアクセスを受けつける通常領域である第２の領域とを有し、
前記ドメイン鍵情報は前記第１の領域に、
前記コンテンツ鍵情報は前記第２の領域に、
前記予め格納された全体検証用データは前記ドメイン鍵情報の一部として前記第１の領域に格納される
ことを特徴とする改竄検出方法。
【請求項２８】
請求項２７において、
前記ドメイン鍵情報と前記予め格納された全体検証用データとは暗号化された状態で前記第１の領域に格納されており、
前記コンテンツ鍵情報はその最下位にチェック値を連結された上で、連鎖暗号方式で暗号化された状態で前記第２の領域に格納されている
ことを特徴とする改竄検出方法。
【請求項２９】
請求項２８において、
前記コンテンツ鍵情報が追加された場合に、前記追加されたコンテンツ鍵情報に関連するチェック値を追加した上で、前記複数のチェック値にハッシュ演算を施し、得られたハッシュ値を前記全体検証用データとして、前記ドメイン鍵情報と関連付けて前記第１の領域に格納する
ことを特徴とする改竄検出方法。
【請求項３０】
請求項２８において、
前記コンテンツ鍵情報が削除された場合に、前記削除されたコンテンツ鍵情報のチェック値を削除した上で、前記複数のチェック値にハッシュ演算を施し、得られたハッシュ値を前記全体検証用データとして、前記ドメイン鍵情報と関連付けて前記第１の領域に格納する
ことを特徴とする改竄検出方法。
【請求項３１】
ターゲット機器に格納された鍵情報の改竄を検出する改竄検出装置であって、
前記鍵情報は、少なくとも１つのドメイン鍵情報と、各々が何れかの前記ドメイン鍵情報に関連付けられる複数のコンテンツ鍵情報とを含み、
一のコンテンツ鍵情報に第１の演算を施し検証用データを算出する第１の算出手段と、
前記第１の算出手段で算出された検証用データと、予め定められた検証用データとを比較する第１の比較手段と、
前記一のコンテンツ鍵情報と同一のドメイン鍵情報に関連付けられる複数のコンテンツ鍵情報に関連する複数の検証用データを、前記第１の演算を行うことなく抽出する抽出手段と、
前記抽出手段で抽出された前記複数の検証用データに第２の演算を施し、全体検証用データを算出する第２の算出手段と、
前記第２の算出手段で算出された全体検証用データと、前記ターゲット機器に前記同一のドメイン鍵情報と関連付けて予め格納された全体検証用データを比較する第２の比較手段とを備える
ことを特徴とする改竄検出装置。
【請求項３２】
ターゲット機器に格納された鍵情報の改竄を検出する改竄検出装置であって、
前記鍵情報は、少なくとも１つのドメイン鍵情報と、各々が何れかの前記ドメイン鍵情報に関連付けられる複数のコンテンツ鍵情報とを含み、
前記ターゲット機器には、連鎖暗号方式で暗号化された状態の全体チェック値と、平文の状態の全体チェック値とが予め格納されており、
一のコンテンツ鍵情報に第１の演算を施し検証用データを算出する第１の算出手段と、
前記第１の算出手段で算出された検証用データと、前記ターゲット機器に予め格納された検証用データとを比較する第１の比較手段と、
前記一のコンテンツ鍵情報と同一のドメイン鍵情報に関連付けられる複数のコンテンツ鍵情報に関連する暗号化された状態の複数の検証用データを抽出する抽出手段と、
前記暗号化された状態の複数の検証用データと前記暗号化された状態の全体チェック値を連結した上で、復号化を行って平文の状態の全体チェック値を算出する第２の算出手段と、
前記第２の算出手段で算出された平文の状態の全体チェック値と、前記予め格納された平文の状態の全体チェック値とを比較する第２の比較手段とを備える
ことを特徴とする改竄検出装置。
【請求項３３】
ターゲット機器に格納された鍵情報の改竄を検出する改竄検出装置であって、
前記鍵情報は、少なくとも１つのドメイン鍵情報と、各々が何れかの前記ドメイン鍵情報に関連付けられる複数のコンテンツ鍵情報とを含み、
前記複数のコンテンツ鍵情報の各々は、連鎖暗号方式で暗号化された状態で前記ターゲット機器内に記憶されており、
暗号化された状態の一のコンテンツ鍵情報を復号化して所定位置のデータを抽出することによりチェック値を算出する第１の算出手段と、
前記第１の算出手段で算出されたチェック値と、予め定められたチェック値とを比較する第１の比較手段と、
前記一のコンテンツ鍵情報と同一のドメイン鍵情報に関連付けられる複数のコンテンツ鍵情報に関連する複数のチェック値を抽出する抽出手段と、
前記抽出手段で抽出された前記複数の検証用データに第２の演算を施し、全体検証用データを算出する第２の算出手段と、
前記第２の算出手段で算出された全体検証用データと、前記ターゲット機器に前記同一のドメイン鍵情報と関連付けて予め格納された全体検証用データを比較する第２の比較手段とを備える
ことを特徴とする改竄検出装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００２４
【補正方法】変更
【補正の内容】
【００２４】
上記課題を解決するために本発明が講じた第１の方法は、ターゲット機器に格納された鍵情報の改竄を、ホスト機器を用いて検出する改竄検出方法であって、前記鍵情報は、少なくとも１つのドメイン鍵情報と、各々が何れかの前記ドメイン鍵情報に関連付けられる複数のコンテンツ鍵情報とを含み、前記ターゲット機器には、前記少なくとも１つのドメイン鍵情報を各々暗号化して得られる、少なくとも１つの暗号化ドメイン鍵情報と、一のドメイン鍵に関連付けられる前記複数のコンテンツ鍵情報を各々連鎖暗号方式によって暗号化して得られる、複数の暗号化コンテンツ鍵情報と、前記複数の暗号化コンテンツ鍵情報から所定位置のデータを抽出し、抽出された複数の前記所定位置のデータを連結し、この連結されたデータに対してハッシュ演算を施した連鎖ハッシュ値と、が予め格納されており、前記ホスト機器が、前記暗号化コンテンツ鍵情報を復号化し、復号化されたコンテンツ鍵情報から所定位置のデータをチェック値として抽出するステップと、前記チェック値と予め定められた値とを比較するステップと、前記ターゲット機器に格納された前記複数の暗号化コンテンツ鍵情報から暗号化された状態の所定位置のデータを抽出するステップと、抽出された複数の前記暗号化された状態の所定位置のデータを連結した上でハッシュ演算を行い、連鎖ハッシュ値を得るステップと、得られた連鎖ハッシュ値と、前記予め格納された連鎖ハッシュ値とを比較するステップとを行うことを特徴とする。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２５
【補正方法】変更
【補正の内容】
【００２５】
また、本発明が講じた第２の方法は、ターゲット機器に格納された鍵情報の改竄を、ホスト機器を用いて検出する改竄検出方法であって、前記鍵情報は、少なくとも１つのドメイン鍵情報と、各々が何れかの前記ドメイン鍵情報に関連付けられる複数のコンテンツ鍵情報とを含み、一のコンテンツ鍵情報に第１の演算を施し検証用データを算出する第１の算出ステップと、前記第１の算出ステップで算出された検証用データと、予め定められた検証用データとを比較する第１の比較ステップと、前記一のコンテンツ鍵情報と同一のドメイン鍵情報に関連付けられる複数のコンテンツ鍵情報に関連する複数の検証用データを、前記第１の演算を行うことなく抽出する抽出ステップと、前記抽出ステップで抽出された前記複数の検証用データに第２の演算を施し、全体検証用データを算出する第２の算出ステップと、前記第２の算出ステップで算出された全体検証用データと、前記ターゲット機器に前記同一のドメイン鍵情報と関連付けて予め格納された全体検証用データを比較する第２の比較ステップとを備えることを特徴とする。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００２６
【補正方法】変更
【補正の内容】
【００２６】
また、本発明が講じた第３の方法は、ターゲット機器に格納された鍵情報の改竄を、ホスト機器を用いて検出する改竄検出方法であって、前記鍵情報は、少なくとも１つのドメイン鍵情報と、各々が何れかの前記ドメイン鍵情報に関連付けられる複数のコンテンツ鍵情報とを含み、前記ターゲット機器には、連鎖暗号方式で暗号化された状態の全体チェック値と、平文の状態の全体チェック値とが予め格納されており、一のコンテンツ鍵情報に第１の演算を施し検証用データを算出する第１の算出ステップと、前記第１の算出ステップで算出された検証用データと、前記ターゲット機器に予め格納された検証用データとを比較する第１の比較ステップと、前記一のコンテンツ鍵情報と同一のドメイン鍵情報に関連付けられる複数のコンテンツ鍵情報に関連する暗号化された状態の複数の検証用データを抽出する抽出ステップと、前記暗号化された状態の複数の検証用データと前記暗号化された状態の全体チェック値を連結した上で、復号化を行って平文の状態の全体チェック値を算出する第２の算出ステップと、前記第２の算出ステップで算出された平文の状態の全体チェック値と、前記予め格納された平文の状態の全体チェック値とを比較する第２の比較ステップとを備えることを特徴とする。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００２７
【補正方法】変更
【補正の内容】
【００２７】
また、本発明が講じた第４の方法は、ターゲット機器に格納された鍵情報の改竄を、ホスト機器を用いて検出する改竄検出方法であって、前記鍵情報は、少なくとも１つのドメイン鍵情報と、各々が何れかの前記ドメイン鍵情報に関連付けられる複数のコンテンツ鍵情報とを含み、前記複数のコンテンツ鍵情報の各々は、連鎖暗号方式で暗号化された状態で前記ターゲット機器内に記憶されており、暗号化された状態の一のコンテンツ鍵情報を復号化して所定位置のデータを抽出することによりチェック値を算出する第１の算出ステップと、前記第１の算出ステップで算出されたチェック値と、予め定められたチェック値とを比較する第１の比較ステップと、前記一のコンテンツ鍵情報と同一のドメイン鍵情報に関連付けられる複数のコンテンツ鍵情報に関連する複数の暗号化された状態のチェック値を抽出する抽出ステップと、前記抽出ステップで抽出された前記複数の暗号化された状態のチェック値に第２の演算を施し、全体検証用データを算出する第２の算出ステップと、前記第２の算出ステップで算出された全体検証用データと、前記同一のドメイン鍵情報と関連付けて予め格納された全体検証用データを比較する第２の比較ステップとを備えることを特徴とする。
【手続補正書】
【提出日】平成18年4月7日(2006.4.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ターゲット機器に格納された鍵情報の改竄を、ホスト機器を用いて検出する改竄検出方法であって、
前記鍵情報は、少なくとも１つのドメイン鍵情報と、各々が何れかの前記ドメイン鍵情報を用いて暗号化される複数のコンテンツ鍵情報とを含み、
前記ターゲット機器には、
前記少なくとも１つのドメイン鍵情報を各々暗号化して得られる、少なくとも１つの暗号化ドメイン鍵情報と、
一のドメイン鍵情報を用いて暗号化される複数のコンテンツ鍵情報を各々連鎖暗号方式によって暗号化して得られる、複数の暗号化コンテンツ鍵情報と、
前記複数の暗号化コンテンツ鍵情報から所定位置のデータを抽出し、抽出された複数の前記所定位置のデータを連結し、この連結されたデータに対してハッシュ演算を施した連鎖ハッシュ値と、が予め格納されており、
前記ホスト機器が、
前記暗号化コンテンツ鍵情報を復号化し、復号化されたコンテンツ鍵情報から所定位置のデータをチェック値として抽出するステップと、
前記チェック値と予め定められた値とを比較するステップと、
前記ターゲット機器に格納された前記複数の暗号化コンテンツ鍵情報から暗号化された状態の所定位置のデータを抽出するステップと、
抽出された複数の前記暗号化された状態の所定位置のデータを連結した上でハッシュ演算を行い、連鎖ハッシュ値を得るステップと、
得られた連鎖ハッシュ値と、前記予め格納された連鎖ハッシュ値とを比較するステップとを一連の処理として行い、かつ
前記ターゲット機器は、
所定のアクセスのみを受けつける保護領域である第１の領域と、
ユーザからの任意のアクセスを受けつける通常領域である第２の領域とを有し、
前記暗号化ドメイン鍵情報は前記第１の領域に、
前記暗号化コンテンツ鍵情報は前記第２の領域に、
前記予め格納された連鎖ハッシュ値は前記暗号化ドメイン鍵情報の一部として、暗号化された状態で前記第１の領域に格納される
ことを特徴とする改竄検出方法。
【請求項２】
請求項１において、
前記コンテンツ鍵情報が、コンテンツの再生のための鍵となるコンテンツ鍵と、前記コンテンツ鍵を管理するためのコンテンツ鍵管理情報を備える
ことを特徴とする改竄検出方法。
【請求項３】
請求項１において、
前記所定位置のデータが、前記暗号化コンテンツ鍵情報の最下位に位置する所定長のデータであることを特徴とする改竄検出方法。
【請求項４】
請求項１において、
平文状態の前記所定位置のデータは、前記一のドメイン鍵に関連付けられる前記複数のコンテンツ鍵情報で共通である
ことを特徴とする改竄検出方法。
【請求項５】
ターゲット機器に格納された鍵情報の改竄を、ホスト機器を用いて検出する改竄検出方法であって、
前記鍵情報は、少なくとも１つのドメイン鍵情報と、各々が何れかの前記ドメイン鍵情報を用いて暗号化される複数のコンテンツ鍵情報とを含み、
前記複数のコンテンツ鍵情報の各々は、連鎖暗号方式で暗号化された状態で前記ターゲット機器内に記憶されており、
暗号化された状態の一のコンテンツ鍵情報を復号化して所定位置のデータを抽出することによりチェック値を算出する第１の算出ステップと、
前記第１の算出ステップで算出されたチェック値と、予め定められたチェック値とを比較する第１の比較ステップと、
前記一のコンテンツ鍵情報と同一のドメイン鍵情報に関連付けられる複数のコンテンツ鍵情報に関連する複数の暗号化された状態のチェック値を抽出する抽出ステップと、
前記抽出ステップで抽出された前記複数の暗号化された状態のチェック値に第２の演算を施し、全体検証用データを算出する第２の算出ステップと、
前記第２の算出ステップで算出された全体検証用データと、前記同一のドメイン鍵情報と関連付けて予め格納された全体検証用データを比較する第２の比較ステップとを一連の処理として行い、かつ、
前記ターゲット機器は、
所定のアクセスのみを受けつける保護領域である第１の領域と、
ユーザからの任意のアクセスを受けつける通常領域である第２の領域とを有し、
前記ドメイン鍵情報は前記第１の領域に、
前記コンテンツ鍵情報は前記第２の領域に、
前記予め格納された全体検証用データは前記ドメイン鍵情報の一部として前記第１の領域に格納される
ことを特徴とする改竄検出方法。
【請求項６】
請求項５において、
前記予め定められたチェック値は前記コンテンツ鍵情報内に平文の状態で埋め込まれている
ことを特徴とする改竄検出方法。
【請求項７】
請求項５において、
前記所定位置を指定可能である
ことを特徴とする改竄検出方法。
【請求項８】
請求項５において、
前記チェック値が前記コンテンツ鍵情報の最下位に位置する所定長のデータである
ことを特徴とする改竄検出方法。
【請求項９】
請求項５において、
前記予め定められたチェック値が定数である
ことを特徴とする改竄検出方法。
【請求項１０】
請求項５において、
前記第２の演算がハッシュ演算である
ことを特徴とする改竄検出方法。
【請求項１１】
請求項５において、
前記ドメイン鍵情報と前記予め格納された全体検証用データとは暗号化された状態で前記第１の領域に格納されており、
前記コンテンツ鍵情報はその最下位にチェック値を連結された上で、連鎖暗号方式で暗号化された状態で前記第２の領域に格納されている
ことを特徴とする改竄検出方法。
【請求項１２】
請求項１１において、
前記コンテンツ鍵情報が追加された場合に、前記追加されたコンテンツ鍵情報に関連するチェック値を追加した上で、前記複数のチェック値にハッシュ演算を施し、得られたハッシュ値を前記全体検証用データとして、前記ドメイン鍵情報と関連付けて前記第１の領域に格納する
ことを特徴とする改竄検出方法。
【請求項１３】
請求項１１において、
前記コンテンツ鍵情報が削除された場合に、前記削除されたコンテンツ鍵情報のチェック値を削除した上で、前記複数のチェック値にハッシュ演算を施し、得られたハッシュ値を前記全体検証用データとして、前記ドメイン鍵情報と関連付けて前記第１の領域に格納する
ことを特徴とする改竄検出方法。