(57)【要約】【課題】暗号鍵の階層差を利用した鍵の不正取得を防ぐことのできる暗号処理装置を提供する。【解決手段】実施形態の暗号処理装置は、ホスト環境１に配置された処理要求部１１が、暗号化ルート鍵ＥＫｒと、使用するＤＲＭ方式を指定する処理識別子ＤＲＭｘと、処理識別子ＤＲＭｘとルート鍵Ｋｒとの対応証明用の処理識別子検証子Ｈとを添えて、セキュア環境２へコンテンツの復号処理を要求する。セキュア環境２では、検証用処理識別子検証子生成部２４が、ルート鍵復号部２３により復号されたルート鍵と、処理識別子ＤＲＭｘと、検証鍵格納部２６から読み出した検証鍵Ｋとを用いて、処理識別子検証子Ｈから検証用処理識別子検証子Ｈｄを生成する。検証処理部２５が、処理識別子検証子Ｈが検証用処理識別子検証子Ｈｄと一致するかを検証し、処理要求部１１からの要求の正当性を判定する。正当のときのみ、復号ルート鍵が復号ルート鍵格納部２６に格納される。【選択図】  図１
2013197810.tif 000002
【特許請求の範囲】
【請求項１】
メインプロセッサによる処理が実行されるホスト環境と、セキュリティプロセッサによる処理が実行されるセキュア環境と、に実行環境が分けられ、
前記ホスト環境に配置された、
暗号処理に使用されるルート鍵を暗号化した暗号化ルート鍵と、使用するＤＲＭ方式を指定する処理識別子と、前記処理識別子と前記ルート鍵との対応証明用の、予め生成された処理識別子検証子とを添えて、前記セキュア環境へ暗号処理を要求する処理要求部と、
前記セキュア環境に配置された、
前記ルート鍵の暗号処理に使用されるデバイス鍵が格納されたデバイス鍵格納部と、
前記処理識別子検証子を検証するための検証鍵が格納された検証鍵格納部と、
前記処理要求部から渡された前記暗号化ルート鍵を前記デバイス鍵格納部から読み出した前記デバイス鍵により復号するルート鍵復号部と、
前記復号されたルート鍵と、前記処理要求部から渡された前記処理識別子と、前記検証鍵格納部から読み出した前記検証鍵とを用いて、前記処理識別子検証子から検証用処理識別子検証子を生成する検証用処理識別子検証子生成部と、
前記処理要求部から渡された前記処理識別子検証子と前記検証用処理識別子検証子とを用いて前記処理要求部からの要求の正当性を判定する検証処理部と、
前記検証処理部により前記正当性が検証されたときのみ、前記復号されたルート鍵が格納される復号ルート鍵格納部と、
前記セキュリティプロセッサで実行される様々な基本処理ユニットが格納される基本処理ユニット格納部と、
前記検証処理部により前記正当性が検証されたときのみ、前記基本処理ユニット格納部を呼び出し、前記ホスト環境から渡された処理ポリシを、指定された基本処理ユニットを組み合わせた処理シーケンスに展開する処理ポリシ展開部と
を備え、
前記処理識別子検証子が、前記検証鍵をメッセージ認証子鍵とし、前記ルート鍵および前記処理識別子を認証対象メッセージとするメッセージ認証子であり、
前記検証用処理識別子検証子生成部が、
前記検証用処理識別子検証子として、前記検証鍵をメッセージ認証子鍵とし、前記ルート鍵および前記処理識別子を認証対象メッセージとするメッセージ認証子を生成し、
前記検証処理部が、
前記処理識別子検証子と、前記検証用処理識別子検証子との一致を正当性の判定基準とする
ことを特徴とする暗号処理装置。
【請求項２】
メインプロセッサによる処理が実行されるホスト環境と、セキュリティプロセッサによる処理が実行されるセキュア環境と、に実行環境が分けられ、
前記ホスト環境に配置された、
暗号処理に使用されるルート鍵を暗号化した暗号化ルート鍵と、使用するＤＲＭ方式を指定する処理識別子と、前記処理識別子と前記ルート鍵との対応証明用の、予め生成された処理識別子検証子とを添えて、前記セキュア環境へ暗号処理を要求する処理要求部と、
前記セキュア環境に配置された、
前記ルート鍵の暗号処理に使用されるデバイス鍵が格納されたデバイス鍵格納部と、
前記処理識別子検証子を検証するための検証鍵が格納された検証鍵格納部と、
前記処理要求部から渡された前記暗号化ルート鍵を前記デバイス鍵格納部から読み出した前記デバイス鍵により復号するルート鍵復号部と、
前記復号されたルート鍵と、前記処理要求部から渡された前記処理識別子と、前記検証鍵格納部から読み出した前記検証鍵とを用いて、前記処理識別子検証子から検証用処理識別子検証子を生成する検証用処理識別子検証子生成部と、
前記処理要求部から渡された前記処理識別子検証子と前記検証用処理識別子検証子とを用いて前記処理要求部からの要求の正当性を判定する検証処理部と、
前記検証処理部により前記正当性が検証されたときのみ、前記復号されたルート鍵が格納される復号ルート鍵格納部と
を備えることを特徴とする暗号処理装置。
【請求項３】
前記処理識別子検証子が、前記検証鍵をメッセージ認証子鍵とし、前記ルート鍵および前記処理識別子を認証対象メッセージとするメッセージ認証子であり、
前記検証用処理識別子検証子生成部が、
前記検証用処理識別子検証子として、前記検証鍵をメッセージ認証子鍵とし、前記ルート鍵および前記処理識別子を認証対象メッセージとするメッセージ認証子を生成し、
前記検証処理部が、
前記処理識別子検証子と、前記検証用処理識別子検証子との一致を正当性の判定基準とする
ことを特徴とする請求項２に記載の暗号処理装置。
【請求項４】
前記処理識別子検証子が、公開鍵暗号方式における秘密鍵による前記ルート鍵および前記処理識別子を対象とするデジタル署名データであり、
前記検証用処理識別子検証子生成部が、
前記検証用処理識別子検証子として、前記検証鍵を前記秘密鍵に対応する公開鍵として、前記デジタル署名データを復号した復号データを生成し、
前記検証処理部が、
前記ルート鍵、前記処理識別子および前記検証用処理識別子検証子を用いたデジタル署名の検証結果を正当性の判定基準とする
ことを特徴とする請求項２に記載の暗号処理装置。
【請求項５】
前記処理識別子検証子が、前記検証鍵を暗号鍵とし前記ルート鍵および前記処理識別子を連結したデータを暗号化した暗号データの、前記処理識別子に対応する部分の部分暗号データであり、
前記検証用処理識別子検証子生成部が、
前記検証用処理識別子検証子として、前記検証鍵により前記部分暗号データを復号した復号データを生成し、
前記検証処理部が、
前記処理識別子と、前記検証用処理識別子検証子との一致を正当性の判定基準とする
ことを特徴とする請求項２に記載の暗号処理装置。
【請求項６】
前記処理識別検証子が、セキュア環境に配置された不揮発性かつ加算のみ可能で減算不能なカウンタのカウント値も証明対象に含めて生成され、
前記検証用処理識別子検証子生成部が、
前記減算不能なカウンタの現在のカウント値も含めて前記検証用処理識別子検証子を生成する
ことを特徴とする請求項２乃至５のいずれか１項に記載の暗号処理装置。
【請求項７】
前記セキュリティプロセッサで実行される様々な基本処理ユニットが格納される基本処理ユニット格納部と、
前記検証処理部により前記正当性が検証されたときのみ、前記基本処理ユニット格納部を呼び出し、前記ホスト環境から渡された処理ポリシを、指定された基本処理ユニットを組み合わせた処理シーケンスに展開する処理ポリシ展開部と
を備えることを特徴とする請求項２乃至６のいずれか１項に記載の暗号処理装置。
【請求項８】
前記処理識別子検証子が、
前記コンテンツを配信するサーバから送信される
ことを特徴とする請求項２乃至７のいずれか１項に記載の暗号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、暗号処理装置に関する。
【背景技術】
【０００２】
音楽や映像などのコンテンツのデータは、著作権保護のために、著作権管理技術（ＤＲＭ）により暗号化された状態で供給される。
【０００３】
ＤＲＭにおける暗号鍵、コンテンツに関わる処理の一般的な方式としては、再生機器や情報端末ごとに割り当てられた秘密鍵であるデバイス鍵をセキュア環境に保管し、各ＤＲＭ方式で用いられる暗号鍵を、このデバイス鍵を頂点する階層構造により表現される。ただし、その階層の深さは、ＤＲＭ方式によって異なる。
【０００４】
このような処理におけるセキュリティ上の問題点は、暗号化の階層段数差を利用した攻撃が可能なことである。これにより、ホスト環境に侵入した攻撃者により、復号されたコンテンツ鍵が盗まれる、という問題が発生する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２８４６３号公報
【特許文献２】特開２００５−５７４３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明が解決しようとする課題は、暗号鍵の階層差を利用した鍵の不正取得を防ぐことのできる暗号処理装置を提供することにある。
【課題を解決するための手段】
【０００７】
実施形態の暗号処理装置は、メインプロセッサによる処理が実行されるホスト環境と、セキュリティプロセッサによる処理が実行されるセキュア環境と、に実行環境が分けられ、前記ホスト環境に配置された処理要求部が、暗号処理に使用されるルート鍵を暗号化した暗号化ルート鍵と、使用するＤＲＭ方式を指定する処理識別子と、前記処理識別子と前記ルート鍵との対応証明用の、予め生成された処理識別子検証子とを添えて、前記セキュア環境へ暗号処理を要求する。前記セキュア環境に、前記ルート鍵の暗号処理に使用されるデバイス鍵が格納されたデバイス鍵格納部と、前記処理識別子検証子を検証するための検証鍵が格納された検証鍵格納部とが配置される。前記セキュア環境では、ルート鍵復号部が、前記処理要求部から渡された前記暗号化ルート鍵を前記デバイス鍵格納部から読み出した前記デバイス鍵により復号し、検証用処理識別子検証子生成部が、前記復号されたルート鍵と、前記処理要求部から渡された前記処理識別子と、前記検証鍵格納部から読み出した前記検証鍵とを用いて、前記処理識別子検証子から検証用処理識別子検証子を生成する。検証処理部が、前記処理要求部から渡された前記処理識別子検証子と前記検証用処理識別子検証子とを用いて前記処理要求部からの要求の正当性を判定する。前記正当性が検証されたときのみ、前記検証処理部により前記復号されたルート鍵が、復号ルート鍵格納部に格納される。
【図面の簡単な説明】
【０００８】
【図１】第１の実施形態の暗号処理装置の構成の例を示すブロック図。
【図２】ＤＲＭの暗号鍵の階層構造の例を示す図。
【図３】検証用処理識別子検証子生成部および検証処理部の具体的な例を示す図。
【図４】検証用処理識別子検証子生成部および検証処理部の別の具体的な例を示す図。
【図５】検証用処理識別子検証子生成部および検証処理部の別の具体的な例を示す図。
【図６】検証用処理識別子検証子生成部および検証処理部の別の例を示す図。
【図７】第２の実施形態の暗号処理装置の構成の例を示すブロック図。
【図８】第３の実施形態の暗号処理装置の構成の例を示すブロック図。
【発明を実施するための形態】
【０００９】
以下、本発明の実施の形態について図面を参照して説明する。なお、図中、同一または相当部分には同一の符号を付して、その説明は繰り返さない。
【００１０】
（第１の実施形態）
図１は、第１の実施形態の暗号処理装置の構成の例を示すブロック図である。
【００１１】
本実施形態の暗号処理装置の実行環境は、メインプロセッサ１００による処理が実行されるホスト環境１と、セキュリティプロセッサ２００による処理が実行されるセキュア環境２とに、分かれている。ホスト環境１では、セキュリティが要求されない大部分の処理が実行され、セキュア環境２では、著作権保護に関する処理が実行される。
【００１２】
ここで、セキュア環境２で処理されるＤＲＭ方式は様々であり、それぞれは、ルート鍵を頂点とする階層構造により保護対象のデータやコンテンツを暗号化している。機器においては、ルート鍵は、それぞれ、デバイス鍵ＤＫで暗号化されている。
【００１３】
このルート鍵は、事前にコンテンツの配信サービス提供者から供給される場合や、機器でルート鍵として書き込んだ値をコンテンツの配信サービス提供者に通知する場合など、様々方法で配布される。
【００１４】
図２に、ＤＲＭ方式ごとの暗号鍵の階層構造の例を示す。ここでは、ＤＲＭ方式の違いを、ＤＲＭ−Ａ、ＤＲＭ−Ｂ、ＤＲＭ−Ｃと、表わす。
【００１５】
ＤＲＭ−Ａでは、ルート鍵Ｋｒ−Ａでデータの暗号処理を行っている。機器では製造工程において、デバイス鍵ＤＫでルート鍵Ｋｒ−Ａを暗号化して暗号化ルート鍵ＥＫｒ−Ａを生成し、この暗号化ルート鍵ＥＫｒ−Ａをセキュア環境２の外部に保存する。
【００１６】
一方、ＤＲＭ−Ｂでは、コンテンツ鍵ＥＫｃ−Ｂでコンテンツの暗号処理を行っており、コンテンツ鍵ＥＫｃ−Ｂはルート鍵Ｋｒ−Ｂで暗号化される。機器では製造工程において、デバイス鍵ＤＫでルート鍵Ｋｒ−Ｂを暗号化して暗号化ルート鍵ＥＫｒ−Ｂを生成し、この暗号化ルート鍵ＥＫｒ−Ｂをセキュア環境２の外部に保存する。暗号化されたコンテンツ鍵ＥＫｃ−Ｂは、予め機器に保存されている場合もあれば、コンテンツの再生時に機器の外部から提供される場合もある。
【００１７】
また、ＤＲＭ−Ｃでは、ＤＲＭ−Ａと同様、ルート鍵ＥＫｒ−Ｃによりデータの暗号処理を行っている。ここで、データおよびコンテンツに関わる暗号処理について補足すると、セキュア環境での暗号処理としてはデータの復号と暗号の両方を想定している。
【００１８】
ＤＲＭにおいては、暗号化されたデータ（あるいはコンテンツ）が外部から提供され、機器は必要に応じてデータ（あるいはコンテンツ）を復号することが多い。しかし、一部の暗号処理（例えば、鍵データによるＸＯＲでのデータ秘匿やカウンタ値として同じ値を指定した場合の共通鍵暗号のＣＴＲモードなど）では、暗号・復号の処理は対称性を有するため、あるＤＲＭの処理が暗号化を意図した処理であっても、暗号化済みデータを入力として復号データを得ることができる場合がある。
【００１９】
そのため、ここではセキュア環境でのデータおよびコンテンツに関わる処理を暗号処理と記述し、暗号・復号の区別をしない。
【００２０】
本実施形態では、このＤＲＭ方式の違いを、処理識別子ＤＲＭｘにより識別するものとする。例えば、処理識別子ＤＲＭ−ＡはＤＲＭ−Ａ方式、処理識別子ＤＲＭ−ＢはＤＲＭ−Ｂ方式、処理識別子ＤＲＭ−ＣはＤＲＭ−Ｃ方式を示すものとする。
【００２１】
図１に戻って、本実施形態の暗号処理装置は、ホスト環境１に、セキュア環境２のセキュリティプロセッサ２００への処理要求を作成する処理要求部１１と、その処理要求の正当性を検証するための検証情報が格納された検証情報格納部１２と、セキュア環境２と共用で使用される共用情報格納部１３とが、配置される。
【００２２】
検証情報格納部１２には、各ＤＲＭ方式の暗号化ルート鍵ＥＫｒと、処理識別子ＤＲＭｘと暗号化前のルート鍵Ｋｒとの対応証明用の処理識別子検証子Ｈとが、格納されている。
【００２３】
ここで、処理識別子検証子Ｈは、処理識別子ＤＲＭｘおよびルート鍵Ｋｒに対して、秘密の検証鍵Ｋを用いた暗号処理を行って予め生成されたものである。この処理は、例えば、製造工程においてなされているとする。
【００２４】
処理要求部１１は、セキュリティプロセッサ２００へ処理を要求するときは、使用するＤＲＭ方式を指定する処理識別子ＤＲＭｘを共用情報格納部１３に書き込む。また、処理要求部１１は、その処理識別子ＤＲＭｘに対する処理識別子検証子Ｈと、復号対象の暗号化ルート鍵ＥＫｒを検証情報格納部１２から読み出し、共用情報格納部１３に書き込む。
【００２５】
処理要求部１１は、処理識別子ＤＲＭｘ、処理識別子検証子Ｈおよび復号対象の暗号化ルート鍵ＥＫｒの共用情報格納部１３への書き込みが終わったら、セキュリティプロセッサ２００へ処理を要求する。
【００２６】
本実施形態の暗号処理装置では、セキュア環境２に、デバイス鍵格納部２１と、検証鍵格納部２２と、ルート鍵復号部２３と、検証用処理識別子検証子生成部２４と、検証処理部２５と、復号ルート鍵格納部２６とが、配置される。
【００２７】
デバイス鍵格納部２１には、デバイス鍵ＤＫが格納される。
【００２８】
検証鍵格納部２２には、検証鍵Ｋが格納される。
【００２９】
ルート鍵復号部２３は、処理要求部１１により共用情報格納部１３に書き込まれた暗号化ルート鍵ＥＫｒを共用情報格納部１３から読み出し、デバイス鍵格納部２１から読み出したデバイス鍵ＤＫにより復号する。
【００３０】
検証用処理識別子検証子生成部２４および検証処理部２５では、共用情報格納部１３に書き込まれた情報（処理要求部１１により書き込まれた処理識別子ＤＲＭｘ、処理識別子検証子Ｈおよび暗号化ルート鍵ＥＫｒ）と、検証鍵格納部２２から読み出した検証鍵Ｋとを用いて、検証用処理識別子検証子Ｈｄを検証し、ホスト環境１の処理要求部１１からの要求の正当性を判定する。
【００３１】
検証処理部２５は、共用情報格納部１３から読み出した、処理要求部１１により書き込まれた処理識別子検証子Ｈが検証用処理識別子検証子Ｈｄと一致するかを検証し、処理要求部１１からの要求の正当性を判定する。
【００３２】
復号ルート鍵格納部２６には、検証処理部２５により正当性が検証（“ＯＫ”）されたときのみ、復号されたルート鍵Ｋｒが格納される。
【００３３】
次に、図３〜図５に、検証用処理識別子検証子生成部２４および検証処理部２５の具体的な処理ブロックの例を示す。処理識別子検証子Ｈを生成する手法には、いろいろな手法があるので、ここでは、その生成手法に応じた処理ブロックの例を示す。
【００３４】
図３は、処理識別子検証子Ｈとして、メッセージ認証子が生成されているときの例である。この場合、検証用処理識別子検証子生成部２４にメッセージ認証子生成処理部２４ａが設けられ、検証処理部２５にメッセージ認証子検証処理部２５ａが設けられる。
【００３５】
メッセージ認証子を処理識別子検証子Ｈとする場合、検証鍵Ｋをメッセージ認証子鍵とし、ルート鍵Ｋｒおよび処理識別子ＤＲＭｘを認証対象メッセージとするメッセージ認証子が、生成されている。
【００３６】
そこで、メッセージ認証子生成処理部２４ａは、検証鍵Ｋを暗号鍵とし、ルート鍵Ｋｒおよび処理識別子ＤＲＭｘを認証対象メッセージとするメッセージ認証子を生成する。生成されたメッセージ認証子が、検証用処理識別子検証子Ｈｄとして出力される。
【００３７】
メッセージ認証子検証処理部２５ａは、処理識別子検証子ＤＲＭｘと、検証用処理識別子検証子Ｈｄとの一致を正当性の判定基準として、処理要求部１１からの要求の正当性を判定する。
【００３８】
図４は、処理識別子検証子Ｈとして、デジタル署名データが生成されているときの例である。この場合、検証用処理識別子検証子生成部２４にデジタル署名検証子生成処理部２４ｂが設けられ、検証処理部２５にデジタル署名検証子検証処理部２５ｂが設けられる。
【００３９】
デジタル署名データを処理識別子検証子Ｈとする場合、公開鍵暗号方式における秘密鍵によるルート鍵Ｋｒおよび処理識別子ＤＲＭｘを対象とするデジタル署名データが生成されている。
【００４０】
そこで、デジタル署名検証子生成処理部２４ｂは、検証鍵Ｋを上述の秘密鍵に対応する公開鍵として、デジタル署名データである処理識別子検証子Ｈを復号した復号データを生成し、この復号データを検証用処理識別子検証子Ｈｄとして、出力する。
【００４１】
デジタル署名検証子検証処理部２５ｂは、ルート鍵Ｋｒ、処理識別子ＤＲＭｘおよび検証用処理識別子検証子Ｈｄを用いたデジタル署名の検証結果を正当性の判定基準として、処理要求部１１からの要求の正当性を判定する。
【００４２】
図５は、処理識別子検証子Ｈとして、処理識別子ＤＲＭｘに対する暗号データが生成されているときの例である。この場合、検証用処理識別子検証子生成部２４に復号後検証子生成処理部２４ｃが設けられ、検証処理部２５に復号後検証子検証処理部２５ｃが設けられる。
【００４３】
処理識別子ＤＲＭｘに対する暗号データを処理識別子検証子Ｈとする場合、検証鍵Ｋを暗号鍵としルート鍵Ｋｒおよび処理識別子ＤＲＭｘを連結したデータを暗号化した暗号データが生成される。この場合、処理識別子検証子Ｈは、暗号データ（Ｅ（Ｋｒ｜｜ＤＲＭｘ）  ただし、Ｅ：暗号化、｜｜：連結）の処理識別子ＤＲＭｘに対応する部分の部分暗号データである。
【００４４】
そこで、復号後検証子生成処理部２４ｃは、検証鍵にＫより処理識別子検証子Ｈの部分暗号データを復号した復号データを生成し、この復号データを検証用処理識別子検証子Ｈｄとして、出力する。
【００４５】
復号後検証子検証処理部２５ｃは、処理識別子ＤＲＭｘと、検証用処理識別子検証子Ｈｄとの一致を正当性の判定基準として、処理要求部１１からの要求の正当性を判定する。
【００４６】
ところで、セキュリティへの攻撃の１つに、バックアップリストア攻撃がある。バックアップリストア攻撃とは、例えば、古いバージョン番号のファームウェアを攻撃者が保存（バックアップ）しておき、新しいバージョン番号のファームウェアを利用中に、それより古い番号のファームウェアに（攻撃者が攻撃に利用できる）バグが発見された場合に、保存しておいたファームウェアを再適用（リストア）することで、不正な処理を実行しようとする攻撃のことである。
【００４７】
このような攻撃に対する対策の１つとして、バージョン番号を記録するカウンタを、電気ヒューズなど、ユーザ環境で切断可能かつ復元不能な、不揮発性の素子で構成した減算不能カウンタとすることが行われる。減算不能カウンタを用いることにより、バックアップリストア攻撃時に、バージョン番号を示すカウント値が書き戻されることを防止することができる。
【００４８】
そこで、ここでは、処理識別子ＤＲＭｘ、ルート鍵Ｋｒ、および、その時点の減算不能カウンタのカウント値ＣＮＴ０に対して、秘密の検証鍵Ｋを用いた暗号処理を行って予め生成された処理識別子検証子Ｈａｄｄが用いられる例を示す。
【００４９】
この処理識別子検証子Ｈａｄｄの生成は、例えば製造工程においてなされているものとする。生成された処理識別子検証子Ｈａｄｄは、ホスト環境１の検証情報格納部１２に格納されている。処理識別子検証子Ｈａｄｄは、セキュア環境２への処理要求時に、ホスト環境１からセキュア環境２へ渡される。
【００５０】
図６に、このような処理識別子検証子Ｈａｄｄが使用されるときの、検証用処理識別子検証子生成部２４Ａおよび検証処理部２５Ａの例を示す。
【００５１】
検証用処理識別子検証子生成部２４Ａは、検証鍵Ｋを暗号鍵として、処理識別子ＤＲＭｘ、ルート鍵Ｋｒ、および、現時点の減算不能カウンタ２１０のカウント値ＣＮＴに対する暗号処理を行い、検証用処理識別子検証子Ｈｄａｄｄを出力する。
【００５２】
検証処理部２５Ａは、ホスト環境１から渡された処理識別子検証子Ｈａｄｄと、検証用処理識別子検証子生成部２４Ａから出力された検証用処理識別子検証子Ｈｄａｄｄと、を比較し、処理要求部１１からの要求の正当性を検証する。
【００５３】
検証処理部２５Ａは、まず、処理識別子ＤＲＭｘに対する検証を行い、その正当性が確かめられたら、減算不能カウンタ２１０のカウント値に対する検証を行う。
【００５４】
このとき、検証処理部２５Ａは、処理識別子検証子Ｈａｄｄに含まれるカウント値ＣＮＴ０が、検証用処理識別子検証子Ｈｄａｄｄに含まれるカウント値ＣＮＴと一致するかを比較する。
【００５５】
検証処理部２５Ａは、処理識別子検証子Ｈａｄｄ生成時のカウント値ＣＮＴ０と現在のカウント値ＣＮＴが一致したときに、処理要求部１１からの要求が正当であると判定する。
【００５６】
ここで、減算不能カウンタ２１０は、不揮発性かつ加算のみ可能で減算不能なカウンタである。この減算不能カウンタ２１０は、例えば、複数の電気ヒューズを備えており、電気ヒューズの切断状況がカウント値に対応づけられる。一般的には、電気ヒューズの切断が、カウント値の加算を意味する。
【００５７】
例えば、バックアップリストア攻撃された場合、古いバージョン値（そのときの減算不能カウンタ２１０のカウント値ＣＮＴ０が現在のカウント値ＣＮＴよりも小さい）にもとづいて処理識別子検証子Ｈａｄｄが生成されている。したがって、この場合、入力された処理識別子検証子Ｈａｄｄに含まれるカウント値ＣＮＴ０は、現在の減算不能カウンタ２１０のカウント値ＣＮＴと不一致となる。このとき、検証処理部２５Ａは、処理要求部１１からの要求が不正であると判定する。これにより、特定のバージョンの間だけ有効な処理要求を実現することができる。
【００５８】
なお、減算不能カウンタ２１０としては、ファームウェアのバージョン番号に対応づけたカウンタのほかに、バックアップリストア攻撃から保護したいデータの更新回数と対応づけたカウンタや特定のＤＲＭのサポート状態と対応づけたカウンタ（その機器で特定のＤＲＭをサポートしなくなったら、ヒューズを切断する）などを用いることができる。
【００５９】
上述したように、本実施形態では、処理要求部１１から送られた暗号化ルート鍵ＥＫｒと処理識別子ＤＲＭｘと処理識別子検証子Ｈとから、検証用識別子検証子生成処理と検証処理とが実行される。
【００６０】
このとき、本来ならば、処理要求部１１からは、あるＤＲＭ方式の暗号化ルート鍵ＥＫｒと、そのＤＲＭ方式を指定する処理識別子ＤＲＭｘが送られてくるはずである。例えば、ＤＲＭ−Ｂ方式の暗号化ルート鍵ＥＫｒ−Ｂに対しては、処理識別子ＤＲＭ−Ｂが送られてくるはずである。
【００６１】
ところが、鍵の不正取得を狙って、暗号化の階層段数差を利用した攻撃が行われた場合、暗号化ルート鍵ＥＫｒ−Ｂとともに、ＤＲＭ−Ａ方式を指定する処理識別子ＤＲＭ−Ａが送られてくることがある。このとき、本実施形態では、処理識別子検証子Ｈもセキュア環境２へ送る必要がある。ここでは、処理識別子ＤＲＭ−Ａに対する処理識別子検証子Ｈ（Ａ）が送られたとする。
【００６２】
このような攻撃に対して、本実施形態の検証用処理識別子検証子生成部２４は、送られてきた暗号化ルート鍵ＥＫｒ−Ｂを復号したルート鍵Ｋｒ−Ｂと、送られてきた処理識別子ＤＲＭ−Ａとにより、検証用処理識別子検証子Ｈｄを生成し、検証する。
【００６３】
この検証用処理識別子検証子Ｈｄは、ルート鍵Ｋｒ−Ａと処理識別子ＤＲＭ−Ａにより生成された処理識別子検証子Ｈ（Ａ）では検証できない（例えば、異なった値（Ｈｄ≠Ｈ（Ａ））となる。
【００６４】
したがって、検証処理部２５は、処理要求部１１からの要求は不正なものと判定する。これにより、復号されたルート鍵Ｋｒ−Ｂは、復号ルート鍵格納部２６に格納されず、以降、ルート鍵Ｋｒ−Ｂを用いた処理は実行できなくなる。すなわち、この攻撃は失敗に終わる。
【００６５】
このような本実施形態によれば、処理識別子ＤＲＭｘとルート鍵Ｋｒと処理識別子検証子Ｈの対応がとれていない場合は、セキュア環境２への処理要求が不正と判定される。これにより、セキュア環境２での処理が続行されず、鍵の不正取得を防ぐことができる。
【００６６】
なお、上述の処理では、デバイス鍵ＤＫと検証鍵Ｋとを区別しているが、同一であってもよい。この場合、セキュア環境で鍵を不揮発に記憶するために必要な領域を、削減することができる。
【００６７】
また、メッセージ認証子およびデジタル署名を用いた検証処理においては、暗号化ルート鍵ＥＫｒの復号結果であるルート鍵Ｋｒを対象に、検証用識別子検証子生成処理や検証処理を実施しているが、検証用識別子の生成では暗号化ルート鍵を対象とし、検証用識別子検証子生成処理や検証処理では暗号化ルート鍵を入力として用いてもよい。
【００６８】
この場合、ルート鍵の復号に先立って処理要求の正しさを確認することができるため、攻撃者による処理要求があった場合に、暗号化ルート鍵の復号処理のコストを削減することができる。
【００６９】
また、機器に実装されるセキュリティ処理としては、著作権保護に関する処理を主として記述しているが、機器の安全性に関わるその他の処理、例えばブートシーケンスやバージョンアップ時のファームウェアの復号・検証処理や、ファイルの暗号・復号処理なども考えられる。これにより、機器の安全性に関わる処理とＤＲＭ方式との段数差を利用した攻撃も防止することができる。
【００７０】
（第２の実施形態）
図７は、第２の実施形態の暗号処理装置の構成の例を示すブロック図である。
【００７１】
本実施形態の暗号処理装置は、第１の実施形態の暗号処理装置に、セキュア環境２に配置された、基本処理ユニット格納部２７と、処理ポリシ展開部２８と、を追加したものである。
【００７２】
基本処理ユニット格納部２７には、セキュリティプロセッサ２００が実行できる、様々な暗号処理アルゴリズムに対する処理ユニットなどの、基本処理ユニットが格納されている。
【００７３】
セキュア環境２への処理要求時、ホスト環境１からセキュア環境２へ、処理ポリシが渡される。この処理ポリシには、それぞれのＤＲＭに特有の、コンテンツ復号の前処理に使用する基本処理ユニットの種別や後処理に使用する基本処理ユニットの種別が記載され、さらには鍵の階層構造に応じた暗号結果の出力先の制御情報などが、記載されている。
【００７４】
処理ポリシ展開部２８は、検証処理部２５により処理要求部１１からの要求の正当性が検証されたときのみ、基本処理ユニット格納部２７を呼び出し、ホスト環境１から渡された処理ポリシを、指定された基本処理ユニットを組み合わせた処理シーケンスに展開する。
【００７５】
これにより、
セキュリティプロセッサ２００は、検証処理部２５により処理要求部１１からの要求の正当性が検証されたときのみ、ホスト環境１から渡された処理ポリシにもとづく処理シーケンスに従った処理を実行する。
【００７６】
このような本実施形態によれば、基本処理ユニット格納部２７には、基本処理ユニットのみを格納すればよいので、基本処理ユニット格納部２７に使用するメモリの容量を小さくすることができる。これにより、セキュア環境２に割り当てられるリソースが少なくても、そのリソースを効率的に使用することができる。
【００７７】
（第３の実施形態）
図５は、第３の実施形態の暗号処理装置の構成の例を示すブロック図である。
【００７８】
図５に示す暗号処理装置は、ホスト環境１およびセキュア環境２の構成自体は第２の実施形態と同じであるが、コンテンツを配信するサーバ１０００との間で、検証鍵Ｋおよび処理識別子ＤＲＭｘを共有している点が異なる。
【００７９】
本実施形態では、サーバ１０００から、検証鍵Ｋおよび処理識別子検証子Ｈが送信されてくる。すなわち、サーバ１０００から検証鍵Ｋおよび処理識別子検証子Ｈが送信されてくるまで、本実施形態の暗号処理装置は、処理を実行することができない。
【００８０】
このような本実施形態によれば、サーバ１０００は、本実施形態の暗号処理装置の開始を制御することができる。これにより、サーバ１０００は、本実施形態の暗号処理装置を搭載する機器のサービス開始のタイミングを制御することができる。
【００８１】
以上説明した少なくとも１つの実施形態の暗号処理装置によれば、暗号鍵の階層差を利用した鍵の不正取得を防ぐことができる。
【００８２】
また、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８３】
１  ホスト環境
２  セキュア環境
１１  処理要求部
１２  検証情報格納部
１３  共用情報格納部
２１  デバイス鍵格納部
２２  検証鍵格納部
２３  ルート鍵復号部
２４、２４Ａ  検証用処理識別子検証子生成部
２４ａ  メッセージ認証子生成処理部
２４ｂ  デジタル署名検証子生成処理部
２４ｃ  復号後検証子生成処理部
２５、２５Ａ  検証処理部
２５ａ  メッセージ認証子検証処理部
２５ｂ  デジタル署名検証子検証処理部
２５ｃ  復号後検証子検証処理部
２６  復号ルート鍵格納部
２７  基本処理ユニット格納部
２８  処理ポリシ展開部
１００  メインプロセッサ
２００  セキュリティプロセッサ
２１０  減算不能カウンタ
１０００  サーバ
【図１】
2013197810.tif 000003
【図２】
2013197810.tif 000004
【図３】
2013197810.tif 000005
【図４】
2013197810.tif 000006
【図５】
2013197810.tif 000007
【図６】
2013197810.tif 000008
【図７】
2013197810.tif 000009
【図８】
2013197810.tif 000010