(57)【要約】      （修正有）【課題】不正コピーを適切に防止することが可能な記憶装置を提供する。【解決手段】記憶装置１は、データを格納するメモリ１０と、装置外部から指示された転送開始アドレスと転送量情報に基づいて定まる一連のデータ群をブロックデータとしてメモリ１０から読み出し、これを装置外部に転送するブロックデータ転送制御部２０と、装置外部から指示された転送開始アドレスが予め設定された正規の転送開始アドレスと一致しているか否かを判定する転送開始アドレスチェック部３０と、転送開始アドレスチェック部３０のエラー判定結果に基づいて、前記ブロックデータの出力可否を制御する出力制御部５０とを有して成る。【選択図】図１
2011150495.tif 000002
【特許請求の範囲】
【請求項１】
データを格納するメモリと；
装置外部から指示された転送開始アドレスと転送量情報に基づいて定まる一連のデータ群をブロックデータとして前記メモリから読み出し、これを装置外部に転送するブロックデータ転送制御部と；
装置外部から指示された転送開始アドレスが予め設定された正規の転送開始アドレスと一致しているか否かを判定する転送開始アドレスチェック部と；
前記転送開始アドレスチェック部のエラー判定結果に基づいて、前記ブロックデータの出力可否を制御する出力制御部と；
を有して成ることを特徴とする記憶装置。
【請求項２】
前記転送開始アドレスチェック部は、
予め設定された正規の転送開始アドレスを格納する正規アドレス格納部と；
装置外部から指示された転送開始アドレスと予め設定された正規の転送開始アドレスとを比較し、その比較結果信号を前記出力制御部に送出するアドレス比較部と；
を有して成ることを特徴とする請求項１に記載の記憶装置。
【請求項３】
前記正規の転送開始アドレスとしては、前記メモリから一のブロックデータが装置外部に転送されて、これがプログラムの一ルーチンとして実行されたときに、当該プログラムによって次にその転送が要求されるブロックデータの転送開始アドレスが予め設定されていることを特徴とする請求項２に記載の記憶装置。
【請求項４】
装置外部から指示された転送量情報が予め設定された正規の転送量情報と一致しているか否かを判定する転送量情報チェック部をさらに有して成り、
前記出力制御部は、前記転送開始アドレスチェック部と前記転送量情報チェック部の双方のエラー判定結果に基づいて、前記ブロックデータの出力可否を制御することを特徴とする請求項１〜請求項３のいずれかに記載の記憶装置。
【請求項５】
前記転送量情報チェック部は、
予め設定された正規の転送量情報を格納する正規転送量情報格納部と；
装置外部から指示された転送量情報と予め設定された正規の転送量情報とを比較し、その比較結果信号を前記出力制御部に送出する転送量情報比較部と；
を有して成ることを特徴とする請求項４に記載の記憶装置。
【請求項６】
前記正規の転送量情報としては、前記メモリから一のブロックデータが装置外部に転送されて、これがプログラムの一ルーチンとして実行されたときに、当該プログラムによって次にその転送が要求されるブロックデータの転送量情報が予め設定されていることを特徴とする請求項５に記載の記憶装置。
【請求項７】
前記出力制御部は、前記エラー判定結果に基づいて、前記メモリに対するアドレス制御を実行するか停止するかを決定するアドレス制御部であることを特徴とする請求項１〜請求項６のいずれかに記載の記憶装置。
【請求項８】
前記出力制御部は、前記エラー判定結果に基づいて、前記メモリから読み出されたデータと所定のダミーデータのいずれか一を選択して出力するセレクタであることを特徴とする請求項１〜請求項６のいずれかに記載の記憶装置。
【請求項９】
前記ダミーデータは、固定値または乱数値であることを特徴とする請求項８に記載の記憶装置。
【請求項１０】
前記メモリは、データを暗号化して格納するものであり、
前記出力制御部は、前記エラー判定結果に基づいて、前記メモリから読み出されたデータを出力する際に、所定の鍵情報を用いて正しい暗号解読処理を行うか、ダミーの鍵情報を用いて前記正しい暗号解読処理とは異なる暗号解読処理を行うかを決定するデコーダであることを特徴とする請求項１〜請求項６のいずれかに記載の記憶装置。
【請求項１１】
前記デコーダは、前記正しい暗号解読処理とは異なる暗号解読処理を行う場合、前記ダミーの鍵情報を複数切り替えながら暗号解読処理を行うことを特徴とする請求項１０に記載の記憶装置。
【請求項１２】
前記出力制御部は、前記メモリから読み出されたデータを出力する際に、前記エラー判定結果に基づいて、所定の鍵情報を用いて正しい暗号化処理を行うか、ダミーの鍵情報を用いて前記正しい暗号化処理とは異なる暗号化処理を行うかを決定するエンコーダであることを特徴とする請求項１〜請求項６のいずれかに記載の記憶装置。
【請求項１３】
前記エンコーダは、前記正しい暗号化処理とは異なる暗号化処理を行う場合、前記ダミーの鍵情報を複数切り替えながら暗号化処理を行うことを特徴とする請求項１２に記載の記憶装置。
【請求項１４】
中央演算処理装置からデータ転送処理の要求を受けた後、前記中央演算処理装置から独立して前記データ転送処理を実行するダイレクトメモリアクセス制御部をさらに有して成ることを特徴とする請求項１〜請求項１３のいずれかに記載の記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不正コピー防止機能を備えた記憶装置に関するものである。
【背景技術】
【０００２】
従来より、不正コピー防止機能を備えた記憶装置が種々開示・提案されている（例えば特許文献１や特許文献２を参照）。なお、従来の記憶装置の多くは、所定の鍵情報を用いて暗号化されたデータを格納する構成とされていた。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−５９１７８号公報
【特許文献２】特開２００２−３７３３２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
確かに、上記従来の記憶装置であれば、格納されたデータが不正コピーされた場合であっても、所定の鍵情報を用いた暗号解読処理が行われない限り、その内容は不明なものとなるため、不正コピーされたデータの利用は困難であった。
【０００５】
しかしながら、上記従来の記憶装置は、あくまで、不正コピーされたデータの利用を困難とするものであって、格納されたデータの読み出しは自由であった。そのため、高速なコンピュータを用いて不正コピーされたデータが解析され、その暗号が解読されてしまった場合には、以後、その内容を自由にコピーされてしまうという問題があった。
【０００６】
本発明は、上記の問題点に鑑み、不正コピーを適切に防止することが可能な記憶装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明に係る記憶装置は、データを格納するメモリと；装置外部から指示された転送開始アドレスと転送量情報に基づいて定まる一連のデータ群をブロックデータとして前記メモリから読み出し、これを装置外部に転送するブロックデータ転送制御部と；装置外部から指示された転送開始アドレスが予め設定された正規の転送開始アドレスと一致しているか否かを判定する転送開始アドレスチェック部と；前記転送開始アドレスチェック部のエラー判定結果に基づいて、前記ブロックデータの出力可否を制御する出力制御部と；を有して成る構成（第１の構成）とされている。
【０００８】
なお、上記第１の構成から成る記憶装置において、前記転送開始アドレスチェック部は予め設定された正規の転送開始アドレスを格納する正規アドレス格納部と；装置外部から指示された転送開始アドレスと予め設定された正規の転送開始アドレスとを比較し、その比較結果信号を前記出力制御部に送出するアドレス比較部と；を有して成る構成（第２の構成）にするとよい。
【０００９】
また、上記第２の構成から成る記憶装置において、前記正規の転送開始アドレスとしては、前記メモリから一のブロックデータが装置外部に転送されてこれがプログラムの一ルーチンとして実行されたときに、当該プログラムによって次にその転送が要求されるブロックデータの転送開始アドレスが予め設定されている構成（第３の構成）にするとよい。
【００１０】
また、上記第１〜第３いずれかの構成から成る記憶装置は、装置外部から指示された転送量情報が予め設定された正規の転送量情報と一致しているか否かを判定する転送量情報チェック部をさらに有して成り、前記出力制御部は、前記転送開始アドレスチェック部と前記転送量情報チェック部の双方のエラー判定結果に基づいて、前記ブロックデータの出力可否を制御する構成（第４の構成）にするとよい。
【００１１】
また、上記第４の構成から成る記憶装置において、前記転送量情報チェック部は、予め設定された正規の転送量情報を格納する正規転送量情報格納部と；装置外部から指示された転送量情報と予め設定された正規の転送量情報とを比較し、その比較結果信号を前記出力制御部に送出する転送量情報比較部；を有して成る構成（第５の構成）にするとよい。
【００１２】
また、上記第５の構成から成る記憶装置において、前記正規の転送量情報としては、前記メモリから一のブロックデータが装置外部に転送されて、これがプログラムの一ルーチンとして実行されたときに、当該プログラムによって次にその転送が要求されるブロックデータの転送量情報が予め設定されている構成（第６の構成）にするとよい。
【００１３】
また、上記第１〜第６いずれかの構成から成る記憶装置において、前記出力制御部は、前記エラー判定結果に基づいて、前記メモリに対するアドレス制御を実行するか、停止するかを決定するアドレス制御部である構成（第７の構成）にするとよい。
【００１４】
また、上記第１〜第６いずれかの構成から成る記憶装置において、前記出力制御部は、前記エラー判定結果に基づいて、前記メモリから読み出されたデータと所定のダミーデータのいずれか一を選択して出力するセレクタを有する構成（第８の構成）にするとよい。
【００１５】
また、上記第８の構成から成る記憶装置において、前記ダミーデータは、固定値または乱数値である構成（第９の構成）にするとよい。
【００１６】
また、上記第１〜第６いずれかの構成から成る記憶装置において、前記メモリは、データを暗号化して格納するものであり、前記出力制御部は、前記エラー判定結果に基づいて前記メモリから読み出されたデータを出力する際に、所定の鍵情報を用いて正しい暗号解読処理を行うか、ダミーの鍵情報を用いて前記正しい暗号解読処理とは異なる暗号解読処理を行うかを決定するデコーダである構成（第１０の構成）にするとよい。
【００１７】
また、上記第１０の構成から成る記憶装置において、前記デコーダは、前記正しい暗号解読処理とは異なる暗号解読処理を行う場合、前記ダミーの鍵情報を複数切り替えながら暗号解読処理を行う構成（第１１の構成）にするとよい。
【００１８】
また、上記第１〜第６いずれかの構成から成る記憶装置において、前記出力制御部は、前記メモリから読み出されたデータを出力する際に、前記エラー判定結果に基づいて、所定の鍵情報を用いて正しい暗号化処理を行うか、ダミーの鍵情報を用いて前記正しい暗号化処理とは異なる暗号化処理を行うかを決定するエンコーダである構成（第１２の構成）にするとよい。
【００１９】
また、上記第１２の構成から成る記憶装置において、前記エンコーダは、前記正しい暗号化処理とは異なる暗号化処理を行う場合、前記ダミーの鍵情報を複数切り替えながら暗号化処理を行う構成（第１３の構成）にするとよい。
【００２０】
また、上記第１〜第１３いずれかの構成から成る記憶装置は、中央演算処理装置からデータ転送処理の要求を受けた後、前記中央演算処理装置から独立して前記データ転送処理を実行するダイレクトメモリアクセス制御部をさらに有して成る構成（第１４の構成）にするとよい。
【発明の効果】
【００２１】
本発明に係る記憶装置であれば、不正コピーを適切に防止することが可能となる。
【図面の簡単な説明】
【００２２】
【図１】本発明に係る記憶装置の第１実施形態を示すブロック図
【図２】正規アクセスと不正アクセスを比較したメモリマップ
【図３】本発明に係る記憶装置の第２実施形態を示すブロック図
【図４】本発明に係る記憶装置の第３実施形態を示すブロック図
【図５】本発明に係る記憶装置の第４実施形態を示すブロック図
【発明を実施するための形態】
【００２３】
まず、本発明に係る記憶装置の第１実施形態について、図１を参照しながら詳細に説明する。図１は、本発明に係る記憶装置の第１実施形態を示すブロック図である。
【００２４】
図１に示す通り、本実施形態の記憶装置１は、メモリ１０と、ブロック転送制御部２０と、転送開始アドレスチェック部３０と、転送量情報チェック部４０と、アドレス制御部５０と、ダイレクトメモリアクセス制御部６０（以下、ＤＭＡ［Direct Memory Access］制御部６０と呼ぶ）と、を集積化して成る半導体装置である。なお、記憶装置１には、中央演算処理装置２（以下、ＣＰＵ［Central Processing Unit］２と呼ぶ）やワークメモリ３（以下、ＲＡＭ［Random Accecss Memory］４と呼ぶ）がバス４を介して外部接続されている。
【００２５】
メモリ１０は、データ（ＣＰＵ２に読み出されて実行されるメインプログラムなど）を不揮発的に格納する。なお、本実施形態の記憶装置１では、メモリ１として、データの読み出しのみが可能なＲＯＭを用いている。
【００２６】
ブロック転送制御部２０は、ＣＰＵ２からＤＭＡ制御部６０経由で入力されるデータ転送要求コマンドやアドレス情報を解析して、ＣＰＵ２から指示された転送開始アドレスと転送量情報に基づいて定まる一連のデータ群をブロックデータとしてメモリ１０から読み出し、これをＤＭＡ制御部６０経由でＲＡＭ３に転送する。なお、上記の転送量情報は、転送すべきブロックデータの容量値であってもよいし、或いは、転送すべきブロックデータの転送終了アドレスであってもよい。例えば、上記の転送量情報として、転送すべきブロックデータの容量値が指示された場合には、転送開始アドレスに基づいて定まる先頭データから容量値に基づいて定まる末尾データまでの一連のデータ群がブロックデータとして読み出される。また、上記の転送量情報として、ブロックデータの転送終了アドレスが指示された場合には、転送開始アドレスに基づいて定まる先頭データから転送終了アドレスに基づいて定まる末尾データまでの一連のデータ群がブロックデータとして読み出される。また、ブロック転送制御部２０は、ＣＰＵ２から指示された転送開始アドレスと転送量情報を転送開始アドレスチェック部３０と転送量情報チェック部４０に各々送出する。
【００２７】
転送開始アドレスチェック部３０は、ＣＰＵ２から指示された転送開始アドレスが予め設定された正規の転送開始アドレスと一致しているか否かを判定する回路部であり、正規アドレス格納部３１と、アドレス比較部３２と、を有して成る。
【００２８】
正規アドレス格納部３１は、予め設定された正規の転送開始アドレスを格納する。ここで、正規の転送開始アドレスとしては、メモリ１０から一のブロックデータがＲＡＭ３に転送されてこれがプログラムの一ルーチンとしてＣＰＵ２で実行されたときに、当該プログラムによって次にその転送が要求されるブロックデータの転送開始アドレスが予め設定されている。これについては、後ほど詳細に説明する。
【００２９】
アドレス比較部３２は、ＣＰＵ２から指示された転送開始アドレスと予め設定された正規の転送開始アドレスとを比較し、その比較結果信号をアドレス制御部５０に送出する。
【００３０】
転送量情報チェック部４０は、ＣＰＵ２から指示された転送量情報が予め設定された正規の転送量情報と一致しているか否かを判定する回路部であり、正規転送量情報格納部４１と、転送量情報比較部４２と、を有して成る。
【００３１】
正規転送量情報格納部４１は、予め設定された正規の転送量情報を格納する。ここで、正規の転送量情報としては、メモリ１０から一のブロックデータがＲＡＭ３に転送されてこれがプログラムの一ルーチンとしてＣＰＵ２で実行されたときに、当該プログラムによって次にその転送が要求されるブロックデータの転送量情報が予め設定されている。これについては、後ほど詳細に説明する。
【００３２】
転送量情報比較部４２は、ＣＰＵ２から指示された転送量情報と予め設定された正規の転送量情報とを比較し、その比較結果信号をアドレス制御部５０に送出する。
【００３３】
アドレス制御部５０は、ブロック転送制御部２０からの指示に基づいて動作する転送シーケンサであり、メモリ１０から読み出すべきデータを指定するためのアドレス制御を行う。また、本実施形態の記憶装置１において、アドレス制御部５０は、転送開始アドレスチェック部３０と転送量情報チェック部４０双方のエラー判定結果（アドレス比較部３２と転送量情報比較部４２から各々出力される比較結果信号）に基づいて、メモリ１０に対するアドレス制御を実行するか停止するかを決定することにより、ブロックデータの出力可否を制御する出力制御部としての機能も備えている。
【００３４】
ＤＭＡ制御部６０は、ＣＰＵ２からデータ転送処理の要求を受けた後、ＣＰＵ２から独立して前記データ転送処理を実行するように、ブロック転送制御部２０を制御する。このように、ＤＭＡ制御部６０を備えた記憶装置１であれば、ＣＰＵ２に掛かる負荷を軽減することができるので、システム全体としての処理能力を向上することが可能となる。
【００３５】
次に、正規アクセスと不正アクセスとの違いについて、図２を参照しながら詳細に説明する。図２は、正規アクセスと不正アクセスを比較したメモリマップである。なお、図２の左側には正規アクセス時の様子が示されており、図２の右側には不正アクセス時の様子が示されている。
【００３６】
ＣＰＵ２は、メモリ１０に格納されたデータを正規に読み出してメインプログラムを起動する際、まず、自身に格納されているローダプログラムを実行する。このようなローダプログラムの実行により、ＣＰＵ２は、メモリ１０から最初に読み出すべきブロックデータを指定するための転送開始アドレス（Ａ０）と転送量情報（Ｂ０）、並びに、そのブロックデータの転送先を指定するための転送先アドレス（Ｃ０）を記憶装置１に伝達する。なお、ローダプログラムによって指定される転送開始アドレス（Ａ０）と転送量情報（Ｂ０）は、システムの仕様によって予め決定されていることが多い。
【００３７】
上記の転送要求を受けたＤＭＡ制御部６０は、メモリ１０から所望のブロックデータを読み出すべく、ＣＰＵ２から指示された転送開始アドレス（Ａ０）と転送量情報（Ｂ０）をブロック転送制御部２０に伝達し、メモリ１０から読み出されてくるブロックデータをＲＡＭ３に順次転送する。
【００３８】
このように、メモリ１０から一のブロックデータがＲＡＭ３に転送されてこれがメインプログラムの一ルーチンとしてＣＰＵ２で実行されると、当該メインプログラムによって次にその転送が要求されるブロックデータの転送開始アドレス（Ａｘ）と転送量情報（Ｂｘ）、並びに、そのブロックデータの転送先を指定するための転送先アドレス（Ｃｘ）が記憶装置１に伝達される。
【００３９】
以降も同様に、メモリ１０から転送されるブロックデータがメインプログラムの一ルーチンとして実行される毎に、ＣＰＵ２から記憶装置１に対して、次にその転送が要求されるブロックデータの転送開始アドレス（Ａｘ）と転送量情報（Ｂｘ）、並びに、そのブロックデータの転送先を指定するための転送先アドレス（Ｃｘ）が順次伝達される。
【００４０】
ところで、メモリ１０から転送されるブロックデータがメインプログラムの一ルーチンとして実行される毎に、次にその転送が要求されるブロックデータの容量値（バイト数）は、メインプログラムの内容に応じて千差万別であるため、ブロックデータの転送要求毎にＣＰＵ２から指示される転送開始アドレス（Ａｘ）や転送量情報（Ｂｘ）は、図２の左側に示したように、何ら規則性を持たないものとなる。
【００４１】
一方、メモリ１０に格納されているデータを不正に読み出すときには、図２の右側に示したように、メモリ１０の先頭アドレス（Ａ０）から所定の転送量（例えば３２メガバイト）ずつ、均等にデータの読み出しを行うことが多い。すなわち、データの不正読み出し時に指示される転送量情報は常に一律となり、転送開始アドレスは一定の規則性を持ってインクリメントされるものとなる。
【００４２】
従って、正規アクセス時と不正アクセス時では、記憶装置１に対して指示される転送開始アドレスと転送量情報が基本的に一致しないはずである。
【００４３】
このような相違点に着目して、本発明に係る記憶装置１は、メインプログラムの実行に伴ってＣＰＵ２から指示され得る転送開始アドレスと転送量情報の候補値（Ａｘ、Ｂｘ）を予め格納しておき、ＣＰＵ２から指示された転送開始アドレス及び転送量情報と、記憶装置１内に予め格納しておいた候補値とを比較して、双方が一致している場合にのみデータの転送を許可する構成とされている。
【００４４】
このとき、記憶装置１内には、メインプログラムの実行に伴ってＣＰＵ２から指示され得る転送開始アドレスと転送量情報の候補値（Ａｘ、Ｂｘ）を全て格納しておいてもよいし、その一部だけを格納しておいてもよい。
【００４５】
このような構成とすることにより、不正アクセス時には、メモリ１０に格納されているデータ（メインプログラム）を読み出すことができなくなるので、データの不正利用を行うことが不可能となる。
【００４６】
なお、不正アクセス時に指示された転送開始アドレス及び転送量情報が記憶装置１内に予め格納しておいた候補値と偶然一致してしまった場合、一部のブロックデータが不正に読み出される結果となるが、メモリ１０に格納されているデータが全て揃わない限り、メインプログラムを実行することはできないので、特段の問題が生じることはない。
【００４７】
次に、先出の図１に戻り、上記構成から成る記憶装置１の不正コピー防止動作（データの出力禁止動作）について詳細な説明を行う。
【００４８】
先にも述べたように、本実施形態の記憶装置１において、アドレス制御部５０は、転送開始アドレスチェック部３０と転送量情報チェック部４０双方のエラー判定結果（アドレス比較部３２と転送量情報比較部４２から各々出力される比較結果信号）に基づいて、メモリ１０に対するアドレス制御を実行するか停止するかを決定することにより、ブロックデータの出力可否を制御する出力制御部としての機能を備えている。
【００４９】
具体的に述べると、ＣＰＵ２から記憶装置１に対して正当なアクセスが行われており、ＣＰＵ２から指示された転送開始アドレス及び転送量情報と、記憶装置１内に予め格納しておいた各々の候補値とが一致している場合、アドレス制御部５０は、メモリ１０に対するアドレス制御を実行し、ブロックデータの出力を許可する。
【００５０】
一方、記憶装置１に対して不正なアクセスが行われており、記憶装置１の外部から指示された転送開始アドレス及び転送量情報と、記憶装置１内に予め格納しておいた各々の候補値とが不一致である場合、アドレス制御部５０は、メモリ１０に対するアドレス制御を停止し、ブロックデータの出力を禁止する。
【００５１】
このような構成とすることにより、データの不正コピーが疑われる状況下において、アドレス制御部５０は、メモリ１０に対するアドレス動作を禁止して、メモリ１０に格納されたデータの読み出し自体を禁止することができるので、データに暗号化処理のみを施していた従来構成に比べて、データの不正コピーをより適切に防止することが可能となる。
【００５２】
次に、本発明に係る記憶装置の第２実施形態について、図３を参照しながら詳細に説明する。図３は、本発明に係る記憶装置の第２実施形態を示すブロック図である。
【００５３】
図３に示すように、本実施形態の記憶装置１は、先出の第１実施形態とほぼ同様の構成から成り、メモリ１０のデータ出力経路にセレクタ７０を有する点に特徴を有している。そこで、第１実施形態と同様の構成要素については、図１と同一の符号を付すことで重複した説明を省略し、以下では、本実施形態の特徴部分であるセレクタ７０を中心に詳細な説明を行うことにする。
【００５４】
本実施形態の記憶装置１では、転送開始アドレスチェック部３０と転送量情報チェック部４０双方のエラー判定結果（アドレス比較部３２と転送量情報比較部４２から各々出力される比較結果信号）がアドレス制御部５０ではなくセレクタ７０に入力されている。
【００５５】
セレクタ７０は、転送開始アドレスチェック部３０と転送量情報チェック部４０双方のエラー判定結果に基づいて、メモリ１０から読み出されたデータと所定のダミーデータのいずれか一を選択して出力することにより、ブロックデータの出力可否を制御する出力制御部としての機能を有している。なお、上記のダミーデータは、固定値としてもよいし、乱数値としてもよい。
【００５６】
具体的に述べると、ＣＰＵ２から記憶装置１に対して正当なアクセスが行われており、ＣＰＵ２から指示された転送開始アドレス及び転送量情報と、記憶装置１内に予め格納しておいた各々の候補値とが一致している場合、セレクタ７０は、メモリ１０から読み出されたデータを選択して出力する。
【００５７】
一方、記憶装置１に対して不正なアクセスが行われており、記憶装置１の外部から指示された転送開始アドレス及び転送量情報と、記憶装置１内に予め格納しておいた各々の候補値とが不一致である場合、セレクタ７０は、所定のダミーデータを選択して出力する。
【００５８】
このような構成とすることにより、データの不正コピーが疑われる状況下において、セレクタ７０は、所定のダミーデータを出力して、メモリ１０に格納されたデータの読み出し自体を禁止することができるので、データに暗号化処理のみを施していた従来構成に比べて、データの不正コピーをより適切に防止することが可能となる。
【００５９】
次に、本発明に係る記憶装置の第３実施形態について、図４を参照しながら詳細に説明する。図４は、本発明に係る記憶装置の第３実施形態を示すブロック図である。
【００６０】
図４に示すように、本実施形態の記憶装置１は、先出の第１実施形態とほぼ同様の構成から成り、メモリ１０のデータ出力経路にデコーダ８０を有する点に特徴を有している。そこで、第１実施形態と同様の構成要素については、図１と同一の符号を付すことで重複した説明を省略し、以下では、本実施形態の特徴部分であるデコーダ８０を中心に詳細な説明を行うことにする。
【００６１】
本実施形態の記憶装置１では、転送開始アドレスチェック部３０と転送量情報チェック部４０双方のエラー判定結果（アドレス比較部３２と転送量情報比較部４２から各々出力される比較結果信号）がアドレス制御部５０ではなくデコーダ８０に入力されている。
【００６２】
なお、本実施形態の記憶装置１において、メモリ１０には、暗号化されたデータ（メインプログラム）が格納されている。なお、データに施される暗号化処理については、１重であっても、２重以上であっても構わない。
【００６３】
デコーダ８０は、転送開始アドレスチェック部３０と転送量情報チェック部４０双方のエラー判定結果に基づいて、メモリ１０から読み出されたデータを出力する際に、所定の鍵情報を用いて正しい暗号解読処理を行うか、ダミーの鍵情報を用いて意図的にでたらめな暗号解読処理を行うかを決定することにより、ブロックデータの出力可否を制御する出力制御部としての機能を有している。
【００６４】
具体的に述べると、ＣＰＵ２から記憶装置１に対して正当なアクセスが行われており、ＣＰＵ２から指示された転送開始アドレス及び転送量情報と、記憶装置１内に予め格納しておいた各々の候補値とが一致している場合、デコーダ８０は、メモリ１０から読み出されたデータを出力する際に、所定の鍵情報を用いて正しい暗号解読処理を行う。
【００６５】
一方、記憶装置１に対して不正なアクセスが行われており、記憶装置１の外部から指示された転送開始アドレス及び転送量情報と、記憶装置１内に予め格納しておいた各々の候補値とが不一致である場合、デコーダ８０は、メモリ１０から読み出されたデータを出力する際に、ダミーの鍵情報を用いて意図的にでたらめな暗号解読処理を行う。
【００６６】
このような構成とすることにより、データの不正コピーが疑われる状況下において、デコーダ８０は、メモリ１０から読み出されたデータに対して、全くでたらめな暗号解読処理を施して出力することができる。従って、記憶装置１から不正に出力されたデータ（ここでは、第２実施形態に倣ってダミーデータと称する）の内容は不明なものとなるため、これを利用することは不可能となる。
【００６７】
また、上記のダミーデータは、デコーダ８０によるでたらめな暗号解読処理を経て作成されたものであるため、メモリ１０に格納されたデータとは全く別物となっており、データの暗号化処理に用いた鍵情報では、もはやその暗号解読処理を行うことができなくなっている。そのため、上記のダミーデータを高速なコンピュータで解析したとしても、メモリ１０に格納されているデータの内容を読み取ることは非常に困難となっている。特に、デコーダ８０でダミーの鍵情報を複数切り替えながらでたらめな暗号解読処理を行う構成とすれば、事実上、ダミーデータの解析処理は不可能なものとなる。
【００６８】
このように、本実施形態の記憶装置１であれば、データの不正コピーが疑われる状況下において、デコーダ８０は、所定のダミーデータを出力して、メモリ１０に格納されたデータの読み出し自体を禁止することができるので、データに暗号化処理のみを施していた従来構成に比べて、データの不正コピーをより適切に防止することが可能となる。
【００６９】
なお、上記では、意図的にでたらめな暗号解読処理を行う構成を例に挙げて説明を行ったが、本発明の構成はこれに限定されるものではなく、正しい暗号解読処理とは異なる暗号解読処理を行う構成であれば、いかなる構成であっても構わない。
【００７０】
次に、本発明に係る記憶装置の第４実施形態について、図５を参照しながら詳細に説明する。図５は、本発明に係る記憶装置の第４実施形態を示すブロック図である。
【００７１】
図５に示す通り、本実施形態の記憶装置１は、先出の第１実施形態とほぼ同様の構成から成り、メモリ１０のデータ出力経路にエンコーダ９０を有する点に特徴を有している。そこで、第１実施形態と同様の構成要素については、図１と同一の符号を付すことで重複した説明を省略し、以下では、本実施形態の特徴部分であるエンコーダ９０を中心に詳細な説明を行うことにする。
【００７２】
本実施形態の記憶装置１では、転送開始アドレスチェック部３０と転送量情報チェック部４０双方のエラー判定結果（アドレス比較部３２と転送量情報比較部４２から各々出力される比較結果信号）がアドレス制御部５０ではなくエンコーダ９０に入力されている。
【００７３】
エンコーダ９０は、転送開始アドレスチェック部３０と転送量情報チェック部４０双方のエラー判定結果に基づいて、メモリ１０から読み出されたデータを出力する際に、所定の鍵情報を用いて正しい暗号化処理を行うか、ダミーの鍵情報を用いて意図的にでたらめな暗号化処理を行うかを決定することにより、ブロックデータの出力可否を制御する出力制御部としての機能を有している。
【００７４】
具体的に述べると、ＣＰＵ２から記憶装置１に対して正当なアクセスが行われており、ＣＰＵ２から指示された転送開始アドレス及び転送量情報と、記憶装置１内に予め格納しておいた各々の候補値とが一致している場合、エンコーダ９０は、メモリ１０から読み出されたデータを出力する際に、所定の鍵情報を用いて正しい暗号化処理を行う。
【００７５】
一方、記憶装置１に対して不正なアクセスが行われており、記憶装置１の外部から指示された転送開始アドレス及び転送量情報と、記憶装置１内に予め格納しておいた各々の候補値とが不一致である場合、エンコーダ９０は、メモリ１０から読み出されたデータを出力する際に、ダミーの鍵情報を用いて意図的にでたらめな暗号化処理を行う。
【００７６】
このような構成とすることにより、データの不正コピーが疑われる状況下において、エンコーダ９０は、メモリ１０から読み出されたデータに対して、全くでたらめな暗号化処理（言い換えれば、その可逆性を前提としない暗号化処理）を施して出力することができる。従って、記憶装置１から不正に出力されたデータ（ここでは、第２実施形態に倣ってダミーデータと称する）の内容は不明なものとなるため、これを利用することは不可能となる。特に、エンコーダ９０でダミーの鍵情報を複数切り替えながらでたらめな暗号化処理を行う構成とすれば、事実上、ダミーデータの暗号解読処理は不可能なものとなる。
【００７７】
このように、本実施形態の記憶装置１であれば、データの不正コピーが疑われる状況下において、エンコーダ９０は、所定のダミーデータを出力して、メモリ１０に格納されたデータの読み出し自体を禁止することができるので、データに暗号化処理のみを施していた従来構成に比べて、データの不正コピーをより適切に防止することが可能となる。
【００７８】
なお、上記では、意図的にでたらめな暗号化処理を行う構成を例に挙げて説明を行ったが、本発明の構成はこれに限定されるものではなく、正しい暗号化処理とは異なる暗号化処理を行う構成であれば、いかなる構成であっても構わない。
【００７９】
また、本発明の構成は、上記実施形態のほか、発明の主旨を逸脱しない範囲で種々の変更を加えることが可能である。すなわち、上記実施形態は、全ての点で例示であって、制限的なものではないと考えられるべきであり、本発明の技術的範囲は、上記実施形態の説明ではなく、特許請求の範囲によって示されるものであり、特許請求の範囲と均等の意味及び範囲内に属する全ての変更が含まれると理解されるべきである。
【００８０】
例えば、上記実施形態では、メモリ１０として、データの読み出しのみが可能なＲＯＭを用いた構成を例に挙げて説明を行ったが、本発明の構成はこれに限定されるものではなく、データの読み出しのみならず、データの書き込み（消去を含む）も可能なフラッシュメモリやＥＥＰＲＯＭ［Electrically Erasable and Programmable Read Only Memory］をメモリ１０として用いても構わない。
【００８１】
また、上記実施形態では、正規アドレス格納部３１及び正規転送量情報格納部４１を独立した回路ブロックとして描写したが、本発明の構成はこれに限定されるものではなく、例えば、メモリ１０の一部領域を流用しても構わない。ただし、メモリ１０の一部領域を流用する場合には、当該領域に対して装置外部からのアクセスを一切禁止しておく必要がある点に留意すべきである。
【００８２】
また、上記実施形態では、記憶装置１にＤＭＡ制御部６０を内蔵した構成を例に挙げて説明を行ったが、本発明の構成はこれに限定されるものではなく、ＣＰＵ２から直接的に指示を受けて、ブロックデータの非ＤＭＡ転送を行う構成としても構わない。
【００８３】
また、上記実施形態では、転送開始アドレスと転送量情報の双方が正規である場合にのみ、ブロックデータの出力を許可する構成を例に挙げて説明を行ったが、本発明の構成はこれに限定されるものではなく、転送量情報については不問とし、転送開始アドレスが正規であれば、ブロックデータの出力を許可する構成としても構わない。このような構成とすることにより、不正コピー防止機能は低下するものの、転送量情報チェック部４０が不要となるので、記憶装置１の小型化やコストダウンを図ることが可能となる。
【産業上の利用可能性】
【００８４】
本発明は、ゲームカートリッジ、ＩＣカード、セキュリティ機器などに用いられる記憶装置の不正コピーを防止する技術として利用することが可能である。
【符号の説明】
【００８５】
１    メモリ（ＲＯＭ）
２    中央演算処理装置（ＣＰＵ）
３    ワークメモリ（ＲＡＭ）
４    バス
１０    メモリ（ＲＯＭ）
２０    ブロック転送制御部（コマンド／アドレス解析部）
３０    転送開始アドレスチェック部
３１    正規アドレス格納部
３２    アドレス比較部
４０    転送量情報チェック部
４１    正規転送量情報格納部
４２    転送量情報比較部
５０    アドレス制御部（転送シーケンサ）
６０    ダイレクトメモリアクセス制御部（ＤＭＡ制御部）
７０    セレクタ
８０    デコーダ
９０    エンコーダ
【図１】
2011150495.tif 000003
【図２】
2011150495.tif 000004
【図３】
2011150495.tif 000005
【図４】
2011150495.tif 000006
【図５】
2011150495.tif 000007