(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0018】
以下、本発明の好適な実施の形態について、添付の図面を参照しつつ、詳細に説明する。
【0019】
<1. 第1実施形態>
<1.1. メモリシステムの構成及び機能>
図1は、本発明の第1実施形態に係るメモリシステム100を示すブロック図である。本発明に係るメモリシステム100は、情報処理装置1と、情報処理装置1に対して着脱自在である不揮発性の半導体メモリ装置(具体的には、ROM、フラッシュメモリ等)2とを備えている。半導体メモリ装置2には、例えば不正なデータの読み出し等から保護すべきプログラムや、動画データ、画像データ及び音楽データ等の各種コンテンツデータが格納されている。なお、情報処理装置1は、汎用的な装置とするが、専用の用途に用いられる機器(例えば、PDAや携帯電話等)であってもよい。
【0020】
<情報処理装置1>
情報処理装置1は、CPU3、暗号処理部4及び通信部5を備えている。また、情報処理装置1は、図示しないRAM等の一般的なコンピュータの構成要素を備えている。
図1に示すコマンド生成部31、データ解析部33及び切替制御部35は、CPU3が所定のプログラムに従って動作することにより実現される機能ブロックである。
【0021】
<コマンド生成部31>
コマンド生成部31は、半導体メモリ装置2に対して特定のデータの読み出しを要求するコマンド(読み出しコマンド)や、情報処理装置1と半導体メモリ装置2との間で、使用する通信プロトコルを指定するコマンド(切り替えコマンド)を生成する。コマンド生成部31が生成したコマンドは、暗号処理部4に入力される。
【0022】
<データ解析部33>
データ解析部33は、半導体メモリ装置2から読み出された読み出しデータを解析し、読み出しデータに含まれている指定情報を取得する。本実施形態では、情報処理装置1が起動される度に読み出されるデータ(起動時読出しデータ71)に、指定情報72が含まれている。指定情報は、情報処理装置1と半導体メモリ装置2との間で、使用すべき通信プロトコルを指定する所定コードである。
【0023】
<切替制御部35>
切替制御部35は、データ解析部33が取得した指定情報に基づき、通信プロトコルを切り替えるための切り替えコマンドを、コマンド生成部31に生成させる。
【0024】
<暗号処理部4>
暗号処理部4は、コマンド生成部31により生成されたコマンドを暗号化して通信部5へ送信するとともに、半導体メモリ装置2から情報処理装置1に入力されたデータを復号する。暗号処理部4は、暗号アルゴリズムが互いに相違する第一暗号処理部41及び第二暗号処理部43を備えている。
【0025】
第一暗号処理部41及び第二暗号処理部43は、ストリーム暗号による暗号処理を実行するが、暗号処理に用いる鍵情報が互いに相違している。なお、暗号アルゴリズムが互いに相違するとは、本実施形態のように、単に用いる鍵情報が異なる場合に限られず、例えば、ストリーム暗号とブロック暗号、あるいは、公開鍵暗号方式と共通鍵暗号方式といったように、暗号化の手法そのものが相違する場合も含まれる。以下においては、便宜上、第一暗号処理部41が実装する暗号アルゴリズムを第一アルゴリズムと称し、第二暗号処理部43が実装する暗号アルゴリズムを第二アルゴリズムと称する。
【0026】
<通信部5>
通信部5は、半導体メモリ装置2との間で、信号の送受信方法が互いに相違する複数の通信プロトコル(第一プロトコル及び第二プロトコル)に準拠したデータ通信を実行する。通信部5は、第一プロトコルに準拠して動作する第一通信部51と、第二プロトコルに準拠して動作する第二通信部53とを備えている。
【0027】
第一通信部51は第一プロトコルに準拠したアクセス波形信号を生成する。また、第二通信部53は、第二プロトコルに準拠したアクセス波形信号を生成する。生成されアクセス波形信号は、半導体メモリ装置2へ入力される。なお、第一プロトコルと第二プロトコルとでは、主に(1)情報処理装置1から発行されるコマンドの構造と、(2)レイテンシー期間とが互いに相違している。
【0028】
具体的に、コマンド構造については、コマンド長が互いに相違している。第一プロトコルでは、8バイト(64ビット)が採用されているのに対して、第二プロトコルでは、16バイト(128ビット)が採用されている。ただし、コマンド長はこれらに限られるものではなく、適宜に変更が可能である。
【0029】
また、レイテンシー期間とは、情報処理装置1(具体的には、通信部5)から半導体メモリ装置2に対してデータの読み出しのコマンドが入力されてから、半導体メモリ装置2から情報処理装置1に対して読み出されたデータの出力が開始されるまでの期間をいう。第一プロトコルでは、レイテンシー期間が一定時間T(固定値)となっているのに対して、第二プロトコルでは、レイテンシー期間が第二暗号処理部633から第二インターフェース部613へ入力される送信準備完了信号に基づいて決定される可変値となっている。この送信準備完了信号については後述する。
【0030】
本実施形態では、第一通信部51が第一暗号処理部41に接続されており、第二通信部53が第二暗号処理部43に接続されている。すなわち、第一プロトコルが使用されている場合には、第一アルゴリズムに基づいて暗号化されたコマンドが半導体メモリ装置2に対して発行(送信)される。また、第二プロトコルが使用される場合には、第二アルゴリズムに基づいて暗号化されたコマンドが半導体メモリ装置2に対して発行される。
【0031】
<半導体メモリ装置2>
半導体メモリ装置2は、データの読み出し等を制御するメモリコントローラ6(メモリ制御装置)と、情報処理装置1にて処理される各種コンテンツデータが格納されたメモリコア7とを備えている。
【0032】
<メモリコントローラ6>
メモリコントローラ6は、インターフェース部61、第一暗号処理部631、第二暗号処理部633、コマンド解析部65、暗号処理選択部67及び通信プロトコル選択部69を備えている。メモリコントローラ6は、情報処理装置1からのコマンド入力に基づいてメモリコア7にアクセスし、読み出したデータを情報処理装置1に送信する。
【0033】
<インターフェース部61>
インターフェース部61は、情報処理装置1との間で、第一プロトコルまたは第二プロトコルに準拠したデータ通信を行う。インターフェース部61は、第一プロトコルに準拠して動作する第一インターフェース部611と、第二プロトコルに準拠して動作する第二インターフェース部613とを備えている。本実施形態では、インターフェース部61が、本発明のデータ送信部に相当する。
【0034】
<第一暗号処理部631>
第一暗号処理部631は、第一暗号処理部41により暗号化されたコマンドを復号して、コマンド解析部65に入力する。また、第一暗号処理部631は、メモリコア7から読み出されたデータを第一アルゴリズムに基づいて暗号化し、インターフェース部61に入力する。
【0035】
<第二暗号処理部633>
第二暗号処理部633は、第二暗号処理部43により暗号化されたコマンドを復号し、コマンド解析部65に入力する。また、第二暗号処理部633は、メモリコア7から読み出されたデータを第二アルゴリズムに基づいて暗号化し、インターフェース部61に入力する。
【0036】
第二暗号処理部633は、第二インターフェース部613に対して、送信準備完了信号を入力する。送信準備完了信号は、第二暗号処理部633が、メモリコア7から読み出されたデータを暗号化し、第二インターフェース部613に対する送信準備が完了していることを示す信号である。第二インターフェース部613は、この信号が入力されている場合に、情報処理装置1に対してデータを送信する。したがって、第二インターフェース部613から出力されるデータのタイミングは、第二暗号処理部633の処理状況に依存することとなる。
【0037】
<コマンド解析部65>
コマンド解析部65は、復号されたコマンドを解析することで、コマンドに含まれているコマンドIDやアドレス情報を抽出する。また、コマンド解析部65は、抽出結果に応じた所定の制御信号を、暗号処理選択部67、通信プロトコル選択部69及びメモリコア7に入力する。
【0038】
具体的に、コマンド解析部65は、暗号処理選択部67に対しては、第一暗号処理部631または第二暗号処理部633のいずれかを選択させる制御信号を入力し、通信プロトコル選択部69に対しては、第一インターフェース部611または第二インターフェース部613のいずれかを選択させる制御進号を入力する。また、コマンド解析部65は、メモリコア7に対して、読み出し信号やアドレス信号を入力する。
【0039】
<暗号処理選択部67>
暗号処理選択部67は、コマンド解析部65から入力される制御信号に基づき、第一暗号処理部631と第二暗号処理部633との間で暗号処理を実行する要素を切り替える選択信号をセレクタ671,673に与える。
【0040】
セレクタ671は、半導体メモリ装置2から情報処理装置1へ送信するデータを暗号化する要素を、第一暗号処理部631と第二暗号処理部633との間で切り替えるためのセレクタである。セレクタ673は、暗号化されたコマンドを復号する要素を、第一暗号処理部631と第二暗号処理部633との間で切り替えるためのセレクタである。
【0041】
<通信プロトコル選択部69>
通信プロトコル選択部69は、コマンド解析部65から入力される制御信号に基づき、第一インターフェース部611と第二インターフェース部613との間で、情報処理装置1とデータ通信を行う要素を切り替えるための選択信号を、インターフェース部61に入力する。
【0042】
本実施形態では、通信プロトコル選択部69が第一インターフェース部611を選択する場合、暗号処理選択部67は、セレクタ671,673に対して第一暗号処理部631を選択する選択信号を入力する。すなわち、半導体メモリ装置2は、情報処理装置1に対して第一プロトコルに準拠したデータ通信を実行する場合、第一アルゴリズムに基づいて暗号化したデータを情報処理装置1へ送信することとなる。
【0043】
また、通信プロトコル選択部69が第二インターフェース部613を選択する場合、暗号処理選択部67は、セレクタ671,673に対して第二暗号処理部633を選択する選択信号を入力する。すなわち、半導体メモリ装置2は、情報処理装置1に対して第二プロトコルに準拠したデータ通信を実行する場合、第二アルゴリズムに基づいて暗号化したデータを情報処理装置1へ送信することとなる。
【0044】
<メモリコア7>
メモリコア7は、コマンド解析部65が抽出したアドレス情報に該当するメモリセルに保存されているデータを、データバスを介して第一暗号処理部631または第二暗号処理部633に出力する。また、メモリコア7は、レディー状態(データの出力準備が完了している状態)を示すReady信号を第二暗号処理部633に入力する。第二暗号処理部633は、このReady信号に基づいて、読み出されたデータの暗号化を開始する。以上が、メモリシステム100の構成及び機能についての説明である。
【0045】
<1.2. メモリシステムの動作>
次に、上記構成を有するメモリシステム100の動作について説明する。まず、メモリシステムの大まかな動作手順について説明し、続いて各手順を詳細に説明する。
【0046】
図2は、メモリシステム100の大まかな動作手順を示す流れ図である。まず、情報処理装置1に電源が投入されると(ステップS1)、情報処理装置1は、半導体メモリ装置2に対して第一プロトコルに準拠したデータ通信を開始する(ステップS2)。このとき、情報処理装置1は、起動時読み出しデータ71の読み出しを実行する。上述のように、起動時読み出しデータ71には、指定情報72が含まれている。
【0047】
情報処理装置1は、指定情報72を取得すると、通信プロトコルを第一プロトコルから第二プロトコルへ切り替えるための切り替え動作を実行する(ステップS3)。この切り替え動作が完了すると、情報処理装置1は、半導体メモリ装置2に対して第二プロトコルに準拠したデータ通信を開始する(ステップS4)。
【0048】
さらに情報処理装置1は、オペレータからの終了指示があるか否かを判定し(ステップS5)、終了指示があった場合、情報処理装置1は半導体メモリ装置2とのデータ通信を終了する。終了指示がない場合には、情報処理装置1はステップS4に戻って、第二プロトコルに準拠したデータ通信を継続して行う。以上が大まかな動作手順の説明である。次に、各動作の手順について、詳細に説明する。
【0049】
<1.2.1. 第一プロトコルでの通信>
図3は、第一プロトコルでの通信手順の詳細を示す流れ図である。第一プロトコルでの通信を開始すると、情報処理装置1は、第一プロトコルに準拠した読み出しコマンドを発行する(ステップS20)。
【0050】
具体的には、コマンド生成部31が、読み出しを要求するコマンドIDと、アドレス情報とで構成される8バイト長の読み出しコマンドを生成する。なお、このときのアドレス情報は、起動時読み出しデータ71の保存先を示す物理アドレスに相当する。生成された読み出しコマンドは、第一暗号処理部41により暗号化され、第一通信部51を介して半導体メモリ装置2に入力される。
【0051】
入力された読み出しコマンドは、第一インターフェース部611を介して第一暗号処理部631へ転送され、復号される(ステップS21)。復号された読み出しコマンドは、コマンド解析部65に送られ、そのコマンドが解析される(ステップS22)。
【0052】
読み出しコマンドには、切り替えコマンドのように、通信プロトコルを指定する情報は含まれていないため、メモリシステム100では、引き続き第一プロトコルに準拠したデータ通信を行う。したがって、コマンド解析部65は、第一プロトコルでデータ通信するための制御信号を暗号処理選択部67及び通信プロトコル選択部69に入力する。これにより、第一暗号処理部631及び第一インターフェース部611が選択される(ステップS23)。
【0053】
また、コマンド解析部65は、読み出しコマンドから抽出されたアドレス情報をメモリコア7に入力し、メモリコア7から起動時読み出しデータ71を読み出す(ステップS24)。読み出された起動時読み出しデータ71は、第一暗号処理部631へ送信されて暗号化され(ステップS25)、そしてインターフェース部61に転送される。
【0054】
次に、第一通信部51は、半導体メモリ装置2に読み出しコマンドを入力してから一定時間Tが経過しているかどうかを判定する(ステップS26)。第一通信部51は、一定時間Tが経過するまで待機してから、第一インターフェース部611に対して暗号化された起動時読み出しデータ71を情報処理装置1へ送信させる(ステップS27)。
【0055】
なお、情報処理装置1と半導体メモリ装置2との間のデータ通信を円滑にするため、ステップS26の一定時間Tは、読み出しコマンドが第一インターフェース部611に入力されてから、情報処理装置1に対する読み出しデータの出力準備が完了するまでの期間よりも長くなるように設定されることが望ましい。すなわち、一定時間Tの間に、半導体メモリ装置2が、コマンドの復号と、メモリコア7からのデータの読み出しと、情報処理装置1に送信する読み出しデータの少なくとも最初に送信する部分の暗号化とを完了していることが望ましい。
【0056】
ステップS27にて送信された起動時読み出しデータ71は、第一暗号処理部41により復号される(ステップS28)。さらにデータ解析部33により、復号された起動時読み出しデータ71から指定情報72が抽出される(ステップS29)。
【0057】
以上が第一プロトコルでの通信手順の詳細である。次に、通信プロトコルの切り替え手順(ステップS3)の詳細について説明する。
【0058】
<1.2.2. 通信プロトコルの切り替え>
図4は、通信プロトコルの切り替え手順の詳細を示す流れ図である。ステップS29にて抽出された指定情報72は、切替制御部35に送られ、コマンド生成部31により切り替えコマンドが生成される(ステップS31)。ここでの切り替えコマンドは、8バイト長のコマンド構造を有し、第二プロトコルへの切り替えを要求するコマンドIDを含んでいる。
【0059】
生成された切り替えコマンドは、第一暗号処理部41へ送信されて暗号化される(ステップS32)。暗号化された切り替えコマンドは第一通信部51へ送られ、さらに半導体メモリ装置2へ送信される(ステップS33)。送信された切り替えコマンドは、第一暗号処理部631により復号され(ステップS34)、コマンド解析部65によりコマンドが解析される(ステップS35)。
【0060】
このときの切り替えコマンドは、通信プロトコルを第二プロトコルへ切り替えることを示している。したがって、コマンド解析部65は、第二プロトコルでデータ通信するための制御信号を、暗号処理選択部67及び通信プロトコル選択部69に入力する。これにより、第二暗号処理部633と第二インターフェース部613とが選択されることとなる(ステップS36)。以上の動作により、情報処理装置1と半導体メモリ装置2との間で、第二プロトコルに準拠したデータ通信が可能となる。
【0061】
<1.2.3. 第二プロトコルでの通信>
図5は、第二プロトコルでの通信手順の詳細を示す流れ図である。第二プロトコルでの通信が開始されると、まず、情報処理装置1において半導体メモリ装置2へのアクセス要求が発生しているかどうかが判定される(ステップS41)。
【0062】
アクセス要求がある場合、情報処理装置1は、第二プロトコルに準拠した読み出しコマンドを半導体メモリ装置2に発行する(ステップS42)。具体的には、コマンド生成部31が、読み出しを要求するコマンドIDと、目的のデータの保存先を示すアドレス情報とで構成される16バイト長の読み出しコマンドを生成し、第二暗号処理部43に送信する。送信された読み出しコマンドは、第二暗号処理部43により暗号化されて第二通信部53に送られ、さらに半導体メモリ装置2に送信される。なお、ステップS41においてアクセス要求がない場合、アクセス要求が発生するまで情報処理装置1はアイドル状態となる。
【0063】
暗号化された読み出しコマンドは、第二インターフェース部613を介して第二暗号処理部633に転送されて復号される(ステップS43)。復号された読み出しコマンドは、コマンド解析部65に送られ、コマンドが解析される(ステップS44)。
【0064】
読み出しコマンドには、通信プロトコルを指定する情報は含まれていないため、メモリシステム100では、引き続き第二プロトコルに準拠したデータ通信が行われる。そのため、コマンド解析部65は、第二プロトコルでデータ通信するための制御信号を暗号処理選択部67及び通信プロトコル選択部69に入力する。これにより、第二暗号処理部633と第二インターフェース部613とが再び選択されることとなる(ステップS45)。
【0065】
また、コマンド解析部65は、読み出しコマンドから抽出されるアドレス情報に基づき、メモリコア7から目的のデータの読み出しを実行する(ステップS46)。メモリコア7において、読み出しを要求されたデータの出力準備が完了すると、メモリコア7は、第二暗号処理部633に対して、読み出したデータを送信するとともに、Ready信号を入力する。これにより、第二暗号処理部633において、読み出しデータの暗号化が開始される(ステップS47)。
【0066】
第二インターフェース部613は、第二暗号処理部633から入力される送信準備完了信号に基づいて、第二暗号処理部633が暗号化したデータの送信準備を完了しているかどうかを判定する(ステップS48)。送信準備が完了している場合、第二インターフェース部613は、第二暗号処理部633から送られてきたデータについて、情報処理装置1への送信を開始する(ステップS49)。一方、送信準備が完了していない場合、第二インターフェース部613は、送信準備が完了するまで待機する。情報処理装置1に送信されたデータは、第二暗号処理部43において復号され、情報処理装置1にて適宜加工等の処理がなされる。
【0067】
なお、ステップS4のデータ通信において、通信プロトコルを第二プロトコルから再び第一プロトコルへ移行するようにしてもよい。この場合、第一プロトコルを指定する指定情報を含んだデータを、予めメモリコア7に格納しておき、情報処理装置1がこのデータを読み出すことで、通信プロトコルを第一プロトコルへ切り替えるようにすればよい。
【0068】
また、第一暗号処理部41、第一暗号処理部631で使用される鍵(第一鍵)や、第二暗号処理部43、第二暗号処理部633で使用される鍵(第二鍵)は、常に同じものである必要はなく、適宜に更新されてもよい。このような場合、CPU3で生成した新たな鍵情報を、情報処理装置1と半導体メモリ装置2とで共有するようにすればよい。
【0069】
<1.3. 効果>
以上のように、本実施形態のメモリシステム100では、信号の送受信方法が互いに相違する複数の通信プロトコルにてデータ通信が行われる。したがって、メモリシステム100の動作仕様を解析することが困難となるため、メモリシステム100のセキュリティ機能を向上することができる。
【0070】
なお、メモリシステム100における暗号アルゴリズムとして、公開鍵暗号方式のRSAアルゴリズムや、処理毎に鍵長を変化させて暗号化する暗号アルゴリズムを実装する場合、第二暗号処理部633から第二インターフェース部613に対して出力準備が完了するまでの時間が、処理毎に変化する。
【0071】
ここで、本実施形態の第二プロトコルでは、第二暗号処理部633による暗号化データの出力準備が完了するまで、情報処理装置1へのデータ送信が開始されないようにしている。そこで、第二暗号処理部633に、上述のような暗号アルゴリズムを実装することで、データの安全性を確保するとともに、データ送信のタイミングをデータ毎に変化させることができる。したがって、メモリシステム100の動作仕様の解析をより困難にすることができる。
【0072】
<2. 第2実施形態>
第1実施形態のメモリシステム100では、メモリコア7に格納された指定情報72が情報処理装置1に認識されることにより、通信プロトコルの切り替えを実行している。しかし、通信プロトコルの切り替え方法は、このようなものに限られるものではない。
【0073】
<2.1. 構成及び機能>
図6は、第2実施形態に係るメモリシステム100aを示すブロック図である。なお、本実施の形態の説明において、第1実施形態と同様の機能を有する要素については同一符号を付してその説明を省略する。
【0074】
本実施形態の情報処理装置1aは、真性または疑似的な2進乱数を発生させる乱数生成部8を備えている。CPU3aの動作により実現される切替制御部35aは、乱数生成部8が生成する2進乱数に基づき、データ通信に使用する通信プロトコル(第一プロトコルまたは第二プロトコル)を決定する。切替制御部35aは、決定された通信プロトコルに切り替えるための切り替えコマンドをコマンド生成部31aに生成させる。
【0075】
<2.2. 動作>
図7は、メモリシステム100aの動作を示す流れ図である。情報処理装置1aは、電源が投入された後に所定の初期設定を行い、監視状態となる。監視状態においてCPU3aは、半導体メモリ装置2へのアクセス要求が発生したか否か(ステップS51)及び終了指示があったか否か(ステップS58)を監視する。
【0076】
半導体メモリ装置2へのアクセス要求があった場合、CPU3は、ステップS51においてYesと判定し、乱数生成部8に2進乱数を生成させる(ステップS52)。切替制御部35aは、生成された2進乱数に基づき、使用すべき通信プロトコルが第一プロトコルか否かを判定する(ステップS53)。
【0077】
第一プロトコルが選択される場合(ステップS53においてYES)、情報処理装置1aは、通信プロトコルを第一プロトコルへ切り替える動作を実行する(ステップS54)。この切り替え動作は、第1実施形態におけるステップS3(
図2,4参照)と同様の手順で実行される。
【0078】
具体的には、ステップS53の時点で使用されている通信プロトコルに準拠して、第一プロトコルを指定する切り替えコマンドが、情報処理装置1aから半導体メモリ装置2へ発行される。この切り替えコマンドに基づき、半導体メモリ装置2は使用する通信プロトコルを第一プロトコルに設定する。そして情報処理装置1aは、第一プロトコルに準拠して、半導体メモリ装置2とのデータ通信を実行する(ステップS55)。
【0079】
一方、第二プロトコルが選択される場合(ステップS53においてNO)、情報処理装置1は、通信プロトコルを第二プロトコルへ切り替える動作を実行する(ステップS56)。具体的には、ステップS54と同様に、ステップS53の時点で使用されている通信プロトコルに準拠して、第二プロトコルを指定する切り替えコマンドが、情報処理装置1から半導体メモリ装置2へ発行される。この切り替えコマンドに基づき、半導体メモリ装置2は、使用する通信プロトコルを第二プロトコルに設定する。そして、情報処理装置1aは第二プロトコルに準拠して、半導体メモリ装置2とのデータ通信を実行する(ステップS57)。
【0080】
なお、本実施形態では、アクセス要求が発生する度に使用する通信プロトコルを決定しているが、通信プロトコルの決定のタイミングは、このようなものに限られない。例えば、所定の時間が経過したとき、または、通信回数が所定数を越えたときに、使用する通信プロトコルを決定し直すようにしてもよい。
【0081】
<2.3. 効果>
本実施形態によれば、使用する通信プロトコルがランダムに切り替わるため、メモリシステム100の動作仕様の解析を困難にすることができる。これにより、データの不正コピー等を効果的に抑制できる。
【0082】
<3. 第3実施形態>
上記実施形態では、特定の通信プロトコルに対して、使用される暗号処理部が固定されているが、通信プロトコルと暗号処理部との組み合わせは、固定されるものに限られない。
【0083】
図8は、第3実施形態に係るメモリシステム100bを示すブロック図である。情報処理装置1bが備えるCPU3bは、暗号処理部4aや通信部5aに対して、暗号処理及び通信を実行する要素を選択するための選択信号を入力する。
【0084】
また、切替制御部35bは、乱数生成部8が生成する2進乱数に基づいて、メモリシステム100bにおいて使用する通信プロトコルを決定するとともに、情報処理装置1と半導体メモリ装置2との間でやり取りするコマンドやデータを暗号化するための暗号アルゴリズムについても決定する。
【0085】
コマンド生成部31bは、切替制御部35bにより決定された通信プロトコル及び暗号アルゴリムズを用いてデータ通信を行うように、動作モードを切り替えるための切り替えコマンドを生成する。半導体メモリ装置2では、コマンド解析部65がこの切り替えコマンドを解析することで、暗号処理選択部67及び通信プロトコル選択部69に対して暗号アルゴリズム及び通信プロトコルを切り替えるための制御信号を入力する。
【0086】
本実施形態に係るメモリシステム100bでは、2種類の通信プロトコルと、2種類の暗号処理部を自在に組み合わせることで、計4パターン(=2×2)のデータ通信を実現することができる。このように、情報処理装置1と半導体メモリ装置2との間で、暗号アルゴリズムと通信プロトコルとの組み合わせを自由に変更することで、メモリコア7に対する不正なアクセスをより効果的に抑制できる。
【0087】
<4. 変形例>
以上、本発明の実施の形態について説明してきたが、本発明は上記実施の形態に限定されるものではなく様々な変形が可能である。
【0088】
例えば、上記実施形態では、コマンドを第一暗号処理部,第二暗号処理部により暗号化して半導体メモリ装置に転送するようにしているが、暗号化せずにそのまま転送するようにしてもよい。
【0089】
また、上記実施形態では、情報処理装置と半導体メモリ装置との間で、2種類の通信プロトコル及び2種類の暗号アルゴリズムを使って、データ通信を行うようにしているが、より多くの通信プロトコル、暗号アルゴリズムを用いたデータ通信を行えるようにメモリシステムを構成してもよい。
【0090】
また、上記実施形態では、指定情報72や乱数生成部8が生成する2進乱数に基づき、通信プロトコルの切り替えが実行されているが、切り替え方法はこのようなものに限定されない。例えば、読み出すデータに応じて、切替制御部等がどの通信プロトコルを使用すべきかを決定し、適宜通信プロトコルを切り替えるようにしてもよい。
【0091】
例えば、重要なデータ(不正に取得されたくないデータなど)については、暗号処理に多くの時間がかかるものの、暗号強度の強い通信プロトコルを使用し、その他のデータについては、暗号処理が比較的短時間ですむ通信プロトコルを使用して、データ通信が行われるようにする。これによれば、重要なデータを解読されにくくしつつ、且つ効率的なデータ通信を実現できる。
【0092】
また、通信プロトコル毎に、メモリコア7のアクセス可能なメモリ領域を制限してもよい。例えば、通信プロトコル毎に暗号強度が異なる場合において、暗号強度の高い通信プロトコルの場合にのみアクセス可能なメモリ領域に重要なデータを格納しておくことで、データの機密性を向上することができる。
【0093】
また、図中に示すブロックの一部または全部を、専用の論理回路によりハードウェア的に実現してもよいし、CPUによりソフトウェア的に実現してもよい。
【0094】
さらに上記各実施形態及び各変形例で説明した各構成は、相互に矛盾しない限り適宜組合わせることができる。