專利名稱:具有安全保護(hù)功能的密碼芯片的制備方法
技術(shù)領(lǐng)域:
本發(fā)明屬于電子技術(shù)領(lǐng)域,它特別涉及密碼芯片技術(shù)。
背景技術(shù):
目前國內(nèi)加解密算法的硬件實(shí)現(xiàn)主要采用通用器件來構(gòu)建。由于各種密碼算法涉及大量的特殊計(jì)算,如冪運(yùn)算、位移、換位等,通用器件不直接支持,所以為了提高處理速度,增強(qiáng)算法的安全性,增加密鑰長度,現(xiàn)在這些實(shí)現(xiàn)方案正在逐步轉(zhuǎn)變?yōu)椴捎锰幚砥骱蛥f(xié)處理器來實(shí)現(xiàn)。
現(xiàn)有的密碼芯片的設(shè)計(jì)和實(shí)現(xiàn)方法是,將密碼算法直接用芯片(主要是FPGA和ASIC)來實(shí)現(xiàn),其結(jié)構(gòu)如圖1所示。這種方法的缺點(diǎn)是,首先,現(xiàn)有的密碼芯片基本上沒有對芯片本身采取任何安全保護(hù)措施,而由于芯片本身如FPGA和ASIC流片都是來自國外,必須考慮芯片本身的安全性問題。其次,設(shè)計(jì)和實(shí)現(xiàn)一旦完成,密碼芯片中的算法就不可更改。隨著技術(shù)的發(fā)展和處理速度的提高,對算法的安全性要求和密鑰長度的要求也在不斷提高,而芯片的設(shè)計(jì)和實(shí)現(xiàn)又是一件極為耗時(shí)耗資的事情。
發(fā)明的內(nèi)容本發(fā)明的目的是提供一種具有安全保護(hù)功能的密碼芯片制備方法,采用本發(fā)明的制備方法制備的具有安全保護(hù)功能的密碼芯片,除了具有原有密碼芯片的運(yùn)算功能外,還增加了自身安全保護(hù)的功能和算法安全修改的功能,從而既保證了芯片的實(shí)現(xiàn)和應(yīng)用過程中的安全性,又改進(jìn)了原來的密碼芯片算法不能靈活修改的缺點(diǎn)。
為了方便描述本發(fā)明的內(nèi)容,首先將要用到的術(shù)語定義如下。
定義1 保護(hù)協(xié)議是用于保護(hù)芯片安全性的過程控制,本發(fā)明在初始化時(shí)將其存于芯片的E2ROM中。分為靜態(tài)保護(hù)和動態(tài)保護(hù)兩部分,分別參見后面的說明。
定義2 動態(tài)保護(hù)要求用戶與密碼芯片之間按照動態(tài)保護(hù)協(xié)議(參見下面的說明)進(jìn)行通信。如果該過程不能正常完成,則進(jìn)入出錯處理。從動態(tài)檢驗(yàn)保護(hù)進(jìn)入的出錯處理,一律設(shè)定為中級以上出錯處理。
動態(tài)保護(hù)協(xié)議當(dāng)用戶程序要求密碼芯片完成的操作屬于動態(tài)檢驗(yàn)保護(hù)范圍時(shí),應(yīng)同時(shí)將用戶的有關(guān)數(shù)據(jù)(例如用戶數(shù)據(jù)的Hash值,加密或不加密后)附在操作指令之后,送給密碼芯片。密碼芯片解密或直接與初始化時(shí)存在內(nèi)部的原始數(shù)據(jù)比較,識別用戶是否為合法的授權(quán)用戶,若相同,則通過動態(tài)保護(hù)協(xié)議,否則不能通過,進(jìn)入出錯處理。
定義3 簽名是采用簽名算法對數(shù)據(jù)進(jìn)行運(yùn)算的結(jié)果,用于認(rèn)證數(shù)字身份的真實(shí)性。簽名算法是一種單向算法,用于計(jì)算和驗(yàn)證數(shù)字信息的真實(shí)性。在初始化時(shí),簽名和簽名算法存于密碼芯片的E2ROM中。本發(fā)明中用于保護(hù)重要的初始化參數(shù),例如保護(hù)密碼算法參數(shù)時(shí),密碼算法參數(shù)經(jīng)過授權(quán)用戶簽名運(yùn)算后,得到的數(shù)據(jù)存于密碼芯片內(nèi)部,供比較確認(rèn)所用。
定義4 Hash函數(shù)、Hash值Hash函數(shù)是一種單向壓縮算法,在初始化時(shí)存于芯片的E2ROM中,Hash值是對輸入采用Hash函數(shù)運(yùn)算后得到的結(jié)果。本發(fā)明中用于壓縮各種初始化數(shù)據(jù),得到的結(jié)果數(shù)據(jù)存于芯片內(nèi)部,供比較認(rèn)證時(shí)所用。
本發(fā)明的具有安全保護(hù)功能的密碼芯片制備方法,其特征是采用下面的步驟步驟1 制備安全保護(hù)模塊安全保護(hù)模塊包括密碼芯片的初始化、靜態(tài)保護(hù)處理,動態(tài)保護(hù)處理,以及出錯處理四個部分,所述的密碼芯片的初始化部分是指設(shè)定初始化參數(shù),這些參數(shù)包括可以改變密碼芯片設(shè)置的用戶的信息,以下稱為授權(quán)用戶信息;隨機(jī)數(shù)生成;重要函數(shù),例如用于保護(hù)的Hash函數(shù)的主要參數(shù)等;密碼算法關(guān)鍵參數(shù)和授權(quán)用戶簽名的Hash值;芯片固有的隨機(jī)參數(shù)(密鑰);
出錯處理的保護(hù)級別;將上述初始化參數(shù)寫入芯片的初始化參數(shù)存儲區(qū)就完成了初始化參數(shù)設(shè)定。
所述的靜態(tài)保護(hù)處理部分是指將密碼算法和密鑰參數(shù)讀入密碼芯片內(nèi)部,并對其進(jìn)行Hash計(jì)算,與存在芯片內(nèi)的初始化參數(shù)的Hash值相比較,如果相同則進(jìn)入下一步,否則進(jìn)入出錯處理部分。
下一步,芯片隨機(jī)抽查測試中初始化設(shè)定的數(shù)據(jù),即,隨機(jī)抽取某一種或數(shù)種數(shù)據(jù),例如如果抽取用戶數(shù)據(jù)檢驗(yàn),則根據(jù)保護(hù)協(xié)議要求用戶輸入相關(guān)數(shù)據(jù),計(jì)算其Hash值,再與初始化時(shí)存在密碼芯片內(nèi)的Hash值相比較,如果相同則開始正常使用,否則進(jìn)入出錯處理;所述的動態(tài)保護(hù)處理部分是指對于要求芯片完成的密鑰輸入、密碼旁路(即明文輸入要求明文輸出)、改變芯片初始化參數(shù)操作進(jìn)行的動態(tài)保護(hù)。
所述的出錯處理部分是指對于出錯的三個等級,即高中低級進(jìn)行的處理。
高級的情況相對于密碼芯片保護(hù)要求為絕密級,此時(shí)密碼芯片將通過控制接口向CPU發(fā)送最高優(yōu)先級命令,清除密碼芯片內(nèi)所有初始化設(shè)定,以及應(yīng)用系統(tǒng)內(nèi)所有與密碼芯片相關(guān)的數(shù)據(jù),還可以包括芯片外部E2PROM中的密碼算法;中級的情況相對于密碼芯片保護(hù)要求為機(jī)密級,此時(shí),清除密碼芯片內(nèi)所有初始化設(shè)定;低級的情況相對于密碼芯片保護(hù)要求為秘密級,此時(shí),芯片將告警,并紀(jì)錄告警次數(shù),重新回到出錯前的狀態(tài),一旦告警次數(shù)超過三次,則按照中級出錯處理處理,即清除密碼芯片內(nèi)所有初始化設(shè)定。
上述靜態(tài)保護(hù)處理、動態(tài)保護(hù)處理、以及出錯處理均用芯片能夠運(yùn)行的程序?qū)懗觥?br>
經(jīng)過上述參數(shù)初始化、靜態(tài)保護(hù)處理、動態(tài)保護(hù)處理,以及出錯處理,就完成了安全模塊的制備。
步驟2 將已制備好的安全保護(hù)模塊,通過芯片提供的接口寫入其中的E2PROM。
步驟3 將已寫入安全保護(hù)模塊的芯片加電后,通過芯片提供的接口,注入密碼算法之后,就可以得到具有安全保護(hù)功能的密碼芯片了。
本發(fā)明的具有安全保護(hù)功能的密碼芯片詳細(xì)結(jié)構(gòu)示意圖如圖3所示。
本發(fā)明的實(shí)質(zhì)采用硬件FPGA,將密碼算法芯片通過兩個部分來實(shí)現(xiàn)1、密碼算法運(yùn)算部分,加電后從外部注入芯片,在芯片內(nèi)完成運(yùn)算過程。密碼算法由密碼算法的典型運(yùn)算組成,包括數(shù)據(jù)的位處理、數(shù)據(jù)的塊處理、數(shù)據(jù)塊的置換處理、冪運(yùn)算等,現(xiàn)有的密碼算法芯片僅有這一部分,在本發(fā)明(圖2)中為加電后注入的算法;2、芯片的安全保護(hù)模塊部分,是一種硬件形態(tài),存于芯片內(nèi)部的E2PROM中,由芯片可以運(yùn)行的保護(hù)協(xié)議、簽名算法組成,這是本項(xiàng)發(fā)明的創(chuàng)新部分。
與現(xiàn)有的密碼芯片相比,本項(xiàng)發(fā)明的創(chuàng)新點(diǎn)是1.將密碼算法部分放到密碼芯片之外,使密碼芯片專注于保護(hù)算法的控制部分;2. 增加密碼芯片本身的安全保護(hù)部分,使密碼算法以及用戶設(shè)定的重要信息的改變必須經(jīng)過認(rèn)可才能生效3.密碼算法在加電后注入密碼芯片,并經(jīng)過認(rèn)證后使用。
采用本發(fā)明的制備方法制備的具有安全保護(hù)功能的密碼芯片,除了具有原有密碼芯片的運(yùn)算功能外,還增加了自身安全保護(hù)的功能和算法安全修改的功能,從而既保證了芯片的實(shí)現(xiàn)和應(yīng)用過程中的安全性,又改進(jìn)了原來的密碼芯片算法不能靈活修改的缺點(diǎn),節(jié)省開發(fā)時(shí)間和費(fèi)用。
圖1是現(xiàn)有的密碼芯片結(jié)構(gòu)2是本發(fā)明的密碼芯片結(jié)構(gòu)3是本發(fā)明的密碼芯片詳細(xì)結(jié)構(gòu)示意4是本發(fā)明的制備流程5是本發(fā)明的工作流程6是本發(fā)明的密碼算法和密鑰保護(hù)流程7是實(shí)施例應(yīng)用3中的方法1的密碼算法修改流程圖具體實(shí)施方式
本實(shí)施例中選擇具有E2PROM的Xilinx或Altera公司的芯片,選定ECC算法作為簽名算法,選定MD5算法作為Hash函數(shù),選定DES算法作為加解密運(yùn)算。本實(shí)施例中的系統(tǒng)需要保護(hù)正在使用的密碼算法和芯片中的密鑰,制備芯片的過程如下首先制備安全保護(hù)模塊,按照本發(fā)明的步驟,先設(shè)定初始化參數(shù),這些參數(shù)有隨機(jī)數(shù)生成、授權(quán)用戶簽名的Hash值、計(jì)算DES的Hash值、密鑰的Hash值、AES的Hash值。將計(jì)算好的Hash值通過芯片提供的E2PROM接口注入E2PROM的初始化參數(shù)存儲區(qū)。
接下來,分別將靜態(tài)保護(hù)處理部分和動態(tài)保護(hù)處理部分用芯片能夠執(zhí)行的程序?qū)懗觯@時(shí),芯片的安全保護(hù)模塊就制備好了。
第二步,按照本發(fā)明的步驟,將制備好的安全保護(hù)模塊,通過芯片提供的E2PROM接口注入E2PROM的動態(tài)保護(hù)存儲區(qū)。這時(shí),就得到已經(jīng)具備安全保護(hù)模塊的芯片。
第三步,按照本發(fā)明的步驟,將已寫入安全保護(hù)模塊的芯片加電后,通過芯片提供的接口,注入密碼算法之后,就得到具有安全保護(hù)功能的密碼芯片了。
所制備的保護(hù)密碼芯片的具體應(yīng)用應(yīng)用1保護(hù)應(yīng)用系統(tǒng)正在使用的密碼算法不被非法修改。
假設(shè)假設(shè)密碼芯片外部的E2PROM中的DES算法被非法修改為FEAL算法。
執(zhí)行過程如下由于密碼芯片內(nèi)部E2PROM中存儲的的密碼算法參數(shù)的Hash值是DES的,所以當(dāng)密碼芯片加電后,就不能通過靜態(tài)檢驗(yàn)保護(hù)(圖6中B),芯片進(jìn)入出錯處理,不能正常使用。假定用戶設(shè)定此類出錯為高級出錯。
密碼芯片進(jìn)入出錯處理后,必須由授權(quán)用戶重新制備初始化參數(shù),并按照本發(fā)明的步驟重新制備安全保護(hù)模塊,才能夠再次使用。
參見圖6。
應(yīng)用2對密鑰的保護(hù)。
密鑰是密碼系統(tǒng)最重要的參數(shù),假設(shè)圖2中密碼芯片內(nèi)部的初始化參數(shù)中密鑰參數(shù)被非法修改,保護(hù)生效的過程如下由于在制備芯片的初始化參數(shù)步驟中,已經(jīng)存入了密碼算法關(guān)鍵參數(shù)和授權(quán)用戶簽名的Hash值,僅僅對密鑰參數(shù)的修改,將導(dǎo)致靜態(tài)檢驗(yàn)保護(hù)(圖6中的B)不能通過,芯片將進(jìn)入出錯處理,假定用戶設(shè)定此類出錯為高級出錯,執(zhí)行過程參見圖6。
應(yīng)用3密碼算法的改進(jìn)。
假設(shè)芯片使用一段時(shí)間后,應(yīng)用系統(tǒng)對密碼算法的要求提高,需要將最初設(shè)計(jì)的DES密碼算法改變?yōu)锳ES密碼算法,則按照本發(fā)明,有兩種方法可以實(shí)現(xiàn)。
方法1利用動態(tài)協(xié)議修改初始化參數(shù),包括兩個步驟步驟1將AES算法用芯片可以運(yùn)行的程序?qū)崿F(xiàn),并計(jì)算實(shí)現(xiàn)結(jié)果的Hash值。利用動態(tài)保護(hù)協(xié)議,將初始化參數(shù)中,原來的DES算法的Hash值修改成新算法AES的Hash值,再按照本發(fā)明的步驟,芯片加電后,注入新的密碼算法AES,就得到具有新的算法的密碼芯片了。
步驟2取下圖2中密碼芯片外的E2PROM,將其中的內(nèi)容改寫為芯片可以運(yùn)行的AES算法,再安裝回原處。
通過以上兩個步驟,當(dāng)芯片再次加電后,就會注入新的AES算法,并且可以安全運(yùn)行了。這樣,也就實(shí)現(xiàn)了密碼算法的修改。參見圖7。
方法2 重新制備新的密碼保護(hù)模塊,也包括兩個步驟步驟1 將AES算法用芯片可以運(yùn)行的程序?qū)崿F(xiàn),并計(jì)算實(shí)現(xiàn)結(jié)果的Hash值,作為新的密碼算法Hash值。按照圖4的步驟,重新制備安全保護(hù)模塊,保持其他初始化參數(shù)不變,重新注入芯片的初始化參數(shù)區(qū)的E2PROM中,完成新的密碼保護(hù)模塊的制備。
步驟2 取下圖2中密碼芯片外的E2PROM,將其中的內(nèi)容改寫為芯片可以運(yùn)行的AES算法,再安裝回原處。
通過以上兩個步驟,當(dāng)芯片再次加電后,就會注入新的AES算法,并且可以安全運(yùn)行了。這樣,也就實(shí)現(xiàn)了密碼算法的修改。
綜上所述,可以得到本發(fā)明的優(yōu)點(diǎn)是,一次制備完成后,就可以提供對密碼芯片本身的安全保護(hù),同時(shí),在需要時(shí),可以按照本發(fā)明的步驟對芯片完成的密碼算法安全地進(jìn)行修改,從而提高了系統(tǒng)的安全性,節(jié)約了開發(fā)周期和成本。
因此,由于本發(fā)明的具有安全保護(hù)功能的密碼芯片的結(jié)構(gòu)和模塊,將密碼算法部分放在芯片外部,而在芯片內(nèi)部固化(即在E2PROM中注入)了安全保護(hù)模塊,就可以在密碼芯片設(shè)計(jì)實(shí)現(xiàn)結(jié)束后,保護(hù)芯片本身的安全,防止在密碼芯片的使用過程中,其中的重要數(shù)據(jù)和參數(shù)被修改和泄漏;并且能夠安全地修改已經(jīng)實(shí)現(xiàn)的密碼算法,大大節(jié)省了密碼芯片的開發(fā)時(shí)間和開發(fā)費(fèi)用,延長了密碼芯片和應(yīng)用系統(tǒng)的使用壽命。
權(quán)利要求
1.一種具有安全保護(hù)功能的密碼芯片的制備方法,其特征是采用下面的步驟步驟1制備安全保護(hù)模塊安全保護(hù)模塊包括密碼芯片的初始化、靜態(tài)保護(hù)處理,動態(tài)保護(hù)處理,以及出錯處理四個部分,所述的密碼芯片的初始化部分是指設(shè)定需要保護(hù)的初始化參數(shù),這些參數(shù)包括可以改變密碼芯片設(shè)置的用戶的信息,以下稱為授權(quán)用戶信息隨機(jī)數(shù)生成;重要函數(shù),例如用于保護(hù)的Hash函數(shù)的主要參數(shù)等;密碼算法關(guān)鍵參數(shù)和授權(quán)用戶簽名的Hash值;芯片固有的隨機(jī)參數(shù)(密鑰);出錯處理的保護(hù)級別;將上述初始化參數(shù)寫入芯片的初始化參數(shù)存儲區(qū);所述的靜態(tài)保護(hù)處理部分是指將密碼算法和密鑰參數(shù)讀入密碼芯片內(nèi)部,并對其進(jìn)行Hash計(jì)算,與存在芯片內(nèi)的初始化參數(shù)的Hash值相比較,如果相同則進(jìn)入下一步,否則進(jìn)入出錯處理部分;下一步,芯片隨機(jī)抽查測試中初始化設(shè)定的數(shù)據(jù),即,隨機(jī)抽取某一種或數(shù)種數(shù)據(jù),例如如果抽取用戶數(shù)據(jù)檢驗(yàn),則根據(jù)保護(hù)協(xié)議要求用戶輸入相關(guān)數(shù)據(jù),計(jì)算其Hash值,再與初始化時(shí)存在密碼芯片內(nèi)的Hash值相比較,如果相同則開始正常使用,否則進(jìn)入出錯處理;所述的動態(tài)保護(hù)部分是指對于要求芯片完成的密鑰輸入、密碼旁路(即明文輸入要求明文輸出)、改變芯片初始化參數(shù)操作進(jìn)行的動態(tài)保護(hù);所述的出錯處理部分是指對于出錯的三個等級,即高中低級進(jìn)行的處理;高級的情況相對于密碼芯片保護(hù)要求為絕密級,此時(shí)密碼芯片將通過控制接口向CPU發(fā)送最高優(yōu)先級命令,清除密碼芯片內(nèi)所有初始化設(shè)定,以及應(yīng)用系統(tǒng)內(nèi)所有與密碼芯片相關(guān)的數(shù)據(jù),還可以包括芯片外部E2PROM中的密碼算法;中級的情況相對于密碼芯片保護(hù)要求為機(jī)密級,此時(shí),清除密碼芯片內(nèi)所有初始化設(shè)定;低級的情況相對于密碼芯片保護(hù)要求為秘密級,此時(shí),芯片將告警,并紀(jì)錄告警次數(shù),重新回到出錯前的狀態(tài),一旦告警次數(shù)超過三次,則按照中級出錯處理處理,即清除密碼芯片內(nèi)所有初始化設(shè)定;上述靜態(tài)保護(hù)處理、動態(tài)保護(hù)處理、以及出錯處理均用芯片能夠運(yùn)行的程序?qū)懗觯徊襟E2將已制備好的安全保護(hù)模塊,通過芯片提供的接口寫入其中的E2PROM;步驟3將已寫入安全保護(hù)模塊的芯片加電后,通過芯片提供的接口,注入密碼算法之后,就可以得到具有安全保護(hù)功能的密碼芯片了。
2.根據(jù)權(quán)利要求1所述的一種具有安全保護(hù)功能的密碼芯片的制備方法,其特征是所述的動態(tài)保護(hù)是指要求用戶與密碼芯片之間按照動態(tài)保護(hù)協(xié)議進(jìn)行通信;如果該過程不能正常完成,則進(jìn)入出錯處理;從動態(tài)檢驗(yàn)保護(hù)進(jìn)入的出錯處理,一律設(shè)定為中級以上出錯處理;所述的動態(tài)保護(hù)協(xié)議是指當(dāng)用戶程序要求密碼芯片完成的操作屬于動態(tài)檢驗(yàn)保護(hù)范圍時(shí),應(yīng)同時(shí)將用戶的有關(guān)數(shù)據(jù)附在操作指令之后,送給密碼芯片;密碼芯片解密或直接與初始化時(shí)存在內(nèi)部的原始數(shù)據(jù)比較,識別用戶是否為合法的授權(quán)用戶,若相同,則通過動態(tài)保護(hù)協(xié)議,否則不能通過,進(jìn)入出錯處理。
全文摘要
本發(fā)明的目的是提供一種具有安全保護(hù)功能的密碼芯片制備方法,它是采用硬件FPGA,將密碼算法芯片通過兩個部分來實(shí)現(xiàn)一是密碼算法運(yùn)算部分,加電后從外部注入芯片,在芯片內(nèi)完成運(yùn)算過程;二是芯片的安全保護(hù)部分,是一種硬件形態(tài),存于芯片內(nèi)部的E
文檔編號H01L21/00GK1635607SQ20031010411
公開日2005年7月6日 申請日期2003年12月25日 優(yōu)先權(quán)日2003年12月25日
發(fā)明者范明鈺, 王光衛(wèi) 申請人:電子科技大學(xué)