仝秦瑋 李潔 王潔 胡心森 胡凱
摘 ? 要:大數(shù)據的發(fā)展使得人們越來越注重數(shù)據的價值,傳統(tǒng)數(shù)據交易中數(shù)據不加密或采用對稱方式加密。這使得數(shù)據保護、用戶隱私與使用效率不可兼得。文章設計了一種基于DGHV適應智能合約的同態(tài)加密方法,使得密文可以直接進行計算,從而保護交易雙方的隱私與安全。該合約可以實現(xiàn)同態(tài)布爾邏輯值計算、同態(tài)數(shù)值比較計算、同態(tài)長整數(shù)計算。之后給出了合同使用場景。經證明,該方法可以有效的保護數(shù)據的安全,并且可以高效的交易布爾型或整型數(shù)據。
關鍵詞:區(qū)塊鏈;智能合約;全同態(tài)加密;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 引言
當前大數(shù)據和云計算的發(fā)展使得人們越來越認識到數(shù)據的價值。大數(shù)據計算可以從數(shù)量龐大的低信息密度的數(shù)據中提取有效信息,而區(qū)塊鏈為數(shù)據的交易提供了便利,使得數(shù)據的交易可追溯。但是數(shù)據交易的過程中會出現(xiàn)新的問題,如數(shù)據泄露與個人權限管理等安全問題,或是數(shù)據交易中的隱私問題。
數(shù)據泄漏主要分為兩種,一是由于區(qū)塊鏈本身的特點,全節(jié)點中存儲著所有的數(shù)據,使得任何一個全節(jié)點都有可能泄露數(shù)據;二是數(shù)據傳輸?shù)倪^程中存在著泄露的風險。個人權限管理是指如果用戶持有一個系統(tǒng)無法知曉的黑名單,如何使得名單中的用戶無法使用數(shù)據。還有買方不愿公開自己的交易內容等隱私問題。
這些問題都可以通過同態(tài)加密的方式得以解決。全同態(tài)加密(又叫隱私同態(tài))的概念,最早由Rivest在1978年提出,他設想了一種加密方式,使得密文可以相互直接計算再解密,得到的結果與明文直接計算相同。之后全球的學者們陸續(xù)提出多種方法,但都有缺陷,如不能無限深度的計算、速度緩慢、明文空間有限等。
用戶在使用數(shù)據的時候往往會使用數(shù)據分析的結果,并不直接使用原始數(shù)據。所以采用同態(tài)加密的方式,僅僅交易數(shù)據的運算結果,而不交易原始數(shù)據,既保護了數(shù)據所有方的數(shù)據資產,從根本上杜絕了數(shù)據泄露的可能,也使得用戶的隱私得以保護。
因此本文在DGHV的基礎上,設計了一種有同態(tài)加密功能的智能合約。智能合約具有保證加密規(guī)則安全、預設規(guī)則提供效率、便于監(jiān)管和便于追蹤等特點,這些特點可以更好的實現(xiàn)布爾值的同態(tài)運算、長整數(shù)的比較運算、長整數(shù)的加法與乘法運算。本文之后又給出了典型場景,并分析了本加密方法的安全性。
2 相關工作
2.1 數(shù)據上鏈加密
比特幣中最早的數(shù)據是不加密的,僅僅是通過哈希算法進行簽名,所以全節(jié)點可以得到任意賬戶的全部信息。這種設計有利于系統(tǒng)的去中心化、可追溯的性質,但也存在無法保護賬戶隱私的問題。而關于鏈上數(shù)據的保護,更多的是采用傳統(tǒng)加密算法,即哈希算法、對稱加密算法和非對稱加密算法等。類似CA系統(tǒng),用非對稱加密技術包裹對稱密鑰,制成證書,用戶通過對稱密鑰訪問數(shù)據,這類方式在處理大量的數(shù)據,或是文字數(shù)據時是有效的,但在處理高頻使用的數(shù)字時就不如同態(tài)加密的方式高效。
而智能合約最初定義為一套以數(shù)字形式指定的承諾,包括合約參與方可以在上面執(zhí)行這些承諾的協(xié)議。但是由于計算機的限制,很長時間沒有發(fā)展。在區(qū)塊鏈出現(xiàn)后改善了這一局面,智能合約借助區(qū)塊鏈的可信環(huán)境與共識基礎可以有效的執(zhí)行其功能。以太坊為智能合約提供了條件,它的EVM虛擬機是一個完全獨立的沙盒,使得所有節(jié)點完全按照順序執(zhí)行合約代碼,產生相同的結果以達成共識。虛擬機提供256位的棧,為256位的哈希算法與橢圓曲線算法提供方便[1]。智能合約方便了數(shù)據自定義上的使用。
2.2 同態(tài)加密
同態(tài)加密就是在不訪問數(shù)據的情況下委托對數(shù)據的處理,而現(xiàn)有的同態(tài)加密的技術特指對密文直接運算結果等價于對明文計算再加密。最早的同態(tài)加密算法由Sander和Tschudin在1998年提出,他們提出了整數(shù)域上的加法和乘法的同態(tài)加密機制;更重要的是,他們給出了同態(tài)加密的詳細要求,即整數(shù)域上的全同態(tài)加密等價于同時滿足加法全同態(tài)和乘法全同態(tài)。第一個真正意義上的全同態(tài)加密方法是Gentry在2009年基于理想格提出的[2]。Dijk等人在此基礎上,提出了更簡單、更易理解,但公鑰尺寸大的整數(shù)同態(tài)加密方法(DGHV)[3]。Coron進一步改進了這個方法,使得加密公鑰尺寸變小[4]。Zuowei Wu改造了傳統(tǒng)的DGHV方法,有限的減少了加密解密時間,但增加了噪音與復雜度[5]。林如磊等人在傳統(tǒng)DGHV的基礎上作修改,使得原本一次只能加解密1bit的方法增加到2bit[6],李子臣等人又在這個基礎上改進為加解密k bit[7],但這些改進都以犧牲原算法的抗噪聲能力作為代價。
3.4 長整數(shù)同態(tài)計算
傳統(tǒng)DGHV研究1位的整數(shù)同態(tài)加密,有學者將其改進為2位甚至k位,使其可以一次對多位進行同態(tài)計算。該方式在計算性能好,且對噪音不敏感時是一種良好的選擇。但在智能合約中,計算資源比較緊張,例如在Solidity中每一步計算都需要花費Gas;另外,多位的DGHV同態(tài)加密算法在計算正整數(shù)時優(yōu)勢明顯,但在計算負數(shù)的時候沒有優(yōu)勢。1位DGHV則可以通過模擬二進制補碼的計算原理進行整數(shù)域計算。
所以的問題又簡化為了一位數(shù)相乘和移位的問題。根據這一原理,大整數(shù)的同態(tài)乘法問題也可以得到解決,其過程為:
(1)計算所有的,其中,和是大整數(shù)A和B的位數(shù),是每一位的密文;
(2)計算所有,其中,計算公式為(表示一個4位整數(shù),每一位分別為):
(3)計算AB,在的末尾補充j個,相當于左移j位,并將對其進行大整數(shù)相加,得到A、B的積C,此時C為密文;
(4)對C的每一位解密,即計算,其中最后得到即為乘積的明文。
在大數(shù)同態(tài)乘法中,第1、2步中的乘法是相互獨立的,不會累積誤差,而第三步中,進行了次大整數(shù)的加法,每次加法最多累積次誤差,總計累積次1bit乘法的誤差。
4 合約應用過程
該合約可以適應的場景,如圖3所示。數(shù)據持有者首先將自己的數(shù)據上傳到區(qū)塊鏈網絡,定制隨機數(shù)種子,智能合約會將數(shù)據進行同態(tài)加密。當有人需要使用數(shù)據時,他需要向智能合約申請使用數(shù)據集X及使用函數(shù)F(X),智能合約會拆解F(X),直接計算出結果,返回給數(shù)據使用者。數(shù)據使用者收到的是密文數(shù)據,無法直接使用,此時向數(shù)據持有者申請解密。持有者會審查使用者的簽名獲得其區(qū)塊鏈中的賬號,審查該賬號是否有使用數(shù)據的權限,審查結束后驗證無誤,就會使用私鑰解密數(shù)據。值得注意的是,數(shù)據持有者并不知道X與F(X),也就是不知道數(shù)據使用了哪些數(shù)據也不知道如何使用的這些數(shù)據。這在一定程度上也保護了數(shù)據使用者的隱私與權益。不過區(qū)塊鏈網絡獲得了全部信息,仍可以將歷史信息記錄下來,不會影響到整個網絡的可溯源性。
5 安全性分析
本文從已知密文攻擊和已知明文兩種方式分析。假設攻擊方知道k個密文,試圖獲得私鑰,或明文。在數(shù)位較少的時候,可以直接猜想,有50%的正確率,此時非常不安全。本文需要采用大整數(shù)的方式,即增加密文的數(shù)量,此時直接猜想的收益會指數(shù)型下降。另外每加密一個數(shù)據都會重新計算隨機數(shù),對于同樣的明文,會生成完全不同的密文,也保障了安全性。
在嘗試獲取明文失敗后,攻擊方試圖獲取私鑰,該獲取過程為:
可知,即使攻擊方知道密文對應的明文,在隨機數(shù)不被預測的情況下,c可近似的看作是p的倍數(shù)。破解私鑰的過程可以看作根據一些列近似p的倍數(shù)求p的過程。該過程就是近似最大公約數(shù)問題(approximate—GCD problem),而此問題就目前來看是無解的,所以該方法是安全的。
6 結束語
本文根據DGHV同態(tài)加密方法,設計了隨機數(shù)生成方法及可進行同態(tài)布爾邏輯值計算、同態(tài)數(shù)值比較計算、同態(tài)長整數(shù)計算的智能合約。該方法適應智能合約中計算資源相對緊張,要求全網共識的環(huán)境。同時,本文證明了方法的同態(tài)性與安全性,還提出了一種該方法應用的典型場景。
本文提出的智能合約還具備以下兩個特點:采用獨特的隨機數(shù)生成方式,該方式更適合智能合約場景中使用,并且熵源由數(shù)據持有方產生,計算量小,可全網同步;將原本只有一位的DGHV擴展至長整數(shù)范圍,使其更具備實用價值。
綜上所述,該智能合約和加密方法可以適應保護交易雙方的隱私與安全的要求。
基金項目:
1. 國家自然基金項目(項目編號:61672074,61672075);
2. 教育部中國移動基金(項目編號:MCM20180104);
3. 國家重點研發(fā)計劃(項目編號:2018YFB1402702)。
參考文獻
[1] 范吉立,李曉華,聶鐵錚, 等.區(qū)塊鏈系統(tǒng)中智能合約技術綜述[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] 林如磊,王箭,杜賀.整數(shù)上的全同態(tài)加密方法的改進[J].計算機應用研究,2013,30(5):1515-1519.
[7] 李子臣,張峰娟,王培東.一種短密鑰高效全同態(tài)加密方法[J].計算機應用研究,2017,34(02):487-489+494.
[8] 朱鳳霞.基于區(qū)塊鏈技術的交易數(shù)據庫加密技術[J].電子設計工程,2020,28(3):93-97.
[9] 王化群,張帆,李甜,等.智能合約中的安全與隱私保護技術[J].南京郵電大學學報(自然科學版),2019,39(4):63-71.
[10] 葉俊,于天嬌,郭禎,荊兆星. 基于區(qū)塊鏈的可驗證醫(yī)療數(shù)據統(tǒng)計方案[J]. 網絡空間安全, 2019, 10(12): 1-.