System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及信息安全領域,尤其涉及一種在動態變化環境中bls協商密鑰生成方法及裝置。
技術介紹
1、bls(boneh-lynn-shacham)簽名方案在區塊鏈中發揮著重要作用。一方面,bls簽名方案允許多個簽名者的簽名被聚合成一個單一的簽名,而無需逐個驗證每個簽名。這種聚合簽名的特性使得在區塊鏈中驗證交易或合約更加高效,減少了計算和存儲的成本,提高了系統的吞吐量和性能。另一方面,bls簽名方案產生的聚合簽名大小是固定的,與參與者的數量無關。相比之下,傳統的多重簽名方案需要存儲和傳輸每個個別簽名,導致簽名的大小與參與者數量成線性關系。在區塊鏈中,簽名大小對于減少區塊鏈的存儲需求和網絡帶寬具有重要意義。bls簽名方案通過聚合簽名的方式,優化了簽名的大小,減少了存儲和傳輸的開銷。因此,通過使用bls簽名方案,區塊鏈可以實現更高的吞吐量和更低的資源消耗,促進了區塊鏈技術的廣泛應用和發展。
2、在區塊鏈去中心化的環境中,bls需要依靠dkg(distributed?key?generation)協議來實現安全、可靠的密鑰生成與分發。由于分布式環境中的節點相互不可信,(t,n)-dkg需要通過參與者之間的交互和驗證來檢測和防止惡意參與者篡改或偽造密鑰份額。然而,多個參與者之間的交互復雜度為o(n2),而且每個參與者需要廣播其自身的驗證向量,長度為t,以進行驗證。通過結合驗證向量,參與者能夠驗證所接收到的私鑰貢獻的正確性。因此,dkg驗證所需的通信開銷為o(n2·t),計算開銷為o(n)。在公有區塊鏈validator高度動
3、鑒于此,如何在區塊鏈動態變化環境中設計一種更高效、輕量級的bls密鑰協商機制,是當前區塊鏈領域的研究難點。而本專利技術針對該問題,提出一種在動態變化環境中bls協商密鑰的算法,很好地解決了這一難題。
技術實現思路
1、本專利技術目的在于針對現有技術的不足,提出一種在動態變化環境中bls協商密鑰生成方法。
2、本專利技術的目的是通過以下技術方案來實現的:一種在動態變化環境中bls協商密鑰生成方法,包括以下步驟:
3、s1、對區塊鏈中每個參與節點構建多項式,所述多項式中選擇隨機數生成器生成隨機的一個常數項和一個多項式系數,將除隨機生成外的多項式系數固定為1;
4、s2、每個參與節點將其余節點的id值加1后代入自身多項式分發給每個節點計算每個參與節點收到的密鑰貢獻向量,同時計算驗證向量并進行分發;
5、s3、根據收集到的驗證向量和貢獻向量進行驗證密鑰貢獻的正確性;
6、s4、將驗證通過的節點對應的驗證向量的第一個元素相加得到系統公鑰,并將驗證通過的節點的密鑰貢獻相加得到匯總后的密鑰貢獻,將匯總后的密鑰貢獻轉發至其他節點,使用拉格朗日插值法重建出系統私鑰。
7、進一步地,所述多項式的公式具體如下:
8、
9、其中,s∈zt-1,每個參與節點ni選擇一個安全的隨機數生成器,用于生成t個隨機的多項式系數。該多項式的次數為t-1,將除常數項以外的,t-1個多項式系數中的隨機t-2個系數固定為1,以減小驗證過程的通信及計算開銷。
10、進一步地,所述密鑰貢獻具體為:
11、每個參與節點ni的id為i,每個參與節點ni將其他節點nj的id值加1后帶入自身多項式中得出fi(j+1),然后將fi(j+1)分發給每一個節點nj,其中i,j∈zn-1。那么對于每個參與節點nj,其收到的密鑰貢獻向量能夠被表示為
12、scj=[f0(j+1),f1(j+1),…,fn-1(j+1)]
13、進一步地,所述驗證向量為節點nj所對應多項式系數在橢圓曲線bn128上的映射,具體為:
14、vj=[aj,0·g,g,…,aj,s·g,…,g]
15、其中,aj,0·g表示nj所對應多項式的常數項系數在橢圓曲線bn128上的映射;長度為t的驗證向量中有t-2項為常數1·g。
16、進一步地,所述驗證密鑰貢獻具體為:
17、xi,j=sci[j]·g
18、
19、若xi,j=yi,j,則參與節點ni能夠證明節點nj所發送的fj(i+1)為正確值,對于每個參與節點ni,計算yi,j時,僅需計算aj,0·g+(i+1)saj,s·g的值,通過預計算獲得。
20、進一步地,所述s4具體包括:
21、每個參與節點ni首先將所有驗證通過的節點對應的驗證向量的第一個元素相加,得出系統公鑰;若n個節點所發送的密鑰貢獻均為正確值,則系統公鑰示為
22、
23、而后,每個參與節點ni將所有驗證通過的密鑰貢獻相加,得到匯總后的密鑰貢獻,表示為
24、
25、將匯總后的密鑰貢獻再次轉發給其它節點;每個參與節點收到來自其它節點的t個si,通過拉格朗日插值法重建出系統私鑰sk,表示為:
26、
27、其中為拉格朗日系數。
28、另一方面,本專利技術說明書還提供了一種在動態變化環境中bls協商密鑰生成裝置,包括存儲器和一個或多個處理器,所述存儲器中存儲有可執行代碼,所述處理器執行所述可執行代碼時,實現所述的一種在動態變化環境中bls協商密鑰生成方法。
29、另一方面,本專利技術說明書還提供了一種計算機可讀存儲介質,其上存儲有程序,所述程序被處理器執行時,實現所述的一種在動態變化環境中bls協商密鑰生成方法。
30、本專利技術的有益效果:針對bls算法在密鑰協商過程中的繁重通信開銷與計算開銷,本專利技術提出了一種在動態變化環境中bls協商密鑰的算法,通過簡化多項式系數,將密鑰分發過程中每個參與節點用于分發的驗證向量大小簡化為常量2。受益于上述設計,本專利技術能夠將通信開銷從o(n2·t)降低為o(n2);同時,由于t-2項驗證元素均為常數1·g,大部分驗證運算能夠通過預計算完成,從而將計算開銷從o(n)降低為o(1)。
本文檔來自技高網...【技術保護點】
1.一種在動態變化環境中BLS協商密鑰生成方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的一種在動態變化環境中BLS協商密鑰生成方法,其特征在于,所述多項式的公式具體如下:
3.根據權利要求1所述的一種在動態變化環境中BLS協商密鑰生成方法,其特征在于,所述密鑰貢獻具體為:
4.根據權利要求1所述的一種在動態變化環境中BLS協商密鑰生成方法,其特征在于,所述驗證向量為節點Nj所對應多項式系數在橢圓曲線BN128上的映射,具體為:
5.根據權利要求4所述的一種在動態變化環境中BLS協商密鑰生成方法,其特征在于,所述驗證密鑰貢獻具體為:
6.根據權利要求1所述的一種在動態變化環境中BLS協商密鑰生成方法,其特征在于,所述S4具體包括:
7.一種在動態變化環境中BLS協商密鑰生成裝置,包括存儲器和一個或多個處理器,所述存儲器中存儲有可執行代碼,其特征在于,所述處理器執行所述可執行代碼時,實現如權利要求1-6中任一項所述的一種在動態變化環境中BLS協商密鑰生成方法。
8.一種計算機可讀存儲介質,
...【技術特征摘要】
1.一種在動態變化環境中bls協商密鑰生成方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的一種在動態變化環境中bls協商密鑰生成方法,其特征在于,所述多項式的公式具體如下:
3.根據權利要求1所述的一種在動態變化環境中bls協商密鑰生成方法,其特征在于,所述密鑰貢獻具體為:
4.根據權利要求1所述的一種在動態變化環境中bls協商密鑰生成方法,其特征在于,所述驗證向量為節點nj所對應多項式系數在橢圓曲線bn128上的映射,具體為:
5.根據權利要求4所述的一種在動態變化環境中bls協商密鑰生成方法,其...
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。