(57)【要約】【課題】コンテンツ保護用鍵の不正取得によってもコンテンツの不正使用を充分に防ぐこと。【解決手段】暗号化ブロック暗号鍵セットと公開鍵と暗号化秘密鍵とのキーセットを記憶する記憶部と、キーセットの暗号化秘密鍵をデバイス固有の識別子で復号して、復号秘密鍵を生成する秘密鍵生成部と、キーセットの暗号化ブロック暗号鍵セットを復号秘密鍵により復号して、復号ブロック暗号鍵セットを生成するブロック暗号鍵セット生成部と、復号ブロック暗号鍵セットを用いて、コンテンツの暗号化および復号を行うブロック暗号化および復号部と、を備える。【選択図】  図１
2019145928.tif 000002
【特許請求の範囲】
【請求項１】
暗号化ブロック暗号鍵セットと公開鍵と暗号化秘密鍵とのキーセットを記憶する記憶手段と、
前記キーセットの前記暗号化秘密鍵を、コンテンツ保護装置を組み込んだデバイス固有の識別子で復号して、復号秘密鍵を生成する秘密鍵生成手段と、
前記キーセットの前記暗号化ブロック暗号鍵セットを前記復号秘密鍵により復号して、復号ブロック暗号鍵セットを生成するブロック暗号鍵セット生成手段と、
前記復号ブロック暗号鍵セットを用いて、コンテンツの暗号化および復号を行うブロック暗号化および復号手段と、
を備えるコンテンツ保護装置。
【請求項２】
前記秘密鍵と前記デバイス固有の識別子とを用いて、前記暗号化ブロック暗号鍵セットと前記公開鍵と前記暗号化秘密鍵との前記キーセットを生成するキーセット生成手段をさらに備える請求項１に記載のコンテンツ保護装置。
【請求項３】
前記記憶手段に記憶された前記キーセットは、秘密鍵で署名されており、
署名された前記キーセットについて公開鍵で署名の検証を行う検証手段をさらに備え、
前記秘密鍵生成手段は、前記検証手段で検証された暗号化秘密鍵を使用し、
前記ブロック暗号鍵セット生成手段は、前記検証手段で検証された暗号化ブロック暗号鍵セットを使用する請求項１に記載のコンテンツ保護装置。
【請求項４】
前記秘密鍵と前記デバイス固有の識別子とを用いて、前記暗号化ブロック暗号鍵セットと前記公開鍵と前記暗号化秘密鍵との前記キーセットを生成して、署名をし、署名された前記キーセットを生成するキーセット生成手段をさらに備える請求項３に記載のコンテンツ保護装置。
【請求項５】
暗号化および復号に使用される前記公開鍵と前記秘密鍵とのペアはＲＳＡに従って生成されたペアであり、署名に使用される前記公開鍵と前記秘密鍵とのペアはＲＳＡまたは楕円曲線を用いるＥＣＤＳＡ方式に従って生成されたペアである請求項１乃至４のいずれか１項に記載のコンテンツ保護装置。
【請求項６】
前記記憶手段は、ノーマル実行環境である前記コンテンツ保護装置の非機密部分とハードウェア的に分離された、前記コンテンツ保護装置のセキュア実行環境である機密部分に含まれる請求項１乃至５のいずれか１項に記載のコンテンツ保護装置。
【請求項７】
前記ブロック暗号化および復号手段は、さらに前記コンテンツのブロック番号および前記コンテンツを識別するコンテンツ識別子を用いて、前記コンテンツの暗号化および復号を行う請求項１乃至６のいずれか１項に記載のコンテンツ保護装置。
【請求項８】
前記デバイス固有の識別子を前記コンテンツ保護装置が組み込まれたデバイスから取得する第１インタフェースと、
前記ブロック暗号化および復号手段で使用する、前記コンテンツのブロック番号および前記コンテンツを識別するコンテンツ識別子を前記デバイスのコンテンツ保存アプリケーションから取得する第２インタフェースと、
暗号化前の前記コンテンツを取得して前記ブロック暗号化および復号手段に入力し、前記ブロック暗号化および復号手段から取得した復号された前記コンテンツを出力する第３インタフェースと、
前記ブロック暗号化および復号手段でブロック暗号化された前記コンテンツをコンテンツ格納部に格納し、前記コンテンツ格納部からブロック暗号化された前記コンテンツを読出して前記ブロック暗号化および復号手段に入力する第４インタフェースと、
をさらに備える請求項１乃至７のいずれか１項に記載のコンテンツ保護装置。
【請求項９】
請求項１乃至８のいずれか１項に記載のコンテンツ保護装置と、
前記コンテンツ保護装置に提供する前記デバイス固有の識別子を機密に保持する保持手段と、
前記コンテンツ保護装置により暗号化されたコンテンツを格納する格納手段と、
前記コンテンツのブロック番号および前記コンテンツを識別するコンテンツ識別子を前記コンテンツ保護装置に提供し、暗号化前の前記コンテンツを取得して前記コンテンツ保護装置に提供し、復号された前記コンテンツを前記コンテンツ保護装置から取得して出力するコンテンツ保存アプリケーションと、
を備えるデバイス。
【請求項１０】
請求項９に記載のデバイスが組み込まれて、
前記コンテンツを所定の通信プロトコルに従って受信して、前記デバイスにより前記コンテンツを暗号化した暗号化コンテンツを格納し、
前記デバイスにより前記暗号化コンテンツを復号した復号コンテンツを、前記所定の通信プロトコルに従って送信する情報処理装置。
【請求項１１】
記憶手段に記憶された、暗号化ブロック暗号鍵セットと公開鍵と暗号化秘密鍵とのキーセットの前記暗号化秘密鍵を、コンテンツ保護装置を組み込んだデバイス固有の識別子で復号して、復号秘密鍵を生成する秘密鍵生成ステップと、
前記キーセットの前記暗号化ブロック暗号鍵セットを前記復号秘密鍵により復号して、復号ブロック暗号鍵セットを生成するブロック暗号鍵セット生成ステップと、
前記復号ブロック暗号鍵セットを用いて、コンテンツの暗号化を行って暗号化コンテンツを生成するブロック暗号化ステップと、
前記復号ブロック暗号鍵セットを用いて、前記暗号化コンテンツの復号を行って復号コンテンツを生成するブロック復号ステップと、
を含むコンテンツ保護方法。
【請求項１２】
記憶手段に記憶された、暗号化ブロック暗号鍵セットと公開鍵と暗号化秘密鍵とのキーセットの前記暗号化秘密鍵を、コンテンツ保護装置を組み込んだデバイス固有の識別子で復号して、復号秘密鍵を生成する秘密鍵生成ステップと、
前記キーセットの前記暗号化ブロック暗号鍵セットを前記復号秘密鍵により復号して、復号ブロック暗号鍵セットを生成するブロック暗号鍵セット生成ステップと、
前記復号ブロック暗号鍵セットを用いて、コンテンツの暗号化を行って暗号化コンテンツを生成するブロック暗号化ステップと、
前記復号ブロック暗号鍵セットを用いて、前記暗号化コンテンツの復号を行って復号コンテンツを生成するブロック復号ステップと、
をコンピュータに実行させるコンテンツ保護プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテンツの保護技術に関する。
【背景技術】
【０００２】
上記技術分野において、特許文献１には、コンテンツの配送においてブロック暗号化およびブロック復号する技術が開示されている。特許文献２には、プレイヤーのシリアンルナンバーを識別するデバイスＩＤからキーセットが導出される技術が開示されている。特許文献３には、不揮発メモリ内に公開鍵と秘密鍵と証明書とを格納してＲＳＡ復号を行う技術が開示されています。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表平１０−５１２０７４号公報
【特許文献２】特開２０１１−０８６３１３号公報
【特許文献３】特開２００７−０４３３５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記文献に記載の技術では、コンテンツ保護用鍵の不正取得によるコンテンツの不正使用を充分に防ぐことができなかった。
【０００５】
本発明の目的は、上述の課題を解決する技術を提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明に係るコンテンツ保護装置は、
暗号化ブロック暗号鍵セットと公開鍵と暗号化秘密鍵とのキーセットを記憶する記憶手段と、
前記キーセットの前記暗号化秘密鍵を、コンテンツ保護装置を組み込んだデバイス固有の識別子で復号して、復号秘密鍵を生成する秘密鍵生成手段と、
前記キーセットの前記暗号化ブロック暗号鍵セットを前記復号秘密鍵により復号して、復号ブロック暗号鍵セットを生成するブロック暗号鍵セット生成手段と、
前記復号ブロック暗号鍵セットを用いて、コンテンツの暗号化および復号を行うブロック暗号化および復号手段と、
を備える。
【０００７】
上記目的を達成するため、本発明に係るデバイスは、
上記コンテンツ保護装置と、
前記コンテンツ保護装置に提供する前記デバイス固有の識別子を機密に保持する保持手段と、
前記コンテンツ保護装置により暗号化されたコンテンツを格納する格納手段と、
前記コンテンツのブロック番号および前記コンテンツを識別するコンテンツ識別子を前記コンテンツ保護装置に提供し、暗号化前の前記コンテンツを取得して前記コンテンツ保護装置に提供し、復号された前記コンテンツを前記コンテンツ保護装置から取得して出力するコンテンツ保存アプリケーションと、
を備える。
【０００８】
上記目的を達成するため、本発明に係る情報処理装置は、
上記デバイスが組み込まれて、
前記コンテンツを所定の通信プロトコルに従って受信して、前記デバイスにより前記コンテンツを暗号化した暗号化コンテンツを格納し、
前記デバイスにより前記暗号化コンテンツを復号した復号コンテンツを、前記所定の通信プロトコルに従って送信する。
【０００９】
上記目的を達成するため、本発明に係るコンテンツ保護方法は、
記憶手段に記憶された、暗号化ブロック暗号鍵セットと公開鍵と暗号化秘密鍵とのキーセットの前記暗号化秘密鍵を、コンテンツ保護装置を組み込んだデバイス固有の識別子で復号して、復号秘密鍵を生成する秘密鍵生成ステップと、
前記キーセットの前記暗号化ブロック暗号鍵セットを前記復号秘密鍵により復号して、復号ブロック暗号鍵セットを生成するブロック暗号鍵セット生成ステップと、
前記復号ブロック暗号鍵セットを用いて、コンテンツの暗号化を行って暗号化コンテンツを生成するブロック暗号化ステップと、
前記復号ブロック暗号鍵セットを用いて、前記暗号化コンテンツの復号を行って復号コンテンツを生成するブロック復号ステップと、
を含む。
【００１０】
上記目的を達成するため、本発明に係るコンテンツ保護プログラムは、
記憶手段に記憶された、暗号化ブロック暗号鍵セットと公開鍵と暗号化秘密鍵とのキーセットの前記暗号化秘密鍵を、コンテンツ保護装置を組み込んだデバイス固有の識別子で復号して、復号秘密鍵を生成する秘密鍵生成ステップと、
前記キーセットの前記暗号化ブロック暗号鍵セットを前記復号秘密鍵により復号して、復号ブロック暗号鍵セットを生成するブロック暗号鍵セット生成ステップと、
前記復号ブロック暗号鍵セットを用いて、コンテンツの暗号化を行って暗号化コンテンツを生成するブロック暗号化ステップと、
前記復号ブロック暗号鍵セットを用いて、前記暗号化コンテンツの復号を行って復号コンテンツを生成するブロック復号ステップと、
をコンピュータに実行させる。
【発明の効果】
【００１１】
本発明によれば、コンテンツ保護用鍵の不正取得によってもコンテンツの不正使用を充分に防ぐことができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１実施形態に係るコンテンツ保護装置の構成を示すブロック図である。
【図２Ａ】本発明の第２実施形態に係るコンテンツ保護部を組み込んだデバイスの構成を示すブロック図である。
【図２Ｂ】本発明の第２実施形態に係るコンテンツ保護部の記憶部に格納されるキーセットの構成を示す図である。
【図３Ａ】本発明の第２実施形態に係るコンテンツ保護部を組み込んだデバイスにおける暗号化コンテンツの格納処理を示すブロック図である。
【図３Ｂ】本発明の第２実施形態に係るコンテンツ保護部を組み込んだデバイスにおける復号コンテンツの出力処理を示すブロック図である。
【図４】本実施形態に係るコンテンツ保護部を組み込んだデバイスで、キーセットを格納する記憶部を機密部分に配置した情報処理装置のソフトウェア階層を示す図である。
【図５】本発明の第２実施形態に係るコンテンツ保護部を組み込んだデバイス、あるいは、コンテンツ保護部のキーセットを格納する記憶部を機密部分に配置した情報処理装置を含むシステムの構成を示すブロック図である。
【図６】本発明の第２実施形態に係る暗号化処理または復号処理のマクロな動作手順を示すシーケンス図である。
【図７Ａ】本発明の第２実施形態に係る暗号化処理または復号処理における初期化処理(Ｓ６０１：Initialization Sequence)の手順を示すシーケンス図である。
【図７Ｂ】本発明の第２実施形態に係る暗号化処理または復号処理における鍵準備処理(Ｓ６０３：Preparation Sequence)の手順を示すシーケンス図である。
【図７Ｃ】本発明の第２実施形態に係る実行処理(Operation Sequence)における暗号化処理(Ｓ６０５：Encrypt data)の手順を示すシーケンス図である。
【図７Ｄ】本発明の第２実施形態に係る実行処理(Operation Sequence)における復号処理(Ｓ６０７：Decrypt data)の手順を示すシーケンス図である。
【図７Ｅ】本発明の第２実施形態に係る暗号化処理または復号処理における終了処理(Ｓ６０９：Finalization Sequence)の手順を示すシーケンス図である。
【図８】本発明の第２実施形態に係るコンテンツ保護部を組み込んだデバイスあるいはデバイスを有する情報処理装置のハードウェア構成を示すブロック図である。
【図９Ａ】本発明の第２実施形態に係るコンテンツ保護部を組み込んだデバイスの処理手順を示すフローチャートである。
【図９Ｂ】本発明の第２実施形態に係る鍵準備処理（Ｓ９０５）の手順を示すフローチャートである。
【図１０】本発明の第３実施形態に係るコンテンツ保護部を組み込んだデバイスの構成を示すブロック図である。
【図１１】本発明の第３実施形態に係るキーセット生成処理のマクロな動作手順を示すシーケンス図である。
【図１２Ａ】本発明の第３実施形態に係る実行処理(Operation Sequence)におけるキーセット生成処理(Ｓ１１０５：Build Key Set)の手順を示すシーケンス図である。
【図１２Ｂ】本発明の第３実施形態に係る実行処理(Operation Sequence)における他のキーセット生成処理(Ｓ１１０６：Build Key Set)の手順を示すシーケンス図である。
【図１３】本発明の第３実施形態に係るコンテンツ保護部を組み込んだデバイスあるいはデバイスを有する情報処理装置のハードウェア構成を示すブロック図である。
【図１４】本発明の第３実施形態に係るコンテンツ保護部を組み込んだデバイスの処理手順を示すフローチャートである。
【図１５】本発明の第４実施形態に係る記憶媒体を経由してコンテンツ交換を行なうシステムの機密保護機能を説明する図である。
【発明を実施するための形態】
【００１３】
以下に、図面を参照して、本発明の実施の形態について例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素は単なる例示であり、本発明の技術範囲をそれらのみに限定する趣旨のものではない。
【００１４】
［第１実施形態］
本発明の第１実施形態としてのコンテンツ保護装置１００について、図１を用いて説明する。コンテンツ保護装置１００は、不正使用できないようなコンテンツの暗号化および復号を行う装置である。
【００１５】
図１に示すように、コンテンツ保護装置１００は、記憶部１０１と、秘密鍵生成部１０２と、ブロック暗号鍵セット生成部１０３と、ブロック暗号化および復号部１０４と、を含む。記憶部１０１は、暗号化ブロック暗号鍵セットと公開鍵と暗号化秘密鍵とのキーセット１１１を記憶する。秘密鍵生成部１０２は、キーセット１１１の暗号化秘密鍵を、コンテンツ保護装置１００を組み込んだデバイス固有の識別子１１０で復号して、復号秘密鍵を生成する。ブロック暗号鍵セット生成部１０３は、キーセット１１１の暗号化ブロック暗号鍵セットを復号秘密鍵により復号して、復号ブロック暗号鍵セットを生成する。ブロック暗号化および復号部１０４は、復号ブロック暗号鍵セットを用いて、コンテンツの暗号化および復号を行う。
【００１６】
また、キーセット１１１が署名されて記憶されている場合は、図１の破線で示した構成要素が付加される。すなわち、記憶部１０１に記憶されたキーセット１１１は、秘密鍵で署名されており（１１２）、署名されたキーセット（１１１＋１１２）について公開鍵で署名の検証を行う検証部１０５をさらに備え、秘密鍵生成部１０２は、検証部１０５で検証された暗号化秘密鍵を使用し、ブロック暗号鍵セット生成部１０３は、検証部１０５で検証された暗号化ブロック暗号鍵セットを使用する。
【００１７】
本実施形態によれば、コンテンツ保護用鍵をデバイス固有の識別子での復号を行うので、コンテンツ保護用鍵の不正取得によってもコンテンツの不正使用を充分に防ぐことができる。また、署名されたコンテンツ保護用鍵を保持して使用時に検証するので、コンテンツの不正使用をさらに防御することができる。
【００１８】
［第２実施形態］
次に、本発明の第２実施形態に係るコンテンツ保護部を組み込んだデバイスについて説明する。本実施形態においては、第１実施形態のコンテンツ保護装置は、デバイスに組み込まれたコンテンツ保護部と表現するが、異なるものではない。以下、鍵ペアを用いる暗号方式として、ＲＳＡを用いた署名検証や暗号化復号について説明するが、例えば、署名検証に楕円曲線を用いるＥＣＤＳＡ方式なども適用できる。
【００１９】
本実施形態に係るコンテンツ保護部において、暗号化ブロック暗号鍵セットとＲＳＡ公開鍵と暗号化ＲＳＡ秘密鍵とのＲＳＡ署名されたキーセットを記憶する記憶部は、ノーマル実行環境であるコンテンツ保護部の非機密部分とハードウェア的に分離された、コンテンツ保護部のセキュア実行環境である機密部分に含まれている。また、本実施形態に係るコンテンツ保護部は、デバイス固有の識別子をコンテンツ保護部が組み込まれたデバイスから取得するインタフェースを備える。また、コンテンツ保護部は、ブロック暗号化および復号部で使用する、コンテンツのブロック番号およびコンテンツを識別するコンテンツ識別子をデバイスのコンテンツ保存アプリケーションから取得するインタフェースを備える。また、コンテンツ保護部は、暗号化前のコンテンツを取得してブロック暗号化および復号部に入力し、ブロック暗号化および復号部から取得した復号されたコンテンツを出力するインタフェースを備える。また、コンテンツ保護部は、ブロック暗号化および復号部でブロック暗号化されたコンテンツをコンテンツ格納部に格納し、コンテンツ格納部からブロック暗号化されたコンテンツを読出してブロック暗号化および復号部に入力するインタフェースを備える。
【００２０】
《コンテンツ保護部を組み込んだデバイスの構成》
図２Ａは、本実施形態に係るコンテンツ保護部２２１を組み込んだデバイス２００の構成を示すブロック図である。
【００２１】
デバイス２００は、アプリケーション２１１と、暗号化コンテンツ格納部２１２と、デバイス固有の識別子（ＩＤ）の記憶部２１３と、を備える。暗号化コンテンツ格納部２１２には、ブロック暗号化された暗号化コンテンツ２０２が格納される。また、デバイス固有の識別子（ＩＤ）としては、デバイス２００の製造時に不揮発に記憶された製造番号などが使用されてよい。
【００２２】
アプリケーション２１１は、本実施形態のコンテンツ保護部２２１として機能するミドルウェア(Middleware)を含み、コンテンツ保護部２２１のブロック暗号化および復号部２４１に、コンテンツを分割したブロックに固有のブロック番号２２２およびコンテンツを識別するコンテンツＩＤを提供する。
【００２３】
コンテンツ保護部２２１として機能するミドルウェア(Middleware)は、コンテンツ保護処理部２３１と、キーセット記憶部２３２と、を有する。キーセット記憶部２３２は、少なくとも公開鍵と秘密鍵とを含むキーセット２３３を記憶する。
【００２４】
コンテンツ保護処理部２３１は、ブロック暗号化および復号部２４１と、キーセットのＲＳＡ署名検証部２４２と、記憶部２１３のデバイス固有の識別子によるＲＳＡ秘密鍵生成部２４３と、復号ＲＳＡ秘密鍵によるブロック暗号鍵セット生成部２４４と、を含む。ブロック暗号化および復号部２４１は、ブロックに固有のブロック番号２２２およびコンテンツを識別するコンテンツＩＤを用いて、復号されたブロック暗号鍵セットにより、入力された入力コンテンツ２０１をブロック暗号化して、暗号化コンテンツ２０２を生成する。
【００２５】
ここで、ブロック暗号化および復号部２４１で使用される復号されたブロック暗号鍵セットは、次の手順で生成される。
(1)キーセット記憶部２３２に記憶された、暗号化ブロック暗号鍵セットとＲＳＡ公開鍵と暗号化ＲＳＡ秘密鍵とのＲＳＡ署名されたキーセット２３３を、ＲＳＡ署名検証部２４２で検証する。
(2)検証されたキーセットの暗号化ＲＳＡ秘密鍵を、ＲＳＡ秘密鍵生成部２４３において記憶部２１３のデバイス固有の識別子で復号して、復号ＲＳＡ秘密鍵を生成する。
(3)検証されたキーセットの暗号化ブロック暗号鍵セットを、ブロック暗号鍵セット生成部２４４において復号ＲＳＡ秘密鍵により復号して、復号ブロック暗号鍵セットを生成する。
【００２６】
なお、本実施形態においては、暗号化と復号化は全く同じ構造になるので、プログラムで実装するのが容易である点、暗号化・復号化の際に使う「カウンタ」をContent IDとブロック番号から生成し、ブロックを任意の順番で暗号化・復号化することができることなどから、カウンタモード（CTRモード：CounTeR mode）を使用する。CTRモードは、１ずつ増加していくカウンタを暗号化して鍵ストリームを作りだすブロック暗号方式であり、カウンタの初期値は暗号化のたびにInitial Vector とContent ID、inputCtrとを元にして作る。しかしながら、使用するブロック暗号は、CTRモードに限定されない。
【００２７】
このように、ＲＳＡ検証およびデバイス固有の識別子で復号したコンテンツ保護用鍵をコンテンツの暗号化および復号に使用するので、コンテンツ保護用鍵の不正取得によってもコンテンツの不正使用を充分に防ぐデバイスまたはデバイスが組み込まれた情報処理装置を提供することができる。
【００２８】
（キーセットの構成）
図２Ｂは、本実施形態に係るコンテンツ保護部２２１の記憶部２３２に格納されるキーセット２３３の構成を示す図である。
【００２９】
コンテンツ保護部２２１の記憶部２３２に格納されたキーセット２３３は、キーセットのヘッダ２３４と、暗号化ブロック暗号鍵セット２３５と、暗号化ＲＳＡ秘密鍵２３６と、ＲＳＡ公開鍵２３７と、キーセットのＲＳＡ署名２３８と、を含む。
【００３０】
（暗号化コンテンツの格納処理）
図３Ａは、本実施形態に係るコンテンツ保護部２２１を組み込んだデバイス２００における暗号化コンテンツの格納処理を示すブロック図である。なお、図３Ａにおいて、図２と同様の構成要素には同じ参照番号を付して、重複する説明は省略する。
【００３１】
暗号化コンテンツの格納処理においては、暗号されてない入力コンテンツ２０１がブロック暗号化および復号部２４１でブロック暗号化され、ブロック暗号化コンテンツ３１２が格納部２１２に暗号化コンテンツ２０２として保存される。ブロック暗号化および復号部２４１でのブロック暗号化には、コンテンツを分割したブロック番号２２２およびコンテンツ管理ＩＤ２２３と、復号ブロック暗号鍵セットとが使用される。かかる復号ブロック暗号鍵セットは、ＲＳＡ署名により検証されたキーセットの暗号化ＲＳＡ秘密鍵２３６を、記憶部２１３のデバイス固有の識別子で復号して生成した復号ＲＳＡ秘密鍵により、検証されたキーセットの暗号化ブロック暗号鍵セット２３５を復号して生成される。
【００３２】
（復号コンテンツの読出処理）
図３Ｂは、本実施形態に係るコンテンツ保護部２２１を組み込んだデバイス２００における復号コンテンツの出力処理を示すブロック図である。なお、図３Ｂにおいて、図２または図３Ａと同様の構成要素には同じ参照番号を付して、重複する説明は省略する。
【００３３】
復号コンテンツの出力処理においては、暗号化コンテンツ２０２がブロック暗号化および復号部２４１でブロック復号され、復号コンテンツ３２２が出力される。ブロック暗号化および復号部２４１でのブロック復号には、コンテンツを分割したブロック番号２２２およびコンテンツ管理ＩＤ２２３と、復号ブロック暗号鍵セットとが使用される。かかる復号ブロック暗号鍵セットは、ＲＳＡ署名により検証されたキーセットの暗号化ＲＳＡ秘密鍵２３６を、記憶部２１３のデバイス固有の識別子で復号して生成した復号ＲＳＡ秘密鍵により、検証されたキーセットの暗号化ブロック暗号鍵セット２３５を復号して生成される。
【００３４】
《キーセットを格納する記憶部を機密部分に配置するソフトウェア階層》
図４は、本実施形態に係るコンテンツ保護部を組み込んだデバイスで、キーセットを格納する記憶部を機密部分に配置した情報処理装置４００のソフトウェア階層を示す図である。本実施形態のキーセットを格納する記憶部は、ハードウェア的に分離されたSecure World４２５内に、Middleware's Secure Data Part４２６として確保される。
【００３５】
情報処理装置４００のソフトウェア階層は、Application層４０１および４０２と、Middlewareとして提供されるHDCP SDK層４１０と、Middlewareとして提供される本実施形態の暗号化／復号層Middleware４２０と、ＯＳとの接続層４３１、４３２および４３３と、ＯＳ層４４１および４４２と、ファームウェア(Firmware)層４６０と、ハードウェア層（４５０、４５１および４５２）とを有する。
【００３６】
（Application層）
User Application４０１は、暗復号化処理とセキュアに扱うべきデータを読み書きの機能が必要なユーザが独自に開発するアプリケーションを示す。一方、User Application４０２は、HDCP SDK４１０のＡＰＩを使用してHDCP対向機とのＡＫＥ(Authentication and Key Exchange)開始の指示や、検出したトポロジーチェンジに対する具体的な動作の制御を行うアプリケーションを示す。ソース機器の場合は、ＡＫＥの完了後、送信するストリーミングデータを生成してHDCP  SDK４１０に入力する。一方、シンク機器の場合、ＡＫＥ完了後、HDCP SDK４１０が復号化したストリーミングデータの描画処理を行う。なお、Applicationは上記例に限定されない。種々の暗号化や復号に関連するハードウェアを利用するApplicationが接続可能である。
【００３７】
（HDCP SDK層：所定の通信プロトコルのMiddleware）
HDCP SDK４１０は、例えば、HDCP 2.2 の仕様（HDCP Specification Rev. 2.2 Interface Independent Adaptation）に基づき、以下の機能を提供する。
(1) ＤＣＰ(Digital Content Protection, LLC) が発行するデバイス鍵を使用して、対向となるHDCP機器とＡＫＥを実行してセッションキーを共有する。
(2) セッションキーを使用したストリーミングデータの暗号化/復号化を行なう。
(3) 接続されているHDCP機器のトポロジーチェンジの検出と通知を行なう。
(4) HDCPソース機器の場合、ＳＲＭ(System Renewability Message)リストに基づいた無効機器の検出を行なう。
【００３８】
HDCP SDK４１０のSecure Data Partは、ＡＫＥのシーケンスで扱うデータのうち、HDCPの仕様によりセキュアに扱うことが定められているデータを扱う箇所であり、例えば、セッションキーやDCPが発行するデバイス鍵などを保持する。一方、HDCP SDK４１０のNonSecure Data Partは、ＡＫＥのシーケンスで扱うデータのうち、ネットワーク上に非暗号データとして流れるなど、HDCPの仕様によりセキュアに扱うことが定められていないデータを扱う箇所であり、例えば、DCPが発行する公開鍵やHDCP機器の機能を示すフラグなどを保持する。また、HDCP SDK４１０のCommunication Partは、ＡＫＥを行う際に使用するネットワーク通信セッションの確立や、ＡＫＥ完了後、セッションキーにより暗復号化されたストリーミングデータのやり取りを行う。
【００３９】
本実施形態において、HDCP SDK４１０は、ＡＫＥのシーケンスで扱うデータのうち、HDCPの仕様によりセキュアに扱うことが定められているデータ以外を扱う箇所であり、例えば、セッションキーやDCPが発行するデバイス鍵などを保持するためのSecure Data Partを有さない。Secure Data Partは、ハードウェア的に分離されたSecure World４２５内に、Middleware's Secure Data Part４２６として確保される。
【００４０】
（暗号化／復号層のMiddleware）
暗号化／復号層Middleware４０１は、NonSecure OS上のNonSecure OS Part(NonSecure World)４２４と、Secure OS上のSecure OS Part(Secure World)４２５と、に分離されている。
【００４１】
NonSecure World４２４は、User Application４０１または４０２から直接、あるいは、HDCP SDK層４１０を介してインタフェースするPublic API４２１と、ハードウェアとの接続を管理するPrivate Layer４２２と、Secure World４２５とのハードウェア的に分離されたデータ転送を行なうためのPorting Layer４２７と、を有する。
【００４２】
一方、Secure World４２５は、NonSecure World４２４とのハードウェア的に分離されたデータ転送を行なうためのPorting Layer４２８と、Secure World４２５内でハードウェアとの接続を管理するPrivate Layer４２２と、Secure World４２５内でハードウェア層４５１および４５２を各々制御するPorting Layer４２３と、Middleware's Secure Data Part４２６と、を有する。
【００４３】
なお、Porting Layer４２７とPorting Layer４２８との間のデータ転送４２９は、ファームウェア(Firmware)層４６０まで戻ることによって、ハードウェア的に分離される。
【００４４】
（ＯＳとの接続層）
ＯＳとの接続層は、新たに、Secure World４２５をSecureＯＳ層４４２と接続するSoC depended Secure Middleware for Secure OS４３３、を有する。
【００４５】
（ＯＳ層）
ＯＳ層は、NonSecure World４２４に対応するNonSecure OS driverおよびNonSecure OS４４１と、Secure World４２５に対応するSecure OS driverおよびSecure OS４４２と、を有する。
【００４６】
（ファームウェア層）
ファームウェア層４６０は、NonSecure World４２４とSecure World４２５とをハードウェア的に分離する。
【００４７】
（ハードウェア層）
ハードウェア層は、SoC４５０と、各ハードウェア４５１あるいは４５２と、を有する。図４においては、Secure Storage Feature４５１とHardware Accelerated４５２とを示すが、これらに限定されない。他の機密保護の暗号化や復号に関連する機能を有するハードウェアが接続可能である。
【００４８】
（Secure World）
Secure WorldとHDCP SDK４１０を組み合わせた場合、HDCP SDK４１０のSecure Data PartがSecure OS内に入り、NonSecure OS上で動作するHDCP SDKは、Secure Data Interfaceを使用してSecure OS内で動作するSecure Data Partとやり取りを行うことになる。
【００４９】
《デバイスあるいは情報処理装置を含むシステム》
図５は、本発明の第２実施形態に係るコンテンツ保護部２２１を組み込んだデバイス、あるいは、コンテンツ保護部２２１のキーセットを格納する記憶部を、非機密部分とハードウェア的に分離された機密部分に配置した情報処理装置を含むシステム５００の構成を示すブロック図である。
【００５０】
図５のシステム５００には、ネットワーク５７０により接続された、車内ネットワーク５１０と、宅内ネットワーク５２０と、ＳＳＬ(Secure Sockets Layer)ネットワーク５３０と、センサネットワーク５４０と、クラウドサーバ５５０と、コンテンツサーバ５６０と、が図示されている。
【００５１】
車内ネットワーク５１０は、本例ではＭＯＳＴ(Media Oriented Systems Transport)による車載器やマルチメディア機器のネットワークを形成し、クラウドサーバ５５０に対してはＩｏＴ(Internet of Things)の情報収集機器として、コンテンツサーバ５６０に対してはコンテンツ配信のシンク機器として接続される。また、同様に、宅内ネットワーク５２０は、本例ではＤＴＣＰ−ＩＰ(Digital Transmission Content Protection over Internet Protocol)を使用するＤＬＮＡ（登録商標）(Digital Living Network Alliance)やＨＤＣＰ(High-bandwidth Digital Content Protection system)を使用するＭｉｒａｃａｓｔによる家電機器やマルチメディア機器のネットワークを形成し、クラウドサーバ５５０に対してはＩｏＴの情報収集機器として、コンテンツサーバ５６０に対してはコンテンツ配信のシンク機器として接続される。
【００５２】
また、ＤＴＣＰ−ＩＰなどで接続されるＳＳＬネットワークが接続される。また、センサネットワーク５４０のように、ゲートウェイを介して、コンテンツサーバ５６０からの動作制御やファームウェア提供と共に、クラウドサーバ５５０に対してＩｏＴの情報収集機器として接続される。センサネットワーク５４０の場合には、通信プロトコル/通信経路の保護技術としては、SSL/TLSなどが主に使用される。
【００５３】
クラウドサーバ５５０は、複数のサーバ群から構成され、それぞれのネットワーク接続機器を制御すると共に、ＩｏＴの情報収集機器から収集した情報を分析あるいは解析して、その結果をユーザに提供したりシステム制御に利用したりする。コンテンツサーバ５６０は、車内ネットワーク５１０や宅内ネットワーク５２０のマルチメディア機器に対してコンテンツを提供する。
【００５４】
本実施形態のシステム５００においては、各ネットワークに接続された機器への情報提供時や機器からの情報収集時における、機密情報（例えば、各種の鍵情報など）や個人情報などの漏洩、あるいは、コンテンツの不正コピーなどを防止するため、異なる通信アプリケーションを使用する異なる種類の機器に対して、共通の機密処理用ミドルウェア(図中は、Middleware)２２１を組み込んでいる。この本実施形態の機密処理用ミドルウェア２２１は、異なる通信アプリケーションと、異なる種類の機器が備える異なる暗号化／復号用ハードウェアと、を共通のシーケンスに従って結び付けることができる。
【００５５】
《暗号復号処理シーケンス》
図６は、本実施形態に係る暗号化処理または復号処理のマクロな動作手順を示すシーケンス図である。暗号化処理または復号処理は、アプリケーションからの要請を受けて、キーセットをＲＳＡ検証してデバイス固有の識別子で復号ブロック暗号鍵セットを生成して、コンテンツの暗号化あるいは復号を行なう処理である。
【００５６】
図６は、本実施形態のミドルウェア(Middleware)２２１と、ミドルウェア(Middleware)２２１が組み込まれたアプリケーション(Application)２１１が搭載されたデバイス(Device)２００におけるシーケンスである。なお、デバイス２００／アプリケーション２１１側は、Customer Application２１１と、Content Storage２１２と、Content Input Device６０１と、Content Output Device６０２と、を備える。Customer Application２１１は、デバイス２００の用途に応じた処理を行う。Content Storage２１２は、本実施形態の暗号化コンテンツを格納する。Content Input Device６０１は、デバイス２００にコンテンツを送信あるいは入力する入力元デバイスである。Content Output Device６０２は、デバイス２００に格納されたコンテンツを送信あるいは出力する出力先デバイスである。
【００５７】
本実施形態のミドルウェア２２１は、Secure Public APIs６０３と、Crypto Logic using Hardware Unique ID２４１〜２４４と、Data Process Queue６０４と、Worker Thread６０５と、Secure Storage２３２と、を備える。Secure Public APIs６０３は、アプリケーション２１１とのインタフェースを行う。Crypto Logic using Hardware Unique ID２４１〜２４４は、本実施形態のキーセットから復号されたブロック暗号鍵セットを生成する。Data Process Queue６０４は、暗号化処理あるいは復号処理されるコンテンツのデータをキューイングする。Worker Thread６０５は、データキューからのデータが送られると暗号化処理あるいは復号処理を実行する。Secure Storage２３２は、キーセットを記憶する。
【００５８】
ミドルウェア２２１は、ステップＳ６０１において、アプリケーション２１１からのコンテンツ入出力の要求に応じて、初期化処理を実行する。ミドルウェア２２１は、ステップＳ６０３において、コンテンツの暗号化または復号のため、ブロック暗号鍵セットの準備処理を実行する。そして、コンテンツ入力の場合、アプリケーション２１１およびミドルウェア２２１は、ステップＳ６０５において、準備されたブロック暗号鍵セットを使って入力されたコンテンツをブロック暗号化して、暗号化コンテンツを格納部に格納する。一方、コンテンツ出力の場合、アプリケーション２１１およびミドルウェア２２１は、ステップＳ６０７において、準備されたブロック暗号鍵セットを使って格納部に格納された暗号化コンテンツをブロック復号して、復号コンテンツを出力する。ステップＳ６０５またはステップＳ６０７をコンテンツの全ブロックだけ繰り返した後、ミドルウェア２２１は、ステップＳ６０９において、暗号化処理または復号処理の終了処理を実行する。
【００５９】
以下、図６のシーケンスの各部をさらに詳細なシーケンス図に従って説明する。
【００６０】
（初期化処理）
図７Ａは、本実施形態に係る暗号化処理または復号処理における初期化処理(Ｓ６１１：Initialization Sequence)の手順を示すシーケンス図である。
【００６１】
ステップＳ７００において、ユーザからのスタート要求があると、アプリケーション２１１がミドルウェア２２１の使用が必要か否かを判断する。ミドルウェア２２１の使用が必要であれば、ミドルウェア２２１は初期化処理(Ｓ６１１）を開始する。
【００６２】
ステップＳ７０１〜Ｓ７０３において、ミドルウェア２２１が使用するリソースを確保し、初期ステータスに設定する。ステップＳ７０４〜Ｓ７０７において、キーセットを記憶するSecure Storage（記憶部）２３２をオープンする。ステップＳ７０８〜Ｓ７１１において、処理待ちデータをキューイングするData Process Queue６０４を生成し、暗号化処理または復号処理のWorker Thread６０５を立ち上げる。
【００６３】
（鍵準備処理）
図７Ｂは、本実施形態に係る暗号化処理または復号処理における鍵準備処理(Ｓ６１３：Preparation Sequence)の手順を示すシーケンス図である。
【００６４】
ステップＳ７２１〜Ｓ７２４において、アプリケーション２１１がSecure Storage（記憶部）２３２に記憶されたＲＳＡ署名されたキーセットを要求する。ステップＳ７２５において、アプリケーション２１１は取得したキーセットから暗号化または復号のためのブロック暗号鍵セットの準備を要求する。
【００６５】
ステップＳ７２６において、ミドルウェア２２１は、ＲＳＡ署名されたキーセットをＲＳＡ公開鍵により検証する。検証されれば、ステップＳ７２７〜Ｓ７３０において、デバイス固有の識別子を取得して、暗号化ＲＳＡ秘密鍵をデバイス固有の識別子により復号して、復号ＲＳＡ秘密鍵を生成する。ステップＳ７３１において、暗号化されたブロック暗号鍵セットをＲＳＡ秘密鍵で復号し、復号ブロック暗号鍵セットからContent KeyとInitial Vectorを抽出する。そして、ステップＳ７３２、Ｓ７３３において、抽出したContent KeyとInitial VectorをWorker Thread６０５へ送る。認証されなければ、ステップＳ７３４において、ミドルウェア２２１は、エラーステータスを返す。
【００６６】
コンテンツの暗復号処理は、Worker Thread６０５で実行するが、AES CTR Modeで暗復号処理を行う場合、AES鍵とCounter値とが必要になる。ここで、ステップＳ７３１で復号化したブロック暗号鍵セットには、Content KeyとInitial Vectorとが含まれており、これをWorker Thread６０５に送付して、Content KeyをAES鍵として、また、Initial Vectorと上位アプリケーションが指定するContent IDおよびInputCtrとを組み合わせて生成する値を、Counter値として使用する。
【００６７】
なお、Content KeyとInitial Vectorは、ブロック暗号鍵セットの任意の位置から128ビットを取り出したデータをContent Keyとして、また、別の任意の位置から64ビット取り出したデータをInitial Vectorとして使用する。ＲＳＡ公開鍵による暗号化処理は、Content KeyとInitial Vectorに対して個別に行っているのではなく、この２つの情報が含まれているブロック暗号鍵セット全体に対して行う。また、AES CTR Modeでの運用の場合、Content Keyは、AES Keyとしてそのまま使用し、Counter値は、Initial Vectorと上位アプリケーションが指定するContent IDとの排他的論理和を演算した結果(64ビット)と、同じく上位アプリケーションが指定するInputCtr(64ビット)とを連結した、128ビットの値を使用する。
【００６８】
（暗号化処理）
図７Ｃは、本実施形態に係る実行処理(Operation Sequence)における暗号化処理(Ｓ６１５：Encrypt data)の手順を示すシーケンス図である。
【００６９】
ステップＳ７４１とＳ７４２において、アプリケーション２１１は、コンテンツ入力デバイス６０１をオープンする。また、ステップＳ７４３とＳ７４４において、アプリケーション２１１は、暗号化コンテンツ格納部２１２をオープンする。
【００７０】
以下、ステップＳ７４５〜Ｓ７５６は、コンテンツ入力デバイス６０１から入力されたコンテンツをブロック暗号化して、暗号化コンテンツ格納部２１２に格納する処理をブロック単位で繰り返す。
【００７１】
ステップＳ７４５〜Ｓ７４７において、アプリケーション２１１は、コンテンツ入力デバイス６０１からコンテンツを取得する。ステップＳ７４８〜Ｓ７５４において、アプリケーション２１１は、ミドルウェア２２１に対し、取得したコンテンツのブロックを順次にキュー６０４に蓄え、キュー６０４からWorker Thread６０５に移動したブロックデータのブロック暗号化を行う。そして、コンテンツの暗号化ブロックをアプリケーション２１１に返す。
【００７２】
ステップＳ７５５とＳ７５６とにおいて、アプリケーション２１１は、暗号化ブロックを暗号化コンテンツ格納部２１２に保存する。
【００７３】
全コンテンツのブロック暗号化と保存が終わると、ステップＳ７５７において、アプリケーション２１１は、暗号化コンテンツ格納部２１２をクローズする。また、ステップＳ７５８において、コンテンツ入力デバイス６０１からのステータスを受信して、アプリケーション２１１は、ステップＳ７５９とＳ７６０とにおいて、コンテンツ入力デバイス６０１をクローズする。
【００７４】
（復号処理）
図７Ｄは、本実施形態に係る実行処理(Operation Sequence)における復号処理(Ｓ６１７：Decrypt data)の手順を示すシーケンス図である。
【００７５】
ステップＳ７６１とＳ７６２において、アプリケーション２１１は、暗号化コンテンツ格納部２１２をオープンする。また、アプリケーション２１１は、ステップＳ７６３とＳ７６４において、コンテンツ出力デバイス６０２をオープンする。
【００７６】
以下、ステップＳ７６５〜Ｓ７７６は、暗号化コンテンツ格納部２１２から読み出された暗号化コンテンツをブロック復号して、コンテンツ出力デバイス６０２に出力する処理をブロック単位で繰り返す。
【００７７】
ステップＳ７６５とＳ７６６とにおいて、暗号化コンテンツ格納部２１２から暗号化コンテンツの１ブロックを読み出す。ステップＳ７６７〜Ｓ７７３において、アプリケーション２１１は、ミドルウェア２２１に対し、取得した暗号化コンテンツのブロックを順次にキュー６０４に蓄え、キュー６０４からWorker Thread６０５に移動した暗号化ブロックデータのブロック復号を行う。そして、コンテンツの復号ブロックをアプリケーション２１１に返す。
【００７８】
ステップＳ７７４〜Ｓ７７６において、アプリケーション２１１は、復号ブロックをコンテンツ出力デバイス６０２に出力する。
【００７９】
全コンテンツのブロック復号と出力が終わると、ステップＳ７７７において、アプリケーション２１１は、コンテンツ出力デバイス６０２をクローズする。また、アプリケーション２１１は、ステップＳ７７９とＳ７８０とにおいて、暗号化コンテンツ格納部２１２をクローズする。
【００８０】
（終了処理）
図７Ｅは、本実施形態に係る暗号化処理または復号処理における終了処理(Ｓ６１９：Finalization Sequence)の手順を示すシーケンス図である。
【００８１】
ステップＳ７８１〜Ｓ７８４において、アプリケーション２１１は、Work Thread６０５を停止させ、キュー６０４の終了処理をする。次に、ステップＳ７８５〜Ｓ７８８において、アプリケーション２１１は、キーセットを記憶する記憶部をクローズする。そして、ステップＳ７８９〜Ｓ７９１において、アプリケーション２１１は、ミドルウェア２２１が確保していたリソースを解放して、ステップＳ７９２において、暗号化処理の完了をユーザに通知する。
【００８２】
《デバイスあるいは情報処理装置のハードウェア構成》
図８は、本発明の第２実施形態に係るコンテンツ保護部２２１を組み込んだデバイス２００あるいはデバイスを有する情報処理装置４００のハードウェア構成を示すブロック図である。
【００８３】
図８で、ＣＰＵ(Central Processing Unit)８１０は演算制御用のプロセッサであり、プログラムを実行することで図２、図３Ａおよび図３Ｂの機能を実現する。なお、ＣＰＵ８１０は、それぞれの機能に対応して複数あってもよく、例えば、NonSecure WorldとSecure Worldとは、異なるＣＰＵで実現してもよい。また、各復号処理を、異なるＣＰＵで並行に実行してもよい。ＲＯＭ(Read Only Memory)８２０は、初期データおよびプログラムなどの固定データおよびプログラムを記憶する。通信制御部８３０は、ネットワークを介して、他の装置との通信を制御する。
【００８４】
また、暗号化ハードウェア８７０は、１つまたは複数の本デバイス２００や情報処理装置４００に必要な暗号化ハードウェアである。なお、暗号化ハードウェア８７０が無い場合は、ミドルウェアライブラリに準備された暗号化ソフトウェアが代替するため、暗号化ハードウェア８７０が１つも接続されてなくてもよい。
【００８５】
ＲＡＭ(Random Access Memory)８４０は、ＣＰＵ８１０が一時記憶のワークエリアとして使用するランダムアクセスメモリである。ＲＡＭ８４０には、本実施形態の実現に必要なデータを記憶する領域が確保されている。キーセット８４１は、Secure Worldの記憶部から読み出されたＲＳＡ署名されたキーデータである。検証結果８４２は、ＲＳＡ署名されたキーセット８４１の検証結果である。復号ＲＳＡ秘密鍵８４３は、検証済みのキーセットの暗号化ＲＳＡ秘密鍵から、デバイスＩＤにより復号化されたキーデータである。復号ブロック暗号鍵セット８４４は、検証済みのキーセットの暗号化ブロック暗号鍵セットから、復号ＲＳＡ秘密鍵８４３より復号化されたキーデータである。コンテンツのブロック番号２２２は、アプリケーション２１１からブロック暗号化または復号のためにブロック暗号化および復号部に提供されるパラメータである。コンテンツ管理ＩＤ２２３は、アプリケーション２１１からブロック暗号化または復号のためにブロック暗号化および復号部に提供されるパラメータである。入力コンテンツ２０１は、コンテンツ入力デバイス６０１からアプリケーション２１１が取得するコンテンツデータである。暗号化コンテンツ２０２は、入力コンテンツ２０１を復号ブロック暗号鍵セット８４４とコンテンツ管理ＩＤ２２３とコンテンツのブロック番号２２２で暗号化して、暗号化コンテンツ格納部２１２に格納される暗号化コンテンツデータである。復号コンテンツ２０３は、暗号化コンテンツ格納部２１２に格納された暗号化コンテンツを復号ブロック暗号鍵セット８４４とコンテンツ管理ＩＤ２２３とコンテンツのブロック番号２２２で復号して、コンテンツ出力デバイス６０２に出力する復号コンテンツデータである。
【００８６】
ストレージ８５０は、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶さる不揮発メモリである。Secure Data領域８５１には、ＲＳＡ署名されたキーセット２３３と、暗号化コンテンツ２０２と、デバイスＩＤ２１３と、が格納される。ストレージ８５０には、以下のプログラムが格納される。デバイス制御プログラム８５２は、本デバイス２００全体を制御するプログラムである。アプリケーション２１１は、デバイス２００の用途に応じて搭載されるプログラムである。ミドルウェアモジュール２２１は、本実施形態のミドルウェアを実現するモジュール群である。ミドルウェアモジュール２２１には、ＲＳＡ署名されたキーセットを検証するＲＳＡ署名検証モジュール８５３と、検証済みの暗号化ＲＳＡ秘密鍵をデバイス固有のデバイスＩＤ２１３により復号するＲＳＡ秘密鍵復号モジュール８５４と、暗号化ブロック暗号鍵セットを復号ＲＳＡ秘密鍵により復号するブロック暗号鍵セット復号モジュール８５５と、復号ブロック暗号鍵セットによりコンテンツの暗号化および復号を実行するブロック暗号化復号モジュール８５６と、を含む。
【００８７】
入出力インタフェース８６０は、入出力デバイスとのデータ入出力を制御するためのインタフェースを行なう。本実施形態においては、入出力インタフェース８６０には、表示部８６１と、操作部８６２と、音声入出力部８６３とが接続される。また、入出力インタフェース８６０には、コンテンツまたはキーセットを記憶する取り外し可能な記憶媒体８６４が接続されてもよい。入出力インタフェース８６０には、さらに、撮像部１２６１やＧＰＳ位置算出部１２６２、などが接続されてもよい。
【００８８】
なお、図８のＲＡＭ８４０やストレージ８５０には、デバイス２００や情報処理装置４００が有する汎用の機能や他の実現可能な機能に関連するプログラムやデータは図示されていない。
【００８９】
《コンテンツ保護部を組み込んだデバイスの処理手順》
図９Ａは、本実施形態に係るコンテンツ保護部２２１を組み込んだデバイス２００の処理手順を示すフローチャートである。このフローチャートは、図８のＣＰＵ８１０がＲＡＭ８４０を使用して実行し、図２、図３Ａおよび図３Ｂの機能構成部を実現する。
【００９０】
デバイス２００は、ステップＳ９０１において、初期化処理を実行する。そして、デバイス２００のアプリケーション２１１の指示により、ミドルウェア２２１は、ステップＳ９０３において、ブロック暗号鍵セットの準備処理を実行する。
【００９１】
デバイス２００は、ステップＳ９０５において、コンテンツの入力か出力かを判定する。コンテンツの入力であれば、デバイス２００は、ステップＳ９０７において、コンテンツ入力デバイス６０１からコンテンツを取得する。そして、デバイス２００は、ステップＳ９０９において、取得したコンテンツをブロック暗号化して、ステップＳ９１１において、暗号化コンテンツを格納部２１２に格納する。
【００９２】
一方、コンテンツの出力であれば、デバイス２００は、ステップＳ９１３において、格納部２１２から暗号化コンテンツを読み出す。そして、デバイス２００は、ステップＳ９１５において、読み出した暗号化コンテンツをブロック復号して、ステップＳ９１７において、コンテンツ出力デバイス６０２に出力する。
【００９３】
（鍵準備処理）
図９Ｂは、本実施形態に係る鍵準備処理（Ｓ９０３）の手順を示すフローチャートである。
【００９４】
ミドルウェア２２１は、ステップＳ９２１において、記憶部２３２からＲＳＡ署名されたキーセットを読み出す。ミドルウェア２２１は、ステップＳ９２３において、ＲＳＡ署名されたキーセットを検証する。検証された場合、ミドルウェア２２１は、ステップＳ９２５において、デバイス固有のデバイスＩＤを取得する。そして、ミドルウェア２２１は、ステップＳ９２７において、取得したデバイスＩＤにより検証済みのキーセットの暗号化ＲＳＡ秘密鍵を復号する。
【００９５】
次に、ミドルウェア２２１は、ステップＳ９２９において、復号されたＲＳＡ秘密鍵により暗号化ブロック暗号鍵セットを復号する。そして、ミドルウェア２２１は、ステップＳ９３１において、復号したブロック暗号鍵セットをアプリケーションに渡す。
【００９６】
本実施形態によれば、ＲＳＡ検証およびデバイス固有の識別子で復号したコンテンツ保護用鍵をコンテンツの暗号化および復号に使用するので、コンテンツ保護用鍵の不正取得によってもコンテンツの不正使用を充分に防ぐデバイスまたはデバイスが組み込まれた情報処理装置を提供することができる。
【００９７】
［第３実施形態］
次に、本発明の第３実施形態に係る、コンテンツ保護装置が保持する暗号化ブロック暗号鍵セットとＲＳＡ公開鍵と暗号化ＲＳＡ秘密鍵とのＲＳＡ署名されたキーセットの生成について説明する。本実施形態は、上記第２実施形態と比べると、ＲＳＡ署名されたキーセットの生成を有する点で異なる。すなわち、ＲＳＡ秘密鍵とデバイス固有の識別子とを用いて、暗号化ブロック暗号鍵セットとＲＳＡ公開鍵と暗号化ＲＳＡ秘密鍵とのキーセットを生成してＲＳＡ署名をし、ＲＳＡ署名されたキーセットを生成して記憶部に格納する。その他の構成および動作は、第２実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
【００９８】
《コンテンツ保護部を組み込んだデバイスの構成》
図１０は、本実施形態に係るコンテンツ保護部を組み込んだデバイス１０００の構成を示すブロック図である。なお、図１０において、図２と同様の構成要素には同じ参照番号を付して、重複する説明を省略する。ここで、図２と図１０との同じ参照番号の同様の構成要素について、図２では動作を図１０ではその動作を実現するモジュール(module)を記載しているが、異なるものではない。
【００９９】
図１０には、乱数生成部１００１と、乱数生成部１００１からのブロック暗号鍵セット１００２と、取得されたＲＳＡ鍵ペア１００３と、ＲＳＡ鍵ペア１００３の内のＲＳＡ公開鍵１００４と、ＲＳＡ秘密鍵１００５と、が示されている。そして、図１０のデバイス１０００は、ＲＳＡ秘密鍵１００５によりキーセットのＲＳＡ署名２３８を生成するＲＳＡ署名部１０４２と、ＲＳＡ秘密鍵１００５をデバイス固有のデバイスＩＤ１００６で暗号化するＲＳＡ暗号部１０４３と、ブロック暗号鍵セット１００２をＲＳＡ公開鍵で暗号化するブロック暗号鍵セット暗号部１０４４と、を備える。
【０１００】
かかる構成により生成された、暗号化ブロック暗号鍵セット２３５と、暗号化ＲＳＡ秘密鍵２３６と、ＲＳＡ公開鍵２３７とに識別可能なヘッダ２３４を付して、これらの組をＲＳＡ秘密鍵でＲＳＡ署名して、ＲＳＡ署名されたキーセット２３３として記憶部２３２に記憶する。
【０１０１】
《キーセット生成処理シーケンス》
図１１は、本実施形態に係るキーセット生成処理のマクロな動作手順を示すシーケンス図である。キーセット生成処理は、ブロック暗号鍵セットとＲＳＡ鍵ペアとに基づいて、ＲＳＡ公開鍵を使って暗号化した暗号化ブロック暗号鍵セットとデバイス固有のデバイスＩＤを使って暗号化した暗号化ＲＳＡ秘密鍵とＲＳＡ公開鍵とを、ＲＳＡ秘密鍵でＲＳＡ署名したキーセットを生成して、記憶部２３２に記憶する処理である。なお、図１１において、図６と同様の構成要素には同じ参照番号を付して、重複する説明を省略する。すなわち、初期化処理Ｓ６０１と終了処理Ｓ６０９とは同じである。
【０１０２】
図１１は、本実施形態のミドルウェア(Middleware)２２１と、ミドルウェア(Middleware)２２１が組み込まれたアプリケーション(Application)２１１が搭載されたデバイス(Device)２００におけるシーケンスである。
【０１０３】
ミドルウェア２２１は、ＲＳＡキーペア無しのキーセット生成処理の場合、ステップＳ１１０５の手順で、ＲＳＡ署名されたキーセットを生成する。ミドルウェア２２１は、ＲＳＡキーペア有りのキーセット生成処理の場合、ステップＳ１１０６の手順で、ＲＳＡ署名されたキーセットを生成する。
【０１０４】
以下、図１１のシーケンスの各部をさらに詳細なシーケンス図に従って説明する。なお、初期化処理Ｓ６０１と終了処理Ｓ６０９とは省略する。
【０１０５】
（キーセット生成処理）
図１２Ａは、本実施形態に係る実行処理(Operation Sequence)におけるキーセット生成処理(Ｓ１１０５：Build Key Set)の手順を示すシーケンス図である。
【０１０６】
ステップＳ１２４１において、アプリケーション２１１からミドルウェア２２１に、ＲＳＡキーペア無しのキーセット生成が要求される。ミドルウェア２２１においては、ステップＳ１２４２において、ＲＳＡ鍵セットを生成する。また、ステップＳ１２４３において、コンテンツ鍵と初期ベクタを含むブロック暗号鍵セットを生成する。そして、ステップＳ１２４４において、ＲＳＡ公開鍵でブロック暗号鍵セットを暗号化する。
【０１０７】
ステップＳ１２４５〜Ｓ１２４８において、ＲＳＡ秘密鍵をデバイス固有のデバイスＩＤによって暗号化する。そして、ステップＳ１２４９において、キーセットを生成し、ステップＳ１２５０とＳ１２５１とにおいて、キーセットをＲＳＡ秘密鍵でＲＳＡ署名して、アプリケーション２１１に返す。
【０１０８】
（他のキーセット生成処理）
図１２Ｂは、本実施形態に係る実行処理(Operation Sequence)における他のキーセット生成処理(Ｓ１１０６：Build Key Set)の手順を示すシーケンス図である。
【０１０９】
ステップＳ１２６１において、アプリケーション２１１からミドルウェア２２１に、ＲＳＡキーペア有りのキーセット生成が要求される。ミドルウェア２２１においては、ステップＳ１２６２において、コンテンツ鍵と初期ベクタを含むブロック暗号鍵セットを生成する。そして、ステップＳ１２６３において、ＲＳＡ公開鍵でブロック暗号鍵セットを暗号化する。
【０１１０】
ステップＳ１２６４〜Ｓ１２６７において、ＲＳＡ秘密鍵をデバイス固有のデバイスＩＤによって暗号化する。そして、ステップＳ１２６８において、キーセットを生成し、ステップＳ１２６９とＳ１２７０において、キーセットをＲＳＡ秘密鍵でＲＳＡ署名して、アプリケーション２１１に返す。
【０１１１】
（ＲＳＡ署名されたキーセットの記憶）
ステップＳ１２７３〜Ｓ１２７４において、アプリケーション２１１からデバイスＩＤを用いて暗号化されＲＳＡ署名されたキーセットを記憶部２３２に記憶する。
【０１１２】
《デバイスあるいは情報処理装置のハードウェア構成》
図１３は、本実施形態に係るコンテンツ保護部を組み込んだデバイスあるいはデバイスを有する情報処理装置のハードウェア構成を示すブロック図である。なお、図１３において、図８および図１０と同様な構成要素には同じ参照番号を付して、重複する説明を省略する。また、図１３には、デバイスＩＤを用いて暗号化されＲＳＡ署名されたキーセットを生成するための構成要素を示し、図８のコンテンツのブロック暗号化および復号の構成要素は省略されている。
【０１１３】
ＲＡＭ１３４０は、ＣＰＵ８１０が一時記憶のワークエリアとして使用するランダムアクセスメモリである。乱数１００１は、ブロック暗号鍵セットを生成するためのデータである。ブロック暗号鍵セット１００２は、乱数１００１から生成されたキーデータである。ＲＳＡ鍵ペア１００３は、生成されたあるいは取得されたＲＳＡ公開鍵とＲＳＡ秘密鍵とのペアである。
【０１１４】
ストレージ１３５０は、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶さる不揮発メモリである。ストレージ１３５０には、以下のプログラムが格納される。キーセット生成モジュール１３５１は、デバイスＩＤを用いて暗号化されＲＳＡ署名されたキーセットを生成するモジュールである。キーセット生成モジュール１３５１には、乱数を発生する乱数発生モジュール１３５２と、ＲＳＡ鍵ペアを取得するＲＳＡ鍵ペア取得モジュール１３５３と、ブロック暗号鍵セットをＲＳＡ公開鍵で暗号化するブロック暗号鍵セット暗号化モジュール１３５４と、ＲＳＡ秘密鍵をデバイスＩＤで暗号化するＲＳＡ秘密鍵暗号化モジュール１３５５と、キーセットをＲＳＡ公開鍵でＲＳＡ署名するＲＳＡ署名モジュール１３５６と、を含む。
【０１１５】
なお、図１３のＲＡＭ１３４０やストレージ１３５０には、デバイス２００や情報処理装置４００が有する汎用の機能や他の実現可能な機能に関連するプログラムやデータは図示されていない。
【０１１６】
《コンテンツ保護部を組み込んだデバイスの処理手順》
図１４は、本実施形態に係るコンテンツ保護部を組み込んだデバイス２００の処理手順を示すフローチャートである。このフローチャートは、図１３のＣＰＵ８１０がＲＡＭ１３４０を使用して実行し、図１０の機能構成部を実現する。なお、図１４の処理は、主にミドルウェア２２１が実行するので、ミドルウェア２２１を主体として説明する。
【０１１７】
ミドルウェア２２１は、ステップＳ１４０１において、乱数からブロック暗号鍵セットを生成する。ミドルウェア２２１は、ステップＳ１４０３において、ＲＳＡ鍵ペアを取得する。ミドルウェア２２１は、ステップＳ１４０５において、ブロック暗号鍵セットをＲＳＡ公開鍵で暗号化する。ミドルウェア２２１は、ステップＳ１４０７において、ＲＳＡ秘密鍵をデバイスＩＤで暗号化する。
【０１１８】
そして、ミドルウェア２２１は、ステップＳ１４０９において、ヘッダ、暗号化ブロック暗号鍵セット、暗号化ＲＳＡ秘密鍵、ＲＳＡ公開鍵をＲＳＡ秘密鍵で署名する。ミドルウェア２２１は、ステップＳ１４１１において、ＲＳＡ署名したキーセットを記憶部２３２に記憶する。
【０１１９】
なお、本実施形態においては、デバイス固有のデバイスＩＤにより暗号化されＲＳＡ署名されたキーセットの生成処理と、ＲＳＡ署名されたキーセットの検証とデバイス固有のデバイスＩＤによる復号処理とを一体に示した。しかし、ＲＳＡ署名されたキーセットの生成処理と、ＲＳＡ署名されたキーセットの復号処理とは、別途に異なる場所で異なる装置で実行されてもよい。
【０１２０】
本実施形態によれば、デバイス固有の識別子で暗号化し、ＲＳＡ署名したコンテンツ保護用鍵を生成してコンテンツの暗号化および復号に使用するので、コンテンツ保護用鍵の不正取得によってもコンテンツの不正使用を充分に防ぐデバイスまたはデバイスが組み込まれた情報処理装置を提供することができる。
【０１２１】
［第４実施形態］
次に、本発明の第４実施形態に係るコンテンツ保護部を組み込んだデバイスあるいはデバイスを有する情報処理装置を含むシステムについて説明する。本実施形態に係る情報処理装置は、上記第２実施形態および第３実施形態と比べると、コンテンツ交換を行なうアプリケーションとして、通信アプリケーション以外にも記憶媒体を経由するコンテンツ交換においても、機密保護を実現するために共通のシーケンスを用いる点で異なる。記憶媒体には、ＤＶＤやメモリチップなどが含まれる。
【０１２２】
《記憶媒体経由の機密保護》
図１５は、本実施形態に係る記憶媒体を経由してデータ交換を行なうシステム１５００の機密保護機能を説明する図である。
【０１２３】
システム１５００には、記憶媒体１５１０を経由してコンテンツ交換が可能な種々の機器が図示されている。かかる種々の機器に本実施形態のMiddleware２２１を組み込むことによって、記憶媒体１５１０を経由したデータ交換においても、ネットワークを介した通信によるコンテンツ交換と同様に、所望の暗号化および復号を含む機能を共通のシーケンスに従って利用することができる。
【０１２４】
［他の実施形態］
なお、［第２実施形態］および［第３実施形態］においては、鍵ペアを用いる暗号方式として、ＲＳＡを用いた署名検証や暗号化復号について説明したが、例えば、署名検証に楕円曲線を用いるＥＣＤＳＡなども適用でき、同様の効果を奏する。
【０１２５】
また、本実施形態においては、コンテンツのカウンタモード(CTRモード：CounTer mode)のブロック暗号化および復号による機密化を説明したが、他のECBモード（Electronic CodeBook mode：電子符号表モード)、CBCモード（Cipher Block Chaining mode：暗号ブロック連鎖モード)、CFBモード（Cipher-FeedBack mode：暗号フィードバックモード)、OFBモード（Output-FeedBack mode：出力フィードバックモード)であっても、ブロック暗号鍵の高い機密性が保持される。さらに、本実施形態においては、ブロック暗号ではなくストリーム暗号であっても、暗号鍵の高い機密性が保持される。
【０１２６】
また、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステムまたは装置も、本発明の範疇に含まれる。
【０１２７】
また、本発明は、複数の機器から構成されるシステムに適用されてもよいし、単体の装置に適用されてもよい。さらに、本発明は、実施形態の機能を実現するコンテンツ保護プログラムが、システムあるいは装置に直接あるいは遠隔から供給される場合にも適用可能である。したがって、本発明の機能をコンピュータで実現するために、コンピュータにインストールされるプログラム、あるいはそのプログラムを格納した媒体、そのプログラムをダウンロードさせるＷＷＷ(World Wide Web)サーバも、本発明の範疇に含まれる。特に、少なくとも、上述した実施形態に含まれる処理ステップをコンピュータに実行させるプログラムを格納した非一時的コンピュータ可読媒体（non-transitory computer readable medium）は本発明の範疇に含まれる。
【図１】
2019145928.tif 000003
【図２Ａ】
2019145928.tif 000004
【図２Ｂ】
2019145928.tif 000005
【図３Ａ】
2019145928.tif 000006
【図３Ｂ】
2019145928.tif 000007
【図４】
2019145928.tif 000008
【図５】
2019145928.tif 000009
【図６】
2019145928.tif 000010
【図７Ａ】
2019145928.tif 000011
【図７Ｂ】
2019145928.tif 000012
【図７Ｃ】
2019145928.tif 000013
【図７Ｄ】
2019145928.tif 000014
【図７Ｅ】
2019145928.tif 000015
【図８】
2019145928.tif 000016
【図９Ａ】
2019145928.tif 000017
【図９Ｂ】
2019145928.tif 000018
【図１０】
2019145928.tif 000019
【図１１】
2019145928.tif 000020
【図１２Ａ】
2019145928.tif 000021
【図１２Ｂ】
2019145928.tif 000022
【図１３】
2019145928.tif 000023
【図１４】
2019145928.tif 000024
【図１５】
2019145928.tif 000025
【手続補正書】
【提出日】平成30年3月13日(2018.3.13)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】図８
【補正方法】変更
【補正の内容】
【図８】
2019145928.tif 000026
【手続補正２】
【補正対象書類名】図面
【補正対象項目名】図９Ｂ
【補正方法】変更
【補正の内容】
【図９Ｂ】
2019145928.tif 000027
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】図１１
【補正方法】変更
【補正の内容】
【図１１】
2019145928.tif 000028
【手続補正４】
【補正対象書類名】図面
【補正対象項目名】図１３
【補正方法】変更
【補正の内容】
【図１３】
2019145928.tif 000029
【手続補正５】
【補正対象書類名】図面
【補正対象項目名】図１４
【補正方法】変更
【補正の内容】
【図１４】
2019145928.tif 000030
【手続補正書】
【提出日】平成30年7月5日(2018.7.5)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
暗号化ブロック暗号鍵セットと公開鍵と暗号化秘密鍵とのキーセットを記憶する記憶手段と、
前記キーセットの前記暗号化秘密鍵を、コンテンツ保護装置を組み込んだデバイス固有の識別子で復号して、復号秘密鍵を生成する秘密鍵生成手段と、
前記キーセットの前記暗号化ブロック暗号鍵セットを前記復号秘密鍵により復号して、復号ブロック暗号鍵セットを生成するブロック暗号鍵セット生成手段と、
前記復号ブロック暗号鍵セットを用いて、コンテンツの暗号化および復号を行うブロック暗号化および復号手段と、
を備えるコンテンツ保護装置。
【請求項２】
前記公開鍵と秘密鍵と前記デバイス固有の識別子とを用いて、前記暗号化ブロック暗号鍵セットと前記公開鍵と前記暗号化秘密鍵との前記キーセットを生成するキーセット生成手段をさらに備える請求項１に記載のコンテンツ保護装置。
【請求項３】
前記記憶手段に記憶された前記キーセットは、秘密鍵で署名されており、
署名された前記キーセットについて公開鍵で署名の検証を行う検証手段をさらに備え、
前記秘密鍵生成手段は、前記検証手段で検証された暗号化秘密鍵を使用し、
前記ブロック暗号鍵セット生成手段は、前記検証手段で検証された暗号化ブロック暗号鍵セットを使用する請求項１に記載のコンテンツ保護装置。
【請求項４】
前記公開鍵と前記秘密鍵と前記デバイス固有の識別子とを用いて、前記暗号化ブロック暗号鍵セットと前記公開鍵と前記暗号化秘密鍵との前記キーセットを生成して、署名をし、署名された前記キーセットを生成するキーセット生成手段をさらに備える請求項３に記載のコンテンツ保護装置。
【請求項５】
暗号化および復号に使用される公開鍵と秘密鍵とのペアはＲＳＡに従って生成されたペアであり、署名に使用される公開鍵と秘密鍵とのペアはＲＳＡまたは楕円曲線を用いるＥＣＤＳＡ方式に従って生成されたペアである請求項１乃至４のいずれか１項に記載のコンテンツ保護装置。
【請求項６】
前記記憶手段は、ノーマル実行環境である前記コンテンツ保護装置の非機密部分との間のデータ転送がファームウェア層まで戻るよう構成されることによって前記非機密部分から分離された、前記コンテンツ保護装置のセキュア実行環境である機密部分に含まれる請求項１乃至５のいずれか１項に記載のコンテンツ保護装置。
【請求項７】
前記ブロック暗号化および復号手段は、さらに前記コンテンツのブロック番号および前記コンテンツを識別するコンテンツ識別子を用いて、前記コンテンツの暗号化および復号を行う請求項１乃至６のいずれか１項に記載のコンテンツ保護装置。
【請求項８】
前記デバイス固有の識別子を前記コンテンツ保護装置が組み込まれたデバイスから取得する第１インタフェースと、
前記ブロック暗号化および復号手段で使用する、前記コンテンツのブロック番号および前記コンテンツを識別するコンテンツ識別子を前記デバイスのコンテンツ保存アプリケーションから取得する第２インタフェースと、
暗号化前の前記コンテンツを取得して前記ブロック暗号化および復号手段に入力し、前記ブロック暗号化および復号手段から取得した復号された前記コンテンツを出力する第３インタフェースと、
前記ブロック暗号化および復号手段でブロック暗号化された前記コンテンツをコンテンツ格納部に格納し、前記コンテンツ格納部からブロック暗号化された前記コンテンツを読出して前記ブロック暗号化および復号手段に入力する第４インタフェースと、
をさらに備える請求項１乃至７のいずれか１項に記載のコンテンツ保護装置。
【請求項９】
請求項１乃至８のいずれか１項に記載のコンテンツ保護装置と、
前記コンテンツ保護装置に提供する前記デバイス固有の識別子を機密に保持する保持手段と、
前記コンテンツ保護装置により暗号化されたコンテンツを格納する格納手段と、
前記コンテンツのブロック番号および前記コンテンツを識別するコンテンツ識別子を前記コンテンツ保護装置に提供し、暗号化前の前記コンテンツを取得して前記コンテンツ保護装置に提供し、復号された前記コンテンツを前記コンテンツ保護装置から取得して出力するコンテンツ保存アプリケーションと、
を備えるデバイス。
【請求項１０】
請求項９に記載のデバイスが組み込まれて、
前記コンテンツを所定の通信プロトコルに従って受信して、前記デバイスにより前記コンテンツを暗号化した暗号化コンテンツを格納し、
前記デバイスにより前記暗号化コンテンツを復号した復号コンテンツを、前記所定の通信プロトコルに従って送信する情報処理装置。
【請求項１１】
記憶手段に記憶された、暗号化ブロック暗号鍵セットと公開鍵と暗号化秘密鍵とのキーセットの前記暗号化秘密鍵を、コンテンツ保護装置を組み込んだデバイス固有の識別子で復号して、復号秘密鍵を生成する秘密鍵生成ステップと、
前記キーセットの前記暗号化ブロック暗号鍵セットを前記復号秘密鍵により復号して、復号ブロック暗号鍵セットを生成するブロック暗号鍵セット生成ステップと、
前記復号ブロック暗号鍵セットを用いて、コンテンツの暗号化を行って暗号化コンテンツを生成するブロック暗号化ステップと、
前記復号ブロック暗号鍵セットを用いて、前記暗号化コンテンツの復号を行って復号コンテンツを生成するブロック復号ステップと、
を含むコンテンツ保護方法。
【請求項１２】
記憶手段に記憶された、暗号化ブロック暗号鍵セットと公開鍵と暗号化秘密鍵とのキーセットの前記暗号化秘密鍵を、コンテンツ保護装置を組み込んだデバイス固有の識別子で復号して、復号秘密鍵を生成する秘密鍵生成ステップと、
前記キーセットの前記暗号化ブロック暗号鍵セットを前記復号秘密鍵により復号して、復号ブロック暗号鍵セットを生成するブロック暗号鍵セット生成ステップと、
前記復号ブロック暗号鍵セットを用いて、コンテンツの暗号化を行って暗号化コンテンツを生成するブロック暗号化ステップと、
前記復号ブロック暗号鍵セットを用いて、前記暗号化コンテンツの復号を行って復号コンテンツを生成するブロック復号ステップと、
をコンピュータに実行させるコンテンツ保護プログラム。