本發(fā)明涉及領(lǐng)域安全通信領(lǐng)域,尤其涉及一種安全芯片、其加密秘鑰生成方法和加密方法。
背景技術(shù):
當(dāng)前蘋果和三星所暴漏出來的隱私安全短板,為國(guó)產(chǎn)加密手機(jī)打開了一個(gè)潛在的市場(chǎng),一時(shí)間安全也成為國(guó)產(chǎn)手機(jī)廠商齊齊布局謀變的重點(diǎn),成為國(guó)產(chǎn)手機(jī)的特色。具體來說主要涉及兩個(gè)方面:一是以安卓系統(tǒng)所暴漏出來的信息安全問題已愈發(fā)的被人們所重視;二是基于國(guó)家安全及網(wǎng)絡(luò)安全,個(gè)別城市要求官員全部改用國(guó)產(chǎn)品牌智能手機(jī),這意味著未來會(huì)有更多單位加入到手機(jī)安全行列。自國(guó)外廠商紛紛發(fā)布安全手機(jī)策略后,國(guó)產(chǎn)手機(jī)廠商已紛紛轉(zhuǎn)提升安全等級(jí),轉(zhuǎn)向安全加密市場(chǎng)。這主要是因?yàn)橹悄苁謾C(jī)的信息安全越來越受到用戶和業(yè)界的廣泛關(guān)注。
現(xiàn)在的安全手機(jī)策略的關(guān)鍵是加密技術(shù),加密技術(shù)的實(shí)現(xiàn)方式主要有兩種形式:軟件加密和硬件加密。軟件加密主要是針對(duì)應(yīng)用層,密碼存儲(chǔ)在應(yīng)用空間,加密算法由軟件實(shí)現(xiàn),軟件加密比較容易部署,不依賴于特定硬件。硬件加密主要是依賴于硬件算法加速器,密鑰可以存儲(chǔ)在外部存儲(chǔ)空間或芯片的eFuse內(nèi),加密效率比較高,需要依賴于硬件平臺(tái)。
加密的根源在于密碼的保護(hù),如果密碼泄露,將造成無法估量的損失。目前商用的加密終端密鑰可由用戶自定義或由硬件隨機(jī)數(shù)生成密鑰明文存儲(chǔ)在片內(nèi)或片外存儲(chǔ)器,如果終端被root,惡意軟件可以輕松獲取到密鑰。因此,現(xiàn)有加密技術(shù)的密鑰的安全性仍然不夠高,惡意軟件竊取用戶密鑰的現(xiàn)象時(shí)有發(fā)生。
技術(shù)實(shí)現(xiàn)要素:
為解決現(xiàn)有技術(shù)存在的問題,本發(fā)明提供一種安全芯片,包括主處理器、外部存儲(chǔ)模塊和加解密模塊;所述加解密模塊包括:
算法模塊,用以根據(jù)加密算法生成用于對(duì)數(shù)據(jù)進(jìn)行加密的初始秘鑰;
內(nèi)部存儲(chǔ)模塊,包含根秘鑰,所述內(nèi)部存儲(chǔ)模塊僅能被控制模塊訪問;
控制模塊,用于調(diào)用所述根秘鑰至所述算法模塊以對(duì)所述初始秘鑰進(jìn)行加密,生成加密秘鑰并存儲(chǔ)于所述外部存儲(chǔ)模塊中;所述控制模塊還用于調(diào)用所述根秘鑰至所述算法模塊以對(duì)所述外部存儲(chǔ)模塊中的加密秘鑰進(jìn)行解密,還原為所述初始秘鑰。
可選的,所述初始秘鑰包含公鑰和私鑰,對(duì)所述初始秘鑰加密的步驟中僅對(duì)所述私鑰進(jìn)行加密,對(duì)所述加密秘鑰解密的步驟中僅對(duì)所述私鑰進(jìn)行解密。
可選的,所述算法模塊包括RSA模塊,通過所述RSA模塊生成所述初始秘鑰。
可選的,所述算法模塊包括AES模塊,用于根據(jù)所述根秘鑰對(duì)所述初始秘鑰進(jìn)行加密。
可選的,所述安全芯片還包括隨機(jī)數(shù)生成模塊,用于生成隨機(jī)數(shù)以作為所述根秘鑰。
可選的,所述控制模塊包含狀態(tài)寄存器,用于通過初始化狀態(tài)標(biāo)識(shí)表示所述根秘鑰已經(jīng)生成。
本發(fā)明還提供一種安全芯片的加密秘鑰生成方法,包括以下步驟:
主處理器發(fā)送加密秘鑰生成請(qǐng)求至加解密模塊;
控制模塊調(diào)用算法模塊,所述算法模塊生成初始秘鑰;
控制模塊傳遞根秘鑰至所述算法模塊,所述算法模塊對(duì)所述初始秘鑰加密,生成加密秘鑰并存儲(chǔ)于所述外部存儲(chǔ)模塊中。
可選的,所述加密秘鑰通過所述控制模塊存儲(chǔ)于所述外部存儲(chǔ)模塊中。
本發(fā)明還提供一種安全芯片的加密方法,包括
進(jìn)行上述的加密秘鑰生成步驟;
主處理器發(fā)送加密請(qǐng)求及待加密數(shù)據(jù)至加解密模塊;
控制模塊調(diào)用算法模塊;
所述算法模塊讀取所述根秘鑰及所述外部存儲(chǔ)模塊中的加密秘鑰,對(duì)所述加密秘鑰進(jìn)行解密,還原所述初始秘鑰;以及
算法模塊利用初始秘鑰對(duì)數(shù)據(jù)進(jìn)行加密。
可選的,所述算法模塊包括HASH模塊,用于對(duì)加密的數(shù)據(jù)計(jì)算報(bào)文摘要,并添加到所述加密數(shù)據(jù)的信息首部。
本發(fā)明提供一種安全芯片,包括主處理器、外部存儲(chǔ)模塊和加解密模塊,通過在芯片內(nèi)部設(shè)置專用的加解密模塊,管理密鑰和加解密算法。該加解密模塊并具有硬件隨機(jī)數(shù),通過生產(chǎn)過程中生成隨機(jī)數(shù)作為芯片的唯一根密鑰,存儲(chǔ)在單獨(dú)的存儲(chǔ)區(qū)域,該根密鑰只能由加解密模塊使用,主處理器無法讀取該根密鑰。而后續(xù)應(yīng)用生成密鑰都需要使用加解密模塊,并有根密鑰自動(dòng)對(duì)生成的密鑰(或者非對(duì)稱算法的私鑰)進(jìn)行加密存儲(chǔ),保證每部終端的數(shù)據(jù)只能被該終端讀取,大大提高了終端的安全性。
附圖說明
圖1為本發(fā)明一實(shí)施例所述安全芯片的結(jié)構(gòu)示意圖。
圖2為結(jié)合本發(fā)明一實(shí)施例所述安全芯片結(jié)構(gòu)的加密秘鑰生成方法示意圖。
圖3為結(jié)合本發(fā)明一實(shí)施例所述安全芯片結(jié)構(gòu)的加密方法示意圖。
具體實(shí)施方式
以下結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)說明。根據(jù)下面說明和權(quán)利要求書,本發(fā)明的優(yōu)點(diǎn)和特征將更清楚。需說明的是,附圖均采用非常簡(jiǎn)化的形式且均使用非精準(zhǔn)的比率,僅用以方便、明晰地輔助說明本發(fā)明實(shí)施例的目的。
如圖1所示,本發(fā)明所述的安全芯片包括主處理器100、外部存儲(chǔ)模塊200和加解密模塊300;所述加解密模塊300包括:
算法模塊320,用以根據(jù)加密算法生成用于對(duì)數(shù)據(jù)進(jìn)行加密的初始秘鑰;
內(nèi)部存儲(chǔ)模塊330,包含根秘鑰,內(nèi)部存儲(chǔ)模塊320僅能被控制模塊310訪問;
控制模塊310,用于調(diào)用所述根秘鑰至所述算法模塊320以對(duì)所述初始秘鑰進(jìn)行加密,生成加密秘鑰并存儲(chǔ)于所述外部存儲(chǔ)模塊中200;所述控制模塊310還用于調(diào)用所述根秘鑰至所述算法模塊320以對(duì)所述外部存儲(chǔ)模塊200中的加密秘鑰進(jìn)行解密,還原為所述初始秘鑰。
其中,算法模塊320中可以存在多種具體的加密算法,例如RSA模塊322,通過所述RSA模塊322生成所述初始秘鑰。此時(shí),RSA模塊322生成的初始秘鑰為秘鑰對(duì),包括公鑰和私鑰,對(duì)所述初始秘鑰加密的步驟中僅對(duì)所述私鑰進(jìn) 行加密,對(duì)所述加密秘鑰解密的步驟中僅對(duì)所述私鑰進(jìn)行解密。
算法模塊320例如還包含AES模塊325,用于根據(jù)所述根秘鑰對(duì)所述初始秘鑰進(jìn)行加密,以生成加密秘鑰。如前所述,在本實(shí)施例中,初始秘鑰加密的步驟中僅對(duì)所述私鑰進(jìn)行加密。
在本發(fā)明的安全芯片生產(chǎn)之時(shí),即會(huì)進(jìn)行加解密模塊300的初始化進(jìn)程以生成上述的根秘鑰并存儲(chǔ)在內(nèi)部存儲(chǔ)模塊330之中。其中,所述控制模塊310包含狀態(tài)寄存器,用于通過初始化狀態(tài)標(biāo)識(shí)表示所述根秘鑰已經(jīng)生成并存儲(chǔ)在內(nèi)部存儲(chǔ)模塊330之中;控制模塊310還包括隨機(jī)數(shù)生成模塊(RNG模塊321),用于生成隨機(jī)數(shù)以作為所述根秘鑰。
加解密模塊300的具體初始化步驟如下:
(1)主處理器100向加解密模塊300發(fā)送指令,讀取控制模塊310的狀態(tài)寄存器(state_register)查詢加解密模塊300是否已經(jīng)初始化,如果已完成初始化則進(jìn)入(4),否則進(jìn)入(2);
(2)加解密控制模塊觸發(fā)RNG模塊321,產(chǎn)生指定位數(shù)的隨機(jī)數(shù)作為芯片的唯一根密鑰(RootKey),保存在內(nèi)部存儲(chǔ)模塊330,內(nèi)部存儲(chǔ)模塊330只能由控制模塊310訪問。
(3)寫入狀態(tài)寄存器(state_register)初始化狀態(tài)標(biāo)識(shí),該標(biāo)識(shí)只能被寫一次。
(4)向主處理器310返回初始化結(jié)束標(biāo)示,結(jié)束。
本發(fā)明還提供上述安全芯片的加密秘鑰生成方法,包括
主處理器100發(fā)送加密秘鑰生成請(qǐng)求至加解密模塊300;
控制模塊310調(diào)用算法模塊320,使所述算法模塊320生成初始秘鑰;
控制模塊310傳遞根秘鑰至所述算法模塊320,算法模塊320對(duì)所述初始秘鑰加密,生成加密秘鑰并存儲(chǔ)于所述外部存儲(chǔ)模塊200之中。
其中,上述加密秘鑰通過所述控制模塊310存儲(chǔ)于所述外部存儲(chǔ)模塊200中。
安全芯片應(yīng)用到具體的電子設(shè)備如手機(jī)之中時(shí),通過手機(jī)的應(yīng)用程序加以控制。下面以一實(shí)施例詳細(xì)說明本安全芯片的加密秘鑰生成方法,結(jié)合圖2中的箭頭方向,加密秘鑰生成方法的步驟包括:
(1)應(yīng)用程序發(fā)送請(qǐng)求生成密鑰的命令,設(shè)置生成密鑰的類型和存儲(chǔ)在片 內(nèi)或片外的參數(shù);
(2)驅(qū)動(dòng)程序根據(jù)應(yīng)用程序的加密秘鑰生成請(qǐng)求指令將數(shù)據(jù)進(jìn)行封裝,通過主處理器100發(fā)送到加解密控制模塊200;
(3)控制模塊310接收到請(qǐng)求指令,對(duì)指令進(jìn)行解析,判斷請(qǐng)求密鑰的格式調(diào)用對(duì)應(yīng)的算法模塊,例如RSA密鑰對(duì),則調(diào)用RSA模塊322;
(4)RSA模塊322生成密鑰對(duì):公鑰(public_key)和私鑰(private_kes),將密鑰對(duì)返回給控制模塊310
(5)控制模塊310接收到密鑰對(duì),調(diào)用AES模塊325,并從內(nèi)部存儲(chǔ)模塊330讀取根密鑰(root_key)傳遞給AES模塊325,由AES模塊325使用根密鑰(root_key)對(duì)私鑰(private_key)進(jìn)行加密,將加密后的密鑰返回給控制模塊310。
(6)控制模塊310將生成的公鑰和加密后私鑰存儲(chǔ)在外部存儲(chǔ)模塊200,并向主處理器100返回請(qǐng)求結(jié)果,通知主處理器100讀取公鑰和加密后的私鑰。
本發(fā)明還提供一種上述安全芯片的加密方法,包括
先進(jìn)行上述的加密秘鑰生成步驟;
之后,主處理器100發(fā)送加密請(qǐng)求及待加密數(shù)據(jù)至加解密模塊300;
控制模塊310調(diào)用算法模塊320;
所述算法模塊320讀取所述根秘鑰及所述外部存儲(chǔ)模塊200中的加密秘鑰,對(duì)所述加密秘鑰進(jìn)行解密,還原所述初始秘鑰;
算法模塊320利用初始秘鑰對(duì)數(shù)據(jù)進(jìn)行加密。
此時(shí)所述算法模塊320包括HASH模塊323,用于對(duì)加密的數(shù)據(jù)計(jì)算報(bào)文摘要,并添加到所述加密數(shù)據(jù)的信息首部。
下面以一實(shí)施例詳細(xì)說明本安全芯片的加密方法,結(jié)合圖3中的箭頭方向,加密方法的具體步驟包括:
(1)應(yīng)用程序發(fā)送對(duì)數(shù)據(jù)(文件)的加密請(qǐng)求;
(2)驅(qū)動(dòng)程序接收請(qǐng)求將數(shù)據(jù)進(jìn)行封裝,通過主處理器100將加密請(qǐng)求發(fā)送到控制模塊310;
(3)控制模塊310解析加密請(qǐng)求,接收前述生成的加密密鑰和數(shù)據(jù)(文件)信息;
(4)調(diào)用AES模塊325,并讀取內(nèi)部存儲(chǔ)模塊330的根密鑰(root_key), 對(duì)接收到密鑰進(jìn)行解密,還原生成的私鑰(private_key)
(5)調(diào)用RSA模塊322,使用還原的私鑰(private_key)對(duì)數(shù)據(jù)(文件)進(jìn)行加密,生成加密數(shù)據(jù)信息,保證數(shù)據(jù)的機(jī)密性;
(6)調(diào)用HASH模塊323,按照請(qǐng)求信息對(duì)數(shù)據(jù)(文件)計(jì)算報(bào)文摘要,添加到加密數(shù)據(jù)信息首部,保證數(shù)據(jù)的完整性。
(7)向主處理器100返回?cái)?shù)據(jù)加密結(jié)果。
此發(fā)明通過改進(jìn)現(xiàn)有的芯片設(shè)計(jì)一種安全機(jī)制,芯片內(nèi)部具有專用的加解密模塊,管理密鑰和加解密算法。該加解密模塊并具有硬件隨機(jī)數(shù),通過生產(chǎn)過程中生成隨機(jī)數(shù)作為芯片的唯一根密鑰,存儲(chǔ)在單獨(dú)的存儲(chǔ)區(qū)域,該根密鑰只能由加解密模塊使用,主處理器無法讀取該根密鑰。而后續(xù)應(yīng)用生成密鑰都需要使用加解密模塊,并有根密鑰自動(dòng)對(duì)生成的密鑰(或者非對(duì)稱算法的私鑰)進(jìn)行加密存儲(chǔ),保證每部終端的數(shù)據(jù)只能被該終端讀取,大大提高了終端的安全性。
本發(fā)明的核心是由專用加解密模塊統(tǒng)一管理密鑰和加密算法,每顆芯片具有唯一的根密鑰,生成的密鑰都由該根密鑰進(jìn)行加密存儲(chǔ),保證密鑰的機(jī)密性。同時(shí)使用自動(dòng)加密技術(shù)保護(hù)密鑰,防止惡意軟件攻擊;同時(shí),本發(fā)明中對(duì)數(shù)據(jù)加密和計(jì)算報(bào)文摘要都在專用加解密模塊內(nèi)部完整,加強(qiáng)了數(shù)據(jù)的安全性。
本發(fā)明的安全芯片的加密策略和現(xiàn)有的加密策略的對(duì)比如下:
綜上所述,使用本發(fā)明的安全芯片的加密方法,由專用加解密模塊管理密鑰和加密算法,能夠大大提高密鑰的安全性,能夠防止惡意軟件竊取用戶密鑰。
顯然,本領(lǐng)域的技術(shù)人員可以對(duì)發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包括這些改動(dòng)和變型在內(nèi)。