本發(fā)明涉及分布式密鑰管理,尤其涉及適用于政務區(qū)塊鏈網(wǎng)絡的分布式密鑰管理方法。
背景技術:
1、隨著政務區(qū)塊鏈網(wǎng)絡的不斷發(fā)展,傳統(tǒng)的密鑰安全管理方法已無法適應政務區(qū)塊鏈網(wǎng)絡的需求。具體存在以下情形:
2、情形之一是傳統(tǒng)的密鑰分配中心(key?distribution?center,簡稱kdc)很難適應政務區(qū)塊鏈網(wǎng)絡特點。這是因為傳統(tǒng)的kdc需要建立一個各方都信任的權威密鑰分配機構,當各方需要安全通信時,kdc通過“安全通道”給各方分配密鑰后,各方才能進行安全地加密通信。
3、然而,政務區(qū)塊鏈網(wǎng)絡具有去中心化、分布式存儲、無中心硬件和權威機構、所有節(jié)點的權利和責任是平等的,而且政務區(qū)塊鏈網(wǎng)絡中的數(shù)據(jù)由所有節(jié)點共同維護等特點。在政務區(qū)塊鏈網(wǎng)絡環(huán)境下,無法建立一個權威的kdc機構節(jié)點,更不存在所謂的“安全通道”,因此,傳統(tǒng)的密鑰分配中心對密鑰的管理方式已經無法適應政務區(qū)塊鏈的實際需求,需要研究符合政務區(qū)塊鏈網(wǎng)絡點的密鑰管理方法。
4、情形之二是目前大部分政務區(qū)塊鏈網(wǎng)絡節(jié)點對密鑰的管理存在嚴重的安全隱患。比如大多政務數(shù)區(qū)塊鏈節(jié)點用于數(shù)字簽名的私鑰,或者用于加密傳輸?shù)拿荑€等都是以明文方式存儲在配置文件中。在遭遇系統(tǒng)錯誤、人員操作失誤、黑客攻擊等后就很可能造成這些私鑰和密鑰的泄露,進而影響整個政務區(qū)塊鏈網(wǎng)絡的安全。雖然有的網(wǎng)絡節(jié)點使用加密方式對使用的密鑰加密后再存儲,但加密密鑰所用的密鑰又如何去管理依然是個難以解決的問題。
5、情形之三是政務區(qū)塊鏈網(wǎng)絡的用戶特點給密鑰管理帶來了全新挑戰(zhàn)。政務區(qū)塊鏈網(wǎng)絡中的用戶往往是政務各部門而非個人,而由政府各部門形成的組織內部往往存在上下級的層級關系,組織層級的重要程度不同,組織內處于不同的層級的用戶對組織所擁有的密鑰的使用權限也不相同。比如,有的密鑰一個用戶就可以單獨使用,有的密鑰需要兩個用戶一起才能使用等等。此外,組織經常需要同時管理和使用多個密鑰而不僅僅是一個密鑰,每個密鑰又規(guī)定了各自的使用權限和要求。這些新需求都給政務區(qū)塊鏈網(wǎng)絡的密鑰管理帶來了前所未有的挑戰(zhàn)。
6、情形之四是政務區(qū)塊鏈網(wǎng)絡中跨鏈場景使得密鑰管理變得非常重要。政務區(qū)塊鏈網(wǎng)絡中往往存在著同構和異構的架構設計,不同的政務區(qū)塊鏈網(wǎng)絡之間需要相互連接和通信,更需要解決不同政務區(qū)塊鏈網(wǎng)絡之間的共識機制差異,確保數(shù)據(jù)的一致性和可靠性。
7、為了實現(xiàn)不同異構政務區(qū)塊鏈的通信和交互,建立可驗證的、適應不同異構鏈的分布式的密鑰管理機制,以便進行安全、可靠的通信和交互變得非常重要。
8、基于此,本發(fā)明提供了一種適用于政務區(qū)塊鏈網(wǎng)絡的分布式密鑰管理方法及應用,以解決政務區(qū)塊鏈網(wǎng)絡場景下如何安全管理密鑰,是當前亟待解決的技術問題。
技術實現(xiàn)思路
1、本發(fā)明的目的在于:克服現(xiàn)有技術的不足,提供一適用于政務區(qū)塊鏈網(wǎng)絡的分布式密鑰管理方法及應用,本發(fā)明能夠將智能合約部署在政務區(qū)塊鏈網(wǎng)絡中,通過智能合約對所述政務區(qū)塊鏈網(wǎng)絡中的分布式密鑰進行安全管理。
2、為解決現(xiàn)有的技術問題,本發(fā)明提供了如下技術方案:
3、一種適用于政務區(qū)塊鏈網(wǎng)絡的分布式密鑰管理方法,將至少一個智能合約部署到政務區(qū)塊鏈網(wǎng)絡中,通過所述智能合約對所述政務區(qū)塊鏈網(wǎng)絡中的分布式密鑰進行管理,其中,所述管理按照預設的密鑰使用權限,對密鑰編碼后得到的數(shù)據(jù)片段進行訪問控制管理和數(shù)字身份管理。
4、進一步,所述方法包括步驟:
5、獲取至少一個密鑰,并進行處理;所述處理包括對至少一個密鑰構建至少一個密鑰多項式p(x),并將通過前述密鑰多項式p(x)得到的至少一個數(shù)據(jù)片段存儲于政務區(qū)塊鏈網(wǎng)絡的節(jié)點中;其中,在獲取密鑰之前還包括密鑰生成步驟s110,如下:s111,使用隨機數(shù)生成器或偽隨機數(shù)生成器生成k個密鑰key0,...,keyk-1,其中,k為大于1的整數(shù);s112,當k個密鑰長度不同時,選取整數(shù)h=max(log2(key0),...,log2(keyk-1))為k個密鑰中最長密鑰的比特長度;s113,選擇一個比特長度大于或者等于h的安全素數(shù)p構建有限域使得有限域共有p個不同的元素且每個元素的長度都為比特;s114,映射k個密鑰key0,...,keyk-1為有限域上k個不同的元素
6、根據(jù)預設的密鑰使用權限從政務區(qū)塊鏈網(wǎng)絡中獲取數(shù)據(jù)片段;
7、當獲得的數(shù)據(jù)片段的數(shù)量大于等于允許重構密鑰的最低閾值時,判斷是否需要重構密鑰;其中,基于收集的數(shù)據(jù)片段的來源是否可信,來確定前述收集的數(shù)據(jù)片段是否可能存在錯誤;
8、當收集的數(shù)據(jù)片段均不存在錯誤時,執(zhí)行無錯重構步驟,以獲得正確的密鑰;當至少一個前述收集的數(shù)據(jù)片段可能存在錯誤時,執(zhí)行容錯重構步驟;其中,當存在錯誤的數(shù)據(jù)片段數(shù)量小于等于預設數(shù)量時,前述容錯重構步驟能夠在重構出正確密鑰的同時,定位發(fā)生錯誤的數(shù)據(jù)片段;
9、針對發(fā)生錯誤的數(shù)據(jù)片段,根據(jù)預設的密鑰修復要求,執(zhí)行錯誤處置步驟;在執(zhí)行錯誤處置步驟時,選擇執(zhí)行精確性修復步驟或者功能性修復步驟來完成密鑰重構;其中,通過前述精確性修復步驟修復的數(shù)據(jù)片段與原數(shù)據(jù)片段完全相同,對應的功能和數(shù)據(jù)片段數(shù)值相同;通過所述功能性修復步驟修復的數(shù)據(jù)片段數(shù)值與原數(shù)據(jù)片段數(shù)值不同,但實現(xiàn)的功能相同。
10、進一步,所述方法中配置的參數(shù)包括:
11、數(shù)據(jù)片段數(shù)量n、最低重構片段數(shù)量k和安全的強素數(shù)p,在n個數(shù)據(jù)片段中最多允許存在錯誤的數(shù)據(jù)片段數(shù)量e;
12、上述參數(shù)均為正整數(shù),且同時滿足1≤k≤n≤p-1和或者,同時滿足1≤k≤n≤p-1和n=k+2e;其中,強素數(shù)p能夠選擇比特長度大于或者等于h的安全素數(shù)。
13、進一步,在步驟s110之后,獲取密鑰之前,還包括密鑰編碼步驟s120,如下:
14、s121,根據(jù)需要管理的密鑰數(shù)量k,構建至少一個k-1階的密鑰多項式所述密鑰多項式p(x)的系數(shù)為前述有限域元素即其中,所述表示有限域上所有密鑰多項式p(x)的集合;
15、s122,選擇有限域上n個不同的非零元素作為自變量,并計算p(ai),i∈[n],得到n個鍵值對作為編碼后的n個數(shù)據(jù)片段。
16、進一步,判斷是否需要重構密鑰,包括執(zhí)行重構條件判定步驟s130,如下:
17、s131,統(tǒng)計獲得的數(shù)據(jù)片段數(shù)量;
18、s132,當獲得的數(shù)據(jù)片段數(shù)量大于等于最低重構片段數(shù)量k時,判斷前述收集的數(shù)據(jù)片段是否可能存在錯誤;
19、s133,判定為否時,執(zhí)行無錯重構步驟;反之,執(zhí)行容錯重構步驟。
20、進一步,無錯重構步驟s140包括:
21、s141,針對獲得的n個無錯的數(shù)據(jù)片段在定義yi=p(αi),i∈[n]為所有獲得的數(shù)據(jù)片段后,任意選取其中k個數(shù)據(jù)片段作為無錯重構步驟的輸入;
22、s142,構建k個k-1階多項式將重構出的密鑰多項式表示為其中,密鑰多項式p(x)的系數(shù)為重構出的密鑰。
23、進一步,容錯重構步驟s150包括:
24、s151,對所有i∈[n]設p(αi)=y(tǒng)i,y=(y1,...,yn),得到n個數(shù)據(jù)片段
25、s152,構建一個e階非零多項式l(x),得到錯誤定位多項式當所述錯誤定位多項式l(x)滿足l(αi)=0當且僅當yi≠p(αi)時,在收集到的n數(shù)據(jù)片段中,所有存在錯誤的數(shù)據(jù)片段的αi∈{yi≠p(αi)}都是錯誤定位多項式l(x)的根;
26、s153,設前述錯誤定位多項式l(x)的展開式為l(x)=b0+b1x1+…+be-1xe-1+bexe,結合確定前述l(x)的最高次項xe的系數(shù)為be=1后,再確定l(x)中其余e個未知系數(shù)b0,b1,...,be-1,進而確定l(x);
27、s154,構建一個k+e-1階的非零多項式n(x),滿足yil(αi)=n(αi),i∈[n],設n(x)的系數(shù)為a0,a1,...,ak+e-1,則n(x)的展開式表示為n(x)=a0+a1x1+…+ak+e-1xk+e-1,通過確定n(x)的k+e個未知系數(shù)a0,a1,...,ak+e-1,進而確定n(x)的展開式;
28、s155,由于等式p(αi)=y(tǒng)i對所有i∈[n]成立,而當yi≠p(αi),i∈[n]時l(αi)=0,因此,yil(αi)=l(αi)p(αi)對于所有i∈[n]成立,即n(αi)=l(αi)p(αi)對所有i∈[n]都成立;
29、s156,由于n(αi)=l(αi)p(αi)對所有i∈[n]成立,因此建立一個具有k+2e個等式和k+2e個未知數(shù)的方程組,得到:
30、
31、求解上述方程組,得到a0,a1,...,ak+e-1和b0,b1,...,be-1的值,從而確定所述非零多項式n(x)和所述錯誤定位多項式l(x);
32、s157,在確定前述n(x)和l(x)后,當δ(y,(p(αi))i)≤e時,出錯的數(shù)據(jù)片段數(shù)量小于等于e值,能夠通過計算重構出密鑰多項式p(x),以獲得密鑰;反之,δ(y,(p(αi))i)>e時,出錯的數(shù)據(jù)片段數(shù)量大于前述e值,因不能重構出p(x),而無法獲得密鑰。
33、進一步,在執(zhí)行前述步驟s157時,還能夠同時執(zhí)行錯誤處置步驟s160;所述錯誤處置步驟s160包括錯誤定位步驟s161和錯誤修復步驟s162;在執(zhí)行錯誤定位步驟s161,對錯誤的數(shù)據(jù)片段進行定位后,執(zhí)行錯誤修復步驟s162,以得到正確的數(shù)據(jù)片段;其中,所述錯誤修復步驟s162根據(jù)前述錯誤的數(shù)據(jù)片段的修復需求,選擇執(zhí)行精確性修復步驟s1621或者功能性修復步驟s1622;其中,
34、所述錯誤定位步驟s161被配置為:通過前述錯誤定位多項式l(x)定位發(fā)生錯誤的數(shù)據(jù)片段,檢測收集的n個數(shù)據(jù)片段其中,所有的αi∈{l(αi)=0,i∈[n]}都是發(fā)生錯誤的數(shù)據(jù)片段;
35、所述錯誤修復步驟s162被配置為:通過容錯重構步驟重構出的密鑰多項式計算得到數(shù)據(jù)片段的正確值;根據(jù)數(shù)據(jù)片段的修復要求,執(zhí)行前述錯誤修復步驟中的精確性修復步驟s1621或功能性修復步驟s1622;其中,
36、所述精確性修復步驟s1621指的是對應發(fā)生錯誤的數(shù)據(jù)片段的位置,即αi∈{l(αi)=0,i∈[n]}恢復原數(shù)據(jù)片段;所述功能性修復步驟s1622是指選擇未使用過的數(shù)據(jù)片段位置計算一個新的并用新數(shù)據(jù)片段(αj,p(αj))代替發(fā)生錯誤的數(shù)據(jù)片段;其中,經過功能性修復步驟的數(shù)據(jù)片段是能夠用于重構密鑰的合法數(shù)據(jù)片段,經過功能性修復步驟的數(shù)據(jù)片段存儲于政務區(qū)塊鏈網(wǎng)絡的節(jié)點中。
37、一種適用于政務區(qū)塊鏈網(wǎng)絡的分布式密鑰管理系統(tǒng),包括:
38、政務區(qū)塊鏈網(wǎng)絡的節(jié)點,用于存儲密鑰編碼后得到的數(shù)據(jù)片段;
39、智能合約,用于密鑰編碼后的數(shù)據(jù)片段的訪問控制管理和用戶的數(shù)字身份管理;
40、系統(tǒng)服務器,所述系統(tǒng)服務器連接政務區(qū)塊鏈網(wǎng)絡的節(jié)點;
41、所述的系統(tǒng)服務器被配置為:將至少一個智能合約部署到政務區(qū)塊鏈網(wǎng)絡中,通過所述智能合約對所述政務區(qū)塊鏈網(wǎng)絡中的分布式密鑰進行管理,其中,所述管理按照預設的密鑰使用權限,對密鑰編碼后得到的數(shù)據(jù)片段進行訪問控制管理和數(shù)字身份管理。
42、一種計算機可讀存儲介質,所述計算機可讀存儲介質內存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)上述任一項所述方法的實施步驟。
43、基于上述優(yōu)點和積極效果,本發(fā)明的優(yōu)勢在于,適用于有層級關系的政務各部門在政務區(qū)塊鏈網(wǎng)絡中對密鑰的管理,其中,密鑰經過編碼后以數(shù)據(jù)片段的形式存儲于政務區(qū)塊鏈網(wǎng)絡中。
44、進一步,設計智能合約并部署到前述政務區(qū)塊鏈網(wǎng)絡中,所述智能合約代碼對應所述方法中的步驟進行設置;進而通過智能合約,按照預設的密鑰使用權限,對密鑰編碼后得到的數(shù)據(jù)片段進行訪問控制管理和數(shù)字身份管理。
45、進一步,當獲得的合法數(shù)據(jù)片段的總數(shù)大于或者等于重構密鑰所需的最少數(shù)據(jù)片段數(shù)量k時,就可以重構出密鑰。又因為密鑰在整個生命周期中都是以數(shù)據(jù)片段,而非明文的形式存儲于區(qū)塊鏈網(wǎng)絡中,因此可以實現(xiàn)對多個密鑰管理的“可用不可見”。
46、進一步,由于本發(fā)明預設的密鑰容錯重構步驟還能夠對存在錯誤的數(shù)據(jù)片段進行定位,并根據(jù)預設的密鑰修復要求,在執(zhí)行密鑰修復步驟時對錯誤的數(shù)據(jù)片段進行精確性修復或功能性修復,因此在工程方面具有極高的實用性和魯棒性。
47、進一步,由跨政務區(qū)塊鏈的智能合約實現(xiàn),從而解決政務區(qū)塊鏈中跨鏈應用場景下的密鑰管理和應用問題。