(57)【特許請求の範囲】
【請求項１】
データが格納されているメモリコアへのアクセスを制御するメモリ制御装置であって、
外部装置からのコマンド入力に基づいて、信号の送受信方法が互いに相違する複数の通信プロトコルの中から特定の通信プロトコルを選択する通信プロトコル選択部と、
前記通信プロトコル選択部により選択された前記特定の通信プロトコルに準拠して、前記外部装置からの読み出しの要求に基づきメモリコアから読み出されたデータを、前記外部装置に対して送信するデータ送信部と、
暗号化方法が互いに相違する複数の暗号処理部と、
前記複数の暗号処理部のうち、前記通信プロトコル選択部により選択された前記特定の通信プロトコルに対応した特定の暗号処理部を選択する暗号処理選択部と、
を備え、
前記データ送信部は、
前記暗号処理選択部により選択されている前記特定の暗号処理部が暗号化したデータを、前記外部装置に送信し、
前記複数の通信プロトコルには、
前記特定の暗号処理部が、暗号化したデータを前記データ送信部に対して出力可能になってから、前記外部装置に対して送信を開始する通信プロトコルが含まれることを特徴とするメモリ制御装置。
【請求項２】
請求項１に記載のメモリ制御装置において、
前記データ送信部は、
前記外部装置の要求に応じてメモリコアから読み出された読み出しデータに、特定の通信プロトコルを指定する指定情報が付加されたデータを前記外部装置に送信し、
前記通信プロトコル選択部は、
前記指定情報に基づき前記外部装置が発行するコマンドに応じて、前記特定の通信プロトコルを選択することを特徴とするメモリ制御装置。
【請求項３】
半導体メモリ装置であって、
外部装置において処理されるデータが格納されているメモリコアと、
外部装置からのコマンド入力に基づいて、信号の送受信方法が互いに相違する複数の通信プロトコルの中から特定の通信プロトコルを選択する通信プロトコル選択部と、
前記通信プロトコル選択部により選択された前記特定の通信プロトコルに準拠して、前記外部装置からの読み出しの要求に基づきメモリコアから読み出されたデータを、前記外部装置に対して送信するデータ送信部と、
暗号化方法が互いに相違する複数の暗号処理部と、
前記複数の暗号処理部のうち、前記通信プロトコル選択部により選択された前記特定の通信プロトコルに対応した特定の暗号処理部を選択する暗号処理選択部と、
を備え、
前記データ送信部は、
前記暗号処理選択部により選択されている前記特定の暗号処理部が暗号化したデータを、前記外部装置に送信し、
前記複数の通信プロトコルには、
前記特定の暗号処理部が、暗号化したデータを前記データ送信部に対して出力可能になってから、前記外部装置に対して送信を開始する通信プロトコルが含まれることを特徴とする半導体メモリ装置。
【請求項４】
情報処理装置と半導体メモリ装置とを備えるメモリシステムであって、
前記半導体メモリ装置は、
外部装置において処理されるデータが格納されているメモリコアと、
外部装置からのコマンド入力に基づいて、信号の送受信方法が互いに相違する複数の通信プロトコルの中から特定の通信プロトコルを選択する通信プロトコル選択部と、
前記通信プロトコル選択部により選択された前記特定の通信プロトコルに準拠して、前記外部装置からの読み出しの要求に基づきメモリコアから読み出されたデータを、前記外部装置に対して送信するデータ送信部と、
暗号化方法が互いに相違する複数の暗号処理部と、
前記複数の暗号処理部のうち、前記通信プロトコル選択部により選択された前記特定の通信プロトコルに対応した特定の暗号処理部を選択する暗号処理選択部と、
を含み、
前記データ送信部は、
前記暗号処理選択部により選択されている前記特定の暗号処理部が暗号化したデータを、前記外部装置に送信し、
前記複数の通信プロトコルには、
前記特定の暗号処理部が、暗号化したデータを前記データ送信部に対して出力可能になってから、前記外部装置に対して送信を開始する通信プロトコルが含まれることを特徴とするメモリシステム。
【請求項５】
請求項４に記載のメモリシステムにおいて、
前記情報処理装置は、
前記半導体メモリ装置に対して、前記複数の通信プロトコルの中から特定の通信プロトコルを指定するコマンドを生成するコマンド生成部と、
前記半導体メモリ装置との間で、前記複数の通信プロトコルのいずれかに準拠したデータ通信を実行する通信部と、を備え、
前記通信プロトコル選択部は、前記コマンド生成部が生成したコマンドに基づいて、特定の通信プロトコルを選択することを特徴とするメモリシステム。
【請求項６】
データが格納されているメモリコアへのアクセスを制御するメモリ制御方法であって、
(a) 外部装置からのコマンド入力に基づいて、信号の送受信方法が互いに相違する複数の通信プロトコルの中から特定の通信プロトコルを選択する工程と、
(b) 前記(a)工程にて選択された前記特定の通信プロトコルに準拠して、前記外部装置からの読み出しの要求に基づきメモリコアから読み出されたデータを、データ送信部によって前記外部装置に対して送信する工程と、
(c) 暗号化方法が互いに相違する複数の暗号処理部の中から、前記(a)工程で選択された前記特定の通信プロトコルに対応した特定の暗号処理部で、前記メモリコアから読み出されたデータを暗号化する工程と、
を含み、
前記(b)工程は、前記(c)工程にて暗号化されたデータを、前記外部装置に送信する工程であり、
前記複数の通信プロトコルには、
前記特定の暗号処理部が、暗号化したデータを前記データ送信部に対して出力可能になってから、前記外部装置に対して送信を開始する通信プロトコルが含まれることを特徴とするメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリコアに対する不正なアクセスを抑制するセキュリティ技術に関する。
【背景技術】
【０００２】
従来より、情報処理装置と、データを記憶した半導体メモリとを備えるメモリシステムが知られている。例えば、情報処理装置としてのコンピュータと、フラッシュメモリ等とで、メモリシステムが構築される。
【０００３】
従来のメモリシステムでは、不正業者等によるデータの不正コピーを防止するため、何らかのセキュリティ機能が半導体メモリ装置に採用されている（例えば特許文献１）。
【０００４】
特許文献１には、半導体メモリ装置に対して入力されるアドレス情報または半導体メモリ装置から出力されるデータを、論理回路によって暗号化することにより、データの機密保護を図る技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平７−２１９８５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来のメモリシステムにおいて、データの安全性をさらに向上させるには、暗号化の強度をさらに上げることが考えられる。しかしながら、暗号強度を上げると、データの処理速度や転送効率が低下するなどの弊害が生じるおそれがある。そこで、暗号化以外の方法によって、データの安全性を向上させる技術が求められている。
【０００７】
本発明は、上記課題に鑑みなされたものであり、データの安全性を向上させる技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記の課題を解決するため、第１の態様は、データが格納されているメモリコアへのアクセスを制御するメモリ制御装置であって、外部装置からのコマンド入力に基づいて、信号の送受信方法が互いに相違する複数の通信プロトコルの中から特定の通信プロトコルを選択する通信プロトコル選択部と、前記通信プロトコル選択部により選択された前記特定の通信プロトコルに準拠して、前記外部装置からの読み出しの要求に基づきメモリコアから読み出されたデータを、前記外部装置に対して送信するデータ送信部と、暗号化方法が互いに相違する複数の暗号処理部と、前記複数の暗号処理部のうち、前記通信プロトコルにより選択された前記特定の通信プロトコルに対応した特定の暗号処理部を選択する暗号処理選択部と、を備え、前記データ送信部は、前記暗号処理選択部により選択されている前記特定の暗号処理部が暗号化したデータを、前記外部装置に送信し、前記複数の通信プロトコルには、前記特定の暗号処理部が、暗号化したデータを前記データ送信部に対して出力可能になってから、前記外部装置に対して送信を開始する通信プロトコルが含まれることを特徴とする。
【００１１】
また、第２の態様は、第１の態様に係るメモリ制御装置において、前記データ送信部は、前記外部装置の要求に応じてメモリコアから読み出された読み出しデータに、特定の通信プロトコルを指定する指定情報が付加されたデータを前記外部装置に送信し、前記通信プロトコル選択部は、前記指定情報に基づき前記外部装置が発行するコマンドに応じて、前記特定の通信プロトコルを選択することを特徴とする。
【００１２】
また、第３の態様は、半導体メモリ装置であって、外部装置において処理されるデータが格納されているメモリコアと、外部装置からのコマンド入力に基づいて、信号の送受信方法が互いに相違する複数の通信プロトコルの中から特定の通信プロトコルを選択する通信プロトコル選択部と、前記通信プロトコル選択部により選択された前記特定の通信プロトコルに準拠して、前記外部装置からの読み出しの要求に基づきメモリコアから読み出されたデータを、前記外部装置に対して送信するデータ送信部と、暗号化方法が互いに相違する複数の暗号処理部と、前記複数の暗号処理部のうち、前記通信プロトコルにより選択された前記特定の通信プロトコルに対応した特定の暗号処理部を選択する暗号処理選択部と、を備え、前記データ送信部は、前記暗号処理選択部により選択されている前記特定の暗号処理部が暗号化したデータを、前記外部装置に送信し、前記複数の通信プロトコルには、前記特定の暗号処理部が、暗号化したデータを前記データ送信部に対して出力可能になってから、前記外部装置に対して送信を開始する通信プロトコルが含まれることを特徴とする。
【００１３】
また、第４の態様は、情報処理装置と半導体メモリ装置とを備えるメモリシステムであって、前記半導体メモリ装置は、外部装置において処理されるデータが格納されているメモリコアと、外部装置からのコマンド入力に基づいて、信号の送受信方法が互いに相違する複数の通信プロトコルの中から特定の通信プロトコルを選択する通信プロトコル選択部と、前記通信プロトコル選択部により選択された前記特定の通信プロトコルに準拠して、前記外部装置からの読み出しの要求に基づきメモリコアから読み出されたデータを、前記外部装置に対して送信するデータ送信部と、暗号化方法が互いに相違する複数の暗号処理部と、前記複数の暗号処理部のうち、前記通信プロトコルにより選択された前記特定の通信プロトコルに対応した特定の暗号処理部を選択する暗号処理選択部と、を含み、前記データ送信部は、前記暗号処理選択部により選択されている前記特定の暗号処理部が暗号化したデータを、前記外部装置に送信し、前記複数の通信プロトコルには、前記特定の暗号処理部が、暗号化したデータを前記データ送信部に対して出力可能になってから、前記外部装置に対して送信を開始する通信プロトコルが含まれることを特徴とする。
【００１４】
また、第５の態様は、第４の態様に係るメモリシステムにおいて、前記情報処理装置は、前記半導体メモリ装置に対して、前記複数の通信プロトコルの中から特定の通信プロトコルを指定するコマンドを生成するコマンド生成部と、前記半導体メモリ装置との間で、前記複数の通信プロトコルのいずれかに準拠したデータ通信を実行する通信部とを備え、前記通信プロトコル選択部は、前記コマンド生成部が生成したコマンドに基づいて、特定の通信プロトコルを選択することを特徴とする。
【００１５】
また、第６の態様は、データが格納されているメモリコアへのアクセスを制御するメモリ制御方法であって、(a)外部装置からのコマンド入力に基づいて、信号の送受信方法が互いに相違する複数の通信プロトコルの中から特定の通信プロトコルを選択する工程と、(b)前記(a)工程にて選択された前記特定の通信プロトコルに準拠して、前記外部装置からの読み出しの要求に基づきメモリコアから読み出されたデータを、データ送信部によって前記外部装置に対して送信する工程と、(c)暗号化方法が互いに相違する複数の暗号化方部の中から、前記(a)工程で選択された前記特定の通信プロトコルに対応した特定の暗号処理部で、前記メモリコアから読み出されたデータを暗号化する工程と、を含み、前記(b)工程は、前記(c)工程にて暗号化されたデータを、前記外部装置に送信する工程であり、前記複数の通信プロトコルには、前記特定の暗号処理部が、暗号化したデータを前記データ送信部に対して出力可能になってから、前記外部装置に対して送信を開始する通信プロトコルが含まれることを特徴とする。
【発明の効果】
【００１６】
第１の態様によれば、外部装置との間で、複数の通信プロトコルに準拠したデータ通信が可能となる。したがって、外部装置とメモリコアとの間の動作仕様の解析が困難となるため、メモリコアに対する不正なアクセスを抑制し、データの安全性を向上させることができる。
【００１７】
また、第１の態様によれば、暗号化されたデータを外部装置とやり取りすることができるため、データの安全性を向上させることができる。
【００１８】
また、第１の態様によれば、暗号処理部のデータの出力準備が完了してから、データ送信部が外部装置へのデータ送信を開始する。これにより、出力準備に必要な時間に応じて、データ送信のタイミングを変化させることができるため、動作仕様の解析を困難にすることができる。
【００１９】
また、第２の態様に係るメモリ制御装置によれば、読み出したデータに基づいて、通信プロトコルの切り替えを容易に実行できる。
【図面の簡単な説明】
【００２０】
【図１】本発明の第１実施形態に係るメモリシステムを示すブロック図である。
【図２】メモリシステムの大まかな動作手順を示す流れ図である。
【図３】第一プロトコルでの通信手順の詳細を示す流れ図である。
【図４】通信プロトコルの切り替え手順の詳細を示す流れ図である。
【図５】第二プロトコルでの通信手順の詳細を示す流れ図である。
【図６】第２実施形態に係るメモリシステムを示すブロック図である。
【図７】メモリシステムの動作を示す流れ図である。
【図８】第３実施形態に係るメモリシステムを示すブロック図である。
【発明を実施するための形態】
【００２１】
以下、本発明の好適な実施の形態について、添付の図面を参照しつつ、詳細に説明する。
【００２２】
＜１．  第１実施形態＞
＜１．１．  メモリシステムの構成及び機能＞
図１は、本発明の第１実施形態に係るメモリシステム１００を示すブロック図である。本発明に係るメモリシステム１００は、情報処理装置１と、情報処理装置１に対して着脱自在である不揮発性の半導体メモリ装置（具体的には、ＲＯＭ、フラッシュメモリ等）２とを備えている。半導体メモリ装置２には、例えば不正なデータの読み出し等から保護すべきプログラムや、動画データ、画像データ及び音楽データ等の各種コンテンツデータが格納されている。なお、情報処理装置１は、汎用的な装置とするが、専用の用途に用いられる機器（例えば、ＰＤＡや携帯電話等）であってもよい。
【００２３】
＜情報処理装置１＞
情報処理装置１は、ＣＰＵ３、暗号処理部４及び通信部５を備えている。また、情報処理装置１は、図示しないＲＡＭ等の一般的なコンピュータの構成要素を備えている。図１に示すコマンド生成部３１、データ解析部３３及び切替制御部３５は、ＣＰＵ３が所定のプログラムに従って動作することにより実現される機能ブロックである。
【００２４】
＜コマンド生成部３１＞
コマンド生成部３１は、半導体メモリ装置２に対して特定のデータの読み出しを要求するコマンド（読み出しコマンド）や、情報処理装置１と半導体メモリ装置２との間で、使用する通信プロトコルを指定するコマンド（切り替えコマンド）を生成する。コマンド生成部３１が生成したコマンドは、暗号処理部４に入力される。
【００２５】
＜データ解析部３３＞
データ解析部３３は、半導体メモリ装置２から読み出された読み出しデータを解析し、読み出しデータに含まれている指定情報を取得する。本実施形態では、情報処理装置１が起動される度に読み出されるデータ（起動時読出しデータ７１）に、指定情報７２が含まれている。指定情報は、情報処理装置１と半導体メモリ装置２との間で、使用すべき通信プロトコルを指定する所定コードである。
【００２６】
＜切替制御部３５＞
切替制御部３５は、データ解析部３３が取得した指定情報に基づき、通信プロトコルを切り替えるための切り替えコマンドを、コマンド生成部３１に生成させる。
【００２７】
＜暗号処理部４＞
暗号処理部４は、コマンド生成部３１により生成されたコマンドを暗号化して通信部５へ送信するとともに、半導体メモリ装置２から情報処理装置１に入力されたデータを復号する。暗号処理部４は、暗号アルゴリズムが互いに相違する第一暗号処理部４１及び第二暗号処理部４３を備えている。
【００２８】
第一暗号処理部４１及び第二暗号処理部４３は、ストリーム暗号による暗号処理を実行するが、暗号処理に用いる鍵情報が互いに相違している。なお、暗号アルゴリズムが互いに相違するとは、本実施形態のように、単に用いる鍵情報が異なる場合に限られず、例えば、ストリーム暗号とブロック暗号、あるいは、公開鍵暗号方式と共通鍵暗号方式といったように、暗号化の手法そのものが相違する場合も含まれる。以下においては、便宜上、第一暗号処理部４１が実装する暗号アルゴリズムを第一アルゴリズムと称し、第二暗号処理部４３が実装する暗号アルゴリズムを第二アルゴリズムと称する。
【００２９】
＜通信部５＞
通信部５は、半導体メモリ装置２との間で、信号の送受信方法が互いに相違する複数の通信プロトコル（第一プロトコル及び第二プロトコル）に準拠したデータ通信を実行する。通信部５は、第一プロトコルに準拠して動作する第一通信部５１と、第二プロトコルに準拠して動作する第二通信部５３とを備えている。
【００３０】
第一通信部５１は第一プロトコルに準拠したアクセス波形信号を生成する。また、第二通信部５３は、第二プロトコルに準拠したアクセス波形信号を生成する。生成されアクセス波形信号は、半導体メモリ装置２へ入力される。なお、第一プロトコルと第二プロトコルとでは、主に（１）情報処理装置１から発行されるコマンドの構造と、（２）レイテンシー期間とが互いに相違している。
【００３１】
具体的に、コマンド構造については、コマンド長が互いに相違している。第一プロトコルでは、８バイト（６４ビット）が採用されているのに対して、第二プロトコルでは、１６バイト（１２８ビット）が採用されている。ただし、コマンド長はこれらに限られるものではなく、適宜に変更が可能である。
【００３２】
また、レイテンシー期間とは、情報処理装置１（具体的には、通信部５）から半導体メモリ装置２に対してデータの読み出しのコマンドが入力されてから、半導体メモリ装置２から情報処理装置１に対して読み出されたデータの出力が開始されるまでの期間をいう。第一プロトコルでは、レイテンシー期間が一定時間Ｔ（固定値）となっているのに対して、第二プロトコルでは、レイテンシー期間が第二暗号処理部６３３から第二インターフェース部６１３へ入力される送信準備完了信号に基づいて決定される可変値となっている。この送信準備完了信号については後述する。
【００３３】
本実施形態では、第一通信部５１が第一暗号処理部４１に接続されており、第二通信部５３が第二暗号処理部４３に接続されている。すなわち、第一プロトコルが使用されている場合には、第一アルゴリズムに基づいて暗号化されたコマンドが半導体メモリ装置２に対して発行（送信）される。また、第二プロトコルが使用される場合には、第二アルゴリズムに基づいて暗号化されたコマンドが半導体メモリ装置２に対して発行される。
【００３４】
＜半導体メモリ装置２＞
半導体メモリ装置２は、データの読み出し等を制御するメモリコントローラ６（メモリ制御装置）と、情報処理装置１にて処理される各種コンテンツデータが格納されたメモリコア７とを備えている。
【００３５】
＜メモリコントローラ６＞
メモリコントローラ６は、インターフェース部６１、第一暗号処理部６３１、第二暗号処理部６３３、コマンド解析部６５、暗号処理選択部６７及び通信プロトコル選択部６９を備えている。メモリコントローラ６は、情報処理装置１からのコマンド入力に基づいてメモリコア７にアクセスし、読み出したデータを情報処理装置１に送信する。
【００３６】
＜インターフェース部６１＞
インターフェース部６１は、情報処理装置１との間で、第一プロトコルまたは第二プロトコルに準拠したデータ通信を行う。インターフェース部６１は、第一プロトコルに準拠して動作する第一インターフェース部６１１と、第二プロトコルに準拠して動作する第二インターフェース部６１３とを備えている。本実施形態では、インターフェース部６１が、本発明のデータ送信部に相当する。
【００３７】
＜第一暗号処理部６３１＞
第一暗号処理部６３１は、第一暗号処理部４１により暗号化されたコマンドを復号して、コマンド解析部６５に入力する。また、第一暗号処理部６３１は、メモリコア７から読み出されたデータを第一アルゴリズムに基づいて暗号化し、インターフェース部６１に入力する。
【００３８】
＜第二暗号処理部６３３＞
第二暗号処理部６３３は、第二暗号処理部４３により暗号化されたコマンドを復号し、コマンド解析部６５に入力する。また、第二暗号処理部６３３は、メモリコア７から読み出されたデータを第二アルゴリズムに基づいて暗号化し、インターフェース部６１に入力する。
【００３９】
第二暗号処理部６３３は、第二インターフェース部６１３に対して、送信準備完了信号を入力する。送信準備完了信号は、第二暗号処理部６３３が、メモリコア７から読み出されたデータを暗号化し、第二インターフェース部６１３に対する送信準備が完了していることを示す信号である。第二インターフェース部６１３は、この信号が入力されている場合に、情報処理装置１に対してデータを送信する。したがって、第二インターフェース部６１３から出力されるデータのタイミングは、第二暗号処理部６３３の処理状況に依存することとなる。
【００４０】
＜コマンド解析部６５＞
コマンド解析部６５は、復号されたコマンドを解析することで、コマンドに含まれているコマンドＩＤやアドレス情報を抽出する。また、コマンド解析部６５は、抽出結果に応じた所定の制御信号を、暗号処理選択部６７、通信プロトコル選択部６９及びメモリコア７に入力する。
【００４１】
具体的に、コマンド解析部６５は、暗号処理選択部６７に対しては、第一暗号処理部６３１または第二暗号処理部６３３のいずれかを選択させる制御信号を入力し、通信プロトコル選択部６９に対しては、第一インターフェース部６１１または第二インターフェース部６１３のいずれかを選択させる制御進号を入力する。また、コマンド解析部６５は、メモリコア７に対して、読み出し信号やアドレス信号を入力する。
【００４２】
＜暗号処理選択部６７＞
暗号処理選択部６７は、コマンド解析部６５から入力される制御信号に基づき、第一暗号処理部６３１と第二暗号処理部６３３との間で暗号処理を実行する要素を切り替える選択信号をセレクタ６７１，６７３に与える。
【００４３】
セレクタ６７１は、半導体メモリ装置２から情報処理装置１へ送信するデータを暗号化する要素を、第一暗号処理部６３１と第二暗号処理部６３３との間で切り替えるためのセレクタである。セレクタ６７３は、暗号化されたコマンドを復号する要素を、第一暗号処理部６３１と第二暗号処理部６３３との間で切り替えるためのセレクタである。
【００４４】
＜通信プロトコル選択部６９＞
通信プロトコル選択部６９は、コマンド解析部６５から入力される制御信号に基づき、第一インターフェース部６１１と第二インターフェース部６１３との間で、情報処理装置１とデータ通信を行う要素を切り替えるための選択信号を、インターフェース部６１に入力する。
【００４５】
本実施形態では、通信プロトコル選択部６９が第一インターフェース部６１１を選択する場合、暗号処理選択部６７は、セレクタ６７１，６７３に対して第一暗号処理部６３１を選択する選択信号を入力する。すなわち、半導体メモリ装置２は、情報処理装置１に対して第一プロトコルに準拠したデータ通信を実行する場合、第一アルゴリズムに基づいて暗号化したデータを情報処理装置１へ送信することとなる。
【００４６】
また、通信プロトコル選択部６９が第二インターフェース部６１３を選択する場合、暗号処理選択部６７は、セレクタ６７１，６７３に対して第二暗号処理部６３３を選択する選択信号を入力する。すなわち、半導体メモリ装置２は、情報処理装置１に対して第二プロトコルに準拠したデータ通信を実行する場合、第二アルゴリズムに基づいて暗号化したデータを情報処理装置１へ送信することとなる。
【００４７】
＜メモリコア７＞
メモリコア７は、コマンド解析部６５が抽出したアドレス情報に該当するメモリセルに保存されているデータを、データバスを介して第一暗号処理部６３１または第二暗号処理部６３３に出力する。また、メモリコア７は、レディー状態（データの出力準備が完了している状態）を示すReady信号を第二暗号処理部６３３に入力する。第二暗号処理部６３３は、このReady信号に基づいて、読み出されたデータの暗号化を開始する。以上が、メモリシステム１００の構成及び機能についての説明である。
【００４８】
＜１．２．  メモリシステムの動作＞
次に、上記構成を有するメモリシステム１００の動作について説明する。まず、メモリシステムの大まかな動作手順について説明し、続いて各手順を詳細に説明する。
【００４９】
図２は、メモリシステム１００の大まかな動作手順を示す流れ図である。まず、情報処理装置１に電源が投入されると（ステップＳ１）、情報処理装置１は、半導体メモリ装置２に対して第一プロトコルに準拠したデータ通信を開始する（ステップＳ２）。このとき、情報処理装置１は、起動時読み出しデータ７１の読み出しを実行する。上述のように、起動時読み出しデータ７１には、指定情報７２が含まれている。
【００５０】
情報処理装置１は、指定情報７２を取得すると、通信プロトコルを第一プロトコルから第二プロトコルへ切り替えるための切り替え動作を実行する（ステップＳ３）。この切り替え動作が完了すると、情報処理装置１は、半導体メモリ装置２に対して第二プロトコルに準拠したデータ通信を開始する（ステップＳ４）。
【００５１】
さらに情報処理装置１は、オペレータからの終了指示があるか否かを判定し（ステップＳ５）、終了指示があった場合、情報処理装置１は半導体メモリ装置２とのデータ通信を終了する。終了指示がない場合には、情報処理装置１はステップＳ４に戻って、第二プロトコルに準拠したデータ通信を継続して行う。以上が大まかな動作手順の説明である。次に、各動作の手順について、詳細に説明する。
【００５２】
＜１．２．１．  第一プロトコルでの通信＞
図３は、第一プロトコルでの通信手順の詳細を示す流れ図である。第一プロトコルでの通信を開始すると、情報処理装置１は、第一プロトコルに準拠した読み出しコマンドを発行する（ステップＳ２０）。
【００５３】
具体的には、コマンド生成部３１が、読み出しを要求するコマンドＩＤと、アドレス情報とで構成される８バイト長の読み出しコマンドを生成する。なお、このときのアドレス情報は、起動時読み出しデータ７１の保存先を示す物理アドレスに相当する。生成された読み出しコマンドは、第一暗号処理部４１により暗号化され、第一通信部５１を介して半導体メモリ装置２に入力される。
【００５４】
入力された読み出しコマンドは、第一インターフェース部６１１を介して第一暗号処理部６３１へ転送され、復号される（ステップＳ２１）。復号された読み出しコマンドは、コマンド解析部６５に送られ、そのコマンドが解析される（ステップＳ２２）。
【００５５】
読み出しコマンドには、切り替えコマンドのように、通信プロトコルを指定する情報は含まれていないため、メモリシステム１００では、引き続き第一プロトコルに準拠したデータ通信を行う。したがって、コマンド解析部６５は、第一プロトコルでデータ通信するための制御信号を暗号処理選択部６７及び通信プロトコル選択部６９に入力する。これにより、第一暗号処理部６３１及び第一インターフェース部６１１が選択される（ステップＳ２３）。
【００５６】
また、コマンド解析部６５は、読み出しコマンドから抽出されたアドレス情報をメモリコア７に入力し、メモリコア７から起動時読み出しデータ７１を読み出す（ステップＳ２４）。読み出された起動時読み出しデータ７１は、第一暗号処理部６３１へ送信されて暗号化され（ステップＳ２５）、そしてインターフェース部６１に転送される。
【００５７】
次に、第一通信部５１は、半導体メモリ装置２に読み出しコマンドを入力してから一定時間Ｔが経過しているかどうかを判定する（ステップＳ２６）。第一通信部５１は、一定時間Ｔが経過するまで待機してから、第一インターフェース部６１１に対して暗号化された起動時読み出しデータ７１を情報処理装置１へ送信させる（ステップＳ２７）。
【００５８】
なお、情報処理装置１と半導体メモリ装置２との間のデータ通信を円滑にするため、ステップＳ２６の一定時間Ｔは、読み出しコマンドが第一インターフェース部６１１に入力されてから、情報処理装置１に対する読み出しデータの出力準備が完了するまでの期間よりも長くなるように設定されることが望ましい。すなわち、一定時間Ｔの間に、半導体メモリ装置２が、コマンドの復号と、メモリコア７からのデータの読み出しと、情報処理装置１に送信する読み出しデータの少なくとも最初に送信する部分の暗号化とを完了していることが望ましい。
【００５９】
ステップＳ２７にて送信された起動時読み出しデータ７１は、第一暗号処理部４１により復号される（ステップＳ２８）。さらにデータ解析部３３により、復号された起動時読み出しデータ７１から指定情報７２が抽出される（ステップＳ２９）。
【００６０】
以上が第一プロトコルでの通信手順の詳細である。次に、通信プロトコルの切り替え手順（ステップＳ３）の詳細について説明する。
【００６１】
＜１．２．２．  通信プロトコルの切り替え＞
図４は、通信プロトコルの切り替え手順の詳細を示す流れ図である。ステップＳ２９にて抽出された指定情報７２は、切替制御部３５に送られ、コマンド生成部３１により切り替えコマンドが生成される（ステップＳ３１）。ここでの切り替えコマンドは、８バイト長のコマンド構造を有し、第二プロトコルへの切り替えを要求するコマンドＩＤを含んでいる。
【００６２】
生成された切り替えコマンドは、第一暗号処理部４１へ送信されて暗号化される（ステップＳ３２）。暗号化された切り替えコマンドは第一通信部５１へ送られ、さらに半導体メモリ装置２へ送信される（ステップＳ３３）。送信された切り替えコマンドは、第一暗号処理部６３１により復号され（ステップＳ３４）、コマンド解析部６５によりコマンドが解析される（ステップＳ３５）。
【００６３】
このときの切り替えコマンドは、通信プロトコルを第二プロトコルへ切り替えることを示している。したがって、コマンド解析部６５は、第二プロトコルでデータ通信するための制御信号を、暗号処理選択部６７及び通信プロトコル選択部６９に入力する。これにより、第二暗号処理部６３３と第二インターフェース部６１３とが選択されることとなる（ステップＳ３６）。以上の動作により、情報処理装置１と半導体メモリ装置２との間で、第二プロトコルに準拠したデータ通信が可能となる。
【００６４】
＜１．２．３．  第二プロトコルでの通信＞
図５は、第二プロトコルでの通信手順の詳細を示す流れ図である。第二プロトコルでの通信が開始されると、まず、情報処理装置１において半導体メモリ装置２へのアクセス要求が発生しているかどうかが判定される（ステップＳ４１）。
【００６５】
アクセス要求がある場合、情報処理装置１は、第二プロトコルに準拠した読み出しコマンドを半導体メモリ装置２に発行する（ステップＳ４２）。具体的には、コマンド生成部３１が、読み出しを要求するコマンドＩＤと、目的のデータの保存先を示すアドレス情報とで構成される１６バイト長の読み出しコマンドを生成し、第二暗号処理部４３に送信する。送信された読み出しコマンドは、第二暗号処理部４３により暗号化されて第二通信部５３に送られ、さらに半導体メモリ装置２に送信される。なお、ステップＳ４１においてアクセス要求がない場合、アクセス要求が発生するまで情報処理装置１はアイドル状態となる。
【００６６】
暗号化された読み出しコマンドは、第二インターフェース部６１３を介して第二暗号処理部６３３に転送されて復号される（ステップＳ４３）。復号された読み出しコマンドは、コマンド解析部６５に送られ、コマンドが解析される（ステップＳ４４）。
【００６７】
読み出しコマンドには、通信プロトコルを指定する情報は含まれていないため、メモリシステム１００では、引き続き第二プロトコルに準拠したデータ通信が行われる。そのため、コマンド解析部６５は、第二プロトコルでデータ通信するための制御信号を暗号処理選択部６７及び通信プロトコル選択部６９に入力する。これにより、第二暗号処理部６３３と第二インターフェース部６１３とが再び選択されることとなる（ステップＳ４５）。
【００６８】
また、コマンド解析部６５は、読み出しコマンドから抽出されるアドレス情報に基づき、メモリコア７から目的のデータの読み出しを実行する（ステップＳ４６）。メモリコア７において、読み出しを要求されたデータの出力準備が完了すると、メモリコア７は、第二暗号処理部６３３に対して、読み出したデータを送信するとともに、Ready信号を入力する。これにより、第二暗号処理部６３３において、読み出しデータの暗号化が開始される（ステップＳ４７）。
【００６９】
第二インターフェース部６１３は、第二暗号処理部６３３から入力される送信準備完了信号に基づいて、第二暗号処理部６３３が暗号化したデータの送信準備を完了しているかどうかを判定する（ステップＳ４８）。送信準備が完了している場合、第二インターフェース部６１３は、第二暗号処理部６３３から送られてきたデータについて、情報処理装置１への送信を開始する（ステップＳ４９）。一方、送信準備が完了していない場合、第二インターフェース部６１３は、送信準備が完了するまで待機する。情報処理装置１に送信されたデータは、第二暗号処理部４３において復号され、情報処理装置１にて適宜加工等の処理がなされる。
【００７０】
なお、ステップＳ４のデータ通信において、通信プロトコルを第二プロトコルから再び第一プロトコルへ移行するようにしてもよい。この場合、第一プロトコルを指定する指定情報を含んだデータを、予めメモリコア７に格納しておき、情報処理装置１がこのデータを読み出すことで、通信プロトコルを第一プロトコルへ切り替えるようにすればよい。
【００７１】
また、第一暗号処理部４１、第一暗号処理部６３１で使用される鍵（第一鍵）や、第二暗号処理部４３、第二暗号処理部６３３で使用される鍵（第二鍵）は、常に同じものである必要はなく、適宜に更新されてもよい。このような場合、ＣＰＵ３で生成した新たな鍵情報を、情報処理装置１と半導体メモリ装置２とで共有するようにすればよい。
【００７２】
＜１．３．  効果＞
以上のように、本実施形態のメモリシステム１００では、信号の送受信方法が互いに相違する複数の通信プロトコルにてデータ通信が行われる。したがって、メモリシステム１００の動作仕様を解析することが困難となるため、メモリシステム１００のセキュリティ機能を向上することができる。
【００７３】
なお、メモリシステム１００における暗号アルゴリズムとして、公開鍵暗号方式のＲＳＡアルゴリズムや、処理毎に鍵長を変化させて暗号化する暗号アルゴリズムを実装する場合、第二暗号処理部６３３から第二インターフェース部６１３に対して出力準備が完了するまでの時間が、処理毎に変化する。
【００７４】
ここで、本実施形態の第二プロトコルでは、第二暗号処理部６３３による暗号化データの出力準備が完了するまで、情報処理装置１へのデータ送信が開始されないようにしている。そこで、第二暗号処理部６３３に、上述のような暗号アルゴリズムを実装することで、データの安全性を確保するとともに、データ送信のタイミングをデータ毎に変化させることができる。したがって、メモリシステム１００の動作仕様の解析をより困難にすることができる。
【００７５】
＜２．  第２実施形態＞
第１実施形態のメモリシステム１００では、メモリコア７に格納された指定情報７２が情報処理装置１に認識されることにより、通信プロトコルの切り替えを実行している。しかし、通信プロトコルの切り替え方法は、このようなものに限られるものではない。
【００７６】
＜２．１．  構成及び機能＞
図６は、第２実施形態に係るメモリシステム１００ａを示すブロック図である。なお、本実施の形態の説明において、第１実施形態と同様の機能を有する要素については同一符号を付してその説明を省略する。
【００７７】
本実施形態の情報処理装置１ａは、真性または疑似的な２進乱数を発生させる乱数生成部８を備えている。ＣＰＵ３ａの動作により実現される切替制御部３５ａは、乱数生成部８が生成する２進乱数に基づき、データ通信に使用する通信プロトコル（第一プロトコルまたは第二プロトコル）を決定する。切替制御部３５ａは、決定された通信プロトコルに切り替えるための切り替えコマンドをコマンド生成部３１ａに生成させる。
【００７８】
＜２．２．  動作＞
図７は、メモリシステム１００ａの動作を示す流れ図である。情報処理装置１ａは、電源が投入された後に所定の初期設定を行い、監視状態となる。監視状態においてＣＰＵ３ａは、半導体メモリ装置２へのアクセス要求が発生したか否か（ステップＳ５１）及び終了指示があったか否か（ステップＳ５８）を監視する。
【００７９】
半導体メモリ装置２へのアクセス要求があった場合、ＣＰＵ３は、ステップＳ５１においてＹｅｓと判定し、乱数生成部８に２進乱数を生成させる（ステップＳ５２）。切替制御部３５ａは、生成された２進乱数に基づき、使用すべき通信プロトコルが第一プロトコルか否かを判定する（ステップＳ５３）。
【００８０】
第一プロトコルが選択される場合（ステップＳ５３においてＹＥＳ）、情報処理装置１ａは、通信プロトコルを第一プロトコルへ切り替える動作を実行する（ステップＳ５４）。この切り替え動作は、第１実施形態におけるステップＳ３（図２，４参照）と同様の手順で実行される。
【００８１】
具体的には、ステップＳ５３の時点で使用されている通信プロトコルに準拠して、第一プロトコルを指定する切り替えコマンドが、情報処理装置１ａから半導体メモリ装置２へ発行される。この切り替えコマンドに基づき、半導体メモリ装置２は使用する通信プロトコルを第一プロトコルに設定する。そして情報処理装置１ａは、第一プロトコルに準拠して、半導体メモリ装置２とのデータ通信を実行する（ステップＳ５５）。
【００８２】
一方、第二プロトコルが選択される場合（ステップＳ５３においてＮＯ）、情報処理装置１は、通信プロトコルを第二プロトコルへ切り替える動作を実行する（ステップＳ５６）。具体的には、ステップＳ５４と同様に、ステップＳ５３の時点で使用されている通信プロトコルに準拠して、第二プロトコルを指定する切り替えコマンドが、情報処理装置１から半導体メモリ装置２へ発行される。この切り替えコマンドに基づき、半導体メモリ装置２は、使用する通信プロトコルを第二プロトコルに設定する。そして、情報処理装置１ａは第二プロトコルに準拠して、半導体メモリ装置２とのデータ通信を実行する（ステップＳ５７）。
【００８３】
なお、本実施形態では、アクセス要求が発生する度に使用する通信プロトコルを決定しているが、通信プロトコルの決定のタイミングは、このようなものに限られない。例えば、所定の時間が経過したとき、または、通信回数が所定数を越えたときに、使用する通信プロトコルを決定し直すようにしてもよい。
【００８４】
＜２．３．  効果＞
本実施形態によれば、使用する通信プロトコルがランダムに切り替わるため、メモリシステム１００の動作仕様の解析を困難にすることができる。これにより、データの不正コピー等を効果的に抑制できる。
【００８５】
＜３．  第３実施形態＞
上記実施形態では、特定の通信プロトコルに対して、使用される暗号処理部が固定されているが、通信プロトコルと暗号処理部との組み合わせは、固定されるものに限られない。
【００８６】
図８は、第３実施形態に係るメモリシステム１００ｂを示すブロック図である。情報処理装置１ｂが備えるＣＰＵ３ｂは、暗号処理部４ａや通信部５ａに対して、暗号処理及び通信を実行する要素を選択するための選択信号を入力する。
【００８７】
また、切替制御部３５ｂは、乱数生成部８が生成する２進乱数に基づいて、メモリシステム１００ｂにおいて使用する通信プロトコルを決定するとともに、情報処理装置１と半導体メモリ装置２との間でやり取りするコマンドやデータを暗号化するための暗号アルゴリズムについても決定する。
【００８８】
コマンド生成部３１ｂは、切替制御部３５ｂにより決定された通信プロトコル及び暗号アルゴリムズを用いてデータ通信を行うように、動作モードを切り替えるための切り替えコマンドを生成する。半導体メモリ装置２では、コマンド解析部６５がこの切り替えコマンドを解析することで、暗号処理選択部６７及び通信プロトコル選択部６９に対して暗号アルゴリズム及び通信プロトコルを切り替えるための制御信号を入力する。
【００８９】
本実施形態に係るメモリシステム１００ｂでは、２種類の通信プロトコルと、２種類の暗号処理部を自在に組み合わせることで、計４パターン（＝２×２）のデータ通信を実現することができる。このように、情報処理装置１と半導体メモリ装置２との間で、暗号アルゴリズムと通信プロトコルとの組み合わせを自由に変更することで、メモリコア７に対する不正なアクセスをより効果的に抑制できる。
【００９０】
＜４．  変形例＞
以上、本発明の実施の形態について説明してきたが、本発明は上記実施の形態に限定されるものではなく様々な変形が可能である。
【００９１】
例えば、上記実施形態では、コマンドを第一暗号処理部，第二暗号処理部により暗号化して半導体メモリ装置に転送するようにしているが、暗号化せずにそのまま転送するようにしてもよい。
【００９２】
また、上記実施形態では、情報処理装置と半導体メモリ装置との間で、２種類の通信プロトコル及び２種類の暗号アルゴリズムを使って、データ通信を行うようにしているが、より多くの通信プロトコル、暗号アルゴリズムを用いたデータ通信を行えるようにメモリシステムを構成してもよい。
【００９３】
また、上記実施形態では、指定情報７２や乱数生成部８が生成する２進乱数に基づき、通信プロトコルの切り替えが実行されているが、切り替え方法はこのようなものに限定されない。例えば、読み出すデータに応じて、切替制御部等がどの通信プロトコルを使用すべきかを決定し、適宜通信プロトコルを切り替えるようにしてもよい。
【００９４】
例えば、重要なデータ（不正に取得されたくないデータなど）については、暗号処理に多くの時間がかかるものの、暗号強度の強い通信プロトコルを使用し、その他のデータについては、暗号処理が比較的短時間ですむ通信プロトコルを使用して、データ通信が行われるようにする。これによれば、重要なデータを解読されにくくしつつ、且つ効率的なデータ通信を実現できる。
【００９５】
また、通信プロトコル毎に、メモリコア７のアクセス可能なメモリ領域を制限してもよい。例えば、通信プロトコル毎に暗号強度が異なる場合において、暗号強度の高い通信プロトコルの場合にのみアクセス可能なメモリ領域に重要なデータを格納しておくことで、データの機密性を向上することができる。
【００９６】
また、図中に示すブロックの一部または全部を、専用の論理回路によりハードウェア的に実現してもよいし、ＣＰＵによりソフトウェア的に実現してもよい。
【００９７】
さらに上記各実施形態及び各変形例で説明した各構成は、相互に矛盾しない限り適宜組合わせることができる。
【符号の説明】
【００９８】
１００，１００ａ，１００ｂ  メモリシステム
１，１ａ，１ｂ  情報処理装置
２  半導体メモリ装置
４，４ａ  暗号処理部
４１  第一暗号処理部
４３  第二暗号処理部
５，５ａ  通信部
５１  第一通信部
５３  第二通信部
６  メモリコントローラ
６１  インターフェース部
６１１  第一インターフェース部
６１３  第二インターフェース部
６３１  第一暗号処理部
６３３  第二暗号処理部
６５  コマンド解析部
６７  暗号処理選択部
６７１，６７３  セレクタ
６９  通信プロトコル選択部
７  メモリコア
【図１】
0005564197.tif 000002
【図２】
0005564197.tif 000003
【図３】
0005564197.tif 000004
【図４】
0005564197.tif 000005
【図５】
0005564197.tif 000006
【図６】
0005564197.tif 000007
【図７】
0005564197.tif 000008
【図８】
0005564197.tif 000009