(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】2019145928
(43)【公開日】20190829
(54)【発明の名称】コンテンツ保護装置、コンテンツ保護方法、コンテンツ保護プログラム、コンテンツ保護装置を含むデバイス、デバイスを組み込んだ情報処理装置
(51)【国際特許分類】
   H04L 9/08 20060101AFI20190802BHJP
   H04N 21/4405 20110101ALI20190802BHJP
   H04N 21/4623 20110101ALI20190802BHJP
   H04L 9/14 20060101ALI20190802BHJP
【FI】
   !H04L9/00 601A
   !H04N21/4405
   !H04N21/4623
   !H04L9/00 641
【審査請求】有
【請求項の数】12
【出願形態】OL
【全頁数】33
(21)【出願番号】2018026595
(22)【出願日】20180219
(11)【特許番号】6386684
(45)【特許公報発行日】20180905
【新規性喪失の例外の表示】特許法第30条第2項適用申請有り Ubiquitous Securus R1.0(Ubiquitous Securus Secure Crypto APIs)を株式会社ユビキタスによって平成29年9月21日に株式会社リョーサン 大阪物流センターで株式会社リョーサンに販売した。
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.MIRACAST
(71)【出願人】
【識別番号】505381024
【氏名又は名称】株式会社ユビキタスAIコーポレーション
【住所又は居所】東京都新宿区西新宿一丁目21番1号 明宝ビル6階
(74)【代理人】
【識別番号】100134430
【弁理士】
【氏名又は名称】加藤 卓士
(72)【発明者】
【氏名】馬場 英徳
【住所又は居所】東京都新宿区西新宿1−21−1 明宝ビル6F 株式会社ユビキタス内
【テーマコード(参考)】
5C164
5J104
【Fターム(参考)】
5C164PA04
5C164PA21
5C164UB03P
5C164UB41S
5C164UC22P
5C164YA15
5J104AA16
5J104EA17
5J104NA02
5J104NA37
(57)【要約】
【課題】コンテンツ保護用鍵の不正取得によってもコンテンツの不正使用を充分に防ぐこと。
【解決手段】暗号化ブロック暗号鍵セットと公開鍵と暗号化秘密鍵とのキーセットを記憶する記憶部と、キーセットの暗号化秘密鍵をデバイス固有の識別子で復号して、復号秘密鍵を生成する秘密鍵生成部と、キーセットの暗号化ブロック暗号鍵セットを復号秘密鍵により復号して、復号ブロック暗号鍵セットを生成するブロック暗号鍵セット生成部と、復号ブロック暗号鍵セットを用いて、コンテンツの暗号化および復号を行うブロック暗号化および復号部と、を備える。
【選択図】 図1
【特許請求の範囲】
【請求項1】
暗号化ブロック暗号鍵セットと公開鍵と暗号化秘密鍵とのキーセットを記憶する記憶手段と、
前記キーセットの前記暗号化秘密鍵を、コンテンツ保護装置を組み込んだデバイス固有の識別子で復号して、復号秘密鍵を生成する秘密鍵生成手段と、
前記キーセットの前記暗号化ブロック暗号鍵セットを前記復号秘密鍵により復号して、復号ブロック暗号鍵セットを生成するブロック暗号鍵セット生成手段と、
前記復号ブロック暗号鍵セットを用いて、コンテンツの暗号化および復号を行うブロック暗号化および復号手段と、
を備えるコンテンツ保護装置。
【請求項2】
前記秘密鍵と前記デバイス固有の識別子とを用いて、前記暗号化ブロック暗号鍵セットと前記公開鍵と前記暗号化秘密鍵との前記キーセットを生成するキーセット生成手段をさらに備える請求項1に記載のコンテンツ保護装置。
【請求項3】
前記記憶手段に記憶された前記キーセットは、秘密鍵で署名されており、
署名された前記キーセットについて公開鍵で署名の検証を行う検証手段をさらに備え、
前記秘密鍵生成手段は、前記検証手段で検証された暗号化秘密鍵を使用し、
前記ブロック暗号鍵セット生成手段は、前記検証手段で検証された暗号化ブロック暗号鍵セットを使用する請求項1に記載のコンテンツ保護装置。
【請求項4】
前記秘密鍵と前記デバイス固有の識別子とを用いて、前記暗号化ブロック暗号鍵セットと前記公開鍵と前記暗号化秘密鍵との前記キーセットを生成して、署名をし、署名された前記キーセットを生成するキーセット生成手段をさらに備える請求項3に記載のコンテンツ保護装置。
【請求項5】
暗号化および復号に使用される前記公開鍵と前記秘密鍵とのペアはRSAに従って生成されたペアであり、署名に使用される前記公開鍵と前記秘密鍵とのペアはRSAまたは楕円曲線を用いるECDSA方式に従って生成されたペアである請求項1乃至4のいずれか1項に記載のコンテンツ保護装置。
【請求項6】
前記記憶手段は、ノーマル実行環境である前記コンテンツ保護装置の非機密部分とハードウェア的に分離された、前記コンテンツ保護装置のセキュア実行環境である機密部分に含まれる請求項1乃至5のいずれか1項に記載のコンテンツ保護装置。
【請求項7】
前記ブロック暗号化および復号手段は、さらに前記コンテンツのブロック番号および前記コンテンツを識別するコンテンツ識別子を用いて、前記コンテンツの暗号化および復号を行う請求項1乃至6のいずれか1項に記載のコンテンツ保護装置。
【請求項8】
前記デバイス固有の識別子を前記コンテンツ保護装置が組み込まれたデバイスから取得する第1インタフェースと、
前記ブロック暗号化および復号手段で使用する、前記コンテンツのブロック番号および前記コンテンツを識別するコンテンツ識別子を前記デバイスのコンテンツ保存アプリケーションから取得する第2インタフェースと、
暗号化前の前記コンテンツを取得して前記ブロック暗号化および復号手段に入力し、前記ブロック暗号化および復号手段から取得した復号された前記コンテンツを出力する第3インタフェースと、
前記ブロック暗号化および復号手段でブロック暗号化された前記コンテンツをコンテンツ格納部に格納し、前記コンテンツ格納部からブロック暗号化された前記コンテンツを読出して前記ブロック暗号化および復号手段に入力する第4インタフェースと、
をさらに備える請求項1乃至7のいずれか1項に記載のコンテンツ保護装置。
【請求項9】
請求項1乃至8のいずれか1項に記載のコンテンツ保護装置と、
前記コンテンツ保護装置に提供する前記デバイス固有の識別子を機密に保持する保持手段と、
前記コンテンツ保護装置により暗号化されたコンテンツを格納する格納手段と、
前記コンテンツのブロック番号および前記コンテンツを識別するコンテンツ識別子を前記コンテンツ保護装置に提供し、暗号化前の前記コンテンツを取得して前記コンテンツ保護装置に提供し、復号された前記コンテンツを前記コンテンツ保護装置から取得して出力するコンテンツ保存アプリケーションと、
を備えるデバイス。
【請求項10】
請求項9に記載のデバイスが組み込まれて、
前記コンテンツを所定の通信プロトコルに従って受信して、前記デバイスにより前記コンテンツを暗号化した暗号化コンテンツを格納し、
前記デバイスにより前記暗号化コンテンツを復号した復号コンテンツを、前記所定の通信プロトコルに従って送信する情報処理装置。
【請求項11】
記憶手段に記憶された、暗号化ブロック暗号鍵セットと公開鍵と暗号化秘密鍵とのキーセットの前記暗号化秘密鍵を、コンテンツ保護装置を組み込んだデバイス固有の識別子で復号して、復号秘密鍵を生成する秘密鍵生成ステップと、
前記キーセットの前記暗号化ブロック暗号鍵セットを前記復号秘密鍵により復号して、復号ブロック暗号鍵セットを生成するブロック暗号鍵セット生成ステップと、
前記復号ブロック暗号鍵セットを用いて、コンテンツの暗号化を行って暗号化コンテンツを生成するブロック暗号化ステップと、
前記復号ブロック暗号鍵セットを用いて、前記暗号化コンテンツの復号を行って復号コンテンツを生成するブロック復号ステップと、
を含むコンテンツ保護方法。
【請求項12】
記憶手段に記憶された、暗号化ブロック暗号鍵セットと公開鍵と暗号化秘密鍵とのキーセットの前記暗号化秘密鍵を、コンテンツ保護装置を組み込んだデバイス固有の識別子で復号して、復号秘密鍵を生成する秘密鍵生成ステップと、
前記キーセットの前記暗号化ブロック暗号鍵セットを前記復号秘密鍵により復号して、復号ブロック暗号鍵セットを生成するブロック暗号鍵セット生成ステップと、
前記復号ブロック暗号鍵セットを用いて、コンテンツの暗号化を行って暗号化コンテンツを生成するブロック暗号化ステップと、
前記復号ブロック暗号鍵セットを用いて、前記暗号化コンテンツの復号を行って復号コンテンツを生成するブロック復号ステップと、
をコンピュータに実行させるコンテンツ保護プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンテンツの保護技術に関する。
【背景技術】
【0002】
上記技術分野において、特許文献1には、コンテンツの配送においてブロック暗号化およびブロック復号する技術が開示されている。特許文献2には、プレイヤーのシリアンルナンバーを識別するデバイスIDからキーセットが導出される技術が開示されている。特許文献3には、不揮発メモリ内に公開鍵と秘密鍵と証明書とを格納してRSA復号を行う技術が開示されています。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特表平10−512074号公報
【特許文献2】特開2011−086313号公報
【特許文献3】特開2007−043353号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記文献に記載の技術では、コンテンツ保護用鍵の不正取得によるコンテンツの不正使用を充分に防ぐことができなかった。
【0005】
本発明の目的は、上述の課題を解決する技術を提供することにある。
【課題を解決するための手段】
【0006】
上記目的を達成するため、本発明に係るコンテンツ保護装置は、
暗号化ブロック暗号鍵セットと公開鍵と暗号化秘密鍵とのキーセットを記憶する記憶手段と、
前記キーセットの前記暗号化秘密鍵を、コンテンツ保護装置を組み込んだデバイス固有の識別子で復号して、復号秘密鍵を生成する秘密鍵生成手段と、
前記キーセットの前記暗号化ブロック暗号鍵セットを前記復号秘密鍵により復号して、復号ブロック暗号鍵セットを生成するブロック暗号鍵セット生成手段と、
前記復号ブロック暗号鍵セットを用いて、コンテンツの暗号化および復号を行うブロック暗号化および復号手段と、
を備える。
【0007】
上記目的を達成するため、本発明に係るデバイスは、
上記コンテンツ保護装置と、
前記コンテンツ保護装置に提供する前記デバイス固有の識別子を機密に保持する保持手段と、
前記コンテンツ保護装置により暗号化されたコンテンツを格納する格納手段と、
前記コンテンツのブロック番号および前記コンテンツを識別するコンテンツ識別子を前記コンテンツ保護装置に提供し、暗号化前の前記コンテンツを取得して前記コンテンツ保護装置に提供し、復号された前記コンテンツを前記コンテンツ保護装置から取得して出力するコンテンツ保存アプリケーションと、
を備える。
【0008】
上記目的を達成するため、本発明に係る情報処理装置は、
上記デバイスが組み込まれて、
前記コンテンツを所定の通信プロトコルに従って受信して、前記デバイスにより前記コンテンツを暗号化した暗号化コンテンツを格納し、
前記デバイスにより前記暗号化コンテンツを復号した復号コンテンツを、前記所定の通信プロトコルに従って送信する。
【0009】
上記目的を達成するため、本発明に係るコンテンツ保護方法は、
記憶手段に記憶された、暗号化ブロック暗号鍵セットと公開鍵と暗号化秘密鍵とのキーセットの前記暗号化秘密鍵を、コンテンツ保護装置を組み込んだデバイス固有の識別子で復号して、復号秘密鍵を生成する秘密鍵生成ステップと、
前記キーセットの前記暗号化ブロック暗号鍵セットを前記復号秘密鍵により復号して、復号ブロック暗号鍵セットを生成するブロック暗号鍵セット生成ステップと、
前記復号ブロック暗号鍵セットを用いて、コンテンツの暗号化を行って暗号化コンテンツを生成するブロック暗号化ステップと、
前記復号ブロック暗号鍵セットを用いて、前記暗号化コンテンツの復号を行って復号コンテンツを生成するブロック復号ステップと、
を含む。
【0010】
上記目的を達成するため、本発明に係るコンテンツ保護プログラムは、
記憶手段に記憶された、暗号化ブロック暗号鍵セットと公開鍵と暗号化秘密鍵とのキーセットの前記暗号化秘密鍵を、コンテンツ保護装置を組み込んだデバイス固有の識別子で復号して、復号秘密鍵を生成する秘密鍵生成ステップと、
前記キーセットの前記暗号化ブロック暗号鍵セットを前記復号秘密鍵により復号して、復号ブロック暗号鍵セットを生成するブロック暗号鍵セット生成ステップと、
前記復号ブロック暗号鍵セットを用いて、コンテンツの暗号化を行って暗号化コンテンツを生成するブロック暗号化ステップと、
前記復号ブロック暗号鍵セットを用いて、前記暗号化コンテンツの復号を行って復号コンテンツを生成するブロック復号ステップと、
をコンピュータに実行させる。
【発明の効果】
【0011】
本発明によれば、コンテンツ保護用鍵の不正取得によってもコンテンツの不正使用を充分に防ぐことができる。
【図面の簡単な説明】
【0012】
【図1】本発明の第1実施形態に係るコンテンツ保護装置の構成を示すブロック図である。
【図2A】本発明の第2実施形態に係るコンテンツ保護部を組み込んだデバイスの構成を示すブロック図である。
【図2B】本発明の第2実施形態に係るコンテンツ保護部の記憶部に格納されるキーセットの構成を示す図である。
【図3A】本発明の第2実施形態に係るコンテンツ保護部を組み込んだデバイスにおける暗号化コンテンツの格納処理を示すブロック図である。
【図3B】本発明の第2実施形態に係るコンテンツ保護部を組み込んだデバイスにおける復号コンテンツの出力処理を示すブロック図である。
【図4】本実施形態に係るコンテンツ保護部を組み込んだデバイスで、キーセットを格納する記憶部を機密部分に配置した情報処理装置のソフトウェア階層を示す図である。
【図5】本発明の第2実施形態に係るコンテンツ保護部を組み込んだデバイス、あるいは、コンテンツ保護部のキーセットを格納する記憶部を機密部分に配置した情報処理装置を含むシステムの構成を示すブロック図である。
【図6】本発明の第2実施形態に係る暗号化処理または復号処理のマクロな動作手順を示すシーケンス図である。
【図7A】本発明の第2実施形態に係る暗号化処理または復号処理における初期化処理(S601:Initialization Sequence)の手順を示すシーケンス図である。
【図7B】本発明の第2実施形態に係る暗号化処理または復号処理における鍵準備処理(S603:Preparation Sequence)の手順を示すシーケンス図である。
【図7C】本発明の第2実施形態に係る実行処理(Operation Sequence)における暗号化処理(S605:Encrypt data)の手順を示すシーケンス図である。
【図7D】本発明の第2実施形態に係る実行処理(Operation Sequence)における復号処理(S607:Decrypt data)の手順を示すシーケンス図である。
【図7E】本発明の第2実施形態に係る暗号化処理または復号処理における終了処理(S609:Finalization Sequence)の手順を示すシーケンス図である。
【図8】本発明の第2実施形態に係るコンテンツ保護部を組み込んだデバイスあるいはデバイスを有する情報処理装置のハードウェア構成を示すブロック図である。
【図9A】本発明の第2実施形態に係るコンテンツ保護部を組み込んだデバイスの処理手順を示すフローチャートである。
【図9B】本発明の第2実施形態に係る鍵準備処理(S905)の手順を示すフローチャートである。
【図10】本発明の第3実施形態に係るコンテンツ保護部を組み込んだデバイスの構成を示すブロック図である。
【図11】本発明の第3実施形態に係るキーセット生成処理のマクロな動作手順を示すシーケンス図である。
【図12A】本発明の第3実施形態に係る実行処理(Operation Sequence)におけるキーセット生成処理(S1105:Build Key Set)の手順を示すシーケンス図である。
【図12B】本発明の第3実施形態に係る実行処理(Operation Sequence)における他のキーセット生成処理(S1106:Build Key Set)の手順を示すシーケンス図である。
【図13】本発明の第3実施形態に係るコンテンツ保護部を組み込んだデバイスあるいはデバイスを有する情報処理装置のハードウェア構成を示すブロック図である。
【図14】本発明の第3実施形態に係るコンテンツ保護部を組み込んだデバイスの処理手順を示すフローチャートである。
【図15】本発明の第4実施形態に係る記憶媒体を経由してコンテンツ交換を行なうシステムの機密保護機能を説明する図である。
【発明を実施するための形態】
【0013】
以下に、図面を参照して、本発明の実施の形態について例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素は単なる例示であり、本発明の技術範囲をそれらのみに限定する趣旨のものではない。
【0014】
[第1実施形態]
本発明の第1実施形態としてのコンテンツ保護装置100について、図1を用いて説明する。コンテンツ保護装置100は、不正使用できないようなコンテンツの暗号化および復号を行う装置である。
【0015】
図1に示すように、コンテンツ保護装置100は、記憶部101と、秘密鍵生成部102と、ブロック暗号鍵セット生成部103と、ブロック暗号化および復号部104と、を含む。記憶部101は、暗号化ブロック暗号鍵セットと公開鍵と暗号化秘密鍵とのキーセット111を記憶する。秘密鍵生成部102は、キーセット111の暗号化秘密鍵を、コンテンツ保護装置100を組み込んだデバイス固有の識別子110で復号して、復号秘密鍵を生成する。ブロック暗号鍵セット生成部103は、キーセット111の暗号化ブロック暗号鍵セットを復号秘密鍵により復号して、復号ブロック暗号鍵セットを生成する。ブロック暗号化および復号部104は、復号ブロック暗号鍵セットを用いて、コンテンツの暗号化および復号を行う。
【0016】
また、キーセット111が署名されて記憶されている場合は、図1の破線で示した構成要素が付加される。すなわち、記憶部101に記憶されたキーセット111は、秘密鍵で署名されており(112)、署名されたキーセット(111+112)について公開鍵で署名の検証を行う検証部105をさらに備え、秘密鍵生成部102は、検証部105で検証された暗号化秘密鍵を使用し、ブロック暗号鍵セット生成部103は、検証部105で検証された暗号化ブロック暗号鍵セットを使用する。
【0017】
本実施形態によれば、コンテンツ保護用鍵をデバイス固有の識別子での復号を行うので、コンテンツ保護用鍵の不正取得によってもコンテンツの不正使用を充分に防ぐことができる。また、署名されたコンテンツ保護用鍵を保持して使用時に検証するので、コンテンツの不正使用をさらに防御することができる。
【0018】
[第2実施形態]
次に、本発明の第2実施形態に係るコンテンツ保護部を組み込んだデバイスについて説明する。本実施形態においては、第1実施形態のコンテンツ保護装置は、デバイスに組み込まれたコンテンツ保護部と表現するが、異なるものではない。以下、鍵ペアを用いる暗号方式として、RSAを用いた署名検証や暗号化復号について説明するが、例えば、署名検証に楕円曲線を用いるECDSA方式なども適用できる。
【0019】
本実施形態に係るコンテンツ保護部において、暗号化ブロック暗号鍵セットとRSA公開鍵と暗号化RSA秘密鍵とのRSA署名されたキーセットを記憶する記憶部は、ノーマル実行環境であるコンテンツ保護部の非機密部分とハードウェア的に分離された、コンテンツ保護部のセキュア実行環境である機密部分に含まれている。また、本実施形態に係るコンテンツ保護部は、デバイス固有の識別子をコンテンツ保護部が組み込まれたデバイスから取得するインタフェースを備える。また、コンテンツ保護部は、ブロック暗号化および復号部で使用する、コンテンツのブロック番号およびコンテンツを識別するコンテンツ識別子をデバイスのコンテンツ保存アプリケーションから取得するインタフェースを備える。また、コンテンツ保護部は、暗号化前のコンテンツを取得してブロック暗号化および復号部に入力し、ブロック暗号化および復号部から取得した復号されたコンテンツを出力するインタフェースを備える。また、コンテンツ保護部は、ブロック暗号化および復号部でブロック暗号化されたコンテンツをコンテンツ格納部に格納し、コンテンツ格納部からブロック暗号化されたコンテンツを読出してブロック暗号化および復号部に入力するインタフェースを備える。
【0020】
《コンテンツ保護部を組み込んだデバイスの構成》
図2Aは、本実施形態に係るコンテンツ保護部221を組み込んだデバイス200の構成を示すブロック図である。
【0021】
デバイス200は、アプリケーション211と、暗号化コンテンツ格納部212と、デバイス固有の識別子(ID)の記憶部213と、を備える。暗号化コンテンツ格納部212には、ブロック暗号化された暗号化コンテンツ202が格納される。また、デバイス固有の識別子(ID)としては、デバイス200の製造時に不揮発に記憶された製造番号などが使用されてよい。
【0022】
アプリケーション211は、本実施形態のコンテンツ保護部221として機能するミドルウェア(Middleware)を含み、コンテンツ保護部221のブロック暗号化および復号部241に、コンテンツを分割したブロックに固有のブロック番号222およびコンテンツを識別するコンテンツIDを提供する。
【0023】
コンテンツ保護部221として機能するミドルウェア(Middleware)は、コンテンツ保護処理部231と、キーセット記憶部232と、を有する。キーセット記憶部232は、少なくとも公開鍵と秘密鍵とを含むキーセット233を記憶する。
【0024】
コンテンツ保護処理部231は、ブロック暗号化および復号部241と、キーセットのRSA署名検証部242と、記憶部213のデバイス固有の識別子によるRSA秘密鍵生成部243と、復号RSA秘密鍵によるブロック暗号鍵セット生成部244と、を含む。ブロック暗号化および復号部241は、ブロックに固有のブロック番号222およびコンテンツを識別するコンテンツIDを用いて、復号されたブロック暗号鍵セットにより、入力された入力コンテンツ201をブロック暗号化して、暗号化コンテンツ202を生成する。
【0025】
ここで、ブロック暗号化および復号部241で使用される復号されたブロック暗号鍵セットは、次の手順で生成される。
(1)キーセット記憶部232に記憶された、暗号化ブロック暗号鍵セットとRSA公開鍵と暗号化RSA秘密鍵とのRSA署名されたキーセット233を、RSA署名検証部242で検証する。
(2)検証されたキーセットの暗号化RSA秘密鍵を、RSA秘密鍵生成部243において記憶部213のデバイス固有の識別子で復号して、復号RSA秘密鍵を生成する。
(3)検証されたキーセットの暗号化ブロック暗号鍵セットを、ブロック暗号鍵セット生成部244において復号RSA秘密鍵により復号して、復号ブロック暗号鍵セットを生成する。
【0026】
なお、本実施形態においては、暗号化と復号化は全く同じ構造になるので、プログラムで実装するのが容易である点、暗号化・復号化の際に使う「カウンタ」をContent IDとブロック番号から生成し、ブロックを任意の順番で暗号化・復号化することができることなどから、カウンタモード(CTRモード:CounTeR mode)を使用する。CTRモードは、1ずつ増加していくカウンタを暗号化して鍵ストリームを作りだすブロック暗号方式であり、カウンタの初期値は暗号化のたびにInitial Vector とContent ID、inputCtrとを元にして作る。しかしながら、使用するブロック暗号は、CTRモードに限定されない。
【0027】
このように、RSA検証およびデバイス固有の識別子で復号したコンテンツ保護用鍵をコンテンツの暗号化および復号に使用するので、コンテンツ保護用鍵の不正取得によってもコンテンツの不正使用を充分に防ぐデバイスまたはデバイスが組み込まれた情報処理装置を提供することができる。
【0028】
(キーセットの構成)
図2Bは、本実施形態に係るコンテンツ保護部221の記憶部232に格納されるキーセット233の構成を示す図である。
【0029】
コンテンツ保護部221の記憶部232に格納されたキーセット233は、キーセットのヘッダ234と、暗号化ブロック暗号鍵セット235と、暗号化RSA秘密鍵236と、RSA公開鍵237と、キーセットのRSA署名238と、を含む。
【0030】
(暗号化コンテンツの格納処理)
図3Aは、本実施形態に係るコンテンツ保護部221を組み込んだデバイス200における暗号化コンテンツの格納処理を示すブロック図である。なお、図3Aにおいて、図2と同様の構成要素には同じ参照番号を付して、重複する説明は省略する。
【0031】
暗号化コンテンツの格納処理においては、暗号されてない入力コンテンツ201がブロック暗号化および復号部241でブロック暗号化され、ブロック暗号化コンテンツ312が格納部212に暗号化コンテンツ202として保存される。ブロック暗号化および復号部241でのブロック暗号化には、コンテンツを分割したブロック番号222およびコンテンツ管理ID223と、復号ブロック暗号鍵セットとが使用される。かかる復号ブロック暗号鍵セットは、RSA署名により検証されたキーセットの暗号化RSA秘密鍵236を、記憶部213のデバイス固有の識別子で復号して生成した復号RSA秘密鍵により、検証されたキーセットの暗号化ブロック暗号鍵セット235を復号して生成される。
【0032】
(復号コンテンツの読出処理)
図3Bは、本実施形態に係るコンテンツ保護部221を組み込んだデバイス200における復号コンテンツの出力処理を示すブロック図である。なお、図3Bにおいて、図2または図3Aと同様の構成要素には同じ参照番号を付して、重複する説明は省略する。
【0033】
復号コンテンツの出力処理においては、暗号化コンテンツ202がブロック暗号化および復号部241でブロック復号され、復号コンテンツ322が出力される。ブロック暗号化および復号部241でのブロック復号には、コンテンツを分割したブロック番号222およびコンテンツ管理ID223と、復号ブロック暗号鍵セットとが使用される。かかる復号ブロック暗号鍵セットは、RSA署名により検証されたキーセットの暗号化RSA秘密鍵236を、記憶部213のデバイス固有の識別子で復号して生成した復号RSA秘密鍵により、検証されたキーセットの暗号化ブロック暗号鍵セット235を復号して生成される。
【0034】
《キーセットを格納する記憶部を機密部分に配置するソフトウェア階層》
図4は、本実施形態に係るコンテンツ保護部を組み込んだデバイスで、キーセットを格納する記憶部を機密部分に配置した情報処理装置400のソフトウェア階層を示す図である。本実施形態のキーセットを格納する記憶部は、ハードウェア的に分離されたSecure World425内に、Middleware's Secure Data Part426として確保される。
【0035】
情報処理装置400のソフトウェア階層は、Application層401および402と、Middlewareとして提供されるHDCP SDK層410と、Middlewareとして提供される本実施形態の暗号化/復号層Middleware420と、OSとの接続層431、432および433と、OS層441および442と、ファームウェア(Firmware)層460と、ハードウェア層(450、451および452)とを有する。
【0036】
(Application層)
User Application401は、暗復号化処理とセキュアに扱うべきデータを読み書きの機能が必要なユーザが独自に開発するアプリケーションを示す。一方、User Application402は、HDCP SDK410のAPIを使用してHDCP対向機とのAKE(Authentication and Key Exchange)開始の指示や、検出したトポロジーチェンジに対する具体的な動作の制御を行うアプリケーションを示す。ソース機器の場合は、AKEの完了後、送信するストリーミングデータを生成してHDCP SDK410に入力する。一方、シンク機器の場合、AKE完了後、HDCP SDK410が復号化したストリーミングデータの描画処理を行う。なお、Applicationは上記例に限定されない。種々の暗号化や復号に関連するハードウェアを利用するApplicationが接続可能である。
【0037】
(HDCP SDK層:所定の通信プロトコルのMiddleware)
HDCP SDK410は、例えば、HDCP 2.2 の仕様(HDCP Specification Rev. 2.2 Interface Independent Adaptation)に基づき、以下の機能を提供する。
(1) DCP(Digital Content Protection, LLC) が発行するデバイス鍵を使用して、対向となるHDCP機器とAKEを実行してセッションキーを共有する。
(2) セッションキーを使用したストリーミングデータの暗号化/復号化を行なう。
(3) 接続されているHDCP機器のトポロジーチェンジの検出と通知を行なう。
(4) HDCPソース機器の場合、SRM(System Renewability Message)リストに基づいた無効機器の検出を行なう。
【0038】
HDCP SDK410のSecure Data Partは、AKEのシーケンスで扱うデータのうち、HDCPの仕様によりセキュアに扱うことが定められているデータを扱う箇所であり、例えば、セッションキーやDCPが発行するデバイス鍵などを保持する。一方、HDCP SDK410のNonSecure Data Partは、AKEのシーケンスで扱うデータのうち、ネットワーク上に非暗号データとして流れるなど、HDCPの仕様によりセキュアに扱うことが定められていないデータを扱う箇所であり、例えば、DCPが発行する公開鍵やHDCP機器の機能を示すフラグなどを保持する。また、HDCP SDK410のCommunication Partは、AKEを行う際に使用するネットワーク通信セッションの確立や、AKE完了後、セッションキーにより暗復号化されたストリーミングデータのやり取りを行う。
【0039】
本実施形態において、HDCP SDK410は、AKEのシーケンスで扱うデータのうち、HDCPの仕様によりセキュアに扱うことが定められているデータ以外を扱う箇所であり、例えば、セッションキーやDCPが発行するデバイス鍵などを保持するためのSecure Data Partを有さない。Secure Data Partは、ハードウェア的に分離されたSecure World425内に、Middleware's Secure Data Part426として確保される。
【0040】
(暗号化/復号層のMiddleware)
暗号化/復号層Middleware401は、NonSecure OS上のNonSecure OS Part(NonSecure World)424と、Secure OS上のSecure OS Part(Secure World)425と、に分離されている。
【0041】
NonSecure World424は、User Application401または402から直接、あるいは、HDCP SDK層410を介してインタフェースするPublic API421と、ハードウェアとの接続を管理するPrivate Layer422と、Secure World425とのハードウェア的に分離されたデータ転送を行なうためのPorting Layer427と、を有する。
【0042】
一方、Secure World425は、NonSecure World424とのハードウェア的に分離されたデータ転送を行なうためのPorting Layer428と、Secure World425内でハードウェアとの接続を管理するPrivate Layer422と、Secure World425内でハードウェア層451および452を各々制御するPorting Layer423と、Middleware's Secure Data Part426と、を有する。
【0043】
なお、Porting Layer427とPorting Layer428との間のデータ転送429は、ファームウェア(Firmware)層460まで戻ることによって、ハードウェア的に分離される。
【0044】
(OSとの接続層)
OSとの接続層は、新たに、Secure World425をSecureOS層442と接続するSoC depended Secure Middleware for Secure OS433、を有する。
【0045】
(OS層)
OS層は、NonSecure World424に対応するNonSecure OS driverおよびNonSecure OS441と、Secure World425に対応するSecure OS driverおよびSecure OS442と、を有する。
【0046】
(ファームウェア層)
ファームウェア層460は、NonSecure World424とSecure World425とをハードウェア的に分離する。
【0047】
(ハードウェア層)
ハードウェア層は、SoC450と、各ハードウェア451あるいは452と、を有する。図4においては、Secure Storage Feature451とHardware Accelerated452とを示すが、これらに限定されない。他の機密保護の暗号化や復号に関連する機能を有するハードウェアが接続可能である。
【0048】
(Secure World)
Secure WorldとHDCP SDK410を組み合わせた場合、HDCP SDK410のSecure Data PartがSecure OS内に入り、NonSecure OS上で動作するHDCP SDKは、Secure Data Interfaceを使用してSecure OS内で動作するSecure Data Partとやり取りを行うことになる。
【0049】
《デバイスあるいは情報処理装置を含むシステム》
図5は、本発明の第2実施形態に係るコンテンツ保護部221を組み込んだデバイス、あるいは、コンテンツ保護部221のキーセットを格納する記憶部を、非機密部分とハードウェア的に分離された機密部分に配置した情報処理装置を含むシステム500の構成を示すブロック図である。
【0050】
図5のシステム500には、ネットワーク570により接続された、車内ネットワーク510と、宅内ネットワーク520と、SSL(Secure Sockets Layer)ネットワーク530と、センサネットワーク540と、クラウドサーバ550と、コンテンツサーバ560と、が図示されている。
【0051】
車内ネットワーク510は、本例ではMOST(Media Oriented Systems Transport)による車載器やマルチメディア機器のネットワークを形成し、クラウドサーバ550に対してはIoT(Internet of Things)の情報収集機器として、コンテンツサーバ560に対してはコンテンツ配信のシンク機器として接続される。また、同様に、宅内ネットワーク520は、本例ではDTCP−IP(Digital Transmission Content Protection over Internet Protocol)を使用するDLNA(登録商標)(Digital Living Network Alliance)やHDCP(High-bandwidth Digital Content Protection system)を使用するMiracastによる家電機器やマルチメディア機器のネットワークを形成し、クラウドサーバ550に対してはIoTの情報収集機器として、コンテンツサーバ560に対してはコンテンツ配信のシンク機器として接続される。
【0052】
また、DTCP−IPなどで接続されるSSLネットワークが接続される。また、センサネットワーク540のように、ゲートウェイを介して、コンテンツサーバ560からの動作制御やファームウェア提供と共に、クラウドサーバ550に対してIoTの情報収集機器として接続される。センサネットワーク540の場合には、通信プロトコル/通信経路の保護技術としては、SSL/TLSなどが主に使用される。
【0053】
クラウドサーバ550は、複数のサーバ群から構成され、それぞれのネットワーク接続機器を制御すると共に、IoTの情報収集機器から収集した情報を分析あるいは解析して、その結果をユーザに提供したりシステム制御に利用したりする。コンテンツサーバ560は、車内ネットワーク510や宅内ネットワーク520のマルチメディア機器に対してコンテンツを提供する。
【0054】
本実施形態のシステム500においては、各ネットワークに接続された機器への情報提供時や機器からの情報収集時における、機密情報(例えば、各種の鍵情報など)や個人情報などの漏洩、あるいは、コンテンツの不正コピーなどを防止するため、異なる通信アプリケーションを使用する異なる種類の機器に対して、共通の機密処理用ミドルウェア(図中は、Middleware)221を組み込んでいる。この本実施形態の機密処理用ミドルウェア221は、異なる通信アプリケーションと、異なる種類の機器が備える異なる暗号化/復号用ハードウェアと、を共通のシーケンスに従って結び付けることができる。
【0055】
《暗号復号処理シーケンス》
図6は、本実施形態に係る暗号化処理または復号処理のマクロな動作手順を示すシーケンス図である。暗号化処理または復号処理は、アプリケーションからの要請を受けて、キーセットをRSA検証してデバイス固有の識別子で復号ブロック暗号鍵セットを生成して、コンテンツの暗号化あるいは復号を行なう処理である。
【0056】
図6は、本実施形態のミドルウェア(Middleware)221と、ミドルウェア(Middleware)221が組み込まれたアプリケーション(Application)211が搭載されたデバイス(Device)200におけるシーケンスである。なお、デバイス200/アプリケーション211側は、Customer Application211と、Content Storage212と、Content Input Device601と、Content Output Device602と、を備える。Customer Application211は、デバイス200の用途に応じた処理を行う。Content Storage212は、本実施形態の暗号化コンテンツを格納する。Content Input Device601は、デバイス200にコンテンツを送信あるいは入力する入力元デバイスである。Content Output Device602は、デバイス200に格納されたコンテンツを送信あるいは出力する出力先デバイスである。
【0057】
本実施形態のミドルウェア221は、Secure Public APIs603と、Crypto Logic using Hardware Unique ID241〜244と、Data Process Queue604と、Worker Thread605と、Secure Storage232と、を備える。Secure Public APIs603は、アプリケーション211とのインタフェースを行う。Crypto Logic using Hardware Unique ID241〜244は、本実施形態のキーセットから復号されたブロック暗号鍵セットを生成する。Data Process Queue604は、暗号化処理あるいは復号処理されるコンテンツのデータをキューイングする。Worker Thread605は、データキューからのデータが送られると暗号化処理あるいは復号処理を実行する。Secure Storage232は、キーセットを記憶する。
【0058】
ミドルウェア221は、ステップS601において、アプリケーション211からのコンテンツ入出力の要求に応じて、初期化処理を実行する。ミドルウェア221は、ステップS603において、コンテンツの暗号化または復号のため、ブロック暗号鍵セットの準備処理を実行する。そして、コンテンツ入力の場合、アプリケーション211およびミドルウェア221は、ステップS605において、準備されたブロック暗号鍵セットを使って入力されたコンテンツをブロック暗号化して、暗号化コンテンツを格納部に格納する。一方、コンテンツ出力の場合、アプリケーション211およびミドルウェア221は、ステップS607において、準備されたブロック暗号鍵セットを使って格納部に格納された暗号化コンテンツをブロック復号して、復号コンテンツを出力する。ステップS605またはステップS607をコンテンツの全ブロックだけ繰り返した後、ミドルウェア221は、ステップS609において、暗号化処理または復号処理の終了処理を実行する。
【0059】
以下、図6のシーケンスの各部をさらに詳細なシーケンス図に従って説明する。
【0060】
(初期化処理)
図7Aは、本実施形態に係る暗号化処理または復号処理における初期化処理(S611:Initialization Sequence)の手順を示すシーケンス図である。
【0061】
ステップS700において、ユーザからのスタート要求があると、アプリケーション211がミドルウェア221の使用が必要か否かを判断する。ミドルウェア221の使用が必要であれば、ミドルウェア221は初期化処理(S611)を開始する。
【0062】
ステップS701〜S703において、ミドルウェア221が使用するリソースを確保し、初期ステータスに設定する。ステップS704〜S707において、キーセットを記憶するSecure Storage(記憶部)232をオープンする。ステップS708〜S711において、処理待ちデータをキューイングするData Process Queue604を生成し、暗号化処理または復号処理のWorker Thread605を立ち上げる。
【0063】
(鍵準備処理)
図7Bは、本実施形態に係る暗号化処理または復号処理における鍵準備処理(S613:Preparation Sequence)の手順を示すシーケンス図である。
【0064】
ステップS721〜S724において、アプリケーション211がSecure Storage(記憶部)232に記憶されたRSA署名されたキーセットを要求する。ステップS725において、アプリケーション211は取得したキーセットから暗号化または復号のためのブロック暗号鍵セットの準備を要求する。
【0065】
ステップS726において、ミドルウェア221は、RSA署名されたキーセットをRSA公開鍵により検証する。検証されれば、ステップS727〜S730において、デバイス固有の識別子を取得して、暗号化RSA秘密鍵をデバイス固有の識別子により復号して、復号RSA秘密鍵を生成する。ステップS731において、暗号化されたブロック暗号鍵セットをRSA秘密鍵で復号し、復号ブロック暗号鍵セットからContent KeyとInitial Vectorを抽出する。そして、ステップS732、S733において、抽出したContent KeyとInitial VectorをWorker Thread605へ送る。認証されなければ、ステップS734において、ミドルウェア221は、エラーステータスを返す。
【0066】
コンテンツの暗復号処理は、Worker Thread605で実行するが、AES CTR Modeで暗復号処理を行う場合、AES鍵とCounter値とが必要になる。ここで、ステップS731で復号化したブロック暗号鍵セットには、Content KeyとInitial Vectorとが含まれており、これをWorker Thread605に送付して、Content KeyをAES鍵として、また、Initial Vectorと上位アプリケーションが指定するContent IDおよびInputCtrとを組み合わせて生成する値を、Counter値として使用する。
【0067】
なお、Content KeyとInitial Vectorは、ブロック暗号鍵セットの任意の位置から128ビットを取り出したデータをContent Keyとして、また、別の任意の位置から64ビット取り出したデータをInitial Vectorとして使用する。RSA公開鍵による暗号化処理は、Content KeyとInitial Vectorに対して個別に行っているのではなく、この2つの情報が含まれているブロック暗号鍵セット全体に対して行う。また、AES CTR Modeでの運用の場合、Content Keyは、AES Keyとしてそのまま使用し、Counter値は、Initial Vectorと上位アプリケーションが指定するContent IDとの排他的論理和を演算した結果(64ビット)と、同じく上位アプリケーションが指定するInputCtr(64ビット)とを連結した、128ビットの値を使用する。
【0068】
(暗号化処理)
図7Cは、本実施形態に係る実行処理(Operation Sequence)における暗号化処理(S615:Encrypt data)の手順を示すシーケンス図である。
【0069】
ステップS741とS742において、アプリケーション211は、コンテンツ入力デバイス601をオープンする。また、ステップS743とS744において、アプリケーション211は、暗号化コンテンツ格納部212をオープンする。
【0070】
以下、ステップS745〜S756は、コンテンツ入力デバイス601から入力されたコンテンツをブロック暗号化して、暗号化コンテンツ格納部212に格納する処理をブロック単位で繰り返す。
【0071】
ステップS745〜S747において、アプリケーション211は、コンテンツ入力デバイス601からコンテンツを取得する。ステップS748〜S754において、アプリケーション211は、ミドルウェア221に対し、取得したコンテンツのブロックを順次にキュー604に蓄え、キュー604からWorker Thread605に移動したブロックデータのブロック暗号化を行う。そして、コンテンツの暗号化ブロックをアプリケーション211に返す。
【0072】
ステップS755とS756とにおいて、アプリケーション211は、暗号化ブロックを暗号化コンテンツ格納部212に保存する。
【0073】
全コンテンツのブロック暗号化と保存が終わると、ステップS757において、アプリケーション211は、暗号化コンテンツ格納部212をクローズする。また、ステップS758において、コンテンツ入力デバイス601からのステータスを受信して、アプリケーション211は、ステップS759とS760とにおいて、コンテンツ入力デバイス601をクローズする。
【0074】
(復号処理)
図7Dは、本実施形態に係る実行処理(Operation Sequence)における復号処理(S617:Decrypt data)の手順を示すシーケンス図である。
【0075】
ステップS761とS762において、アプリケーション211は、暗号化コンテンツ格納部212をオープンする。また、アプリケーション211は、ステップS763とS764において、コンテンツ出力デバイス602をオープンする。
【0076】
以下、ステップS765〜S776は、暗号化コンテンツ格納部212から読み出された暗号化コンテンツをブロック復号して、コンテンツ出力デバイス602に出力する処理をブロック単位で繰り返す。
【0077】
ステップS765とS766とにおいて、暗号化コンテンツ格納部212から暗号化コンテンツの1ブロックを読み出す。ステップS767〜S773において、アプリケーション211は、ミドルウェア221に対し、取得した暗号化コンテンツのブロックを順次にキュー604に蓄え、キュー604からWorker Thread605に移動した暗号化ブロックデータのブロック復号を行う。そして、コンテンツの復号ブロックをアプリケーション211に返す。
【0078】
ステップS774〜S776において、アプリケーション211は、復号ブロックをコンテンツ出力デバイス602に出力する。
【0079】
全コンテンツのブロック復号と出力が終わると、ステップS777において、アプリケーション211は、コンテンツ出力デバイス602をクローズする。また、アプリケーション211は、ステップS779とS780とにおいて、暗号化コンテンツ格納部212をクローズする。
【0080】
(終了処理)
図7Eは、本実施形態に係る暗号化処理または復号処理における終了処理(S619:Finalization Sequence)の手順を示すシーケンス図である。
【0081】
ステップS781〜S784において、アプリケーション211は、Work Thread605を停止させ、キュー604の終了処理をする。次に、ステップS785〜S788において、アプリケーション211は、キーセットを記憶する記憶部をクローズする。そして、ステップS789〜S791において、アプリケーション211は、ミドルウェア221が確保していたリソースを解放して、ステップS792において、暗号化処理の完了をユーザに通知する。
【0082】
《デバイスあるいは情報処理装置のハードウェア構成》
図8は、本発明の第2実施形態に係るコンテンツ保護部221を組み込んだデバイス200あるいはデバイスを有する情報処理装置400のハードウェア構成を示すブロック図である。
【0083】
図8で、CPU(Central Processing Unit)810は演算制御用のプロセッサであり、プログラムを実行することで図2、図3Aおよび図3Bの機能を実現する。なお、CPU810は、それぞれの機能に対応して複数あってもよく、例えば、NonSecure WorldとSecure Worldとは、異なるCPUで実現してもよい。また、各復号処理を、異なるCPUで並行に実行してもよい。ROM(Read Only Memory)820は、初期データおよびプログラムなどの固定データおよびプログラムを記憶する。通信制御部830は、ネットワークを介して、他の装置との通信を制御する。
【0084】
また、暗号化ハードウェア870は、1つまたは複数の本デバイス200や情報処理装置400に必要な暗号化ハードウェアである。なお、暗号化ハードウェア870が無い場合は、ミドルウェアライブラリに準備された暗号化ソフトウェアが代替するため、暗号化ハードウェア870が1つも接続されてなくてもよい。
【0085】
RAM(Random Access Memory)840は、CPU810が一時記憶のワークエリアとして使用するランダムアクセスメモリである。RAM840には、本実施形態の実現に必要なデータを記憶する領域が確保されている。キーセット841は、Secure Worldの記憶部から読み出されたRSA署名されたキーデータである。検証結果842は、RSA署名されたキーセット841の検証結果である。復号RSA秘密鍵843は、検証済みのキーセットの暗号化RSA秘密鍵から、デバイスIDにより復号化されたキーデータである。復号ブロック暗号鍵セット844は、検証済みのキーセットの暗号化ブロック暗号鍵セットから、復号RSA秘密鍵843より復号化されたキーデータである。コンテンツのブロック番号222は、アプリケーション211からブロック暗号化または復号のためにブロック暗号化および復号部に提供されるパラメータである。コンテンツ管理ID223は、アプリケーション211からブロック暗号化または復号のためにブロック暗号化および復号部に提供されるパラメータである。入力コンテンツ201は、コンテンツ入力デバイス601からアプリケーション211が取得するコンテンツデータである。暗号化コンテンツ202は、入力コンテンツ201を復号ブロック暗号鍵セット844とコンテンツ管理ID223とコンテンツのブロック番号222で暗号化して、暗号化コンテンツ格納部212に格納される暗号化コンテンツデータである。復号コンテンツ203は、暗号化コンテンツ格納部212に格納された暗号化コンテンツを復号ブロック暗号鍵セット844とコンテンツ管理ID223とコンテンツのブロック番号222で復号して、コンテンツ出力デバイス602に出力する復号コンテンツデータである。
【0086】
ストレージ850は、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶さる不揮発メモリである。Secure Data領域851には、RSA署名されたキーセット233と、暗号化コンテンツ202と、デバイスID213と、が格納される。ストレージ850には、以下のプログラムが格納される。デバイス制御プログラム852は、本デバイス200全体を制御するプログラムである。アプリケーション211は、デバイス200の用途に応じて搭載されるプログラムである。ミドルウェアモジュール221は、本実施形態のミドルウェアを実現するモジュール群である。ミドルウェアモジュール221には、RSA署名されたキーセットを検証するRSA署名検証モジュール853と、検証済みの暗号化RSA秘密鍵をデバイス固有のデバイスID213により復号するRSA秘密鍵復号モジュール854と、暗号化ブロック暗号鍵セットを復号RSA秘密鍵により復号するブロック暗号鍵セット復号モジュール855と、復号ブロック暗号鍵セットによりコンテンツの暗号化および復号を実行するブロック暗号化復号モジュール856と、を含む。
【0087】
入出力インタフェース860は、入出力デバイスとのデータ入出力を制御するためのインタフェースを行なう。本実施形態においては、入出力インタフェース860には、表示部861と、操作部862と、音声入出力部863とが接続される。また、入出力インタフェース860には、コンテンツまたはキーセットを記憶する取り外し可能な記憶媒体864が接続されてもよい。入出力インタフェース860には、さらに、撮像部1261やGPS位置算出部1262、などが接続されてもよい。
【0088】
なお、図8のRAM840やストレージ850には、デバイス200や情報処理装置400が有する汎用の機能や他の実現可能な機能に関連するプログラムやデータは図示されていない。
【0089】
《コンテンツ保護部を組み込んだデバイスの処理手順》
図9Aは、本実施形態に係るコンテンツ保護部221を組み込んだデバイス200の処理手順を示すフローチャートである。このフローチャートは、図8のCPU810がRAM840を使用して実行し、図2、図3Aおよび図3Bの機能構成部を実現する。
【0090】
デバイス200は、ステップS901において、初期化処理を実行する。そして、デバイス200のアプリケーション211の指示により、ミドルウェア221は、ステップS903において、ブロック暗号鍵セットの準備処理を実行する。
【0091】
デバイス200は、ステップS905において、コンテンツの入力か出力かを判定する。コンテンツの入力であれば、デバイス200は、ステップS907において、コンテンツ入力デバイス601からコンテンツを取得する。そして、デバイス200は、ステップS909において、取得したコンテンツをブロック暗号化して、ステップS911において、暗号化コンテンツを格納部212に格納する。
【0092】
一方、コンテンツの出力であれば、デバイス200は、ステップS913において、格納部212から暗号化コンテンツを読み出す。そして、デバイス200は、ステップS915において、読み出した暗号化コンテンツをブロック復号して、ステップS917において、コンテンツ出力デバイス602に出力する。
【0093】
(鍵準備処理)
図9Bは、本実施形態に係る鍵準備処理(S903)の手順を示すフローチャートである。
【0094】
ミドルウェア221は、ステップS921において、記憶部232からRSA署名されたキーセットを読み出す。ミドルウェア221は、ステップS923において、RSA署名されたキーセットを検証する。検証された場合、ミドルウェア221は、ステップS925において、デバイス固有のデバイスIDを取得する。そして、ミドルウェア221は、ステップS927において、取得したデバイスIDにより検証済みのキーセットの暗号化RSA秘密鍵を復号する。
【0095】
次に、ミドルウェア221は、ステップS929において、復号されたRSA秘密鍵により暗号化ブロック暗号鍵セットを復号する。そして、ミドルウェア221は、ステップS931において、復号したブロック暗号鍵セットをアプリケーションに渡す。
【0096】
本実施形態によれば、RSA検証およびデバイス固有の識別子で復号したコンテンツ保護用鍵をコンテンツの暗号化および復号に使用するので、コンテンツ保護用鍵の不正取得によってもコンテンツの不正使用を充分に防ぐデバイスまたはデバイスが組み込まれた情報処理装置を提供することができる。
【0097】
[第3実施形態]
次に、本発明の第3実施形態に係る、コンテンツ保護装置が保持する暗号化ブロック暗号鍵セットとRSA公開鍵と暗号化RSA秘密鍵とのRSA署名されたキーセットの生成について説明する。本実施形態は、上記第2実施形態と比べると、RSA署名されたキーセットの生成を有する点で異なる。すなわち、RSA秘密鍵とデバイス固有の識別子とを用いて、暗号化ブロック暗号鍵セットとRSA公開鍵と暗号化RSA秘密鍵とのキーセットを生成してRSA署名をし、RSA署名されたキーセットを生成して記憶部に格納する。その他の構成および動作は、第2実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
【0098】
《コンテンツ保護部を組み込んだデバイスの構成》
図10は、本実施形態に係るコンテンツ保護部を組み込んだデバイス1000の構成を示すブロック図である。なお、図10において、図2と同様の構成要素には同じ参照番号を付して、重複する説明を省略する。ここで、図2と図10との同じ参照番号の同様の構成要素について、図2では動作を図10ではその動作を実現するモジュール(module)を記載しているが、異なるものではない。
【0099】
図10には、乱数生成部1001と、乱数生成部1001からのブロック暗号鍵セット1002と、取得されたRSA鍵ペア1003と、RSA鍵ペア1003の内のRSA公開鍵1004と、RSA秘密鍵1005と、が示されている。そして、図10のデバイス1000は、RSA秘密鍵1005によりキーセットのRSA署名238を生成するRSA署名部1042と、RSA秘密鍵1005をデバイス固有のデバイスID1006で暗号化するRSA暗号部1043と、ブロック暗号鍵セット1002をRSA公開鍵で暗号化するブロック暗号鍵セット暗号部1044と、を備える。
【0100】
かかる構成により生成された、暗号化ブロック暗号鍵セット235と、暗号化RSA秘密鍵236と、RSA公開鍵237とに識別可能なヘッダ234を付して、これらの組をRSA秘密鍵でRSA署名して、RSA署名されたキーセット233として記憶部232に記憶する。
【0101】
《キーセット生成処理シーケンス》
図11は、本実施形態に係るキーセット生成処理のマクロな動作手順を示すシーケンス図である。キーセット生成処理は、ブロック暗号鍵セットとRSA鍵ペアとに基づいて、RSA公開鍵を使って暗号化した暗号化ブロック暗号鍵セットとデバイス固有のデバイスIDを使って暗号化した暗号化RSA秘密鍵とRSA公開鍵とを、RSA秘密鍵でRSA署名したキーセットを生成して、記憶部232に記憶する処理である。なお、図11において、図6と同様の構成要素には同じ参照番号を付して、重複する説明を省略する。すなわち、初期化処理S601と終了処理S609とは同じである。
【0102】
図11は、本実施形態のミドルウェア(Middleware)221と、ミドルウェア(Middleware)221が組み込まれたアプリケーション(Application)211が搭載されたデバイス(Device)200におけるシーケンスである。
【0103】
ミドルウェア221は、RSAキーペア無しのキーセット生成処理の場合、ステップS1105の手順で、RSA署名されたキーセットを生成する。ミドルウェア221は、RSAキーペア有りのキーセット生成処理の場合、ステップS1106の手順で、RSA署名されたキーセットを生成する。
【0104】
以下、図11のシーケンスの各部をさらに詳細なシーケンス図に従って説明する。なお、初期化処理S601と終了処理S609とは省略する。
【0105】
(キーセット生成処理)
図12Aは、本実施形態に係る実行処理(Operation Sequence)におけるキーセット生成処理(S1105:Build Key Set)の手順を示すシーケンス図である。
【0106】
ステップS1241において、アプリケーション211からミドルウェア221に、RSAキーペア無しのキーセット生成が要求される。ミドルウェア221においては、ステップS1242において、RSA鍵セットを生成する。また、ステップS1243において、コンテンツ鍵と初期ベクタを含むブロック暗号鍵セットを生成する。そして、ステップS1244において、RSA公開鍵でブロック暗号鍵セットを暗号化する。
【0107】
ステップS1245〜S1248において、RSA秘密鍵をデバイス固有のデバイスIDによって暗号化する。そして、ステップS1249において、キーセットを生成し、ステップS1250とS1251とにおいて、キーセットをRSA秘密鍵でRSA署名して、アプリケーション211に返す。
【0108】
(他のキーセット生成処理)
図12Bは、本実施形態に係る実行処理(Operation Sequence)における他のキーセット生成処理(S1106:Build Key Set)の手順を示すシーケンス図である。
【0109】
ステップS1261において、アプリケーション211からミドルウェア221に、RSAキーペア有りのキーセット生成が要求される。ミドルウェア221においては、ステップS1262において、コンテンツ鍵と初期ベクタを含むブロック暗号鍵セットを生成する。そして、ステップS1263において、RSA公開鍵でブロック暗号鍵セットを暗号化する。
【0110】
ステップS1264〜S1267において、RSA秘密鍵をデバイス固有のデバイスIDによって暗号化する。そして、ステップS1268において、キーセットを生成し、ステップS1269とS1270において、キーセットをRSA秘密鍵でRSA署名して、アプリケーション211に返す。
【0111】
(RSA署名されたキーセットの記憶)
ステップS1273〜S1274において、アプリケーション211からデバイスIDを用いて暗号化されRSA署名されたキーセットを記憶部232に記憶する。
【0112】
《デバイスあるいは情報処理装置のハードウェア構成》
図13は、本実施形態に係るコンテンツ保護部を組み込んだデバイスあるいはデバイスを有する情報処理装置のハードウェア構成を示すブロック図である。なお、図13において、図8および図10と同様な構成要素には同じ参照番号を付して、重複する説明を省略する。また、図13には、デバイスIDを用いて暗号化されRSA署名されたキーセットを生成するための構成要素を示し、図8のコンテンツのブロック暗号化および復号の構成要素は省略されている。
【0113】
RAM1340は、CPU810が一時記憶のワークエリアとして使用するランダムアクセスメモリである。乱数1001は、ブロック暗号鍵セットを生成するためのデータである。ブロック暗号鍵セット1002は、乱数1001から生成されたキーデータである。RSA鍵ペア1003は、生成されたあるいは取得されたRSA公開鍵とRSA秘密鍵とのペアである。
【0114】
ストレージ1350は、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶さる不揮発メモリである。ストレージ1350には、以下のプログラムが格納される。キーセット生成モジュール1351は、デバイスIDを用いて暗号化されRSA署名されたキーセットを生成するモジュールである。キーセット生成モジュール1351には、乱数を発生する乱数発生モジュール1352と、RSA鍵ペアを取得するRSA鍵ペア取得モジュール1353と、ブロック暗号鍵セットをRSA公開鍵で暗号化するブロック暗号鍵セット暗号化モジュール1354と、RSA秘密鍵をデバイスIDで暗号化するRSA秘密鍵暗号化モジュール1355と、キーセットをRSA公開鍵でRSA署名するRSA署名モジュール1356と、を含む。
【0115】
なお、図13のRAM1340やストレージ1350には、デバイス200や情報処理装置400が有する汎用の機能や他の実現可能な機能に関連するプログラムやデータは図示されていない。
【0116】
《コンテンツ保護部を組み込んだデバイスの処理手順》
図14は、本実施形態に係るコンテンツ保護部を組み込んだデバイス200の処理手順を示すフローチャートである。このフローチャートは、図13のCPU810がRAM1340を使用して実行し、図10の機能構成部を実現する。なお、図14の処理は、主にミドルウェア221が実行するので、ミドルウェア221を主体として説明する。
【0117】
ミドルウェア221は、ステップS1401において、乱数からブロック暗号鍵セットを生成する。ミドルウェア221は、ステップS1403において、RSA鍵ペアを取得する。ミドルウェア221は、ステップS1405において、ブロック暗号鍵セットをRSA公開鍵で暗号化する。ミドルウェア221は、ステップS1407において、RSA秘密鍵をデバイスIDで暗号化する。
【0118】
そして、ミドルウェア221は、ステップS1409において、ヘッダ、暗号化ブロック暗号鍵セット、暗号化RSA秘密鍵、RSA公開鍵をRSA秘密鍵で署名する。ミドルウェア221は、ステップS1411において、RSA署名したキーセットを記憶部232に記憶する。
【0119】
なお、本実施形態においては、デバイス固有のデバイスIDにより暗号化されRSA署名されたキーセットの生成処理と、RSA署名されたキーセットの検証とデバイス固有のデバイスIDによる復号処理とを一体に示した。しかし、RSA署名されたキーセットの生成処理と、RSA署名されたキーセットの復号処理とは、別途に異なる場所で異なる装置で実行されてもよい。
【0120】
本実施形態によれば、デバイス固有の識別子で暗号化し、RSA署名したコンテンツ保護用鍵を生成してコンテンツの暗号化および復号に使用するので、コンテンツ保護用鍵の不正取得によってもコンテンツの不正使用を充分に防ぐデバイスまたはデバイスが組み込まれた情報処理装置を提供することができる。
【0121】
[第4実施形態]
次に、本発明の第4実施形態に係るコンテンツ保護部を組み込んだデバイスあるいはデバイスを有する情報処理装置を含むシステムについて説明する。本実施形態に係る情報処理装置は、上記第2実施形態および第3実施形態と比べると、コンテンツ交換を行なうアプリケーションとして、通信アプリケーション以外にも記憶媒体を経由するコンテンツ交換においても、機密保護を実現するために共通のシーケンスを用いる点で異なる。記憶媒体には、DVDやメモリチップなどが含まれる。
【0122】
《記憶媒体経由の機密保護》
図15は、本実施形態に係る記憶媒体を経由してデータ交換を行なうシステム1500の機密保護機能を説明する図である。
【0123】
システム1500には、記憶媒体1510を経由してコンテンツ交換が可能な種々の機器が図示されている。かかる種々の機器に本実施形態のMiddleware221を組み込むことによって、記憶媒体1510を経由したデータ交換においても、ネットワークを介した通信によるコンテンツ交換と同様に、所望の暗号化および復号を含む機能を共通のシーケンスに従って利用することができる。
【0124】
[他の実施形態]
なお、[第2実施形態]および[第3実施形態]においては、鍵ペアを用いる暗号方式として、RSAを用いた署名検証や暗号化復号について説明したが、例えば、署名検証に楕円曲線を用いるECDSAなども適用でき、同様の効果を奏する。
【0125】
また、本実施形態においては、コンテンツのカウンタモード(CTRモード:CounTer mode)のブロック暗号化および復号による機密化を説明したが、他のECBモード(Electronic CodeBook mode:電子符号表モード)、CBCモード(Cipher Block Chaining mode:暗号ブロック連鎖モード)、CFBモード(Cipher-FeedBack mode:暗号フィードバックモード)、OFBモード(Output-FeedBack mode:出力フィードバックモード)であっても、ブロック暗号鍵の高い機密性が保持される。さらに、本実施形態においては、ブロック暗号ではなくストリーム暗号であっても、暗号鍵の高い機密性が保持される。
【0126】
また、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステムまたは装置も、本発明の範疇に含まれる。
【0127】
また、本発明は、複数の機器から構成されるシステムに適用されてもよいし、単体の装置に適用されてもよい。さらに、本発明は、実施形態の機能を実現するコンテンツ保護プログラムが、システムあるいは装置に直接あるいは遠隔から供給される場合にも適用可能である。したがって、本発明の機能をコンピュータで実現するために、コンピュータにインストールされるプログラム、あるいはそのプログラムを格納した媒体、そのプログラムをダウンロードさせるWWW(World Wide Web)サーバも、本発明の範疇に含まれる。特に、少なくとも、上述した実施形態に含まれる処理ステップをコンピュータに実行させるプログラムを格納した非一時的コンピュータ可読媒体(non-transitory computer readable medium)は本発明の範疇に含まれる。
【図1】
【図2A】
【図2B】
【図3A】
【図3B】
【図4】
【図5】
【図6】
【図7A】
【図7B】
【図7C】
【図7D】
【図7E】
【図8】
【図9A】
【図9B】
【図10】
【図11】
【図12A】
【図12B】
【図13】
【図14】
【図15】
【手続補正書】
【提出日】20180313
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】図8
【補正方法】変更
【補正の内容】
【図8】
【手続補正2】
【補正対象書類名】図面
【補正対象項目名】図9B
【補正方法】変更
【補正の内容】
【図9B】
【手続補正3】
【補正対象書類名】図面
【補正対象項目名】図11
【補正方法】変更
【補正の内容】
【図11】
【手続補正4】
【補正対象書類名】図面
【補正対象項目名】図13
【補正方法】変更
【補正の内容】
【図13】
【手続補正5】
【補正対象書類名】図面
【補正対象項目名】図14
【補正方法】変更
【補正の内容】
【図14】
【手続補正書】
【提出日】20180705
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
暗号化ブロック暗号鍵セットと公開鍵と暗号化秘密鍵とのキーセットを記憶する記憶手段と、
前記キーセットの前記暗号化秘密鍵を、コンテンツ保護装置を組み込んだデバイス固有の識別子で復号して、復号秘密鍵を生成する秘密鍵生成手段と、
前記キーセットの前記暗号化ブロック暗号鍵セットを前記復号秘密鍵により復号して、復号ブロック暗号鍵セットを生成するブロック暗号鍵セット生成手段と、
前記復号ブロック暗号鍵セットを用いて、コンテンツの暗号化および復号を行うブロック暗号化および復号手段と、
を備えるコンテンツ保護装置。
【請求項2】
前記公開鍵と秘密鍵と前記デバイス固有の識別子とを用いて、前記暗号化ブロック暗号鍵セットと前記公開鍵と前記暗号化秘密鍵との前記キーセットを生成するキーセット生成手段をさらに備える請求項1に記載のコンテンツ保護装置。
【請求項3】
前記記憶手段に記憶された前記キーセットは、秘密鍵で署名されており、
署名された前記キーセットについて公開鍵で署名の検証を行う検証手段をさらに備え、
前記秘密鍵生成手段は、前記検証手段で検証された暗号化秘密鍵を使用し、
前記ブロック暗号鍵セット生成手段は、前記検証手段で検証された暗号化ブロック暗号鍵セットを使用する請求項1に記載のコンテンツ保護装置。
【請求項4】
前記公開鍵と前記秘密鍵と前記デバイス固有の識別子とを用いて、前記暗号化ブロック暗号鍵セットと前記公開鍵と前記暗号化秘密鍵との前記キーセットを生成して、署名をし、署名された前記キーセットを生成するキーセット生成手段をさらに備える請求項3に記載のコンテンツ保護装置。
【請求項5】
暗号化および復号に使用される公開鍵と秘密鍵とのペアはRSAに従って生成されたペアであり、署名に使用される公開鍵と秘密鍵とのペアはRSAまたは楕円曲線を用いるECDSA方式に従って生成されたペアである請求項1乃至4のいずれか1項に記載のコンテンツ保護装置。
【請求項6】
前記記憶手段は、ノーマル実行環境である前記コンテンツ保護装置の非機密部分との間のデータ転送がファームウェア層まで戻るよう構成されることによって前記非機密部分から分離された、前記コンテンツ保護装置のセキュア実行環境である機密部分に含まれる請求項1乃至5のいずれか1項に記載のコンテンツ保護装置。
【請求項7】
前記ブロック暗号化および復号手段は、さらに前記コンテンツのブロック番号および前記コンテンツを識別するコンテンツ識別子を用いて、前記コンテンツの暗号化および復号を行う請求項1乃至6のいずれか1項に記載のコンテンツ保護装置。
【請求項8】
前記デバイス固有の識別子を前記コンテンツ保護装置が組み込まれたデバイスから取得する第1インタフェースと、
前記ブロック暗号化および復号手段で使用する、前記コンテンツのブロック番号および前記コンテンツを識別するコンテンツ識別子を前記デバイスのコンテンツ保存アプリケーションから取得する第2インタフェースと、
暗号化前の前記コンテンツを取得して前記ブロック暗号化および復号手段に入力し、前記ブロック暗号化および復号手段から取得した復号された前記コンテンツを出力する第3インタフェースと、
前記ブロック暗号化および復号手段でブロック暗号化された前記コンテンツをコンテンツ格納部に格納し、前記コンテンツ格納部からブロック暗号化された前記コンテンツを読出して前記ブロック暗号化および復号手段に入力する第4インタフェースと、
をさらに備える請求項1乃至7のいずれか1項に記載のコンテンツ保護装置。
【請求項9】
請求項1乃至8のいずれか1項に記載のコンテンツ保護装置と、
前記コンテンツ保護装置に提供する前記デバイス固有の識別子を機密に保持する保持手段と、
前記コンテンツ保護装置により暗号化されたコンテンツを格納する格納手段と、
前記コンテンツのブロック番号および前記コンテンツを識別するコンテンツ識別子を前記コンテンツ保護装置に提供し、暗号化前の前記コンテンツを取得して前記コンテンツ保護装置に提供し、復号された前記コンテンツを前記コンテンツ保護装置から取得して出力するコンテンツ保存アプリケーションと、
を備えるデバイス。
【請求項10】
請求項9に記載のデバイスが組み込まれて、
前記コンテンツを所定の通信プロトコルに従って受信して、前記デバイスにより前記コンテンツを暗号化した暗号化コンテンツを格納し、
前記デバイスにより前記暗号化コンテンツを復号した復号コンテンツを、前記所定の通信プロトコルに従って送信する情報処理装置。
【請求項11】
記憶手段に記憶された、暗号化ブロック暗号鍵セットと公開鍵と暗号化秘密鍵とのキーセットの前記暗号化秘密鍵を、コンテンツ保護装置を組み込んだデバイス固有の識別子で復号して、復号秘密鍵を生成する秘密鍵生成ステップと、
前記キーセットの前記暗号化ブロック暗号鍵セットを前記復号秘密鍵により復号して、復号ブロック暗号鍵セットを生成するブロック暗号鍵セット生成ステップと、
前記復号ブロック暗号鍵セットを用いて、コンテンツの暗号化を行って暗号化コンテンツを生成するブロック暗号化ステップと、
前記復号ブロック暗号鍵セットを用いて、前記暗号化コンテンツの復号を行って復号コンテンツを生成するブロック復号ステップと、
を含むコンテンツ保護方法。
【請求項12】
記憶手段に記憶された、暗号化ブロック暗号鍵セットと公開鍵と暗号化秘密鍵とのキーセットの前記暗号化秘密鍵を、コンテンツ保護装置を組み込んだデバイス固有の識別子で復号して、復号秘密鍵を生成する秘密鍵生成ステップと、
前記キーセットの前記暗号化ブロック暗号鍵セットを前記復号秘密鍵により復号して、復号ブロック暗号鍵セットを生成するブロック暗号鍵セット生成ステップと、
前記復号ブロック暗号鍵セットを用いて、コンテンツの暗号化を行って暗号化コンテンツを生成するブロック暗号化ステップと、
前記復号ブロック暗号鍵セットを用いて、前記暗号化コンテンツの復号を行って復号コンテンツを生成するブロック復号ステップと、
をコンピュータに実行させるコンテンツ保護プログラム。