(57)【要約】【課題】従来よりもセキュリティ性が向上されたメモリシステムを得る。【解決手段】変換部４及び解析部９において、コマンドとデータ列との対応関係が、採用されるインデックス値に応じて可変である。つまり、コマンドとデータ列とが一対一に対応しておらず、その対応関係がダイナミックに変化する。従って、攻撃者によってスクランブル化や暗号化等の他のセキュリティ技術が突破されたとしても、平文のデータ列が見えていることを攻撃者が気付きにくい。仮に気付いたとしても、データ列とコマンドとの対応関係を推定することが困難である。これにより、セキュリティ性を向上することが可能となる。【選択図】図２
2008117111.tif 000002
【特許請求の範囲】
【請求項１】
メモリと、
前記メモリに対するコマンドをデータ列に変換する変換部と、
前記変換部によって変換された前記データ列に基づいて前記コマンドを解析する解析部と
を備え、
前記変換部及び前記解析部において、前記コマンドと前記データ列との対応関係は可変である、メモリシステム。
【請求項２】
前記変換部及び前記解析部は、コマンド毎に複数種類のデータ列が記述された変換テーブルに基づいて、前記対応関係を変更する、請求項１に記載のメモリシステム。
【請求項３】
前記複数種類のデータ列から一のデータ列を選択するための複数のルールが用意されており、
前記変換部及び前記解析部は、前記複数のルールの中から一のルールを選択可能である、請求項２に記載のメモリシステム。
【請求項４】
前記変換部及び前記解析部は、コマンド毎にデータ列が記述された変換テーブルに基づいて、前記対応関係を変更し、
前記変換テーブルは複数種類用意されており、
前記変換部及び前記解析部は、所定のタイミング毎に、前記変換テーブルを更新する、請求項１に記載のメモリシステム。
【請求項５】
前記変換部及び前記解析部は、データ列のフォーマットが複数種類記述された変換テーブルに基づいて、前記対応関係を変更する、請求項１に記載のメモリシステム。
【請求項６】
複数種類の前記フォーマットから一のフォーマットを選択するための複数のルールが用意されており、
前記変換部及び前記解析部は、前記複数のルールの中から一のルールを選択可能である、請求項５に記載のメモリシステム。
【請求項７】
前記変換テーブルは複数種類用意されており、
前記変換部及び前記解析部は、所定のタイミング毎に、前記変換テーブルを更新する、請求項５に記載のメモリシステム。
【請求項８】
前記所定のタイミングは、特定のコマンドが所定回数発行されたタイミングである、請求項４又は７に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリシステムに関する。
【背景技術】
【０００２】
半導体メモリを着脱自在に接続することによって、当該半導体メモリに記憶されているソフトウェアプログラムやデータ等を利用する情報処理装置が知られている。
【０００３】
このような半導体メモリの中には、内部に記憶されているデータ等の機密を保護するために、特定のセキュリティ技術が搭載されているものがある。例えば下記特許文献１には、所定のキーデータを利用してデータを暗号化する技術が開示されている。
【０００４】
【特許文献１】特開平９−１０６６９０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１に開示された技術のようにキーデータを利用してデータの暗号化を行う場合であっても、半導体メモリと情報処理装置との間で行われる通信の内容を観測することが可能であるため、大量のサンプルを解析することで暗号が解読される可能性があり、セキュリティ性が十分とはいえない。
【０００６】
本発明はかかる事情に鑑みて成されたものであり、従来よりもセキュリティ性が向上されたメモリシステムを得ることを目的とする。
【課題を解決するための手段】
【０００７】
第１の発明に係るメモリシステムは、メモリと、前記メモリに対するコマンドをデータ列に変換する変換部と、前記変換部によって変換された前記データ列に基づいて前記コマンドを解析する解析部とを備え、前記変換部及び前記解析部において、前記コマンドと前記データ列との対応関係は可変であることを特徴とする。
【０００８】
第２の発明に係るメモリシステムは、第１の発明に係るメモリシステムにおいて特に、前記変換部及び前記解析部は、コマンド毎に複数種類のデータ列が記述された変換テーブルに基づいて、前記対応関係を変更することを特徴とする。
【０００９】
第３の発明に係るメモリシステムは、第２の発明に係るメモリシステムにおいて特に、前記複数種類のデータ列から一のデータ列を選択するための複数のルールが用意されており、前記変換部及び前記解析部は、前記複数のルールの中から一のルールを選択可能であることを特徴とする。
【００１０】
第４の発明に係るメモリシステムは、第１の発明に係るメモリシステムにおいて特に、前記変換部及び前記解析部は、コマンド毎にデータ列が記述された変換テーブルに基づいて、前記対応関係を変更し、前記変換テーブルは複数種類用意されており、前記変換部及び前記解析部は、所定のタイミング毎に、前記変換テーブルを更新することを特徴とする。
【００１１】
第５の発明に係るメモリシステムは、第１の発明に係るメモリシステムにおいて特に、前記変換部及び前記解析部は、データ列のフォーマットが複数種類記述された変換テーブルに基づいて、前記対応関係を変更することを特徴とする。
【００１２】
第６の発明に係るメモリシステムは、第５の発明に係るメモリシステムにおいて特に、複数種類の前記フォーマットから一のフォーマットを選択するための複数のルールが用意されており、前記変換部及び前記解析部は、前記複数のルールの中から一のルールを選択可能であることを特徴とする。
【００１３】
第７の発明に係るメモリシステムは、第５の発明に係るメモリシステムにおいて特に、前記変換テーブルは複数種類用意されており、前記変換部及び前記解析部は、所定のタイミング毎に、前記変換テーブルを更新することを特徴とする。
【００１４】
第８の発明に係るメモリシステムは、第４又は第７の発明に係るメモリシステムにおいて特に、前記所定のタイミングは、特定のコマンドが所定回数発行されたタイミングであることを特徴とする。
【発明の効果】
【００１５】
第１の発明に係るメモリシステムによれば、変換部及び解析部においてコマンドとデータ列との対応関係が可変である。つまり、コマンドとデータ列とが一対一に対応しない。従って、攻撃者が平文のデータ列を解析してもデータ列とコマンドとの対応関係を推定することが困難であるため、セキュリティ性を向上することが可能となる。
【００１６】
第２の発明に係るメモリシステムによれば、コマンド毎に複数種類のデータ列が記述された変換テーブルを用いることにより、コマンドとデータ列との対応関係を容易かつ確実に変更することが可能となる。
【００１７】
第３の発明に係るメモリシステムによれば、複数種類のデータ列から一のデータ列を選択するためのルール自体をも複数の中から選択可能とすることにより、セキュリティ性をより向上することが可能となる。
【００１８】
第４の発明に係るメモリシステムによれば、コマンド毎にデータ列が記述された変換テーブルを複数種類用意しておき、所定のタイミングで変換テーブルを順次更新することにより、コマンドとデータ列との対応関係を容易かつ確実に変更することが可能となる。
【００１９】
第５の発明に係るメモリシステムによれば、データ列のフォーマットが複数種類記述された変換テーブルを用いることにより、コマンドとデータ列との対応関係を容易かつ確実に変更することが可能となる。
【００２０】
第６の発明に係るメモリシステムによれば、複数種類のフォーマットから一のフォーマットを選択するためのルール自体をも複数の中から選択可能とすることにより、セキュリティ性をより向上することが可能となる。
【００２１】
第７の発明に係るメモリシステムによれば、複数種類の変換テーブルを所定のタイミングで順次更新することにより、セキュリティ性をより向上することが可能となる。
【００２２】
第８の発明に係るメモリシステムによれば、特定のコマンドが所定回数発行されたタイミングで変換テーブルを更新することにより、コマンドとデータ列との対応関係を容易かつ確実に変更することが可能となる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
【００２４】
図１は、本発明の実施の形態に係るメモリシステムの構成を示すブロック図である。図１を参照して、本実施の形態に係るメモリシステムは、情報処理装置１と半導体メモリ２とを備えて構成されている。例えば、半導体メモリ２は、情報処理装置１に着脱自在に接続可能なメモリカードである。
【００２５】
情報処理装置１は、ＣＰＵ３、変換部４、送信部５、キャッシュメモリ６、及び受信部７を備えて構成されている。半導体メモリ２は、受信部８、解析部９、メモリセルアレイ１０、キャッシュメモリ１１、及び送信部１２を備えて構成されている。但し、半導体メモリ２において、高速にアクセス可能なメモリセルアレイ１０が採用されている場合には、メモリセルアレイ１０と別個にキャッシュメモリ１１を配設する必要はなく、キャッシュメモリ１１の記憶容量に相当する記憶領域をメモリセルアレイ１０内の一部に割り当てれば良い。
【００２６】
図２は、図１に示したキャッシュメモリ６，１１内に格納される変換テーブル２０を示す図である。図２では簡単化のため、インデックス値として「０」〜「４」が割り当てられた例を示している。また、３種類のコマンドＣＭＤ１〜ＣＭＤ３が定義された例を示している。変換テーブル２０は、コマンドとデータ列との対応関係を示すものである。例えば、インデックス値が「０」である場合、コマンドＣＭＤ１に対応するデータ列は「００」（１６進数。以下同様。）、コマンドＣＭＤ２に対応するデータ列は「４４」、コマンドＣＭＤ３に対応するデータ列は「８８」となる。また、インデックス値が「１」である場合、コマンドＣＭＤ１に対応するデータ列は「８８」、コマンドＣＭＤ２に対応するデータ列は「００」、コマンドＣＭＤ３に対応するデータ列は「４４」となる。このように、変換テーブル２０には、各コマンドＣＭＤ１，ＣＭＤ２，ＣＭＤ３毎に複数種類（図２に示した例では３種類）のデータ列がそれぞれ記述されている。従って、複数のインデックス値のうちのどの値を採用するかによって、コマンドとデータ列との対応関係が可変である。
【００２７】
図３は、インデックス値を決定するための処理部３０の構成を示すブロック図である。図３に示した例では、インデックス値を選択するための複数種類（ここでは２種類）のルールＲ１，Ｒ２が用意されている。例えば、ルールＲ１は、これまでに発行されたコマンドの数を「５」で除算した余りをインデックス値とするものであり、ルールＲ２は、疑似乱数（以下「ＰＮ」と称す）を「５」で除算した余りをインデックス値とするものである。ルールＲ２はＰＮを用いるため、ルールＲ１よりもインデックス値のランダム性が高くなる。
【００２８】
図３を参照して、選択部３１は、選択信号Ｓ１に基づいて、ルールＲ１，Ｒ２の中から一方のルールを選択する。選択信号Ｓ１は、例えば、要求されるセキュリティレベルであり、セキュリティレベルが所定レベルより低い場合はルールＲ１が選択され、高い場合はルールＲ２が選択される。
【００２９】
カウンタ３３は、これまでに発行されたコマンドの数をカウントし、そのコマンド発行数に関する情報を信号Ｓ２として演算部３２に入力する。また、ＰＮ発生部３４が発生したＰＮは、信号Ｓ３として演算部３２に入力される。
【００３０】
選択部３１によってルールＲ１が選択された場合、演算部３２は、信号Ｓ２に基づいて、コマンド発行数を「５」で除算し、その除算した余りをインデックス値Ｓ４として出力する。一方、選択部３１によってルールＲ２が選択された場合、演算部３２は、信号Ｓ３に基づいて、ＰＮを「５」で除算し、その除算した余りをインデックス値Ｓ４として出力する。
【００３１】
以下、本実施の形態に係るメモリシステムの動作について説明する。図１を参照して、ＣＰＵ３は、半導体メモリ２（具体的にはメモリセルアレイ１０）に対するコマンドＤ１を発行する。変換部４は、キャッシュメモリ６に格納されている変換テーブル２０に基づいて、ＣＰＵ３から入力されたコマンドＤ１をデータ列（コマンドデータ列）Ｄ２に変換する。図２を参照して、例えば、インデックス値として「２」が採用されており、コマンドＤ１がコマンドＣＭＤ１であった場合、変換部４は「４４」なるデータ列Ｄ２を出力する。
【００３２】
図１を参照して、送信部５は、変換部４から入力されたデータ列Ｄ２を半導体メモリ２に向けて送信する。受信部８は、送信部５から送信されたデータ列Ｄ２を受信し、後段の解析部９に入力する。解析部９は、キャッシュメモリ１１に格納されている変換テーブル２０を参照して、受信部８から入力されたデータ列Ｄ２に基づいてコマンドＤ３を解析する。ここで、キャッシュメモリ１１には、キャッシュメモリ６に格納されている変換テーブル２０と同一の変換テーブル２０が格納されている。但し、物理的に同一である必要はなく、コマンドとデータ列との対応関係が同一であればよい。また、キャッシュメモリ６に格納されている変換テーブル２０と、キャッシュメモリ１１に格納されている変換テーブル２０とでは、同一のインデックス値が同時に採用されている。従って、図２を参照して、解析部９は、インデックス値が「２」であることと、データ列Ｄ２の内容が「４４」であることにより、データ列Ｄ２はコマンドＣＭＤ１に対応していると解析する。
【００３３】
ここで、各キャッシュメモリ６，１１に予め変換テーブル２０が格納されていることにより、キャッシュメモリ６，１１は同一の変換テーブル２０を共有する。あるいは、メモリセルアレイ１０内の特定領域に変換テーブル２０が予め格納されており、システムの電源投入時に、その特定領域から各キャッシュメモリ６，１１に変換テーブル２０が読み出されても良い。あるいは、メモリセルアレイ１０内の特定領域に、変換テーブル２０を作成するための所定のキー情報が予め格納されており、システムの電源投入時に、その特定領域から読み出したキー情報に基づいて例えばＣＰＵ３が変換テーブル２０を作成し、その作成した変換テーブル２０を各キャッシュメモリ６，１１に格納しても良い。
【００３４】
図１を参照して、解析部９から出力されたコマンドＤ３（この例ではコマンドＣＭＤ１）はメモリセルアレイ１０に入力され、メモリセルアレイ１０からデータ列Ｄ４が出力される。データ列Ｄ４は、半導体メモリ２の送信部１２及び情報処理装置１の受信部７をこの順に介して、ＣＰＵ３に送られる。
【００３５】
このように本実施の形態に係るメモリシステムによれば、図２を参照して、変換部４及び解析部９において、コマンドとデータ列との対応関係が、採用されるインデックス値に応じて可変である。つまり、平文の状態でコマンドとデータ列とが一対一に対応しておらず、その対応関係がダイナミックに変化する。従って、攻撃者によってスクランブル化や暗号化等の他のセキュリティ技術が突破されたとしても、平文のデータ列が見えていることを攻撃者が気付きにくい。仮に気付いたとしても、データ列とコマンドとの対応関係を推定することが困難である。これにより、セキュリティ性を向上することが可能となる。
【００３６】
また、コマンド毎に複数種類のデータ列が記述された変換テーブル２０を用いることにより、コマンドとデータ列との対応関係を容易かつ確実に変更することが可能となる。
【００３７】
さらに、複数種類のデータ列から一のデータ列を選択するためのルール自体をも複数のルール（上記の例ではルールＲ１，Ｒ２）の中から選択可能とすることにより、セキュリティ性をより向上することが可能となる。
【００３８】
＜変形例１＞
図４は、変換テーブル４０Ａ〜４０Ｅを示す図である。変換テーブル４０Ａ〜４０Ｅは、上記の変換テーブル２０の代わりに、図１に示したキャッシュメモリ６，１１内に格納される。図４では簡単化のため、５種類の変換テーブル４０Ａ〜４０Ｅが準備され、３種類のコマンドＣＭＤ１〜ＣＭＤ３が定義された例を示している。変換テーブル４０Ａ〜４０Ｅは、コマンドとデータ列との対応関係をそれぞれ示すものである。例えば、変換テーブル４０Ａが採用された場合、コマンドＣＭＤ１に対応するデータ列は「００」、コマンドＣＭＤ２に対応するデータ列は「４４」、コマンドＣＭＤ３に対応するデータ列は「８８」となる。また、変換テーブル４０Ｂが採用された場合、コマンドＣＭＤ１に対応するデータ列は「８８」、コマンドＣＭＤ２に対応するデータ列は「００」、コマンドＣＭＤ３に対応するデータ列は「４４」となる。このように、コマンド毎にデータ列が記述された変換テーブルが複数種類用意されている。従って、複数の変換テーブル４０Ａ〜４０Ｅのうちのどのテーブルを採用するかによって、コマンドとデータ列との対応関係が可変である。
【００３９】
図５は、変換テーブルを選択するための処理部５０の構成を示すブロック図である。図５を参照して、選択部５２は、初期状態において変換テーブル４０Ａを選択している。カウンタ５１は、これまでに発行された特定のコマンド（例えばコマンドＣＭＤ１とする）の数をカウントし、そのコマンド発行数に関する情報を信号Ｓ５として選択部５２に入力する。
【００４０】
選択部５２は、信号Ｓ５に基づいて、所定のタイミング毎に、変換テーブル４０Ｂ→変換テーブル４０Ｃ→変換テーブル４０Ｄ→変換テーブル４０Ｅ→変換テーブル４０Ａ→・・・の順に、変換テーブルを更新する。例えば、特定のコマンド（例えばコマンドＣＭＤ１）が所定回数（例えば３回）発行される毎に、変換テーブルを更新する。あるいは、ＰＮを用いて変換テーブルの更新を行っても良い。具体的には、所定の値（以下「所定値α」と称す）が予め設定されており、ＰＮ発生部で発生されたＰＮの値がその所定値αと等しい場合に、変換テーブルを更新する。ここで、所定値αとして複数の値（例えば所定値α１，α２）が設定されていても良く、この場合は、ＰＮ発生部で順に発生されたＰＮの値が、所定値α１，α２と等しい場合に、変換テーブルを更新する。さらに、複数の所定値のセットを複数種類設定しておき（例えば「所定値α１，α２」「所定値α３，α４」「所定値α５，α６」の３セット）、ＰＮの値と比較する所定値のセットを、所定のルールに従って又はランダムに選択することも可能である。
【００４１】
なお、上記と同様に、キャッシュメモリ６，１１は同一の変換テーブル４０Ａ〜４０Ｅを同時に共有している。
【００４２】
このように、コマンド毎にデータ列が記述された複数の変換テーブル４０Ａ〜４０Ｅを予め用意しておき、特定の条件で変換テーブル４０Ａ〜４０Ｅを順次更新することにより、コマンドとデータ列との対応関係を容易かつ確実に変更することが可能となる。
【００４３】
＜変形例２＞
図６は、変換テーブル６０を示す図である。変換テーブル６０は、上記の変換テーブル２０の代わりに、図１に示したキャッシュメモリ６，１１内に格納される。図６では簡単化のため、インデックス値として「０」〜「３」が割り当てられた例を示している。また、コマンドデータ列のフォーマットが、１バイトのコマンド種別Ｋと、各１バイトのコマンド引数Ｐ１，Ｐ２，Ｐ３とを含んで構成される例を示している。変換テーブル６０の中の「○」印を付した各１バイトには、ダミーデータとしてランダムな値が格納される。また、変換テーブル６０の中の「×」印を付した各１バイトは削除することとして、コマンドデータ列全体のデータ長を可変に設定可能としている。例えば、インデックス値が「０」である場合、７バイト長のコマンドデータ列のフォーマットが採用され、先頭バイトから順に、コマンド種別Ｋ→ランダム値→コマンド引数Ｐ１→ランダム値→コマンド引数Ｐ２→ランダム値→コマンド引数Ｐ３となる。また、インデックス値が「３」である場合、６バイト長のコマンドデータ列のフォーマットが採用され、先頭バイトから順に、コマンド引数Ｐ２→ランダム値→コマンド引数Ｐ３→コマンド種別→ランダム値→コマンド引数Ｐ１となる。コマンド種別Ｋやコマンド引数Ｐ１〜Ｐ３の内容が同じであっても、コマンドデータ列のフォーマットを変更することにより、コマンドとデータ列との対応関係を変更することが可能となる。
【００４４】
なお、インデックス値を決定するためのルールとしては、上記と同様に例えば２種類のルールＲ１，Ｒ２が用意されている。ルールＲ１は、これまでに発行されたコマンドの数を「４」で除算した余りをインデックス値とするものであり、ルールＲ２は、ＰＮを「４」で除算した余りをインデックス値とするものである。インデックス値を決定するための処理部の構成は、図３と同様である。
【００４５】
また、上記と同様に、キャッシュメモリ６，１１は同一の変換テーブル６０を共有している。
【００４６】
このように、コマンドデータ列のフォーマットが複数種類記述された変換テーブル６０を用いることにより、コマンドとデータ列との対応関係を容易かつ確実に変更することが可能となる。
【００４７】
また、複数種類のフォーマットから一のフォーマットを選択するためのルールを複数のルールＲ１，Ｒ２中から選択可能とすることにより、セキュリティ性をより向上することが可能となる。
【００４８】
ここで、上記変形例１と同様に、変換テーブル６０を複数種類用意しておき、所定のタイミング毎に変換テーブルを更新する構成としても良い。変換テーブルを更新する所定のタイミングとしては、上記変形例１と同様に、特定のコマンドが所定回数発行される毎に変換テーブルの更新を行っても良く、あるいは、予め設定された一又は複数の所定値と、ＰＮ発生部で発生したＰＮの値との比較結果に基づいて、変換テーブルの更新を行っても良い。
【００４９】
なお、以上説明した変形例１，２は、上記実施の形態と任意に組み合わせて採用することが可能であり、組み合わせて採用することによってセキュリティ性をより向上することができる。
【図面の簡単な説明】
【００５０】
【図１】本発明の実施の形態に係るメモリシステムの構成を示すブロック図である。
【図２】図１に示したキャッシュメモリ内に格納される変換テーブルを示す図である。
【図３】インデックス値を決定するための処理部の構成を示すブロック図である。
【図４】変換テーブルを示す図である。
【図５】変換テーブルを選択するための処理部の構成を示すブロック図である。
【図６】変換テーブルを示す図である。
【符号の説明】
【００５１】
１  情報処理装置
２  半導体メモリ
３  ＣＰＵ
４  変換部
６，１１  キャッシュメモリ
９  解析部
１０  メモリセルアレイ
２０，４０Ａ〜４０Ｅ，６０  変換テーブル
３０，５０  処理部
【図１】
2008117111.tif 000003
【図２】
2008117111.tif 000004
【図３】
2008117111.tif 000005
【図４】
2008117111.tif 000006
【図５】
2008117111.tif 000007
【図６】
2008117111.tif 000008