<1.本発明の一態様を得るに至った経緯>
先ず、本願発明者が本発明の一態様であるコンテンツ配信システムを得るに至った経緯について説明する。
ネットワーク配信されるコンテンツをSDメモリカード等の記録媒体装置に記録するには、専用のハードウェアレコーダを用いて記録する場合と、PC上で動作するソフトウェアレコーダを用いて記録する場合とが考えられる。
PC上で動作するソフトウェアレコーダを用いてコンテンツをダウンロードする方法は比較的簡便であるため、ユーザに受け容れられ易いと思われる。ところが、ソフトウェアレコーダは、ハードウェアレコーダと比較してセキュリティが脆弱であり、AACSで用いられる秘密情報を漏洩させてしまう危険性が高い。
脆弱なソフトウェアレコーダを解析して、ソフトウェアレコーダに割り当てられているデバイス鍵を不正に取得し、このデバイス鍵を用いてコンテンツの不正コピーを行うプログラムを開発及び販売している業者が既に存在する。
AACSで用いられるデバイス鍵が不正に取得されると、例えば、正規の端末装置に成り済ました不正プログラムが、鍵配信装置からコンテンツを復号するためのタイトル鍵を取得することが想定される。上述したように、タイトル鍵は暗号化コンテンツの復号に用いる鍵データであるから、不正プログラムによって取得されることを抑制する必要がある。
そこで、本願発明者は、不正プログラムがタイトル鍵を取得するのを抑制するために研究を重ね、以下に説明するコンテンツ配信システムを得た。
<2.実施の形態1>
ここでは、本発明の一態様であるコンテンツ配信システム1について説明する。
<2−1.概要>
図1は、コンテンツ配信システム1の全体構成を示す図である。
コンテンツ配信システム1は、鍵発行装置100、コンテンツ制作装置200、コンテンツ配信装置300、鍵配信装置400、端末装置500及び記録媒体装置600から構成される。
鍵発行装置100は、コンテンツ配信システム1のセキュリティの基盤となる正当な機関が保有する装置である。鍵発行装置100は、コンテンツ配信システム1を構成する各装置に対して、正当な秘密鍵や公開鍵証明書を生成し、発行する。
コンテンツ制作装置200は、コンテンツと当該コンテンツを暗号化するためのタイトル鍵とを生成する。そして、コンテンツをタイトル鍵で暗号化した暗号化コンテンツを、コンテンツ配信装置300へ送信し、タイトル鍵を、鍵配信装置400へ送信する。
端末装置500は、一例として、ユーザの自宅に設置されたPCである。端末装置500は、インターネットなどのネットワークを介して、コンテンツ配信装置300と鍵配信装置400とに接続可能である。
また、端末装置500には、SDメモリカードなどの記録媒体装置600を装着することができる。端末装置500は、ネットワークを介して、コンテンツ配信装置300から暗号化コンテンツを受信し、装着されている記録媒体装置600に受信した暗号化コンテンツを書き込む。また、端末装置500は、ネットワークを介して、鍵配信装置400からタイトル鍵を受信し、記録媒体装置600に書き込む。
このとき、タイトル鍵は、鍵配信装置400と記録媒体装置600とが行う相互認証の結果確立されたセキュアな通信路(セッション)を介して送受信される。そのため、記録媒体装置600は、タイトル鍵の内容を端末装置500に知られることなく、タイトル鍵を鍵配信装置400から取得することができる。
以下では、各装置の詳細な構成及び各処理の動作について説明する。
<2−2.鍵発行装置100の構成>
鍵発行装置100は、プロセッサ、ROM、RAM、ハードディスクなどを備えるコンピュータシステムである。鍵発行装置100は、コンテンツ配信システム1を構成する各装置に対して、正当な秘密鍵や公開鍵証明書を生成し、発行する鍵発行処理を行う。
図2は、鍵発行装置100の機能的な構成を示すブロック図である。
図2に示すように、鍵発行装置100は、ルート鍵ペア生成部101、ルート鍵ペア格納部102、ルート公開鍵送信部103、鍵ペア生成部104、証明書生成部105、秘密鍵・証明書格納部106及び秘密鍵・証明書送信部107から構成される。
ルート鍵ペア生成部101は、コンテンツ配信システム1におけるセキュリティの根幹となる鍵発行装置100のルート鍵ペアを生成する。ルート鍵ペアは、ルート公開鍵及びルート秘密鍵から成る。
ルート鍵ペア格納部102は、ルート鍵ペア生成部101が生成したルート鍵ペアを格納する。
ルート公開鍵送信部103は、ルート鍵ペア格納部102に格納されているルート公開鍵を、鍵配信装置400、端末装置500及び記録媒体装置600へ送信する。ルート公開鍵は、鍵配信装置400、端末装置500及び記録媒体装置600が、鍵発行装置100により生成された署名を検証する際に用いられる。
鍵ペア生成部104は、コンテンツ制作装置200、鍵配信装置400、端末装置500及び記録媒体装置600の鍵ペアを生成する。
具体的に、鍵ペア生成部104は、コンテンツ制作装置200に埋め込まれるコンテンツ配信装置公開鍵及びコンテンツ制作装置秘密鍵から成るコンテンツ制作装置鍵ペアを生成する。また、鍵ペア生成部104は、鍵配信装置400に埋め込まれる鍵配信装置公開鍵及び鍵配信装置秘密鍵から成る鍵配信装置鍵ペアを生成する。また、鍵ペア生成部104は、端末装置500に埋め込まれる端末装置公開鍵及び端末装置秘密鍵から成る端末装置鍵ペアを生成する。また、鍵ペア生成部104は、記録媒体装置600に埋め込まれる記録媒体装置公開鍵及び記録媒体装置秘密鍵から成る記録媒体装置鍵ペアを生成する。
証明書生成部105は、コンテンツ制作装置200、鍵配信装置400、端末装置500及び記録媒体装置600に埋め込まれる公開鍵証明書を生成する。
図3は、証明書生成部105により生成された公開鍵証明書の一例を示す図である。
図3(a)は、コンテンツ制作装置200に配布するコンテンツ制作装置証明書110である。コンテンツ制作装置証明書110は、コンテンツ制作装置IDとコンテンツ制作装置公開鍵と署名とから成る。コンテンツ制作装置証明書110は、鍵ペア生成部104が生成したコンテンツ制作装置公開鍵にコンテンツ制作装置200の識別子であるコンテンツ制作装置IDを付加したデータを署名対象データとする。証明書生成部105は、ルート秘密鍵を署名生成鍵として用い、署名対象データに署名検証アルゴリズムを施すことにより署名を生成する。そして、コンテンツ制作装置ID、コンテンツ制作装置公開鍵及び署名から成るコンテンツ制作装置証明書110を生成する。
図3(b)は、鍵配信装置400に配布する鍵配信装置証明書120である。図3(c)は、端末装置500に配布する端末装置証明書130である。図3(d)は、記録媒体装置600に配布する記録媒体装置証明書140である。これらの公開鍵証明書も、コンテンツ制作装置証明書110と同様に生成される。
秘密鍵・証明書格納部106は、鍵ペア生成部104が生成した各装置の秘密鍵と、証明書生成部105が生成した各装置の公開鍵証明書とをペアとして格納する。
秘密鍵・証明書送信部107は、秘密鍵・証明書格納部106に格納されている秘密鍵と公開鍵証明書とのペアを、各装置へ送信する。具体的に、コンテンツ制作装置証明書110をコンテンツ制作装置200へ送信し、鍵配信装置証明書120を鍵配信装置400へ送信し、端末装置証明書130を端末装置500へ送信し、記録媒体装置証明書140を記録媒体装置600へ送信する。
<2−3.鍵発行処理の動作>
図4は、鍵発行装置100による鍵発行処理の動作を示すフローチャートである。
鍵発行装置100は、ルート公開鍵及びルート秘密鍵から成るルート鍵ペアを生成し(ステップS1)、ルート鍵ペア格納部102に格納する。そして、ルート公開鍵送信部103は、ルート公開鍵要求に応じて、鍵配信装置400、端末装置500及び記録媒体装置600へ、ルート公開鍵を送信する(ステップS2)。
鍵ペア生成部104は、コンテンツ制作装置200の鍵ペアを生成する(ステップS3)。証明書生成部105は、コンテンツ制作装置証明書110を生成する(ステップ4)。秘密鍵・証明書送信部107は、コンテンツ制作装置秘密鍵とコンテンツ制作装置証明書110とを、コンテンツ制作装置200へ送信する(ステップ5)。
鍵ペア生成部104は、鍵配信装置400の鍵ペアを生成する(ステップS6)。証明書生成部105は、鍵配信装置証明書120を生成する(ステップ7)。秘密鍵・証明書送信部107は、鍵配信装置秘密鍵と鍵配信装置証明書120とを、鍵配信装置200へ送信する(ステップ8)。
鍵ペア生成部104は、端末装置500の鍵ペアを生成する(ステップS9)。証明書生成部105は、端末装置証明書130を生成する(ステップ10)。秘密鍵・証明書送信部107は、端末装置秘密鍵と端末装置証明書130とを、端末装置500を製造する装置へ送信する(ステップ11)。
鍵ペア生成部104は、記録媒体装置600の鍵ペアを生成する(ステップS12)。証明書生成部105は、記録媒体装置証明書140を生成する(ステップ13)。秘密鍵・証明書送信部107は、記録媒体装置秘密鍵と記録媒体装置証明書140とを、記録媒体装置600を製造する装置へ送信する(ステップ14)。
<2−4.コンテンツ制作装置200の構成>
コンテンツ制作装置200は、プロセッサ、ROM、RAM、ハードディスクなどを備えるコンピュータシステムである。コンテンツ制作装置200は、コンテンツを生成して暗号化するコンテンツ制作処理を行う。
図5は、コンテンツ制作装置200の機能的な構成を示すブロック図である。
図5に示すように、コンテンツ制作装置200は、秘密鍵・証明書受信部201、秘密鍵・証明書格納部202、素材格納部203、編集部204、タイトル鍵生成部205、タイトル鍵格納部206、暗号部207、コンテンツ格納部208、コンテンツ識別情報生成部209、署名部210、コンテンツ識別情報格納部211、UR入力部212、UR格納部213、コンテンツ登録部214及びタイトル鍵・UR登録部215から構成される。
秘密鍵・証明書受信部201は、鍵発行装置100からコンテンツ制作装置秘密鍵とコンテンツ制作装置証明書110とを受信する。
秘密鍵・証明書格納部202は、秘密鍵・証明書受信部201が受信したコンテンツ制作装置秘密鍵とコンテンツ制作装置証明書110とを格納する。
素材格納部203は、複数の素材データ(映画等のビデオデータ及びオーディオデータ)を格納する。
編集部204は、素材格納部203に格納されている複数の素材データを組み合わせて映画などを制作する。
タイトル鍵生成部205は、コンテンツを暗号化するための暗号鍵であるタイトル鍵を生成する。一例として、タイトル鍵生成部205は、タイトル鍵として128ビットの乱数を生成する。
タイトル鍵格納部206は、タイトル鍵生成部205が生成したタイトル鍵を格納する。
暗号部207は、タイトル鍵格納部206に格納されているタイトル鍵を用いて、編集部204が生成した映画などに暗号化アルゴリズムD1を施して暗号化し、コンテンツを生成する。以下では、特に注釈がない限り、タイトル鍵で暗号化された状態の映画などを「コンテンツ」と記載する。なお、暗号化アルゴリズムD1の一例はDES(Data Encryption Standard)である。
コンテンツ格納部208は、暗号部207により生成されたコンテンツを格納する。
コンテンツ識別情報生成部209は、コンテンツ格納部208に格納されているコンテンツから、当該コンテンツを一意に識別するコンテンツ識別情報を生成する。コンテンツ識別情報は、一例として以下のように生成される。
コンテンツ識別情報生成部209は、コンテンツを複数の部分に分けて部分コンテンツを生成する。そして、各部分コンテンツのハッシュ値を演算する。これら複数のハッシュ値を結合した結合データのハッシュ値を演算する。コンテンツ識別情報生成部209は、この結合データのハッシュ値を、コンテンツ識別情報とする。
署名部210は、コンテンツ制作装置秘密鍵を署名生成鍵として、コンテンツ識別情報生成部209が生成したコンテンツ識別情報に署名生成アルゴリズムを施して署名を生成する。署名部210が署名を生成することにより、コンテンツ識別情報を改竄から保護することができる。
コンテンツ識別情報格納部211は、コンテンツ識別情報生成部209により生成されたコンテンツ識別情報及び署名部210により生成された署名を格納する。
UR入力部212は、キーボードやマウスなどの入力デバイスを備える。UR入力部212は、コンテンツ制作者により入力デバイスが操作されることにより、コンテンツの再生可能回数や移動の可否など、コンテンツの利用に係る条件であるUsageRule(以下、「UR」と記載する。)の入力を受け付ける。
UR格納部213は、UR入力部212が受け付けたURを格納する。
コンテンツ登録部214は、コンテンツ格納部208に格納されているコンテンツと、コンテンツ識別情報格納部211に格納されているコンテンツ識別情報とを、コンテンツ配信装置400に登録する。
タイトル鍵・UR登録部215は、タイトル鍵格納部206に格納されているタイトル鍵と、UR格納部213に格納されているURと、コンテンツ識別情報格納部211に格納されているコンテンツ識別情報とを、鍵配信装置400に登録する。
<2−5.コンテンツ制作処理の動作>
図6は、コンテンツ制作装置200によるコンテンツ制作処理の動作を示すフローチャートである。
コンテンツ制作処理に先立ち、秘密鍵・証明書受信部201は、鍵発行装置100からコンテンツ制作装置秘密鍵とコンテンツ制作装置証明書とを受信し、秘密鍵・証明書格納部202に格納している。
編集部204は、素材格納部203が格納している素材データを組み合わせて、映画などを生成する(ステップS21)。
タイトル鍵生成部205は、タイトル鍵を生成し(ステップS22)、生成したタイトル鍵を、タイトル鍵格納部206に格納する。
暗号部207は、編集部204により編集された素材データ(映画など)をタイトル鍵で暗号化し、コンテンツを生成する(ステップS23)。暗号部207は、生成したコンテンツを、コンテンツ格納部208に格納する。
コンテンツ識別情報生成部209は、コンテンツ格納部208に格納されているコンテンツを読み出し、コンテンツを一意に識別するコンテンツ識別情報を生成する(ステップ24)。署名部210は、コンテンツ識別情報生成部209が生成したコンテンツ識別情報に対し署名を生成する(ステップ25)。生成されたコンテンツ識別情報と署名とは、コンテンツ識別情報格納部211に格納される。
続いて、UR入力部212が、コンテンツ制作者からURの入力を受け付ける(ステップS26)。入力されたURは、UR格納部213に格納される。
コンテンツ登録部214は、コンテンツとコンテンツ識別情報とを組にして、コンテンツ配信装置300に送信する(ステップS27)。
タイトル鍵・UR登録部215は、タイトル鍵とURとコンテンツ識別情報とを組にして、鍵配信装置400に送信する(ステップS28)。
<2−6.コンテンツ配信装置300の構成>
コンテンツ配信装置300は、プロセッサ、ROM、RAM、ハードディスク、ネットワーク接続ユニットなどを備えるコンピュータシステムである。
コンテンツ配信装置300は、コンテンツ制作装置200からコンテンツを受信して格納する。また、コンテンツ配信装置300は、ネットワークを介して接続された端末装置500へコンテンツを配信するコンテンツ配信処理を行う。
図7は、コンテンツ配信装置300の機能的な構成を示すブロック図である。
図7に示すように、コンテンツ配信装置300は、コンテンツ受信部301、コンテンツ格納部302、配信依頼受信部303及びコンテンツ配信部304から構成される。
コンテンツ受信部301は、コンテンツ制作装置200からコンテンツとコンテンツ識別情報との組を受信する。
コンテンツ格納部302は、コンテンツ受信部301が受信したコンテンツとコンテンツ識別情報との組を格納する。図8は、コンテンツ格納部302に格納されているデータを示す図である。コンテンツ格納部302は、図8に示すように、コンテンツとコンテンツ識別情報とから成るコンテンツデータを複数格納している。例えば、コンテンツデータ311は、コンテンツ識別子「0001」とコンテンツ「CNT−0001」とから構成される。コンテンツデータ312は、コンテンツ識別子「0008」とコンテンツ「CNT−0008」とから構成される。
配信依頼受信部303は、端末装置500から配信依頼データを受信すると、コンテンツ配信部304に対し、コンテンツの配信を指示する。図9に配信依頼データの一例を示す。図9に示す配信依頼データ313は、コンテンツ著作権者IDとコンテンツ識別情報とを含む。配信依頼受信部303は、配信依頼データ313に含まれるコンテンツ識別情報「0008」を、コンテンツ配信部304へ通知する。
コンテンツ配信部304は、配信依頼受信部303からコンテンツの配信を指示されると、配信依頼受信部303から通知されたコンテンツ識別情報に対応するコンテンツをコンテンツ格納部302から検索する。対応するコンテンツを発見した場合には、コンテンツ格納部302からコンテンツとコンテンツ識別情報とを読み出して、端末装置500へ配信する。
<2−7.コンテンツ配信処理の動作>
図10は、コンテンツ配信装置300によるコンテンツ配信処理の動作を示すフローチャートである。
コンテンツ配信処理に先立ち、コンテンツ受信部301は、コンテンツ制作装置200からコンテンツとコンテンツ識別情報とを受信しており、コンテンツ格納部302には、コンテンツデータが格納されている。
配信依頼受信部303は、端末装置500から配信依頼データを受信する(ステップS31)。配信依頼受信部303は、コンテンツ配信部304に対し、コンテンツの配信を指示する。
コンテンツ配信部304は、コンテンツの配信を指示されると、コンテンツ格納部302から、配信依頼データに含まれるコンテンツ識別情報に対応するコンテンツを検索する(ステップS32)。対応するコンテンツを発見した場合、コンテンツ配信部304は、コンテンツとコンテンツ識別情報とを依頼元の端末装置500に配信する(ステップS33)。対応するコンテンツが発見できなかった場合は、コンテンツ配信部304は、依頼元の端末装置500に対し、発見できなかった旨を通知するとしてもよい。
<2−8.鍵配信装置400の構成>
鍵配信装置400は、プロセッサ、ROM、RAM、ハードディスク、ネットワーク接続ユニットなどを備えるコンピュータシステムである。鍵配信装置400は、コンテンツの復号に用いるタイトル鍵を記録媒体装置600へ送信する鍵配信処理を行う。
図11は、鍵配信装置400の機能的な構成を示すブロック図である。
図11に示すように、鍵配信装置400は、ルート公開鍵受信部401、ルート公開鍵格納部402、秘密鍵・証明書受信部403、秘密鍵・証明書格納部404、タイトル鍵・UR受信部405、タイトル鍵・UR格納部406、タイトル鍵演算部407、相互認証部408、暗号復号部409、記録媒体装置ID受信部410、MAC演算部411及びUR送信部412から構成される。
ルート公開鍵受信部401は、鍵発行装置100からルート公開鍵を受信する。
ルート公開鍵格納部402は、ルート公開鍵受信部401が受信したルート公開鍵を格納する。
秘密鍵・証明書受信部403は、鍵発行装置100から鍵配信装置秘密鍵及び鍵発行装置証明書を受信する。
秘密鍵・証明書格納部404は、秘密鍵・証明書受信部403が受信した鍵配信装置秘密鍵及び鍵発行装置証明書を格納する。
タイトル鍵・UR受信部405は、コンテンツ制作装置200からタイトル鍵とURとコンテンツ識別子との組を受信する。
タイトル鍵・UR格納部406は、タイトル鍵・UR受信部405から、タイトル鍵とURとコンテンツ識別子とを受け取り、図12に示すコンテンツ権利テーブル420に登録する。図12に示すように、コンテンツ権利テーブル420は、複数のコンテンツ権利情報421、422、・・・を含む。例えば、コンテンツ権利情報421は、コンテンツ識別情報「0001」と、タイトル鍵「Kt−0001」と、UR「再生:3回、移動:不可」とを含む。また、コンテンツ権利情報422は、コンテンツ識別情報「0002」と、タイトル鍵「Kt−0002」と、UR「再生:制限なし、移動:可」とを含む。
タイトル鍵演算部407は、タイトル鍵・UR格納部406からタイトル鍵とURとを取得する。そして、タイトル鍵演算部407は、URのハッシュ値を計算する。タイトル鍵演算部407は、URのハッシュ値とタイトル鍵とを用いた可逆演算可能な演算を行って、演算タイトル鍵を生成する。ここでは一例として、タイトル鍵演算部407は、URのハッシュ値とタイトル鍵との排他的論理和(XOR)を計算することにより、演算タイトル鍵(XORedタイトル鍵)を生成する。
タイトル鍵演算部407で生成された演算タイトル鍵は、暗号復号部409へ渡り、暗号復号部409において、記録媒体装置600と共有した共通鍵で暗号化された後に送信される。
相互認証部408は、端末装置500との間で素因数分解の複雑性を基盤とした鍵交換方式であるDifiee−Helman方式や、楕円曲線上の離散対数問題を基盤とした鍵交換方式であるEC−DH(Eliptic Curve Difiee−Helman)方式などを用いて相互認証を行い、共通鍵を共有し合う。また、同様に、相互認証部408は、記録媒体装置600と相互認証を行い、記録媒体装置600との間で共通鍵を共有し合う。
暗号復号部409は、端末装置500と共有した共通鍵を用いて、端末装置500との間で送受信されるデータを暗号化したり復号したりする。また、暗号復号部409は、記録媒体装置600と共有した共通鍵を用いて、タイトル鍵演算部407により生成された演算タイトル鍵を暗号化し、記録媒体装置600に送信する。
記録媒体装置ID受信部410は、端末装置500から暗号復号部409を経由して、コンテンツの書き込み先である記録媒体装置を識別するための記録媒体装置IDを受信する。なお、「暗号復号部409を経由して」とは、暗号復号部409が、共通鍵で暗号化された記録媒体装置IDを受信し、記録媒体装置ID受信部410へ渡す前に、暗号化された記録媒体装置IDを、共通鍵を用いて復号することを意味する。
MAC演算部411は、タイトル鍵・UR格納部406に格納されているタイトル鍵と、記録媒体装置ID受信部410が受信した記録媒体装置IDとから、MAC(Message Authentication Code)を演算する。一例として、MAC演算部411は、タイトル鍵を認証メッセージとし、記録媒体装置IDを鍵として用い、MAC生成アルゴリズムを施すことにより、タイトル鍵の完全性を検証するためのMACを生成する。MAC演算部411は、生成したMACを、暗号復号部409を経由して、端末装置500へ送信する。なお、MAC演算部411により生成されたMACは、端末装置500により、鍵配信装置600に書き込まれる。
本実施の形態では、MACは、記録媒体装置600に記録されるコンテンツ及びタイトル鍵を記録媒体装置600に関連付けるための認証情報として用いられる。すなわち、記録媒体装置600に、タイトル鍵と記録媒体装置IDとから生成されたMACを書き込むことにより、コンテンツの再生時にMACを検証することで、再生しようとしているコンテンツが記録媒体装置600に正規に記録されたものであるか否かを判定することができる。
UR送信部412は、端末装置500からの要求に応じて、タイトル鍵・UR格納部406に格納されているURを、端末装置500へ送信する。
<2−9.相互認証処理の動作>
ここでは、図13及び図14のフローチャートを用いて、相互認証部408が実行する相互認証処理の一例について説明する。ここでは、一例として、鍵配信装置400及び記録媒体装置600間で実行される相互認証処理について説明する。
鍵配信装置400の相互認証部408は、160ビットのランダム値Hn(Host nonce)を生成する(ステップS41)。なお、ここでは、鍵長が160ビットであるのEC−DSA(Eliptic Curve−Digital Signature Algorithm)を用いるため、160ビットのランダム値を生成するが、他のアルゴリズムを用いる場合、ここで生成されるランダム値は160ビットではないことは言うまでもない。
相互認証部408は、ステップS41で生成した160ビットのランダム値Hnに、秘密鍵・証明書格納部404に格納されている鍵配信装置証明書を連結する。これを、チャレンジデータとして、記録媒体装置600へ送信する(ステップS42)。なお、図13では、鍵配信装置証明書を「Hcert(Host Certificate)」と記載している。また、「||」はデータの連結を意味する記号である。
記録媒体装置600は、鍵配信装置400からチャレンジデータを受信すると、ルート公開鍵を用いて、ステップS42で受信したチャレンジデータに含まれる鍵配信装置証明書Hcertの検証処理を行う(ステップS43)。鍵配信装置証明書Hcertの検証処理に失敗すると(ステップS44でNO)、記録媒体装置600は処理を停止する。鍵配信装置証明書Hcertの検証処理に成功すると(ステップS44でYES)、記録媒体装置600は、160ビットのランダム値Mn(Media nonce)を生成する(ステップS45)。
記録媒体装置600は、ステップS45で生成した160ビットのランダム値Mnに、記録媒体装置証明書を連結する。これを、チャレンジデータとして、鍵配信装置400へ送信する(ステップS46)。なお、図13では、記録媒体装置証明書を「Mcert(Media Certificate)」と記載している。
鍵配信装置400は、記録媒体装置600からチャレンジデータを受信すると、ルート公開鍵を用いて、ステップS46で受信したチャレンジデータに含まれる記録媒体装置証明書Mcertの検証処理を行う(ステップS47)。記録媒体装置証明書Mcertの検証処理に失敗すると(ステップS48でNO)、鍵配信装置400は処理を停止する。記録媒体装置証明書Mcertの検証処理に成功すると(ステップS48でYES)、鍵配信装置400の相互認証部408は、ステップS53へ進む。
記録媒体装置600は、ステップS46でチャレンジデータを送信した後、160ビットのランダム値Mk(Media Key)を生成する(ステップS49)。なお、EC−DH以外の他のアルゴリズムを用いる場合には、ステップS49で生成するランダム値は、160ビットとは限らない。
記録媒体装置600は、ステップS49で生成したランダム値Mkに対して、本システムにおいて予め定められている楕円暗号のパラメータであるベースポイントGを用いて、Mv=Mk・Gを計算する(ステップS50)。
さらに、記録媒体装置600は、ステップS42で受信したチャレンジデータに含まれるHnと、ステップS50で算出したMvとを連結したデータであるHn||Mvに対して、記録媒体装置秘密鍵(Mpriv)を用いてデジタル署名(Sign(Mpriv,Hn||Mv))を生成する(ステップS51)。
記録媒体装置600は、ステップS50で算出したMvと、ステップS51で生成したデジタル署名Sign(Mpriv,Hn||Mv)とを連結したデータをレスポンスデータとして、鍵配信装置400へ送信する(ステップS52)。
鍵配信装置400の相互認証部408は、記録媒体装置600からレスポンスデータを受信する。相互認証部408は、受信したレスポンスデータに含まれるデジタル署名Sign(Mpriv,Hn||Mv)の検証を行う(ステップS53)。具体的に、相互認証部408は、レスポンスデータからMvを抽出し、ステップS41で生成したHnとMvとを連結したデータに、記録媒体装置証明書Mcertに含まれる記録媒体装置公開鍵を用いて、デジタル署名を検証する。
デジタル署名の検証に失敗すると(ステップ54でNO)、鍵配信装置400は、処理を停止する。デジタル署名の検証に成功すると(ステップS54でYES)、相互認証部408は、160ビットのランダム値Hk(Host Key)を生成する(ステップS55)。
相互認証部408は、ステップS55で生成したランダム値Hkに対して、本システムにおいて予め定められている楕円暗号のパラメータであるベースポイントGを用いて、Hv=Hk・Gを計算する(ステップS56)。
さらに、相互認証部408は、ステップS46で受信したチャレンジデータに含まれるMnと、ステップS56で算出したHvとを連結したデータであるMn||Hvに対して、鍵配信装置秘密鍵(Hpriv)を用いてデジタル署名(Sign(Hpriv,Mn||Hv))を生成する(ステップS57)。
相互認証部408は、ステップS56で算出したHvと、ステップS57で生成したデジタル署名Sign(Hpriv,Mn||Hv)とを連結したデータをレスポンスデータとして、記録媒体装置600へ送信する(ステップS58)。
記録媒体装置600は、鍵配信装置400からレスポンスデータを受信する。記録媒体装置600は、受信したレスポンスデータに含まれるデジタル署名Sign(Hpriv,Mn||Hv)の検証を行う(ステップS59)。具体的に、記録媒体装置600は、レスポンスデータからHvを抽出し、ステップS45で生成したMnとHvとを連結したデータに、鍵配信装置400の公開鍵証明書Hcertに含まれる鍵配信装置公開鍵を用いて、デジタル署名を検証する。
デジタル署名の検証に失敗すると(ステップS60でNO)、記録媒体装置600は、処理を停止する。デジタル署名の検証に成功すると(ステップS60でYES)、記録媒体装置600は、ステップS49で生成したランダム値Mkと、ステップS58で受信したレスポンスデータに含まれるHvとから、BK=Mk・Hvを計算して、共通鍵BK(Bus Key)を生成する(ステップS61)。
一方、鍵配信装置400の相互認証部408は、ステップS55で生成したランダム値Hkと、ステップS52で受信したレスポンスデータに含まれるMvとから、BK=Hk・Mvを計算して、共通鍵BKを生成する(ステップS62)。
以上の処理を行うことにより、鍵配信装置400と記録媒体装置600とは、互いの正当性を確認し、端末装置500が知り得ない共通鍵BKを共有することが可能となる。そして、鍵配信装置400と記録媒体装置600とは、共通鍵BKを用いたセキュアな通信路(セッション)を確立し、通信データを端末装置500に知られることなく安全に送受信する。
ここでは、鍵配信装置400及び記録媒体装置600間で実行される相互認証処理について説明したが、鍵配信装置400及び端末装置500間で実行される相互認証処理、並びに、端末装置500及び鍵配信装置600間で実行される相互認証処理の手順もこれと同様である。なお、ここで示した相互認証処理の手順は一例であり、他の方式を用いてもよい。
<2−10.鍵配信処理の動作>
図15は、鍵配信装置400による鍵配信処理の動作を示すフローチャートである。
鍵配信装置400は、鍵配信処理に先立ち、鍵発行装置100からルート公開鍵を受信し、格納している。また、鍵配信装置400は、鍵発行装置100から鍵配信装置秘密鍵及び鍵配信装置証明書を受信し、格納している。また、鍵配信装置400は、コンテンツ制作装置200から、タイトル鍵とURとコンテンツ識別情報とを受信し、格納している。
以下の処理は、鍵配信装置400が端末装置500又は記録媒体装置600からタイトル鍵の送信要求を受け取った場合に実行される。
相互認証部408は、端末装置500と相互認証を行い、端末装置500の正当性を確認し、端末装置500との間で共通鍵BK1を共有する(ステップS71)。また、相互認証部408は、記録媒体装置600と相互認証を行い、記録媒体装置600の正当性を確認し、記録媒体装置600との間で共通鍵BK2を共有する(ステップS72)。
暗号復号部409は、共通鍵BK1で暗号化されたコンテンツ識別情報と記録媒体装置IDとを受信し(ステップS73)、共通鍵BK1で復号する(ステップS74)。暗号復号部409は、コンテンツ識別情報と記録媒体装置IDとを、記録媒体装置ID受信部410へ渡し、コンテンツ識別情報を、タイトル鍵演算部407へ渡す。また、コンテンツ識別情報を、UR送信部412へ渡す。
タイトル鍵演算部407は、受け取ったコンテンツ識別情報に対応するタイトル鍵とURとを、タイトル鍵・UR格納部406から取得する(ステップS75)。タイトル鍵演算部407は、URのハッシュ値を計算する(ステップS76)。そして、URのハッシュ値とタイトル鍵との排他的論理和(XOR)を演算して、演算タイトル鍵を生成する(ステップS77)。
暗号復号部409は、演算タイトル鍵を共通鍵BK2で暗号化し(ステップS78)、暗号化された演算タイトル鍵を記録媒体装置600へ送信する(ステップS79)。
続いて、MAC演算部411は、記録媒体装置ID受信部410から記録媒体装置IDとコンテンツ識別情報とを受け取る。MAC演算部411は、受け取ったコンテンツ識別情報に対応するタイトル鍵を、タイトル鍵・UR格納部406から読み出す。そして、タイトル鍵と記録媒体装置IDとからMACを演算する(ステップS80)。
暗号復号部409は、共通鍵BK1でMACを暗号化し(ステップS81)、端末装置500へ送信する(ステップS82)。
次に、UR送信部412は、暗号復号部409からコンテンツ識別情報を受け取り、受け取ったコンテンツ識別情報に対応するURを、タイトル鍵・UR格納部406から読み出す。UR送信部412は、読み出したURを、端末装置500へ送信する(ステップS83)。
<2−11.端末装置500の構成>
端末装置500は、プロセッサ、ROM、RAM、ハードディスク、入力デバイスであるキーボード及びマウス、表示デバイスであるモニタ、記録媒体装置600を挿入するためのカードスロット、ネットワーク接続ユニット等を備えるPCである。ROM、RAM又はハードディスクにはコンピュータプログラムが記録されており、端末装置500の一部の機能は、プロセッサがコンピュータプログラムを実行することで実現することができる。
端末装置500は、インターネットやデジタル放送などのネットワークを介して、コンテンツ配信装置300からコンテンツを受信し、また、鍵配信装置400からタイトル鍵を受信する。端末装置500は、受信したコンテンツとタイトル鍵とを、記録媒体装置600に記録するコンテンツ記録処理を行う。
また、端末装置500は、コンテンツとタイトル鍵とが記録された記録媒体装置600から、コンテンツを読み出して再生するコンテンツ再生処理を行う。
図16及び図17は、端末装置500の機能的な構成を示すブロック図である。
ここで、図16は、端末装置500がコンテンツ記録処理を行うときの機能的な構成を示す。図17は、端末装置500がコンテンツ再生処理を行うときの機能的な構成を示す。
図16及び図17に示すように、端末装置500は、ルート公開鍵格納部501、秘密鍵・証明書格納部502、コンテンツ受信部503、コンテンツ識別情報取得部504、コンテンツ書込部505、相互認証部506、記録媒体装置ID取得部507、記録媒体装置ID・コンテンツ識別情報送信部508、暗号復号部509、MAC受信部510、UR受信部511、MAC・UR書込部512、伝送部513、演算タイトル鍵受信部522、UR読出部523、タイトル鍵再演算部524、MAC読出部525、再生判断部526、コンテンツ読出部527、コンテンツ復号部528及びコンテンツ再生部529から構成される。
ルート公開鍵格納部501は、鍵発行装置100により生成されたルート公開鍵を格納する。
秘密鍵・証明書格納部502は、鍵発行装置100により生成された端末装置秘密鍵及び端末装置証明書を格納する。
なお、ルート公開鍵、端末装置秘密鍵及び端末装置証明書は、端末装置500の製造時に、端末装置500を製造する装置により端末装置500に埋め込まれる。
コンテンツ受信部503は、コンテンツ配信装置300からコンテンツとコンテンツ識別情報とを受信する。なお、コンテンツ識別情報はコンテンツに埋め込まれた状態で受信してもよい。
コンテンツ識別情報取得部504は、コンテンツ受信部503が受信したコンテンツにコンテンツ識別情報が埋め込まれていれば、コンテンツからコンテンツ識別情報を抽出することにより、コンテンツ識別情報を取得する。
コンテンツ書込部505は、コンテンツ受信部503が受信したコンテンツを記録媒体装置600に書き込む。
相互認証部506は、鍵配信装置400と相互認証を行い、鍵配信装置400の正当性を確認し、鍵配信装置400との間で共通鍵を共有し合う。また、相互認証部506は、記録媒体装置600と相互認証を行い、記録媒体装置600の正当性を確認し、記録媒体装置600との間で共通鍵を共有し合う。相互認証処理については、図13及び図14を用いて既に説明したので、ここでは説明は省略する。
記録媒体装置ID取得部507は、相互認証部506による相互認証処理の途中で受信する記録媒体装置証明書から、記録媒体装置IDを取得する。
記録媒体装置ID・コンテンツ識別情報送信部508は、コンテンツ受信部503又はコンテンツ識別情報取得部504から、コンテンツ識別情報を取得する。また、記録媒体装置ID・コンテンツ識別情報送信部508は、記録媒体装置ID取得部507から、記録媒体装置IDを取得する。そして、記録媒体装置ID・コンテンツ識別情報送信部508は、取得した記録媒体装置IDとコンテンツ識別情報とを組にして、暗号復号部509を経由して、鍵配信装置400へ送信する。
暗号復号部509は、鍵配信装置400と共有した共通鍵を用いて、鍵配信装置400との間で送受信されるデータを暗号化したり復号したりする。同様に、暗号復号部509は、記録媒体装置600と共有した共通鍵を用いて、記録媒体装置600との間で送受信されるデータを暗号化したり復号したりする。
MAC受信部510は、鍵配信装置400から、暗号復号部509を経由してMACを受信する。MAC受信部510が受信するMACは、コンテンツ書込部505が記録媒体装置600に書き込んだコンテンツの暗号化に用いられたタイトル鍵と、記録媒体装置ID・コンテンツ識別情報送信部508が鍵配信装置400へ送信した記録媒体装置IDとから演算されたMACである。
UR受信部511は、記録媒体装置ID・コンテンツ識別情報送信部508が鍵配信装置400へ送信したコンテンツ識別情報で識別されるコンテンツに対応するURを、鍵配信装置400から受信する。なお、URは、暗号復号部509を経由せずに受信する。
MAC・UR書込部512は、MAC受信部510が受信したMAC、及び、UR受信部511が受信したURを記録媒体装置600に書き込む。
伝送部513は、鍵配信装置400と記録媒体装置600との間で送受信される通信データを伝送する。すなわち、鍵配信装置400と記録媒体装置600とが相互認証を経てセッションを確立すると、伝送部513は、セッション上で送信されてきた通信データについては、通信の開始や通信の終了などを通知する制御データを除き、その内容を判断したり、データを変更することなく単に伝送のみを行う。
具体的に、伝送部513は、鍵配信装置400と記録媒体装置600とが相互認証で共有した共通鍵を用いて暗号化された暗号化演算タイトル鍵を鍵配信装置400から受信する。そして、伝送部513は、受信した暗号化演算タイトル鍵を、記録媒体装置600へ送信する。なお、端末装置500は、配信装置400と記録媒体装置600とが共有した共通鍵の値を知らないので、暗号化演算タイトル鍵を復号することはできない。
演算タイトル鍵受信部522は、コンテンツの再生処理時に、再生対象であるコンテンツの暗号化に用いられたタイトル鍵から生成された演算タイトル鍵を、記録媒体装置600から暗号復号部509を経由して受信する。
UR読出部523は、記録媒体装置600から再生対象であるコンテンツに対応するURを読み出す。
タイトル鍵再演算部524は、UR読出部523が読出したURのハッシュ値を計算する。そして、タイトル鍵再演算部524は、演算タイトル鍵受信部522が受信した演算タイトル鍵とURのハッシュ値との排他的論理和(XOR)を演算することにより、元のタイトル鍵を算出する。
MAC読出部525は、記録媒体装置600から、再生対象であるコンテンツに対応するMACを読み出す。
再生判断部526は、タイトル鍵再演算部524が生成したタイトル鍵と、記録媒体装置ID取得部507が取得した記録媒体識別IDとからMACを演算する。そして、再生判断部526は、演算されたMACと、MAC読出部525が記録媒体装置600から読み出したMACとが一致するか否かを判断する。
両MACが一致する場合、再生対象のコンテンツ及び当該コンテンツに対応するタイトル鍵は、正規に記録媒体装置600に記録されたことが確認されたので、再生判断部526は、再生可と判断する。そして、再生判断部526は、コンテンツ読出部527にコンテンツの読み出しを指示する。
両MACが一致しない場合、再生対象のコンテンツ及び当該コンテンツに対応するタイトル鍵は、記録媒体装置600に不正コピーされた可能性がある。そこで、再生判断部526は、再生不可と判断し、表示デバイスに対し、再生不可である旨を表示する。
コンテンツ読出部527は、再生判断部526からコンテンツの読み出しを指示されると、記録媒体装置600から再生対象であるコンテンツを読み出す。
コンテンツ復号部528は、タイトル鍵再演算部524が生成したタイトル鍵を用いて、コンテンツ読出部527が読み出したコンテンツに復号アルゴリズムE1を施して、コンテンツを復号する。復号アルゴリズムE1は、暗号化アルゴリズムD1により暗号化された暗号文を平文に復号するアルゴリズムである。
コンテンツ再生部529は、復号されたコンテンツをデコードし、表示デバイスに出力する。
<2−12.コンテンツ記録処理の動作>
図18は、端末装置500によるコンテンツ記録処理の動作を示すフローチャートである。
なお、端末装置500には予め、ルート公開鍵、端末装置秘密鍵及び端末装置証明書が格納されている。
相互認証部506は、記録媒体装置600と相互認証を行い、記録媒体装置600の正当性を確認する。記録媒体装置ID取得部507は、相互認証処理の途中で受信した記録媒体装置証明書から、記録媒体装置IDを取得する(ステップS91)。
コンテンツ受信部503は、コンテンツ配信装置300からコンテンツを受信する(ステップS92)。コンテンツ識別情報取得部504は、コンテンツを解析し、コンテンツ識別情報が埋め込まれている場合には、コンテンツからコンテンツ識別情報を取得する(ステップS93)。コンテンツ書込部505は、ステップS92で受信したコンテンツを、記録媒体装置600に書き込む(ステップS94)。
続いて、相互認証部506は、鍵配信装置400と相互認証を行い、鍵配信装置400の正当性を確認し、鍵配信装置400との間で共通鍵BK1を共有する(ステップS95)。暗号復号部509は、ステップS91で取得した記録媒体装置IDと、ステップS93で取得したコンテンツ識別情報とを、共通鍵BK1で暗号化する(ステップS96)。暗号復号部509は、BK1で暗号化された記録媒体装置IDとコンテンツ識別情報とを鍵配信装置400へ送信する(ステップS97)。
次に、暗号復号部509は、鍵配信装置400から、共通鍵BK1で暗号化されたMACを受信する(ステップS98)。暗号復号部509は、暗号化されたMACを共通鍵BK1で復号した後(ステップS99)、MAC受信部510へ渡す。また、UR受信部511は、鍵配信装置400からURを受信する(ステップS100)。
次に、MAC・UR書込部512は、MACとURとを記録媒体装置600に書き込む(ステップS101)。
続いて、伝送部513は、鍵配信装置400と記録媒体装置600とのセッション上で送受信される通信データを伝送する(ステップS102)。ここで伝送される通信データは、端末装置500が知り得ない共通鍵で暗号化された暗号化演算タイトル鍵である。
<2−13.コンテンツ再生処理の動作>
図19は、端末装置500によるコンテンツ再生処理の動作を示すフローチャートである。なお、記録媒体装置600は、上述したコンテンツ記録処理を経て、コンテンツ、演算タイトル鍵、MAC、UR等を既に格納していることとする。
相互認証部506は、記録媒体装置600との間で相互認証処理を行い、共通鍵BK3を生成する。また、記録媒体装置ID取得部507は、相互認証処理の途中で受信した記録媒体装置証明書から、記録媒体装置IDを取得する(ステップS201)。記録媒体装置ID取得部507は、取得した記録媒体装置IDを、再生判断部516へ渡す。
暗号復号部509は、記録媒体装置600から、共通鍵BK3で暗号化された演算タイトル鍵を受信し(ステップS202)、共通鍵BK3を用いて復号する(ステップS203)。暗号復号部509は、復号された演算タイトル鍵を、演算タイトル鍵受信部522へ渡す。演算タイトル鍵受信部522は、演算タイトル鍵を受け取り、タイトル鍵再演算部524へ渡す。
次に、MAC読出部525は、記録媒体装置600からMACを読み出して(ステップS204)、再生判断部526へ渡す。また、UR読出部523は、記録媒体装置600からURを読み出して(ステップS205)、タイトル鍵再演算部524へ渡す。
タイトル鍵再演算部524は、URのハッシュ値を計算する(ステップS206)。そして、タイトル鍵再演算部524は、URのハッシュ値と演算タイトル鍵とから排他的論理和(XOR)の演算を行うことで、元のタイトル鍵を算出する(ステップS207)。タイトル鍵再演算部524は、算出したタイトル鍵を、再生判断部526及びコンテンツ復号部528へ渡す。
続いて、再生判断部526は、タイトル鍵と記録媒体装置IDとからMACを算出する(ステップS208)。そして、再生判断部526は、ステップS208で算出されたMACと、ステップS204で記録媒体装置600から読み出したMACとが一致するいか否か判断する。
両MACが一致しない場合(ステップS209でNO)、コンテンツ再生処理は終了する。両MACが一致する場合(ステップS209でYES)、コンテンツ読出部527は、記録媒体装置600からコンテンツを読み出す(ステップS210)。そして、コンテンツ復号部528は、タイトル鍵を用いてコンテンツを復号し(ステップS211)、コンテンツ再生部529は、コンテンツをデコードして表示デバイスに出力する(ステップS212)。
<2−14.記録媒体装置600の構成>
記録媒体装置600は、端末装置500に装着して用いるSDメモリカードである。
図20は、記録媒体装置600の機能的な構成を示すブロック図である。
図20に示すように、記録媒体装置600は、コントローラ601と記憶部602とから構成される。
コントローラ601は、コントローラ製造業者により製造されたLSIデバイスであり、内部処理はセキュアに守られ、外部から情報を読み出すことができない。
記憶部602は、フラッシュ製造業者により製造されたフラッシュメモリである。記憶部602へのデータの書き込み、及び、記憶部602からのデータの読み出しは、コントローラ601を介して行われる。具体的に、記憶部602は、システム領域606、認証領域607及び通常領域608を含む。システム領域606は、コントローラ601のみからアクセス(データの読み出し及び書き込み)が可能であり、コントローラ601の外部からはアクセスが不可能な領域である。認証領域607は、アクセスするためにはコントローラ601を介した認証処理が必要な領域である。通常領域608は、認証処理を必要とせず、コントローラ601を介して外部から自由にアクセスが可能な領域である。
コントローラ601は、相互認証部603、暗号復号部604及び読出書込部605を含む。
相互認証部603は、鍵配信装置400との間で相互認証を行い、共通鍵を共有し合う。また、相互認証部603は、端末装置500との間で相互認証を行い、共通鍵を共有し合う。相互認証処理及び鍵交換処理については、図13及び図14を用いて既に説明したので、ここでは説明は省略する。
暗号復号部604は、鍵配信装置400と共有した共通鍵を用いて、鍵配信装置400との間で送受信されるデータを暗号化したり復号したりする。同様に、暗号復号部604は、端末装置500と共有した共通鍵を用いて、端末装置500との間で送受信されるデータを暗号化したり復号したりする。
具体的に、コンテンツの記録時において、暗号復号部604は、鍵配信装置400から送信された暗号化演算タイトル鍵を、端末装置500の伝送部513を介して受信する。そして、暗号復号部604は、受信した暗号化演算タイトル鍵を復号して、記憶部602に書き込む。
また、コンテンツの再生時において、暗号復号部604は、記憶部602に格納されている演算タイトル鍵を読み出して暗号化し、端末装置500へ送信する。
読出書込部605は、通常領域608からのデータの読み出し、及び、通常領域608へのデータの書き込みを行う。
システム領域606は、秘密鍵・証明書格納部611及びルート公開鍵格納部612を含む。
秘密鍵・証明書格納部611は、鍵発行装置100により生成された記録媒体装置秘密鍵及び記録媒体装置証明書を格納している。
ルート公開鍵格納部612は、鍵発行装置100により生成されたルート公開鍵を格納している。
なお、ルート公開鍵、記録媒体装置秘密鍵及び記録媒体装置証明書は、記録媒体装置600の製造時に、記録媒体装置600を製造する装置により記憶部602に埋め込まれる。
認証領域607は、演算タイトル鍵格納部613を含み、内部に演算タイトル鍵を格納する。上述したように、認証領域607にアクセスするためには、コントローラ601による認証処理が必要である。そのため、演算タイトル鍵の書き込み及び読み出しは、必ず、相互認証部603及び暗号復号部604を介して行われる。
コンテンツ格納部614は、コンテンツを格納する。UR格納部615は、URを格納する。MAC格納部616は、MACを格納する。
なお、コンテンツ、UR及びMACは、コンテンツの記録時に、読出書込部605が端末装置500から受信し、読出書込部605により、それぞれ、コンテンツ格納部614は、UR格納部615及びMAC格納部616に書き込まれる。
また、コンテンツ、UR及びMACは、コンテンツの再生時に、端末装置500からの読み出し要求を受けて、読出書込部605により、それぞれ、コンテンツ格納部614は、UR格納部615及びMAC格納部616から読み出される。そして、端末装置500へ送信される。
<2−15.タイトル鍵取得処理の動作>
図21は、記録媒体装置600によるタイトル鍵取得処理の動作を示すフローチャートである。
なお、記録媒体装置600には予め、ルート公開鍵、記録媒体装置秘密鍵及び記録媒体装置証明書が格納されている。
相互認証部603は、鍵配信装置400と相互認証処理を行い、鍵配信装置400との間で共通鍵BK2を共有する(ステップS301)。
暗号復号部604は、鍵配信装置400から、端末装置500を介して、共通鍵BK2で暗号化された暗号化演算タイトル鍵を受信する(ステップS302)。暗号復号部604は、ステップS301で生成された共通鍵BK2を用いて、暗号化演算タイトル鍵を復号する(ステップS303)。そして、演算タイトル鍵格納部613は、復号された演算タイトル鍵を格納する(ステップS304)。
<3.実施の形態2>
ここでは、本発明の別の態様であるコンテンツ配信システム2について説明する。
<3−1.概要>
図22は、コンテンツ配信システム2の全体構成を示す図である。
コンテンツ配信システム2は、鍵発行装置100、コンテンツ制作装置200、コンテンツ配信装置300、鍵配信装置1400、端末装置1500、記録媒体装置600a及び記録媒体装置600bから構成される。
鍵発行装置100、コンテンツ制作装置200、コンテンツ配信装置300、記録媒体装置600a及び600bは、それぞれ、実施の形態1の鍵発行装置100、コンテンツ制作装置200、コンテンツ配信装置300及び記録媒体装置600aと同様の構成及び機能を有する。
実施の形態2に係るコンテンツ配信システム2は、記録媒体装置600aに格納されているコンテンツ及びタイトル鍵を、別の記録媒体装置600bへ転送するシステムである。
以下では、鍵発行装置100、コンテンツ制作装置200、コンテンツ配信装置300、記録媒体装置600a及び記録媒体装置600bの詳細な説明は省略し、実施の形態1と異なる部分を中心に説明する。
<3−2.鍵配信装置1400の構成>
鍵配信装置1400は、プロセッサ、ROM、RAM、ハードディスクなどを備えるコンピュータシステムである。鍵配信装置1400は、コンテンツの復号に用いるタイトル鍵を記録媒体装置600aから記録媒体装置600bへ転送するタイトル鍵転送処理を行う。
図23は、鍵配信装置1400の機能的な構成を示すブロック図である。
図23に示すように、鍵配信装置1400は、ルート公開鍵格納部1401、秘密鍵・証明書格納部1402、相互認証部1403、暗号復号部1404、記録媒体装置ID受信部1405、演算タイトル鍵受信・送信部1406、UR受信部1407、UR格納部1408、タイトル鍵再演算部1409、タイトル鍵格納部1410、MAC演算部1411及びUR送信部1412から構成される。
ルート公開鍵格納部1401は、鍵発行装置100により生成されたルート公開鍵を格納する。
秘密鍵・証明書格納部1402は、鍵発行装置100により生成された鍵発行装置秘密鍵及び鍵発行装置証明書を格納する。
相互認証部1403は、端末装置1500と相互認証を行い、端末装置1500との間で共通鍵を共有する。また、相互認証部1403は、記録媒体装置600aと相互認証を行い、記録媒体装置600aとの間で共通鍵を共有する。また、相互認証部1403は、記録媒体装置600bと相互認証を行い、記録媒体装置600bとの間で共通鍵を共有する。
暗号復号部1404は、端末装置1500と共有した共通鍵を用いて、端末装置1500との間で送受信されるデータを暗号化したり復号したりする。また、暗号復号部1404は、記録媒体装置600aと共有した共通鍵を用いて、記録媒体装置600aとの間で送受信されるデータを暗号化したり復号したりする。同様に、暗号復号部1404は、記録媒体装置600bと共有した共通鍵を用いて、記録媒体装置600bとの間で送受信されるデータを暗号化したり復号したりする。
記録媒体装置ID受信部1405は、端末装置1500から暗号復号部1404を経由して、コンテンツの転送元である記録媒体装置600aの記録媒体装置ID(以下、「転送元記録媒体装置ID」と記載する。)、及び、コンテンツの転送先である記録媒体装置600bの記録媒体装置ID(以下、「転送先記録媒体装置ID」と記載する。)を受信する。
演算タイトル鍵受信・送信部1406は、記録媒体装置600aから暗号復号部1404を経由して演算タイトル鍵を受信する。また、演算タイトル鍵受信・送信部1406は、暗号復号部1404を経由して記録媒体装置600bへ演算タイトル鍵を送信する。なお、記録媒体装置600bの故障等、何らかの事情により、記録媒体装置600bが演算タイトル鍵を受信できない場合には、演算タイトル鍵受信・送信部1406は、暗号復号部1404を経由して記録媒体装置600aへ、演算タイトル鍵を返送する。
UR受信部1407は、端末装置1500からURを受信する。
UR格納部1408は、UR受信部1407が受信したURを格納する。
タイトル鍵再演算部1409は、UR格納部1408からURを取得し、演算タイトル鍵受信・送信部1406から、暗号復号部1404を経由して記録媒体装置600aから受信した演算タイトル鍵を取得する。タイトル鍵再演算部1409は、URのハッシュ値を計算する。さらに、タイトル鍵再演算部1409は、URのハッシュ値と演算タイトル鍵との排他的論理和(XOR)を演算することにより、元のタイトル鍵を算出する。
タイトル鍵格納部1410は、タイトル鍵再演算部1409が算出したタイトル鍵を格納する。
MAC演算部1411は、タイトル鍵格納部1410に格納されているタイトル鍵と、記録媒体装置ID受信部1405が受信した転送先記録媒体装置IDとからMACを演算する。そして、MAC演算部1411は、暗号復号部1404を経由して、MACを端末装置1500へ送信する。なお、記録媒体装置600bの故障等、何らかの事情により、記録媒体装置600bが端末装置1500からMACを受信できない場合には、MAC演算部1411は、タイトル鍵と転送元記録媒体装置IDとからMACを演算する。そして、MAC演算部1411は、暗号復号部1404を経由して、MACを端末装置1500へ送信する。
UR送信部1412は、UR格納部1408に格納されているURを、端末装置1500へ送信する。
<3−3.タイトル鍵転送処理の動作>
図24及び図25は、鍵配信装置1400によるタイトル鍵転送処理の動作を示すフローチャートである。
なお、鍵配信装置1400には予め、ルート公開鍵、鍵配信装置秘密鍵及び鍵配信装置証明書が格納されている。
相互認証部1403は、端末装置1500と相互認証を行い、端末装置1500の正当性を確認し、端末装置1500との間で共通鍵BK4を共有する(ステップS401)。
暗号復号部1404は、端末装置1500から、共通鍵BK4で暗号化された転送元記録媒体装置ID及び転送先記録媒体装置IDを受信する。そして、共通鍵BK4を用いて復号する(ステップS402)。
相互認証部1403は、記録媒体装置600aと相互認証を行い、記録媒体装置600aの正当性を確認し、記録媒体装置600aとの間で共通鍵BK5を共有する(ステップS403)。
暗号復号部1404は、記録媒体装置600aから、共通鍵BK5で暗号化された演算タイトル鍵を受信する(ステップS404)。暗号復号部1404は、共通鍵BK5を用いて、受信した暗号化演算タイトル鍵を復号し(ステップS405)、演算タイトル鍵受信・送信部1406へ渡す。
次に、UR受信部1407は、端末装置1500から、記録媒体装置600aに格納されているURを受信する(ステップS406)。UR受信部1407は、受信したURを、UR格納部1408に格納する。
タイトル鍵再演算部1409は、UR格納部1408からURを取得し、URのハッシュ値を計算する(ステップS407)。そして、タイトル鍵再演算部1409は、URのハッシュ値と、演算タイトル鍵受信・送信部1406が記録媒体装置600aから受信した演算タイトル鍵とから排他的論理和(XOR)を演算し、元のタイトル鍵を算出する(ステップS408)。タイトル鍵再演算部1409は、算出されたタイトル鍵を、タイトル鍵格納部1410に格納する。
以上の処理により、記録媒体装置600aから鍵配信装置1400へ、タイトル鍵及びその他コンテンツの再生に必要なデータが安全にバックアップされる。
続いて、相互認証部1403は、記録媒体装置600bと相互認証を行い、記録媒体装置600bの正当性を確認する。さらに、相互認証部1403は、記録媒体装置600bの記録媒体装置証明書から、転送先記録媒体装置IDを取得する。また、相互認証部1403は、記録媒体装置600bとの間で共通鍵BK6を共有する(ステップS409)。
相互認証部1403は、ステップS409で取得した転送先記録媒体装置IDと、ステップS402で受信した転送先記録媒体装置IDとが一致するか否かを判断する。
一致しない場合(ステップS410でNO)、鍵配信装置1400は、タイトル鍵の転送処理を終了する。
一致する場合(ステップS410でYES)、暗号復号部1404は、演算タイトル鍵受信・送信部1406から演算タイトル鍵を取得し、記録媒体装置600bと共有した共通鍵BK6で演算タイトル鍵を暗号化する(ステップS411)。そして、暗号化された演算タイトル鍵を、記録媒体装置600bへ送信する(ステップS412)。
次に、MAC演算部1411は、タイトル鍵格納部1410に格納されているタイトル鍵と、ステップS402で受信した転送先記録媒体装置IDとからMACを演算する(ステップS413)。暗号復号部1404は、ステップS413で計算されたMACを端末装置1500と共有した共通鍵BK4で暗号化する(ステップS414)。そして、暗号化されたMACを、端末装置1500へ送信する(ステップS415)。
ここで、鍵配信装置1400は、タイトル鍵の転送処理が正常に終了したか否か判断する。正常に終了した場合(ステップS416でYES)、鍵配信装置1400はタイトル鍵の転送処理を終了する。
以上の処理により、鍵配信装置1400にバックアップされたタイトル鍵及びその他コンテンツの再生に必要なデータが記録媒体装置600bに安全に転送される。
タイトル鍵の転送処理が正常に終了しなかった場合(ステップS416でNO)、鍵配信装置1400は、図26のステップS417へ進み、タイトル鍵及びその他コンテンツの再生に必要なデータを、転送元の記録媒体装置600aへ返送する復旧処理を行う。
鍵配信装置1400の相互認証部1403は、転送元の記録媒体装置600aと相互認証を行い、記録媒体装置600aの正当性を確認し、記録媒体装置600aとの間で共通鍵BK7を共有する。さらに、相互認証部1403は、記録媒体装置600aの記録媒体装置証明書から転送元記録媒体装置IDを取得する(ステップS417)。
また、相互認証部1403は、端末装置1500と相互認証を行い、端末装置1500の正当性を確認し、端末装置1500との間で共通鍵BK8を共有する(ステップS418)。
続いて、暗号復号部1404は、端末装置1500から、共通鍵BK8で暗号化された転送元記録媒体装置IDを受信する(ステップS419)。暗号復号部1404は、共通鍵BK8を用いて、転送元記録媒体装置IDを復号する(ステップS420)。
相互認証部1403は、ステップS417で取得した転送元記録媒体装置IDと、ステップS420で復号された転送元記録媒体装置IDとが一致するか否か判断する。
一致しない場合(ステップS421でNO)、鍵配信装置1400は、タイトル鍵の転送処理を終了する。
一致する場合(ステップS421でYES)、暗号復号部1404は、演算タイトル鍵受信・送信部1406から演算タイトル鍵を取得し、記録媒体装置600aと共有した共通鍵BK7で演算タイトル鍵を暗号化する(ステップS422)。そして、暗号化された演算タイトル鍵を、記録媒体装置600aへ送信する(ステップS423)。
次に、UR送信部1412は、ステップS406で受信したURを、記録媒体装置600aに書き戻すために、UR格納部1408に格納されているURを、端末装置1500へ送信する(ステップS424)。
MAC演算部1411は、タイトル鍵格納部1410に格納されているタイトル鍵と、ステップS419で受信した転送元記録媒体装置IDとからMACを演算する(ステップS425)。暗号復号部1404は、ステップS425で計算されたMACを端末装置1500と共有した共通鍵BK8で暗号化する(ステップS426)。そして、暗号化されたMACを、端末装置1500へ送信する(ステップS427)。
以上の処理により、鍵配信装置1400にバックアップされたタイトル鍵及びその他コンテンツの再生に必要なデータが記録媒体装置600aに安全に返送される。
<3−4.端末装置1500の構成>
端末装置1500は、端末装置500と同様に、プロセッサ、ROM、RAM、ハードディスク、入力デバイスであるキーボード及びマウス、表示デバイスであるモニタ、記録媒体装置600aおよび600bを挿入するためのカードスロット、ネットワーク接続ユニット等を備えるパーソナルコンピュータである。ROM、RAM又はハードディスクにはコンピュータプログラムが記録されており、端末装置1500の一部の機能は、プロセッサがコンピュータプログラムを実行することで実現することができる。
端末装置1500は、記録媒体装置600aから記録媒体装置600bへコンテンツ及びタイトル鍵を移動するコンテンツ移動処理を行う。
図27及び図28は、端末装置1500の機能的な構成を示すブロック図である。
ここで、図27は、端末装置1500がコンテンツ移動処理を行うときの機能的な構成を示す。図28は、コンテンツ移動処理中に鍵配信装置1400にバックアップされたタイトル鍵を、端末装置1500が記録媒体装置600aに書き戻す復旧処理を行うときの機能的な構成を示す。
図27及び図28に示すように、端末装置1500は、ルート公開鍵格納部1501、秘密鍵・証明書格納部1502、コンテンツ読出部1503、コンテンツ書込部1504、相互認証部1505、記録媒体装置ID取得部1506、記録媒体装置ID送信部1507、暗号復号部1508、MAC受信部1509、UR読出部1510、UR送信部1511、MAC・UR書込部1512、伝送部1513及びUR受信部1514から構成される。
ルート公開鍵格納部1501は、鍵発行装置100により生成されたルート公開鍵を格納する。
秘密鍵・証明書格納部1502は、鍵発行装置100により生成された端末装置秘密鍵及び端末装置証明書を格納する。
なお、ルート公開鍵、端末装置秘密鍵及び端末装置証明書は、端末装置1500の製造時に、端末装置1500を製造する装置により端末装置1500に埋め込まれる。
コンテンツ読出部1503は、記録媒体装置600aからコンテンツを読み出す。
コンテンツ書込部1504は、コンテンツ読出部1503が記録媒体装置600aから読み出したコンテンツを、記録媒体装置600bに書き込む。
相互認証部1505は、鍵配信装置1400と相互認証を行い、鍵配信装置1400の正当性を確認し、鍵配信装置1400との間で共通鍵を共有し合う。また、相互認証部1505は、記録媒体装置600aと相互認証を行い、記録媒体装置600aの正当性を確認し、記録媒体装置600aとの間で共通鍵を共有し合う。また、相互認証部1505は、記録媒体装置600bと相互認証を行い、記録媒体装置600bの正当性を確認し、記録媒体装置600bとの間で共通鍵を共有し合う。
記録媒体装置ID取得部1506は、相互認証部1505が記録媒体装置600aとの相互認証処理の途中で受信する記録媒体装置証明書から、記録媒体装置600aの記録媒体装置IDを取得する。また、記録媒体装置ID取得部1506は、相互認証部1505が記録媒体装置600bとの相互認証処理の途中で受信する記録媒体装置証明書から、記録媒体装置600bの記録媒体装置IDを取得する。
記録媒体装置ID送信部1507は、記録媒体装置ID取得部1506から、記録媒体装置600aの記録媒体装置ID及び記録媒体装置600bの記録媒体装置IDを取得する。そして、記録媒体装置ID送信部1507は、記録媒体装置600aの記録媒体装置IDを「転送元記録媒体装置ID」とし、記録媒体装置600bの記録媒体装置IDを「転送先記録媒体装置ID」として、暗号復号部1508を経由して、鍵配信装置1400に送信する。
暗号復号部1508は、鍵配信装置1400と共有した共通鍵を用いて、鍵配信装置1400との間で送受信されるデータを暗号化したり復号したりする。同様に、暗号復号部1508は、記録媒体装置600aと共有した共通鍵を用いて、記録媒体装置600aとの間で送受信されるデータを暗号化したり復号したりする。また、暗号復号部1508は、記録媒体装置600bと共有した共通鍵を用いて、記録媒体装置600bとの間で送受信されるデータを暗号化したり復号したりする。
MAC受信部1509は、鍵配信装置1400から、暗号復号部1508を経由してMACを受信する。端末装置1500が移動処理を行うときは、MAC受信部1509は、転送先記録媒体装置IDに基づき生成されたMACを受信する。また、端末装置1500が復旧処理を行うときは、MAC受信部1509は、転送元記録媒体装置IDに基づき生成されたMACを受信する。MAC受信部1509は、受信したMACを、MAC・UR書込部1512へ渡す。
UR読出部1510は、記録媒体装置600aからURを読み出す。UR読出部1510は、読み出したURを、UR送信部1511及びMAC・UR書込部1512へ渡す。
UR受信部1514は、鍵配信装置1400からURを受信する。UR受信部1514は、受信したURを、MAC・UR書込部1512へ渡す。
UR送信部1511は、UR読出部1510から受け取ったURを、鍵配信装置1400へ送信する。
MAC・UR書込部1512は、端末装置1500が移動処理を行うときは、MAC受信部1509が受信した転送先記録媒体装置IDに基づき生成されたMAC値、及び、UR読出部1510が記録媒体装置600aから読み出したURを、記録媒体装置600bに書き込む。また、端末装置1500が復旧処理を行うときは、MAC受信部1509が受信した転送元記録媒体装置IDに基づき生成されたMAC値、及び、UR受信部1514が鍵配信装置1400から受信したURを、記録媒体装置600aに書き込む。
伝送部1513は、端末装置1500が移動処理を行うときは、先ず、鍵配信装置1400と記録媒体装置600aとのセッション上で送受信されるデータを伝送する。具体的に、伝送部1513は、鍵配信装置1400と記録媒体装置600aとが相互認証で共有した共通鍵を用いて暗号化された暗号化演算タイトル鍵を記録媒体装置600aから受信する。そして、伝送部1513は、受信した暗号化演算タイトル鍵を鍵配信装置1400へ送信する。次に、伝送部1513は、鍵配信装置1400と記録媒体装置600bとのセッション上で送受信されるデータを伝送する。具体的に、伝送部1513は、鍵配信装置1400と記録媒体装置600bとが相互認証で共有した共通鍵を用いて暗号化された暗号化演算タイトル鍵を鍵配信装置1400から受信する。そして、伝送部1513は、受信した暗号化演算タイトル鍵を、記録媒体装置600bへ送信する。
また、伝送部1513は、端末装置1500が復旧処理を行うときは、鍵配信装置1400と記録媒体装置600aとのセッション上で送受信されるデータを伝送する。具体的に、伝送部1513は、鍵配信装置1400と記録媒体装置600aとが相互認証で共有した共通鍵を用いて暗号化された暗号化演算タイトル鍵を鍵配信装置1400から受信する。そして、伝送部1513は、受信した暗号化演算タイトル鍵を、記録媒体装置600aへ送信する。
このように、伝送部1513は、実施の形態1の伝送部513と同様に、鍵配信装置1400と記録媒体装置(600a、600b)とが相互認証を経てセッションを確立すると、セッション上で送信されてきた通信データについては、通信の開始や通信の終了などを通知する制御データを除き、その内容を判断したり、データを変更することなく単に伝送のみを行う。
<3−5.コンテンツ移動処理の動作>
図29及び図30は、端末装置1500によるコンテンツ移動処理の動作を示すフローチャートである。
端末装置1500は、予め、端末装置秘密鍵、端末装置証明書及びルート公開鍵を格納している。
コンテンツ読出部1503は、記録媒体装置600aからコンテンツを読出す(ステップS501)。コンテンツ書込部1504は、ステップS501で読み出したコンテンツを、記録媒体装置600bに書き込む(ステップS502)。
相互認証部1505は、記録媒体装置600aと相互認証を行い、記録媒体装置600aの正当性を確認する。また、記録媒体装置ID取得部1506は、相互認証の途中で受信する記録媒体装置600aの記録媒体装置証明書から、転送元記録媒体装置IDを取得する(ステップS503)。
相互認証部1505は、記録媒体装置600bと相互認証を行い、記録媒体装置600bの正当性を確認する。また、記録媒体装置ID取得部1506は、相互認証の途中で受信する記録媒体装置600bの記録媒体装置証明書から、転送先記録媒体装置IDを取得する(ステップS504)。
次に、相互認証部1505は、鍵配信装置1400と相互認証を行い、鍵配信装置1400の正当性を確認し、鍵配信装置1400との間で共通鍵BK4を共有する(ステップS505)。
暗号復号部1508は、記録媒体装置ID取得部1506が取得した転送元記録媒体装置IDと、転送先記録媒体装置IDとを、共通鍵BK4で暗号化する(ステップS506)。そして、暗号化された転送元記録媒体装置IDと転送先記録媒体装置IDとを、鍵配信装置1400へ送信する(ステップS507)。
続いて、伝送部1513は、鍵配信装置1400と記録媒体装置600aとのセッション上で送受信される通信データを伝送する(ステップS508)。ここで伝送される通信データは、端末装置1500が知り得ない共通鍵で暗号化された暗号化演算タイトル鍵である。
UR読出部1510は、記録媒体装置600aからURを読み出す(ステップS509)。そして、UR送信部1511は、ステップS509で読み出されたURを、鍵配信装置1400へ送信する(ステップS510)。これにより、端末装置1500は、URのコピーを鍵配信装置1400にバックアップする。さらに、UR読出部1510は、ステップS509で読み出されたURを、MAC・UR書込部1512へ渡す。
次に、暗号復号部1508は、鍵配信装置1400から共通鍵BK4で暗号化されたMACを受信する(ステップS511)。ステップS511で受信するMACは、転送先記録媒体装置IDに基づき生成されたMACである。暗号復号部1508は、暗号化されたMACを共通鍵BK4で復号し(ステップS512)、MAC受信部1509へ渡す。
MAC受信部1509は、暗号復号部1508からMACを受け取り、MAC・UR書込部1512へ渡す。
MAC・UR書込部1512は、MAC受信部1509が暗号復号部1508を経由して受信したMACと、UR読出部1510が記録媒体装置600aから読み出したMACとを、記録媒体装置600bに書き込む(ステップS513)。
続いて、伝送部1513は、鍵配信装置1400と記録媒体装置600bとのセッション上で送受信される通信データを伝送する(ステップS514)。ここで伝送される通信データは、端末装置1500が知り得ない共通鍵で暗号化された暗号化演算タイトル鍵である。
ここで、端末装置1500は、コンテンツ移動処理が正常に終了したか否か判断する。正常に終了した場合(ステップS515でYES)、端末装置1500は、コンテンツ移動処理を終了する。
以上の処理により、コンテンツ、タイトル鍵及びその他コンテンツの再生に必要なデータが、記録媒体装置600aから記録媒体装置600bへ安全に転送される。
転送先の記録媒体装置600bの故障等により、コンテンツ移動処理が正常に終了しなかった場合(ステップS515でNO)、端末装置1500は、図30のステップS516へ進み、タイトル鍵及びその他コンテンツの再生に必要なデータを、転送元の記録媒体装置600aへ書き戻す復旧処理を行う。
先ず、相互認証部1505は、記録媒体装置600aと相互認証を行い、記録媒体装置600aの正当性を確認する。また、記録媒体装置ID取得部1506は、相互認証の途中で受信する記録媒体装置600aの記録媒体装置証明書から、転送元記録媒体装置IDを取得する(ステップS516)。
次に、相互認証部1505は、鍵配信装置1400と相互認証を行い、鍵配信装置1400の正当性を確認し、鍵配信装置1400との間で共通鍵BK8を共有する(ステップS517)。
暗号復号部1508は、ステップS516で記録媒体装置ID取得部1506が取得した転送元記録媒体装置IDを共通鍵BK8で暗号化し(ステップS518)、鍵配信装置1400へ送信する(ステップS519)。
続いて、伝送部1513は、鍵配信装置1400と記録媒体装置600aとのセッション上で送受信される通信データを伝送する(ステップS520)。ここで伝送される通信データは、端末装置1500が知り得ない共通鍵で暗号化された暗号化演算タイトル鍵である。
UR受信部1514は、鍵配信装置1400からURを受信し(ステップS521)、受信したURをMAC・UR書込部1512へ渡す。
また、暗号復号部1508は、鍵配信装置1400から、共通鍵BK8で暗号化されたMACを受信する(ステップS522)。なお、ステップS522で受信するMACは、転送元記録媒体装置IDに基づき生成されたMACである。
暗号復号部1508は、ステップS522で受信したMACを共通鍵BK8で復号し(ステップS523)、MAC受信部1509へ渡す。
MAC受信部1509は、暗号復号部1508を経由して受信したMACを、MAC・UR書込部1512へ渡す。
MAC・UR書込部1512は、MAC及びURを、記録媒体装置600aに書き込む(ステップS524)。
<4.変形例>
以上、本発明の実施の形態を説明したが、例示したコンテンツ配信システムを以下のように変形することも可能であり、本発明が上記の実施の形態で示した通りのコンテンツ配信システムに限られないことは勿論である。
(1)上記の実施の形態では、記録媒体装置600としてSDメモリカードを具体例に用いて説明した。しかし、記録媒体装置600は、SDメモリカードに限定されない。記録媒体装置600は、HDDのようなストレージデバイスと制御LSIとから構成されるデバイスでもよい。また、記録媒体装置600は、SDメモリカードのような脱着式のデバイスに限定されない。携帯電話機、eBook、NetBookなどに内蔵された内蔵型メモリと制御LSIとから構成されるデバイスでもよい。
(2)また、上記の実施形態では、端末装置500及び1500としてPCを具体例に用いて説明した。しかし、端末装置500及び1500は、PCに限定されない。例えば、端末装置500は、スマートフォン、タブレット端末などの携帯端末でもよい。また、端末装置500は、コンビニエンスストアなどの店舗に設置された所謂KIOSK端末でもよい。また、端末装置500は、デジタルテレビ放送を受信する受信装置でもよい。端末装置500及び1500は、少なくともインターネットやテレビ放送網などのネットワークに接続可能な機器であり、ネットワークを介してコンテンツ、タイトル鍵等を取得し、記録媒体装置600に記録する機能を有していればよい。
(3)上記の実施の形態では、端末装置500は、記録媒体装置600の識別情報に基づき生成されたMACを用いて、コンテンツの再生可否を判断した。しかし、再生可否の判断に用いる情報は、MACに限定されない。例えば、演算タイトル鍵と録媒体装置の識別情報とをXORしたものを用いてもよい。また、演算タイトル鍵と記録媒体装置の識別情報のハッシュ値とをXORしたものを用いてもよい。また、例えば、記録媒体装置600の識別情報に鍵発行装置100の署名を付与したものを用いてもよい。また、記録媒体装置600の識別情報に鍵発行装置100が署名を付与したものを用いてもよい。この場合、端末装置500は、XORを計算したり、署名検証を行うことで、コンテンツの再生可否を判断することができる。
(4)上記の実施の形態では、コンテンツ制作装置200は、コンテンツとコンテンツ識別情報とを、コンテンツ配信装置300に登録する構成を有していた。しかし、コンテンツ制作装置200は、この構成に限定されない。
例えば、コンテンツ識別情報生成部209は、コンテンツを複数の部分に分けて部分コンテンツを生成し、各部分コンテンツのハッシュ値を計算する。そして、各部分コンテンツのハッシュ値を含むハッシュテーブルを生成する。コンテンツ登録部は214は、コンテンツにハッシュテーブルを埋め込み、ハッシュテーブルが埋め込まれたコンテンツを、コンテンツ配信装置300に登録してもよい。
また、コンテンツ識別情報生成部209は、コンテンツ識別情報の生成を、鍵発行装置100に依頼してもよい。例えば、コンテンツ識別情報生成部209は、ハッシュテーブルを鍵発行装置100に送信する。鍵発行装置100は、ハッシュテーブルを受信すると、当該ハッシュテーブルにユニークな値を割り振って、ハッシュテーブルに追記する。その後、鍵発行装置100は、このデータ全体に署名を付与することで、改竄対策が施されたデータを生成する。そして、鍵発行装置100は、コンテンツ識別情報生成部209へ前記データを返送する。コンテンツ識別情報生成部209は、鍵発行装置100が割り振ったユニークな値を、コンテンツ識別情報としてもよい。
このように、鍵発行装置100にコンテンツ識別情報の生成を依頼する場合には、署名部210による署名生成処理を省略してもよい。
(5)上記の実施の形態では、鍵配信装置400及び端末装置500は、記録媒体装置600と相互認証を行う途中で、記録媒体装置IDを取得する構成を有していた。しかし、記録媒体装置IDの取得方法はこれに限定されない。
例えば、記録媒体装置600の認証領域607に記録媒体装置600を一意に識別するための記録媒体装置IDが格納されていてもよい。この場合、鍵配信装置400及び端末装置500は、記録媒体装置600と相互認証を行い、共通鍵を共有した後に、記録媒体装置600から、記録媒体装置IDが共通鍵で暗号化された暗号化記録媒体装置IDを受信する。鍵配信装置400及び端末装置500は、受信した暗号化記録媒体装置IDを、共通鍵で復号し、記録媒体装置IDを取得する構成でもよい。
(6)上記の実施の形態で説明した相互認証処理に、以下の処理を追加してもよい。
鍵配信装置400、端末装置500及び記録媒体装置600は、予め、鍵発行装置100から、秘密鍵が暴露された装置(リボークされた装置)の端末IDが記載された無効化リストを取得しておく。そして、各装置は、相互認証処理の途中で受信する相手方装置の公開鍵証明書から装置IDを抽出し、抽出した装置IDが、無効化リストに記載されているか否かを判断する。公開鍵証明書から抽出した装置IDが、無効化リストに記載されている場合、すなわち、相手方装置がリボークされている場合には、相互認証処理を中断する。
(7)上記の実施の形態1では、端末装置500は、記録媒体装置600にコンテンツ、タイトル鍵等を記録するコンテンツ記録処理と、記録媒体装置600からコンテンツ等を読み出して再生するコンテンツ再生処理とを実行する構成を有していた。しかし、端末装置500がコンテンツ記録処理及びコンテンツ再生処理を両方実行することは必須ではない。端末装置500は、コンテンツ記録処理のみを行う構成でもよい。コンテンツ再生処理は、端末装置500とは異なる他の端末装置により実行されてもよい。
(8)上記の実施の形態2では、端末装置1500は、記録媒体装置600bへのコンテンツ移動処理が正常に終了しなかった場合に、タイトル鍵等を記録媒体装置600aへ書き戻す復旧処理を行う構成を有していた。しかし、端末装置1500は、記録媒体装置600bへのコンテンツ移動処理が正常に終了しなかった場合であって、且つ、ユーザからの指示があった場合にのみ、復旧処理を行うとしてもよい。
(9)また、上記のコンテンツ配信システム1を、図31のように変形してもよい。
図31に示すコンテンツ配信システムは、鍵配信装置2000、端末装置3000及び記録媒体装置4000から構成される。
端末装置3000は、コンテンツの利用に必要なタイトル鍵を配信する鍵配信装置2000とネットワークを介して接続されている。また、端末装置3000には、前記コンテンツと前記タイトル鍵とを格納するための記録媒体装置4000が装着される。記録媒体装置4000と鍵配信装置2000とは、相互認証を行い、共通鍵を共有する。端末装置3000は、前記タイトル鍵が前記共通鍵で暗号化された暗号化タイトル鍵を鍵配信装置2000から受信する受信部3001と、受信した前記暗号化タイトル鍵を記録媒体装置4000へ送信する転送部3002とを備える。受信部3001及び転送部3002は、記録媒体装置4000と鍵配信装置2000とが相互認証を行った後は、記録媒体装置4000及び鍵配信装置2000間で前記共通鍵を用いて通信されるデータに関与しない。
次に、図31に記載したコンテンツ配信システムの動作の一例について、図32を用いて説明する。端末装置3000は、記録媒体装置4000と鍵配信装置2000とが相互認証をすることを検知すると(ステップS601)、記録媒体装置4000及び鍵配信装置2000間で前記共通鍵を用いて通信されるデータに関与することを禁止する(ステップS602)。
記録媒体装置4000と鍵配信装置2000とは、相互認証を行い、共通鍵を共有する(ステップS603)。
鍵配信装置2000は、共通鍵でタイトル鍵を暗号化する(ステップS604)。
端末装置3000は、暗号化タイトル鍵を鍵配信装置2000から受信し(ステップS605)、受信した前記暗号化タイトル鍵を記録媒体装置4000へ送信する(ステップS606)。
記録媒体装置4000は、暗号化タイトル鍵を共通鍵で復号し(ステップS607)、タイトル鍵を格納する(ステップS608)。
端末装置3000は、記録媒体装置4000と鍵配信装置2000とのセッションの終了を検知すると(ステップS609)、通信データへの関与の禁止を解除する(ステップS610)。
(10)上記の実施の形態では、コンテンツの一例は、ビデオデータ及びオーディオデータから構成される映画であると記載した。しかし、コンテンツは、映画に限定されないのは勿論である。コンテンツは、JPEGデータなどの静止画、コンピュータプログラム、コンピュータゲーム、ビデオデータを含まない音楽コンテンツ、テキストデータなどでもよい。
(11)実施の形態1及び2で示したコンテンツ記録処理、コンテンツ再生処理、コンテンツ移動処理を、端末装置のプロセッサ、及びそのプロセッサに接続された各種回路に実行させるための機械語或いは高級言語のプログラムコードからなる制御プログラムを、記録媒体に記録すること、又は各種通信路等を介して流通させ頒布することもできる。このような記録媒体には、ICカード、ハードディスク、光ディスク、フレキシブルディスク、ROM、フラッシュメモリ等がある。流通、頒布された制御プログラムはプロセッサに読み出され得るメモリ等に格納されることにより利用に供され、そのプロセッサがその制御プログラムを実行することにより各実施形態で示したような各機能が実現されるようになる。なお、プロセッサは、制御プログラムを直接実行する他、コンパイルして実行或いはインタプリタにより実行してもよい。
(12)実施の形態1及び2示した各機能構成要素(コンテンツ受信部503、コンテンツ識別情報取得部504、コンテンツ書込部505、相互認証部506、記録媒体装置ID取得部507、記録媒体装置ID・コンテンツ識別情報送信部508、暗号復号部509、MAC受信部510、UR受信部511、MAC・UR書込部512、伝送部513、演算タイトル鍵受信部522、UR読出部523、タイトル鍵再演算部524、MAC読出部525、再生判断部526、コンテンツ読出部527、コンテンツ復号部528、及び、コンテンツ再生部529など)は、その機能を実行する回路として実現されてもよいし、1又は複数のプロセッサによりプログラムを実行することで実現されてもよい。また、実施の形態1及び2で示した端末装置は、IC、LSIその他の集積回路のパッケージとして構成されるものとしてもよい。このパッケージは各種装置に組み込まれて利用に供され、これにより各種装置は、各実施形態で示したような各機能を実現するようになる。
(13)上記の実施の形態及び上記の変形例を適宜組み合わせてもよい。
<5.まとめ>
以下、更に本発明の一実施形態としての端末装置の構成及びその変形例と効果について説明する。
(a)コンテンツの利用に必要なタイトル鍵を配信する鍵配信装置とネットワークを介して接続されており、前記コンテンツと前記タイトル鍵とを格納するための記録媒体装置が装着される端末装置であって、前記記録媒体装置と前記鍵配信装置とは、相互認証を行い、共通鍵を共有し、前記端末装置は、前記タイトル鍵が前記共通鍵で暗号化された暗号化タイトル鍵を前記鍵配信装置から受信する受信部と、受信した前記暗号化タイトル鍵を前記記録媒体装置へ送信する転送部とを備え、前記受信部及び前記転送部は、前記記録媒体装置と前記鍵配信装置とが相互認証を行った後は、前記記録媒体装置及び前記鍵配信装置間で前記共通鍵を用いて通信されるデータに関与しないことを特徴とする。
この構成によると、端末装置は、記録媒体装置と鍵配信装置とが相互認証を行った後は、前記記録媒体装置及び前記鍵配信装置間で共通鍵を用いて通信されるデータに関与しないので、タイトル鍵が不正に取得されるのを抑制することができる。
(b)前記端末装置は、前記記録媒体装置と前記鍵配信装置とが前記相互認証をすることを検知する検知部と、前記相互認証が開始されると、前記記録媒体装置及び前記鍵配信装置間で前記共通鍵を用いて通信されるデータに関与することを禁止する禁止部とを備えることを特徴とする。
この構成によると、端末装置は、前記記録媒体装置及び前記鍵配信装置間の相互認証を検知することで、前記記録媒体装置及び前記鍵配信装置間で通信されるデータに関与しない状態に移行することができる。
なお、通信データに関与しないとは、通信データの内容を判断しない、データの内容を変更しないこと等を意味する。また、通信データに制御用フィールドが付加されている場合には、端末装置は、制御用フィールドの内容を見て処理を行うことができる。
(c)前記記録媒体装置には、前記コンテンツが前記タイトル鍵を用いて暗号化された暗号化コンテンツと前記コンテンツを識別するためのコンテンツ識別情報とが記録されており、前記端末装置は、さらに、前記記録媒体装置から前記コンテンツ識別情報を取得し、取得した前記コンテンツ識別情報を前記鍵配信装置へ送信する送信部を備え、前記受信部は、前記鍵配信装置から前記コンテンツ識別情報に対応する前記暗号化タイトル鍵を受信することを特徴とする。
この構成によると、前記暗号化コンテンツの復号に必要なタイトル鍵を前記記録媒体装置に格納することができる。ユーザは、前記暗号化コンテンツと前記タイトル鍵とが記録された記録媒体装置を用いて前記コンテンツを再生し、楽しむことができる。
(d)前記送信部は、さらに、前記記録媒体装置から当該記録媒体装置を識別するための媒体識別情報を取得し、取得した前記媒体識別情報を前記鍵配信装置へ送信し、前記受信部は、さらに、前記鍵配信装置から前記コンテンツを前記記録媒体装置に関連付けるために生成された認証情報を受信し、前記端末装置は、受信した前記認証情報を前記記録媒体装置に書き込む書込部を備えることを特徴とする。
このように、記録媒体装置に認証情報を書き込むことにより、当該記録媒体装置の再生時に前記認証情報を用いた検証処理を行うことで、再生しようとしているコンテンツが当該記録媒体装置に正規に記録されたものであるか否かを判定することができる。
ある記録媒体装置に記録されている暗号化コンテンツとタイトル鍵と認証情報とを、別の記録媒体装置に不正コピーした場合、前記認証情報は、当該別の記録媒体装置に関連していないため、再生時の検証処理により、前記暗号化コンテンツ及び前記タイトル鍵が正規に記録されたものでないことが判明する。そこで、このような仕組みを設けることにより、不正コピーしたコンテンツの再生を停止させることが可能となる。
(e)前記認証情報は、前記タイトル鍵と前記媒体識別情報とから演算されたメッセージ認証コード(MAC)であることを特徴とする。
タイトル鍵を認証用メッセージとし、媒体識別情報をMAC生成の鍵として用いることで、コンテンツの再生時には、さらに、タイトル鍵の完全性を検証することもできる。
なお、上記の構成によると、MAC等の認証情報は、鍵配信装置により生成される。すなわち、端末装置は、認証情報を生成することはできない。したがって、正規の端末装置に成り済ました不正プログラムが、暗号化コンテンツとタイトル鍵とをある記録媒体装置に不正コピーしたとしても、認証情報は生成することができない。そのため、認証情報の検証処理を必須とする正規の再生装置で再生可能となるような不正コピーを生成するこはできない。
(f)前記端末装置は、前記鍵配信装置との間でセキュアな通信路を確立し、前記受信部は、前記セキュアな通信路を介して前記認証情報を受信し、前記送信部は、前記セキュアな通信路を介して前記コンテンツ識別情報および前記媒体識別情報を送信することを特徴とする。
この構成によると、前記鍵配信装置と前記端末装置とで送受信される情報が通信経路上で不正に盗まれることを防止することができる。
(g)前記端末装置は、前記鍵配信装置との間で相互認証を行い、共通鍵を共有する相互認証部を備え、前記受信部は、前記相互認証部が前記鍵配信装置との間で共有した共通鍵で暗号化された前記認証情報を受信し、前記送信部は、前記コンテンツ識別情報および前記媒体識別情報を、前記相互認証部が前記鍵配信装置との間で共有した共通鍵で暗号化して送信することを特徴とする。
この構成によると、前記鍵配信装置と前記端末装置とで送受信される情報が通信経路で不正に盗まれることを防止できることに加えて、前記共通鍵を有していない他の装置は、前記認証情報などを取得することができない。
(h)前記受信部は、さらに、前記コンテンツの利用条件を前記鍵配信装置から受信し、前記書込部は、さらに、受信した前記利用条件を前記記録媒体装置に書き込むことを特徴とする。
このように、記録媒体装置に利用条件を書き込むことにより、コンテンツの再生時において、前記利用条件の範囲内で前記コンテンツを再生することが可能となる。
(i)前記記録媒体装置から他の記録媒体装置へ前記タイトル鍵を転送する前記端末装置であって、前記記録媒体装置と前記鍵配信装置とは、相互認証を行い、第1の共通鍵を共有し、前記他の記録媒体装置と前記鍵配信装置とは、相互認証を行い、第2の共通鍵を共有し、前記端末装置は、さらに、前記タイトル鍵が前記第1の共通鍵で暗号化された第1暗号化タイトル鍵を前記記録媒体装置から受信する第1の受信部と、受信した前記第1暗号化タイトル鍵を、前記鍵配信装置へ送信する第1の転送部と、前記タイトル鍵が前記第2の共通鍵で暗号化された第2暗号化タイトル鍵を前記鍵配信装置から受信する第2の受信部と、受信した前記第2暗号化タイトル鍵を、前記他の記録媒体装置へ送信する第2の転送部とを備え、前記第1の受信部及び前記第1の転送部は、前記記録媒体装置と前記鍵配信装置とが相互認証を行った後は、前記記録媒体装置及び前記鍵配信装置間で前記第1の共通鍵を用いて通信されるデータに関与せず、前記第2の受信部及び前記第2の転送部は、前記他の記録媒体装置と前記鍵配信装置とが相互認証を行った後は、前記他の記録媒体装置及び前記鍵配信装置間で前記第2の共通鍵を用いて通信されるデータに関与しないことを特徴とする。
この構成によると、端末装置は、前記記録媒体装置と前記鍵配信装置とが相互認証を行った後は、前記記録媒体装置及び前記鍵配信装置間で共通鍵を用いて通信されるデータに関与しないので、タイトル鍵が不正に取得されるのを抑制することができる。さらに、端末装置は、前記他の記録媒体装置と前記鍵配信装置とが相互認証を行った後は、前記他の記録媒体装置及び前記鍵配信装置間で共通鍵を用いて通信されるデータに関与しないので、タイトル鍵が不正に取得されるのを抑制することができる。
(j)前記送信部は、さらに、前記他の記録媒体装置から当該他の記録媒体装置を識別する媒体識別情報を取得し、前記媒体識別情報を前記鍵配信装置へ送信し、前記受信部は、さらに、前記鍵配信装置から、前記コンテンツを前記他の記録媒体装置に関連付けるために生成された認証情報を受信し、前記書込部は、さらに、受信した前記認証情報を前記他の記録媒体装置に書き込むことを特徴とする。
上述したように、他の記録媒体装置に関連付けた認証情報を当該他の記録媒体装置に書き込むことにより、当該他の記録媒体装置に記録されている暗号化コンテンツとタイトル鍵と認証情報とを、別の記録媒体装置に不正コピーした場合であっても、不正コピーしたコンテンツの再生を停止させることが可能となる。
(k)前記認証情報は、前記タイトル鍵と前記他の記録媒体装置の媒体識別情報とから演算されたメッセージ認証コード(MAC)であることを特徴とする。
上述したように、タイトル鍵を認証用メッセージとし、前記他の記録媒体装置の媒体識別情報をMAC生成の鍵として用いることで、コンテンツの再生時には、さらに、タイトル鍵の完全性を検証することもできる。
(l)コンテンツの利用に必要なタイトル鍵を配信する鍵配信装置とネットワークを介して接続されており、前記コンテンツと前記タイトル鍵とを格納するための記録媒体装置が装着される端末装置と、前記記録媒体装置とから構成されるコンテンツ記録システムであって、前記記録媒体装置と前記鍵配信装置とは、相互認証を行い、共通鍵を共有し、前記端末装置は、前記タイトル鍵が前記共通鍵で暗号化された暗号化タイトル鍵を前記鍵配信装置から受信する第1の受信部と、受信した前記暗号化タイトル鍵を前記記録媒体装置へ送信する転送部とを備え、前記記録媒体装置は、書き込み及び読み出し時に認証処理が必要な記憶領域である認証領域と、前記転送部から送信された前記暗号化タイトル鍵を受信する第2の受信部と、受信した前記暗号化タイトル鍵を前記共通鍵で復号し、復号した前記タイトル鍵を、前記認証領域に書き込む復号部とを備え、前記第1の受信部及び前記転送部は、前記記録媒体装置と前記鍵配信装置とが相互認証を行った後は、前記記録媒体装置及び前記鍵配信装置間で前記共通鍵を用いて通信されるデータに関与しないことを特徴とする。
この構成によると、端末装置は、記録媒体装置と鍵配信装置とが相互認証を行った後は、前記記録媒体装置及び前記鍵配信装置間で共通鍵を用いて通信されるデータに関与しないので、タイトル鍵が不正に取得されるのを抑制することができる。
(m)コンテンツの利用に必要なタイトル鍵を配信する鍵配信装置とネットワークを介して接続されており、前記コンテンツと前記タイトル鍵とを格納するための記録媒体装置が装着される端末装置で用いられるタイトル鍵記録方法であって、前記記録媒体装置と前記鍵配信装置とは、相互認証を行い、共通鍵を共有し、前記タイトル鍵記録方法は、前記タイトル鍵が前記共通鍵で暗号化された暗号化タイトル鍵を前記鍵配信装置から受信する受信ステップと、受信した前記暗号化タイトル鍵を前記記録媒体装置へ送信する転送ステップとを含み、前記受信ステップ及び前記転送ステップは、前記記録媒体装置と前記鍵配信装置とが相互認証を行った後は、前記記録媒体装置及び前記鍵配信装置間で前記共通鍵を用いて通信されるデータに関与しないことを特徴とする。
この方法によると、端末装置は、記録媒体装置と鍵配信装置とが相互認証を行った後は、前記記録媒体装置及び前記鍵配信装置間で共通鍵を用いて通信されるデータに関与しないので、タイトル鍵が不正に取得されるのを抑制することができる。
(n)コンテンツの利用に必要なタイトル鍵を配信する鍵配信装置とネットワークを介して接続されており、前記コンテンツと前記タイトル鍵とを格納するための記録媒体装置が装着される端末装置で用いられるコンピュータプログラムであって、前記記録媒体装置と前記鍵配信装置とは、相互認証を行い、共通鍵を共有し、前記コンピュータプログラムは、前記端末装置に、前記タイトル鍵が前記共通鍵で暗号化された暗号化タイトル鍵を前記鍵配信装置から受信する受信ステップと、受信した前記暗号化タイトル鍵を前記記録媒体装置へ送信する転送ステップとを実行させ、前記受信ステップ及び前記転送ステップは、前記記録媒体装置と前記鍵配信装置とが相互認証を行った後は、前記記録媒体装置及び前記鍵配信装置間で前記共通鍵を用いて通信されるデータに関与しないことを特徴とする。
この構成によると、端末装置は、記録媒体装置と鍵配信装置とが相互認証を行った後は、前記記録媒体装置及び前記鍵配信装置間で共通鍵を用いて通信されるデータに関与しないので、タイトル鍵が不正に取得されるのを抑制することができる。