しかしながら、上記特許文献1に開示された半導体記憶装置では、大量のサンプルを解析することによって暗号が解読される可能性があり、しかも、外部機器からは半導体メモリの全領域に何の制約もなくアクセス可能である。そのため、一旦暗号が解読されると、半導体メモリに記憶されている全データが不正に復号されてしまうため、セキュリティ性が十分とはいえない。
本発明はかかる事情に鑑みて成されたものであり、従来よりもセキュリティ性が向上された半導体記憶装置を得ることを目的とするものである。
第1の発明に係る半導体記憶装置は、データが格納された第1エリアを有するメモリ部と、外部機器から入力されたコマンド内の第1アドレスに基づいて、前記メモリ部内の第2アドレスを生成するアドレス生成部と、前記コマンド内のコマンド種別の遷移履歴を解析する解析部と、前記解析部による解析の結果に基づき、前記メモリ部へのアクセスが正常であるか不正であるかを判定する判定部と、前記判定部による判定の結果に基づき、前記メモリ部へのアクセスが正常である場合には、前記第1エリアに対応する前記第1アドレスを前記第1エリア内の前記第2アドレスに変換する第1メモリマップを前記アドレス生成部に提供し、一方、前記メモリ部へのアクセスが不正である場合には、前記第1エリアに対応する前記第1アドレスを前記第1エリア内の前記第2アドレスに変換しない第2メモリマップを前記アドレス生成部に提供する、メモリマップ変更部とを備えることを特徴とするものである。
第2の発明に係る半導体記憶装置は、第1の発明に係る半導体記憶装置において特に、前記判定部は、データ記憶領域を有しており、前記データ記憶領域には、前記メモリ部に正常にアクセスした際の前記コマンド種別の遷移履歴に関するサンプルデータが予め格納されており、前記判定部は、前記サンプルデータと、前記解析部によって解析された前記コマンド種別の遷移履歴とを比較することによって、前記メモリ部へのアクセスが正常であるか不正であるかを判定することを特徴とするものである。
第3の発明に係る半導体記憶装置は、第1の発明に係る半導体記憶装置において特に、前記判定部は、データ記憶領域を有しており、前記データ記憶領域には、作為的なアクセスパターンで前記メモリ部にアクセスした際の前記コマンド種別の遷移履歴に関するサンプルデータが予め格納されており、所定の期間内において、前記作為的なアクセスパターンによって前記メモリ部へのアクセスが行われ、前記判定部は、前記サンプルデータと、前記作為的なアクセスパターンによって前記メモリ部へのアクセスが行われた際に前記解析部によって解析された前記コマンド種別の遷移履歴とを比較することによって、前記メモリ部へのアクセスが正常であるか不正であるかを判定することを特徴とするものである。
第4の発明に係る半導体記憶装置は、第1の発明に係る半導体記憶装置において特に、前記判定部は、データ記憶領域を有しており、前記データ記憶領域には、前記外部機器の起動時に前記外部機器が前記メモリ部にアクセスする際の前記コマンド種別の遷移履歴に関するサンプルデータが予め格納されており、前記判定部は、前記サンプルデータと、前記外部機器の起動時に前記外部機器が前記メモリ部にアクセスした際に前記解析部によって解析された前記コマンド種別の遷移履歴とを比較することによって、前記メモリ部へのアクセスが正常であるか不正であるかを判定することを特徴とするものである。
第5の発明に係る半導体記憶装置は、第2〜第4のいずれか一つの発明に係る半導体記憶装置において特に、前記サンプルデータは複数であることを特徴とするものである。
第6の発明に係る半導体記憶装置は、データが格納された第1エリアを有するメモリ部と、外部機器から入力されたコマンド内の第1アドレスに基づいて、前記メモリ部内の第2アドレスを生成するアドレス生成部と、前記コマンド内のコマンド種別及び前記第1アドレスの双方の遷移履歴を解析する解析部と、前記解析部による解析の結果に基づき、前記メモリ部へのアクセスが正常であるか不正であるかを判定する判定部と、前記判定部による判定の結果に基づき、前記メモリ部へのアクセスが正常である場合には、前記第1エリアに対応する前記第1アドレスを前記第1エリア内の前記第2アドレスに変換する第1メモリマップを前記アドレス生成部に提供し、一方、前記メモリ部へのアクセスが不正である場合には、前記第1エリアに対応する前記第1アドレスを前記第1エリア内の前記第2アドレスに変換しない第2メモリマップを前記アドレス生成部に提供する、メモリマップ変更部とを備えることを特徴とするものである。
第7の発明に係る半導体記憶装置は、第6の発明に係る半導体記憶装置において特に、前記判定部は、データ記憶領域を有しており、前記データ記憶領域には、前記メモリ部に正常にアクセスした際の前記コマンド種別及び前記第1アドレスの双方の遷移履歴に関するサンプルデータが予め格納されており、前記判定部は、前記サンプルデータと、前記解析部によって解析された前記コマンド種別及び前記第1アドレスの双方の遷移履歴とを比較することによって、前記メモリ部へのアクセスが正常であるか不正であるかを判定することを特徴とするものである。
第8の発明に係る半導体記憶装置は、第6の発明に係る半導体記憶装置において特に、前記判定部は、データ記憶領域を有しており、前記データ記憶領域には、作為的なアクセスパターンで前記メモリ部にアクセスした際の前記コマンド種別及び前記第1アドレスの双方の遷移履歴に関するサンプルデータが予め格納されており、所定の期間内において、前記作為的なアクセスパターンによって前記メモリ部へのアクセスが行われ、前記判定部は、前記サンプルデータと、前記作為的なアクセスパターンによって前記メモリ部へのアクセスが行われた際に前記解析部によって解析された前記コマンド種別及び前記第1アドレスの双方の遷移履歴とを比較することによって、前記メモリ部へのアクセスが正常であるか不正であるかを判定することを特徴とするものである。
第9の発明に係る半導体記憶装置は、第6の発明に係る半導体記憶装置において特に、前記判定部は、データ記憶領域を有しており、前記データ記憶領域には、前記外部機器の起動時に前記外部機器が前記メモリ部にアクセスする際の前記コマンド種別及び前記第1アドレスの双方の遷移履歴に関するサンプルデータが予め格納されており、前記判定部は、前記サンプルデータと、前記外部機器の起動時に前記外部機器が前記メモリ部にアクセスした際に前記解析部によって解析された前記コマンド種別及び前記第1アドレスの双方の遷移履歴とを比較することによって、前記メモリ部へのアクセスが正常であるか不正であるかを判定することを特徴とするものである。
第10の発明に係る半導体記憶装置は、第7〜第9のいずれか一つの発明に係る半導体記憶装置において特に、前記サンプルデータは複数であることを特徴とするものである。
第11の発明に係る半導体記憶装置は、第6の発明に係る半導体記憶装置において特に、前記判定部は、データ記憶領域を有しており、前記データ記憶領域には、前記メモリ部に正常にアクセスした際のシーケンシャルアクセスの最大値に関するデータが予め格納されており、前記判定部は、前記メモリ部へのシーケンシャルアクセス数が前記最大値を超えた場合に、前記メモリ部へのアクセスが不正であると判定することを特徴とするものである。
第12の発明に係る半導体記憶装置は、第1〜第11のいずれか一つの発明に係る半導体記憶装置において特に、前記メモリ部は、ダミーデータが格納された第2エリアをさらに有しており、前記第2メモリマップは、前記第1エリアに対応する前記第1アドレスを前記第2エリア内の前記第2アドレスに変換するメモリマップであることを特徴とするものである。
第13の発明に係る半導体記憶装置は、第12の発明に係る半導体記憶装置において特に、前記ダミーデータは、不正なアクセスに対する警告データであることを特徴とするものである。
第14の発明に係る半導体記憶装置は、第1〜第11のいずれか一つの発明に係る半導体記憶装置において特に、前記メモリ部は、前記第1エリア内に格納されている前記データよりも秘匿性の低いデータが格納された第2エリアをさらに有しており、前記第2メモリマップは、前記第1エリアに対応する前記第1アドレスを前記第2エリア内の前記第2アドレスに変換するメモリマップであることを特徴とするものである。
第1の発明に係る半導体記憶装置によれば、コマンド種別の遷移履歴に基づいて、メモリ部へのアクセスが正常であるか不正であるかが判定される。そして、メモリマップ変更部は、メモリ部へのアクセスが不正である場合には、第1エリアに対応する第1アドレスを第1エリア内の第2アドレスに変換しない第2メモリマップを、アドレス生成部に提供する。その結果、外部機器からはメモリ部の第1エリアにはアクセスすることができないため、第1エリアに格納されている秘匿性の高いデータが、不正なアクセスによって外部に読み出されることを回避できる。
第2の発明に係る半導体記憶装置によれば、メモリ部に正常にアクセスした際のコマンド種別の遷移履歴に関するサンプルデータが、事前に作成され、予めデータ記憶領域に格納されている。従って、このサンプルデータと、実際のメモリ動作時に解析部によって解析されたコマンド種別の遷移履歴とを比較することによって、メモリ部へのアクセスが正常であるか不正であるかを簡易かつ正確に判定することができる。
第3の発明に係る半導体記憶装置によれば、作為的なアクセスパターンでメモリ部にアクセスした際のコマンド種別の遷移履歴に関するサンプルデータが、事前に作成され、予めデータ記憶領域に格納されている。従って、このサンプルデータと、作為的なアクセスパターンによってメモリ部へのアクセスが行われた際に解析部によって解析されたコマンド種別の遷移履歴とを比較することによって、メモリ部へのアクセスが正常であるか不正であるかを簡易かつ正確に判定することができる。
第4の発明に係る半導体記憶装置によれば、外部機器の起動時に外部機器がメモリ部にアクセスする際のコマンド種別の遷移履歴に関するサンプルデータが、事前に作成され、予めデータ記憶領域に格納されている。従って、このサンプルデータと、外部機器の起動時に外部機器がメモリ部にアクセスした際に解析部によって解析されたコマンド種別の遷移履歴とを比較することによって、メモリ部へのアクセスが正常であるか不正であるかを簡易かつ正確に判定することができる。
第5の発明に係る半導体記憶装置によれば、複数のサンプルデータを準備しておくことにより、判定部は、プログラムの進行状況等に応じて適切なサンプルデータを用いて、比較を行うことができる。その結果、メモリ部へのアクセスが正常であるか不正であるかを、より正確に判定することができる。
第6の発明に係る半導体記憶装置によれば、コマンド種別及び第1アドレスの双方の遷移履歴に基づいて、メモリ部へのアクセスが正常であるか不正であるかが判定される。そして、メモリマップ変更部は、メモリ部へのアクセスが不正である場合には、第1エリアに対応する第1アドレスを第1エリア内の第2アドレスに変換しない第2メモリマップを、アドレス生成部に提供する。その結果、外部機器からはメモリ部の第1エリアにはアクセスすることができないため、第1エリアに格納されている秘匿性の高いデータが、不正なアクセスによって外部に読み出されることを回避できる。しかも、コマンド種別及び第1アドレスの双方の遷移履歴に基づいて判定が行われるため、いずれか一方のみを用いて判定を行う場合と比較すると、判定の信頼性が高い。
第7の発明に係る半導体記憶装置によれば、メモリ部に正常にアクセスした際のコマンド種別及び第1アドレスの双方の遷移履歴に関するサンプルデータが、事前に作成され、予めデータ記憶領域に格納されている。従って、このサンプルデータと、実際のメモリ動作時に解析部によって解析されたコマンド種別及び第1アドレスの双方の遷移履歴とを比較することによって、メモリ部へのアクセスが正常であるか不正であるかを簡易かつ正確に判定することができる。
第8の発明に係る半導体記憶装置によれば、作為的なアクセスパターンでメモリ部にアクセスした際のコマンド種別及び第1アドレスの双方の遷移履歴に関するサンプルデータが、事前に作成され、予めデータ記憶領域に格納されている。従って、このサンプルデータと、作為的なアクセスパターンによってメモリ部へのアクセスが行われた際に解析部によって解析されたコマンド種別及び第1アドレスの双方の遷移履歴とを比較することによって、メモリ部へのアクセスが正常であるか不正であるかを簡易かつ正確に判定することができる。
第9の発明に係る半導体記憶装置によれば、外部機器の起動時に外部機器がメモリ部にアクセスする際のコマンド種別及び第1アドレスの双方の遷移履歴に関するサンプルデータが、事前に作成され、予めデータ記憶領域に格納されている。従って、このサンプルデータと、外部機器の起動時に外部機器がメモリ部にアクセスした際に解析部によって解析されたコマンド種別及び第1アドレスの双方の遷移履歴とを比較することによって、メモリ部へのアクセスが正常であるか不正であるかを簡易かつ正確に判定することができる。
第10の発明に係る半導体記憶装置によれば、複数のサンプルデータを準備しておくことにより、判定部は、プログラムの進行状況等に応じて適切なサンプルデータを用いて、比較を行うことができる。その結果、メモリ部へのアクセスが正常であるか不正であるかを、より正確に判定することができる。
第11の発明に係る半導体記憶装置によれば、メモリ部に正常にアクセスした際のシーケンシャルアクセスの最大値が、事前に求められて、その最大値に関するデータが予めデータ記憶領域に格納されている。従って、実際のメモリ動作時においてメモリ部へのシーケンシャルアクセス数がその最大値を超えた場合には、メモリ部へのアクセスが不正であると判定することにより、メモリ部へのアクセスが正常であるか不正であるかを簡易かつ正確に判定することができる。特に、不正アクセス者はシーケンシャルアクセスによってメモリ部にアクセスしてくることが多いため、このような場合に効果が大きい。
第12の発明に係る半導体記憶装置によれば、メモリ部の第2エリアには、ダミーデータが格納されている。そして、メモリ部へのアクセスが不正である場合には、第1エリアに対応する第1アドレスは、第2エリア内の第2アドレスに変換される。従って、メモリ部へのアクセスが不正である場合には、メモリ部からダミーデータが読み出されて外部機器に送信されるため、不正アクセス者による暗号解読処理等を効果的に妨害することができる。
第13の発明に係る半導体記憶装置によれば、メモリ部へのアクセスが不正である場合には、不正アクセスに対する警告データがメモリ部から読み出されて、外部機器に送信される。従って、この警告データが外部機器において画面表示又は音声出力されることにより、不正アクセスに対する抑止力を高めることができる。
第14の発明に係る半導体記憶装置によれば、メモリ部の第2エリアには、秘匿性の低いデータが格納されている。そして、メモリ部へのアクセスが不正である場合には、第1エリアに対応する第1アドレスは、第2エリア内の第2アドレスに変換される。従って、メモリ部へのアクセスが不正である場合には、メモリ部から秘匿性の低いデータが読み出されて外部機器に送信されるため、不正アクセス者による暗号解読処理等を効果的に妨害することができる。
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
実施の形態1.
図1は、本発明の実施の形態1に係る半導体記憶装置1Aの構成を示すブロック図である。半導体記憶装置1Aは例えばメモリカードであり、ホストコンピュータ等の外部機器10に着脱自在に接続可能である。
図1に示すように半導体記憶装置1Aは、入出力部2、コマンド解析部3、コマンド実行部4、メモリ部5、解析部6A、判定部7、及びメモリマップ変更部8を備えて構成されている。メモリ部5は、ROM、RAM、又はフラッシュメモリ等の半導体メモリである。コマンド実行部4は、アドレス生成部9を有している。判定部7は、データ記憶領域11を有している。図1に示した例では、データ記憶領域11は、メモリ部5の一部として構成されている。但し、メモリ部5の外部にデータ記憶領域11を設けてもよい。
図2は、メモリ部5の構成を示す図である。図2に示すようにメモリ部5は、共通エリア21、正常エリア22、及びダミーエリア23を有している。正常エリア22には、秘匿性の高いデータが記憶されている。共通エリア21には、正常エリア22に記憶されているデータよりも秘匿性の低いデータ、例えば起動処理に必要なデータが記憶されている。ダミーエリア23には、ダミーデータが記憶されている。ダミーデータは、何らかのトラップコード、又はユーザに不正なアクセスに対する警告を行うためのプログラムやデータである。例えば、「このアクセスは不正です」や「このメモリは不正コピーされたものです」等の画像データ又は音声データが、ダミーエリア23に記憶されている。
説明の簡単化のため、図2に示した例では、共通エリア21は物理アドレスB100〜B199の領域であり、正常エリア22は物理アドレスB200〜B299の領域であり、ダミーエリア23は物理アドレスB300〜B399の領域である。
以下、半導体記憶装置1Aの動作について説明する。
図1を参照して、コマンド解析部3には、外部機器10から入出力部2を介してコマンドS1が入力される。コマンド解析部3は、入力されたコマンドS1の内容を解析し、コマンド種別S2と論理アドレスS3とを出力する。ここで、コマンド種別とは、リード、ライト、モードチェンジ等の命令の種類を意味する。また、例えばリードの中には、リード0、リード1、リード2等の複数の種類があり、これらもコマンド種別によって区別される。コマンド種別S2及び論理アドレスS3は、コマンド実行部4に入力される。また、論理アドレスS3は、解析部6Aに入力される。
解析部6Aは、外部機器10からメモリ部5への過去のアクセスパターンを解析する。具体的に、本実施の形態1に係る半導体記憶装置1Aでは、解析部6Aは、論理アドレスS3の遷移履歴を解析する。解析部6Aによる解析の結果に関するデータS4は、判定部7に入力される。
判定部7は、データS4に基づいて、外部機器10からメモリ部5へのアクセスが正常であるか不正であるかを判定する。具体的には以下の通りである。
図3は、判定部7が有するデータ記憶領域11を示す図である。データ記憶領域11には、サンプルデータS9Aが記憶されている。サンプルデータS9Aは、外部機器10からメモリ部5に正常にアクセスした際の、論理アドレスS3の遷移履歴に関するデータである。対象となるアプリケーションを事前に動作させて外部機器10からメモリ部5に正常なアクセスを行い、その際の論理アドレスS3の遷移履歴を解析する。そして、得られた解析結果の少なくとも一部(特にシーケンシャルアクセス以外の部分)が、サンプルデータS9Aとしてデータ記憶領域11に予め記憶されている。
判定部7は、解析部6Aから入力された遷移履歴(データS4)と、データ記憶領域11から読み出した遷移履歴(サンプルデータS9A)とを比較し、データS4で与えられる遷移履歴が、サンプルデータS9Aで与えられる遷移履歴の一部に一致した場合には、外部機器10からメモリ部5へのアクセスが正常であると判定する。一方、データS4で与えられる遷移履歴が、サンプルデータS9Aで与えられる遷移履歴のいずれにも一致しない場合には、判定部7は、外部機器10からメモリ部5へのアクセスは不正であると判定する。
具体的に、図2を参照して一例を説明する。ここでは、まず共通エリア21にアクセスされ、次に正常エリア22又はダミーエリア23にアクセスされる場合を想定している。外部機器10から共通エリア21への正常なアクセスにおいて、例えば、「論理アドレスA100→A199→A101」の順にアクセスが行われるものとする。この場合、「論理アドレスA100→A199→A101」の順序を特定するデータが、サンプルデータS9Aとしてデータ記憶領域11に予め記憶されている。
実際の動作において、アクセスが正常である場合は、外部機器10から共通エリア21へ「論理アドレスA100→A199→A101」の順にアクセスが行われる。この場合、データS4で与えられる遷移履歴と、サンプルデータS9Aで与えられる遷移履歴とが互いに一致するため、判定部7は、外部機器10からメモリ部5へのアクセスは正常であると判定する。
一方、実際の動作において、外部機器10から共通エリア21へ「論理アドレスA100→A101→・・・→A199」のシーケンシャルアクセスが行われたものとする。この場合、データS4で与えられる遷移履歴と、サンプルデータS9Aで与えられる遷移履歴とは互いに一致しないため、判定部7は、外部機器10からメモリ部5へのアクセスは不正であると判定する。
図1を参照して、判定部7による判定の結果に関するデータS5は、メモリマップ変更部8に入力される。
図4は、メモリマップ変更部8が有するメモリマップ30A,30Bを示す図である。図4に示すようにメモリマップ変更部8は2つのメモリマップ30A,30Bを有しており、判定部7から入力されたデータS5に基づいて、メモリマップ30A,30Bの一方を、データS6としてコマンド実行部4(具体的にはアドレス生成部9)に提供する。
メモリマップ30Aは、図2に示した正常エリア22に対応する論理アドレスを、正しく正常エリア22内の物理アドレスに変換するためのメモリマップである。例えば図4に示すように、正常エリア22の先頭番地を示す論理アドレスA200は、正常エリア22内の先頭番地である物理アドレスB200に正しく変換される。
これに対して、メモリマップ30Bは、図2に示した正常エリア22に対応する論理アドレスを、正常エリア22ではなくダミーエリア23内の物理アドレスに変換するためのメモリマップである。例えば図4に示すように、正常エリア22の先頭番地を示す論理アドレスA200は、ダミーエリア23内の先頭番地である物理アドレスB300に変換される。
図1を参照して、メモリマップ変更部8は、判定部7から入力されたデータS5に基づいて、外部機器10からメモリ部5へのアクセスが正常である場合には、メモリマップ30Aを選択してコマンド実行部4に提供し、一方、外部機器10からメモリ部5へのアクセスが不正である場合には、メモリマップ30Bを選択してコマンド実行部4に提供する。
アドレス生成部9は、メモリマップ変更部8から入力されたメモリマップ30A又はメモリマップ30Bに基づいて、コマンド解析部3から入力された論理アドレスS3をアドレス変換(いわゆる論物変換)することにより、メモリ部7内の物理アドレスS7を生成する。
図5,6は、外部機器10から見えるメモリ部5の状況を示す図である。アドレス生成部9にメモリマップ30Aが提供されている場合(つまりアクセスが正常である場合)は、図5に示すように、外部機器10は共通エリア21及び正常エリア22にアクセス可能である。この場合、図1を参照して、共通エリア21内又は正常エリア22内の所望のデータ(データS8)がメモリ部5から読み出され、入出力部2を介して外部機器10に送信される。
一方、アドレス生成部9にメモリマップ30Bが提供されている場合(つまりアクセスが不正である場合)は、図6に示すように、外部機器10は共通エリア21及びダミーエリア23にアクセス可能であるが、正常エリア22にはアクセスできない。この場合、図1を参照して、共通エリア21内の所望のデータ又はダミーエリア23内のダミーデータ(データS8)がメモリ部5から読み出され、入出力部2を介して外部機器10に送信される。
このように本実施の形態1に係る半導体記憶装置1Aによれば、判定部7は、論理アドレスS3の遷移履歴に基づいて、メモリ部5へのアクセスが正常であるか不正であるかを判定する。そして、メモリマップ変更部8は、メモリ部5へのアクセスが不正である場合には、正常エリア22に対応する論理アドレスを正常エリア22内の物理アドレスに変換しないメモリマップ30Bを、アドレス生成部9に提供する。その結果、アクセスが不正である場合には、図6に示したように外部機器10からはメモリ部5の正常エリア22にはアクセスすることができないため、正常エリア22に格納されている秘匿性の高いデータが、不正なアクセスによってメモリ部5の外部に読み出されることを回避できる。
また、本実施の形態1に係る半導体記憶装置1Aによれば、図3に示したように、メモリ部5に正常にアクセスした際の論理アドレスの遷移履歴に関するサンプルデータS9Aが、事前に作成され、予めデータ記憶領域11に格納されている。従って、このサンプルデータS9Aと、実際のメモリ動作時に解析部6Aによって解析された論理アドレスの遷移履歴(データS4)とを比較することによって、メモリ部5へのアクセスが正常であるか不正であるかを簡易かつ正確に判定することができる。
さらに、本実施の形態1に係る半導体記憶装置1Aによれば、メモリ部5のダミーエリア23(図2参照)には、ダミーデータが格納されている。そして、メモリ部5へのアクセスが不正である場合には、正常エリア22に対応する論理アドレスは、ダミーエリア内の物理アドレスに変換される。従って、アクセスが不正である場合には、メモリ部5からダミーデータが読み出されて外部機器10に送信されるため、不正アクセス者による暗号解読処理等を効果的に妨害することができる。しかも、ダミーデータが不正アクセスに対する警告データである場合には、この警告データが外部機器10において画面表示又は音声出力されることにより、不正アクセスに対する抑止力を高めることができる。
実施の形態2.
図7は、本発明の実施の形態2に係る半導体記憶装置1Bの構成を示すブロック図である。半導体記憶装置1Bは、図1に示した半導体記憶装置1Aにおける解析部6Aに代えて、解析部6Bを備えている。その他の構成は同様である。
コマンド解析部3から出力されたコマンド種別S2は、解析部6Bに入力される。解析部6Bは、外部機器10からメモリ部5への過去のアクセスパターンを解析する。具体的に、本実施の形態2に係る半導体記憶装置1Bでは、解析部6Bは、コマンド種別S2の遷移履歴を解析する。解析部6Bによる解析の結果に関するデータS4は、判定部7に入力される。
判定部7は、データS4に基づいて、外部機器10からメモリ部5へのアクセスが正常であるか不正であるかを判定する。具体的には以下の通りである。
図8は、判定部7が有するデータ記憶領域11を示す図である。データ記憶領域11には、サンプルデータS9Bが記憶されている。サンプルデータS9Bは、外部機器10からメモリ部5に正常にアクセスした際の、コマンド種別S2の遷移履歴に関するデータである。対象となるアプリケーションを事前に動作させて外部機器10からメモリ部5に正常なアクセスを行い、その際のコマンド種別S2の遷移履歴を解析する。そして、得られた解析結果の少なくとも一部(特にシーケンシャルアクセス以外の部分)が、サンプルデータS9Bとしてデータ記憶領域11に予め記憶されている。
判定部7は、解析部6Bから入力された遷移履歴(データS4)と、データ記憶領域11から読み出した遷移履歴(サンプルデータS9B)とを比較し、データS4で与えられる遷移履歴が、サンプルデータS9Bで与えられる遷移履歴の一部に一致した場合には、外部機器10からメモリ部5へのアクセスが正常であると判定する。一方、データS4で与えられる遷移履歴が、サンプルデータS9Bで与えられる遷移履歴のいずれにも一致しない場合には、判定部7は、外部機器10からメモリ部5へのアクセスは不正であると判定する。
図7を参照して、判定部7による判定の結果に関するデータS5は、メモリマップ変更部8に入力される。以降の動作は上記実施の形態1と同様であるため、説明は省略する。
このように本実施の形態2に係る半導体記憶装置1Bによれば、判定部7は、コマンド種別S2の遷移履歴に基づいて、メモリ部5へのアクセスが正常であるか不正であるかを判定する。そして、上記実施の形態1と同様に、メモリマップ変更部8は、メモリ部5へのアクセスが不正である場合には、正常エリア22に対応する論理アドレスを正常エリア22内の物理アドレスに変換しないメモリマップ30Bを、アドレス生成部9に提供する。その結果、アクセスが不正である場合には、図6に示したように外部機器10からはメモリ部5の正常エリア22にはアクセスすることができないため、正常エリア22に格納されている秘匿性の高いデータが、不正なアクセスによってメモリ部5の外部に読み出されることを回避できる。
また、本実施の形態2に係る半導体記憶装置1Bによれば、図8に示したように、メモリ部5に正常にアクセスした際のコマンド種別の遷移履歴に関するサンプルデータS9Bが、事前に作成され、予めデータ記憶領域11に格納されている。従って、このサンプルデータS9Bと、実際のメモリ動作時に解析部6Bによって解析されたコマンド種別の遷移履歴(データS4)とを比較することによって、メモリ部5へのアクセスが正常であるか不正であるかを簡易かつ正確に判定することができる。
実施の形態3.
図9は、本発明の実施の形態3に係る半導体記憶装置1Cの構成を示すブロック図である。半導体記憶装置1Cは、図1に示した半導体記憶装置1Aにおける解析部6Aに代えて、解析部6Cを備えている。その他の構成は同様である。
コマンド解析部3から出力されたコマンド種別S2及び論理アドレスS3は、解析部6Cに入力される。解析部6Cは、外部機器10からメモリ部5への過去のアクセスパターンを解析する。具体的に、本実施の形態3に係る半導体記憶装置1Cでは、解析部6Cは、コマンド種別S2及び論理アドレスS3の双方の遷移履歴を解析する。解析部6Cによる解析の結果に関するデータS4は、判定部7に入力される。
判定部7は、データS4に基づいて、外部機器10からメモリ部5へのアクセスが正常であるか不正であるかを判定する。具体的には以下の通りである。
図10は、判定部7が有するデータ記憶領域11を示す図である。データ記憶領域11には、サンプルデータS9Cが記憶されている。サンプルデータS9Cは、外部機器10からメモリ部5に正常にアクセスした際の、コマンド種別S2及び論理アドレスS3の双方の遷移履歴に関するデータである。対象となるアプリケーションを事前に動作させて外部機器10からメモリ部5に正常なアクセスを行い、その際のコマンド種別S2及び論理アドレスS3の双方の遷移履歴を解析する。そして、得られた解析結果の少なくとも一部(特にシーケンシャルアクセス以外の部分)が、サンプルデータS9Cとしてデータ記憶領域11に予め記憶されている。
判定部7は、解析部6Cから入力された遷移履歴(データS4)と、データ記憶領域11から読み出した遷移履歴(サンプルデータS9C)とを比較し、データS4で与えられる遷移履歴が、サンプルデータS9Cで与えられる遷移履歴の一部に一致した場合には、外部機器10からメモリ部5へのアクセスが正常であると判定する。一方、データS4で与えられる遷移履歴が、サンプルデータS9Cで与えられる遷移履歴のいずれにも一致しない場合には、判定部7は、外部機器10からメモリ部5へのアクセスは不正であると判定する。
図9を参照して、判定部7による判定の結果に関するデータS5は、メモリマップ変更部8に入力される。以降の動作は上記実施の形態1と同様であるため、説明は省略する。
このように本実施の形態3に係る半導体記憶装置1Cによれば、判定部7は、コマンド種別S2及び論理アドレスS3の双方の遷移履歴に基づいて、メモリ部5へのアクセスが正常であるか不正であるかを判定する。そして、上記実施の形態1と同様に、メモリマップ変更部8は、メモリ部5へのアクセスが不正である場合には、正常エリア22に対応する論理アドレスを正常エリア22内の物理アドレスに変換しないメモリマップ30Bを、アドレス生成部9に提供する。その結果、アクセスが不正である場合には、図6に示したように外部機器10からはメモリ部5の正常エリア22にはアクセスすることができないため、正常エリア22に格納されている秘匿性の高いデータが、不正なアクセスによってメモリ部5の外部に読み出されることを回避できる。しかも、本実施の形態3に係る半導体記憶装置1Cによれば、コマンド種別及び論理アドレスの双方の遷移履歴に基づいて判定部7における判定が行われるため、上記実施の形態1,2のようにいずれか一方のみを用いて判定を行う場合と比較すると、判定の信頼性を高めることができる。
また、本実施の形態3に係る半導体記憶装置1Cによれば、図10に示したように、メモリ部5に正常にアクセスした際のコマンド種別及び論理アドレスの双方の遷移履歴に関するサンプルデータS9Cが、事前に作成され、予めデータ記憶領域11に格納されている。従って、このサンプルデータS9Cと、実際のメモリ動作時に解析部6Cによって解析されたコマンド種別及び論理アドレスの双方の遷移履歴(データS4)とを比較することによって、メモリ部5へのアクセスが正常であるか不正であるかを簡易かつ正確に判定することができる。
変形例.
以下、上記実施の形態1〜3の変形例について説明する。以下では上記実施の形態1を基礎とした変形例について説明するが、同様の変形例は上記実施の形態2,3にも適用可能である。
第1の変形例.
図11は、第1の変形例に関して、メモリ部5の構成を示す図である。第1の変形例では、図2に示したダミーエリア23が省略されている。
図12は、第1の変形例に関して、メモリマップ変更部8が有するメモリマップ30A,30Cを示す図である。図12に示すようにメモリマップ変更部8は2つのメモリマップ30A,30Cを有しており、判定部7から入力されたデータS5に基づいて、メモリマップ30A,30Cの一方を、データS6としてコマンド実行部4(具体的にはアドレス生成部9)に提供する。
図12に示したメモリマップ30Aは、図4に示したメモリマップ30Aと同様である。メモリマップ30Cは、図11に示した正常エリア22に対応する論理アドレスを、正常エリア22ではなく共通エリア21内の物理アドレスに変換するためのメモリマップである。例えば図12に示すように、正常エリア22の先頭番地を示す論理アドレスA200は、共通エリア21内の先頭番地である物理アドレスB100に変換される。
メモリマップ変更部8は、判定部7から入力されたデータS5に基づいて、外部機器10からメモリ部5へのアクセスが正常である場合には、メモリマップ30Aを選択してコマンド実行部4に提供し、一方、外部機器10からメモリ部5へのアクセスが不正である場合には、メモリマップ30Cを選択してコマンド実行部4に提供する。
このように第1の変形例によれば、メモリ部5へのアクセスが不正である場合には、正常エリア22に対応する論理アドレスは、共通エリア21内の物理アドレスに変換される。従って、メモリ部5へのアクセスが不正である場合には、共通エリア21に格納されている秘匿性の低いデータがメモリ部5から読み出されて外部機器10に送信されるため、不正アクセス者による暗号解読処理等を効果的に妨害することができる。
第2の変形例.
図13は、第2の変形例に関して、判定部7が有するデータ記憶領域11を示す図である。データ記憶領域11には、図3に示したサンプルデータS9Aの代わりに、サンプルデータS9Dが記憶されている。サンプルデータS9Dは、作為的なアクセスパターンで外部機器10からメモリ部5にアクセスした際の、論理アドレスS3の遷移履歴に関するデータである。作為的なアクセスパターンを予め任意に定めておき、対象となるアプリケーションの動作中の所定期間内(例えば起動処理期間内)に、外部機器10からメモリ部5にその作為的なアクセスパターンでアクセスを行わせ、その際の論理アドレスS3の遷移履歴を解析する。そして、得られた解析結果の少なくとも一部(特にシーケンシャルアクセス以外の部分)が、サンプルデータS9Dとしてデータ記憶領域11に予め記憶されている。
実際のメモリ動作時においては、上記の所定期間内(この例では起動処理期間内)において、予め定められた作為的なアクセスパターンによって、メモリ部5へのアクセスが行われる。そして、論理アドレスS3の遷移履歴が解析部6Aによって解析され、その解析の結果に関するデータS4が判定部7に入力される。
判定部7は、解析部6Aから入力された遷移履歴(データS4)と、データ記憶領域11から読み出した遷移履歴(サンプルデータS9D)とを比較し、データS4で与えられる遷移履歴が、サンプルデータS9Dで与えられる遷移履歴に一致した場合には、外部機器10からメモリ部5へのアクセスが正常であると判定する。一方、データS4で与えられる遷移履歴が、サンプルデータS9Dで与えられる遷移履歴に一致しない場合には、判定部7は、外部機器10からメモリ部5へのアクセスは不正であると判定する。
このように第2の変形例によれば、作為的なアクセスパターンでメモリ部5にアクセスした際の論理アドレスの遷移履歴に関するサンプルデータS9Dが、事前に作成され、予めデータ記憶領域11に格納されている。従って、このサンプルデータS9Dと、作為的なアクセスパターンによってメモリ部5へのアクセスが行われた際に解析部6Aによって解析された論理アドレスの遷移履歴とを比較することによって、メモリ部5へのアクセスが正常であるか不正であるかを簡易かつ正確に判定することができる。
第3の変形例.
図14は、第3の変形例に関して、判定部7が有するデータ記憶領域11を示す図である。データ記憶領域11には、図3に示したサンプルデータS9Aの代わりに、サンプルデータS9Eが記憶されている。サンプルデータS9Eは、外部機器10の起動処理時に外部機器10がメモリ部5にアクセスする際の、論理アドレスS3の遷移履歴に関するデータである。外部機器10の起動処理時に実行されるメモリ部5へのアクセスパターンは固定されているため、そのアクセスパターンを解析することによって、それに対応する論理アドレスS3の遷移履歴も予測可能である。そこで、予測された論理アドレスS3の遷移履歴の少なくとも一部(特にシーケンシャルアクセス以外の部分)が、サンプルデータS9Eとしてデータ記憶領域11に予め記憶されている。
実際のメモリ動作時においては、外部機器10の起動処理時、上記の固定のアクセスパターンによって、外部機器10からメモリ部5へのアクセスが行われる。そして、論理アドレスS3の遷移履歴が解析部6Aによって解析され、その解析の結果に関するデータS4が判定部7に入力される。
判定部7は、解析部6Aから入力された遷移履歴(データS4)と、データ記憶領域11から読み出した遷移履歴(サンプルデータS9E)とを比較し、データS4で与えられる遷移履歴が、サンプルデータS9Eで与えられる遷移履歴に一致した場合には、外部機器10からメモリ部5へのアクセスが正常であると判定する。一方、データS4で与えられる遷移履歴が、サンプルデータS9Eで与えられる遷移履歴に一致しない場合には、判定部7は、外部機器10からメモリ部5へのアクセスは不正であると判定する。
このように第3の変形例によれば、外部機器10の起動時に外部機器10がメモリ部5にアクセスする際の論理アドレスS3の遷移履歴に関するサンプルデータS9Eが、事前に作成され、予めデータ記憶領域11に格納されている。従って、このサンプルデータS9Eと、外部機器10の起動時に外部機器10がメモリ部5にアクセスした際に解析部6Aによって解析された論理アドレスS3の遷移履歴とを比較することによって、メモリ部5へのアクセスが正常であるか不正であるかを簡易かつ正確に判定することができる。
第4の変形例.
図15は、第4の変形例に関して、判定部7が有するデータ記憶領域11を示す図である。データ記憶領域11には、図3に示したサンプルデータS9Aと同様の複数個(図15に示した例では2個)のサンプルデータS9A1,S9A2が記憶されている。サンプルデータS9A1,S9A2はいずれも、サンプルデータS9Aと同様に、外部機器10からメモリ部5に正常にアクセスした際の、論理アドレスS3の遷移履歴に関するデータである。対象となるアプリケーションを事前に動作させて外部機器10からメモリ部5に正常なアクセスを行い、その際の論理アドレスS3の遷移履歴を解析する。そして、得られた解析結果の互いに異なる部分(特にシーケンシャルアクセス以外の部分)が、サンプルデータS9A1,S9A2として抽出されて、データ記憶領域11に予め記憶されている。
判定部7は、解析部6Aから入力された遷移履歴(データS4)と、データ記憶領域11から読み出した遷移履歴(サンプルデータS9A1,S9A2)とを比較し、データS4で与えられる遷移履歴が、サンプルデータS9A1又はサンプルデータS9A2で与えられる遷移履歴に一致した場合には、外部機器10からメモリ部5へのアクセスが正常であると判定する。一方、データS4で与えられる遷移履歴が、サンプルデータS9A1,S9A2で与えられる遷移履歴のいずれにも一致しない場合には、判定部7は、外部機器10からメモリ部5へのアクセスは不正であると判定する。
なお、第4の変形例は、サンプルデータS9Aのみならず、上記の他のサンプルデータS9B〜S9Eについても適用可能である。
このように第4の変形例によれば、複数のサンプルデータS9A1,S9A2を準備しておくことにより、判定部7は、プログラムの進行状況等に応じて適切なサンプルデータS9A1,S9A2を用いて、データS4との比較を行うことができる。その結果、メモリ部5へのアクセスが正常であるか不正であるかを、より正確に判定することができる。
第5の変形例.
図16は、第5の変形例に関して、判定部7が有するデータ記憶領域11を示す図である。データ記憶領域11には、図3に示したサンプルデータS9Aの代わりに、データS9Fが記憶されている。データS9Fは、メモリ部5に正常にアクセスした際のシーケンシャルアクセスの最大値に関するデータである。対象となるアプリケーションを事前に動作させて外部機器10からメモリ部5に正常なアクセスを行い、その際のシーケンシャルアクセスの最大値(つまり連続する論理アドレスS3の個数の最大値)を解析する。そして、解析によって求められた最大値が、データS9Fとしてデータ記憶領域11に予め記憶されている。
実際のメモリ動作時においては、外部機器10からメモリ部5へのアクセスが行われ、解析部6Aは、コマンド解析部3から入力される論理アドレスS3に関して、シーケンシャルアクセスの最大値を解析する。そして、その解析の結果に関するデータS4が判定部7に入力される。
判定部7は、解析部6Aから入力されたデータS4と、データ記憶領域11から読み出したデータS9Fとを比較する。そして、データS4で与えられる最大値がデータS9Fで与えられる最大値以下である場合には、メモリ部5へのアクセスは正常であると判定する。一方、データS4で与えられる最大値がデータS9Fで与えられる最大値を超えた場合には、メモリ部5へのアクセスが不正であると判定する。
このように第5の変形例によれば、メモリ部5に正常にアクセスした際のシーケンシャルアクセスの最大値が、事前に求められて、その最大値に関するデータS9Fが予めデータ記憶領域11に格納されている。従って、実際のメモリ動作時においてメモリ部5へのシーケンシャルアクセス数がその最大値(データS9F)を超えた場合には、メモリ部5へのアクセスが不正であると判定することにより、メモリ部5へのアクセスが正常であるか不正であるかを簡易かつ正確に判定することができる。特に、不正アクセス者はシーケンシャルアクセスによってメモリ部5にアクセスしてくることが多いため、このような場合に効果が大きい。
第6の変形例.
図17は、第6の変形例に関して、メモリ部5の正常エリア22を示す図である。図2に示した正常エリア22が複数個(図17に示した例では3個)の領域に分割されて、正常エリア22A〜22Cが規定されている。説明の便宜上、正常エリア22A→22B→22Cの順に、外部機器10からのアクセスが進行するものとする。
上記実施の形態1では、外部機器10から共通エリア21へのアクセスが正常である場合には、正常エリア22の全領域を外部機器10からアクセス可能としたが、第6の変形例では、これに代えて以下のような処理を行う。
まず、外部機器10が共通エリア21にアクセスしている間に、上述した任意の手法によって、そのアクセスが正常であるか不正であるかを判定する。判定の結果、アクセスが正常である場合には、正常エリア22の全領域中の正常エリア22Aのみを、外部機器10からアクセス可能とする。つまり、正常エリア22Aに対応する論理アドレスに基づく、正常エリア22A内の物理アドレスの生成を、アドレス生成部9に対して許可する。一方、判定の結果、アクセスが不正である場合には、外部機器10から正常エリア22Aへのアクセスを許可しない。つまり、正常エリア22Aに対応する論理アドレスに基づく、正常エリア22A内の物理アドレスの生成を、アドレス生成部9に対して許可しない。この場合は、上記の通り、正常エリア22ではなくダミーエリア23又は共通エリア21へのアクセスが行われる。
次に、外部機器10が正常エリア22Aにアクセスしている間に、上述した任意の手法によって、そのアクセスが正常であるか不正であるかを判定する。判定の結果、正常エリア22Aへのアクセスが正常である場合には、正常エリア22Aに続く正常エリア22Bを、外部機器10からアクセス可能とする。一方、判定の結果、正常エリア22Aへのアクセスが不正である場合には、外部機器10から正常エリア22Bへのアクセスを許可しない。この場合は、上記の通り、正常エリア22Bではなくダミーエリア23又は共通エリア21へのアクセスが行われる。
同様に、外部機器10が正常エリア22Bにアクセスしている間に、上述した任意の手法によって、そのアクセスが正常であるか不正であるかを判定する。判定の結果、正常エリア22Bへのアクセスが正常である場合には、正常エリア22Bに続く正常エリア22Cを、外部機器10からアクセス可能とする。一方、判定の結果、正常エリア22Bへのアクセスが不正である場合には、外部機器10から正常エリア22Cへのアクセスを許可しない。この場合は、上記の通り、正常エリア22Cではなくダミーエリア23又は共通エリア21へのアクセスが行われる。
このように第6の変形例によれば、メモリ部5は少なくとも正常エリア22A(第1部分領域)及び正常エリア22B(第2部分領域)を有している。そして、アドレス生成部9は、正常エリア22Aへのアクセスが不正である場合には、正常エリア22Bに対応する論理アドレスに基づいて正常エリア22B内の物理アドレスを生成しない。その結果、外部機器10からはメモリ部5の正常エリア22Bにはアクセスすることができないため、正常エリア22Bに格納されている秘匿性の高いデータが、不正なアクセスによって外部に読み出されることを回避できる。これにより、正常エリア22Aへのアクセスと正常エリア22Bへのアクセスとが同時に許可される場合と比較すると、セキュリティ性を高めることが可能となる。
第7の変形例.
図18は、第7の変形例に関して、メモリ部5の正常エリア22を示す図である。上記第6の変形例では、アクセスが正常である場合、正常エリア22A→22B→22Cの順で、外部機器10からのアクセスが許可された。ここで、例えば正常エリア22Aへのアクセスが完了して、続く正常エリア22Bへのアクセスに移行した後は、図18に示すように、外部機器10から正常エリア22Aへのアクセスを禁止してもよい。つまり、アドレス生成部9は、正常エリア22Aへのアクセスが完了して正常エリア22Bへのアクセスに移行した後は、たとえ正常エリア22Aに対応する論理アドレスがコマンド解析部3から入力されても、正常エリア22A内の物理アドレスを生成しない。この場合は、ダミーエリア23又は共通エリア21へのアクセスが行われる。同様に、正常エリア22Bへのアクセスが完了して、続く正常エリア22Cへのアクセスに移行した後は、外部機器10から正常エリア22Bへのアクセスを禁止してもよい。
図19は、第7の変形例に関して、メモリ部5を示す図である。図18では、正常エリア22内において遡及的なアクセスを禁止する例について述べたが、同様に、図19を参照して、共通エリア21へのアクセスが完了して、続く正常エリア22へのアクセスに移行した後に、外部機器10から共通エリア21へのアクセスを禁止してもよい。
このように第7の変形例によれば、アドレス生成部9は、正常エリア22Aへのアクセスが完了して正常エリア22Bへのアクセスに移行した後は、たとえ正常エリア22Aに対応する論理アドレスがコマンド解析部3から入力されても、正常エリア22A内の物理アドレスを生成しない。従って、正常エリア22Aへのアクセスが完了して正常エリア22Bへのアクセスに移行した後は、外部機器10からはメモリ部5の正常エリア22Aにはアクセスすることができないため、正常エリア22Aに格納されている秘匿性の高いデータが、不正なアクセスによって外部に読み出されることを回避できる。
第8の変形例.
その他の変形例として、図2に示した共通エリア21を省略してもよい。また、通常時は共通エリア21のみにアクセス可能としておき、所定の順序で論理アドレスが入力された場合には、追加的に正常エリア22へのアクセスを可能としてもよい。また、通常時は共通エリア21と共通エリア21の内容をコピーしたエリア(「ミラーエリア」と称す)とにアクセス可能としておき、所定の順序で論理アドレスが入力された場合には、ミラーエリアを正常エリア22に差し替えることにより、正常エリア22にアクセス可能としてもよい。また、正常エリア22へのアクセスが可能となっている状態において、アクセスが不正であることが判明した場合には、アクセス可能なエリアを正常エリア22からダミーエリア23へ切り換えてもよい。