説明

マイクロコントローラ

【課題】マイコンにおける認証のためのプログラムが不正に取得され、解読/公開された場合においても、そのコピー品を製造することを防止する。また、これを特別な回路を必要とせずに実現する。
【解決手段】本体装置及び付属装置の各々は、固有の識別情報を記憶するID記憶部と、前記識別情報及び既存の第1暗号鍵に基づいて第2暗号鍵を生成して乱数を前記第2暗号鍵で暗号化するプログラムを記憶する第1プログラムメモリとを具備し、前記本体装置は、前記乱数を発生させるCPUを更に具備し、前記乱数を前記付属装置に通知し、且つ、前記プログラムにより前記乱数を前記第2暗号鍵で暗号化した第1暗号化乱数を生成し、前記付属装置は、前記プログラムにより前記乱数を前記第2暗号鍵で暗号化した第2暗号化乱数を生成し、第2暗号化乱数を前記本体装置に通知し、前記本体装置は、前記第1暗号化乱数と前記第2暗号化乱数とを比較し、比較結果を出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マイクロコントローラに関し、特に暗号化された乱数を用いて認証を行うマイクロコントローラに関する。
【背景技術】
【0002】
携帯電話のバッテリや、プリンタのカートリッジのように、交換可能な付属品を使用する装置において、正規の付属品を使用することが望ましい場合においても、不正な付属品や一般的な付属品が用いられることがある。
【0003】
このように、正規の付属品以外の付属品が使用されることを防止するための手段の1つとして、本体と付属品との間で認証を行う場合がある。そして、本体と付属品との間の認証に関する技術の1つに、認証側と被認証側との間で同じ乱数を、同じ暗号鍵を含む暗号化プログラムで暗号化し、比較して一致するか調べるというものがある。
【0004】
乱数を暗号化する従来技術として、特開2003−318894号公報(特許文献1)にチャレンジ−レスポンス方式による機器間の認証処理方法が記載されている。
当該認証方法では、サーバから端末にチャレンジデータを伝送し、当該チャレンジデータを復号化したレスポンスデータを端末からサーバに伝送する。更に、当該レスポンスデータが前記チャレンジデータに復号化されたものであるか否かを、サーバにおいて施された暗号化に基づいて判断する。判断結果が肯定的である時、当該認証方法は、暗号化及び復号化に用いるパラメータを共に新たなパラメータに更新して、これらを次回の認証処理に用いるパラメータとして設定する。
【0005】
【特許文献1】特開2003−318894号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
従来技術をマイクロコントローラを搭載した応用システムに適用した場合、乱数の暗号化に用いる暗号鍵は、プログラムに直接書かれていたり、プログラムを格納するメモリと同じメモリにデータとして保存されていたりするため、例えば、ユーザのプログラムが格納されているプログラムメモリのデータを全てコピーすれば、正規の付属品以外でも同じ暗号化を行うことが可能である。すなわち、認証用のプログラムが不正に取得された場合に、そのプログラムを、フラッシュメモリなどで構成されたプログラムメモリを内蔵した同一のマイクロコントローラのプログラムメモリに書き込むと、正規な付属品でなくとも動作してしまうため模造品を検出できないという問題があった。その理由は、同一プログラムが書き込まれたマイクロコントローラを、正規の付属品を模倣した模造品に実装すれば正規な付属品と同様の動作をするためである。
【課題を解決するための手段】
【0007】
以下に、[発明を実施するための最良の形態]で使用される番号を括弧付きで用いて、課題を解決するための手段を説明する。これらの番号は、[特許請求の範囲]の記載と[発明を実施するための最良の形態]との対応関係を明らかにするために付加されたものである。但し、それらの番号を、[特許請求の範囲]に記載されている発明の技術的範囲の解釈に用いてはならない。
【0008】
プログラム及び第1暗号鍵を格納するプログラムメモリ(130)と、
前記プログラムに基づいて処理を実行するCPU(110)と、
固有の識別情報を格納するID記憶部(120)と
を具備し、
前記CPU(110)は、前記プログラムの実行により前記プログラムメモリ(130)に格納された前記第1暗号鍵及び前記ID記憶部(120)に格納された前記固有の識別情報に基づき第2暗号鍵を生成し、乱数を前期第2暗号鍵で暗号化する
マイクロコントローラ(100)。
【発明の効果】
【0009】
マイクロコントローラのプログラムが不正に取得された場合に、そのプログラムがプログラムメモリに書き込まれた模造品を用いても、動作が正常に行われなくすることが出来る。これにより、単純にプログラムメモリをコピーすることによる付属品の偽造を排除することが可能になる。
【発明を実施するための最良の形態】
【0010】
以下に本発明の第1実施形態について添付図面を参照して説明する。
図1に示すように、本発明のマイクロコントローラ100は、CPU110と、ID記憶部120と、プログラムメモリ130と、入出力ポート140を備える。
【0011】
CPU110は、各部の制御を行う。また、マイクロコントローラ100内部で暗号化の対象となる乱数を発生させる必要があれば、乱数を発生させる。この時、CPU110は、プログラムメモリ130に記憶されている乱数発生用プログラム(図示せず)を実行して乱数を発生させる。但し、実際には、CPU自体の乱数発生機能や、乱数発生回路(図示せず)といったハードウェア機能により乱数を発生させても良い。すなわち、乱数はどのような方法で発生しても良い。
【0012】
ID記憶部120は、マイクロコントローラ内部に設けられた記憶領域であり、マイクロコントローラ内部の回路又はプログラムからアクセスする。また、ID記憶部120は、顧客毎に定められた固有の識別情報(ID)を記憶する。
【0013】
ID記憶部120には、ある顧客向けには対象顧客固有ID(例えば58679)が書き込まれ出荷される。一般顧客への出荷品のID記憶部120には、初期値(例えばオールゼロ)が書き込まれている。ID記憶部120は、プログラムメモリ130のプログラムからは、読み出しは可能であるが書き換えはできない。ID記憶部120の書き換えは、製造メーカの製造工程における専用モードでのみ書き換え可能にすることができる。ID記憶部120はプログラムメモリ130が不揮発性メモリ品でありプログラムの書き換えが可能な場合には不揮発性メモリとする。
【0014】
プログラムメモリ130には、ユーザのプログラムが書き込まれる。プログラムは、暗号鍵A提供プログラム131と、暗号鍵B生成プログラム132と、暗号化プログラム133と、比較プログラム134を備える。但し、実際には、暗号鍵A提供プログラム131、暗号鍵B生成プログラム132、暗号化プログラム133、及び比較プログラム134は、プログラムメモリ130に記憶されたプログラムではなく、回路であっても良い。
【0015】
暗号鍵A提供プログラム131は、第1の暗号鍵Aを提供するためのプログラムである。
暗号鍵B生成プログラム132は、暗号鍵A提供プログラム131から提供された暗号鍵AとID記憶部120に格納されている固有の識別情報(ID)を取得し、暗号鍵Aと固有の識別情報(ID)を用いて、新たな暗号鍵Bを生成するためのプログラムである。
暗号化プログラム133は、乱数を暗号鍵Bで暗号化するためのプログラムである。
比較プログラム134は、暗号鍵Bで暗号化させた乱数(第1暗号化乱数)と、他のマイクロコントローラから取得した第2暗号化乱数とを比較し、比較結果を出力するためのプログラムである。
【0016】
なお、プログラムメモリ130の種類としてはマスクROM品の場合と不揮発性メモリ品の場合とがある。プログラムメモリ130がFlashメモリのような不揮発性メモリの場合、ID記憶部120も不揮発性メモリであることが望ましい。その理由は、プログラムメモリ130のユーザプログラムが書き換えられた場合、ID記憶部120に対して、データの消去を行う機能をもたせるためである。詳細は後述する。
【0017】
プログラムメモリ130が不揮発性メモリである場合、第1マイクロコントローラ100は、更に、コントロール部150を具備する。
コントロール部150は、プログラムメモリ130の書き込み/消去制御を行っており、書き込み時は不揮発性メモリの書き込みに必要な電圧を発生し、書き込むアドレスとデータに応じた書き込み制御を行い、消去時は不揮発性メモリの消去に必要な電圧を発生し消去を行う。プログラムメモリ130の内容を書き換えようとしてプログラム書き込み装置(図示せず)を介して外部より第1マイクロコントローラ100へ書き換え要求が入力されると、コントロール部150は、新規プログラムの書き込み前にプログラムメモリ130の消去動作を行うとともに、ID記憶部120の内容を消去するよう制御する。すなわち、コントロール部150は、外部からの書き換え要求を受けプログラムメモリ130の消去又は書き込みを行い、同時にID記憶部120に保持されているIDを初期化(例えばオールゼロ)する。
【0018】
プログラムメモリ130がマスクROMの場合、プログラムを改竄される心配が無いため、ID記憶部120はFlashメモリ、マスクROMのいずれでも良い。
【0019】
入出力ポート140は、外部との通信を行うためのポートである。ここでは、他のマイクロコントローラが生成した暗号化乱数を取得する際や、比較プログラム134による比較結果を出力する際に、入出力ポート140が用いられる。なお、暗号化に用いられる乱数をマイクロコントローラ100内部で発生しない場合は、外部から乱数を取得するために入出力ポート140が用いられる。
【0020】
図2に示すように、本発明のマイクロコントローラを用いた認証システムは、第1マイクロコントローラ100と、第2マイクロコントローラ200を有する。
第1マイクロコントローラ100と第2マイクロコントローラ200は通信ラインで結ばれている。
【0021】
本発明の第1実施形態では、図2に示すように、第1マイクロコントローラ100を本体(認証側)とし、第2マイクロコントローラ200を付属品(被認証側)とする。
第1マイクロコントローラ100と第2マイクロコントローラ200とは、いずれも図1に示すマイクロコントローラを使用している。第1マイクロコントローラ100と第2マイクロコントローラ200の構成を識別するため、ここでは、第2マイクロコントローラ200の構成を、CPU210、ID記憶部220、プログラムメモリ230、入出力ポート240とする。すなわち、第2マイクロコントローラ200においては、図1のCPU110、ID記憶部120、プログラムメモリ130、入出力ポート140を、それぞれCPU210、ID記憶部220、プログラムメモリ230、入出力ポート240と読み替える。
【0022】
CPU210は、各部の制御を行う。なお、ここでは、第2マイクロコントローラ200は、第1マイクロコントローラ100側から乱数を取得するため、CPU210は乱数の発生を行わない。
【0023】
ID記憶部220は、顧客毎に定められた固有の識別情報(ID)を記憶する。この識別情報は、第1マイクロコントローラ100のID記憶部120に記憶されている識別情報と同じ識別情報である。すなわち、ID記憶部120とID記憶部220は、同じ識別情報を記憶している。
【0024】
プログラムメモリ230には、ユーザのプログラムが書き込まれる。プログラムは、暗号鍵A提供プログラム231と、暗号鍵B生成プログラム232と、暗号化プログラム233と、比較プログラム234を備える。暗号鍵A提供プログラム231、暗号鍵B生成プログラム232、暗号化プログラム233は、それぞれ図1の暗号鍵A提供プログラム131、暗号鍵B生成プログラム132、暗号化プログラム133と同じプログラムである。但し、実際には、暗号鍵A提供プログラム231、暗号鍵B生成プログラム232、暗号化プログラム233、及び比較プログラム234は、プログラムメモリ230に記憶されたプログラムではなく、回路であっても良い。
【0025】
なお、比較プログラム234は、図1の比較プログラム134と同じでも良いが、本体(認証側)、すなわち第1マイクロコントローラ100側で互いの暗号化乱数の比較が行われる場合、比較プログラム234は、暗号化プログラム233により暗号化した乱数(第2暗号化乱数)を第1マイクロコントローラ100側に送信するためのプログラムとする。なお、比較プログラム134による第2暗号化乱数の取得、又は暗号化プログラム233による第2暗号化乱数の送信により、第1マイクロコントローラ100が第2マイクロコントローラ200側の暗号化乱数を取得できる場合、比較プログラム234は無くても良い。
【0026】
プログラムメモリ230が不揮発性メモリである場合、第2マイクロコントローラ200は、更に、コントロール部250を具備する。コントロール部250は、図1のコントロール部150と同じである。
【0027】
入出力ポート240は、外部との通信を行うためのポートである。ここでは、第1マイクロコントローラ100側から乱数を取得し、第2暗号化乱数を第1マイクロコントローラ100側に送信するために入出力ポート240が用いられる。
【0028】
本発明の第1実施形態では、図2に示すように、第1マイクロコントローラ100を本体(認証側)とし、第2マイクロコントローラ200を付属品(被認証側)としたが、実際には、付属品を認証側として、本体を認証するようにしても良い。これが本発明の第2実施形態である。この場合、第1マイクロコントローラ100を付属品(認証側)とし、第2マイクロコントローラ200を本体(被認証側)とする。
【0029】
更に、本発明の第3実施形態として、本体と付属品の両方で認証を行うようにしても良い。本体と付属品の両方で認証することで、より強固なセキュリティを実現することが可能となる。この場合、第1マイクロコントローラ100と第2マイクロコントローラ200は同じ動作を行う。
すなわち、第2マイクロコントローラ200のCPU210も乱数を発生させる。この時、CPU210は、プログラムメモリ230に記憶されている乱数発生用プログラム(図示せず)を実行して乱数を発生させる。但し、実際には、CPU自体の乱数発生機能や、乱数発生回路(図示せず)といったハードウェア機能により乱数を発生させても良い。なお、乱数はどのような方法で取得しても良い。例えば、第1マイクロコントローラ100、第2マイクロコントローラ200共に、外部の乱数発生装置(図示せず)から乱数を取得することも可能である。この場合、第1マイクロコントローラ100及び第2マイクロコントローラ200は、互いの通信のためのみならず、外部の乱数発生装置との通信のために複数の入出力ポートを有しているものとする。
また、第2マイクロコントローラ200側でも第1マイクロコントローラ100側の暗号化乱数(第1暗号化乱数)を取得し、比較プログラム234により互いの暗号化乱数を比較する。
【0030】
図3を参照して、本発明における認証に関し、動作を以下に示す。
ここでは、例として、第1マイクロコントローラ100を本体(認証側)とし、第2マイクロコントローラ200を付属品(被認証側)とする。
(1)ステップH101
CPU110は、ID記憶部120から識別番号(ID)を読み出す。
(2)ステップH102
CPU110は、プログラムメモリ130の暗号鍵A提供プログラム131から暗号鍵Aを読み出す。
(3)ステップH103
CPU110は、暗号鍵B生成プログラム132で、暗号鍵AとIDから暗号鍵Bを生成する。
(4)ステップF101
CPU210は、ID記憶部220から識別番号(ID)を読み出す。
(5)ステップF102
CPU210は、プログラムメモリ230の暗号鍵A提供プログラム231から暗号鍵Aを読み出す。
(6)ステップF103
CPU210は、暗号鍵B生成プログラム232で、暗号鍵AとIDから暗号鍵Bを生成する。
(7)ステップH104
CPU110は、乱数を発生させ、付属品(第2マイクロコントローラ200)へ出力(通知)する。
(8)ステップH105
CPU110は、暗号化プログラム133で、乱数を暗号鍵Bで暗号化し、第1暗号化乱数を生成する。
(9)ステップF104
CPU210は、暗号化プログラム233で、本体(第1マイクロコントローラ100)より受け取った乱数を暗号鍵Bで暗号化し、第2暗号化乱数を生成した後、第2暗号化乱数を本体(第1マイクロコントローラ100)に送信する。
(10)ステップH106
CPU110は、比較プログラム134で、第1暗号化乱数と第2暗号化乱数を比較し、比較結果を出力する。
【0031】
なお、上記の動作を開始するタイミング(動作開始のトリガー)としては、本体及び付属品の起動時(電源ON/OFF時)、本体と付属品の接続時、外部からの要求信号の受信時、定期的な実行(巡回動作)が考えられる。また、付属品は、本体から乱数を受け取った後に動作を開始しても良い。なお、本体、付属品共に、暗号鍵Bの生成までの動作は、識別情報(ID)とプログラムをセットされた時点で行っておくことも可能である。但し、実際には上記の例に限定されない。
【0032】
以下に、実施例1,実施例2の2例を示す。
まず、図4を参照し、実施例1として、プリンタ(本体)とインクカートリッジ(付属品)の場合について説明する。
(1)ステップH201
プリンタ本体に電源が投入される
(2)ステップH202
本体側マイクロコントローラは、本体側の識別情報(ID)を読み出す。
(3)ステップH203
本体側マイクロコントローラは、本体側の暗号鍵Aを読み出す。
(4)ステップH204
本体側マイクロコントローラは、読み出した暗号鍵Aと識別情報(ID)から暗号鍵Bを生成する。
(5)ステップH205
その後、本体側マイクロコントローラは、本体にカートリッジが装着されたのを認識すると、カートリッジに電源を供給する。
(6)ステップF201
電源投入されると、カートリッジ側マイクロコントローラは、カートリッジ側の識別情報(ID)を読み出す。
(7)ステップF202
カートリッジ側マイクロコントローラは、カートリッジ側の暗号鍵Aを読み出す。
(8)ステップF203
カートリッジ側マイクロコントローラは、読み出した暗号鍵Aと識別情報(ID)から暗号鍵Bを生成し、暗号鍵B生成通知を本体側に送信する。
(9)ステップH206
暗号鍵B生成通知を受信すると、本体側マイクロコントローラは乱数を発生させ、カートリッジへ送信する。
(10)ステップF204
カートリッジ側マイクロコントローラは、本体より受信した乱数を暗号鍵Bで暗号化し、第2暗号化乱数を生成し、第2暗号化乱数を本体に送信する。
(11)ステップH207
本体側マイクロコントローラは、乱数を暗号鍵Bで暗号化し、第1暗号化乱数を取得する。
(12)ステップH208
本体側マイクロコントローラは、第1暗号化乱数と第2暗号化乱数を比較する。
(13)ステップH209
結果が一致していた場合には、本体は、プリンタとしての動作を開始する。
(14)ステップH210
結果が一致していなかった場合には、本体は、プリンタとしての動作を停止する。
【0033】
次に、図5を参照し、実施例2として、ポータブル機器(本体)とバッテリ(付属品)の場合について説明する。
(1)ステップF301
バッテリパックにおいて、バッテリセルが接続(装着)される。
(2)ステップF302
バッテリ側マイクロコントローラは、バッテリ側の識別情報(ID)を読み出す。
(3)ステップF303
バッテリ側マイクロコントローラは、バッテリ側の暗号鍵Aを読み出す。
(4)ステップF304
バッテリ側マイクロコントローラは、読み出した暗号鍵Aと識別情報(ID)から暗号鍵Bを生成する。
(5)ステップF305
その後、バッテリパックが本体側に装着されると、バッテリセルは、本体側に電源(電力)を供給する。
(6)ステップH301
電源投入されると、本体側マイクロコントローラは、本体側の識別情報(ID)を読み出す。
(7)ステップH302
本体側マイクロコントローラは、本体側の暗号鍵Aを読み出す。
(8)ステップH303
本体側マイクロコントローラは、読み出した暗号鍵Aと識別情報(ID)から暗号鍵Bを生成する。
(9)ステップH304
更に、本体側マイクロコントローラは乱数を発生させ、バッテリパックへ送信する。
(10)ステップF306
バッテリ側マイクロコントローラは本体より受信した乱数を暗号鍵Bで暗号化し、第2暗号化乱数を生成し、第2暗号化乱数を本体に送信する。
(11)ステップH305
本体は乱数を暗号鍵Bで暗号化し、第1暗号化乱数を取得する。
(12)ステップH306
本体は、第1暗号化乱数と第2暗号化乱数を比較する。
(13)ステップH307
結果が一致していた場合には、本体は、ポータブル機器としての動作を開始する。
(14)ステップH308
結果が一致していなかった場合には、本体は、ポータブル機器としての動作を停止する。
【0034】
ここで、マイクロコントローラのプログラムが不正に取得された場合について説明する。ここでは、本体のID記憶部にかかれているIDは顧客固有である。
まず、付属品側のマイクロコントローラ(顧客限定品)に正規プログラムが書き込まれている場合、すなわち正常な使用の場合、第1の暗号鍵AとIDに基づいて作成した暗号鍵Bと、乱数は、本体と付属品とで同じ物を使用することになるため、暗号化した乱数も同じになる。
しかし、不正に取得されたプログラムをそのまま特定顧客以外の一般顧客向けのマイクロコントローラのプログラムメモリにコピーした場合、模造品に実装されたマイクロコントローラのIDは初期化(例えばオールゼロ)されており、顧客固有IDとは異なるため、暗号鍵Bが異なる。結果、本体と付属品の各々が暗号化した乱数は互いに異なり、本体は接続されている付属品が模造品であることが確認できる。
マイクロコントローラのプログラムメモリが不揮発性メモリの場合においては、IDを読み出し出力する簡易なプログラムを書き込み動作させることにより、ID情報を悪意に入手する手段が考えられる。しかしながら、ID記憶部に保持されているデータは不揮発性メモリ消去/書き込みを行うことにより、初期化さる機能を有するため、本手段を用いることはできない。
【0035】
以上のように、本発明におけるマイクロコントローラは、乱数発生用プログラム又はハードウェア機能により乱数を発生させるCPUと、固有の識別情報を記憶するID記憶部と、第1暗号鍵を記憶し、且つ、識別情報及び第1暗号鍵に基づいて第2暗号鍵を生成し、乱数を第2暗号鍵で暗号化するプログラムを記憶する第1プログラムメモリとを備える。
【0036】
本発明のマイクロコントローラを用いた認証システムでは、本体(認証側)の第1マイクロコントローラと付属品(被認証側)の第2マイクロコントローラを使用する。第1マイクロコントローラと第2マイクロコントローラは通信ラインで結ばれている。
【0037】
第1マイクロコントローラは、プログラムメモリ、ID記憶部、CPUを備える。第2マイクロコントローラは、プログラムメモリ、ID記憶部を備える。各々、ID記憶部が不揮発性メモリの場合、コントロール部を更に備える。
【0038】
プログラムメモリはユーザのプログラムが書き込まれる。具体的には、暗号鍵A提供プログラム、暗号鍵B生成プログラム、暗号化プログラム、比較プログラム(認証側のみ)のプログラムからなる。プログラムメモリの種類としてはマスクROM品の場合と不揮発性メモリ品の場合とがある。ID記憶部には、ID記憶部がある。ある顧客向けには対象顧客固有IDが書き込まれ出荷される。一般顧客への出荷品のID記憶部には、初期値(例えばオールゼロ)が書き込まれている。ID記憶部はユーザメモリプログラムからは読み出しは可能であるが、書き換えはできない。ID記憶部はプログラムメモリが不揮発性メモリ品でありプログラムの書き換えが可能な場合には不揮発性メモリとする。暗号鍵B生成プログラムは暗号鍵AとIDをもとに暗号鍵Bを生成する。CPUは乱数を発生する。暗号化プログラムは乱数を暗号鍵Bで暗号化する。比較プログラムは本体、付属品双方から入力される暗号化された乱数を比較し、その結果を出力する。コントロール部はプログラムメモリが不揮発性メモリである場合に構成要素となる(存在する)。外部からの書き込み要求を受けプログラムメモリを消去/書き込みを行う。同時に暗号鍵A提供プログラムに保持されているIDを初期化(例えばオールゼロ)する。
【0039】
本発明における認証の処理フローについては、以下の通りである。
まず、本体、付属品ともに暗号鍵AとIDから暗号鍵Bを生成する。本体は乱数を発生させ、付属品へ出力する。本体は乱数を暗号鍵Bで暗号化し、第1暗号化乱数を取得する。付属品は本体より受け取った乱数を暗号鍵Bで暗号化し、第2暗号化乱数を生成して本体に送信する。本体は第1暗号化乱数と第2暗号化乱数を比較し、比較結果を出力する。
【図面の簡単な説明】
【0040】
【図1】図1は、本発明のマイクロコントローラの構成を示すブロック図である。
【図2】図2は、本体(認証側)と付属品(被認証側)との構成を示すブロック図である。
【図3】図3は、本発明の基本動作を示すフローチャートである。
【図4】図4は、プリンタとカートリッジの場合の認証の動作を示すフローチャートである。
【図5】図5は、ポータブル機器とバッテリの場合の認証の動作を示すフローチャートである。
【符号の説明】
【0041】
100… マイクロコントローラ(第1マイクロコントローラ)
110… CPU
120… ID記憶部
130… プログラムメモリ
131… 暗号鍵A提供プログラム
132… 暗号鍵B生成プログラム
133… 暗号化プログラム
134… 比較プログラム
140… 入出力ポート
150… コントローラ部
200… 第2マイクロコントローラ
210… CPU
220… ID記憶部
230… プログラムメモリ
231… 暗号鍵A提供プログラム
232… 暗号鍵B生成プログラム
233… 暗号化プログラム
234… 比較プログラム
240… 入出力ポート
250… コントローラ部

【特許請求の範囲】
【請求項1】
プログラム及び第1暗号鍵を格納するプログラムメモリと、
前記プログラムに基づいて処理を実行するCPUと、
固有の識別情報を格納するID記憶部と
を具備し、
前記CPUは、前記プログラムの実行により前記プログラムメモリに格納された前記第1暗号鍵及び前記ID記憶部に格納された前記固有の識別情報に基づき第2暗号鍵を生成し、乱数を前期第2暗号鍵で暗号化する
マイクロコントローラ。
【請求項2】
請求項1に記載のマイクロコントローラにおいて、
前記乱数は、前記CPUが乱数発生用プログラムを実行することにより発生する
マイクロコントローラ。
【請求項3】
請求項1に記載のマイクロコントローラにおいて、
前記乱数は、乱数発生用回路により発生する
マイクロコントローラ。
【請求項4】
請求項1に記載のマイクロコントローラにおいて、
前記乱数を外部から入力するための入出力ポートを更に具備する
マイクロコントローラ。
【請求項5】
請求項1に記載のマイクロコントローラにおいて、
前記第2暗号鍵を用いて暗号化した乱数と、他のマイクロコントローラで暗号化された乱数とを比較し、一致するか否かにより異なる処理を実行するマイクロコントローラ。
【請求項6】
請求項1及至5のいずれか一項に記載のマイクロコントローラにおいて、
前記プログラムメモリ及び前記ID記憶部は、不揮発性メモリである
マイクロコントローラ。
【請求項7】
請求項6に記載のマイクロコントローラにおいて、
前記プログラムメモリに対してプログラムを書き込み又は消去するためのコントロール部を更に具備し、
前記コントロール部は、前記プログラムメモリの内容を消去する時に、前記ID記憶部に格納された前記識別情報も消去する
マイクロコントローラ。
【請求項8】
請求項1に記載のマイクロコントローラにおいて、
前記プログラムは、
前記第1暗号鍵を提供するための第1暗号鍵提供プログラムと、
前記第1暗号鍵及び前記識別情報を取得し、前記第1暗号鍵及び前記識別情報に基づいて前記第2暗号鍵を作成するための第2暗号鍵作成プログラムと、
前記乱数を前記第2暗号鍵で暗号化して暗号化乱数を生成するための暗号化プログラムと
を具備する
マイクロコントローラ。
【請求項9】
請求項8に記載のマイクロコントローラにおいて、
前記プログラムは、
前記暗号化乱数と他のマイクロコントローラで暗号化された乱数とを比較し、比較結果を出力するための比較プログラムを更に具備する
マイクロコントローラ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2007−184735(P2007−184735A)
【公開日】平成19年7月19日(2007.7.19)
【国際特許分類】
【出願番号】特願2006−919(P2006−919)
【出願日】平成18年1月5日(2006.1.5)
【出願人】(302062931)NECエレクトロニクス株式会社 (8,021)
【Fターム(参考)】