唐衛(wèi)華
(深圳鏈式資訊有限公司,廣東 深圳 518048)
區(qū)塊鏈技術的優(yōu)勢不僅僅在于分布式數據存儲,而且還融合了加密算法、共識機制,在提高數據存儲容量的同時也能保證數據的存儲安全。由此可見,將區(qū)塊鏈技術應用于數據隱私保護和數據共享保護存在技術上的可行性。在云存儲模式下,用戶將數據上傳至云服務器后,由于用戶無法完全信任云服務提供商,因此需要對數據進行加密。而等到用戶需要使用數據或共享數據時,又必須提前將加密數據進行解密。這種情況下數據的安全性和操作的簡易性無法得到兼顧,給用戶帶來了不好的體驗?;趨^(qū)塊鏈的數據隱私與數據共享保護技術,可以實現快速的加密解密,而被加密的數據只能通過保留在用戶處的私鑰才能解密,這樣既可以保證數據隱私和共享安全,同時又支持用戶隨時訪問數據,優(yōu)化了用戶的使用體驗。
假設第三方可信CA(證書頒發(fā)機構)提供了門限NTRU 密碼系統(tǒng)(p,t),其中p 代表CA 以及用戶數量,t表示參與解密的最少用戶數量。設該系統(tǒng)中對所有用戶公開的公鑰(pk)為h,發(fā)放給所有用戶的私鑰(sk)為i,數據隱私保護實現方法為:
首先,由CA 向每一名用戶發(fā)放一個密鑰,用戶可使用該密鑰對需要保護的數據進行加密。加密后的數據,至少需要t 個用戶才能對數據進行解密。同時,云服務器支持數據的上傳和下載,并同步生成具有防篡改性的哈希值(Hash),每一組哈希值對應一個數字證書。
其次,云服務器將被加密的數據寫入到區(qū)塊鏈中,實現加密數據的分布式存儲。當兩名及以上的用戶希望通過區(qū)塊鏈實現數據交換與共享時,利用NTRU 密碼算法對共享數據進行加密,保證數據傳輸的安全性。其他用戶接收到經過加密處理后的數據后,可以加密并獲得信息。解密時,同樣需要不少于t個用戶一起解密。
該系統(tǒng)主要由4 個模塊組成,分別是用戶層、數據層、云存儲層和區(qū)塊鏈層。各模塊的功能如下:
(1) 用戶層提供的人機交互界面,可以支持用戶手動對數據進行加密、解密處理。同時,不同用戶之間也可以交換數據實現共享。用戶層與數據層之間可通過工業(yè)數據總線的方式連接并實現數據的傳遞;此外,用戶層也可跨越數據層、云存儲層直接與區(qū)塊樓層連接,進行數據的交易和讀取。
(2) 數據層用于存儲用戶想要保密和共享的數據。對于支持共享的數據,所有用戶可以共同維護數據安全。其實現方式為:使用NTRU 密碼算法將共享數據進行加密處理,然后將其上傳到云端,實現共享。由于共享后的數據為所有用戶共有,因此數據的保密也需要全體用戶的參與。當需要對加密數據進行解密時,必須由該系統(tǒng)內所有用戶同時執(zhí)行解密操作,從而避免了單個用戶篡改數據的行為,切實保障了共享數據的安全性[1]。
(3) 云存儲層主要存放被用戶加密的數據。這些數據即可上傳至數據層,方便用戶瀏覽和調用;同時也能下載到區(qū)塊鏈中進行分布式保存。
(4) 區(qū)塊鏈層采用分布式協議,主要用于存儲從云端下載下來的數據。由于區(qū)塊鏈具有不可偽造、不可篡改的特性,因此一旦數據被寫入區(qū)塊鏈,就無法改變和移除,從而保證了數據的隱私性和安全性。當然,用戶可以與區(qū)塊鏈交易從而調用數據,但是獲得的數據為被加密狀態(tài),需要經過所有用戶的同意才能解密、使用。
1.3.1 密鑰生成性能驗證
本次實驗使用兼容X9.98 協議的密鑰,并選擇了3 個不同安全級別的NTRU 密鑰, 分別是NTRU_EES401EP2(公鑰長度557Byte、私鑰長度607Byte)、NTRU_EES439EP1(公鑰長度609Byte、私鑰長 度 659Byte)、NTRU_EES593EP1 ( 公 鑰 長 度821Byte、私鑰長度891Byte)。在NTRU 密碼算法中,公鑰用h 表示,私鑰以(f,fp)集合形式表示。實驗中通過調用NTRU 密碼函數庫,可以獲得與3 種公鑰對應的密碼對,即密鑰。密鑰生成時間,見圖1。
結合圖1 可知,基于NTRU 算法生成密鑰的3 種公鑰,長度為557 Byte 的公鑰只需要9.3 s 即可生成密鑰;而長度為821 Byte 的公鑰則需要14.2 s 生成密鑰。由此可見,隨著公鑰長度的增加,生成密鑰所需時間也會相應的增加[2]。
圖1 NTRU 密鑰生成時間
1.3.2 加密性能驗證
實驗中仍然選擇長度分別為557 Byte、609 Byte和821 Byte 的3 種公鑰,分別開展加密與解密實驗,并統(tǒng)計加密、加密的時間,實驗結果,見圖2。
圖2 NTRU 加解密時間
結合圖2 可知,整體上來看基于NTRU 算法的加密、解密速度較快,基本上維持在了10 ms 以內。其中,隨著公鑰長度的增加,加密時間也相應增加,呈良好的線性變化;而公鑰長度增加并不會對NTRU 解密時間產生明顯的影響。長度為557 Byte 的公鑰完成解密,用時為2 ms;長度為609 Byte 的公鑰完成解密為2.4 ms;長度為821 Byte 的公鑰完成解密為2.9 s,變化不明顯。整體來看,本文設計的基于NTRU 算法的公鑰密碼體制具有較高的效率,可以快速實現加密、解密,滿足了用戶對數據進行加密保護和加密使用的需求[3]。
要想實現數據共享,必然伴隨著數據在網絡間的傳輸。而網絡的開放性很容易使得數據傳輸過程中被第三方惡意攔截,從而導致數據面臨泄露、丟失的風險。為避免這一問題,設計了一種基于區(qū)塊鏈的數據共享保護系統(tǒng),該系統(tǒng)主要包括安全云、區(qū)塊鏈、傳感器所有者和第三方數據請求者4 部分,其結構組成,見圖3。
圖3 基于區(qū)塊鏈的數據共享保護模型
該系統(tǒng)的運行流程為:
(1) 傳感器所有者通過啟動程序或操作按鍵的方式,使傳感器從待機狀態(tài)變位激活狀態(tài),在讀取智能合約信息后將其注冊到區(qū)塊鏈上。
(2) 在傳感器被激活后,第三方數據請求者同步向傳感器發(fā)送一個訪問請求,用于獲取數據的類型和要求。
(3) 訪問請求獲得許可后,準備發(fā)送數據。數據發(fā)送前,安全云服務會對該數據進行過濾處理,保證數據已經被加密。
(4) 傳感器所有者在區(qū)塊鏈上對密鑰進行更新,準備接收數據。
(5) 數據正常接收后,根據用戶的數據保密需要,使用密鑰對數據進行代理重簽密。重簽密后的數據被上傳至云服務器,在合適的位置保存。
(6) 安全云將數據的密鑰、存儲位置等信息發(fā)送給第三方數據請求者。后期可以基于智能合約和密鑰,對存儲在云服務器上的加密數據進行解密和下載[4]。
基于區(qū)塊鏈技術的代理重加密,會提供配對的公鑰和私鑰。其中,密鑰的持有者可以使用該密鑰對任意一段數據進行數字簽名。這樣既可以實現對數據的加密處理,同時也能使用數字簽名來驗證區(qū)塊鏈上提交的交易,從而避免第三方假冒密鑰持有者非法獲取數據。在部署智能合約時,公鑰PB被上傳到區(qū)塊鏈上。此時存在以下關系:
而重加密密鑰KBC則經過傳感器由PB導出,再基于智能合約與云服務器實現共享。分布式存儲在區(qū)塊鏈上的數據,用以太網對重加密密鑰進行Hsah 和簽名。操作方式為:
(1) KBC=H(meta|sPB)+ H(meta|sPC)
(2) SID<-H(KBC)
云服務器通過重加密密鑰將數據轉化成為密文,并上傳到云端進行存儲。經過加密處理后的數據可以與代理服務器共享。在代理服務器上使用私鑰SID可以進行驗證,并在驗證通過后進行解密。
為驗證本文設計的數據共享保護系統(tǒng)的應用效果,以傳統(tǒng)的數據加密保護方式為參照,設計了對比實驗。兩種方案的計算成本,見表1。
表1 2 種方案的計算成本對比
表1 中,M 表示G1中的點乘計算量,P 表示配對操作計算量。另外對2 種方案的密文長度和安全性進行了比較,見表2。
表2 2種方案安全性和密文長度對比
表2 中,“√”為當前方案滿足安全屬性,同理“×”為不滿足安全屬性。結合上表可知,傳統(tǒng)方案不滿足IND_CCA2 的安全性,而本文設計的方案可以同時滿足IND-CCA2 和EUF-CMA 安全要求。密文長度方面,本文設計系統(tǒng)的密文長度短。在仿真實驗中,傳統(tǒng)方案解密用時77.45 ms,而本文設計方案解密用時為53.37 ms,解密速度更快[5]。
在大數據時代,數據隱私保護和共享保護的要求進一步提升。而區(qū)塊鏈的不可篡改性、去中心化等特點,在保障數據安全方面發(fā)揮了獨特優(yōu)勢。因此將區(qū)塊鏈技術應用到數據隱私保護和數據共享保護領域是可行的。本文提供的一種基于NTRU 密碼算法進行數據保護,同時結合區(qū)塊鏈技術進行數據加密、解密處理,既可以滿足用戶對重要數據的保密存儲要求,同時又能方便、快速地完成加密,為數據的共享利用提供了便利,實用效果良好。