專利名稱:保證嵌入式微芯片系統(tǒng),尤其是智能卡的預(yù)初始化階段的安全性的方法和實(shí)現(xiàn)該方法的 ...的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一個(gè)方法,該方法通過安全加載一個(gè)專用加密密鑰以保證預(yù)定操作,尤其是嵌入式微芯片系統(tǒng)的預(yù)初始化階段的運(yùn)算的安全性。
更具體的是涉及智能卡。
本發(fā)明還涉及實(shí)現(xiàn)該方法的嵌入式系統(tǒng)。
同樣地,術(shù)語″嵌入式系統(tǒng)″表示各種均使用一個(gè)包括數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)處理裝置的微芯片的系統(tǒng)或設(shè)備,上述微芯片通常由一個(gè)微處理器或一個(gè)微控制器構(gòu)成。尤其是可以通過一個(gè)智能卡構(gòu)成這種嵌入式系統(tǒng)。
為了說明這個(gè)概念,此后我們會(huì)考慮本發(fā)明的最優(yōu)應(yīng)用,即智能卡的預(yù)初始化。
在多數(shù)基于智能卡的應(yīng)用中,各種涉及安全的功能被轉(zhuǎn)移到智能卡中。這個(gè)術(shù)語自身包括不同的概念保密,認(rèn)證,等等。
為此,以永久(使用″只讀存儲(chǔ)器″或″ROM″)或半永久(″電可擦除可編程只讀存儲(chǔ)器″或″EEPROM″)方式被寫入微芯片的上述存儲(chǔ)裝置的非易失部分的是這些功能需要的所謂秘密數(shù)據(jù)加密算法,加密秘密密鑰(cléssecrètes de chiffrage),鑒別數(shù)據(jù)等等。
在這種數(shù)據(jù)中間,存在一個(gè)通常能夠保證預(yù)初始化智能卡的所有步驟的安全性的所謂制造密鑰。
智能卡的制造通常有兩個(gè)主要階段。在第一階段期間,由一個(gè)此后被稱作″芯片制造商″的第一實(shí)體制造微芯片。在第二階段期間,這個(gè)微芯片被封裝并且接著被集成到一個(gè)襯底上,即一個(gè)構(gòu)成智能卡本身的近似矩形塑膠片。通常由一個(gè)與第一實(shí)體不同并且此后被稱作″卡制造商″的第二實(shí)體執(zhí)行這個(gè)操作。
此后被稱作″預(yù)個(gè)性化制造商″的第三實(shí)體執(zhí)行上述預(yù)初始化操作。
在現(xiàn)有技術(shù)中,幾乎是有組織地以非加密形式寫入保證智能卡預(yù)初始化中所有步驟安全性的制造密鑰并且預(yù)先沒有得到卡制造商的認(rèn)證。這個(gè)操作模式造成若干問題-如果在從芯片制造商到卡制造商的運(yùn)輸過程中卡被盜竊,則軟件安全沒有保證可以利用欺詐手段對(duì)卡進(jìn)行預(yù)初始化并且惡意使用;-以復(fù)制方式產(chǎn)生出卡的騙子可以不經(jīng)檢測(cè)將卡插到卡制造鏈中;并且-簡單的在線刺探能夠獲得以非加密方式發(fā)送的制造密鑰。
一個(gè)解決方案是在所謂的探查(sous pointe)操作中由芯片制造商寫入制造密鑰,但由于必須改變每個(gè)卡的秘密數(shù)據(jù)(非靜態(tài)數(shù)據(jù))并且降低了芯片制造商的生產(chǎn)率,這個(gè)解決方案是非常昂貴的。因此這個(gè)昂貴的方法是不現(xiàn)實(shí)的,并且因此實(shí)際了從未被實(shí)現(xiàn)。
因此,根據(jù)本發(fā)明的第一有利特性,通過一個(gè)被稱為″SAM″(″安全訪問模塊″)的單元和智能卡之間的相互認(rèn)證保護(hù)制造密鑰的寫入以便杜絕其中有復(fù)制的智能卡的假冒″SAM″模塊或具有偽造ROM或其它非易失存儲(chǔ)器的模塊。此后為了簡化描述,這個(gè)模塊被稱作″SAM″。它可以被放置在微型計(jì)算機(jī)或智能卡中。通?!錝AM″可以被定義成一個(gè)″密鑰保存″單元。它實(shí)質(zhì)上存儲(chǔ)了一個(gè)從不泄露的秘密密鑰(désecrète),即不被傳送到外部世界中。它被用來計(jì)算允許進(jìn)行上述相互鑒別的其它密鑰。
智能卡使用一個(gè)非對(duì)稱加密算法對(duì)″SAM″進(jìn)行認(rèn)證。它可以是在金融應(yīng)用領(lǐng)域廣泛使用并且縮寫為″RSA″(美國專利4 405 829 A的發(fā)明人″Rivest,Shamir和Adleman″)的算法。然而由于智能卡只配備了有限的計(jì)算資源,為此最好使用所謂的″Rabin″算法。事實(shí)上,在使用后者的情況下只需要較少的計(jì)算能力,這更加適合智能卡或類似設(shè)備的特點(diǎn)。此后所使用的非對(duì)稱算法均會(huì)被認(rèn)為是″Rabin″算法,并且不對(duì)本發(fā)明的范圍產(chǎn)生任何限制。
至于″SAM″模塊對(duì)智能卡的認(rèn)證,使用對(duì)稱算法較好,最好是所謂的″三重DES″(″數(shù)據(jù)加密系統(tǒng)″)算法。
通過使用Rabin算法完成智能卡對(duì)″SAM″的認(rèn)證并且使用″三重DES″算法完成″SAM″對(duì)智能卡的認(rèn)證,不必為實(shí)現(xiàn)安全機(jī)制而使用保密處理器,這在本發(fā)明涉及的應(yīng)用范圍內(nèi)也是有利的。
基于本發(fā)明的方法允許經(jīng)過認(rèn)證的″SAM″安全地將制造密鑰加載到進(jìn)行自認(rèn)證的智能卡中。
因此,本發(fā)明的主題是把專用于保證預(yù)定操作的安全性的密鑰安全加載到嵌入式系統(tǒng)的微芯片的存儲(chǔ)裝置中的方法,上述專用密鑰被包含在一個(gè)安全設(shè)備中,上述安全設(shè)備包含與上述微芯片雙向通信的裝置,其特征在于,上述微芯片的上述存儲(chǔ)裝置存儲(chǔ)一個(gè)對(duì)稱秘密加密密鑰和一個(gè)非對(duì)稱公開密鑰并且上述安全設(shè)備存儲(chǔ)對(duì)應(yīng)于上述微芯片的公開密鑰的相同對(duì)稱秘密加密密鑰和非對(duì)稱秘密密鑰,它包括-一個(gè)由上述微芯片認(rèn)證上述安全設(shè)備的第一階段,為了通過使用上述公開密鑰進(jìn)行的驗(yàn)證來認(rèn)證上述安全設(shè)備,上述第一階段包括由微芯片產(chǎn)生一個(gè)第一隨機(jī)數(shù)并且傳送到安全設(shè)備的步驟,以及由安全設(shè)備產(chǎn)生一個(gè)第二隨機(jī)數(shù),使用一個(gè)非對(duì)稱簽名算法和上述非對(duì)稱秘密密鑰根據(jù)上述第一和第二隨機(jī)數(shù)產(chǎn)生一個(gè)第一密文并且傳送到上述微芯片的步驟;-一個(gè)認(rèn)證上述微芯片的第二階段,為了通過使用上述會(huì)話密鑰進(jìn)行的驗(yàn)證來認(rèn)證上述微芯片,上述第二階段包括由微芯片和上述安全設(shè)備使用一個(gè)對(duì)稱加密算法和上述秘密加密密鑰根據(jù)上述第一隨機(jī)數(shù)產(chǎn)生一個(gè)被稱作會(huì)話密鑰的秘密數(shù)據(jù)的步驟,以及接著通過使用一個(gè)對(duì)稱加密算法和上述秘密會(huì)話密鑰產(chǎn)生一個(gè)第二密文并且傳送到上述安全設(shè)備的步驟;和-一個(gè)將經(jīng)過上述秘密會(huì)話密鑰加密的上述專用密鑰傳送到上述微芯片的上述存儲(chǔ)裝置中的階段。
現(xiàn)在參照附圖更詳細(xì)地描述本發(fā)明,其中-
圖1針對(duì)一個(gè)公開密鑰的存儲(chǔ)圖解了基于本發(fā)明的一個(gè)方面的智能卡存儲(chǔ)器的一個(gè)示例性結(jié)構(gòu);-圖2根據(jù)本發(fā)明的方法圖解了一個(gè)所謂的″SAM″密鑰保存模塊和一個(gè)智能卡的相互認(rèn)證的主要信息交換;-圖3根據(jù)本發(fā)明方法的一個(gè)方面圖解了被用來根據(jù)智能卡和″SAM″模塊分別產(chǎn)生的隨機(jī)數(shù)計(jì)算一個(gè)Rabin簽名的串聯(lián)數(shù)據(jù)的一個(gè)例子;-圖4根據(jù)本發(fā)明的一個(gè)方面在一個(gè)例子中圖解了智能卡中產(chǎn)生會(huì)話密鑰的過程;-圖5根據(jù)本發(fā)明的一個(gè)方面在一個(gè)例子中圖解了智能卡中產(chǎn)生密文的過程;和-圖6圖解了被用來計(jì)算Rabin簽名的串聯(lián)數(shù)據(jù)的一個(gè)例子,其中SAM在制造密鑰被傳送、加密之前根據(jù)加載制造密鑰進(jìn)入智能卡的命令計(jì)算出上述Rabin簽名。
從智能卡和″SAM″模塊的角度出發(fā),基于本發(fā)明的方法需要一個(gè)此后被稱作主密鑰KM的對(duì)稱秘密密鑰。當(dāng)微芯片或″芯片″離開被稱作″芯片制造商″的實(shí)體時(shí)必須提供這個(gè)密鑰KM。
在微芯片所配備的存儲(chǔ)器的一個(gè)非易失部分一個(gè)″ROM″型永久存儲(chǔ)器,或″EEPROM″或類似類型的半永久存儲(chǔ)器中存儲(chǔ)這種密鑰KM。
在本發(fā)明實(shí)施例的一個(gè)最優(yōu)變型中,根據(jù)本發(fā)明的第一特性,密鑰KM被芯片制造商″探查″寫入EEPROM。組成密鑰KM的字節(jié)是非常敏感的數(shù)據(jù)并且必須被看作安全字節(jié)。在EEPROM中進(jìn)行存儲(chǔ)的方式允許若干批次的卡具有不同的密鑰KM。
從智能卡的角度出發(fā),基于本發(fā)明的方法也需要一個(gè)此后被稱作非對(duì)稱公開密鑰n的非對(duì)稱公開密鑰。當(dāng)卡或芯片離開被稱作″芯片制造商″的實(shí)體時(shí)必須提供這個(gè)針對(duì)所有的卡設(shè)置的密鑰n。
在微芯片所配備的存儲(chǔ)器的一個(gè)非易失部分一個(gè)″ROM″型永久存儲(chǔ)器和/或″EEPROM″或類似類型的半永久存儲(chǔ)器中存儲(chǔ)這種密鑰n。
在本發(fā)明實(shí)施例的一個(gè)最優(yōu)變型中,根據(jù)本發(fā)明的第二特性,微芯片的非易失存儲(chǔ)器具有一個(gè)特定的物理邏輯混合結(jié)構(gòu)。提供一個(gè)ROM型永久部分和一個(gè)EEPROM型可再編程半永久部分。通過下述特定方式將上述公開密鑰的字節(jié)分布在這兩個(gè)存儲(chǔ)區(qū)之間。當(dāng)芯片離開芯片制造商時(shí)必須提供上述字節(jié)。
存儲(chǔ)器的EEPROM部分中的″探查″寫入字節(jié)必須被認(rèn)為是非常敏感的,并且因此必須被看作是安全字節(jié)。
例如,為了圖解概念,此后我們會(huì)考慮一個(gè)長度為768位(或96字節(jié))的公開密鑰。后者完全駐留在ROM中。然而根據(jù)基于本發(fā)明的方法的一個(gè)最優(yōu)實(shí)施例,每十二個(gè)字節(jié)中便有一個(gè)字節(jié)被有意按照錯(cuò)誤方式存儲(chǔ)在ROM型存儲(chǔ)區(qū)中,這個(gè)錯(cuò)誤數(shù)值已經(jīng)被故意寫入這個(gè)ROM型存儲(chǔ)器部分中存儲(chǔ)的代碼內(nèi)。有問題字節(jié)的正確數(shù)值被存儲(chǔ)在EEPROM型部分中。因此在這個(gè)例子中,八個(gè)字節(jié)(或96/16=8)必須被編程到EEPROM型存儲(chǔ)器部分中。由于公開密鑰不變,所以這個(gè)數(shù)據(jù)是靜態(tài)數(shù)據(jù)。
另外,對(duì)160位公開密鑰n執(zhí)行一個(gè)被稱為″雜湊″的操作。結(jié)果被存儲(chǔ)在ROM中,以便每當(dāng)使用密鑰n時(shí)可以驗(yàn)證密鑰n。為此,使用一個(gè)被稱為″SHA-1″的算法。因此這個(gè)特定算法必須被安裝在智能卡中。
結(jié)合公開密鑰n的特定存儲(chǔ),雜湊允許同時(shí)保證ROM和EEPROM型存儲(chǔ)器部分的完整性。
圖1圖解了智能卡CP的這種存儲(chǔ)器映射。在描述的例子中,存儲(chǔ)裝置M具體包含一個(gè)ROM型存儲(chǔ)器部分1和一個(gè)EEPROM型存儲(chǔ)器部分2。在描述的例子中,在″ROM″存儲(chǔ)器1中存儲(chǔ)八塊表示上述公開密鑰n的十二字節(jié)數(shù)字?jǐn)?shù)據(jù)B1-B8。在所有這八個(gè)模塊B1-B8中,存在一個(gè)有意寫錯(cuò)的字節(jié),這個(gè)字節(jié)可以是字節(jié)O1-O8中的任意一個(gè)。在″EEPROM″存儲(chǔ)器2中存儲(chǔ)八個(gè)對(duì)應(yīng)于這些錯(cuò)誤字節(jié)O1-O8的正確字節(jié)O′1-O′8。
現(xiàn)在我們描述將所謂的制造密鑰安全加載到智能卡中的步驟。
基于本發(fā)明的方法的第一階段完成智能卡CP對(duì)″SAM″的認(rèn)證。
這個(gè)階段具體包含一個(gè)步驟,在該步驟中″SAM″使用一個(gè)對(duì)應(yīng)于卡中包含的非對(duì)稱公開密鑰n的非對(duì)稱秘密密鑰計(jì)算一個(gè)密文。實(shí)際上密鑰由兩個(gè)起始數(shù)組成,這兩個(gè)起始數(shù)被任意稱作p和q?!錝AM″的非對(duì)稱秘密密鑰被稱作Kpq。換言之,智能卡CP識(shí)別″SAM″并且智能卡CP通過公開密鑰n識(shí)別其調(diào)用方。
如圖2所示,″SAM″3使用一個(gè)輸出命令Os從智能卡CP檢索出一個(gè)十六字節(jié)隨機(jī)數(shù)NaC。數(shù)量NaC此后會(huì)被稱作卡隨機(jī)數(shù),并且在圖解一個(gè)微處理器CPU的例子中可以由智能卡CP的計(jì)算裝置產(chǎn)生。″SAM″3還產(chǎn)生一個(gè)被稱作″SAM隨機(jī)數(shù)″NaS的十六字節(jié)隨機(jī)數(shù)。
″SAM″3根據(jù)九十六字節(jié)數(shù)據(jù)DSR計(jì)算一個(gè)此后被稱作SR的Rabin簽名。按照?qǐng)D3所示的方式連接這個(gè)數(shù)據(jù)DSR以便達(dá)到上述九十六字節(jié)-一個(gè)具有下面靜態(tài)結(jié)構(gòu)的五十九字節(jié)填充串DSR1十六進(jìn)制的01,F(xiàn)F,...FF;-相互認(rèn)證命令的一個(gè)五字節(jié)頭字節(jié)串DSR2;和-由上述數(shù)NaS和NaC連接而成的三十二字節(jié)DSR3。
如果一個(gè)智能卡讀卡器使用基于標(biāo)準(zhǔn)ISO 7816-1至ISO 7816-4的協(xié)議讀取智能卡CP,則通過一個(gè)被稱為″APDU″的命令的內(nèi)容可以構(gòu)成相互認(rèn)證命令的五字節(jié)頭字節(jié)串DSR2。更準(zhǔn)確地說,可以和加載指令編碼到一起。
再次參照?qǐng)D2,Rabin簽名SR和隨機(jī)數(shù)NaS通過一個(gè)指示相互認(rèn)證的輸入輸出命令OES被發(fā)送到智能卡CP。由于″SAM″3存儲(chǔ)的秘密密鑰從不被泄露,″SAM″3能夠單獨(dú)產(chǎn)生這個(gè)簽名SR。智能卡CP使用其存儲(chǔ)的非對(duì)稱公開密鑰n驗(yàn)證Rabin簽名,這使得智能卡CP能夠認(rèn)證″SAM″3。
基于本發(fā)明的方法的第二階段完成″SAM″3對(duì)智能卡CP的認(rèn)證以便完成兩個(gè)實(shí)體的相互認(rèn)證。
根據(jù)秘密主密鑰KM和上述十六字節(jié)隨機(jī)數(shù)NaC,智能卡CP產(chǎn)生一個(gè)被稱作會(huì)話密鑰KS的十六字節(jié)對(duì)稱秘密數(shù)據(jù),使得能夠計(jì)算一個(gè)特定智能卡CP的密文。
最好通過使用三重DES類型的算法對(duì)卡隨機(jī)數(shù)NaC的NaC1和NaC2進(jìn)行加密來獲得這個(gè)被稱作認(rèn)證密鑰的秘密會(huì)話密鑰KS。
更準(zhǔn)確地說,如圖4的圖例所述的方式計(jì)算秘密會(huì)話密鑰KS。
眾所周知,使用三重DES類型算法的加密按順序包含一個(gè)使用某個(gè)密鑰(在這種情況下為秘密主密鑰KM)通過直接DES進(jìn)行的第一加密,一個(gè)逆類型的第二DES,和一個(gè)也是直接類型的第三DES。
在智能卡隨機(jī)數(shù)NaC的八字節(jié)″低階″部分NaC1中,直接使用三個(gè)級(jí)聯(lián)模塊D11,D21和D31執(zhí)行三重DES。模塊D11和D31通過其密鑰輸入接收相同密鑰數(shù)值,在這種情況下是密鑰KM的八字節(jié)″高階″部分KM1,而模塊D21通過其密鑰輸入接收″低階″部分KM2,也是八個(gè)字節(jié)。在模塊D31的輸出上獲得秘密會(huì)話密鑰KS的八字節(jié)″高階″部分KS1。這個(gè)八字節(jié)字KS1可以被臨時(shí)存儲(chǔ)在一個(gè)存儲(chǔ)寄存器或智能卡CP通常配備的一部分RAM中。
通過一個(gè)被表示成XOR的″異或″型邏輯電路的第一輸入重新輸入部分KS1。XOR通過一個(gè)第二輸入接收智能卡隨機(jī)數(shù)NaC的八字節(jié)″高階″部分NaC2。邏輯電路XOR的輸出被發(fā)送到一個(gè)三重DES加密鏈的輸入上。使用三個(gè)級(jí)聯(lián)模塊D12,D22和D32執(zhí)行這個(gè)三重DES。如上所述,模塊D12和D32通過其密鑰輸入接收相同密鑰數(shù)值,在這種情況下是密鑰KM的八字節(jié)″高階″部分KM1,而模塊D22通過其密鑰輸入接收″低階″部分KM2,也是八個(gè)字節(jié)。在模塊D32的輸出上獲得秘密會(huì)話密鑰KS的八字節(jié)″低階″部分KS2。這個(gè)八字節(jié)字KS2也可以被臨時(shí)存儲(chǔ)在一個(gè)存儲(chǔ)寄存器或一部分RAM中。
如上所述,秘密密鑰KM可以被存儲(chǔ)在ROM中,也可以被″探查″寫入EEPROM中。
顯然在微處理器CPU的控制下通過調(diào)用一個(gè)存儲(chǔ)在″ROM″存儲(chǔ)器1中的例程可以按照使用軟件而不是使用特定邏輯電路XOR的方式執(zhí)行″異或″邏輯操作。同樣地,通常在微處理器CPU的控制下通過″ROM″存儲(chǔ)器1中存儲(chǔ)的算法執(zhí)行″DES″和″DES-1″操作。中間結(jié)果被存儲(chǔ)在寄存器或RAM中。
由于后者也存儲(chǔ)秘密主密鑰KM,所以″SAM″3能夠按照上述方式計(jì)算相同的秘密會(huì)話密鑰KS。
在一個(gè)附加步驟中,智能卡CP產(chǎn)生一個(gè)此后被稱作″卡密文″CC的字節(jié)串。通過使用剛才計(jì)算出的秘密會(huì)話密鑰KS加密被發(fā)送到智能卡CP的″SAM″隨機(jī)數(shù)來獲得后者。
圖5圖解了處理。后者類似于能夠計(jì)算秘密會(huì)話密鑰KS的處理。它尤其可以使用基于三重DES算法的″異或″和加密功能。并且與前面的圖共有的單元具有相同的符號(hào)表示并且僅在需要時(shí)才加以描述。
已經(jīng)從″SAM″3接收″SAM″隨機(jī)數(shù)NaS并且隨機(jī)數(shù)NaS被臨時(shí)存儲(chǔ)在一個(gè)寄存器或其它存儲(chǔ)位置中。通過鏈D11-D31對(duì)這個(gè)隨機(jī)數(shù)NaS的八字節(jié)高階部分NaS1執(zhí)行三重DES。然而首先通過一個(gè)第一電路XOR1(或一個(gè)軟件處理)使用一個(gè)十六進(jìn)制數(shù)值為″00″的八字節(jié)初始鏈接數(shù)值Nf對(duì)其執(zhí)行一個(gè)″異或″邏輯操作。這個(gè)電路XOR1的輸出被發(fā)送到上述鏈。加密密鑰是在前面步驟中計(jì)算的秘密會(huì)話密鑰KS。更準(zhǔn)確地說,″DES″D11-D31的密鑰輸入接收這個(gè)密鑰KS的八個(gè)高階字節(jié)KS1并且DES D21的密鑰輸入接收八個(gè)低階字節(jié)KS2。
這個(gè)處理使得能夠計(jì)算密文CC的八個(gè)高階字節(jié)CC1。這些字節(jié)CC1被當(dāng)作輸入重新注入″SAM″隨機(jī)數(shù)NaS的低階字節(jié)NaS2的三重DES加密鏈D12-D32中,更準(zhǔn)確地講是被注入到第二″異或″電路XOR2的一個(gè)輸入,即接收隨機(jī)數(shù)NaS的八個(gè)低階字節(jié)的第一輸入上。這個(gè)電路XOR2的輸出被發(fā)送到上述鏈。更準(zhǔn)確地說,″DES″D12-D32的密鑰輸入接收這個(gè)密鑰KS的八個(gè)高階字節(jié)KS1并且DES D22的密鑰輸入接收八個(gè)低階字節(jié)KS2。DES D32的輸出產(chǎn)生卡密文CC的八個(gè)低階字節(jié)CC2。
通過輸入輸出命令OES(圖2)將這個(gè)密文發(fā)送到″SAM″3以進(jìn)行相互認(rèn)證。如上所述,在這個(gè)步驟結(jié)束時(shí),由于″SAM″3已經(jīng)計(jì)算出會(huì)話密鑰KS,所以″SAM″3可以根據(jù)卡密文CC認(rèn)證智能卡CP。
最后步驟包括使用一個(gè)加載命令Cch將上述制造密鑰KF加載到智能卡CP的存儲(chǔ)器中。在一個(gè)被稱為″CBC″(″密碼塊鏈接″)的模式下,以通過秘密會(huì)話密鑰KS進(jìn)行加密的方式保護(hù)這個(gè)密鑰KF。
如果加載命令失敗,則丟棄會(huì)話密鑰KS并且有必要通過計(jì)算一個(gè)新會(huì)話密鑰進(jìn)行新的相互認(rèn)證。
″SAM″3通過一個(gè)Rabin簽名對(duì)加載命令簽名。圖6圖解了被用來計(jì)算Rabin簽名SR′的數(shù)據(jù)DSR′。
DSR′總共包括九十六字節(jié)。在例子中DSR′包括三個(gè)部分-一個(gè)頭DSR′3,象在圖2中那樣可以是一個(gè)″APDU″命令;-表示制造密鑰KF的加密數(shù)據(jù)DSR′2或Do1-Don(n是制造密鑰KF的字節(jié)總數(shù));并且-具有以下結(jié)構(gòu)的靜態(tài)填充數(shù)據(jù)DSR′1或x個(gè)字節(jié)十六進(jìn)制的01,F(xiàn)F...FF(選擇x的數(shù)值使得DSR′的字節(jié)總數(shù)等于九十六)。
通過閱讀上述內(nèi)容顯然可以看到本發(fā)明實(shí)現(xiàn)了上述目標(biāo)。
具體地,以非常高的安全強(qiáng)度加載以后被用來保證智能卡CP預(yù)初始化的步驟的安全性的制造密鑰。該方法允許將其自身的密鑰加載到每個(gè)智能卡CP中,即不同的智能卡具有不同的密鑰。
然而雖然這允許密鑰相互不同,但該方法不必借助費(fèi)時(shí)并且昂貴的″芯片制造商探查寫入″操作。
然而應(yīng)當(dāng)理解本發(fā)明不僅限于明確描述的示例性實(shí)施例,尤其是結(jié)合圖1-6描述的實(shí)施例。
如上所示,雖然Rabin算法因其消耗較少的計(jì)算資源而顯得特別有利,但這個(gè)算法可以被其它類型的非對(duì)稱算法,例如″RSA″替代。三重DES算法也是可替代的。在不超出本發(fā)明范圍的情況下可以使用其它對(duì)稱密鑰算法。這僅僅是本領(lǐng)域的技術(shù)人員能夠作出的一種技術(shù)選擇,并且非常依賴實(shí)際的應(yīng)用。
同樣地,描述中涉及的精確數(shù)值,字節(jié)或其它單元的數(shù)量僅被用于圖解概念并且不對(duì)本發(fā)明范圍產(chǎn)生任何限制。具體地,正如眾所周知的,加密密鑰長度取決于期待實(shí)現(xiàn)的安全強(qiáng)度,并且可以源于有關(guān)強(qiáng)制標(biāo)準(zhǔn)和/或選擇的算法類型的技術(shù)選擇。
如上所述,本發(fā)明不僅限于基于智能卡的應(yīng)用。本發(fā)明可以被用于任何包括一個(gè)微芯片或類似設(shè)備并且有必要加載一個(gè)用于保證預(yù)定操作安全性的密鑰的嵌入式系統(tǒng)中。
如上所述,所涉及的操作可以是預(yù)初始化操作,但也可以是其它類型的操作。
例如,可以是執(zhí)行來自所謂的開放智能卡的敏感命令,例如向EEPROM部分加載被稱為″API″(″應(yīng)用程序接口″)的庫或各種代碼,也可以是加載設(shè)備和智能卡之間的相互認(rèn)證,其中根據(jù)本發(fā)明的方法執(zhí)行相互認(rèn)證處理。
從智能卡角度出發(fā),通??梢詾楦鞣N要保證安全性的操作分配一個(gè)公開密鑰和一個(gè)對(duì)稱秘密密鑰。在執(zhí)行認(rèn)證機(jī)制期間導(dǎo)出的會(huì)話密鑰可以被用來保證另一個(gè)專用密鑰的加載的安全性,例如保護(hù)上述″API″類型的庫或″補(bǔ)丁″,即用二進(jìn)制數(shù)據(jù)替換一個(gè)現(xiàn)有程序的全部或部分。
權(quán)利要求
1.把專用于保證預(yù)定操作的安全性的密鑰安全加載到嵌入式系統(tǒng)的微芯片的存儲(chǔ)裝置中的方法,上述專用密鑰被包含在一個(gè)安全設(shè)備中,上述安全設(shè)備包含與上述微芯片雙向通信的裝置,其特征在于,上述微芯片的上述存儲(chǔ)裝置(M)存儲(chǔ)一個(gè)對(duì)稱秘密加密密鑰(KM)和一個(gè)非對(duì)稱公開密鑰(n)并且上述安全設(shè)備(3)存儲(chǔ)對(duì)應(yīng)于上述微芯片的公開密鑰n的相同對(duì)稱秘密加密密鑰(KM)和非對(duì)稱秘密密鑰(Kpq),它包括-一個(gè)由上述微芯片(CP)認(rèn)證上述安全設(shè)備(3)的第一階段,為了通過使用上述公開密鑰(n)進(jìn)行的驗(yàn)證來認(rèn)證上述安全設(shè)備,上述第一階段包括由微芯片(CP)產(chǎn)生一個(gè)第一隨機(jī)數(shù)(NaC)并且傳送到安全設(shè)備(3)的步驟,以及由安全設(shè)備產(chǎn)生一個(gè)第二隨機(jī)數(shù)(NaS),使用一個(gè)非對(duì)稱簽名算法和上述非對(duì)稱秘密密鑰(Kpq)根據(jù)上述第一(NaC)和第二(NaS)隨機(jī)數(shù)產(chǎn)生一個(gè)第一密文(SR)并且傳送到上述微芯片(CP)的步驟;-一個(gè)認(rèn)證上述微芯片(CP)的第二階段,上述第二階段包括由微芯片(CP)和上述安全設(shè)備(3)使用一個(gè)對(duì)稱加密算法和上述秘密密鑰(KM)根據(jù)上述第一隨機(jī)數(shù)(NaC)產(chǎn)生一個(gè)被稱作會(huì)話密鑰(KS)的密鑰的步驟,以及接著通過使用一個(gè)對(duì)稱加密算法和上述秘密會(huì)話密鑰(KS)產(chǎn)生一個(gè)第二密文(CC)并且傳送到上述安全設(shè)備(3)的步驟,以便通過使用上述會(huì)話密鑰(KS)進(jìn)行的驗(yàn)證來認(rèn)證上述微芯片;和-一個(gè)將經(jīng)過上述會(huì)話密鑰(KS)加密的上述專用密鑰(KF)傳送到上述微芯片(CP)的上述存儲(chǔ)裝置(M)中的階段。
2.如權(quán)利要求1所述的方法,其特征在于,一個(gè)密鑰加載命令(Cch)激活傳送上述專用密鑰(KF)的階段,并且使用一個(gè)非對(duì)稱簽名算法對(duì)上述階段簽名(SR′)。
3.如權(quán)利要求1所述的方法,其特征在于上述非對(duì)稱算法是所謂的Rabin算法。
4.如權(quán)利要求3所述的方法,其特征在于上述第一(NaC)和第二(NaS)隨機(jī)數(shù)長度為十六字節(jié),通過對(duì)上述第一(NaC)和第二(NaS)隨機(jī)數(shù)(DSR3)的連接使用上述Rabin算法獲得上述第一密文(SR),使得上述連接(DSR)的總長度是九十六字節(jié),等于上述公開密鑰(n)的長度,其中上述第一和第二隨機(jī)數(shù)具有第一指定數(shù)量的構(gòu)成一個(gè)頭(DSR2)的字節(jié)和具有第二指定數(shù)量的所謂填充字節(jié)(DSR1)。
5.如權(quán)利要求3所述的方法,其特征在于上述專用密鑰(KF)被上述秘密會(huì)話密鑰(KS)加密(DSR′2)并且與構(gòu)成一個(gè)頭的第三指定數(shù)量的字節(jié)(DSR′3)和第四指定數(shù)量的所謂填充字節(jié)(DSR′1)串聯(lián),使得上述連接(DSR′)的總長度是九十六字節(jié),并且其特征在于在傳送到上述智能卡(CP)之前使用上述Rabin算法對(duì)上述連接(DSR′)簽名。
6.如權(quán)利要求1所述的方法,其特征在于上述非對(duì)稱算法是所謂的三重DES算法。
7.如權(quán)利要求6所述的方法,其特征在于上述第一隨機(jī)數(shù)(NaC)和上述秘密密鑰(KM)長度為十六字節(jié),上述產(chǎn)生秘密會(huì)話密鑰的步驟包括-為了產(chǎn)生上述秘密會(huì)話密鑰(KS1)的八個(gè)高階字節(jié),對(duì)上述第一隨機(jī)數(shù)(NaC)的八個(gè)低階字節(jié)(NaC1)應(yīng)用上述三重DES,其中按順序執(zhí)行一個(gè)以上述秘密密鑰(KM1)的八個(gè)高階字節(jié)為加密密鑰的直接DES(D11),一個(gè)以上述秘密密鑰(KM2)的八個(gè)低階字節(jié)為加密密鑰的逆DES(D21),和一個(gè)以上述秘密密鑰(KM1)的八個(gè)高階字節(jié)為加密密鑰的直接DES(D31);-在上述第一隨機(jī)數(shù)(NaC)的這八個(gè)高階字節(jié)(KS1)和八個(gè)低階字節(jié)(NaC2)之間執(zhí)行一個(gè)″異或″邏輯操作(XOR);和-為了產(chǎn)生上述秘密會(huì)話密鑰(KS)的八個(gè)低階字節(jié)(KS2),對(duì)上述邏輯操作結(jié)果應(yīng)用上述三重DES,其中按順序執(zhí)行一個(gè)以上述秘密密鑰(KM1)的八個(gè)最高階字節(jié)為加密密鑰的直接DES(D12),一個(gè)以上述秘密密鑰(KM2)的八個(gè)最低階字節(jié)為加密密鑰的反置DES(D22),和一個(gè)以上述秘密密鑰(KM1)的八個(gè)最高階字節(jié)為加密密鑰的直接DES(D31),上述最高階字節(jié)(KS1)和最低階字節(jié)(KS2)共同構(gòu)成上述秘密會(huì)話密鑰(KS)。
8.如權(quán)利要求6所述的方法,其特征在于,上述第二隨機(jī)數(shù)(NaS)和上述秘密會(huì)話密鑰(KS)長度為十六字節(jié),上述產(chǎn)生卡的密文的步驟包括-在上述第二隨機(jī)數(shù)(NaS)的八個(gè)最高階字節(jié)(NaS1)和八個(gè)十六進(jìn)制數(shù)值為00的靜態(tài)字節(jié)之間執(zhí)行一個(gè)″異或″邏輯操作(XOR1);-為了產(chǎn)生上述第二密文(CC)的八個(gè)最高階字節(jié)(CC1),對(duì)上述邏輯操作結(jié)果應(yīng)用上述三重DES,其中按順序執(zhí)行一個(gè)以上述秘密會(huì)話密鑰(KS1)的八個(gè)最高階字節(jié)為加密密鑰的直接DES(D11),一個(gè)以上述秘密會(huì)話密鑰(KS2)的八個(gè)最低階字節(jié)為加密密鑰的逆DES(D21),和一個(gè)以上述秘密會(huì)話密鑰(KS1)的八個(gè)最高階字節(jié)為加密密鑰的直接DES(D31);-在上述第一隨機(jī)數(shù)(NaS)的這八個(gè)最高階字節(jié)(CC1)和八個(gè)最低階字節(jié)(NaS2)之間執(zhí)行一個(gè)″異或″邏輯操作(XOR2);以及-為了產(chǎn)生上述第二密文(CC)的八個(gè)最低階字節(jié)(CC2),對(duì)上述邏輯操作結(jié)果應(yīng)用上述三重DES,其中按順序執(zhí)行一個(gè)以上述秘密會(huì)話密鑰(KS1)的八個(gè)最高階字節(jié)為加密密鑰的直接DES(D12),一個(gè)以上述秘密會(huì)話密鑰(KS2)的八個(gè)最低階字節(jié)為加密密鑰的逆DES(D22),和一個(gè)以上述秘密會(huì)話密鑰(KS1)的八個(gè)最高階字節(jié)為加密密鑰的直接DES(D32),上述最高階字節(jié)(CC1)和最低階字節(jié)(CC2)共同構(gòu)成上述第二密文(CC)。
9.如權(quán)利要求1所述的方法,其特征在于上述嵌入式微芯片系統(tǒng)是一個(gè)智能卡(CP),上述專用密鑰是一個(gè)被用來保證智能卡預(yù)初始化操作的安全性的所謂制造密鑰(KF)。
10.包括數(shù)據(jù)處理和存儲(chǔ)裝置的嵌入式微芯片系統(tǒng),上述數(shù)據(jù)處理和存儲(chǔ)裝置通過雙向通信裝置與一個(gè)安全設(shè)備協(xié)作以便接收一個(gè)專用于保證預(yù)定操作安全性的密鑰,其特征在于,上述數(shù)據(jù)存儲(chǔ)裝置(M)存儲(chǔ)一個(gè)對(duì)稱秘密加密密鑰(KM)和一個(gè)非對(duì)稱公開密鑰(n),而上述安全設(shè)備(3)存儲(chǔ)對(duì)應(yīng)于上述公開密鑰(n)的相同對(duì)稱秘密加密密鑰(KM)和非對(duì)稱秘密密鑰(Kpq),上述微芯片包含產(chǎn)生一個(gè)被發(fā)送到上述安全設(shè)備(3)的第一隨機(jī)數(shù)(NaC)的裝置,從后者接收通過使用一個(gè)非對(duì)稱算法和上述秘密密鑰(Kpq)根據(jù)上述第一隨機(jī)數(shù)(NaC)和一個(gè)第二隨機(jī)數(shù)(NaS)產(chǎn)生的一個(gè)第二隨機(jī)數(shù)(NaS)和一個(gè)第一認(rèn)證密文(SR)的裝置,使用一個(gè)對(duì)稱算法和上述秘密密鑰(KM)根據(jù)上述第一隨機(jī)數(shù)(NaC)產(chǎn)生一個(gè)被稱作會(huì)話密鑰(KS)的密鑰的裝置(XOR,D11-D32),使用一個(gè)對(duì)稱算法和上述秘密會(huì)話密鑰(KS)根據(jù)從上述安全設(shè)備(3)接收的上述第二隨機(jī)數(shù)(NaS)產(chǎn)生一個(gè)第二密文(CC)的裝置,和從上述安全設(shè)備(3)接收經(jīng)過上述會(huì)話密鑰(KS)加密的上述專用密鑰(KF)并且存儲(chǔ)到上述存儲(chǔ)裝置(M)中的裝置。
11.如權(quán)利要求10所述的系統(tǒng),其特征在于上述系統(tǒng)由一個(gè)智能卡(CP)構(gòu)成,上述專用密鑰是一個(gè)所謂的制造密鑰(KF),并且上述被保證安全性的操作是預(yù)初始化上述智能卡(CP)的操作。
全文摘要
本發(fā)明涉及通過存儲(chǔ)一個(gè)對(duì)稱秘密加密密鑰(K
文檔編號(hào)H04L9/32GK1386249SQ01801950
公開日2002年12月18日 申請(qǐng)日期2001年6月8日 優(yōu)先權(quán)日2000年6月8日
發(fā)明者尼古拉斯·福格洛克斯, 本諾特·伯爾, 帕特里斯·漢繆 申請(qǐng)人:布爾Cp8公司