專利名稱:微控制器和這些控制器之間的鑒別方法
技術領域:
本發明涉及一種微控制器,具體來說,涉及通過使用加密后的隨機數進行鑒別的微控制器。
現有技術在使用可替換配件(例如移動式電話的電池和打印機的墨盒)的裝置中,存在這樣的情形即使應該優選使用授權的配件,但是仍然使用了未被授權的配件和普通的配件。如上所述,為了避免使用除了授權配件之外的配件,存在這樣一種情形,即,在主體和配件之間進行鑒別。作為與主體和配件之間的鑒別相關的其中一種技術,通過包括相同加密密鑰的加密程序在鑒別側和被鑒別側之間對相同的隨機數進行加密,并且進行比較從而確認一致性。
日本特開專利申請(JP-P2003-318894A)中描述了對隨機數進行加密的常規方法,其中在多個口令(challenge)裝置和響應系統之間使用了鑒別方法。在該常規的鑒別方法中,從服務器向終端發送口令數據,以及從所述終端向服務器發送根據所述口令數據解密的響應數據。進一步,根據服務器中進行的加密來判斷所述響應數據是否是根據所述口令數據解密后的數據。當判斷結果是肯定的時,鑒別方法將用于加密和解密的參量更新為新的參量,該新參量被設置為用于下一次鑒別的參量。
如果將常規技術應用到其上安裝有微控制器的應用系統,則由于用來對隨機數進行加密的加密密鑰被直接寫在程序中或被存儲為存儲器(該存儲器同時也被用于存儲程序)中的數據,因此可以通過對其中存儲有用戶程序的程序存儲器的全部數據進行拷貝,從而可以在除了授權配件之外的其他配件中進行加密。即,如果非法地獲得了鑒別程序,且該程序被寫入到微控制器的由閃存等構成的程序存儲器中時,則即使在未被授權的配件中也可以執行操作,這將會導致檢測不到假冒產品的問題。以這種方法,如果在仿造授權配件的假冒產品上安裝了由相同的程序寫過的微控制器,則將會表現出與授權配件相同的操作。
發明內容
因此,本發明的目的在于提供一種微控制器和鑒別方法,其具有能夠阻止在假冒產品中的執行正常的操作。
此外,本發明的另一個目的在于提供一種微控制器和鑒別方法,其能夠防止通過簡單地拷貝程序存儲器而生產假冒配件。
在本發明的一個方面中,微控制器包括程序存儲器,其配置為存儲程序組和第一加密密鑰;CPU;以及標識(ID)存儲部分,其被配置為存儲微控制器的用戶所特有的標識數據。CPU執行程序組以根據標識數據和第一加密密鑰產生第二加密密鑰,以及利用第二加密密鑰對隨機數進行加密。
這里,CPU可以執行程序組的隨機數生成程序用以產生隨機數。此外,微控制器可以進一步包括被配置用于產生隨機數的隨機數產生電路。此外,微控制器可以進一步包括被配置用于接收隨機數的端口。
此外,CPU可以執行程序組,以將利用第二加密密鑰所加密的隨機數與從外部設備接收到的加密隨機數進行比較,并輸出比較結果。
此外,所述程序存儲器和ID存儲部分可以由非易失存儲器構成。在這種情況下,微控制器可以進一步包括控制部分,其被配置為響應于向程序存儲器的程序寫入請求,對程序存儲器執行擦除操作和寫操作。當對程序存儲器執行擦除操作時,控制部分可以從ID存儲部分擦除該標識數據。
此外,程序組可以包括第一加密密鑰提供程序,其用于提供第一加密密鑰;第二加密密鑰生成程序,其用于獲得第一加密密鑰和標識數據,并根據所述第一加密密鑰和標識數據產生第二加密密鑰;以及加密程序,其用于利用第二加密密鑰對隨機數進行加密。在這種情況下,程序組可以進一步包括比較程序,其用于將利用第二加密密鑰所加密的隨機數與從外部設備接收到的加密隨機數進行比較,并輸出比較結果。
在本發明的另一方面中,通過如下步驟實現一種第一和第二微控制器之間的鑒別方法,這些步驟包括通過執行存儲在第一微控制器的第一程序存儲器中的第一加密密鑰提供程序來提供第一加密密鑰;在第一微控制器的第一標識(ID)存儲部分中保存(hold)第一微控制器所特有的第一標識數據;根據第一標識數據和第一加密密鑰在第一微控制器中產生第二加密密鑰;利用在第一微控制器中的第二加密密鑰對隨機數進行加密以產生第一加密隨機數;從第二微控制器接收第二加密隨機數;以及對第一加密隨機數和第二加密隨機數進行比較以便輸出比較結果。
這里,通過進一步從第一程序存儲器讀取隨機數來實現所述鑒別方法。在這種情況下,通過進一步產生隨機數以存儲在第一程序存儲器中從而實現所述鑒別方法。通過執行存儲在第一程序存儲器中的隨機數生成程序從而產生隨機數,由此實現隨機數的產生。
此外,程序存儲器和ID存儲部分由非易失存儲器構成,以及可以通過進一步執行以下步驟從而實現所述微控制器,所述步驟是響應于向第一程序存儲器的程序寫入請求,對第一程序存儲器執行擦除操作和寫操作;以及響應于該寫入請求對ID存儲部分執行擦除操作。
此外,可以通過進一步執行以下步驟從而實現所述鑒別方法,這些步驟是通過執行存儲在第二微控制器的第二程序存儲器中的第二加密密鑰提供程序從而提供第三加密密鑰;在第二微控制器的第二標識(ID)存儲部分中保存第二微控制器所特有的第二標識數據;根據第二標識數據和第三加密密鑰,在第二微控制器中產生第四加密密鑰;利用在第二微控制器中的第四加密密鑰對來自第一微控制器的隨機數進行加密,從而產生第二加密隨機數;以及將第二加密隨機數發送給第一微控制器。在這種情況下,當將包含第二微控制器的裝置安裝到包含第一微控制器的裝置中時,可以通過進一步向第二微控制器提供電能從而實現所述鑒別方法。在向第二微控制器提供了電能之后再執行提供第三加密密鑰的步驟。
此外,可以通過進一步執行以下步驟從而實現所述鑒別方法,這些步驟是通過執行存儲在第二微控制器的第二程序存儲器中的第二加密密鑰提供程序從而提供第三加密密鑰;在第二微控制器的第二標識(ID)存儲部分中保存第二微控制器所特有的第二標識數據;根據第二標識數據和第三加密密鑰,在第二微控制器中產生第四加密密鑰;利用在第二微控制器中的第四加密密鑰對來自第一微控制器的隨機數進行加密,從而產生第二加密隨機數;以及將第二加密隨機數發送給第一微控制器。在這種情況下,當將包含第二微控制器的裝置安裝到包含第一微控制器的裝置上時,可以通過進一步向第一微控制器提供電能從而實現所述鑒別方法。在向第一微控制器提供了電能之后再執行提供第一加密密鑰的步驟。
圖1示出了根據本發明的微控制器的結構框圖;圖2示出了主體(鑒別側)和配件(被鑒別側)的結構框圖;圖3示出了根據本發明的基本操作的流程圖;圖4示出了在打印機和墨盒情況下的鑒別操作的流程圖;以及圖5示出了在便攜設備和電池情況下的鑒別操作的流程圖。
具體實施例方式
以下,將參考附圖具體描述本發明的微控制器。圖1示出了根據本發明第一實施例的微控制器100的結構框圖。參考圖1,第一實施例的微控制器100包括CPU 110、ID存儲部分120、程序存儲器130和輸入/輸出端口140。
CPU 110控制微控制器100中的每個部分。CPU 110還在微控制器100中產生加密所需的隨機數。此時,CPU 110通過執行存儲在程序存儲器130中的隨機數生成程序(未示出)從而產生隨機數。然而,對于實際應用來說,還可以通過使用如下方法來產生所述隨機數,其中這些方法是通過CPU本身執行程序的隨機數生成功能或通過例如隨機數產生電路(未示出)的硬件功能。即,可以用任何方法來產生隨機數。此外,可以從外部設備接收該隨機數。所產生或接收的隨機數可以被存儲在程序存儲器中。
ID存儲部分120是配置在微控制器100中的存儲區域,且通過微控制器中的電路或程序對其進行訪問。ID存儲部分120還存儲有為各個客戶所確定的固有的標識數據(ID)。在ID存儲部分120中,對特定(或某個)客戶寫入目標客戶固有ID(例如58679)并發貨。在發給普通客戶的產品的ID存儲部分120中,寫入了例如全部都是零的初始值。在程序存儲器130中,ID存儲部分120是可讀的,但不可被任何程序重寫。ID存儲部分120僅在制造商的制造過程中的專用模式下才是可重寫的。如果程序存儲器130是非易失存儲器且程序都是可重寫的,則ID存儲部分120是非易失存儲器。
在程序存儲器130中,在其中寫入了用戶程序。該程序包括加密密鑰A提供程序131、加密密鑰B生成程序132、加密程序133和比較程序134。然而,對于實際應用來說,加密密鑰A提供程序131、加密密鑰B生成程序132、加密程序133和比較程序134的功能還可以通過硬件電路來實現。此外,所述程序可以包括隨機數生成程序。
加密密鑰A提供程序131是這樣一種程序,其用于提供第一加密密鑰A并將它保存在程序存儲器中。加密密鑰B生成程序132是這樣一種程序,其用于根據加密密鑰A提供程序131提供的加密密鑰A和存儲在ID存儲部分120中的固有標識數據(ID)重新產生加密密鑰B。可以將加密密鑰B的產生通知給外部設備。加密程序133是這樣一種程序,其用于根據加密密鑰B對隨機數進行加密。比較程序134是這樣一種程序,其用于將根據加密密鑰B所加密的隨機數(即,第一加密隨機數)與從另一微控制器獲得的一第二加密隨機數進行比較,并輸出比較結果。
程序存儲器130是掩模ROM或非易失存儲器。如果程序存儲器130是例如閃存的非易失存儲器,則ID存儲部分120優選地是非易失存儲器。這是由于當對程序存儲器中的用戶程序進行重寫時,其使得可以對ID存儲部分120執行擦除操作。以下將要更詳細地進行描述。
如果程序存儲器130是非易失存儲器,則第一微控制器100進一步包括控制部分150。
控制部分150對程序存儲器130進行寫入/擦除控制。具體地,在寫入操作中,控制部分150產生非易失存儲器的寫入操作所需的電壓,并且根據寫入地址和將被寫入的數據執行寫入控制。此外,控制部分150產生非易失存儲器的擦除操作所需的電壓并且執行擦除操作。如果為了重寫程序存儲器130的內容而從程序寫入設備(未示出)向第一微控制器100提供重寫請求,則在寫入新的程序之前,控制部分150對程序存儲器130和ID存儲部分120的擦除操作進行控制。即,控制部分150響應于重寫請求對程序存儲器130進行擦除或寫入,并同時對保存在ID存儲部分120中的ID進行初始化,例如將零寫入到全部地址中。
如果程序存儲器130是掩模ROM,則不能改變程序。
輸入/輸出端口140是用于與外部設備進行通信的端口。輸入/輸出端口140用于獲得由另一微控制器產生的加密隨機數,并用于輸出來自比較程序134的比較結果。如果沒有在微控制器100內部產生用于加密的隨機數,則使用輸入/輸出端口140從外部設備獲得隨機數。
如圖2所示,使用本發明的微控制器的鑒別系統具有第一微控制器100和第二微控制器200。第一微控制器100通過通信線路連接到第二微控制器200。
在本發明的第一實施例中,如圖2所示,將第一微控制器100視為主體(鑒別側),而將第二微控制器200視為配件(被鑒別側)。第一微控制器100和第二微控制器200都具有與圖1所示的微控制器相同的配置和功能。為了識別第一微控制器100和第二微控制器200之間的配置,第二微控制器200包括CPU 210、ID存儲部分220、程序存儲器230和輸入/輸出端口240。即,在第二微控制器200中,圖1中的CPU 110、ID存儲部分120、程序存儲器130和輸入/輸出端口140分別對應于CPU 210、ID存儲部分220、程序存儲器230和輸入/輸出端口240。
CPU 210控制微控制器中的各個部分。由于第二微控制器200從第一微控制器100獲得隨機數,因此CPU 210不產生隨機數。
ID存儲部分220存儲有為各個客戶確定的固有標識數據(ID)。該標識數據與存儲在第一微控制器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也可以通過硬件電路來實現。
盡管比較程序234可以與圖1中的比較程序134相同,但是如果在主體側(鑒別側)上對各個隨機數進行比較,則比較程序234將由加密程序233加密的隨機數(第二加密隨機數)發送給第一微控制器100。如果第一微控制器100可以通過如下方式從第二微控制器200獲得加密后的隨機數,則可以省略比較程序234,所述方式是通過使用比較程序134獲得第二加密隨機數或通過使用加密程序233發送第二加密隨機數。
如果程序存儲器230是非易失存儲器,則第二微控制器200進一步包括控制部分250。控制部分250與圖1中的控制部分150相同。
輸入/輸出端口240是用于與外部設備進行通信的端口。輸入/輸出端口240用于從第一微控制器100獲得隨機數,并將第二加密隨機數發送給第一微控制器100。
盡管在圖2所示的本發明的第一實施例中,第一微控制器100是主體(鑒別側)且第二微控制器200是配件(被鑒別側),但是對于實際應用來說,配件也可以是鑒別側,而主體也可以是被鑒別側。這就是根據本發明第二實施例的鑒別系統。
在本發明的第三實施例中,還可以同時通過主體和配件進行鑒別。同時在主體和配件中進行的鑒別可以確保更可靠的保密性。在這種情況下,第一微控制器100和第二微控制器200執行相同的操作。即,第二微控制器中的CPU 210產生隨機數。此時,CPU 210通過執行存儲在程序存儲器230中的隨機數生成程序(未示出)從而產生隨機數。然而,也可以通過CPU本身的隨機數生成功能和硬件功能來產生隨機數,所述硬件功能例如是隨機數生成電路(未示出)。可以通過任何方法獲得隨機數。例如,在第一微控制器100和第二微控制器200中,可以從外部隨機數生成設備(未示出)來獲得隨機數。在這種情況下,第一微控制器100和第二微控制器200具有多個輸入/輸出端口,所述輸入/輸出端口不僅用于相互通信而且也用于與外部隨機數生成設備通信。
此外,第二微控制器200從第一微控制器100獲得加密后的隨機數(第一加密隨機數),并通過比較程序234將對該加密的隨機數進行解密后的隨機數與在第二微控制器200中產生的隨機數進行比較。
接下來,參考圖3,以下將要描述根據本發明的鑒別系統的操作。作為例子,這里假定第一微控制器100是主體(鑒別側),而第二微控制器200是配件(被鑒別側)。
(1)步驟H101CPU 110從ID存儲部分120讀取標識數據(ID)。
(2)步驟H102CPU 110由程序存儲器130中的加密密鑰A提供程序131讀取加密密鑰A。
(3)步驟H103CPU 110根據加密密鑰A和該ID通過使用加密密鑰B生成程序132生成加密密鑰B。
(4)步驟F101CPU 210從ID存儲部分220讀取標識數據(ID)。
(5)步驟F102CPU 210由程序存儲器230中的加密密鑰A提供程序231讀取加密密鑰A。
(6)步驟F103CPU 210根據加密密鑰A和ID通過使用加密密鑰B生成程序232生成加密密鑰B。
(7)步驟H104CPU 110生成隨機數以輸出給(通知)配件(第二微控制器200)。
(8)步驟H105CPU 110通過使用加密程序133利用加密密鑰B對該隨機數進行加密,以生成第一加密隨機數。
(9)步驟F104CPU 210通過使用加密程序233利用加密密鑰B對從主體(第一微控制器100)接收到的隨機數進行加密,從而生成了第二加密隨機數,隨后將第二加密隨機數發送給主體(第一微控制器100)。
(10)步驟H106CPU 110通過使用比較程序134對第一加密隨機數和第二加密隨機數進行比較,從而輸出該比較結果。
啟動上述操作的時間(操作啟動觸發器)是啟動主體和配件的時間(電源開啟/關閉的時間)、將配件連接到主體的時間、從外部設備接收請求信號的時間、或是周期性的。配件可以在從主體接收到隨機數之后再啟動該操作。此外,在主體和配件中,當預先設置了標識數據(ID)和程序的時候,可以執行生成加密密鑰B的操作。然而,實際應用不局限于上述實例。
接下來,以下將要描述第一實施例和第二實施例的兩個實例。
參考圖4,將要描述打印機(主體)和墨盒(配件)的第一實施例中的鑒別系統。
(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對從主體接收到的隨機數進行加密,從而生成第二加密隨機數,并將該第二加密隨機數發送給主體。
(11)步驟H207主體側的微控制器根據加密密鑰B對隨機數進行加密,從而獲得第一加密隨機數。
(12)步驟H208主體側的微控制器對第一加密隨機數和第二加密隨機數進行比較。
(13)步驟H209如果結果表示(二者)相符合,則主體開始作為打印機操作。
(14)步驟H210如果結果表示(二者)不相符,則主體中止作為打印機的操作。
接下來,參考圖5,將要描述便攜式終端(主體)和電池(配件)情況下的第二實施例中的鑒別系統的操作。
(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對從主體接收到的隨機數進行加密,從而生成第二加密隨機數,并將該第二加密隨機數發送給主體。
(11)步驟H305主體通過利用加密密鑰B對隨機數進行加密,從而獲得第一加密隨機數。
(12)步驟H306主體對第一加密隨機數和第二加密隨機數進行比較。
(13)步驟H307如果結果表示(二者)相符合,則主體作為便攜設備開始操作。
(14)步驟H308如果結果表示(二者)不相符,則主體中止作為便攜設備的操作。
這里,將要描述非法地獲得微控制器程序的情形。在這種情況下,寫入到主體的ID存儲部分中的ID是某個用戶所固有的。
當已經在配件側(客戶限定的產品)將授權程序寫入到微控制器中時,即,在通常使用的情況下,假定主體和配件使用根據第一加密密鑰A和ID準備了相同的加密密鑰B和相同的隨機數,由此加密后的隨機數仍保持相同。
然而,對于非特定用戶的普通用戶來說,如果在沒有任何處理的情況下,將非法獲得的程序拷貝到微控制器的程序存儲器中,則安裝在假冒產品上的微控制器的ID被初始化,例如全部設置為零,而與用戶固有ID不同。由此,加密密鑰B不同。結果,在主體和配件中加密的隨機數彼此不同。由此,可以確認連接到主體的配件是假冒產品。
如果微控制器的程序存儲器是非易失存儲器,則考慮這樣一種方式,即,通過編寫和執行用于讀取和輸出ID的簡單程序而惡意地獲得了ID。然而,由于當數據或程序被寫入非易失存儲器時,對非易失存儲器執行了擦除操作和寫入操作,因此可以初始化在ID存儲部分中保存的數據,這防止了使用上述方法。
如上所述,根據本發明的微控制器包括CPU,其用于通過執行隨機數生成程序或硬件功能生成隨機數;ID存儲部分,其用于存儲固有的標識數據,以及第一程序存儲器,其用于存儲第一加密密鑰,并根據標識數據和第一加密密鑰生成第二加密密鑰,以便根據第二加密密鑰存儲用于對隨機數進行加密的程序。
在本發明的使用微控制器的鑒別系統中,使用了主體(鑒別側)的第一微控制器和配件(被鑒別側)的第二微控制器。第一微控制器通過通信線路連接到第二微控制器。
第一微控制器包括程序存儲器、ID存儲部分和CPU。第二微控制器包括程序存儲器和ID存儲部分。如果各個微控制器中的ID存儲部分都使用了非易失存儲器,則進一步提供控制部分。
用戶程序已經被寫入到程序存儲器中。更具體地,這些程序包括加密密鑰A提供程序、加密密鑰B生成程序、加密程序和比較程序(鑒別側專用)。程序存儲器被分為以下兩種情形,即掩模ROM和非易失存儲器。ID存儲部分具有ID存儲部分。對于特定用戶,寫入目標用戶固有ID并發貨。在發往普通客戶的產品的ID存儲部分中,寫入了例如全部都是零的初始值。對于用戶存儲程序來說,ID存儲部分是可讀的但是不可重寫的。如果程序存儲器是非易失存儲器且程序是可重寫的,則ID存儲部分是非易失存儲器。加密密鑰B生成程序根據加密密鑰A和ID生成加密密鑰B。CPU生成隨機數。加密程序根據加密密鑰B對隨機數進行加密。比較程序對主體中產生的加密隨機數和從配件提供的加密隨機數進行比較,并輸出比較結果。如果程序存儲器是非易失存儲器,則將控制部分配置為一個部件(或存在控制部)。控制部分響應于寫入請求而對程序存儲器進行擦除/寫入。同時對保存在加密密鑰A提供程序中的ID進行初始化,例如全部初始化為零。
以下將要描述本發明中的鑒別過程的流程。
起初,主體和配件利用加密密鑰A和ID生成加密密鑰B。主體生成隨機數并輸出給配件。主體根據加密密鑰B對隨機數進行加密,從而獲得第一加密隨機數。配件根據加密密鑰B對從主體接收到的隨機數進行加密,并生成第二加密隨機數,并將其傳送給主體。主體對第一加密隨機數和第二加密隨機數進行比較,并輸出比較結果。
當非法地獲得了微控制器的程序時,即使使用了在其中將非法獲得的程序寫入到程序存儲器的假冒產品,也能夠阻止其正常操作。因此,可以消除通過簡單地拷貝程序存儲器的假冒配件。
權利要求
1.一種微控制器,包括程序存儲器,其被配置為存儲程序組和第一加密密鑰;CPU;以及標識(ID)存儲部分,其被配置為存儲所述微控制器的用戶所特有的標識數據,其中所述CPU根據所述標識數據和所述第一加密密鑰執行所述程序組以生成第二加密密鑰,并利用所述第二加密密鑰對隨機數進行加密。
2.根據權利要求1的微控制器,其中所述CPU執行所述程序組的隨機數生成程序從而生成所述隨機數。
3.根據權利要求1的微控制器,進一步包括隨機數生成電路,其被配置為生成所述隨機數。
4.根據權利要求1的微控制器,進一步包括被配置為接收所述隨機數的端口。
5.根據權利要求1到4任意一項的微控制器,其中所述CPU執行所述程序組,從而將利用所述第二加密密鑰加密的所述隨機數與從外部設備接收到的一加密的隨機數進行比較,并輸出該比較結果。
6.根據權利要求1到4任意一項的微控制器,其中所述程序存儲器和ID存儲部分是由非易失存儲器構成的。
7.根據權利要求6的微控制器,進一步包括控制部分,其被配置為響應于向所述程序存儲器的程序寫入請求,對所述程序存儲器執行擦除操作和寫入操作,以及其中當對所述程序存儲器執行所述擦除操作時,所述控制部分將所述標識數據從所述ID存儲部分中擦除。
8.根據權利要求1到4任意一項的微控制器,其中所述程序組包括第一加密密鑰提供程序,其用于提供所述第一加密密鑰;第二加密密鑰生成程序,其用于獲得所述第一加密密鑰和所述標識數據,并根據所述第一加密密鑰和所述標識數據生成所述第二加密密鑰;以及加密程序,其用于利用所述第二加密密鑰對所述隨機數進行加密。
9.根據權利要求8的微控制器,其中所述程序組進一步包括比較程序,其用于將利用所述第二加密密鑰進行加密的所述隨機數與從外部設備接收到的一加密的隨機數進行比較,并輸出比較結果。
10.一種第一和第二微控制器之間的鑒別方法,包括通過執行存儲在所述第一微控制器的第一程序存儲器中的第一加密密鑰提供程序來提供第一加密密鑰;在所述第一微控制器的第一標識(ID)存儲部分中保存所述第一微控制器所特有的第一標識數據;根據所述第一標識數據和所述第一加密密鑰,在所述第一微控制器中產生第二加密密鑰;利用在所述第一微控制器中的所述第二加密密鑰對隨機數進行加密以產生第一加密隨機數;從所述第二微控制器接收第二加密隨機數;以及對所述第一加密隨機數和所述第二加密隨機數進行比較以便輸出比較結果。
11.根據權利要求10的鑒別方法,進一步包括從所述第一程序存儲器讀取所述隨機數。
12.根據權利要求11的鑒別方法,進一步包括生成所述隨機數以存儲在所述第一程序存儲器中。
13.根據權利要求12的鑒別方法,其中所述生成所述隨機數的步驟包括執行存儲在所述第一程序存儲器中的隨機數生成程序從而生成所述隨機數。
14.根據權利要求10的鑒別方法,其中所述程序存儲器和所述ID存儲部分是由非易失存儲器構成的,以及所述微控制器進一步包括響應于向第一程序存儲器的程序寫入請求,對所述第一程序存儲器執行擦除操作和寫入操作;以及響應于該寫入請求對所述ID存儲部分執行所述擦除操作。
15.根據權利要求10到14任意一項的鑒別方法,進一步包括通過執行存儲在所述第二微控制器的第二程序存儲器中的第二加密密鑰提供程序來提供第三加密密鑰;在所述第二微控制器的第二標識(ID)存儲部分中保存所述第二微控制器特有的第二標識數據;根據所述第二標識數據和所述第三加密密鑰,在所述第二微控制器中產生第四加密密鑰;利用在所述第二微控制器中的所述第四加密密鑰,對來自所述第一微控制器的所述隨機數進行加密,從而產生所述第二加密隨機數;以及將所述第二加密隨機數發送給所述第一微控制器。
16.根據權利要求15的鑒別方法,進一步包括當包含所述第二微控制器的裝置被安裝到包含所述第一微控制器的裝置時向所述第二微控制器提供電能,其中在向所述第二微控制器提供了電能之后再執行所述提供第三加密密鑰的步驟。
17.根據權利要求10到14任意一項的鑒別方法,進一步包括通過執行存儲在所述第二微控制器的第二程序存儲器中的第二加密密鑰提供程序來提供第三加密密鑰;在所述第二微控制器的第二標識(ID)存儲部分中保存所述第二微控制器特有的第二標識數據;根據所述第二標識數據和所述第三加密密鑰,在所述第二微控制器中產生第四加密密鑰;利用在所述第二微控制器中的所述第四加密密鑰對來自所述第一微控制器的所述隨機數進行加密,從而產生所述第二加密隨機數;以及將所述第二加密隨機數發送給所述第一微控制器。
18.根據權利要求17的鑒別方法,進一步包括當包含所述第二微控制器的裝置被安裝到包含所述第一微控制器的裝置時,向所述第一微控制器提供電能,其中在向所述第一微控制器提供了電能之后再執行所述提供第一加密密鑰的步驟。
全文摘要
本發明涉及一種微控制器和這些控制器之間的鑒別方法。所述微控制器包括程序存儲器,其被配置為存儲程序組和第一加密密鑰;CPU;以及標識(ID)存儲部分,該標識存儲部分被配置為對微控制器的用戶所特有的標識數據進行存儲。CPU根據所述標識數據和第一加密密鑰執行程序組以生成第二加密密鑰,并且利用第二加密密鑰對隨機數進行加密。
文檔編號H04L9/14GK1996837SQ20061017248
公開日2007年7月11日 申請日期2006年12月31日 優先權日2006年1月5日
發明者木村俊夫, 小澤直史 申請人:恩益禧電子股份有限公司