上記特許文献1に開示された背景技術によると、メモリに不正にアクセスしようとする第三者によって、禁止パラメータ領域の位置が特定されやすい。禁止パラメータ領域の位置が特定された場合には、そこに書き込まれている禁止パラメータが何らかの方法によって削除されることにより、メモリに記憶されているデータが不正に読み出されてしまう。このように、上記特許文献1に開示された背景技術には、セキュリティ強度が十分ではないという問題がある。
また、メモリセルアレイの一部が禁止パラメータ領域として使用されるため、その領域には、禁止パラメータ以外の通常のデータを書き込むことができない。従って、禁止パラメータ領域として設定されている領域は無駄な領域となるため、上記特許文献1に開示された背景技術には、メモリ容量が削減されてしまうという問題もある。
本発明はかかる問題を解決するために成されたものであり、メモリ容量の削減を伴うことなく、セキュリティ強度を高めることが可能な、半導体記憶装置及びそれを用いたコンピュータシステムを得ることを目的とする。
本発明の第1の態様に係る半導体記憶装置は、メモリと、外部装置から前記メモリへのアクセスを制御するメモリコントローラとを備え、前記メモリコントローラは、制御部と記憶部とを有し、前記メモリは、コンテンツデータが記憶された第1領域と、前記コンテンツデータに関連するデータが記憶された第2領域とを有し、前記記憶部には、前記第2領域への所定アクセス順序が記憶されており、前記制御部は、前記外部装置から前記第2領域へのアクセスにおけるアクセス順序が、前記所定アクセス順序に一致していることを条件として、前記外部装置から前記第1領域へのアクセスを許可することを特徴とするものである。
第1の態様に係る半導体記憶装置によれば、第2領域へのアクセスにおけるアクセス順序が、記憶部に記憶されている所定アクセス順序に一致していることを条件として、第1領域へのアクセスが許可される。そのため、不正アクセスを企てる第三者は、メモリ内における第2領域の位置のみならず、所定アクセス順序をも割り出す必要がある。しかも、その所定アクセス順序の通りに第2領域にアクセスしなければ、第1の領域に記憶されているコンテンツデータを読み出すことができない。従って、セキュリティ強度を高めることができる。
また、第2領域には、コンテンツデータとは無関係なデータではなく、コンテンツデータに関連するデータ(コンテンツデータの先頭データ又はヘッダデータ等)が記憶されている。従って、コンテンツデータをメモリに格納するにあたり、第2領域は無駄な領域とはならないため、メモリ容量が削減されることを回避できる。
本発明の第2の態様に係る半導体記憶装置は、第1の態様に係る半導体記憶装置において特に、前記所定アクセス順序として、任意のアクセス順序が前記制御部によって前記記憶部に設定されることを特徴とする。
第2の態様に係る半導体記憶装置によれば、固定のアクセス順序が所定アクセス順序として記憶部に記憶されているのではなく、制御部によって、任意のアクセス順序が所定アクセス順序として記憶部に設定される。従って、不正アクセスを企てる第三者が所定アクセス順序を割り出すことはさらに困難となるため、セキュリティ強度をさらに高めることができる。
本発明の第3の態様に係る半導体記憶装置は、第2の態様に係る半導体記憶装置において特に、前記制御部は、前記外部装置から前記第2領域へのアクセスが完了した後、前記外部装置が次に前記第2領域へアクセスする際に、新たな所定アクセス順序を前記記憶部に設定することを特徴とするものである。
第3の態様に係る半導体記憶装置によれば、第2領域へのアクセスが行われる度に、所定アクセス順序が変更される。従って、仮に、不正アクセスを企てる第三者が所定アクセス順序の割り出しに一旦成功したとしても、次回に第2領域にアクセスする際には所定アクセス順序が変更されているため、以前に割り出した所定アクセス順序をそのまま適用しても、第1領域へのアクセスは許可されない。その結果、セキュリティ強度をさらに高めることができる。
本発明の第4の態様に係る半導体記憶装置は、第1〜第3のいずれか一つの態様に係る半導体記憶装置において特に、前記制御部は、前記記憶部に記憶されている前記所定アクセス順序を定期的又は不定期的に変更することを特徴とするものである。
第4の態様に係る半導体記憶装置によれば、制御部は、外部装置から第1領域又は第2領域へのアクセス状況に拘わらず、記憶部に記憶されている所定アクセス順序を定期的又は不定期的に変更する。従って、不正アクセスを企てる第三者が所定アクセス順序を割り出すことはさらに困難となるため、セキュリティ強度をさらに高めることができる。
本発明の第5の態様に係る半導体記憶装置は、第1〜第4のいずれか一つの態様に係る半導体記憶装置において特に、前記制御部は、前記外部装置から前記第1領域へのアクセスを許可した後、所定のタイミングで、前記外部装置から前記第1領域へのアクセスを禁止することを特徴とするものである。
第5の態様に係る半導体記憶装置によれば、第1領域へのアクセスが許可されると、その許可状態が継続されるのではなく、所定のタイミングで、第1領域へのアクセスが再び禁止される。従って、不正アクセスを企てる第三者は、仮に、第1領域へのアクセスに一旦成功したとしても、所定のタイミングでアクセスが再禁止された以降は、第1領域へのアクセスができなくなる。その結果、セキュリティ強度をさらに高めることができる。
本発明の第6の態様に係る半導体記憶装置は、第1〜第5のいずれか一つの態様に係る半導体記憶装置において特に、前記メモリは、前記第1領域と前記第2領域とのセットを、複数セット有しており、前記所定アクセス順序は、各セット毎に個別に設定可能であることを特徴とする。
第6の態様に係る半導体記憶装置によれば、所定アクセス順序は、複数セットの各々のセット毎に個別に設定可能である。従って、不正アクセスを企てる第三者は、仮に、一のセットに関する所定アクセス順序の割り出しに成功したとしても、他のセットの第1領域及び第2領域にはアクセスできない。その結果、セキュリティ強度をさらに高めることができる。
本発明の第7の態様に係る半導体記憶装置は、第6の態様に係る半導体記憶装置において特に、前記複数セットには、第1セットと第2セットとが含まれ、前記制御部は、前記外部装置から前記第1セットの前記第2領域へのアクセスにおけるアクセス順序が、前記第1セットに関する前記所定アクセス順序に一致していることを条件として、前記外部装置から前記第2セットの前記第2領域へのアクセスを許可することを特徴とするものである。
第7の態様に係る半導体記憶装置によれば、第2セットの第2領域へのアクセスが常に許可されているわけではなく、第1セットの第2領域へのアクセス順序が所定アクセス順序に一致しなければ、第2セットの第2領域へのアクセスは許可されない。従って、不正アクセスを企てる第三者が第2セットの第1領域に記憶されているコンテンツデータを読み出すためには、第2セットに関する所定アクセス順序のみならず、第1セットに関する所定アクセス順序をも割り出す必要があるため、セキュリティ強度をさらに高めることができる。
本発明の第8の態様に係る半導体記憶装置は、第7の態様に係る半導体記憶装置において特に、前記制御部は、前記外部装置から前記第2セットの前記第2領域へのアクセスを許可した場合、前記外部装置から前記第1セットの前記第2領域へのアクセスを禁止することを特徴とするものである。
第8の態様に係る半導体記憶装置によれば、第1セットの第2領域へのアクセスが許可されると、その許可状態が継続されるのではなく、第2セットの第2領域へのアクセスが許可された時点で、第1セットの第2領域へのアクセスが再び禁止される。従って、不正アクセスを企てる第三者は、仮に、第1セットの第2領域へのアクセスに一旦成功したとしても、第2セットの第2領域へのアクセスが許可された以降は、第1セットの第2領域へのアクセスができなくなる。その結果、セキュリティ強度をさらに高めることができる。
本発明の第9の態様に係るコンピュータシステムは、ホスト機器と、前記ホスト機器に外部接続可能な半導体記憶装置とを備え、前記半導体記憶装置は、メモリと、前記ホスト機器から前記メモリへのアクセスを制御するメモリコントローラとを含み、前記メモリコントローラは、制御部と記憶部とを有し、前記メモリは、コンテンツデータが記憶された第1領域と、前記コンテンツデータに関連するデータが記憶された第2領域とを有し、前記記憶部には、前記第2領域への所定アクセス順序が記憶されており、前記制御部は、前記ホスト機器から前記第2領域へのアクセスにおけるアクセス順序が、前記所定アクセス順序に一致していることを条件として、前記ホスト機器から前記第1領域へのアクセスを許可することを特徴とするものである。
第9の態様に係るコンピュータシステムによれば、第2領域へのアクセスにおけるアクセス順序が、記憶部に記憶されている所定アクセス順序に一致していることを条件として、第1領域へのアクセスが許可される。そのため、不正アクセスを企てる第三者は、メモリ内における第2領域の位置のみならず、所定アクセス順序をも割り出す必要がある。しかも、その所定アクセス順序の通りに第2領域にアクセスしなければ、第1の領域に記憶されているコンテンツデータを読み出すことができない。従って、セキュリティ強度を高めることができる。
また、第2領域には、コンテンツデータとは無関係なデータではなく、コンテンツデータに関連するデータ(コンテンツデータの先頭データ又はヘッダデータ等)が記憶されている。従って、コンテンツデータをメモリに格納するにあたり、第2領域は無駄な領域とはならないため、メモリ容量が削減されることを回避できる。
本発明の第10の態様に係るコンピュータシステムは、第9の態様に係るコンピュータシステムにおいて特に、前記所定アクセス順序として、任意のアクセス順序が、前記ホスト機器から入力された設定コマンドに基づいて、前記制御部によって前記記憶部に設定されることを特徴とするものである。
第10の態様に係るコンピュータシステムによれば、固定のアクセス順序が所定アクセス順序として記憶部に記憶されているのではなく、制御部によって、任意のアクセス順序が所定アクセス順序として記憶部に設定される。従って、不正アクセスを企てる第三者が所定アクセス順序を割り出すことはさらに困難となるため、セキュリティ強度をさらに高めることができる。
本発明の第11の態様に係るコンピュータシステムは、第10の態様に係るコンピュータシステムにおいて特に、前記制御部は、前記ホスト機器から前記第2領域へのアクセスが完了した後、前記ホスト機器が次に前記第2領域へアクセスする際に、前記ホスト機器から入力された設定コマンドに基づいて、新たな所定アクセス順序を前記記憶部に設定することを特徴とするものである。
第11の態様に係るコンピュータシステムによれば、第2領域へのアクセスが行われる度に、所定アクセス順序が変更される。従って、仮に、不正アクセスを企てる第三者が所定アクセス順序の割り出しに一旦成功したとしても、次回に第2領域にアクセスする際には所定アクセス順序が変更されているため、以前に割り出した所定アクセス順序をそのまま適用しても、第1領域へのアクセスは許可されない。その結果、セキュリティ強度をさらに高めることができる。
本発明の第12の態様に係るコンピュータシステムは、第9〜第11のいずれか一つの態様に係るコンピュータシステムにおいて特に、前記制御部は、前記記憶部に記憶されている前記所定アクセス順序を定期的に変更することを特徴とするものである。
第12の態様に係るコンピュータシステムによれば、制御部は、ホスト機器から第1領域又は第2領域へのアクセス状況に拘わらず、記憶部に記憶されている所定アクセス順序を定期的又は不定期的に変更する。従って、不正アクセスを企てる第三者が所定アクセス順序を割り出すことはさらに困難となるため、セキュリティ強度をさらに高めることができる。
本発明の第13の態様に係るコンピュータシステムは、第9〜第12のいずれか一つの態様に係るコンピュータシステムにおいて特に、前記制御部は、前記ホスト機器から前記第1領域へのアクセスを許可した後、所定のタイミングで、前記ホスト機器から前記第1領域へのアクセスを禁止することを特徴とするものである。
第13の態様に係るコンピュータシステムによれば、第1領域へのアクセスが許可されると、その許可状態が継続されるのではなく、所定のタイミングで、第1領域へのアクセスが再び禁止される。従って、不正アクセスを企てる第三者は、仮に、第1領域へのアクセスに一旦成功したとしても、所定のタイミングでアクセスが再禁止された以降は、第1領域へのアクセスができなくなる。その結果、セキュリティ強度をさらに高めることができる。
本発明の第14の態様に係るコンピュータシステムは、第9〜第13のいずれか一つの態様に係るコンピュータシステムにおいて特に、前記メモリは、前記第1領域と前記第2領域とのセットを、複数セット有しており、前記所定アクセス順序は、各セット毎に個別に設定可能であることを特徴とするものである。
第14の態様に係るコンピュータシステムによれば、所定アクセス順序は、複数セットの各々のセット毎に個別に設定可能である。従って、不正アクセスを企てる第三者は、仮に、一のセットに関する所定アクセス順序の割り出しに成功したとしても、他のセットの第1領域及び第2領域にはアクセスできない。その結果、セキュリティ強度をさらに高めることができる。
本発明の第15の態様に係るコンピュータシステムは、第14の態様に係るコンピュータシステムにおいて特に、前記複数セットには、第1セットと第2セットとが含まれ、前記制御部は、前記ホスト機器から前記第1セットの前記第2領域へのアクセスにおけるアクセス順序が、前記第1セットに関する前記所定アクセス順序に一致していることを条件として、前記ホスト機器から前記第2セットの前記第2領域へのアクセスを許可することを特徴とするものである。
第15の態様に係るコンピュータシステムによれば、第2セットの第2領域へのアクセスが常に許可されているわけではなく、第1セットの第2領域へのアクセス順序が所定アクセス順序に一致しなければ、第2セットの第2領域へのアクセスは許可されない。従って、不正アクセスを企てる第三者が第2セットの第1領域に記憶されているコンテンツデータを読み出すためには、第2セットに関する所定アクセス順序のみならず、第1セットに関する所定アクセス順序をも割り出す必要があるため、セキュリティ強度をさらに高めることができる。
本発明の第16の態様に係るコンピュータシステムは、第15の態様に係るコンピュータシステムにおいて特に、前記制御部は、前記ホスト機器から前記第2セットの前記第2領域へのアクセスを許可した場合、前記ホスト機器から前記第1セットの前記第2領域へのアクセスを禁止することを特徴とするものである。
第16の態様に係るコンピュータシステムによれば、第1セットの第2領域へのアクセスが許可されると、その許可状態が継続されるのではなく、第2セットの第2領域へのアクセスが許可された時点で、第1セットの第2領域へのアクセスが再び禁止される。従って、不正アクセスを企てる第三者は、仮に、第1セットの第2領域へのアクセスに一旦成功したとしても、第2セットの第2領域へのアクセスが許可された以降は、第1セットの第2領域へのアクセスができなくなる。その結果、セキュリティ強度をさらに高めることができる。
本発明によれば、メモリ容量の削減を伴うことなく、セキュリティ強度を高めることが可能となる。
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
図1は、本発明の実施の形態に係るコンピュータシステム1の全体構成を示すブロック図である。コンピュータシステム1は、ホスト機器2と、ホスト機器2に外部接続可能な半導体記憶装置3とを備えて構成されている。半導体記憶装置3は、メモリ5(メモリセルアレイ)と、ホスト機器2からメモリ5へのアクセスを制御するメモリコントローラ4とを備えて構成されている。
図2は、ホスト機器2の構成の一部を抜き出して示すブロック図である。ホスト機器2は、バス14を介して相互に接続された、CPU10、アクセスコントローラ11、及びRTC(Real Time Clock)12を備えて構成されている。アクセスコントローラ11は、CPU10及びRTC12と、メモリコントローラ4との間における、信号又はデータ等の送受信を制御する。
図3は、メモリコントローラ4の構成を示すブロック図である。メモリコントローラ4は、制御部20、記憶部21、ホストインタフェース22、及びメモリインタフェース23を備えて構成されている。制御部20は、設定処理部24及び判定処理部25を有している。記憶部21は、レジスタ26,27を有している。ホストインタフェース22は、制御部20とアクセスコントローラ11との間における、信号又はデータ等の送受信を制御する。メモリインタフェース23は、制御部20とメモリ5との間における、信号又はデータ等の送受信を制御する。
図4は、メモリ5の記憶領域の一部を抜き出して示す図である。メモリ5の記憶領域は、番地がX8以上X9未満の領域に対応するコンテンツ領域R1と、番地がX9以上X10未満の領域に対応するコンテンツ領域R2と、番地がX1以上X4未満の領域に対応するアクセスシナリオ領域R3と、番地がX4以上X8未満の領域に対応するアクセスシナリオ領域R4と、その他の領域R5,R6とを有している。コンテンツ領域R1,R2及びアクセスシナリオ領域R3,R4は、通常は外部からのアクセスが禁止されている領域であり、メモリコントローラ4によって許可されない限り、外部からコンテンツ領域R1,R2及びアクセスシナリオ領域R3,R4にアクセスできない。一方、領域R5,R6に関しては、外部からのアクセスはフリーである。
コンテンツ領域R1には、コンテンツデータD1が記憶されている。コンテンツ領域R2には、コンテンツデータD2が記憶されている。コンテンツデータD1,D2は、画像、音声、又はプログラム等の任意のコンテンツに関するデータである。
アクセスシナリオ領域R3は、複数個(図4に示した例では3個)の領域R31,R32,R33を含んでいる。領域R31,R32,R33には、それぞれデータD1A1,D1A2,D1A3が記憶されている。データD1A1〜D1A3は、コンテンツデータD1に関連するデータである。第1の例として、コンテンツの先頭部分のデータがデータD1A1〜D1A3であり、先頭以外の部分のデータがコンテンツデータD1である。第2の例として、コンテンツデータのヘッダ部分のデータがデータD1A1〜D1A3であり、ペイロード部分のデータがコンテンツデータD1である。第3の例として、コンテンツデータD1は圧縮されたデータであり、データD1A1〜D1A3は、コンテンツデータD1を伸張するためのハフマンテーブルに関するデータである。上記第1〜第3の例に限らず、データD1A1〜D1A3は、コンテンツデータD1に関連するデータであれば、どのようなものであっても良い。メモリ5からコンテンツデータD1を読み出すためには、それに先立ってデータD1A1〜D1A3をメモリ5から読み出す必要がある。
同様に、アクセスシナリオ領域R4は、複数個(図4に示した例では4個)の領域R41,R42,R43,R44を含んでいる。領域R41,R42,R43,R44には、それぞれデータD2A1,D2A2,D2A3,D2A4が記憶されている。データD2A1〜D2A4は、上述したデータD1A1〜D1A3の例と同様に、コンテンツデータD2に関連するデータである。メモリ5からコンテンツデータD2を読み出すためには、それに先立ってデータD2A1〜D2A4をメモリ5から読み出す必要がある。
図5は、本実施の形態に係るコンピュータシステム1における処理の流れを示すフローチャートである。図6,8,9,11,14は、図3に示したレジスタ26,27へのパラメータの設定内容を示す図である。各図の(A)は、レジスタ26へのパラメータの設定内容を示しており、各図の(B)は、レジスタ27へのパラメータの設定内容を示している。図7,10,12,13は、図4に示したコンテンツ領域R1,R2及びアクセスシナリオ領域R3,R4に対するアクセスの許可又は禁止の状態を示す図である。以下、図5〜14を参照して、本実施の形態に係るコンピュータシステム1の動作について説明する。
まず、図5のステップS1において、ホスト機器2の電源が投入される。
次に、図5のステップS2において、初期化されたパラメータがレジスタ26,27に設定される。図6の(A)を参照して、レジスタ26には、各状態T0〜T2毎に、所定アクセス順序を設定可能である。所定アクセス順序は、外部からアクセスシナリオ領域R3,R4へアクセスする際に、アクセスシナリオ領域R3,R4が含む複数の領域R31〜R33,R41〜R44に対してどのような順序でアクセスすべきかを示すパラメータである。この時点では、全ての状態T0〜T2に関して、所定アクセス順序は何も設定されていない。なお、状態T0は初期状態を意味している。また、状態T0以外に設定すべき状態の個数は、アクセスシナリオ領域の個数に基づいて決定される。この例では2個のアクセスシナリオ領域R3,R4が存在するため、状態T0以外に設定すべき状態の個数は、2個(状態T1,T2)である。この時点では、ポインタPによって状態T0が選択されている。
また、図6の(B)を参照して、レジスタ27には、各状態T0〜T2毎に、アクセス禁止領域を設定可能である。アクセス禁止領域は、アクセスシナリオ領域R3,R4が含む複数の領域R31〜R33,R41〜R44のうち、外部からのアクセスを禁止する領域を示すパラメータである。この時点では、全ての状態T0〜T2に関して、全ての領域R31〜R33,R41〜R44がアクセス禁止領域として設定されている。なお、レジスタ26と同様に、状態T0は初期状態を意味しており、状態T0以外に設定すべき状態の個数は、アクセスシナリオ領域の個数に基づいて決定される。この時点では、ポインタPによって状態T0が選択されている。
上述の通り、通常は、外部からコンテンツ領域R1,R2及びアクセスシナリオ領域R3,R4へのアクセスは禁止されている。図7を参照して、外部からのアクセスが禁止されている領域に砂地のハッチングを付して示すように、この時点では、コンテンツ領域R1,R2及びアクセスシナリオ領域R3,R4は、いずれも外部からのアクセスが禁止されている。
次に、図5のステップS3において、レジスタ26,27へのパラメータの設定が行われる。具体的には、ホスト機器2が、各アクセスシナリオ領域R3,R4毎に所定アクセス順序及びアクセス禁止領域を決定し、設定コマンドとしてメモリコントローラ4に送信する。メモリコントローラ4の設定処理部24(図3参照)は、受信した設定コマンドに基づいて、レジスタ26に所定アクセス順序を設定するとともに、レジスタ27にアクセス禁止領域を設定する。
図8の(A)を参照して、この例では、設定処理部24は、「R31→R33→R32」なる所定アクセス順序を、状態T1に対応させてレジスタ26に設定する。また、設定処理部24は、「R44→R41→R42→R43」なる所定アクセス順序を、状態T2に対応させてレジスタ26に設定する。
図8の(B)を参照して、この例では、設定処理部24は、「R41,R42,R43,R44」なるアクセス禁止領域を、状態T1に対応させてレジスタ27に設定する。また、設定処理部24は、「R31,R32,R33」なるアクセス禁止領域を、状態T2に対応させてレジスタ27に設定する。
レジスタ26,27へのパラメータの設定が完了すると、図9に示すように、ポインタPが指し示す位置が、状態T0から状態T1に更新される。つまり、ポインタPによって状態T1が選択される。図9の(B)を参照して、状態T1に対応するアクセス禁止領域には、領域R31〜R33は含まれていない。つまり、ポインタPの位置が状態T0から状態T1に更新されたことにより、図10に示すように、外部からアクセスシナリオ領域R3(領域R31〜R33)へのアクセスが許可されたことになる。メモリコントローラ4は、この状態で、ホスト機器2からアクセスシナリオ領域R3へのアクセスを待つ。
ここで、ホスト機器2による所定アクセス順序の決定方法について説明する。この例ではアクセスシナリオ領域R3は3個の領域R31〜R33を含むため、アクセスシナリオ領域R3に関する所定アクセス順序の候補としては、「R31→R32→R33」、「R31→R33→R32」、又は「R33→R32→R31」等、合計6個のアクセス順序がある。ホスト機器2は、全ての候補の中から任意の一つを選択することにより、アクセスシナリオ領域R3に関する所定アクセス順序を決定する。但し、先頭の領域R31からのシーケンシャルアクセスとなる「R31→R32→R33」の順序は、所定アクセス順序の候補から除外するのが望ましい。
アクセスシナリオ領域R4に関しても同様に、ホスト機器2は、合計24個の候補の中から任意の一つを選択することにより、アクセスシナリオ領域R4に関する所定アクセス順序を決定する。但し、上記と同様に、先頭の領域R41からのシーケンシャルアクセスとなる「R41→R42→R43→R44」の順序は、所定アクセス順序の候補から除外するのが望ましい。
次に、ホスト機器2によるアクセス禁止領域の決定方法について説明する。ホスト機器2は、全ての領域R31,R32,R33,R41,R42,R43,R44のうち、所定アクセス順序の中に含まれていない領域を、アクセス禁止領域として決定する。例えば、所定アクセス順序が「R31→R33→R32」である場合には、アクセス禁止領域を「R41,R42,R43,R44」に決定し、所定アクセス順序が「R43→R42→R41→R44」である場合には、アクセス禁止領域を「R31,R32,R33」に決定する。
なお、ホスト機器2が所定アクセス順序及びアクセス禁止領域を決定するためには、アクセスシナリオ領域の個数、及び各アクセスシナリオ領域に含まれる領域の位置及び個数に関する情報を、ホスト機器2が保有している必要がある。
これを実現するための第1の例として、メモリ5の領域R5あるいは領域R6(図4参照)内、又は、メモリコントローラ4の記憶部21(図3参照)内に、これらの情報を予め記憶しておき、メモリコントローラ4がホスト機器2にこれらの情報を送信する。コンテンツ領域の位置及び個数についても、同様の手法によりメモリコントローラ4がホスト機器2に情報を送信することができる。
第2の例として、メモリ5内にコンテンツデータを書き込む際に、ホスト機器2がメモリコントローラ4に対して、データD1A1〜D1A3,D2A1〜D2A4及びコンテンツデータD1,D2の格納場所を指定する。そして、指定した格納場所を、ホスト機器2が保有しておく。
第3の例として、データD1A1〜D1A3,D2A1〜D2A4の格納場所をメモリ5内の固定位置とし、その固定位置に関する情報をメモリコントローラ4が保有しておく。そして、メモリコントローラ4がホスト機器2にその情報を送信する。コンテンツ領域の位置及び個数についても、同様の手法によりメモリコントローラ4がホスト機器2に情報を送信することができる。
図5のフローチャートの説明に戻り、この時点(ステップS3)でメモリコントローラ4は、アクセスシナリオ領域R3へのアクセスを許可した状態(図10参照)で、ホスト機器2からアクセスシナリオ領域R3へのアクセスを待っている。
次に、図5のステップS4において、ホスト機器2からアクセスシナリオ領域R3への読み出しアクセスが開始される。具体的には、ホスト機器2からメモリコントローラ4へ、領域R31〜R33に関するリードコマンドが送信される。
次に、図5のステップS5において、メモリコントローラ4は、ホスト機器2からアクセスシナリオ領域R3へのアクセスにおけるアクセス順序が、アクセスシナリオ領域R3に関する所定アクセス順序に一致しているか否かを判定する。具体的には、メモリコントローラ4の判定処理部25(図3参照)が、ホスト機器2からの領域R31〜R33に関するリードコマンドの受信順序と、図9の(A)に示したレジスタ26における、状態T1に対応する所定アクセス順序とを比較する。
領域R31〜R33に関するリードコマンドの受信順序が、R31→R33→R32の順序でない場合には、受信順序は所定アクセス順序と一致しない。この場合はステップS5における判定の結果は「NO」となり、次に図5のステップS6においてメモリコントローラ4は、ホスト機器2からのアクセスを不正なアクセスとみなして、ホスト機器2に任意のダミーデータを送信する。
一方、領域R31〜R33に関するリードコマンドの受信順序が、R31→R33→R32の順序である場合には、受信順序は所定アクセス順序と一致する。この場合、メモリコントローラ4は、ホスト機器2からのアクセスを正常なアクセスとみなして、領域R31,R33,R32からデータD1A1,D1A3,D1A2を順に読み出して、ホスト機器2に送信する。
また、領域R31〜R33に関するリードコマンドの受信順序が所定アクセス順序と一致する場合、メモリコントローラ4は、図5のステップS7において、アクセスシナリオ領域R3に対応するコンテンツ領域R1へのアクセスを許可する。メモリコントローラ4は、この状態で、ホスト機器2からコンテンツ領域R1へのアクセスを待つ。後にホスト機器2からコンテンツ領域R1への読み出しアクセスがあった場合、メモリコントローラ4は、コンテンツ領域R1からコンテンツデータD1を読み出して、ホスト機器2に送信する。
また、領域R31〜R33に関するリードコマンドの受信順序が所定アクセス順序と一致する場合、メモリコントローラ4は、図5のステップS8において、レジスタ26,27のポインタPの位置を、図11に示すように、状態T1から状態T2に更新する。図11の(B)を参照して、状態T2に対応するアクセス禁止領域には、領域R41〜R44は含まれていない。つまり、ポインタPの位置が状態T1から状態T2に更新されたことにより、図12に示すように、外部からアクセスシナリオ領域R4へのアクセスが許可されたことになる。メモリコントローラ4は、この状態で、ホスト機器2からアクセスシナリオ領域R4へのアクセスを待つ。また、図11の(B)を参照して、状態T2に対応するアクセス禁止領域には、領域R31〜R33が含まれている。つまり、ポインタPの位置が状態T1から状態T2に更新されたことにより、図12に示すように、外部からアクセスシナリオ領域R3へのアクセスが再び禁止されたことになる。
なお、図5のフローチャートではステップS7とステップS8とを別ステップとして記載しているが、図10に示した状態から図12に示した状態への変更(つまり、アクセスシナリオ領域R3へのアクセスの禁止、アクセスシナリオ領域R4へのアクセスの許可、及びコンテンツ領域R1へのアクセスの許可)は、ステップS5において領域R31〜R33に関するリードコマンドの受信順序が所定アクセス順序と一致すると判定された直後に、同一の処理ステップとして実行しても良い。
次に、図5のステップS9において、メモリコントローラ4は、レジスタ26,27へのパラメータの再設定を行うか否かを判定する。ここでは、ステップS9における判定の結果は「NO」であるものとする。
次に、図5のステップS4において、ホスト機器2からアクセスシナリオ領域R4への読み出しアクセスが開始される。具体的には、ホスト機器2からメモリコントローラ4へ、領域R41〜R44に関するリードコマンドが送信される。
次に、図5のステップS5において、メモリコントローラ4は、ホスト機器2からアクセスシナリオ領域R4へのアクセスにおけるアクセス順序が、アクセスシナリオ領域R4に関する所定アクセス順序に一致しているか否かを判定する。具体的には、メモリコントローラ4の判定処理部25(図3参照)が、ホスト機器2からの領域R41〜R44に関するリードコマンドの受信順序と、図11の(A)に示したレジスタ26における、状態T2に対応する所定アクセス順序とを比較する。
領域R41〜R44に関するリードコマンドの受信順序が、R44→R41→R42→R43の順序でない場合には、受信順序は所定アクセス順序と一致しない。この場合、図5のステップS6において、メモリコントローラ4は、ホスト機器2からのアクセスを不正なアクセスとみなして、ホスト機器2に任意のダミーデータを送信する。
一方、領域R41〜R44に関するリードコマンドの受信順序が、R44→R41→R42→R43の順序である場合には、受信順序は所定アクセス順序と一致する。この場合、メモリコントローラ4は、ホスト機器2からのアクセスを正常なアクセスとみなして、領域R44,R41,R42,R43からデータD2A4,D2A1,D2A2,D2A3を順に読み出して、ホスト機器2に送信する。
また、領域R41〜R44に関するリードコマンドの受信順序が所定アクセス順序と一致する場合、メモリコントローラ4は、図5のステップS7において、アクセスシナリオ領域R4に対応するコンテンツ領域R2へのアクセスを許可する。メモリコントローラ4は、この状態で、ホスト機器2からコンテンツ領域R2へのアクセスを待つ。後にホスト機器2からコンテンツ領域R2への読み出しアクセスがあった場合、メモリコントローラ4は、コンテンツ領域R2からコンテンツデータD2を読み出して、ホスト機器2に送信する。
また、領域R41〜R44に関するリードコマンドの受信順序が所定アクセス順序と一致する場合、メモリコントローラ4は、図5のステップS8において、レジスタ26,27のポインタPの位置を、図8に示すように、状態T2から状態T0に更新する。図8の(B)を参照して、状態T0に対応するアクセス禁止領域には、領域R31〜R33,R41〜R44が含まれている。つまり、ポインタPの位置が状態T2から状態T0に更新されたことにより、図13に示すように、外部からアクセスシナリオ領域R4へのアクセスが再び禁止されたことになる。
なお、図12に示した状態から図13に示した状態への変化(つまり、コンテンツ領域R2へのアクセスの許可、及びアクセスシナリオ領域R4へのアクセスの禁止)は、ステップS5において領域R41〜R44に関するリードコマンドの受信順序が所定アクセス順序と一致すると判定された直後に、同一の処理ステップとして実行しても良い。
次に、図5のステップS9において、メモリコントローラ4は、レジスタ26,27へのパラメータの再設定を行うか否かを判定する。ここでは、ステップS9における判定の結果は「YES」であるものとする。
この場合、次に図5のステップS2において、レジスタ26,27に現在設定されているパラメータが初期化され、レジスタ26,27は図6に示した状態に戻る。
次に、図5のステップS3において、レジスタ26,27への新たなパラメータの設定が行われる。具体的には、ホスト機器2が、各アクセスシナリオ領域R3,R4毎に新たな所定アクセス順序及び新たなアクセス禁止領域を決定し、設定コマンドとしてメモリコントローラ4に送信する。メモリコントローラ4の設定処理部24(図3参照)は、受信した設定コマンドに基づいて、レジスタ26に新たな所定アクセス順序を設定するとともに、レジスタ27に新たなアクセス禁止領域を設定する。
図14の(A)を参照して、この例では、設定処理部24は、「R33→R31→R32」なる新たな所定アクセス順序を、状態T1に対応させてレジスタ26に設定する。また、設定処理部24は、「R41→R43→R42→R44」なる新たな所定アクセス順序を、状態T2に対応させてレジスタ26に設定する。
図14の(B)を参照して、この例では、設定処理部24は、「R41,R42,R43,R44」なる新たなアクセス禁止領域を、状態T1に対応させてレジスタ27に設定する。また、設定処理部24は、「R31,R32,R33」なる新たなアクセス禁止領域を、状態T2に対応させてレジスタ27に設定する。なお、再設定の前後で、アクセスシナリオ領域R3,R4が含む複数の領域R31〜R33,R41〜R44の位置及び個数が同一である場合には、レジスタ27へのパラメータの再設定は省略することができる。
以降は、パラメータが再設定されたレジスタ26,27を用いて、上記と同様の処理が実行される。従って、以降、ホスト機器2がアクセスシナリオ領域R3,R4にアクセスする際には、メモリコントローラ4の判定処理部25(図3参照)は、前回のアクセス時に使用した所定アクセス順序とは異なる新たな所定アクセス順序に基づいて、ホスト機器2からのアクセスが正常か不正かを判定することとなる。
このように本実施の形態に係るコンピュータシステム1及び半導体記憶装置3によれば、アクセスシナリオ領域R3,R4へのアクセスにおけるアクセス順序が、記憶部21に記憶されている所定アクセス順序に一致していることを条件として、コンテンツ領域R1,R2へのアクセスが許可される。そのため、不正アクセスを企てる第三者は、メモリ5内におけるアクセスシナリオ領域R3,R4の位置のみならず、所定アクセス順序をも割り出す必要がある。しかも、その所定アクセス順序の通りにアクセスシナリオ領域R3,R4にアクセスしなければ、コンテンツ領域R1,R2に記憶されているコンテンツデータD1,D2を読み出すことができない。従って、セキュリティ強度を高めることができる。
また、アクセスシナリオ領域R3,R4には、コンテンツデータD1,D2とは無関係なデータではなく、コンテンツデータD1,D2に関連するデータD1A1〜D1A3,D2A1〜D2A4が記憶されている。従って、コンテンツデータをメモリ5に格納するにあたり、アクセスシナリオ領域R3,R4は無駄な領域とはならないため、メモリ容量が削減されることを回避できる。
また、本実施の形態に係るコンピュータシステム1及び半導体記憶装置3によれば、固定のアクセス順序が所定アクセス順序として記憶部21に記憶されているのではなく、制御部20によって、任意のアクセス順序が所定アクセス順序として記憶部21に設定される。従って、不正アクセスを企てる第三者が所定アクセス順序を割り出すことはさらに困難となるため、セキュリティ強度をさらに高めることができる。
また、本実施の形態に係るコンピュータシステム1及び半導体記憶装置3によれば、アクセスシナリオ領域R3,R4へのアクセスが行われる度に、所定アクセス順序が変更される。従って、仮に、不正アクセスを企てる第三者が所定アクセス順序の割り出しに一旦成功したとしても、次回にアクセスシナリオ領域R3,R4にアクセスする際には所定アクセス順序が変更されているため、以前に割り出した所定アクセス順序をそのまま適用しても、コンテンツ領域R1,R2へのアクセスは許可されない。その結果、セキュリティ強度をさらに高めることができる。
また、本実施の形態に係るコンピュータシステム1及び半導体記憶装置3によれば、メモリ5は、コンテンツ領域とアクセスシナリオ領域とのセットを、複数セット(上記の例では2セット)有している。そして、所定アクセス順序は、複数セットの各々のセット毎に個別に設定可能である。従って、不正アクセスを企てる第三者は、仮に、一のセットに関する所定アクセス順序の割り出しに成功したとしても、他のセットのコンテンツ領域及びアクセスシナリオ領域にはアクセスできない。その結果、セキュリティ強度をさらに高めることができる。
また、本実施の形態に係るコンピュータシステム1及び半導体記憶装置3によれば、アクセスシナリオ領域R4へのアクセスが常に許可されているわけではなく、アクセスシナリオ領域R3へのアクセス順序が所定アクセス順序に一致しなければ、アクセスシナリオ領域R4へのアクセスは許可されない。従って、不正アクセスを企てる第三者がコンテンツ領域R2に記憶されているコンテンツデータD2を読み出すためには、アクセスシナリオ領域R4に関する所定アクセス順序のみならず、アクセスシナリオ領域R3に関する所定アクセス順序をも割り出す必要がある。その結果、セキュリティ強度をさらに高めることができる。
また、本実施の形態に係るコンピュータシステム1及び半導体記憶装置3によれば、アクセスシナリオ領域R3へのアクセスが許可されると、その許可状態が継続されるのではなく、アクセスシナリオ領域R4へのアクセスが許可された時点で、アクセスシナリオ領域R3へのアクセスが再び禁止される。従って、不正アクセスを企てる第三者は、仮に、アクセスシナリオ領域R3へのアクセスに一旦成功したとしても、アクセスシナリオ領域R4へのアクセスが許可された以降は、アクセスシナリオ領域R3へのアクセスができなくなる。その結果、セキュリティ強度をさらに高めることができる。
以下、上記実施の形態に関する種々の変形例について説明する。
<第1の変形例>
メモリコントローラ4の制御部20は、レジスタ26,27に設定されているパラメータを、定期的又は不定期的に変更しても良い。
図15は、第1の変形例に係るメモリコントローラ4の構成を示すブロック図である。メモリコントローラ4の制御部20は、設定処理部24及び判定処理部25に加えて、変更処理部30を有している。メモリコントローラ4のその他の構成は、図3に示した構成と同様である。
パラメータの変更処理は、ホスト機器2が主体となって、あるいはメモリコントローラ4が主体となって実行される。
ホスト機器2が主体となる場合の第1の例として、ホスト機器2は、RTC12(図2参照)から出力されるクロック信号に基づいて、時間をカウントする。そして、ホスト機器2は、所定時間(例えば20秒)が経過する毎に、各アクセスシナリオ領域R3,R4毎に新たな所定アクセス順序及び新たなアクセス禁止領域を決定し、設定変更コマンドとしてメモリコントローラ4に送信する。所定時間は、等間隔でも良いし、ランダムな間隔でも良い。メモリコントローラ4の変更処理部30は、受信した設定変更コマンドに基づいて、レジスタ26に新たな所定アクセス順序を設定するとともに、レジスタ27に新たなアクセス禁止領域を設定する。
ホスト機器2が主体となる場合の第2の例として、ホスト機器2は、メモリコントローラ4に向けて所定のコマンド(例えばリードコマンド)を所定回数(例えば10回)送信する毎に、各アクセスシナリオ領域R3,R4毎に新たな所定アクセス順序及び新たなアクセス禁止領域を決定し、設定変更コマンドとしてメモリコントローラ4に送信する。所定回数は、固定数でも良いし、ランダム数でも良い。メモリコントローラ4の変更処理部30は、受信した設定変更コマンドに基づいて、レジスタ26に新たな所定アクセス順序を設定するとともに、レジスタ27に新たなアクセス禁止領域を設定する。
メモリコントローラ4が主体となる第1の例として、ホスト機器2からメモリコントローラ4にクロック信号を送信し、変更処理部30は、受信したクロック信号に基づいて、時間をカウントする。あるいは、半導体記憶装置3内にRTCを搭載し、変更処理部30は、そのRTCから出力されるクロック信号に基づいて、時間をカウントする。そして、変更処理部30は、所定時間(例えば60秒)が経過する毎に、各アクセスシナリオ領域R3,R4毎に新たな所定アクセス順序及び新たなアクセス禁止領域を決定し、その新たな所定アクセス順序及び新たなアクセス禁止領域を、レジスタ26,27にそれぞれ設定する。所定時間は、等間隔でも良いし、ランダムな間隔でも良い。変更処理部30によって決定された新たな所定アクセス順序及び新たなアクセス禁止領域に関する情報は、メモリコントローラ4からホスト機器2に送信される。
メモリコントローラ4が主体となる場合の第2の例として、メモリコントローラ4がホスト機器2から何らかのコマンドを所定回数(例えば20回)受信する毎に、変更処理部30は、各アクセスシナリオ領域R3,R4毎に新たな所定アクセス順序及び新たなアクセス禁止領域を決定する。そして、変更処理部30は、その新たな所定アクセス順序及び新たなアクセス禁止領域を、レジスタ26,27にそれぞれ設定する。所定回数は、固定数でも良いし、ランダム数でも良い。変更処理部30によって決定された新たな所定アクセス順序及び新たなアクセス禁止領域に関する情報は、メモリコントローラ4からホスト機器2に送信される。
第1の変形例に係るコンピュータシステム1及び半導体記憶装置3によれば、制御部20は、ホスト機器2からコンテンツ領域R1,R2又はアクセスシナリオ領域R3,R4へのアクセスの状況に拘わらず、記憶部21に記憶されている所定アクセス順序及びアクセス禁止領域を、定期的又は不定期的に変更する。従って、不正アクセスを企てる第三者が所定アクセス順序及びアクセス禁止領域を割り出すことはさらに困難となるため、セキュリティ強度をさらに高めることができる。
<第2の変形例>
上記実施の形態では、図13に示したように、ホスト機器2からコンテンツ領域R1へのアクセスが一旦許可されると、その後にホスト機器2からコンテンツ領域R2へのアクセスが許可されても、コンテンツ領域R1へのアクセスの許可状態は継続されている。
第2の変形例として、メモリコントローラ4の制御部20は、図5のステップS5においてホスト機器2からコンテンツ領域R1へのアクセスを許可した後、所定のタイミングで、ホスト機器2からコンテンツ領域R1へのアクセスを禁止しても良い。
図16は、第2の変形例に関して、コンテンツ領域R1,R2及びアクセスシナリオ領域R3,R4に対するアクセスの許可又は禁止の状態を示す図である。図13とは異なり、ホスト機器2からコンテンツ領域R1へのアクセスは禁止されている。
上記所定のタイミングの第1の例として、制御部20は、コンテンツ領域R1からのコンテンツデータD1の読み出しが完了した直後に、コンテンツ領域R1へのアクセスを許可状態から禁止状態に変更する。
上記所定のタイミングの第2の例として、制御部20は、コンテンツ領域R1へのアクセスが許可された時点を起算点として、メモリコントローラ4がホスト機器2からリードコマンドを所定回数受信した直後に、コンテンツ領域R1へのアクセスを許可状態から禁止状態に変更する。例えば、コンテンツ領域R1が8ページ分の記憶容量を有しており、メモリ5からのデータの読み出しが1ページ単位で実行される場合には、制御部20は、コンテンツ領域R1へのアクセスが許可された後、メモリコントローラ4がホスト機器2からリードコマンドを8回受信した直後に、コンテンツ領域R1へのアクセスを許可状態から禁止状態に変更する。
上記所定のタイミングの第3の例として、制御部20は、コンテンツ領域R1へのアクセスが許可された時点を起算点として、メモリコントローラ4がホスト機器2からリードコマンドを1回受信する毎に、コンテンツ領域R1へのアクセスを、ページ単位で許可状態から禁止状態に順次変更する。例えば、メモリ5からのデータの読み出しが1ページ単位で実行される場合には、制御部20は、コンテンツ領域R1へのアクセスが許可された後、メモリコントローラ4がホスト機器2からリードコマンドを1回受信する毎に、コンテンツ領域R1の先頭ページから順にページ単位で、ホスト機器2からのアクセスを許可状態から禁止状態に順次変更する。
第2の変形例に係るコンピュータシステム1及び半導体記憶装置3によれば、コンテンツ領域R1へのアクセスが一旦許可されると、その許可状態が継続されるのではなく、所定のタイミングで、コンテンツ領域R1へのアクセスが再び禁止される。従って、不正アクセスを企てる第三者は、仮に、コンテンツ領域R1へのアクセスに一旦成功したとしても、所定のタイミングでアクセスが再禁止された以降は、コンテンツ領域R1へのアクセスができなくなる。その結果、セキュリティ強度をさらに高めることができる。
<第3の変形例>
図4を参照し、領域R1〜R4を一つのセットとして、そのセットをメモリ5の記憶領域内に複数セット配置しても良い。
<第4の変形例>
図1を参照して、ホスト機器2と半導体記憶装置3との間で送受信されるコマンドやデータは、暗号化することが望ましい。
<第5の変形例>
所定アクセス順序には、一つの領域を重複して設定しても良い。例えば、アクセスシナリオ領域R3に関して、「R31→R33→R32→R31」なる所定アクセス順序を設定しても良い。
<第6の変形例>
図5を参照して、ステップS5における判定の結果が「NO」である場合、次にステップS6において、メモリコントローラ4は、ホスト機器2にダミーデータを送信する。
第1の例として、メモリコントローラ4は、メモリ5のアクセスフリーな領域R5,R6(図4参照)内に記憶されている任意のデータを読み出し、そのデータをダミーデータとして、ホスト機器2に送信する。
第2の例として、メモリコントローラ4は、領域R5,R6内に記憶されている任意のデータを読み出し、そのデータのビットの全部又は一部を反転したものをダミーデータとして、ホスト機器2に送信する。