本發(fā)明涉及可信計算領(lǐng)域,尤其涉及一種可信密碼模塊及可信計算方法。
背景技術(shù):可信計算是指在PC(個人計算機)硬件平臺引入安全芯片架構(gòu),通過其提供的安全特性來提高終端系統(tǒng)的安全性,從而在根本上實現(xiàn)對各種不安全因素的主動防御。可信計算因此成為信息安全的主要發(fā)展趨勢之一,也是IT產(chǎn)業(yè)發(fā)展的主要方向??尚庞嬎慵夹g(shù)體系理念的提出是在二十世紀末。1999年開始,國際上一批IT巨頭組成了一個可信計算工作組,來推相關(guān)的一個技術(shù)標準,到2003年一個比較成熟的TCG(TrustedComputingGroup,可信計算組織)形成了。TCG組織的成員幾乎包括IT行業(yè)各個層次的巨頭,數(shù)量已達到將近200家。TCG組織從標準規(guī)范入手,來影響這一產(chǎn)業(yè)的發(fā)展。TCG組織對未來IT產(chǎn)業(yè)的影響力、未來的發(fā)展目標也是非常宏大的。他們建立的標準,借助硬件芯片TPM(TrustedPlatformModule,可信平臺模塊)??梢哉fTPM是未來基礎(chǔ)設(shè)施中的基礎(chǔ)部件,今后會影響到整個IT產(chǎn)業(yè)的各個方面,包括各種產(chǎn)品形態(tài)、終端、服務(wù)器、存儲系統(tǒng)、軟件、網(wǎng)絡(luò)接入、手機等。中國和國際上其他組織幾乎是同步在進行可信計算的研究和部署工作。其中,我國部署的可信計算體系中,密碼技術(shù)是最重要的核心技術(shù)。具體的方案是以密碼算法為突破口,依據(jù)嵌入芯片技術(shù),完全采用我國自主研發(fā)的密碼算法和引擎,來構(gòu)件一個安全芯片,稱之為TCM(TrustedCryptographyModule,可信密碼模塊)。PKI(PublicKeyInfrastructure,公鑰基礎(chǔ)設(shè)施)是一種遵循既定標準的密鑰管理平臺,它能夠為所有網(wǎng)絡(luò)應(yīng)用提供加密和數(shù)字簽名等密碼服務(wù)及所必需的密鑰和證書管理體系,簡單來說,PKI就是利用公鑰理論和技術(shù)建立的提供安全服務(wù)的基礎(chǔ)設(shè)施。PKI技術(shù)是信息安全技術(shù)的核心,也是電子商務(wù)的關(guān)鍵和基礎(chǔ)技術(shù)。由于可信密碼模塊TCM只支持我國自主研發(fā)的密碼算法,因此目前的可信密碼模塊TCM無法支持采用國際算法的PKI應(yīng)用體系。
技術(shù)實現(xiàn)要素:本發(fā)明所要解決的技術(shù)問題是提供一種可信密碼模塊及可信計算方法,能夠支持PKI應(yīng)用體系,擴大可信密碼模塊的應(yīng)用范圍。為解決上述技術(shù)問題,本發(fā)明提出了一種可信密碼模塊,包括:RSA模塊,用于根據(jù)RSA算法對數(shù)據(jù)進行處理;SHA-1模塊,用于接收所述RSA模塊輸出的數(shù)據(jù),根據(jù)哈希算法SHA-1對數(shù)據(jù)進行處理。進一步地,上述可信密碼模塊還可具有以下特點,所述RSA模塊包括:RSA密鑰處理模塊,用于根據(jù)RSA算法創(chuàng)建RSA密鑰,以及使用所述RSA密鑰對數(shù)據(jù)進行處理;RSA算法庫,用于對數(shù)據(jù)實現(xiàn)RSA算法。進一步地,上述可信密碼模塊還可具有以下特點,所述SHA-1模塊包括:SHA-1計算模塊,用于根據(jù)哈希算法SHA-1計算所述RSA密鑰的公鑰的哈希值,以及根據(jù)所述哈希值建立所述RSA密鑰的索引;SHA-1算法庫,用于對數(shù)據(jù)實現(xiàn)哈希算法SHA-1。進一步地,上述可信密碼模塊還可具有以下特點,所述RSA密鑰處理模塊包括:創(chuàng)建單元,用于根據(jù)RSA算法創(chuàng)建RSA密鑰;解密單元,用于使用RSA密鑰對待解密數(shù)據(jù)進行解密;簽名單元,用于使用RSA密鑰對待簽名數(shù)據(jù)進行簽名。進一步地,上述可信密碼模塊還可具有以下特點,所述RSA密鑰處理模塊還包括修改單元,用于對RSA密鑰的授權(quán)數(shù)據(jù)進行修改。進一步地,上述可信密碼模塊還可具有以下特點,所述RSA密鑰處理模塊還包括寫單元,用于將RSA證書寫入到存儲區(qū)域中。進一步地,上述可信密碼模塊還可具有以下特點,,所述RSA密鑰處理模塊還包括證書獲取單元,用于獲取RSA證書。進一步地,上述可信密碼模塊還可具有以下特點,所述RSA密鑰處理模塊還包括公鑰獲取單元,用于獲取RSA密鑰的公鑰。為解決上述技術(shù)問題,本發(fā)明提出了一種可信計算方法,用于前述的可信密碼模塊,包括:根據(jù)RSA算法對數(shù)據(jù)進行第一處理;在所述第一處理后,根據(jù)哈希算法SHA-1對數(shù)據(jù)進行第二處理。進一步地,上述可信計算方法還可具有以下特點,根據(jù)RSA算法對數(shù)據(jù)進行第一處理包括:根據(jù)RSA算法創(chuàng)建RSA密鑰,以及使用所述RSA密鑰對數(shù)據(jù)進行處理;在所述第一處理后,根據(jù)哈希算法SHA-1對數(shù)據(jù)進行第二處理包括:根據(jù)哈希算法SHA-1計算所述RSA密鑰的公鑰的哈希值,以及根據(jù)所述哈希值建立所述RSA密鑰的索引。本發(fā)明的可信密碼模塊及可信計算方法,能夠支持PKI應(yīng)用體系,從而擴大了可信密碼模塊的應(yīng)用范圍。附圖說明圖1為本發(fā)明實施例中可信密碼模塊的結(jié)構(gòu)框圖;圖2為圖1中RSA模塊110的一種結(jié)構(gòu)框圖;圖3為圖1中SHA-1模塊120的一種結(jié)構(gòu)框圖;圖4為圖2中RSA密鑰處理模塊111的一種結(jié)構(gòu)框圖;圖5為本發(fā)明實施例中可信密碼模塊的一種具體結(jié)構(gòu)圖。具體實施方式以下結(jié)合附圖對本發(fā)明的原理和特征進行描述,所舉實例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。圖1為本發(fā)明實施例中可信密碼模塊的結(jié)構(gòu)框圖。如圖1所示,本實施例中,可信密碼模塊100包括RSA模塊110和SHA-1模塊120。其中,RSA模塊110用于根據(jù)國際加密算法RSA算法對數(shù)據(jù)進行處理。SHA-1模塊120用于接收RSA模塊110輸出的數(shù)據(jù),根據(jù)哈希算法SHA-1對數(shù)據(jù)進行處理。當然,可信密碼模塊100中必然包括現(xiàn)有TCM的基本組成模塊,這些基本組成模塊是現(xiàn)有技術(shù)。其中,RSA模塊110和SHA-1模塊120可以置于TCM的固件中。可信密碼模塊100通過在TCM固件中擴展對國際加密算法RSA和哈希算法SHA-1的支持來支持PKI應(yīng)用體系。圖2為圖1中RSA模塊110的一種結(jié)構(gòu)框圖。如圖2所示,本實施例中,RSA模塊110可以包括RSA密鑰處理模塊111和RSA算法庫112。RSA密鑰處理模塊111用于根據(jù)國際加密算法RSA算法創(chuàng)建RSA密鑰,以及使用該RSA密鑰對數(shù)據(jù)進行處理。RSA算法庫112用于對數(shù)據(jù)實現(xiàn)國際加密算法RSA算法。圖3為圖1中SHA-1模塊120的一種結(jié)構(gòu)框圖。如圖3所示,本實施例中,SHA-1模塊120可以包括SHA-1計算模塊121和SHA-1算法庫122。其中,SHA-1計算模塊121用于根據(jù)哈希算法SHA-1計算RSA密鑰的公鑰的哈希值,以及根據(jù)該哈希值建立RSA密鑰的索引。SHA-1算法庫122用于對數(shù)據(jù)實現(xiàn)哈希算法SHA-1。圖4為圖2中RSA密鑰處理模塊111的一種結(jié)構(gòu)框圖。如圖4所示,本實施例中,RSA密鑰處理模塊111可以包括創(chuàng)建單元1111、解密單元1112和簽名單元1113。創(chuàng)建單元1111用于根據(jù)國際加密算法RSA算法創(chuàng)建RSA密鑰。解密單元1112用于使用RSA密鑰對待解密數(shù)據(jù)進行解密。簽名單元1113用于使用RSA密鑰對待簽名數(shù)據(jù)進行簽名。其中,創(chuàng)建單元1111執(zhí)行創(chuàng)建RSA密鑰命令。創(chuàng)建RSA密鑰命令的輸入?yún)?shù)包括命令標識、命令長度、創(chuàng)建RSA密鑰命令碼、RSA密鑰授權(quán)使用數(shù)據(jù)、授權(quán)會話句柄、SMK(StorageMasterKey,存儲主密鑰)授權(quán)數(shù)據(jù)、命令防重放攻擊序列。創(chuàng)建RSA密鑰命令的輸出參數(shù)包括命令標識、命令長度、返回碼、創(chuàng)建RSA密鑰命令碼、密鑰的公鑰哈希數(shù)據(jù)、授權(quán)會話句柄、授權(quán)數(shù)據(jù)的摘要值、命令防重放攻擊序列。在可信密碼模塊TCM中,創(chuàng)建RSA密鑰命令的執(zhí)行過程如下:步驟a1,驗證SMK的授權(quán)數(shù)據(jù),若授權(quán)失敗返回授權(quán)失敗信息TCM_AuthFail,若授權(quán)成功則執(zhí)行步驟a2;步驟a2,驗證密鑰參數(shù),如果密鑰的使用方式不是加密密鑰或簽名密鑰,返回密鑰使用方式無效信息TCM_INVALID_KEYUSAGE,如果密鑰的長度不是1024或2048位,返回密鑰特征錯誤信息TCM_BAD_KEY_PROPERTY;若密鑰的使用方式是加密密鑰或簽名密鑰,且密鑰的長度是1024或2048位,則執(zhí)行步驟a3;步驟a3,根據(jù)RSA密鑰的參數(shù)調(diào)用RSA算法生成RSA密鑰;步驟a4,使用新生成的RSA密鑰填充包裹的密鑰結(jié)構(gòu);步驟a5,使用SMK加密保存RSA密鑰的私鑰部分步驟a6,計算RSA密鑰的公鑰數(shù)據(jù)的摘要,按照創(chuàng)建RSA密鑰命令的輸出參數(shù)的格式返回命令數(shù)據(jù)。其中,解密單元1112執(zhí)行RSA解密命令。RSA解密命令的輸入?yún)?shù)包括命令標識、命令長度、RSA解密命令碼、密鑰的公鑰哈希數(shù)據(jù)、解密數(shù)據(jù)長度、解密數(shù)據(jù)、隨機序列、授權(quán)會話句柄、授權(quán)數(shù)據(jù)。RSA解密命令的輸出參數(shù)包括命令標識、命令長度、返回碼、RSA解密命令碼、解密后數(shù)據(jù)的長度、解密數(shù)據(jù)、隨機序列、授權(quán)會話句柄、授權(quán)數(shù)據(jù)的摘要值。在可信密碼模塊TCM中,RSA解密命令的執(zhí)行過程如下:步驟b1,根據(jù)RSA密鑰的公鑰哈希數(shù)據(jù)獲取RSA密鑰信息并驗證RSA密鑰的授權(quán)數(shù)據(jù);步驟b2,驗證密鑰的屬性,如果密鑰不是加密密鑰,返回密鑰屬性無效信息TPM_INVALID_KEYUSAGE,如果解密數(shù)據(jù)長度是0,返回參數(shù)錯誤信息TPM_BAD_PARAMETER,如果密鑰是加密密鑰且解密數(shù)據(jù)長度不是0,則執(zhí)行步驟b3;步驟b3,使用SMK密鑰解密RSA密鑰的私鑰部分;步驟b4,利用RSA密鑰的私鑰解密;步驟b5,按照RSA解密命令的輸出參數(shù)的格式返回命令數(shù)據(jù)。其中,簽名單元1113執(zhí)行RSA簽名命令。RSA簽名命令的輸入?yún)?shù)包括命令標識、命令長度、RSA簽名命令碼、密鑰的公鑰哈希數(shù)據(jù)、簽名數(shù)據(jù)長度、簽名數(shù)據(jù)、隨機序列、授權(quán)會話句柄、授權(quán)數(shù)據(jù)。RSA簽名命令的輸出參數(shù)包括命令標識、命令長度、返回碼、RSA簽名命令碼、簽名后數(shù)據(jù)的長度、簽名數(shù)據(jù)、隨機序列、授權(quán)會話句柄、授權(quán)數(shù)據(jù)。在可信密碼模塊TCM中,RSA簽名命令的執(zhí)行過程如下:步驟c1,根據(jù)RSA密鑰公鑰的哈希數(shù)據(jù)獲取該RSA密鑰信息并驗證RSA密鑰的授權(quán)數(shù)據(jù);步驟c2,驗證密鑰的屬性,如果密鑰不是簽名密鑰,則返回密鑰用途錯誤信息TCM_INVALID_KEYUSAGE,如果簽名數(shù)據(jù)長度是0,返回參數(shù)錯誤信息TCM_BAD_PARAMETER,如果密鑰是簽名密鑰且簽名數(shù)據(jù)長度不是0,則執(zhí)行步驟c3;步驟c3,使用SMK密鑰解密RSA密鑰的私鑰部分;步驟c4,驗證簽名模式,簽名模式包括如下三種:a)哈希簽名模式,對應(yīng)的簽名標識為TCM_SS_RSASSAPKCS1v15_SHA1;b)編碼簽名模式,對應(yīng)的簽名標識為TCM_SS_RSASSAPKCS1v15_DER;c)填充簽名模式,對應(yīng)的簽名標識為TCM_SS_RSASSAPKCS1v15_INFO;步驟c5,利用RSA密鑰的私鑰對數(shù)據(jù)進行簽名;步驟c6,按照RSA簽名命令的輸出參數(shù)的格式返回命令數(shù)據(jù)。再如圖4所示,RSA密鑰處理模塊111還可以包括修改單元1114。修改單元1114用于對RSA密鑰的授權(quán)數(shù)據(jù)進行修改。修改單元1114執(zhí)行修改RSA密鑰授權(quán)數(shù)據(jù)命令。修改RSA密鑰授權(quán)數(shù)據(jù)命令的輸入?yún)?shù)包括命令標識、命令長度、修改RSA密鑰授權(quán)數(shù)據(jù)命令碼、新的授權(quán)數(shù)據(jù)、密鑰的公鑰哈希數(shù)據(jù)、SMK授權(quán)會話隨機序列、SMK密鑰的授權(quán)句柄、SMK密鑰的授權(quán)數(shù)據(jù)、密鑰授權(quán)會話隨機序列、密鑰授權(quán)會話隨機序列、密鑰的授權(quán)數(shù)據(jù)。修改RSA密鑰授權(quán)數(shù)據(jù)命令的輸出參數(shù)包括命令標識、命令長度、返回碼、修改RSA密鑰授權(quán)數(shù)據(jù)命令碼、SMK密鑰授權(quán)會話隨機序列、SMK密鑰的授權(quán)句柄、SMK密鑰的授權(quán)數(shù)據(jù)、密鑰授權(quán)會話隨機序列、密鑰授權(quán)會話隨機序列、密鑰的授權(quán)數(shù)據(jù)。在可信密碼模塊TCM中,修改RSA密鑰授權(quán)數(shù)據(jù)命令的執(zhí)行過程如下:步驟d1,驗證SMK的授權(quán)數(shù)據(jù);步驟d2,根據(jù)RSA密鑰的公鑰哈希數(shù)據(jù)獲取該RSA密鑰信息并驗證RSA密鑰的授權(quán)數(shù)據(jù);步驟d3,修改RSA密鑰的授權(quán)數(shù)據(jù)為新的授權(quán)數(shù)據(jù);步驟d4,按照命令修改所述RSA密鑰授權(quán)數(shù)據(jù)命令的輸出參數(shù)的格式,返回命令數(shù)據(jù)。再如圖4所示,RSA密鑰處理模塊111還可以包括寫單元1115。寫單元1115用于將RSA證書寫入到存儲區(qū)域中。寫單元1115執(zhí)行寫RSA證書命令。寫RSA證書命令的輸入?yún)?shù)包括命令標識、命令長度、寫RSA證書命令碼、密鑰的公鑰哈希數(shù)據(jù)、證書數(shù)據(jù)長度、證書數(shù)據(jù)。寫RSA證書命令的輸出參數(shù)包括命令標識、命令長度、返回碼。在可信密碼模塊TCM中,寫RSA證書命令的執(zhí)行過程如下:步驟e1,驗證命令標識,如果命令標識不是TCM_TAG_RQU_COMMAND,返回命令標識錯誤信息TCM_BADTAG。步驟e2,將RSA證書和密鑰的公鑰哈希數(shù)據(jù)根據(jù)一對一的關(guān)系寫入DATAFLASH中。步驟e3,按照命令輸出參數(shù)的格式返回命令數(shù)據(jù)。再如圖4所示,RSA密鑰處理模塊111還可以包括證書獲取單元1116。證書獲取單元1116用于獲取RSA證書。獲取單元1116獲取RSA證書命令。獲取RSA證書命令的輸入?yún)?shù)包括命令標識、命令長度、獲取RSA證書命令碼、密鑰的公鑰哈希數(shù)據(jù)。獲取RSA證書命令的輸出參數(shù)包括命令標識、命令長度、獲取RSA證書命令碼、RSA證書數(shù)據(jù)長度、RSA證書數(shù)據(jù)。在可信密碼模塊TCM中,獲取RSA證書命令的執(zhí)行過程如下:步驟f1,驗證命令標識,如果命令標識不是TCM_TAG_RQU_COMMAND則返回命令標識錯誤信息TCM_BADTAG,如果命令標識是TCM_TAG_RQU_COMMAND則執(zhí)行步驟f2;步驟f2,根據(jù)RSA密鑰的公鑰哈希數(shù)據(jù)獲取該密鑰對應(yīng)的證書信息,如果未找到相關(guān)信息返回失??;步驟f3,按照獲取RSA證書命令的輸出參數(shù)的格式返回命令數(shù)據(jù)。再如圖4所示,RSA密鑰處理模塊111還可以包括公鑰獲取單元1117。公鑰獲取單元1117用于獲取RSA密鑰的公鑰。公鑰獲取單元1117執(zhí)行獲取RSA密鑰公鑰命令。獲取RSA密鑰公鑰命令的輸入?yún)?shù)包括命令標識、命令長度、命令碼、密鑰的公鑰哈希數(shù)據(jù)。獲取RSA密鑰公鑰命令的輸出參數(shù)包括命令標識、命令長度、返回碼、獲取RSA密鑰公鑰命令碼、密鑰公鑰數(shù)據(jù)。步驟g1,根據(jù)RSA密鑰公鑰的哈希數(shù)據(jù)獲取該密鑰信息,如果未找到相關(guān)密鑰信息返回失?。徊襟Eg2,獲取密鑰的公鑰數(shù)據(jù),按照獲取RSA密鑰公鑰命令的輸出參數(shù)的格式返回命令數(shù)據(jù)。在具體的應(yīng)用中,TCM是使用原有的國密算法(例如SMS4算法和SM2算法)對數(shù)據(jù)進行加解密,還是使用支持PKI的RSA算法和SHA-1算法對數(shù)據(jù)進行加解密,根據(jù)應(yīng)用需求確定。如果應(yīng)用需要支持PKI則必須使用RSA算法和SHA-1算法。如果是其它需求則可以任意選擇,只要加解密或簽名驗簽使用的算法相同就行。為了更加直觀地說明本發(fā)明的可信密碼模塊與現(xiàn)有可信密碼模塊的區(qū)別,下面將通過具體實例來對本發(fā)明可信密碼模塊作進一步闡述。圖5為本發(fā)明實施例中可信密碼模塊的一種具體結(jié)構(gòu)圖。如圖5所示,本實施例中,可信密碼模塊包括硬件初始化模塊、數(shù)據(jù)初始化模塊、LPC模塊、命令解析和預(yù)處理模塊、命令處理模塊。其中,命令處理模塊包括數(shù)據(jù)解析模塊、密鑰處理模塊、授權(quán)數(shù)據(jù)處理模塊、Hash計算模塊、PCR處理計算模塊、NV處理模塊、RSA密鑰處理模塊、SHA-1計算子模塊、計數(shù)器處理模塊、會話/句柄處理模塊、Flash處理模塊、審計處理模塊。而且,可信密碼模塊中還包括供命令處理模塊調(diào)用的對稱算法引擎、非對稱算法引擎、Hash算法引擎、RSA算法庫、SHA-1算法庫、Flash驅(qū)動。其中,命令處理模塊中的數(shù)據(jù)解析模塊、密鑰處理模塊、授權(quán)數(shù)據(jù)處理模塊、Hash計算模塊、PCR處理計算模塊、NV處理模塊、計數(shù)器處理模塊、會話/句柄處理模塊、Flash處理模塊、審計處理模塊,以及供命令處理模塊調(diào)用的對稱算法引擎、非對稱算法引擎、Hash算法引擎、Flash驅(qū)動,是現(xiàn)有技術(shù)中可信密碼模塊已有的。命令處理模塊中的RSA密鑰處理模塊和SHA-1計算子模塊以及供命令處理模塊調(diào)用的RSA算法庫、SHA-1算法庫是本發(fā)明的可信密碼模塊具有而現(xiàn)有技術(shù)中的可信密碼模塊不具有的。本發(fā)明的可信密碼模塊,通過在TCM內(nèi)部添加RSA密鑰處理模塊和SHA-1計算模塊在命令協(xié)議層上來支持國際算法,RSA算法引擎和SHA-1算法引擎可以使用軟件方法實現(xiàn)。由上可見,本發(fā)明的可信密碼模塊包括支持國際算法的功能模塊,能夠支持PKI應(yīng)用體系,從而擴大了可信密碼模塊的應(yīng)用范圍。本發(fā)明還提出了一種可信計算方法,該可信計算方法用于前述的可信密碼模塊,包括:根據(jù)RSA算法對數(shù)據(jù)進行第一處理;在第一處理后,根據(jù)哈希算法SHA-1對數(shù)據(jù)進行第二處理。在本發(fā)明可信計算方法的一個實施例中,根據(jù)RSA算法對數(shù)據(jù)進行第一處理包括:根據(jù)RSA算法創(chuàng)建RSA密鑰,以及使用該RSA密鑰對數(shù)據(jù)進行處理;在第一處理后,根據(jù)哈希算法SHA-1對數(shù)據(jù)進行第二處理包括:根據(jù)哈希算法SHA-1計算RSA密鑰的公鑰的哈希值,以及根據(jù)該哈希值建立RSA密鑰的索引。本發(fā)明的可信計算方法,能夠支持PKI應(yīng)用體系,從而擴大了可信密碼模塊的應(yīng)用范圍。以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。