JP2010033122A - Storage device - Google Patents
Storage device Download PDFInfo
- Publication number
- JP2010033122A JP2010033122A JP2008191612A JP2008191612A JP2010033122A JP 2010033122 A JP2010033122 A JP 2010033122A JP 2008191612 A JP2008191612 A JP 2008191612A JP 2008191612 A JP2008191612 A JP 2008191612A JP 2010033122 A JP2010033122 A JP 2010033122A
- Authority
- JP
- Japan
- Prior art keywords
- address
- signal
- memory
- data
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
Description
本発明は、不正コピー防止機能を備えた記憶装置に関するものである。 The present invention relates to a storage device having an unauthorized copy prevention function.
従来より、不正コピー防止機能を備えた記憶装置が種々開示・提案されている(例えば特許文献1や特許文献2を参照)。なお、従来の記憶装置の多くは、所定の鍵情報を用いて暗号化されたデータを格納する構成とされていた。
確かに、上記従来の記憶装置であれば、格納されたデータが不正コピーされた場合であっても、所定の鍵情報を用いた暗号解読処理が行われない限り、その内容は不明なものとなるため、不正コピーされたデータの利用は困難であった。 Certainly, in the case of the conventional storage device, even if the stored data is illegally copied, the content is unknown unless decryption processing using predetermined key information is performed. Therefore, it is difficult to use illegally copied data.
しかしながら、上記従来の記憶装置は、あくまで、不正コピーされたデータの利用を困難とするものであって、格納されたデータの読み出しは自由であった。そのため、高速なコンピュータを用いて不正コピーされたデータが解析され、その暗号が解読されてしまった場合には、以後、その内容を自由にコピーされてしまうという問題があった。 However, the conventional storage device described above makes it difficult to use illegally copied data, and the stored data can be freely read. For this reason, when illegally copied data is analyzed using a high-speed computer and the cipher is decrypted, there is a problem that the contents are freely copied thereafter.
本発明は、上記の問題点に鑑み、不正コピーを適切に防止することが可能な記憶装置を提供することを目的とする。 In view of the above problems, an object of the present invention is to provide a storage device that can appropriately prevent unauthorized copying.
上記目的を達成するために、本発明に係る記憶装置は、データを格納するメモリと;前記メモリから読み出されたデータにアドレスのジャンプ動作を伴う所定の監視対象コードが含まれているか否かを検出するコード解析部と;アドレスのインクリメント動作が行われているか否かを検出するアドレス解析部と;前記コード解析部と前記アドレス解析部の解析結果を参照して、前記監視対象コードの実行時にアドレスのインクリメント動作が行われたか否かを検出するエラー検出部と;前記エラー検出部の判定結果に基づいて、前記メモリに格納されたデータの出力を禁止する出力制御部と;を有して成る記憶装置であって、前記アドレス解析部は、ロード信号を生成するロード信号生成部と;前記ロード信号をトリガとして前記メモリに供給されるアドレス信号を読み込み、そのアドレス値を自身のカウント値として設定した上で、それ以後、リード信号に基づいて、前記カウント値を1つずつインクリメントして出力するカウンタと;前記メモリに供給されるアドレス信号と前記カウンタのカウンタ値とを比較し、その一致/不一致を示す比較結果信号を出力するアドレス比較部と;を有して成る構成(第1の構成)とされている。 In order to achieve the above object, a storage device according to the present invention includes a memory for storing data, and whether or not a predetermined monitoring target code accompanying an address jump operation is included in the data read from the memory A code analysis unit for detecting the address; an address analysis unit for detecting whether or not an address increment operation is performed; and executing the monitoring target code with reference to the analysis results of the code analysis unit and the address analysis unit An error detection unit that detects whether or not an address increment operation has been performed; and an output control unit that prohibits output of data stored in the memory based on a determination result of the error detection unit. The address analyzing unit includes: a load signal generating unit that generates a load signal; and the load signal is used as a trigger for the memory. A counter that reads the address signal to be read and sets the address value as its own count value, and thereafter increments the count value one by one based on the read signal; and is supplied to the memory; And an address comparison unit that compares the counter signal with the counter value of the counter and outputs a comparison result signal indicating coincidence / non-coincidence (first configuration).
なお、上記第1の構成から成る記憶装置において、前記ロード信号生成部は、前記メモリの読み出し開始時にワンショット信号を生成するワンショット生成部と;前記ワンショット信号と前記比較結果信号から前記ロード信号を生成する論理回路と;を有して成る構成(第2の構成)にするとよい。 In the storage device having the first configuration, the load signal generation unit includes a one-shot generation unit that generates a one-shot signal at the start of reading of the memory; and the load signal is generated from the one-shot signal and the comparison result signal. And a logic circuit for generating a signal (second configuration).
また、上記第2の構成から成る記憶装置において、前記ワンショット生成部は、前記記憶装置のリセット状態が解除された後、前記リード信号の最初のパルスが到来してから2つめのパルスが到来するまでの間、所定の論理レベルとなる前記ワンショット信号を生成する構成(第3の構成)にするとよい。 In the storage device having the second configuration, the one-shot generation unit receives a second pulse after the first pulse of the read signal has arrived after the reset state of the storage device is released. In the meantime, it is preferable to adopt a configuration (third configuration) for generating the one-shot signal having a predetermined logic level.
本発明に係る記憶装置であれば、不正コピーを適切に防止することが可能となる。 With the storage device according to the present invention, unauthorized copying can be prevented appropriately.
まず、本発明に係る記憶装置の第1実施形態について、図1を参照しながら詳細に説明する。図1は、本発明に係る記憶装置の第1実施形態を示すブロック図である。 First, a first embodiment of a storage device according to the present invention will be described in detail with reference to FIG. FIG. 1 is a block diagram showing a first embodiment of a storage device according to the present invention.
図1に示すように、本実施形態の記憶装置は、読み出し専用のメモリ100(図1ではROM[Random Access Memory]と標記)と、不正コピー防止回路200と、を有して成る。また、不正コピー防止回路200は、コードチェック部201と、タイミング制御部202と、インクリメントチェック部203と、エラー検出部204と、初期アドレスチェック部205と、論理和演算器206と、セレクタ207と、を有して成る。
As shown in FIG. 1, the storage device of the present embodiment includes a read-only memory 100 (indicated as ROM [Random Access Memory] in FIG. 1) and an unauthorized
メモリ100は、データD(CPU[Central Processing Unit]に読み出されて実行されるプログラムなど)を不揮発的に格納する手段である。
The
コードチェック部201は、メモリ100から読み出されたデータDに含まれるコードを解析するコード解析部である。より具体的に述べると、コードチェック部201は、メモリ100から読み出されたデータDをモニタして、実行時にアドレスのジャンプ動作を伴う所定の監視対象コード(ジャンプ命令のほか、コール命令やアドレス指定付きのロード命令などを含む)を検出し、その解析結果をタイミング制御部202やエラー検出部204に伝達する。なお、メモリ100に格納されたデータDに対して暗号化処理や圧縮処理が施されている場合、コードチェック部201は、上記したコード解析機能に加えて、データDの暗号解読処理機能や伸長処理機能を具備する必要がある。
The
タイミング制御部202は、データDの読み出しを指示するリード信号RDの入力を受けて動作し、コードチェック部201で得られた解析結果に基づいて、上記した監視対象コードの実行タイミングをインクリメントチェック部203やエラー検出部204に伝達する手段である。
The
インクリメントチェック部203は、メモリ100に対するアドレス動作を解析するアドレス解析部である。より具体的に述べると、インクリメントチェック部203は、メモリ100に与えられるアドレス信号ADDをモニタして、アドレスのインクリメント動作(ここでは、アドレスを1つだけインクリメントする動作を指すものとする)が行われたか否かを検出する。
The
エラー検出部204は、コードチェック部201とインクリメントチェック部203の解析結果を参照し、コードに合致したアドレス動作が行われているか否かを判定する手段である。より具体的に述べると、エラー検出部204は、前記監視対象コードの実行時にアドレスのインクリメント動作が検出された場合にエラーフラグを立てる。すなわち、エラー検出部204は、アドレスのジャンプ動作が行われるべきタイミングでアドレスのインクリメント動作が行われたことを検出したときに、不正コピーのおそれがあると判断して、論理和演算器206への出力信号をローレベルからハイレベルに変遷する。
The
初期アドレスチェック部205は、メモリ100に与えられるアドレス信号ADDをモニタして、メモリ100の読み出し開始時における初期アドレスが予め設定された所定値と一致しているか否かを判定し、その不一致が検出された場合にエラーフラグを立てる手段である。すなわち、初期アドレスチェック部205は、所定値以外のアドレスからデータDの読み出しが開始されたことを検出したときに、不正コピーのおそれがあると判断して、論理和演算器206への出力信号をローレベルからハイレベルに変遷する。
The initial
論理和演算器206は、エラー検出部204の出力信号と初期アドレスチェック部205の出力信号の論理和演算を行い、その演算結果をセレクタ207の制御信号として出力する手段である。すなわち、セレクタ207の制御信号は、エラー検出部204の出力信号と初期アドレスチェック部205の出力信号の両方がローレベルであるときにのみローレベルとなり、その余の場合にはハイレベルとなる。
The
セレクタ207は、論理和演算器206の出力信号に基づいて、メモリ100に格納されたデータDの出力を禁止する出力制御部である。より具体的に述べると、セレクタ207は、論理和演算器206の出力信号がローレベルであるときには、メモリ100から読み出されたデータDを選択して出力する一方、論理和演算器206の出力信号がハイレベルであるときには、所定のダミーデータDDを選択して出力する。なお、ダミーデータDDは、固定値としてもよいし、乱数値としてもよい。
The
次に、上記構成から成る記憶装置のデータ読み出し時における不正コピー防止回路200のプロテクト動作について詳細な説明を行う。
Next, the protection operation of the unauthorized
メモリ100に対して正当なアクセスが行われている場合には、予め設定された所定値を初期アドレスとしてデータDの読み出しが開始され、メモリ100に対するアドレス動作についても、データDに含まれるコードに合致したものとなる。従って、エラー検出部204と初期アドレスチェック部205の出力信号は、いずれもローレベルに維持されるので、論理和演算器206の出力信号はローレベルとなり、セレクタ207は、メモリ100から読み出されたデータDを選択して出力する状態(すなわち、データDの出力許可状態)となる。
When a legitimate access to the
一方、メモリ100に格納されたデータDの不正コピーが行われている場合には、データDに含まれるコードの内容とは何ら関係なく、アドレスのインクリメント動作が行われて、メモリ100に格納されたデータDがそのアドレス順に連続して読み出されていく。すなわち、データDの不正コピー時には、先述の監視対象コードに基づいてアドレスのジャンプ動作が行われるべきタイミングであっても、これを無視してアドレスのインクリメント動作が行われるので、メモリ100に対するアドレス動作がコードに合致したものではなくなる。このような場合、エラー検出部204の出力信号は、ローレベルからハイレベルに遷移されるので、論理和演算器206の出力信号はハイレベルとなり、セレクタ207は、メモリ100から読み出されたデータDではなく、所定のダミーデータDDを選択して出力する状態(データDの出力禁止状態)となる。
On the other hand, when the data D stored in the
また、メモリ100に格納されたデータDの不正コピーが行われる場合、予め設定された所定値以外のアドレスからデータDの読み出しが開始されることもあり得る。このような場合、初期アドレスチェック部205の出力信号は、ローレベルからハイレベルに遷移されるので、論理和演算器206の出力信号はハイレベルとなり、セレクタ207は、エラー検出部204の検出結果を待つことなく、所定のダミーデータDDを選択して出力する状態となる。
In addition, when illegal copying of the data D stored in the
このように、本実施形態の記憶装置であれば、データDの不正コピーが疑われる状況下において、メモリ100に格納されたデータDの出力自体を禁止することができるので、従来構成に比べて、データDの不正コピーをより適切に防止することが可能となる。
As described above, in the storage device according to the present embodiment, the output of the data D stored in the
なお、上記構成から成る記憶装置において、コードチェック部201は、前記監視対象コードのうち、実行時の条件に応じてアドレスのジャンプ動作を伴うか否かが不明であるものを検出した場合、エラー検出部204に対して、その監視対象コードの実行時に得られるエラーフラグをマスクするように指示する構成にするとよい。
In the storage device having the above configuration, the
このような構成とすることにより、メモリ100に対して正当なアクセスが行われているにも関わらず、監視対象コードが実行時の条件に応じてアドレスのジャンプ動作を伴わなかった場合であっても、これを誤ってエラーと判断することがなくなるので、データDの不必要な出力禁止を回避することが可能となる。
By adopting such a configuration, although the legal access to the
ただし、コードチェック部201は、エラー検出部204に対するマスク指示が所定値に達した場合、以後のマスク指示を中止する構成にするとよい。このような構成とすることにより、例えば、実行時の条件に応じてアドレスのジャンプ動作を伴うか否かが不明であるコードの記述回数に上限値が定められているにも関わらず、その上限値を超えてエラー検出部204のエラーフラグが過度にマスクされることを回避することができるので、エラーの誤検出を低減しつつ、データDの不正コピーを防止することが可能となる。
However, the
次に、本発明に係る記憶装置の第2実施形態について、図2を参照しながら詳細に説明する。図2は、本発明に係る記憶装置の第2実施形態を示すブロック図である。 Next, a second embodiment of the storage device according to the present invention will be described in detail with reference to FIG. FIG. 2 is a block diagram showing a second embodiment of the storage device according to the present invention.
図2に示すように、本実施形態の記憶装置は、先出の第1実施形態とほぼ同様の構成から成り、セレクタ207に代えて、デコーダ208を有する点に特徴を有している。そこで、第1実施形態と同様の構成要素については、図1と同一の符号を付すことで重複した説明を省略し、以下では、本実施形態の特徴部分であるデコーダ208を中心に詳細な説明を行うことにする。
As shown in FIG. 2, the storage device according to the present embodiment has substantially the same configuration as that of the first embodiment, and is characterized in that a
本実施形態の記憶装置において、メモリ100には、暗号化されたデータDが格納されている。なお、データDに施される暗号化処理については、1重であっても、2重以上であっても構わない。
In the storage device of the present embodiment, the
デコーダ208は、論理和演算器206の出力信号に基づいて、メモリ100に格納されたデータDの出力を禁止する出力制御部である。より具体的に述べると、デコーダ208は、メモリ100から読み出されたデータDを出力する際に、論理和演算器206の出力信号に基づいて、所定の鍵情報を用いて正しい暗号解読処理を行うか、ダミーの鍵情報を用いて意図的にでたらめな暗号解読処理を行うかを決定する。
The
このような構成とすることにより、データDの不正コピーが疑われる状況下において、デコーダ208は、メモリ100から読み出されたデータDに対して、全くでたらめな暗号解読処理を施して出力する。従って、記憶装置から不正に出力されたデータ(ここでは第1実施形態に倣ってダミーデータDDと称する)の内容は不明なものとなるため、これを利用することは不可能となる。
With such a configuration, in a situation where an illegal copy of the data D is suspected, the
また、ダミーデータDDは、デコーダ208によるでたらめな暗号解読処理を経て作成されたものであるため、メモリ100に格納されたデータDとは全く別物となっており、データDの暗号化処理に用いた鍵情報では、もはやその暗号解読処理を行うことができなくなっている。そのため、ダミーデータDDを高速なコンピュータで解析したとしても、データDの内容を読み取ることは非常に困難となっている。特に、デコーダ208でダミーの鍵情報を複数切り替えながらでたらめな暗号解読処理を行う構成とすれば、事実上、ダミーデータDDの解析処理は不可能なものとなる。
Further, since the dummy data DD is created through a random decryption process by the
このように、本実施形態の記憶装置であれば、メモリ100に格納されたデータDの出力自体を禁止することができるので、従来構成に比べて、データDの不正コピーをより適切に防止することが可能となる。
As described above, in the storage device according to the present embodiment, the output of the data D stored in the
なお、上記では、意図的にでたらめな暗号解読処理を行う構成を例に挙げて説明を行ったが、本発明の構成はこれに限定されるものではなく、正しい暗号解読処理とは異なる暗号解読処理を行う構成であれば、いかなる構成であっても構わない。 In the above description, the configuration of intentionally performing random decryption processing has been described as an example. However, the configuration of the present invention is not limited to this, and decryption different from correct decryption processing is performed. Any configuration may be used as long as processing is performed.
次に、本発明に係る記憶装置の第3実施形態について、図3を参照しながら詳細に説明する。図3は、本発明に係る記憶装置の第3実施形態を示すブロック図である。 Next, a third embodiment of the storage device according to the present invention will be described in detail with reference to FIG. FIG. 3 is a block diagram showing a third embodiment of the storage device according to the present invention.
図3に示すように、本実施形態の記憶装置は、先出の第1実施形態とほぼ同様の構成から成り、セレクタ207に代えて、エンコーダ209を有する点に特徴を有している。そこで、第1実施形態と同様の構成要素については、図1と同一の符号を付すことで重複した説明を省略し、以下では、本実施形態の特徴部分であるエンコーダ209を中心に詳細な説明を行うことにする。
As shown in FIG. 3, the storage device according to the present embodiment has substantially the same configuration as that of the first embodiment, and is characterized in that an
エンコーダ209は、論理和演算器206の出力信号に基づいて、メモリ100に格納されたデータDの出力を禁止する出力制御部である。より具体的に述べると、エンコーダ209は、メモリ100から読み出されたデータDを出力する際に、論理和演算器206の出力信号に基づいて、所定の鍵情報を用いて正しい暗号化処理を行うか、ダミーの鍵情報を用いて意図的にでたらめな暗号化処理を行うかを決定する。
The
このような構成とすることにより、データDの不正コピーが疑われる状況下において、エンコーダ209は、メモリ100から読み出されたデータDに対して、全くでたらめな暗号化処理(言い換えればその可逆性を前提としない暗号化処理)を施して出力する。従って、記憶装置から不正に出力されたデータ(ここでは第1実施形態に倣ってダミーデータDDと称する)の内容は不明なものとなるため、これを利用することは不可能となる。特に、エンコーダ209でダミーの鍵情報を複数切り替えながらでたらめな暗号化処理を行う構成とすれば、事実上、ダミーデータDDの暗号解読処理は不可能なものとなる。
By adopting such a configuration, the
このように、本実施形態の記憶装置であれば、メモリ100に格納されたデータDの出力自体を禁止することができるので、従来構成に比べて、データDの不正コピーをより適切に防止することが可能となる。
As described above, in the storage device according to the present embodiment, the output of the data D stored in the
なお、上記では、意図的にでたらめな暗号化処理を行う構成を例に挙げて説明を行ったが、本発明の構成はこれに限定されるものではなく、正しい暗号化処理とは異なる暗号化処理を行う構成であれば、いかなる構成であっても構わない。 In the above description, the configuration of intentionally performing random encryption processing has been described as an example. However, the configuration of the present invention is not limited to this, and encryption different from the correct encryption processing is performed. Any configuration may be used as long as processing is performed.
次に、本発明に係る記憶装置の第4実施形態について、図4を参照しながら詳細に説明する。図4は、本発明に係る記憶装置の第4実施形態を示すブロック図である。 Next, a fourth embodiment of the storage device according to the present invention will be described in detail with reference to FIG. FIG. 4 is a block diagram showing a fourth embodiment of the storage device according to the present invention.
図4に示すように、本実施形態の記憶装置は、先出の第1実施形態とほぼ同様の構成から成り、セレクタ207に代えてアドレス制御部210を有する点に特徴を有している。そこで、第1実施形態と同様の構成要素については、図1と同一の符号を付すことで重複した説明を省略し、以下では、本実施形態の特徴部分であるアドレス制御部210を中心に詳細な説明を行うことにする。
As shown in FIG. 4, the storage device according to the present embodiment has substantially the same configuration as that of the first embodiment described above, and is characterized by having an
アドレス制御部210は、論理和演算器206の出力信号に基づいて、メモリ100に格納されたデータDの出力を禁止する出力制御部である。より具体的に述べると、アドレス制御部210は、論理和演算器206の出力信号がローレベルであるときには、メモリ100に対するアドレス動作を許可する一方、論理和演算器206の出力信号がハイレベルであるときには、メモリ100に対するアドレス動作を禁止する。
The
このような構成とすることにより、データDの不正コピーが疑われる状況下において、アドレス制御部210は、メモリ100に対するアドレス動作を禁止して、メモリ100に格納されたデータDの読み出し自体を禁止することができるので、従来構成に比べて、データDの不正コピーをより適切に防止することが可能となる。
By adopting such a configuration, the
次に、インクリメントチェック部203、及び、エラー検出部204の構成について、図5を参照しながら詳細に説明する。図5は、インクリメントチェック部203、及び、エラー検出部204の一構成例を示すブロック図である。なお、以下で説明する回路構成は、一のデータDにコードとアドレスの両方が含まれていること(いわゆるCPUダイレクトコマンドがデータDとして格納されていること)を前提とするものである。
Next, the configuration of the
図5に示したように、本構成例のインクリメントチェック部203は、ロード信号生成部1と、インクリメントカウンタ2と、アドレス比較部3と、を有して成り、エラー検出部204は、Dフリップフロップ4と、排他的論理和演算器5と、Dフリップフロップ5と、を有して成る。
As shown in FIG. 5, the
ロード信号生成部1は、メモリ100に供給されるアドレス信号ADDをインクリメントカウンタ2に読み込ませるためのロード信号LDを生成する手段であり、ワンショット生成部11と論理和演算器12を有して成る。なお、ワンショット生成部11は、メモリ100の読み出し開始時に、リード信号RD(データDの読出タイミング制御信号)からワンショット信号を生成する手段である。また、論理和演算器12は、ワンショット生成部11で生成されるワンショット信号とアドレス比較部3で生成される比較結果信号との論理和演算を行い、その演算結果をロード信号LDとして出力する手段である。
The load signal generation unit 1 is a unit that generates a load signal LD for causing the
インクリメントカウンタ2は、ロード信号生成部1から入力されるロード信号LDをトリガとして、メモリ100に供給されるアドレス信号ADDを読み込み、そのアドレス値を自身のカウント値として設定した上で、それ以後、リード信号RDのパルスが到来する毎に、上記のカウント値を1つずつインクリメントして出力する手段である。
The
アドレス比較部3は、メモリ100に供給されるアドレス信号ADDと、インクリメントカウンタ2のカウンタ値と、を比較し、その一致/不一致を示す比較結果信号を出力する手段である。なお、比較結果信号は、例えば、アドレス信号ADDとインクリメントカウンタ2のカウンタ値が互いに一致していればローレベルとなり、一致していなければハイレベルとなる2値信号である。
The
Dフリップフロップ4は、リード信号RDをトリガとして、コードチェック部201の出力信号をラッチ出力する手段である。なお、コードチェック部201の出力信号は、例えば、データDに先述の監視対象コードが含まれていればハイレベルとなり、含まれていなければローレベルとなる2値信号である。
The D flip-flop 4 is means for latching and outputting the output signal of the
排他的論理和演算器5は、アドレス比較部3の出力信号とDフリップフロップ4の出力信号との排他的論理和演算を行い、その演算結果を出力する手段である。すなわち、排他的論理和演算器5の出力信号は、アドレス比較部3の出力信号とDフリップフロップ4の出力信号の論理レベルが互いに一致していればローレベルとなり、一致していなければハイレベルとなる。
The exclusive OR
Dフリップフロップ6は、リード信号RDをトリガとして、排他的論理和演算器5の出力信号をラッチし、これをエラーフラグERRとして論理和演算器206(図5では不図示)に出力する手段である。
The D flip-
なお、図5では、タイミング制御部202が独立の回路ブロックとして明示されていないが、先出のワンショット生成部11、インクリメントカウンタ2、及び、Dフリップフロップ4、6の動作は、いずれもリード信号RDに基づいて同期されている。すなわち、図5に例示した構成において、タイミング制御部202は、インクリメントチェック部203とエラー検出部204の同期機能を実現する手段として、これらの回路ブロック内に包含されていると言える。
In FIG. 5, the
次に、上記構成から成るインクリメントチェック部203及びエラー検出部204の動作について、まずはメモリ100に対して正当なアクセスが行われている場合を例に挙げながら、詳細に説明する。
Next, operations of the
メモリ100の読み出し開始時に、ワンショット信号生成部11のワンショット信号がハイレベルに立ち上げられると、論理和演算器12から出力されるロード信号LDもハイレベルとなる。インクリメントカウンタ2は、このロード信号LDをトリガとして、メモリ100に供給されるアドレス信号ADD(初期アドレス)を読み込み、そのアドレス値を自身のカウント値として設定した上で、それ以後、リード信号RDのパルスが到来する毎に、上記のカウント値を1つずつインクリメントして出力する。
When the one-shot signal of the one-
従って、メモリ100から読み出されるデータDに監視対象コードが含まれていなければ、メモリ100に供給されるアドレス信号ADDは、ホスト(CPU)によって1つずつインクリメントされていき、また、インクリメントカウンタ2のカウント値は、リード信号RDのパルスが到来する毎に、1つずつインクリメントされていくため、両値は互いに一致する形となり、アドレス比較部3で生成される比較結果信号はローレベルとなる。また、このとき、コードチェック部201では、データDに監視対象コードが含まれていないという判断の下、その出力信号がローレベルとされる。その結果、排他的論理和演算器5に入力される論理信号は、いずれも同一の論理レベル(ローレベル)となるため、その出力信号(延いてはエラーフラグERR)はローレベルとなる。
Therefore, if the monitoring target code is not included in the data D read from the
また、メモリ100から読み出されるデータDに監視対象コードが含まれていた場合、メモリ100に供給されるアドレス信号ADDは、ホスト(CPU)によって所定のアドレス値にジャンプされるが、インクリメントカウンタ2のカウント値については、先と同様のインクリメント動作が継続されるため、両値は互いに不一致となり、アドレス比較部3で生成される比較結果信号はハイレベルとなる。また、このとき、コードチェック部201では、データDに監視対象コードが含まれているという判断の下、その出力信号がハイレベルとされる。従って、排他的論理和演算器5に入力される論理信号はいずれも同一の論理レベル(ハイレベル)となるため、その出力信号(延いてはエラーフラグERR)はローレベルとなる。
When the monitoring target code is included in the data D read from the
なお、比較結果信号がハイレベルに立ち上げられると、論理和演算器12から出力されるロード信号LDはハイレベルとなる。インクリメントカウンタ2は、このロード信号LDをトリガとして、メモリ100に供給されるアドレス信号ADD(ジャンプ後のアドレス)を読み込み、そのアドレス値を自身のカウント値として設定した上で、それ以後、リード信号RDのパルスが到来する毎に、上記のカウント値を1つずつインクリメントして出力する。従って、アドレスがジャンプされた後には、メモリ100に供給されるアドレス信号ADDとインクリメントカウンタ2のカウント値が改めて一致されるので、以後のアドレス比較動作に支障が生じることはない。
Note that when the comparison result signal rises to a high level, the load signal LD output from the
このように、メモリ100に対して正当なアクセスが行われている場合には、メモリ100から読み出されるデータDのコードに合致したアドレス動作が行われ、コードチェック部201の出力信号とインクリメントチェック部203の出力信号が互いに同一の論理レベルとなるため、エラーフラグERRはローレベルに維持される。
As described above, when a legitimate access to the
次に、メモリ100に格納されたデータDの不正コピーが疑われる場合について詳細に説明する。先にも述べたように、メモリ100に格納されたデータDの不正コピーが行われている場合には、データDに含まれるコードの内容とは何ら関係なく、アドレスのインクリメント動作が行われて、メモリ100に格納されたデータDがそのアドレス順に連続して読み出されていく。すなわち、データDの不正コピー時には、先述の監視対象コードに基づいてアドレスのジャンプ動作が行われるべきタイミングであっても、これを無視してアドレスのインクリメント動作が行われる。その結果、メモリ100に供給されるアドレス信号ADDとインクリメントカウンタ2のカウント値は、互いに一致したままとなるので、アドレス比較部3で生成される比較結果信号はローレベルとなる。一方、コードチェック部201では、データDに監視対象コードが含まれているという判断の下、その出力信号がハイレベルとされる。従って、排他的論理和演算器5に入力される論理信号は、互いに異なる論理レベルとなるため、その出力信号(延いてはエラーフラグERR)はハイレベルとなる。
Next, a case where an illegal copy of the data D stored in the
このように、メモリ100に格納されたデータDの不正コピーが疑われる場合には、メモリ100から読み出されるデータDのコードに合致したアドレス動作が行われず、コードチェック部201の出力信号とインクリメントチェック部203の出力信号が互いに異なる論理レベルとなるため、エラーフラグERRはハイレベルに遷移される。
As described above, when an illegal copy of the data D stored in the
次に、ワンショット生成部11の構成について、図6を参照しながら詳細に説明する。図6は、ワンショット生成部11の一構成例を示すブロック図である。
Next, the configuration of the one-
図6に示すように、本構成例のワンショット生成部11は、インバータ111と、Dフリップフロップ112及びDフリップフロップ113と、論理積演算器114と、を有して成る。インバータ111の入力端は、リード信号RDの印加端に接続されている。Dフリップフロップ112、113のクロック入力端は、いずれもインバータ111の出力端に接続されている。Dフリップフロップ112のデータ入力端(D)は、ハイレベル信号の印加端(例えば、電源ライン)に接続されている。Dフリップフロップ113のデータ入力端(D)は、Dフリップフロップ112の出力端(Q)に接続されている。Dフリップフロップ112、113のリセット入力端は、いずれもリセット信号RSTの印加端に接続されている。論理積演算器114の一入力端は、Dフリップフロップ112の出力端(Q)に接続されている。論理積演算器114の他入力端は、Dフリップフロップ113の反転出力端(Qバー)に接続されている。なお、論理積演算器114の出力端は、ワンショット生成部11の出力端(ワンショット信号Sdの出力端)に相当する。
As shown in FIG. 6, the one-
次に、上記構成から成るワンショット生成部11の動作について、図7を参照しながら詳細に説明する。図7は、ワンショット生成部11の動作を説明するためのタイミングチャートであり、上から順に、リセット信号RST、リード信号RD、及び、ワンショット生成部11各部の論理信号(インバータ111の反転リード信号Sa、Dフリップフロップ112の出力信号Sb、Dフリップフロップ113の反転出力信号Sc、及び、論理積演算器114のワンショット信号Sd)が描写されている。なお、ここで示す論理信号はあくまで一例であり、その論理レベルは反転されていても構わない。
Next, the operation of the one-
リセット信号RSTがハイレベルからローレベルに遷移され、記憶装置のリセット状態が解除されたとき、Dフリップフロップ112の出力信号Sbはローレベルとされ、Dフリップフロップ113の反転出力信号Scはハイレベルとされる。その後、リード信号RDに最初のパルスP1が立ち下げられると、Dフリップフロップ112は、反転リード信号Saの立上がりエッジをトリガとして、データ入力端(D)に常時印加されているハイレベル信号を取り込み、出力信号Sbをハイレベルにセットする。また、Dフリップフロップ113は、反転リード信号Saの立上がりエッジをトリガとして、その時点でデータ入力端(D)に印加されているDフリップフロップ112の出力信号Sb(ローレベル)を取り込み、反転出力信号Scをハイレベルにセットする。従って、出力信号Sbと反転出力信号Scの論理積演算によって得られるワンショット信号Sdはハイレベルとなる。
When the reset signal RST transitions from the high level to the low level and the reset state of the memory device is released, the output signal Sb of the D flip-
ワンショット信号Sdがハイレベルとされた後に、リード信号RDに2つめのパルスP2が立ち下げられると、Dフリップフロップ112は、反転リード信号Saの立上がりエッジをトリガとして、データ入力端(D)に常時印加されているハイレベル信号を取り込み、出力信号Sbをハイレベルにセットする。また、Dフリップフロップ113は、反転リード信号Saの立上がりエッジをトリガとして、その時点でデータ入力端(D)に印加されているDフリップフロップ112の出力信号Sb(ハイレベル)を取り込み、反転出力信号Scをローレベルにセットする。従って、出力信号Sbと反転出力信号Scの論理積演算によって得られるワンショット信号Sdはローレベルとなる。
When the second pulse P2 falls to the read signal RD after the one-shot signal Sd is set to the high level, the D flip-
以後、リード信号RDのパルスが順次立ち下げられた場合についても、上記と同様の信号処理が行われて、ワンショット信号Sdはローレベルに維持される。すなわち、ワンショット生成部11では、記憶装置のリセット状態が解除された後、リード信号RDの最初のパルスP1が到来してから2つめのパルスP2が到来するまでの間、所定の論理レベル(図7の例ではハイレベル)となるワンショット信号Sdが生成される形となる。
Thereafter, even when the pulse of the read signal RD is sequentially lowered, the signal processing similar to the above is performed, and the one-shot signal Sd is maintained at the low level. That is, in the one-
また、先にも述べたように、ワンショット信号生成部11のワンショット信号がハイレベルに立ち上げられると、論理和演算器12から出力されるロード信号LDもハイレベルとなり、インクリメントカウンタ2では、このロード信号LDをトリガとして、メモリ100に供給されるアドレス信号ADD(初期アドレス)が読み込まれる。
As described above, when the one-shot signal of the one-shot
このような構成とすることにより、極めて容易かつ簡易な回路構成で、ワンショット生成部11(延いてはインクリメントチェック部203)を実現することが可能となる。 With such a configuration, the one-shot generation unit 11 (and hence the increment check unit 203) can be realized with a very simple and simple circuit configuration.
なお、本発明の構成は、上記実施形態のほか、発明の主旨を逸脱しない範囲で種々の変更を加えることが可能である。 The configuration of the present invention can be variously modified in addition to the above-described embodiment without departing from the gist of the invention.
例えば、上記実施形態では、コードに合致したアドレス動作が行われているか否かを判定する手法として、アドレスのジャンプ動作を伴うコードの実行時に、アドレスのインクリメント動作が行われたか否かを検出する構成を例に挙げて説明を行ったが、本発明の構成はこれに限定されるものではなく、その余の手法を用いても構わない。 For example, in the above-described embodiment, as a method for determining whether or not an address operation that matches a code is performed, it is detected whether or not an address increment operation has been performed when executing a code that involves an address jump operation. Although the configuration has been described as an example, the configuration of the present invention is not limited to this, and other methods may be used.
また、上記実施形態では、データDの格納手段として、読み出し専用のメモリ100を用いた構成を例示して説明を行ったが、本発明の構成はこれに限定されるものではなく、データDの読み書きが可能なフラッシュメモリやEEPROM[Electrically Erasable and Programmable Read Only Memory]などを用いても構わない。
In the above embodiment, the configuration using the read-
本発明は、ゲームカートリッジ、ICカード、セキュリティ機器などに用いられる記憶装置の不正コピーを防止する技術として利用することが可能である。 The present invention can be used as a technique for preventing unauthorized copying of storage devices used in game cartridges, IC cards, security devices, and the like.
100 読み出し専用メモリ(ROM)
200 不正コピー防止回路
201 コードチェック部(コード解析部)
202 タイミング制御部
203 インクリメントチェック部(アドレス解析部)
204 エラー検出部
205 初期アドレスチェック部
206 論理和演算器
207 セレクタ
208 デコーダ
209 エンコーダ
210 アドレス制御部
1 ロード信号生成部
11 ワンショット生成部
111 インバータ
112、113 Dフリップフロップ
114 論理積演算器
12 論理和演算器
2 インクリメントカウンタ
3 アドレス比較部
4 Dフリップフロップ
5 排他的論理和演算器
6 Dフリップフロップ
100 Read only memory (ROM)
200 Unauthorized
202
204
Claims (3)
前記メモリから読み出されたデータにアドレスのジャンプ動作を伴う所定の監視対象コードが含まれているか否かを検出するコード解析部と;
アドレスのインクリメント動作が行われているか否かを検出するアドレス解析部と;
前記コード解析部と前記アドレス解析部の解析結果を参照して、前記監視対象コードの実行時にアドレスのインクリメント動作が行われたか否かを検出するエラー検出部と;
前記エラー検出部の判定結果に基づいて、前記メモリに格納されたデータの出力を禁止する出力制御部と;
を有して成る記憶装置であって、
前記アドレス解析部は、
ロード信号を生成するロード信号生成部と;
前記ロード信号をトリガとして前記メモリに供給されるアドレス信号を読み込み、そのアドレス値を自身のカウント値として設定した上で、それ以後、リード信号に基づいて、前記カウント値を1つずつインクリメントして出力するカウンタと;
前記メモリに供給されるアドレス信号と前記カウンタのカウンタ値とを比較し、その一致/不一致を示す比較結果信号を出力するアドレス比較部と;
を有して成ることを特徴とする記憶装置。 Memory for storing data;
A code analysis unit for detecting whether or not the data read from the memory includes a predetermined monitoring target code accompanied by an address jump operation;
An address analysis unit for detecting whether or not an address increment operation is performed;
An error detection unit that refers to the analysis results of the code analysis unit and the address analysis unit and detects whether or not an address increment operation has been performed when the monitored code is executed;
An output control unit that prohibits output of data stored in the memory based on a determination result of the error detection unit;
A storage device comprising:
The address analysis unit
A load signal generator for generating a load signal;
The address signal supplied to the memory is read using the load signal as a trigger, the address value is set as its own count value, and thereafter, the count value is incremented by one based on the read signal. A counter to output;
An address comparison unit that compares an address signal supplied to the memory with a counter value of the counter and outputs a comparison result signal indicating the match / mismatch;
A storage device comprising:
前記メモリの読み出し開始時にワンショット信号を生成するワンショット生成部と; 前記ワンショット信号と前記比較結果信号から前記ロード信号を生成する論理回路と;
を有して成ることを特徴とする請求項1に記載の記憶装置。 The load signal generator is
A one-shot generation unit that generates a one-shot signal at the start of reading of the memory; and a logic circuit that generates the load signal from the one-shot signal and the comparison result signal;
The storage device according to claim 1, further comprising:
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2008191612A JP5140512B2 (en) | 2008-07-25 | 2008-07-25 | Storage device |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2008191612A JP5140512B2 (en) | 2008-07-25 | 2008-07-25 | Storage device |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2010033122A true JP2010033122A (en) | 2010-02-12 |
| JP5140512B2 JP5140512B2 (en) | 2013-02-06 |
Family
ID=41737563
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2008191612A Expired - Fee Related JP5140512B2 (en) | 2008-07-25 | 2008-07-25 | Storage device |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP5140512B2 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111630595A (en) * | 2018-01-23 | 2020-09-04 | 微芯片技术股份有限公司 | Memory device, memory address decoder, system and related methods for memory attack detection |
-
2008
- 2008-07-25 JP JP2008191612A patent/JP5140512B2/en not_active Expired - Fee Related
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111630595A (en) * | 2018-01-23 | 2020-09-04 | 微芯片技术股份有限公司 | Memory device, memory address decoder, system and related methods for memory attack detection |
Also Published As
| Publication number | Publication date |
|---|---|
| JP5140512B2 (en) | 2013-02-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9117070B2 (en) | Method for adapting and executing a computer program and computer architecture therefore | |
| US20240427944A1 (en) | Undefined Lifecycle State Identifier for Managing Security of an Integrated Circuit Device | |
| US20210004456A1 (en) | Method for executing a binary code of a secure function with a microprocessor | |
| US11704128B2 (en) | Method for executing a machine code formed from blocks having instructions to be protected, each instruction associated with a construction instruction to modify a signature of the block | |
| EP4248340B1 (en) | Code flow protection with error propagation | |
| JP4537003B2 (en) | Method for protecting a computer from unauthorized manipulation of register contents and computer for implementing this method | |
| KR20060135467A (en) | Systems and Methods Using Protected Nonvolatile Memory | |
| US7954153B2 (en) | Secured coprocessor comprising an event detection circuit | |
| US20090125728A1 (en) | Security method of system by encoding instructions | |
| JP5140512B2 (en) | Storage device | |
| JP2008287449A (en) | Data processor | |
| JP2010033121A (en) | Storage device | |
| JP2009169489A (en) | Encryption method, decryption method, encryption device, and decryption device | |
| JP5070136B2 (en) | Storage device | |
| CN114036512B (en) | Method, device, equipment and storage medium for preventing chip from being cracked | |
| JP2010033123A (en) | Storage device | |
| US7934265B2 (en) | Secured coprocessor comprising means for preventing access to a unit of the coprocessor | |
| JP5070137B2 (en) | Storage device and data writing device | |
| CN118260760A (en) | Method for resisting fault injection attack in safety starting | |
| JP2011150495A (en) | Storage device | |
| JP2007066021A (en) | External data falsification detecting device and method | |
| CN115437622B (en) | Method and device for automatically generating return-oriented code for processing side effects of code snippets | |
| US10242183B2 (en) | Method of executing a program by a processor and electronic entity comprising such a processor | |
| CN120011973A (en) | Method, device, electronic device and storage medium for determining fuse status and level | |
| CN117762483A (en) | Processor and jump instruction execution method thereof |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110725 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20121017 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20121023 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20121119 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20151122 Year of fee payment: 3 |
|
| LAPS | Cancellation because of no payment of annual fees |