仝秦瑋 李潔 王潔 胡心森 胡凱



摘 ? 要:大數據的發展使得人們越來越注重數據的價值,傳統數據交易中數據不加密或采用對稱方式加密。這使得數據保護、用戶隱私與使用效率不可兼得。文章設計了一種基于DGHV適應智能合約的同態加密方法,使得密文可以直接進行計算,從而保護交易雙方的隱私與安全。該合約可以實現同態布爾邏輯值計算、同態數值比較計算、同態長整數計算。之后給出了合同使用場景。經證明,該方法可以有效的保護數據的安全,并且可以高效的交易布爾型或整型數據。
關鍵詞:區塊鏈;智能合約;全同態加密;DGHV
中圖分類號: TP311 ? ? ? ? ?文獻標識碼:A
Abstract: The development of big data makes people pay more attention to the value of data. Data in traditional data transactions is not encrypted or in symmetric encryption way. This makes data protection, user privacy, and efficiency incompatible. This paper designs a homomorphic encryption method based on DGHV using on smart contract, so that the cipher text can be directly calculated, thereby protecting the privacy and security of both parties to the transaction. The contract can implement homomorphic Boolean logic value calculation, homomorphic value comparison calculation, and homomorphic long integer calculation. The contract usage scenario is given after this article. It has been proved that this method can effectively protect the security of data, and can efficiently deal with Boolean or integer data.
Key words: block chain; smart contrast; full homomorphic encryption; DGHV
1 引言
當前大數據和云計算的發展使得人們越來越認識到數據的價值。大數據計算可以從數量龐大的低信息密度的數據中提取有效信息,而區塊鏈為數據的交易提供了便利,使得數據的交易可追溯。但是數據交易的過程中會出現新的問題,如數據泄露與個人權限管理等安全問題,或是數據交易中的隱私問題。
數據泄漏主要分為兩種,一是由于區塊鏈本身的特點,全節點中存儲著所有的數據,使得任何一個全節點都有可能泄露數據;二是數據傳輸的過程中存在著泄露的風險。個人權限管理是指如果用戶持有一個系統無法知曉的黑名單,如何使得名單中的用戶無法使用數據。還有買方不愿公開自己的交易內容等隱私問題。
這些問題都可以通過同態加密的方式得以解決。全同態加密(又叫隱私同態)的概念,最早由Rivest在1978年提出,他設想了一種加密方式,使得密文可以相互直接計算再解密,得到的結果與明文直接計算相同。之后全球的學者們陸續提出多種方法,但都有缺陷,如不能無限深度的計算、速度緩慢、明文空間有限等。
用戶在使用數據的時候往往會使用數據分析的結果,并不直接使用原始數據。所以采用同態加密的方式,僅僅交易數據的運算結果,而不交易原始數據,既保護了數據所有方的數據資產,從根本上杜絕了數據泄露的可能,也使得用戶的隱私得以保護。
因此本文在DGHV的基礎上,設計了一種有同態加密功能的智能合約。智能合約具有保證加密規則安全、預設規則提供效率、便于監管和便于追蹤等特點,這些特點可以更好的實現布爾值的同態運算、長整數的比較運算、長整數的加法與乘法運算。本文之后又給出了典型場景,并分析了本加密方法的安全性。
2 相關工作
2.1 數據上鏈加密
比特幣中最早的數據是不加密的,僅僅是通過哈希算法進行簽名,所以全節點可以得到任意賬戶的全部信息。這種設計有利于系統的去中心化、可追溯的性質,但也存在無法保護賬戶隱私的問題。而關于鏈上數據的保護,更多的是采用傳統加密算法,即哈希算法、對稱加密算法和非對稱加密算法等。類似CA系統,用非對稱加密技術包裹對稱密鑰,制成證書,用戶通過對稱密鑰訪問數據,這類方式在處理大量的數據,或是文字數據時是有效的,但在處理高頻使用的數字時就不如同態加密的方式高效。
而智能合約最初定義為一套以數字形式指定的承諾,包括合約參與方可以在上面執行這些承諾的協議。但是由于計算機的限制,很長時間沒有發展。在區塊鏈出現后改善了這一局面,智能合約借助區塊鏈的可信環境與共識基礎可以有效的執行其功能。以太坊為智能合約提供了條件,它的EVM虛擬機是一個完全獨立的沙盒,使得所有節點完全按照順序執行合約代碼,產生相同的結果以達成共識。虛擬機提供256位的棧,為256位的哈希算法與橢圓曲線算法提供方便[1]。智能合約方便了數據自定義上的使用。
2.2 同態加密
同態加密就是在不訪問數據的情況下委托對數據的處理,而現有的同態加密的技術特指對密文直接運算結果等價于對明文計算再加密。最早的同態加密算法由Sander和Tschudin在1998年提出,他們提出了整數域上的加法和乘法的同態加密機制;更重要的是,他們給出了同態加密的詳細要求,即整數域上的全同態加密等價于同時滿足加法全同態和乘法全同態。第一個真正意義上的全同態加密方法是Gentry在2009年基于理想格提出的[2]。Dijk等人在此基礎上,提出了更簡單、更易理解,但公鑰尺寸大的整數同態加密方法(DGHV)[3]。Coron進一步改進了這個方法,使得加密公鑰尺寸變小[4]。Zuowei Wu改造了傳統的DGHV方法,有限的減少了加密解密時間,但增加了噪音與復雜度[5]。林如磊等人在傳統DGHV的基礎上作修改,使得原本一次只能加解密1bit的方法增加到2bit[6],李子臣等人又在這個基礎上改進為加解密k bit[7],但這些改進都以犧牲原算法的抗噪聲能力作為代價。
3.4 長整數同態計算
傳統DGHV研究1位的整數同態加密,有學者將其改進為2位甚至k位,使其可以一次對多位進行同態計算。該方式在計算性能好,且對噪音不敏感時是一種良好的選擇。但在智能合約中,計算資源比較緊張,例如在Solidity中每一步計算都需要花費Gas;另外,多位的DGHV同態加密算法在計算正整數時優勢明顯,但在計算負數的時候沒有優勢。1位DGHV則可以通過模擬二進制補碼的計算原理進行整數域計算。
所以的問題又簡化為了一位數相乘和移位的問題。根據這一原理,大整數的同態乘法問題也可以得到解決,其過程為:
(1)計算所有的,其中,和是大整數A和B的位數,是每一位的密文;
(2)計算所有,其中,計算公式為(表示一個4位整數,每一位分別為):
(3)計算AB,在的末尾補充j個,相當于左移j位,并將對其進行大整數相加,得到A、B的積C,此時C為密文;
(4)對C的每一位解密,即計算,其中最后得到即為乘積的明文。
在大數同態乘法中,第1、2步中的乘法是相互獨立的,不會累積誤差,而第三步中,進行了次大整數的加法,每次加法最多累積次誤差,總計累積次1bit乘法的誤差。
4 合約應用過程
該合約可以適應的場景,如圖3所示。數據持有者首先將自己的數據上傳到區塊鏈網絡,定制隨機數種子,智能合約會將數據進行同態加密。當有人需要使用數據時,他需要向智能合約申請使用數據集X及使用函數F(X),智能合約會拆解F(X),直接計算出結果,返回給數據使用者。數據使用者收到的是密文數據,無法直接使用,此時向數據持有者申請解密。持有者會審查使用者的簽名獲得其區塊鏈中的賬號,審查該賬號是否有使用數據的權限,審查結束后驗證無誤,就會使用私鑰解密數據。值得注意的是,數據持有者并不知道X與F(X),也就是不知道數據使用了哪些數據也不知道如何使用的這些數據。這在一定程度上也保護了數據使用者的隱私與權益。不過區塊鏈網絡獲得了全部信息,仍可以將歷史信息記錄下來,不會影響到整個網絡的可溯源性。
5 安全性分析
本文從已知密文攻擊和已知明文兩種方式分析。假設攻擊方知道k個密文,試圖獲得私鑰,或明文。在數位較少的時候,可以直接猜想,有50%的正確率,此時非常不安全。本文需要采用大整數的方式,即增加密文的數量,此時直接猜想的收益會指數型下降。另外每加密一個數據都會重新計算隨機數,對于同樣的明文,會生成完全不同的密文,也保障了安全性。
在嘗試獲取明文失敗后,攻擊方試圖獲取私鑰,該獲取過程為:
可知,即使攻擊方知道密文對應的明文,在隨機數不被預測的情況下,c可近似的看作是p的倍數。破解私鑰的過程可以看作根據一些列近似p的倍數求p的過程。該過程就是近似最大公約數問題(approximate—GCD problem),而此問題就目前來看是無解的,所以該方法是安全的。
6 結束語
本文根據DGHV同態加密方法,設計了隨機數生成方法及可進行同態布爾邏輯值計算、同態數值比較計算、同態長整數計算的智能合約。該方法適應智能合約中計算資源相對緊張,要求全網共識的環境。同時,本文證明了方法的同態性與安全性,還提出了一種該方法應用的典型場景。
本文提出的智能合約還具備以下兩個特點:采用獨特的隨機數生成方式,該方式更適合智能合約場景中使用,并且熵源由數據持有方產生,計算量小,可全網同步;將原本只有一位的DGHV擴展至長整數范圍,使其更具備實用價值。
綜上所述,該智能合約和加密方法可以適應保護交易雙方的隱私與安全的要求。
基金項目:
1. 國家自然基金項目(項目編號:61672074,61672075);
2. 教育部中國移動基金(項目編號:MCM20180104);
3. 國家重點研發計劃(項目編號:2018YFB1402702)。
參考文獻
[1] 范吉立,李曉華,聶鐵錚, 等.區塊鏈系統中智能合約技術綜述[J].計算機科學,2019,46(11):1-10.
[2] Gentry, Craig. Fully Homomorphic Encryption Using Ideal Lattices [A]. Proceedings of the Forty-First Annual ACM Symposium on Theory of Computing [C].New York, NY, USA: Association for Computing Machinery,2009.169-178.
[3] M. Dijk, C. Gentry, S. Halevi, and V.Vaikuntanathan. Fully homomorphic encryption over the integers[J]. ?Applications of Cryptographic Techniques: Springer, Berlin, 2010, 24-43.
[4] J. S. Coron,A. Mandal,D. Naccache, M. Tibouchi. Fully homomorphic encryption over the integers with shorter public keys[A]. Proceedings of the 31st Conference on Advances[C]. 2011.
[5] Zuowei Wu and Taoshen Li. An Improved Fully Homomorphic Encryption Scheme under the Cloud Environment[A]. Proceedings of the 12th Chinese Conference on Computer Supported Cooperative Work and Social Computing[C]. New York, NY, USA Association for Computing Machinery, 2017, 251–252.
[6] 林如磊,王箭,杜賀.整數上的全同態加密方法的改進[J].計算機應用研究,2013,30(5):1515-1519.
[7] 李子臣,張峰娟,王培東.一種短密鑰高效全同態加密方法[J].計算機應用研究,2017,34(02):487-489+494.
[8] 朱鳳霞.基于區塊鏈技術的交易數據庫加密技術[J].電子設計工程,2020,28(3):93-97.
[9] 王化群,張帆,李甜,等.智能合約中的安全與隱私保護技術[J].南京郵電大學學報(自然科學版),2019,39(4):63-71.
[10] 葉俊,于天嬌,郭禎,荊兆星. 基于區塊鏈的可驗證醫療數據統計方案[J]. 網絡空間安全, 2019, 10(12): 1-.