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