專利名稱:利用八位數(shù)據(jù)傳輸操作的集成電路卡芯片及其驗證方法
技術領域:
本發(fā)明涉及一種集成電路(IC)卡芯片及一種集成電路卡芯片的驗證方法。尤其是,本發(fā)明涉及使用8位(一個字節(jié))數(shù)據(jù)傳輸操作的集成電路卡芯片及使用8位數(shù)據(jù)傳輸操作對集成電路卡芯片進行驗證的方法。
目前,為防止商品假冒,已采用集成電路卡芯片作為商品的防偽標記?,F(xiàn)有的方法利用64位的數(shù)據(jù)傳輸操作來實現(xiàn)對商品上的防偽芯片的驗證。這種傳統(tǒng)驗證方法的具體過程如下首先,將讀寫設備(下稱“識別器”)與貼附在商品上的防偽芯片接觸并上電,然后開始進行驗證。
接著,識別器向芯片輸入含有第一組64位密鑰KN1和隨機數(shù)RAND11的64位數(shù)據(jù)(KN1+RAND11)。芯片在接收到此輸入數(shù)據(jù)后把它與芯片內(nèi)原存的64位密鑰KN1進行逐位比較、處理,得到隨機數(shù)RAND11;接著芯片向識別器輸出含有隨機數(shù)RAND11和芯片內(nèi)原存的隨機數(shù)RAND2的64位數(shù)據(jù)(RAND2+RAND11)。識別器在接收到該數(shù)據(jù)后對其進行加密算法處理,產(chǎn)生64位系統(tǒng)密碼SP。
接著,識別器再次向芯片輸入含有第二組64位密鑰KN2和隨機數(shù)RAND12的64位數(shù)據(jù)(KN2+RAND12)。類似地,芯片在接收到此輸入數(shù)據(jù)后把它與芯片內(nèi)原存的64位密鑰KN2進行逐位比較、處理,得到隨機數(shù)RAND12;接著芯片向識別器輸出含有隨機數(shù)RAND12和芯片內(nèi)原存的制造商代碼CM的64位數(shù)據(jù)(CM+RAND12)。識別器接收到該數(shù)據(jù)后對其進行加密算法處理,產(chǎn)生64位的新的制造商代碼CM2。
隨后,識別器將由以上操作中產(chǎn)生的64位系統(tǒng)密碼SP和隨機數(shù)RAND11及新的隨機數(shù)RAND13組成的64位數(shù)據(jù)(SP+RAND11+RAND13)再次送入芯片。芯片通過把該輸入數(shù)據(jù)與隨機數(shù)RAND11及芯片內(nèi)原存的64位系統(tǒng)密碼SP進行比較、處理,得到隨機數(shù)RAND13。然后,芯片向識別器輸出含有隨機數(shù)RAND13和芯片內(nèi)原存的64位商品代碼MN的64位數(shù)據(jù)(RAND13+MN),供識別器鑒別認可。
最后,識別器將以上操作中產(chǎn)生的64位的新制造商代碼CM2寫入芯片,覆蓋芯片中原來的制造商代碼CM。
至此,操作結束。
在如上所述的驗證過程中,64位數(shù)據(jù)傳輸操作一次性傳輸64位數(shù)據(jù)。傳統(tǒng)上認為驗證過程中所使用的密鑰的位數(shù)越大,則其安全系數(shù)2N(N為所使用數(shù)據(jù)的位數(shù))越高。然而,要完成一次性傳輸64位數(shù)據(jù)的數(shù)據(jù)傳輸操作,需要在芯片中設計64位的傳輸線、64位的寄存器和64位的鎖存器。因此,所需的一次性傳輸數(shù)據(jù)量大、一次性傳輸時間長、芯片面積大且成本高。
如上所述,已有技術所存在的缺陷是為了保證驗證的安全性,所使用的密鑰的位數(shù)(通常為64位)必須較大,然而,如果一次性數(shù)據(jù)傳輸量過大,則數(shù)據(jù)更易受到外來干擾的影響,增大了數(shù)據(jù)傳輸?shù)牟铄e率,從而造成不能進行準確的驗證。并且,所傳輸數(shù)據(jù)的位數(shù)越長,則所需的傳輸線和寄存器的面積也相應增加,從而難以縮小芯片面積和降低成本。
因此,本發(fā)明的一個目的在于提供一種使用8位數(shù)據(jù)傳輸操作的集成電路卡芯片及一種使用8位數(shù)據(jù)傳輸操作對集成電路卡芯片進行驗證的方法,其中把64位的數(shù)據(jù)分成8次傳輸,每次按順序傳輸所述數(shù)據(jù)的一個字節(jié)。
依據(jù)本發(fā)明的一個方面,提供了一種使用8位數(shù)據(jù)傳輸操作的集成電路卡芯片,所述芯片包括邏輯控制電路、指令譯碼電路、時序控制電路、地址寄存器、數(shù)據(jù)寄存器、地址解碼器,所述芯片還包括地址比較電路,用于對來自芯片的邏輯控制電路的前一數(shù)據(jù)傳輸操作的地址和將要進行的數(shù)據(jù)傳輸操作的地址進行比較,以在地址不相同時,控制芯片的輸入/輸出端口執(zhí)行將要進行的數(shù)據(jù)傳輸操作,而在地址相同時,禁止后續(xù)操作;以及順序控制電路,用于根據(jù)來自芯片的控制電路中與各數(shù)據(jù)對應的使能信號和來自芯片的地址解碼器中與各數(shù)據(jù)對應的地址,控制芯片的輸入/輸出端口傳輸數(shù)據(jù)的順序。
依據(jù)本發(fā)明的另一個方面,提供了一種使用8位數(shù)據(jù)傳輸操作對集成電路卡芯片進行驗證操作的方法,該方法包括(a)讀寫設備與集成電路卡芯片接觸,上電;(b)讀寫設備將含有密鑰(KN)和隨機數(shù)(RAND)的8×N位數(shù)據(jù)(KN+RAND)的第一字節(jié)輸入芯片,芯片在接收后把所述第一字節(jié)與芯片內(nèi)原存的密鑰(KN)的第一字節(jié)進行比較處理,得到所述隨機數(shù)(RAND)的第一字節(jié),然后芯片向讀寫設備輸出含有所述隨機數(shù)(RAND)和芯片內(nèi)原存的密碼(MN)的8×N位數(shù)據(jù)(RAND+MN)的第一字節(jié)供讀寫裝置認可;以及(c)重復步驟(b),直到芯片向讀寫裝置輸出所述數(shù)據(jù)(MN+RAND)的第N字節(jié)供讀寫裝置認可,在這里N為正整數(shù)。
從以下對本發(fā)明較佳實施例的描述并結合附圖,將使本發(fā)明的目的、特征、優(yōu)點變得更加明顯起來,其中
圖1是示出已有技術和本發(fā)明的數(shù)據(jù)傳輸操作中的命令格式的示意圖;圖2是示出依據(jù)本發(fā)明一個實施例使用8位數(shù)據(jù)傳輸操作對本發(fā)明的芯片執(zhí)行“寫”操作的流程圖;圖3是示出依據(jù)本發(fā)明一個實施例使用8位數(shù)據(jù)傳輸操作對本發(fā)明的芯片執(zhí)行結束指令(END)操作的流程圖;圖4是示出依據(jù)本發(fā)明一個實施例使用8位數(shù)據(jù)傳輸操作對本發(fā)明的芯片執(zhí)行“讀”(驗證)操作的流程圖;圖5是示出依據(jù)本發(fā)明一個較佳實施例使用8位數(shù)據(jù)傳輸操作對本發(fā)明的芯片執(zhí)行“讀”(驗證)操作的流程圖;圖6是示出依據(jù)本發(fā)明一個實施例的集成電路卡芯片中的地址比較電路的示意圖;圖7是示出依據(jù)本發(fā)明一個實施例的集成電路卡芯片中的順序控制電路的操作的流程圖;圖8是示出依據(jù)本發(fā)明一個實施例的集成電路卡芯片中的地址比較電路的電路圖;圖9是示出依據(jù)本發(fā)明一個實施例的集成電路卡芯片中的順序控制電路的電路圖;以及圖10是示出依據(jù)本發(fā)明一個實施例的集成電路卡芯片中的順序控制電路的方框圖。
以下參考這些附圖來詳細地描述依據(jù)本發(fā)明的較佳實施例。
圖1是示出已有技術和本發(fā)明的數(shù)據(jù)傳輸操作中的命令格式的示意圖。如圖1所示,在本發(fā)明的8位數(shù)據(jù)傳輸操作中,已有技術的操作命令位保持不變,而將64位的數(shù)據(jù)位分為8次傳輸,每次傳輸8位數(shù)據(jù)位。因此,避免了因數(shù)據(jù)位過長而造成的傳輸差錯率,提高了驗證過程的可靠性。由于采用8位數(shù)據(jù)傳輸操作,所以在芯片設計中無需采用64位傳輸線、64位寄存器和64位鎖存器,在減小芯片面積的同時降低了成本。
如上所述,雖然在圖1示出所傳輸?shù)臄?shù)據(jù)總共為64位,但應理解,本發(fā)明不限于傳輸64位的數(shù)據(jù),它可適用于傳輸8×N位的數(shù)據(jù),即可把8×N位的數(shù)據(jù)分為N次傳輸,每次傳輸一個字節(jié)(8位),這里N為8位數(shù)據(jù)傳輸?shù)难h(huán)次數(shù),N等于任意正整數(shù)。在以下描述中,為了描述得更清楚,僅說明傳輸64位數(shù)據(jù)的情況,但本領域內(nèi)的技術人員完全可以將本發(fā)明用于傳輸其位數(shù)為8的整數(shù)倍的數(shù)據(jù)。
以下參考圖2來描述使用8位數(shù)據(jù)傳輸對依據(jù)本發(fā)明的集成電路卡芯片所執(zhí)行的“寫”操作。
如圖2所示,首先,在步驟101處,識別器與芯片接觸、上電。在識別器對芯片進行“寫”操作前,先執(zhí)行個人密碼SCP的8字節(jié)驗證過程(如步驟102-104所示)。首先,如步驟102所示,操作人員通過識別器把64位個人密碼SCP的第一個字節(jié)輸入芯片。然后,芯片把該字節(jié)與芯片中原存的個人密碼SCP的第一個字節(jié)相比較。如果這兩個字節(jié)相同,則第一字節(jié)的驗證通過。類似地,再對密碼SCP的其余字節(jié)進行驗證,總共循環(huán)進行8次。在步驟103,如果八個字節(jié)中任一個字節(jié)的驗證不通過,則說明該操作人員未經(jīng)許可,因而不能對芯片進行任何操作(如步驟104所示),需要重新輸入新的密碼。反之,如果這八個字節(jié)的驗證都通過,則允許對芯片進行隨后的步驟,例如圖2所示的寫操作(步驟105)。
然后,識別器將有關的64位數(shù)據(jù)寫入芯片,每一數(shù)據(jù)的寫操作都分8次進行,每次僅寫入8位數(shù)據(jù),即需要循環(huán)8次才能完成每個64位數(shù)據(jù)的寫操作(如步驟105所示)。這些64位的數(shù)據(jù)在本領域內(nèi)是公知的,諸如個人密碼SCP、芯片代碼SN、密鑰(KN1,KN2)、隨機數(shù)RAND2、系統(tǒng)密碼SP、制造商代碼CM和商品代碼MN等,但不限于此。在這一操作中,不允許讀出芯片內(nèi)的任何信息。此外,寫入芯片的數(shù)據(jù)的位數(shù)不限于64位,而可以是8的整數(shù)倍。
在以上的寫操作前設置密碼SCP驗證過程的作用是為了確認對芯片進行寫操作的操作人員的身份,這樣做可以防止任何未經(jīng)許可的人對芯片進行寫操作。當然,本領域內(nèi)的技術人員可以理解,這一過程不是必需的,即可直接對芯片進行寫操作。
以下參考圖3來描述使用8位數(shù)據(jù)傳輸操作對依據(jù)本發(fā)明的集成電路卡芯片所執(zhí)行的結束指令(END)的操作。
與圖3所示的“寫”操作相類似,在識別器與芯片接觸、上電以后,圖3所示的結束指令操作同樣先進行8字節(jié)的個人密碼SCP驗證過程(步驟202-204)。每次操作命令驗證一個字節(jié),循環(huán)進行8次。如果驗證不通過,則不能對芯片進行任何操作。如果驗證通過,則識別器就可向芯片輸入“END”(結束)指令(步驟205)。當芯片接收此結束指令以后,識別器就不能對芯片進行任何寫操作,而只能對芯片進行讀操作。至此,結束指令操作完成。同樣,可以理解,這一個人密碼驗證過程也不是必需的。
以下參考圖4來描述使用8位數(shù)據(jù)傳輸操作對依據(jù)本發(fā)明的集成電路卡芯片所執(zhí)行的“讀”操作,即驗證操作。
首先,在識別器與芯片接觸、上電以后,先進行與圖2和3中所示相同的8字節(jié)的個人密碼SCP驗證(步驟302-304)。每個操作命令驗證一個字節(jié),循環(huán)進行8次。驗證不通過的話同樣也不能對芯片進行任何操作(如步驟304)。應理解,這一驗證過程不是必需的。
如果驗證通過,則如步驟305所示,識別器首先讀出64位的芯片代碼SN供識別器鑒別。同樣,此芯片代碼SN也是分8次讀出的,每次讀出芯片代碼SN的一個字節(jié)。讀出芯片代碼SN的目的是為了對芯片進行初步確認,無需在此步驟中進行任何判斷。應理解,這一初步確認過程增加了操作的可靠性,但這不是必需的。
在識別器讀出芯片代碼SN后,識別器與芯片做以下操作(步驟306)識別器向芯片輸入含有密鑰KN和隨機數(shù)RAND的64位數(shù)據(jù)(KN+RAND)的第一個字節(jié),芯片在接收后把該字節(jié)與芯片內(nèi)原存的密鑰KN的第一個字節(jié)進行比較處理,得到隨機數(shù)RAND的第一個字節(jié);然后,芯片向識別器輸出含有輸入隨機數(shù)RAND和芯片內(nèi)原存的64位商品代碼MN的64位數(shù)據(jù)(MN+RAND)的第一個字節(jié)供識別器認可。接著,識別器向芯片輸入含有密鑰KN和隨機數(shù)RAND的64位數(shù)據(jù)(KN+RAND)的第二個字節(jié),并且接收芯片輸出的含有輸入隨機數(shù)RAND和64位商品代碼MN的64位數(shù)據(jù)(MN+RAND)的第二個字節(jié)供識別器認可。如此循環(huán)8次,就把原來的64位數(shù)據(jù)分為8次,每次輸入輸出一個字節(jié)(8位),從而完成64位數(shù)據(jù)的驗證。至此“讀”操作結束。可以理解,此讀操作中所傳輸?shù)臄?shù)據(jù)的位數(shù)不限于64位。
如上所述,芯片內(nèi)原先存儲了密鑰KN和商品代碼MN,但本領域內(nèi)的技術人員可以理解,芯片內(nèi)原先可存儲任何密鑰和密碼,例如,如寫操作中所述的密鑰KN1和KN2及隨機數(shù)RAND2、系統(tǒng)密碼SP和制造商代碼CM等。
此外,例如步驟306還可如此變化,例如識別器向芯片輸入含有密鑰KN1和隨機數(shù)RAND11的64位數(shù)據(jù)(KN+RAND11)的第一個字節(jié),芯片在接收后把該字節(jié)與芯片內(nèi)原存的密鑰KN1的第一個字節(jié)進行比較處理,得到隨機數(shù)RAND11的第一個字節(jié),然后,芯片向識別器輸出含有輸入隨機數(shù)RAND11和芯片內(nèi)原存的64位密碼PW1的64位數(shù)據(jù)(RAND11+PW1)的第一個字節(jié),識別器接收后,經(jīng)加密算法處理后產(chǎn)生系統(tǒng)密碼SP的第一個字節(jié)。然后,識別器向芯片輸入含有系統(tǒng)密碼SP和隨機數(shù)RAND11及新的隨機數(shù)RAND13的64位數(shù)據(jù)(SP+RAND11+RAND13)的第一個字節(jié),芯片接收后將該字節(jié)與芯片內(nèi)原存的系統(tǒng)密碼SP和先前得到的RAND11的第一個字節(jié)進行比較處理,得到RAND13的第一個字節(jié)。接著,芯片向識別器輸出含有輸入隨機數(shù)RAND13和64位密碼PW2的64位數(shù)據(jù)(RAND11+PW2)的第一字節(jié),供識別器認可。接著,如上所述循環(huán)8次,直到讀出PW2的第八個字節(jié)。這里,PW1和PW2可以是如上所述的隨機數(shù)RAND2、商品代碼MN和制造商代碼CM中的任一個,但不限于此。此外,系統(tǒng)密碼SP可以通過對由輸入隨機數(shù)與芯片內(nèi)原存的任何密碼構成的數(shù)據(jù)進行加密算法處理來得到。
以下參考圖5來更詳細地描述使用8位數(shù)據(jù)傳輸操作對依據(jù)本發(fā)明的集成電路卡芯片所執(zhí)行的驗證操作的一個較佳實施例。
首先,在識別器與芯片接觸、上電以后,先進行與圖2到圖4中所示相同的8字節(jié)的個人密碼SCP驗證(步驟402-404)。每個操作命令驗證一個字節(jié),循環(huán)進行8次。驗證不通過的話同樣也不能對芯片進行任何操作(如步驟404)。應理解,這一驗證過程不是必需的。
如果驗證通過,則如步驟405所示,識別器首先讀出64位的芯片代碼SN供識別器鑒別。同樣,此芯片代碼SN也是分8次讀出的,每次讀出芯片代碼SN的一個字節(jié)。讀出芯片代碼SN的目的是為了對芯片進行初步確認,無需在此步驟中進行任何判斷。應理解,這一初步確認過程增加了操作的可靠性,但這不是必需的。
在識別器讀出芯片代碼SN后,識別器與芯片做以下操作如步驟406所示,識別器向芯片輸入含有密鑰KN2和隨機數(shù)RAND12的64位數(shù)據(jù)(KN2+RAND12)的第一個字節(jié),芯片在接收后把該字節(jié)與芯片內(nèi)原存的密鑰KN2的第一個字節(jié)進行比較處理,得到隨機數(shù)RAND12的第一個字節(jié);然后,芯片向識別器輸出含有輸入隨機數(shù)RAND12和芯片內(nèi)原存的64位隨機數(shù)RAND2的64位數(shù)據(jù)(RAND12+RAND2)的第一個字節(jié)。接著,識別器向芯片輸入含有密鑰KN2和隨機數(shù)RAND12的64位數(shù)據(jù)(KN2+RAND12)的第二個字節(jié),并且接收芯片輸出的含有輸入隨機數(shù)RAND12和隨機數(shù)RAND2的64位數(shù)據(jù)(RAND12+RAND2)的第二個字節(jié)。
如此循環(huán)8次,直到輸出64位數(shù)據(jù)(RAND2+RAND12)的所有字節(jié)。這樣把原來的64位數(shù)據(jù)分為8次,每次輸入輸出一個字節(jié)(8位)。
接著,如步驟407所示,識別器向芯片輸入含有密鑰KN1和隨機數(shù)RAND11的64位數(shù)據(jù)(KN1+RAND11)的第一個字節(jié),芯片接收后將該字節(jié)與芯片內(nèi)原存的密鑰KN1的第一個字節(jié)進行比較處理,得到輸入隨機數(shù)RAND11的第一個字節(jié);然后向識別器輸出含有輸入隨機數(shù)RAND11和芯片內(nèi)原存的制造商代碼CM的64位數(shù)據(jù)(RAND11+CM)的第一個字節(jié)。識別器接收后,經(jīng)加密算法處理后產(chǎn)生系統(tǒng)密碼SP的第一個字節(jié)。
如步驟408所示,識別器向芯片輸入含有系統(tǒng)密碼SP和隨機數(shù)RAND11及新的隨機數(shù)RAND13的64位數(shù)據(jù)(SP+RAND11+RAND13)的第一個字節(jié),芯片接收后將該數(shù)據(jù)與芯片內(nèi)原存的系統(tǒng)密碼SP和RAND11的第一個字節(jié)進行比較處理,得到隨機數(shù)RAND13的第一個字節(jié);緊接著,如步驟409到425所示,芯片再向識別器輸出含有輸入隨機數(shù)RAND13和64位商品代碼MNi的64位數(shù)據(jù)(RAND13+MNi)的第一個字節(jié),供識別器認可,這里i=0,1,2...F(對應于16×8=128個字節(jié)的情況)。然而,可以理解,這里i的值不限于此,可以根據(jù)需要把它設定為等于0或任意正整數(shù)。
在上述三階段操作(如步驟407-425)結束后,開始第二個字節(jié)的操作的三步循環(huán),即識別器向芯片輸入含有密鑰KN1的數(shù)據(jù)(KN1+RAND11)的第二個字節(jié),芯片輸出數(shù)據(jù)(CM+RAND11)的第二個字節(jié),輸出數(shù)據(jù)(RAND13+MNi)的第二個字節(jié)。如此循環(huán)8次,就把原來的64位數(shù)據(jù)分為8次,每次輸入輸出一個字節(jié)(8位),從而完成64位數(shù)據(jù)的驗證。至此“讀”操作結束。
如上所述,先分別讀出芯片內(nèi)原存的隨機數(shù)RAND2的八個字節(jié),然后再依次分別得到制造商代碼CM、隨機數(shù)RAND13和商品代碼MN0~MNF的八個字節(jié)。然而,本領域內(nèi)的技術人員可以理解,還可以其它順序來進行本發(fā)明的驗證操作。例如,分別依次獲得制造商代碼CM、隨機數(shù)RAND2、隨機數(shù)RAND13和商品代碼MN0~MNF的八個字節(jié),但不限于此。但較佳的方法是連續(xù)執(zhí)行含有相同操作數(shù)(例如,RAND11)的步驟,以減少來往于識別器與芯片之間的輸入輸出操作的數(shù)目,但這不是必需的。
此外,如上所述,先輸入KN2加隨機數(shù)而讀出芯片中原存的隨機數(shù)RAND2,然后再輸入密鑰KN1加隨機數(shù)而讀出芯片中原存的制造商代碼CM,但不限于此??筛鶕?jù)需要來設定這些密鑰,例如先輸入KN1加隨機數(shù)而讀出RAND2,后輸入KN2加隨機數(shù)而讀出CM等。
以下依據(jù)如圖5所示的較佳實施例更詳細地描述對芯片進行驗證所使用的命令。
操作說明1 從識別器向芯片輸入帶密鑰KN2的隨機數(shù),然后接收芯片產(chǎn)生的帶有原存隨機數(shù)RAND2和該隨機數(shù)的數(shù)據(jù)。
命令輸入“KN2R12”,輸入(KN2+RAND12),即密鑰KN2和隨機數(shù)RAND12的8位異或信號的輸入。
芯片操作首先選擇芯片內(nèi)的KN2,然后8位逐位做異或操作〖KN2+(KN2+RAND12)〗,芯片便得到輸入隨機數(shù)RAND12存入芯片。接著芯片把輸入隨機數(shù)RAND12與原存的隨機數(shù)RAND2逐位異或后產(chǎn)生的數(shù)據(jù)(RAND12+RAND2)輸出給識別器。
上述操作循環(huán)8次,每次輸入輸出一個字節(jié)(8位),同樣能達到驗證64位數(shù)據(jù)的目的。
操作說明2從識別器向芯片輸入帶密鑰KN1和隨機數(shù)的數(shù)據(jù),并且接收芯片原存的制造商代碼CM。然后再從識別器向芯片輸入帶系統(tǒng)密碼SP和隨機數(shù)RAND11及RAND13的數(shù)據(jù),接收芯片產(chǎn)生的帶有商品代碼(MN0~MNF)和隨機數(shù)的數(shù)據(jù)。
第一步命令輸入“KN1R11”,輸入(KN1+RAND11),即密鑰KN1和隨機數(shù)RAND11的8位異或信號的輸入。
芯片操作首先選擇芯片內(nèi)密鑰KN1,然后8位逐位做異或操作〖KN1+(KN1+RAND11)〗,芯片便得到輸入隨機數(shù)RAND11存入芯片。
接著芯片把輸入隨機數(shù)RAND11與原存的制造商代碼CM逐位異或后產(chǎn)生新的數(shù)據(jù)(RAND11+CM)輸出給識別器。識別器接收后,經(jīng)過加密算法處理,產(chǎn)生系統(tǒng)密碼SP的第一個字節(jié)。
第二步命令輸入“SPR11R13”,輸入(SP+RAND11+RAND13),即系統(tǒng)密碼SP和隨機數(shù)RAND11、隨機數(shù)RAND13的8位異或信號的輸入。
芯片操作首先選擇芯片內(nèi)原存的系統(tǒng)密碼SP和隨機數(shù)RAND11的第一個字節(jié),然后8位逐位做異或操作〖SP+RAND11+(SP+RAND11+RAND13)〗后,芯片便得到輸入隨機數(shù)RAND13存入芯片。
第三步命令輸入“R13MNi”,讀出(RAND13+MNi),即隨機數(shù)RAND13和商品代碼(MNi)的8位異或信號的輸出,這里i=0,1,2...F。
芯片操作首先芯片把輸入隨機數(shù)RAND13與芯片內(nèi)原存的商品代碼(MN0)的第一個字節(jié)逐位異或后輸出給識別器鑒別;然后再把輸入隨機數(shù)RAND13與芯片內(nèi)原存的商品代碼(MN1)的第一個字節(jié)逐位異或后輸出給識別器鑒別。依此類推,最后把輸入隨機數(shù)RAND13與芯片內(nèi)原存的商品代碼(MNF)的第一個字節(jié)逐位異或后輸出給識別器鑒別。
上述第一到第三步操作循環(huán)8次,每次輸入輸出一個字節(jié)(8位),從第一個字節(jié)到第八個字節(jié),同樣也能達到驗證64位數(shù)據(jù)的目的。
為了實現(xiàn)將64位的數(shù)據(jù)分成8次傳輸(每次傳輸8位)的操作,在依據(jù)本發(fā)明一個實施例的芯片中設計了地址比較電路和順序控制電路。
如圖6所示,其中示出依據(jù)本發(fā)明一個實施例的集成電路卡芯片中的地址比較電路的示意圖。為了保證驗證的安全性,要求在驗證過程中不能重復對同一地址進行操作,因此在芯片中設置了地址比較電路。在該地址比較電路中包括用于比較將要進行的8位數(shù)據(jù)傳輸操作的地址與前一8位數(shù)據(jù)傳輸操作的地址是否相同的八個一位比較單元以及對地址比較電路的輸出進行控制的輸出控制器。
以下說明此地址比較電路的操作。如圖6所示,當?shù)刂繁容^電路的工作條件即起始條件均滿足時,地址比較電路在諸如控制信號和時鐘信號等信號的作用下,對將要進行的8位數(shù)據(jù)傳輸操作的地址與前一8位數(shù)據(jù)傳輸操作的地址進行比較。如果這兩組地址不相同,則地址比較電路的輸出為0,芯片認為可以進行后續(xù)的操作。如果這兩組地址相同,則地址比較電路的輸出為1,即芯片禁止后續(xù)的操作。當然,本領域內(nèi)的技術人員可以理解,可設定在地址比較電路的輸出為1時芯片可進行后續(xù)的操作,而在其輸出為0時禁止后續(xù)的操作。
依據(jù)本發(fā)明,將64位數(shù)據(jù)分成8次傳輸,每次傳輸一個字節(jié),但是這樣很容易出現(xiàn)8次傳輸后得到的64位數(shù)據(jù)與原先所傳輸?shù)臄?shù)據(jù)不同的情況。為了避免這個問題,本發(fā)明通過在芯片中加入地址比較電路,防止了對同一地址進行數(shù)據(jù)傳輸操作,從而避免了重復傳輸同一64位數(shù)據(jù)的同一字節(jié)或64位數(shù)據(jù)的八個字節(jié)前后顛倒的情況,保證了傳輸?shù)臏蚀_性。
除了地址比較電路以外,在依據(jù)本發(fā)明的芯片中,還設置了順序控制電路。以下參考圖7并結合圖5的流程圖來描述依據(jù)本發(fā)明的順序控制電路的操作。如圖7所示,其中示出依據(jù)本發(fā)明一個實施例的集成電路卡芯片中的順序控制電路的操作。順序控制電路在工作時先將制造商代碼使能信號CMEN、系統(tǒng)密碼使能信號SPEN及商品代碼使能信號MNEN預置為1,當開始工作后,隨機數(shù)RAND2的地址打開,隨機數(shù)RAND2的數(shù)據(jù)讀取電路開始讀數(shù)據(jù)RAND2,并將制造商代碼使能信號CMEN置為0。讀完隨機數(shù)RAND2后,制造商代碼CM的地址打開,制造商代碼CM的數(shù)據(jù)讀取電路開始讀數(shù)據(jù)CM,并將系統(tǒng)密碼SPEN置為0。讀完制造商代碼CM后,系統(tǒng)密碼SP的地址打開,系統(tǒng)密碼SP的數(shù)據(jù)讀取電路開始讀系統(tǒng)密碼SP數(shù)據(jù),并將商品代碼MNEN置為0。讀完系統(tǒng)密碼SP后,商品代碼MN0~MNF的地址打開,商品代碼MN0~MNF的數(shù)據(jù)讀取電路開始讀商品代碼(MN0~MNF)數(shù)據(jù),并將輸出置為0。
如上所述,順序控制電路的設計是為了嚴格控制數(shù)據(jù)從RAND2→CM→SP→MN的讀取過程的順序,任何其它的讀取方式都將使輸出置為1,從而禁止任何后續(xù)的操作。當然,本領域內(nèi)的技術人員可以理解,可設定在輸出置為0時禁止后續(xù)操作。此外,以上就如圖5所示的實施例來描述順序控制電路的操作,但可以理解,順序控制電路的操作依據(jù)芯片所要讀取的數(shù)據(jù)而改變。例如,在如圖4所示的實施例中,順序控制電路在工作時先將商品代碼使能信號MNEN預置為1,當開始工作后,隨機數(shù)RAND2的地址打開,隨機數(shù)RAND2的數(shù)據(jù)讀取電路開始讀數(shù)據(jù)RAND2,并將商品代碼使能信號MNEN置為0。讀完隨機數(shù)RAND2后,商品代碼MN0~MNF的地址打開,商品代碼MN0~MNF的數(shù)據(jù)讀取電路開始讀商品代碼(MN0~MNF)數(shù)據(jù),并將輸出置為0。作為另一個例子,可RAND2、CM、SP和MN可以其它順序來讀出,例如先讀CM、再讀RAND2等。
以下參考圖8來更詳細地描述地址比較電路的一個實施例的結構。如圖8所示的地址比較電路包括八個一位地址比較器(0~7)及一輸出控制器,每個地址比較器連有一對鎖存器,每對鎖存器分別用于鎖存前后數(shù)據(jù)傳輸操作中每一位的地址(為了清楚,圖8省略了比較器1~6及與其對應的鎖存器)。
在同一64位數(shù)據(jù)的前一傳輸操作的時鐘1和后一傳輸操作的時鐘2的作用下,地址比較電路把來自芯片中邏輯控制電路的前一數(shù)據(jù)傳輸操作中每一位的地址和后一數(shù)據(jù)傳輸操作中每一位的地址分別輸入每對鎖存器。然后,每對鎖存器把鎖存的地址分別傳送到與其相連的每個一位地址比較器進行比較。每個一位地址比較器把比較結果傳送到輸出控制器,從而輸出控制器根據(jù)這些結果控制芯片的輸入/輸出端口,以在地址不相同時進行數(shù)據(jù)傳輸或在地址相同時終止后續(xù)操作。
以下參考圖10并結合圖5來描述順序控制電路的一個實施例的結構。如圖10所示,該順序控制電路包括分別用于控制芯片中的隨機數(shù)RAND2、制造商代碼CM、系統(tǒng)密碼SP和商品代碼(MN0~MNF)的讀取的四個觸發(fā)器及其一控制順序控制電路的輸出的輸出控制器。此順序控制電路在接收到來自芯片中控制電路的復位信號及控制信號后,在各使能信號CMEN、SPEN及MNEN的控制下,根據(jù)來自地址解碼器的RAND2地址、CM地址、SP地址和MN0~MNF地址控制芯片的輸入/輸出端口依次輸入/輸出RAND2、CM、SP和MN0~MNF。如圖10所示的結構是就圖5所示的操作過程而言的,然而,本領域內(nèi)的技術人員應理解,該順序控制電路可依據(jù)芯片中所需傳輸?shù)臄?shù)據(jù)而改變。例如,應用于圖4所示驗證操作的一個實施例的順序控制電路可只包括用于控制芯片中的隨機數(shù)RAND和商品代碼MN的讀取的兩個觸發(fā)器,而其它結構不變?;蛘?,如果輸入/輸出RAND2、CM、SP和MN0~MNF的順序有變化,則可相應地調整各對應觸發(fā)器的位置來適應這種變化。
在圖9所示的電路中,更詳細地示出依據(jù)本發(fā)明一個實施例的順序控制電路的電路圖。從圖9可看出,圖10所示的觸發(fā)器可由RS觸發(fā)器來構成,且輸出控制器可由一與非門來實現(xiàn)。但本領域內(nèi)的技術人員也可以其它公知的電路來實現(xiàn)與9中所示觸發(fā)器和輸出控制器相同的功能。
如上所述,由于本發(fā)明以8位數(shù)據(jù)傳輸替代64位數(shù)據(jù)傳輸,所以本發(fā)明在原有的傳輸協(xié)議不變的框架下,通過增加邏輯控制電路來實現(xiàn)防偽芯片與讀寫接口設備之間的數(shù)據(jù)傳輸,而且所增加的邏輯控制電路的面積遠小于64位數(shù)據(jù)傳輸線、寄存器和鎖存器的面積。因而既保證了不影響商品驗證的安全性,又可提高驗證過程的可靠性,減小芯片面積,降低成本。
在采用本發(fā)明的8位數(shù)據(jù)傳輸操作后,一次數(shù)據(jù)傳輸由64位縮短為8位,因此提高了驗證過程的可靠性。芯片的面積由原來的2.4mm2縮小為1.2mm2,減小了50%,因而降低了芯片生產(chǎn)的難度,提高了芯片生產(chǎn)的合格率。芯片成本降低了60%,增加了產(chǎn)品的市場競爭力。
此外,為了保證驗證的安全性,要求在驗證過程中不能重復對同一地址進行操作。因此芯片內(nèi)設計了一組“地址比較電路”。
為了確保商品驗證的可靠性,要求在驗證過程中嚴格按照操作流程順序進行,決不允許出現(xiàn)顛倒或者跳躍操作。因此芯片內(nèi)設計了一組“順序控制電路”。
以上就本發(fā)明的較佳實施例對本發(fā)明進行了描述,但應理解,本發(fā)明不限于以上所述的實施例,可對本發(fā)明進行各種修改而不背離本發(fā)明所要求的范圍。
權利要求
1.一種使用8位數(shù)據(jù)傳輸操作對集成電路卡芯片進行驗證操作的方法,其特征在于所述方法包括(a)讀寫設備與集成電路卡芯片接觸,上電;(b)讀寫設備將含有密鑰(KN)和隨機數(shù)(RAND)的8×N位數(shù)據(jù)(KN+RAND)的第一字節(jié)輸入芯片,芯片在接收后把所述第一字節(jié)與芯片內(nèi)原存的密鑰(KN)的第一字節(jié)進行比較處理,得到所述隨機數(shù)(RAND)的第一字節(jié),然后芯片向讀寫設備輸出含有所述隨機數(shù)(RAND)和芯片內(nèi)原存的密碼(MN)的8×N位數(shù)據(jù)(RAND+MN)的第一字節(jié)供讀寫裝置認可;以及(c)重復步驟(b),直到芯片向讀寫裝置輸出所述數(shù)據(jù)(MN+RAND)的第N字節(jié)供讀寫裝置認可,在這里N為正整數(shù)。
2.如權利要求1所述的方法,其特征在于所述步驟(b)還包括以下步驟在輸入所述密鑰(KN)前,讀寫裝置進行8×N位個人密碼(SCP)的驗證過程,即把由讀寫裝置輸入的個人密碼(SCP)的第一字節(jié)與芯片內(nèi)原存的個人密碼(SCP)的第一字節(jié)相比較,如果這兩個字節(jié)相同,則驗證通過,然后類似地對個人密碼(SCP)的其余字節(jié)進行驗證,總共循環(huán)N次,如果八個字節(jié)中任一個字節(jié)的驗證不通過,則不允許對芯片進行任何操作;反之,則進行隨后的步驟。
3.如權利要求1或2所述的方法,其特征在于所述步驟(b)還包括以下步驟(b1)讀寫裝置向芯片輸入含有密鑰(KN2)和隨機數(shù)(RAND12)的8×N位數(shù)據(jù)(KN2+RAND12)的第一字節(jié),芯片在接收后將所述字節(jié)與芯片內(nèi)原存的密鑰(KN2)的第一個字節(jié)進行比較處理,得到所述隨機數(shù)(RAND12)的第一字節(jié),然后向讀寫裝置輸出含有所述隨機數(shù)(RAND12)和芯片內(nèi)原存的隨機數(shù)(RAND2)的8×N位數(shù)據(jù)(RAND12+RAND2)的第一字節(jié),讀寫裝置向芯片輸入所述數(shù)據(jù)(KN2+RAND12)的第二字節(jié),并且接收芯片輸出的所述數(shù)據(jù)(RAND12+RAND2)的第二字節(jié),重復這一步驟,直到讀寫裝置接收芯片輸出的所述數(shù)據(jù)(RAND12+RAND2)的第N字節(jié),供讀寫裝置鑒別認可;(b2)讀寫裝置向芯片輸入含有密鑰(KN1)和隨機數(shù)(RAND11)的8×N位數(shù)據(jù)(KN1+RAND11)的第一字節(jié),芯片在接收后將所述字節(jié)與芯片內(nèi)原存的密鑰(KN1)的第一個字節(jié)進行比較處理,得到所述隨機數(shù)(RAND11)的第一字節(jié),然后向讀寫裝置輸出含有所述隨機數(shù)(RAND11)和芯片內(nèi)原存的制造商代碼(CM)的數(shù)據(jù)(RAND11+CM)的第一字節(jié),讀寫裝置接收后,經(jīng)加密算法處理,產(chǎn)生系統(tǒng)密碼SP的第一字節(jié);(b3)讀寫裝置向芯片輸入含有所述步驟(b2)產(chǎn)生的系統(tǒng)密碼(SP)和隨機數(shù)(RAND11)及新的隨機數(shù)(RAND13)的8×N位數(shù)據(jù)(SP+RAND11+RAND13)的第一字節(jié),芯片接收后將所述字節(jié)與芯片內(nèi)原存的系統(tǒng)密碼SP和如所述步驟(b2)得到的輸入隨機數(shù)(RAND11)的第一個字節(jié)進行比較處理,得到所述隨機數(shù)(RAND13)的第一字節(jié);隨后,芯片向讀寫裝置輸出含有所述隨機數(shù)(RAND13)和芯片內(nèi)原存的商品代碼(MNi)的8×N位數(shù)據(jù)(RAND13+MNi)的第一字節(jié),供讀寫裝置鑒別認可,這里i為0或任意正整數(shù);以及(b4)重復步驟(b1)到(b3),直到芯片向讀寫裝置輸出所述數(shù)據(jù)(RAND13+MNi)的第N字節(jié),供讀寫裝置鑒別認可。
4.如權利要求中1或2所述的方法,其特征在于在所述步驟(b)前還包括讀寫裝置依次讀出芯片內(nèi)原存的8×N位芯片代碼(SN)的N個字節(jié)的步驟。
5.如權利要求中3所述的方法,其特征在于在所述步驟(b)前還包括讀寫裝置依次讀出芯片內(nèi)原存的8×N位芯片代碼(SN)的N個字節(jié)的步驟。
6.一種利用權利要求1所述的方法來驗證的集成電路卡芯片,所述芯片包括邏輯控制電路、指令譯碼電路、時序控制電路、地址寄存器、數(shù)據(jù)寄存器、地址解碼器,其特征在于所述芯片還包括地址比較電路,用于對來自芯片的邏輯控制電路的前一數(shù)據(jù)傳輸操作的地址和將要進行的數(shù)據(jù)傳輸操作的地址進行比較,以在地址不相同時,控制芯片的輸入/輸出端口執(zhí)行將要進行的數(shù)據(jù)傳輸操作,而在地址相同時,禁止后續(xù)操作;以及順序控制電路,用于根據(jù)來自芯片的控制電路中與各數(shù)據(jù)對應的使能信號和來自芯片的地址解碼器中與各數(shù)據(jù)對應的地址,控制芯片的輸入/輸出端口傳輸數(shù)據(jù)的順序。
7.如權利要求6所述的集成電路卡芯片,其特征在于所述地址比較電路包括八個一位地址比較器及對它們的比較結果進行控制的一輸出控制器,每個一位地址比較器連有一對鎖存器,所述每對鎖存器分別用于鎖存所述前后數(shù)據(jù)傳輸操作中每一位的地址。
8.如權利要求6所述的集成電路卡芯片,其特征在于所述順序控制電路包括多個觸發(fā)器及對順序控制電路的輸出進行控制的一輸出控制器,所述觸發(fā)器用于根據(jù)來自芯片的控制電路中與各數(shù)據(jù)對應的使能信號和來自芯片的地址解碼器中與各數(shù)據(jù)對應的地址,控制芯片的輸入/輸出端口傳輸數(shù)據(jù)的順、序。
9.如以上權利要求6-8中任一項所述的集成電路卡芯片,其特征在于所述使能信號包括制造商代碼使能信號、系統(tǒng)密碼使能信號及商品代碼使能信號。
全文摘要
本發(fā)明揭示一種用于集成電路卡芯片的驗證方法,該方法利用8位數(shù)據(jù)傳輸操作,在所述集成電路卡芯片與讀寫設備之間傳輸64位的數(shù)據(jù)時,所述方法把所述64位的數(shù)據(jù)分成8次傳輸,每次按順序傳輸所述數(shù)據(jù)的一個字節(jié)。本發(fā)明還提供一種利用8位數(shù)據(jù)傳輸操作來驗證的集成電路卡芯片,在該芯片中設計了地址比較電路和順序控制電路。
文檔編號G06K19/073GK1316721SQ00115338
公開日2001年10月10日 申請日期2000年4月3日 優(yōu)先權日2000年4月3日
發(fā)明者馬犁 申請人:上海貝嶺股份有限公司