(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0030】
以下、各実施形態について図面を参照して説明する。なお、異なる図面において同一の符号を付した要素は、同一または相応する要素を示すものとする。
【0031】
<1.第1実施形態>
[1−1.構成概要]
図1は、メモリ情報保護システム(単に「メモリシステム」とも称する)1Aの外観構成を示す図である。
図2は、メモリ情報保護システム1Aで実行される認証動作の概要を説明するための図である。
【0032】
図1に示されるように、メモリ情報保護システム1Aは、情報処理装置10とメモリ装置20Aとを有している。
【0033】
メモリ装置20Aは、マスクROMまたはフラッシュメモリ等の半導体メモリで構成された複数の記憶部を有している。
【0034】
メモリ装置20Aは、これら複数の記憶部のうち少なくとも1つの記憶部に、アプリケーションの実施に用いるアプリケーション情報を記憶している。当該アプリケーション情報には、例えば、一種のコンピュータ装置である情報処理装置10で実行されるアプリケーションソフトウェアとしてのプログラム、および/またはアプリケーションソフトウェアを実行する際に使用されるデータ等が含まれている。
【0035】
また、メモリ装置20Aは、複数の記憶部のうち、少なくとも2つの記憶部各々に、それぞれ相互に関連した情報(「関連情報」とも称する)を記憶している。
【0036】
このメモリ装置20Aは、例えばカードまたはカートリッジのような態様を有している。当該メモリ装置20Aは、情報処理装置10に脱着自在に構成され、メモリ装置20Aは、情報処理装置10に装着された状態で使用される。
【0037】
メモリ装置20Aに格納された情報を利用する情報処理装置10には、例えば、パーソナルコンピュータ(パソコン)、PDA(Personal Digital Assistant)のような携帯情報端末装置、または画像処理装置が含まれる。また、メモリ装置20Aに記憶されたアプリケーションソフトウェアがゲームプログラムである場合は、情報処理装置10は、据置型ゲーム機または携帯ゲーム機等のゲーム装置本体として機能する。
【0038】
このようなメモリ情報保護システム1Aでは、メモリ装置20Aにおいて、メモリ装置20A内の複数の記憶部のうち、少なくとも2つの記憶部各々に記憶された関連情報を用いて、当該少なくとも2つの記憶部に含まれる少なくとも1つの記憶部の正当性を判断する認証動作が行われる。
【0039】
具体的には、
図2に示されるように、メモリ装置20Aは、関連情報D1を記憶する第1半導体メモリ221と、関連情報D2を記憶する第2半導体メモリ222とを有している。メモリ装置20Aは、第1半導体メモリ221に記憶された関連情報D1と第2半導体メモリ222に記憶された関連情報D2とを用いて、第2半導体メモリ222が正当な記憶部であるか否かを判断する認証動作を行う。このような認証動作は「相手認証動作」とも称され、情報処理装置10において通常の動作が開始される前に実行される。すなわち、当該相手認証動作は、情報処理装置10の電源投入に応じて、情報処理装置10が起動されるとともに、電源がメモリ装置20Aに供給されて、システムとしての動作が開始される時点において実行される。
【0040】
そして、相手認証動作において、或る記憶部(ここでは第2半導体メモリ222)の正当性が確認されなかった場合、メモリ装置20Aは、情報処理装置10から入力されるコマンドを受け付けない。
【0041】
なお、
図2では、図示簡単化のため、メモリ装置20Aが2つの半導体メモリ221,222を記憶部として有している態様を示しているが、当該メモリ装置20Aは、2つの半導体メモリ221,222以外に他の記憶部を有していてもよい。すなわち、この場合、2つの半導体メモリ221,222と他の記憶部とが、上記複数の記憶部に相当し、相手認証動作に用いられる2つの半導体メモリ221,222が、上記少なくとも2つの記憶部に相当することになる。
【0042】
このように、メモリ装置20Aは、メモリ装置20A内の少なくとも1つの記憶部の正当性を判断し、正当性が確認されなかった場合、情報処理装置10から入力されるコマンドを受け付けない構成である。このため、メモリ装置20Aからデータを読み出すには、相手認証を成立させる必要があるため、無断複製者によるメモリ装置20Aからのデータの読み出しが困難になり、ひいてはメモリ装置の複製が困難になる。
【0043】
[1−2.機能ブロック]
次に、メモリ情報保護システム1Aの機能について詳述する。
図3は、第1実施形態に係るメモリ情報保護システム1Aの機能構成を示すブロック図である。
図4は、メッセージ認証コード生成部の詳細構成を示す図である。
【0044】
図3に示されるように、メモリ情報保護システム1Aを構成する情報処理装置10は、全体制御部100と、メモリ制御部(メモリコントローラ)110とを備えている。
【0045】
全体制御部100は、マイクロコンピュータとして構成され、主にCPU、RAMおよびROM等を備える。全体制御部100は、ROM内に格納されたプログラムを読み出し、当該プログラムをCPUで実行することによって、各種機能を実現する。
【0046】
具体的には、全体制御部100は、上述のプログラムの実行によって、コマンド生成部101を機能的に実現する。
【0047】
コマンド生成部101は、メモリ装置20Aへの指令に関する命令コード、若しくは当該命令コードおよびアドレスを含むコマンドを生成する機能を有している。例えば、メモリ装置20Aに格納されたデータを読み出す際には、読出命令コードと読出対象となるデータのアドレスとを含むコマンド(「読出コマンド」とも称する)がコマンド生成部101によって生成される。また例えば、メモリ装置20Aにおいて相手認証動作を実行させる場合は、相手認証動作の実行を指示する相手認証コマンドが生成される。
【0048】
コマンド生成部101で生成されたコマンドは、内部バス120を介してメモリ制御部110に入力される。
【0049】
メモリ制御部110は、コマンド発行制御部111,115と、暗号化部112,116と、復号化部113,117と、データバッファ114,118とを有し、メモリ装置20Aに対する各種制御を行う。
【0050】
コマンド発行制御部111は、メモリ装置20A内の第1記憶部221に対するコマンドの発行を制御する。また、コマンド発行制御部111は、発行するコマンドに応じたデータの出力も制御する。例えば、コマンド発行制御部111は、第1記憶部221への書込コマンドを発行する場合は、書込対象となるデータをも出力する。
【0051】
もう一方のコマンド発行制御部115は、メモリ装置20A内の第2記憶部222に対するコマンドの発行を制御する。また、コマンド発行制御部115は、発行するコマンドに応じたデータの出力も制御する。
【0052】
暗号化部112,116は、入力された情報を暗号化して出力する機能を有している。暗号化部112によって暗号化された情報は、インターフェース(不図示)を介してメモリ装置20A内の第1メモリユニット201に供給される。また、暗号化部116によって暗号化された情報は、インターフェースを介してメモリ装置20A内の第2メモリユニット202に供給される。
【0053】
復号化部113,117は、メモリ装置20Aから伝送されてきた情報を復号化して出力する機能を有している。すなわち、復号化部113は、メモリ装置20Aの第1メモリユニット201から伝送されてきた情報を復号化し、復号化部117は、メモリ装置20Aの第2メモリユニット202から伝送されてきた情報を復号化する。
【0054】
データバッファ114,118は、一時的に情報を記憶する機能を有している。具体的には、データバッファ114は、第1記憶部221からデータを読み出す際に利用され、復号化部113において復号化された読出データは、データバッファ114を介して内部バス120に転送される。また、データバッファ114は、第1記憶部221へデータを書き込む際にも利用され、内部バス120から転送された書込データは、データバッファ114を介してコマンド発行制御部111に転送される。
【0055】
データバッファ118は、第2記憶部222からデータを読み出す際に利用され、復号化部117において復号化された読出データは、データバッファ118を介して内部バス120に転送される。
【0056】
一方、上述のような構成を有する情報処理装置10に装着されるメモリ装置20Aは、第1メモリユニット201と、第2メモリユニット202とを有している。
【0057】
第1メモリユニット201は、第1記憶部221と、当該第1記憶部221を制御する第1メモリ内制御部211とを含み、第2メモリユニット202は、第2記憶部222と、当該第2記憶部222を制御する第2メモリ内制御部212とを含んでいる。
【0058】
第1記憶部221は、マスクROM、フラッシュメモリ、またはEPROM等の不揮発性の半導体メモリであって、暗号化されたデータ(暗号化データ)を記憶する通常の記憶領域241を有している。また、第1記憶部221は、上記通常の記録領域241の他に、OTP(One Time Programmable)領域242をも有している。OTP領域242は、1回限りの書込みが可能な領域であり、書き込み後はOTP領域242に記憶された情報の消去および書き換えが不可能になる。このようなOTP領域242は、第1記憶部221の全記憶領域のうちの一部を、ヒューズタイプの記憶領域として物理的に確保することによって実現してもよく、或いは第1記憶部221の全記憶領域のうちの一部を再書き込み不能となるようにメモリ内制御部211に制御させることによって実現してもよい。
【0059】
第1メモリ内制御部211は、暗号化部231と、復号化部232と、コマンド解析部233と、メッセージ認証コード生成部234と、比較部235とを有している。
【0060】
暗号化部231は、第1記憶部221から読み出されたデータを暗号化して出力する機能を有している。暗号化部231によって暗号化されたデータは、インターフェース(不図示)を介して情報処理装置10に供給される。
【0061】
復号化部232は、情報処理装置10から伝送されてきた情報(コマンドおよび書込データ)を復号化して出力する機能を有している。復号化部232で復号化された情報は、コマンド解析部233に伝送される。
【0062】
コマンド解析部233は、コマンド発行制御部111において発行された、第1記憶部221に対するコマンドを解析して、当該コマンドに応じた所定動作の実行指示を行う指示手段として機能する。例えば、コマンド発行制御部111で発行されたコマンドが、第1記憶部221からのデータの読出コマンドである場合は、当該読出コマンドから読出命令コードと読出アドレスデータとを抽出して、読出信号と読出アドレスデータとを第1記憶部221に与える。読出信号および読出アドレスデータを受けた第1記憶部221は、読出アドレスに格納されている読出対象のデータを出力する。
【0063】
なお、コマンド解析部233は、メモリ装置20Aへの電源供給開始時の初期段階では、第1記憶部221に記憶されたデータの読出コマンドを受け付けないように設定されており、相手認証動作によって相手認証が成立した場合に読出コマンドを受け付けるように構成されている。
【0064】
メッセージ認証コード生成部234は、第2記憶部222から読み出された固有ID2Uに基づいて、メッセージ認証コード(MAC:Message Authentication Code)を生成する機能を有している。
【0065】
具体的には、メッセージ認証コード生成部234は、
図4に示されるように、ハードウェア鍵341と演算部342とを有している。
【0066】
ハードウェア鍵341は、ハードウェアとしてチップ上に実装されている固定的な鍵データである。ハードウェア鍵341は、例えば、ハードウェア鍵341のビット長に応じた複数のインバータ(NOT回路)を用いて、各インバータの入力を、電源電圧(Vcc)またはGND(接地電位)にクランプすることによって実現することができる。
【0067】
演算部342は、入力されたハードウェア鍵341および固有ID2Uに基づいて、所定のMAC演算を行い、メッセージ認証コード(「MAC値」とも称する)を出力する。なお、演算部342で実行される所定のMAC演算の手法としては、例えば、SHA−1、MD5などのハッシュ関数を用いた演算手法、或いは、CBC−MAC等のブロック暗号アルゴリズムを用いた演算手法を採用することができる。
【0068】
このように、メッセージ認証コード生成部234は、ハードウェア鍵341および固有ID2Uを用いて、MAC値を生成する生成手段として機能する。
【0069】
メッセージ認証コード生成部234によって生成されたMAC値は、比較部235に出力される。
【0070】
比較部235は、メッセージ認証コード生成部234によって生成されたMAC値と、第1記憶部221から取得されるMAC値とを比較して、比較結果を出力する。詳細には、比較部235は、2つのMAC値が一致する場合は、一致することを示す信号(一致信号)を比較結果として出力し、2つのMAC値が一致しない場合は、一致しないことを示す信号(不一致信号)を比較結果として出力する。
【0071】
比較部235から出力された比較結果は、コマンド解析部233に入力される。2つのMAC値が一致しない場合、すなわち比較結果として不一致信号が入力された場合、コマンド解析部233は、情報処理装置10から入力されたコマンドに応じた動作の実行指示を行わない。すなわち、コマンド解析部233は、情報処理装置10から入力されるコマンドを受け付けない。
【0072】
一方、2つのMAC値が一致する場合、すなわち比較結果として一致信号が入力された場合、コマンド解析部233は、情報処理装置10から入力されたコマンドに応じた動作の実行指示を開始し、情報処理装置10から入力されるコマンドを受け付けるようになる。
【0073】
第2記憶部222は、マスクROM、フラッシュメモリ、またはEPROM等の不揮発性の半導体メモリであって、プログラムおよび/またはデータ等のアプリケーション情報を記憶している。また、第2記憶部222は、メモリ装置20Aに固有の識別情報である固有ID(「ユニークID」または「UID」とも称する)2Uと、当該固有ID2Uおよびハードウェア鍵141と共通の鍵(共通鍵)を用いて予め生成されるMAC値2Mとをさらに記憶している。固有ID2UおよびMAC値2Mは、工場出荷時等に第2記憶部222に予め記憶される。
【0074】
なお、MAC値2Mは、固有ID2Uを用いて生成される情報であることから、固有ID2UとMAC値2Mとは、互いに関連した「関連情報」とも称せられる。
【0075】
第2メモリ内制御部212は、復号化部236と、コマンド解析部237と、暗号化部238とを有している。
【0076】
復号化部236は、コマンド発行制御部115から発行され、そして暗号化部116によって暗号化された暗号化コマンドを復号化する機能を有している。復号化部236によって復号化されたコマンドは、コマンド解析部237に伝送される。
【0077】
コマンド解析部237は、上記コマンド解析部233と同様の機能を有し、第2記憶部222に対するコマンドを解析して、当該コマンドに応じた所定動作の実行指示を行う指示手段として機能する。
【0078】
暗号化部238は、第2記憶部222から読み出されたデータを暗号化する機能を有している。暗号化部238で暗号化された暗号化データは、インターフェースを介して情報処理装置10に供給される。
【0079】
[1−3.メモリ情報保護システム1Aの初期化動作]
ここで、メモリ情報保護システム1Aの動作について説明する。メモリ情報保護システム1Aの動作には、電源投入時に実行される初期化動作と、初期化動作終了後に実行される相手認証動作とが存在する。以下では、初期化動作および相手認証動作についてこの順序で説明する。
図5は、メモリ情報保護システム1Aの初期化動作を説明するための図である。
【0080】
初期化動作は、第2記憶部222に記憶されているMAC値2Mを第1記憶部221のOTP領域242に格納する動作であり、上述のとおり電源投入時に実行される。
【0081】
具体的には、初期化動作開始前には、メモリ装置20Aが情報処理装置10に装着されて、メモリ装置20Aと情報処理装置10とが電気的に接続される。そして、情報処理装置10の電源投入に応じて、情報処理装置10が起動されるとともに、電源が情報処理装置10からメモリ装置20Aに供給されて、初期化動作が開始される。
【0082】
図5に示されるように、初期化動作では、まず、コマンド生成部101が、第2記憶部222に記憶されたMAC値2Mの読出コマンドを生成し、生成したMAC値2Mの読出コマンドを、コマンド発行制御部115に設定する(
図5の(S1))。
【0083】
そして、コマンド発行制御部115は、MAC値2Mの読出コマンドを発行する(S2)。発行されたMAC値2Mの読出コマンドは、暗号化部116に伝送される。
【0084】
暗号化部116は、MAC値2Mの読出コマンドに対して暗号化処理を施す。暗号化部116で暗号化された、MAC値2Mの読出コマンドは、メモリ装置20Aの復号化部236に伝送される(S3)。
【0085】
復号化部236は、暗号化されたMAC値2Mの読出コマンドに対して復号化処理を施す。復号化された、MAC値2Mの読出コマンドは、コマンド解析部237に出力される(S4)。
【0086】
コマンド解析部237は、MAC値2Mの読出コマンドを解析して、MAC値2Mの読出信号と読出アドレスデータとを第2記憶部222に与え、第2記憶部222に記憶されたMAC値2Mの読出動作を実行させる(S5)。
【0087】
第2記憶部222は、MAC値2Mの読出動作の実行指示に応じて、記憶しているMAC値2Mを暗号化部238に出力する(S6)。
【0088】
暗号化部238は、第2記憶部222から入力されるMAC値2Mに暗号化処理を施す。暗号化されたMAC値2Mは、情報処理装置10の復号化部117に伝送される(S7)。
【0089】
復号化部117は、暗号化されたMAC値2Mに復号化処理を施す。復号化されたMAC値2Mは、コマンド発行制御部111に伝送される(S8)。
【0090】
ここで、コマンド生成部101は、第1記憶部221に設けられたOTP領域242へMAC値2Mを書き込むための書込コマンド(MAC値書込コマンド)を生成し、生成したMAC値書込コマンドを、コマンド発行制御部111に設定する(S9)。
【0091】
コマンド発行制御部111は、MAC値書込コマンドを発行する。発行されたMAC値書込コマンドは、暗号化部112に入力される(S10)。また、コマンド発行制御部111は、第2記憶部222から取得したMAC値2Mをも暗号化部112に出力する(S10)。
【0092】
暗号化部112は、コマンド発行制御部111から入力されたMAC値書込コマンドおよびMAC値2Mに暗号化処理を施す。暗号化されたMAC値書込コマンドおよびMAC値2Mは、メモリ装置20Aの復号化部232に伝送される(S11)。
【0093】
復号化部232は、暗号化されたMAC値書込コマンドおよびMAC値2Mに対して復号化処理を施す。復号化された、MAC値書込コマンドおよびMAC値2Mは、コマンド解析部233に出力される(S12)。
【0094】
コマンド解析部233は、MAC値書込コマンドを解析して、MAC値2MをOTP領域242に記憶する書込動作を第1記憶部221に実行させる(S13)。当該書込動作によって、MAC値2Mは、第1記憶部221のOTP領域242に記憶されることになる。
【0095】
このように、初期化動作では、情報処理装置10の指示に基づいて、第2記憶部222に記憶されていたMAC値2Mが読み出され、当該MAC値2Mが第1記憶部221のOTP領域242に書き込まれることになる。なお、初期化動作は、情報処理装置10を起動する際に毎回実行される動作としてもよく、メモリ装置20Aに最初に電源が供給されたときに1度だけ実行される動作としてもよい。仮に、初期化動作が情報処理装置10を起動する際に毎回実行される動作であったとしても、OTP領域242は、情報の消去および書き換えが不能な記憶領域であるため、最初の初期化動作によってOTP領域242に記憶されたMAC値2Mは変更されない。すなわち、最初の初期化動作以降に実行される初期化動作では、OTP領域242への再書込は実施されない。
【0096】
[1−4.メモリ情報保護システム1Aの相手認証動作]
次に、相手認証動作について詳述する。
図6は、メモリ情報保護システム1Aの相手認証動作を説明するための図である。
【0097】
メモリ情報保護システム1Aで実行される相手認証動作は、メモリ装置20A内の第2記憶部222の正当性を判断する動作であり、上記初期化動作終了後に、或いは、初期化動作完了済みのメモリ装置20Aを装着して、情報処理装置10を起動する際に実行される。
【0098】
具体的には、
図6に示されるように、メモリ情報保護システム1Aの相手認証動作では、まず、コマンド生成部101が、第2記憶部222に記憶された固有ID2Uの読出コマンドを生成し、生成した固有ID2Uの読出コマンドを、コマンド発行制御部115に設定する(
図6の(N1))。
【0099】
そして、コマンド発行制御部115は、固有ID2Uの読出コマンドを発行する(N2)。発行された固有ID2Uの読出コマンドは、暗号化部116に伝送される。
【0100】
暗号化部116は、固有ID2Uの読出コマンドに対して暗号化処理を施す。暗号化部116で暗号化された、固有ID2Uの読出コマンドは、メモリ装置20Aの復号化部236に伝送される(N3)。
【0101】
復号化部236は、暗号化された固有ID2Uの読出コマンドに対して復号化処理を施す。復号化された、固有ID2Uの読出コマンドは、コマンド解析部237に出力される(N4)。
【0102】
コマンド解析部237は、固有ID2Uの読出コマンドを解析して、固有ID2Uの読出信号と読出アドレスデータとを第2記憶部222に与え、第2記憶部222に記憶された固有ID2Uの読出動作を実行させる(N5)。
【0103】
第2記憶部222は、固有ID2Uの読出動作の実行指示に応じて、記憶している固有ID2Uを暗号化部238に出力する(N6)。
【0104】
暗号化部238は、第2記憶部222から入力される固有ID2Uに暗号化処理を施す。暗号化された固有ID2Uは、情報処理装置10の復号化部117に伝送される(N7)。
【0105】
復号化部117は、暗号化された固有ID2Uに復号化処理を施して、復号化された固有ID2Uを取得する。復号化された固有ID2Uは、コマンド発行制御部111に伝送される(N8)。
【0106】
ここで、コマンド生成部101は、メモリ装置20Aにおいて相手認証動作を実行させるための相手認証コマンドを生成し、生成した相手認証コマンドをコマンド発行制御部111に設定する(N9)。
【0107】
コマンド発行制御部111は、相手認証コマンドを発行する。発行された相手認証コマンドは、暗号化部112に入力される(N10)。また、コマンド発行制御部111は、第2記憶部222から取得した固有ID2Uをも暗号化部112に出力する(N10)。
【0108】
暗号化部112は、コマンド発行制御部111から入力された相手認証コマンドおよび固有ID2Uに暗号化処理を施す。暗号化された相手認証コマンドおよび固有ID2Uは、メモリ装置20Aの復号化部232に伝送される(N11)。
【0109】
復号化部232は、暗号化された相手認証コマンドおよび固有ID2Uに対して復号化処理を施す。復号化された、相手認証コマンドおよび固有ID2Uは、コマンド解析部233に出力される(N12)。
【0110】
コマンド解析部233は、相手認証コマンドを解析して、相手認証動作の実行指示をメッセージ認証コード生成部234および第1記憶部221に対して行う。
【0111】
具体的には、コマンド解析部233は、第1記憶部221に対して、OTP領域242に記憶されたMAC値の読出信号を与え、OTP領域242に記憶されたMAC値の読出動作を実行させる(N15)。
【0112】
第1記憶部221は、MAC値の読出動作の実行指示に応じて、OTP領域242に記憶しているMAC値を比較部235に出力する(N16)。
【0113】
また、コマンド解析部233は、メッセージ認証コード生成部234に対して、第2記憶部222から読み出された固有ID2Uを出力する(N13)。
【0114】
メッセージ認証コード生成部234は、固有ID2Uを用いて、当該固有ID2UのMAC値(メッセージ認証コード)を生成し、生成したMAC値を比較部235に出力する(N14)。
【0115】
比較部235は、メッセージ認証コード生成部234によって生成されたMAC値と、第1記憶部221のOTP領域242に記憶されていたMAC値とを比較して、2つのMAC値が一致するか否かを示す比較結果を出力する(N17)。比較部235から出力された比較結果は、コマンド解析部233に入力される。
【0116】
比較部235から出力される比較結果は、相手認証の認証結果を示している。すなわち、2つのMAC値が一致することを示す一致信号が比較結果として出力された場合、相手認証は成立したことになる。一方、2つのMAC値が一致しないことを示す不一致信号が比較結果として出力された場合、相手認証は不成立となる。
【0117】
このように、比較部235は、メモリ装置20A内の第2記憶部222の正当性を判断する判断手段として機能する。
【0118】
相手認証が成立した場合、すなわち、第2記憶部222が正当であると判断された場合、コマンド解析部233は、情報処理装置10から入力されたコマンドに応じた動作の実行指示を開始し、情報処理装置10から入力されるコマンドを受け付けるようになる。
【0119】
一方、相手認証が成立しなかった場合、すなわち、第2記憶部222が正当であると判断されなかった場合、コマンド解析部233は、情報処理装置10から入力されたコマンドに応じた動作の実行指示を行わない。すなわち、コマンド解析部233は、情報処理装置10から入力されるコマンドを受け付けない。
【0120】
このように、メモリ情報保護システム1Aでは、動作開始時に、メモリ装置20A内の少なくとも1つの記憶部の正当性を判断する相手認証が行われ、相手認証が成立しなかった場合、メモリ装置20Aはコマンドを受け付けなくなるので、メモリ装置20Aの第1記憶部221からデータを読み出すことが困難になる。
【0121】
以上のように、メモリ情報保護システム1Aは、メモリ装置20Aと、情報処理を実行する情報処理装置10とを備えている。メモリ装置20Aは、第1情報(固有ID)に関連した第2情報(MAC値)を記憶する第1記憶部221と、第1情報を記憶する第2記憶部222と、情報処理装置10から入力されたコマンドに応じた動作の実行指示を行う指示手段(コマンド解析部233)と、第1情報および第2情報を用いて、第2記憶部222の正当性を判断する判断手段(比較部235)とを有している。そして、指示手段は、判断手段によって、第2記憶部222が正当でないと判断された場合、情報処理装置10から入力されたコマンドに応じた動作の実行指示を行わない。
【0122】
このように、メモリ装置20Aは、メモリ装置20A内の第2記憶部222の正当性を判断し、正当性が確認されなかった場合、情報処理装置10から入力されるコマンドを受け付けない構成である。このため、メモリ装置20Aからデータを読み出すには、メモリ装置20Aに第2記憶部222の正当性を確認させる必要があるため、非正規の情報処理装置を用いてメモリ装置20Aからデータを読み出すことが困難になり、ひいては無断複製者によるメモリ装置20Aの複製が困難になる。
【0123】
<2.第2実施形態>
次に、本発明の第2実施形態について説明する。上記第2実施形態に係るメモリ情報保護システム1Bは、MAC値が予め第1記憶部221に記憶されている点以外は、メモリ情報保護システム1Bとほぼ同様の構造および機能を有しており、共通する部分については同じ符号を付して説明を省略する。
図7は、第2実施形態に係るメモリ情報保護システム1Bの機能構成を示すブロック図である。
【0124】
図7に示されるように、メモリ情報保護システム1Bのメモリ装置20Bは、第1記憶部221において、相手認証に用いるMAC値1Mを記憶している。
【0125】
なお、当該MAC値1Mは、OTP領域等の消去および書き換えが不可能な記憶領域に記憶されることが好ましい。
【0126】
このようなメモリ情報保護システム1Bによれば、第1記憶部221にMAC値1Mが予め記憶されているため、MAC値を第1記憶部221に記憶させる上記初期化動作を実行する必要がなく、動作を簡素化することができる。また、MAC値を第2記憶部222に記憶しておく必要もなくなるので、第2記憶部222を有効に利用することができる。
【0127】
<3.第3実施形態>
次に、本発明の第3実施形態について説明する。上記第1実施形態に係るメモリ情報保護システム1Aは、第2半導体メモリ222が正当な記憶部であるか否かを判断する認証動作を行っていたが、第3実施形態に係るメモリ情報保護システム1Cは、第2半導体メモリ222の正当性を判断する認証動作に加えて、第1半導体メモリ221の正当性を判断する相手認証動作をも行う。メモリ情報保護システム1Cは、メモリ装置20Cの構造が若干異なる点以外は、メモリ情報保護システム1Aとほぼ同様の構造および機能を有しており、共通する部分については同じ符号を付して説明を省略する。
図8は、第3実施形態に係るメモリ情報保護システム1Cの機能構成を示すブロック図である。
【0128】
[3−1.メモリ情報保護システム1Cの構成]
図8に示されるように、メモリ情報保護システム1Cのメモリ装置20Cは、第1メモリユニット201と、第2メモリユニット202とを有している。
【0129】
第1メモリユニット201は、第1記憶部221と、当該第1記憶部221を制御する第1メモリ内制御部211とを含み、第2メモリユニット202は、第2記憶部222と、当該第2記憶部222を制御する第2メモリ内制御部212とを含んでいる。
【0130】
第1記憶部221は、マスクROM、フラッシュメモリ、またはEPROM等の不揮発性の半導体メモリであって、暗号化されたデータを記憶する通常の記憶領域241を有している。また、第1記憶部221は、上記通常の記録領域241の他に、OTP領域242をも有している。
【0131】
第1メモリ内制御部211は、暗号化部231と、復号化部232と、コマンド解析部233と、比較部235とを有している。
【0132】
コマンド解析部233は、コマンド発行制御部111において発行された、第1記憶部221に対するコマンドを解析して、当該コマンドに応じた所定動作の実行指示を行う指示手段として機能する。
【0133】
なお、コマンド解析部233は、メモリ装置20Aへの電源供給開始時の初期段階では、第1記憶部221に記憶されたデータの読出コマンドを受け付けないように設定されており、相手認証動作によって相手認証が成立した場合に読出コマンドを受け付けるように構成されている。
【0134】
比較部235は、第2記憶部222から取得された固有ID2Uと、第1記憶部221から取得される固有IDとを比較して、比較結果を出力する。詳細には、比較部235は、2つの固有IDが一致する場合は、一致することを示す信号(一致信号)を比較結果として出力し、2つの固有IDが一致しない場合は、一致しないことを示す信号(不一致信号)を比較結果として出力する。
【0135】
比較部235から出力された比較結果は、コマンド解析部233に入力される。2つの固有IDが一致しない場合、すなわち比較結果として不一致信号が入力された場合、コマンド解析部233は、情報処理装置10から入力されたコマンドに応じた動作の実行指示を行わない。すなわち、コマンド解析部233は、情報処理装置10から入力されるコマンドを受け付けない。
【0136】
一方、2つの固有IDが一致する場合、すなわち比較結果として一致信号が入力された場合、コマンド解析部233は、情報処理装置10から入力されたコマンドに応じた動作の実行指示を開始し、情報処理装置10から入力されるコマンドを受け付けるようになる。
【0137】
第2記憶部222は、マスクROM、フラッシュメモリ、またはEPROM等の不揮発性の半導体メモリであって、プログラムおよび/またはデータ等のアプリケーション情報を記憶している。また、第2記憶部222は、メモリ装置20Cに固有の識別情報である固有ID2Uをさらに記憶している。固有ID2Uは、工場出荷時等に第2記憶部222に予め記憶される。
【0138】
第2メモリ内制御部212は、復号化部236と、コマンド解析部237と、暗号化部238と、比較部239とを有している。
【0139】
コマンド解析部237は、上記コマンド解析部233と同様の機能を有し、第2記憶部222に対するコマンドを解析して、当該コマンドに応じた所定動作の実行指示を行う指示手段として機能する。
【0140】
比較部239は、第1記憶部221から取得される固有IDと、第2記憶部222から読み出される固有ID2Uとを比較して、比較結果を出力する。詳細には、比較部239は、2つの固有IDが一致する場合は、一致することを示す信号(一致信号)を比較結果として出力し、2つの固有IDが一致しない場合は、一致しないことを示す信号(不一致信号)を比較結果として出力する。
【0141】
比較部239から出力された比較結果は、コマンド解析部237に入力される。2つの固有IDが一致しない場合、すなわち比較結果として不一致信号が入力された場合、コマンド解析部237は、情報処理装置10から入力されたコマンドに応じた動作の実行指示を行わない。すなわち、コマンド解析部237は、情報処理装置10から入力されるコマンドを受け付けない。
【0142】
一方、2つの固有IDが一致する場合、すなわち比較結果として一致信号が入力された場合、コマンド解析部237は、情報処理装置10から入力されたコマンドに応じた動作の実行指示を開始し、情報処理装置10から入力されるコマンドを受け付けるようになる。
【0143】
このように、メモリ情報保護システム1Cでは、第1メモリユニット201において、第2半導体メモリ222が正当な記憶部であるか否かを判断する相手認証動作と、第2メモリユニット202において、第1半導体メモリ221が正当な記憶部であるか否かを判断する相手認証動作とが行われる。なお、メモリ情報保護システム1Cでは、第1メモリユニット201および第2メモリユニット202それぞれにおいて相手認証動作が行われることから、メモリ情報保護システム1Cにおいて実行される認証動作は、「相互認証動作」とも称される。
【0144】
[3−2.メモリ情報保護システム1Cの初期化動作]
ここで、メモリ情報保護システム1Cの動作について説明する。メモリ情報保護システム1Cの動作には、電源投入時に実行される初期化動作と、初期化動作終了後に実行される相互認証動作とが存在する。以下では、初期化動作および相互認証動作についてこの順序で説明する。
図9は、メモリ情報保護システム1Cの初期化動作を説明するための図である。
【0145】
初期化動作は、第2記憶部222に記憶されている固有ID2Uを第1記憶部221のOTP領域242に格納する動作であり、上述のとおり電源投入時に実行される。
【0146】
具体的には、初期化動作開始前には、メモリ装置20Cが情報処理装置10に装着されて、メモリ装置20Cと情報処理装置10とが電気的に接続される。そして、情報処理装置10の電源投入に応じて、情報処理装置10が起動されるとともに、電源が情報処理装置10からメモリ装置20Cに供給されて、初期化動作が開始される。
【0147】
図9に示されるように、初期化動作では、まず、コマンド生成部101は、第2記憶部222に記憶された固有ID2Uの読出コマンドを生成し、生成した固有ID2Uの読出コマンドを、コマンド発行制御部115に設定する(
図9の(F1))。
【0148】
そして、コマンド発行制御部115は、固有ID2Uの読出コマンドを発行する(F2)。発行された固有ID2Uの読出コマンドは、暗号化部116に伝送される。
【0149】
暗号化部116は、固有ID2Uの読出コマンドに対して暗号化処理を施す。暗号化部116で暗号化された、固有ID2Uの読出コマンドは、メモリ装置20Cの復号化部236に伝送される(F3)。
【0150】
復号化部236は、暗号化された固有ID2Uの読出コマンドに対して復号化処理を施す。復号化された、固有ID2Uの読出コマンドは、コマンド解析部237に出力される(F4)。
【0151】
コマンド解析部237は、固有ID2Uの読出コマンドを解析して、固有ID2Uの読出信号と読出アドレスデータとを第2記憶部222に与え、第2記憶部222に記憶された固有ID2Uの読出動作を実行させる(F5)。
【0152】
第2記憶部222は、固有ID2Uの読出動作の実行指示に応じて、記憶している固有ID2Uを暗号化部238に出力する(F6)。
【0153】
暗号化部238は、第2記憶部222から入力される固有ID2Uに暗号化処理を施す。暗号化された固有ID2Uは、情報処理装置10の復号化部117に伝送される(F7)。
【0154】
復号化部117は、暗号化された固有ID2Uに復号化処理を施す。復号化された固有ID2Uは、コマンド発行制御部111に伝送される(F8)。
【0155】
ここで、コマンド生成部101は、第1記憶部221に設けられたOTP領域242へ固有ID2Uを書き込むための書込コマンド(固有ID書込コマンド)を生成し、生成した固有ID書込コマンドを、コマンド発行制御部111に設定する(F9)。
【0156】
コマンド発行制御部111は、固有ID書込コマンドを発行する。発行された固有ID書込コマンドは、暗号化部112に入力される(F10)。また、コマンド発行制御部111は、第2記憶部222から取得した固有ID2Uをも暗号化部112に出力する(F10)。
【0157】
暗号化部112は、コマンド発行制御部111から入力された固有ID書込コマンドおよび固有ID2Uに暗号化処理を施す。暗号化された固有ID書込コマンドおよび固有ID2Uは、メモリ装置20Cの復号化部232に伝送される(F11)。
【0158】
復号化部232は、暗号化された固有ID書込コマンドおよび固有ID2Uに対して復号化処理を施す。復号化された、固有ID書込コマンドおよび固有ID2Uは、コマンド解析部233に出力される(F12)。
【0159】
コマンド解析部233は、固有ID書込コマンドを解析して、固有ID2UをOTP領域242に記憶する書込動作を第1記憶部221に実行させる(F13)。当該書込動作によって、固有ID2Uは、第1記憶部221のOTP領域242に記憶されることになる。
【0160】
このように、初期化動作では、情報処理装置10の指示に基づいて、第2記憶部222に記憶されていた固有ID2Uが読み出され、当該固有ID2Uが第1記憶部221のOTP領域242に書き込まれることになる。これにより、第1記憶部221および第2記憶部222それぞれには、互いに共通した、固有の識別情報である固有IDが記憶された状態となる。
【0161】
なお、初期化動作は、情報処理装置10を起動する際に毎回実行される動作としてもよく、メモリ装置20Cに最初に電源が供給されたときに1度だけ実行される動作としてもよい。仮に、初期化動作が情報処理装置10を起動する際に毎回実行される動作であったとしても、OTP領域242は、情報の消去および書き換えが不能な記憶領域であるため、最初の初期化動作によってOTP領域242に記憶された固有ID2Uは変更されない。すなわち、最初の初期化動作以降に実行される初期化動作では、OTP領域242への再書込は実施されない。
【0162】
[3−3.メモリ情報保護システム1Cの相互認証動作]
次に、相互認証動作について詳述する。
図10は、メモリ情報保護システム1Cの相互認証動作を説明するための図である。
【0163】
メモリ情報保護システム1Cで実行される相互認証動作は、メモリ装置20C内の第1記憶部221および第2記憶部222の正当性をそれぞれ判断する動作であり、上記初期化動作終了後に、或いは、初期化動作完了済みのメモリ装置20Cを装着して、情報処理装置10を起動する際に実行される。
【0164】
具体的には、
図10に示されるように、メモリ情報保護システム1Cの相互認証動作では、まず、コマンド生成部101が、第2記憶部222に記憶された固有ID2Uの読出コマンドを生成し、生成した固有ID2Uの読出コマンドを、コマンド発行制御部115に設定する(
図10の(E1))。
【0165】
そして、コマンド発行制御部115は、固有ID2Uの読出コマンドを発行する(E2)。発行された固有ID2Uの読出コマンドは、暗号化部116に伝送される。
【0166】
暗号化部116は、固有ID2Uの読出コマンドに対して暗号化処理を施す。暗号化部116で暗号化された、固有ID2Uの読出コマンドは、メモリ装置20Cの復号化部236に伝送される(E3)。
【0167】
復号化部236は、暗号化された固有ID2Uの読出コマンドに対して復号化処理を施す。復号化された、固有ID2Uの読出コマンドは、コマンド解析部237に出力される(E4)。
【0168】
コマンド解析部237は、固有ID2Uの読出コマンドを解析して、固有ID2Uの読出信号と読出アドレスデータとを第2記憶部222に与え、第2記憶部222に記憶された固有ID2Uの読出動作を実行させる(E5)。
【0169】
第2記憶部222は、固有ID2Uの読出動作の実行指示に応じて、記憶している固有ID2Uを暗号化部238に出力する(E6)。
【0170】
暗号化部238は、第2記憶部222から入力される固有ID2Uに暗号化処理を施す。暗号化された固有ID2Uは、情報処理装置10の復号化部117に伝送される(E7)。
【0171】
復号化部117は、暗号化された固有ID2Uに復号化処理を施して、復号化された固有ID2Uを取得する。復号化された固有ID2Uは、コマンド発行制御部111に伝送される(E8)。
【0172】
ここで、コマンド生成部101は、第1メモリユニット201において相手認証動作を実行させるための相手認証コマンドを生成し、生成した相手認証コマンドをコマンド発行制御部111に設定する(E9)。
【0173】
コマンド発行制御部111は、相手認証コマンドを発行する。発行された相手認証コマンドは、暗号化部112に入力される(E10)。また、コマンド発行制御部111は、第2記憶部222から取得した固有ID2Uをも暗号化部112に出力する(E10)。
【0174】
暗号化部112は、コマンド発行制御部111から入力された相手認証コマンドおよび固有ID2Uに暗号化処理を施す。暗号化された相手認証コマンドおよび固有ID2Uは、メモリ装置20Cの復号化部232に伝送される(E11)。
【0175】
復号化部232は、暗号化された相手認証コマンドおよび固有ID2Uに対して復号化処理を施す。復号化された、相手認証コマンドおよび固有ID2Uは、コマンド解析部233に出力される(E12)。
【0176】
コマンド解析部233は、相手認証コマンドを解析して、相手認証動作の実行指示を比較部235および第1記憶部221に対して行う。
【0177】
具体的には、コマンド解析部233は、第1記憶部221に対して、OTP領域242に記憶された固有IDの読出信号を与え、OTP領域242に記憶された固有IDの読出動作を実行させる(E14)。
【0178】
第1記憶部221は、固有IDの読出動作の実行指示に応じて、OTP領域242に記憶している固有IDを比較部235に出力する(E15)。
【0179】
また、コマンド解析部233は、比較部235に対して、第2記憶部222から読み出された固有ID2Uを出力する(E13)。
【0180】
比較部235は、第2記憶部222から取得された固有ID2Uと、第1記憶部221のOTP領域242に記憶されていた固有IDとを比較して、2つの固有IDが一致するか否かを示す比較結果を出力する(E16)。比較部235から出力された比較結果は、コマンド解析部233に入力される。
【0181】
比較部235から出力される比較結果は、相手認証の認証結果を示している。すなわち、2つの固有IDが一致することを示す一致信号が比較結果として出力された場合、相手認証は成立したことになる。一方、2つの固有IDが一致しないことを示す不一致信号が比較結果として出力された場合、相手認証は不成立となる。
【0182】
このように、比較部235は、メモリ装置20C内の第2記憶部222の正当性を判断する判断手段として機能する。
【0183】
相手認証が成立した場合、すなわち、第2記憶部222が正当であると判断された場合、コマンド解析部233は、情報処理装置10から入力されたコマンドに応じた動作の実行指示を開始し、情報処理装置10から入力されるコマンドを受け付けるようになる。
【0184】
一方、相手認証が成立しなかった場合、すなわち、第2記憶部222が正当であると判断されなかった場合、コマンド解析部233は、情報処理装置10から入力されたコマンドに応じた動作の実行指示を行わない。すなわち、コマンド解析部233は、情報処理装置10から入力されるコマンドを受け付けない。
【0185】
次に、コマンド生成部101は、第1記憶部221のOTP領域242に記憶された固有IDの読出コマンドを生成し、生成した固有IDの読出コマンドを、コマンド発行制御部111に設定する(
図10の(E17))。
【0186】
コマンド発行制御部111は、OTP領域242に記憶された固有IDの読出コマンドを発行する。発行された固有IDの読出コマンドは、暗号化部112に伝送される(E18)。
【0187】
暗号化部112は、固有IDの読出コマンドに対して暗号化処理を施す。暗号化部112で暗号化された、固有IDの読出コマンドは、メモリ装置20Cの復号化部232に伝送される(E19)。
【0188】
復号化部232は、暗号化された固有IDの読出コマンドに対して復号化処理を施す。復号化された、固有ID2Uの読出コマンドは、コマンド解析部233に出力される(E20)。
【0189】
コマンド解析部233は、固有IDの読出コマンドを解析して、固有IDの読出信号と読出アドレスデータとを第1記憶部221に与え、第1記憶部221のOTP領域242に記憶された固有IDの読出動作を実行させる(E21)。
【0190】
第1記憶部221は、固有IDの読出動作の実行指示に応じて、記憶している固有IDを暗号化部231に出力する(E22)。
【0191】
暗号化部231は、第1記憶部221から入力される固有IDに暗号化処理を施す。暗号化された固有IDは、情報処理装置10の復号化部113に伝送される(E23)。
【0192】
復号化部113は、暗号化された固有IDに復号化処理を施して、復号化された固有IDを取得する。復号化された固有IDは、コマンド発行制御部115に伝送される(E24)。
【0193】
ここで、コマンド生成部101は、第2メモリユニット202において相手認証動作を実行させるための相手認証コマンドを生成し、生成した相手認証コマンドをコマンド発行制御部115に設定する(E25)。
【0194】
そして、コマンド発行制御部115は、相手認証コマンドを発行する。発行された相手認証コマンドは、暗号化部116に入力される(E26)。また、コマンド発行制御部115は、第1記憶部221から取得した固有IDをも暗号化部116に出力する(E26)。
【0195】
暗号化部116は、コマンド発行制御部115から入力された相手認証コマンドおよび固有IDに暗号化処理を施す。暗号化された相手認証コマンドおよび固有IDは、メモリ装置20Cの復号化部236に伝送される(E27)。
【0196】
復号化部
236は、暗号化された相手認証コマンドおよび固有IDに対して復号化処理を施す。復号化された、相手認証コマンドおよび固有IDは、コマンド解析部237に出力される(E28)。
【0197】
コマンド解析部237は、相手認証コマンドを解析して、相手認証動作の実行指示を比較部239および第2記憶部222に対して行う。
【0198】
具体的には、コマンド解析部239は、第2記憶部222に対して、固有ID2Uの読出信号を与え、固有ID2Uの読出動作を実行させる(E30)。
【0199】
第2記憶部222は、固有IDの読出動作の実行指示に応じて、固有ID2Uを比較部239に出力する(E31)。
【0200】
また、コマンド解析部237は、比較部239に対して、第1記憶部221から読み出された固有IDを出力する(E29)。
【0201】
比較部239は、第1記憶部221から取得された固有IDと、第2記憶部222に記憶されていた固有ID2Uとを比較して、2つの固有IDが一致するか否かを示す比較結果を出力する(E32)。比較部239から出力された比較結果は、コマンド解析部237に入力される。
【0202】
比較部239から出力される比較結果は、相手認証の認証結果を示している。すなわち、2つの固有IDが一致することを示す一致信号が比較結果として出力された場合、相手認証は成立したことになる。一方、2つの固有IDが一致しないことを示す不一致信号が比較結果として出力された場合、相手認証は不成立となる。
【0203】
このように、比較部239は、メモリ装置20C内の第1記憶部221の正当性を判断する判断手段として機能する。
【0204】
相手認証が成立した場合、すなわち、第1記憶部221が正当であると判断された場合、コマンド解析部237は、情報処理装置10から入力されたコマンドに応じた動作の実行指示を開始し、情報処理装置10から入力されるコマンドを受け付けるようになる。
【0205】
一方、相手認証が成立しなかった場合、すなわち、第1記憶部221が正当であると判断されなかった場合、コマンド解析部237は、情報処理装置10から入力されたコマンドに応じた動作の実行指示を行わない。すなわち、コマンド解析部237は、情報処理装置10から入力されるコマンドを受け付けない。
【0206】
このように、メモリ情報保護システム1Cでは、動作開始時に、メモリ装置20Cにおいて第2記憶部222の正当性を判断する相手認証動作と、第1記憶部221の正当性を判断する相手認証動作とを順次に実行することによって、相互認証動作が行われる。そして、相互認証が成立しなかった場合、メモリ装置20Cはコマンドを受け付けなくなるので、非正規の情報処理装置を用いてメモリ装置20Cの第1記憶部221および第2記憶部222からデータを読み出すことが困難になる。すなわち、無断複製者によるメモリ装置20Cの複製が困難になる。
【0207】
また、メモリ情報保護システム1Cで実行される相互認証動作では、第1記憶部221の正当性と第2記憶部222の正当性とが判断されることになるので、無断複製者によるメモリ装置の複製をより一層困難にすることが可能になる。
【0208】
<4.第4実施形態>
次に、本発明の第4実施形態について説明する。上記第4実施形態に係るメモリ情報保護システム1Dは、固有IDが予め第1記憶部221に記憶されている点以外は、メモリ情報保護システム1Cとほぼ同様の構造および機能を有しており、共通する部分については同じ符号を付して説明を省略する。
図11は、第4実施形態に係るメモリ情報保護システム1Dの機能構成を示すブロック図である。
【0209】
図11に示されるように、メモリ情報保護システム1Dのメモリ装置20Dは、第1記憶部221において、相手認証に用いる固有ID1Uを記憶している。
【0210】
なお、当該固有ID1Uは、OTP領域等の消去および書き換えが不可能な記憶領域に記憶されることが好ましい。
【0211】
このようなメモリ情報保護システム1Dによれば、第1記憶部221に固有ID1Uが予め記憶されているため、固有IDを第1記憶部221に記憶させる第3実施形態の上記初期化動作を実行する必要がなく、動作を簡素化することができる。
【0212】
<5.変形例>
以上、実施の形態について説明したが、この発明は、上記に説明した内容に限定されるものではない。
【0213】
例えば、上記第1実施形態では、MAC値を記憶した第1記憶部221と、固有ID2Uを記憶した第2記憶部222とを用いて相手認証を行う態様を例示したが、これに限定されない。
【0214】
具体的には、固有ID2Uを記憶した第1記憶部221と、MAC値を記憶した第2記憶部222とを用いて相手認証を行ってもよい。この場合、メモリ装置20A(20B)は、第1記憶部221から取得した固有ID2Uを用いてMAC値を生成するとともに、生成したMAC値と、第2記憶部222から取得したMAC値とを比較することによって、第2記憶部222の正当性を判断する相手認証を行うことになる。
【0215】
なお、当該変形例のように、固有ID2Uを記憶した第1記憶部221と、MAC値を記憶した第2記憶部222とを用いて相手認証を行う場合、第1実施形態の初期化動作では、第2記憶部222に記憶されている固有ID2Uを、第1記憶部221のOTP領域242に記憶する動作が行われる。
【0216】
また、上記各実施形態では、メモリ装置20A(20B〜20D)が情報処理装置10に着脱可能な構成としていたが、これに限定されない。具体的には、メモリ装置20A(20B〜20D)と情報処理装置10との間で行うデータのやりとりを無線通信で行う構成とした場合、メモリ装置20A(20B〜20D)は、情報処理装置10に着脱自在に構成される態様でなくてもよい。
【0217】
また、上記第1および第2実施形態では、相手認証において認証判断に使用する評価値としてMAC値を用いていたが、これに限定されない。
【0218】
具体的には、ハードウェア鍵141を用いることなく、ハッシュ関数を用いた演算処理を固有ID2Uに施して、ハッシュ値を算出し、当該ハッシュ値を評価値として用いて相手認証を行ってもよい。
【0219】
より詳細には、第1の変形例に係るメモリ情報保護システムは、相手認証動作開始前には、第1記憶部221にハッシュ値を記憶し、第2記憶部222に固有ID2Uを記憶している。相手認証動作が開始されると、メモリ装置20A(20B)は、第2記憶部222から取得した固有ID2Uを用いてハッシュ値を算出するとともに、第1記憶部221からハッシュ値を取得する。そして、情報処理装置10は、固有ID2Uを用いて算出したハッシュ値と、第1記憶部221から取得したハッシュ値とを比較することによって、相手認証を行う。
【0220】
またさらに、メモリ装置の第1記憶部221および第2記憶部222それぞれに記憶された情報(例えば、固有ID)を相手認証に使用する評価値としてそのまま用いてもよい。
【0221】
より詳細には、第2の変形例に係るメモリ情報保護システムでは、メモリ装置の第1記憶部221および第2記憶部222それぞれに記憶された情報(例えば、固有ID)を単純に比較することによって、相手認証を行う。
【0222】
ただし、上記第1および第2実施形態、第1の変形例、および第2の変形例で実行される各相手認証の信頼性を比較すると、上記第1および第2実施形態に係るメモリ情報保護システム1A,1Bで実行される相手認証の信頼性が最も高い。一方、第2の変形例に係るメモリ情報保護システムで実行される相手認証の信頼性が最も低い。
【0223】
具体的には、上記第1および第2実施形態のメモリ情報保護システム1A,1Bでは、MAC値の生成にハードウェア鍵141をも用いているため、無断複製者は、相手認証に用いるMAC値を生成することが困難であり、相手認証の信頼性は高い。
【0224】
例えば、固有ID2Uが無断複製者に取得されたとしても、ハードウェア鍵141の機密性が保たれている限り、無断複製者は、相手認証に用いるMAC値を生成することができない。
【0225】
これに対して、第1の変形例に係るメモリ情報保護システムでは、固有ID2Uが無断複製者に取得されると、ハッシュ関数のアルゴリズムは一般に公開されているため、無断複製者は、相手認証に用いるハッシュ値を生成することが可能になる。このように相手認証に用いる評価値を無断複製者に取得される可能性が高くなると、相手認証の信頼性は低くなる。
【0226】
第2の変形例に係るメモリ情報保護システムは、第2記憶部222に記憶された固有IDをそのまま相手認証の評価値として用いる構成であるため、相手認証に用いる評価値が無断複製者に取得される可能性が高く、第2の変形例で実行される相手認証の信頼性は、第1の変形例で実行される相手認証の信頼性よりもさらに低いと言える。
【0227】
したがって、無断複製者によるメモリ装置の複製を困難にするためには、信頼性の高い相手認証を採用する方が好ましい。
【0228】
なお、上記第1および第2実施形態、第1の変形例、および第2の変形例では、メモリ装置と情報処理装置との間で行われるデータ伝送は、暗号化して行われる。これにより、無断複製者が固有ID2Uを取得する可能性を低くすることができるため、ハッシュ値または固有IDを相手認証の評価値として用いたとしても、相手認証の信頼性を十分確保することができる。
【0229】
また、上記第1および第2実施形態では、MAC値の生成に用いる鍵として、ハードウェア鍵141を例示したが、これに限定されない。
【0230】
具体的には、MAC値の生成に用いる鍵は、メモリ装置20A,20B内の記憶部に記憶されている態様であってもよい。なお、MAC値の生成に用いる鍵は、メモリ装置20A,20B内で管理される鍵であり、外部から読み出し不可能に保持される。
【0231】
また、上記第3および第4実施形態では、相互認証に用いる評価値として固有IDを採用していたが、これに限定されない。
【0232】
具体的には、相互認証に用いる評価値としてMAC値を採用してもよい。この場合、第1記憶部221および第2記憶部222それぞれには、固有IDの他にMAC値が記憶されることになるとともに、第1メモリ内制御部211および第2メモリ内制御部212それぞれには、メッセージ認証コード生成部が設けられることになる。
【0233】
また、上記各実施形態では、相手認証動作は、情報処理装置10から発行される相手認証コマンドに応じて実行していたが、これに限定されない。
【0234】
具体的には、メモリ装置20A(20B〜20D)への電源供給に応じて、メモリ装置20A(20B〜20D)が相手認証動作を能動的に実行する態様としてもよい。
【0235】
なお、この場合、メモリ装置20A(20B〜20D)が非正規の情報処理装置に装着されたときも、相手認証動作を実行することが可能になるが、非正規の情報処理装置では、固有IDまたはMAC値の伝送を適切に行うことができないため、相手認証を成立させることができない。