一種手機安全協(xié)處理芯片的制作方法
【專利摘要】本發(fā)明公開了一種手機安全協(xié)處理芯片,包括設置于芯片基板上的密鑰對產(chǎn)生模塊、隨機序列發(fā)生器模塊、公鑰存儲單元、私鑰存儲單元、隨機序列存儲單元、簽名模塊、隨機數(shù)簽名值存儲單元、編碼模塊、向量存儲模塊、總控制器模塊和參數(shù)存儲單元。芯片由于采用硬件實現(xiàn)簽名過程,所產(chǎn)生的私鑰也無法被應用獲取,因此可以保證通信的安全。本芯片也可單獨使用,用來替代軟件方式簽名,增強簽名的安全性。所述芯片可以作為單獨的硬件,來實現(xiàn)簽名功能;還可以作為指紋認證的后續(xù)模塊,與指紋認證模塊一起使用來實現(xiàn)整個認證流程的安全,也即手機本地認證和通信認證安全;此模塊還可以在各種應用之間實現(xiàn)“密碼共享”--共用私鑰分享公鑰。
【專利說明】一種手機安全協(xié)處理芯片
【技術領域】
[0001]本發(fā)明公開了一種手機安全協(xié)處理芯片,涉及手機安全認證【技術領域】。
【背景技術】
[0002]公私鑰密碼體系是一種非對稱密碼技術,有別于傳統(tǒng)的對稱密碼技術。公私鑰密碼體系加密和解密過程使用不同的密碼算子,即公鑰和私鑰對。該項技術廣泛應用于互聯(lián)網(wǎng)加密、簽名等安全方面。本發(fā)明所對應的芯片是實現(xiàn)手機安全認證的核心模塊。
[0003]公私鑰密碼體系廣泛應用于通信、加密、認證等領域,但大部分應用是軟件實現(xiàn);硬件的實現(xiàn)較少,特別是用于手機安全認證方面的實現(xiàn)。指紋認證技術的發(fā)展,特別是隨著各大廠商推出指紋手機的嘗試,設備安全及安全支付越來越成為人們關注的焦點,迫切需要一體化的硬件實現(xiàn)來保證安全。例如華為2014年9月I日推出的Mate7指紋手機。該手機采用的指紋技術將指紋特征存儲于CPU的保護區(qū)域,解決了手機本地認證的問題;但業(yè)務安全及通信安全認證仍然由具體應用來完成,華為的方案中必須通過支付寶認證體系來保障業(yè)務安全及通信安全。
[0004]現(xiàn)有技術中的常用方案雖然能解決很多問題,但在特定的場合,特別是作為移動設備的手機上,存在安全隱患。①軟件實現(xiàn)的公私鑰密碼體系存在被破解的可能,尤其是用在移動場合,比如私鑰被盜?。虎诂F(xiàn)有指紋手機的指紋認證方案無法保證通信和業(yè)務安全,軟件方式實現(xiàn)的通信和業(yè)務安全也存在被破解可能,指紋手機采用的指紋認證技術只解決了本機認證的問題,也即證明本手機是通過指紋認證的人合法擁有的,現(xiàn)有的技術中,在指紋認證完畢之后,手機應用與服務器的通信認證,指紋模塊不再參與,而交由具體應用來實現(xiàn),就存在被破解的可能。因此通信和業(yè)務安全也必須通過硬件的過程來實現(xiàn),也就是硬件產(chǎn)生隨機數(shù)和簽名值。
【發(fā)明內容】
[0005]本發(fā)明所要解決的技術問題是:針對現(xiàn)有技術的缺陷,提供一種手機安全協(xié)處理芯片,用硬件方式實現(xiàn)了公私鑰密碼體系、隨機序列產(chǎn)生和簽名的過程,用來解決手機與應用的安全通信及認證難題。芯片由于采用硬件實現(xiàn)簽名過程,所產(chǎn)生的私鑰也無法被應用獲取,因此可以保證通信的安全。
[0006]本發(fā)明為解決上述技術問題采用以下技術方案:
一種手機安全協(xié)處理芯片,包括設置于芯片基板上的密鑰對產(chǎn)生模塊、隨機序列發(fā)生器模塊、公鑰存儲單元、私鑰存儲單元、隨機序列存儲單元、簽名模塊、隨機數(shù)簽名值存儲單元、編碼模塊、向量存儲模塊、總控制器模塊和參數(shù)存儲單元,其中,
所述密鑰對產(chǎn)生模塊用以產(chǎn)生公鑰和私鑰,密鑰對產(chǎn)生模塊通過引腳分別與公鑰存儲單元、私鑰存儲單元相連接,將產(chǎn)生的公鑰和私鑰分別存儲至公鑰存儲單元和私鑰存儲單元;
所述隨機序列發(fā)生器模塊用以產(chǎn)生隨機數(shù)序列,隨機序列發(fā)生器模塊通過引腳與隨機序列存儲單元相連接,將產(chǎn)生的隨機數(shù)序列存儲至隨機序列存儲單元內;
所述簽名模塊用以計算簽名值,它的輸入引腳分別和私鑰存儲單元、隨機序列存儲單元相連接,它的輸出引腳和隨機數(shù)簽名值存儲單元相連接;
所述隨機數(shù)簽名值存儲單元用以存儲簽名值,它的輸出引腳與公鑰存儲單元的輸出引腳一同和編碼模塊相連接;
所述編碼模塊用以對二進制字節(jié)碼進行轉碼,編碼模塊的輸出引腳與向量存儲模塊相連接;
所述向量存儲模塊用以用來存儲芯片內的參數(shù)及模塊間產(chǎn)生的數(shù)據(jù),并實現(xiàn)芯片的外部讀??;
所述總控制器單元通過外部輸入的參數(shù)以實現(xiàn)控制其他模塊運行,外部輸入?yún)?shù)存儲至參數(shù)存儲單元,并進一步發(fā)送至向量存儲模塊。
[0007]作為本發(fā)明的進一步優(yōu)選方案,所述密鑰對產(chǎn)生模塊中通過RSA算法或者DSA算法產(chǎn)生公鑰和私鑰,使用1024、2048和3072三種位數(shù)的秘鑰位數(shù)。
[0008]作為本發(fā)明的進一步優(yōu)選方案,所述隨機序列發(fā)生器模塊產(chǎn)生的隨機序列長度包括1、2、4、8四種。
[0009]作為本發(fā)明的進一步優(yōu)選方案,所述編碼模塊中的編碼類型包括BASE64編碼或HEX編碼。
[0010]作為本發(fā)明的進一步優(yōu)選方案,向量存儲模塊中,所述模塊間產(chǎn)生的數(shù)據(jù)包括隨機數(shù)、公鑰、簽名值以及各個模塊所選擇的算法種類、密鑰長度。
[0011]作為本發(fā)明的進一步優(yōu)選方案,所述總控制器單元中還設置有一個時鐘序列發(fā)生器。
[0012]作為本發(fā)明的進一步優(yōu)選方案,所述簽名模塊中,計算簽名值的過程為:首先對隨機數(shù)序列數(shù)據(jù)計算哈希值,然后用私鑰對哈希值進行加密,其中,哈希算法的選擇包括shaU sha-256、sha-512和MD5 ;哈希值的加密使用RSA算法。
[0013]本發(fā)明還公開了一種基于所述手機安全協(xié)處理芯片的工作方法,具體步驟包括: 步驟一、總控制器單元依次控制密鑰對產(chǎn)生模塊、公鑰存儲單元、編碼模塊和向量存儲單元按時鐘序列順序執(zhí)行,產(chǎn)生公鑰和私鑰;
步驟二、總控制器單元依次控制隨機序列發(fā)生器模塊、隨機序列存儲單元、私鑰存儲單元、簽名模塊、隨機數(shù)簽名存儲單元、編碼模塊和向量存儲單元按時鐘序列順序執(zhí)行,使用已有公鑰和私鑰對進行簽名;
步驟三、控制參數(shù)輸入,應用讀取存儲向量進行反編碼,再由應用后臺驗證簽名值是否正確,完成認證流程。
[0014]本發(fā)明采用以上技術方案與現(xiàn)有技術相比,具有以下技術效果:本發(fā)明所發(fā)明的芯片不是對指紋識別芯片的取代,而是對指紋認證技術的強化;同時,本芯片也可單獨使用,用來替代軟件方式簽名,增強簽名的安全性。所述芯片可以作為單獨的硬件,來實現(xiàn)簽名功能;還可以作為指紋認證的后續(xù)模塊,與指紋認證模塊一起使用來實現(xiàn)整個認證流程的安全,也即手機本地認證和通信認證安全;此模塊還可以在各種應用之間實現(xiàn)“密碼共享”一共用私鑰分享公鑰。
【專利附圖】
【附圖說明】
[0015]圖1是本發(fā)明的結構模塊示意圖。
【具體實施方式】
[0016]下面詳細描述本發(fā)明的實施方式,所述實施方式的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施方式是示例性的,僅用于解釋本發(fā)明,而不能解釋為對本發(fā)明的限制。
[0017]下面結合附圖對本發(fā)明的技術方案做進一步的詳細說明:
本發(fā)明的結構模塊示意圖如圖1所示,采用結構示意圖和模塊圖,結合輸入、輸出及模塊間處理流程來說明本芯片作用,以及本芯片是如何從硬件方面保證通信認證安全的。
[0018]—、芯片構成模塊說明
圖1中各個模塊的引線,細引線代表的是輸入位(0,1,Mt),輸入單個控制信號;粗引線代表的是數(shù)據(jù)流,是多位輸入輸出??刂菩盘栞斎氩糠忠€可組合在一起,形成二進制序列。比如1-2位,就有4種組合00,01,10,11,分別代表數(shù)字0,1,2,3。
[0019]模塊I為密鑰對產(chǎn)生模塊,用來產(chǎn)生公鑰和私鑰。卜2位用于算法選擇,共可支持4種算法,建議2種算法00對應RSA、01對應DSA ;3_4位用于密鑰位數(shù)(長度)選擇,支持4種位數(shù),建議使用1024、2048和3072三種位數(shù),3072位RSA保密年限至2040年,足夠用于實踐了 ;5位用于控制;引線7輸出公鑰;引線8輸出私鑰。目前,市場上已有基于RSA的單獨的硬件加密產(chǎn)品,但沒有參數(shù)輸入功能;考慮到整個芯片的作用和尺寸,本發(fā)明在具體實施中建議對現(xiàn)有的產(chǎn)品進行定制。
[0020]模塊2,隨機序列發(fā)生器模塊,用來產(chǎn)生隨機數(shù)序列。1-2位用于指定產(chǎn)生的隨機數(shù)序列長度,建議1、2、4、8這4種長度,當為00位模式也即是對應1,此時就是單個隨機數(shù);引線7用于產(chǎn)生輸出隨機數(shù)序列;位5用于控制。目前,市場上已有隨機數(shù)產(chǎn)生器芯片組件,可進行定制。
[0021]模塊3,公鑰存儲單元,用來存儲公鑰。用于存儲模塊I產(chǎn)生的公鑰,公鑰存儲單元是只讀的(Read only),也就是除了直接上游的模塊,其他模塊不可以寫入數(shù)據(jù);下游模塊(包括直接下游)只能讀?。恍酒獠坎豢梢宰x這個模塊。
[0022]模塊4,私鑰存儲單元,用來存儲私鑰。用于存儲模塊I產(chǎn)生的私鑰,私鑰存儲單元是只讀的(Read only),也就是除了直接上游的模塊,其他模塊不可以寫入數(shù)據(jù);直接下游模塊只能讀取;芯片外部不可以讀這個模塊;且此數(shù)據(jù)只能供模塊6使用。
[0023]模塊5,隨機序列存儲單元,用來存儲隨機數(shù)序列。用于存儲隨機數(shù)序列模塊產(chǎn)生的隨機數(shù),只讀模塊,數(shù)據(jù)沿著引線流動,但不可修改。
[0024]模塊6,簽名模塊,用來計算簽名值。簽名過程是首先對數(shù)據(jù)計算哈希(Hash)值,然后用私鑰對哈希值進行加密。引線I輸入私鑰;引線2輸入隨機數(shù)序列;位3-4用于哈希算法選擇,共支持四種,建議使用shal、sha-256、sha-512和MD5 ;對哈希值進行加密(也即產(chǎn)生最終的簽名值)使用RSA算法,位5-6用于控制簽名結果的長度,建議使用1024、2048和3072三種位數(shù);引線7用于簽名值輸出;位8用于信號控制。目前,網(wǎng)銀證書常用的是SHAlWithRSA和MD5WithRSA,分別是采用SHAl計算哈希值然后采用RSA加密得出簽名值和采用MD5計算哈希值然后采用RSA加密得出簽名值。目前,該組件尚無硬件實現(xiàn),需要進行發(fā)明。
[0025]模塊7,隨機數(shù)簽名值存儲單元,用來存儲簽名值。存儲只讀的隨機數(shù)簽名值。
[0026]模塊8,編碼模塊,用來對二進制字節(jié)碼進行轉碼。因公鑰和簽名值均是二進制序列,最終要輸出到芯片外部,為應用程序讀取,經(jīng)過編碼才便于讀取。引線I用于輸入公鑰;引線2用于輸入簽名值;位3用于編碼類型選擇建議選擇BASE64或HEX ;位5用于信號控制;引線7輸出編碼后的公鑰;引線8輸出編碼后的隨機數(shù)簽名值。此模塊實現(xiàn)起來較為簡單。
[0027]模塊9,向量存儲模塊,用來存儲各種參數(shù)及模塊間產(chǎn)生的部分數(shù)據(jù)。此模塊是只讀模塊,用來存儲可供外部應用直接讀取的數(shù)據(jù)。包含隨機數(shù)、公鑰、簽名值以及各個模塊所選擇的算法種類、密鑰長度等。共同構成了一個多元組(也即向量)。芯片外部對芯片內部的數(shù)據(jù)訪問,都是通過訪問這個存儲模塊來完成的。其他模塊外部均不可訪問。
[0028]模塊10,總控制器模塊,用來控制其他模塊運行。該模塊是此芯片的神經(jīng)中樞,用來控制各個模塊的運行,使得數(shù)據(jù)按部就班的在組件之間流動;該模塊包含一個時鐘序列發(fā)生器。
[0029]模塊11,參數(shù)存儲單元,用來存儲外部輸入的參數(shù)。外部輸入的參數(shù)(本示意圖中有20個位)均存儲在這個存儲單元中,最終會存入模塊9。
[0030]二、芯片運行過程芯片運行過程包括2種:
一是產(chǎn)生公鑰和私鑰對的過程,包含重新生成公鑰和私鑰對。
[0031]模塊10總控制芯片控制產(chǎn)生公鑰和私鑰的過程;由芯片外部發(fā)出產(chǎn)生新公鑰和私鑰對的命令。模塊1、3、8、9按時鐘序列順序執(zhí)行。
[0032]二是使用已有公鑰和私鑰對進行簽名的過程。
[0033]模塊10總控制芯片控制產(chǎn)生簽名過程;由芯片外部發(fā)出簽名過程的命令。模塊2、5、4、6、7、8、9按時鐘序列順序執(zhí)行。
[0034]三、外部讀取
外部從模塊9向量存儲器中讀取數(shù)據(jù)。開發(fā)一套API方便讀取。
[0035]本發(fā)明所公開的手機安全協(xié)處理芯片,由具體應用通過控制接口發(fā)出產(chǎn)生公鑰和私鑰對以及簽名的指令,同時控制參數(shù)輸入;應用讀取存儲向量,進行反編碼,然后由應用后臺驗證簽名值是否正確,從而完成整個認證流程。
[0036]上面結合附圖對本發(fā)明的實施方式作了詳細說明,但是本發(fā)明并不限于上述實施方式,在本領域普通技術人員所具備的知識范圍內,還可以在不脫離本發(fā)明宗旨的前提下做出各種變化。以上所述,僅是本發(fā)明的較佳實施例而已,并非對本發(fā)明作任何形式上的限制,雖然本發(fā)明已以較佳實施例揭露如上,然而并非用以限定本發(fā)明,任何熟悉本專業(yè)的技術人員,在不脫離本發(fā)明技術方案范圍內,當可利用上述揭示的技術內容做出些許更動或修飾為等同變化的等效實施例,但凡是未脫離本發(fā)明技術方案內容,依據(jù)本發(fā)明的技術實質,在本發(fā)明的精神和原則之內,對以上實施例所作的任何簡單的修改、等同替換與改進等,均仍屬于本發(fā)明技術方案的保護范圍之內。
【權利要求】
1.一種手機安全協(xié)處理芯片,其特征在于:包括設置于芯片基板上的密鑰對產(chǎn)生模塊、隨機序列發(fā)生器模塊、公鑰存儲單元、私鑰存儲單元、隨機序列存儲單元、簽名模塊、隨機數(shù)簽名值存儲單元、編碼模塊、向量存儲模塊、總控制器模塊和參數(shù)存儲單元,其中, 所述密鑰對產(chǎn)生模塊用以產(chǎn)生公鑰和私鑰,密鑰對產(chǎn)生模塊通過引腳分別與公鑰存儲單元、私鑰存儲單元相連接,將產(chǎn)生的公鑰和私鑰分別存儲至公鑰存儲單元和私鑰存儲單元; 所述隨機序列發(fā)生器模塊用以產(chǎn)生隨機數(shù)序列,隨機序列發(fā)生器模塊通過引腳與隨機序列存儲單元相連接,將產(chǎn)生的隨機數(shù)序列存儲至隨機序列存儲單元內; 所述簽名模塊用以計算簽名值,它的輸入引腳分別和私鑰存儲單元、隨機序列存儲單元相連接,它的輸出引腳和隨機數(shù)簽名值存儲單元相連接; 所述隨機數(shù)簽名值存儲單元用以存儲簽名值,它的輸出引腳與公鑰存儲單元的輸出引腳一同和編碼模塊相連接; 所述編碼模塊用以對二進制字節(jié)碼進行轉碼,編碼模塊的輸出引腳與向量存儲模塊相連接; 所述向量存儲模塊用以用來存儲芯片內的參數(shù)及模塊間產(chǎn)生的數(shù)據(jù),并實現(xiàn)芯片的外部讀?。? 所述總控制器單元通過外部輸入的參數(shù)以實現(xiàn)控制其他模塊運行,外部輸入?yún)?shù)存儲至參數(shù)存儲單元,并進一步發(fā)送至向量存儲模塊。
2.如權利要求1所述的一種手機安全協(xié)處理芯片,其特征在于:所述密鑰對產(chǎn)生模塊中通過RSA算法或者DSA算法產(chǎn)生公鑰和私鑰,使用1024、2048和3072三種位數(shù)的秘鑰位數(shù)。
3.如權利要求1或2所述的一種手機安全協(xié)處理芯片,其特征在于:所述隨機序列發(fā)生器模塊產(chǎn)生的隨機序列長度包括1、2、4、8四種。
4.如權利要求3所述的一種手機安全協(xié)處理芯片,其特征在于:所述編碼模塊中的編碼類型包括BASE64編碼或HEX編碼。
5.如權利要求1所述的一種手機安全協(xié)處理芯片,其特征在于:向量存儲模塊中,所述模塊間產(chǎn)生的數(shù)據(jù)包括隨機數(shù)、公鑰、簽名值以及各個模塊所選擇的算法種類、密鑰長度。
6.如權利要求1所述的一種手機安全協(xié)處理芯片,其特征在于:所述總控制器單元中還設置有一個時鐘序列發(fā)生器。
7.如權利要求1所述的一種手機安全協(xié)處理芯片,其特征在于,所述簽名模塊中,計算簽名值的過程為:首先對隨機數(shù)序列數(shù)據(jù)計算哈希值,然后用私鑰對哈希值進行加密,其中,哈希算法的選擇包括shal、sha-256、sha-512和MD5 ;哈希值的加密使用RSA算法。
8.一種基于權利要求6所述手機安全協(xié)處理芯片的工作方法,其特征在于,具體步驟包括: 步驟一、總控制器單元依次控制密鑰對產(chǎn)生模塊、公鑰存儲單元、編碼模塊和向量存儲單元按時鐘序列順序執(zhí)行,產(chǎn)生公鑰和私鑰; 步驟二、總控制器單元依次控制隨機序列發(fā)生器模塊、隨機序列存儲單元、私鑰存儲單元、簽名模塊、隨機數(shù)簽名存儲單元、編碼模塊和向量存儲單元按時鐘序列順序執(zhí)行,使用已有公鑰和私鑰對進行簽名; 步驟三、控制參數(shù)輸入,應用讀取存儲向量進行反編碼,再由應用后臺驗證簽名值是否正確,完成認證流程。
【文檔編號】H04L9/32GK104363099SQ201410710412
【公開日】2015年2月18日 申請日期:2014年11月27日 優(yōu)先權日:2014年11月27日
【發(fā)明者】張先利 申請人:南京澤本信息技術有限公司