作者: 張啟超,張興
一、引言
非對稱加密,也稱為公開密鑰加密,是密碼學的一種算法,它在應用時會生成兩個密鑰,一個是公有密鑰,另一個是私有密鑰。顧名思義,公鑰是公開可見的,能夠恣意對外公布;而私鑰,顧名思義必須由用戶自行嚴密保存,絕不透過任何途徑向任何人提供,也不會泄露給要通迅的另一方,即便他是可信的。
區塊鏈系統中使用的橢圓曲線密碼學(ECC),是一種建立公開密鑰加密的算法,基于橢圓曲線數學,在1985年由Neal Koblitz和Victor Miller分別獨立提出。
ECC的主要優勢是在某些情況下它比其余的加密算法使用更小的密鑰——比方說RSA加密算法——提供相同的或更高級別的安全。ECC的另一個優勢是能夠定義群之間的雙線性映射,基于Weil對或是Tate對;雙線性映射已經在密碼學中發現了批量的運用,比如基于身份信息的加密。而其不足是相同長度密鑰下加密和解密操作的實現比其他機制花費的時間長 ,但因為可以使用更短的密鑰達到同級的安全程度,所以同樣的安全程度下速度會更快。通常160比特的橢圓曲線密鑰提供的安全強度與1024比特RSA密鑰相當。
通過對非對稱加密算法的使用,引申出一個問題,是否能夠在數據沒有解密的情況下,實現對數據的運算,得出結果后再使用私鑰解密呢?既能解決數據隱私問題,有可以實現數據不泄露運算。
二、研究背景
在2008年由中本聰(SatoshiNakamoto)發表在比特幣論壇中的論文《Bitcoin:APeer-to-PeerElectronicCashSystem》提出了區塊鏈的概念。文中提及區塊鏈技術是構建比特幣數據結構與交易信息加密傳輸的基礎技術,利用區塊鏈技術實現了比特幣的挖礦與交易(比特幣挖礦原理)。中本聰的主要觀點如下:第一,通過第三方來處理信息的模式擁有點對點交易之間缺乏信任的弱點,商家為了提防自己的客戶,有時會向客戶索取完全不必要的信息,但仍然不能避免一定的欺詐行為;第二,中介機構的存在,增加了交易的成本,限制了交易規模;第三,數字簽名能夠解決電子貨幣的身份問題,但是如果還需要第三方參與支持才能防止雙重消費,那么系統將失去其價值。
從另一個角度來說,區塊鏈技術在比特幣出現之前就是存在的,只是還沒有被大眾廣泛熟悉?梢哉f,隨著云計算、大數據的興起,為區塊鏈的發展提供了機會。區塊鏈就是一項計算機存儲軟件技術。
雖然區塊鏈的去中心化和公開透明為分布式協議的設計提供了有力的支持,但是用戶信息及交易的安全和隱私問題保護比較欠缺。由于區塊鏈的不可篡改性,所有的交易都是公開,可追溯的,并且存儲在公鏈網絡中不可篡改。而地址是定義公鏈中代幣的分配和傳送終點所需的唯一信息。這些地址由用戶自己本地的錢包匿名產生。這就代表著一旦地址被使用,與其有關的所有交易歷史便破壞了地址的保密性,所有人都能夠查看任意地址的余額和交易。因為用戶必須要透露他們的自己的身份用來接收服務或貨物,所以比特幣地址就無法保持完全的匿名。由于區塊鏈是無法篡改永久保存的,所以一些遺留的可以被追蹤的東西可能很容易被追溯。故而在這些用戶數據隱私容易被泄露的場景中,保護交易金額和賬戶余額在區塊鏈系統涉及金額交易不被泄露尤為重要
[1-6]。
同態加密是一種對稱加密算法,由Craig Gentry在2009年發明提出
[7]。同態加密方案包括密鑰生成算法、加密算法、解密算法和額外的評估算法。全同態加密包括兩種基本的同態類型,即乘法和加法同態,加密算法分別對乘法和加法具備同態特性。
基于同態加密的特性,使得全同態加密在區塊鏈中有著廣泛的應用場景。個人用戶或某公司,將自身的隱私數據,進行同態加密后,上傳到區塊鏈節點處,然后區塊鏈節點相應的智能合約根據要求,對加密后的數據進行相應的計算,并返回結果給數據原始提供方。數據原始提供方再利用同態解密算法將數據結果進行還原處理,得到最終結果。這個期間,同態加密函數和解密函數,完全由用戶自己掌握。否則云平臺或服務器,完全可以利用解密函數,進行解密得到原始數據,利用這種方式,區塊鏈上的交易及數據信息可以避免被同一網絡中成員獲取及泄露的可能,保護了用戶隱私,拓寬了區塊鏈的應用場景。
三、同態加密算法分類 1. 如果滿足 f(X)+f(Y)=f(X+Y),這種加密函數叫做加法同態。
2. 如果滿足 f(X)×f(Y)=f(X×Y), 這種加密函數叫做乘法同態。
3. 如果一個算法能同時滿足加法同態和乘法同態。那么,稱之為全同態算法。
也就是說,如果同時滿足加法和乘法同態,就被稱為全同態加密。下圖為加法同態加密應用場景流程圖。
圖1加法同態加密應用場景流程圖
Fig.1 Application scenario flow chart of additive homomorphic encryption
有一些應用場景需要用到同態加密計算,如在聯盟鏈中,不同的業務場景需要配套不同的隱私保護策略。對于強隱私的業務,比如金融機構之間的對賬,對資產數據進行加密是很有必要的。在hyperledger fabric、bcos中,用戶可以調用同態加密庫對數據進行加密,共識節點執行交易的時候調用同態加密預編譯合約,得到密文計算的結果。
四、同態機密算法常見應用場景
1 安全云計算與委托計算
同態技術在該方面的應用可以使得我們在云環境下,充分利用云服務器的計算能力,實現對明文信息的運算,而不會損害數據的私密性。例如醫療機構往往數據處理能力較弱,這時候就需要從第三方來購買數據處理分析服務以達到更好的數據分析結果,通過這樣的方式他們就需要委托有較強數據處理能力的云計算中心實現數據處理,但是醫院需要保護患者隱私,不能直接將未加密的數據交給第三方。在同態加密技術的支持下,醫療機構就可以將通過自身掌握的秘鑰加密后的數據發送至第三方,待第三方處理完成后,使用私鑰解密得到數據。整個數據處理過程、數據內容對第三方是完全透明的。
2 文件存儲與密文檢索
用戶可以將自己的數據加密后存儲在一個不信任的遠程服務器上,日后可以向遠程服務器查詢自己所需要的信息,存儲與查詢都使用密文數據,服務器將檢索到的密文數據發回。用戶可以解密得到自己需要的信息,而遠程服務器卻對存儲和檢索的信息一無所知。此種方法同樣適用于搜索引擎的數據檢索。
3 安全多方計算協議設計的工具
所謂安全多方計算就是分別持有私有數據 x1,x2,…,xn的 n 個人,在分布式環境中協同計算函數f (x1,x2,…,xn) 而不泄露各方的私有數據。以同態技術加密的密文數據計算不僅可以滿足安全多方計算協議設計中保護各方隱私的需要,還能避開不經意傳輸協議而大大提升協議效率。
4 電子選舉
基于同態加密技術設計的電子選舉方案,統計方可以在不知道投票者投票內容的前提下,對投票結果進行統計,既保證了投票者的隱私安全,有能夠保證投票結果的公證。
五、同態加密和區塊鏈在建筑行業的應用 一個建筑工程項目從開工到竣工驗收,往往會產生大量的數據,例如試驗數據,檢測報告等,通常這些數據大多保存在系統后臺,這種數據保存和管理技術,在數據的查詢和使用時存在問題,存在修改和丟失數據的可能;例如合同簽訂的過程存在真實性不可控的缺點,利用區塊鏈技術可以保證數據的真實性,但是又引入了另外一個問題,由于數據保存在區塊鏈中,是公開的或者局部公開的,這就會導致用戶隱私泄露的問題,如果引入同態加密技術,將加密后的密文進行上鏈,然后智能合約對密文進行相應的計算和處理,這樣就可以既保證數據的真實性又可以保證用戶的隱私不被泄露
[8]。
六、方案設計 在一個區塊鏈網絡上,一個客戶端對區塊鏈網絡發起交互需求時應該先調用同態加密接口,然后將加密后的密文發送到區塊鏈節點,經過智能合約計算然后發送到全網確認,智能合約擁有對密文進行運算的能力,該方法的步驟具體為:同態密鑰生成,由一個被區塊鏈網絡中所有參與者信任的第三方節點生成一對同態密鑰作為全區塊鏈組網的同態密鑰,將同態公鑰公開,私鑰保存在第三方節點中。發送交易的客戶端在進行發送交易之前,先將明文數據這里記為Mx1,經過調用全同態加密接口后加密生成密文My1,將加密后的密文my1以交易的形式發送給區塊鏈節點,調用智能合約對密文My1進行計算,計算后得到Mz1然后將My2進行全網共識后記錄在區塊中,此方法利用加密技術隱藏區塊鏈的整個過程中的敏感信息,有效的保護了用戶的隱私,實現了區塊鏈網絡的隱私保護功能
參考文獻
[1] 申屠青春,宋波,張鵬,汪曉明,季宙棟,左川民. 2017,區塊鏈開發指南.北京:機械工業出版社: 110
[2] 楊保華,陳昌, 2017,區塊鏈原理、設計與應用,北京:機械工業出版社: 75
[3] 袁勇,王飛躍 2016,區塊鏈技術發展現狀與展望.自動化學報, 4 (24): 481-494
[4] 周平, 2016,中國區塊鏈技術和應用發展白皮書,北京:工業和信息化部: 45
[5] 祝烈煌,高峰,沈蒙,李艷東,鄭寶昆,毛洪亮,吳震, 2017,區塊鏈隱私保護研究綜述.計算機研與發展, 54 (10): 2170-2186
[6] 鄒均,張海寧,唐屹,李磊,劉天喜,陳暉,曲烈,鄭曉明, 2017,區塊鏈技術指南,北京:機械工業出版社: 48
[7] Gentry C . Fully homomorphic encryption using ideal lattices[J]. Stoc, 2009.
[8]盧志瑜, 卜繼斌, 周春,等. 基于區塊鏈的建筑工程合同存證及管理信息系統的研究與實踐[J]. 工程質量, 2020, 038(003):37-40.
[9]晁昭昭. 基于全同態加密的數據隱私區塊鏈研究[D]. 西北農林科技大學, 2019.
[10] 陳智罡,王箭,宋新霞. 2014.全同態加密研究,計算機應用研究, 31 (6): 16-24
[11] 蔣林智,許春香,王曉芳,陳克非,王保倉.2017, (全)同態加密在基于密文計算模型中的應用.密碼學報, 4 (6): 596-610
[12] 張建航.2012,快速格公鑰密碼方案的研究[碩士學位論文].西安:西安電子科技大學
[13] 中國密碼學會.2011,中國密碼學發展報告2010,北京:電子工業出版社: 173