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

基于SM2國密算法優化的區塊鏈設計

2021-03-23 09:12:38楊宏志袁凌云
計算機工程與設計 2021年3期
關鍵詞:優化系統

楊宏志,袁凌云,2+,王 舒

(1.云南師范大學 民族教育信息化教育部重點實驗室,云南 昆明 650500;2.云南師范大學 信息學院,云南 昆明 650500)

0 引 言

區塊鏈是比特幣的實質技術,首次出現在由中本聰在2008年發表的《比特幣:一種點對點的電子現金系統》中,是當前數據分布式存儲、共識機制、P2P傳輸、密碼算法等技術互為一體的計算機應用[1]。區塊鏈是一個分布式的數據庫,其本質是一種去中心化的信任機制、利用共識算法進行數據產生和更新、利用加密算法保護數據安全、通過智能合約對數據進行操縱[2],具有去中心化、防止篡改、留痕溯源、高效透明等特點。由于網絡上存在篡改數據問題,其中會涉及到個人隱私,若有不法分子入侵網站,篡改用戶個人數據或資產歸屬,將造成重大損失,而區塊鏈的不可篡改性正好為其提供了新的解決思路。從某種程度上說,區塊鏈能夠在互聯網中充當信任的基石,因為當目前的信息網絡全部采用基于區塊鏈技術時,所有人在網絡上的任何一個操作都會被記載,而且不會改變,建立起信用體系,就能解決數據造假的問題。因此,基于區塊鏈的技術解決方案,它實際上是一種新的分布式數據庫,其使用密碼學手段和多種數學算法提供分布式總賬系統,具有優秀的容災能力,確保數據不會泄露和丟失。區塊鏈技術中使用了許多密碼學算法和加密技術來確保鏈上信息的安全,同時,由于區塊鏈技術中使用的密碼算法存在后門安全隱患,引起社會各界的廣泛關注,更是成為眾多專家學者研究的重點。例如,汪曉睿等[3]指出了當前區塊鏈技術存在的一些安全問題,并為實際應用闡明了方法;Jingyu Feng等[4]提出了一種新的共識算法,提高了區塊鏈系統的運行效率;Om Pal等[5]針對當前區塊鏈的PKI公鑰基礎設施做出了改進,提出了用于安全組通信的組密鑰管理方案;Zheng Wenbo等[6]提出了一種基于生成對抗網絡的密鑰共享技術,以解決區塊鏈中存在的安全與通信效率問題。因此,如何解決區塊鏈技術密碼算法的安全隱患成為當前區塊鏈技術在實際應用快速推廣中面臨的重大挑戰。

國家商用密碼管理辦公室于2010年12月推出了《SM2橢圓曲線公鑰密碼算法》,讓SM2算法迅速成為眾多科研人員的研究重點并加速其在實際生產生活中的應用。針對區塊鏈技術面臨的密碼算法安全隱患,有學者提出采用國產密碼算法來替換區塊鏈中的密碼算法,從而解除其潛在的后門安全隱患問題。然而,由于涉及橢圓曲線的計算繁雜性,當前算法的時間復雜度還很高。當SM2國密算法被應用在一些具有特殊交易背景之下,交易速率是制約交易效率的最主要因素,所以優化SM2算法中交易的流程,縮短其交易時間非常必要。侯紅霞等提出了一種安全的兩方協作SM2數字簽名算法,具有交互次數少、協作簽名效率高等優勢[7];宋靖文等設計了一種改進SM2授權信息生成方式的代理簽名方案,在驗證效率上提高了約26%[8];張盛仕對于SM2硬件實現上重點研究和優化了國密算法SM2密碼加速引擎,最終成功加速SM2中點乘這一核心運算[9]。通過將優化后的SM2國密算法集成到區塊鏈里,可以使得整個區塊鏈系統在運行時更加穩定和安全可控。

因此,本文在現有研究的基礎上,針對SM2算法中較為復雜的橢圓曲線計算以及較高時間復雜度的性能瓶頸,在不影響算法本身安全性的前提下,提出基于已知隨機數值序列優化的SM2改進算法,并基于優化SM2算法進行區塊鏈的設計與改造,以此提升區塊鏈的效率。

1 SM2算法與優化

1.1 SM2橢圓曲線數字簽名算法

國家密碼管理局推薦使用素數域256位橢圓曲線,其曲線方程為y2=x3+ax+b,通過指定a、b系數,確定了唯一的標準曲線。其中橢圓曲線的系統參數為公開可見的,系統本身的安全特性并不依靠對系統參數的加密。國家密碼管理局不規定橢圓曲線系統參數的生成方法,但規定了系統參數的驗證方法。在SM2國密算法的數字簽名流程中,其定義為:設需要簽名的信息為M,為了得到信息M的數字簽名(r,s),用戶需簽名執行以下操作步驟:

步驟3 產生一個隨機數k∈[1,n-1];

步驟4 計算橢圓曲線點 (x1,y1)=[k]G;

步驟5 計算r=(e+x1)modn,如果r=0或r+k=n,返回步驟3;

步驟6 計算s=((1+dA)-1·(k-r·dA))modn;如果s=0,返回步驟3;

步驟7 得到該信息數字簽名(r,s)。

在得到數字簽名后,為了檢驗接收到的信息M′和其相應的數字簽名 (r′,s′),用戶需要驗證執行以下操作步驟:

步驟1 驗證r′∈[1,n-1] 是否成立,如果不成立則檢驗失敗;

步驟2 驗證s′∈[1,n-1] 是否成立,如果不成立則檢驗失敗;

步驟5 將r′、s′的數據類型轉換為整數,計算t=(r′+s′)modn,如果t=0,則檢驗失敗;

步驟6 計算橢圓曲線點 (x′1,y′1)=[s′]G+[t]PA;

步驟7 將x′1的數據類型轉換為整數,計算R=(e′+x′1)modn,驗證R=r′ 是否成立,如果成立則驗證通過,否則檢驗失敗。

1.2 基于隨機數序列優化的SM2算法

在前一小節敘述SM2國密算法加密部分,因為涉及到更加復雜的橢圓曲線點的計算,原始SM2國密算法在加密流程中具有很高的時間復雜度,從而使得整個加密流程需要消耗很長時間。另外,當SM2國密算法被應用在一些具有特殊交易背景之下時,交易速率是制約交易效率的最主要因素,所以優化SM2算法中交易的流程,縮短其交易時間非常必要。故而目前需要一種可以有效降低時間復雜度的國密SM2算法。

針對SM2算法的優化部分包含兩部分。其一,采用已知的隨機數序列替換了原來的隨機數k值,其中已知的隨機數序列里全部k值都符合初始條件 (k∈[1,n-1]),并且設置前后兩次隨機數k值之差保持恒定不變的相互關系。其二,第一次加密與第二次加密的隨機數k值根據提前設置的相互關系,在第一次加密時,將加密流程里計算得出的第一橢圓曲線點坐標和第二橢圓曲線點坐標進行保存;在第二次加密時,使用第一次加密結束時保存的第一橢圓曲線點坐標和第二橢圓曲線點坐標,和提前設置好的第一次加密以及第二次加密的隨機數k值相互關系,完成本次加密流程的第一橢圓曲線點坐標和第二橢圓曲線點坐標的計算,最終完成本次加密過程。

本優化方法的特點在于:首先,每次進行加密處理時,先從隨機數序列中取出隨機數k值,該隨機數序列由多個k值短序列組合而成,并且每個隨機數短序列的第一個元素隨機生成;同時,每個隨機數短序列都是同樣的長度;最后,在各個隨機數短序列里,每兩個相鄰元素相減其差值均相同。具體的加密流程如圖1所示。

圖1 優化后的SM2算法加密流程

在圖1流程中,第一橢圓曲線點在數據加密與數據解密中只有一個信息變換的作用,在無法獲得私鑰時第一橢圓曲線點并不能夠提供任何關于第二橢圓曲線點以及上圖中C3的相關數據。因而,即便是獲得零散的或多個輸入信息加密后的第一橢圓曲線點,可能推斷出其它輸入信息加密后的第一橢圓曲線點值,也是毫無意義的。第二橢圓曲線點不會干擾到整個算法的安全特性,因為其是由下一步驟進行哈希算法運算確定的,盡管輸入信息有部分關聯,但是最后的結果是被打亂過的,此前的相互關系不會展現在最后的結果里,所以不能從得到的加密結果推測出有效信息,故算法自身的安全特性并不依賴于此。另外,利用提前設置的相鄰兩次隨機數k值之差恒定為整數b,則相鄰兩次C1的坐標差b·G(G為橢圓曲線上的一個基點)可以作為累加數值提前保存,當每次加密時,使用前次留存的C1加上b·G,可得本次加密后的C1;同理,若相鄰兩次C1的坐標差為b·PB(PB為公鑰)作為累加數值提前保存,當每次加密時,使用前次留存的C2加上b·PB,可得本次加密后的C2。由此,在計算C1和C2這兩個橢圓曲線點時使用點加運算替換了原來算法中的點乘運算,使得算法的計算復雜度在整體上顯著降低。

1.3 SM2算法測試與分析

為了測試優化后的SM2國密算法的性能,本文實現了GO版本的SM2算法,同時采用Golang自帶的PPROF性能測試研究與數據剖析工具,對算法進行壓力測試并完成性能分析。本測試在實驗室內部服務器上進行,硬件配置與實驗環境詳見表1。在壓力測試時,設定運算加密流程的次數為50次,并同時測試原始的SM2國密算法,其相應橢圓曲線的系統參數均為國家密碼管理局推薦使用的規范數值,而且測試所使用的需要加密的信息和相關密鑰均為不變數值。對實驗結果進行分析表明,原始SM2國密算法需消耗545 ms,經過改進處理后的SM2國密算法需消耗160 ms。故本改進處理措施能夠在保證算法自身安全特性的前提之下,使用之前加密流程里獲得的中間運算數據,使得該算法在運算時顯著降低了時間復雜度,加密消耗的時間進一步縮短,提高了整個算法的運算效率,達到預期效果。

表1 硬件配置與實驗環境

2 區塊鏈設計

在當今科技時代中,區塊鏈技術的集成應用在新的技術革新和產業變革中起著重要作用[10]。由于密碼算法在區塊鏈系統中起著非常重要的作用,并且經常有國際通用密碼算法傳出有后門、被破解的消息,是當下比較突出的安全隱患。因此,通過前一小節對國密SM2算法的分析與探討,同時考慮到目前區塊鏈技術在實際應用中面臨的一些突出安全問題,本文在經過改進優化之后的SM2國密算法基礎上擬采用超級賬本(Hyperledger Fabirc)平臺,來重新完成區塊鏈的設計。在使用Fabric平臺進行開發時,在其加密組件BCCSP(blockchain cryptographic service provider)中對使用的優化算法進行實現,它可用于提供相關加密與解密服務以及驗證數字簽名等功能。BCCSP利用Fabric-CA以滿足部分系統核心的運算功能以及在客戶端層面對軟件開發工具包加密算法的需求。用以滿足需求的相關重要功能都分布在中心內,其中包含共識機制以及節點背書策略等。利用該加密組件,Hyperledger Fabric可以對內部所有的密碼算法包,通過插件的形式進行實現以及針對各種不同的規范標準、實現形式進行適配。本文使用GO語言實現了優化改進后的SM2國密算法,同時,通過Hyperledger Caliper性能測試工具,完成對原始區塊鏈以及優化后的區塊鏈性能測試。

2.1 基于SM2算法重建區塊鏈

對區塊鏈進行國密化改造的主要工作就是利用SM2國密算法來代替原來的ECDSA橢圓曲線簽名算法。為了完成在區塊鏈中實現SM2橢圓曲線公鑰密碼算法,需要利用對應密碼算法函數包里的橢圓曲線公鑰簽名算法標準,以完成對該算法的具體實現。該密碼算法的完成依賴于由區塊鏈加密服務提供者的源碼crypto包來進行實現,優化改進時按照相同的函數書寫規范對該算法進行實現,使其對其它函數的調用提供一套規范的API,其中包含規范的命名方式,相同的API功能和類似的調用方法。

(1)根據底層源代碼crypto包里的ecdsa文件的結構規范,確定SM2橢圓曲線密碼算法源代碼為sm2.go,同時聲明與實現對其它函數提供調用的API和相關的數據結構以及僅用于內部范圍調用的相關函數,其中包含基礎的變換函數和基礎塊操作。

(2)定義SM2公鑰與私鑰的結構體函數,其中定義的PublicKey為公鑰,定義的PrivateKey為私鑰。另外,公鑰是橢圓曲線上的一個點,私鑰是一個大數。密鑰對的結構體定義如圖2所示。

圖2 SM2公私鑰對數據結構

(3)根據SM2規范完成數字簽名與驗簽函數,數字簽名與驗簽函數的操作基本元素由底層源代碼math包里的big文件和crypto包里的elliptic文件完成在基礎素數域上的大數計算(加法、減法、模、模逆運算函數)和橢圓曲線上的計算(數乘、點乘運算函數),如圖3所示。在完成以上源代碼密碼函數包的相關國產密碼替換之后,將區塊鏈加密服務提供者里相關文件中引入的函數包替換為以上重新設計后的密碼函數包,同時對相關密碼算法的調用方式進行更改,經過二次編譯成功后完成區塊鏈設計。

圖3 數字簽名與驗簽函數重構

2.2 區塊鏈測試

由于SM2算法中涉及到復雜的橢圓曲線計算,使得整個加密流程的時間復雜度較高,因此,優化后的SM2國密算法將原來算法中加密過程里的點乘操作替換為了點加操作,大幅降低了算法的計算復雜度,縮短了加密時間,從而提高了整個算法的運算效率,為接下來的算法與區塊鏈系統集成以及實驗測試打下扎實的理論基礎。

Hyperledger Caliper是由華為公司開發并貢獻給Linux基金會的一個十分便捷易用的區塊鏈性能基準測試工具,支持用戶使用預先定義好的用例以測試各種區塊鏈應用程序的性能,并獲得一組詳細的性能測試結果,其中包含交易延遲、系統吞吐量以及硬件資源使用情況等屬性[11]。本文采用該工具完成所設計的區塊鏈與原始區塊鏈的測試與對比。

2.2.1 性能測試與對比

使用Hyperledger Caliper測試系統原型性能,測試環境為Google標準非共享型實例云服務器,Intel Skylake CPU平臺,2vCPU,4 GB內存,Ubuntu 16.04.6 LTS (GNU/Linux 4.15.0-1052-gcp x86_64),20 GB標準永久性磁盤。專門針對區塊鏈系統的核心功能“用戶間轉賬”進行測試,同時設計相應的基準測試用例與區塊鏈設置文檔,分兩次各進行5輪測試。表2是原始區塊鏈系統的性能測試結果,表3是優化的SM2國密算法區塊鏈系統性能測試結果。

從優化后的算法集成到區塊鏈系統中的性能測試結果可以看出,當基準測試文件將交易發送量限制為10 000 tps,并指定交易發送時的速率控制器為1000 tps的勻速控制器時,優化的SM2國密算法區塊鏈系統比原始區塊鏈系統在發送速率上提高約2.6%,但是從整體上看,發送速率相對太慢造成在實際應用中還存在一定不足,是目前限制區塊鏈大規模應用的一個重要問題,也是當前區塊鏈技術面臨的主要挑戰之一和日后研究的重點。另外,在系統延遲方面,優化后的區塊鏈系統在最大延遲上降低了約22.9%,在最小延遲上降低了約48.1%,平均延遲降低約56.6%,交易吞吐量提高約33.9%,明顯減少整個區塊鏈系統的響應和處理時間,提高了區塊鏈系統的并發事務處理能力。

表2 Hyperledger Fabric區塊鏈系統性能測試結果

表3 Hyperledger Fabric國密版區塊鏈系統性能測試結果

2.2.2 平均內存消耗

圖4展示了兩種區塊鏈系統在平均內存方面的資源消耗情況。在系統內存資源消耗方面,從圖4中可以看出優化的區塊鏈系統曲線始終處于原始區塊鏈系統曲線下方,表示消耗的內存更少,優化的SM2國密算法區塊鏈系統比原始區塊鏈系統在平均內存消耗上略低1.4%,由于占用內存相差不大且消耗量較小,故而可以輕松運行區塊鏈系統。

圖4 兩種區塊鏈系統平均內存消耗情況

2.2.3 平均CPU消耗

圖5展示了兩種區塊鏈系統在平均內存方面的資源消耗情況。在系統CPU資源消耗方面,從圖5中可以看出優化的區塊鏈系統曲線處于原始區塊鏈系統曲線上方,表示消耗的CPU資源更多,在平均CPU消耗上提高了約40.5%,因此在良好的硬件條件下,可以更好支持區塊鏈系統高效運行。

圖5 兩種區塊鏈系統平均CPU消耗情況

從總體趨勢上看,優化的SM2國密算法區塊鏈系統的性能要明顯優于原始的區塊鏈系統,僅僅只在CPU資源消耗上稍有提升,這跟內部采用優化算法的加解密步驟有關,并在不影響算法安全性的前提下,使得整個系統的運行效率穩步提高,這從實驗數據上驗證了優化的SM2國密算法區塊鏈系統的優越性。

3 結束語

基于對區塊鏈技術的研究以及當前國家對密碼安全的戰略考量,本文對國密SM2橢圓曲線公鑰密碼算法進行了效率上的改進,在不影響算法本身安全性的前提下,降低了SM2算法的時間復雜度,并且加快了算法的運算時間,提升了運行效率。同時,將優化后的國密算法集成到了Hyperledger Fabric平臺上,并通過Hyperledger Caliper壓測工具完成了對原始區塊鏈以及優化的國密算法區塊鏈系統性能測試。最后,測試數據說明本文為區塊鏈所設計的優化改進方案切實可行,并為今后區塊鏈技術的研究和應用提供了理論與實踐基礎。

猜你喜歡
優化系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
超限高層建筑結構設計與優化思考
房地產導刊(2022年5期)2022-06-01 06:20:14
民用建筑防煙排煙設計優化探討
關于優化消防安全告知承諾的一些思考
一道優化題的幾何解法
WJ-700無人機系統
由“形”啟“數”優化運算——以2021年解析幾何高考題為例
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
主站蜘蛛池模板: 国产精品林美惠子在线播放| 国产人碰人摸人爱免费视频| 国产精品九九视频| 国产亚洲欧美在线人成aaaa| 伊人久久青草青青综合| 99国产精品免费观看视频| 91久久性奴调教国产免费| 在线国产毛片| 亚洲精品男人天堂| 亚洲精品图区| 高潮爽到爆的喷水女主播视频| 九月婷婷亚洲综合在线| 国内精品久久人妻无码大片高| 日韩在线成年视频人网站观看| 国产精品视频白浆免费视频| 亚洲天堂久久新| 国产不卡国语在线| 天堂中文在线资源| 久久中文字幕av不卡一区二区| 丝袜久久剧情精品国产| 久久无码av一区二区三区| 日韩午夜福利在线观看| 亚洲AV无码乱码在线观看代蜜桃 | 日韩色图区| 伊人久综合| 99久久精品国产自免费| 国产熟女一级毛片| 天天干天天色综合网| 午夜视频在线观看区二区| 国产精品无码久久久久AV| 老司机久久99久久精品播放| 免费看久久精品99| 国产日韩精品欧美一区灰| 91娇喘视频| 久久久波多野结衣av一区二区| 亚洲欧美另类久久久精品播放的| 黄色三级毛片网站| 久久久久久尹人网香蕉| 欧美午夜精品| 国产乱人伦精品一区二区| 午夜爽爽视频| 国产国模一区二区三区四区| 色噜噜狠狠色综合网图区| 日韩区欧美区| 欧美一区二区人人喊爽| 亚洲无码四虎黄色网站| 成人在线第一页| 国产欧美日韩视频一区二区三区| 久久午夜夜伦鲁鲁片无码免费| 日本道综合一本久久久88| 青青极品在线| 九九热视频精品在线| 在线播放国产99re| 99热这里只有精品免费国产| 亚洲国产精品VA在线看黑人| 国产精品hd在线播放| 91精品国产福利| 午夜视频www| 日韩一级二级三级| 97国产一区二区精品久久呦| 国产精品刺激对白在线| 尤物特级无码毛片免费| 国产精品美女在线| 国产99精品久久| 国产亚洲精品自在线| 国产色爱av资源综合区| 国产精品自拍露脸视频| WWW丫丫国产成人精品| 亚洲欧美在线精品一区二区| 久久国产精品夜色| 亚洲欧美天堂网| 中国特黄美女一级视频| 国产成人艳妇AA视频在线| 丝袜国产一区| 国产亚洲视频免费播放| 欧美精品综合视频一区二区| 狠狠色香婷婷久久亚洲精品| 精品伊人久久久香线蕉 | 午夜国产大片免费观看| 视频二区中文无码| 婷婷综合色| 亚洲天堂网在线播放|