999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于改進國密算法與區塊鏈的數據登記系統

2020-03-05 02:34:34鄧建球叢林虎李海君
兵器裝備工程學報 2020年1期

鄧建球,方 軼,叢林虎,李海君

(1.海軍航空大學, 山東 煙臺 264001; 2.中國人民解放軍91115部隊, 浙江 舟山 316000)

區塊鏈技術是一種集網絡通信、加密算法、共識機制、智能合約等技術于一體的新興信息技術,具有去中心化、防篡改、可追溯等特點[1]。在區塊鏈技術隨著比特幣出現之后,尤其是近幾年來區塊鏈研究熱度持續增高,各種區塊鏈產業項目層出不窮,許多專家學者已經對區塊鏈在醫療[2]、能源[3]、個人檔案信息[4]、身份認證[5]、物聯網[6]、大數據[7]、云計算[8]等方面的創新與應用進行了較為成功的研究。在區塊鏈技術中采用的Hash函數[9]、Merkle根結構、數字簽名技術[10]、非對稱加密等,是保證區塊鏈數據結構以及數據安全的主要方法手段。

本文首先對區塊鏈以及其中使用的Hash函數與數字簽名技術進行了概述。然后在對兩種國密算法SM2與SM3算法進行原理描述的基礎上,對其進行改進和對比分析。最后,使用區塊鏈Hyperledger Fabric開發平臺針對部隊導彈數據存儲記錄場景進行了應用開發,證明了本文提出的改進國密算法在區塊鏈應用的可行性與有效性。

1 區塊鏈及相關技術

2008年,中本聰發表了一篇名為《Bitcoin:A Peer-to-Peer Electronic Cash System》的論文[11],提出了一種基于密碼學的電子貨幣,并命名為比特幣(Bitcoin)。而支撐比特幣的這一技術被稱為區塊鏈。區塊鏈具有去中心化、數據防篡改、可追溯等特點[12],使其非常適用于需要保證數據高可信度以及透明度的場景。區塊鏈技術中使用的Hash函數、非對稱加密、數字簽名技術、共識算法等密碼學算法以及加密技術是保證其數據安全性與可靠性的主要依據。典型的區塊鏈結構如圖1所示。

圖1 區塊鏈結構示意圖

2 SM2算法的改進及其對比分析

SM2算法是我國自主開發的基于橢圓曲線的數字簽名算法。SM2算法主要包括系統參數生成(包括橢圓曲線參數生成和用戶公私鑰生成)、數字簽名生成和數字簽名認證三部分[13]。

2.1 SM2算法

系統參數主要包括有限域Fq的規模及表示,定義橢圓曲線E(Fq)方程的兩個元素a,b∈Fq;E(Fq)上的基點G=(xG,yG)(G≠0);G的階n等。

假設簽名用戶為A,則還需要生成簽名用戶A的私鑰dA和公鑰PA=[dA]G=(xA,yA);長度為entlenA比特的可辨別標識IDA,由entlenA轉換成的兩字節ENTLA;將其他參數轉換成比特串形式。

最后對以上參數使用SM3算法進行Hash運算,得到256位的與以上系統參數向關聯的比特串ZA=HashSM3(ENTLA‖IDA‖a‖b‖xG‖yG‖xA‖yA)。

假設待簽名的消息為M,簽名用戶A通過以下步驟獲得對消息M的簽名(r,s):

A3:用隨機數發生器產生隨機數k∈[1,n-1];

A4:計算橢圓曲線點(x1,y1)=kG,將x1化為整數;

A5:計算r=(e+x1)modn,若r=0或者r+k=n,則返回A3;

A6:計算s=(1+dA)-1·(k-r·dA)modn,若s=0,則返回A3;

A7:將r、s轉化為字節串,得到M的簽名(r,s)。

假設用戶B收到了待驗證的消息M′及其數字簽名(r′,s′),通過以下步驟對簽名進行認證:

B1:驗證r′∈[1,n-1]是否成立,若不成立則驗證失敗;

B2:驗證s′∈[1,n-1]是否成立,若不成立則驗證失敗;

B5:將r′、s′化為整數,計算t=(r′+s′)modn。若t=0則驗證失敗;

2.2 改進的SM2算法

改進策略主要通過對SM2簽名算法中的求逆運算進行改進,在保證簽名及認證結果正確性的基礎上,通過變量的代換使整個過程不含有求逆運算,從而提高SM2數字簽名算法的執行效率。本文提出的改進SM2數字簽名算法執行過程如下(與原算法相同的步驟不再重復):

在數字簽名生成中,A1至A5步驟同原SM2算法的步驟A1至A5,對簽名公式A6進行改進:A6:計算s=k-r+dAmodn,若s=0,則返回A3;A7同原SM2算法的步驟A7。

根據本文的改進方案,若用戶A對消息M進行了有效簽名,簽名s′=k-r′+dAmodn,變形整理可得k≡s′+r′+dAmodn,從而kG≡(s′+r′+dA)G成立,則kG≡s′G+r′G+dAG≡(s′+r′)G+PA≡tG+PA成立。因此驗證結果正確與否取決于R=r′是否成立。證明該方案與原方案具有相同的簽名及認證效果。

2.3 運算復雜度分析

使用Go語言對SM2算法進行實現,并使用Go語言內置的pprof性能分析工具,對壓力測試進行性能分析,得到SM2算法中各種運算及函數的運算耗時占比,如表1所示。

表1 SM2算法運行耗時占比

在SM2算法中,主要進行了Hash函數運算、模逆運算、點乘運算和橢圓點計算,將本文提出的改進SM2算法與原始SM2算法中的各種運算進行對比,具體情況如表2所示。

表2 運算復雜度對比

從表2中可以看出,改進后的SM2算法不含有模逆運算,并且減少了2次點乘運算。從表1中也可以得知,模逆運算是耗時占比最多,復雜度最高的運算,因此,降低模逆運算的次數,使改進SM2算法運算復雜度低于原SM2算法。

3 SM3算法的改進及對比分析

3.1 SM3算法

SM3算法是我國提出的一種迭代Hash算法,其輸入和輸出都是比特串。SM3算法的輸出長度為256比特,消息分組為512比特,采用MD結構。對于長度小于264比特的消息X,SM3算法經過填充和迭代壓縮,生成雜湊值,雜湊值長度為256比特。具體算法描述如下[14]。

SM3算法中定義了布爾函數FFj(X,Y,Z)、GGj(X,Y,Z)和置換函數P0(X,Y,Z)、P1(X,Y,Z),具體定義如下。

P0(X)=X⊕(X<<<9)⊕(X<<<17)

P1(X)=X⊕(X<<<15)⊕(X<<<23)

上述式子中的X、Y、Z均為長度為32的比特串。

對于一個長度為l比特的消息,首先將比特“1”添加到消息的末尾,再添加k個“0”,其中k是滿足l+1+k≡448 mod 512的最小非負整數,然后添加一個64位的長度l二進制比特串。經過這樣填充后的消息的長度就是512的倍數。

將填充后的消息按每512比特的長度為一組進行分組,并對分組后的消息進行編號,得到B(0)B(1)…B(n-1),其中n=(l+k+65)÷512。對分組后的已填充消息進行如下方式的迭代:

FORi=0 TOn-1

V(i+1)=CF(V(i),B(i))

END FOR

其中,CF是壓縮函數,V(0)是初始值IV,長度為256比特。最后一次迭代后的結果為V(n)。

FORj=16 TO 67

Wj←P1(Wj-16⊕Wj-9⊕(Wj-3<<<15))⊕

(Wj-13<<<7)⊕Wj-6

END FOR

FORj=0TO63

END FOR

壓縮函數的計算過程如下:

ABCDEFGH←V(i)

FORj=0 TO 63

SS1←((A<<<12)+E+(Tj<<

SS2←SS1⊕(A<<<12)

TT2←GGj(E,F,G)+H+SS1+Wj

D←C

C←B<<<9

B←A

A←TT1

H←G

G←F<<<19

F←E

E←P0(TT2)

END FOR

V(i+1)←ABCDEFGH⊕V(i)

其中,A,B,C,D,E,F,G,H是中間變量,SS1,SS2,TT1,TT2是字寄存器。且字的存儲方式為大端存儲。最后輸出的256比特雜湊值為y=ABCDEFGH。

3.2 改進的SM3算法

SM3算法中,壓縮函數主要過程是中間變量的賦值、移位運算以及寄存器中數據的讀寫,且使用了多個中間變量與多個寄存器,讀寫寄存器中的數據占用了大量的運算時間。因此可以通過優化中間變量、減少對寄存器中的數據讀寫次數的方式來達到降低壓縮函數運算時間的目的,使用此方法進行改進的同時也不會破壞原有壓縮函數結構,保證了結果仍然可靠,同時在對消息進行擴展時也可以進行一些優化改進。具體改進策略如下:

首先將消息分組B(i)劃分為16個字:W0,W1,…,W15。并將前4個字存儲在中間變量W0,W1,W2,W3中,用于壓縮函數的第一次計算。壓縮函數中的SS1,SS2,TT1,TT2都是中間變量,因此需要減少這些中間變量的使用。優化方案主要集中在壓縮函數循環體的前四步操作中,剩余相同部分不再給出。同時結合消息擴展部分的優化方案,在前文SM3算法描述的基礎上,壓縮函數進行優化改進后的描述如下:

ABCDEFGH←V(i)

FORj=0 TO 63

TT1←FFj(A,B,C)+D+((((A<<<12)+E+

(Tj<<

ifj>16

TT2←GGj(E,F,G)+H+(((A<<<12)+E+

(Tj<<

(Wj-3<<<15))⊕(Wj-13<<<7)⊕Wj-6

else

TT2←GGj(E,F,G)+H+(((A<<<12)+E+

(Tj<<

D←C

C←B<<<9

……

使用Go語言內置的pprof性能分析工具,對壓力測試進行性能分析。測試結束后使用top命令可以得到前十個運算耗時以及占用資源最多的函數,將結果整理成表格,如表3所示。

表3 改進SM3算法效果對比

與原始SM3算法運行情況對比,總用時減少了約25%,其中壓縮函數效率明顯提高,提高了約30%,證明優化改進方案能夠有效提高SM3算法的運行效率。

4 改進國密算法在區塊鏈中的應用

本文在改進SM2算法的基礎上使用Hyperledger Fabirc平臺,針對導彈業務數據存儲場景進行區塊鏈應用開發。使用Fabric平臺進行開發時,在其加密組件BCCSP中對使用的改進算法進行實現,本文采用Go語言對改進SM2和SM3算法進行實現。

在邏輯層開發上,Fabric中使用到了智能合約機制。智能合約是一段運行于沙盒環境下的代碼,可以保證系統的運行邏輯不被篡改。開發Fabric區塊鏈應用時,最重要的就是進行智能合約的編寫。編寫的系統智能合約中的函數如表4所示。

表4 系統智能合約中的部分函數

圖2是該系統完成數據錄入后進行數字簽名界面。

圖2 系統界面

5 結論

針對重要數據的記錄與存儲以及區塊鏈應用中加密算法國產化問題,對SM2數字簽名算法與SM3密碼雜湊算法進行了改進,降低了SM2算法的運算復雜度,將SM3算法運行效率提高約25%;采用本文的改進方案使用Hyperledger Fabric開發平臺針對部隊導彈數據存儲、記錄場景,開發了基于區塊鏈的導彈數據管理系統,證明了方案的可行性,為區塊鏈技術在部隊中的應用提供了理論與實踐基礎。

主站蜘蛛池模板: 一级毛片免费观看久| 日韩精品资源| 中字无码av在线电影| 国产午夜人做人免费视频中文 | 在线观看热码亚洲av每日更新| 国产成人乱无码视频| 国内自拍久第一页| 亚洲精品视频免费| 久久人人妻人人爽人人卡片av| 97国产精品视频自在拍| 亚洲男人的天堂久久香蕉网| 97视频免费看| 国产美女视频黄a视频全免费网站| 欧美另类图片视频无弹跳第一页| 久久成人18免费| 国产精品美女网站| 免费一级毛片完整版在线看| 久久青草热| 真人免费一级毛片一区二区 | 久久99国产精品成人欧美| 欧美成人午夜影院| 囯产av无码片毛片一级| 成人另类稀缺在线观看| 操操操综合网| 久热精品免费| 欧美日韩中文字幕在线| 一级毛片在线播放免费观看| 波多野结衣中文字幕久久| 色天天综合久久久久综合片| 伊人色天堂| 日本不卡在线视频| 亚洲成人免费看| 亚洲69视频| 日本午夜影院| 日韩毛片免费观看| 亚洲人成网站在线播放2019| 国产 在线视频无码| 韩国福利一区| 99视频只有精品| 亚洲精品片911| 成人av专区精品无码国产 | 国产精品白浆在线播放| 2022国产无码在线| 毛片网站在线看| 国产免费网址| 免费啪啪网址| 国产拍揄自揄精品视频网站| AV天堂资源福利在线观看| 久久国产乱子伦视频无卡顿| 2021国产在线视频| 久久人妻系列无码一区| 国产极品美女在线| 制服丝袜 91视频| 久久91精品牛牛| 99尹人香蕉国产免费天天拍| 六月婷婷综合| 中国国产高清免费AV片| 国产高清又黄又嫩的免费视频网站| 成人在线亚洲| 为你提供最新久久精品久久综合| 色播五月婷婷| 99这里精品| 波多野结衣亚洲一区| 无码不卡的中文字幕视频| 国产男女免费完整版视频| 欧洲一区二区三区无码| 亚洲中文字幕手机在线第一页| 中文字幕2区| 黄色成年视频| 亚洲欧美精品日韩欧美| 一级全免费视频播放| 日本一区高清| 国产成年女人特黄特色大片免费| 国精品91人妻无码一区二区三区| 欧美综合成人| 国产精品香蕉| 9丨情侣偷在线精品国产| 综合色亚洲| 欧洲日本亚洲中文字幕| 亚洲无码37.| 亚洲国产综合自在线另类| 特级做a爰片毛片免费69|