JP4969106B2 - マイクロコントローラ - Google Patents

マイクロコントローラ Download PDF

Info

Publication number
JP4969106B2
JP4969106B2 JP2006000919A JP2006000919A JP4969106B2 JP 4969106 B2 JP4969106 B2 JP 4969106B2 JP 2006000919 A JP2006000919 A JP 2006000919A JP 2006000919 A JP2006000919 A JP 2006000919A JP 4969106 B2 JP4969106 B2 JP 4969106B2
Authority
JP
Japan
Prior art keywords
microcontroller
random number
program
encryption key
encrypted
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.)
Active
Application number
JP2006000919A
Other languages
English (en)
Other versions
JP2007184735A (ja
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2006000919A priority Critical patent/JP4969106B2/ja
Priority to CNA200610172481XA priority patent/CN1996837A/zh
Priority to US11/648,691 priority patent/US7856103B2/en
Publication of JP2007184735A publication Critical patent/JP2007184735A/ja
Application granted granted Critical
Publication of JP4969106B2 publication Critical patent/JP4969106B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2129Authenticate client device independently of the user

Description

本発明は、マイクロコントローラに関し、特に暗号化された乱数を用いて認証を行うマイクロコントローラに関する。
携帯電話のバッテリや、プリンタのカートリッジのように、交換可能な付属品を使用する装置において、正規の付属品を使用することが望ましい場合においても、不正な付属品や一般的な付属品が用いられることがある。
このように、正規の付属品以外の付属品が使用されることを防止するための手段の1つとして、本体と付属品との間で認証を行う場合がある。そして、本体と付属品との間の認証に関する技術の1つに、認証側と被認証側との間で同じ乱数を、同じ暗号鍵を含む暗号化プログラムで暗号化し、比較して一致するか調べるというものがある。
乱数を暗号化する従来技術として、特開2003−318894号公報(特許文献1)にチャレンジ−レスポンス方式による機器間の認証処理方法が記載されている。
当該認証方法では、サーバから端末にチャレンジデータを伝送し、当該チャレンジデータを復号化したレスポンスデータを端末からサーバに伝送する。更に、当該レスポンスデータが前記チャレンジデータに復号化されたものであるか否かを、サーバにおいて施された暗号化に基づいて判断する。判断結果が肯定的である時、当該認証方法は、暗号化及び復号化に用いるパラメータを共に新たなパラメータに更新して、これらを次回の認証処理に用いるパラメータとして設定する。
特開2003−318894号公報
従来技術をマイクロコントローラを搭載した応用システムに適用した場合、乱数の暗号化に用いる暗号鍵は、プログラムに直接書かれていたり、プログラムを格納するメモリと同じメモリにデータとして保存されていたりするため、例えば、ユーザのプログラムが格納されているプログラムメモリのデータを全てコピーすれば、正規の付属品以外でも同じ暗号化を行うことが可能である。すなわち、認証用のプログラムが不正に取得された場合に、そのプログラムを、フラッシュメモリなどで構成されたプログラムメモリを内蔵した同一のマイクロコントローラのプログラムメモリに書き込むと、正規な付属品でなくとも動作してしまうため模造品を検出できないという問題があった。その理由は、同一プログラムが書き込まれたマイクロコントローラを、正規の付属品を模倣した模造品に実装すれば正規な付属品と同様の動作をするためである。
以下に、[発明を実施するための最良の形態]で使用される番号を括弧付きで用いて、課題を解決するための手段を説明する。これらの番号は、[特許請求の範囲]の記載と[発明を実施するための最良の形態]との対応関係を明らかにするために付加されたものである。但し、それらの番号を、[特許請求の範囲]に記載されている発明の技術的範囲の解釈に用いてはならない。
プログラム及び第1暗号鍵を格納するプログラムメモリ(130)と、
前記プログラムに基づいて処理を実行するCPU(110)と、
固有の識別情報を格納するID記憶部(120)と
を具備し、
前記CPU(110)は、前記プログラムの実行により前記プログラムメモリ(130)に格納された前記第1暗号鍵及び前記ID記憶部(120)に格納された前記固有の識別情報に基づき第2暗号鍵を生成し、乱数を前期第2暗号鍵で暗号化する
マイクロコントローラ(100)。
マイクロコントローラのプログラムが不正に取得された場合に、そのプログラムがプログラムメモリに書き込まれた模造品を用いても、動作が正常に行われなくすることが出来る。これにより、単純にプログラムメモリをコピーすることによる付属品の偽造を排除することが可能になる。
以下に本発明の第1実施形態について添付図面を参照して説明する。
図1に示すように、本発明のマイクロコントローラ100は、CPU110と、ID記憶部120と、プログラムメモリ130と、入出力ポート140を備える。
CPU110は、各部の制御を行う。また、マイクロコントローラ100内部で暗号化の対象となる乱数を発生させる必要があれば、乱数を発生させる。この時、CPU110は、プログラムメモリ130に記憶されている乱数発生用プログラム(図示せず)を実行して乱数を発生させる。但し、実際には、CPU自体の乱数発生機能や、乱数発生回路(図示せず)といったハードウェア機能により乱数を発生させても良い。すなわち、乱数はどのような方法で発生しても良い。
ID記憶部120は、マイクロコントローラ内部に設けられた記憶領域であり、マイクロコントローラ内部の回路又はプログラムからアクセスする。また、ID記憶部120は、顧客毎に定められた固有の識別情報(ID)を記憶する。
ID記憶部120には、ある顧客向けには対象顧客固有ID(例えば58679)が書き込まれ出荷される。一般顧客への出荷品のID記憶部120には、初期値(例えばオールゼロ)が書き込まれている。ID記憶部120は、プログラムメモリ130のプログラムからは、読み出しは可能であるが書き換えはできない。ID記憶部120の書き換えは、製造メーカの製造工程における専用モードでのみ書き換え可能にすることができる。ID記憶部120はプログラムメモリ130が不揮発性メモリ品でありプログラムの書き換えが可能な場合には不揮発性メモリとする。
プログラムメモリ130には、ユーザのプログラムが書き込まれる。プログラムは、暗号鍵A提供プログラム131と、暗号鍵B生成プログラム132と、暗号化プログラム133と、比較プログラム134を備える。但し、実際には、暗号鍵A提供プログラム131、暗号鍵B生成プログラム132、暗号化プログラム133、及び比較プログラム134は、プログラムメモリ130に記憶されたプログラムではなく、回路であっても良い。
暗号鍵A提供プログラム131は、第1の暗号鍵Aを提供するためのプログラムである。
暗号鍵B生成プログラム132は、暗号鍵A提供プログラム131から提供された暗号鍵AとID記憶部120に格納されている固有の識別情報(ID)を取得し、暗号鍵Aと固有の識別情報(ID)を用いて、新たな暗号鍵Bを生成するためのプログラムである。
暗号化プログラム133は、乱数を暗号鍵Bで暗号化するためのプログラムである。
比較プログラム134は、暗号鍵Bで暗号化させた乱数(第1暗号化乱数)と、他のマイクロコントローラから取得した第2暗号化乱数とを比較し、比較結果を出力するためのプログラムである。
なお、プログラムメモリ130の種類としてはマスクROM品の場合と不揮発性メモリ品の場合とがある。プログラムメモリ130がFlashメモリのような不揮発性メモリの場合、ID記憶部120も不揮発性メモリであることが望ましい。その理由は、プログラムメモリ130のユーザプログラムが書き換えられた場合、ID記憶部120に対して、データの消去を行う機能をもたせるためである。詳細は後述する。
プログラムメモリ130が不揮発性メモリである場合、第1マイクロコントローラ100は、更に、コントロール部150を具備する。
コントロール部150は、プログラムメモリ130の書き込み/消去制御を行っており、書き込み時は不揮発性メモリの書き込みに必要な電圧を発生し、書き込むアドレスとデータに応じた書き込み制御を行い、消去時は不揮発性メモリの消去に必要な電圧を発生し消去を行う。プログラムメモリ130の内容を書き換えようとしてプログラム書き込み装置(図示せず)を介して外部より第1マイクロコントローラ100へ書き換え要求が入力されると、コントロール部150は、新規プログラムの書き込み前にプログラムメモリ130の消去動作を行うとともに、ID記憶部120の内容を消去するよう制御する。すなわち、コントロール部150は、外部からの書き換え要求を受けプログラムメモリ130の消去又は書き込みを行い、同時にID記憶部120に保持されているIDを初期化(例えばオールゼロ)する。
プログラムメモリ130がマスクROMの場合、プログラムを改竄される心配が無いため、ID記憶部120はFlashメモリ、マスクROMのいずれでも良い。
入出力ポート140は、外部との通信を行うためのポートである。ここでは、他のマイクロコントローラが生成した暗号化乱数を取得する際や、比較プログラム134による比較結果を出力する際に、入出力ポート140が用いられる。なお、暗号化に用いられる乱数をマイクロコントローラ100内部で発生しない場合は、外部から乱数を取得するために入出力ポート140が用いられる。
図2に示すように、本発明のマイクロコントローラを用いた認証システムは、第1マイクロコントローラ100と、第2マイクロコントローラ200を有する。
第1マイクロコントローラ100と第2マイクロコントローラ200は通信ラインで結ばれている。
本発明の第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と読み替える。
CPU210は、各部の制御を行う。なお、ここでは、第2マイクロコントローラ200は、第1マイクロコントローラ100側から乱数を取得するため、CPU210は乱数の発生を行わない。
ID記憶部220は、顧客毎に定められた固有の識別情報(ID)を記憶する。この識別情報は、第1マイクロコントローラ100のID記憶部120に記憶されている識別情報と同じ識別情報である。すなわち、ID記憶部120とID記憶部220は、同じ識別情報を記憶している。
プログラムメモリ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に記憶されたプログラムではなく、回路であっても良い。
なお、比較プログラム234は、図1の比較プログラム134と同じでも良いが、本体(認証側)、すなわち第1マイクロコントローラ100側で互いの暗号化乱数の比較が行われる場合、比較プログラム234は、暗号化プログラム233により暗号化した乱数(第2暗号化乱数)を第1マイクロコントローラ100側に送信するためのプログラムとする。なお、比較プログラム134による第2暗号化乱数の取得、又は暗号化プログラム233による第2暗号化乱数の送信により、第1マイクロコントローラ100が第2マイクロコントローラ200側の暗号化乱数を取得できる場合、比較プログラム234は無くても良い。
プログラムメモリ230が不揮発性メモリである場合、第2マイクロコントローラ200は、更に、コントロール部250を具備する。コントロール部250は、図1のコントロール部150と同じである。
入出力ポート240は、外部との通信を行うためのポートである。ここでは、第1マイクロコントローラ100側から乱数を取得し、第2暗号化乱数を第1マイクロコントローラ100側に送信するために入出力ポート240が用いられる。
本発明の第1実施形態では、図2に示すように、第1マイクロコントローラ100を本体(認証側)とし、第2マイクロコントローラ200を付属品(被認証側)としたが、実際には、付属品を認証側として、本体を認証するようにしても良い。これが本発明の第2実施形態である。この場合、第1マイクロコントローラ100を付属品(認証側)とし、第2マイクロコントローラ200を本体(被認証側)とする。
更に、本発明の第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により互いの暗号化乱数を比較する。
図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暗号化乱数を比較し、比較結果を出力する。
なお、上記の動作を開始するタイミング(動作開始のトリガー)としては、本体及び付属品の起動時(電源ON/OFF時)、本体と付属品の接続時、外部からの要求信号の受信時、定期的な実行(巡回動作)が考えられる。また、付属品は、本体から乱数を受け取った後に動作を開始しても良い。なお、本体、付属品共に、暗号鍵Bの生成までの動作は、識別情報(ID)とプログラムをセットされた時点で行っておくことも可能である。但し、実際には上記の例に限定されない。
以下に、実施例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
結果が一致していなかった場合には、本体は、プリンタとしての動作を停止する。
次に、図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
結果が一致していなかった場合には、本体は、ポータブル機器としての動作を停止する。
ここで、マイクロコントローラのプログラムが不正に取得された場合について説明する。ここでは、本体のID記憶部にかかれているIDは顧客固有である。
まず、付属品側のマイクロコントローラ(顧客限定品)に正規プログラムが書き込まれている場合、すなわち正常な使用の場合、第1の暗号鍵AとIDに基づいて作成した暗号鍵Bと、乱数は、本体と付属品とで同じ物を使用することになるため、暗号化した乱数も同じになる。
しかし、不正に取得されたプログラムをそのまま特定顧客以外の一般顧客向けのマイクロコントローラのプログラムメモリにコピーした場合、模造品に実装されたマイクロコントローラのIDは初期化(例えばオールゼロ)されており、顧客固有IDとは異なるため、暗号鍵Bが異なる。結果、本体と付属品の各々が暗号化した乱数は互いに異なり、本体は接続されている付属品が模造品であることが確認できる。
マイクロコントローラのプログラムメモリが不揮発性メモリの場合においては、IDを読み出し出力する簡易なプログラムを書き込み動作させることにより、ID情報を悪意に入手する手段が考えられる。しかしながら、ID記憶部に保持されているデータは不揮発性メモリ消去/書き込みを行うことにより、初期化さる機能を有するため、本手段を用いることはできない。
以上のように、本発明におけるマイクロコントローラは、乱数発生用プログラム又はハードウェア機能により乱数を発生させるCPUと、固有の識別情報を記憶するID記憶部と、第1暗号鍵を記憶し、且つ、識別情報及び第1暗号鍵に基づいて第2暗号鍵を生成し、乱数を第2暗号鍵で暗号化するプログラムを記憶する第1プログラムメモリとを備える。
本発明のマイクロコントローラを用いた認証システムでは、本体(認証側)の第1マイクロコントローラと付属品(被認証側)の第2マイクロコントローラを使用する。第1マイクロコントローラと第2マイクロコントローラは通信ラインで結ばれている。
第1マイクロコントローラは、プログラムメモリ、ID記憶部、CPUを備える。第2マイクロコントローラは、プログラムメモリ、ID記憶部を備える。各々、ID記憶部が不揮発性メモリの場合、コントロール部を更に備える。
プログラムメモリはユーザのプログラムが書き込まれる。具体的には、暗号鍵A提供プログラム、暗号鍵B生成プログラム、暗号化プログラム、比較プログラム(認証側のみ)のプログラムからなる。プログラムメモリの種類としてはマスクROM品の場合と不揮発性メモリ品の場合とがある。ID記憶部には、ID記憶部がある。ある顧客向けには対象顧客固有IDが書き込まれ出荷される。一般顧客への出荷品のID記憶部には、初期値(例えばオールゼロ)が書き込まれている。ID記憶部はユーザメモリプログラムからは読み出しは可能であるが、書き換えはできない。ID記憶部はプログラムメモリが不揮発性メモリ品でありプログラムの書き換えが可能な場合には不揮発性メモリとする。暗号鍵B生成プログラムは暗号鍵AとIDをもとに暗号鍵Bを生成する。CPUは乱数を発生する。暗号化プログラムは乱数を暗号鍵Bで暗号化する。比較プログラムは本体、付属品双方から入力される暗号化された乱数を比較し、その結果を出力する。コントロール部はプログラムメモリが不揮発性メモリである場合に構成要素となる(存在する)。外部からの書き込み要求を受けプログラムメモリを消去/書き込みを行う。同時に暗号鍵A提供プログラムに保持されているIDを初期化(例えばオールゼロ)する。
本発明における認証の処理フローについては、以下の通りである。
まず、本体、付属品ともに暗号鍵AとIDから暗号鍵Bを生成する。本体は乱数を発生させ、付属品へ出力する。本体は乱数を暗号鍵Bで暗号化し、第1暗号化乱数を取得する。付属品は本体より受け取った乱数を暗号鍵Bで暗号化し、第2暗号化乱数を生成して本体に送信する。本体は第1暗号化乱数と第2暗号化乱数を比較し、比較結果を出力する。
図1は、本発明のマイクロコントローラの構成を示すブロック図である。 図2は、本体(認証側)と付属品(被認証側)との構成を示すブロック図である。 図3は、本発明の基本動作を示すフローチャートである。 図4は、プリンタとカートリッジの場合の認証の動作を示すフローチャートである。 図5は、ポータブル機器とバッテリの場合の認証の動作を示すフローチャートである。
符号の説明
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… コントローラ部

Claims (14)

  1. 本体装置又は該本体装置の付属装置に搭載されるマイクロコントローラであって、
    プログラム及び第1暗号鍵を予め保有するプログラムメモリと、
    前記プログラムに基づいて処理を実行するCPUと、
    対象顧客となる前記本体装置及び前記付属装置の製造メーカ毎に定められた対象顧客固有の識別情報を予め保有するID記憶部と
    を具備し、
    前記CPUは、前記プログラムの実行により、前記第1暗号鍵及び前記対象顧客固有の識別情報に基づいて第2暗号鍵を生成し、乱数を前記第2暗号鍵で暗号化する
    マイクロコントローラ。
  2. 請求項1に記載のマイクロコントローラであって、
    前記CPUは、前記第2暗号鍵を用いて暗号化した乱数と、他のマイクロコントローラで暗号化された乱数とを比較し、比較の結果、一致する場合には前記本体装置の動作を開始し、一致しない場合には前記本体装置の動作を停止する
    マイクロコントローラ。
  3. 請求項1又は2に記載のマイクロコントローラであって、
    前記乱数は、前記CPUが乱数発生用プログラムを実行することにより発生する
    マイクロコントローラ。
  4. 請求項1又は2に記載のマイクロコントローラであって、
    前記乱数は、乱数発生用回路により発生する
    マイクロコントローラ。
  5. 請求項1又は2に記載のマイクロコントローラであって、
    前記乱数を外部から入力するための入出力ポート
    を更に具備する
    マイクロコントローラ。
  6. 請求項1及至5のいずれか一項に記載のマイクロコントローラであって、
    前記プログラムメモリ及び前記ID記憶部は、不揮発性メモリである
    マイクロコントローラ。
  7. 請求項6に記載のマイクロコントローラであって、
    前記プログラムメモリに対してプログラムを書き込み又は消去するためのコントロール部
    を更に具備し、
    前記コントロール部は、前記プログラムメモリの内容を消去する時に、前記ID記憶部から前記対象顧客固有の識別情報を消去する
    マイクロコントローラ。
  8. 請求項1乃至7のいずれか一項に記載のマイクロコントローラであって、
    前記プログラムは、
    前記第1暗号鍵を提供するための第1暗号鍵提供プログラムと、
    前記第1暗号鍵及び前記対象顧客固有の識別情報を取得し、前記第1暗号鍵及び前記識別情報に基づいて前記第2暗号鍵を作成するための第2暗号鍵作成プログラムと、
    前記乱数を前記第2暗号鍵で暗号化して暗号化乱数を生成するための暗号化プログラムと
    を具備する
    マイクロコントローラ。
  9. 請求項8に記載のマイクロコントローラであって、
    前記プログラムは、
    前記暗号化乱数と他のマイクロコントローラで暗号化された乱数とを比較し、比較結果を出力するための比較プログラム
    を更に具備する
    マイクロコントローラ。
  10. 請求項1乃至9のいずれか一項に記載のマイクロコントローラであって、
    前記ID記憶部は、該マイクロコントローラ前記対象顧客向けである場合には前記対象顧客固有の識別情報を予め保有し、該マイクロコントローラ前記対象顧客以外の一般顧客向けである場合には初期値を予め保有する
    マイクロコントローラ。
  11. 本体装置に搭載される第1マイクロコントローラと、
    前記本体装置の付属装置に搭載される第2マイクロコントローラと
    を含み、
    前記第1マイクロコントローラ及び前記第2マイクロコントローラの各々は、プログラム、第1暗号鍵、及び、対象顧客となる前記本体装置及び前記付属装置の製造メーカ毎に定められた対象顧客固有の識別情報を予め保有し、前記プログラムの実行により、前記第1暗号鍵及び前記対象顧客固有の識別情報に基づいて第2暗号鍵を生成し、乱数を取得し、前記乱数を前記第2暗号鍵で暗号化し、
    前記第1マイクロコントローラは、前記第2マイクロコントローラで暗号化された乱数を取得し、前記第1マイクロコントローラで暗号化された乱数と前記第2マイクロコントローラで暗号化された乱数とを比較し、比較の結果、一致する場合には前記本体装置の動作を開始し、一致しない場合には前記本体装置の動作を停止する
    認証システム。
  12. 請求項11に記載の認証システムであって、
    前記第1マイクロコントローラは、前記乱数を生成し、前記乱数を前記第2マイクロコントローラに送信し、
    前記第2マイクロコントローラは、前記第1マイクロコントローラから前記乱数を受信し、前記乱数を前記第2暗号鍵で暗号化し、前記暗号化された乱数を前記第1マイクロコントローラに送信し、
    前記第1マイクロコントローラは、前記暗号化された乱数を前記第2マイクロコントローラから受信する
    認証システム。
  13. 本体装置に搭載される第1マイクロコントローラ及び前記本体装置の付属装置に搭載される第2マイクロコントローラの各々が、プログラム、第1暗号鍵、及び、対象顧客となる前記本体装置及び前記付属装置の製造メーカ毎に定められた対象顧客固有の識別情報を予め保有することと、
    前記第1マイクロコントローラ及び前記第2マイクロコントローラの各々が、前記プログラムの実行により、前記第1暗号鍵及び前記対象顧客固有の識別情報に基づいて第2暗号鍵を生成することと、
    前記第1マイクロコントローラ及び前記第2マイクロコントローラの各々が、乱数を取得することと、
    前記第1マイクロコントローラ及び前記第2マイクロコントローラの各々が、前記乱数を前記第2暗号鍵で暗号化することと、
    前記第1マイクロコントローラが、前記第2マイクロコントローラで暗号化された乱数を取得することと、
    前記第1マイクロコントローラが、前記第1マイクロコントローラで暗号化された乱数と前記第2マイクロコントローラで暗号化された乱数とを比較することと、
    比較の結果、一致する場合、前記第1マイクロコントローラが、前記本体装置の動作を開始することと、
    比較の結果、一致しない場合、前記第1マイクロコントローラが、前記本体装置の動作を停止することと
    を含む
    認証方法。
  14. 請求項13に記載の認証方法であって、
    前記第1マイクロコントローラが、前記乱数を生成することと、
    前記第1マイクロコントローラが、前記乱数を前記第2マイクロコントローラに送信することと、
    前記第2マイクロコントローラが、前記第1マイクロコントローラから前記乱数を受信することと、
    前記第2マイクロコントローラが、前記乱数を前記第2暗号鍵で暗号化することと、
    前記第2マイクロコントローラが、前記暗号化された乱数を前記第1マイクロコントローラに送信することと、
    前記第1マイクロコントローラが、前記暗号化された乱数を前記第2マイクロコントローラから受信することと
    を更に含む
    認証方法。
JP2006000919A 2006-01-05 2006-01-05 マイクロコントローラ Active JP4969106B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006000919A JP4969106B2 (ja) 2006-01-05 2006-01-05 マイクロコントローラ
CNA200610172481XA CN1996837A (zh) 2006-01-05 2006-12-31 微控制器和这些控制器之间的鉴别方法
US11/648,691 US7856103B2 (en) 2006-01-05 2007-01-03 Microcontroller and authentication method between the controllers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006000919A JP4969106B2 (ja) 2006-01-05 2006-01-05 マイクロコントローラ

Publications (2)

Publication Number Publication Date
JP2007184735A JP2007184735A (ja) 2007-07-19
JP4969106B2 true JP4969106B2 (ja) 2012-07-04

Family

ID=38232763

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006000919A Active JP4969106B2 (ja) 2006-01-05 2006-01-05 マイクロコントローラ

Country Status (3)

Country Link
US (1) US7856103B2 (ja)
JP (1) JP4969106B2 (ja)
CN (1) CN1996837A (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101516090B (zh) * 2008-02-20 2013-09-11 华为技术有限公司 网络认证通信方法及网状网络系统
KR100997879B1 (ko) * 2008-03-03 2010-12-07 삼성전자주식회사 Crum 유닛, 교체가능유닛 및 이를 이용하는 화상형성장치와, 그 암호화 데이터 통신 방법
US9875365B2 (en) 2008-05-29 2018-01-23 Hewlett-Packard Development Company, L.P. Providing authenticated communications to a replaceable printer component
CN104077537B (zh) * 2008-05-29 2018-04-27 惠普开发有限公司 提供与可更换打印机部件的认证通信
DK3208736T3 (da) * 2008-05-29 2020-01-27 Hewlett Packard Development Co Autentificering af en udskiftelig printerkomponent
TWI505686B (zh) * 2009-09-29 2015-10-21 Memjet Technology Ltd 具有有限加密鑰取回的通訊系統、方法及裝置
US8554090B2 (en) * 2009-10-30 2013-10-08 Ui Technologies, Inc. Replacement printer cartridge chip with a microcontroller with an encrypted memory device
JP5451445B2 (ja) * 2010-02-18 2014-03-26 株式会社東海理化電機製作所 認証システム及び認証方法
JP5737101B2 (ja) * 2011-09-15 2015-06-17 ブラザー工業株式会社 印刷装置および印刷装置の制御方法
US9967739B2 (en) * 2011-10-28 2018-05-08 Debiotech S.A. Mobile virtualization platform for the remote control of a medical device
JP6030925B2 (ja) * 2012-11-12 2016-11-24 ルネサスエレクトロニクス株式会社 半導体装置及び情報処理システム
JP6182371B2 (ja) 2013-06-28 2017-08-16 ルネサスエレクトロニクス株式会社 半導体集積回路を含むシステム
FR3032540B1 (fr) 2015-02-06 2018-09-07 Dover Europe Sarl Systeme de protection avancee d'elements consommables ou detachables
FR3076925B1 (fr) * 2018-01-16 2020-01-24 Proton World International N.V. Fonction cryptographique
US11177953B2 (en) * 2019-09-05 2021-11-16 Infineon Technologies Ag Trusted authentication of automotive microcontroller
WO2021148123A1 (de) * 2020-01-23 2021-07-29 Frank Schuhmacher Verfahren und vorrichtungen zum betreiben eines elektrischen oder elektronischen geräts

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0244389A (ja) * 1988-08-04 1990-02-14 Matsushita Electric Ind Co Ltd Icカード機器
JP3389186B2 (ja) * 1999-04-27 2003-03-24 松下電器産業株式会社 半導体メモリカード及び読み出し装置
JP2003318894A (ja) 2002-02-21 2003-11-07 Matsushita Electric Ind Co Ltd チャレンジ−レスポンス方式による機器間の認証処理方法
JP2004040717A (ja) * 2002-07-08 2004-02-05 Matsushita Electric Ind Co Ltd 機器認証システム
US7421742B2 (en) * 2003-01-15 2008-09-02 Sony Corporation Signal processing system, recording method, program, recording medium, reproduction device and information processing device
JP4465998B2 (ja) * 2003-07-22 2010-05-26 トヨタ自動車株式会社 携帯端末及び車両遠隔制御システム
JP2005094128A (ja) * 2003-09-12 2005-04-07 Matsushita Electric Ind Co Ltd 認証システム
KR100982513B1 (ko) * 2003-11-12 2010-09-16 삼성전자주식회사 사용자 키를 이용한 저장 매체 디스크 사용 제한 방법 및장치
JP2005151368A (ja) * 2003-11-19 2005-06-09 Matsushita Electric Ind Co Ltd 認証システム
JP2005242621A (ja) * 2004-02-26 2005-09-08 Toshiba Lsi System Support Kk 半導体装置及びその割込み処理方法
JP2005260489A (ja) * 2004-03-10 2005-09-22 Murata Mach Ltd 電子機器装置
JP4608929B2 (ja) * 2004-04-09 2011-01-12 富士ゼロックス株式会社 認証システム、サーバ用認証プログラム、およびクライアント用認証プログラム
CN100501715C (zh) * 2004-05-13 2009-06-17 松下电器产业株式会社 信息处理设备、集成电路和数据传送控制方法
JP3765544B1 (ja) * 2004-11-26 2006-04-12 株式会社ソニー・コンピュータエンタテインメント バッテリ、及び認証要求装置

Also Published As

Publication number Publication date
US20070160204A1 (en) 2007-07-12
CN1996837A (zh) 2007-07-11
JP2007184735A (ja) 2007-07-19
US7856103B2 (en) 2010-12-21

Similar Documents

Publication Publication Date Title
JP4969106B2 (ja) マイクロコントローラ
US7788490B2 (en) Methods for authenticating an identity of an article in electrical communication with a verifier system
US9118467B2 (en) Generating keys using secure hardware
JP4646927B2 (ja) 記憶システムにおける暗号化キー
EP2520044B1 (en) Communication system, method and device with limited encryption key retrieval
EP2297665B1 (en) Method and apparatus for secure hardware analysis
WO2006051522A3 (en) Method, device, and system of securely storing data
JP2015065495A (ja) 暗号鍵供給方法、半導体集積回路および暗号鍵管理装置
US7739506B2 (en) Authentication processing device and security processing method
US20120072736A1 (en) Memory device, memory system, and authentication method
CN109583162B (zh) 一种基于国密算法的身份识别方法及系统
CN108595128B (zh) 耗材芯片、耗材、耗材通信方法
US11328098B2 (en) Electronic circuit
CN101770559A (zh) 数据保护装置和方法
US7085742B2 (en) Authenticating software licenses
EP2701101B1 (en) Information processing devices and information processing methods
CN112257121A (zh) 加密方法、解密方法、电子设备和存储介质
US9076002B2 (en) Stored authorization status for cryptographic operations
US20140230052A1 (en) System and method for testing a secured manufactured device
JP5759827B2 (ja) メモリシステム、情報処理装置、メモリ装置、およびメモリシステムの動作方法
JP2009032003A (ja) 携帯可能電子装置、端末装置、認証システム、及び認証方法
JP2008060703A (ja) 携帯型記憶媒体、及び端末装置
KR102025178B1 (ko) 초기화가 가능한 재생 카트리지에 설치되는 인증용 메모리 모듈
JPH09106445A (ja) 情報記録媒体のキー変更方法および情報記録媒体
CN115080075B (zh) 一种嵌入式硬件安全模块的固件部署系统及方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081022

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110630

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110704

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110830

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120126

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120313

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

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

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

Free format text: PAYMENT UNTIL: 20150413

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4969106

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350