説明

記憶装置

【課題】本発明は、不正コピーを適切に防止することが可能な記憶装置を提供することを目的とする。
【解決手段】本発明に係る記憶装置は、データDを格納するメモリ100と;メモリ100の読み出し開始時における初期アドレスが予め設定された所定値と一致しているか否かを判定する初期アドレスチェック部205と;初期アドレスチェック部205の判定結果に基づいて、メモリ100に格納されたデータDの出力を禁止する出力制御部207と;を有して成る構成とされている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、不正コピー防止機能を備えた記憶装置に関するものである。
【背景技術】
【0002】
従来より、不正コピー防止機能を備えた記憶装置が種々開示・提案されている(例えば特許文献1や特許文献2を参照)。なお、従来の記憶装置の多くは、所定の鍵情報を用いて暗号化されたデータを格納する構成とされていた。
【特許文献1】特開2003−59178号公報
【特許文献2】特開2002−373320号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
確かに、上記従来の記憶装置であれば、格納されたデータが不正コピーされた場合であっても、所定の鍵情報を用いた暗号解読処理が行われない限り、その内容は不明なものとなるため、不正コピーされたデータの利用は困難であった。
【0004】
しかしながら、上記従来の記憶装置は、あくまで、不正コピーされたデータの利用を困難とするものであって、格納されたデータの読み出しは自由であった。そのため、高速なコンピュータを用いて不正コピーされたデータが解析され、その暗号が解読されてしまった場合には、以後、その内容を自由にコピーされてしまうという問題があった。
【0005】
本発明は、上記の問題点に鑑み、不正コピーを適切に防止することが可能な記憶装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明に係る記憶装置は、データを格納するメモリと;前記メモリの読み出し開始時における初期アドレスが予め設定された所定値と一致しているか否かを判定する初期アドレスチェック部と;前記初期アドレスチェック部の判定結果に基づいて、前記メモリに格納されたデータの出力を禁止する出力制御部と;を有して成る構成(第1の構成)とされている。
【0007】
なお、上記第1の構成から成る記憶装置において、前記初期アドレスチェック部は、前記メモリの読み出し開始時にワンショット信号を生成するワンショット生成部と;前記メモリに対して実際にアクセス中のアドレスを取得するアドレス取得部と;予め定められた正規の初期アドレスを格納する正規アドレス格納部と;前記アドレス取得部の出力データと前記正規アドレス格納部の出力データを比較し、その一致/不一致を示す比較結果信号を出力するアドレス比較部と;前記ワンショット信号に基づいて前記比較結果信号のロード及びラッチを行い、前記メモリの読み出し開始時における初期アドレスが予め設定された正規の初期アドレスと一致しているか否かを示すエラーフラグを生成するエラーフラグ生成部と;を有して成る構成(第2の構成)にするとよい。
【0008】
また、上記第2の構成から成る記憶装置において、前記ワンショット生成部は、前記記憶装置のリセット状態が解除された後、リード信号の最初のパルスが到来してから2つめのパルスが到来するまでの間、所定の論理レベルとなる前記ワンショット信号を生成する構成(第3の構成)にするとよい。
【発明の効果】
【0009】
本発明に係る記憶装置であれば、不正コピーを適切に防止することが可能となる。
【発明を実施するための最良の形態】
【0010】
まず、本発明に係る記憶装置の第1実施形態について、図1を参照しながら詳細に説明する。図1は、本発明に係る記憶装置の第1実施形態を示すブロック図である。
【0011】
図1に示すように、本実施形態の記憶装置は、読み出し専用のメモリ100(図1ではROM[Random Access Memory]と表記)と、不正コピー防止回路200と、を有して成る。また、不正コピー防止回路200は、コードチェック部201と、タイミング制御部202と、インクリメントチェック部203と、エラー検出部204と、初期アドレスチェック部205と、論理和演算器206と、セレクタ207と、を有して成る。
【0012】
メモリ100は、データD(CPU[Central Processing Unit]に読み出されて実行されるプログラムなど)を不揮発的に格納する手段である。
【0013】
コードチェック部201は、メモリ100から読み出されたデータDに含まれるコードを解析するコード解析部である。より具体的に述べると、コードチェック部201は、メモリ100から読み出されたデータDをモニタして、実行時にアドレスのジャンプ動作を伴う所定の監視対象コード(ジャンプ命令のほか、コール命令やアドレス指定付きのロード命令などを含む)を検出し、その解析結果をタイミング制御部202やエラー検出部204に伝達する。なお、メモリ100に格納されたデータDに対して暗号化処理や圧縮処理が施されている場合、コードチェック部201は、上記したコード解析機能に加えて、データDの暗号解読処理機能や伸長処理機能を具備する必要がある。
【0014】
タイミング制御部202は、データDの読み出しを指示するリード信号RDの入力を受けて動作し、コードチェック部201で得られた解析結果に基づいて、上記した監視対象コードの実行タイミングをインクリメントチェック部203やエラー検出部204に伝達する手段である。
【0015】
インクリメントチェック部203は、メモリ100に対するアドレス動作を解析するアドレス解析部である。より具体的に述べると、インクリメントチェック部203は、メモリ100に与えられるアドレス信号ADDをモニタして、前のアドレスと現在のアドレスを比較し、アドレスのインクリメント動作(ここでは、アドレスを1つだけインクリメントする動作を指すものとする)が行われたか否かを検出する。
【0016】
エラー検出部204は、コードチェック部201とインクリメントチェック部203の解析結果を参照し、コードに合致したアドレス動作が行われているか否かを判定する手段である。より具体的に述べると、エラー検出部204は、前記監視対象コードの実行時にアドレスのインクリメント動作が検出された場合にエラーフラグを立てる。すなわち、エラー検出部204は、アドレスのジャンプ動作が行われるべきタイミングでアドレスのインクリメント動作が行われたことを検出したときに、不正コピーのおそれがあると判断して、論理和演算器206への出力信号をローレベルからハイレベルに変遷する。
【0017】
初期アドレスチェック部205は、メモリ100に与えられるアドレス信号ADDをモニタして、メモリ100の読み出し開始時における初期アドレスが予め設定された所定値と一致しているか否かを判定し、その不一致が検出された場合にエラーフラグを立てる手段である。すなわち、初期アドレスチェック部205は、所定値以外のアドレスからデータDの読み出しが開始されたことを検出したときに、不正コピーのおそれがあると判断して、論理和演算器206への出力信号をローレベルからハイレベルに変遷する。
【0018】
論理和演算器206は、エラー検出部204の出力信号と初期アドレスチェック部205の出力信号の論理和演算を行い、その演算結果をセレクタ207の制御信号として出力する手段である。すなわち、セレクタ207の制御信号は、エラー検出部204の出力信号と初期アドレスチェック部205の出力信号の両方がローレベルであるときにのみローレベルとなり、その余の場合にはハイレベルとなる。
【0019】
セレクタ207は、論理和演算器206の出力信号に基づいて、メモリ100に格納されたデータDの出力を禁止する出力制御部である。より具体的に述べると、セレクタ207は、論理和演算器206の出力信号がローレベルであるときには、メモリ100から読み出されたデータDを選択して出力する一方、論理和演算器206の出力信号がハイレベルであるときには、所定のダミーデータDDを選択して出力する。なお、ダミーデータDDは、固定値としてもよいし、乱数値としてもよい。
【0020】
次に、上記構成から成る記憶装置のデータ読み出し時における不正コピー防止回路200のプロテクト動作について詳細な説明を行う。
【0021】
メモリ100に対して正当なアクセスが行われている場合には、予め設定された所定値を初期アドレスとしてデータDの読み出しが開始され、メモリ100に対するアドレス動作についても、データDに含まれるコードに合致したものとなる。従って、エラー検出部204と初期アドレスチェック部205の出力信号は、いずれもローレベルに維持されるので、論理和演算器206の出力信号はローレベルとなり、セレクタ207は、メモリ100から読み出されたデータDを選択して出力する状態(すなわち、データDの出力許可状態)となる。
【0022】
一方、メモリ100に格納されたデータDの不正コピーが行われている場合には、データDに含まれるコードの内容とは何ら関係なく、アドレスのインクリメント動作が行われて、メモリ100に格納されたデータDがそのアドレス順に連続して読み出されていく。すなわち、データDの不正コピー時には、先述の監視対象コードに基づいてアドレスのジャンプ動作が行われるべきタイミングであっても、これを無視してアドレスのインクリメント動作が行われるので、メモリ100に対するアドレス動作がコードに合致したものではなくなる。このような場合、エラー検出部204の出力信号は、ローレベルからハイレベルに遷移されるので、論理和演算器206の出力信号はハイレベルとなり、セレクタ207は、メモリ100から読み出されたデータDではなく、所定のダミーデータDDを選択して出力する状態(データDの出力禁止状態)となる。
【0023】
また、メモリ100に格納されたデータDの不正コピーが行われる場合、予め設定された所定値以外のアドレスからデータDの読み出しが開始されることもあり得る。このような場合、初期アドレスチェック部205の出力信号は、ローレベルからハイレベルに遷移されるので、論理和演算器206の出力信号はハイレベルとなり、セレクタ207は、エラー検出部204の検出結果を待つことなく、所定のダミーデータDDを選択して出力する状態となる。
【0024】
このように、本実施形態の記憶装置であれば、データDの不正コピーが疑われる状況下において、メモリ100に格納されたデータDの出力自体を禁止することができるので、従来構成に比べて、データDの不正コピーをより適切に防止することが可能となる。
【0025】
なお、上記構成から成る記憶装置において、コードチェック部201は、前記監視対象コードのうち、実行時の条件に応じてアドレスのジャンプ動作を伴うか否かが不明であるものを検出した場合、エラー検出部204に対して、その監視対象コードの実行時に得られるエラーフラグをマスクするように指示する構成にするとよい。
【0026】
このような構成とすることにより、メモリ100に対して正当なアクセスが行われているにも関わらず、監視対象コードが実行時の条件に応じてアドレスのジャンプ動作を伴わなかった場合であっても、これを誤ってエラーと判断することがなくなるので、データDの不必要な出力禁止を回避することが可能となる。
【0027】
ただし、コードチェック部201は、エラー検出部204に対するマスク指示が所定値に達した場合、以後のマスク指示を中止する構成にするとよい。このような構成とすることにより、例えば、実行時の条件に応じてアドレスのジャンプ動作を伴うか否かが不明であるコードの記述回数に上限値が定められているにも関わらず、その上限値を超えてエラー検出部204のエラーフラグが過度にマスクされることを回避することができるので、エラーの誤検出を低減しつつ、データDの不正コピーを防止することが可能となる。
【0028】
次に、本発明に係る記憶装置の第2実施形態について、図2を参照しながら詳細に説明する。図2は、本発明に係る記憶装置の第2実施形態を示すブロック図である。
【0029】
図2に示すように、本実施形態の記憶装置は、先出の第1実施形態とほぼ同様の構成から成り、セレクタ207に代えて、デコーダ208を有する点に特徴を有している。そこで、第1実施形態と同様の構成要素については、図1と同一の符号を付すことで重複した説明を省略し、以下では、本実施形態の特徴部分であるデコーダ208を中心に詳細な説明を行うことにする。
【0030】
本実施形態の記憶装置において、メモリ100には、暗号化されたデータDが格納されている。なお、データDに施される暗号化処理については、1重であっても、2重以上であっても構わない。
【0031】
デコーダ208は、論理和演算器206の出力信号に基づいて、メモリ100に格納されたデータDの出力を禁止する出力制御部である。より具体的に述べると、デコーダ208は、メモリ100から読み出されたデータDを出力する際に、論理和演算器206の出力信号に基づいて、所定の鍵情報を用いて正しい暗号解読処理を行うか、ダミーの鍵情報を用いて意図的にでたらめな暗号解読処理を行うかを決定する。
【0032】
このような構成とすることにより、データDの不正コピーが疑われる状況下において、デコーダ208は、メモリ100から読み出されたデータDに対して、全くでたらめな暗号解読処理を施して出力する。従って、記憶装置から不正に出力されたデータ(ここでは第1実施形態に倣ってダミーデータDDと称する)の内容は不明なものとなるため、これを利用することは不可能となる。
【0033】
また、ダミーデータDDは、デコーダ208によるでたらめな暗号解読処理を経て作成されたものであるため、メモリ100に格納されたデータDとは全く別物となっており、データDの暗号化処理に用いた鍵情報では、もはやその暗号解読処理を行うことができなくなっている。そのため、ダミーデータDDを高速なコンピュータで解析したとしても、データDの内容を読み取ることは非常に困難となっている。特に、デコーダ208でダミーの鍵情報を複数切り替えながらでたらめな暗号解読処理を行う構成とすれば、事実上、ダミーデータDDの解析処理は不可能なものとなる。
【0034】
このように、本実施形態の記憶装置であれば、メモリ100に格納されたデータDの出力自体を禁止することができるので、従来構成に比べて、データDの不正コピーをより適切に防止することが可能となる。
【0035】
なお、上記では、意図的にでたらめな暗号解読処理を行う構成を例に挙げて説明を行ったが、本発明の構成はこれに限定されるものではなく、正しい暗号解読処理とは異なる暗号解読処理を行う構成であれば、いかなる構成であっても構わない。
【0036】
次に、本発明に係る記憶装置の第3実施形態について、図3を参照しながら詳細に説明する。図3は、本発明に係る記憶装置の第3実施形態を示すブロック図である。
【0037】
図3に示すように、本実施形態の記憶装置は、先出の第1実施形態とほぼ同様の構成から成り、セレクタ207に代えて、エンコーダ209を有する点に特徴を有している。そこで、第1実施形態と同様の構成要素については、図1と同一の符号を付すことで重複した説明を省略し、以下では、本実施形態の特徴部分であるエンコーダ209を中心に詳細な説明を行うことにする。
【0038】
エンコーダ209は、論理和演算器206の出力信号に基づいて、メモリ100に格納されたデータDの出力を禁止する出力制御部である。より具体的に述べると、エンコーダ209は、メモリ100から読み出されたデータDを出力する際に、論理和演算器206の出力信号に基づいて、所定の鍵情報を用いて正しい暗号化処理を行うか、ダミーの鍵情報を用いて意図的にでたらめな暗号化処理を行うかを決定する。
【0039】
このような構成とすることにより、データDの不正コピーが疑われる状況下において、エンコーダ209は、メモリ100から読み出されたデータDに対して、全くでたらめな暗号化処理(言い換えればその可逆性を前提としない暗号化処理)を施して出力する。従って、記憶装置から不正に出力されたデータ(ここでは第1実施形態に倣ってダミーデータDDと称する)の内容は不明なものとなるため、これを利用することは不可能となる。特に、エンコーダ209でダミーの鍵情報を複数切り替えながらでたらめな暗号化処理を行う構成とすれば、事実上、ダミーデータDDの暗号解読処理は不可能なものとなる。
【0040】
このように、本実施形態の記憶装置であれば、メモリ100に格納されたデータDの出力自体を禁止することができるので、従来構成に比べて、データDの不正コピーをより適切に防止することが可能となる。
【0041】
なお、上記では、意図的にでたらめな暗号化処理を行う構成を例に挙げて説明を行ったが、本発明の構成はこれに限定されるものではなく、正しい暗号化処理とは異なる暗号化処理を行う構成であれば、いかなる構成であっても構わない。
【0042】
次に、本発明に係る記憶装置の第4実施形態について、図4を参照しながら詳細に説明する。図4は、本発明に係る記憶装置の第4実施形態を示すブロック図である。
【0043】
図4に示すように、本実施形態の記憶装置は、先出の第1実施形態とほぼ同様の構成から成り、セレクタ207に代えてアドレス制御部210を有する点に特徴を有している。そこで、第1実施形態と同様の構成要素については、図1と同一の符号を付すことで重複した説明を省略し、以下では、本実施形態の特徴部分であるアドレス制御部210を中心に詳細な説明を行うことにする。
【0044】
アドレス制御部210は、論理和演算器206の出力信号に基づいて、メモリ100に格納されたデータDの出力を禁止する出力制御部である。より具体的に述べると、アドレス制御部210は、論理和演算器206の出力信号がローレベルであるときには、メモリ100に対するアドレス動作を許可する一方、論理和演算器206の出力信号がハイレベルであるときには、メモリ100に対するアドレス動作を禁止する。
【0045】
このような構成とすることにより、データDの不正コピーが疑われる状況下において、アドレス制御部210は、メモリ100に対するアドレス動作を禁止して、メモリ100に格納されたデータDの読み出し自体を禁止することができるので、従来構成に比べて、データDの不正コピーをより適切に防止することが可能となる。
【0046】
次に、初期アドレスチェック部205の構成について、図5を参照しながら詳細に説明する。図5は、初期アドレスチェック部205の一構成例を示すブロック図である。
【0047】
図5に示すように、本構成例の初期アドレスチェック部205は、ワンショット生成部1と、アドレス取得部2と、正規アドレス格納部3と、アドレス比較部4と、エラーフラグ生成部5と、を有して成る。
【0048】
ワンショット生成部1は、メモリ100の読み出し開始時に、リード信号RD(データDの読出タイミング制御信号)からワンショット信号Sdを生成する手段であり、インバータ11と、Dフリップフロップ12及びDフリップフロップ13と、論理積演算器14と、を有して成る。インバータ11の入力端は、リード信号RDの印加端に接続されている。Dフリップフロップ12、13のクロック入力端は、いずれもインバータ11の出力端に接続されている。Dフリップフロップ12のデータ入力端(D)は、ハイレベル信号の印加端(例えば電源ライン)に接続されている。Dフリップフロップ13のデータ入力端(D)は、Dフリップフロップ12の出力端(Q)に接続されている。Dフリップフロップ12、13のリセット入力端は、いずれもリセット信号RSTの印加端に接続されている。論理積演算器14の一入力端は、Dフリップフロップ12の出力端(Q)に接続されている。論理積演算器14の他入力端は、Dフリップフロップ13の反転出力端(Qバー)に接続されている。なお、論理積演算器14の出力端は、ワンショット生成部1の出力端(ワンショット信号Sdの出力端)に相当する。
【0049】
アドレス取得部2は、メモリ100に供給されるアドレス信号ADDをリード信号RDでラッチすることにより、実際にアクセス中のアドレスを取得する手段である。
【0050】
正規アドレス格納部3は、予め定められた正規の初期アドレスを格納する手段である。なお、本構成例の初期アドレスチェック部205では、正規アドレス格納部3を独立に設けた構成を例に挙げて説明を行うが、本発明の構成はこれに限定されるものではなく、メモリ100の格納領域の一部を正規アドレス格納部3として用いても構わない。
【0051】
アドレス比較部4は、アドレス取得部2の出力データ(実際にアクセス中のアドレス)と、正規アドレス格納部3の出力データ(予め定められた正規の初期アドレス)と、を比較し、その一致/不一致を示す比較結果信号を出力する手段である。なお、比較結果信号は、例えば、アドレス取得部2と正規アドレス格納部3の出力データが互いに一致していればローレベルとされ、一致していなければハイレベルとなる2値信号である。
【0052】
エラーフラグ生成部5は、アドレス比較部4で得られた比較結果信号のロード及びラッチを行い、メモリ100の読み出し開始時における初期アドレスが予め設定された正規の初期アドレスと一致しているか否かを示すエラーフラグERRを生成する手段であり、スイッチ51及びスイッチ52と、Dフリップフロップ53と、を有して成る。
【0053】
スイッチ51は、アドレス比較部4の出力端(比較結果信号の印加端)とDフリップフロップ53のデータ入力端(D)を結ぶ信号経路上に接続され、ワンショット信号Sdに応じて上記の信号経路を導通/遮断する手段である。なお、スイッチ51は、ワンショット信号Sdがハイレベルであるときにオンされ、ローレベルであるときにオフされる。
【0054】
スイッチ52は、Dフリップフロップ53の出力端(Q)とデータ入力端(D)を結ぶ信号経路上に接続され、ワンショット信号Sdに応じて上記の信号経路を導通/遮断する手段である。なお、スイッチ52は、ワンショット信号Sdがハイレベルであるときにオフされ、ローレベルであるときにオンされる。
【0055】
Dフリップフロップ53のデータ入力端(D)は、スイッチ51を介してアドレス比較部4の出力端に接続される一方、スイッチ52を介してDフリップフロップ53の出力端(Q)にも接続されている。Dフリップフロップ53のクロック入力端は、インバータ11の出力端に接続されている。Dフリップフロップ53のリセット入力端は、リセット信号RSTの印加端に接続されている。Dフリップフロップ53の出力端(Q)は、初期アドレスチェック部205の出力端(エラーフラグERRの出力端)として、論理和演算器206(図5では不図示)の入力端に接続されている。
【0056】
次に、上記構成から成る初期アドレスチェック部205の動作について、図6を参照しながら詳細に説明する。図6は、初期アドレスチェック部205の動作を説明するためのタイミングチャートであり、上から順に、リセット信号RST、リード信号RD、及び、ワンショット生成部1各部の論理信号(インバータ11の反転リード信号Sa、Dフリップフロップ12の出力信号Sb、Dフリップフロップ13の反転出力信号Sc、及び、論理積演算器14のワンショット信号Sd)が描写されている。なお、ここで示す論理信号は、あくまで一例であり、その論理レベルは反転されていても構わない。
【0057】
リセット信号RSTがハイレベルからローレベルに遷移されて、記憶装置のリセット状態が解除されたとき、Dフリップフロップ12の出力信号Sbはローレベルとされ、Dフリップフロップ13の反転出力信号Scはハイレベルとされる。その後、リード信号RDに最初のパルスP1が立ち下げられると、Dフリップフロップ12は、反転リード信号Saの立上がりエッジをトリガとして、データ入力端(D)に常時印加されているハイレベル信号を取り込み、出力信号Sbをハイレベルにセットする。また、Dフリップフロップ13は、反転リード信号Saの立上がりエッジをトリガとして、その時点でデータ入力端(D)に印加されているDフリップフロップ12の出力信号Sb(ローレベル)を取り込み、反転出力信号Scをハイレベルにセットする。従って、出力信号Sbと反転出力信号Scの論理積演算によって得られるワンショット信号Sdはハイレベルとなる。
【0058】
ワンショット信号Sdがハイレベルとされた後、リード信号RDに2つめのパルスP2が立ち下げられると、Dフリップフロップ12は、反転リード信号Saの立上がりエッジをトリガとして、データ入力端(D)に常時印加されているハイレベル信号を取り込み、出力信号Sbをハイレベルにセットする。また、Dフリップフロップ13は、反転リード信号Saの立上がりエッジをトリガとして、その時点でデータ入力端(D)に印加されているDフリップフロップ12の出力信号Sb(ハイレベル)を取り込み、反転出力信号Scをローレベルにセットする。従って、出力信号Sbと反転出力信号Scの論理積演算によって得られるワンショット信号Sdはローレベルとなる。
【0059】
以後、リード信号RDのパルスが順次立ち下げられた場合についても、上記と同様の信号処理が行われ、ワンショット信号Sdはローレベルに維持される。すなわち、ワンショット生成部1では、記憶装置のリセット状態が解除された後、リード信号RDの最初のパルスP1が到来してから2つめのパルスP2が到来するまでの間、所定の論理レベル(図6の例ではハイレベル)となるワンショット信号Sdが生成される形となる。
【0060】
また、先にも述べたように、エラーフラグ生成部5を形成するスイッチ51、52は、ワンショット信号Sdがハイレベルであるときに、それぞれオン、オフの状態とされ、ローレベルであるときに、それぞれオフ、オンの状態とされる。すなわち、エラーフラグ生成部5は、記憶装置のリセット状態が解除された後、リード信号RDの最初のパルスP1が到来したときに、アドレス比較部4で得られた比較結果信号のロードを行うとともに、2つめのパルスP2が到来したときに、その時点でロードされている比較結果信号のラッチを行い、これをエラーフラグERRとして出力する。
【0061】
このような構成とすることにより、極めて容易かつ簡易な回路構成で、初期アドレスチェック部205を実現することが可能となる。
【0062】
なお、本発明の構成は、上記実施形態のほか、発明の主旨を逸脱しない範囲で種々の変更を加えることが可能である。
【0063】
例えば、上記実施形態では、コードに合致したアドレス動作が行われているか否かを判定する手法として、アドレスのジャンプ動作を伴うコードの実行時に、アドレスのインクリメント動作が行われたか否かを検出する構成を例に挙げて説明を行ったが、本発明の構成はこれに限定されるものではなく、その余の手法を用いても構わない。
【0064】
また、上記実施形態では、データDの格納手段として、読み出し専用のメモリ100を用いた構成を例示して説明を行ったが、本発明の構成はこれに限定されるものではなく、データDの読み書きが可能なフラッシュメモリやEEPROM[Electrically Erasable and Programmable Read Only Memory]などを用いても構わない。
【産業上の利用可能性】
【0065】
本発明は、ゲームカートリッジ、ICカード、セキュリティ機器などに用いられる記憶装置の不正コピーを防止する技術として利用することが可能である。
【図面の簡単な説明】
【0066】
【図1】は、本発明に係る記憶装置の第1実施形態を示すブロック図である。
【図2】は、本発明に係る記憶装置の第2実施形態を示すブロック図である。
【図3】は、本発明に係る記憶装置の第3実施形態を示すブロック図である。
【図4】は、本発明に係る記憶装置の第4実施形態を示すブロック図である。
【図5】は、初期アドレスチェック部205の一構成例を示すブロック図である。
【図6】は、初期アドレスチェック部205の動作を説明するためのタイミングチャートである。
【符号の説明】
【0067】
100 読み出し専用メモリ(ROM)
200 不正コピー防止回路
201 コードチェック部(コード解析部)
202 タイミング制御部
203 インクリメントチェック部(アドレス解析部)
204 エラー検出部
205 初期アドレスチェック部
206 論理和演算器
207 セレクタ
208 デコーダ
209 エンコーダ
210 アドレス制御部
1 ワンショット生成部
11 インバータ
12、13 Dフリップフロップ
14 論理積演算器
2 アドレス取得部
3 正規アドレス格納部
4 アドレス比較部
5 エラーフラグ生成部
51、52 スイッチ
53 Dフリップフロップ

【特許請求の範囲】
【請求項1】
データを格納するメモリと;
前記メモリの読み出し開始時における初期アドレスが予め設定された正規の初期アドレスと一致しているか否かを判定する初期アドレスチェック部と;
前記初期アドレスチェック部の判定結果に基づいて、前記メモリに格納されたデータの出力を禁止する出力制御部と;
を有して成ることを特徴とする記憶装置。
【請求項2】
前記初期アドレスチェック部は、
前記メモリの読み出し開始時にワンショット信号を生成するワンショット生成部と;
前記メモリに対して実際にアクセス中のアドレスを取得するアドレス取得部と;
予め定められた正規の初期アドレスを格納する正規アドレス格納部と;
前記アドレス取得部の出力データと前記正規アドレス格納部の出力データを比較し、その一致/不一致を示す比較結果信号を出力するアドレス比較部と;
前記ワンショット信号に基づいて前記比較結果信号のロード及びラッチを行い、前記メモリの読み出し開始時における初期アドレスが予め設定された正規の初期アドレスと一致しているか否かを示すエラーフラグを生成するエラーフラグ生成部と;
を有して成ることを特徴とする請求項1に記載の記憶装置。
【請求項3】
前記ワンショット生成部は、前記記憶装置のリセット状態が解除された後、リード信号の最初のパルスが到来してから2つめのパルスが到来するまでの間、所定の論理レベルとなる前記ワンショット信号を生成することを特徴とする請求項2に記載の記憶装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2010−33121(P2010−33121A)
【公開日】平成22年2月12日(2010.2.12)
【国際特許分類】
【出願番号】特願2008−191610(P2008−191610)
【出願日】平成20年7月25日(2008.7.25)
【出願人】(000116024)ローム株式会社 (3,539)
【Fターム(参考)】