(57)【特許請求の範囲】
【請求項１】
ライトワンス型メディアのデータを読み書き可能なデータ処理装置であって、
コンテンツを取得する取得手段と、
前記ライトワンス型メディアにおける未書き込みのメモリブロックに記憶されている初期値を用いて暗号鍵を生成し、該暗号鍵を用いて前記コンテンツを暗号化する暗号化手段と、
前記暗号化された暗号化コンテンツと、前記暗号鍵の生成に利用した初期値が格納されているメモリブロックを特定するアドレステーブルとを、前記ライトワンス型メディアに書き込む書き込み手段とを備えることを特徴とするデータ処理装置。
【請求項２】
更に、前記書き込み手段は、前記アドレステーブルが特定するメモリブロックに記憶されている初期値を別データに変更することによって、前記暗号鍵を生成できないようにする請求項１に記載のデータ処理装置。
【請求項３】
コンピュータに読み込み込ませ実行させることで、前記コンピュータを請求項１および２のいずれか１項に記載のデータ処理装置として機能させるコンピュータプログラム。
【請求項４】
請求項３に記載のコンピュータプログラムを記憶したことを特徴とするコンピュータ可読記憶媒体。
【請求項５】
メディア書き込み装置およびメディア破壊装置を備えるデータ処理システムであって、
前記メディア書き込み装置は、
コンテンツを取得する取得手段と、
ライトワンス型メディアにおける未書き込みのメモリブロックに記憶されている初期値を用いて暗号鍵を生成し、該暗号鍵を用いて前記コンテンツを暗号化する暗号化手段と、
前記暗号化された暗号化コンテンツと、前記暗号鍵の生成に利用した初期値が格納されているメモリブロックを特定するアドレステーブルとを、前記ライトワンス型メディアに書き込む書き込み手段とを備え、
前記メディア破壊装置は、
前記アドレステーブルが特定するメモリブロックに記憶されている初期値を別データに変更することによって、前記暗号鍵を生成できないようにする書き込み手段を備えることを特徴とするデータ処理システム。
【請求項６】
ライトワンス型メディアのデータを読み書き可能なデータ処理装置の制御方法であって、
取得手段によって、コンテンツを取得する工程と、
暗号化手段によって、前記ライトワンス型メディアにおける未書き込みのメモリブロックに記憶されている初期値を用いて暗号鍵を生成し、該暗号鍵を用いて前記コンテンツを暗号化する工程と、
書き込み手段によって、前記暗号化された暗号化コンテンツと、前記暗号鍵の生成に利用した初期値が格納されているメモリブロックを特定するアドレステーブルとを、前記ライトワンス型メディアに書き込む工程とを、前記データ処理装置に実行させることを特徴とする制御方法。
【請求項７】
ライトワンス型メディアのデータを読み書き可能なデータ処理装置であって、
コンテンツを取得する取得手段と、
前記ライトワンス型メディアにおける未書き込みのＮ個のメモリブロックを特定し、そのうちＭ個のメモリブロックの初期値を別のデータに変更した後に前記Ｎ個のメモリブロックに記憶されたデータ群を用いて暗号鍵を生成し、該暗号鍵を用いて前記コンテンツを暗号化する暗号化手段と、
前記暗号化された暗号化コンテンツと、前記暗号鍵の生成に利用した前記Ｎ個のメモリブロックを特定するアドレステーブルとを、前記ライトワンス型メディアに書き込む書き込み手段とを備えることを特徴とするデータ処理装置。
【請求項８】
更に、前記書き込み手段は、前記アドレステーブルが特定するＮ個のメモリブロックのうち、まだ上書きされていないＮ−Ｍ個のメモリブロックの初期値を別データに変更することによって、前記暗号鍵を生成できないようにする請求項７に記載のデータ処理装置。
【請求項９】
コンピュータに読み込み込ませ実行させることで、前記コンピュータを請求項７および８のいずれか１項に記載のデータ処理装置として機能させるコンピュータプログラム。
【請求項１０】
請求項９に記載のコンピュータプログラムを記憶したことを特徴とするコンピュータ可読記憶媒体。
【請求項１１】
メディア書き込み装置およびメディア破壊装置を備えるデータ処理システムであって、
前記メディア書き込み装置は、
コンテンツを取得する取得手段と、
ライトワンス型メディアにおける未書き込みのＮ個のメモリブロックを特定し、そのうちＭ個のメモリブロックの初期値を別のデータに変更した後に前記Ｎ個のメモリブロックに記憶されたデータ群を用いて暗号鍵を生成し、該暗号鍵を用いて前記コンテンツを暗号化する暗号化手段と、
前記暗号化された暗号化コンテンツと、前記暗号鍵の生成に利用した前記Ｎ個のメモリブロックを特定するアドレステーブルとを、前記ライトワンス型メディアに書き込む書き込み手段とを備え、
前記メディア破壊装置は、
前記アドレステーブルが特定するＮ個のメモリブロックのうち、まだ上書きされていないＮ−Ｍ個のメモリブロックの初期値を別データに変更することによって、前記暗号鍵を生成できないようにする書き込み手段を備えることを特徴とするデータ処理システム。
【請求項１２】
ライトワンス型メディアのデータを読み書き可能なデータ処理装置の制御方法であって、
取得手段によって、コンテンツを取得する工程と、
暗号化手段によって、前記ライトワンス型メディアにおける未書き込みのＮ個のメモリブロックを特定し、そのうちＭ個のメモリブロックの初期値を別のデータで上書きした後に前記Ｎ個のメモリブロックに記憶されたデータ群を用いて暗号鍵を生成し、該暗号鍵を用いて前記コンテンツを暗号化する工程と、
書き込み手段によって、前記暗号化された暗号化コンテンツと、前記暗号鍵の生成に利用した前記Ｎ個のメモリブロックを特定するアドレステーブルとを、前記ライトワンス型メディアに書き込む工程とを、前記データ処理装置に実行させることを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ライトワンス型の記録媒体上で暗号化データを管理する技術に関する。
【背景技術】
【０００２】
従来、一度書き込まれたデータの物理的な変更や消去を防止するライトワンス型の記録媒体、いわゆるＷＯＲＭ（Ｗｒｉｔｅ  Ｏｎｃｅ  Ｒｅａｄ  Ｍａｎｙ）メディアが知られている。通常、ＷＯＲＭメディアに記憶されたデータを確実に消去したい場合には、上記記録媒体そのものを物理的に破壊する必要がある。その一方で、ＷＯＲＭメディアにおいて、物理的な変更ではなく論理的な変更を行う技術も知られている。ここでは、例えば、記録媒体に書き込まれたデータの記憶領域に対して代替領域を設け、この代替領域を元の記憶領域として優先的に読み込ませるというルールを設定している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−１０８２７３
【特許文献２】特開２００４−１７１７１４
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ライトワンス型メディアには、物理的なデータ消去の機能は備えていない。よって、従来は、ライトワンス型メディアに記録されたデータを安全に消去するため、即ち「読み出して解析することが非常に困難な状態」を得るためには、メディアそのものを破壊しなければならなかった。
本発明は上記従来例に鑑みて成されたものであり、ライトワンス型メディア自体を物理的に破壊することなく、ライトワンス型メディアに記憶されたデータを正しく読み出せないようにすることを行うことを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するため、本発明のデータ処理装置によれば、ライトワンス型メディアのデータを読み書き可能なデータ処理装置であって、コンテンツを取得する取得手段と、前記ライトワンス型メディアにおける未書き込みのメモリブロックに記憶されている初期値を用いて暗号鍵を生成し、該暗号鍵を用いて前記コンテンツを暗号化する暗号化手段と、前記暗号化コンテンツと、前記暗号鍵の生成に利用した初期値が格納されているメモリブロックを特定するアドレステーブルとを、前記ライトワンス型メディアに書き込む書き込み手段とを備えることを特徴とする。
【発明の効果】
【０００６】
ライトワンス型メディア自体を破壊することなく、ライトワンス型メディアに記憶されたデータを正しく読み出せないようにすることが可能となる。
【図面の簡単な説明】
【０００７】
【図１】各装置の構成を示すブロック図
【図２】コンテンツが書き込まれる前のＷＯＲＭメディアの初期状態を示す図
【図３】コンテンツが書き込まれた後のＷＯＲＭメディアの状態を示す図
【図４】メディア書き込み装置の処理手順を示す図
【図５】メディア閲覧装置の処理手順を示す図
【図６】メディア破壊装置の処理手順を示す図
【図７】コンテンツが書き込まれた後のＷＯＲＭメディアの状態を示す図
【図８】メディア書き込み装置の処理手順を示す図
【図９】コンテンツが破壊された後のＷＯＲＭメディアの状態を示す図
【図１０】第２実施例におけるシードセットとなるメモリブロックの状態変化を示す図
【図１１】第２実施例におけるメモリブロックの選択処理フローを示す図
【発明を実施するための形態】
【０００８】
以下、図面を参照して本発明に好適な実施形態を説明する。
【０００９】
以下では、「一度だけデータを書き込むことができ、そのデータの消去や変更ができない、ＷＯＲＭ（Ｗｒｉｔｅ  Ｏｎｃｅ  Ｒｅａｄ  Ｍａｎｙ）型の記録媒体」のことを、ＷＯＲＭメディアと呼ぶ。尚、ＷＯＲＭメディアに限らず、ライトワンス型メディアであれば適用可能である。また、本実施形態において、コンテンツとはテキストや画像、映像、文書、或いは音声などのディジタル情報からなる電子データを指す。
【００１０】
図１に、本実施形態に適用されるデータ処理システムを示す。メディア書き込み装置１０１は、コンテンツ取得部４０１、メモリブロック選択部４０２、メモリブロック読み込み部４０３、暗号化部４０４、ＷＯＲＭメディア読み書き部４０５及びＷＯＲＭメディア接続部４０６から構成される。メディア書き込み装置１０１は、ＷＯＲＭメディアに記憶されている情報（シードセット）から鍵情報を生成し、この鍵情報によってコンテンツを暗号化し、後述する図３の方法で暗号化コンテンツをＷＯＲＭメディアに書き込む装置である。本発明におけるシードセットとは、ＷＯＲＭメディアの記憶領域に記憶されているデータ値の集合（データ群）であり、このシードセットからコンテンツの暗号化鍵を生成する。シードセットとして用いるデータ値は、少なくとも、ＷＯＲＭメディアにおける未書込みの記憶領域に記憶された（変更可能な）データ値を用いるものとし、ＷＯＲＭメディアにおける書込み済みの記憶領域に記憶された（変更不可能な）データ値も用いてもよい。正しいシードセットを知るユーザは、正しい暗号化鍵を生成することができる。メディア閲覧装置１０２は、ＷＯＲＭメディアに記憶されている情報から鍵情報を再生成し、メディア書き込み装置１０１が書き込んだ暗号化コンテンツを復号する装置である。メディア破壊装置１０３は、後述する方法でＷＯＲＭメディアに記憶されている情報から鍵情報を再生成できない状態にし、結果として暗号化コンテンツを復号できないようにする装置である。暗号化コンテンツを復号するための鍵情報（復号鍵）を生成できない状態にすることは、実質的なコンテンツの破壊に等しい。
【００１１】
なお、以下では、メディア書き込み装置１０１、メディア閲覧装置１０２、メディア破壊装置１０３の各データ処理装置は、それぞれ別体の装置であり、ＷＯＲＭメディア接続部を用いて、ＷＯＲＭメディアを介してデータの授受を行うものとして説明する。
【００１２】
しかしながら本発明はこれに限らない。例えば、これらの複数のデータ処理装置が一体になっていて、全ての機能を一台の装置が実行できるようになっていても構わない。その場合には、ＷＯＲＭメディア読み書き部４０５、５０５、６０３や、ＷＯＲＭメディア接続部４０６，５０６，６０４などの同種の処理部は１つの処理部で兼用することができるであろう。
【００１３】
＜メディア書き込み装置１０１＞
ＷＯＲＭメディア読み書き部４０５は、メディア書き込み装置１０１に接続されたＷＯＲＭメディアに記憶された各種データを読み込む機能と、他の処理部から受信したデータをこのメディアに書き込む機能を備える。
ＷＯＲＭメディア接続部４０６は、ＷＯＲＭメディア書き込み装置１０１に接続されるＷＯＲＭメディアと接続し、ＷＯＲＭメディアとのデータの入出力を制御する。ユーザの指示に従って、接続されたＷＯＲＭメディアをＷＯＲＭメディア書き込み装置１０１から取り出す機構を備えてもよい。
【００１４】
コンテンツ取得部４０１は、ＷＯＲＭメディアに書き込むコンテンツを取得し、暗号化部４０４にコンテンツを出力する。例えば、このコンテンツ取得部４０１は、ＣＤ−ＲＯＭディスクなどからコンテンツの読み出しを行なったり、撮像ユニットなどから画像データを取得する。メモリブロック選択部４０２は、ＷＯＲＭメディア読み書き部４０５が接続しているＷＯＲＭメディアについて、未書き込みのメモリブロックを後述する必要な数だけ選択する。そして、この未書き込みのブロックのアドレスを「シードセットが記憶されたメモリブロック」としてメモリブロック読み込み部４０３に出力する。メモリブロック読み込み部４０３は、メモリブロック選択部４０２が選択したアドレスのメモリブロックに記憶されているデータ群をＷＯＲＭメディアから読み込んで、暗号化部４０４に出力する。つまり、ＷＯＲＭメディアにおける特定のアドレスのメモリブロックに記憶されている初期値をシードセットとして暗号化部４０４に出力する。暗号化部４０４は、メモリブロック読み込み部４０３が読み込んだ初期値を暗号用の鍵情報／またはＩｎｉｔｉａｌ  Ｖｅｃｔｏｒとして用いてコンテンツをＡＥＳなどに代表される暗号アルゴリズムで暗号化する。そして、暗号化部４０４は、暗号化されたコンテンツをＷＯＲＭメディア読み書き部４０５に出力する。なお、シードセットから鍵情報を生成する種々の方法は公知であるため具体例は示さないが、簡単な例としては上記シードセットのデータをそのまま鍵情報としても良いであろう。ＷＯＲＭメディア読み書き部４０５は、上記暗号化されたコンテンツを、ＷＯＲＭメディア接続部４０６を介してＷＯＲＭメディアに書き込む。上記各処理部が共同して行う具体的な処理については、後述する。
【００１５】
＜メディア閲覧装置１０２＞
メディア閲覧装置１０２は、メディア書き込み装置１０１により暗号化コンテンツが書き込まれたＷＯＲＭメディアから、暗号化データを読み出して暗号復号する。このメディア閲覧装置１０２には、暗号化コンテンツ取得部５０１、アドレス取得部５０２、メモリブロック読み込み部５０３、復号部５０４、ＷＯＲＭメディア読み書き部５０５及びＷＯＲＭメディア接続部５０６などが含まれる。ＷＯＲＭメディア読み書き部５０５は、メディア閲覧装置１０２に接続されたＷＯＲＭメディアに記憶された各種データを、ＷＯＲＭメディア接続部５０６を介して読み込む機能を備える。さらに、ＷＯＲＭメディア読み書き部５０５は、他の処理部から受信したデータを、ＷＯＲＭメディア接続部５０６を介してこのメディアに書き込む機能を備える。ＷＯＲＭメディア接続部５０６は、メディア閲覧装置１０２に接続されるＷＯＲＭメディアと接続し、ＷＯＲＭメディアとのデータの入出力を制御する。ユーザの指示に従って、接続されたＷＯＲＭメディアをメディア閲覧装置１０２から取り出す機構を備えてもよい。暗号化コンテンツ取得部５０１は、ＷＯＲＭメディアから暗号化コンテンツを読み出し、復号部５０４に出力する。アドレス取得部５０２は、復号したい暗号化コンテンツに対応するアドレステーブルをＷＯＲＭメディアから読み込み、この復号に必要なデータ群が格納されているＷＯＲＭメディア内のアドレス（メモリブロックを特定する情報）を取得する。この場合においては、ＷＯＲＭメディア内のアドレスで指定されたメモリブロックのデータ値がシードセットとして利用される。上記アドレステーブルの役割などについては後述する。メモリブロック読み込み部５０３は、アドレス取得部５０２が取得したアドレスに相当するメモリブロックからデータ群を読み出す。復号部５０４は、上記データ群をシードセットとして、メディア書き込み装置１０１における暗号化部４０４と同じ演算処理を用いて鍵情報を再生成することにより、暗号化コンテンツを暗号復号する。そしてこの暗号復号されたコンテンツを不図示の表示部で表示したり、印刷部から印刷したりして閲覧する。もし、暗号復号されたコンテンツが音声であれば、スピーカなどから出力される。ここでは、上述した暗号化部４０４は、上記シードセットから共通鍵暗号方式の暗号鍵を生成し、この暗号鍵を用いてコンテンツを暗号化処理しているものとする。なお、上記暗号方式については、暗号化側と復号側において「上述したシードセットが互いに同じであれば、同じ暗号鍵と復号鍵ができる」という条件さえ満たせば、その暗号鍵の生成アルゴリズムを特に限定しない。
【００１６】
＜メディア破壊装置１０３＞
メディア破壊装置１０３は、メディア書き込み装置１０１により暗号化コンテンツが書き込まれたＷＯＲＭメディアについて、一部にデータを書き込むことによって、暗号化コンテンツを実質的に破壊する。このメディア破壊装置１０３は、メモリブロック書き込み部６０１、アドレス取得部６０２、ＷＯＲＭメディア読み書き部６０３及びＷＯＲＭメディア接続部６０４を含む。ＷＯＲＭメディア読み書き部６０３は、メディア破壊装置１０３に接続されたＷＯＲＭメディアに記憶された各種データを、ＷＯＲＭメディア接続部６０４を介して読み込む機能を備える。さらに、ＷＯＲＭメディア読み書き部６０３は、他の処理部から受信したデータを、ＷＯＲＭメディア接続部６０４を介してこのメディアに書き込む機能を備える。ＷＯＲＭメディア接続部６０４は、メディア破壊装置１０３に接続されるＷＯＲＭメディアと接続し、ＷＯＲＭメディアとのデータの入出力を制御する。ユーザの指示に従って、接続されたＷＯＲＭメディアをメディア破壊装置１０３から取り出す機構を備えてもよい。
アドレス取得部６０２は、暗号化コンテンツに対応するアドレステーブルをＷＯＲＭメディアから読み込み、暗号化コンテンツの復号に必要なシードセットが格納されているＷＯＲＭメディア内のアドレス（メモリブロックを特定する情報）を取得する。これは、上記アドレス取得部５０２の機能と同等である。メモリブロック書き込み部６０１は、乱数あるいは固定値などの無意味なデータを生成し、アドレス取得部６０２が取得したアドレスのメモリブロックに上記無意味なデータの書き込みを行う。
【００１７】
なお、メディア破壊装置１０３は、本実施形態のメディア書き込み装置１０１によって暗号化コンテンツ他がＷＯＲＭメディアに書き込まれたことを検知する検知機能を備えているものとする。これは、メディア破壊装置１０３が、メディア書き込み装置を特定する情報を何らかの方法で取得することによって実現できるであろう。例えば、ＷＯＲＭメディアにおける所定アドレスのメモリブロックに、上記メディア書き込み装置１０１によって「下記の各実施形態で暗号化コンテンツやアドレステーブルを書き込んだことを示す識別子」を書き込むことで実現できる。そして、メディア書き込み装置１０１によって暗号化コンテンツ他がＷＯＲＭメディアに書き込まれていることを前提に、ＷＯＲＭメディアのシードセットを破壊する機能を実行するものとする。
【００１８】
［第１実施形態］
＜コンテンツ破壊の方法＞
以下では、図を参照して、暗号化されたコンテンツを暗号復号できないようにする技術を説明する。尚、ここで、「破壊」とは、コンテンツ自体を破壊するのではなく、コンテンツの暗号鍵を破壊することで、結果として、コンテンツを正しく読み取ることができないことを示す。
【００１９】
図２は、メディア書き込み装置１０１によってコンテンツが書き込まれる前のＷＯＲＭメディアの初期状態を示す図である。図３は、メディア書き込み装置１０１によってコンテンツが書き込まれた後のＷＯＲＭメディアの状態を示す図である。図９は、メディア破壊装置１０３によってコンテンツが実質的に破壊された後のＷＯＲＭメディアの状態を示す図である。ここで、図２（Ａ）、図３（Ａ）、図９（Ａ）は、それらＷＯＲＭメディアの各アドレスのメモリブロックに格納されているデータ列を具体的に表記したものである。また、図２（Ｂ）、図３（Ｂ）、図９（Ｂ）は、それぞれ、図２（Ａ）、図３（Ａ）、図９（Ａ）を、視覚的に表した図である。図２（Ｂ）の２０４は、図２（Ａ）の２０３に相当し、図３（Ｂ）の３０４、３０５、３０６は、それぞれ、図３（Ａ）の３０１、３０２、３０３に相当する。また、図９（Ｂ）の１２０２は、図９（Ａ）の１２０１に相当する。図２、図３、図９において下線が付与された数値（例えば２０３，２０６，３０１，３０２，３０３，３０４など）は、ＷＯＲＭメディアにおいてユーザがデータを書き込んでいないメモリブロックを示している。この下線が付与された数値は、ＷＯＲＭメディアを工場から出荷する時点で既に書き込まれている初期値であって、ユーザによって意図的に書き込まれたデータではない。そして、これら“未書き込み”のメモリブロックのデータ値（データ群）は、将来に１度だけ、書き込み処理によって変更できる。ここでメモリブロックとは、ＷＯＲＭメディアにおける書き込みできる制御単位であり、ここでは３２バイトを単位とする。例えば、あるメモリブロックにユーザの指示によって１度データが書き込まれた場合には、そのメモリブロックへのデータの上書きが禁止される。  図３において、Ａｄｄｒ０１０１〜Ａｄｄｒ０８６４のアドレスで示されたメモリブロック３０１は、ＣｏｎｔｅｎｔＡ．ｊｐｇ３０４に相当する。メモリブロック３０１は、ＣｏｎｔｅｎｔＡ．ｊｐｇ３０４を、メモリブロックの値から生成した鍵情報を用いて暗号化された暗号化コンテンツを記録している。上記鍵情報の生成については後述する。同様に、Ａｄｄｒ０９０１で示されたメモリブロック３０２は、ＣｏｎｔｅｎｔＡ．ｊｐｇ３０４の復号に利用されるＡｄｄｒＴａｂｌｅＡ．ｄａｔａ３０５のデータを記録している。これらアドレステーブルにはアドレス情報が含まれており、「何処のメモリブロック領域に、鍵情報の生成のために必要となる情報（シードセット）が記憶されているか？」を示す役割を担っている。ここでは、ＡｄｄｒＴａｂｌｅＡ．ｄａｔａ３０５が、アドレスＡｄｄｒ１０００を指し示しているため、「鍵情報を生成する際には、アドレスＡｄｄｒ１０００に記憶されているデータ（図３（Ａ）のデータ群３０３）をシードセットとして参照することになる。図３（Ａ）におけるデータ群３０３は、ＡｄｄｒＴａｂｌｅＡ．ｄａｔａ３０５が指し示すアドレスＡｄｄｒ１０００に記憶されているデータであり、工場からの出荷時または製造時に予め初期値０ｘ１０１１０１０１が記録されている。このデータ群３０３は、図３（Ｂ）におけるデータ群３０６に相当する。また、図３（Ａ）を用いて説明すると、ア���レステーブルであるデータ群３０２（０ｘ０００００３Ｅ８）が指し示すアドレスがＡｄｄｒ１０００ということになる。なお、データ群３０３またはデータ群３０６に記録された初期値０ｘ１０１１０１０１は、ユーザの意図に関らず記憶されている初期値であるから、ここに説明する値であるとは限らない。
【００２０】
以上のようにして、メディア書き込み装置１０１は、“未書き込み”の領域２０１に、ＣｏｎｔｅｎｔＡ．ｊｐｇ３０４を表すデータを書き込み、また“未書き込み”の領域２０２に、ＡｄｄｒＴａｂｌｅＡ．ｄａｔａ３０５を表すデータを書き込む。これにより、ＷＯＲＭメディアの内部に、暗号化されたコンテンツと鍵情報のシードセットが存在している状態を形成する。
【００２１】
図９は、コンテンツが破壊された後のＷＯＲＭメディアの状態を示す図である。図９において注目するべき点は、図３におけるデータ群３０３（データ群３０６）の代わりに、別のデータ群１２０１（データ群１２０２）を書き込んでいる点である。上述したように、データ群１２０１は、ＡｄｄｒＴａｂｌｅＡ．ｄａｔａ３０５によって指し示されるアドレスＡｄｄｒ１０００に記憶されているデータ群である。ここでは、そのシードセットとなるデータ群を別のデータに書き換えることによって、上述した鍵情報を生成できなくし、結果的に暗号化コンテンツＣｏｎｔｅｎｔＡ．ｊｐｇ３０４の暗号復号を実質的に不可能にするものである。なお、このデータ群１２０１（データ群１２０２）によるデータの書き込みは、図１におけるメディア破壊装置１０３のメモリブロック書き込み部６０１によって行う。
【００２２】
本実施形態で注目するべき点は、暗号または暗号復号のための鍵のシードセットが、ＷＯＲＭメディアにユーザの意図で書き込む前の初期値である点である。これにより、たとえＷＯＲＭメディアであっても、そのシードセットが記憶されているアドレスに別のデータを書き込むことで、上記鍵を復元できなくすることができる。
【００２３】
＜メディア書き込み装置１０１の処理手順＞
図４は、メディア書き込み装置１０１が行う処理手順を示したフローチャートである。この処理の様子は主に図３に示した通りである。なお、この処理手順の前は、処理対象のＷＯＲＭメディアは、図２に示したようなデータを記憶しているものとする。つまり、２０１，２０２及び２０３で示されるメモリブロックは、（下線を付与されているように）未書込みのメモリブロックであり、１度だけ書き換えをすることができる。
【００２４】
まず、ステップ７０１では、コンテンツ取得部４０１によってコンテンツを取得する。次に、ステップ７０２では、このコンテンツを暗号化するための鍵情報を生成するために、メモリブロック選択部４０２によって、ＷＯＲＭメディア上の未書き込みメモリブロックを１つ選択する。ステップ７０３では、ＷＯＲＭメディア読み書き部４０５によって、上記選択された未書き込みメモリブロックのアドレスを、アドレステーブルＡｄｄｒＴａｂｌｅＡ．ｄａｔａ３０５としてＷＯＲＭメディアに書き込む。ステップ７０４では、暗号化部４０４によって、選択されたメモリブロックのデータ値をシードセットとして鍵情報を生成し、更に、この鍵情報を用いてコンテンツを暗号化する。ステップ７０５では、ＷＯＲＭメディア読み書き部４０５によって、ステップ７０４で取得した暗号化コンテンツ（ＣｏｎｔｅｎｔＡ．ｊｐｇ）をＷＯＲＭメディアに書き込む。以上のステップにより、図２に示した記憶データの状態から、図３に示した記憶データの状態に変更することができる。
【００２５】
＜メディア閲覧装置１０２の処理手順＞
図５は、メディア閲覧装置１０２が行う処理手順を示したフローチャートである。ステップ８０１では、アドレス取得部５０２によって、上述したアドレステーブルをＷＯＲＭメディアから読み込む。次に、ステップ８０２では、メモリブロック読み込み部５０３によって、上記アドレステーブルに記載されたアドレスのメモリブロックに記憶されたデータ群をシードセットとして読み込む。ステップ８０３では、復号部５０４によって、上記シードセットに基づいた鍵情報を生成し、その鍵情報を用いて暗号化コンテンツを暗号復号する。そして、この暗号復号されたコンテンツを種々の方法で閲覧する。もし、暗号復号されたコンテンツが音声であれば、スピーカなどから出力される。
【００２６】
＜メディア破壊装置１０３の処理手順＞
図６は、メディア破壊装置１０３が行う処理手順を示したフローチャートである。ステップ９０１では、アドレス取得部６０２によって、上述したアドレステーブルをＷＯＲＭメディアから読み込む。ステップ９０２では、メモリブロック書き込み部６０１によって、上記アドレステーブルに記載されたアドレスのメモリブロックに、現在記憶されている初期値とは異なる別データ（乱数値または固定値）を書き込む。
【００２７】
ここで、本実施形態においては、ＡＥＳに代表される共有鍵暗号方式を利用する場合を一例として説明をしたが、ＲＳＡに代表される公開鍵暗号方式に適用することも容易である。この場合においては、メディア書きこみ装置１０１はシードセットのデータ値から秘密鍵を生成してコンテンツの暗号化処理を実行する。一方、メディア閲覧装置１０２は、シードセットのデータ値から秘密鍵を生成し、さらに秘密鍵から公開鍵を生成することにより暗号化されたコンテンツを復号することが可能である。メディア破壊装置１０３においてシードセットが書き換えられた場合においては、メディア閲覧装置１０２は正しい秘密鍵を生成できなくなることから、公開鍵の生成も困難である。
【００２８】
［第２実施形態］
ＷＯＲＭメディアの未書き込みのメモリブロックにおいて、全てが初期値０ｘ００００００００などの既知の値となっている場合、アドレステーブルが示すメモリブロックのシードセットを書き換えても、元の初期値を推測することにより鍵情報を生成できてしまう。本実施形態では、このような推測を困難にする。本実施形態で注目するべき点は、アドレステーブルが参照するメモリブロックを複数にし、暗号化処理時にその一部のメモリブロックの値を任意の値で書き換える点である。そして、この書き換えたメモリブロックのデータ値をシードセットの一部として鍵情報の生成に利用する。この結果、暗号化処理時に書き換えた値及び初期値をシードセットとして鍵情報が生成されるため、消去処理によって初期値を書き換えた後においては、正しい鍵情報を生成するシードセットを推測することが困難になる。なお、メディア書き込み装置１０１、メディア閲覧装置１０２、メディア破壊装置１０３の基本的な機能については、上記第１の実施形態と同様であるため説明を省略する。以下では、主に、第１実施形態と異なるＷＯＲＭメディアへのデータの記憶方法について説明する。
【００２９】
図７は、本実施形態におけるＷＯＲＭメディアへのデータの書き込み方法の一例を示す図である。ここで、図７（Ａ）は、ＷＯＲＭメディアの各アドレスに格納されているデータ列を具体的に表記したものである。また、図７（Ｂ）は、図７（Ａ）を、視覚的に表した図である。図７（Ｂ）の１００８は、図７（Ａ）の１００１に相当し、図７（Ｂ）の１００９は、図７（Ａ）の１００２、１００３、１００４に相当する。また、図７（Ｂ）の１０１０、１０１１、１０１２は、それぞれ、図７（Ａ）の１００５、１００６、１００７に相当する。図７において下線が付与されたデータ値（例えば１００６）は、ＷＯＲＭメディアにおいてユーザがデータを書き込んでいないメモリブロックを示している。この下線が付与された数値は、ＷＯＲＭメディアを工場から出荷する時点で既に書き込まれている初期値であって、ユーザによって意図的に書き込まれたデータではない。そして、これら“未書き込み”のメモリブロックのデータ値（データ群）は、将来に１度だけ、書き込み処理によって変更できる。ここでメモリブロックとは、ＷＯＲＭメディアにおける書き込みできる制御単位であり、ここでは３２バイトを単位とする。また、図７（Ｂ）において、ＣｏｎｔｅｎｔＡ．ｊｐｇ１００８は、メモリブロックの値から生成した鍵情報を用いて暗号化された暗号化コンテンツである。上記鍵情報の生成については後述する。図７（Ｂ）における暗号化コンテンツ１００８は、図７（Ａ）におけるＷＯＲＭメディアのアドレスＡｄｄｒ００１０１〜アドレスＡｄｄｒ００８６４に記録されたデータ群１００１に相当する。また、図７（Ｂ）におけるＡｄｄｒＴａｂｌｅＡ．ｄａｔａ１００９は、ＣｏｎｔｅｎｔＡ．ｊｐｇ１００８を暗号化するための鍵情報を生成する時に利用されるアドレステーブルである。これらアドレステーブルにはアドレス情報が含まれており、「何処のメモリブロックに、鍵情報の生成のために必要となる情報（シードセット）が記憶されているか？」を示す役割を担っている。このＡｄｄｒＴａｂｌｅＡ．ｄａｔａ１００９は、図７（Ａ）におけるＷＯＲＭメディアのアドレスＡｄｄｒ００９０１〜Ａｄｄｒ００９０３に記録されているデータ群１００２〜１００４に相当する。即ち、本実施形態では、アドレステーブルが複数のメモリブロックを指定している。ここでは、ＡｄｄｒＴａｂｌｅＡ．ｄａｔａ１００９がアドレスＡｄｄｒ０１０００〜Ａｄｄｒ０１００２を指し示しているので、鍵情報を生成する際には、アドレスＡｄｄｒ０１０００〜Ａｄｄｒ０１００２に記憶されたデータ群をシードセットとして参照する。
【００３０】
図７（Ｂ）におけるデータ群１００５は、ＡｄｄｒＴａｂｌｅＡ．ｄａｔａ１００９が指し示すアドレスＡｄｄｒ０１０００に記憶されているシードセットとなるデータである。なお、このＡｄｄｒ０１０００には、工場からの出荷時または製造時には、予め初期値０ｘ００００００００が記録されていたとする。本実施形態ではデータ群１００３について、初期値０ｘ００００００００から０ｘ１１０１０１０１に変更してしまう。そしてこの０ｘ１１０１０１０１がシードセットの一部として利用される。
【００３１】
同じく、データ群１００７は、ＡｄｄｒＴａｂｌｅＡ．ｄａｔａ１００９が指し示すアドレスＡｄｄｒ０１００２に記憶されているシードセットなるデータである。なお、このＡｄｄｒ０１００２には、工場からの出荷時または製造時には、予め初期値０ｘ００００００００が記録されていたとする。本実施形態ではデータ群１００７について、初期値０ｘ００００００００から０ｘ００１０１０００に変更してしまう。そしてこの０ｘ００１０１０００がシードセットの一部として利用される。
【００３２】
これに対し、データ群１００６も、ＡｄｄｒＴａｂｌｅＡ．ｄａｔａ１００９が指し示すアドレスＡｄｄｒ０１００１に記憶されているシードセットとなるデータである。  しかしながら、このデータ群１００６だけは、工場からの出荷時または製造時の初期値０ｘ００００００００が記録されたまま維持するようにする。
【００３３】
以上のように、本実施形態では、シードセットの一部として初期値から書き換えたデータ群とし、残りの一部としては初期値を利用する。
【００３４】
＜メディア書き込み装置１０１の処理手順＞
図８は、第２実施形態において、メディア書き込み装置１０１が行う処理手順を示したフローチャートである。この処理の様子は主に図７に示した通りである。なお、この処理手順の開始前では、図７のＣｏｎｔｅｎｔＡ．ｊｐｇ１００８とＡｄｄｒＴａｂｌｅＡ．ｄａｔａ１００９がＷＯＲＭメディアに書き込まれていない。また、アドレスＡｄｄｒ０１０００〜Ａｄｄｒ０１００２のメモリブロックには、工場出荷時の初期値０ｘ００００００００が記憶されているものとする。
【００３５】
まず、ステップ１１０１では、コンテンツ取得部４０１によってコンテンツを取得する。次に、ステップ１１０２では、このコンテンツを暗号化するための鍵情報を生成するために、メモリブロック選択部４０２によって、ＷＯＲＭメディア上の未書き込みメモリブロックをＮ個選択する。図７の例で説明するならば、ここでは３つのメモリブロックが選択される。ステップ１１０３では、ＷＯＲＭメディア読み書き部４０５によって、上記選択された未書き込みメモリブロックのアドレスを、アドレステーブルＡｄｄｒＴａｂｌｅＡ．ｄａｔａ１００９としてＷＯＲＭメディアに書き込む。ステップ１１０４では、Ｎ個のメモリブロックにおける一部、即ち、Ｍ個（Ｎ＞Ｍ）のメモリブロックのデータを、別のデータに変更する。別のデータの例として、例えば、固定値や乱数を用いる。図７の例で説明するならば、アドレスＡｄｄｒ０１０００とＡｄｄｒ０１００２のデータを、別のデータに変更する点（０ｘ００００００００→０ｘ１１０１０１０１、０ｘ００００００００→０ｘ００１０１０００）に相当する。ステップ１１０５では、上記変更作業が終了した後の、上記Ｎ個メモリブロックのデータをシードセットとして、鍵情報を生成する。ステップ１１０６では、暗号化部４０４によって、処理対象のコンテンツを上記鍵情報を用いて暗号化する。そして、ＷＯＲＭメディア読み書き部４０５によって、ステップ１１０４で取得した暗号化コンテンツ（ＣｏｎｔｅｎｔＡ．ｊｐｇ）をＷＯＲＭメディアに書き込む。以上のステップにより、図７に示した記憶データの状態を作りだすことができる。
【００３６】
＜メディア閲覧装置１０２の処理手順＞
第２実施形態におけるメディア閲覧装置１０２の処理手順を簡単に説明する。まず、暗号化コンテンツ（図７のＣｏｎｔｅｎｔＡ．ｊｐｇ１００８）を取り出す。次に、アドレステーブル（図７の１００９）に基づくアドレス（Ａｄｄｒ０１０００〜Ａｄｄｒ０１００２）からＮ個のデータ値をシードセットとして取り出す。次に、そのシードセットから鍵情報を生成する。次に、上記暗号化コンテンツを上記鍵情報を用いて暗号復号する。そして、この暗号復号されたコンテンツを種々の方法で閲覧する。もし、暗号復号されたコンテンツが音声であれば、スピーカなどから出力される。
【００３７】
＜メディア破壊装置１０３の処理手順＞
第２実施形態におけるメディア破壊装置１０３が行う処理手順を説明する。まず、アドレス取得部６０２によって、上述したアドレステーブル（図７の１００９）をＷＯＲＭメディアから読み込む。次に、メモリブロック書き込み部６０１によって、上記Ｎ個のアドレス（メモリブロック）のうち“未書き込みのメモリブロック”に相当する（Ｎ−Ｍ）個のメモリブロックについて、現在記憶されている初期値とは異なるデータを書き込む。“未書き込みのメモリブロック”は、ＷＯＲＭメディアに備えられた機能を用いて判別してもよいし、或いは、Ｎ個全てのメモリブロックに書き換え処理を実行してもよい。後者の場合には、ＷＯＲＭメディアによって書き込み済みのメモリブロックの書き換えが禁止されるため、結果として“未書き込みのメモリブロック”のみのデータ値が書き換えられることになる。
【００３８】
図１０は、本実施形態におけるシードセットとして用いられる複数のメモリブロックのデータの書き換えの流れの一例を表す。図１０においてＡｄｄｒ１０００〜Ａｄｄｒ１００４の５つのアドレスで指定されるメモリブロックはシードセットとして用いられるメモリブロックである。さらに、１３０１，１３０２及び１３０３は、夫々コンテンツ書き込み前，コンテンツ書き込み後及びコンテンツ破壊後におけるＡｄｄｒ１０００〜Ａｄｄｒ１００４のアドレスのメモリブロックの状態を表す。つまり、１３０１のコンテンツ書き込み前の状態においては、各メモリブロックには初期値０ｘ００００００が記録されている。ここで、これらは（下線を付与している通り）書き換え可能なメモリブロックであり、初期値０ｘ００００００が記録されている。そして、メディア書きこみ装置１０１は、コンテンツ書き込み時に図８で示したフローチャートの処理に従ってＡｄｄｒ１０００及びＡｄｄｒ１００３で指定されるメモリブロックのデータを任意の値で書き換える。そして、１３０２で示したメモリブロックの状態をシードセットとして鍵情報を生成し、コンテンツを暗号化してＷＯＲＭメディアに書き込む。さらに、メディア破壊装置１０３は、メディア書きこみ装置１０１が書き換えをしていないＡｄｄｒ１００１，Ａｄｄｒ１００２及びＡｄｄｒ１００４にデータを書き込んで１３０３のメモリブロックの状態にする。このため、メディア破壊装置１０３においてコンテンツを破壊した後に暗号化コンテンツを正しく復号するためには、次のようにしなければならない。攻撃者はＡｄｄｒ１０００〜Ａｄｄｒ１００４のメモリブロックのうちＡｄｄｒ１００１，Ａｄｄｒ１００２及びＡｄｄｒ１００４を正しく選択して初期値とし鍵情報を生成しなくてはならない。従って、攻撃を困難にすることができる。
【００３９】
以上より、例えば第三者がシードセットの全てを初期値０ｘ００００００００と推測して鍵情報を生成しても、Ｎ個のメモリブロックのうち、暗号化時に書き換えられたＭ個のメモリブロック以外を正しく選択して初期値としなければ正しい鍵情報にはならない。即ち、容易に暗号化コンテンツを暗号復号される心配が無くなる。
【００４０】
また、上記方法によれば、悪意の在るものが「Ｎ個のメモリブロックのうち、どの一部を上記Ｍ個のメモリブロックと見なすか」を特定しなければ、正しい鍵情報を作れない。従って、Ｎ個のメモリブロックからＭ個のメモリブロックを選択する組合せ」の数をできるだけ増やすように工夫すれば、暗号化コンテンツが解読される心配が無くなるであろう。
【００４１】
また、上述したようにＭ個のメモリブロックを解読することが困難である本実施形態においては、以下のような変形例を適用しても良い。例えば、本実施形態では、未書き込みのメモリブロックに記憶されている初期値をシードセットに利用したが、初期値を別のもので代用しても良い。例えば、もしアドレステーブルが未書き込みのブロックを指し示しているという判断ができるのであれば、未書き込みのブロックに書き込まれているべき初期値と同じ値（例えば０ｘ００００００００）を他のメモリなどから取得して利用しても良いであろう。例えば、未書き込みのメモリブロックからデータ読み込みが行えないＣＤ−Ｒなどの記録メディアがＷＯＲＭメディアの場合を考える。この場合には、「メモリブロックからデータが読み出せない」という判断に基づいて、初期値（０ｘ００００００００）の代わりに上記所定値（０ｘ００００００００）を他のメモリから取得し、これをシードセットの一部として利用すれば良いであろう。もし、シードセットが１つのメモリブロックから取得される第１実施形態の場合には、上述したような所定値の存在を複数の装置で共有することは好ましくない。しかしながら、Ｎ個のメモリブロックの何れのＭ個が初期値を記憶していたか解読困難とする第２実施形態の場合には、上記所定値を流用するルールが知られていても、悪意のある第３者に暗号化コンテンツを解読される可能性は低い。
【００４２】
なお、メディア書きこみ装置１０１は、Ｎ個のメモリブロックからＭ個のメモリブロックを、第３者が予測できないようにランダムに選択することとする。このようにすれば、メディア破壊装置１０３がシードセットの一部を破壊（変更）した後には、どの部分が変更されたシードセットなのかを予測することが困難になる。即ち、不正に暗号化コンテンツを復元される可能性が低くなる。このようにした場合でも、メディア破壊装置１０３がシードセットの一部を破壊する前であれば、メディア閲覧装置１０２などは、特に工夫することなく暗号化コンテンツを復号できるであろう。
【００４３】
［変形例］
上記実施の形態において、複数の暗号化コンテンツを順に書き込む場合には、ＷＯＲＭメディアの所有者の意図に反するデータの破壊が行われてはならない。例えば、２番目以降の暗号化コンテンツの書き込みにおいて「１番目のシードセットとして参照される未書き込みのメモリブロック」が変更されてはならない。また、３番目以降の暗号化コンテンツの書き込みにおいて「１番目と２番目のシードセットとして参照される未書き込みのメモリブロック」が変更されてはならない。このように複数の暗号化コンテンツを書き込む場合には、ファイルシステムの構成において利用されることのない不活用領域を上記未書き込みのメモリブロックとして割当てることが有効である。例えば、ＦＡＴなどのファイルシステムでは２０４８バイトごとのアロケーションユニットを単位としてデータの管理が行われる。このため、２０４８バイト未満のファイルを書き込んだ場合には、ファイルシステムによって書き込まれることのない不活用のデータ領域が発生する。例えば、アロケーションユニットが２０４８バイト単位であり、このアロケーションユニットに１０２４バイトのデータを書き込んだ場合には、残りの１０２４バイトのデータ領域はファイルシステムによって利用されない不活用のデータ領域となる。つまり、メモリブロックが３２バイト単位のデータ領域である場合には、シードセットとして利用できる３２個のメモリブロックとすることができ、他のデータ書き込みによって意図せず書き換えされる心配が少ない。
【００４４】
図１１は、メディア書き込み装置１０１が不活用のメモリブロックを選択する手順の一例を示したフローチャートである。尚、第１の実施形態に適用する場合は、書き込み時のフローは図４であり、図４のステップ７０２を、図１１のフローに置き換えて処理する。また、第２の実施形態に適用する場合は、書き込み時のフローは図８であり、図８のステップ１１０２を、図１１のフローに置き換えて処理する。ステップ１４０１では、メモリブロック選択部４０２がファイルシステムで管理されるアロケーションユニットを選択する。ここで、ステップ１４０２で、メモリブロック選択部４０２が選択したアロケーションユニットがファイルシステムのデータ管理単位未満であり、未書込みのメモリブロックが存在する場合には、ステップ１４０３に進む。ステップ１４０３は、その未書込みのメモリブロックをシードセットとして選択する。ステップ１４０２において未書込みのメモリブロックが存在しない場合には、ステップ１４０１で、別のアロケーションユニットを選択して未書込みのメモリブロックを探索する。
【００４５】
このように、アロケーションユニットが複数のメモリブロックによって構成されている場合、この不活用領域を構成する未使用のメモリブロックを選択してシードセットとすることにより、ＷＯＲＭ所有者が意図しないシードセットの上書き消去を防止できる。
【００４６】
なお、上述した各実施形態は、以下の処理を実行することによっても実現される。即ち、上記実施形態の各工程や機能を実現するソフトウェア（コンピュータプログラム）を、ネットワークや記憶媒体を介してシステムに供給し、そのシステムのコンピュータ（またはＣＰＵ等）が上記プログラムを読み込んで実行する処理である。上記コンピュータプログラムや、それを記憶したコンピュータ可読記憶媒体も本発明の範疇に含まれる。
【図１】
0005645725.tif 000002
【図２】
0005645725.tif 000003
【図３】
0005645725.tif 000004
【図４】
0005645725.tif 000005
【図５】
0005645725.tif 000006
【図６】
0005645725.tif 000007
【図７】
0005645725.tif 000008
【図８】
0005645725.tif 000009
【図９】
0005645725.tif 000010
【図１０】
0005645725.tif 000011
【図１１】
0005645725.tif 000012