一種秘密共享硬件實現(xiàn)方法及裝置制造方法
【專利摘要】本發(fā)明涉及一種秘密共享硬件實現(xiàn)方法及裝置,所述微處理器通過AHB總線分別與秘密共享模塊、Flash模塊和智能卡模塊連接;所述微處理器,其用于協(xié)調(diào)和控制秘密共享模塊、Flash模塊和智能卡模塊;所述秘密共享模塊,其用于根據(jù)微處理器的命令實現(xiàn)秘密的拆分和組合;所述Flash模塊,其用于存放不同應(yīng)用的門限(k,n)參數(shù);所述智能卡模塊,其用于根據(jù)微處理器的命令實現(xiàn)對智能卡的讀寫;本發(fā)明采用純硬件、低成本開銷實現(xiàn)了基于Shamir的秘密共享,不僅保證了秘密共享的安全性,而且具有很好的靈活性和擴展性。
【專利說明】—種秘密共享硬件實現(xiàn)方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息安全技術(shù)和集成電路設(shè)計領(lǐng)域。尤其涉及一種秘密共享硬件實現(xiàn)方法及裝置。
【背景技術(shù)】
[0002]作為信息安全和數(shù)據(jù)保密的重要手段,秘密共享正被廣泛地應(yīng)用與經(jīng)濟、軍事、行政等各部門,它在重要信息和秘密數(shù)據(jù)的安全保存、傳輸及合法利用中起著關(guān)鍵作用。
[0003](k,n)門限秘密共享概念由Shamir和Blakley提出,其基本思想是,一個秘密被η個人共享,且滿足:只有k個或更多的參與者聯(lián)合才可以重構(gòu)該秘密;任意少于k個參與者都不能得到該秘密的任何信息。這種(k,n)門限秘密共享不僅可應(yīng)用于金融系統(tǒng)的密碼管理、軍事機密等高安全要求,也適用于遺囑、商業(yè)信息等信息共享。
[0004]然而,目前市場上秘密共享主要采用軟件實現(xiàn)。這些方法安全度低,容易被攻破,非常不適合金融、涉密機構(gòu)等安全要求高的用戶使用。為此,研制一種可擴展、低成本的秘密共享的硬件實現(xiàn)方法及裝置顯得十分重要。
【發(fā)明內(nèi)容】
[0005]本發(fā)明所要解決的技術(shù)問題是針對現(xiàn)有技術(shù)的不足,提供一種可擴展、低成本、安全度高的秘密共享硬件實現(xiàn)方法及裝置。
[0006]本發(fā)明解決上述技術(shù)問題的技術(shù)方案如下:一種秘密共享硬件實現(xiàn)秘密拆分的方法,包括如下步驟:
[0007]步驟Al:根據(jù)應(yīng)用類型在微處理器中設(shè)置秘密信息、門限(k,η)參數(shù)和操作信息,微處理器根據(jù)操作信息為待分成的η個子秘密分配身份標(biāo)識;
[0008]步驟Α2:微處理器將秘密信息、門限(k,η)參數(shù)和身份標(biāo)識按照預(yù)定格式封裝成拆分運算數(shù)據(jù)包,發(fā)送給秘密共享模塊,并將所述門限(k,η)參數(shù)存儲到Flash模塊中;
[0009]步驟A3:秘密共享模塊根據(jù)操作信息,按照門限(k,η)參數(shù)將秘密拆分成η個子秘密;
[0010]步驟Α4:微處理器依次將η個子秘密及其對應(yīng)的身份標(biāo)識通過智能卡模塊寫入η個相應(yīng)的智能卡中。
[0011]在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進。
[0012]進一步,步驟A3中秘密共享模塊根據(jù)操作信息,按照門限參數(shù)將秘密拆分成η個子秘密的具體步驟為:
[0013]步驟A3.1:總線接口自動解析所述數(shù)據(jù)包,將數(shù)據(jù)包中的操作信息存入控制單元,將秘密信息和參數(shù)信息存入存儲器;
[0014]步驟A3.2:控制單元根據(jù)操作信息啟動內(nèi)部狀態(tài)機,內(nèi)部狀態(tài)機控制大數(shù)模乘單元和大數(shù)模加單元的運算過程;
[0015]步驟A3.3:大數(shù)模乘單元和大數(shù)模加單元根據(jù)內(nèi)部狀態(tài)機的控制從存儲器中獲取所需數(shù)據(jù)進行運算,將秘密拆分成η個子秘密;
[0016]步驟A3.4:將運行結(jié)果存入存儲器中,同時控制單元產(chǎn)生中斷通過總線接口發(fā)送給微處理器,提示運算完成。
[0017]本發(fā)明解決上述技術(shù)問題的一個方案:一種秘密共享硬件實現(xiàn)秘密組合的方法,包括如下步驟:
[0018]步驟B1:將至少k個智能卡依次插入智能卡模塊,微處理器通過智能卡模塊讀取至少k個智能卡中的子秘密和相應(yīng)身份標(biāo)識,微處理器同時并從Flash模塊中讀取門限(k, η)參數(shù);
[0019]步驟Β2:微處理器將至少k子秘密、身份標(biāo)識和門限(k, η )參數(shù)封裝成組合運算數(shù)據(jù)包,并發(fā)送給秘密共享模塊;
[0020]步驟Β3:秘密共享模塊將至少k個子秘密組合成秘密;
[0021]步驟B4:微處理器從秘密共享模塊讀取組合的秘密。
[0022]進一步,步驟B3中秘密共享模塊將至少k個子秘密組合成秘密的具體步驟為:
[0023]步驟B3.1:總線接口自動解析所述數(shù)據(jù)包,將數(shù)據(jù)包中的操作信息存入控制單元,將子秘密信息和參數(shù)信息存入存儲器;
[0024]步驟B3.2:控制單元根據(jù)操作信息啟動內(nèi)部狀態(tài)機,內(nèi)部狀態(tài)機控制大數(shù)模乘單元和大數(shù)模加單元的運算過程;
[0025]步驟B3.3:大數(shù)模乘單元和大數(shù)模加單元根據(jù)內(nèi)部狀態(tài)機的控制從存儲器中獲取所需數(shù)據(jù)進行運算,將至少k個子秘密組合成秘密;
[0026]步驟B3.4:將運行結(jié)果存入存儲器中,同時控制單元產(chǎn)生中斷通過總線接口發(fā)送給微處理器,提示運算完成。
[0027]本發(fā)明解決上述技術(shù)問題的技術(shù)方案如下:一種秘密共享硬件實現(xiàn)裝置,包括微處理器、秘密共享模塊、Flash模塊和智能卡模塊;
[0028]所述微處理器通過AHB總線分別與秘密共享模塊、Flash模塊和智能卡模塊連接;
[0029]所述微處理器,其用于協(xié)調(diào)和控制秘密共享模塊、Flash模塊和智能卡模塊;
[0030]所述秘密共享模塊,其用于根據(jù)微處理器的命令實現(xiàn)秘密的拆分和組合;
[0031 ] 所述Flash模塊,其用于存放不同應(yīng)用的門限(k,η)參數(shù);
[0032]所述智能卡模塊,其用于根據(jù)微處理器的命令實現(xiàn)對智能卡的讀寫。
[0033]在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進。
[0034]進一步,所述秘密共享模塊包括總線接口、控制單元、存儲器、大數(shù)模乘單元和大數(shù)模加單元,
[0035]所述總線接口的一端通過外部AHB總線與微處理器連接,其另一端分別與控制單元和存儲器連接;所述控制單元和存儲器的另一端均與大數(shù)模乘單元和大數(shù)模加單元的輸入端相連;所述大數(shù)模乘單元的輸出端與大數(shù)模加單元的輸入端相連;所述大數(shù)模加單元的輸出端與存儲器相連;
[0036]所述總線接口對接收的數(shù)據(jù)包進行自動解析,將所述數(shù)據(jù)包中的操作信息存入控制單元,將秘密信息和操作信息存入存儲器;控制單元根據(jù)操作信息啟動內(nèi)部狀態(tài)機,內(nèi)部狀態(tài)機控制大數(shù)模乘單元和大數(shù)模加單元的運算過程;大數(shù)模乘單元和大數(shù)模加單元根據(jù)內(nèi)部狀態(tài)機的控制從存儲器中獲取所需數(shù)據(jù)進行運算,將秘密拆分成η個子秘密;將運行結(jié)果存入存儲器中,同時控制單元產(chǎn)生中斷通過總線接口發(fā)送給微處理器,提示運算完成。
[0037]進一步,所述存儲器采用靜態(tài)隨機存儲器SRAM。
[0038]進一步,所述Flash模塊中設(shè)有加密模塊和解密模塊,用于對存儲的數(shù)據(jù)進行加密和解密。
[0039]本發(fā)明的有益效果是:本發(fā)明所述秘密共享的實現(xiàn)采用純硬件實現(xiàn),具有很好的靈活性和擴展性,以非常低的面積開銷及成本開銷實現(xiàn)了基于Shamir的秘密共享,保證了秘密共享的安全性。
【專利附圖】
【附圖說明】
[0040]圖1為本發(fā)明所述一種秘密共享硬件實現(xiàn)裝置結(jié)構(gòu)圖;
[0041]圖2為本發(fā)明所述秘密共享模塊內(nèi)部結(jié)構(gòu)框圖;
[0042]圖3為本發(fā)明所述一種秘密共享硬件實現(xiàn)秘密拆分方法流程圖;
[0043]圖4為本發(fā)明所述一種秘密共享硬件實現(xiàn)秘密組合方法流程圖;
[0044]圖5為本發(fā)明所述步驟A3的具體實現(xiàn)流程圖;
[0045]圖6為本發(fā)明所述步驟B3的具體實現(xiàn)流程圖。
[0046]附圖中,各標(biāo)號所代表的部件列表如下:
[0047]1、微處理器,2、秘密共享模塊,3、Flash模塊,4、智能卡模塊,201、總線接口,202、控制單元,203、SRAM, 204、大數(shù)模乘單元,205、大數(shù)模加單元。
【具體實施方式】
[0048]以下結(jié)合附圖對本發(fā)明的原理和特征進行描述,所舉實例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。
[0049]如圖1所示,一種秘密共享硬件實現(xiàn)裝置,包括微處理器1、秘密共享模塊2、Flash模塊3和智能卡模塊4 ;
[0050]所述微處理器I通過AHB總線分別與秘密共享模塊2、Flash模塊3和智能卡模塊4連接;
[0051]所述微處理器2,其用于協(xié)調(diào)和控制秘密共享模塊2、Flash模塊3和智能卡模塊4 ;
[0052]所述秘密共享模塊2,其用于根據(jù)微處理器I的命令實現(xiàn)秘密的拆分和組合;
[0053]所述Flash模塊3,其用于存放不同應(yīng)用的門限(k, η)參數(shù);
[0054]所述智能卡模塊4,其用于根據(jù)微處理器的命令實現(xiàn)對智能卡的讀寫。
[0055]其中,所述Flash模塊3中設(shè)有加密模塊和解密模塊,用于對存儲的數(shù)據(jù)進行加密和解密,進一步提高所存儲內(nèi)容的安全性。
[0056]如圖2所示,所述秘密共享模塊包括總線接口 201、控制單元202、SRAM (存儲器)203、大數(shù)模乘單元204和大數(shù)模加單元205,
[0057]所述總線接口 201的一端通過外部AHB總線與微處理器I連接,其另一端分別與控制單元202和存儲器203連接;所述控制單元202和存儲器203的另一端均與大數(shù)模乘單元204和大數(shù)模加單元205的輸入端相連;所述大數(shù)模乘單元204的輸出端與大數(shù)模加單元205的輸入端相連;所述大數(shù)模加單元205的輸出端與存儲器203相連;[0058]所述總線接口 201對接收的數(shù)據(jù)包進行自動解析,將所述數(shù)據(jù)包中的操作信息存入控制單元202,將秘密信息和操作信息存入存儲器203 ;控制單元202根據(jù)操作信息啟動內(nèi)部狀態(tài)機,內(nèi)部狀態(tài)機控制大數(shù)模乘單元204和大數(shù)模加單元205的運算過程;大數(shù)模乘單元204和大數(shù)模加單元205根據(jù)內(nèi)部狀態(tài)機的控制從存儲器203中獲取所需數(shù)據(jù)進行運算,將秘密拆分成η個子秘密;將運行結(jié)果存入存儲器203中,同時控制單元202產(chǎn)生中斷通過總線接口 201發(fā)送給微處理器1,提示運算完成。
[0059]其中,所述存儲器203采用靜態(tài)隨機存儲器SRAM。
[0060]如圖3所示,種秘密共享硬件實現(xiàn)秘密拆分的方法,包括如下步驟:
[0061]步驟Al:根據(jù)應(yīng)用類型在微處理器中設(shè)置秘密信息、門限(k,η)參數(shù)和操作信息,微處理器根據(jù)操作信息為待分成的η個子秘密分配身份標(biāo)識;
[0062]步驟Α2:微處理器將秘密信息、門限(k,η)參數(shù)和身份標(biāo)識按照預(yù)定格式封裝成拆分運算數(shù)據(jù)包,發(fā)送給秘密共享模塊,并將所述門限(k,η)參數(shù)存儲到Flash模塊中;
[0063]步驟A3:秘密共享模塊根據(jù)操作信息,按照門限(k,η)參數(shù)將秘密拆分成η個子秘密;
[0064]步驟Α4:微處理器依次將η個子秘密及其對應(yīng)的身份標(biāo)識通過智能卡模塊寫入η個相應(yīng)的智能卡中。
[0065]如圖4所示,一種秘密共享硬件實現(xiàn)秘密組合的方法,包括如下步驟:
[0066]步驟B1:將至少k個智能卡依次插入智能卡模塊,微處理器通過智能卡模塊讀取至少k個智能卡中的子秘密和相應(yīng)身份標(biāo)識,微處理器同時并從Flash模塊中讀取門限(k, η)參數(shù);
[0067]步驟Β2:微處理器將至少k子秘密、身份標(biāo)識和門限(k,η)參數(shù)封裝成組合運算數(shù)據(jù)包,并發(fā)送給秘密共享模塊;
[0068]步驟Β3:秘密共享模塊將至少k個子秘密組合成秘密;
[0069]步驟B4:微處理器從秘密共享模塊讀取組合的秘密。
[0070]如圖5所示,步驟A3中秘密共享模塊根據(jù)操作信息,按照門限參數(shù)將秘密拆分成η個子秘密的具體步驟為:
[0071]步驟A3.1:總線接口自動解析所述數(shù)據(jù)包,將數(shù)據(jù)包中的操作信息存入控制單元,將秘密信息和參數(shù)信息存入存儲器;
[0072]步驟A3.2:控制單元根據(jù)操作信息啟動內(nèi)部狀態(tài)機,內(nèi)部狀態(tài)機控制大數(shù)模乘單元和大數(shù)模加單元的運算過程;
[0073]步驟A3.3:大數(shù)模乘單元和大數(shù)模加單元根據(jù)內(nèi)部狀態(tài)機的控制從存儲器中獲取所需數(shù)據(jù)進行運算,將秘密拆分成η個子秘密;
[0074]步驟A3.4:將運行結(jié)果存入存儲器中,同時控制單元產(chǎn)生中斷通過總線接口發(fā)送給微處理器,提示運算完成。
[0075]如圖6所示,步驟Β3中秘密共享模塊將至少k個子秘密組合成秘密的具體步驟為:
[0076]步驟B3.1:總線接口自動解析所述數(shù)據(jù)包,將數(shù)據(jù)包中的操作信息存入控制單元,將子秘密信息和參數(shù)信息存入存儲器;
[0077]步驟B3.2:控制單元根據(jù)操作信息啟動內(nèi)部狀態(tài)機,內(nèi)部狀態(tài)機控制大數(shù)模乘單元和大數(shù)模加單元的運算過程;
[0078]步驟B3.3:大數(shù)模乘單元和大數(shù)模加單元根據(jù)內(nèi)部狀態(tài)機的控制從存儲器中獲取所需數(shù)據(jù)進行運算,將至少k個子秘密組合成秘密;
[0079]步驟B3.4:將運行結(jié)果存入存儲器中,同時控制單元產(chǎn)生中斷通過總線接口發(fā)送給微處理器,提示運算完成。
[0080]其中,進行秘密的拆分和秘密組合時,秘密共享模塊將秘密拆分成η個子秘密或?qū)⒅辽賙個子秘密組合成秘密的操作完成時,向微處理器發(fā)送中斷信息,提示拆分或組合完成。
[0081 ] 以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
【權(quán)利要求】
1.一種秘密共享硬件實現(xiàn)秘密拆分的方法,其特征在于,包括如下步驟: 步驟Al:根據(jù)應(yīng)用類型在微處理器中設(shè)置秘密信息、門限(k,η)參數(shù)和操作信息,微處理器根據(jù)操作信息為待分成的η個子秘密分配身份標(biāo)識; 步驟Α2:微處理器將秘密信息、門限(k,η)參數(shù)和身份標(biāo)識按照預(yù)定格式封裝成拆分運算數(shù)據(jù)包,發(fā)送給秘密共享模塊,并將所述門限(k,η)參數(shù)存儲到Flash模塊中; 步驟A3:秘密共享模塊根據(jù)操作信息,按照門限(k,n)參數(shù)將秘密拆分成η個子秘密;步驟Α4:微處理器依次將η個子秘密及其對應(yīng)的身份標(biāo)識通過智能卡模塊寫入η個相應(yīng)的智能卡中。
2.根據(jù)權(quán)利要求1所述一種秘密共享硬件實現(xiàn)方法,其特征在于,步驟A3中秘密共享模塊根據(jù)操作信息,按照門限參數(shù)將秘密拆分成η個子秘密的具體步驟為: 步驟A3.1:總線接口自動解析所述數(shù)據(jù)包,將數(shù)據(jù)包中的操作信息存入控制單元,將秘密信息和參數(shù)信息存入存儲器; 步驟A3.2:控制單元根據(jù)操作信息啟動內(nèi)部狀態(tài)機,內(nèi)部狀態(tài)機控制大數(shù)模乘單元和大數(shù)模加單元的運算過程; 步驟A3.3:大數(shù)模乘單元和大數(shù)模加單元根據(jù)內(nèi)部狀態(tài)機的控制從存儲器中獲取所需數(shù)據(jù)進行運算,將秘密拆分成η個子秘密; 步驟A3.4:將運行結(jié)果存入存儲器中,同時控制單元產(chǎn)生中斷通過總線接口發(fā)送給微處理器,提示運算完成。
3.—種秘密共享硬件實現(xiàn)秘密組合的方法,其特征在于,包括如下步驟: 步驟B1:將至少k個智能卡依次插入智能卡模塊,微處理器通過智能卡模塊讀取至少k個智能卡中的子秘密和相應(yīng)身份標(biāo)識,微處理器同時并從Flash模塊中讀取門限(k,η)參數(shù); 步驟Β2:微處理器將至少k子秘密、身份標(biāo)識和門限(k,η)參數(shù)封裝成組合運算數(shù)據(jù)包,并發(fā)送給秘密共享模塊; 步驟Β3:秘密共享模塊將至少k個子秘密組合成秘密; 步驟B4:微處理器從秘密共享模塊讀取組合的秘密。
4.根據(jù)權(quán)利要求3所述一種秘密共享硬件實現(xiàn)方法,其特征在于,步驟B3中秘密共享模塊將至少k個子秘密組合成秘密的具體步驟為: 步驟B3.1:總線接口自動解析所述數(shù)據(jù)包,將數(shù)據(jù)包中的操作信息存入控制單元,將子秘密信息和參數(shù)信息存入存儲器; 步驟B3.2:控制單元根據(jù)操作信息啟動內(nèi)部狀態(tài)機,內(nèi)部狀態(tài)機控制大數(shù)模乘單元和大數(shù)模加單元的運算過程; 步驟B3.3:大數(shù)模乘單元和大數(shù)模加單元根據(jù)內(nèi)部狀態(tài)機的控制從存儲器中獲取所需數(shù)據(jù)進行運算,將至少k個子秘密組合成秘密; 步驟B3.4:將運行結(jié)果存入存儲器中,同時控制單元產(chǎn)生中斷通過總線接口發(fā)送給微處理器,提示運算完成。
5.一種秘密共享硬件實現(xiàn)裝置,其特征在于,包括微處理器、秘密共享模塊、Flash模塊和智能卡模塊; 所述微處理器通過AHB總線分別與秘密共享模塊、Flash模塊和智能卡模塊連接;所述微處理器,其用于協(xié)調(diào)和控制秘密共享模塊、Flash模塊和智能卡模塊; 所述秘密共享模塊,其用于根據(jù)微處理器的命令實現(xiàn)秘密的拆分和組合; 所述Flash模塊,其用于存放不同應(yīng)用的門限(k,η)參數(shù); 所述智能卡模塊,其用于根據(jù)微處理器的命令實現(xiàn)對智能卡的讀寫。
6.根據(jù)權(quán)利要求5所述一種秘密共享硬件實現(xiàn)裝置,其特征在于,所述秘密共享模塊包括總線接口、控制單元、存儲器、大數(shù)模乘單元和大數(shù)模加單元, 所述總線接口的一端通過外部AHB總線與微處理器連接,其另一端分別與控制單元和存儲器連接;所述控制單元和存儲器的另一端均與大數(shù)模乘單元和大數(shù)模加單元的輸入端相連;所述大數(shù)模乘單元的輸出端與大數(shù)模加單元的輸入端相連;所述大數(shù)模加單元的輸出端與存儲器相連; 所述總線接口對接收的數(shù)據(jù)包進行自動解析,將所述數(shù)據(jù)包中的操作信息存入控制單元,將秘密信息和操作信息存入存儲器;控制單元根據(jù)操作信息啟動內(nèi)部狀態(tài)機,內(nèi)部狀態(tài)機控制大數(shù)模乘單元和大數(shù)模加單元的運算過程;大數(shù)模乘單元和大數(shù)模加單元根據(jù)內(nèi)部狀態(tài)機的控制從存儲器中獲取所需數(shù)據(jù)進行運算,將秘密拆分成η個子秘密;將運行結(jié)果存入存儲器中,同時控制單元產(chǎn)生中斷通過總線接口發(fā)送給微處理器,提示運算完成。
7.根據(jù)權(quán)利要求5所述一種秘密共享硬件實現(xiàn)裝置,其特征在于,所述存儲器采用靜態(tài)隨機存儲器SRAM。
8.根據(jù)權(quán)利要求5所述一種秘密共享硬件實現(xiàn)裝置,其特征在于,所述Flash模塊中設(shè)有加密模塊和解密模塊,用于對存儲的數(shù)據(jù)進行加密和解密。
9.根據(jù)權(quán)利要求5所述一種秘密共享硬件實現(xiàn)裝置,其特征在于,所述大數(shù)模乘單元為基于16位乘法器實現(xiàn),所述大數(shù)模加單元為基于32位加法器實現(xiàn)。
【文檔編號】H04L9/08GK103701588SQ201310698820
【公開日】2014年4月2日 申請日期:2013年12月18日 優(yōu)先權(quán)日:2013年12月18日
【發(fā)明者】冷祥綸, 俞偉, 馬超, 趙行波 申請人:北京民芯科技有限公司