段淑敏,殷守林,張燕麗,王學穎
(沈陽師范大學 科信軟件學院,遼寧 沈陽 110034)
?
新的同態(tài)加密方法
——基于Paillier和RSA密碼體制的代理重加密
段淑敏,殷守林,張燕麗,王學穎
(沈陽師范大學 科信軟件學院,遼寧 沈陽 110034)
同態(tài)加密是一種加密形式,它允許特定類型的計算對密文進行加密,解密時對明文執(zhí)行匹配結果的操作可以獲得一個加密的結果,當對位于遠程服務器上的數(shù)據(jù)做計算時,云供應商有必要訪問原始數(shù)據(jù)并解密。為滿足企業(yè)信息的數(shù)據(jù)和算法的私密性需求,數(shù)據(jù)加密方法與防篡改硬件技術被使用。公開加密數(shù)據(jù)的計算上,隱私的建立成為必要條件。此時同態(tài)加密方法被使用且提出一種基于Paillier和RSA密碼體制的代理重加密技術。同態(tài)加密是一種無需解密即可在加密數(shù)據(jù)上進行計算的方法,與在原始數(shù)據(jù)上計算能夠獲得相同的結果,并通過使用代理重加密技術防止被選擇的密文受攻擊。
云計算;同態(tài)加密;代理重加密技術;數(shù)據(jù)安全
同態(tài)加密廣泛用于支持簡單聚合,對加密數(shù)據(jù)的數(shù)值計算以及私人信息檢索。同態(tài)加密理論的突破產(chǎn)生了全同態(tài)加密[1],能夠計算加密數(shù)據(jù)的任意函數(shù)。同態(tài)加密通常被認為是一種在加密數(shù)據(jù)基礎上解決數(shù)據(jù)庫查詢問題的關鍵方式。用于處理更復雜結構數(shù)字數(shù)據(jù)和算法的隱私性需求呈指數(shù)形式增加,這正好平行于通信網(wǎng)絡及其設備的增長和它們能力的增長。為了數(shù)據(jù)的安全存儲和訪問,當前技術提供了幾種保證數(shù)據(jù)隱私的方法如數(shù)據(jù)加密[2-3]和防篡改硬件[4]等。然而,當私有數(shù)據(jù)使用同態(tài)加密公開計算或者修改函數(shù)、算法時,它們?nèi)匀豢梢詧?zhí)行,隱私也可得到確保。使用同態(tài)加密的系統(tǒng)可以計算與加密數(shù)據(jù)。
數(shù)據(jù)在發(fā)送到服務器端之前將會被加密,但是客戶端面臨一些問題,因為服務提供商需要執(zhí)行對數(shù)據(jù)的計算來回應客戶端的請求,因此客戶端必須在執(zhí)行所需計算之前給服務器提供密鑰來解密數(shù)據(jù),這可能會影響存儲在云端的數(shù)據(jù)保密性。同態(tài)加密可以執(zhí)行加密數(shù)據(jù)的操作而無需解密[5-6]。提出這種方法的目的是解決托管在云計算中的數(shù)據(jù)安全問題。本文主要研究同態(tài)加密的應用對于云計算的安全性,尤其在沒有解密的情況下執(zhí)行加密數(shù)據(jù)計算的可能性。
云計算[7]是一個模型,能夠方便、按需訪問可配置的網(wǎng)絡計算資源共享池(如網(wǎng)絡、服務器、存儲應用程序和服務),可以快速地配置工作環(huán)境,并能以消耗最小的管理工作或服務與提供商交互發(fā)布。關于云計算流量、安全和資源管理有很多問題,可以通過多種方式,在數(shù)據(jù)、網(wǎng)絡和存儲上保證云安全。同態(tài)加密方法給數(shù)據(jù)提供更加安全的保護[7],因為不涉及密鑰的管理。使用代理重加密技術防止被選擇的密文受到攻擊,所以該系統(tǒng)比現(xiàn)有系統(tǒng)更安全。
1.1 新定義
通過云計算概念,對其給出新定義:對于可計算的信息技術模型由所有的信息技術組件構成包括硬件[8]、軟件、網(wǎng)絡以及服務等,以便開發(fā)和通過因特網(wǎng)或者專用網(wǎng)絡云服務傳遞。這個定義在云計算中對于數(shù)據(jù)沒有安全定義。云供應商,如IBM、谷歌和亞馬遜在他們的云平臺中使用虛擬化,在同一臺服務器中,它們可以共用存儲空間,也可以處理并發(fā)企業(yè)的虛擬化。
1.2 云計算結構模型
云計算系統(tǒng)可以分為兩部分:前端和后端。前端實現(xiàn)用戶與服務器交互,后端是服務器提供給用戶數(shù)據(jù),服務器和客戶端之間的網(wǎng)絡為中間件。圖1為云基本體系結構。
圖1 云體系結構模型
同態(tài)加密指的是在加密過程中純文本和密文都被看作具有等效的代數(shù)函數(shù)。同態(tài)加密允許服務器在不知道原始明文情況下做加密數(shù)據(jù)的操作。數(shù)據(jù)保護基本流程如圖2所示。
圖2 一種云下數(shù)據(jù)保護的基本框架
同態(tài)加密允許在加密的數(shù)據(jù)上執(zhí)行復雜的數(shù)學運算而無需原始數(shù)據(jù)。對于明文X1和X2以及對應的密文Y1和Y2,基于同態(tài)加密方案,已知Y1和Y2,就可以直接計算出X1ΘX2的值。密碼系統(tǒng)的乘法同態(tài)或者加法同態(tài)取決于運算符號Θ是乘還是加[9-10]。
以下重點介紹乘法同態(tài)加密。
一個同態(tài)加密方案是乘法的(其中m是明文的個數(shù)),如果:
Enc(x?y)=Enc(x)?Enc(y)
RSA加密系統(tǒng)過程:
第一步:密鑰產(chǎn)生→KeyGen(p,q)
①輸入:p,q∈P
②計算:n=p×q,φ(n)=(p-1)(q-1)
③選擇一個數(shù)e使Gcd(e,φ(n))=1,確定一個d使e×d≈1modφ(n)。
④輸出:(pk,sk)
公鑰:pk=(e,n);私鑰:sk=(d)
第二步:加密→Enc(m,pk)
①輸入:m∈Zn
②計算:c=memodn
③輸出:c∈Zn
第三步:解密→Dec(c,sk)
①輸入:c∈Zn
②計算:m=cdmodn
③輸出:m∈Zn
假設有兩個密碼C1和C2,而且:
因此,RSA密碼系統(tǒng)找到乘法同態(tài)加密的屬性,但是不符合好的安全概念,原因是:假設兩個密鑰C1和C2以及相對應的信息m1和m2:
發(fā)送器把密鑰對(C1,C2)發(fā)送到云服務器上,服務器根據(jù)客戶要求執(zhí)行計算并發(fā)送加密之后的密文(C1×C2)到客戶。如果攻擊者攔截了這兩個使用相同密碼加密的密鑰,那么將會解密兩個客戶之間交流的全部信息,因為同態(tài)加密是乘法的,也就說密碼的積等于積的密碼。
為防止密文信息從CCA泄露,提出了使用Paillier和RSA密碼體制的代理重加密算法[11-12]。在同態(tài)加密體制中數(shù)據(jù)由私鑰加密,公鑰只有客戶端有。再次通過代理重加密算法獲得每次隨機密鑰生成的密碼數(shù)據(jù),如果攻擊者獲得一個密鑰,那么還需要另外一個不同于此的密鑰解密數(shù)據(jù)[13-16]。即使攻擊者得到了這些數(shù)據(jù),也不能在客戶機和服務器之間解密得到明文。所以新系統(tǒng)比現(xiàn)有系統(tǒng)提供了更安全的保障。
3.1 代理重加密算法
第一步:密鑰產(chǎn)生→KeyGen(p,q)
①選擇兩個素數(shù)p,q
②計算n=p·q和φ(n)=(p-1)(q-1)
選擇數(shù)e使gcd(e,φ(n))=1
③確定一個d使e×d=1modφ(n)
④代理公鑰由Rpk=(e,n)產(chǎn)生,代理私鑰由Rsk=d產(chǎn)生。
第二步:加密→Enc(c,Rpk)
令m是即將加密的消息,且m∈Zn
計算密文:Rc=m·e modn
第三步:解密→Dec(Rc,Rsk)
密文:c∈Zn
計算消息:M=c·d modn
3.2 基于Paillier算法提出的代理重加密
第一步:產(chǎn)生密鑰。
①隨機選擇兩個比較大且相互獨立的素數(shù)p,q。令(pq,(p-1)(q-1))=1
②計算n=pq和λ=1cm(p-1,q-1)
③選擇隨機整數(shù)g,使g∈Z*n2
④通過下面計算判斷模塊化的乘法逆元素是否存在,來確定n及劃分g的順序:
μ=(L(aλmodn2))-1modn
其中函數(shù)L被定義為L(u)=u-1/n
⑤公鑰密鑰為(n,g),私鑰密鑰為(λ,μ)
第二步:加密→Enc(m,pk)
①令m是要被加密的消息且m∈Zn
②隨機選擇r,使r∈Zn*
③計算密文:c=gm·nrmodn2
第三步:代理重加密
①計算公鑰和私鑰(Rsk,Rpk)
②重加密密文由Paillier算法生成并發(fā)送公鑰(Rpk)到云服務器
第四步:解密→Dec(c,sk)
①密文c∈Zn*
②計算消息:
m=L(cλmodn2)/L(gλmodn2)modn
3.3 基于RSA算法提出的代理重加密
第一步:產(chǎn)生密鑰。
①選擇兩個素數(shù)p,q,計算n=pq和φ(n)=(p-1,q-1)
②選擇整數(shù)e,使gcd(e,φ(n))=1
③確定d使e·d=1modφ(n)
④公鑰由(e,n)產(chǎn)生,私鑰由(d)產(chǎn)生
第二步:加密→Enc(m,pk)
①令m是要被加密的消息且m∈Zn
②計算密文:c=memodn
第三步:代理重加密
①計算公鑰和私鑰(Rsk,Rpk)
②重加密密文由RSA算法生成并發(fā)送公鑰(Rpk)到云服務器
第四步:解密→Dec(c,sk)
①密文c∈Zn
②計算消息:m=cdmodn
本文使用同態(tài)加密技術在云端提供安全服務。同態(tài)加密是一個新的安全概念,能夠在不知道原始數(shù)據(jù)情況下對加密的數(shù)據(jù)提供計算結果,保證了數(shù)據(jù)的機密性?;诖碇丶用芩惴ǎ状翁岢隽薘SA和Paillier同態(tài)加密算法,可有效防止密文受到選擇性密文文本攻擊。因此,這個系統(tǒng)比現(xiàn)有系統(tǒng)更安全。在以后的工作中,可以通過減少密鑰的大小來提高工作效率,并且也可以為其他同態(tài)加密方案進行代理?;谌瑧B(tài)加密云計算安全也是一個新的安全概念,也將是以全同態(tài)加密應用為基準的。
[1] 陳智罡,王箭,宋新霞. 全同態(tài)加密研究[J].計算機應用研究, 2014(6):1624-1631.
[2] 馮朝勝,秦志光,袁丁. 云數(shù)據(jù)安全存儲技術[J]. 計算機學報,2015(1):150-163.
[3] 張澤普,李國剛.基于OHNN和驅動表的公鑰加密算法[J].微型機與應用,2013,32(12):48-50,53.
[4] 段國云,陳浩,黃文,等. 一種Web程序防篡改系統(tǒng)的設計與實現(xiàn)[J]. 計算機工程,2014(5):149-153.
[5] 劉天華,殷守林,李航. 一種新的在線社交網(wǎng)絡的隱私保護方案[J]. 電子技術應用,2015,41(4):122-124,128.
[6] TIAN M, HUANG L. Certificateless and certificate-based signatures from lattices[J]. Security & Communication Networks, 2015, 8(8):1575-1586.
[7] 韋茜,王晨,李星毅,等.基于RSA算法的快遞信息隱私保護應用[J].電子技術應用,2014,40(7):58-60.
[8] 殷守林,劉天華,李航. 基于模擬退火算法的卡爾曼濾波在室內(nèi)定位中的應用研究[J]. 沈陽師范大學學報(自然科學版),2015(1):86-90.
[9] 陳智罡,宋新霞,張延紅.基于Binary-LWE噪音控制優(yōu)化的全同態(tài)加密方案與安全參數(shù)分析[J].四川大學學報(工程科學版),2015(2):75-81.
[10] 李超良,劉琴,謝永明,等.基于同態(tài)加密的物聯(lián)網(wǎng)隱私保護計算方案[J].計算機工程與應用,2015(6):22-26.
[11] 劉東升,樊沛,張亮. 云計算環(huán)境下數(shù)據(jù)安全防護探討[J]. 信息安全與通信保密,2015(1):87-89,94.
[12] 周德華. 代理重加密體制的研究[D].上海:上海交通大學,2013.
[13] 藍才會,王彩芬,屈宜麗. 基于身份的單向多用的代理重加密方案[J]. 計算機應用研究,2014(8):2477-2480,2484.
[14] 錢萍,吳蒙.同態(tài)加密隱私保護數(shù)據(jù)挖掘方法綜述[J].計算機應用研究,2011(5):1614-1617,1622.
[15] 李少鯤.標準模型下可證安全的無證書全同態(tài)加密體制[J].計算機應用,2015(2):387-392,406.
[16] 張祖蓮,王命全,李景林,等.一種自定義動態(tài)密鑰預防DDoS攻擊的算法鄢[J].微型機與應用,2013,32(20):77-79,86.
段淑敏(1991-),女,碩士研究生,主要研究方向:大數(shù)據(jù)分析、數(shù)據(jù)挖掘。
殷守林(1990-),男,碩士研究生,主要研究方向:云計算、濾波算法、網(wǎng)絡安全。
張燕麗(1969-),通信作者,女,博士,副教授,主要研究方向:知識發(fā)現(xiàn)與知識表示。E-mail:757334027@qq.com。
A new homomorphic encryption——proxy re-encryption based on Paillier and RSA
Duan Shumin, Yin Shoulin, Zhang Yanli, Wang Xueying
(Software College, Shenyang Normal University, Shenyang 110034, China)
Homomorphic encryption is an encryption form. It allows specific type computation to encrypt ciphertext. When decryption, it can obtain one encryption result by matching the result of operations performed on the plaintext. When it does calculations on data located on a remote server, the cloud provider has to access the raw data and it will decrypt them. To realize this demand, data encryption and tamper-resistant hardware are used and this paper proposes proxy re-encryption scheme based on Paillier and RSA. But it is necessary to establish privacy for public encrypted data. So it introduces homomorphic cryptosystems. It is a method that enables us to carry on computations for encrypted data without decryption and provide the same result as well that the calculations were carried out on raw data and it uses proxy re-encryption technique that prevents ciphertext from chosen cipher text attack.
cloud computing; homomorphic encryption; proxy re-encryption technique; data security
TP393.08
A
1674-7720(2016)07- 0006- 03
段淑敏,殷守林,張燕麗,等. 新的同態(tài)加密方法——基于Paillier和RSA密碼體制的代理重加密[J].微型機與應用,2016,35(7):6-8,18.
2015-12-06)作者簡介: