説明

情報保護システム、情報記憶媒体、及び情報処理装置

【課題】有効な不正コピー防止対策がない状況を踏まえ、より高度で、かつ、不正コピーの攻撃を受けたとときでも被害を最小に抑える情報保護システムを提供する。
【解決手段】情報保護システムにおいて、情報処理装置300に情報記憶媒体200が装着されたとき、情報記憶媒体200に格納されたソフトウェアコンテンツに付される電子署名により真正なものであることを判定する電子署名による真贋判定処理(第1判定処理)100と、情報処理装置300と情報記憶媒体200とがお互いに真正なものであることを判定する認証手順による真贋判定処理(第2判定処理)101と、情報記憶媒体200に格納されたソフトウェアコンテンツに対する改竄の有無を判定する改竄検出処理(第3判定処理)102によって3重にセキュリティチェックを実行する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置で使用されるソフトウェアコンテンツを保護する技術に関し、特にゲーム装置用情報記憶媒体に記憶されたゲームプログラム等のデータを保護する技術に関する。
【背景技術】
【0002】
記憶媒体に格納されたゲームプログラムやデータ等ソフトウェアを不正な複製から保護するための技術がいろいろ提案されている。例えば、特開2006−146608号公報(特許文献1)や特開2006−139884号公報(特許文献2)では、情報処理装置に供給されるソフトウェアを、第三者には解読困難なコピー防止の仕組みを備えた半導体記憶装置にソフトウェアを記憶し保護する技術が記載されている。
【0003】
特許文献1は、保護すべきソフトウェアが記憶された半導体記憶装置と情報処理装置との間のデータ通信を制御するコマンドを暗号化し、かかる暗号化に必要な暗号鍵データを記憶している半導体記憶装置が情報処理装置に接続されたときには情報処理装置は正常にソフトウェアを実行するが、半導体記憶装置に記憶されたソフトウェアの単純な複製を記憶した半導体記憶装置、すなわち暗号化に必要な暗号鍵の情報を備えていない半導体記憶装置を前記情報処理装置に接続したときには、前記データ通信を制御するコマンドが半導体記憶装置によって受け付けられず、半導体記憶装置から情報処理装置へソフトウェアのデータの通信が行われず、情報処理装置は正常にソフトウェア実行しないことでソフトウェアを保護するものである。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−146608号公報
【特許文献2】特開2006−139884号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、今までのところいずれの不正コピー防止対策も破られており有効な対抗策がないのが実情である。特許文献1などの保護技術は、半導体記憶装置に記憶された暗号鍵元データから暗号鍵データを生成するための暗号生成データを情報処理装置内に保持する構成(特許文献1の図1に図示される情報処理装置10に搭載された暗号生成データ記憶部14)となっているため、暗号生成データ記憶部に格納されている暗号生成データが不正に解読されたときは、当該情報処理装置に対応する全てのソフトウェアタイトルが不正コピーの危険に晒され、甚大な被害を受けることになる。
【0006】
したがって、本発明の目的は、有効な不正コピー防止対策がない状況を踏まえ、より高度で、かつ、不正コピーの攻撃を受けたときでも被害を最小に抑える情報保護システムを提供するものである。
【0007】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【0008】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次の通りである。
【0009】
本発明による、情報処理装置と前記情報処理装置に着脱可能に装着される情報記憶媒体とによって構成される情報処理システムにおいて、前記情報記憶媒体は、ソフトウェアコンテンツが格納された第1記憶手段(207)と、前記ソフトウェアコンテンツに対する一方向ハッシュ関数に基づく第1要約値が格納された第2記憶手段(206)と、公開鍵暗号に基づく第1秘密鍵が格納された第3記憶手段(330,341)と、前記第1秘密鍵に対する公開鍵となる公開鍵が格納された第4記憶手段(320,340)と、前記情報記憶媒体及び前記情報処理装置とは別に秘密に保持される第2秘密鍵で前記第1要約値と前記第1公開鍵を含む情報を暗号化することにより生成された暗号文が格納された第5記憶手段(210)と、前記情報処理装置から供給される乱数に応答して、応答情報を生成する第1演算手段(332,343)と、を備えてなり、前記情報処理装置は、前記第2秘密鍵に対する公開鍵となる第2公開鍵が格納された第6記憶手段(302)と、乱数生成手段(335,346)と、前記第5記憶手段(210)から読み出した前記暗号文と前記第6記憶手段(302)から読み出した前記第2公開鍵に基づく演算を行い前記第1要約値と前記第1公開鍵とを含む第1復号文を生成する第2演算手段(310)と、前記第2演算手段(310)で生成された前記第1要約値と前記第1公開鍵とを含む前記第1復号文を、前記第2記憶手段(206)から読み出した前記第1要約値及び前記第4記憶手段(320,340)から読み出した前記第1公開鍵を含む情報と比較する第3演算手段(312)と、前記乱数生成手段(335,346)で生成された乱数を前記情報記憶媒体の前記第1演算手段(332)に送信する手段と、前記第1演算手段(332,343)から受信する演算結果(331,342)に基づく演算を行う第4演算手段(316,348)と、前記第4演算手段(316,348)の演算で得られた演算結果に基づく比較演算を行う第5演算手段(334,367)と、前記情報記憶媒体の前記第1記憶手段(207)から読み出した前記ソフトウェアコンテンツに対し一方向ハッシュ関数に基づく第2要約値を生成する第6演算手段(319)と、前記第2要約値と前記情報記憶媒体の前記第2記憶手段(206)から読み出した前記第1要約値とを比較する第7演算手段(317)と、を備えてなり、前記情報記憶媒体が前記情報処理装置に装着されているとき、前記第3演算手段(312)による比較処理に基づき、前記第5記憶手段(210)に格納された前記暗号文と前記第2記憶手段(206)に格納された前記第1要約値に対する真贋判定を行う第1判定処理と、前記第5演算手段(334,367)の演算結果に基づき前記情報記憶媒体が前記情報処理装置に対し真正なものであるか否かの認証判定を行う第2判定処理と、第7演算手段(317)による比較処理に基づき前記第2記憶手段(206)に格納された前記第1要約値と前記第1記憶手段(207)に格納されたソフトウェアコンテンツに対する改竄有無判定を行う第3判定処理と、前記第1判定処理乃至前記第3判定処理の全てにおいて合格判定が得られたとき前記情報記憶媒体から読み出した前記ソフトウェアコンテンツの前記情報処理装置での実行を許可する処理と、が行われる構成であることを特徴とする。
【0010】
本発明による一実施態様において、前記第5記憶手段(210)は、前記第1秘密鍵の対する公開鍵である前記第1公開鍵を前記第2秘密鍵で暗号化して得られた暗号文を格納する第5(1)記憶手段(210−1)と、前記ソフトウェアコンテンツに対する一方向ハッシュ関数に基づく第1要約値を第2秘密鍵で暗号化して得られた暗号文を格納する第5(2)記憶手段(210−2)とを含み、第2演算手段(310)は、前記第5(1)記憶手段(210−1)から読み出した暗号文を前記第6記憶手段(302)に格納された前記第2秘密鍵に対する公開鍵である前記第2公開鍵に基づき復号化する演算を行う第2(1)演算手段(310−1)と、前記第5(2)記憶手段(210−2)から読み出した暗号文を前記第2公開鍵に基づき復号化する演算を行う第2(2)演算手段(310−2)とを含み、前記第3演算手段(312)は、前記第2(1)演算手段(310−1)で復号化された復号文を前記第4記憶手段(320)から読み出した前記第1秘密鍵に対する公開鍵と比較する第3(1)演算手段(312−1)と、前記第2(2)演算手段(310−2)で復号化された復号文を前記第2記憶手段(206)から読み出した前記第1要約値と比較する第3(2)演算手段(312−2)とを、それぞれ含む構成とすることができる。
【0011】
さらに、本発明による他の実施態様において、前記情報記憶媒体はさらに、乱数生成手段(345)と、第1演算引数選択手段(344)と、法の数字を記憶する第7記憶手段(図示せず)とを含み、前記第5記憶手段(210)には前記第1秘密鍵に対する公開鍵と前記第1要約値の合成値を一方向ハッシュ関数に基づき生成した要約値を前記第2秘密鍵で暗号化して得られた暗号文が格納されており、前記情報処理装置はさらに、前記第4記憶手段(340)から読み出した前記第1公開鍵と前記第2記憶手段(206)から読み出した前記第1要約値との合成値を生成する第8演算手段(313)と、前記第8演算手段(313)で得られた合成値の一方向ハッシュ関数に基づく要約値を生成する第9演算手段(314)と、第2演算引数選択手段(347)と、法の数字を記憶する第8記憶手段(図示せず)と、前記第4演算手段(348)の演算結果を記憶する第9記憶手段(365,366)と、を含み、前記情報処理装置の乱数生成手段(346)は“U=0”と“U=1”のいずれかを無作為に出力するものであり、前記第1判定処理は、前記第2演算手段(310)で復号された前記合成値の要約値である前記第1復号文を前記第9演算手段(314)で生成された前記合成値の要約値と比較する処理が前記第3演算手段(312)によって行われるものであり、前記第2判定処理は、前記第2判定処理の開始時に、前記情報記憶媒体において、前記第1演算手段(343)がR2 mod Nを演算し演算結果を前記情報処理装置に送信する処理を含み、前記情報記憶媒体の乱数生成手段(345)によって生成された乱数をR、前記第7記憶手段(図示せず)及び前記第8記憶手段(図示せず)に格納されている法の数字をそれぞれN,前記第1秘密鍵をM、前記第1公開鍵をW(=M2 mod N)とするとき、(1)前記情報処理装置の乱数生成手段(346)で生成される出力がU=0のときは、前記情報記憶媒体において、前記情報処理装置からの出力U=0に応答して、前記第1演算手段(343)がR2 mod Nを演算し演算結果を前記情報処理装置に送信し、前記情報処理装置において、(a−1)前記第4演算手段(348)が、前記第2判定処理の開始時に前記情報記憶媒体から受信する前記第1演算手段(343)による演算結果に基づき演算した演算値を前記第9記憶手段(365,366)に格納し、(b−1)前記第4演算手段(348)が、前記情報処理装置からの出力U=0に応答して前記情報記憶媒体から受信する前記第1演算手段(343)による演算結果に基づき演算した演算値を前記第9記憶手段(365,366)に格納し、(c−1)前記第5演算手段が、前記(a−1)で格納された演算値と前記(b−1)で格納された演算値を比較する処理を実行し、(2)前記情報処理装置の乱数生成手段で生成される出力がU=1のときは、前記情報記憶媒体において、前記情報処理装置からの出力U=1に応答して、前記第1演算手段(343)が(R・M) mod Nを演算し演算結果を前記情報処理装置に送信し、前記情報処理装置において、(a−2)前記第4演算手段(348)が、前記第2判定処理の開始時に前記情報記憶媒体から受信する前記第1演算手段(343)による演算結果と前記第4記憶手段(340)から読み出した前記第1公開鍵(W)とに基づき演算した演算値を前記第9記憶手段(365,366)に格納し、(b−2)前記第4演算手段(348)が、前記情報処理装置からの出力U=1に応答して前記情報記憶媒体から受信する前記第1演算手段(343)による演算結果と前記第4記憶手段(340)から読み出した前記第1公開鍵(W)とに基づき演算した演算値を前記第9記憶手段(365,366)に格納し、(c−2)前記第5演算手段が、前記(a−2)で格納された演算値と前記(b−2)で格納された演算値を比較する処理を実行する構成とすることができる。
【0012】
さらに、本発明による他の実施態様において、前記第1判定処理乃至前記第3判定処理のうち少なくともいずれか一の判定処理を前記情報記憶媒体が前記情報処理装置に装着されたとき実行し、残余の判定処理は前記ソフトウェアコンテンツの実行途中のアイドル時に実行する構成のセキュリティ実行プログラムを前記情報記憶媒体と前記情報処理装置の少なくともいずれかに搭載する構成とすることができる。
【発明の効果】
【0013】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下の通りである。すなわち、代表的なものによって得られる効果は、情報処理装置に情報記憶媒体が装着されたとき、情報記憶媒体に格納された第1秘密鍵に基づき情報記憶媒体を証明者とし情報処理装置を認証者とする認証判定により装着された情報記憶媒体が情報処理装置に対し真正なものであることの第2判定処理(認証判定)とともに、ソフトウェアコンテンツの一方向ハッシュ関数に基づく要約値と前記第1秘密鍵の公開鍵を含む情報を情報処理装置と情報記憶媒体とは別に秘密に保持される第2秘密鍵で暗号化した暗号文を電子署名として使用する真贋判定を行う第1判定処理(電子署名による真贋判定処理)と、情報記憶媒体に格納されたソフトウェアコンテンツ及びその要約値に対する改竄の有無を判定する第3判定処理(改竄検出処理)によって3重にセキュリティチェックを実行するものとし、さらに認証判定処理と電子署名による真贋判定処理と改竄検出処理のそれぞれを互いに関連付けるとともに各判定処理をソフトウェアコンテンツの一方向ハッシュ関数に基づく要約値に関連付けて実行することで、ソフトウェアコンテンツに対する不正コピーや改竄をさらに困難にするとともに、セキュリティが破られたとしても、被害を当該ソフトウェアコンテンツタイトルに限定することができる。
【図面の簡単な説明】
【0014】
【図1】本発明の実施の形態1に係る情報保護システムの構成を示す構成図である。
【図2】本発明の実施の形態1に係る情報保護システムの情報保護処理を説明するための説明図である。
【図3】本発明の実施の形態2に係る情報保護システムの構成を示す構成図である。
【図4】本発明の実施の形態2に係る情報保護システムの認証手順による真贋判定処理で用いられるゼロ知識対話証明の認証方式を説明するための説明図である。
【図5】本発明の実施の形態2に係る情報保護システムの情報保護処理を説明するための説明図である。
【発明を実施するための形態】
【0015】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【0016】
(実施の形態1)
図1により、本発明の実施の形態1に係る情報保護システムの構成について説明する。図1は本発明の実施の形態1に係る情報保護システムの構成を示す構成図である。
【0017】
図1において、情報保護システムは、ソフトウェアコンテンツを記憶する情報記憶媒体200と情報記憶媒体200に記憶されたソフトウェアコンテンツを読み出し各種処理を行う情報処理装置300から構成されている。
【0018】
情報記憶媒体200は、記憶部202、第1演算手段である演算回路332、演算回路332への入出力を制御する暗号制御回路250、記憶部202からの情報読み出しを制御する記憶部制御回路251、情報処理装置300との入出力を制御する入出力部252から構成されている。入出力部252は一群の端子を備えたコネクタによって構成され、情報処理装置300に着脱可能に接続される。情報処理装置300が携帯ゲーム装置の場合、情報記憶媒体は配線基板を内蔵したICカードあるいはカートリッジ形態でユーザに供給される。演算回路332、暗号制御回路250及び記憶部制御回路251は1個の半導体集積回路チップ内に一体的に形成され配線基板上に組み込まれる。
【0019】
記憶部202は、第1秘密鍵が格納された第1秘密鍵記憶部330、第1秘密鍵に対する公開鍵が格納された第1秘密鍵の公開鍵記憶部320、演算回路332の演算結果を一時的に格納する第1演算結果記憶部331、ゲームプログラム等のソフトウェアコンテンツを格納する第1記憶手段であるソフトウェアコンテンツ記憶部207、ソフトウェアコンテンツに対する一方向ハッシュ関数に基づいて生成された第1要約値が格納された第2記憶手段である第1要約値記憶部206、第1公開鍵を第2秘密鍵で暗号化した暗号文(1)と第1要約値を第2秘密鍵で暗号化した暗号文(2)が格納された第5記憶手段である暗号文記憶部210から構成されている。
【0020】
演算回路332の演算結果を一時的に格納する第1演算結果記憶部331は、演算回路332が形成された半導体チップ内に設けられたレジスタによって構成される。その他の第1秘密鍵記憶部330、第1秘密鍵の公開鍵記憶部320、ソフトウェアコンテンツ記憶部207、第1要約値記憶部206、暗号文記憶部210は一乃至複数の不揮発性半導体メモリチップに構成され、上記回路基板に組み込まれる。第1秘密鍵記憶部330は、外部からその情報が読み取れないように耐タンパ性を持つ記憶部として構成されており、第1秘密鍵は、情報記憶媒体200が不正に解析される場合に備え解読が極めて困難な構成となっている。
【0021】
情報処理装置300は、例えば、携帯ゲーム機の場合、情報記憶媒体が装着されたときソフトウェアコンテンツ記憶部207からゲームプログラムを読み出しユーザの操作に応答してゲームを実行できるように構成されている。情報処理装置300は、第2秘密鍵に対する公開鍵である第2公開鍵を格納する第6記憶手段である公開鍵記憶部302(情報処理装置300の外部から記憶情報の変更が困難なことを特徴とする。)、乱数を生成する乱数生成手段である乱数生成部335、情報処理装置300の基本プログラム(情報処理装置全般の制御に使用されるプログラム)が格納される基本プログラム記憶装置352、主記憶部350(プログラムや関連するデータを読み出し実行可能に展開するメモリで処理速度の速いDRAMで構成される。)、画像制御装置、音響制御装置、通信制御装置、その他の処理装置による処理部354、情報処理装置300の全体の制御処理を行う中央演算装置351(CPU、処理プロセッサ)、表示装置355、スピーカ356、操作部357、外部接続用の端子358から構成されている。
【0022】
次に、図2により、本発明の実施の形態1に係る情報保護システムの情報保護処理について説明する。図2は本発明の実施の形態1に係る情報保護システムの情報保護処理を説明するための説明図であり、情報処理装置300内及び情報記憶媒体200内での処理の流れを示している。また、図2において、図1に示す各記憶部に格納された情報は、各記憶部と同じ符号を付けている。
【0023】
図2に示す情報保護処理を実行する手段は、図1に図示されていないが、一群の演算回路等によりハードウェアで構成することも可能であるが、基本プログラムの一部として基本プログラム記憶部352に格納しておき中央処理装置351の制御下で主記憶部350に展開し実行することで構成することができる。あるいは図示されていないが、情報保護処理のシーケンスを実行するプログラムを、情報記憶媒体内の不揮発性メモリ内に格納しておき、情報処理媒体が情報処理装置に装着されたとき主記憶部350に読み出しソフトウェア的に情報保護処理のシーケンスを実行するようにしてもよい。
【0024】
本発明による情報保護処理は、電子署名による真贋判定処理100、認証手順による真贋判定処理101、改竄検出処理102の3つの処理があり、それぞれを互いに関連させて処理している。電子署名による真贋判定処理100とは、認証手順による真贋判定処理101と改竄検出処理102で使用する情報が信頼できるものであるかを判定するものであり、認証手順による真贋判定処理101とは、ソフトウェアコンテンツを記憶する情報記憶媒体200が正規の提供者が製造したものであることの認証を行うものであり、改竄検出処理102とは、情報記憶媒体200に記憶されたソフトウェアコンテンツが、オリジナルのものと同一であること、すなわち上記ソフトウェアコンテンツが別の正規のソフトウェアコンテンツに差し換わっていないこと、ならびに上記ソフトウェアコンテンツのすべてまたは、その一部にも改変が無いことを検査するものである。
【0025】
情報記憶媒体200に格納される暗号文210は、予め情報記憶媒体200の製造時などに、情報記憶媒体に格納されるべき第1秘密鍵の公開鍵201−1と、情報記憶媒体200に搭載されるべきソフトウェアコンテンツに一方向ハッシュ関数を適用して生成した第1要約値201−2を、情報処理装置の製造者、ソフトウェアコンテンツの開発者等権限を有するもの(以下、権限所有者という。)によって、情報処理装置及び情報記憶媒体とは別に秘密に保持される公開鍵暗号に基づく第2秘密鍵による暗号化処理310を行うことによって生成される。
【0026】
第2秘密鍵による暗号化処理310では、認証手順による真贋判定処理101における情報記憶媒体側で行われる証明情報生成の根拠となる第1秘密鍵に対する公開鍵201−1と改竄検出処理102で使うソフトウェアコンテンツの第1要約値201−2に対応する情報を、権限所有者が情報記憶媒体200と情報処理装置300のいずれにも記憶されていない電子署名用の第2秘密鍵301−1を用いて暗号化して(301−2、301−3)、真正の提供者が暗号化した情報、すなわち電子署名として、暗号文(1)210−1、暗号文(2)210−2を含む暗号文210として、情報記憶媒体200に記憶させる。他方情報処理装置300には第2秘密鍵301−1に対応した第2秘密鍵の公開鍵を第2秘密鍵の公開鍵記憶部302に記憶させる。
【0027】
暗号文210には、情報記憶媒体200の認証手順による真贋判定処理101に使う公開鍵の署名とソフトウェアコンテンツの改竄検出処理102に使う要約値の署名を含んでいる。このため、情報記憶媒体200とソフトウェアコンテンツの組み合わせに限定して関連付けられる。
【0028】
これにより、上記組み合わせの異なる情報記憶媒体200に記憶されたソフトウェアコンテンツは、電子署名に基づく真贋判定処理100で合格しないため情報処理装置300での動作を制限させることが可能である。
【0029】
また、偽造された真正でない情報記憶媒体200にソフトウェアコンテンツがコピーされるような事態となった場合でも、偽造された情報記憶媒体に記憶されたソフトウェアコンテンツの不正コピー品は、改竄検出処理102により情報処理装置300上での動作に制限させることが可能である。
【0030】
本発明による保護手段は、電子署名による真贋判定処理100、認証手順による真贋判定処理101、改竄検出処理102の3つの処理で構成されている。電子署名による真贋判定処理100と改竄検出処理102には、素因数分解の困難性に基づく非対称暗号、及び与えられた値を出力するような異なる入力を求めることが困難である性質を持つ一方向ハッシュ関数という社会的にその安全性が実証されている技術を用いている。また、第1秘密鍵の情報保護の手段が破られたとしても、解読された第1秘密鍵に対応する情報記憶媒体200に記憶された特定のソフトウェアコンテンツのみが不正コピーの被害を受け、他のソフトウェアコンテンツまでコピー被害が及ぶことがなく、被害を最小限に抑えることが可能である。
【0031】
また、暗号化処理301で使用した第2秘密鍵301−1は、情報記憶媒体200及び情報処理装置300のどちらにも格納されておらず、及び第2秘密鍵301−1が漏洩することがない限り、暗号文210の偽造や改竄が不可能なため、より安全な情報保護を行うことが可能である。
【0032】
次に、情報記憶媒体が情報処理装置に装着されたときの実施の態様1による真贋検証手順を説明する。
【0033】
<電子署名による真贋判定処理100>
情報処理装置300は、情報記憶媒体200に格納された暗号文(1)210−1を読み出し、記憶部302に格納された公開鍵を用いて復号する第2演算処理(1)310−1を行ない、第1復号文(1)311−1を生成する。生成された復号文(1)は第1秘密鍵の公開鍵201−1と同じ情報である。この復号文(1)に対し情報記憶媒体200から読み出した第1秘密鍵の公開鍵320と比較検証する第3演算処理(1)312−1が行われる。
【0034】
また、情報記憶媒体200に格納された暗号文(2)210−2を読み出し、記憶部302に格納された公開鍵を用いて復号する第2演算処理(2)310−2を行ない、第2暗号文(2)311−2を生成する。生成された復号文(2)はソフトウェアコンテンツの第1要約値201−2と同じ情報である。この復号文(2)に対し情報記憶媒体200から読み出したソフトウェアコンテンツの第1要約値と比較検証する第3演算処理(2)が行われる。
【0035】
この比較処理312−1と比較処理312−2の比較の結果、両方の比較結果が一致していれば、情報記憶媒体に格納されている第1秘密鍵の公開鍵320とソフトウェアコンテンツの第1要約値206は信頼できると判断する。何故なら、第3演算312において第1要約値206及び第1秘密鍵に対する公開鍵320と一致する第2演算処理310による暗号文210の複号で生成される複号文311を作成できるのは、第2秘密鍵対する公開鍵302に対応する第2秘密鍵301−1を知っている前記権限所有者でしかないからである。
【0036】
<認証手順による真贋判定処理101>
まず、情報処理装置300の乱数生成部335で乱数を生成し、情報記憶媒体200に送信する。情報記憶媒体200では、受信した乱数に対し非対称鍵暗号に基づく第1秘密鍵330を用いて暗号化する演算処理332を実行しその演算結果331を情報処理装置300に送信する。情報記憶媒体200に耐タンパ手段で保護されて格納された第1秘密鍵330の存在によって当該情報記憶媒体が真正なものであることを証明するものである。
【0037】
情報処理装置300では、受信した演算結果331に対し情報記憶媒体から読み出した第1秘密鍵に対する公開鍵320を用いて第4演算手段である復号化演算処理316を行い、第2復号文333を生成する。第2復号文333は情報記憶媒体が真正なものである場合、情報処理装置300が送信した乱数と等しい値となる。
【0038】
そして、第2復号文333を、乱数生成部335で生成し情報記憶媒体に送信した乱数と比較検証する第5演算手段である演算処理334を実行する。この比較検証により、比較した結果が一致していれば、ソフトウェアコンテンツを記憶する情報記憶媒体200は正規の提供者が製造したものと認証する。
【0039】
その根拠は、情報記憶媒体200が、受信した乱数を元に演算し生成した正しい暗号文331を情報処理装置300へ返すためには、情報記憶媒体200の製造者が正しい第1秘密鍵330を知らなければならないからである。
【0040】
<改竄検出処理102>
情報処理装置300は、情報記憶媒体200からソフトウェアコンテンツ207を読み出し、当該ソフトウェアコンテンツに対し一方向ハッシュ関数を適用し第2要約値318を生成する演算処理を第6演算手段319で実行し、生成された第2要約値を情報記憶媒体200から読み出したソフトウェアコンテンツの第1要約値206と比較演算する処理を第7演算手段317で実行する。この比較結果により、比較した結果が一致していれば、ソフトウェアコンテンツの改竄がないと判断し、一致していなければ、改竄があったものとみなす。
【0041】
その根拠は、ソフトウェアコンテンツのごく一部でも変化した場合、一方向ハッシュ関数の出力値は大きく変化するからである。
【0042】
以上の電子署名による情報記憶媒体に格納されたデータに対する真贋判定処理100、情報記憶媒体に対する認証を行う認証手順による真贋判定処理101、情報記憶媒体に格納されたソフトウェアコンテンツに対する改竄検出処理102の3つの処理により、全てその比較結果が一致した場合に、情報処理装置300では、情報記憶媒体200のソフトウェアコンテンツ記憶部207から読み出したソフトウェアコンテンツを情報処理装置300上で実行することを許可し、そのソフトウェアコンテンツに基づいた処理を行う。
【0043】
なお、改竄検出処理102については、その処理に時間がかかるため、情報処理装置300では、初めに(情報記憶媒体が情報処理装置に装着され情報処理装置での処理手順が開始される初期の段階で)電子署名による真贋判定処理100及び認証手順による真贋判定処理101での処理を行い、この2つの処理の比較結果が一致した場合に、まずソフトウェアコンテンツを実行し、そのソフトウェアコンテンツを実行すると同時に改竄検出処理102を並行して行い、もし、改竄検出処理102での比較結果が一致しない場合には、ソフトウェアコンテンツの実行を終了するなどソフトウェアコンテンツの実行を制限する処理を行うようにしてもよい。
【0044】
以上のように、本発明によれば、電子署名による真贋判定処理100、認証手順による真贋判定処理101、改竄検出処理102の3つの処理により情報保護処理を行うので、ソフトウェアコンテンツに対する不正コピーや改竄を困難にすることができる。さらに、情報保護処理を情報記憶媒体に格納するソフトウェアコンテンツに関連付けて実行されるように構成されているので、万が一、第1秘密鍵の情報保護の手段が破られたとしても、被害を当該ソフトウェアコンテンツに限定することができる。
【0045】
(実施の形態2)
実施の形態2は、実施の形態1において、暗号文210として、第1秘密鍵の公開鍵とソフトウェアコンテンツに対し一方向ハッシュ関数に基づいて生成した第1要約値との合成値に対に対しさらに一方向ハッシュ関数に基づい生成し要約値を第2秘密鍵で暗号化したものとし、認証手順による真贋判定処理101をゼロ知識対話証明の認証方式を用いたものとしたものである。
【0046】
図3により、本発明の実施の形態2に係る情報保護システムの構成について説明する。図3は本発明の実施の形態2に係る情報保護システムの構成を示す構成図である。
【0047】
図3において、実施の形態1における図1のシステムに対比すると、情報記憶媒体200にゼロ知識対話証明の認証方式で使用する乱数生成部345と第1演算選択回路(演算回路)344と定数発生回路360が追加され、情報処理装置には、(図3に図示されないが図5に図示されるように)第2演算選択手段(演算回路)344と定数発生手段361が追加されている。それ以外の構成は、実施の形態1と同様である。但し、第1乱数生成手段346は質問U=0と1を無作為に出力構成とされている。また、暗号文210は、上述したように合成値として生成されている。
【0048】
次に、図4の説明図により、本発明の実施の形態2に係る情報保護システムの認証処理で用いられるゼロ知識対話証明の認証方式について基本的な手順を説明する。図4における証明者600が、情報記憶媒体200、認証者610が情報処理装置300となる。
【0049】
まず、認証に先立ち、証明者600は2つの素数PとQと秘匿情報Mを決める。次に証明者600は、PとQの積であるN=P×Qと、W=M2 mod Nを認証者610へ教える。ここで、mod Nは、Nを法の数とする剰余演算子のことである。また、WはM2をNで割ったときの余りであり、もともと秘匿情報Mをもとにしたものであるが、W自体は秘匿情報の扱いにはならない。
【0050】
これは、大きな2つの素数の掛け算からなる数を法とする数の平方根の計算は極めて困難であるため、WからMを逆算することができないからである。このW自体は秘匿情報の扱いではないという特質によって、秘匿情報Mを持つ証明者以外について、悪意を持った第3者による攻撃に対して強く対抗する必要はないといえる。これは、認証者610及び証明者600のどちらにも同じ秘匿情報を持つチャレンジ・アンド・レスポンス方式と比べて大きく異なる特徴の1つである。
【0051】
この準備の後、実際の認証の手順では、処理601において証明者600は乱数Rを生成し、処理602においてX=R2 mod Nを計算し、処理620においてXを認証者610へ送る。認証者610は、処理611において受け取ったXを一旦記憶する。引き続き認証者610は、処理612において質問Uとして‘0’(零)又は‘1’の数値のうちのいずれか一方を無作為に選択する。認証者610は、処理621において上記選択した一方を質問Uとして証明者へ返す。
【0052】
質問Uを受け取った証明者600は、処理603においてY=(R・MU) mod Nを計算し、かかる計算結果Yを処理622において認証者610へ送り返す。この処理622で送り返されるYは、質問Uが‘0’であったとき、上記乱数Rそのものであり、質問Uが‘1’であったとき、上記乱数Rと秘匿情報Mを掛けた値をNで割ったときの余りである。すなわち、認証者610の質問Uが‘0’のときには証明者600は認証者610へ乱数Rを回答し、認証者610の質問Uが‘1’のときには証明者600は(R・M) mod Nを認証者610へ回答しなければならない。
【0053】
次に、認証者610は、処理613において受け取ったYからY2 mod Nを求め、自らも上記質問UとXならびにWを用いて、X×WUを求め、求めた2つの値を比較する。ここで、認証者610の質問Uが‘0’のとき、証明者600は回答YとしてRを回答しなければならないが、同回答はすなわち乱数Rそのものであるため、秘匿情報Mを知らない偽の証明者600でも正しく回答することができてしまう。しかし、認証者610の質問Uはランダムに選択されるため、常に‘0’ではなく‘1’のときもあるので、そのときは、秘匿情報Mを知っている真の証明者600のみ、(R・M) mod Nを正しく認証者610へ回答することができる。
【0054】
次に、認証者610の質問Uが‘1’のとき、証明者600は回答Yとして(R・M)mod Nを回答しなければならないが、秘匿情報Mを知らない偽の証明者600でもYを適当に決め、X=(Y2/W) mod N=R2 mod Nという計算により予めXを準備しておけば、上記(適当に決めた)Yを正しいものとして回答することができてしまう。しかし、認証者610の質問Uはランダムに選択されるため、常に‘1’ではなく‘0’のときもあるので、そのときは、偽の証明者600は上記(適当に決めた)YからR(=Y1/2)を求めて回答しなければならい。だが、大きな2つの素数の掛け算からなる数を法とする数の平方根の計算は極めて困難であるため、偽の証明者600には回答することができない。
【0055】
つまり要約すると、偽の証明者600は認証者610の質問Uが‘0’に対しても‘1’に対しても1/2の確率で正しく回答できるし、また1/2の確率で正しく回答できない。従って、上記の認証者610と証明者600の手順を1回分の対話とすると、同対話を複数回繰り返すことによって、偽の証明者600をふるい落とすことが可能である。例えば、上記対話を20回繰り返すと、偽の証明者600が20回全てに正しく回答できる可能性は100万分の1である。
【0056】
したがって、本実施の形態では、情報記憶媒体200の情報処理媒体300に対する認証手順による真贋判定処理101でゼロ知識対話証明の認証方式の処理を複数回(例えば20回)行うようになっている。
【0057】
次に、本発明の実施の形態2に係る情報保護システムの情報保護処理について説明する。図5は本発明の実施の形態2に係る情報保護システムの情報保護処理を説明するための説明図であり、情報処理装置300内及び半導体記憶装置200内での処理の流れを示している。また、図5において、図3に示す各記憶部に格納された情報は、各記憶部と同じ符号を付けている。
【0058】
図5において、本発明の実施の形態2による情報保護処理は実施の形態1と同様、電子署名による情報記憶媒体に格納されたデータの真贋判定処理100、情報記憶媒体の情報処理装置に対する認証手順による真贋判定処理101、改竄検出処理102の3つの処理で構成されるが、電子署名による真贋判定処理100と認証手順による真贋判定処理101で行う処理は、不正解読の攻撃に対し実施の形態1における情報保護処理よりさらに強い構成とされている。
【0059】
情報記憶媒体200に格納される暗号文210は、予め情報記憶媒体200の製造時などに、情報記憶媒体に格納されるべき非対称暗号に基づく第1秘密鍵の公開鍵と情報記憶媒体200に搭載されるべきソフトウェアコンテンツに対して一方向ハッシュ関数を適用して生成した第1要約値とを合成して生成した合成値に対しさらに一方向ハッシュ関数に基づいて演算し合成値の要約値201−3を準備し、この合成値の要約値201−3からなる情報201を上述した権限所有者によって情報処理装置及び情報記憶媒体とは別に秘密に保持される非対称暗号に基づく第2秘密鍵による暗号化処理301を行うことによって生成される。
【0060】
第2秘密鍵による暗号化処理301では、認証手順による真贋判定処理101における情報記憶媒体側で行われる証明情報生成の根拠となる第1秘密鍵に対する公開鍵201−1に対応するデータと改竄検出処理102で使うソフトウェアコンテンツの第1要約値201−2に対応するデータの合成値の要約値201−3を、権限所有者あるいはその権限所有者の承認を得た真正の提供者が、例えば情報処理装置300の製造者若しくはソフトウェアコンテンツを格納した情報記憶媒体の製造者が、情報記憶媒体200と情報処理装置300のいずれにも記憶されていない電子署名用の第2秘密鍵301−1を用いて暗号化した(301−4)情報すなわち暗号文210を、電子署名として情報記憶媒体200に記憶させる。他方情報処理装置300は第2秘密鍵301−1に対応した公開鍵302を記憶させる。
【0061】
電子署名としての第2暗号文210は、情報記憶媒体200の認証手順による真贋判定処理101に使う公開鍵に対応するデータとソフトウェアコンテンツの改竄検出処理102に使う要約値に対応するデータによって構成されている。このため電子署名としての第2暗号文210の有効性は情報記憶媒体200と特定のソフトウェアコンテンツの組み合わせに限定される。これにより、組み合わせの異なる情報記憶媒体200に記憶されたソフトウェアコンテンツは、電子署名に基づく真贋判定処理100で合格しないため情報処理装置300で動作を制限させることが可能である。このため、実施の形態1と同様にソフトウェアコンテンツのコピー被害を最小限に抑えることが可能である。
【0062】
次に、情報記憶媒体が情報処理装置に装着されているときの実施の形態2による真贋検証手順を説明する。
【0063】
<電子署名による真贋判定処理100(第1判定処理)>
情報処理装置300は、情報記憶媒体200から暗号文210を読み出し、記憶部302に格納された公開鍵を用いて復号する第2演算処理310を行ない、第1復号文311を生成し主記憶部に一時的に保存する。第1復号文311は権限所有者によって準備された合成値の要約値201−3である。
【0064】
また、情報記憶媒体200から第1秘密鍵の公開鍵340とソフトウェアコンテンツの第1要約値206を読み出し、第8演算手段で公開鍵340と第1要約値206の合成値315する演算処理313を実行し、その合成値315に対する一方向ハッシュ関数に基づいて第3要約値339を生成する演算処理を第9演算手段で実行する。そして生成された第3要約値339を一時保存されている第1復号文311と比較する演算処理が第1演算手段312で実行される。この第1比較処理312の比較の結果、一致していれば、情報記憶媒体200に格納された公開鍵340と第1要約値206は信頼できると判断する。
【0065】
<証明・認証手順による真贋判定処理101(第2判定処理)>
情報記憶媒体200の乱数生成手段345によって生成された乱数をR、法の数をN,前記第1秘密鍵341をM、前記第1第1秘密鍵に対する公開鍵340をW(W=M2 mod N)とする。また、第1乱数生成手段346は質問U=‘0’と‘1’を無作為に(ランダムに)出力するように構成されている。
【0066】
第2判定処理101の開始時にまず、情報記憶媒体200は乱数生成部345で生成された乱数Rに対しR2 mod Nを第1演算処理343で演算し演算結果Xを情報処理装置300に送信する(図4の602、620に対応)。図示されていないが生成された乱数Rは情報記憶媒体200の一時記憶手段に一時的に保存される。
【0067】
<第1乱数生成手段346の出力が質問U=‘0’の場合>
演算結果Xを受信した情報処理装置では、第2演算引数選択手段が受信した演算結果Xと定数発生回路361から出力される定数‘1’を選択して第4演算手段348に出力する。第4演算手段348は演算結果Xを第2演算結果記憶手段365(レジスタ)に一時保存する。
【0068】
次に、質問U=‘0’を情報記憶媒体200に送信する。情報記憶媒体200では、第1演算引数選択処理手段344が一時保存されている第2乱数生成処理345が生成した乱数Rと第1秘密鍵330(M)を選択して出力する。第1演算処理343では、第1演算引数選択処理手段344が選択した乱数Rと第1秘密鍵Mに基づきY=(R・M) mod Nの演算を第1演算手段343で実行する。質問U=‘0’のときはその第1演算結果342としてY=Rを情報処理装置300に送信する。
【0069】
情報記憶処理200から演算値Y=Rを受信した情報処理装置300では、第2演算引数選択処理347で受信した演算値Y=Rと同じ演算値Y=Rを選択しY2 mod Nの演算を第4演算手段で実行し、その演算結果を第3演算結果記憶手段366(レジスタ)に一時保存する。そして、第5演算手段367は第2演算結果記憶手段365に保存されているX(=R2 mod N)と第3演算結果記憶手段366に保存されている演算結果Y2 mod N=R2 mod Nを比較し一致していれば一回目の認証判定で合格したとみなす。
【0070】
<第1乱数生成手段346の出力が質問U=‘1’の場合>
演算結果Xを受信した情報処理装置では、第2演算引数選択手段347が、受信した演算結果Xと情報記憶媒体から読み出した第1秘密鍵に対する公開鍵340(W)を選択して第4演算手段348に出力する。第4演算手段348は演算結果Xと公開鍵340(W)に基づく演算結果を第2演算結果(X・W)の記憶手段365(レジスタ)に一時保存する。
【0071】
次に、質問U=‘1’を情報記憶媒体200に送信する。情報記憶媒体200では、第1演算引数選択処理手段344は一時保存されている第2乱数生成処理345が生成した乱数Rと第1秘密鍵Mを選択し第4演算手段348に出力する。第4演算手段348はY=(R・M) mod Nを演算する。質問U=‘1’のときはその演算結果342としてY=(R・M) mod Nを情報処理装置300に回答する。
【0072】
第2演算引数選択処理347は情報記憶媒体から受信した第1演算結果342(Y)を選択して出力し第4演算手段処理348で情報記憶媒体からの回答Yを二乗した値(R・M)mod Nを演算し第3演算結果の記憶手段366(レジスタ)に一時保存する。第5演算手段367は第2演算結果の記憶手段365に保存されている値X・W=(R2 mod N)(M2 mod N)と第3演算結果の記憶手段366に保存されている値(R・M) mod Nを比較する比較演算処理を行い一致していれば一回目の認証判定で合格したとみなす。
【0073】
この処理を複数回行い、全ての比較結果が一致していれば、ソフトウェアコンテンツを記憶する情報記憶媒体200は正規の提供者が製造したものと判定する。
【0074】
<改竄検出処理102>
情報処理装置300は、情報記憶媒体200からソフトウェアコンテンツ記憶部207からソフトウェアコンテンツを読み出し一方向ハッシュ関数に基づいた第2要約値318を生成する演算処理319を行い、情報記憶媒体200から読み出したソフトウェアコンテンツの第1要約値206と比較演算する処理317を行う。この比較結果により、比較した結果が一致していれば、ソフトウェアコンテンツの改竄がないと判断し、一致していなければ、改竄があったものとみなす。
【0075】
その根拠は、ソフトウェアコンテンツのごく一部でも変化した場合、一方向ハッシュ関数の出力値は大きく変化するからである。
【0076】
以上の電子署名による真贋判定処理100、認証手順による真贋判定処理101、改竄検出処理102の3つの処理により、全てその比較結果が一致した場合に、情報処理装置300では、情報記憶媒体200のソフトウェアコンテンツ記憶部207に格納されたソフトウェアコンテンツを実行し、そのソフトウェアコンテンツに基づいた処理を行う。
【0077】
本実施の形態では、認証手順による真贋判定処理101にゼロ知識対話証明の認証方式を使用したので、セキュリティの安全性は他の方式と同等でしかも半導体装置に適用したときコンパクトに実現することができる。
【0078】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【0079】
例えば、改竄検出処理102については、その処理に時間がかかるため、情報処理装置300では、初めに電子署名による真贋判定処理100及び認証手順による真贋判定処理101での処理を行い、この2つの処理の比較結果が一致した場合に、まずソフトウェアコンテンツを実行し、そのソフトウェアコンテンツを実行する間の処理のアイドル時やCPUに掛かる負荷が軽い時などに改竄検出処理102を並行して行い、もし、改竄検出処理102での比較結果が一致しない場合ことが判明したときはには、その時点で処理の実行を終了する等ソフトウェアコンテンツの実行を制限するなどの処理を行うようにしてもよいし、フトウェアコンテンツの主要な部分のみのや、さらに不規則なタイミングで改竄検出を行うようにしてもよい。
【0080】
また、認証手順による真贋判定処理101で使用するものとして、3−DESやRC5、AES等の暗号技術や、RSA暗号やElGamal暗号、楕円曲線の離散対数問題を応用した楕円曲線暗号を利用してもよい。
【0081】
さらに、本願発明に係る主要な処理、すなわち電子署名による真贋判定処理100、認証手順による真贋判定処理101及び改竄検出処理102の3つの処理の情報処理装置300内における処理手順を情報記憶媒体200のソフトウェアコンテンツ記憶部207に記憶し、情報処理装置300が動作を始めるときに情報処理装置300は情報記憶媒体200から上記処理手順を受信し、情報処理装置300の中央演算装置351で上記処理手順を実行し不正にコピーされたソフトウェアの検出を行うようにしてもよい。
【産業上の利用可能性】
【0082】
本発明は、情報処理装置で使用されるソフトウェアコンテンツを保護する技術に関し、ゲーム装置用情報記憶媒体に記憶されたゲームプログラム等のデータを保護する技術などに広く適用可能である。
【符号の説明】
【0083】
100…電子署名による真贋判定処理、101…認証手順による真贋判定処理、102…改竄検出処理、200…情報記憶媒体、202…記憶部、206…ソフトウェアコンテンツの第1要約値記憶部、207…ソフトウェアコンテンツ記憶部、210…暗号文記憶部、250…暗号制御回路、251…記憶部制御回路、252…入出力部、300…情報処理装置、302…第2秘密鍵の公開鍵記憶部、311…第1復号文、320…第1秘密鍵の公開鍵記憶部、330…第1秘密鍵記憶部、331…第1演算結果記憶部、332…第1演算回路、333…第2復号文、335…乱数生成部、339…第3要約値、342…第1演算結果、343…第1演算処理、345…乱数生成部、350…主記憶部、351…中央演算装置、352…基本プログラム記憶部、354…処理部、355…表示装置、356…スピーカ、357…操作部、358…端子、360…定数発生回路、361…定数発生回路、365…第2演算結果の記憶手段、366…第3演算結果の記憶手段、600…証明者、610…認証者。

【特許請求の範囲】
【請求項1】
情報処理装置と前記情報処理装置に着脱可能に装着される情報記憶媒体とによって構成される情報処理システムにおける前記情報記憶媒体に格納されたソフトウェアコンテンツに対する情報保護システムであって、
前記情報記憶媒体は、
ソフトウェアコンテンツが格納された第1記憶手段と、
前記ソフトウェアコンテンツに対する一方向ハッシュ関数に基づく第1要約値が格納された第2記憶手段と、
第1秘密鍵が格納された第3記憶手段と、
前記第1秘密鍵に対する公開鍵となる第1公開鍵が格納された第4記憶手段と、
前記情報記憶媒体及び前記情報処理装置とは別に秘密に保持される第2秘密鍵で前記第1要約値と前記第1公開鍵を含む情報を暗号化することにより生成された暗号文が格納された第5記憶手段と、
前記情報処理装置から供給される乱数に応答して、応答情報を生成する第1演算手段と、
を、備えてなり、
前記情報処理装置は、
前記第2秘密鍵に対する公開鍵となる第2公開鍵が格納された第6記憶手段と、
乱数生成手段と、
前記第5記憶手段から読み出した前記暗号文と前記第6記憶手段から読み出した前記第2公開鍵に基づく演算を行い前記第1要約値と前記第1公開鍵とを含む第1復号文を生成する第2演算手段と、
前記第2演算手段で生成された前記第1要約値と前記第1公開鍵とを含む前記第1復号文を、前記第2記憶手段から読み出した前記第1要約値及び前記第4記憶手段から読み出した前記第1公開鍵を含む情報と比較する第3演算手段と、
前記乱数生成手段で生成された乱数を前記情報記憶媒体の前記第1演算手段に送信する手段と、
前記第1演算手段から受信する演算結果に基づく演算を行う第4演算手段と、
前記第4演算手段の演算で得られた演算結果に基づく比較演算を行う第5演算手段と、
前記情報記憶媒体の前記第1記憶手段から読み出した前記ソフトウェアコンテンツに対し一方向ハッシュ関数に基づく第2要約値を生成する第6演算手段と、
前記第2要約値と前記情報記憶媒体の前記第2記憶手段から読み出した前記第1要約値とを比較する第7演算手段と、
を、備えてなり、
前記情報記憶媒体が前記情報処理装置に装着されているとき、
前記第3演算手段による比較処理に基づき、前記第2記憶手段に格納された前記第1要約値に対する真贋判定を行う第1判定処理と、
前記第5演算手段の演算結果に基づき前記情報記憶媒体が前記情報処理装置に対し真正なものであるか否かの認証判定を行う第2判定処理と、
第7演算手段による比較処理に基づき前記第2記憶手段に格納された前記第1要約値と前記第1記憶手段に格納された前記ソフトウェアコンテンツに対する改竄有無判定を行う第3判定処理と、
前記第1判定処理乃至前記第3判定処理の全てにおいて合格判定が得られたとき前記情報記憶媒体から読み出した前記ソフトウェアコンテンツの前記情報処理装置での実行を許可する処理と、
が行われる構成であることを特徴とする情報保護システム。
【請求項2】
請求項1に記載の情報保護システムにおいて、
前記第5記憶手段は、前記第1秘密鍵に対する公開鍵である前記第1公開鍵を前記第2秘密鍵で暗号化して得られた前記暗号文を格納する第5(1)記憶手段と、前記ソフトウェアコンテンツに対する一方向ハッシュ関数に基づく前記第1要約値を前記第2秘密鍵で暗号化して得られた暗号文を格納する第5(2)記憶手段とを含み、
第2演算手段は、前記第5(1)記憶手段から読み出した前記暗号文を前記第6記憶手段に格納された前記第2秘密鍵に対する公開鍵である前記第2公開鍵に基づき復号化する演算を行う第2(1)演算手段と、前記第5(2)記憶手段から読み出した前記暗号文を前記第2公開鍵に基づき復号化する演算を行う第2(2)演算手段とを含み、
前記第3演算手段は、前記第2(1)演算手段で復号化された復号文を前記第4記憶手段から読み出した前記第1秘密鍵に対する公開鍵と比較する第3(1)演算手段と、前記第2(2)演算手段で復号化された前記復号文を前記第2記憶手段から読み出した前記第1要約値と比較する第3(2)演算手段とを、
それぞれ含むことを特徴とする情報保護システム。
【請求項3】
請求項1に記載の情報保護システムにおいて、
前記情報記憶媒体はさらに、乱数生成手段と、第1演算引数選択手段と、法の数字を記憶する第7記憶手段とを含み、前記第5記憶手段には前記第1秘密鍵に対する公開鍵と前記第1要約値の合成値を一方向ハッシュ関数に基づき生成した要約値を前記第2秘密鍵で暗号化して得られた暗号文が格納されており、
前記情報処理装置はさらに、前記第4記憶手段から読み出した前記第1公開鍵と前記第2記憶手段から読み出した前記第1要約値との合成値を生成する第8演算手段と、前記第8演算手段で得られた合成値の一方向ハッシュ関数に基づく要約値を生成する第9演算手段と、第2演算引数選択手段と、法の数字を記憶する第8記憶手段と、前記第4演算手段の演算結果を記憶する第9記憶手段と、を含み、前記情報処理装置の乱数生成手段は“U=0”と“U=1”のいずれかを無作為に出力するものであり、
前記第1判定処理は、前記第2演算手段で復号された前記合成値の要約値である前記第1復号文を前記第9演算手段で生成された前記合成値の要約値と比較する処理が前記第3演算手段によって行われるものであり、
前記第2判定処理は、
前記第2判定処理の開始時に、前記情報記憶媒体において、前記第1演算手段がR2 mod Nを演算し演算結果を前記情報処理装置に送信する処理を含み、
前記情報記憶媒体の乱数生成手段によって生成された乱数をR、前記第7記憶手段及び前記第8記憶手段に格納されている法の数字をそれぞれN、前記第1秘密鍵をM、前記第1公開鍵をWとするとき、
(1)前記情報処理装置の乱数生成手段で生成される出力がU=0のときは、
前記情報記憶媒体において、前記情報処理装置からの出力U=0に応答して、前記第1演算手段がR2 mod Nを演算し演算結果を前記情報処理装置に送信し、
前記情報処理装置において、
(a−1)前記第4演算手段が、前記第2判定処理の開始時に前記情報記憶媒体から受信する前記第1演算手段による演算結果に基づき演算した演算値を前記第9記憶手段に格納し、
(b−1)前記第4演算手段が、前記情報処理装置からの出力U=0に応答して前記情報記憶媒体から受信する前記第1演算手段による演算結果に基づき演算した演算値を前記第9記憶手段に格納し、
(c−1)前記第5演算手段が、前記(a−1)で格納された演算値と前記(b−1)で格納された演算値を比較する処理を実行し、
(2)前記情報処理装置の乱数生成手段で生成される出力がU=1のときは、
前記情報記憶媒体において、前記情報処理装置からの出力U=1に応答して、前記第1演算手段が(R・M) mod Nを演算し演算結果を前記情報処理装置に送信し、
前記情報処理装置において、
(a−2)前記第4演算手段が、前記第2判定処理の開始時に前記情報記憶媒体から受信する前記第1演算手段による演算結果と前記第4記憶手段から読み出した前記第1公開鍵(W)とに基づき演算した演算値を前記第9記憶手段に格納し、
(b−2)前記第4演算手段が、前記情報処理装置からの出力U=1に応答して前記情報記憶媒体から受信する前記第1演算手段による演算結果と前記第4記憶手段から読み出した前記第1公開鍵(W)とに基づき演算した演算値を前記第9記憶手段に格納し、
(c−2)前記第5演算手段が、前記(a−2)で格納された演算値と前記(b−2)で格納された演算値を比較する処理を実行するものであることを特徴とする情報保護システム。
【請求項4】
請求項1〜3のいずれか1項に記載の情報保護システムにおいて、
前記情報処理装置は、
前記第1判定処理、前記第2判定処理、及び前記第3判定処理のうち少なくともいずれか1つの判定処理を前記情報記憶媒体が前記情報処理装置に装着されたとき実行し、残余の判定処理は前記ソフトウェアコンテンツの実行途中のアイドル時に実行するセキュリティ実行プログラムにより処理することを特徴とする情報保護システム。
【請求項5】
請求項4に記載の情報保護システムにおいて、
前記セキュリティ実行プログラムは、前記情報処理装置及び前記情報記憶媒体の少なくとも1つに搭載されていることを特徴とする情報保護システム。
【請求項6】
情報処理装置に着脱可能に装着される情報記憶媒体であって、
ソフトウェアコンテンツが格納された第1記憶手段と、
前記ソフトウェアコンテンツに対する一方向ハッシュ関数に基づく第1要約値が格納された第2記憶手段と、
第1秘密鍵が格納された第3記憶手段と、
前記第1秘密鍵に対する公開鍵となる第1公開鍵が格納された第4記憶手段と、
前記情報記憶媒体及び前記情報処理装置とは別に秘密に保持される第2秘密鍵で前記第1要約値と前記第1公開鍵を含む情報を暗号化することにより生成された暗号文が格納された第5記憶手段と、
前記情報処理装置から供給される乱数に応答して、応答情報を生成する第1演算手段と、
を、備えてなり、
前記情報処理装置に装着されているとき、
前記第1演算手段は、前記情報処理装置で実行される処理に対応して演算を実行し演算結果を前記情報処理装置に送信し、
前記情報記憶媒体から読み出された前記ソフトウェアコンテンツと、前記第1要約値と、前記第1公開鍵と、前記暗号文と、前記第1演算手段から送信される前記演算結果が、前記情報処理装置によって、
前記第2秘密鍵に対する公開鍵である第2公開鍵に基づき復号化して生成した前記第1要約値と前記第1公開鍵とを含む前記暗号文に対する第1復号文を、前記第2記憶手段から読み出した前記第1要約値と前記第4記憶手段から読み出した前記第1公開鍵とを含む情報と比較する処理に基づき前記第5記憶手段に格納された前記暗号文と前記第2記憶手段に格納された前記第1要約値に対する真贋判定を行う第1判定処理と、
前記第1演算手段から送信される演算結果と第4記憶手段から読み出された前記第1公開鍵とに基づき前記情報記憶媒体が前記情報処理装置に対し真正なものであるか否かの認証判定を行う第2判定処理と、
前記第1記憶手段から読み出した前記ソフトウェアコンテンツに対し一方向ハッシュ関数に基づき生成した第2要約値を、前記第2記憶手段から読み出された前記第1要約値と比較する処理に基づき前記第2記憶手段に格納された前記第1要約値と前記第1記憶手段に格納されたソフトウェアコンテンツに対する改竄有無判定を行う第3判定処理と、
前記第1判定処理乃至前記第3判定処理の全てにおいて合格判定が得られたとき前記情報記憶媒体から読み出した前記ソフトウェアコンテンツの前記情報処理装置での実行を許可する処理と、が行われるものであることを特徴とする情報記憶媒体。
【請求項7】
請求項6に記載の情報記憶媒体において、
前記第5記憶手段は、前記第1秘密鍵に対する公開鍵である前記第1公開鍵を第2暗号で暗号化して得られた暗号文(1)を格納する第5(1)記憶手段と、前記ソフトウェアコンテンツに対する一方向ハッシュ関数に基づく前記第1要約値を前記第2秘密鍵で暗号化して得られた暗号文(2)を格納する第5(2)記憶手段と、を含み、
前記第5記憶手段から読み出された前記暗号文(1)と前記暗号文(2)に対し、前記情報処理装置において、前記第5(1)記憶手段から読み出した暗号文(1)を前記第2公開鍵に基づき復号化する前記第2(1)演算手段によって行われる処理と、前記第5(2)記憶手段から読み出した前記暗号文(2)を前記第2公開鍵に基づき復号化する前記第2(2)演算手段によって行われる処理と、前記第2(1)演算手段によって復号化された情報を前記第4記憶手段から読み出した前記第1公開鍵と比較する処理と、前記第2(2)演算手段によって復号化された情報を前記第2記憶手段から読み出した前記第1要約値と比較する処理と、が行われるものであることを特徴とする情報記憶媒体。
【請求項8】
請求項6に記載の情報記憶媒体において、
前記情報記憶媒体はさらに、乱数生成手段と、第1演算引数選択手段と、法の数字を記憶する第7記憶手段とを含み、前記第5記憶手段には前記第1秘密鍵に対する公開鍵となる第1公開鍵と前記第1要約値の合成値を一方向ハッシュ関数に基づき生成した要約値を第2秘密鍵で暗号化して得られた暗号文が格納されており、
前記暗号文を前記第2公開鍵に基づき復号して得られた前記合成値の要約値を前記第1要約値と前記第1公開鍵の合成値を一方向ハッシュ関数に基づき生成した要約値と比較する処理が前記情報処理装置によって実行されることによって、前記第5記憶手段に格納された前記暗号文と、前記第2記憶手段に格納された前記第1要約値に対する真贋判定を行う前記第1判定処理が行われるものであり、
前記情報記憶媒体の乱数生成手段によって生成された乱数をR、前記第7記憶手段に格納されている法の数字をN、前記第1秘密鍵をM、前記第1公開鍵をWとするとき、
前記第2判定処理において、前記第2判定処理の開始時に、前記第1演算手段がR2 mod Nを演算し演算結果を前記情報処理装置に送信する処理と、
前記情報処理装置から無作為に出力される“U=0”と“U=1”のいずれかに応答して前記第1演算手段で行う演算結果を前記情報処理装置に送信する処理と、を実行するように構成されてなり、
(1)前記情報処理装置からの出力がU=0のときは、
前記出力U=0に応答して、前記第1演算手段がR mod Nを演算し演算結果を前記情報処理装置に送信し、
前記情報処理装置は、前記第2判定処理の開始時に受信する前記演算結果と、出力U=0に応答して受信する前記演算結果と、に基づき前記第2判定処理を実行し、
(2)前記情報処理装置からの出力がU=1のときは、
前記出力U=1に応答して、前記第1演算手段が(R・M) mod Nを演算し演算結果を前記情報処理装置に送信し、
前記情報処理装置は、前記第2判定処理の開始時に受信する前記演算結果と、前記出力U=1に応答して受信する前記演算結果と、前記第4記憶手段から読み出した前記第1公開鍵(W)と、に基づき前記第2判定処理を実行することを特徴とする情報記憶媒体。
【請求項9】
請求項6〜8のいずれか1項に記載の情報記憶媒体において、
前記情報処理装置により、
前記第1判定処理、前記第2判定処理、及び前記第3判定処理のうち少なくともいずれか1つの判定処理を前記情報記憶媒体が前記情報処理装置に装着されたとき実行し、残余の判定処理は前記ソフトウェアコンテンツの実行途中のアイドル時に実行するセキュリティ実行プログラムにより処理することを特徴とする情報記憶媒体。
【請求項10】
請求項9に記載の情報記憶媒体において、
前記セキュリティ実行プログラムは、前記情報処理装置及び前記情報記憶媒体の少なくとも1つに搭載されていることを特徴とする情報記憶媒体。
【請求項11】
ソフトウェアコンテンツが格納された情報記憶媒体が着脱可能に装着される情報処理装置であって、
前記情報記憶媒体には、ソフトウェアコンテンツと、前記ソフトウェアコンテンツに対する一方向ハッシュ関数に基づく第1要約値と、第1秘密鍵と、前記第1秘密鍵の公開鍵となる第1公開鍵と、前記情報記憶媒体及び前記情報処理装置とは別に秘密に保持される第2秘密鍵で前記第1要約値と前記第1公開鍵を含む情報を暗号化することにより生成された暗号文とが格納された記憶手段と、前記情報処理装置から供給される乱数に応答して応答情報を生成する第1演算手段が備えられており、
前記情報処理装置は、
前記第2秘密鍵に対する公開鍵となる前記第2公開鍵が格納された公開鍵記憶手段と、
乱数生成手段と、
前記情報記憶媒体から読み出した前記暗号文と前記公開鍵記憶手段から読み出した前記第2公開鍵に基づく演算を行い前記第1要約値と前記第1公開鍵とを含む第1復号文を生成する第2演算手段と、
前記第2演算手段で生成された前記第1要約値と前記第1公開鍵とを含む前記第1復号文を、前記情報記憶媒体から読み出した前記第1要約値及び前記第1公開鍵を含む情報と比較する第3演算手段と、
前記乱数生成手段で生成された乱数を前記情報記憶媒体の前記第1演算手段に送信する手段と、
前記第1演算手段から受信する演算結果に基づく演算を行う第4演算手段と、
前記第4演算手段の演算で得られた演算結果に基づく比較演算を行う第5演算手段と、
前記情報記憶媒体から読み出した前記ソフトウェアコンテンツに対し一方向ハッシュ関数に基づく第2要約値を生成する第6演算手段と、
前記第2要約値と前記情報記憶媒体から読み出した前記第1要約値とを比較する第7演算手段と、を備えてなり、
前記情報記憶媒体が装着されているとき、
前記第3演算手段による比較処理に基づき、前記情報記憶媒体に格納されている前記暗号文と前記第1要約値に対する真贋判定を行う第1判定処理と、
前記第5演算手段の演算結果に基づき前記情報記憶媒体が前記情報処理装置に対し真正なものであるか否かの認証判定を行う第2判定処理と、
前記第7演算手段による比較処理に基づき前記情報記憶媒体に格納されている前記第1要約値と前記ソフトウェアコンテンツに対する改竄有無判定を行う第3判定処理と、
前記第1判定処理乃至前記第3判定処理の全てにおいて合格判定が得られたとき前記情報記憶媒体から読み出した前記ソフトウェアコンテンツの前記情報処理装置での実行を許可する処理と、が行われる構成であることを特徴とする情報処理装置。
【請求項12】
請求項11に記載の情報処理装置において、
前記情報記憶媒体には、前記暗号文として、前記第1公開鍵を前記第2秘密鍵で暗号化した暗号文(1)と、前記ソフトウェアコンテンツに対する一方向ハッシュ関数に基づく第1要約値を前記第2秘密鍵で暗号化した暗号文(2)とが、個別に格納されており、
第2演算手段は、前記情報記憶媒体から読み出した前記暗号文(1)を前記公開鍵記憶手段に格納された前記第2公開鍵に基づき復号化する演算を行う第2(1)演算手段と、前記情報記憶媒体から読み出した暗号文(2)を前記公開鍵記憶手段に格納された前記第2公開鍵に基づき前記第1要約値に復号化する演算を行う第2(2)演算手段とを含み、
前記第3演算手段は、前記第2(1)演算手段で復号化された復号文を前記情報記憶媒体から読み出した前記第1公開鍵と比較する第3(1)演算手段と、前記第2(2)演算手段で復号化された復号文を前記情報記憶媒体から読み出した前記第1要約値と比較する第3(2)演算手段とを含むことを特徴とする情報処理装置。
【請求項13】
請求項11に記載の情報処理装置において、
前記情報記憶媒体はさらに、乱数生成手段と、第1演算引数選択手段と、法の数字を記憶する法数記憶手段とを含み、前記暗号文は、前記第1秘密鍵に対する公開鍵と前記第1要約値の合成値に一方向ハッシュ関数を適用して生成した要約値を前記第2秘密鍵で暗号化したものであり、
前記情報処理装置は、さらに、前記情報記憶媒体から読み出した前記第1公開鍵と前記第1要約値との合成値を生成する第8演算手段と、前記第8演算手段で得られた合成値の一方向ハッシュ関数に基づく要約値を生成する第9演算手段と、引数選択手段と、法の数字を記憶する法数記憶手段と、前記第4演算手段の演算結果を記憶する演算結果記憶手段と、を含み、前記情報処理装置の乱数生成手段は“U=0”と“U=1”のいずれかを無作為に出力するものであり、
前記第1判定処理は、前記第2演算手段で復号された前記合成値の要約値である前記第1復号文を前記第9演算手段で生成された前記合成値の要約値と比較する処理が前記第3演算手段によって行われるものであり、
前記情報記憶媒体の乱数生成手段によって生成された乱数をR、法の数字をN、前記第1秘密鍵をM、前記第1公開鍵をWとするとき、
前記第2判定処理は、
前記第2判定処理の開始時に、前記情報記憶媒体で行われるR2 mod Nの演算結果を前記情報記憶媒体から受信する処理を含み、
(1)前記情報処理装置の乱数生成手段で生成される出力がU=0のときは、
(a−1)前記第2判定処理の開始時に前記情報記憶媒体から受信する演算結果に基づき前記第4演算手段が行う演算の演算値を前記第9記憶手段に格納し、
(b−1)前記出力U=0に応答して前記情報記憶媒体で行われるR2 mod Nの演算結果を前記情報記憶媒体から受信し、前記受信した演算結果に基づき前記第4演算手段が行う演算の演算値を前記第9記憶手段に格納し、
(c−1)前記第5演算手段が、前記(a−1)で格納された演算値と前記(b−1)で格納された演算値を比較する処理を実行し、
(2)前記情報処理装置の乱数生成手段で生成される出力がU=1のときは、
(a−2)前記第2判定処理の開始時に前記情報記憶媒体から受信する演算結果と前記情報記憶媒体から読み出した前記第1公開鍵(W)とに基づき前記第4演算手段によって行われる演算の演算値を前記第9記憶手段に格納し、
(b−2)前記出力U=1に応答して前記情報記憶媒体で行われる(R・M) mod Nの演算結果を受信し、当該演算結果と前記第4記憶手段から読み出した前記第1公開鍵(W)とに基づき前記第4演算手段(348)によって行われる演算の演算値を前記第9記憶手段に格納し、
(c−2)前記第5演算手段が、前記(a−2)で格納された演算値と前記(b−2)で格納された演算値を比較する処理を実行するものであることを特徴とする情報処理装置。
【請求項14】
請求項11〜13に記載の情報処理装置において、
前記第1判定処理、前記第2判定処理、及び前記第3判定処理のうち少なくともいずれか1つの判定処理を前記情報記憶媒体が前記情報処理装置に装着されたとき実行し、残余の判定処理は前記ソフトウェアコンテンツの実行途中のアイドル時に実行するセキュリティ実行プログラムにより処理することを特徴とする情報処理装置。
【請求項15】
請求項14に記載の情報処理装置において、
前記セキュリティ実行プログラムは、前記情報処理装置及び前記情報記憶媒体の少なくとも1つに搭載されていることを特徴とする情報処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2012−60320(P2012−60320A)
【公開日】平成24年3月22日(2012.3.22)
【国際特許分類】
【出願番号】特願2010−200184(P2010−200184)
【出願日】平成22年9月7日(2010.9.7)
【出願人】(000233169)株式会社日立超エル・エス・アイ・システムズ (327)
【Fターム(参考)】