(57)【特許請求の範囲】
【請求項１】
ホスト機器と、
前記ホスト機器に外部接続可能な半導体記憶装置と、
を備え、
前記ホスト機器は、
前記半導体記憶装置に送信するコマンドを所定の演算によって変換することにより、第１の変換値を生成する第１の生成部と、
前記第１の変換値及び前記コマンドを前記半導体記憶装置に送信する送信部と、
を有し、
前記半導体記憶装置は、
前記ホスト機器から前記半導体記憶装置へのアクセスを制御する制御部と、
前記第１の変換値及び前記コマンドを前記ホスト機器から受信する受信部と、
前記半導体記憶装置が前記ホスト機器から受信する予定の前記第１の変換値を記憶する記憶部と、
を有し、
前記制御部は、
前記受信部が受信した前記コマンドを前記所定の演算によって変換することにより、第２の変換値を生成する第２の生成部と、
前記ホスト機器から前記半導体記憶装置へのアクセスが正常であるか不正であるかを判定する判定部と、
を含み、
前記送信部は、前記コマンドを送信するより前に、前記第１の変換値を前記半導体記憶装置に送信し、
前記受信部が受信した前記第１の変換値が、前記記憶部に記憶されている前記第１の変換値に一致しない場合には、前記判定部は不正なアクセスと判定し、
前記受信部が受信した前記第１の変換値が、前記記憶部に記憶されている前記第１の変換値に一致する場合には、前記制御部は、コマンド要求を前記ホスト機器に送信し、
前記送信部は、前記コマンド要求に従って前記コマンドを前記半導体記憶装置に送信し、
前記受信部が受信した前記第１の変換値と、前記第２の生成部が生成した前記第２の変換値とが一致しない場合には、前記判定部は不正なアクセスと判定する、コンピュータシステム。
【請求項２】
前記受信部が受信した前記第１の変換値が、前記記憶部に記憶されている前記第１の変換値に一致しない場合には、前記送信部は前記コマンドを送信しない、請求項１に記載のコンピュータシステム。
【請求項３】
前記ホスト機器は、
前記第１の変換値を表すデータ内の所定の箇所に不定値のデータを挿入することにより、前記第１の変換値を加工する加工部
をさらに有し、
前記制御部は、
前記受信部が受信した加工後の前記第１の変換値から、加工前の前記第１の変換値を復元する復元部
をさらに含む、請求項１又は２に記載のコンピュータシステム。
【請求項４】
前記ホスト機器は、
前記コマンド内の所定の箇所に不定値のデータを挿入することにより、前記コマンドを加工する加工部
をさらに有し、
前記制御部は、
前記受信部が受信した加工後の前記コマンドから、加工前の前記コマンドを復元する復元部
をさらに含む、請求項１〜３のいずれか一つに記載のコンピュータシステム。
【請求項５】
前記送信部は、前記第１の変換値を送信した後に前記コマンドを送信し、
前記判定部はさらに、前記第１の変換値に関する送信時刻と前記コマンドに関する送信時刻との間の時間間隔が所定の許容範囲外である場合に、不正なアクセスと判定する、請求項１〜４のいずれか一つに記載のコンピュータシステム。
【請求項６】
前記第１の生成部は、予め規定された複数の演算のいずれかによって前記コマンドを変換することにより、前記第１の変換値を生成する、請求項１〜５のいずれか一つに記載のコンピュータシステム。
【請求項７】
前記判定部が不正なアクセスと判定した場合には、前記制御部は、前記ホスト機器に対する応答処理として、ダミーデータを返信する処理、エラーコードを返信する処理、及び何らのデータも返信しない処理のうちのいずれかを不定に選択して実行する、請求項１〜６のいずれか一つに記載のコンピュータシステム。
【請求項８】
ホスト機器に外部接続可能な半導体記憶装置であって、
前記ホスト機器から前記半導体記憶装置へのアクセスを制御する制御部と、
前記ホスト機器から、コマンドと、当該コマンドを所定の演算によって変換することにより生成された第１の変換値とを受信する受信部と、
前記半導体記憶装置が前記ホスト機器から受信する予定の前記第１の変換値を記憶する記憶部と、
を備え、
前記制御部は、
前記受信部が受信した前記コマンドを前記所定の演算によって変換することにより、第２の変換値を生成する生成部と、
前記コマンドを受信するより前に前記受信部が受信した前記第１の変換値が、前記記憶部に記憶されている前記第１の変換値に一致しない場合、又は、前記受信部が受信した前記第１の変換値と、前記生成部が生成した前記第２の変換値とが一致しない場合に、不正なアクセスと判定する判定部と、
を有する、半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステム及び半導体記憶装置に関し、特に、ホスト機器と、当該ホスト機器に外部接続可能な半導体記憶装置とを備えたコンピュータシステムに関する。
【背景技術】
【０００２】
半導体メモリが搭載されているメモリカードをホストコンピュータ等の外部機器に着脱自在に接続することによって、半導体メモリに記憶されているデータ等を外部機器が利用可能な情報処理装置が実用化されている。
【０００３】
この種のメモリカードの中には、半導体メモリに記憶されているデータ等が不正にコピーされることを防止すべく、特定のセキュリティ技術が搭載されているものがある。例えば下記特許文献１には、暗号化されたデータが記憶された半導体メモリと、半導体メモリに特定の順序でアドレスが入力された場合に所定のキーデータを出力する検出部と、半導体メモリから読み出したデータを、上記キーデータを用いて復号するデータ変換部と、を備えた半導体記憶装置が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平９−１０６６９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１に開示された半導体記憶装置では、大量のサンプルを解析することによって暗号が解読される可能性があり、しかも、外部機器からは半導体メモリの全領域に何の制約もなくアクセス可能である。そのため、一旦暗号が解読されると、半導体メモリに記憶されている全データが不正に復号されてしまうため、セキュリティ性が十分とはいえない。
【０００６】
本発明はかかる事情に鑑みて成されたものであり、高いセキュリティ性を有する半導体記憶装置及びそれを備えたコンピュータシステムを得ることを目的とするものである。
【課題を解決するための手段】
【０００７】
本発明の第１の態様に係るコンピュータシステムは、ホスト機器と、前記ホスト機器に外部接続可能な半導体記憶装置と、を備え、前記ホスト機器は、前記半導体記憶装置に送信するコマンドを所定の演算によって変換することにより、第１の変換値を生成する第１の生成部と、前記第１の変換値及び前記コマンドを前記半導体記憶装置に送信する送信部と、を有し、前記半導体記憶装置は、前記ホスト機器から前記半導体記憶装置へのアクセスを制御する制御部と、前記第１の変換値及び前記コマンドを前記ホスト機器から受信する受信部と、前記半導体記憶装置が前記ホスト機器から受信する予定の前記第１の変換値を記憶する記憶部と、を有し、前記制御部は、前記受信部が受信した前記コマンドを前記所定の演算によって変換することにより、第２の変換値を生成する第２の生成部と、前記ホスト機器から前記半導体記憶装置へのアクセスが正常であるか不正であるかを判定する判定部と、を含み、前記送信部は、前記コマンドを送信するより前に、前記第１の変換値を前記半導体記憶装置に送信し、前記受信部が受信した前記第１の変換値が、前記記憶部に記憶されている前記第１の変換値に一致しない場合には、前記判定部は不正なアクセスと判定し、前記受信部が受信した前記第１の変換値が、前記記憶部に記憶されている前記第１の変換値に一致する場合には、前記制御部は、コマンド要求を前記ホスト機器に送信し、前記送信部は、前記コマンド要求に従って前記コマンドを前記半導体記憶装置に送信し、前記受信部が受信した前記第１の変換値と、前記第２の生成部が生成した前記第２の変換値とが一致しない場合には、前記判定部は不正なアクセスと判定することを特徴とするものである。
【０００８】
第１の態様に係るコンピュータシステムによれば、ホスト機器は、第１の変換値及びコマンドを半導体記憶装置に送信する。半導体記憶装置は、受信したコマンドを変換することによって第２の変換値を生成し、受信した第１の変換値が第２の変換値に一致しない場合に不正なアクセスと判定する。このように、コマンドのみならず第１の変換値をホスト機器から半導体記憶装置に送信し、第１の変換値が第２の変換値に一致しない場合には不正なアクセスと判定することにより、ホスト機器と半導体記憶装置との間における信号の送受信を複雑化することができる。その結果、半導体記憶装置のセキュリティ性を向上することが可能となる。
【００１０】
また、第１の態様に係るコンピュータシステムによれば、判定部は、受信した第１の変換値が、記憶部に記憶されている第１の変換値に一致しない場合に、不正なアクセスと判定する。従って、受信する予定の第１の変換値とは異なる変換値がホスト機器から送信されてきた場合には不正なアクセスと判定できるため、半導体記憶装置のセキュリティ性をさらに向上することが可能となる。
【００１１】
本発明の第２の態様に係るコンピュータシステムは、第１の態様に係るコンピュータシステムにおいて特に、前記受信部が受信した前記第１の変換値が、前記記憶部に記憶されている前記第１の変換値に一致しない場合には、前記送信部は前記コマンドを送信しないことを特徴とするものである。
【００１２】
第２の態様に係るコンピュータシステムによれば、受信した第１の変換値が、記憶部に記憶されている第１の変換値に一致しない場合には、ホスト機器から半導体記憶装置にコマンドが送信されない。従って、ホスト機器と半導体記憶装置との間における信号の送受信をさらに複雑化できるため、半導体記憶装置のセキュリティ性をさらに向上することが可能となる。
【００１３】
本発明の第３の態様に係るコンピュータシステムは、第１又は第２の態様に係るコンピュータシステムにおいて特に、前記ホスト機器は、前記第１の変換値を表すデータ内の所定の箇所に不定値のデータを挿入することにより、前記第１の変換値を加工する加工部をさらに有し、前記制御部は、前記受信部が受信した加工後の前記第１の変換値から、加工前の前記第１の変換値を復元する復元部をさらに含むことを特徴とするものである。
【００１４】
第３の態様に係るコンピュータシステムによれば、加工部は、第１の変換値を表すデータ内の所定の箇所に不定値のデータを挿入することにより、第１の変換値を加工する。従って、ホスト機器から半導体記憶装置に送信される第１の変換値を複雑化できるため、半導体記憶装置のセキュリティ性をさらに向上することが可能となる。
【００１５】
本発明の第４の態様に係るコンピュータシステムは、第１〜第３のいずれか一つの態様に係るコンピュータシステムにおいて特に、前記ホスト機器は、前記コマンド内の所定の箇所に不定値のデータを挿入することにより、前記コマンドを加工する加工部をさらに有し、前記制御部は、前記受信部が受信した加工後の前記コマンドから、加工前の前記コマンドを復元する復元部をさらに含むことを特徴とするものである。
【００１６】
第４の態様に係るコンピュータシステムによれば、加工部は、コマンド内の所定の箇所に不定値のデータを挿入することにより、コマンドを加工する。従って、ホスト機器から半導体記憶装置に送信されるコマンドを複雑化できるため、半導体記憶装置のセキュリティ性をさらに向上することが可能となる。
【００１７】
本発明の第５の態様に係るコンピュータシステムは、第１〜第４のいずれか一つの態様に係るコンピュータシステムにおいて特に、前記送信部は、前記第１の変換値を送信した後に前記コマンドを送信し、前記判定部はさらに、前記第１の変換値に関する送信時刻と前記コマンドに関する送信時刻との間の時間間隔が所定の許容範囲外である場合に、不正なアクセスと判定することを特徴とするものである。
【００１８】
第５の態様に係るコンピュータシステムによれば、判定部は、第１の変換値に関する送信時刻とコマンドに関する送信時刻との間の時間間隔が所定の許容範囲外である場合に、不正なアクセスと判定する。このように、第１の変換値に関する送信時刻とコマンドに関する送信時刻との間の時間間隔に許容範囲を設定し、当該時間間隔が許容範囲外である場合には不正なアクセスと判定することにより、半導体記憶装置のセキュリティ性をさらに向上することが可能となる。
【００１９】
本発明の第６の態様に係るコンピュータシステムは、第１〜第５のいずれか一つの態様に係るコンピュータシステムにおいて特に、前記第１の生成部は、予め規定された複数の演算のいずれかによって前記コマンドを変換することにより、前記第１の変換値を生成することを特徴とするものである。
【００２０】
第６の態様に係るコンピュータシステムによれば、第１の生成部は、予め規定された複数の演算のいずれかによってコマンドを変換することにより、第１の変換値を生成する。従って、同一のコマンドに対して複数種類の第１の変換値が生成され、ホスト機器から半導体記憶装置に送信される第１の変換値を複雑化できるため、半導体記憶装置のセキュリティ性をさらに向上することが可能となる。
【００２１】
本発明の第７の態様に係るコンピュータシステムは、第１〜第６のいずれか一つの態様に係るコンピュータシステムにおいて特に、前記判定部が不正なアクセスと判定した場合には、前記制御部は、前記ホスト機器に対する応答処理として、ダミーデータを返信する処理、エラーコードを返信する処理、及び何らのデータも返信しない処理のうちのいずれかを不定に選択して実行することを特徴とするものである。
【００２２】
第７の態様に係るコンピュータシステムによれば、判定部が不正なアクセスと判定した場合には、制御部は、ホスト機器に対する応答処理として、ダミーデータを返信する処理、エラーコードを返信する処理、及び何らのデータも返信しない処理のうちのいずれかを不定に選択して実行する。従って、不正アクセスに対して常にエラーコードを返信する場合等と比較すると、不正アクセスを行う第三者は不正アクセスに失敗したことに気付きにくい。従って、解析のやり直しを開始する時期を遅らせることが可能となる。
【００２３】
本発明の第８の態様に係る半導体記憶装置は、ホスト機器に外部接続可能な半導体記憶装置であって、前記ホスト機器から前記半導体記憶装置へのアクセスを制御する制御部と、前記ホスト機器から、コマンドと、当該コマンドを所定の演算によって変換することにより生成された第１の変換値とを受信する受信部と、前記半導体記憶装置が前記ホスト機器から受信する予定の前記第１の変換値を記憶する記憶部と、を備え、前記制御部は、前記受信部が受信した前記コマンドを前記所定の演算によって変換することにより、第２の変換値を生成する生成部と、前記コマンドを受信するより前に前記受信部が受信した前記第１の変換値が、前記記憶部に記憶されている前記第１の変換値に一致しない場合、又は、前記受信部が受信した前記第１の変換値と、前記生成部が生成した前記第２の変換値とが一致しない場合に、不正なアクセスと判定する判定部と、を有することを特徴とするものである。
【００２４】
第８の態様に係る半導体記憶装置によれば、ホスト機器は、第１の変換値及びコマンドを半導体記憶装置に送信する。半導体記憶装置は、受信したコマンドを変換することによって第２の変換値を生成し、受信した第１の変換値が第２の変換値に一致しない場合に不正なアクセスと判定する。このように、コマンドのみならず第１の変換値をホスト機器から半導体記憶装置に送信し、第１の変換値が第２の変換値に一致しない場合には不正なアクセスと判定することにより、ホスト機器と半導体記憶装置との間における信号の送受信を複雑化することができる。その結果、半導体記憶装置のセキュリティ性を向上することが可能となる。
また、第８の態様に係る半導体記憶装置によれば、判定部は、受信した第１の変換値が、記憶部に記憶されている第１の変換値に一致しない場合に、不正なアクセスと判定する。従って、受信する予定の第１の変換値とは異なる変換値がホスト機器から送信されてきた場合には不正なアクセスと判定できるため、半導体記憶装置のセキュリティ性をさらに向上することが可能となる。
【発明の効果】
【００２５】
本発明によれば、高いセキュリティ性を有する半導体記憶装置及びそれを備えたコンピュータシステムを得ることができる。
【図面の簡単な説明】
【００２６】
【図１】本発明の実施の形態に係るコンピュータシステムの全体構成を簡略化して示す図である。
【図２】ホスト機器の構成を簡略化して示すブロック図である。
【図３】半導体記憶装置の構成を簡略化して示すブロック図である。
【図４】制御部の構成を具体的に示すブロック図である。
【図５】記憶部の構成を示す図である。
【図６】テーブルデータを簡略化して示す図である。
【図７】ホスト機器における処理内容を示すフローチャートである。
【図８】半導体記憶装置における処理内容を示すフローチャートである。
【図９】加工部によるハッシュ値の加工の例を示す図である。
【図１０】加工部によるコマンドの加工の例を示す図である。
【図１１】テーブルデータを簡略化して示す図である。
【図１２】半導体記憶装置における処理内容を示すフローチャートである。
【図１３】テーブルデータを簡略化して示す図である。
【発明を実施するための形態】
【００２７】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
【００２８】
図１は、本発明の実施の形態に係るコンピュータシステム１の全体構成を簡略化して示す図である。コンピュータシステム１は、外部機器としてのホスト機器２と、ホスト機器２に対して着脱自在に外部接続可能なメモリカード等の半導体記憶装置３とを備えて構成されている。
【００２９】
図２は、ホスト機器２の構成を簡略化して示すブロック図である。図２の接続関係で示すように、ホスト機器２は、コマンド生成部１１、変換部１２、加工部１３、送信部１４、制御部１５、及び受信部１６を備えて構成されている。
【００３０】
図３は、半導体記憶装置３の構成を簡略化して示すブロック図である。図３の接続関係で示すように、半導体記憶装置３は、受信部２１、送信部２２、制御部２３、及び記憶部２４を備えて構成されている。
【００３１】
図４は、制御部２３の構成を具体的に示すブロック図である。図４の接続関係で示すように、制御部２３は、復元部３１、保持部３２、変換部３３、及び判定部３４を備えて構成されている。
【００３２】
図５は、記憶部２４の構成を示す図である。記憶部２４は、任意のコンテンツデータＤ７が記憶された記憶領域ＡＲ１と、テーブルデータＤ１２が記憶された記憶領域ＡＲ２とを有している。記憶領域ＡＲ１はホスト機器２からアクセス可能な領域であり、記憶領域ＡＲ２はホスト機器２からアクセス不可能な領域である。なお、記憶領域ＡＲ１と記憶領域ＡＲ２とが別個のＩＣチップとして構成されていてもよい。
【００３３】
図６は、テーブルデータＤ１２の第１の例としてのテーブルデータＤ１２Ａを簡略化して示す図である。テーブルデータＤ１２Ａには、ホスト機器２から半導体記憶装置３に送信される予定の複数のコマンドと、各コマンドのハッシュ値との対応関係が記述されている。
【００３４】
図７は、ホスト機器２における処理内容を示すフローチャートであり、図８は、半導体記憶装置３における処理内容を示すフローチャートである。以下、図１〜８を参照して、本実施の形態に係るコンピュータシステム１の動作について説明する。
【００３５】
まずステップＰ１０１においてコマンド生成部１１は、半導体記憶装置３に送信するコマンドＤ１を生成する。
【００３６】
次にステップＰ１０２において変換部１２は、所定のハッシュ関数を用いた演算によってコマンドＤ１を変換することにより、ハッシュ値Ｄ２を生成する。
【００３７】
次にステップＰ１０３において加工部１３は、所定の規則に従ってハッシュ値Ｄ２を加工することにより、加工後のハッシュ値Ｄ３を生成する。
【００３８】
図９は、加工部１３によるハッシュ値Ｄ２の加工の例を示す図である。図９の（Ａ）に示すように、ハッシュ値Ｄ２は、上位４バイトのデータＤ２Ｕ及び下位４バイトのデータＤ２Ｌから成る合計８バイトのデータとして与えられる。また、加工部１３はタイムカウンタを有しており、図９の（Ｂ）に示すように、当該タイムカウンタのカウンタ値Ｄ２０は、上位４バイトのデータＤ２０Ｕ及び下位４バイトのデータＤ２０Ｌから成る合計８バイトのデータとして与えられる。そして、加工部１３は、図９の（Ｃ）に示すように、データＤ２Ｕ，Ｄ２０Ｕ，Ｄ２Ｌ，Ｄ２０Ｌを上位側からこの順に配列することにより、合計１６バイトのデータ長を有するハッシュ値Ｄ３を生成する。この例におけるハッシュ値Ｄ３に関しては、最上位の４バイトと、下位側から２番目の４バイトとに、加工前のハッシュ値Ｄ２が含まれている。
【００３９】
次にステップＰ１０４において送信部１４は、ハッシュ値Ｄ３を半導体記憶装置３に送信する。
【００４０】
次にステップＰ２０１において受信部２１は、ハッシュ値Ｄ３をホスト機器２から受信し、受信したハッシュ値Ｄ３を制御部２３に入力する。
【００４１】
次にステップＰ２０２において復元部３１は、ハッシュ値Ｄ３から最上位の４バイトと下位側から２番目の４バイトとを抽出することにより、加工前のハッシュ値Ｄ２に相当するハッシュ値Ｄ１１を復元する。復元されたハッシュ値Ｄ１１は保持部３２によって保持される。
【００４２】
次にステップＰ２０３において判定部３４は、保持部３２が保持しているハッシュ値Ｄ１１が、テーブルデータＤ１２に登録されているいずれかのハッシュ値に一致するか否かを判定する。
【００４３】
ハッシュ値Ｄ１１が登録ハッシュ値に一致する場合（つまりステップＰ２０３における判定の結果が「ＹＥＳ」である場合）は、次にステップＰ２０４において制御部２３は、コマンド要求Ｄ４を送信部２２からホスト機器２に送信する。コマンド要求Ｄ４は、受信部１６によって受信された後、制御部１５に入力される。
【００４４】
次にステップＰ１０５において制御部１５は、ハッシュ値Ｄ３を送信してから所定時間内にコマンド要求Ｄ４を受信したか否かを判定する。
【００４５】
所定時間内にコマンド要求Ｄ４を受信した場合（つまりステップＰ１０５における判定の結果が「ＹＥＳ」である場合）は、次にステップＰ１０６において制御部１５は、コマンド送信命令Ｄ５を加工部１３に入力する。コマンド送信命令Ｄ５を受けた加工部１３は、所定の規則に従ってコマンドＤ１を加工することにより、加工後のコマンドＤ１を生成する。
【００４６】
図１０は、加工部１３によるコマンドＤ１の加工の例を示す図である。図１０の（Ａ）に示すように、コマンドＤ１は、上位４バイトのデータＤ１Ｕ及び下位４バイトのデータＤ１Ｌから成る合計８バイトのデータとして与えられる。また、加工部１３はタイムカウンタを有しており、図１０の（Ｂ）に示すように、当該タイムカウンタのカウンタ値Ｄ３０は、上位４バイトのデータＤ３０Ｕ及び下位４バイトのデータＤ３０Ｌから成る合計８バイトのデータとして与えられる。そして、加工部１３は、図１０の（Ｃ）に示すように、データＤ１Ｕ，Ｄ３０Ｕ，Ｄ１Ｌ，Ｄ３０Ｌを上位側からこの順に配列することにより、合計１６バイトのデータ長を有するコマンドＤ６を生成する。この例におけるコマンドＤ６に関しては、最上位の４バイトと、下位側から２番目の４バイトとに、加工前のコマンドＤ１が含まれている。
【００４７】
次にステップＰ１０７において送信部１４は、コマンドＤ６を半導体記憶装置３に送信する。
【００４８】
次にステップＰ２０５において受信部２１は、コマンドＤ６をホスト機器２から受信し、受信したコマンドＤ６を制御部２３に入力する。
【００４９】
次にステップＰ２０６において復元部３１は、コマンドＤ６から最上位の４バイトと下位側から２番目の４バイトとを抽出することにより、加工前のコマンドＤ１に相当するコマンドＤ１３を復元する。
【００５０】
次にステップＰ２０７において変換部３３は、変換部１２と同様のハッシュ関数を用いた演算によってコマンドＤ１３を変換することにより、ハッシュ値Ｄ１４を生成する。
【００５１】
次にステップＰ２０８において判定部３４は、変換部３３によって生成されたハッシュ値Ｄ１４が、保持部３２が保持しているハッシュ値Ｄ１１に一致するか否かを判定する。
【００５２】
ハッシュ値Ｄ１４がハッシュ値Ｄ１１に一致する場合（つまりステップＰ２０８における判定の結果が「ＹＥＳ」である場合）は、判定部３４は、ホスト機器２からのアクセスは正常なアクセスであると判定する。この場合、ステップＰ２０９において制御部２３は、コマンドＤ１３の内容に応じて記憶部２４にアクセスする。コマンドＤ１３が例えばリードコマンドである場合は、コマンドＤ１３に付随するアドレスに従って記憶領域ＡＲ１からコンテンツデータＤ７を読み出し、読み出したコンテンツデータＤ７を送信部２２からホスト機器２に送信する。また、コマンドＤ１３が例えばライトコマンドである場合は、コマンドＤ１３に付随するコンテンツデータを、コマンドＤ１３に付随するアドレスに従って記憶領域ＡＲ１に書き込む。
【００５３】
図８に示したフローチャートにおいて、保持部３２が保持しているハッシュ値Ｄ１１が、テーブルデータＤ１２に登録されているいずれのハッシュ値にも一致しない場合（つまりステップＰ２０３における判定の結果が「ＮＯ」である場合）は、判定部３４は、ホスト機器２からのアクセスは不正なアクセスであると判定する。この場合、ステップＰ２１０において制御部２３は、ランダムなダミーデータＤ８を送信部２２からホスト機器２に送信する（第１の応答処理）。あるいは所定のエラーコードＤ９を送信部２２からホスト機器２に送信する（第２の応答処理）。あるいはホスト機器２に何らのデータも送信しない（第３の応答処理）。例えば、データＤ２０Ｌを「３」で割った余り値が「０」である場合は第１の応答処理を実行し、余り値が「１」である場合は第２の応答処理を実行し、余り値が「２」である場合は第３の応答処理を実行する。
【００５４】
図８に示したフローチャートにおいて、変換部３３によって生成されたハッシュ値Ｄ１４が、保持部３２が保持しているハッシュ値Ｄ１１に一致しない場合（つまりステップＰ２０８における判定の結果が「ＮＯ」である場合）も、ステップＰ２１０において上記と同様の応答処理が行われる。
【００５５】
＜第１の変形例＞
図１１は、テーブルデータＤ１２の第２の例としてのテーブルデータＤ１２Ｂを簡略化して示す図である。テーブルデータＤ１２Ｂには、テーブルデータＤ１２Ａに加えて、ハッシュ値Ｄ３の送信時刻とコマンドＤ６の送信時刻との間の時間間隔に関する許容範囲が、コマンド毎に記述されている。許容範囲の上限値及び下限値は、正常なアクセスを行った場合に想定される時間間隔に基づいて設定される。
【００５６】
図１２は、本変形例に係る半導体記憶装置３における処理内容を示すフローチャートである。変換部３３によって生成されたハッシュ値Ｄ１４が、保持部３２が保持しているハッシュ値Ｄ１１に一致する場合（つまりステップＰ２０８における判定の結果が「ＹＥＳ」である場合）は、次にステップＰ２１１において判定部３４は、ハッシュ値Ｄ３の送信時刻とコマンドＤ６の送信時刻との間の時間間隔が、コマンドＤ６に関して設定されている許容範囲内に含まれるか否かを判定する。なお、ハッシュ値Ｄ３の送信時刻はハッシュ値Ｄ３からカウンタ値Ｄ２０を抽出することによって求められ、コマンドＤ６の送信時刻はコマンドＤ６からカウンタ値Ｄ３０を抽出することによって求められる。
【００５７】
両者の時間間隔が許容範囲内である場合（つまりステップＰ２１１における判定の結果が「ＹＥＳ」である場合）は、判定部３４は、ホスト機器２からのアクセスは正常なアクセスであると判定する。この場合、ステップＰ２０９において制御部２３は、コマンドＤ１３の内容に応じて記憶部２４にアクセスする。一方、両者の時間間隔が許容範囲外である場合（つまりステップＰ２１１における判定の結果が「ＮＯ」である場合）は、判定部３４は、ホスト機器２からのアクセスは不正なアクセスであると判定する。この場合、ステップＰ２１０において制御部２３は、ランダムなダミーデータＤ８を送信部２２からホスト機器２に送信し、あるいは所定のエラーコードＤ９を送信部２２からホスト機器２に送信し、あるいはホスト機器２に何らのデータも送信しない。
【００５８】
＜第２の変形例＞
図１３は、テーブルデータＤ１２の第３の例としてのテーブルデータＤ１２Ｃを簡略化して示す図である。本変形例では、変換部１２によってコマンドＤ１を変換するためのハッシュ関数として複数のハッシュ関数（ｍｄ５、ｓｈａ１、ｓｈａ２５６等）が準備されており、変換部１２は、複数のハッシュ関数をランダムに選択することによってコマンドＤ１からハッシュ値Ｄ２を生成する。テーブルデータＤ１２Ｃには、各ハッシュ関数を選択した場合のハッシュ値が記述されている。また、ハッシュ値Ｄ３の送信時刻とコマンドＤ６の送信時刻との間の時間間隔に関する許容時間も、ハッシュ関数毎に設定されている。
【００５９】
図８に示したフローチャートにおいて、ステップＰ２０３において判定部３４は、保持部３２が保持しているハッシュ値Ｄ１１が、テーブルデータＤ１２Ｃに登録されているいずれかのハッシュ値に一致するか否かを判定する。例えばリードコマンドＲＥＡＤ１に関しては、保持部３２が保持しているハッシュ値Ｄ１１が、テーブルデータＤ１２Ｃに登録されているハッシュ値Ａ１，Ａ２，Ａ３のいずれかに一致すれば、ステップＰ２０３における判定の結果は「ＹＥＳ」となる。
【００６０】
＜第３の変形例＞
上記実施の形態では、加工部１３はハッシュ値及びコマンドにタイムカウンタのカウンタ値をそれぞれ挿入したが、カウンタ値の代わりに乱数値を挿入してもよい。
【００６１】
また、上記実施の形態では、変換部１２，３３はハッシュ関数を用いた演算によってコマンドをハッシュ値に変換したが、コマンド毎に異なる任意のキーを用いた排他的論理和演算によってコマンドを変換してもよい。あるいは、ハフマン符号又はシャノン符号等の圧縮アルゴリズム、ＬＰＣ（Linear Predictive coding）又はフーリエ変換等の音声コーディック、ＲＬＥ（Run Length Encoding）又はウェーブレット変換等の画像コーディックを用いてコマンドを変換してもよい。
【００６２】
＜まとめ＞
本実施の形態に係るコンピュータシステム１によれば、ホスト機器２は、ハッシュ値Ｄ２（第１の変換値）及びコマンドＤ１を半導体記憶装置３に送信する。半導体記憶装置３は、受信したコマンドＤ１を変換することによってハッシュ値Ｄ１４（第２の変換値）を生成し、受信した第１の変換値が第２の変換値に一致しない場合に不正なアクセスと判定する。このように、コマンドのみならず第１の変換値をホスト機器２から半導体記憶装置３に送信し、第１の変換値が第２の変換値に一致しない場合には不正なアクセスと判定することにより、ホスト機器２と半導体記憶装置３との間における信号の送受信を複雑化することができる。その結果、半導体記憶装置３のセキュリティ性を向上することが可能となる。
【００６３】
また、本実施の形態に係るコンピュータシステム１によれば、判定部３４は、受信した第１の変換値が、記憶部２４に記憶されている第１の変換値に一致しない場合に、不正なアクセスと判定する。従って、受信する予定の第１の変換値とは異なる変換値がホスト機器２から送信されてきた場合には不正なアクセスと判定できるため、半導体記憶装置３のセキュリティ性をさらに向上することが可能となる。
【００６４】
また、本実施の形態に係るコンピュータシステム１によれば、受信した第１の変換値が、記憶部２４に記憶されている第１の変換値に一致しない場合には、ホスト機器２から半導体記憶装置３にコマンドＤ１が送信されない。従って、ホスト機器２と半導体記憶装置３との間における信号の送受信をさらに複雑化できるため、半導体記憶装置３のセキュリティ性をさらに向上することが可能となる。
【００６５】
また、本実施の形態に係るコンピュータシステム１によれば、加工部１３は、第１の変換値を表すデータＤ２内の所定の箇所に不定値のデータＤ２０を挿入することにより、第１の変換値を加工する。従って、ホスト機器２から半導体記憶装置３に送信される第１の変換値を複雑化できるため、半導体記憶装置３のセキュリティ性をさらに向上することが可能となる。
【００６６】
また、本実施の形態に係るコンピュータシステム１によれば、加工部１３は、コマンドＤ１内の所定の箇所に不定値のデータＤ３０を挿入することにより、コマンドＤ１を加工する。従って、ホスト機器２から半導体記憶装置３に送信されるコマンドＤ１を複雑化できるため、半導体記憶装置３のセキュリティ性をさらに向上することが可能となる。
【００６７】
また、本実施の形態に係るコンピュータシステム１によれば、判定部３４は、第１の変換値に関する送信時刻とコマンドに関する送信時刻との間の時間間隔が所定の許容範囲外である場合に、不正なアクセスと判定する。このように、第１の変換値に関する送信時刻とコマンドに関する送信時刻との間の時間間隔に許容範囲を設定し、当該時間間隔が許容範囲外である場合には不正なアクセスと判定することにより、半導体記憶装置３のセキュリティ性をさらに向上することが可能となる。
【００６８】
また、本実施の形態に係るコンピュータシステム１によれば、変換部１２（第１の生成部）は、予め規定された複数の演算のいずれかによってコマンドＤ１を変換することにより、第１の変換値を生成する。従って、同一のコマンドＤ１に対して複数種類の第１の変換値が生成され、ホスト機器２から半導体記憶装置３に送信される第１の変換値を複雑化できるため、半導体記憶装置３のセキュリティ性をさらに向上することが可能となる。
【００６９】
また、本実施の形態に係るコンピュータシステム１によれば、判定部３４が不正なアクセスと判定した場合には、制御部２３は、ホスト機器２に対する応答処理として、ダミーデータＤ８を返信する処理、エラーコードＤ９を返信する処理、及び何らのデータも返信しない処理のうちのいずれかを不定に選択して実行する。従って、不正アクセスに対して常にエラーコードを返信する場合等と比較すると、不正アクセスを行う第三者は不正アクセスに失敗したことに気付きにくい。従って、解析のやり直しを開始する時期を遅らせることが可能となる。
【符号の説明】
【００７０】
１  コンピュータシステム
２  ホスト機器
３  半導体記憶装置
１２  変換部
１３  加工部
１４  送信部
２１  受信部
２３  制御部
２４  記憶部
３１  復元部
３２  保持部
３３  変換部
３４  判定部
【図１】
0005752991.tif 000002
【図２】
0005752991.tif 000003
【図３】
0005752991.tif 000004
【図４】
0005752991.tif 000005
【図５】
0005752991.tif 000006
【図６】
0005752991.tif 000007
【図７】
0005752991.tif 000008
【図８】
0005752991.tif 000009
【図９】
0005752991.tif 000010
【図１０】
0005752991.tif 000011
【図１１】
0005752991.tif 000012
【図１２】
0005752991.tif 000013
【図１３】
0005752991.tif 000014