JP4683442B2 - Processing apparatus and integrated circuit - Google Patents

Processing apparatus and integrated circuit Download PDF

Info

Publication number
JP4683442B2
JP4683442B2 JP2000212815A JP2000212815A JP4683442B2 JP 4683442 B2 JP4683442 B2 JP 4683442B2 JP 2000212815 A JP2000212815 A JP 2000212815A JP 2000212815 A JP2000212815 A JP 2000212815A JP 4683442 B2 JP4683442 B2 JP 4683442B2
Authority
JP
Japan
Prior art keywords
encryption
data
address
pattern
circuit
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.)
Expired - Fee Related
Application number
JP2000212815A
Other languages
Japanese (ja)
Other versions
JP2002032268A (en
Inventor
雄介 川▲崎▼
博 櫻井
繁 橋本
浩憲 山本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Frontech Ltd
Original Assignee
Fujitsu Frontech Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Frontech Ltd filed Critical Fujitsu Frontech Ltd
Priority to JP2000212815A priority Critical patent/JP4683442B2/en
Priority to DE2000613424 priority patent/DE60013424T2/en
Priority to US09/739,839 priority patent/US7657758B2/en
Priority to EP00311444A priority patent/EP1172731B1/en
Publication of JP2002032268A publication Critical patent/JP2002032268A/en
Application granted granted Critical
Publication of JP4683442B2 publication Critical patent/JP4683442B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography

Description

【0001】
【発明の属する技術分野】
本発明は、CPUおよび内部デバイスを有する内部回路と、その内部回路に対し外付けされた外部デバイスを含む外部回路とを備えた処理装置、および、CPUおよび内部デバイスが搭載されるとともにに外部デバイスの外付けが可能な集積回路に関する。
【0002】
【従来の技術】
近年のLSI技術の発達により、プログラムを実行するCPUや、そのCPUで実行されるプログラムが格納されるメモリや、さらに他の様々なデバイスを1つのチップ上に集積することができるようになり、装置の小型化、低コスト化等に大きく貢献している。このようなLSIを製造するにあたり、ユーザによらず同一のプログラムを実行するシステムであって、かつ完成したあと途中でプログラムを変更する必要がないシステムについてはLSIチップ上にプログラムを記憶したメモリを搭載しておけばよいが、ユーザに応じて異なるプログラムを実行させたり、あるいは、使用している途中でプログラムを変更する必要がある場合、上記のような構成のLSIにさらに外部メモリを外付けすることができるように構成しておき、使用している途中で変更する可能性のあるプログラム、あるいはユーザに応じて異なるプログラムはその外付けの外部メモリに記憶するようにしておくことが望ましい。
【0003】
【発明が解決しようとする課題】
ところが、そのような外部メモリを外付けることができるシステムの場合、その外部メモリの内容が不正に書き換えられたり、あるいはその外部メモリが、その外部メモリと同一仕様の、不正なプログラムを記憶したメモリに差し替えられてしまい、内部のメモリに記憶されている重要なプログラムやデータが不正にアクセスされ、その重要なプログラムやデータの内容が不正に解読されてしまう危険性がある。以下に、一例を挙げる。
【0004】
近年、急速に現金価値や現金相当のポイント価値をデータとしてもつICカードや磁気カードが普及しつつあり、それに伴って、カードの偽造や変造を防止するための対策としてデータのセキュリティ確保が急務となってきている。これに対処するために、過去においても装置の逆解析(リバースエンジニアリング)を防ぐ方法が試みられてきたが、それらの試みにもかかわらず裏ROM等が作成され、装置が開発者の不本意な用途に悪用されることが絶えないのが現状である。
【0005】
本発明は、上記事情に鑑み、不正なアクセスや逆解析の防止が図られた処理装置および集積回路を提供することを目的とする。
【0006】
【課題を解決するための手段】
上記目的を達成する本発明の処理装置のうちの第1の処理装置は、
プログラムを実行するCPUと、各所定の作用を成す1つ以上の内部デバイスと、CPUと内部デバイスとを結ぶとともに外部にまで延びアドレスおよびデータを伝達するバスラインとを含む内部回路、および
上記バスラインの、外部に延びた部分に外付けされた、各所定の作用を成す1つ以上の外部デバイスを含む外部回路を備え、
上記内部回路が、上記バスラインの、外部への出入口に介在し、そのバスライン上のアドレスおよびデータを、上記の1つ以上の外部デバイス全体に割り当てられたアドレス空間を複数に分けた各領域に応じた各暗号化パターンで暗号化する暗号化部を含むものであることを特徴とする。
【0007】
ここで、上記暗号化部で採用される暗号化パターンには、アドレスおよびデータの双方とも暗号化しないことも1つの暗号化パターンとして含まれる。
【0008】
このように、アドレス空間を複数に分割し、その分割した各領域ごとに異なったパターンで暗号化することにより、暗号化の解析が困難となる。
【0009】
上記本発明の第1の処理装置において、上記外部回路が複数の外部デバイスを含むものであり、
上記暗号化回路は、上記複数の外部デバイスそれぞれに応じた暗号化パターンで暗号化するものであることが好ましい。
【0010】
こうすることにより、例えば外部デバイスの1つとしてフラッシュROMを備えた場合は、そのフラッシュROMに関してはアドレスとデータとの双方を暗号化し、外部デバイスの1つとして連続アドレスについて高速読出しが可能なRAMについては性能を落とさないようにデータのみ暗号化するか、あるいはアドレスについても暗号化するものの、連続読出しの行なわれる、アドレスの下位ビット側は暗号化しないようにし、外部デバイスの1つとしてI/Oデバイスを備えた場合は、アドレス、データとも暗号化しないなど、その外部デバイスの性質に合わせた暗号化を行なうことができる。
【0011】
また、上記本発明の第1の処理装置において、上記暗号化部は、外部回路がアクセスされていないタイミングで、バスラインの、外部に延びた部分に、ダミーのアドレスおよびデータを出力するものであることが好ましい。
【0012】
こうすることにより不正な解析が一層難しくなる。
【0013】
また、上記本発明の第1の処理装置において、上記CPUは、クロックの供給を受け供給されたクロックに同期してプログラムを実行するものであるとともに、上記暗号化部も、クロックの供給を受け供給されたクロックに同期して暗号化を行なうものであって、上記暗号化部に、CPUに供給されるクロックよりも高速なクロックを供給するクロック供給部を備えることがが好ましい。
【0014】
こうすると、複雑な暗号化が可能になる。
【0015】
さらに、上記本発明の第1の処理装置において、外部回路の構成を認識し、その構成に応じて、暗号化部における暗号化パターンを決定する暗号化パターン決定手段を有することが好ましい。
【0016】
この暗号化パターン決定手段を持つことにより、外部回路の構成が異なるごとにオペレータがいちいち暗号化パターンを決定するといった作業が不要となる。
【0017】
さらに、上記本発明の第1の処理装置において、上記暗号化部は、上記バスライン上のアドレスおよびデータを、上記の1つ以上の外部デバイス全体に割り当てられたアドレス空間を複数に分けた各領域に応じるとともにCPUで実行されるアプリケーションプログラムにも応じた暗号化パターンで暗号化するものであることが好ましい。
【0018】
これにより、暗号化のパターンが一層複雑となり、不正な解析が一層困難となる。
【0019】
さらに、上記本発明の第1の処理装置において、上記バスラインの、外部に延びた部分に接続され、バスライン上の暗号化されたアドレスおよびデータを暗号化前のアドレスおよびデータに戻す逆暗号化部を備えることが好ましい。
【0020】
この逆暗号化部を備えないままデバッグを行なおうとするとアドレスやデータが暗号化されているためデバッグが極めて困難になる。そこで、この逆暗号化部を備えることにより、装置の開発時に容易にデバッグを行なうことができる。
【0021】
この逆暗号化部は、デバッグが済んだ後は不要であり、処理装置から取り外され、あるいは動作不能な状態に固定あるいは破壊されることが望ましい。
【0022】
さらに、上記本発明の第1の処理装置において、上記の1つ以上の外部デバイス全体に割り当てられたアドレス空間を複数に分けた複数の領域のうちのいずれかの領域について、所定の初期化動作の都度暗号化パターンを変更する暗号化パターン変更手段を有することが好ましい。
【0023】
所定の初期化動作、例えば電源投入時やリセット時等に暗号化パターンを再設定することにより、不正な解析が一層困難になり、セキュリティが一層向上する。
【0024】
さらに、上記本発明の第1の処理装置において、上記暗号化部は、上記1つ以上の外部デバイス全体に割り当てられたアドレス空間を複数に分けた複数の領域のうちのいずれかの領域について、暗号化後のデータがアドレスに応じて変化する暗号化パターンを採用して、データを暗号化するものであることが好ましい。
【0025】
このように、データを暗号化するときの暗号化関数としてアドレスの関数を採用することにより、複雑な暗号化が可能となり、不正な解析が一層困難となり、データのセキュリティが一層向上する。
【0026】
また本発明の処理装置のうちの第2の処理装置は、
プログラムを実行するCPUと、各所定の作用を成す1つ以上の内部デバイスと、CPUと内部デバイスとを結ぶとともに外部にまで延びアドレスおよびデータを伝達するバスラインとを含む内部回路、および
上記バスラインの、外部に延びた部分に外付けされた、情報を記憶するメモリを含む外部回路を備え、
上記内部回路が、上記メモリに記憶された情報のうちの少なくとも一部の情報を、所定の初期化動作で暗号化して書き換える情報書換手段を有するものであることを特徴とする。
【0027】
ここで上記所定の初期化動作とは、典型的には、最初の電源投入時の初期化動作である。
【0028】
このように、例えば最初の電源投入時の初期化動作等、所定の初期化動作で、メモリの内容を暗号化して書き換えることにより、データのセキュリティが一層向上する。
【0029】
この場合に、上記情報書換手段は、乱数を発生させ、発生させた乱数を用いた暗号化パターンを採用して暗号化を行なうものであることが好ましい。
【0030】
この場合、処理装置のメーカ側の人間を含め、誰もが知らない暗号化パターンで情報が暗号化されることになり、データのセキュリティがさらに向上する。
【0031】
ここで、上記第2の処理装置において、上記メモリに記憶された情報のうちの少なくとも一部の情報が、上記の所定の初期化動作を実行する以前において既に暗号化されたものであって、
上記情報書換手段は、その少なくとも一部の情報を一旦暗号化前の情報に戻し異なる暗号化パターンを採用して再度暗号化を行なって書き換えるものであることも好ましい形態である。
【0032】
この場合に、上記の少なくとも一部の情報を暗号化前の情報に戻すための復号化情報が上記メモリに記憶されてなるものであって、
上記情報書換手段は、その少なくとも一部の情報を、その復号化情報を用いて一旦暗号化前の情報に戻すものであってもよい。
【0033】
このように、工場出荷時には別の暗号化パターンで暗号化しておくことによりセキュリティがさらに向上する。
【0034】
また、上記のように、工場出荷時に別の暗号化パターンで暗号化しておくにあたっては、上記の少なくとも一部の情報が公開鍵により暗号化されたものであるとともに、この処理装置は秘密鍵が埋め込まれてなるものであって、
上記情報書換手段は、その少なくとも一部の情報をその秘密鍵を用いて一旦暗号化前の情報に戻すものであってもよく、あるいは上記の少なくとも一部の情報を暗号化前の情報に戻すための、暗号化された形式の復号化情報を外部より取得する情報取得部を備え、
上記情報書換手段は、情報取得部で取得された、暗号化された形式の復号化情報を復号化して平文の復号化情報を取り出しこの平文の復号化情報を用いて上記の少なくとも一部の情報を一旦暗号化前の情報に戻すものであってもよい。
【0035】
暗号化パターンとして公開鍵を用い、その公開鍵で暗号化された情報をメモリに書き込んでおき、内部に埋め込まれた秘密鍵で暗号化前の情報に戻すようにすると、例えば同一仕様の処理装置を複数の会社等で使用した場合に、各会社に公開鍵のみを渡すことにより、会社間のセキュリティが確保できる。
【0036】
また、復号化情報を外部より取得できるように構成すると、例えば通信等により鍵管理センター等から復号化情報を入手することが可能となり、柔軟なシステム構成が可能となる。
【0037】
さらに、上記第2の処理装置において、上記内部回路が上記暗号化部で採用される暗号化パターンを保持してなるものであって、
タンパ検出を行なうタンパ検出部を備えるとともに、
上記タンパ検出部によるタンパ検出を受けて上記内部回路内に保持されていた暗号化パターンを破壊する情報破壊手段を備えることが好ましい。
【0038】
この処理装置を不正にこじ開けたり分解しようとしたときにタンパ検出がなされ、そのタンパ検出を受けて暗号化パターンを破壊することにより、不正な解読がますます困難になり、セキュリティの一層の向上に寄与することになる。
【0039】
また、上記目的を達成する本発明の集積回路のうちの第1の集積回路は、プログラムを実行するCPUと、各所定の作用を成す1つ以上の内部デバイスと、CPUと内部デバイスとを結ぶとともに外部にまで延びて、外部に延びた部分に、各所定の作用を成す1つ以上の外部デバイスが外付けされる、アドレスおよびデータを伝達するバスラインと、そのバスラインの、外部への出入口に介在し、そのバスライン上のアドレスおよびデータを、そのバスラインの、外部に延びた部分に外付けされた1つ以上の外部デバイス全体に割り当てられた空間を複数に分けた各領域に応じた各暗号化パターンで暗号化する暗号化部とが搭載されてなることを特徴とする。
【0040】
本発明の第1の集積回路は、上記の構成を有するものであり、本発明の第1の処理装置と同一の作用効果を奏するとともに、集積回路(LSI)であることからその回路構成等の解析が困難であり、この点からもセキュリティの向上に寄与している。
【0041】
ここで、上記第1の集積回路において、上記の本発明の第1の処理装置と同様、上記暗号化部で採用される暗号化パターンには、典型的には、アドレスおよびデータの双方とも暗号化しないことも1つの暗号化パターンとして含まれており、また、上記バスラインの、外部に延びた部分に、複数の外部デバイスが外付けされた場合に、暗号化部は、それら複数の外部デバイスそれぞれに応じた暗号化パターンで暗号化するものであることが好ましく、
また、上記暗号化部は、外部回路がアクセスされていないタイミングで、上記バスラインの、外部に延びた部分に、ダミーのアドレスおよびデータを出力するものであることも好ましい形態であり、
さらに、上記1つ以上の外部デバイス全体に割り当てられたアドレス空間を複数に分けた複数の領域のうちのいずれかの領域について、所定の初期化動作の都度暗号化パターンを変更する暗号化パターン変更手段を有することも好ましい形態であり、
さらに、上記暗号化部は、上記1つ以上の外部デバイス全体に割り当てられたアドレス空間を複数に分けた複数の領域のうちのいずれかの領域について、暗号化後のデータがアドレスに応じて変化する暗号化パターンを採用して、データを暗号化するものであることも好ましい形態である。
【0042】
また、本発明の集積回路のうちの第2の集積回路は、プログラムを実行するCPUと、各所定の作用を成す1つ以上の内部デバイスと、CPUと内部デバイスとを結ぶとともに外部にまで延びて、外部に延びた部分に、情報を記憶するメモリが外付けされる、アドレスおよびデータを伝達するバスラインとを備えるとともに、上記メモリに記憶された情報のうちの少なくとも一部の情報を、所定の初期化動作で暗号化して書き換える情報書換手段を有するものであることを特徴とする。
【0043】
本発明の第2の集積回路は、上記の構成を有するものであり、本発明の第1の処理装置と本発明の第1の集積回路との関係と同様、本発明の第2の処理装置と同一の作用効果を奏するものであり、さらに集積回路(LSI)であることからその回路構成等の解析が困難であり、この点からもセキュリティの向上が図られている。
【0044】
ここで、上記第2の集積回路において、上記本発明の第2の処理装置と同様、上記所定の初期化動作は、典型的には、最初の電源投入時の初期化動作であり、また、上記情報書換手段は、乱数を発生させ、発生させた乱数を用いた暗号化パターンを採用して暗号化を行なうものであることが好ましく、
さらに、上記メモリに記憶された情報のうちの少なくとも一部の情報が、上記の所定の初期化動作を実行する以前において既に暗号化されたものであって、
上記情報書換手段は、その少なくとも一部の情報を一旦暗号化前の情報に戻し異なる暗号化パターンを採用して再度暗号化を行なって書き換えるものであることも好ましい形態である。
【0045】
尚、本発明においては、1つの暗号化演算方式を本発明にいう暗号化パターンの1つとしてとらえ、暗号化演算方式が異なることをもって暗号化パターンが異なるものとしてもよく、暗号化演算方式は共通であって、その暗号化演算方式において用いられる変数等が異なることをもって暗号化パターンが異なるものとしてもよい。
【0046】
【発明の実施の形態】
以下、本発明の実施形態について説明する。
【0047】
図1は、本発明の処理装置の第1実施形態を示すブロック図である。
【0048】
この図1に示す処理装置1は、LSI10の内部に搭載された内部回路100と、LSI10の外部に外付けされた外部回路200と、その他発振器301,302等から構成されている。このLSI10は、本発明の集積回路の一実施形態にも相当する。
【0049】
LSI10の内部に構成された内部回路100は、中央処理装置(CPU)101、および、それぞれが、本発明にいう内部デバイスである、内部メモリ102、暗号化情報レジスタ103、アドレスデコーダ104、およびその他の周辺回路105を有する。CPU101および各種の内部デバイスは、バスライン110で相互に接続されている。このバスラインは、アドレスバス111とデータバス112とで構成され、LSI10の外部にまで延びている。このバスライン110の、外部にまで延びた部分110aには、各種の外部デバイスが接続されている。外部デバイスについて後述する。
【0050】
LSI10の内部に構成された内部回路100には、さらにバスライン110の、外部への出入り口に介在するように、暗号化部120が備えられている。この暗号化部120は、暗号化回路121、バスインターフェース122、および乱数発生回路123から構成されている。
【0051】
CPU101には、発振器301からのクロック信号が入力され、CPU101は、その発振器301から受けたクロック信号に同期して各種のプログラムを実行する。
【0052】
また、暗号化回路121には、CPU101に入力されるクロック信号よりも繰り返し周波数の高いクロック信号を発生するもう1つの発振器302からのクロック信号が入力され、暗号化回路121は、その発振器302からの繰り返し周波数の高いクロック信号に同期して暗号化処理が行なわれる。暗号化処理の詳細については後述する。
【0053】
上記の2つの発振器301、302は、相互に同期したクロック信号を発生するものであり、したがって、共通の発振源で得られた高速クロックを分周して各クロック信号を生成するものであってもよい。
【0054】
また、バスライン110の、外部に延びる部分110aには、複数の外部デバイス、すなわち、この図1に示す例では、液晶表示装置(LCD)201,キーボード(KB)202,読出専用メモリ(ROM)203,フラッシュROM211,ランダムアクセスメモリ(RAM)212が接続されている。また、この図1には、この図1に示すLSI10と同一の構成をもつもう1つのLSI等、内部回路100と同様の暗号化機構を持つデバイス213も接続されており、さらに、CPU101で動作するプログラムのデバッグのための逆暗号化回路214も接続されている。デバイス213および逆暗号化回路214は、それらの説明のためにこの図1に一緒に示したものであるが、デバイス213は、LSI10と、そのLSI10と同様な構成を持つデバイス213との間で暗号化通信を行なう場合に接続されるものであり、逆暗号化回路214はプログラムのデバッグのためのものであってデバッグ終了後は取り外されるものである。
【0055】
ここで、LCD201,KB202,および、この図1に示す実施形態においてはROM203も、アドレスおよびデータの双方について暗号化を行なわない外部デバイスに属し、一方、フラッシュROM211およびRAMは、アドレスあるいはデータに関し暗号化を行なってアクセスする外部デバイスに属する。ここでは、フラッシュROM211は、データのみ暗号化され、RAMは、アドレスとデータの双方について暗号化される。また、デバイス213もアドレスおよびデータの双方について暗号化されてLSI10との間で暗号化通信が行なわれる。また、逆暗号化回路214が接続されるときは、この逆暗号化回路214は、本実施形態ではアドレスおよびデータの双方について暗号化を行なわないデバイスに属する。
【0056】
ここで、バスライン110は、CPU101に接続された部分(この部分のアドレス,データをそれぞれA1,D1と表記する)と、暗号化回路121とバスインターフェース122とに挟まれた部分(この部分のアドレス,データをそれぞれA2,D2と表記する)と、さらに、LSI10の外部に延びた部分110a(この部分のアドレス,データをそれぞれA3,D3と表記する)とに分かれている。
【0057】
図2は、図1に示す処理装置のメモリマップを示す図である。
【0058】
外部デバイスの1つであるフラッシュROMには、複数のアプリケーションプログラムが格納されており、内部デバイスの1つである内部メモリにはOSプログラムが格納されている。また、外部デバイスの1つであるROMには、この処理装置の装置構成情報、例えば接続されている外部デバイスの種類やメモリ容量等が記録されている。
【0059】
図3は、図1に示す処理装置に電源が投入されたときに実行される初期化プログラムのフローチャートである。この初期化プログラムは、OSプログラムの一種として内部メモリ102に格納されており、電源投入時にCPU101で実行される。
【0060】
図3に示す初期化プログラムでは、先ず外部デバイスの1つであるROM203に格納された装置構成情報が読み出され(ステップa1)、その情報に基づいて、図2に示すようなメモリマップが作成されるとともに、そのメモリマップの各エリアについて暗号化パターンが決定される(ステップa2)。但し、アドレスもデータも暗号化しないということも、この暗号化パターンの1つとして含まれている。
【0061】
この初期化プログラムでは、その後、その他の諸々の初期化処理が行なわれる(ステップa3)。
【0062】
図1に戻って説明を続行する。
【0063】
CPU101は、アドレスA1およびデータD1を用いて情報のリード,ライトを行なう。一方外部デバイスは、暗号化の必要なデバイスであるか暗号化は不要な(あるいは暗号化は禁止される)デバイスであるかに関わらず、アドレスA3およびデータD3を用いてアクセスされる。
【0064】
CPU101は、外部デバイスへのアクセスの前に、図2に示すメモリマップ上の、暗号化を行ないたいエリア(暗号化エリア)の領域情報と各暗号化エリアに対する暗号化パターンを、暗号化情報レジスタ103に書き込んでおく。
【0065】
アドレスデコーダ104は、アドレスA1を入力するとともに暗号化情報レジスタ103から暗号化を行なうエリアを示す領域情報を受けとって、アクセス対象のデバイスに対し、チップセレクト信号CS0〜SC6を出力するとともに、暗号化回路121に対し、どのデバイスがアクセス対象となっており暗号化が必要であるか否かを示す暗号化制御信号Crpを出力する。
【0066】
暗号化回路121は、アドレスデコーダから暗号化制御信号Crpを受け取り、暗号化情報レジスタ103に記録されている暗号化パターンの情報を元に、アドレスA1,データD1について暗号化を行なう必要があるときにその暗号化エリアに応じた暗号化を行ない、アドレスA2,データD2を出力する。これらのアドレスA2,データD2は、バスインタフェース123を経由しアドレスA3,データD3としてLSI10の外部に出力される。
【0067】
CPU101からバスインタフェース122には、外部デバイスをアクセス対象としているか否かを示す外部バスアクセス信号が伝達され、バスインタフェース122は、外部デバイスのアクセスが要求されているときは暗号化回路121から出力されたアドレスA2,データD2を外部のアドレスA3,データD3として外部に出力し、外部デバイスのアクセス要求がないときは、乱数発生回路123からの乱数を基に、ダミーのアドレス,データを生成して、外部のアドレスA3,データD3として出力する。このようにダミーのアドレス,データを出力することにより、不正な解析を一層困難にしている。
【0068】
尚、ここでは、内部から外部へのアドレス,データの変換について述べたが、外部のフラッシュメモリ211やRAM212,ROM203等から読み出されたデータD3については、バスインタフェース122はデータD2として内部に取り込み、そのデータが暗号化されたデータであるときは、暗号化回路121でその暗号化に対する復号化が行なわれ、暗号化前のデータD1として、CPU101等に伝達される。
【0069】
ここで、本実施形態においては暗号化パターンとして、アドレスもデータも暗号化しないという暗号化パターンのほか、例えば、
(1)タイプ1
A3=A1 XOR p1
D3=D1 XOR p1
(2)タイプ2
A3=A1
D3=A1+D1+p1
(3)タイプ3
タイプ2の演算結果としてのデータについて、さらにそのデータの上位と下位を入れ替える
という暗号化パターンが採用される。
【0070】
ここで、上記p1は、例えば乱数等により得られた適当な定数であり、
A XOR Bは、AとBの対応する各ビットごとの排他論理和演算を行なうことを意味し、A+Bは、A,Bを数値とみたときの加算演算を意味している。
【0071】
図3を参照して説明したように、電源投入時の初期化動作において、CPU101は、外部デバイスの1つであるROM203に格納された装置構成情報を読み出し、図2に示すようなメモリマップを作成するとともに、暗号化エリアについて暗号化パターンを決定するが、ここでは一例として、フラッシュROM211については、アドレスについては暗号化は行なわずにデータについてのみ暗号化を行なう、例えば上記の(2)の暗号化パターンが採用され、RAM212についてはアドレスおよびデータの双方について暗号化を行なう、例えば上記の(1)の暗号化パターンが採用される。
【0072】
ここで、RAM212については、上記(1)のタイプ1の暗号化パターンが採用されているため、例えばp1=0x5555(0xはそれに続く’5555’が16進数であることを意味する)であるとすると、
A3(0x5455)
=A1(0x0100) XOR p1(0x5555)
D3(0x5476)
=D1(0x0123) XOR p1(0x5555)
のように、アドレス及びデータとも、もとのアドレス,データとは全く異なる値となる。
【0073】
また、フラッシュROM211については、上記(2)タイプ2の暗号化パターンが採用されており、p1=0x5555であるとすると、
A3(0x0100)=A1(0x0100)
D3(0x5778)
=A1(0x0100)+D1(0x0123)+p1(0x5555)
のように、アドレスは変更されず、データについてはもとのデータとは全く異なる値となる。ここでは、データを暗号化するにあたり、アドレスA1の関数としているため、同一のデータD1であってもアドレスA1に応じて暗号化後のデータD3が異なることになり、不正な解析を一層困難にし、セキュリティの一層の向上が図られている。
【0074】
尚、上記は暗号化パターンの計算上の例を挙げたものであり、アドレスを暗号化する場合、その暗号化対象のデバイスのアドレスエリアを越えて他のデバイスのアドレスエリアに移らないようにその暗号化のアルゴリズム上考慮されている。
【0075】
また、例えば、同一のRAM212であっても、CPU101で実行されるアプリケーションプログラムに応じてRAM212をアクセスするときの暗号化パターンを変更してもよい。そのようにメモリエリア(アクセスされる外部デバイス)に応じて暗号化パターンを選択するだけでなく、同一のメモリエリア(同一の外部デバイス)であっても、アプリケーションプログラムに応じても暗号化パターンを変更すると、バスライン110の、外部に延びた部分110aに出力されるアドレスやデータが一層複雑に暗号化されたものとなり、不正な解析がさらに困難となり、セキュリティの一層の向上が図られる。
【0076】
ここで、CPU101と暗号化回路121が仮に同一のクロックで動作していると、暗号化回路121では複雑な暗号化演算を行なうことができないことになる。例えばCPU101が1クロック毎に外部へアクセスを行なうとすると暗号化回路121は1クロック以内に暗号化処理を終える必要がある。例えば上述の(3)のタイプ3の暗号化処理の場合、(2)のタイプ2の暗号化を行なうのに1クロック分の時間を要し、さらに上位と下位を入れ替えるのに1クロック分の時間を要し、合計2クロック分の時間を要するものとすると、暗号化回路121で1クロック以内に暗号化処理を終える必要がある場合、この(3)のタイプ3の暗号化パターンは採用することができないことになる。
【0077】
図1に示す実施形態の場合、CPU101にクロックを供給する発振器301よりも高速なクロックを生成する発振器302を備え、暗号化回路121は発振器302から供給された高速なクロックに同期して動作するため、複数クロック必要とする、例えば上述の(3)のタイプ3の暗号化パターンや、さらに複雑な暗号化パターンを採用することができる。
【0078】
例えばCPU101には、10MHzのクロックが供給されており、暗号化回路121に100MHzのクロックが供給されていると、暗号化回路では10クロックを使って暗号化処理を行なうことができる。
【0079】
また、図1に示す処理装置の内部回路100はLSI10の内部に作り込まれたものであり、そのLSI10からは、暗号化回路121及びバスインタフェース122を経由して暗号化されたアドレスやデータが出力され、このままでは、このLSI10を用いた製品を開発する際、CPU101で実行されるプログラムのデバッグが極めて困難となる。そこで、図1に示す処理装置には、逆暗号化回路214が接続されている。
【0080】
この逆暗号化回路214には、デバッグに先立って、CPU101から、暗号化情報レジスタ103に書き込む内容と同様の内容の、暗号化パターン及び暗号化エリアの情報が書き込まれ、逆暗号化回路214は、その後のデバッグにおいて、前もって書き込まれた暗号化パターンや暗号化エリアの情報に基づいて、バスライン110の、外部に延びた部分110aに出力された、暗号化されたアドレスやデータを復号化して、暗号化前のアドレスやデータを復元する。こうすることにより、その逆暗号化回路214により復元されたアドレスやデータを例えば計測器でもニタし、CPU101で実行されるプログラムのデバッグを容易に行なうことができる。
【0081】
この逆暗号化回路214は、このままにしておくと、不正な解析を困難にする目的でアドレスやデータを暗号化したことの意味を失うことになるため、別装置として構成しておいて、デバッグ終了後は取り外される。あるいは、そこに付けたまま完全に動作不能としてもよい。
【0082】
また、図1には、LSI10と同様の暗号化機構をもつデバイス213が接続されている。このように、このLSI10を複数組み合わせると、基板上でのLSI同士の暗号化通信を行なうことも可能となる。
【0083】
図4は、本発明の処理装置の第2実施形態のブロック図である。
【0084】
この図4に示す処理装置5は、LSI50の内部に組み込まれた内部回路500とLSI50の外部に外付けされた外部回路600とから構成されている。LSI50は、本発明の集積回路の一実施形態にも相当する。
【0085】
LSI50内に作り込まれた内部回路500は、CPU501、内部メモリ502、アドレスバススクランブル演算回路503、アドレスバススクランブルパターンメモリ504、データバススクランブル演算回路505、データバススクランブルパターンメモリ506、およびデコーダ回路507を有し、それらはバスライン510で相互に接続されている。このバスライン510はアドレスバス511とデータバス512とからなる。内部回路500には、その他の内部デバイスも備えられているから、それらの図示及び説明は省略する。
【0086】
LSI10内に作り込まれた内部回路500の、図4に示す構成要素のうち、CPU501および内部メモリ502を除く構成要素の複合、すなわち、アドレスバススクランブル演算回路503、アドレスバススクランブルパターンメモリ504、データバススクランブル演算回路505、データバススクランブルパターンメモリ506、およびデコーダ回路507の複合が、本発明にいう暗号化部の一例に相当する。
【0087】
また、バスラインの、LSI50の外部に延びた部分には、外部回路600を構成するRAM601とフラッシュROM602が接続されている。
【0088】
内部回路500を構成する内部メモリ502にはOSプログラムが格納されており、また、外部回路500を構成するフラッシュROM602にはアプリケーションプログラムが格納されており、内部回路500のCPU501ではそれら各種のプログラムが実行される。また、外部回路600を構成するRAM601には、各種のデータが読み書き自在に格納される。
【0089】
また、アドレスバススクランブル演算回路503およびデータバススクランブル演算回路505は、それぞれ、アドレスA0〜15およびデータD0〜7をスクランブル(暗号化)する演算回路であり、アドレスバススクランブルパターンメモリ504およびデータバススクランブルパターンメモリ506には、それぞれアドレスバススクランブル演算回路503およびデータバススクランブル演算回路505におけるスクランブル演算において用いられるスクランブルパターンが格納されている。これらのアドレスバススクランブルパターンメモリ504およびデータバススクランブルパターンメモリ506は、不揮発性メモリ等により構成されており、装置の電源が切断されても内容を保持することが可能であり、また、CPU501により、スクランブルパターンの書き換えが可能である。
【0090】
本実施形態では、アドレスバススクランブル演算回路503およびデータバススクランブル演算回路505のいずれにも、排他的論理和回路が採用されている。
【0091】
図5は、排他的論理和回路を示す図である。
【0092】
図5に示す排他的論理和回路(図4に示すアドレスバススクランブル演算回路503あるいはデータバススクランブル演算回路506)には、バスライン510を経由して入力IN(アドレスA0〜15あるいはデータD0〜7)が入力されるとともに、アドレスバススクランブルパターンメモリ504あるいはデータバススクランブルパターンメモリ506から、スクランブルパターンSP(SPA0〜15あるいはSPD0〜7)が入力され、出力OUT(SA0〜15あるいはSP0〜7)として、
OUT=IN XOR SP …(1)
但し、XORは排他的論理和を表わす
が出力される。
【0093】
ここで、スクランブルパターンSPを全ビットとも0にすることにより、スクランブルを禁止することができ、また一部のビットを0にすることにより、対応するビットのスクランブルを禁止することができる。例えば16ビットのスクランブルパターンSPのうち下位4ビットを常に0にすると、下位4ビットについてはスクランブル(暗号化)が行なわれないことになる。
【0094】
本実施形態におけるアドレスバススクランブル演算回路503およびデータバススクランブル演算回路505(以下、これらを総称するときは、単に、スクランブル演算回路と称する)には、上記(1)式に基づく演算を行なう排他的論理和回路が採用されているが、以下に、スクランブル演算回路として採用することのできる各種の回路構成を例示しておく。
【0095】
図6〜図9は、スクランブル演算回路として採用することのできる各回路構成を示した図である。
【0096】
図6に示すスクランブル演算回路には、加算回路が採用されており、ここでは
OUT=IN+SP …(2)
の演算が行なわれる。
【0097】
図7には、加算回路と排他的論理和回路が示されており、
ここでは、
OUT=(IN+SP1) XOR SP2 …(3)
但し、SP1,SP2は、相互に異なる、あるいは同一の2つのスクランブルパターンである。
の演算が行なわれる。
【0098】
また、図8には、排他的論理和回路とビット入換回路が示されており、ここでは、
OUT=(IN XOR SP)m …(4)
(排他的論理和演算を行なった後上位と下位のビットをmビット分入れ換える)
の演算が行なわれる。
【0099】
さらに、図9には、加算回路と排他的論理和回路が示されており、ここでは、OUT=(IN(データ)+IN(アドレス)) XOR SP …(5)
但し、IN(データ)は、データバス上のデータ、IN(アドレス)はアドレスバス上のアドレスである。
の演算が行なわれる。但し、この(5)式に基づく演算は、データバススクランブル演算回路505として採用可能なものであり、データをスクランブルするにあたりアドレスを用いると、不正な解析が一層困難な、極めて複雑なスクランブルが行なわれることになる。
【0100】
図10、図11は、特定のビットのみスクランブルをかけるためのマスクパターンが付加されたスクランブル演算回路の各例を示す図である。
【0101】
図10に示すスクランブル演算回路は、1つの反転回路と、2つの論理積回路と、1つの加算回路とからなり、この回路の場合、
OUT=(IN and M)+SP+(IN and(not M))…(6)
の演算が行なわれる。
【0102】
ここで、Mはマスクパターンを表わし、そのマスクパターンMの中の、0が設定されたビットについては、スクランブルは行なわれない。例えば、16ビットのうち下位4ビットのスクランブルを禁止するときは、マスクパターンMとして0xFFF0が設定される。
【0103】
また、図11に示すスクランブル演算回路は、1つの反転回路、2つの論理積回路、2つの加算回路、および1つの排他的論理和回路が図11に示すように接続されたものであり、ここでは、
OUT=(((IN and M)+SP1) XOR SP2)
+(IN and(not M)) …(7)
の演算が行なわれる。
【0104】
以上例示したように、スクランブル演算回路として様々な演算回路を採用することができる。
【0105】
図12は、図4に示す第2実施形態の処理装置5におけるアドレスマップである。
【0106】
図4には、代表的にRAMは1つのみ示したが、実際にはワークRAMとバックアップRAMを備えており、ワークRAMには、0x00000〜0x0FFFFのアドレス領域(ワークRAM領域)が割り当てられており、バックアップRAMには、装置の電源が切断された状態であっても電池等によりバックアップされ、その内容が保持されている。
【0107】
また、0x20000〜0x2FFFFはIO領域、0x30000〜0x3FFFFはフラッシュROM領域である。フラッシュROMには、各種のアプリケーションプログラムが格納されている。図4に示すアドレスバススクランブルパターンメモリ504およびデータバススクランブルパターンメモリ506は、IO領域(0x2XXXXの領域)に割り当てられている。
【0108】
ここで、図4に示すデコーダ回路は、アドレスA4〜19に基づいて、表1の真理値表に従って、データバススクランブルパターンメモリ506のライトイネーブル信号*WEPMDおよびアドレスバススクランブルパターンメモリ504のライトイネーブル信号*WEPMAを出力する。
【0109】
【表1】

Figure 0004683442
【0110】
この表1は、0x2000Xのときにデータバススクランブルパターンメモリ506を書込み可能状態(*WEPMD=0)とし、0x2001Xのときにアドレスバススクランブルパターンメモリ504を書込み可能状態(*WEPMA=0)とすることを意味している。
【0111】
図13は、データバススクランブルパターンメモリ506の構成を示す図である。このデータバススクランブルパターンメモリ506は、2つのデコーダ(デコーダ1とデコーダ2)と、4つのデータラッチ(データラッチ0〜3)で構成されている。データラッチ0〜3は、それぞれ、ワークRAM,バックアップRAM,IO,フラッシュROMのデータをスクランブルするための各スクランブルパターンの格納領域であり、後に示す表4にあるように、それぞれ、アドレス0x2000,0x2001,0x2002,0x2003が割り当てられている。
【0112】
デコーダ1は、各データラッチ0〜3に格納されている各スクランブルパターンを選択的に出力させるための各アウトプットイネーブル信号*OE0〜*OE3を生成する回路であり、表2の真理値表に示す論理構成となっている。
【0113】
【表2】
Figure 0004683442
【0114】
また、デコーダ2は、各データラッチ0〜3に新たなスクランブルパターンを書き込むための各ライトイネーブル信号*WE0〜*WE3を生成する回路であり、表3の真理値表に示す論理構成となっている。
【0115】
【表3】
Figure 0004683442
【0116】
データラッチ0〜3は、各々に対応するライトイネーブル信号*WE0〜3が0になると、そのタイミングでデータバス512に出力されているD0〜7のデータを記憶し、また、各々に対応するアウトプットイネーブル信号*OE0〜3が0になると記憶しているスクランブルパターンをSPD0〜7のデータとして出力する。ここで、アウトプットイネーブル信号*OE0〜3の全てが1の場合は、SPD0〜7のデータは全てのビットが0となる。
【0117】
ここで、本実施形態では、データバス512上のデータは8ビット幅(D0〜7)であるのに対し、アドレスバス511は、スクランブルとは無関係の拡張ビットSA16〜19を除き16ビット幅(A0〜A15)である。図13にはデータバススクランブルパターンメモリ506の構成を示したが、アドレスバススクランブルパターンメモリ504は、データと比べてアドレスのビット幅が広いことに伴い、図13に示すデータラッチ0〜3がそれぞれ2バイト構成になり、各データラッチを選択するためのアドレスがA0〜3の4ビット(図13に示すデータバススクランブルパターンメモリ506の場合はデータラッチを選択するためのアドレスはA0〜1の2ビットである)となることを除き、構成としては図13に示すデータバススクランブルパターンメモリ506の構成と同様であり、アドレスバススクランブルパターンメモリ504の図示及びこれ以上の説明は省略する。
【0118】
本実施形態では、データバススクランブルパターンメモリ506の各データラッチ0〜3およびアドレスバススクランブルパターンメモリ504の各データラッチには、表4に示すアドレスが割り当てられており、各アドレスにそれらの各アドレスに対応するスクランブルの各対象領域についてスクランブルを実行するためのスクランブルパターンが書き込まれ、CPU501から出力されるアドレス情報(A0〜19)に従って、各データラッチに書き込まれているスクランブルパターンがスクランブル演算回路に向けて出力される。
【0119】
【表4】
Figure 0004683442
【0120】
表5は、本実施形態におけるパターンメモリの設定例を示す表である。
【0121】
【表5】
Figure 0004683442
【0122】
本実施形態で採用されているRAMは、下位4ビットについて連続したアドレスでアクセスした場合に高速なアクセスが可能な素子であり、したがって表5に示すように、RAMのアドレスバススクランブルパターンの下位4ビットは0(スクランブルを行なわないことを意味する)に設定されており、CPUからの連続したメモリアクセスの場合の高速なアクセス速度を保証している。
【0123】
また、IO空間はスクランブルを禁止するために、全てのビットが0に設定されている。
【0124】
図14は、図4に示す処理装置における、電源投入時およびリセット時に動作するプログラムの一部を示した図である。
【0125】
ここでは、16ビットの乱数RAと8ビットの乱数RDが生成され(ステップb1,b2)、16ビットの乱数RAと0xFFF0との論理積演算結果がアドレス0x20008〜9に書き込まれ((ステップb3)、8ビットの乱数RDがアドレス0x20000に書き込まれる。表4に示すようにアドレス0x20008〜9はワークRAM用のアドレスバススクランブルパターンの格納領域、アドレス0x20000はワークRAM用のデータバススクランブルパターンの格納領域である。
【0126】
すなわち、ここでは、電源投入あるいはリセットのたびにワークRAMのスクランブルパターンが変更されることになり、このことも、外部からの不正な解析を一層困難にするのに役立っている。
【0127】
尚、バックアップRAMやフラッシュROMについては、そこに格納されたデータやプログラムの一貫性が必要なため、あらかじめ定められたスクランブルパターンがそのまま保持され、電源の再投入やリセットが行なわれても、スクランブルパターンは変更されない。
【0128】
フラッシュROMについては、工場での書込み時にはスクランブルをかけないでおくことも可能である。その場合、出荷後の最初の電源投入時に、以下の手順によりスクランブルがかけられる。
【0129】
図15は、電源投入時に動作するプログラムの、フラッシュROMのスクランブルの部分を示すフローチャートである。
【0130】
ここでは、先ず、フラッシュROMの内容がスクランブルされたものであるか否かを示すスクランブル有無フラグがチェックされる。このスクランブル有無フラグはバックアップRAMの所定の番地に格納されており、工場での書込み時に、このスクランブル有無フラグは‘無’に設定される。
【0131】
このスクランブル有無フラグの確認は、フラッシュROMの内容が既にスクランブル済であるか否かの判定のためであり、スクランブル有無フラグを設定する代わりに、フラッシュROMに対応するスクランブルパターンを読み出し、そのスクランブルパターンの全ビットが0であることをもって、未だスクランブルが行なわれていないものと判定してもよい。
【0132】
ステップc1でスクランブル有無フラグがスクランブル‘無’に設定されていると判定されると、ステップc2に進み、フラッシュROMの内容がRAMにコピーされる。このフラッシュROMの一部には、以下の処理を行なうためのプログラムが書込まれている。
【0133】
次いで、RAMにコピーされたプログラムのうち、以下の処理を行なうためのプログラムに制御が移され、フラッシュROMが消去され(ステップc4)、16ビットの乱数RAと8ビットの乱数RDが生成され(ステップc5,c6)、16ビットの乱数RAがフラッシュROMのアドレススクランブルパターンとしてアドレス0x2000E〜Fに書き込まれるとともに8ビットの乱数RDがフラッシュROMのデータスクランブルパターンとしてアドレス0x20003に書き込まれる(表4を参照;ステップc7,c8)。
【0134】
次に、ステップc2でRAMにコピーされたプログラムが、アドレス0x2000E〜Fおよびアドレス0x20003に書き込まれたアドレススクランブルパターンおよびデータスクランブルパターンでスクランブルされてフラッシュROMに書き戻され(ステップc9)、フラッシュROMスクランブル有無フラグが‘有’に変更される(ステップc10)。
【0135】
こうすることにより、フラッシュROMの内容が最初の電源投入時にスクランブルされることになる。
【0136】
また、工場出荷時には特定のスクランブルパターンでスクランブルしておいて、最初の電源投入時に別のスクランブルパターンでスクランブルし直すようにしてもよい。この場合、工場出荷時にスクランブルされた内容を元に戻すための逆スクランブルパターン(ここではスクランブルパターンを参照することによって元に戻すことができるためスクランブルパターンそのものである)は、スクランブルパターンメモリに書き込んでおくこともでき、フラッシュROM内に書き込んでおいてもよい。フラッシュROM内に書き込んでおくと、工場出荷時点ではスクランブルパターンメモリについて電池等でバックアップしておく必要がないという利点がある。
【0137】
図16は、フラッシュROMに、あらかじめスクランブルされたプログラムが書き込まれており、かつそのスクランブルを元に戻すのに必要なスクランブルパターンがフラッシュROM内に格納されて出荷されたときの、電源投入時に動作するプログラムの、フラッシュROMのスクランブルの部分を示すフローチャートである。このプログラムは、図15に示すプログラムに代えて実行されるプログラムである。
【0138】
ステップd1では、工場出荷前のスクランブルを除き、フラッシュROMが既にスクランブルされたか否かを示すスクランブル有無フラグが参照される。工場出荷前のスクランブルを除き、未だ一度もスクランブルされていないときはステップd2〜d12の各ステップが実行される。
【0139】
ステップd2,d3では、フラッシュROMに格納されている、アドレスバススクランブルパターンSPA0およびデータバススクランブルパターンSPD0がそれぞれアドレス0x2000E〜Fおよびアドレス0x20003に書き込まれる(表4参照)。
【0140】
次にステップd4において、フラッシュROMの内容がスクランブルパターンSPA0,SPD0に基づいてスクランブルされる前の状態に戻されてRAMにコピーされる。
【0141】
その後の各ステップd5〜d12は、図15の各ステップc3〜c10とそれぞれ同一であり、重複説明は省略する。
【0142】
この図16に示すプログラムの実行により、フラッシュROMの内容が、最初の電源投入時に新たに生成した乱数RA,RBをアドレススクランブルパターン,データスクランブルパターンとして再度スクランブルされ、その後はそのスクランブルされた状態が保持される。
【0143】
ここで、上記の例は、スクランブルパターンがフラッシュROMに書き込まれた例であるが、例えばフラッシュROMの内容を、工場出荷前に、個々の製品毎に別々のスクランブルパターンでスクランブルしておき、そのスクランブルを解除するための逆スクランブルパターンを特定の暗号処理により暗号化して、バックアップRAM等、フラッシュROMとは別の領域に書き込んでおいてもよい。そのときはその暗号化されたスクランブルパターンを暗号化前のスクランブルパターンに戻すための復号処理の手続も、LSI50の内部のいずれかの領域に埋め込まれる。
【0144】
上記の暗号処理としては、例えば公開鍵暗号方式(例えばRAS等)を用いることができる。すなわち、公開鍵(Kpb)で暗号化された逆スクランブルパターンをフラッシュROMあるいは他のメモリに書き込んでおき、その暗号化されたスクランブルパターンをLSI50内のいずれかの領域に埋め込んでおいた秘密鍵(Kpv)で復号する。このようなシステムの場合、同一仕様のLSI50を複数の会社で使用した場合であっても、各会社に公開鍵のみを渡し、秘密鍵は伏せておくことにおり、会社間のセキュリティが確保できる。
【0145】
図17は、フラッシュROMについて工場出荷前にスクランブルしておき、そのスクランブルを解除するためのスクランブルパターンを公開鍵Kpbにより暗号化してバックアップRAMに格納し、その状態で出荷された後の電源投入時に動作するプログラムの、フラッシュROMのスクランブルの部分を示すフローチャートである。
【0146】
ステップe2,e3では、バックアップRAMより、公開鍵で暗号化された状態のアドレスバススクランブルパターンKpb(SPA0)が読み出され、LSIの内部に埋め込まれた秘密鍵Kpvにより復号化されて平文のアドレスバススクランブルパターンSPA0が取り出される。
【0147】
また、ステップe4,e5では、バックアップRAMより、公開鍵で暗号化された状態のデータバススクランブルパターンKpb(SPD0)が読み出され、LSIの内部に埋め込まれた秘密鍵Kpvにより復号化されて平文のデータバススクランブルパターンが取り出される。
【0148】
ステップe6,e7では、上記のようにして得られた平文のアドレスバススクランブルパターンSPA0および平文のデータバススクランブルパターンSPD0が、それぞれ、アドレス0x2000E〜Fおよびアドレス0x20003に書き込まれる(表4参照)。
【0149】
その後の各ステップe8〜e16は、図16の各ステップd4〜d12とそれぞれ同一であり、重複説明は省略する。
【0150】
図18は、本発明の処理装置の第3実施形態のブロック図である。
【0151】
図4に示す第2実施形態からの相違点について説明する。
【0152】
この第3実施形態では、外部回路600に、図4の第2実施形態と同様のRAM601およびフラッシュROM602が備えられているほか、さらに通信制御回路603が備えられている。
【0153】
この通信制御回路603は通信回路網800を介して鍵管理センター700と接続されている。フラッシュROM602には、工場出荷前にスクランブルされた状態のプログラムが格納されており、最初の電源投入時に、鍵管理センター700から、通信回路網800を経由して、暗復号化されたスクランブルパターンを受け取るように構成されている。
【0154】
図19は、図18に示す処理装置における電源投入時に実行されるプログラムの、フラッシュROMのスクランブルに関する部分のフローチャートである。
【0155】
図19のステップf1は、図17のステップe1と同じである。
【0156】
ステップf2では鍵管理センターへの接続が行なわれ、ステップf3では、鍵管理センターから、公開鍵Kpbで暗号化された形式のアドレスバススクランブルパターンkpb(SPA0)およびデータバススクランブルパターンKpb(SPD0)がダウンロードされる。
【0157】
ステップf4,f5では、LSIに埋め込まれた秘密鍵Kpvにより、暗号化された状態のアドレスバススクランブルパターンKpb(SPA0)および暗号化された状態のデータバススクランブルパターンKpb(SPD0)がそれぞれ復号化されて、平文のアドレスバススクランブルパターンSPA0およびデータバススクランブルパターンSPD0が取り出される。
【0158】
それ以降の各ステップf6〜f16は図17の各ステップe6〜e16とそれぞれ同一であり、重複説明は省略する。
【0159】
このように、通信により鍵管理センター等の外部からスクランブルパターンの入手を可能とすることにより、システムの柔軟性が確保される。
【0160】
図20は、本発明の処理装置の第4実施形態のブロック図である。
【0161】
図4に示す第2実施形態との相違点について説明する。
【0162】
図20に示す第4実施形態では、外部回路600に、図4の第2実施形態の場合と同様のRAM601およびラッシュROM602が備えられているほか、タンパ検出スイッチ604が備えられており、さらにバックアップ用電池605が明示的に示されている。
【0163】
アドレスバススクランブルパターンメモリ504およびデータバススクランブルパターンメモリ506は、電源が切断された状態においてもバックアップ用電池605からの電力によりその内容が消去されないようバックアップされている。
【0164】
ここで、この処理装置5が不正に開けられた場合にタンパ検出スイッチ604が働き、バックアップ用電池605からの電力供給経路が遮断され、アドレスバススクランブルパターンメモリ504およびデータバススクランブルパターンメモリ506に格納されていたアドレスバススクランブルパターンおよびデータバススクランブルパターンが消去され、この処理装置の動作が不能となる。こうすることにより、不正な解析がさらに確実に防止される。
【0165】
尚、上記の各実施形態では、1つのLSIの内部に作り込まれた回路を内部回路、そのLSIの外部に外付けされたデバイスの集合を外部回路と称しているが、内部回路は必ずしも1つのLSIに搭載されたものである必要はなく、例えば複数のLSIに分散して搭載されてそれら複数のLSIが1つの集積回路パッケージ内にパッケージされ、あるいは、それら複数のLSIが一体にモールドされたものである場合に、それら複数のLSIに分散して搭載された回路全体を内部回路と称してもよい。
【0166】
以下、本発明の各種態様を付記する。
【0167】
(付記1) プログラムを実行するCPUと、各所定の作用を成す1つ以上の内部デバイスと、前記CPUと前記内部デバイスとを結ぶとともに外部にまで延びアドレスおよびデータを伝達するバスラインとを含む内部回路、および
前記バスラインの外部に延びた部分に外付けされた、各所定の作用を成す1つ以上の外部デバイスを含む外部回路を備え、
前記内部回路が、前記バスラインの、外部への出入口に介在し、該バスライン上のアドレスおよびデータを、前記1つ以上の外部デバイス全体に割り当てられたアドレス空間を複数に分けた各領域に応じた各暗号化パターンで暗号化する暗号化部を含むものであることを特徴とする処理装置。
【0168】
(付記2) 前記暗号化部で採用される暗号化パターンには、アドレスおよびデータの双方とも暗号化しないことを1つの暗号化パターンとして含むものであることを特徴とする付記1記載の処理装置。
【0169】
(付記3) 前記外部回路が複数の外部デバイスを含むものであり、
前記暗号化部は、前記複数の外部デバイスそれぞれに応じた暗号化パターンで暗号化するものであることを特徴とする付記1記載の処理装置。
【0170】
(付記4) 前記暗号化部は、前記外部回路がアクセスされていないタイミングで、前記バスラインの、外部に延びた部分に、ダミーのアドレスおよびデータを出力するものであることを特徴とする付記1記載の処理装置。
【0171】
(付記5) 前記CPUは、クロックの供給を受け供給されたクロックに同期してプログラムを実行するものであるとともに、前記暗号化部も、クロックの供給を受け供給されたクロックに同期して暗号化を行なうものであって、
前記暗号化部に、前記CPUに供給されるクロックよりも高速なクロックを供給するクロック供給部を備えたことを特徴とする付記1記載の処理装置。
【0172】
(付記6) 前記外部回路の構成を認識し、その構成に応じて、前記暗号化部における暗号化パターンを決定する暗号化パターン決定手段を有することを特徴とする付記1記載の処理装置。
【0173】
(付記7) 前記暗号化部は、前記バスライン上のアドレスおよびデータを、前記1つ以上の外部デバイス全体に割り当てられたアドレス空間を複数に分けた各領域に応じるとともに前記CPUで実行されるアプリケーションプログラムにも応じた暗号化パターンで暗号化するものであることを特徴とする付記1記載の処理装置。
【0174】
(付記8) 前記バスラインの、外部に延びた部分に接続され、該バスライン上の暗号化されたアドレスおよびデータを暗号化前のアドレスおよびデータに戻す逆暗号化部を備えたことを特徴とする付記1記載の処理装置。
【0175】
(付記9) 前記1つ以上の外部デバイス全体に割り当てられたアドレス空間を複数に分けた複数の領域のうちのいずれかの領域について、所定の初期化動作の都度暗号化パターンを変更する暗号化パターン変更手段を有することを特徴とする付記1記載の処理装置。
【0176】
(付記10) 前記暗号化部は、前記1つ以上の外部デバイス全体に割り当てられたアドレス空間を複数に分けた複数の領域のうちのいずれかの領域について、暗号化後のデータがアドレスに応じて変化する暗号化パターンを採用して、データを暗号化するものであることを特徴とする付記1記載の処理装置。
【0177】
(付記11) プログラムを実行するCPUと、各所定の作用を成す1つ以上の内部デバイスと、前記CPUと前記内部デバイスとを結ぶとともに外部にまで延びアドレスおよびデータを伝達するバスラインとを含む内部回路、および
前記バスラインの、外部に延びた部分に外付けされた、情報を記憶するメモリを含む外部回路を備え、
前記内部回路が、前記メモリに記憶された情報のうちの少なくとも一部の情報を、所定の初期化動作で暗号化して書き換える情報書換手段を有するものであることを特徴とする処理装置。
【0178】
(付記12) 前記所定の初期化動作が、最初の電源投入時の初期化動作であることを特徴とする付記1記載の処理装置。
【0179】
(付記13) 前記情報書換手段は、乱数を発生させ、発生させた乱数を用いた暗号化パターンを採用して暗号化を行なうものであることを特徴とする付記11記載の処理装置。
【0180】
(付記14) 前記メモリに記憶された情報のうちの少なくとも一部の情報が、前記所定の初期化動作を実行する以前において既に暗号化されたものであって、
前記情報書換手段は、該少なくとも一部の情報を一旦暗号化前の情報に戻し異なる暗号化パターンを採用して再度暗号化を行なって書き換えるものであることを特徴とする付記11記載の処理装置。
【0181】
(付記15) 前記少なくとも一部の情報を暗号化前の情報に戻すための復号化情報が前記メモリに記憶されてなるものであって、
前記情報書換手段は、該少なくとも一部の情報を、該復号化情報を用いて一旦暗号化前の情報に戻すものであることを特徴とする付記14記載の処理装置。
【0182】
(付記16) 前記少なくとも一部の情報が公開鍵により暗号化されたものであるとともに、この処理装置は秘密鍵が埋め込まれてなるものであって、
前記情報書換手段は、該少なくとも一部の情報を該秘密鍵を用いて一旦暗号化前の情報に戻すものであることを特徴とする付記14記載の処理装置。
【0183】
(付記17) 前記少なくとも一部の情報を暗号化前の情報に戻すための、暗号化された形式の復号化情報を外部より取得する情報取得部を備え、
前記情報書換手段は、前記情報取得部で取得された、暗号化された形式の復号化情報を復号化して平文の復号化情報を取り出しこの平文の復号化情報を用いて該少なくとも一部の情報を一旦暗号化前の情報に戻すものであることを特徴とする付記14記載の処理装置。
【0184】
(付記18) 前記内部回路が前記暗号化部で採用される暗号化パターンを保持してなるものであって、
タンパ検出を行なうタンパ検出部を備えるとともに、
前記タンパ検出部によるタンパ検出を受けて前記内部回路内に保持されていた暗号化パターンを破壊する情報破壊手段を備えたことを特徴とする付記1又は11記載の処理装置。
【0185】
(付記19) プログラムを実行するCPUと、各所定の作用を成す1つ以上の内部デバイスと、前記CPUと前記内部デバイスとを結ぶとともに外部にまで延びて、外部に延びた部分に、各所定の作用を成す1つ以上の外部デバイスが外付けされる、アドレスおよびデータを伝達するバスラインと、該バスラインの、外部への出入口に介在し、該バスライン上のアドレスおよびデータを、該バスラインの、外部に延びた部分に外付けされた1つ以上の外部デバイス全体に割り当てられた空間を複数に分けた各領域に応じた各暗号化パターンで暗号化する暗号化部とが搭載されてなることを特徴とする集積回路。
【0186】
(付記20) 前記暗号化部で採用される暗号化パターンには、アドレスおよびデータの双方とも暗号化しないことを1つの暗号化パターンとして含むものであることを特徴とする付記18記載の集積回路。
【0187】
(付記21) 前記バスラインの、外部に延びた部分に、複数の外部デバイスが外付けされた場合に、前記暗号化部は、前記複数の外部デバイスそれぞれに応じた暗号化パターンで暗号化するものであることを特徴とする付記19記載の集積回路。
【0188】
(付記22) 前記暗号化部は、前記外部回路がアクセスされていないタイミングで、前記バスラインの、外部に延びた部分に、ダミーのアドレスおよびデータを出力するものであることを特徴とする付記19記載の集積回路。
【0189】
(付記23) 前記CPUは、クロックの供給を受け供給されたクロックに同期してプログラムを実行するものであるとともに、前記暗号化部も、クロックの供給を受け供給されたクロックに同期して暗号化を行なうものであって、
前記暗号化部は、前記CPUが動作するクロックよりも高速なクロックで動作するものであることを特徴とする付記19記載の集積回路。
【0190】
(付記24) 前記外部回路の構成を認識し、その構成に応じて、前記暗号化部における暗号化パターンを決定する暗号化パターン決定手段を有することを特徴とする付記19記載の集積回路。
【0191】
(付記25) 前記暗号化部は、前記バスラインの、アドレスおよびデータを前記1つ以上の外部デバイス全体に割り当てられたアドレス空間を複数に分けた各領域に応じるとともに前記CPUで実行されるアプリケーションプログラムにも応じた暗号化パターンで暗号化するものであることを特徴とする付記19記載の集積回路。
【0192】
(付記26) 前記1つ以上の外部デバイス全体に割り当てられたアドレス空間を複数に分けた複数の領域のうちのいずれかの領域について、所定の初期化動作の都度暗号化パターンを変更する暗号化パターン変更手段を有することを特徴とする付記19記載の集積回路。
【0193】
(付記27) 前記暗号化部は、前記1つ以上の外部デバイス全体に割り当てられたアドレス空間を複数に分けた複数の領域のうちのいずれかの領域について、暗号化後のデータがアドレスに応じて変化する暗号化パターンを採用して、データを暗号化するものであることを特徴とする付記19記載の集積回路。
【0194】
(付記28) プログラムを実行するCPUと、各所定の作用を成す1つ以上の内部デバイスと、前記CPUと前記内部デバイスとを結ぶとともに外部にまで延びて、外部に延びた部分に、情報を記憶するメモリが外付けされる、アドレスおよびデータを伝達するバスラインとを備えるとともに、
前記メモリに記憶された情報のうちの少なくとも一部の情報を、所定の初期化動作で暗号化して書き換える情報書換手段を有するものであることを特徴とする集積回路。
【0195】
(付記29) 前記所定の初期化動作が、最初の電源投入時の初期化動作であることを特徴とする付記28記載の集積回路。
【0196】
(付記30) 前記情報書換手段は、乱数を発生させ、発生させた乱数を用いた暗号化パターンを採用して暗号化を行なうものであることを特徴とする付記28記載の集積回路。
【0197】
(付記31) 前記メモリに記憶された情報のうちの少なくとも一部の情報が、前記所定の初期化動作を実行する以前において既に暗号化されたものであって、
前記情報書換手段は、該少なくとも一部の情報を一旦暗号化前の情報に戻し異なる暗号化パターンを採用して再度暗号化を行なって書き換えるものであることを特徴とする付記28記載の集積回路。
【0198】
(付記32) 前記少なくとも一部の情報を暗号化前の情報に戻すための復号化情報が前記メモリに記憶されてなるものであって、
前記情報書換手段は、該少なくとも一部の情報を、該復号化情報を用いて一旦暗号化前の情報に戻すものであることを特徴とする付記31記載の集積回路。
【0199】
(付記33) 前記少なくとも一部の情報が公開鍵により暗号化されたものであるとともに、この集積回路は秘密鍵が埋め込まれてなるものであって、
前記情報書換手段は、該少なくとも一部の情報を該秘密鍵を用いて一旦暗号化前の情報に戻すものであることを特徴とする付記31記載の集積回路。
【0200】
(付記34) 前記少なくとも一部の情報を暗号化前の情報に戻すための、暗号化された形式の暗号化情報を外部より取得する情報取得部を備え、
前記情報書換手段は、前記情報取得部で取得された、暗号化された形式の復号化情報を復号化して平文の復号化情報を取り出しこの平文の復号化情報を用いて該少なくとも一部の情報を一旦暗号化前の情報に戻すものであることを特徴とする付記31記載の集積回路。
【0201】
【発明の効果】
以上、説明したように、本発明によれば、外付けされたデバイスにプログラムやデータ等を記憶させても、それらを第3者による不正なリバースエンジニアリング等の行為から守る事ができ、従来よりも高いセキュリティを保つことができる。
【図面の簡単な説明】
【図1】本発明の処理装置の第1実施形態を示すブロック図である。
【図2】図1に示す処理装置のメモリマップを示す図である。
【図3】図1に示す処理装置に電源が投入されたときに実行される初期化プログラムのフローチャートである。
【図4】本発明の処理装置の第2実施形態のブロック図である。
【図5】排他的論理和回路を示す図である。
【図6】スクランブル演算回路として採用することのできる回路構成を示した図である。
【図7】スクランブル演算回路として採用することのできる回路構成を示した図である。
【図8】スクランブル演算回路として採用することのできる回路構成を示した図である。
【図9】スクランブル演算回路として採用することのできる回路構成を示した図である。
【図10】特定のビットのみスクランブルをかけるためのマスクパターンが付加されたスクランブル演算回路の一例を示す図である。
【図11】特定のビットのみスクランブルをかけるためのマスクパターンが付加されたスクランブル演算回路のもう1つの例を示す図である。
【図12】図4に示す第2実施形態の処理装置におけるアドレスマップである。
【図13】データバススクランブルパターンメモリの構成を示す図である。
【図14】図4に示す処理装置における、電源投入時およびリセット時に動作するプログラムの一部を示した図である。
【図15】電源投入時に動作するプログラムの、フラッシュROMのスクランブルの部分を示すフローチャートである。
【図16】フラッシュROMにあらかじめスクランブルされたプログラムが書き込まれており、かつそのスクランブルを元に戻すのに必要な逆スクランブルパターンがフラッシュROM内に格納されて出荷されたときの、電源投入時に動作するプログラムの、フラッシュROMのスクランブルの部分を示すフローチャートである。
【図17】フラッシュROMについて工場出荷前にスクランブルしておき、そのスクランブルを解除するための逆スクランブルパターンを公開鍵Kpbにより暗号化してバックアップRAMに格納し、その状態で出荷された後の電源投入時に動作するプログラムの、フラッシュROMのスクランブルの部分を示すフローチャートである。
【図18】本発明の処理装置の第3実施形態のブロック図である。
【図19】図18に示す処理装置における電源投入時に実行されるプログラムの、フラッシュROMのスクランブルに関する部分のフローチャートである。
【図20】本発明の処理装置の第4実施形態のブロック図である。
【符号の説明】
1,5 処理装置
10,50 LSI
100 内部回路
101 中央処理装置(CPU)
102 内部メモリ
103 暗号化情報レジスタ
104 アドレスデコーダ
105 周辺回路
120 暗号化部
121 暗号化回路
122 バスインターフェース
123 乱数発生回路
200 外部回路
201 液晶表示装置(LCD)
202 キーボード(KB)
203 読出専用メモリ(ROM)
211 フラッシュROM
212 ランダムアクセスメモリ(RAM)
213 デバイス
214 逆暗号化回路
301,302 発振器
500 内部回路
501 CPU
502 内部メモリ
503 アドレスバススクランブル演算回路
504 アドレスバススクランブルパターンメモリ
505 データバススクランブル演算回路
506 データバススクランブルパターンメモリ
507 デコーダ回路
510 バスライン
511 アドレスバス
512 データバス
600 外部回路
601 RAM
602 フラッシュROM
603 通信制御回路
604 タンパ検出スイッチ
605 バックアップ用電池
700 鍵管理センター
800 通信回路網[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a processing apparatus including an internal circuit having a CPU and an internal device, and an external circuit including an external device externally attached to the internal circuit, and an external device mounted with the CPU and the internal device. The present invention relates to an integrated circuit that can be externally attached.
[0002]
[Prior art]
With recent developments in LSI technology, it has become possible to integrate a CPU that executes a program, a memory that stores a program executed by the CPU, and various other devices on a single chip. This greatly contributes to downsizing and cost reduction of the equipment. When manufacturing such an LSI, for a system that executes the same program regardless of the user and that does not need to be changed halfway after completion, a memory that stores the program on the LSI chip is installed. If it is necessary to execute a different program depending on the user, or if it is necessary to change the program while using it, an external memory is added to the LSI configured as described above. It is desirable that the program can be changed, and a program that may be changed during use or a program that differs depending on the user is stored in the external memory.
[0003]
[Problems to be solved by the invention]
However, in the case of a system in which such an external memory can be externally attached, the contents of the external memory are illegally rewritten, or the external memory stores a malicious program with the same specifications as the external memory. There is a risk that important programs and data stored in the internal memory are illegally accessed and the contents of the important programs and data are illegally decoded. An example is given below.
[0004]
In recent years, IC cards and magnetic cards that have cash value or cash-equivalent point value as data are rapidly spreading, and accordingly, it is urgent to ensure data security as a measure to prevent counterfeiting and alteration of cards. It has become to. In order to deal with this, attempts have been made in the past to prevent reverse analysis of the device, but despite these attempts, a back ROM or the like was created, and the device was unintentional by the developer. The current situation is that it is constantly abused for use.
[0005]
In view of the above circumstances, an object of the present invention is to provide a processing device and an integrated circuit in which unauthorized access and reverse analysis are prevented.
[0006]
[Means for Solving the Problems]
The first processing apparatus of the processing apparatus of the present invention that achieves the above-described object,
An internal circuit including a CPU that executes a program, one or more internal devices that perform each predetermined action, and a bus line that connects the CPU and the internal devices and extends to the outside and transmits addresses and data; and
An external circuit including one or more external devices each having a predetermined function, externally attached to an externally extending portion of the bus line;
Each area in which the internal circuit is interposed at the entrance / exit of the bus line, and addresses and data on the bus line are divided into a plurality of address spaces allocated to the entire one or more external devices. And an encryption unit for encrypting with each encryption pattern according to the above.
[0007]
Here, the encryption pattern employed in the encryption unit includes not encrypting both the address and the data as one encryption pattern.
[0008]
As described above, by dividing the address space into a plurality of parts and encrypting the divided areas with different patterns, it becomes difficult to analyze the encryption.
[0009]
In the first processing apparatus of the present invention, the external circuit includes a plurality of external devices,
It is preferable that the encryption circuit performs encryption with an encryption pattern corresponding to each of the plurality of external devices.
[0010]
Thus, for example, when a flash ROM is provided as one of the external devices, both the address and the data are encrypted with respect to the flash ROM, and a continuous address can be read at a high speed as one of the external devices. As for one of the external devices, only the data is encrypted so as not to degrade the performance, or the address is also encrypted, but the lower-order bits of the address are not encrypted, and one of the external devices is not encrypted. When the O device is provided, it is possible to perform encryption according to the characteristics of the external device, such as not encrypting addresses and data.
[0011]
In the first processing apparatus of the present invention, the encryption unit outputs a dummy address and data to a portion of the bus line extending to the outside at a timing when the external circuit is not accessed. Preferably there is.
[0012]
This makes unauthorized analysis more difficult.
[0013]
In the first processing device of the present invention, the CPU executes a program in synchronization with the supplied clock by supplying a clock, and the encryption unit also receives the clock. The encryption is performed in synchronization with the supplied clock, and it is preferable that the encryption unit includes a clock supply unit that supplies a clock faster than a clock supplied to the CPU.
[0014]
This enables complex encryption.
[0015]
Furthermore, the first processing apparatus of the present invention preferably includes an encryption pattern determining unit that recognizes the configuration of the external circuit and determines an encryption pattern in the encryption unit according to the configuration.
[0016]
By having this encryption pattern determining means, it is not necessary for the operator to determine the encryption pattern each time the configuration of the external circuit is different.
[0017]
Further, in the first processing device of the present invention, the encryption unit divides the address and data on the bus line into a plurality of address spaces allocated to the entire one or more external devices. It is preferable that encryption is performed with an encryption pattern corresponding to an area and to an application program executed by the CPU.
[0018]
As a result, the encryption pattern becomes more complicated and illegal analysis becomes more difficult.
[0019]
Further, in the first processing apparatus of the present invention, the reverse encryption is connected to the portion extending to the outside of the bus line and returns the encrypted address and data on the bus line to the address and data before encryption. It is preferable to provide a conversion unit.
[0020]
If debugging is performed without the reverse encryption unit, debugging is extremely difficult because addresses and data are encrypted. Therefore, by providing this reverse encryption unit, debugging can be easily performed during development of the device.
[0021]
This reverse encryption unit is unnecessary after debugging, and is preferably removed from the processing apparatus or fixed or destroyed in an inoperable state.
[0022]
Further, in the first processing apparatus of the present invention, a predetermined initialization operation is performed on any one of a plurality of areas obtained by dividing the address space allocated to the entire one or more external devices. It is preferable to have encryption pattern changing means for changing the encryption pattern each time.
[0023]
By resetting the encryption pattern at a predetermined initialization operation, for example, when the power is turned on or reset, illegal analysis becomes more difficult and security is further improved.
[0024]
Furthermore, in the first processing apparatus of the present invention, the encryption unit may be configured to use any one of a plurality of areas obtained by dividing an address space allocated to the entire one or more external devices. It is preferable that the data is encrypted by adopting an encryption pattern in which the encrypted data changes according to the address.
[0025]
In this way, by using an address function as an encryption function when encrypting data, complicated encryption becomes possible, illegal analysis becomes more difficult, and data security is further improved.
[0026]
The second processing device of the processing device of the present invention is
An internal circuit including a CPU that executes a program, one or more internal devices that perform each predetermined action, and a bus line that connects the CPU and the internal devices and extends to the outside and transmits addresses and data; and
An external circuit including a memory for storing information externally attached to a portion of the bus line that extends to the outside;
The internal circuit includes information rewriting means for encrypting and rewriting at least a part of information stored in the memory by a predetermined initialization operation.
[0027]
Here, the predetermined initialization operation is typically an initialization operation at the first power-on.
[0028]
As described above, the data security is further improved by encrypting and rewriting the memory contents in a predetermined initialization operation such as an initialization operation at the first power-on.
[0029]
In this case, it is preferable that the information rewriting means generates a random number and performs encryption using an encryption pattern using the generated random number.
[0030]
In this case, information is encrypted with an encryption pattern that is unknown to anyone including the person on the manufacturer side of the processing apparatus, and the data security is further improved.
[0031]
Here, in the second processing device, at least a part of the information stored in the memory is already encrypted before the predetermined initialization operation is performed,
It is also a preferred form that the information rewriting means is to rewrite at least a part of the information by temporarily returning it to the information before encryption, adopting a different encryption pattern, and performing encryption again.
[0032]
In this case, decryption information for returning at least a part of the information to the information before encryption is stored in the memory,
The information rewriting means may return at least a part of the information to the information before encryption once using the decryption information.
[0033]
Thus, security is further improved by encrypting with a different encryption pattern at the time of shipment from the factory.
[0034]
In addition, as described above, when encrypting with another encryption pattern at the time of factory shipment, at least a part of the above information is encrypted with a public key, and this processing apparatus has a secret key. It ’s embedded,
The information rewriting unit may return at least a part of the information to the information before the encryption using the secret key, or return the at least a part of the information to the information before the encryption. An information acquisition unit for acquiring decryption information in an encrypted format from the outside,
The information rewriting means decodes the decrypted information in the encrypted format obtained by the information obtaining unit, extracts plaintext decrypted information, and uses the plaintext decrypted information to at least part of the information described above. May be temporarily restored to the information before encryption.
[0035]
When a public key is used as an encryption pattern, information encrypted with the public key is written in a memory, and the information before encryption is restored with a secret key embedded therein, for example, a processing device of the same specification Can be secured by passing only the public key to each company.
[0036]
If the decryption information can be acquired from the outside, the decryption information can be obtained from the key management center or the like by communication or the like, and a flexible system configuration is possible.
[0037]
Furthermore, in the second processing device, the internal circuit holds an encryption pattern adopted by the encryption unit,
A tamper detection unit that performs tamper detection is provided.
It is preferable to include information destruction means for receiving the tamper detection by the tamper detection unit and destroying the encrypted pattern held in the internal circuit.
[0038]
Tamper detection is performed when this processing device is illegally opened or disassembled. By receiving the tamper detection and destroying the encryption pattern, unauthorized decryption becomes more difficult and security is further improved. Will contribute.
[0039]
The first integrated circuit of the present invention that achieves the above object connects a CPU that executes a program, one or more internal devices that perform predetermined actions, and the CPU and the internal devices. In addition, one or more external devices each having a predetermined function are externally attached to a portion extending to the outside, and a bus line for transmitting an address and data, and the bus line to the outside The space and space allocated to one or more external devices externally attached to the external portion of the bus line are divided into a plurality of areas intervening at the gateway and on the bus line. And an encryption unit that performs encryption with each corresponding encryption pattern.
[0040]
The first integrated circuit of the present invention has the above-described configuration, exhibits the same operational effects as the first processing apparatus of the present invention, and is an integrated circuit (LSI). Analysis is difficult, and this also contributes to security improvements.
[0041]
Here, in the first integrated circuit, as in the first processing apparatus of the present invention, the encryption pattern employed in the encryption unit typically includes both address and data encryption. That is not included in the encryption line is included as one encryption pattern, and when a plurality of external devices are externally attached to the portion of the bus line that extends to the outside, the encryption unit It is preferable to encrypt with an encryption pattern according to each device,
In addition, the encryption unit preferably outputs a dummy address and data to a portion of the bus line that extends to the outside at a timing when the external circuit is not accessed,
Further, an encryption pattern change for changing an encryption pattern every time a predetermined initialization operation is performed on any one of a plurality of areas obtained by dividing the address space allocated to the entire one or more external devices. Having a means is also a preferred form,
Further, the encryption unit may change the encrypted data depending on the address in any one of a plurality of areas obtained by dividing the address space allocated to the entire one or more external devices. It is also a preferred form that data is encrypted by adopting an encryption pattern.
[0042]
The second integrated circuit of the integrated circuits of the present invention connects the CPU that executes the program, one or more internal devices that perform each predetermined function, the CPU and the internal devices, and extends to the outside. And a bus line for transmitting an address and data to which the memory for storing information is externally attached to a portion extending to the outside, and at least a part of the information stored in the memory, It has an information rewriting means for encrypting and rewriting with a predetermined initialization operation.
[0043]
The second integrated circuit of the present invention has the above-described configuration, and the second processing apparatus of the present invention is similar to the relationship between the first processing apparatus of the present invention and the first integrated circuit of the present invention. Since this is an integrated circuit (LSI), it is difficult to analyze the circuit configuration and the like, and security is also improved from this point.
[0044]
Here, in the second integrated circuit, like the second processing apparatus of the present invention, the predetermined initialization operation is typically an initialization operation at the first power-on, and The information rewriting means preferably generates a random number and performs encryption by employing an encryption pattern using the generated random number.
Further, at least a part of the information stored in the memory is already encrypted before the predetermined initialization operation is performed,
It is also a preferred form that the information rewriting means is to rewrite at least a part of the information by temporarily returning it to the information before encryption, adopting a different encryption pattern, and performing encryption again.
[0045]
In the present invention, one encryption calculation method may be regarded as one of the encryption patterns referred to in the present invention, and the encryption pattern may be different due to different encryption calculation methods. The encryption patterns may be different because they are common and the variables used in the encryption calculation method are different.
[0046]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described.
[0047]
FIG. 1 is a block diagram showing a first embodiment of the processing apparatus of the present invention.
[0048]
The processing device 1 shown in FIG. 1 includes an internal circuit 100 mounted inside the LSI 10, an external circuit 200 externally attached to the LSI 10, and other oscillators 301 and 302. This LSI 10 corresponds to an embodiment of the integrated circuit of the present invention.
[0049]
An internal circuit 100 configured in the LSI 10 includes a central processing unit (CPU) 101, and an internal memory 102, an encryption information register 103, an address decoder 104, and the like, each of which is an internal device according to the present invention. Peripheral circuit 105. The CPU 101 and various internal devices are connected to each other via a bus line 110. This bus line includes an address bus 111 and a data bus 112 and extends to the outside of the LSI 10. Various external devices are connected to a portion 110a of the bus line 110 extending to the outside. The external device will be described later.
[0050]
The internal circuit 100 configured inside the LSI 10 is further provided with an encryption unit 120 so as to be interposed at the entrance / exit of the bus line 110 to the outside. The encryption unit 120 includes an encryption circuit 121, a bus interface 122, and a random number generation circuit 123.
[0051]
A clock signal from the oscillator 301 is input to the CPU 101, and the CPU 101 executes various programs in synchronization with the clock signal received from the oscillator 301.
[0052]
Further, the encryption circuit 121 receives a clock signal from another oscillator 302 that generates a clock signal having a higher repetition frequency than the clock signal input to the CPU 101, and the encryption circuit 121 receives the signal from the oscillator 302. Encryption processing is performed in synchronization with a clock signal having a high repetition frequency. Details of the encryption processing will be described later.
[0053]
The two oscillators 301 and 302 generate clock signals that are synchronized with each other. Therefore, each clock signal is generated by dividing a high-speed clock obtained by a common oscillation source. Also good.
[0054]
Further, in the portion 110a extending to the outside of the bus line 110, a plurality of external devices, that is, in the example shown in FIG. 1, a liquid crystal display device (LCD) 201, a keyboard (KB) 202, a read only memory (ROM). 203, a flash ROM 211, and a random access memory (RAM) 212 are connected. 1 is also connected to a device 213 having an encryption mechanism similar to that of the internal circuit 100, such as another LSI having the same configuration as the LSI 10 shown in FIG. A reverse encryption circuit 214 for debugging the program to be connected is also connected. The device 213 and the reverse encryption circuit 214 are shown together in FIG. 1 for their explanation, but the device 213 is between the LSI 10 and the device 213 having the same configuration as the LSI 10. It is connected when performing encrypted communication, and the reverse encryption circuit 214 is for debugging the program and is removed after the end of debugging.
[0055]
Here, LCD 201, KB 202, and ROM 203 in the embodiment shown in FIG. 1 also belong to an external device that does not encrypt both address and data, while flash ROM 211 and RAM are encrypted with respect to address or data. Belongs to the external device to be accessed. Here, the flash ROM 211 encrypts only data, and the RAM encrypts both address and data. The device 213 is also encrypted for both address and data, and encrypted communication with the LSI 10 is performed. When the reverse encryption circuit 214 is connected, the reverse encryption circuit 214 belongs to a device that does not encrypt both address and data in this embodiment.
[0056]
Here, the bus line 110 includes a portion connected to the CPU 101 (addresses and data of this portion are expressed as A1 and D1, respectively), and a portion sandwiched between the encryption circuit 121 and the bus interface 122 (of this portion). The address and data are expressed as A2 and D2, respectively, and a portion 110a extending outside the LSI 10 (the address and data of this portion are expressed as A3 and D3, respectively).
[0057]
FIG. 2 is a diagram showing a memory map of the processing apparatus shown in FIG.
[0058]
A plurality of application programs are stored in a flash ROM, which is one of the external devices, and an OS program is stored in an internal memory, which is one of the internal devices. In addition, the ROM, which is one of the external devices, records apparatus configuration information of the processing apparatus, such as the type of external device connected and the memory capacity.
[0059]
FIG. 3 is a flowchart of an initialization program executed when the processing apparatus shown in FIG. 1 is turned on. This initialization program is stored in the internal memory 102 as a kind of OS program, and is executed by the CPU 101 when the power is turned on.
[0060]
In the initialization program shown in FIG. 3, device configuration information stored in the ROM 203, which is one of the external devices, is first read (step a1), and a memory map as shown in FIG. 2 is created based on the information. At the same time, an encryption pattern is determined for each area of the memory map (step a2). However, the fact that neither the address nor the data is encrypted is included as one of the encryption patterns.
[0061]
In this initialization program, various other initialization processes are then performed (step a3).
[0062]
Returning to FIG. 1, the description will be continued.
[0063]
CPU 101 reads and writes information using address A1 and data D1. On the other hand, the external device is accessed using the address A3 and the data D3 regardless of whether the device requires encryption or does not require encryption (or encryption is prohibited).
[0064]
Prior to accessing the external device, the CPU 101 stores the area information of the area (encryption area) to be encrypted and the encryption pattern for each encryption area on the memory map shown in FIG. 103 is written.
[0065]
The address decoder 104 receives the address A1 and receives area information indicating the area to be encrypted from the encryption information register 103, outputs chip select signals CS0 to SC6 to the device to be accessed, and encrypts it. The circuit 121 outputs an encryption control signal Crp indicating which device is an access target and requires encryption.
[0066]
When the encryption circuit 121 receives the encryption control signal Crp from the address decoder and needs to encrypt the address A1 and the data D1 based on the information of the encryption pattern recorded in the encryption information register 103. Then, encryption corresponding to the encryption area is performed, and address A2 and data D2 are output. These address A2 and data D2 are output to the outside of the LSI 10 as address A3 and data D3 via the bus interface 123.
[0067]
An external bus access signal indicating whether or not an external device is an access target is transmitted from the CPU 101 to the bus interface 122. The bus interface 122 is output from the encryption circuit 121 when access to the external device is requested. The address A2 and the data D2 are output to the outside as the external address A3 and the data D3, and when there is no access request from the external device, a dummy address and data is generated based on the random number from the random number generation circuit 123. And output as external address A3 and data D3. By outputting dummy addresses and data in this way, illegal analysis is made more difficult.
[0068]
Here, the conversion of addresses and data from the inside to the outside has been described here. However, the data D3 read from the external flash memory 211, RAM 212, ROM 203, etc. is taken into the bus interface 122 as data D2. When the data is encrypted data, the encryption circuit 121 decrypts the encrypted data and transmits it to the CPU 101 or the like as the data D1 before encryption.
[0069]
Here, in the present embodiment, as an encryption pattern, in addition to an encryption pattern in which neither an address nor data is encrypted, for example,
(1) Type 1
A3 = A1 XOR p1
D3 = D1 XOR p1
(2) Type 2
A3 = A1
D3 = A1 + D1 + p1
(3) Type 3
For data that is the result of a type 2 operation, the upper and lower positions of the data are further switched.
The encryption pattern is adopted.
[0070]
Here, p1 is an appropriate constant obtained by, for example, a random number, and the like.
A XOR B means that an exclusive OR operation is performed for each bit corresponding to A and B, and A + B means an addition operation when A and B are regarded as numerical values.
[0071]
As described with reference to FIG. 3, in the initialization operation when the power is turned on, the CPU 101 reads the device configuration information stored in the ROM 203, which is one of the external devices, and displays a memory map as shown in FIG. The encryption pattern is determined for the encryption area, but as an example here, the flash ROM 211 encrypts only the data without encrypting the address. For example, in the above (2) An encryption pattern is employed, and the RAM 212 performs encryption for both address and data. For example, the encryption pattern (1) described above is employed.
[0072]
Here, for the RAM 212, since the type 1 encryption pattern of (1) above is adopted, for example, p1 = 0x5555 (0x means that the subsequent “5555” is a hexadecimal number). Then
A3 (0x5455)
= A1 (0x0100) XOR p1 (0x5555)
D3 (0x5476)
= D1 (0x0123) XOR p1 (0x5555)
As described above, both the address and data are completely different from the original address and data.
[0073]
Further, for the flash ROM 211, the above-described (2) type 2 encryption pattern is adopted, and assuming that p1 = 0x5555,
A3 (0x0100) = A1 (0x0100)
D3 (0x5778)
= A1 (0x0100) + D1 (0x0123) + p1 (0x5555)
As described above, the address is not changed, and the data is completely different from the original data. Here, since the data is encrypted using the function of the address A1, the encrypted data D3 differs depending on the address A1, even if the data D1 is the same, making illegal analysis more difficult. The security is further improved.
[0074]
The above is an example of calculation of the encryption pattern. When an address is encrypted, the address area of the device to be encrypted must not exceed the address area of another device. This is taken into account in the encryption algorithm.
[0075]
Further, for example, even in the same RAM 212, the encryption pattern for accessing the RAM 212 may be changed according to the application program executed by the CPU 101. In addition to selecting the encryption pattern according to the memory area (external device to be accessed) as described above, the encryption pattern can be selected according to the application program even in the same memory area (the same external device). If changed, the address and data output to the portion 110a extending to the outside of the bus line 110 are more complicatedly encrypted, making illegal analysis more difficult and further improving the security.
[0076]
Here, if the CPU 101 and the encryption circuit 121 are operating at the same clock, the encryption circuit 121 cannot perform a complicated encryption operation. For example, if the CPU 101 accesses the outside every clock, the encryption circuit 121 needs to finish the encryption process within one clock. For example, in the case of the type 3 encryption process (3) described above, it takes time for one clock to perform the type 2 encryption of (2), and further one clock worth for switching the upper and lower levels. If time is required and the time required for a total of 2 clocks is required, the encryption circuit 121 adopts the type 3 encryption pattern when it is necessary to finish the encryption process within 1 clock. It will not be possible.
[0077]
In the embodiment shown in FIG. 1, an oscillator 302 that generates a clock faster than an oscillator 301 that supplies a clock to the CPU 101 is provided, and the encryption circuit 121 operates in synchronization with the high-speed clock supplied from the oscillator 302. Therefore, for example, the type 3 encryption pattern (3) described above or a more complicated encryption pattern that requires a plurality of clocks can be employed.
[0078]
For example, if a 10 MHz clock is supplied to the CPU 101 and a 100 MHz clock is supplied to the encryption circuit 121, the encryption circuit can perform encryption processing using 10 clocks.
[0079]
Further, the internal circuit 100 of the processing apparatus shown in FIG. 1 is built in the LSI 10, and the address and data encrypted via the encryption circuit 121 and the bus interface 122 are received from the LSI 10. If it is output as it is, debugging of the program executed by the CPU 101 becomes extremely difficult when developing a product using the LSI 10. Therefore, a reverse encryption circuit 214 is connected to the processing apparatus shown in FIG.
[0080]
Prior to debugging, the reverse encryption circuit 214 is written with the encryption pattern and the encryption area information having the same content as the content written in the encryption information register 103 from the CPU 101. In the subsequent debugging, the encrypted address or data output to the portion 110a extending to the outside of the bus line 110 is decrypted based on the previously written encryption pattern and encryption area information. Restore addresses and data before encryption. By doing so, the address and data restored by the reverse encryption circuit 214 can be monitored by, for example, a measuring instrument, and the program executed by the CPU 101 can be easily debugged.
[0081]
If this reverse encryption circuit 214 is left as it is, the meaning of having encrypted the address and data for the purpose of making unauthorized analysis difficult will be lost. It will be removed after completion. Alternatively, it may be completely inoperable while attached thereto.
[0082]
In FIG. 1, a device 213 having an encryption mechanism similar to that of the LSI 10 is connected. In this way, when a plurality of LSIs 10 are combined, encrypted communication between LSIs on a substrate can be performed.
[0083]
FIG. 4 is a block diagram of a second embodiment of the processing apparatus of the present invention.
[0084]
The processing apparatus 5 shown in FIG. 4 includes an internal circuit 500 incorporated in the LSI 50 and an external circuit 600 externally attached to the outside of the LSI 50. The LSI 50 corresponds to an embodiment of the integrated circuit of the present invention.
[0085]
An internal circuit 500 built in the LSI 50 includes a CPU 501, an internal memory 502, an address bus scramble arithmetic circuit 503, an address bus scramble pattern memory 504, a data bus scramble arithmetic circuit 505, a data bus scramble pattern memory 506, and a decoder circuit 507. And are connected to each other by a bus line 510. The bus line 510 includes an address bus 511 and a data bus 512. Since the internal circuit 500 includes other internal devices, illustration and description thereof are omitted.
[0086]
Among the constituent elements shown in FIG. 4 of the internal circuit 500 built in the LSI 10, a composite of constituent elements excluding the CPU 501 and the internal memory 502, that is, an address bus scramble arithmetic circuit 503, an address bus scramble pattern memory 504, data A composite of the bus scramble operation circuit 505, the data bus scramble pattern memory 506, and the decoder circuit 507 corresponds to an example of the encryption unit according to the present invention.
[0087]
Further, the RAM 601 and the flash ROM 602 constituting the external circuit 600 are connected to a portion of the bus line that extends outside the LSI 50.
[0088]
An OS program is stored in the internal memory 502 constituting the internal circuit 500, and an application program is stored in the flash ROM 602 constituting the external circuit 500. The CPU 501 of the internal circuit 500 stores these various programs. Executed. Various data are stored in the RAM 601 constituting the external circuit 600 so as to be freely readable and writable.
[0089]
The address bus scramble arithmetic circuit 503 and the data bus scramble arithmetic circuit 505 are arithmetic circuits that scramble (encrypt) the addresses A0 to 15 and the data D0 to 7, respectively. The address bus scramble pattern memory 504 and the data bus scramble The pattern memory 506 stores scramble patterns used in scramble calculations in the address bus scramble calculation circuit 503 and the data bus scramble calculation circuit 505, respectively. These address bus scramble pattern memory 504 and data bus scramble pattern memory 506 are constituted by a nonvolatile memory or the like, and can retain the contents even when the power of the apparatus is turned off. The scramble pattern can be rewritten.
[0090]
In this embodiment, an exclusive OR circuit is employed for both the address bus scramble arithmetic circuit 503 and the data bus scramble arithmetic circuit 505.
[0091]
FIG. 5 is a diagram showing an exclusive OR circuit.
[0092]
The exclusive OR circuit shown in FIG. 5 (the address bus scramble operation circuit 503 or the data bus scramble operation circuit 506 shown in FIG. 4) is input via the bus line 510 (addresses A0 to 15 or data D0 to D7). ) Is input, and also the scramble pattern SP (SPA0-15 or SPD0-7) is input from the address bus scramble pattern memory 504 or the data bus scramble pattern memory 506 as an output OUT (SA0-15 or SP0-7). ,
OUT = IN XOR SP (1)
However, XOR represents exclusive OR.
Is output.
[0093]
Here, scramble can be prohibited by setting all bits to 0 in the scramble pattern SP, and scramble of the corresponding bits can be prohibited by setting some bits to 0. For example, if the lower 4 bits are always set to 0 in the 16-bit scramble pattern SP, the lower 4 bits are not scrambled (encrypted).
[0094]
In this embodiment, the address bus scramble arithmetic circuit 503 and the data bus scramble arithmetic circuit 505 (hereinafter collectively referred to simply as a scramble arithmetic circuit) are exclusively used to perform an arithmetic operation based on the above equation (1). Although an OR circuit is employed, various circuit configurations that can be employed as a scramble arithmetic circuit are exemplified below.
[0095]
6 to 9 are diagrams showing circuit configurations that can be employed as scramble arithmetic circuits.
[0096]
The scramble arithmetic circuit shown in FIG. 6 employs an adder circuit.
OUT = IN + SP (2)
Is calculated.
[0097]
FIG. 7 shows an adder circuit and an exclusive OR circuit.
here,
OUT = (IN + SP1) XOR SP2 (3)
However, SP1 and SP2 are two scramble patterns which are different or the same.
Is calculated.
[0098]
FIG. 8 shows an exclusive OR circuit and a bit exchange circuit. Here,
OUT = (IN XOR SP) m (4)
(After performing an exclusive OR operation, the upper and lower bits are replaced by m bits)
Is calculated.
[0099]
Further, FIG. 9 shows an addition circuit and an exclusive OR circuit, where OUT = (IN (data) + IN (address)) XOR SP (5)
However, IN (data) is data on the data bus, and IN (address) is an address on the address bus.
Is calculated. However, the calculation based on the equation (5) can be adopted as the data bus scramble calculation circuit 505, and if an address is used to scramble the data, an extremely complicated scramble is performed which is more difficult to perform illegal analysis. Will be.
[0100]
10 and 11 are diagrams showing examples of the scramble arithmetic circuit to which a mask pattern for scrambling only specific bits is added.
[0101]
The scramble arithmetic circuit shown in FIG. 10 includes one inverting circuit, two logical product circuits, and one adder circuit. In this circuit,
OUT = (IN and M) + SP + (IN and (not M)) (6)
Is calculated.
[0102]
Here, M represents a mask pattern, and a bit set to 0 in the mask pattern M is not scrambled. For example, when the lower 4 bits of 16 bits are prohibited from being scrambled, 0xFFF0 is set as the mask pattern M.
[0103]
Further, the scramble operation circuit shown in FIG. 11 is one in which one inversion circuit, two logical product circuits, two addition circuits, and one exclusive OR circuit are connected as shown in FIG. Then
OUT = (((IN and M) + SP1) XOR SP2)
+ (IN and (not M)) (7)
Is calculated.
[0104]
As illustrated above, various arithmetic circuits can be employed as the scramble arithmetic circuit.
[0105]
FIG. 12 is an address map in the processing apparatus 5 of the second embodiment shown in FIG.
[0106]
In FIG. 4, only one RAM is shown as a representative, but actually a work RAM and a backup RAM are provided, and an address area (work RAM area) of 0x00000 to 0x0FFFF is allocated to the work RAM. The backup RAM is backed up by a battery or the like even when the apparatus is powered off, and the contents are retained.
[0107]
Further, 0x20000 to 0x2FFFF is an IO area, and 0x30000 to 0x3FFFF is a flash ROM area. Various application programs are stored in the flash ROM. The address bus scramble pattern memory 504 and the data bus scramble pattern memory 506 shown in FIG. 4 are allocated to the IO area (0x2XXXX area).
[0108]
Here, the decoder circuit shown in FIG. 4 performs the write enable signal * WEPMD of the data bus scramble pattern memory 506 and the write enable signal of the address bus scramble pattern memory 504 according to the truth table of Table 1 based on the addresses A4 to A19. * Outputs WEPMA.
[0109]
[Table 1]
Figure 0004683442
[0110]
Table 1 shows that the data bus scramble pattern memory 506 is in a writable state (* WEPMD = 0) when 0x2000X, and the address bus scramble pattern memory 504 is in a writable state (* WEPMA = 0) when 0x2001X. Means.
[0111]
FIG. 13 is a diagram showing a configuration of the data bus scramble pattern memory 506. The data bus scramble pattern memory 506 includes two decoders (decoder 1 and decoder 2) and four data latches (data latches 0 to 3). The data latches 0 to 3 are storage areas for scramble patterns for scrambling the data in the work RAM, backup RAM, IO, and flash ROM, respectively. As shown in Table 4 shown below, addresses 0x2000 and 0x2001, respectively. , 0x2002, 0x2003 are assigned.
[0112]
The decoder 1 is a circuit that generates the output enable signals * OE0 to * OE3 for selectively outputting the scramble patterns stored in the data latches 0 to 3, respectively. The logical configuration shown is as follows.
[0113]
[Table 2]
Figure 0004683442
[0114]
The decoder 2 is a circuit for generating write enable signals * WE0 to * WE3 for writing a new scramble pattern to the data latches 0 to 3, and has a logical configuration shown in the truth table of Table 3. Yes.
[0115]
[Table 3]
Figure 0004683442
[0116]
The data latches 0 to 3 store the data D0 to D7 output to the data bus 512 at the timing when the write enable signals * WE0 to 3 corresponding to the respective data latches 0 to 3 become 0, and also output the corresponding outputs. When the enable signal * OE0-3 becomes 0, the stored scramble pattern is output as data of SPD0-7. Here, when all of the output enable signals * OE0 to OE3 are 1, all bits of the data of SPD0 to SPD7 are 0.
[0117]
In this embodiment, the data on the data bus 512 is 8 bits wide (D0 to 7), whereas the address bus 511 is 16 bits wide (excluding the extension bits SA16 to 19 that are not related to scrambling ( A0 to A15). FIG. 13 shows the configuration of the data bus scramble pattern memory 506. The address bus scramble pattern memory 504 has data latches 0 to 3 shown in FIG. It has a 2-byte configuration, and the address for selecting each data latch is 4 bits of A0-3 (in the case of the data bus scramble pattern memory 506 shown in FIG. 13, the address for selecting the data latch is 2 of A0-1 The configuration is the same as the configuration of the data bus scramble pattern memory 506 shown in FIG. 13, and the illustration of the address bus scramble pattern memory 504 and further description thereof are omitted.
[0118]
In this embodiment, the addresses shown in Table 4 are assigned to the data latches 0 to 3 of the data bus scramble pattern memory 506 and the data latches of the address bus scramble pattern memory 504, and each address is assigned to each address. A scramble pattern for executing the scramble is written for each target area of the scramble corresponding to the scramble pattern, and the scramble pattern written in each data latch is sent to the scramble arithmetic circuit according to the address information (A0-19) output from the CPU 501. Is output.
[0119]
[Table 4]
Figure 0004683442
[0120]
Table 5 is a table showing a setting example of the pattern memory in the present embodiment.
[0121]
[Table 5]
Figure 0004683442
[0122]
The RAM employed in the present embodiment is an element that can be accessed at high speed when accessed with consecutive addresses for the lower 4 bits. Therefore, as shown in Table 5, the lower 4 bits of the RAM address bus scramble pattern are used. The bit is set to 0 (meaning that scramble is not performed), and a high access speed in the case of continuous memory access from the CPU is guaranteed.
[0123]
In addition, in the IO space, all bits are set to 0 in order to prohibit scrambling.
[0124]
FIG. 14 is a diagram showing a part of a program that operates at the time of power-on and reset in the processing apparatus shown in FIG.
[0125]
Here, a 16-bit random number RA and an 8-bit random number RD are generated (steps b1 and b2), and a logical product operation result of the 16-bit random number RA and 0xFFF0 is written to addresses 0x20008 to 9 ((step b3) 8-bit random number RD is written to address 0x20000. As shown in Table 4, addresses 0x20008 to 9 are storage areas for address bus scramble patterns for work RAM, and address 0x20000 is a storage area for data bus scramble patterns for work RAM. It is.
[0126]
That is, here, the scramble pattern of the work RAM is changed every time the power is turned on or reset, which also helps to make unauthorized analysis from the outside more difficult.
[0127]
The backup RAM and flash ROM need to be consistent with the data and programs stored there, so that the predetermined scramble pattern is maintained as it is, and even if the power is turned on again or reset, the scramble The pattern is not changed.
[0128]
The flash ROM can be left unscrambled when writing at the factory. In that case, when the power is turned on for the first time after shipment, scrambling is performed according to the following procedure.
[0129]
FIG. 15 is a flowchart showing the scrambled portion of the flash ROM of the program that operates when the power is turned on.
[0130]
Here, first, a scramble presence / absence flag indicating whether or not the contents of the flash ROM are scrambled is checked. This scramble presence / absence flag is stored at a predetermined address of the backup RAM, and this scramble presence / absence flag is set to “none” at the time of writing at the factory.
[0131]
The confirmation of the scramble presence / absence flag is for determining whether or not the content of the flash ROM has already been scrambled. Instead of setting the scramble presence / absence flag, the scramble pattern corresponding to the flash ROM is read and the scramble pattern is read. It may be determined that scrambling has not yet been performed if all the bits in FIG.
[0132]
If it is determined in step c1 that the scramble presence / absence flag is set to scramble “none”, the process proceeds to step c2, and the contents of the flash ROM are copied to the RAM. A program for performing the following processing is written in a part of the flash ROM.
[0133]
Next, control is transferred to a program for performing the following processing among the programs copied to the RAM, the flash ROM is erased (step c4), and a 16-bit random number RA and an 8-bit random number RD are generated ( Steps c5 and c6), a 16-bit random number RA is written to the addresses 0x2000E to F as a flash ROM address scramble pattern, and an 8-bit random number RD is written to the address 0x20003 as a flash ROM data scramble pattern (see Table 4). Steps c7, c8).
[0134]
Next, the program copied to the RAM in step c2 is scrambled with the address scramble pattern and the data scramble pattern written to the addresses 0x2000E to F and address 0x20003, and written back to the flash ROM (step c9), and the flash ROM scramble The presence / absence flag is changed to “present” (step c10).
[0135]
By doing so, the contents of the flash ROM are scrambled at the first power-on.
[0136]
Further, it may be scrambled with a specific scramble pattern at the time of factory shipment, and re-scrambled with another scramble pattern when the power is first turned on. In this case, the descrambling pattern for restoring the contents scrambled at the time of shipment from the factory (here, the scramble pattern itself can be restored by referring to the scramble pattern) is written in the scramble pattern memory. It may be stored in the flash ROM. If the data is written in the flash ROM, there is an advantage that the scramble pattern memory does not need to be backed up with a battery or the like at the time of shipment from the factory.
[0137]
FIG. 16 shows the operation when the power is turned on when a pre-scrambled program is written in the flash ROM, and a scramble pattern necessary to restore the scramble is stored in the flash ROM and shipped. 3 is a flowchart showing a flash ROM scramble part of a program to be executed. This program is a program executed in place of the program shown in FIG.
[0138]
In step d1, a scramble presence / absence flag indicating whether or not the flash ROM has already been scrambled is referred to except for the scramble before factory shipment. When not scrambled yet, except for scramble before factory shipment, steps d2 to d12 are executed.
[0139]
In steps d2 and d3, the address bus scramble pattern SPA0 and the data bus scramble pattern SPD0 stored in the flash ROM are written to the addresses 0x2000E to F and the address 0x20003, respectively (see Table 4).
[0140]
Next, in step d4, the contents of the flash ROM are restored to the state before being scrambled based on the scramble patterns SPA0 and SPD0 and copied to the RAM.
[0141]
The subsequent steps d5 to d12 are the same as the respective steps c3 to c10 in FIG.
[0142]
When the program shown in FIG. 16 is executed, the contents of the flash ROM are scrambled again with the random numbers RA and RB newly generated when the power is first turned on as an address scramble pattern and a data scramble pattern. Retained.
[0143]
Here, the above example is an example in which the scramble pattern is written in the flash ROM. For example, the contents of the flash ROM are scrambled with a separate scramble pattern for each product before shipment from the factory. The descrambling pattern for descrambling may be encrypted by a specific encryption process and written in an area other than the flash ROM, such as a backup RAM. At that time, the decryption processing procedure for returning the encrypted scramble pattern to the pre-encryption scramble pattern is also embedded in any area inside the LSI 50.
[0144]
As the encryption processing, for example, a public key cryptosystem (for example, RAS) can be used. That is, the descrambling pattern encrypted with the public key (Kpb) is written in the flash ROM or other memory, and the encrypted scramble pattern is embedded in any area in the LSI 50 (the secret key ( Decrypt with Kpv). In the case of such a system, even when the LSI 50 having the same specification is used by a plurality of companies, only the public key is given to each company and the secret key is hidden, so that security between companies can be ensured. .
[0145]
FIG. 17 shows that the flash ROM is scrambled before shipment from the factory, the scramble pattern for releasing the scramble is encrypted with the public key Kpb, stored in the backup RAM, and when the power is turned on after being shipped in that state. It is a flowchart which shows the scramble part of flash ROM of the program which operate | moves.
[0146]
In steps e2 and e3, the address bus scramble pattern Kpb (SPA0) encrypted with the public key is read from the backup RAM, decrypted with the secret key Kpv embedded in the LSI, and the plaintext address. The bus scramble pattern SPA0 is taken out.
[0147]
In steps e4 and e5, the data bus scrambled pattern Kpb (SPD0) encrypted with the public key is read from the backup RAM, decrypted with the secret key Kpv embedded in the LSI, and plaintext. The data bus scramble pattern is extracted.
[0148]
In steps e6 and e7, the plaintext address bus scramble pattern SPA0 and the plaintext data bus scramble pattern SPD0 obtained as described above are written to addresses 0x2000E to F and address 0x20003, respectively (see Table 4).
[0149]
The subsequent steps e8 to e16 are the same as the respective steps d4 to d12 in FIG.
[0150]
FIG. 18 is a block diagram of a third embodiment of the processing apparatus of the present invention.
[0151]
Differences from the second embodiment shown in FIG. 4 will be described.
[0152]
In the third embodiment, the external circuit 600 includes a RAM 601 and a flash ROM 602 similar to those in the second embodiment of FIG. 4, and further includes a communication control circuit 603.
[0153]
The communication control circuit 603 is connected to the key management center 700 via the communication network 800. The flash ROM 602 stores a program that has been scrambled before shipment from the factory. When the power is first turned on, the encryption / decryption scramble pattern is transmitted from the key management center 700 via the communication circuit network 800. Configured to receive.
[0154]
FIG. 19 is a flowchart of the portion of the program executed when the power is turned on in the processing apparatus shown in FIG.
[0155]
Step f1 in FIG. 19 is the same as step e1 in FIG.
[0156]
In step f2, connection to the key management center is performed. In step f3, the address bus scramble pattern kpb (SPA0) and the data bus scramble pattern Kpb (SPD0) in the form encrypted with the public key Kpb are sent from the key management center. Downloaded.
[0157]
In steps f4 and f5, the encrypted address bus scramble pattern Kpb (SPA0) and the encrypted data bus scramble pattern Kpb (SPD0) are respectively decrypted by the secret key Kpv embedded in the LSI. Thus, the plaintext address bus scramble pattern SPA0 and the data bus scramble pattern SPD0 are extracted.
[0158]
The subsequent steps f6 to f16 are the same as the respective steps e6 to e16 in FIG.
[0159]
As described above, the scramble pattern can be obtained from the outside such as the key management center through communication, thereby ensuring the flexibility of the system.
[0160]
FIG. 20 is a block diagram of a fourth embodiment of the processing apparatus of the present invention.
[0161]
Differences from the second embodiment shown in FIG. 4 will be described.
[0162]
In the fourth embodiment shown in FIG. 20, the external circuit 600 is provided with a RAM 601 and a lash ROM 602 similar to those in the second embodiment of FIG. 4, as well as a tamper detection switch 604, and a backup. A battery 605 is explicitly shown.
[0163]
The address bus scramble pattern memory 504 and the data bus scramble pattern memory 506 are backed up so that the contents are not erased by the power from the backup battery 605 even when the power is turned off.
[0164]
Here, when the processing device 5 is opened improperly, the tamper detection switch 604 works, the power supply path from the backup battery 605 is cut off, and stored in the address bus scramble pattern memory 504 and the data bus scramble pattern memory 506. The address bus scramble pattern and the data bus scramble pattern which have been set are erased, and the operation of the processing apparatus becomes impossible. By doing so, unauthorized analysis is more reliably prevented.
[0165]
In each of the above embodiments, a circuit built inside one LSI is called an internal circuit, and a set of devices externally attached to the outside of the LSI is called an external circuit. It is not necessary to be mounted on one LSI. For example, the LSIs are distributed and mounted on a plurality of LSIs, and the plurality of LSIs are packaged in one integrated circuit package, or the plurality of LSIs are molded integrally. In this case, the entire circuit distributed and mounted on the plurality of LSIs may be referred to as an internal circuit.
[0166]
Hereinafter, various aspects of the present invention will be additionally described.
[0167]
(Supplementary Note 1) Includes a CPU that executes a program, one or more internal devices that perform each predetermined action, and a bus line that connects the CPU and the internal devices and extends to the outside and transmits addresses and data Internal circuitry, and
An external circuit including one or more external devices each having a predetermined function, externally attached to a portion extending to the outside of the bus line;
The internal circuit is interposed at the entrance / exit of the bus line, and addresses and data on the bus line are divided into a plurality of areas divided into address spaces allocated to the entire one or more external devices. A processing apparatus comprising: an encryption unit that performs encryption with each corresponding encryption pattern.
[0168]
(Supplementary note 2) The processing apparatus according to supplementary note 1, wherein the encryption pattern employed in the encryption unit includes not encrypting both addresses and data as one encryption pattern.
[0169]
(Supplementary Note 3) The external circuit includes a plurality of external devices,
The processing apparatus according to appendix 1, wherein the encryption unit encrypts with an encryption pattern corresponding to each of the plurality of external devices.
[0170]
(Additional remark 4) The said encryption part outputs a dummy address and data to the part extended to the exterior of the said bus line at the timing when the said external circuit is not accessed. The processing apparatus according to 1.
[0171]
(Supplementary Note 5) The CPU executes the program in synchronization with the supplied clock supplied with the clock, and the encryption unit also encrypts in synchronization with the supplied clock. Is to perform
The processing apparatus according to appendix 1, wherein the encryption unit includes a clock supply unit that supplies a clock faster than a clock supplied to the CPU.
[0172]
(Additional remark 6) The processing apparatus of Additional remark 1 characterized by having an encryption pattern determination means which recognizes the structure of the said external circuit, and determines the encryption pattern in the said encryption part according to the structure.
[0173]
(Additional remark 7) The said encryption part respond | corresponds to each area | region which divided | segmented the address space allocated to the said one or more external devices into several into the address and data on the said bus line, and is performed by said CPU The processing apparatus according to appendix 1, wherein encryption is performed using an encryption pattern corresponding to an application program.
[0174]
(Additional remark 8) It was connected to the part extended to the exterior of the said bus line, The reverse encryption part which returns the encrypted address and data on this bus line to the address and data before encryption is provided. The processing apparatus according to appendix 1.
[0175]
(Additional remark 9) Encryption which changes an encryption pattern every time of predetermined | prescribed initialization operation | movement about either area | region of the some area | region which divided | segmented the address space allocated to the said one or more external device whole into plurality The processing apparatus according to appendix 1, further comprising pattern changing means.
[0176]
(Additional remark 10) The said encryption part is the data after encryption according to an address about either area | region of the some area | region which divided | segmented the address space allocated to the said at least 1 or more external device into plurality. 2. The processing apparatus according to appendix 1, wherein the data is encrypted by adopting an encryption pattern that changes.
[0177]
(Supplementary Note 11) Includes a CPU that executes a program, one or more internal devices that perform each predetermined action, and a bus line that connects the CPU and the internal devices and extends to the outside and transmits addresses and data Internal circuitry, and
An external circuit including a memory for storing information externally attached to a portion of the bus line that extends to the outside;
The processing apparatus, wherein the internal circuit includes information rewriting means for encrypting and rewriting at least a part of information stored in the memory by a predetermined initialization operation.
[0178]
(Supplementary note 12) The processing apparatus according to supplementary note 1, wherein the predetermined initialization operation is an initialization operation when power is first turned on.
[0179]
(Additional remark 13) The said information rewriting means produces | generates a random number, employ | adopts the encryption pattern using the generated random number, and encrypts, The processing apparatus of Additional remark 11 characterized by the above-mentioned.
[0180]
(Supplementary Note 14) At least a part of the information stored in the memory has already been encrypted before the predetermined initialization operation is performed,
12. The processing apparatus according to claim 11, wherein the information rewriting means temporarily reverts the at least part of the information to information before encryption, adopts a different encryption pattern, re-encrypts, and rewrites the information. .
[0181]
(Supplementary Note 15) Decryption information for returning the at least part of the information to the information before encryption is stored in the memory,
15. The processing apparatus according to appendix 14, wherein the information rewriting means returns at least a part of the information to the information before encryption once using the decryption information.
[0182]
(Supplementary Note 16) The at least part of the information is encrypted with a public key, and the processing apparatus is an embedded secret key,
15. The processing apparatus according to appendix 14, wherein the information rewriting unit is configured to return the at least part of the information to the information before encryption once by using the secret key.
[0183]
(Additional remark 17) The information acquisition part which acquires the decryption information of the encrypted format for returning the said at least one part information to the information before encryption from the outside,
The information rewriting means decrypts the decryption information in the encrypted format acquired by the information acquisition unit, extracts plaintext decryption information, and uses the plaintext decryption information to use the at least part of the information. 15. The processing apparatus according to appendix 14, wherein the information is temporarily returned to the information before encryption.
[0184]
(Supplementary Note 18) The internal circuit holds an encryption pattern employed by the encryption unit, and
A tamper detection unit that performs tamper detection is provided.
The processing apparatus according to appendix 1 or 11, further comprising information destruction means for destroying an encrypted pattern held in the internal circuit upon receiving tamper detection by the tamper detection unit.
[0185]
(Supplementary Note 19) A CPU that executes a program, one or more internal devices that perform predetermined operations, and the CPU and the internal devices are connected to each other and extended to the outside. One or more external devices having the following functions are externally connected to the bus line for transmitting addresses and data, and the bus lines are provided at the entrance to the outside, and the addresses and data on the bus lines are Equipped with an encryption unit that encrypts the space allocated to one or more external devices externally attached to the external part of the bus line with each encryption pattern corresponding to each area divided into a plurality of areas An integrated circuit characterized by being made.
[0186]
(Supplementary note 20) The integrated circuit according to supplementary note 18, wherein the encryption pattern employed by the encryption unit includes not encrypting both addresses and data as one encryption pattern.
[0187]
(Supplementary Note 21) When a plurality of external devices are externally attached to a portion of the bus line that extends to the outside, the encryption unit encrypts with an encryption pattern corresponding to each of the plurality of external devices. Item 20. The integrated circuit according to item 19, wherein
[0188]
(Additional remark 22) The said encryption part outputs a dummy address and data to the part extended to the exterior of the said bus line at the timing when the said external circuit is not accessed. 19. An integrated circuit according to item 19.
[0189]
(Supplementary Note 23) The CPU executes a program in synchronization with a supplied clock supplied with the clock, and the encryption unit also encrypts in synchronization with the supplied clock. Is to perform
The integrated circuit according to appendix 19, wherein the encryption unit operates with a clock faster than a clock for operating the CPU.
[0190]
(Supplementary note 24) The integrated circuit according to supplementary note 19, further comprising: an encryption pattern determining unit that recognizes a configuration of the external circuit and determines an encryption pattern in the encryption unit according to the configuration.
[0191]
(Supplementary Note 25) The encryption unit responds to each area obtained by dividing an address space assigned to the entire one or more external devices into addresses and data of the bus line and is executed by the CPU 20. The integrated circuit according to appendix 19, wherein the integrated circuit is encrypted with an encryption pattern corresponding to the program.
[0192]
(Supplementary Note 26) Encryption for changing an encryption pattern every time a predetermined initialization operation is performed for any one of a plurality of areas obtained by dividing an address space allocated to the entire one or more external devices. The integrated circuit according to appendix 19, further comprising pattern changing means.
[0193]
(Additional remark 27) The said encryption part is the data after encryption according to an address about any area | region of the some area | region which divided the address space allocated to the said at least 1 or more external device into plurality. 20. The integrated circuit according to appendix 19, wherein the data is encrypted by adopting an encryption pattern that changes.
[0194]
(Supplementary Note 28) A CPU that executes a program, one or more internal devices that perform each predetermined action, and connects the CPU and the internal devices and extends to the outside, and information is transmitted to a portion that extends to the outside. And a bus line for transmitting an address and data, to which an external memory is stored, and
An integrated circuit comprising information rewriting means for encrypting and rewriting at least a part of information stored in the memory by a predetermined initialization operation.
[0195]
(Supplementary note 29) The integrated circuit according to supplementary note 28, wherein the predetermined initialization operation is an initialization operation upon first power-on.
[0196]
(Supplementary note 30) The integrated circuit according to supplementary note 28, wherein the information rewriting means generates a random number and performs encryption by employing an encryption pattern using the generated random number.
[0197]
(Supplementary Note 31) At least a part of the information stored in the memory is already encrypted before the predetermined initialization operation is performed,
29. The integrated circuit according to appendix 28, wherein the information rewriting means temporarily reverts the at least part of the information to information before encryption, adopts a different encryption pattern, re-encrypts and rewrites the information. .
[0198]
(Supplementary Note 32) Decryption information for returning the at least part of the information to the information before encryption is stored in the memory,
32. The integrated circuit according to appendix 31, wherein the information rewriting unit is configured to return the at least part of the information to the information before encryption once using the decryption information.
[0199]
(Supplementary Note 33) The at least part of the information is encrypted with a public key, and the integrated circuit is embedded with a secret key,
32. The integrated circuit according to appendix 31, wherein the information rewriting means is configured to return the at least part of the information to the information before encryption once using the secret key.
[0200]
(Additional remark 34) The information acquisition part which acquires the encryption information of the encrypted format for returning the said at least one part information to the information before encryption from the outside,
The information rewriting means decrypts the decryption information in the encrypted format acquired by the information acquisition unit, extracts plaintext decryption information, and uses the plaintext decryption information to use the at least part of the information. 32. The integrated circuit according to appendix 31, wherein the information is temporarily returned to the information before encryption.
[0201]
【The invention's effect】
As described above, according to the present invention, even when programs, data, etc. are stored in an external device, they can be protected from illegal acts such as reverse engineering by a third party. Even high security can be maintained.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a first embodiment of a processing apparatus of the present invention.
FIG. 2 is a diagram showing a memory map of the processing device shown in FIG. 1;
FIG. 3 is a flowchart of an initialization program that is executed when the processing apparatus shown in FIG. 1 is powered on;
FIG. 4 is a block diagram of a second embodiment of the processing apparatus of the present invention.
FIG. 5 is a diagram showing an exclusive OR circuit.
FIG. 6 is a diagram showing a circuit configuration that can be employed as a scramble arithmetic circuit.
FIG. 7 is a diagram showing a circuit configuration that can be employed as a scramble arithmetic circuit.
FIG. 8 is a diagram showing a circuit configuration that can be employed as a scramble arithmetic circuit.
FIG. 9 is a diagram showing a circuit configuration that can be employed as a scramble arithmetic circuit.
FIG. 10 is a diagram illustrating an example of a scramble arithmetic circuit to which a mask pattern for scrambling only specific bits is added.
FIG. 11 is a diagram illustrating another example of a scramble arithmetic circuit to which a mask pattern for scrambling only specific bits is added.
FIG. 12 is an address map in the processing apparatus of the second embodiment shown in FIG. 4;
FIG. 13 is a diagram showing a configuration of a data bus scramble pattern memory.
14 is a diagram showing a part of a program that operates when power is turned on and reset in the processing apparatus shown in FIG. 4; FIG.
FIG. 15 is a flowchart showing a scramble part of a flash ROM of a program that operates when power is turned on.
FIG. 16 shows an operation when the power is turned on when a pre-scrambled program is written in the flash ROM and a descrambling pattern necessary to restore the scramble is stored in the flash ROM and shipped. 3 is a flowchart showing a flash ROM scramble part of a program to be executed.
FIG. 17 shows that the flash ROM is scrambled before shipment from the factory, the descrambling pattern for releasing the scramble is encrypted with the public key Kpb, stored in the backup RAM, and turned on after being shipped It is a flowchart which shows the scramble part of flash ROM of the program which operate | moves sometimes.
FIG. 18 is a block diagram of a third embodiment of the processing apparatus of the present invention.
FIG. 19 is a flowchart of a portion related to flash ROM scrambling of a program executed at power-on in the processing apparatus shown in FIG. 18;
FIG. 20 is a block diagram of a fourth embodiment of the processing apparatus of the present invention.
[Explanation of symbols]
1,5 processing equipment
10, 50 LSI
100 Internal circuit
101 Central processing unit (CPU)
102 Internal memory
103 Encryption information register
104 Address decoder
105 peripheral circuit
120 Encryption section
121 Encryption circuit
122 Bus interface
123 Random number generator
200 External circuit
201 Liquid crystal display (LCD)
202 Keyboard (KB)
203 Read-only memory (ROM)
211 Flash ROM
212 Random access memory (RAM)
213 devices
214 Decryption Circuit
301,302 Oscillator
500 Internal circuit
501 CPU
502 Internal memory
503 Address bus scramble arithmetic circuit
504 Address bus scramble pattern memory
505 Data bus scramble arithmetic circuit
506 Data bus scramble pattern memory
507 decoder circuit
510 bus line
511 Address bus
512 data bus
600 External circuit
601 RAM
602 Flash ROM
603 Communication control circuit
604 tamper detection switch
605 Backup battery
700 Key Management Center
800 Communication network

Claims (12)

プログラムを実行するCPUと、各所定の作用を成す1つ以上の内部デバイスと、前記CPUと前記内部デバイスとを結ぶとともに外部にまで延びアドレスおよびデータを伝達するバスラインとを含む内部回路、および
前記バスラインの、外部に延びた部分に外付けされた、各所定の作用を成す1つ以上の外部デバイスを含む外部回路を備え、
前記内部回路が、前記バスラインの、外部への出入口に介在し、該バスライン上のアドレスおよびデータを、前記1つ以上の外部デバイス全体に割り当てられたアドレス空間を複数に分けた各領域に応じた各暗号化パターンで暗号化する暗号化部を含むものであり、
前記暗号化部は、前記外部回路がアクセスされていないタイミングで、前記バスラインの、外部に延びた部分に、ダミーのアドレスおよびデータを出力するものであることを特徴とする処理装置。
An internal circuit including a CPU that executes a program, one or more internal devices that perform each predetermined action, and a bus line that connects the CPU and the internal devices and extends to the outside and transmits addresses and data; An external circuit including one or more external devices each having a predetermined function, externally attached to an externally extending portion of the bus line;
The internal circuit is interposed at the entrance / exit of the bus line, and addresses and data on the bus line are divided into a plurality of areas divided into address spaces allocated to the entire one or more external devices. all SANYO including encryption unit for encrypting at the encryption pattern corresponding,
The processing apparatus, wherein the encryption unit outputs a dummy address and data to a portion of the bus line extending to the outside at a timing when the external circuit is not accessed .
前記外部回路が複数の外部デバイスを含むものであり、
前記暗号化部は、前記複数の外部デバイスそれぞれに応じた暗号化パターンで暗号化するものであることを特徴とする請求項1記載の処理装置。
The external circuit includes a plurality of external devices;
The processing apparatus according to claim 1, wherein the encryption unit performs encryption with an encryption pattern corresponding to each of the plurality of external devices.
前記CPUは、クロックの供給を受け供給されたクロックに同期してプログラムを実行するものであるとともに、前記暗号化部も、クロックの供給を受け供給されたクロックに同期して暗号化を行なうものであって、
前記暗号化部に、前記CPUに供給されるクロックよりも高速なクロックを供給するクロック供給部を備えたことを特徴とする請求項1記載の処理装置。
The CPU executes the program in synchronization with the supplied clock by supplying the clock, and the encryption unit also performs the encryption in synchronization with the supplied clock. Because
The processing apparatus according to claim 1 , wherein the encryption unit includes a clock supply unit that supplies a clock faster than a clock supplied to the CPU .
前記外部回路の構成を認識し、その構成に応じて、前記暗号化部における暗号化パターンを決定する暗号化パターン決定手段を有することを特徴とする請求項1記載の処理装置。The processing apparatus according to claim 1 , further comprising an encryption pattern determining unit that recognizes a configuration of the external circuit and determines an encryption pattern in the encryption unit according to the configuration . 前記暗号化部は、前記バスライン上のアドレスおよびデータを、前記1つ以上の外部デバイス全体に割り当てられたアドレス空間を複数に分けた各領域に応じるとともに前記CPUで実行されるアプリケーションプログラムにも応じた暗号化パターンで暗号化するものであることを特徴とする請求項1記載の処理装置。 The encryption unit responds to addresses and data on the bus line according to each area obtained by dividing the address space allocated to the entire one or more external devices into a plurality of areas, and also to an application program executed by the CPU. 2. The processing apparatus according to claim 1 , wherein encryption is performed with a corresponding encryption pattern . 前記バスラインの、外部に延びた部分に接続され、該バスライン上の暗号化されたアドレスおよびデータを暗号化前のアドレスおよびデータに戻す逆暗号化部を備えたことを特徴とする請求項1記載の処理装置。 2. A deciphering unit connected to a portion of the bus line extending to the outside and returning an encrypted address and data on the bus line to an address and data before encryption. The processing apparatus according to 1. 前記1つ以上の外部デバイス全体に割り当てられたアドレス空間を複数に分けた複数の領域のうちのいずれかの領域について、所定の初期化動作の都度暗号化パターンを変更する暗号化パターン変更手段を有することを特徴とする請求項1記載の処理装置。 Encryption pattern changing means for changing an encryption pattern every time a predetermined initialization operation is performed on any one of a plurality of areas obtained by dividing an address space allocated to the entire one or more external devices. processing apparatus according to claim 1, characterized in that it has. 前記暗号化部は、前記1つ以上の外部デバイス全体に割り当てられたアドレス空間を複数に分けた複数の領域のうちのいずれかの領域について、暗号化後のデータがアドレスに応じて変化する暗号化パターンを採用して、データを暗号化するものであることを特徴とする請求項1記載の処理装置。 The encryption unit is an encryption in which data after encryption changes according to an address in any one of a plurality of areas obtained by dividing an address space allocated to the entire one or more external devices. The processing apparatus according to claim 1 , wherein the data is encrypted by adopting an encryption pattern . プログラムを実行するCPUと、各所定の作用を成す1つ以上の内部デバイスと、前記CPUと前記内部デバイスとを結ぶとともに外部にまで延びて、外部に延びた部分に、各所定の作用を成す1つ以上の外部デバイスが外付けされる、アドレスおよびデータを伝達するバスラインと、該バスラインの、外部への出入口に介在し、該バスライン上のアドレスおよびデータを、該バスラインの、外部に延びた部分に外付けされた1つ以上の外部デバイス全体に割り当てられた空間を複数に分けた各領域に応じた各暗号化パターンで暗号化する暗号化部とが搭載されてなり、A CPU that executes a program, one or more internal devices that perform each predetermined operation, and the CPU and the internal device are connected to each other and extended to the outside, and each predetermined operation is performed in a portion extending to the outside. One or more external devices are externally connected to a bus line for transmitting an address and data, and the bus line is provided at an outside entrance, and the address and data on the bus line are transferred to the bus line. And an encryption unit that encrypts each space with an encryption pattern corresponding to each area divided into a plurality of spaces allocated to one or more external devices externally attached to an externally extending portion,
前記暗号化部は、前記外部回路がアクセスされていないタイミングで、前記バスラインの、外部に延びた部分に、ダミーのアドレスおよびデータを出力するものであることを特徴とする集積回路。  The integrated circuit, wherein the encryption unit outputs a dummy address and data to a portion of the bus line extending to the outside at a timing when the external circuit is not accessed.
前記バスラインの、外部に延びた部分に、複数の外部デバイスが外付けされた場合に、前記暗号化部は、前記複数の外部デバイスそれぞれに応じた暗号化パターンで暗号化するものであることを特徴とする請求項9記載の集積回路。When a plurality of external devices are externally attached to a portion of the bus line that extends to the outside, the encryption unit performs encryption with an encryption pattern corresponding to each of the plurality of external devices. The integrated circuit according to claim 9. 前記1つ以上の外部デバイス全体に割り当てられたアドレス空間を複数に分けた複数の領域のうちのいずれかの領域について、所定の初期化動作の都度暗号化パターンを変更する暗号化パターン変更手段を有することを特徴とする請求項9記載の集積回路。Encryption pattern changing means for changing an encryption pattern every time a predetermined initialization operation is performed on any one of a plurality of areas obtained by dividing an address space allocated to the entire one or more external devices. 10. The integrated circuit according to claim 9, further comprising: 前記暗号化部は、前記1つ以上の外部デバイス全体に割り当てられたアドレス空間を複数に分けた複数の領域のうちのいずれかの領域について、暗号化後のデータがアドレスに応じて変化する暗号化パターンを採用してデータを暗号化するものであることを特徴とする請求項9記載の集積回路。The encryption unit is an encryption in which data after encryption changes according to an address in any one of a plurality of areas obtained by dividing an address space allocated to the entire one or more external devices. 10. The integrated circuit according to claim 9, wherein the data is encrypted by adopting an encryption pattern.
JP2000212815A 2000-07-13 2000-07-13 Processing apparatus and integrated circuit Expired - Fee Related JP4683442B2 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2000212815A JP4683442B2 (en) 2000-07-13 2000-07-13 Processing apparatus and integrated circuit
DE2000613424 DE60013424T2 (en) 2000-07-13 2000-12-20 Data processing device and integrated circuit
US09/739,839 US7657758B2 (en) 2000-07-13 2000-12-20 Processing apparatus and integrated circuit to prevent illicit access and reverse engineering
EP00311444A EP1172731B1 (en) 2000-07-13 2000-12-20 Data processing apparatus and integrated circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000212815A JP4683442B2 (en) 2000-07-13 2000-07-13 Processing apparatus and integrated circuit

Publications (2)

Publication Number Publication Date
JP2002032268A JP2002032268A (en) 2002-01-31
JP4683442B2 true JP4683442B2 (en) 2011-05-18

Family

ID=18708672

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000212815A Expired - Fee Related JP4683442B2 (en) 2000-07-13 2000-07-13 Processing apparatus and integrated circuit

Country Status (4)

Country Link
US (1) US7657758B2 (en)
EP (1) EP1172731B1 (en)
JP (1) JP4683442B2 (en)
DE (1) DE60013424T2 (en)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4325130B2 (en) * 2001-06-21 2009-09-02 ヤマハ株式会社 Electronics
DE10258767A1 (en) * 2002-12-16 2004-07-15 Infineon Technologies Ag Method for operating a cache memory
FR2853098B1 (en) * 2003-03-24 2005-07-01 Innova Card CIRCUIT PROVIDED WITH SECURE EXTERNAL ACCESS
FR2853097B1 (en) * 2003-03-24 2005-07-15 Innova Card PROGRAMMABLE CIRCUIT PROVIDED WITH SECURE MEMORY
JP2004361986A (en) * 2003-04-08 2004-12-24 Sharp Corp Scrambler circuit
JP2005149262A (en) * 2003-11-18 2005-06-09 Renesas Technology Corp Information processor
EP1544704A1 (en) * 2003-12-19 2005-06-22 STMicroelectronics Limited Monolithic semiconductor integrated circuit and method for selective memory encryption and decryption
JP4119881B2 (en) * 2004-11-15 2008-07-16 株式会社メガチップス Semiconductor memory device
US7770027B2 (en) 2004-11-15 2010-08-03 Nintendo Co., Ltd. Semiconductor memory device
JP4551802B2 (en) 2005-03-29 2010-09-29 株式会社東芝 Processor, memory, computer system, and data transfer method
JP4349389B2 (en) * 2006-07-28 2009-10-21 ソニー株式会社 Data storage device and communication device
GB0615392D0 (en) * 2006-08-03 2006-09-13 Wivenhoe Technology Ltd Pseudo random number circuitry
JP4941144B2 (en) * 2007-07-17 2012-05-30 株式会社明電舎 Communication control device
JP4922123B2 (en) * 2007-10-16 2012-04-25 ルネサスエレクトロニクス株式会社 Memory system and data protection method
IL187046A0 (en) * 2007-10-30 2008-02-09 Sandisk Il Ltd Memory randomization for protection against side channel attacks
US9773431B2 (en) * 2009-11-10 2017-09-26 Maxim Integrated Products, Inc. Block encryption security for integrated microcontroller and external memory system
JP2012085148A (en) * 2010-10-13 2012-04-26 Nec Corp Data protection system, user terminal, and server
RU2485710C1 (en) * 2011-12-23 2013-06-20 Общество с ограниченной ответственностью "ЕвроКомСервис" Cryptographic camera
US10516665B2 (en) * 2014-03-13 2019-12-24 Nec Corporation Network management apparatus, network management method, and recording medium
DE102016119750B4 (en) * 2015-10-26 2022-01-13 Infineon Technologies Ag Devices and methods for multi-channel scanning
BR112019005604A2 (en) * 2016-11-15 2019-07-02 Huawei Tech Co Ltd processor chip and terminal device

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63149747A (en) * 1986-12-15 1988-06-22 Nec Corp Read-only memory with data security protection mechanism
JPH05336104A (en) * 1992-05-29 1993-12-17 Toshiba Corp Radio base station
JPH07200287A (en) * 1993-12-16 1995-08-04 Internatl Business Mach Corp <Ibm> Protected program-type memory cartridge and computer system using it
JPH07334359A (en) * 1994-06-03 1995-12-22 Hitachi Ltd Semiconductor integrated circuit device
JPH1091531A (en) * 1996-09-19 1998-04-10 Toshiba Corp Security system
JP2000155525A (en) * 1998-11-24 2000-06-06 Nippon Telegr & Teleph Corp <Ntt> Cipher integrity evaluating device
JP2001148729A (en) * 1999-09-07 2001-05-29 Nippon Telegr & Teleph Corp <Ntt> Position information service system, position information using method for position information service system, originating terminal, key update center, and incoming terminal

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4168396A (en) * 1977-10-31 1979-09-18 Best Robert M Microprocessor for executing enciphered programs
US4278837A (en) * 1977-10-31 1981-07-14 Best Robert M Crypto microprocessor for executing enciphered programs
US4525599A (en) * 1982-05-21 1985-06-25 General Computer Corporation Software protection methods and apparatus
DE3381548D1 (en) * 1982-09-20 1990-06-13 Sanyo Electric Co DEVICE FOR SECRET TRANSMISSION.
US4628358A (en) * 1983-06-10 1986-12-09 General Instrument Corporation Television signal encryption system with protected audio
US4573119A (en) * 1983-07-11 1986-02-25 Westheimer Thomas O Computer software protection system
FR2570524B1 (en) * 1984-09-19 1987-01-02 Matra Communication TELE-COMPUTER TERMINAL WITH EXTERNAL EXTENSIONS
US5237699A (en) * 1988-08-31 1993-08-17 Dallas Semiconductor Corp. Nonvolatile microprocessor with predetermined state on power-down
US5081675A (en) * 1989-11-13 1992-01-14 Kitti Kittirutsunetorn System for protection of software in memory against unauthorized use
GB9000580D0 (en) * 1990-01-10 1990-03-14 Refurbished Turbine Components Apparatus for and methods of the repair of turbine blades
US5048086A (en) * 1990-07-16 1991-09-10 Hughes Aircraft Company Encryption system based on chaos theory
US5515540A (en) * 1990-08-27 1996-05-07 Dallas Semiconducter Corp. Microprocessor with single pin for memory wipe
JP2862030B2 (en) * 1991-06-13 1999-02-24 三菱電機株式会社 Encryption method
WO2004077300A1 (en) * 1992-01-22 2004-09-10 Yoshimasa Kadooka Ic memory card and protection therefor
US5400331A (en) * 1993-04-28 1995-03-21 Allen-Bradley Company, Inc. Communication network interface with screeners for incoming messages
US5404402A (en) * 1993-12-21 1995-04-04 Gi Corporation Clock frequency modulation for secure microprocessors
FR2728980B1 (en) 1994-12-30 1997-01-31 Thomson Csf SECURITY DEVICE FOR INFORMATION SYSTEMS ORGANIZED AROUND MICROPROCESSORS
US5666497A (en) * 1995-03-08 1997-09-09 Texas Instruments Incorporated Bus quieting circuits, systems and methods
US5943421A (en) * 1995-09-11 1999-08-24 Norand Corporation Processor having compression and encryption circuitry
JP3471988B2 (en) * 1995-09-19 2003-12-02 株式会社リコー Facsimile machine
US5917910A (en) * 1995-10-16 1999-06-29 Sony Corporation Encrypting method and apparatus, recording method, decrypting method and apparatus, and recording medium
JP3627384B2 (en) * 1996-01-17 2005-03-09 富士ゼロックス株式会社 Information processing apparatus with software protection function and information processing method with software protection function
US6175925B1 (en) 1996-06-13 2001-01-16 Intel Corporation Tamper resistant player for scrambled contents
US6986053B1 (en) * 1996-11-07 2006-01-10 Ascom Hasler Mailing Systems, Inc. System for protecting cryptographic processing and memory resources for postal franking machines
US5848159A (en) * 1996-12-09 1998-12-08 Tandem Computers, Incorporated Public key cryptographic apparatus and method
US6272637B1 (en) * 1997-04-14 2001-08-07 Dallas Semiconductor Corporation Systems and methods for protecting access to encrypted information
US6003117A (en) * 1997-10-08 1999-12-14 Vlsi Technology, Inc. Secure memory management unit which utilizes a system processor to perform page swapping
US6345359B1 (en) * 1997-11-14 2002-02-05 Raytheon Company In-line decryption for protecting embedded software
US6226237B1 (en) * 1998-03-26 2001-05-01 O2 Micro International Ltd. Low power CD-ROM player for portable computer
WO2000019321A1 (en) 1998-09-30 2000-04-06 Koninklijke Philips Electronics N.V. Method for disabling data and data processing circuit for carrying out said method
US7194092B1 (en) * 1998-10-26 2007-03-20 Microsoft Corporation Key-based secure storage
JP3679936B2 (en) * 1998-11-27 2005-08-03 東芝ソリューション株式会社 Encryption / decryption device and storage medium
FR2787216B1 (en) 1998-12-11 2001-07-27 Bull Cp8 METHOD FOR STORAGE AND OPERATION OF INFORMATION UNITS IN A SECURITY MODULE, AND ASSOCIATED SECURITY MODULE
FR2788353B1 (en) * 1999-01-11 2001-02-23 St Microelectronics Sa MICROPROCESSOR WITH PROTECTIVE CIRCUITS FOR SECURING ACCESS TO ITS REGISTERS
CN1189827C (en) * 1999-02-17 2005-02-16 索尼公司 Information processing device and method, and program storage medium
FR2793367B1 (en) * 1999-05-03 2004-09-10 Jean Luc Stehle AUTHENTICATION AND SECURITY DEVICE FOR A COMPUTER NETWORK
DE19922155A1 (en) 1999-05-12 2000-11-23 Giesecke & Devrient Gmbh Memory arrangement and memory access procedure for microcomputers has an additional scrambling step to increase data security, for use in financial applications etc.
US6971022B1 (en) * 1999-06-15 2005-11-29 Matsushita Electric Industrial Co., Ltd. Cryptographic apparatus for performing cryptography on a specified area of content data
CA2384436C (en) * 1999-09-10 2010-06-29 Portogo, Inc. Systems and method for insuring correct data transmission over the internet
US7188255B1 (en) * 1999-09-23 2007-03-06 Hewlett-Packard Development Company, L.P. Software delivery system
JP2001109667A (en) * 1999-10-13 2001-04-20 Nec Ic Microcomput Syst Ltd Method and device for processing data
US7005733B2 (en) * 1999-12-30 2006-02-28 Koemmerling Oliver Anti tamper encapsulation for an integrated circuit
US7111176B1 (en) * 2000-03-31 2006-09-19 Intel Corporation Generating isolated bus cycles for isolated execution
US7000119B1 (en) * 2000-04-20 2006-02-14 Realnetworks, Inc. Instruction/data protection employing derived obscuring instruction/data
US6895506B1 (en) * 2000-05-16 2005-05-17 Loay Abu-Husein Secure storage and execution of processor control programs by encryption and a program loader/decryption mechanism
US6989052B1 (en) * 2004-06-30 2006-01-24 Xerox Corporation Phase change ink printing process

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63149747A (en) * 1986-12-15 1988-06-22 Nec Corp Read-only memory with data security protection mechanism
JPH05336104A (en) * 1992-05-29 1993-12-17 Toshiba Corp Radio base station
JPH07200287A (en) * 1993-12-16 1995-08-04 Internatl Business Mach Corp <Ibm> Protected program-type memory cartridge and computer system using it
JPH07334359A (en) * 1994-06-03 1995-12-22 Hitachi Ltd Semiconductor integrated circuit device
JPH1091531A (en) * 1996-09-19 1998-04-10 Toshiba Corp Security system
JP2000155525A (en) * 1998-11-24 2000-06-06 Nippon Telegr & Teleph Corp <Ntt> Cipher integrity evaluating device
JP2001148729A (en) * 1999-09-07 2001-05-29 Nippon Telegr & Teleph Corp <Ntt> Position information service system, position information using method for position information service system, originating terminal, key update center, and incoming terminal

Also Published As

Publication number Publication date
EP1172731A2 (en) 2002-01-16
EP1172731A3 (en) 2003-01-29
US20020029345A1 (en) 2002-03-07
DE60013424D1 (en) 2004-10-07
US7657758B2 (en) 2010-02-02
EP1172731B1 (en) 2004-09-01
JP2002032268A (en) 2002-01-31
DE60013424T2 (en) 2005-01-13

Similar Documents

Publication Publication Date Title
JP4683442B2 (en) Processing apparatus and integrated circuit
US6308256B1 (en) Secure execution of program instructions provided by network interactions with processor
US8122262B2 (en) Semiconductor device including encryption section, semiconductor device including external interface, and content reproduction method
US5995623A (en) Information processing apparatus with a software protecting function
US6757831B1 (en) Logic block used to check instruction buffer configuration
US6345359B1 (en) In-line decryption for protecting embedded software
US8190912B2 (en) Program development method, program development supporting system, and program installation method
US7975151B2 (en) Decryption key table access control on ASIC or ASSP
CN100397284C (en) Circuit arrangement with non-volatile memory module and method of en-/decrypting data in the non-volatile memory module
CN103221961A (en) Method and apparatus including architecture for protecting multi-ser sensitive code and data
US6101605A (en) Method and apparatus for performing a secure operation
JPH11282667A (en) Microprocessor having cipher processing function of multiple key system
JP2004140376A (en) Semiconductor integrated circuit
JP2006146608A (en) Memory information protection system and method
JP2000322253A (en) Security system
JP2005149262A (en) Information processor
KR20100015077A (en) Apparatus and method for encryption in system on chip
JP4664655B2 (en) Information processing apparatus and address control method thereof
JP4580024B2 (en) Content playback method
JP4336690B2 (en) Semiconductor device having external interface
JP4676547B2 (en) Semiconductor device and boot method thereof
JPH11282756A (en) Secret data management method
JPH11282669A (en) Data processing circuit
JP2010033613A (en) Information processor
JP2011175464A (en) Apparatus and method for processing information

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070629

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20100407

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20100407

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20100330

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100426

A072 Dismissal of procedure [no reply to invitation to correct request for examination]

Free format text: JAPANESE INTERMEDIATE CODE: A072

Effective date: 20100831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100914

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101115

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: 20110201

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: 20110203

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140218

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees