説明

記憶装置

【課題】不正コピーを適切に防止することが可能な記憶装置を提供する。
【解決手段】記憶装置1は、データを格納するメモリ10と、装置外部から指示された転送開始アドレスと転送量情報に基づいて定まる一連のデータ群をブロックデータとしてメモリ10から読み出し、これを装置外部に転送するブロックデータ転送制御部20と、装置外部から指示された転送開始アドレスが予め設定された正規の転送開始アドレスと一致しているか否かを判定する転送開始アドレスチェック部30と、転送開始アドレスチェック部30のエラー判定結果に基づいて、前記ブロックデータの出力可否を制御する出力制御部50とを有して成る。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、不正コピー防止機能を備えた記憶装置に関するものである。
【背景技術】
【0002】
従来より、不正コピー防止機能を備えた記憶装置が種々開示・提案されている(例えば特許文献1や特許文献2を参照)。なお、従来の記憶装置の多くは、所定の鍵情報を用いて暗号化されたデータを格納する構成とされていた。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2003−59178号公報
【特許文献2】特開2002−373320号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
確かに、上記従来の記憶装置であれば、格納されたデータが不正コピーされた場合であっても、所定の鍵情報を用いた暗号解読処理が行われない限り、その内容は不明なものとなるため、不正コピーされたデータの利用は困難であった。
【0005】
しかしながら、上記従来の記憶装置は、あくまで、不正コピーされたデータの利用を困難とするものであって、格納されたデータの読み出しは自由であった。そのため、高速なコンピュータを用いて不正コピーされたデータが解析され、その暗号が解読されてしまった場合には、以後、その内容を自由にコピーされてしまうという問題があった。
【0006】
本発明は、上記の問題点に鑑み、不正コピーを適切に防止することが可能な記憶装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するために、本発明に係る記憶装置は、データを格納するメモリと;装置外部から指示された転送開始アドレスと転送量情報に基づいて定まる一連のデータ群をブロックデータとして前記メモリから読み出し、これを装置外部に転送するブロックデータ転送制御部と;装置外部から指示された転送開始アドレスが予め設定された正規の転送開始アドレスと一致しているか否かを判定する転送開始アドレスチェック部と;前記転送開始アドレスチェック部のエラー判定結果に基づいて、前記ブロックデータの出力可否を制御する出力制御部と;を有して成る構成(第1の構成)とされている。
【0008】
なお、上記第1の構成から成る記憶装置において、前記転送開始アドレスチェック部は予め設定された正規の転送開始アドレスを格納する正規アドレス格納部と;装置外部から指示された転送開始アドレスと予め設定された正規の転送開始アドレスとを比較し、その比較結果信号を前記出力制御部に送出するアドレス比較部と;を有して成る構成(第2の構成)にするとよい。
【0009】
また、上記第2の構成から成る記憶装置において、前記正規の転送開始アドレスとしては、前記メモリから一のブロックデータが装置外部に転送されてこれがプログラムの一ルーチンとして実行されたときに、当該プログラムによって次にその転送が要求されるブロックデータの転送開始アドレスが予め設定されている構成(第3の構成)にするとよい。
【0010】
また、上記第1〜第3いずれかの構成から成る記憶装置は、装置外部から指示された転送量情報が予め設定された正規の転送量情報と一致しているか否かを判定する転送量情報チェック部をさらに有して成り、前記出力制御部は、前記転送開始アドレスチェック部と前記転送量情報チェック部の双方のエラー判定結果に基づいて、前記ブロックデータの出力可否を制御する構成(第4の構成)にするとよい。
【0011】
また、上記第4の構成から成る記憶装置において、前記転送量情報チェック部は、予め設定された正規の転送量情報を格納する正規転送量情報格納部と;装置外部から指示された転送量情報と予め設定された正規の転送量情報とを比較し、その比較結果信号を前記出力制御部に送出する転送量情報比較部;を有して成る構成(第5の構成)にするとよい。
【0012】
また、上記第5の構成から成る記憶装置において、前記正規の転送量情報としては、前記メモリから一のブロックデータが装置外部に転送されて、これがプログラムの一ルーチンとして実行されたときに、当該プログラムによって次にその転送が要求されるブロックデータの転送量情報が予め設定されている構成(第6の構成)にするとよい。
【0013】
また、上記第1〜第6いずれかの構成から成る記憶装置において、前記出力制御部は、前記エラー判定結果に基づいて、前記メモリに対するアドレス制御を実行するか、停止するかを決定するアドレス制御部である構成(第7の構成)にするとよい。
【0014】
また、上記第1〜第6いずれかの構成から成る記憶装置において、前記出力制御部は、前記エラー判定結果に基づいて、前記メモリから読み出されたデータと所定のダミーデータのいずれか一を選択して出力するセレクタを有する構成(第8の構成)にするとよい。
【0015】
また、上記第8の構成から成る記憶装置において、前記ダミーデータは、固定値または乱数値である構成(第9の構成)にするとよい。
【0016】
また、上記第1〜第6いずれかの構成から成る記憶装置において、前記メモリは、データを暗号化して格納するものであり、前記出力制御部は、前記エラー判定結果に基づいて前記メモリから読み出されたデータを出力する際に、所定の鍵情報を用いて正しい暗号解読処理を行うか、ダミーの鍵情報を用いて前記正しい暗号解読処理とは異なる暗号解読処理を行うかを決定するデコーダである構成(第10の構成)にするとよい。
【0017】
また、上記第10の構成から成る記憶装置において、前記デコーダは、前記正しい暗号解読処理とは異なる暗号解読処理を行う場合、前記ダミーの鍵情報を複数切り替えながら暗号解読処理を行う構成(第11の構成)にするとよい。
【0018】
また、上記第1〜第6いずれかの構成から成る記憶装置において、前記出力制御部は、前記メモリから読み出されたデータを出力する際に、前記エラー判定結果に基づいて、所定の鍵情報を用いて正しい暗号化処理を行うか、ダミーの鍵情報を用いて前記正しい暗号化処理とは異なる暗号化処理を行うかを決定するエンコーダである構成(第12の構成)にするとよい。
【0019】
また、上記第12の構成から成る記憶装置において、前記エンコーダは、前記正しい暗号化処理とは異なる暗号化処理を行う場合、前記ダミーの鍵情報を複数切り替えながら暗号化処理を行う構成(第13の構成)にするとよい。
【0020】
また、上記第1〜第13いずれかの構成から成る記憶装置は、中央演算処理装置からデータ転送処理の要求を受けた後、前記中央演算処理装置から独立して前記データ転送処理を実行するダイレクトメモリアクセス制御部をさらに有して成る構成(第14の構成)にするとよい。
【発明の効果】
【0021】
本発明に係る記憶装置であれば、不正コピーを適切に防止することが可能となる。
【図面の簡単な説明】
【0022】
【図1】本発明に係る記憶装置の第1実施形態を示すブロック図
【図2】正規アクセスと不正アクセスを比較したメモリマップ
【図3】本発明に係る記憶装置の第2実施形態を示すブロック図
【図4】本発明に係る記憶装置の第3実施形態を示すブロック図
【図5】本発明に係る記憶装置の第4実施形態を示すブロック図
【発明を実施するための形態】
【0023】
まず、本発明に係る記憶装置の第1実施形態について、図1を参照しながら詳細に説明する。図1は、本発明に係る記憶装置の第1実施形態を示すブロック図である。
【0024】
図1に示す通り、本実施形態の記憶装置1は、メモリ10と、ブロック転送制御部20と、転送開始アドレスチェック部30と、転送量情報チェック部40と、アドレス制御部50と、ダイレクトメモリアクセス制御部60(以下、DMA[Direct Memory Access]制御部60と呼ぶ)と、を集積化して成る半導体装置である。なお、記憶装置1には、中央演算処理装置2(以下、CPU[Central Processing Unit]2と呼ぶ)やワークメモリ3(以下、RAM[Random Accecss Memory]4と呼ぶ)がバス4を介して外部接続されている。
【0025】
メモリ10は、データ(CPU2に読み出されて実行されるメインプログラムなど)を不揮発的に格納する。なお、本実施形態の記憶装置1では、メモリ1として、データの読み出しのみが可能なROMを用いている。
【0026】
ブロック転送制御部20は、CPU2からDMA制御部60経由で入力されるデータ転送要求コマンドやアドレス情報を解析して、CPU2から指示された転送開始アドレスと転送量情報に基づいて定まる一連のデータ群をブロックデータとしてメモリ10から読み出し、これをDMA制御部60経由でRAM3に転送する。なお、上記の転送量情報は、転送すべきブロックデータの容量値であってもよいし、或いは、転送すべきブロックデータの転送終了アドレスであってもよい。例えば、上記の転送量情報として、転送すべきブロックデータの容量値が指示された場合には、転送開始アドレスに基づいて定まる先頭データから容量値に基づいて定まる末尾データまでの一連のデータ群がブロックデータとして読み出される。また、上記の転送量情報として、ブロックデータの転送終了アドレスが指示された場合には、転送開始アドレスに基づいて定まる先頭データから転送終了アドレスに基づいて定まる末尾データまでの一連のデータ群がブロックデータとして読み出される。また、ブロック転送制御部20は、CPU2から指示された転送開始アドレスと転送量情報を転送開始アドレスチェック部30と転送量情報チェック部40に各々送出する。
【0027】
転送開始アドレスチェック部30は、CPU2から指示された転送開始アドレスが予め設定された正規の転送開始アドレスと一致しているか否かを判定する回路部であり、正規アドレス格納部31と、アドレス比較部32と、を有して成る。
【0028】
正規アドレス格納部31は、予め設定された正規の転送開始アドレスを格納する。ここで、正規の転送開始アドレスとしては、メモリ10から一のブロックデータがRAM3に転送されてこれがプログラムの一ルーチンとしてCPU2で実行されたときに、当該プログラムによって次にその転送が要求されるブロックデータの転送開始アドレスが予め設定されている。これについては、後ほど詳細に説明する。
【0029】
アドレス比較部32は、CPU2から指示された転送開始アドレスと予め設定された正規の転送開始アドレスとを比較し、その比較結果信号をアドレス制御部50に送出する。
【0030】
転送量情報チェック部40は、CPU2から指示された転送量情報が予め設定された正規の転送量情報と一致しているか否かを判定する回路部であり、正規転送量情報格納部41と、転送量情報比較部42と、を有して成る。
【0031】
正規転送量情報格納部41は、予め設定された正規の転送量情報を格納する。ここで、正規の転送量情報としては、メモリ10から一のブロックデータがRAM3に転送されてこれがプログラムの一ルーチンとしてCPU2で実行されたときに、当該プログラムによって次にその転送が要求されるブロックデータの転送量情報が予め設定されている。これについては、後ほど詳細に説明する。
【0032】
転送量情報比較部42は、CPU2から指示された転送量情報と予め設定された正規の転送量情報とを比較し、その比較結果信号をアドレス制御部50に送出する。
【0033】
アドレス制御部50は、ブロック転送制御部20からの指示に基づいて動作する転送シーケンサであり、メモリ10から読み出すべきデータを指定するためのアドレス制御を行う。また、本実施形態の記憶装置1において、アドレス制御部50は、転送開始アドレスチェック部30と転送量情報チェック部40双方のエラー判定結果(アドレス比較部32と転送量情報比較部42から各々出力される比較結果信号)に基づいて、メモリ10に対するアドレス制御を実行するか停止するかを決定することにより、ブロックデータの出力可否を制御する出力制御部としての機能も備えている。
【0034】
DMA制御部60は、CPU2からデータ転送処理の要求を受けた後、CPU2から独立して前記データ転送処理を実行するように、ブロック転送制御部20を制御する。このように、DMA制御部60を備えた記憶装置1であれば、CPU2に掛かる負荷を軽減することができるので、システム全体としての処理能力を向上することが可能となる。
【0035】
次に、正規アクセスと不正アクセスとの違いについて、図2を参照しながら詳細に説明する。図2は、正規アクセスと不正アクセスを比較したメモリマップである。なお、図2の左側には正規アクセス時の様子が示されており、図2の右側には不正アクセス時の様子が示されている。
【0036】
CPU2は、メモリ10に格納されたデータを正規に読み出してメインプログラムを起動する際、まず、自身に格納されているローダプログラムを実行する。このようなローダプログラムの実行により、CPU2は、メモリ10から最初に読み出すべきブロックデータを指定するための転送開始アドレス(A0)と転送量情報(B0)、並びに、そのブロックデータの転送先を指定するための転送先アドレス(C0)を記憶装置1に伝達する。なお、ローダプログラムによって指定される転送開始アドレス(A0)と転送量情報(B0)は、システムの仕様によって予め決定されていることが多い。
【0037】
上記の転送要求を受けたDMA制御部60は、メモリ10から所望のブロックデータを読み出すべく、CPU2から指示された転送開始アドレス(A0)と転送量情報(B0)をブロック転送制御部20に伝達し、メモリ10から読み出されてくるブロックデータをRAM3に順次転送する。
【0038】
このように、メモリ10から一のブロックデータがRAM3に転送されてこれがメインプログラムの一ルーチンとしてCPU2で実行されると、当該メインプログラムによって次にその転送が要求されるブロックデータの転送開始アドレス(Ax)と転送量情報(Bx)、並びに、そのブロックデータの転送先を指定するための転送先アドレス(Cx)が記憶装置1に伝達される。
【0039】
以降も同様に、メモリ10から転送されるブロックデータがメインプログラムの一ルーチンとして実行される毎に、CPU2から記憶装置1に対して、次にその転送が要求されるブロックデータの転送開始アドレス(Ax)と転送量情報(Bx)、並びに、そのブロックデータの転送先を指定するための転送先アドレス(Cx)が順次伝達される。
【0040】
ところで、メモリ10から転送されるブロックデータがメインプログラムの一ルーチンとして実行される毎に、次にその転送が要求されるブロックデータの容量値(バイト数)は、メインプログラムの内容に応じて千差万別であるため、ブロックデータの転送要求毎にCPU2から指示される転送開始アドレス(Ax)や転送量情報(Bx)は、図2の左側に示したように、何ら規則性を持たないものとなる。
【0041】
一方、メモリ10に格納されているデータを不正に読み出すときには、図2の右側に示したように、メモリ10の先頭アドレス(A0)から所定の転送量(例えば32メガバイト)ずつ、均等にデータの読み出しを行うことが多い。すなわち、データの不正読み出し時に指示される転送量情報は常に一律となり、転送開始アドレスは一定の規則性を持ってインクリメントされるものとなる。
【0042】
従って、正規アクセス時と不正アクセス時では、記憶装置1に対して指示される転送開始アドレスと転送量情報が基本的に一致しないはずである。
【0043】
このような相違点に着目して、本発明に係る記憶装置1は、メインプログラムの実行に伴ってCPU2から指示され得る転送開始アドレスと転送量情報の候補値(Ax、Bx)を予め格納しておき、CPU2から指示された転送開始アドレス及び転送量情報と、記憶装置1内に予め格納しておいた候補値とを比較して、双方が一致している場合にのみデータの転送を許可する構成とされている。
【0044】
このとき、記憶装置1内には、メインプログラムの実行に伴ってCPU2から指示され得る転送開始アドレスと転送量情報の候補値(Ax、Bx)を全て格納しておいてもよいし、その一部だけを格納しておいてもよい。
【0045】
このような構成とすることにより、不正アクセス時には、メモリ10に格納されているデータ(メインプログラム)を読み出すことができなくなるので、データの不正利用を行うことが不可能となる。
【0046】
なお、不正アクセス時に指示された転送開始アドレス及び転送量情報が記憶装置1内に予め格納しておいた候補値と偶然一致してしまった場合、一部のブロックデータが不正に読み出される結果となるが、メモリ10に格納されているデータが全て揃わない限り、メインプログラムを実行することはできないので、特段の問題が生じることはない。
【0047】
次に、先出の図1に戻り、上記構成から成る記憶装置1の不正コピー防止動作(データの出力禁止動作)について詳細な説明を行う。
【0048】
先にも述べたように、本実施形態の記憶装置1において、アドレス制御部50は、転送開始アドレスチェック部30と転送量情報チェック部40双方のエラー判定結果(アドレス比較部32と転送量情報比較部42から各々出力される比較結果信号)に基づいて、メモリ10に対するアドレス制御を実行するか停止するかを決定することにより、ブロックデータの出力可否を制御する出力制御部としての機能を備えている。
【0049】
具体的に述べると、CPU2から記憶装置1に対して正当なアクセスが行われており、CPU2から指示された転送開始アドレス及び転送量情報と、記憶装置1内に予め格納しておいた各々の候補値とが一致している場合、アドレス制御部50は、メモリ10に対するアドレス制御を実行し、ブロックデータの出力を許可する。
【0050】
一方、記憶装置1に対して不正なアクセスが行われており、記憶装置1の外部から指示された転送開始アドレス及び転送量情報と、記憶装置1内に予め格納しておいた各々の候補値とが不一致である場合、アドレス制御部50は、メモリ10に対するアドレス制御を停止し、ブロックデータの出力を禁止する。
【0051】
このような構成とすることにより、データの不正コピーが疑われる状況下において、アドレス制御部50は、メモリ10に対するアドレス動作を禁止して、メモリ10に格納されたデータの読み出し自体を禁止することができるので、データに暗号化処理のみを施していた従来構成に比べて、データの不正コピーをより適切に防止することが可能となる。
【0052】
次に、本発明に係る記憶装置の第2実施形態について、図3を参照しながら詳細に説明する。図3は、本発明に係る記憶装置の第2実施形態を示すブロック図である。
【0053】
図3に示すように、本実施形態の記憶装置1は、先出の第1実施形態とほぼ同様の構成から成り、メモリ10のデータ出力経路にセレクタ70を有する点に特徴を有している。そこで、第1実施形態と同様の構成要素については、図1と同一の符号を付すことで重複した説明を省略し、以下では、本実施形態の特徴部分であるセレクタ70を中心に詳細な説明を行うことにする。
【0054】
本実施形態の記憶装置1では、転送開始アドレスチェック部30と転送量情報チェック部40双方のエラー判定結果(アドレス比較部32と転送量情報比較部42から各々出力される比較結果信号)がアドレス制御部50ではなくセレクタ70に入力されている。
【0055】
セレクタ70は、転送開始アドレスチェック部30と転送量情報チェック部40双方のエラー判定結果に基づいて、メモリ10から読み出されたデータと所定のダミーデータのいずれか一を選択して出力することにより、ブロックデータの出力可否を制御する出力制御部としての機能を有している。なお、上記のダミーデータは、固定値としてもよいし、乱数値としてもよい。
【0056】
具体的に述べると、CPU2から記憶装置1に対して正当なアクセスが行われており、CPU2から指示された転送開始アドレス及び転送量情報と、記憶装置1内に予め格納しておいた各々の候補値とが一致している場合、セレクタ70は、メモリ10から読み出されたデータを選択して出力する。
【0057】
一方、記憶装置1に対して不正なアクセスが行われており、記憶装置1の外部から指示された転送開始アドレス及び転送量情報と、記憶装置1内に予め格納しておいた各々の候補値とが不一致である場合、セレクタ70は、所定のダミーデータを選択して出力する。
【0058】
このような構成とすることにより、データの不正コピーが疑われる状況下において、セレクタ70は、所定のダミーデータを出力して、メモリ10に格納されたデータの読み出し自体を禁止することができるので、データに暗号化処理のみを施していた従来構成に比べて、データの不正コピーをより適切に防止することが可能となる。
【0059】
次に、本発明に係る記憶装置の第3実施形態について、図4を参照しながら詳細に説明する。図4は、本発明に係る記憶装置の第3実施形態を示すブロック図である。
【0060】
図4に示すように、本実施形態の記憶装置1は、先出の第1実施形態とほぼ同様の構成から成り、メモリ10のデータ出力経路にデコーダ80を有する点に特徴を有している。そこで、第1実施形態と同様の構成要素については、図1と同一の符号を付すことで重複した説明を省略し、以下では、本実施形態の特徴部分であるデコーダ80を中心に詳細な説明を行うことにする。
【0061】
本実施形態の記憶装置1では、転送開始アドレスチェック部30と転送量情報チェック部40双方のエラー判定結果(アドレス比較部32と転送量情報比較部42から各々出力される比較結果信号)がアドレス制御部50ではなくデコーダ80に入力されている。
【0062】
なお、本実施形態の記憶装置1において、メモリ10には、暗号化されたデータ(メインプログラム)が格納されている。なお、データに施される暗号化処理については、1重であっても、2重以上であっても構わない。
【0063】
デコーダ80は、転送開始アドレスチェック部30と転送量情報チェック部40双方のエラー判定結果に基づいて、メモリ10から読み出されたデータを出力する際に、所定の鍵情報を用いて正しい暗号解読処理を行うか、ダミーの鍵情報を用いて意図的にでたらめな暗号解読処理を行うかを決定することにより、ブロックデータの出力可否を制御する出力制御部としての機能を有している。
【0064】
具体的に述べると、CPU2から記憶装置1に対して正当なアクセスが行われており、CPU2から指示された転送開始アドレス及び転送量情報と、記憶装置1内に予め格納しておいた各々の候補値とが一致している場合、デコーダ80は、メモリ10から読み出されたデータを出力する際に、所定の鍵情報を用いて正しい暗号解読処理を行う。
【0065】
一方、記憶装置1に対して不正なアクセスが行われており、記憶装置1の外部から指示された転送開始アドレス及び転送量情報と、記憶装置1内に予め格納しておいた各々の候補値とが不一致である場合、デコーダ80は、メモリ10から読み出されたデータを出力する際に、ダミーの鍵情報を用いて意図的にでたらめな暗号解読処理を行う。
【0066】
このような構成とすることにより、データの不正コピーが疑われる状況下において、デコーダ80は、メモリ10から読み出されたデータに対して、全くでたらめな暗号解読処理を施して出力することができる。従って、記憶装置1から不正に出力されたデータ(ここでは、第2実施形態に倣ってダミーデータと称する)の内容は不明なものとなるため、これを利用することは不可能となる。
【0067】
また、上記のダミーデータは、デコーダ80によるでたらめな暗号解読処理を経て作成されたものであるため、メモリ10に格納されたデータとは全く別物となっており、データの暗号化処理に用いた鍵情報では、もはやその暗号解読処理を行うことができなくなっている。そのため、上記のダミーデータを高速なコンピュータで解析したとしても、メモリ10に格納されているデータの内容を読み取ることは非常に困難となっている。特に、デコーダ80でダミーの鍵情報を複数切り替えながらでたらめな暗号解読処理を行う構成とすれば、事実上、ダミーデータの解析処理は不可能なものとなる。
【0068】
このように、本実施形態の記憶装置1であれば、データの不正コピーが疑われる状況下において、デコーダ80は、所定のダミーデータを出力して、メモリ10に格納されたデータの読み出し自体を禁止することができるので、データに暗号化処理のみを施していた従来構成に比べて、データの不正コピーをより適切に防止することが可能となる。
【0069】
なお、上記では、意図的にでたらめな暗号解読処理を行う構成を例に挙げて説明を行ったが、本発明の構成はこれに限定されるものではなく、正しい暗号解読処理とは異なる暗号解読処理を行う構成であれば、いかなる構成であっても構わない。
【0070】
次に、本発明に係る記憶装置の第4実施形態について、図5を参照しながら詳細に説明する。図5は、本発明に係る記憶装置の第4実施形態を示すブロック図である。
【0071】
図5に示す通り、本実施形態の記憶装置1は、先出の第1実施形態とほぼ同様の構成から成り、メモリ10のデータ出力経路にエンコーダ90を有する点に特徴を有している。そこで、第1実施形態と同様の構成要素については、図1と同一の符号を付すことで重複した説明を省略し、以下では、本実施形態の特徴部分であるエンコーダ90を中心に詳細な説明を行うことにする。
【0072】
本実施形態の記憶装置1では、転送開始アドレスチェック部30と転送量情報チェック部40双方のエラー判定結果(アドレス比較部32と転送量情報比較部42から各々出力される比較結果信号)がアドレス制御部50ではなくエンコーダ90に入力されている。
【0073】
エンコーダ90は、転送開始アドレスチェック部30と転送量情報チェック部40双方のエラー判定結果に基づいて、メモリ10から読み出されたデータを出力する際に、所定の鍵情報を用いて正しい暗号化処理を行うか、ダミーの鍵情報を用いて意図的にでたらめな暗号化処理を行うかを決定することにより、ブロックデータの出力可否を制御する出力制御部としての機能を有している。
【0074】
具体的に述べると、CPU2から記憶装置1に対して正当なアクセスが行われており、CPU2から指示された転送開始アドレス及び転送量情報と、記憶装置1内に予め格納しておいた各々の候補値とが一致している場合、エンコーダ90は、メモリ10から読み出されたデータを出力する際に、所定の鍵情報を用いて正しい暗号化処理を行う。
【0075】
一方、記憶装置1に対して不正なアクセスが行われており、記憶装置1の外部から指示された転送開始アドレス及び転送量情報と、記憶装置1内に予め格納しておいた各々の候補値とが不一致である場合、エンコーダ90は、メモリ10から読み出されたデータを出力する際に、ダミーの鍵情報を用いて意図的にでたらめな暗号化処理を行う。
【0076】
このような構成とすることにより、データの不正コピーが疑われる状況下において、エンコーダ90は、メモリ10から読み出されたデータに対して、全くでたらめな暗号化処理(言い換えれば、その可逆性を前提としない暗号化処理)を施して出力することができる。従って、記憶装置1から不正に出力されたデータ(ここでは、第2実施形態に倣ってダミーデータと称する)の内容は不明なものとなるため、これを利用することは不可能となる。特に、エンコーダ90でダミーの鍵情報を複数切り替えながらでたらめな暗号化処理を行う構成とすれば、事実上、ダミーデータの暗号解読処理は不可能なものとなる。
【0077】
このように、本実施形態の記憶装置1であれば、データの不正コピーが疑われる状況下において、エンコーダ90は、所定のダミーデータを出力して、メモリ10に格納されたデータの読み出し自体を禁止することができるので、データに暗号化処理のみを施していた従来構成に比べて、データの不正コピーをより適切に防止することが可能となる。
【0078】
なお、上記では、意図的にでたらめな暗号化処理を行う構成を例に挙げて説明を行ったが、本発明の構成はこれに限定されるものではなく、正しい暗号化処理とは異なる暗号化処理を行う構成であれば、いかなる構成であっても構わない。
【0079】
また、本発明の構成は、上記実施形態のほか、発明の主旨を逸脱しない範囲で種々の変更を加えることが可能である。すなわち、上記実施形態は、全ての点で例示であって、制限的なものではないと考えられるべきであり、本発明の技術的範囲は、上記実施形態の説明ではなく、特許請求の範囲によって示されるものであり、特許請求の範囲と均等の意味及び範囲内に属する全ての変更が含まれると理解されるべきである。
【0080】
例えば、上記実施形態では、メモリ10として、データの読み出しのみが可能なROMを用いた構成を例に挙げて説明を行ったが、本発明の構成はこれに限定されるものではなく、データの読み出しのみならず、データの書き込み(消去を含む)も可能なフラッシュメモリやEEPROM[Electrically Erasable and Programmable Read Only Memory]をメモリ10として用いても構わない。
【0081】
また、上記実施形態では、正規アドレス格納部31及び正規転送量情報格納部41を独立した回路ブロックとして描写したが、本発明の構成はこれに限定されるものではなく、例えば、メモリ10の一部領域を流用しても構わない。ただし、メモリ10の一部領域を流用する場合には、当該領域に対して装置外部からのアクセスを一切禁止しておく必要がある点に留意すべきである。
【0082】
また、上記実施形態では、記憶装置1にDMA制御部60を内蔵した構成を例に挙げて説明を行ったが、本発明の構成はこれに限定されるものではなく、CPU2から直接的に指示を受けて、ブロックデータの非DMA転送を行う構成としても構わない。
【0083】
また、上記実施形態では、転送開始アドレスと転送量情報の双方が正規である場合にのみ、ブロックデータの出力を許可する構成を例に挙げて説明を行ったが、本発明の構成はこれに限定されるものではなく、転送量情報については不問とし、転送開始アドレスが正規であれば、ブロックデータの出力を許可する構成としても構わない。このような構成とすることにより、不正コピー防止機能は低下するものの、転送量情報チェック部40が不要となるので、記憶装置1の小型化やコストダウンを図ることが可能となる。
【産業上の利用可能性】
【0084】
本発明は、ゲームカートリッジ、ICカード、セキュリティ機器などに用いられる記憶装置の不正コピーを防止する技術として利用することが可能である。
【符号の説明】
【0085】
1 メモリ(ROM)
2 中央演算処理装置(CPU)
3 ワークメモリ(RAM)
4 バス
10 メモリ(ROM)
20 ブロック転送制御部(コマンド/アドレス解析部)
30 転送開始アドレスチェック部
31 正規アドレス格納部
32 アドレス比較部
40 転送量情報チェック部
41 正規転送量情報格納部
42 転送量情報比較部
50 アドレス制御部(転送シーケンサ)
60 ダイレクトメモリアクセス制御部(DMA制御部)
70 セレクタ
80 デコーダ
90 エンコーダ

【特許請求の範囲】
【請求項1】
データを格納するメモリと;
装置外部から指示された転送開始アドレスと転送量情報に基づいて定まる一連のデータ群をブロックデータとして前記メモリから読み出し、これを装置外部に転送するブロックデータ転送制御部と;
装置外部から指示された転送開始アドレスが予め設定された正規の転送開始アドレスと一致しているか否かを判定する転送開始アドレスチェック部と;
前記転送開始アドレスチェック部のエラー判定結果に基づいて、前記ブロックデータの出力可否を制御する出力制御部と;
を有して成ることを特徴とする記憶装置。
【請求項2】
前記転送開始アドレスチェック部は、
予め設定された正規の転送開始アドレスを格納する正規アドレス格納部と;
装置外部から指示された転送開始アドレスと予め設定された正規の転送開始アドレスとを比較し、その比較結果信号を前記出力制御部に送出するアドレス比較部と;
を有して成ることを特徴とする請求項1に記載の記憶装置。
【請求項3】
前記正規の転送開始アドレスとしては、前記メモリから一のブロックデータが装置外部に転送されて、これがプログラムの一ルーチンとして実行されたときに、当該プログラムによって次にその転送が要求されるブロックデータの転送開始アドレスが予め設定されていることを特徴とする請求項2に記載の記憶装置。
【請求項4】
装置外部から指示された転送量情報が予め設定された正規の転送量情報と一致しているか否かを判定する転送量情報チェック部をさらに有して成り、
前記出力制御部は、前記転送開始アドレスチェック部と前記転送量情報チェック部の双方のエラー判定結果に基づいて、前記ブロックデータの出力可否を制御することを特徴とする請求項1〜請求項3のいずれかに記載の記憶装置。
【請求項5】
前記転送量情報チェック部は、
予め設定された正規の転送量情報を格納する正規転送量情報格納部と;
装置外部から指示された転送量情報と予め設定された正規の転送量情報とを比較し、その比較結果信号を前記出力制御部に送出する転送量情報比較部と;
を有して成ることを特徴とする請求項4に記載の記憶装置。
【請求項6】
前記正規の転送量情報としては、前記メモリから一のブロックデータが装置外部に転送されて、これがプログラムの一ルーチンとして実行されたときに、当該プログラムによって次にその転送が要求されるブロックデータの転送量情報が予め設定されていることを特徴とする請求項5に記載の記憶装置。
【請求項7】
前記出力制御部は、前記エラー判定結果に基づいて、前記メモリに対するアドレス制御を実行するか停止するかを決定するアドレス制御部であることを特徴とする請求項1〜請求項6のいずれかに記載の記憶装置。
【請求項8】
前記出力制御部は、前記エラー判定結果に基づいて、前記メモリから読み出されたデータと所定のダミーデータのいずれか一を選択して出力するセレクタであることを特徴とする請求項1〜請求項6のいずれかに記載の記憶装置。
【請求項9】
前記ダミーデータは、固定値または乱数値であることを特徴とする請求項8に記載の記憶装置。
【請求項10】
前記メモリは、データを暗号化して格納するものであり、
前記出力制御部は、前記エラー判定結果に基づいて、前記メモリから読み出されたデータを出力する際に、所定の鍵情報を用いて正しい暗号解読処理を行うか、ダミーの鍵情報を用いて前記正しい暗号解読処理とは異なる暗号解読処理を行うかを決定するデコーダであることを特徴とする請求項1〜請求項6のいずれかに記載の記憶装置。
【請求項11】
前記デコーダは、前記正しい暗号解読処理とは異なる暗号解読処理を行う場合、前記ダミーの鍵情報を複数切り替えながら暗号解読処理を行うことを特徴とする請求項10に記載の記憶装置。
【請求項12】
前記出力制御部は、前記メモリから読み出されたデータを出力する際に、前記エラー判定結果に基づいて、所定の鍵情報を用いて正しい暗号化処理を行うか、ダミーの鍵情報を用いて前記正しい暗号化処理とは異なる暗号化処理を行うかを決定するエンコーダであることを特徴とする請求項1〜請求項6のいずれかに記載の記憶装置。
【請求項13】
前記エンコーダは、前記正しい暗号化処理とは異なる暗号化処理を行う場合、前記ダミーの鍵情報を複数切り替えながら暗号化処理を行うことを特徴とする請求項12に記載の記憶装置。
【請求項14】
中央演算処理装置からデータ転送処理の要求を受けた後、前記中央演算処理装置から独立して前記データ転送処理を実行するダイレクトメモリアクセス制御部をさらに有して成ることを特徴とする請求項1〜請求項13のいずれかに記載の記憶装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2011−150495(P2011−150495A)
【公開日】平成23年8月4日(2011.8.4)
【国際特許分類】
【出願番号】特願2010−10568(P2010−10568)
【出願日】平成22年1月21日(2010.1.21)
【出願人】(000116024)ローム株式会社 (3,539)
【Fターム(参考)】