(57)【特許請求の範囲】
【請求項１】
ハードウェアとして実装される第１ハードウェア鍵と、前記第１ハードウェア鍵を用いて第１初期鍵情報を生成し、所定タイミングごとに、前記第１初期鍵情報を構成するビット列を順次に更新させて、情報の暗復号化に用いる新たな第１鍵情報を生成する第１鍵生成手段と、を有するメモリ装置との間で通信するメモリコントローラであって、
前記所定タイミングに同期させて、情報の暗復号化に用いる、前記第１鍵情報と共通の第２鍵情報を新たに生成する第２鍵生成手段と、
所定情報を記憶した前記メモリ装置に出力する情報を前記第２鍵情報に基づいて暗号化するとともに、前記メモリ装置から入力される暗号化された前記所定情報を前記第２鍵情報に基づいて復号化するデータ変換手段と、
前記第１ハードウェア鍵と共通であり、ハードウェアとして実装された固定的な第２ハードウェア鍵と、
を備え、
前記データ変換手段では、前記第２鍵生成手段によって新たな第２鍵情報が生成される度に、当該新たな第２鍵情報を前記第２鍵情報とする鍵情報の更新が行われ、
前記第２鍵生成手段は、前記メモリコントローラの起動の際に、前記第２ハードウェア鍵を用いて、前記第１初期鍵情報と共通の第２初期鍵情報を生成し、
前記新たな第２鍵情報は、前記第２初期鍵情報を構成するビット列を順次に更新させて取得され、
前記第２鍵生成手段は、
前記所定タイミングごとに、前記ビット列をシフトさせて、前記新たな第２鍵情報を生成するシフト手段を有する、メモリコントローラ。
【請求項２】
外部で生成された乱数値を取得する乱数取得手段をさらに備え、
前記第２鍵生成手段は、前記メモリコントローラの起動の際に、前記第２ハードウェア鍵と前記乱数値とを用いて前記第２初期鍵情報を生成する、請求項１に記載のメモリコントローラ。
【請求項３】
前記シフト手段は、シフトレジスタを含む、請求項１または請求項２に記載のメモリコントローラ。
【請求項４】
請求項１から請求項３のいずれかに記載のメモリコントローラを有する、メモリ制御装置。
【請求項５】
ハードウェアとして実装される第１ハードウェア鍵と、前記第１ハードウェア鍵を用いて第１初期鍵情報を生成し、所定タイミングごとに、前記第１初期鍵情報を構成するビット列を順次に更新させて、情報の暗復号化に用いる新たな第１鍵情報を生成する第１鍵生成手段と、を有するメモリコントローラとの間で通信するメモリ装置であって、
前記所定タイミングに同期して、情報の暗復号化に用いる、前記第１鍵情報と共通の第２鍵情報の生成指示を行う指示手段と、
前記生成指示に応じて、前記第２鍵情報を新たに生成する第２鍵生成手段と、
所定情報を記憶した記憶手段と、
前記所定情報のうち読出対象となった情報を前記第２鍵情報に基づいて暗号化するとともに、前記メモリコントローラから入力される暗号化された情報を前記第２鍵情報に基づいて復号化するデータ変換手段と、
前記第１ハードウェア鍵と共通であり、ハードウェアとして実装された固定的な第２ハードウェア鍵と、
を備え、
前記データ変換手段では、前記第２鍵生成手段によって新たな第２鍵情報が生成される度に、当該新たな第２鍵情報を前記第２鍵情報とする鍵情報の更新が行われ、
前記指示手段は、前記メモリコントローラからの初期化コマンドの入力に応じて前記第２鍵生成手段の初期化指示を行い、
前記第２鍵生成手段は、前記初期化指示に応じて、前記第２ハードウェア鍵を用いて、前記第１初期鍵情報と共通の第２初期鍵情報を生成し、
前記新たな第２鍵情報は、前記生成指示に応じて、前記第２初期鍵情報を構成するビット列を順次に更新させて取得され、
前記第２鍵生成手段は、
前記所定タイミングごとに、前記ビット列をシフトさせて、前記新たな第２鍵情報を生成するシフト手段を有する、メモリ装置。
【請求項６】
前記メモリ装置は、外部で生成された乱数値を取得し、
前記第２鍵生成手段は、前記初期化指示に応じて、前記第２ハードウェア鍵と前記乱数値とを用いて前記第２初期鍵情報を生成する、請求項５に記載のメモリ装置。
【請求項７】
前記シフト手段は、シフトレジスタを含む、請求項５または６に記載のメモリ装置。
【請求項８】
前記指示手段は、前記メモリコントローラからのコマンドの入力に応じて前記生成指示を行う請求項５から請求項７のいずれかに記載のメモリ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報の機密性を確保する技術に関する。
【背景技術】
【０００２】
半導体メモリ等の着脱自在のメモリ装置を情報処理装置に装着して、当該メモリ装置に記憶されたソフトウェアプログラムまたはデータ等の情報を利用して、情報処理装置において所定の機能を実現する技術が知られている。
【０００３】
このようなメモリ装置においては、メモリ装置に記憶された情報の機密性を確保するためのセキュリティ機能を搭載したものがある。例えば、特許文献１では、キーデータを利用して記憶部から出力されるデータを暗号化する方法が示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平７−２１９８５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、上記特許文献１では、暗号化された出力信号を解析することにより鍵情報が取得されると、メモリ装置に記憶された情報の機密性が失われる恐れがあった。
【０００６】
そこで、本発明は、メモリ装置に記憶された情報の機密性を高めることが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の第１の側面は、ハードウェアとして実装される第１ハードウェア鍵と、前記第１ハードウェア鍵を用いて第１初期鍵情報を生成し、所定タイミングごとに、前記第１初期鍵情報を構成するビット列を順次に更新させて、情報の暗復号化に用いる新たな第１鍵情報を生成する第１鍵生成手段と、を有するメモリ装置との間で通信するメモリコントローラであって、前記所定タイミングに同期させて、情報の暗復号化に用いる、前記第１鍵情報と共通の第２鍵情報を新たに生成する第２鍵生成手段と、所定情報を記憶した前記メモリ装置に出力する情報を前記第２鍵情報に基づいて暗号化するとともに、前記メモリ装置から入力される暗号化された前記所定情報を前記第２鍵情報に基づいて復号化するデータ変換手段と、前記第１ハードウェア鍵と共通であり、ハードウェアとして実装された固定的な第２ハードウェア鍵と、を備え、前記データ変換手段では、前記第２鍵生成手段によって新たな第２鍵情報が生成される度に、当該新たな第２鍵情報を前記第２鍵情報とする鍵情報の更新が行われ、前記第２鍵生成手段は、前記メモリコントローラの起動の際に、前記第２ハードウェア鍵を用いて、前記第１初期鍵情報と共通の第２初期鍵情報を生成し、前記新たな第２鍵情報は、前記第２初期鍵情報を構成するビット列を順次に更新させて取得され、前記第２鍵生成手段は、前記所定タイミングごとに、前記ビット列をシフトさせて、前記新たな第２鍵情報を生成するシフト手段を有する。
【０００８】
また、本発明の第２の側面は、ハードウェアとして実装される第１ハードウェア鍵と、前記第１ハードウェア鍵を用いて第１初期鍵情報を生成し、所定タイミングごとに、前記第１初期鍵情報を構成するビット列を順次に更新させて、情報の暗復号化に用いる新たな第１鍵情報を生成する第１鍵生成手段と、を有するメモリコントローラとの間で通信するメモリ装置であって、前記所定タイミングに同期して、情報の暗復号化に用いる、前記第１鍵情報と共通の第２鍵情報の生成指示を行う指示手段と、前記生成指示に応じて、前記第２鍵情報を新たに生成する第２鍵生成手段と、所定情報を記憶した記憶手段と、前記所定情報のうち読出対象となった情報を前記第２鍵情報に基づいて暗号化するとともに、前記メモリコントローラから入力される暗号化された情報を前記第２鍵情報に基づいて復号化するデータ変換手段と、前記第１ハードウェア鍵と共通であり、ハードウェアとして実装された固定的な第２ハードウェア鍵と、を備え、前記データ変換手段では、前記第２鍵生成手段によって新たな第２鍵情報が生成される度に、当該新たな第２鍵情報を前記第２鍵情報とする鍵情報の更新が行われ、前記指示手段は、前記メモリコントローラからの初期化コマンドの入力に応じて前記第２鍵生成手段の初期化指示を行い、前記第２鍵生成手段は、前記初期化指示に応じて、前記第２ハードウェア鍵を用いて、前記第１初期鍵情報と共通の第２初期鍵情報を生成し、前記新たな第２鍵情報は、前記生成指示に応じて、前記第２初期鍵情報を構成するビット列を順次に更新させて取得され、前記第２鍵生成手段は、前記所定タイミングごとに、前記ビット列をシフトさせて、前記新たな第２鍵情報を生成するシフト手段を有する。
【発明の効果】
【００１０】
本発明によれば、メモリ装置に記憶された情報の機密性を高めることが可能になる。
【図面の簡単な説明】
【００１１】
【図１】メモリ情報保護システムの外観構成を示す図である。
【図２】第１実施形態に係るメモリ情報保護システムの機能構成を示すブロック図である。
【図３】データ読み出しの際のメモリ情報保護システムの状態遷移を示す図である。
【図４】第１実施形態に係るメモリ情報保護システムの動作を示すフローチャートである。
【図５】第１実施形態に係るメモリ情報保護システムの動作を示すフローチャートである。
【図６】第２実施形態に係るメモリ情報保護システムの機能構成を示すブロック図である。
【図７】第２実施形態に係るメモリ情報保護システムの起動後の初期動作を示すフローチャートである。
【図８】変形例に係るメモリ情報保護システムの機能構成を示すブロック図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態について図面を参照して説明する。
【００１３】
＜１．第１実施形態＞
［１−１．構成概要］
図１は、メモリ情報保護システム１Ａの外観構成を示す図である。
【００１４】
図１に示されるように、メモリ情報保護システム１Ａは、情報処理装置１０Ａとメモリ装置２０とを有している。
【００１５】
メモリ装置２０は、汎用マスクＲＯＭ等のメモリコア内に、プログラムおよび／またはデータ等の情報（「記憶情報」または「格納情報」とも称する）を記憶している。当該記憶情報は、例えば、一種のコンピュータ装置である情報処理装置１０Ａで実行されるアプリケーションソフトウェアとしてのデータおよび／または、そのアプリケーションソフトウェアで使用されるデータ等である。このメモリ装置２０は、例えばカードまたはカートリッジのような態様を有し、情報処理装置１０Ａに脱着自在となっている。メモリ装置２０は、情報処理装置１０Ａに装着された状態で使用される。
【００１６】
メモリ装置２０に格納された記憶情報を利用する情報処理装置１０Ａとしては、例えば、パーソナルコンピュータ（パソコン）、ＰＤＡ（Personal Digital Assistant）のような携帯情報端末装置、または画像処理装置が含まれる。
【００１７】
このようなメモリ情報保護システム１Ａでは、暗号化されたコマンド（暗号化コマンド）が情報処理装置１０Ａからメモリ装置２０に供給されると、メモリ装置２０では、暗号化コマンドが復号化され、コマンドによって指定された処理が実行される。
【００１８】
［１−２．機能ブロック］
次に、メモリ情報保護システム１Ａの機能について詳述する。図２は、第１実施形態に係るメモリ情報保護システム１Ａの機能構成を示すブロック図である。
【００１９】
図２に示されるように、メモリ情報保護システム１Ａを構成する情報処理装置１０Ａは、全体制御部１００Ａと、メモリ制御部（メモリコントローラ）１１０Ａと、インターフェース部１２０とを備えている。
【００２０】
全体制御部１００Ａは、マイクロコンピュータとして構成され、主にＣＰＵ、ＲＡＭおよびＲＯＭ等を備える。全体制御部１００Ａは、ＲＯＭ内に格納されるプログラムを読み出し、当該プログラムをＣＰＵで実行することによって、各種機能を実現する。
【００２１】
具体的には、全体制御部１００Ａは、上述のプログラムの実行によって、コマンド生成部１０１、データ取得部１０２、およびコマンド発行検知部１０３を機能的に実現する。
【００２２】
コマンド生成部１０１は、メモリ装置２０への指令に関する命令コード、若しくは当該命令コードおよびアドレスを含むコマンドを生成する機能を有している。例えば、メモリ装置２０に格納されたデータを読み出す際には、読出命令コードと読出対象となるデータのアドレスとを含むコマンド（「読出コマンド」とも称する）がコマンド生成部１０１によって生成される。
【００２３】
データ取得部１０２は、メモリ装置２０から読み出されたデータを全体制御部１００Ａ内の記憶部（ＲＡＭ）に順次に記憶させ、読出対象とされたデータの取得が終了（完了）したか否かを判断する。
【００２４】
コマンド発行検知部１０３は、コマンド生成部１０１からのコマンドの出力を検知する機能を有し、コマンドの出力を検知した場合、後述の鍵生成部１１２に対して暗号化または復号化に用いる鍵情報（鍵データ）の生成指示を行う。すなわち、コマンド発行検知部１０３は、コマンドの出力に応じて、鍵生成部１１２に対して、鍵情報の生成指示を行う指示手段としても機能する。
【００２５】
メモリ制御部１１０Ａは、ハードウェア鍵１１１と鍵生成部（鍵生成手段）１１２とデータ変換回路（データ変換手段）１１３とを有している。
【００２６】
ハードウェア鍵１１１は、ハードウェアとしてチップ上に実装されている固定的なデータである。ハードウェア鍵１１１は、例えば、ハードウェア鍵１１１のビット長に応じた複数のインバータ（ＮＯＴ回路）を用いて、当該インバータの入力を、電源電圧（Ｖｃｃ）またはＧＮＤ（接地電位）にクランプすることによって実現することができる。なお、ハードウェア鍵１１１は、ハードウェアとして実現される固定的なデータであることから、ＣＰＵによって干渉されない鍵データであるとも表現できる。
【００２７】
鍵生成部１１２は、所定タイミングごとに演算処理を実行して、情報の暗復号化に用いる鍵情報を新たに生成する機能を有している。
【００２８】
具体的には、情報処理装置１０Ａの電源が投入されると、鍵生成部１１２は、ハードウェア鍵１１１に基づいて初期鍵情報を生成する（鍵生成部１１２の初期化）。また、鍵生成部１１２は、鍵情報を構成するビット列をシフトさせるシフト手段を有して構成され、コマンド発行検知部１０３からの鍵生成指示に応じて初期鍵情報を構成するビット列を順次にシフトさせることによって、新たな鍵情報を生成する。
【００２９】
シフト手段としては、例えば、シフトレジスタを採用することができる。シフト手段としてシフトレジスタを採用した場合、鍵生成指示を受ける度にクロックがシフトレジスタに入力されるとともに、当該クロックの入力に応じて、ハードウェア鍵１１１のビット列がシフトレジスタに順次入力されるように鍵生成部１１２を構成してもよい。
【００３０】
なお、初期鍵情報の生成には、例えば、疑似乱数生成回路を用いることができる。鍵生成部１１２が疑似乱数生成回路を有する構成とした場合、ハードウェア鍵１１１に基づいて疑似乱数生成回路で疑似乱数が生成され、生成された疑似乱数が初期鍵情報として用いられる。
【００３１】
このように、情報処理装置１０Ａにおける鍵情報の生成は、コマンド発行に同期したコマンド発行検知部１０３からの鍵生成指示に応じて実行され、新たなコマンドが発行される度に新たな鍵情報が生成されることになる。
【００３２】
データ変換回路１１３は、コマンド生成部１０１から出力されたコマンドに対して、鍵生成部１１２で生成された鍵情報を用いた所定の演算処理を施すことによって、暗号化コマンドを生成する機能を有している。データ変換回路１１３によって暗号化された暗号化コマンドは、インターフェース部１２０を介してメモリ装置２０に供給される。なお、暗号化の方式としては、例えば、ストリーム暗号方式またはブロック暗号方式を採用することができる。
【００３３】
また、データ変換回路１１３は、メモリ装置２０から与えられた暗号化データを鍵生成部１１２で生成された鍵情報を用いて復号化する機能をも有している。復号化されたデータは、データ取得部１０２に供給される。
【００３４】
情報の暗復号化を行うデータ変換回路１１３では、鍵生成部１１２で新たな鍵情報が生成される度に、当該新たな鍵情報を暗復号化に用いる鍵情報とする鍵情報の更新が行われる。
【００３５】
このようなメモリ制御部１１０Ａを備えた装置は、メモリ装置２０の動作を制御するメモリ制御装置として動作する。本実施形態では、メモリ制御部１１０Ａが情報処理装置１０Ａに備えられ、情報処理装置１０Ａがメモリ制御装置として動作する場合について例示している。
【００３６】
一方、メモリ情報保護システム１Ａを構成するメモリ装置２０は、記憶部（記憶手段）２００と、メモリ内制御部２１０と、インターフェース部２２０とを備えている。
【００３７】
記憶部２００は、マスクＲＯＭのような不揮発性メモリであって、機密保護又は不正読出からの保護対象となるプログラムおよび／またはデータ等を記憶している。なお、当該記憶部２００は、マスクＲＯＭに限定されず、フラッシュメモリ、ＥＰ−ＲＯＭまたはハードディスク（ＨＤ）等であってもよい。
【００３８】
メモリ内制御部２１０は、ハードウェア鍵２１１と、鍵生成部２１２と、データ変換回路２１３と、コマンド判別部２１４とを有している。
【００３９】
ハードウェア鍵２１１は、ハードウェアとしてチップ上に実装されている固定的なデータであり、当該ハードウェア鍵２１１は情報処理装置１０Ａのハードウェア鍵１１１と同様のデータ構成を有している。
【００４０】
鍵生成部２１２は、情報処理装置１０Ａの鍵生成部１１２と同様に、所定タイミングごとに演算処理を実行して、暗復号化に用いる鍵情報を新たに生成する機能を有している。具体的には、情報処理装置１０Ａの電源投入後に情報処理装置１０Ａから発行される初期化コマンドを検出すると、鍵生成部２１２は、ハードウェア鍵２１１に基づいて初期鍵情報を生成する（鍵生成部２１２の初期化）。また、鍵生成部２１２は、鍵情報を構成するビット列をシフトさせるシフト手段（例えば、シフトレジスタ）を有して構成され、コマンド判別部２１４からの鍵生成指示に応じて初期鍵情報を順次にシフトさせることによって、新たな鍵情報を生成する。
【００４１】
データ変換回路２１３は、インターフェース部２２０を介して受信した暗号化コマンドに対して、鍵生成部２１２で生成された鍵情報を用いた所定の演算処理を施すことによって、暗号化コマンドを復号化する機能を有している。データ変換回路２１３によって復号化されたコマンドは、コマンド判別部２１４に供給される。
【００４２】
また、データ変換回路２１３は、記憶部２００から読み出されたデータを鍵生成部２１２で生成された鍵情報を利用して暗号化し、暗号化データを生成する機能も有している。データ変換回路２１３で暗号化された暗号化データは、インターフェース部２２０を介して情報処理装置１０Ａに供給される。
【００４３】
情報の暗復号化を行うデータ変換回路２１３では、鍵生成部２１２で新たな鍵情報が生成される度に、当該新たな鍵情報を暗復号化に用いる鍵情報とする鍵情報の更新が行われる。
【００４４】
コマンド判別部２１４は、復号化されたコマンドを判別して、当該コマンドに応じた所定動作の実行指示を行う。例えば、データ変換回路２１３によって復号化された情報処理装置１０Ａからのコマンドが、記憶部２００からのデータの読出コマンドである場合は、当該読出コマンドから読出命令コードと読出アドレスデータとを抽出して、読出信号と読出アドレスデータとを記憶部２００に与える。
【００４５】
また、コマンド判別部２１４は、コマンドの入力に応じて、鍵生成部２１２に対して鍵情報の生成指示を行う指示手段としても機能する。
【００４６】
このように、メモリ装置２０における鍵情報の生成は、コマンドの受信に同期したコマンド判別部２１４からの鍵生成指示に応じて実行され、メモリ装置２０では新たなコマンドを受ける度に鍵情報が更新されることになる。
【００４７】
上述のように、情報処理装置１０Ａとメモリ装置２０とを有するメモリ情報保護システム１Ａでは、情報処理装置１０Ａとメモリ装置２０との間で行われるコマンドまたはデータ等の情報（「通信情報」とも称する）の通信は、暗号化されて行われる。そして、暗号化および／または復号化に用いられる鍵情報は、情報処理装置１０Ａとメモリ装置２０との間で所定タイミングで同期させた状態で随時更新される。
【００４８】
具体的には、メモリ装置２０に格納されたデータを読み出す場合を例にして説明する。図３は、データ読み出しの際のメモリ情報保護システム１Ａの状態遷移を示す図である。
【００４９】
図３に示されるように、情報処理装置１０Ａから鍵情報Ｋ１に基づいて暗号化された読出コマンドが発行される（状態ｓｔ１）と、情報処理装置１０Ａおよびメモリ装置２０それぞれにおいて新たな鍵情報Ｋ２が生成される（状態ｓｔ２）。
【００５０】
読出コマンドに応じた読出データＤ１を転送する際には、メモリ装置２０において当該読出データＤ１が新たな鍵情報Ｋ２に基づいて暗号化され、暗号化された読出データが情報処理装置１０Ａへと転送される（状態ｓｔ３）。情報処理装置１０Ａでは、暗号化された読出データの復号化が鍵情報Ｋ２を用いて行われ、読出データが受信される。データの読み出しは、指定したデータ長さのデータ読み出しが終了するまで行われ、指定した長さの読出データＤ１が読み出された場合は、読出完了となる（状態ｓｔ４）。
【００５１】
メモリ装置２０からデータの読み出しをさらに行う場合は、情報処理装置１０Ａにおいて鍵情報Ｋ２を用いて読出コマンドが暗号化され、暗号化された読出コマンドが再び発行される（状態ｓｔ５）。読出コマンドが発行されると、情報処理装置１０Ａおよびメモリ装置２０それぞれにおいて新たな鍵情報Ｋ３が生成される（状態ｓｔ６）。
【００５２】
そして、読出コマンドに応じた読出データＤ２を転送する際には、メモリ装置２０において当該読出データＤ２が新たな鍵情報Ｋ３に基づいて暗号化され、暗号化された読出データが情報処理装置１０Ａへと転送される（状態ｓｔ７）。情報処理装置１０Ａでは、暗号化された読出データの復号化が鍵情報Ｋ３を用いて行われ、読出データが受信される。
【００５３】
このように、情報処理装置１０Ａとメモリ装置２０とは、それぞれ共通の鍵生成部１１２，２１２と共通のハードウェア鍵１１１，２１１とを有し、所定タイミングごとに同期した状態で互いに共通の鍵情報をそれぞれ新たに生成する。そして、情報処理装置１０Ａとメモリ装置２０とは、互いに共通したデータ変換回路１１３，２１３において、新たに生成された鍵情報を用いて、通信情報を暗復号化するための鍵情報を更新する更新動作を行う。
【００５４】
これによれば、情報処理装置１０Ａとメモリ装置２０との間で、所定タイミングごとに更新される共通の鍵情報を用いて暗復号化を行うことが可能になるので、メモリ装置２０に記憶された記憶情報の機密性を高めることが可能になる。例えば、或る周期の鍵情報が解読され、記憶情報に含まれるコンテンツの一部が取得されたとしても、コンテンツ全体の情報が取得される可能性を低減させることができる。
【００５５】
また、メモリ情報保護システム１Ａにおいては、鍵情報は、情報処理装置１０Ａおよびメモリ装置２０それぞれにおいて独自に生成され、鍵情報の交換が情報処理装置１０Ａとメモリ装置２０との間で行われないので、鍵情報の機密性がより確保されることになる。
【００５６】
また、メモリ情報保護システム１Ａでは、鍵情報がハードウェアで構成された鍵生成部１１２，２１２とハードウェア鍵１１１，２１１とを用いて生成され、鍵情報の生成にＣＰＵが関与しない。これによれば、ＣＰＵで実行されるプログラムを解析して鍵情報を特定することが不可能になるので、鍵情報の機密性をより確保することが可能になる。
【００５７】
なお、上記では、鍵生成部１１２，２１２がシフト手段を有し、当該シフト手段で鍵情報をシフトさせて新たな鍵情報を生成する場合について例示したが、これに限定されない。具体的には、鍵生成部１１２，２１２は、暗号化回路を有し、ストリーム暗号方式またはブロック暗号方式で暗号化を行い、ハードウェア鍵１１１，２１１に基づいて新たな鍵情報を生成する構成としてもよい。
【００５８】
このような構成を採用した場合、鍵生成部１１２，２１２およびデータ変換回路１１３，２１３で実行される一連の処理では、鍵生成部１１２，２１２は、ハードウェア鍵１１１，２１１に対して第１段階の暗号化処理を行って鍵情報を生成し、データ変換回路１１３，２１３は、鍵情報を用いてコマンドを暗号化する第２段階の暗号化処理を行っているとも表現することができる。
【００５９】
［１−３．メモリ情報保護システム１Ａの動作］
メモリ情報保護システム１Ａの動作について説明する。図４および図５は、メモリ情報保護システム１Ａの動作を示すフローチャートである。図４および図５では、左側に情報処理装置１０Ａの動作を示すフローチャート、右側にメモリ装置２０の動作を示すフローチャートがそれぞれ示されている。なお、メモリ装置２０は、ＣＰＵのような処理手段を含むものではなく、ハードウェアとしての回路による動作であるが、ここでは、情報処理装置１０Ａの動作の流れに対応させて便宜的にフローで示すものとする。
【００６０】
メモリ情報保護システム１Ａの動作開始前には、メモリ装置２０が情報処理装置１０Ａに装着されて、それぞれのインターフェース部１２０，２２０が電気的に接続される。そして、情報処理装置１０Ａの電源投入に応じて、情報処理装置１０Ａが起動されるとともに、電源がメモリ装置２０に供給されて、システムとしての動作が開始される。
【００６１】
図４に示されるように、情報処理装置１０Ａでは、電源が投入されると、ステップＳＰ１０１において、鍵生成部１１２の初期化が行われる。鍵生成部１１２の初期化では、ハードウェア鍵１１１に基づいて初期鍵情報が生成される。
【００６２】
ステップＳＰ１０２では、初期鍵情報を用いてデータ変換回路１１３の初期化が行われる。
【００６３】
ステップＳＰ１０３では、コマンド生成部１０１によって初期化コマンドが生成され、メモリ装置２０に対して初期化コマンドが発行される。そして、初期化コマンド発行後、データ変換回路１１３において暗復号化機能が有効と（ＯＮ）される。これにより、データ変換回路１１３では、初期鍵情報を用いたデータの暗復号化を行うことが可能になる。
【００６４】
一方、メモリ装置２０では、電源供給が開始されると、ステップＳＰ２０１において、コマンド判別部２１４によって、初期化コマンドの入力の有無が判定される。コマンド判別部２１４は、初期化コマンドの入力を検出すると、鍵生成部２１２に対して初期化指示を行う。
【００６５】
ステップＳＰ２０２では、コマンド判別部２１４からの初期化指示に応じて鍵生成部２１２の初期化が行われ、ハードウェア鍵２１１に基づいて初期鍵情報が生成される。
【００６６】
ステップＳＰ２０３では、初期鍵情報を用いてデータ変換回路２１３の初期化が行われる。これにより、データ変換回路２１３では、初期鍵情報を用いたデータの暗復号化を行うことが可能になる。
【００６７】
次に、情報処理装置１０Ａにおいて、ステップＳＰ１０４では、情報処理装置１０Ａの電源がオフされたか否かが判定され、情報処理装置１０Ａの電源がオフされた場合は、情報処理装置１０Ａの動作は終了する。情報処理装置１０Ａの電源がオンであった場合は、動作工程はステップＳＰ１０５に移行される。
【００６８】
ステップＳＰ１０５（図５参照）では、コマンド生成部１０１によって、メモリ装置２０へのコマンドが生成される。
【００６９】
ステップＳＰ１０６では、コマンド生成部１０１で生成されたコマンドがデータ変換回路１１３に入力され、データ変換回路１１３では、初期鍵情報を用いてコマンドの暗号化が行われる。なお、繰り返し処理によりステップＳＰ１０６が再度実行されるときは、新たな鍵情報を用いてコマンドが暗号化される。
【００７０】
ステップＳＰ１０７では、データ変換回路１１３で暗号化された暗号化コマンドがインターフェース部１２０を介してメモリ装置２０へと発行される。
【００７１】
また、コマンド発行検知部１０３によってコマンド生成部１０１からのコマンドの出力が検知されると、コマンド発行検知部１０３は、鍵生成部１１２に対して鍵情報の生成指示を行う。これにより、ステップＳＰ１０８では、鍵生成部１１２によって新たな鍵情報が生成され、データ変換回路１１３において鍵情報の更新が行われる。
【００７２】
一方、メモリ装置２０では、ステップＳＰ２０４において暗号化コマンドが入力されると、動作工程は、ステップＳＰ２０５に移行される。
【００７３】
ステップＳＰ２０５では、初期鍵情報を用いて暗号化コマンドの復号化が行われる。
【００７４】
復号化されたコマンドが、コマンド判別部２１４に入力されると、コマンド判別部２１４は、鍵情報の生成指示を鍵生成部２１２に対して行う。これにより、ステップＳＰ２０６では、鍵生成部２１２によって新たな鍵情報が生成され、データ変換回路２１３において鍵情報の更新が行われる。
【００７５】
また、ステップＳＰ２０７では、コマンド判別部２１４によって、情報処理装置１０Ａからのコマンドが読出コマンドであるか否かが判定される。情報処理装置１０Ａから入力されたコマンドが読出コマンドでなかった場合は、動作工程はステップＳＰ２０８に移行され、入力されたコマンドに基づいた読出処理以外の他の処理が実行される。
【００７６】
情報処理装置１０Ａから入力されたコマンドが読出コマンドであった場合は、ステップＳＰ２０９に移行され、データの読出処理（ステップＳＰ２０９〜ステップＳＰ２１１）が実行される。
【００７７】
具体的には、ステップＳＰ２０９では、読出信号と読出アドレスデータとが記憶部２００に与えられ、記憶部２００から指定された読出アドレスに記憶されているデータが読み出される。そして、ステップＳＰ２１０では、読み出されたデータが、データ変換回路２１３によって新たな鍵情報を用いて暗号化される。ステップＳＰ２１１では、暗号化された読出データが、インターフェース部２２０を介して情報処理装置１０Ａへと出力される。
【００７８】
情報処理装置１０Ａでは、ステップＳＰ１０８において鍵情報の更新が行われた後、動作工程は、ステップＳＰ１０９へ移行される。
【００７９】
ステップＳＰ１０９では、ステップＳＰ１０５で読出コマンドが生成されたか否かが判定され、読出コマンドが生成されていなかった場合は、ステップＳＰ１０４に移行され、コマンド生成処理等が再度実行される。一方、読出コマンドが生成されていた場合は、ステップＳＰ１１０に移行され、メモリ装置２０からの読出データの受信処理が行われる。
【００８０】
具体的には、ステップＳＰ１１０では、メモリ装置２０から読出データが入力されると、ステップＳＰ１０８で生成済みの新たな鍵情報を用いた読出データの復号化がデータ変換回路１１３によって行われる。
【００８１】
ステップＳＰ１１１では、データ取得部１０２によって、読出データがＲＡＭに記憶される。
【００８２】
ステップＳＰ１１２では、データ取得部１０２によって、指定したデータ長のデータ取得が終了したか否かが判定される。読出データの取得が終了していない場合は、指定したデータ長のデータ取得が終了するまで、ステップＳＰ１１０〜ステップＳＰ１１２の処理が繰り返し実行される。指定したデータ長のデータ取得が終了した場合は、ステップＳＰ１０４に移行され、必要に応じて新たなコマンドが生成され、当該新たなコマンドに応じた動作が実行される。
【００８３】
以上のように、メモリ情報保護システム１Ａは、所定情報を記憶したメモリ装置２０と、メモリ装置２０に対応したメモリ制御装置１０Ａとを備えている。そして、メモリ制御装置１０Ａは、所定タイミングごとに、情報の暗復号化に用いる第１鍵情報を新たに生成する鍵生成部１１２と、メモリ装置２０に出力する情報を第１鍵情報に基づいて暗号化するとともに、メモリ装置２０から入力される暗号化された情報を第１鍵情報に基づいて復号化するデータ変換回路１１３とを有し、データ変換回路１１３では、鍵生成部１１２によって新たな第１鍵情報が生成される度に、当該新たな第１鍵情報を鍵情報とする鍵情報の更新が行われる。一方、メモリ装置２０は、上記所定タイミングに同期させて、第１鍵情報と同じ第２鍵情報を新たに生成する鍵生成部２１２と、所定情報を記憶した記憶部２００と、所定情報のうち読出対象となった情報を第２鍵情報に基づいて暗号化するとともに、メモリ制御装置１０Ａから入力される暗号化された情報を第２鍵情報に基づいて復号化するデータ変換回路２１３とを有し、データ変換回路２１３では、鍵生成部２１２によって新たな第２鍵情報が生成される度に、当該新たな第２鍵情報を鍵情報とする鍵情報の更新が行われる。
【００８４】
このようなメモリ情報保護システム１Ａによれば、メモリ制御装置１０Ａおよびメモリ装置２０においては、所定タイミングごとに更新される共通の鍵情報を用いて暗復号化を行うことが可能になるので、メモリ装置２０に記憶された所定情報の機密性を高めることが可能になる。
【００８５】
＜２．第２実施形態＞
次に、本発明の第２実施形態について説明する。上記第２実施形態に係るメモリ情報保護システム１Ｂは、乱数生成部を備えている点以外は、メモリ情報保護システム１Ａとほぼ同様の構造および機能を有しており、共通する部分については同じ符号を付して説明を省略する。図６は、第２実施形態に係るメモリ情報保護システム１Ｂの機能構成を示すブロック図である。
【００８６】
図６に示されるように、メモリ情報保護システム１Ｂの情報処理装置１０Ｂは、全体制御部１００Ｂと、第１実施形態と同様のメモリ制御部１１０Ｂと、第１実施形態と同様のインターフェース部１２０とを備えている。
【００８７】
全体制御部１００Ｂは、主にＣＰＵ、ＲＡＭおよびＲＯＭ等を備え、コマンド生成部１０１、データ取得部１０２、およびコマンド発行検知部１０３の他に、乱数生成部１０４と制御レジスタ部１０５とを機能的にさらに実現する。
【００８８】
乱数生成部１０４は、情報処理装置１０Ｂの起動の際に、疑似乱数生成アルゴリズムに基づいて乱数値を生成する機能を有している。
【００８９】
乱数生成部１０４で生成された乱数値はコマンド生成部１０１に送信される。乱数値を取得したコマンド生成部１０１は、乱数値を含むコマンド（「乱数格納コマンド」とも称する）を生成する。また、乱数生成部１０４で生成された乱数値は、制御レジスタ部１０５を介して鍵生成部１１２に送信される。
【００９０】
メモリ制御部１１０Ｂの鍵生成部１１２は、メモリ制御部１１０Ｂからは外部にあたる全体制御部１００Ｂから乱数値を取得する取得機能（乱数取得手段）を有し、初期化の際に、ハードウェア鍵１１１と乱数値とに基づいて初期鍵情報を生成する。
【００９１】
ここで、メモリ情報保護システム１Ｂの動作について説明する。図７は、メモリ情報保護システム１Ｂの起動後の初期動作を示すフローチャートである。図７では、左側に情報処理装置１０Ｂの動作を示すフローチャート、右側にメモリ装置２０の動作を示すフローチャートがそれぞれ示されている。
【００９２】
メモリ装置２０が情報処理装置１０Ｂに装着され、情報処理装置１０Ｂに電源が投入されると、システムとしての動作が開始される。
【００９３】
具体的には、図７に示されるように、情報処理装置１０Ｂでは、ステップＳＰ５１において、乱数生成部１０４によって乱数値が生成される。
【００９４】
次のステップＳＰ５２では、コマンド生成部１０１によって、乱数値を含む乱数格納コマンドが生成され、メモリ装置２０に対して乱数格納コマンドが発行される。
【００９５】
そして、ステップＳＰ１０１では、鍵生成部１１２の初期化が行われ、ハードウェア鍵１１１と乱数値とに基づいて初期鍵情報が生成される。
【００９６】
ステップＳＰ１０２では、初期鍵情報を用いてデータ変換回路１１３の初期化が行われる。
【００９７】
ステップＳＰ１０３では、コマンド生成部１０１によって初期化コマンドが生成され、メモリ装置２０に対して初期化コマンドが発行される。そして、初期化コマンド発行後、データ変換回路１１３において暗復号化機能が有効と（ＯＮ）される。これにより、データ変換回路１１３では、初期鍵情報を用いたデータの暗復号化を行うことが可能になる。
【００９８】
一方、メモリ装置２０では、電源供給スタート後、ステップＳＰ６１において、コマンド判別部２１４によって、乱数格納コマンドの入力の有無が判定される。コマンド判別部２１４によって乱数格納コマンドが入力されたと判定されると、動作工程は、ステップＳＰ６２に移行される。
【００９９】
ステップＳＰ６２では、コマンド判別部２１４によって乱数格納コマンドから乱数値が抽出され、当該乱数値が鍵生成部２１２に送信される。
【０１００】
次のステップＳＰ２０１では、コマンド判別部２１４によって、初期化コマンドの入力の有無が判定される。コマンド判別部２１４によって初期化コマンドが入力されたと判定されると、動作工程は、ステップＳＰ２０２に移行される。
【０１０１】
ステップＳＰ２０２では、鍵生成部２１２の初期化が行われ、ハードウェア鍵２１１と乱数値とに基づいて初期鍵情報が生成される。
【０１０２】
ステップＳＰ２０３では、初期鍵情報を用いてデータ変換回路２１３の初期化が行われる。これにより、データ変換回路２１３では、初期鍵情報を用いたデータの暗号化または復号化を行うことが可能になる。
【０１０３】
情報処理装置１０Ｂおよびメモリ装置２０においては、上述の初期動作終了後は、第１実施形態の情報処理装置１０Ａおよびメモリ装置２０それぞれの動作（図５参照）と同様の動作が実行される。
【０１０４】
以上のように、メモリ情報保護システム１Ｂでは、情報処理装置１０Ｂおよびメモリ装置２０それぞれにおいて、最初の初期鍵情報が共通の乱数値に基づいて生成される。これによれば、起動の度に同じ初期鍵情報が生成されることを回避できるので、第三者によるハードウェア鍵１１１，２１１の特定をより困難にすることができる。
【０１０５】
なお、鍵生成部１１２，２１２が暗号化回路を有し、ストリーム暗号方式またはブロック暗号方式で暗号化を行って、鍵情報を生成する構成の場合、鍵生成部１１２，２１２では、当該暗号化によりハードウェア鍵１１１と乱数値とに基づいて新たな鍵情報が生成されることになる。
【０１０６】
＜３．変形例＞
以上、この発明の実施の形態について説明したが、この発明は、上記に説明した内容に限定されるものではない。
【０１０７】
例えば、上記各実施形態では、情報処理装置１０Ａ，１０Ｂとメモリ装置２０とにおいて、鍵生成のためのハードウェア構成が共通している場合について例示したが、これに限定されない。具体的には、共通の鍵情報を生成可能であれば、情報処理装置１０Ａ，１０Ｂとメモリ装置２０とにおける鍵生成のためのハードウェア構成は異なっていてもよい。
【０１０８】
また、上記各実施形態では、情報処理装置１０Ａ，１０Ｂおよびメモリ装置２０それぞれが、ハードウェア鍵１１１，２１１を一つずつ有している場合について例示したが、これに限定されない。具体的には、ハードウェア鍵を複数有していてもよい。図８は、変形例に係るメモリ情報保護システム１Ｈの機能構成を示すブロック図である。
【０１０９】
例えば、図８に示されるように、メモリ情報保護システム１Ｈのメモリ制御部１１０Ｈは、第１ハードウェア鍵１５１と第２ハードウェア鍵１５２と鍵生成部１１２Ｈとデータ変換回路１１３Ｈとを有している。
【０１１０】
鍵生成部１１２Ｈでは、初期化の際に第２ハードウェア鍵１５２に基づいて初期鍵情報が生成される。また、初期鍵情報生成後は、鍵生成指示に応じて初期鍵情報を順次にシフトさせることによって、新たな鍵情報が生成される。
【０１１１】
データ変換回路１１３Ｈでは、第１ハードウェア鍵１５１と鍵生成部１１２で生成された鍵情報とに基づいてデータ変換回路１１３Ｈの初期化が行われ、暗復号化に用いる鍵情報の更新が行われる。
【０１１２】
また、メモリ情報保護システム１Ｈのメモリ内制御部２１０Ｈも、第１ハードウェア鍵１５３と第２ハードウェア鍵１５４と鍵生成部２１２Ｈとデータ変換回路２１３Ｈとを有している。
【０１１３】
鍵生成部２１２Ｈでは、初期化の際に第２ハードウェア鍵１５４に基づいて初期鍵情報が生成される。また、初期鍵情報生成後は、鍵生成指示に応じて初期鍵情報を順次にシフトさせることによって、新たな鍵情報が生成される。
【０１１４】
データ変換回路２１３Ｈでは、第１ハードウェア鍵１５３と鍵生成部２１２Ｈで生成された鍵情報とに基づいてデータ変換回路２１３Ｈの初期化が行われ、暗復号化に用いる鍵情報の更新が行われる。
【０１１５】
このように、メモリ情報保護システム１Ｈにおける情報処理装置１０Ｈおよびメモリ装置２０Ｈそれぞれでは、２つのハードウェア鍵を用いて暗復号化に用いる鍵情報が生成される。これによれば、第三者によるハードウェア鍵の特定をより困難にすることができる。
【０１１６】
また、上記第２実施形態の乱数生成部１０４では、コンピュータのアルゴリズムで発生させた擬似乱数を乱数値として用いていたがこれに限定されず、物理現象などに基づいて発生させた真性乱数を乱数値として用いてもよい。
【符号の説明】
【０１１７】
１Ａ，１Ｂ，１Ｈ  メモリ情報保護システム
１０Ａ，１０Ｂ，１０Ｈ  情報処理装置
２０，２０Ｈ  メモリ装置
１００Ａ，１００Ｂ  全体制御部
１０１  コマンド生成部
１０２  データ取得部
１０３  コマンド発行検知部
１０４  乱数生成部
１０５  制御レジスタ部
１１０Ａ，１１０Ｂ，１１０Ｈ  メモリ制御部
１１１，２１１  ハードウェア鍵
１１２，２１２，１１２Ｈ，２１２Ｈ  鍵生成部
１１３，２１３，１１３Ｈ，２１３Ｈ  データ変換回路
１２０，２２０  インターフェース部
２００  記憶部
２１０，２１０Ｈ  メモリ内制御部
２１４  コマンド判別部
Ｄ１，Ｄ２  読出データ
Ｋ１，Ｋ２，Ｋ３  鍵情報
【図１】
0005564194.tif 000002
【図２】
0005564194.tif 000003
【図３】
0005564194.tif 000004
【図４】
0005564194.tif 000005
【図５】
0005564194.tif 000006
【図６】
0005564194.tif 000007
【図７】
0005564194.tif 000008
【図８】
0005564194.tif 000009