以下、図面を参照しながら発明の実施の形態を説明する。
本実施形態では、あるデータaを鍵Kを用いて暗号化する操作をEK (a)と表現し、あるデータaを鍵Kを用いて復号化する操作をDK (a)と表現する。この表現を用いることにより、例えば、あるデータaを鍵Kを用いて暗号化し復号する操作は、DK (EK (a))で表される。
また、本実施形態では、あるデータをまず復号化し、その後、復号化されたデータを暗号化してもとのデータに戻すことがある。これは、暗号の性質上、データの復号化に暗号化と同等の作用があることに基づいている。つまり、復号化したデータをもとに戻すためには復号化に用いた鍵がわからなければならず、鍵が判れば復号化したデータを暗号化することにより最初に復号化したデータが得られる。この操作は、暗号鍵をxとしデータをyとすれば、
Ex (Dx (y))=y
で表される。
本実施形態では、DVDに記録された、MPEG2というデータ圧縮規格に従って圧縮され暗号化された画像データを、読み出し復号しデコードして再生するシステムを例にとって説明する。
(第1の実施形態)
以下、第1の実施形態について説明する。
図1は、本発明の第1の実施形態に係るシステムの構成を示すブロック図である。また、本実施形態の動作の一例を図2のフローチャートに示す。
本実施形態に係るシステムは、パーソナル・コンピュータなどの計算機内に備えられた再生に用いるCPU(図示せず)のいわゆるCPU BUSに接続されるものであり、暗号化されたデータ(後述するESK(Data))がCPU BUS上を流れる構成を有するものである。なお、図1では、再生に用いるCPUに関する部分のみ示している。
図1に示すように、本実施形態に係るシステムは、DVD101からデータを読み出すDVD駆動装置(図示せず)、このDVD駆動装置にCPU BUSを介さずに接続されたまたはDVD駆動装置に内蔵された暗号化ユニット107、復号化ユニット114を備えている。
暗号化ユニット107と復号化ユニット114は、CPU BUS110に接続されている。復号化ユニット114からのデータの出力は、CPU BUS以外の例えばI/Oポート等を通じて行われる。つまり、本実施形態では、データの入出力はCPU BUSを介さずに行われるが、暗号化ユニット107と復号化ユニット114との間でのデータ転送には、CPU BUSが用いられる。
暗号化ユニット107は、復調/誤り訂正回路117、復調/誤り訂正回路118、暗号化回路104を備えている。図1中で、暗号化ユニット107内には、2つの暗号化回路104を示しているが、実際には1つの暗号化回路であるものとする。暗号化ユニット107は、独立した1つのICチップとして形成されるものとする。なお、復調/誤り訂正回路117および復調/誤り訂正回路118は、暗号化ユニット107内には備えず、その前段のユニット等の側(DVD駆動装置内)に備えられる場合もある。
一方、復号化ユニット114は、復号化回路112、第2のセッションキーSK ′を生成するセッションキー生成回路111を備えている。また、本実施形態では、復号化ユニット114内にMPEGのデコーダ回路115および復号された画像データをディジタルからアナログに変換する変換回路116を備えているものとする。図1中で、復号化ユニット114内には、4つの復号化回路112を示しているが、実際には1つの復号化回路であるものとする。復号化ユニット114は、独立した1つのICチップとして形成されるものとする。
また、暗号化ユニット107内、および復号化ユニット114内には、後述するマスターキーが登録されている(作り込まれている)。マスターキーは、利用者が外部から取得できないように、暗号化ユニットのチップ、復号化ユニットのチップそれぞれにおいて、利用者が意図的に取り出せないようにチップ内部の秘匿された領域に記録されているものとする。
なお、全体の制御は図示しない制御部が司るものとする。制御部は例えばプログラムを当該計算機のCPUで実行することにより実現することができる。この制御部による制御の具体例としては、DVDからのデータの読み出しに関する指示、データ伝送先の指定、復号化ユニット114からのデータ出力に関する指示等である。また、この制御部の起動のトリガーは、例えば、ユーザ・インタフェースを介してユーザにより行われる場合と、あるアプリケーションプログラム中のプロセスからかけられる場合などが考えられる。
本実施形態では、第1のセッションキーをSK 、第2のセッションキーをSK ′、マスターキーをMK 、画像データ(すなわち暗号化された一纏まりのデータ)をDataで表す。これらはいずれも平文である。
図1中、102は第1のセッションキーSK をマスターキーMK を用いて暗号化して生成されたEMK(SK )を、103は画像データDataを第1のセッションキーSK を用いて暗号化して生成されたESK(Data)を、105はマスターキーMK を、106は第2のセッションキーSK ′を、108は第2のセッションキーSK ′をマスターキーMK を用いて復号したDMK(SK ′)を、109はマスターキーMK を用いて暗号化された第1のセッションキーEMK(SK )を第2のセッションキーSK ′を用いて暗号化したESK′(EMK(SK ))を、113は第1のセッションキーSK をそれぞれ表す。
図3に示すように、DVD101上で、第1のセッションキーSK をマスターキーMK を用いて暗号化して生成されたEMK(SK )は、最内周部分の鍵記録領域(リードインエリア)に、画像データDataを第1のセッションキーSK を用いて暗号化して生成されたESK(Data)は、データ記録領域(データエリア)に記録されているものとする。
以下、図2のフローチャートを参照しながら、本実施形態の動作について説明する。
ステップS1で、図示しないDVD駆動装置によりDVD101に記録されている、マスターキーMK を用いて暗号化された第1のセッションキーEMK(SK )を読み出し、暗号ユニット107内に取り込む。その際、復調/誤り訂正回路117により復調、データ中の誤り訂正が行われる。
一方、ステップS2で、復号化ユニット114では、セッションキー生成回路111において、乱数、例えば時計(図示せず)からの時間情報を入力として第2のセッションキーSK ′を生成する。そして、復号化回路112において、生成された第2のセッションキーSK ′を、マスターキーMK を用いて復号してDMK(SK ′)を生成し、CPU BUS110を通じて暗号化ユニット107に送る。
上記の乱数を発生するタイミング(例えば時間情報を入力するタイミング)としては、例えば、DVD駆動装置にDVD101が装着されたことを示す信号がアサートされたタイミングを用いることができる。
あるいは、セッションキー生成回路111は、例えば鍵長分の乱数発生器で構成しても良い。なお、全てのビットが0や1になる可能性のある乱数で鍵を生成する場合は、全てのビットが0や1になることがないようにチェック処理等をする必要がある。
ステップS3で、暗号ユニット107では、暗号化回路104において、CPU BUS110を通じて受け取ったDMK(SK ′)を、マスターキーをMK を用いて暗号化する。すなわち、
EMK(DMK(SK ′))=SK ′
により、復号化ユニット114内のセッションキー生成回路111で生成された第2のセッションキーSK ′を得ることができる。
ここで、セッションキー生成回路111で生成された第2のセッションキーSK ′は、CPU BUS110上で盗まれたとしても解らないようにしてある。
次に、ステップS4で、暗号ユニット107では、上記のようにして得られた第2のセッションキーSK ′を用いて、DVD101に記録された暗号化された第1のセッションキーEMK(SK )を暗号化して、ESK′(EMK(SK ))を生成し、これをCPU BUS110を通じて復号化ユニット114へ送る。
次に、ステップS5で、復号化ユニット114では、復号化回路112において、CPU BUS110を通じて受け取ったESK′(EMK(SK ))を、第2のセッションキーSK ′を用いて復号し、
DSK′(ESK′(EMK(SK )))=EMK(SK )
を得る。
さらに、復号化回路112において、得られたEMK(SK )を、マスターキーMK を用いて復号し、
DMK(EMK(SK ))=SK
となり、第1のセッションキーSK を得ることができる。
以上のようにして第1のセッションキーSK を得た後、ステップS6で、図示しないDVD駆動装置によりDVD101に記録されている、第1のセッションキーSK を用いて暗号化された画像データESK(Data)を読み出し、暗号ユニット107内に取り込む。その際、復調/誤り訂正回路118により復調、データ中の誤り訂正が行われる。そして、ESK(Data)を、CPU BUS110を通じて暗号化ユニット107に送る。
次に、ステップS7で、復号化ユニット114では、復号化回路112において、CPU BUS110を通じて受け取ったESK(Data)を、第1のセッションキーSK を用いて復号し、
DSK(ESK(Data))=Data
となり、暗号化された画像データを復号して、平文のDataを得ることができる。
そして、例えば復号すべきデータ(すなわちESK(Data))の処理が終了し、あるいは処理の中止を要求されるまで、上記のステップS6とステップS7が繰り返し行われる。
以上のようにして得られた画像データDataは、例えばMPEG2というデータ圧縮規格に従って圧縮されている場合にはMPEGデコーダ回路115でデコードされ、そしてD/A変換回路116でアナログ信号に変換された後、図示しないテレビなどの映像装置に送られ、再生される。
なお、上記のステップS1と、ステップS2およびS3とは、どちらを先に実行しても構わない。
また、ステップS6とステップS7の実行については、1つのESK(Data)の単位で逐次行う方法、あるいはステップS6で所定数のESK(Data)を読み込み、一旦バッファなどへ格納し、次にステップS7でバッファ内のESK(Data)を復号する方法、あるいはステップS6とステップS7をパイプライン処理的に行う方法などが考えられる。
また、復号化回路112からMPEGデコーダ回路115に画像データESK (Data)を渡す際に、1つのDataの単位で渡しても良いし、所定数のDataの単位で渡しても良い。
以上のように本実施形態によれば、ディジタル化されたデータを暗号化して記録した媒体を再生する場合(暗号化されたデータを復号する場合)に、計算機のCPU BUSに復号されたデータが流れず、また、CPU BUSに流れる暗号化されたデータの復号に必要な第1のセッションキーの暗号化に用いた第2のセッションキーSK ′は、例えば時間情報のようにデータ再生の度に変わる情報をもとに生成されるため、図4のようにCPU BUS110を流れるデータを信号線210からディジタル記憶媒体211に保存したとしても、それを再生または利用することはできない。
この結果、不正なコピーにより、メディアを販売する不法な行為を防止し、著作権を守ることができる。
また、本実施形態では、暗号化および復号化に用いる回路は、図1から解るようにDVDなどのディジタル記録再生機器の再生部分のコアとなる個所とは別に設計できるため、たとえ暗号が破られたとしても、復号化ユニット114(あるいは暗号化ユニット107および復号化ユニット114)を交換するだけで良い。
なお、本実施形態では、暗号ユニット107は1つの暗号化回路を持つものとしたが、2つの暗号化回路を設けても良い。また、復号化ユニット114は1つの復号化回路を持つものとしたが、2、3、または4つの復号化回路として設けても良い。これらの場合、対応する暗号化回路と復号化回路をセットで独立化しあるいは共用するのが好ましい。
また、対応する暗号化回路と復号化回路をセットで独立化する場合、独立化した対応する暗号化回路および復号化回路では、他の暗号化回路および復号化回路とは異なる暗号方式を採用しても構わない。
(第2の実施形態)
次に、第2の実施形態について説明する。
本実施形態では、例えば、予め定めた複数のマスターキーを用意し、そのうちの1つまたは複数のマスターキーを、復号化ユニットのメーカ(あるいはDVDの制作・販売会社)などの所定の単位ごとに割り当てるような場合に好適な例について説明する。
図5は、本発明の第2の実施形態に係るシステムの構成を示すブロック図である。また、本実施形態の動作の一例を図7および図8のフローチャートに示す。
本実施形態に係るシステムは、パーソナル・コンピュータなどの計算機内に備えられた再生に用いるCPU(図示せず)のいわゆるCPU BUSに接続されるものであり、暗号化されたデータ(ESK(Data))がCPU BUS上を流れる構成を有するものである。なお、図5では、再生に用いるCPUに関する部分のみ示している。
図5に示すように、本実施形態に係るシステムは、DVD101からデータの読み出すDVD駆動装置(図示せず)、このDVD駆動装置にCPU BUSを介さずに接続されたまたはDVD駆動装置に内蔵された暗号化ユニット107、復号化ユニット114aを備えている。
暗号化ユニット107と復号化ユニット114aは、CPU BUS110に接続されている。復号化ユニット114aからのデータの出力は、CPU BUS以外の例えばI/Oポート等を通じて行われる。つまり、本実施形態では、データの入出力はCPU BUSを介さずに行われるが、暗号化ユニット107と復号化ユニット114aとの間でのデータ転送には、CPU BUSが用いられる。
暗号化ユニット107は、復調/誤り訂正回路117、復調/誤り訂正回路118、暗号化回路104を備えている。図1中で、暗号化ユニット107内には、2つの暗号化回路104を示しているが、実際には1つの暗号化回路であるものとする。暗号化ユニット107は、独立した1つのICチップとして形成されるものとする。なお、復調/誤り訂正回路117および復調/誤り訂正回路118は、暗号化ユニット107内には備えず、その前段のユニット等の側(DVD駆動装置内)に備えられる場合もある。
一方、復号化ユニット114aは、復号化回路112、第2のセッションキーSK ′を生成するセッションキー生成回路111、鍵判定回路120を備えている。
ここで、図6に、鍵判定回路120の一構成例を示す。この鍵判定回路120は、復号化回路112、比較回路121、ゲート回路122を備えている。また、本実施形態では、復号化ユニット114a内にMPEGのデコーダ回路115および復号された画像データをディジタルからアナログに変換する変換回路116を備えているものとする。
図5および図6中で、復号化ユニット114a内には、鍵判定回路120内の2つの復号化回路112を含めて、全部で5つの復号化回路112を示しているが、実際には1つの復号化回路であるものとする。
復号化ユニット114aは、独立した1つのICチップとして形成されるものとする。
また、暗号化ユニット107内、および復号化ユニット114a内には、後述するマスターキーが登録されている(作り込まれている)。マスターキーは、利用者が外部から取得できないように、暗号化ユニットのチップ、復号化ユニットのチップそれぞれにおいて、利用者が意図的に取り出せないようにチップ内部の秘匿された領域に記録されているものとする。
なお、全体の制御は図示しない制御部が司るものとする。制御部は例えばプログラムを当該計算機のCPUで実行することにより実現することができる。この制御部による制御の具体例としては、DVDからのデータの読み出しに関する指示、データ伝送先の指定、復号化ユニット114aからのデータ出力に関する指示等である。また、この制御部の起動のトリガーは、例えば、ユーザ・インタフェースを介してユーザにより行われる場合と、あるアプリケーションプログラム中のプロセスからかけられる場合などが考えられる。
本実施形態では、第1のセッションキーをSK 、第2のセッションキーをSK ′、n種類存在するマスターキーのうちのt番目のものをMkt(ここでt=1〜n)、画像データ(ただし、暗号化された一纏まりのデータ)をDataで表す。これらはいずれも平文である。
図1中、102−1は第1のセッションキーSK をマスターキーMkiを用いて暗号化して生成されたEMKi (SK )を、102−2は第1のセッションキーSK を第1のセッションキーSK 自身で暗号化して生成されたESk(SK )を、103は画像データDataを第1のセッションキーSK を用いて暗号化して生成されたESK(Data)を、105はマスターキーMkjを、106は第2のセッションキーSK ′を、108は第2のセッションキーSK ′をマスターキーMkjを用いて復号したDMkj (SK ′)を、109−1はマスターキーMkiを用いて暗号化された第1のセッションキーEMKi (SK )を第2のセッションキーSK ′を用いて暗号化したESK′(EMKi (SK ))を、109−2は第1のセッションキーSK 自身で暗号化された第1のセッションキーESk(SK )を第2のセッションキーSK ′を用いて暗号化したESK′(ESk(SK ))を、113は第1のセッションキーSK をそれぞれ表す。
ここで、DVD101に記録する第1のセッションキーSK をマスターキーMkiを用いて暗号化して生成されたEMKi (SK )の種類数と、復号化ユニット114a内に持つマスターキーMkjの種類数の設定について、例えば次に示すように幾つかの方法が考えられる。
(方法1)DVD101にはiを1〜nのいずれかとする1つのマスターキーEMKi (SK )を記録し、復号化ユニット114a内にはj=1〜nのすべてに対応するn個のマスターキーMkjを備える。
(方法2)DVD101にはi=1〜nのすべてに対応するn個のマスターキーEMKi (SK )を記録し、復号化ユニット114a内にはjを1〜nのいずれかとする1つのマスターキーMkjを備える。
(方法3)上記の(方法2)を拡張したもので、DVD101にはi=1〜nのすべてに対応するn個のマスターキーEMKi (SK )を記録し、復号化ユニット114a内にはjを1〜nのうちのから予め選択されたm(2<m<n)種類のものとするm個のマスターキーMkjを備える。
なお、具体的な数値例としては、例えば、n=100あるいはn=400などであり、m=2,3,あるいは4、あるいは10などであるが、これらに限定されるものではない。
(方法4)上記の(方法3)においてDVDと復号化ユニットを逆にした例で、DVD101にはiを1〜nのうちのから予め選択されたm(2<m<n)種類のものとするm個のマスターキーEMKi (SK )を記録し、復号化ユニット114a内にはj=1〜nのすべてに対応するn個のマスターキーMkjを備える。
(方法5)DVD101にはi=1〜nのすべてに対応するn個のマスターキーEMKi (SK )を記録し、復号化ユニット114a内にはj=1〜nのすべてに対応するn個のマスターキーMkjを備える。
なお、方法3〜方法5は、復号のための手順は同様になる。
図3に示すように、DVD101上で、第1のセッションキーSK をマスターキーMkiを用いて暗号化して生成された1個(上記の(方法1)の場合)または複数個(上記の(方法2)〜(方法5)の場合)のEMKi (SK )は、最内周部分の鍵記録領域(リードインエリア)に、画像データDataを第1のセッションキーSK を用いて暗号化して生成されたESK(Data)は、データ記録領域(データエリア)に記録されているものとする。
また、復号化ユニット114内に、n個(上記の(方法1)、(方法4)、 (方法5)の場合)、または1個(上記の(方法2)の場合)、またはm個(上記の(方法3)の場合)のマスターキーMkjが登録されているものとする。
なお、暗号化ユニット107内には、予め定められた1つのマスターキーが登録されているものとする。
以下では、上記の(方法1)、(方法2)、(方法3〜方法5)について順次説明する。
まず、上記の(方法1)の場合について図7および図8のフローチャートを参照しながら本実施形態の動作を説明する。
ステップS11で、図示しないDVD駆動装置によりDVD101に記録されている、第1のセッションキーSK 自身で暗号化された第1のセッションキーESk(SK )を読み出し、暗号ユニット107内に取り込む。その際、復調/誤り訂正回路117により復調、データ中の誤り訂正が行われる。
また、ステップS12で、図示しないDVD駆動装置によりDVD101に記録されている、マスターキーMkiを用いて暗号化された第1のセッションキーEMki (SK )(i=1〜nのいずれか1つ;ここではiは未知である)を読み出し、暗号ユニット107内に取り込む。その際、復調/誤り訂正回路117により復調、データ中の誤り訂正が行われる。
一方、ステップS13で、復号化ユニット114aでは、セッションキー生成回路111において、乱数、例えば時計(図示せず)からの時間情報を入力として第2のセッションキーSK ′を生成する。そして、復号化回路112において、生成された第2のセッションキーSK ′を、マスターキーMkj(ここでjは1〜nのうち予め定められたもの)を用いて復号してDMkj (SK ′)を生成し、CPU BUS110を通じて暗号化ユニット107に送る。
上記の乱数を発生するタイミング(例えば時間情報を入力するタイミング)としては、例えば、DVD駆動装置にDVD101が装着されたことを示す信号がアサートされたタイミングを用いることができる。
あるいは、セッションキー生成回路111は、例えば鍵長分の乱数発生器で構成しても良い。なお、全てのビットが0や1になる可能性のある乱数で鍵を生成する場合は、全てのビットが0や1になることがないようにチェック処理等をする必要がある。
ステップS14で、暗号ユニット107では、暗号化回路104において、CPU BUS110を通じて受け取ったDMkj (SK ′)を、マスターキーをマスターキーMkj(ここでjは1〜nのうち予め定められたもの)を用いて暗号化する。すなわち、
EMkj (DMkj (SK ′))=SK ′
により、復号化ユニット114a内のセッションキー生成回路111で生成された第2のセッションキーSK ′を得ることができる。
ここで、セッションキー生成回路111で生成された第2のセッションキーSK ′は、CPU BUS110上で盗まれたとしても解らないようにしてある。
次に、ステップS15で、暗号ユニット107では、上記のようにして得られた第2のセッションキーSK ′を用いて、DVD101に記録された暗号化された第1のセッションキーESk(SK )を暗号化して、ESK′(ESk(SK ))を生成し、これをCPU BUS110を通じて復号化ユニット114aへ送る。
同様に、ステップS16で、暗号ユニット107では、上記のようにして得られた第2のセッションキーSK ′を用いて、DVD101に記録された暗号化された第1のセッションキーEMki (SK )を暗号化して、ESK′(EMki (SK ))を生成し、これをCPU BUS110を通じて復号化ユニット114aへ送る。
次に、ステップS17で、復号化ユニット114aでは、復号化回路112において、CPU BUS110を通じて受け取ったESK′(ESk(SK ))を、第2のセッションキーSK ′を用いて復号し、
DSK′(ESK′(ESk(SK )))=ESk(SK )
を得る。
同様に、ステップS18で、復号化ユニット114aでは、復号化回路112において、CPU BUS110を通じて受け取ったESK′(EMki (SK ))を、第2のセッションキーSK ′を用いて復号し、
DSK′(ESK′(EMki (SK )))=EMki (SK )
を得る。
ここで、EMki (SK )を生成する際に用いられたマスターキーMkiは未知であるため、ステップS19において、以下に示すように鍵判定回路120を用いて第1のセッションキーSK を求める。
最初に、鍵判定処理の原理について説明する。
まず、EMki (SK )を、すべてのマスターキーMkj(j=1〜n)で夫々復号すると、
Skij =DMkj (EMki (SK ))(j=1〜n)
が得られる。ここで、Skij (j=1〜n)のうちのいずれかが第1のセッションキーSK である。
次に、上記のESk(SK )を用いて、生成されたSkij (j=1〜n)のいずれが第1のセッションキーSK であるかを調べる。
そこで、ESk(SK )を、すべての第1のセッションキーの候補Skij (j=1〜n)で夫々復号すると、
Sk ′′(i,j)=DSkij(ESk(SK ))
が得られる。
ここで、EMki (SK )を生成する際に用いられたマスターキーMkiと同一のマスターキーMkjを復号化ユニット内で用いた場合に、すなわち、i=jの場合に、Sk ′′(i,j)=Skij =SK となる。
したがって、各Skij (j=1〜n)について、Sk ′′(i,j)=Skij (j=1〜n)が成立するか否かを調べることにより、Sk ′′(i,j)=Skij (j=1〜n)を満足するSkij を、第1のセッションキーSK として得ることができる。なお、このSkij を与えるjに対応するものが今回使用されたマスターキーである。
この操作を、C言語の表記を利用してC言語的に表現すると、次のようになる。
for(i=1; i<n+1;i++){
DS1[i]=DMK[i](EMki(Sk ));
DS2[i]=DSK[i](ESk(Sk ));
if(DS1[i]==DS2[i])
{
SK1=DS2[i];
break;
}
else EXIT_MISMATCH;
}
なお、上記手順の2行目は、Mkiを用いてEMki (SK )を復号し、これをDS1[i]に代入する操作を示す。
上記手順の3行目は、Skiを用いてESk(SK )を復号し、これをDS2[i]に代入する操作を示す。
上記手順の4行目は、DS1[i]とDS2[i]が一致するかどうを判断する操作を示す。
上記手順の9行目は、DS1[i]とDS2[i]が不一致の場合の操作を示す。
さて、例えば図6の鍵判定回路120では、復号化回路112により、まず、j=1として、EMki (SK )を、マスターキーMkjで復号して、
Skij =DMkj (EMki (SK ))
を得る。
次に、復号化回路112により、ESk(SK )をSkij で復号して、
Sk ′′=DSkij(ESk(SK ))
を得る。
次に、比較回路121により、上記のSk ′′と=Skij を比較し、一致した場合、ゲート回路122を制御して、保持しておいたSkij (図6(a))またはSk ′′(図6(b))を、第1のセッションキーSK として出力する。
一致しなかった場合、上記のjを1ずつ増加させながら、同様の動作を、第1のセッションキーSK が得られるまで繰り返す。
以上のようにして第1のセッションキーSK を得た後、ステップS20で、図示しないDVD駆動装置によりDVD101に記録されている、第1のセッションキーSK を用いて暗号化された画像データESK(Data)を読み出し、暗号ユニット107内に取り込む。その際、復調/誤り訂正回路118により復調、データ中の誤り訂正が行われる。そして、ESK(Data)を、CPU BUS110を通じて暗号化ユニット107に送る。
次に、ステップS21で、復号化ユニット114aでは、復号化回路112において、CPU BUS110を通じて受け取ったESK(Data)を、第1のセッションキーSK を用いて復号し、
DSK(ESK(Data))=Data
となり、暗号化された画像データを復号して、平文のDataを得ることができる。
そして、例えば復号すべきデータ(すなわちESK(Data))が終了し、あるいは処理の中止を要求されるまで、上記のステップS20とステップS21が繰り返し行われる。
以上のようにして得られた画像データDataは、例えばMPEG2というデータ圧縮規格に従って圧縮されている場合にはMPEGデコーダ回路115でデコードされ、そしてD/A変換回路116でアナログ信号に変換された後、図示しないテレビなどの映像装置に送られ、再生される。
なお、上記のステップS11と、ステップS12と、ステップS13およびS14とは、いずれを先に実行しても構わない。
また、上記のステップS15およびステップS17と、ステップS16およびS18とは、いずれを先に実行しても構わない。
また、ステップS20とステップS21の実行については、1つのESK(Data)の単位で逐次行う方法、あるいはステップS20で所定数のESK(Data)を読み込み、一旦バッファなどへ格納し、次にステップS21でバッファ内のESK(Data)を復号する方法、あるいはステップS20とステップS21をパイプライン処理的に行う方法などが考えられる。
また、復号化回路112からMPEGデコーダ回路115に画像データESK (Data)を渡す際に、1つのDataの単位で渡しても良いし、所定数のDataの単位で渡しても良い。
以上のように本実施形態によれば、第1の実施形態と同様に、CPU BUSを流れるデータを保存したとしても、それを再生または利用することはできない。
この結果、不正なコピーにより、メディアを販売する不法な行為を防止し、著作権を守ることができる。
また、本実施形態によれば、記録媒体に記録した第1のセッションキーを暗号化するのに用いたマスターキーを直接示す情報が不要であり、DVDなどへの記録の際に予め定められた範囲内で適宜マスターキーを選択して使用することが可能となる。あるいは、DVDの制作・販売会社などの所定の単位ごとに使用可能なマスターキーを割り当てることができるなどの利点がある。
もちろん、本実施形態でも、暗号化および復号化に用いる回路は、DVDなどのディジタル記録再生機器の再生部分のコアとなる個所とは別に設計できるため、たとえ暗号が破られたとしても、復号化ユニット114a(あるいは暗号化ユニット107および復号化ユニット114a)を交換するだけで良い。
なお、本実施形態では、暗号化ユニット107は1つの暗号化回路を持つものとしたが、2つの暗号化回路を設けても良い。また、復号化ユニット114aは1つの復号化回路を持つものとしたが、2、3、4、または5つの復号化回路を設けても良い。これらの場合、対応する暗号化回路と復号化回路をセットで独立化するのが好ましい。
また、対応する暗号化回路と復号化回路をセットで独立化する場合、独立化した対応する暗号化回路と復号化回路では、他の暗号化回路および復号化回路とは異なる暗号方式を採用しても構わない。
次に、前述した(方法2)のように、DVD101にはi=1〜nのすべてに対応するn個のEMKi (SK )を記録し、復号化ユニット114a内にはjを1〜nのいずれかとする1つのMkjを備える場合について図7および図8のフローチャートを参照しながら本実施形態の動作を説明する。
ステップS11で、図示しないDVD駆動装置によりDVD101に記録されている、第1のセッションキーSK 自身で暗号化された第1のセッションキーESk(SK )を読み出し、暗号ユニット107内に取り込む。その際、復調/誤り訂正回路117により復調、データ中の誤り訂正が行われる。
また、ステップS12で、図示しないDVD駆動装置によりDVD101に記録されている、マスターキーMkiを用いて暗号化されたn個の第1のセッションキーEMki (SK )(i=1〜n)を読み出し、暗号ユニット107内に取り込む。その際、復調/誤り訂正回路117により復調、データ中の誤り訂正が行われる。
一方、ステップS13で、復号化ユニット114aでは、セッションキー生成回路111において、乱数、例えば時計(図示せず)からの時間情報を入力として第2のセッションキーSK ′を生成する。そして、復号化回路112において、生成された第2のセッションキーSK ′を、マスターキーMkj(ここでjは1〜nのうち予め定められたもの)を用いて復号してDMkj (SK ′)を生成し、CPU BUS110を通じて暗号化ユニット107に送る。
上記の乱数を発生するタイミング(例えば時間情報を入力するタイミング)としては、例えば、DVD駆動装置にDVD101が装着されたことを示す信号がアサートされたタイミングを用いることができる。
ステップS14で、暗号ユニット107では、暗号化回路104において、CPU BUS110を通じて受け取ったDMkj (SK ′)を、マスターキーをマスターキーMkj(ここでjは1〜nのうち予め定められたもの)を用いて暗号化する。すなわち、
EMkj (DMkj (SK ′))=SK ′
により、復号化ユニット114a内のセッションキー生成回路111で生成された第2のセッションキーSK ′を得ることができる。
ここで、セッションキー生成回路111で生成された第2のセッションキーSK ′は、CPU BUS110上で盗まれたとしても解らないようにしてある。
次に、ステップS15で、暗号ユニット107では、上記のようにして得られた第2のセッションキーSK ′を用いて、DVD101に記録された暗号化された第1のセッションキーESk(SK )を暗号化して、ESK′(ESk(SK ))を生成し、これをCPU BUS110を通じて復号化ユニット114aへ送る。
同様に、ステップS16で、暗号ユニット107では、上記のようにして得られた第2のセッションキーSK ′を用いて、DVD101に記録された暗号化されたn個の第1のセッションキーEMki (SK )を夫々暗号化して、ESK′(EMki (SK ))を生成し、これをCPU BUS110を通じて復号化ユニット114aへ送る。
次に、ステップS17で、復号化ユニット114aでは、復号化回路112において、CPU BUS110を通じて受け取ったESK′(ESk(SK ))を、第2のセッションキーSK ′を用いて復号し、
DSK′(ESK′(ESk(SK )))=ESk(SK )
を得る。
同様に、ステップS18で、復号化ユニット114aでは、復号化回路112において、CPU BUS110を通じて受け取ったn個のESK′(EMki (SK ))を、第2のセッションキーSK ′を用いて夫々復号し、
DSK′(ESK′(EMki (SK )))=EMki (SK )
を得る。
ここで、DVD101に記録されているn個のEMki (SK )(i=1〜n)の各々について、それを生成する際に用いられたマスターキーMkiは未知であり、復号化ユニット114a内に備えられたマスターキーMkjに対応するものがどれなのかは、分からないようになっている。そこで、ステップS19において、以下に示すように鍵判定回路120を用いて第1のセッションキーSK を求める。
最初に、鍵判定処理の原理について説明する。
まず、マスターキーMkjで、すべてのEMki (SK )(i=1〜n)を夫々復号すると、
Skij =DMkj (EMki (SK ))(i=1〜n)
が得られる。ここで、Skij (i=1〜n)のうちのいずれかが第1のセッションキーSK である。
次に、上記のESk(SK )を用いて、生成されたSkij (i=1〜n)のいずれが第1のセッションキーSK であるかを調べる。
そこで、ESk(SK )を、すべての第1のセッションキーの候補Skij (i=1〜n)で夫々復号すると、
Sk ′′(i,j)=DSkij(ESk(SK ))
が得られる。
ここで、EMki (SK )を生成する際に用いられたマスターキーMkiと同一のマスターキーMkjを復号化ユニット内で用いた場合に、すなわち、i=jの場合に、Sk ′′(i,j)=Skij =SK となる。
したがって、各Skij (i=1〜n)について、Sk ′′(i,j)=Skij (j=1〜n)が成立するか否かを調べることにより、Sk ′′(i,j)=Skij (j=1〜n)を満足するSkij を、第1のセッションキーSK として得ることができる。なお、このSkij を与えるiに対応するものが今回使用されたマスターキーである。
さて、例えば図6の鍵判定回路120では、復号化回路112により、まず、i=1として、EMki (SK )を、マスターキーMkjで復号して、
Skij =DMkj (EMki (SK ))
を得る。
次に、復号化回路112により、ESk(SK )をSkij で復号して、
Sk ′′=DSkij(ESk(SK ))
を得る。
次に、比較回路121により、上記のSk ′′と=Skij を比較し、一致した場合、ゲート回路122を制御して、保持しておいたSkij (図6(a))またはSk ′′(図6(b))を、第1のセッションキーSK として出力する。
一致しなかった場合、上記のiを1ずつ増加させながら、同様の動作を、第1のセッションキーSK が得られるまで繰り返す。
以上のようにして第1のセッションキーSK を得た後、前述したようにステップS20〜S22で、第1のセッションキーSK を使って、暗号化された画像データESK(Data)から画像データDataを取り出す。
そして、前述したように、画像データDataは、MPEGデコーダ回路115でデコードされ、D/A変換回路116でアナログ信号に変換されるなどして、図示しないテレビなどの映像装置に送られ、再生される。
なお、この方法2の場合においても、上記のステップS11と、ステップS12と、ステップS13およびS14とは、いずれを先に実行しても構わない。
また、上記のステップS15およびステップS17と、ステップS16およびS18とは、いずれを先に実行しても構わない。
さらに、ステップS12,S16,S18、S19を、DVDに記録されたn個の(暗号化された)マスターキーを一括してバッチ的に行っても良いが、所定数個のマスターキーごとにバッチ的に行っても良いし、1つのマスターキーごとに逐次行っても良い。
また、3番目の1つのマスターキーごとに逐次行う場合、第2のセッションキーSK ′を、マスターキーごとに生成しても良い。
また、ステップS20とステップS21の実行については、1つのESK(Data)の単位で逐次行う方法、あるいはステップS20で所定数のESK(Data)を読み込み、一旦バッファなどへ格納し、次にステップS21でバッファ内のESK(Data)を復号する方法、あるいはステップS20とステップS21をパイプライン処理的に行う方法などが考えられる。
また、復号化ユニット114からMPEGデコーダ回路115に画像データESK(Data)を渡す際に、1つのDataの単位で渡しても良いし、所定数のDataの単位で渡しても良い。
以上のように本実施形態によれば、第1の実施形態と同様に、CPU BUSを流れるデータを保存したとしても、それを再生または利用することはできない。
この結果、不正なコピーにより、メディアを販売する不法な行為を防止し、著作権を守ることができる。
また、本実施形態によれば、記録媒体に複数のマスターキーを夫々用いて暗号化した第1のセッションキーと、第1のセッションキー自身で暗号化した第1のセッションキーとを格納するので、復号化ユニット内に作り込むマスターキーを、所定の単位、例えばユニットの製造メーカーごとに割り当てて使用することができるなどの利点がある。
また、本実施形態でも、暗号化および復号化に用いる回路は、図1から解るようにDVDなどのディジタル記録再生機器の再生部分のコアとなる個所とは別に設計できるため、たとえ暗号が破られたとしても、復号化ユニット114b(あるいは暗号化ユニット107および復号化ユニット114b)を交換するだけで良い。
なお、本実施形態では、暗号ユニット107は1つの暗号化回路を持つものとしたが、2つの暗号化回路を設けても良い。また、復号化ユニット114aは1つの復号化回路を持つものとしたが、2、3、4、または5つの復号化回路として設けても良い。これらの場合、対応する暗号化回路と復号化回路をセットで独立化しあるいは共用するのが好ましい。
また、対応する暗号化回路と復号化回路をセットで独立化する場合、独立化した対応する暗号化回路と復号化回路では、他の暗号化回路および復号化回路とは異なる暗号方式を採用しても構わない。
次に、前述した(方法3)のように、DVD101にはi=1〜nのすべてに対応するn個のEMKi (SK )を記録し、復号化ユニット114a内にはjを1〜nのうちのm(<n)種類のものとするm個のMkjを備える場合について説明する。
この方法3は、基本的な構成・動作・効果は上記の方法2と同様であるので、ここでは、相違点のみを説明する。
上記の方法2では、復号ユニット114a内に予め定めた1個のマスターキーMkj(j=1〜nのいずれか1つ)を備えたが、この方法3では、復号ユニット114a内に予め定めたm(≧2)個のマスターキーMkjを備えておく。そして、m個のマスターキーMkj(j=1〜nのいずれかm個)について、復号化ユニット114b内で前述した鍵判定に使用する順位を決めておく。
最初は、DVD101にはi=1〜nのすべてに対応するn個のEMKi (SK )を記録しているので、復号化ユニット114b内で使用順位が1位のマスターキーを用いれば、第1のセッションキーSK を得ることができるので、この場合には、前述の方法2と同様の動作になる。
次に、方法3では、いずれかのマスターキーが破られるなどした場合、そのマスターキーを使用不可とし、以降、DVD101には使用不可となったマスターキーに対応するEMKi (SK )を記録しないようにした場合を考える。
ここで、使用不可となったマスターキーが、使用順位が1位のマスターキーでない場合、第1のセッションキーSK を得ることができるので、この場合にも、前述の方法2と同様の動作になる。
一方、使用順位が1位のマスターキーが使用不可となった場合、DVD101に該マスターキーに対応するEMKi (SK )は記録されていないので、この使用順位が1位のマスターキーを使っても、前述のステップS19にて第1のセッションキーSK を得ることはできない。このような場合に、復号ユニット114a内で、使用順位が2位のマスターキーを用いて方法2と同様の動作を行うことにより、このマスターキーが使用不可となっていない場合、第1のセッションキーSK を得ることができる。
以下、使用順位がr位のマスターキーが使用不可となっても、使用順位がr+1位以降のマスターキーで使用不可となっていないものがある場合、同様にして第1のセッションキーSK を得ることができる。
このようにして、復号化ユニット114a内に予め定めたm(≧2)個のマスターキーが全て使用不可となるまで、本復号化ユニット114aを使用することができる。
なお、前述した(方法5)の動作は、上記(方法3)と同様になる。
また、前述した(方法4)は、DVD101には全てのマスターキーに対応する情報が格納されていないので、復号化ユニット内で選択したマスターキーに対応する情報がDVD101に記録されていない場合には、上記の使用不可の場合と同様に復号できないことになり、次の使用順位のマスターキーを選択して復号を試行することになる。従って、この(方法4)の動作も、上記(方法3)と同様になる。
ところで、本実施形態において、CPU BUS110上を情報を暗号化して安全に転送するために、第2のセッションキーSK ′を用いた。この第2のセッションキーSK ′は、復号化ユニット114a内で生成され、マスターキーを用いた手順により暗号化ユニット107に伝えられた。その際、本実施形態では、暗号化ユニット107内には、予め定められた1つのマスターキーが登録されているものとした。
その代わりに、暗号化ユニット107内にも複数のマスター鍵を登録しておき、鍵判定を用いる前述した(方法1)〜(方法5)のような手順を用いて、第2のセッションキーSK ′を復号化ユニット114aから暗号化ユニット107に伝えるようにしてもよい。
例えば、復号化ユニット114a内に登録されているマスターキーと同一のものを暗号化ユニット107にも登録する場合、上記の(方法5)になる。
また、復号化ユニット114a内に登録されているマスターキーの一部の複数のものを暗号化ユニット107に登録する場合、上記の(方法3)になる。
なお、暗号化ユニット107に1つのマスターキーを登録する場合にも、上記の(方法2)の手順を用いることができる。
ただし、これらの場合、(方法1)〜(方法5)の手順において、暗号化と復号とを入れ替えた手順となる。すなわち、復号化ユニット114aから暗号化ユニット107にDMKi (SK )とDSK(SK )とを転送することになる。
なお、第2のセッションキーSK ′をCPU BUS110上を介して復号化ユニット114aから暗号化ユニット107に安全に伝えるための構成としは、上記のマスターキーを用いる構成の他にも、種々のものが適用可能である。例えば、「日経エレクトロニクス No.676 pp.13−14 1996.11.18」に開示された技術を応用することもできる。この場合、暗号化ユニット107内へのマスターキーの登録は不要である。
(第3の実施形態)
次に、第3の実施形態について説明する。
本実施形態は、例えば単体のDVDプレーヤーである。
図9は、本発明の第2の実施形態に係るシステムの構成を示すブロック図である。また、本実施形態の動作の一例を図10のフローチャートに示す。
本実施形態は、第2の実施形態の構成から、暗号化ユニットと復号ユニットとの間で第2のセッションキーを用いて暗号化鍵を受け渡しする動作に関する部分を削除したものである。
すなわち、図9に示すように、本実施形態に係るシステムは、DVD101からデータの読み出すDVD駆動装置(図示せず)、復号化ユニット114bを備えている。
復号化ユニット114bは、復号化回路112、鍵判定回路120、復調/誤り訂正回路117、復調/誤り訂正回路118を備えている。また、本実施形態では、復号化ユニット114内にMPEGのデコーダ回路115および復号された画像データをディジタルからアナログに変換する変換回路116を備えているものとする。
ここで、鍵判定回路120は、図6の一構成例に示すように、復号化回路112、比較回路121、ゲート回路122を備えている。
図9および図6中で、復号化ユニット114b内には、鍵判定回路120内の2つの復号化回路112を含めて、全部で3つの復号化回路112を示しているが、実際には1つの復号化回路であるものとする。なお、復調/誤り訂正回路117および復調/誤り訂正回路118は、暗号化ユニット107内には備えず、その前段のユニット等の側に備えられる場合もある。
復号化ユニット114bは、独立した1つのICチップとして形成されるものとする。
また、復号化ユニット114b内には、後述するマスターキーが登録されている(作り込まれている)。マスターキーは、利用者が外部から取得できないように、復号化ユニットのチップにおいて、利用者が意図的に取り出せないようにチップ内部の秘匿された領域に記録されているものとする。
本実施形態では、第1のセッションキーをSK 、第2のセッションキーをSK ′、n種類存在するマスターキーのうちのi番目のものをMki(ここでi=1〜n)、画像データ(ただし、暗号化された一纏まりのデータ)をDataで表す。これらはいずれも平文である。
図1中、102−1は第1のセッションキーSK をマスターキーMkiを用いて暗号化して生成されたEMKi (SK )を、102−2は第1のセッションキーSK を第1のセッションキーSK 自身で暗号化して生成されたESk(SK )を、103は画像データDataを第1のセッションキーSK を用いて暗号化して生成されたESK(Data)を、105はマスターキーMkjを、113は第1のセッションキーSK をそれぞれ表す。
ここで、前述の第2の実施形態と同様に、DVD101に記録する第1のセッションキーSK をマスターキーMkiを用いて暗号化して生成されたEMKi (SK )の種類数と、復号化ユニット114b内に持つマスターキーMkjの種類数の設定について、例えば次に示すように幾つかの方法が考えられる。
(方法1)DVD101にはiを1〜nのいずれかとする1つのEMKi (SK )を記録し、復号化ユニット114b内にはj=1〜nのすべてに対応するn個のMkjを備える。
(方法2)DVD101にはi=1〜nのすべてに対応するn個のEMKi (SK )を記録し、復号化ユニット114b内にはjを1〜nのいずれかとする1つのMkjを備える。
(方法3)DVD101にはi=1〜nのすべてに対応するn個のEMKi (SK )を記録し、復号化ユニット114b内にはjを1〜nのうちのm(2<m<n)種類のものとするm個のMkjを備える。
(方法4)DVD101にはiを1〜nのうちのから予め選択されたm(2<m<n)種類のものとするm個のマスターキーEMKi (SK )を記録し、復号化ユニット114b内にはj=1〜nのすべてに対応するn個のマスターキーMkjを備える。
(方法5)DVD101にはi=1〜nのすべてに対応するn個のマスターキーEMKi (SK )を記録し、復号化ユニット114b内にはj=1〜nのすべてに対応するn個のマスターキーMkjを備える。
図3に示すように、DVD101上で、第1のセッションキーSK をマスターキーMkiを用いて暗号化して生成された1個(上記の(方法1)の場合)または複数個(上記の(方法2)〜(方法5)の場合)のEMKi (SK )は、最内周部分の鍵記録領域(リードインエリア)に、画像データDataを第1のセッションキーSK を用いて暗号化して生成されたESK(Data)は、データ記録領域(データエリア)に記録されているものとする。
次に、図10のフローチャートを参照しながら本実施形態の動作について説明する。なお、本実施形態の動作は、第2の実施形態の動作から、暗号化ユニットと復号ユニットとの間で第2のセッションキーを用いて暗号化鍵を受け渡しする動作に関する部分を削除したものである。
すなわち、ステップS31で、図示しないDVD駆動装置によりDVD101に記録されている、第1のセッションキーSK 自身で暗号化された第1のセッションキーESk(SK )を読み出し、復号化ユニット114b内に取り込む。その際、復調/誤り訂正回路117により復調、データ中の誤り訂正が行われる。
また、ステップS32で、図示しないDVD駆動装置によりDVD101に記録されている、マスターキーMkiを用いて暗号化された第1のセッションキーEMki (SK )を読み出し、復号化ユニット114b内に取り込む。その際、復調/誤り訂正回路117により復調、データ中の誤り訂正が行われる。
次に、ステップS33において、鍵判定回路120を用いて第1のセッションキーSK を求める。
以上の第1のセッションキーSK を求める動作は、(方法1)、(方法2)、(方法3〜方法5)により相違するが、いずれの場合についても既に第2の実施形態において説明したものと同様であるので、ここでの説明は省略する。
第1のセッションキーSK を得た後は、前述したようにステップS34〜S36で、第1のセッションキーSK を使って、暗号化された画像データESK(Data)から画像データDataを取り出す。なお、ステップS34〜S36の動作は、ユニット間でCPU BUSを介した画像データDataの受け渡しがない以外は、第2の実施形態において既に説明したステップS20〜S22(すなわち、第1の実施形態において既に説明したステップS6〜S8)と同様である。
そして、前述したように、画像データDataは、MPEGデコーダ回路115でデコードされ、D/A変換回路116でアナログ信号に変換されるなどして、図示しないテレビなどの映像装置に送られ、再生される。
なお、この方法3の場合においても、上記のステップS31と、ステップS32とは、いずれを先に実行しても構わない。
また、(方法2)および(方法3〜5)の場合において、ステップS32、S33を、DVDに記録されたn個(方法2,3,5の場合)あるいはm個(方法4の場合)の(暗号化された)マスターキーを一括してバッチ的に行っても良いが、所定数個のマスターキーごとにバッチ的に行っても良いし、1つのマスターキーごとに逐次行っても良い。
また、ステップS34とステップS35の実行については、1つのESK(Data)の単位で逐次行う方法、あるいはステップS20で所定数のESK(Data)を読み込み、一旦バッファなどへ格納し、次にステップS21でバッファ内のESK(Data)を復号する方法、あるいはステップS20とステップS21をパイプライン処理的に行う方法などが考えられる。
また、復号化ユニット114からMPEGデコーダ回路115に画像データESK(Data)を渡す際に、1つのDataの単位で渡しても良いし、所定数のDataの単位で渡しても良い。
本実施形態によれば、不正なコピーにより、メディアを販売する不法な行為を防止し、著作権を守ることができる。
また、本実施形態によれば、DVDなどへの記録の際に予め定められた範囲内で適宜マスターキーを選択して使用することが可能となる。あるいは、DVDプレーヤーのメーカまたはDVDの制作・販売会社などの所定の単位ごとに使用可能なマスターキーを割り当てて使用することができるなどの利点がある。
また、本実施形態では、暗号化および復号化に用いる回路は、図1から解るようにDVDなどのディジタル記録再生機器の再生部分のコアとなる個所とは別に設計できるため、たとえ暗号が破られたとしても、復号化ユニット114bを交換するだけで良い。
なお、本実施形態では、復号化ユニット114bは1つの復号化回路を持つものとしたが、2または3つの復号化回路として設けても良い。これらの場合、対応する暗号化回路と復号化回路をセットで独立化しあるいは共用するのが好ましい。
また、対応する暗号化回路と復号化回路をセットで独立化する場合、独立化した対応する暗号化回路および復号化回路では、他の暗号化回路および復号化回路とは異なる暗号方式を採用しても構わない。
以上、第1の実施形態、第2の実施形態(より詳しくは3種類の構成)、第3の実施形態(より詳しくは3種類の構成)について夫々説明してきたが、本発明はこれらに限定されず種々変形して実施することができる。
各実施形態では、情報の記録媒体をDVDとして説明したが、本発明は、CD−ROM等他の記録媒体にも適用可能である。
各実施形態では、復号対象となる情報として画像データを例にとって説明したが、本発明は、音声、テキスト、プログラムなど、他の形態の情報の再生装置等にも適用可能である。
なお、各実施形態では、データDataを画像データとしたが、データDataを鍵情報Sktとする構成も考えられる。すなわち、DVD等の記録媒体に、ESK(Data)の代わりに、ESK(Skt)とESkt (Data)を記録しておき、復号化ユニット114,114a,114bにおいて各実施形態で示した手順により、まずSktを得て、このSktでESkt (Data)を復号して実際のコンテンツを得るようにすることもできる。また、このような鍵の階層化は、任意の階層に渡って行うことができる。
各実施形態では、復号対象となる情報がMPEG2という規格に従って圧縮されている場合を例にとって説明したが、本発明はこれに限定されず、他の規格によってデータ圧縮あるいは符号化等されていても構わない。この場合、MPEGデコーダ回路115の代わりに、他の対応するデコーダ回路を設ける。また、符号化等されていないものであっても構わない。この場合、MPEGデコーダ回路115を削除する。
また、種々の方式で圧縮等されたデータ(あるいは復号の必要ないデータ)のいずれも出力できるように、複数種類のデコード回路等を設け、これを適宜切替て使用し(あるいはこれらを使用しないように)構成することも可能である。この場合、例えば、DVD等の記録媒体から使用すべきデコード等を示す識別子を読み込む、この識別子に従って適切なデコード回路等を選択等する方法が考えられる。
第2の実施形態および第3の実施形態にて示した図6の鍵判定回路120の構成は一例であり、この他にも種々の構成が考えられる。
さらに、鍵判定用情報としてESK(SK )を用いる構成は、この他にも種々のものが考えられる。例えば、鍵判定に用いる情報としてDSK(SK )を用い、鍵判定回路120では、DVD等の記録媒体から読み込んだEMki (SK )を記憶されたマスターキーMkjで復号してSkij =DMkj (EMki (SK ))を得て、このSkij をSkij 自身で復号してSk ′′′=DSkij(Skij )を得て、次に、このSk ′′とDVD等の記録媒体から読み込んだDSK(SK )を比較し、一致した場合、第1のセッションキーSK =Skij は正しいものと判定して出力する。
また、鍵判定用情報の他の例として、2回以上暗号化または復号を行ったもの、例えば、ESK(ESK(SK ))、DSK(DSK(SK ))、あるいは各EMki (SK )に対応してEMki (EMki (SK ))を設けるものなど種々のものが考えられる。
また、各実施形態では、鍵判定用情報をもとに(方法1)〜(方法5)で示した手順を用いて、復号により得られた鍵が第1のセッションキーが正しいものであることを判定したが、DVD等の記録媒体にiの順番ですべてのEMki (SK )を記録しておき、復号ユニットにはiとMkiを対応付けて登録しておくことにより、鍵判定用情報、鍵判定手順、そのための構成を省略することができる。なお、あるiについてのMkiが使用不可となった場合には、DVD等の記録媒体にEMki (SK )の代わりに無効を示す情報を格納するのが望ましい。
次に、図11を参照しながら、DVD−ROMを例に取り上げ、上記した第3の実施形態を用いたディスクメーカ(映画、音楽等の著作物のDVDを制作するメーカとする)とプレーヤメーカ(単体のDVDプレーヤのメーカとする)とマスターキーを管理する鍵管理組織による鍵の管理方法等について説明する。なお、Dataは、コンテンツの他に、前述したように鍵情報である場合もある(Dataが鍵情報Sktである場合のこの鍵情報Sktを用いた暗号化や復号等についての説明は省略する)。なお、図11において、処理等に用いる計算機等については省略してある。
また、図12には暗号化のためのシステムに関して説明するための図を示す。図12の暗号化回路301,312,303は、同一の装置(計算機等)上に搭載される場合と、異なる装置(計算機等)上に搭載される場合があり、後者の場合には、装置間で情報の受け渡しが行われる。また、暗号化回路301,312,303は、ハードウェアで構成することも、ソフトウェアで構成することも可能である。
ここでは、上記した(方法3)のDVDにはi=1〜nのすべてに対応するn個のマスターキーEMKi (SK )を記録し、DVDプレーヤ(復号化ユニット114b)内にはjを1〜nのうちから予め選択されたm(2<m<n)種類のものとするm個のマスターキーMkjを備える場合について説明する。なお、DVDプレーヤメーカにはマスターキーMkjを排他的に割り当てるものとする。また、ここでは、n=100、m=10とする。
また、ここでは、鍵判定用情報として、DVDにはESK(SK )を記録する方法を用いるものとする(図12の302の部分は、鍵判定用情報をESK(SK )とした場合のものである)。
まず、鍵管理組織200では、マスターキーMKi(i=1〜100)を保管している。マスターキーに数は、プレーヤメーカの新規参入や破られた場合の予備等のために、余分に設定しておくのが望ましい。
鍵管理組織200では、各プレーヤメーカ201〜203に、排他的にマスターキーMKi(i=1〜100)を割り当てる。例えば、図11のように、プレーヤメーカAにマスターキーMKi(i=10〜19)を、プレーヤメーカBにマスターキーMKi(i=20〜29)を、プレーヤメーカCにマスターキーMKi(i=30〜39)を割り当てる。鍵管理組織200(の計算機等)から各プレーヤメーカ(の計算機等)には、割り当てたマスターキーを通信媒体あるいは記録媒体等により送付する。その際、暗号通信等を用いて安全に受け渡しするのが望ましい。
各プレーヤメーカは、個別に、鍵管理組織200から割り当てられたマスターキーを管理する。そして、各プレーヤメーカは、この割り当てられたマスターキーを用いて、第3の実施形態で示したような構成を有するDVDプレーヤを製造して販売する。
一方、ここでは、鍵管理組織200からディスクメーカ221〜223へは、マスターキーのプレインデータは渡さないようにするものとする。
まず、各ディスクメーカ(aとする)は、自身で第1のセッションキーSk を決め(例えばディスク毎に決め)、第1のセッションキーSk を鍵管理組織200に渡す。鍵管理組織200は、受け取った第1のセッションキーSk を全てのマスターキーMKi(i=1〜100)でそれぞれ暗号化してEMki (SK )、 (i=1〜100)を得る(図12の暗号化回路301を用いる)。そして、鍵管理組織200は、EMki (SK )、(i=1〜100)を、ディスクメーカaに渡す。
鍵管理組織200(の計算機等)とディスクメーカ(の計算機等)との間での情報の受け渡しも、上記と同様に、割り当てたマスターキーを通信媒体あるいは記録媒体等にて暗号通信等を用いて安全に行うのが望ましい。
ディスクメーカaでは、EMki (SK )、(i=1〜100)と、ESK(SK )と、ESK(Data))とをDVD231に記録して販売する。なお、SK 自身でSK を暗号化してESK(SK )を得る操作は、ディスクメーカ側で行う方法と、マスターキーによる暗号化と同様に鍵管理組織200側で行う方法とがある(図12の暗号化回路312を用いる)。また、少なくとも、コンテンツの暗号化はディスクメーカにて行うものとする(図12の暗号化回路303を用いる)。
ディスクメーカaでは、例えば、SK について、受け取ったEMki (SK )と鍵判定用情報であるESK(SK )とESK(Data)(あるいはData)について管理する。
他のディスクメーカについても同様である。
なお、万一、マスターキーが破られたことが発覚した場合、それ以降、その破られたマスターキーを用いずに、DVDを制作するようにする。例えば、i=19のマスターキーが破られた場合、DVDには、i=1〜18、20〜100の99個に対応するEMki (SK )が記録される。
また、マスターキーが破られたことが発覚した場合、それ以降、その破られたマスターキーが割り当てられているプレーヤメーカでは、これを除いてDVDプレーヤを製造して販売するようにするのが望ましい。例えば、i=19のマスターキーが破られた場合、プレーヤメーカAは、i=10〜18のマスターキーを用いてDVDプレーヤを製造して販売する。
また、既に販売されたi=19のマスターキーを持つてDVDプレーヤについては、そのまま使用しても構わない。ただし、ユニット交換等によってi=19のマスターキーを持たないようにしてもよい。
従って、マスターキーを安全かつ有効に管理できるとともに、不正なマスターキー解読に対するリスクを分散し、マスターキー解読後も上記システムが安全かつ有効に機能するようにすることができる。
本発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種々変形して実施することができる。
101…DVD、102,202…マスターキーを用いて暗号化された第1のセッションキー、103,203…第1のセッションキーを用いて暗号化された画像データ、104…暗号化回路、105…マスターキー、106…第2のセッションキー、107…暗号化ユニット、108…マスターキーを用いて復号された第2のセッションキー、109…第2のセッションキーを用いて暗号化された、マスターキーを用いて暗号化された第1のセッションキー、110…CPU BUS、111…セッションキー生成回路、112…復号化回路、113…第1のセッションキー、114,114a,114b…復号化ユニット、115…MPEGデコーダ回路、116…ディジタル/アナログ変換回路、209…DVDの読み出し出力から別の媒体にコピーするための線、210…CPU BUSから別の媒体にコピーするための線、211…ディジタル記憶媒体、200…鍵管理組織
201〜203…プレーヤメーカ、221〜223…ディスクメーカ、231〜233…DVD、301,312,303…暗号化回路