(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、上記特許文献1では、暗号化されたアプリケーションソフトウェアに対応する鍵データが特定された場合には、アプリケーションソフトウェアを記憶したメモリ装置が許可無く無断で複製される可能性があった。
【0006】
このようなメモリ装置が無断で複製される可能性は、アプリケーションソフトウェアを記憶したものに限らず、アプリケーションソフトウェア以外の他のデータ(例えば、アプリケーションソフトウェアの実行に利用するためのデータ)等を記憶したメモリ装置に対しても生じうる。
【0007】
そこで、本発明は、メモリ装置の複製を困難にすることが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明に係るメモリシステムの第1の態様は、複数の記憶部を有するメモリ装置と、情報処理を実行する情報処理装置とを備え、前記メモリ装置は、前記複数の記憶部として、第1情報に関連した第2情報を記憶する第1記憶部と、前記第1情報を記憶する第2記憶部とを有し、前記情報処理装置は、前記第1情報および前記第2情報を取得する取得手段と、前記第1情報および前記第2情報を用いて、前記第1記憶部と前記第2記憶部との組み合わせの正当性を判断する判断手段とを有し、前記情報処理装置は、前記判断手段によって、前記組み合わせが正当でないと判断された場合、前記情報処理を実行不可能に
し、前記情報処理装置は、前記取得手段によって前記第2記憶部から取得された前記第1情報に基づいて第3情報を生成する生成手段、をさらに有し、前記判断手段は、前記第2情報と、前記生成手段によって生成された前記第3情報とを比較することによって、前記組み合わせの正当性を判断する。
【0010】
また、本発明に係るメモリシステムの第
2の態様は、
複数の記憶部を有するメモリ装置と、情報処理を実行する情報処理装置とを備え、前記メモリ装置は、前記複数の記憶部として、第1情報に関連した第2情報を記憶する第1記憶部と、前記第1情報を記憶する第2記憶部とを有し、前記情報処理装置は、前記第1情報および前記第2情報を取得する取得手段と、前記第1情報および前記第2情報を用いて、前記第1記憶部と前記第2記憶部との組み合わせの正当性を判断する判断手段とを有し、前記情報処理装置は、前記判断手段によって、前記組み合わせが正当でないと判断された場合、前記情報処理を実行不可能にし、前記第1記憶部は、OTP(One Time Programmable)領域を有し、前記第2情報は、前記OTP領域に記憶される。
【0011】
また、本発明に係るメモリシステムの第
3の態様は、上記第
1の態様であって、前記第2記憶部は、前記第2情報をさらに記憶し、前記OTP領域に記憶される前記第2情報は、前記情報処理装置の指示に基づいて、前記第2記憶部から読み出され、前記第1記憶部の前記OTP領域に書き込まれた情報である。
【0012】
また、本発明に係るメモリシステムの第
4の態様は、上記第
1の態様であって、前記生成手段は、前記第1情報と鍵とを用いて、MAC(Message Authentication Code)値を前記第3情報として生成し、前記第1記憶部は、第1情報と前記鍵と共通の共通鍵とを用いて予め生成されたMAC値を前記第2情報として記憶し、前記判断手段は、前記第1記憶部に記憶されていたMAC値と、前記生成手段によって生成されたMAC値とを比較することによって、前記組み合わせの正当性を判断する。
【0013】
また、本発明に係るメモリシステムの第
5の態様は、上記第
4の態様であって、前記情報処理装置は、前記鍵を外部から読み出し不可能に保持する。
【0014】
また、本発明に係るメモリシステムの第
6の態様は、上記第1の態様から上記第
5の態様のいずれかであって、前記第1情報は、
前記メモリ装置に固有の識別情報である。
【0015】
また、本発明に係るメモリシステムの第
7の態様は、上記第1の態様から上記第
6の態様のいずれかであって、前記情報処理装置は、前記第1記憶部に対するコマンドの発行を制御する第1コマンド発行制御手段と、前記第2記憶部に対するコマンドの発行を制御する第2コマンド発行制御手段とを有し、前記判断手段によって、前記組み合わせが正当でないと判断された場合、前記第1コマンド発行制御手段は、前記第1記憶部に対するコマンドの発行を停止し、前記第2コマンド発行制御手段は、前記第2記憶部に対するコマンドの発行を停止する。
【0016】
また、本発明に係るメモリシステムの第
8の態様は、上記第1の態様から上記第
7の態様のいずれかであって、前記第1記憶部は、暗号化された暗号化情報を記憶し、前記情報処理装置は、情報の復号化に用いる鍵情報を生成する鍵生成手段と、前記暗号化情報を取得し、取得した暗号化情報を前記鍵情報に基づいて復号化する復号化手段とをさらに有し、前記判断手段によって、前記組み合わせが正当であると判断された場合、前記鍵生成手段は、前記鍵情報を生成し、前記判断手段によって、前記組み合わせが正当でないと判断された場合、前記鍵生成手段は、前記鍵情報を生成しない。
【0018】
また、本発明に係るメモリ装置は、情報処理を実行する情報処理装置に、情報を供給するメモリ装置であって、第1情報に関連した第2情報を記憶する第1記憶部と、前記第1情報を記憶する第2記憶部とを有し、前記情報処理装置は、前記第1情報および前記第2情報を取得する取得手段と、前記第1情報および前記第2情報を用いて、前記第1記憶部と前記第2記憶部との組み合わせの正当性を判断する判断手段とを有し、前記メモリ装置は、前記判断手段によって、前記組み合わせが正当でないと判断された場合、前記情報処理を実行不可能にする情報処理装置に情報を供給
し、前記情報処理装置は、前記取得手段によって前記第2記憶部から取得された前記第1情報に基づいて第3情報を生成する生成手段、をさらに有し、前記判断手段は、前記第2情報と、前記生成手段によって生成された前記第3情報とを比較することによって、前記組み合わせの正当性を判断する。
【0019】
また、本発明に係る情報処理装置は、メモリ装置から情報の提供を受けて、情報処理を実行する情報処理装置であって、前記メモリ装置は、第1情報に関連した第2情報を記憶する第1記憶部と、前記第1情報を記憶する第2記憶部とを有し、前記情報処理装置は、前記第1情報および前記第2情報を取得する取得手段と、
前記取得手段によって前記第2記憶部から取得された前記第1情報に基づいて第3情報を生成する生成手段と、前記第2情報と、前記生成手段によって生成された前記第3情報とを比較することによって、前記第1記憶部と前記第2記憶部との組み合わせの正当性を判断する判断手段とを有し、前記情報処理装置は、前記判断手段によって、前記組み合わせが正当でないと判断された場合、前記情報処理を実行不可能にする。
【0020】
また、本発明に係るメモリシステムの動作方法は、メモリ装置と、情報処理を実行する情報処理装置とを含むメモリシステムの動作方法であって、a)
前記情報処理装置が、前記メモリ装置の第1記憶部に記憶された、第1情報に関連する第2情報、および前記メモリ装置の第2記憶部に記憶された前記第1情報を取得する工程と、b)
前記情報処理装置が、前記a)工程において取得された前記第1情報および前記第2情報を用いて、前記第1記憶部と前記第2記憶部との組み合わせの正当性を判断する工程と、c)
前記情報処理装置が、前記b)工程において、前記組み合わせが正当でないと判断された場合、前記情報処理を実行不可能にする工程とを有し、前記b)工程において、
前記情報処理装置は、前記第2記憶部から取得された前記第1情報に基づいて第3情報を生成し、前記c)工程において、
前記情報処理装置は、前記第2情報と、前記第3情報とを比較することによって、前記組み合わせの正当性を判断する。
【0021】
また、本発明に係るメモリシステムの第
9の態様は、複数の記憶部を有するメモリ装置と、情報処理を実行する情報処理装置とを備え、前記メモリ装置は、前記複数の記憶部として、第1情報を記憶する第1記憶部と、前記第1情報に関連した第2情報を記憶する第2記憶部とを有し、前記情報処理装置は、前記第1情報および前記第2情報を取得する取得手段と、前記第1情報および前記第2情報を用いて、前記第1記憶部と前記第2記憶部との組み合わせの正当性を判断する判断手段とを有し、前記情報処理装置は、前記判断手段によって、前記組み合わせが正当でないと判断された場合、前記情報処理を実行不可能に
し、前記情報処理装置は、前記取得手段によって前記第1記憶部から取得された前記第1情報に基づいて第3情報を生成する生成手段、をさらに有し、前記判断手段は、前記第2情報と、前記生成手段によって生成された前記第3情報とを比較することによって、前記組み合わせの正当性を判断する。
【0023】
また、本発明に係るメモリシステムの第
10の態様は、
複数の記憶部を有するメモリ装置と、情報処理を実行する情報処理装置と、を備え、前記メモリ装置は、前記複数の記憶部として、第1情報を記憶する第1記憶部と、前記第1情報に関連した第2情報を記憶する第2記憶部と、を有し、前記情報処理装置は、前記第1情報および前記第2情報を取得する取得手段と、前記第1情報および前記第2情報を用いて、前記第1記憶部と前記第2記憶部との組み合わせの正当性を判断する判断手段と、を有し、前記情報処理装置は、前記判断手段によって、前記組み合わせが正当でないと判断された場合、前記情報処理を実行不可能にし、前記第1記憶部は、OTP(One Time Programmable)領域を有し、前記第1情報は、前記OTP領域に記憶される。
【0024】
また、本発明に係るメモリシステムの第
11の態様は、上記第
10の態様であって、前記第2記憶部は、前記第1情報をさらに記憶し、前記OTP領域に記憶される前記第1情報は、前記情報処理装置の指示に基づいて、前記第2記憶部から読み出され、前記第1記憶部の前記OTP領域に書き込まれた情報である。
【0025】
また、本発明に係るメモリシステムの第
12の態様は、上記第
9の態様であって、前記生成手段は、前記第1情報と鍵とを用いて、MAC(Message Authentication Code)値を前記第3情報として生成し、前記第2記憶部は、第1情報と前記鍵と共通の共通鍵とを用いて予め生成されたMAC値を前記第2情報として記憶し、前記判断手段は、前記第2記憶部に記憶されていたMAC値と、前記生成手段によって生成されたMAC値とを比較することによって、前記組み合わせの正当性を判断する。
【発明の効果】
【0026】
本発明によれば、メモリ装置の複製を困難にすることが可能になる。
【発明を実施するための形態】
【0028】
以下、各実施形態について図面を参照して説明する。なお、異なる図面において同一の符号を付した要素は、同一または相応する要素を示すものとする。
【0029】
<1.第1実施形態>
[1−1.構成概要]
図1は、メモリ情報保護システム(単に「メモリシステム」とも称する)1Aの外観構成を示す図である。
図2は、メモリ情報保護システム1Aで実行されるバインド認証の概要を説明するための図である。
【0030】
図1に示されるように、メモリ情報保護システム1Aは、情報処理装置10とメモリ装置20Aとを有している。
【0031】
メモリ装置20Aは、マスクROMまたはフラッシュメモリ等の半導体メモリで構成された複数の記憶部を有している。
【0032】
メモリ装置20Aは、これら複数の記憶部のうち少なくとも1つの記憶部に、アプリケーションの実施に用いるアプリケーション情報を記憶している。当該アプリケーション情報には、例えば、一種のコンピュータ装置である情報処理装置10で実行されるアプリケーションソフトウェアとしてのプログラムおよび/または、アプリケーションソフトウェアを実行する際に使用されるデータ等が含まれている。
【0033】
また、メモリ装置20Aは、複数の記憶部のうち、少なくとも2つの記憶部各々に、それぞれ相互に関連した情報(「関連情報」とも称する)を記憶している。
【0034】
このメモリ装置20Aは、例えばカードまたはカートリッジのような態様を有している。当該メモリ装置20Aは、情報処理装置10に脱着自在に構成され、メモリ装置20Aは、情報処理装置10に装着された状態で使用される。
【0035】
メモリ装置20Aに格納された情報を利用する情報処理装置10には、例えば、パーソナルコンピュータ(パソコン)、PDA(Personal Digital Assistant)のような携帯情報端末装置、または画像処理装置が含まれる。また、メモリ装置20Aに記憶されたアプリケーションソフトウェアがゲームプログラムである場合は、情報処理装置10は、据置型ゲーム機または携帯ゲーム機等のゲーム装置本体として機能する。
【0036】
このようなメモリ情報保護システム1Aでは、情報処理装置10が、メモリ装置20A内の複数の記憶部のうち、少なくとも2つの記憶部各々に記憶された関連情報を用いて、当該少なくとも2つの記憶部の組み合わせの正当性を判断する「バインド認証」を行う。
【0037】
具体的には、
図2に示されるように、情報処理装置10は、メモリ装置20A内の第1半導体メモリ201に記憶された関連情報D1と、第2半導体メモリ202に記憶された関連情報D2とを取得する。そして、情報処理装置10は、取得した各関連情報D1,D2を用いて第1半導体メモリ201と第2半導体メモリ202との組み合わせの正当性を判断するバインド認証を行う。
【0038】
バインド認証において、記憶部の組み合わせの正当性が確認されなかった場合、情報処理装置10は、装着されたメモリ装置を非正規のものとみなして、情報処理装置10における情報処理を実行不可能にする。
【0039】
なお、このようなバインド認証は、情報処理装置10において通常動作が開始される前、すなわち情報処理装置10の電源投入に応じて、情報処理装置10が起動されるとともに、電源がメモリ装置20Aに供給されて、システムとしての動作が開始される時点において実行されることが好ましい。また、
図2では、図示簡単化のため、メモリ装置20Aが2つの半導体メモリ201,202を記憶部として有している態様を示しているが、当該メモリ装置20Aは、2つの半導体メモリ以外に他の記憶部を有していてもよい。すなわち、この場合、2つの半導体メモリと他の記憶部とが、上記複数の記憶部に相当し、バインド認証において組み合わせの認証対象となる2つの半導体メモリが、上記少なくとも2つの記憶部に相当することになる。
【0040】
このようにメモリ情報保護システムは、メモリ装置内の少なくとも2つの記憶部の組み合わせの正当性が確認されなかった場合、装着されたメモリ装置を非正規のものとみなして、情報処理装置における情報処理を実行不可能にする構成であるため、非正規のメモリ装置を用いてアプリケーションを実施することが困難になる。すなわち、正規のメモリ装置に記憶されたデータを抜き出して、メモリ装置を単純に複製しただけでは、バインド認証を通過することができないため、無断複製者によるメモリ装置の複製は困難になる。
【0041】
[1−2.機能ブロック]
次に、メモリ情報保護システム1Aの機能について詳述する。
図3は、第1実施形態に係るメモリ情報保護システム1Aの機能構成を示すブロック図である。
図4は、メッセージ認証コード生成部の詳細構成を示す図である。
【0042】
図3に示されるように、メモリ情報保護システム1Aを構成する情報処理装置10は、全体制御部100と、メモリ制御部(メモリコントローラ)110とを備えている。
【0043】
全体制御部100は、マイクロコンピュータとして構成され、主にCPU、RAMおよびROM等を備える。全体制御部100は、ROM内に格納されるプログラムを読み出し、当該プログラムをCPUで実行することによって、各種機能を実現する。
【0044】
具体的には、全体制御部100は、上述のプログラムの実行によって、コマンド生成部101を機能的に実現する。
【0045】
コマンド生成部101は、メモリ装置20Aへの指令に関する命令コード、若しくは当該命令コードおよびアドレスを含むコマンドを生成する機能を有している。例えば、メモリ装置20Aに格納されたデータを読み出す際には、読出命令コードと読出対象となるデータのアドレスとを含むコマンド(「読出コマンド」とも称する)がコマンド生成部101によって生成される。
【0046】
コマンド生成部101で生成されたコマンドは、内部バス120を介してメモリ制御部110に入力される。
【0047】
メモリ制御部110は、コマンド発行制御部111,119と、暗号化部112,118と、復号化部113,117と、メッセージ認証コード生成部114と、比較器115と、鍵生成部116とを有し、メモリ装置20Aに対する各種制御を行う。
【0048】
コマンド発行制御部111は、メモリ装置20A内の第1記憶部201に対するコマンドの発行を制御する。
【0049】
もう一方のコマンド発行制御部119は、メモリ装置20A内の第2記憶部202に対するコマンドの発行を制御する。
【0050】
暗号化部112,118は、入力された情報を暗号化して出力する機能を有している。暗号化部112によって暗号化された情報は、インターフェース(不図示)を介してメモリ装置20A内の第1記憶部201に供給される。また、暗号化部118によって暗号化された情報は、インターフェースを介してメモリ装置20A内の第2記憶部202に供給される。
【0051】
復号化部113,117は、メモリ装置20Aから伝送されてきた情報を復号化して出力する機能を有している。すなわち、復号化部113は、メモリ装置20Aの第1記憶部201から伝送されてきた情報を復号化し、復号化部117は、メモリ装置20Aの第2記憶部202から伝送されてきた情報を復号化する。
【0052】
メッセージ認証コード生成部114は、第2記憶部202に記憶されている固有ID(「ユニークID」または「UID」とも称する)2Uに基づいて、メッセージ認証コード(MAC:Message Authentication Code)を生成する機能を有している。
【0053】
具体的には、メッセージ認証コード生成部114は、
図4に示されるように、ハードウェア鍵141と演算部142とを有している。
【0054】
ハードウェア鍵141は、ハードウェアとしてチップ上に実装されている固定的な鍵データである。ハードウェア鍵141は、例えば、ハードウェア鍵141のビット長に応じた複数のインバータ(NOT回路)を用いて、各インバータの入力を、電源電圧(Vcc)またはGND(接地電位)にクランプすることによって実現することができる。
【0055】
演算部142は、入力されたハードウェア鍵141および固有ID2Uに基づいて、所定のMAC演算を行い、メッセージ認証コード(「MAC値」とも称する)を出力する。なお、演算部142で実行される所定のMAC演算の手法としては、例えば、SHA−1、MD5などのハッシュ関数を用いた演算手法、或いは、CBC−MAC等のブロック暗号アルゴリズムを用いた演算手法を採用することができる。
【0056】
このように、メッセージ認証コード生成部114は、ハードウェア鍵141および固有ID2Uを用いて、MAC値を生成する生成手段として機能する。
【0057】
メッセージ認証コード生成部114によって生成されたMAC値は、比較器115に出力される。
【0058】
比較器115は、メッセージ認証コード生成部114によって生成されたMAC値と、第1記憶部201から取得されたMAC値とを比較して、比較結果を出力する。詳細には、比較器115は、2つのMAC値が一致する場合は、一致することを示す信号(一致信号)を比較結果として出力し、2つのMAC値が一致しない場合は、一致しないことを示す信号(不一致信号)を比較結果として出力する。
【0059】
比較器115から出力された比較結果は、コマンド発行制御部111,119に出力される。上述のコマンド発行制御部111,119では、比較結果として不一致信号が入力された場合、以降のコマンド発行が停止される。
【0060】
また、比較器115から出力された比較結果は、鍵生成部116にも出力される。
【0061】
鍵生成部116は、比較器115から入力された比較結果に応じて鍵情報を生成する機能を有している。
【0062】
具体的には、2つのMAC値が一致した場合、すなわち一致信号が比較結果として入力された場合、鍵生成部116は、固有IDに基づいて、情報の暗復号化に用いる鍵情報を生成する。一方、2つのMAC値が一致しない場合、すなわち不一致信号が比較結果として入力された場合、鍵生成部116は、固有IDを無効として、暗号鍵の生成を行わない。
【0063】
生成された鍵情報は、暗号化部112および復号化部113に出力され、暗号化部112における暗号化処理、復号化部113における復号化処理に用いられる。
【0064】
一方、上述のような構成を有する情報処理装置10に装着されるメモリ装置20Aは、第1記憶部201と、当該第1記憶部201を制御する第1メモリ内制御部211と、第2記憶部202と、当該第2記憶部202を制御する第2メモリ内制御部212とを有している。
【0065】
第1記憶部201は、マスクROM、フラッシュメモリ、またはEPROM等の不揮発性の半導体メモリであって、暗号化されたデータ(暗号化データ)を記憶する通常の記憶領域231を有している。また、第1記憶部201は、上記通常の記録領域231の他に、OTP(One Time Programmable)領域232をも有している。OTP領域232は、1回限りの書込みが可能な領域であり、書き込み後はOTP領域232に記憶された情報の消去および書き換えが不可能になる。このようなOTP領域232は、第1記憶部201の全記憶領域のうちの一部を、ヒューズタイプの記憶領域として物理的に確保することによって実現してもよく、或いは第1記憶部201の全記憶領域のうちの一部を再書き込み不能となるようにメモリ内制御部211に制御させることによって実現してもよい。
【0066】
第1メモリ内制御部211は、コマンド解析部221を有している。
【0067】
コマンド解析部221は、コマンド発行制御部111から発行された、第1記憶部201に対するコマンドを解析して、当該コマンドに応じた所定動作の実行指示を行う。例えば、コマンド発行制御部111から発行されたコマンドが、第1記憶部201からのデータの読出コマンドである場合は、当該読出コマンドから読出命令コードと読出アドレスデータとを抽出して、読出信号と読出アドレスデータとを第1記憶部201に与える。読出信号および読出アドレスデータを受けた第1記憶部201は、読出アドレスに格納されている読出対象のデータを出力する。
【0068】
第2記憶部202は、マスクROM、フラッシュメモリ、またはEPROM等の不揮発性の半導体メモリであって、プログラムおよび/またはデータ等のアプリケーション情報を記憶している。また、第2記憶部202は、メモリ装置20Aに固有の識別情報である固有ID(ユニークID)2Uと、当該固有ID2Uおよびハードウェア鍵141と共通の鍵(共通鍵)を用いて予め生成されるMAC値2Mとをさらに記憶している。固有ID2UおよびMAC値2Mは、工場出荷時等に第2記憶部202に予め記憶される。
【0069】
なお、MAC値2Mは、固有ID2Uを用いて生成される情報であることから、固有ID2UとMAC値2Mとは、互いに関連した「関連情報」とも称せられる。
【0070】
第2メモリ内制御部212は、復号化部225と、コマンド解析部226と、暗号化部227とを有している。
【0071】
復号化部225は、コマンド発行制御部119から発行され、そして暗号化部118によって暗号化された暗号化コマンドを復号化する機能を有している。復号化部225によって復号化されたコマンドは、コマンド解析部226に伝送される。
【0072】
コマンド解析部226は、上記コマンド解析部221と同様の機能を有し、第2記憶部202に対するコマンドを解析して、当該コマンドに応じた所定動作の実行指示を行う。
【0073】
暗号化部227は、第2記憶部202から読み出されたデータを暗号化する機能を有している。暗号化部227で暗号化された暗号化データは、インターフェースを介して情報処理装置10に供給される。
【0074】
[1−3.メモリ情報保護システム1Aの初期化動作]
ここで、メモリ情報保護システム1Aの動作について説明する。メモリ情報保護システム1Aの動作には、電源投入時に実行される初期化動作と、初期化動作終了後に実行されるバインド認証動作とが存在する。以下では、初期化動作およびバインド認証動作についてこの順序で説明する。
図5は、メモリ情報保護システム1Aの初期化動作を説明するための図である。
【0075】
初期化動作は、第2記憶部202に記憶されているMAC値2Mを第1記憶部201のOTP領域232に格納する動作であり、上述のとおり電源投入時に実行される。
【0076】
具体的には、初期化動作開始前には、メモリ装置20Aが情報処理装置10に装着されて、メモリ装置20Aと情報処理装置10とが電気的に接続される。そして、情報処理装置10の電源投入に応じて、情報処理装置10が起動されるとともに、電源が情報処理装置10からメモリ装置20Aに供給されて、初期化動作が開始される。
【0077】
図5に示されるように、初期化動作では、まず、コマンド生成部101は、第2記憶部202に記憶されたMAC値2Mの読出コマンドを生成し、生成したMAC値2Mの読出コマンドを、コマンド発行制御部119に設定する(
図5の(S1))。
【0078】
そして、コマンド発行制御部119は、MAC値2Mの読出コマンドを発行する(S2)。発行されたMAC値2Mの読出コマンドは、暗号化部118に伝送される。
【0079】
暗号化部118は、MAC値2Mの読出コマンドに対して暗号化処理を施す。暗号化部118で暗号化された、MAC値2Mの読出コマンドは、メモリ装置20Aの復号化部225に伝送される(S3)。
【0080】
復号化部225は、暗号化されたMAC値2Mの読出コマンドに対して復号化処理を施す。復号化された、MAC値2Mの読出コマンドは、コマンド解析部226に出力される(S4)。
【0081】
コマンド解析部226は、MAC値2Mの読出コマンドを解析して、MAC値2Mの読出信号と読出アドレスデータとを第2記憶部202に与え、第2記憶部202に記憶されたMAC値2Mの読出動作を実行させる(S5)。
【0082】
第2記憶部202は、MAC値2Mの読出動作の実行指示に応じて、記憶しているMAC値2Mを暗号化部227に出力する(S6)。
【0083】
暗号化部227は、第2記憶部202から入力されるMAC値2Mに暗号化処理を施す。暗号化されたMAC値2Mは、情報処理装置10の復号化部117に伝送される(S7)。
【0084】
復号化部117は、暗号化されたMAC値2Mに復号化処理を施す。復号化されたMAC値2Mは、コマンド発行制御部111に伝送される(S8)。
【0085】
ここで、コマンド生成部101は、第1記憶部201に設けられたOTP領域232へMAC値2Mを書き込むための書込コマンド(MAC値書込コマンド)を生成し、生成したMAC値書込コマンドを、コマンド発行制御部111に設定する(S9)。
【0086】
コマンド発行制御部111は、MAC値書込コマンドを発行する(S10)。発行されたMAC値書込コマンドは、メモリ装置20Aのコマンド解析部221に伝送される。
【0087】
コマンド解析部221は、MAC値書込コマンドを解析して、MAC値2MをOTP領域232に記憶する書込動作を第1記憶部201に実行させる(S11)。当該書込動作によって、MAC値2Mは、第1記憶部201のOTP領域232に記憶されることになる。
【0088】
このように、初期化動作では、情報処理装置10の指示に基づいて、第2記憶部202に記憶されていたMAC値2Mが読み出され、当該MAC値2Mが第1記憶部201のOTP領域232に書き込まれることになる。なお、初期化動作は、情報処理装置10を起動する際に毎回実行される動作としてもよく、メモリ装置20Aに最初に電源が供給されたときに1度だけ実行される動作としてもよい。仮に、初期化動作が情報処理装置10を起動する際に毎回実行される動作であったとしても、OTP領域232は、情報の消去および書き換えが不能な記憶領域であるため、最初の初期化動作によってOTP領域232に記憶されたMAC値2Mは変更されない。すなわち、最初の初期化動作以降に実行される初期化動作では、OTP領域232への再書込は実施されない。
【0089】
[1−4.メモリ情報保護システム1Aのバインド認証動作]
次に、バインド認証動作について詳述する。
図6は、メモリ情報保護システム1Aのバインド認証動作を説明するための図である。
【0090】
バインド認証動作は、メモリ装置20A内の第1記憶部201と第2記憶部202との組み合わせの正当性を判断する動作であり、上記初期化動作終了後に、或いは、初期化動作完了済みのメモリ装置20Aを装着して、情報処理装置10を起動する際に実行される。
【0091】
具体的には、
図6に示されるように、バインド認証動作では、まず、コマンド生成部101が、第2記憶部202に記憶された固有ID2Uの読出コマンドを生成し、生成した固有ID2Uの読出コマンドを、コマンド発行制御部119に設定する(
図6の(B1))。
【0092】
そして、コマンド発行制御部119は、固有ID2Uの読出コマンドを発行する(B2)。発行された固有ID2Uの読出コマンドは、暗号化部118に伝送される。
【0093】
暗号化部118は、固有ID2Uの読出コマンドに対して暗号化処理を施す。暗号化部118で暗号化された、固有ID2Uの読出コマンドは、メモリ装置20Aの復号化部225に伝送される(B3)。
【0094】
復号化部225は、暗号化された固有ID2Uの読出コマンドに対して復号化処理を施す。復号化された、固有ID2Uの読出コマンドは、コマンド解析部226に出力される(B4)。
【0095】
コマンド解析部226は、固有ID2Uの読出コマンドを解析して、固有ID2Uの読出信号と読出アドレスデータとを第2記憶部202に与え、第2記憶部202に記憶された固有ID2Uの読出動作を実行させる(B5)。
【0096】
第2記憶部202は、固有ID2Uの読出動作の実行指示に応じて、記憶している固有ID2Uを暗号化部227に出力する(B6)。
【0097】
暗号化部227は、第2記憶部202から入力される固有ID2Uに暗号化処理を施す。暗号化された固有ID2Uは、情報処理装置10の復号化部117に伝送される(B7)。
【0098】
復号化部117は、暗号化された固有ID2Uに復号化処理を施して、復号化された固有ID2Uを取得する。このように、コマンド発行制御部119、暗号化部118および復号化部117は、第2記憶部202に記憶されていた固有ID2Uを取得する取得手段として機能する。復号化された固有ID2Uは、メッセージ認証コード生成部114および鍵生成部116に伝送される(B8)。
【0099】
メッセージ認証コード生成部114は、固有ID2Uを用いて、当該固有ID2UのMAC値(メッセージ認証コード)を生成し、生成したMAC値を比較器115に出力する(B9)。
【0100】
ここで、コマンド生成部101は、第1記憶部201のOTP領域232に記憶された情報の読出コマンド(OTP領域情報読出コマンド)を生成し、生成したOTP領域情報読出コマンドを、コマンド発行制御部111に設定する(B10)。
【0101】
そして、コマンド発行制御部111は、OTP領域情報読出コマンドを発行する(B11)。発行された当該OTP領域情報読出コマンドは、メモリ装置20Aのコマンド解析部221に伝送される。
【0102】
コマンド解析部221は、OTP領域情報読出コマンドを解析して、OTP領域232に記憶された情報の読出動作を実行させる(B12)。
【0103】
第1記憶部201は、OTP領域情報の読出動作の実行指示に応じて、OTP領域232に記憶しているMAC値を出力する(B13)。OTP領域232に記憶されているMAC値は、バインド認証動作の前に実行された初期化動作によって記憶された情報であり、当該読出動作によって、情報処理装置10の比較器115に伝送される。
【0104】
このように、コマンド発行制御部111は、第1記憶部201のOTP領域232に記憶されていたMAC値を取得する取得手段として機能する。
【0105】
比較器115は、メッセージ認証コード生成部114によって生成されたMAC値と、第1記憶部201のOTP領域232に記憶されていたMAC値とを比較して、2つのMAC値が一致するか否かを示す比較結果を出力する(B14)。比較器115から出力された比較結果は、コマンド発行制御部111,119と鍵生成部116とに入力される。
【0106】
比較器115から出力される比較結果は、バインド認証の認証結果を示している。すなわち、2つのMAC値が一致することを示す一致信号が比較結果として出力された場合、バインド認証は成立したことになる。一方、2つのMAC値が一致しないことを示す不一致信号が比較結果として出力された場合、バインド認証は不成立となる。
【0107】
このように、比較器115は、第1記憶部201と第2記憶部202との組み合わせの正当性を判断する判断手段として機能する。
【0108】
バインド認証が成立した場合、すなわち、第1記憶部201と第2記憶部202との組み合わせが正当であると判断された場合、鍵生成部116は、復号化部117から入力される固有ID2Uに基づいて、情報の暗復号化に用いる鍵情報を生成し、当該鍵情報を暗号化部112および復号化部113に出力する(B15)。
【0109】
以後、メモリ情報保護システム1Aでは、第1記憶部201に書き込む書込データは、暗号化部112において当該鍵情報を用いて暗号化された上で、メモリ装置20Aに供給されることになる。また、第1記憶部201に記憶されている暗号化データは、復号化部113において当該鍵情報を用いて復号化することが可能になる。
【0110】
なお、バインド認証が成立しなかった場合、すなわち、第1記憶部201と第2記憶部202との組み合わせが正当でないと判断された場合、鍵生成部116は、鍵情報を生成しない。これにより、バインド認証が不成立だった場合は、第1記憶部201へデータを書き込むこと、および第1記憶部201に記憶された暗号化データ(暗号化情報)を復号化して、利用可能なデータを取得することが不可能になる。
【0111】
また、バインド認証が不成立だった場合、コマンド発行制御部111,119は、コマンドの受け付けを拒否して、コマンドの発行を停止する。
【0112】
このように、情報処理装置10は、通常の情報処理の開始前に、メモリ装置20A内の記憶部の組み合わせの正当性を判断するバインド認証を行い、バインド認証が成立しなかった場合、情報処理装置10における情報処理を実行不可能にする。
【0113】
以上のように、メモリ情報保護システム1Aは、複数の記憶部を有するメモリ装置20Aと、情報処理を実行する情報処理装置10とを備えている。メモリ装置20Aは、複数の記憶部として、第1情報(固有ID)に関連した第2情報(MAC値)を記憶する第1記憶部201と、第1情報を記憶する第2記憶部202とを有している。情報処理装置10は、第1情報および第2情報を取得する取得手段と、第1情報および第2情報を用いて、第1記憶部201と第2記憶部202との組み合わせの正当性を判断する比較器115とを有している。そして、情報処理装置10は、比較器115によって、第1記憶部201と第2記憶部202との組み合わせが正当でないと判断された場合、情報処理を実行不可能にする。
【0114】
このように、メモリ情報保護システム1Aでは、情報処理装置において情報処理を実行させるためには、メモリ装置内の記憶部の組み合わせの正当性が要求されるため、無断複製者は、メモリ装置20Aを複製するために、メモリ装置内の記憶部の正当な組み合わせを特定することが必要になる。したがって、メモリ情報保護システム1Aでは、無断複製者によるメモリ装置の複製は困難になる。
【0115】
<2.第2実施形態>
次に、本発明の第2実施形態について説明する。上記第2実施形態に係るメモリ情報保護システム1Bは、MAC値が予め第1記憶部201に記憶されている点以外は、メモリ情報保護システム1Bとほぼ同様の構造および機能を有しており、共通する部分については同じ符号を付して説明を省略する。
図7は、第2実施形態に係るメモリ情報保護システム1Bの機能構成を示すブロック図である。
【0116】
図7に示されるように、メモリ情報保護システム1Bのメモリ装置20Bは、第1記憶部201において、バインド認証に用いるMAC値1Mを記憶している。
【0117】
なお、当該MAC値1Mは、OTP領域等の消去および書き換えが不可能な記憶領域に記憶されることが好ましい。
【0118】
このようなメモリ情報保護システム1Bによれば、第1記憶部201にMAC値1Mが予め記憶されているため、MAC値を第1記憶部201に記憶させる上記初期化動作を実行する必要がなく、動作を簡素化することができる。また、MAC値を第2記憶部202に記憶しておく必要もなくなるので、第2記憶部202を有効に利用することができる。
【0119】
<3.変形例>
以上、実施の形態について説明したが、この発明は、上記に説明した内容に限定されるものではない。
【0120】
例えば、上記各実施形態では、MAC値を記憶した第1記憶部201と、固有ID2Uを記憶した第2記憶部202とを用いてバインド認証を行う態様を例示したが、これに限定されない。
【0121】
具体的には、固有ID2Uを記憶した第1記憶部201と、MAC値を記憶した第2記憶部202とを用いてバインド認証を行ってもよい。この場合、情報処理装置10は、第1記憶部201から取得した固有ID2Uを用いてMAC値を生成するとともに、生成したMAC値と、第2記憶部202から取得したMAC値とを比較することによって、第1記憶部201と第2記憶部202との組み合わせの正当性を判断するバインド認証を行うことになる。
【0122】
なお、当該変形例のように、固有ID2Uを記憶した第1記憶部201と、MAC値を記憶した第2記憶部202とを用いてバインド認証を行う場合、第1実施形態の初期化動作では、第2記憶部202に記憶されている固有ID2Uを、第1記憶部201のOTP領域232に記憶する動作が行われる。
【0123】
また、上記各実施形態では、メモリ装置20A(20B)が情報処理装置10に着脱可能な構成としていたが、これに限定されない。具体的には、メモリ装置20A(20B)と情報処理装置10との間で行うデータのやりとりを無線通信で行う構成とした場合、メモリ装置20A(20B)は、情報処理装置10に着脱自在に構成される態様でなくてもよい。
【0124】
また、上記各実施形態では、バインド認証において認証判断に使用する評価値としてMAC値を用いていたが、これに限定されない。
【0125】
具体的には、ハードウェア鍵141を用いることなく、ハッシュ関数を用いた演算処理を固有ID2Uに施して、ハッシュ値を算出し、当該ハッシュ値を評価値として用いてバインド認証を行ってもよい。
【0126】
より詳細には、第1の変形例に係るメモリ情報保護システムは、バインド認証動作開始前には、第1記憶部201にハッシュ値を記憶し、第2記憶部202に固有ID2Uを記憶している。バインド認証動作が開始されると、情報処理装置10は、第2記憶部202から取得した固有ID2Uを用いてハッシュ値を算出するとともに、第1記憶部201からハッシュ値を取得する。そして、情報処理装置10は、固有ID2Uを用いて算出したハッシュ値と、第1記憶部201から取得したハッシュ値とを比較することによって、バインド認証を行う。
【0127】
またさらに、メモリ装置の第1記憶部201および第2記憶部202それぞれに記憶された情報(例えば、固有ID)をバインド認証に使用する評価値としてそのまま用いてもよい。
【0128】
より詳細には、第2の変形例に係るメモリ情報保護システムでは、メモリ装置の第1記憶部201および第2記憶部202それぞれに記憶された情報(例えば、固有ID)を情報処理装置10が取得し、両者を単純に比較することによって、バインド認証を行う。
【0129】
ただし、上記各実施形態、第1の変形例、および第2の変形例で実行される各バインド認証の信頼性を比較すると、上記各実施形態に係るメモリ情報保護システム1A,1Bで実行されるバインド認証の信頼性が最も高い。一方、第2の変形例に係るメモリ情報保護システムで実行されるバインド認証の信頼性が最も低い。
【0130】
具体的には、上記各実施形態のメモリ情報保護システム1A,1Bでは、MAC値の生成にハードウェア鍵141をも用いているため、無断複製者は、バインド認証に用いるMAC値を生成することが困難であり、バインド認証の信頼性は高い。
【0131】
例えば、固有ID2Uが無断複製者に取得されたとしても、ハードウェア鍵141の機密性が保たれている限り、無断複製者は、バインド認証に用いるMAC値を生成することができない。
【0132】
これに対して、第1の変形例に係るメモリ情報保護システムでは、固有ID2Uが無断複製者に取得されると、ハッシュ関数のアルゴリズムは一般に公開されているため、無断複製者は、バインド認証に用いるハッシュ値を生成することが可能になる。このようにバインド認証に用いる評価値を無断複製者に取得される可能性が高くなると、バインド認証の信頼性は低くなる。
【0133】
第2の変形例に係るメモリ情報保護システムは、記憶部202に記憶された固有IDをそのままバインド認証の評価値として用いる構成であるため、バインド認証に用いる評価値が無断複製者に取得される可能性が高く、第2の変形例で実行されるバインド認証の信頼性は、第1の変形例で実行されるバインド認証の信頼性よりもさらに低いと言える。
【0134】
したがって、無断複製者によるメモリ装置の複製を困難にするためには、信頼性の高いバインド認証を採用する方が好ましい。
【0135】
また、上記各実施形態では、MAC値の生成に用いる鍵として、ハードウェア鍵141を例示したが、これに限定されない。
【0136】
具体的には、MAC値の生成に用いる鍵は、情報処理装置10内の記憶部に記憶されている態様であってもよい。なお、MAC値の生成に用いる鍵は、情報処理装置10内で管理される鍵であり、外部から読み出し不可能に保持される。