云計(jì)算數(shù)據(jù)安全之全同態(tài)加密
針對(duì)云計(jì)算系統(tǒng)面臨的數(shù)據(jù)安全問(wèn)題,提出一種云計(jì)算數(shù)據(jù)安全方案,該方案采用了將全同態(tài)加密算法引入到云計(jì)算數(shù)據(jù)安全方案的方法,并構(gòu)建了該方案的應(yīng)用場(chǎng)景。保證了云計(jì)算數(shù)據(jù)的傳輸安全和存儲(chǔ)安全,適用于密文狀態(tài)下的數(shù)據(jù)處理和用戶檢索。
一、云計(jì)算數(shù)據(jù)安全問(wèn)題
由于云計(jì)算是分布式的,用戶數(shù)據(jù)的存儲(chǔ)位置是未知的,為了提高資源使用率,可能不同用戶的數(shù)據(jù)會(huì)共享存儲(chǔ)或占用計(jì)算資源,如果對(duì)數(shù)據(jù)沒(méi)有進(jìn)行隔離和有效的保護(hù),就可能被盜竊、刪除或篡改。因此,保護(hù)云端數(shù)據(jù)的安全與單機(jī)方式有所不同,傳統(tǒng)的安全保護(hù)方式無(wú)法應(yīng)對(duì)云計(jì)算環(huán)境下的網(wǎng)絡(luò)結(jié)構(gòu)和協(xié)議。
云計(jì)算存在的7大安全風(fēng)險(xiǎn)。
(1)特權(quán)用戶的接入
用戶數(shù)據(jù)存放在云服務(wù)提供商的服務(wù)器中,在用戶掌控之外處理數(shù)據(jù)具有一定的風(fēng)險(xiǎn),服務(wù)商的管理員有可能會(huì)獲得訪問(wèn)和處理數(shù)據(jù)的權(quán)限。
(2)可審查性
云計(jì)算服務(wù)商有義務(wù)協(xié)助第三方認(rèn)證機(jī)構(gòu)對(duì)數(shù)據(jù)進(jìn)行準(zhǔn)確性和安全性的審計(jì),一些服務(wù)商拒絕外部審計(jì)和安全認(rèn)證,這必然會(huì)影響數(shù)據(jù)的安全性。
(3)數(shù)據(jù)位置
云計(jì)算用戶對(duì)自己數(shù)據(jù)的存儲(chǔ)地點(diǎn)一無(wú)所知。
(4)數(shù)據(jù)隔離
云計(jì)算環(huán)境下所有用戶的數(shù)據(jù)均處于共享的環(huán)境之中,只靠加密并不能完全保證數(shù)據(jù)安全,還需要進(jìn)行數(shù)據(jù)隔離。
(5)數(shù)據(jù)恢復(fù)
服務(wù)商應(yīng)該對(duì)數(shù)據(jù)進(jìn)行備份,以便在遇到物理災(zāi)難或人為破壞時(shí)可以快速恢復(fù)用戶數(shù)據(jù)。
(6)調(diào)查支持
多用戶的數(shù)據(jù)存放在一起,在有違法行為發(fā)生時(shí),用戶將難以調(diào)查。
(7)長(zhǎng)期生存性
服務(wù)商應(yīng)該不會(huì)破產(chǎn),以免影響用戶數(shù)據(jù)的穩(wěn)定性和持續(xù)性。
總結(jié)起來(lái),要加強(qiáng)云端數(shù)據(jù)的安全性,就是對(duì)數(shù)據(jù)進(jìn)行加密處理。
二、全同態(tài)加密
Craig Gentry構(gòu)造的同態(tài)加密方案包括4個(gè)算法,即密鑰生成算法、加密算法、解密算法和額外的評(píng)估算法。
全同態(tài)加密包括兩種基本的同態(tài)類型,即乘法同態(tài)和加法同態(tài),加密算法分別對(duì)乘法和加法具備同態(tài)特性,而2009年之前的同態(tài)加密算法僅支持加法同態(tài)或者乘法同態(tài)。
1、全同態(tài)加密的原理
全同態(tài)加密的原理:加密操作為E,明文為m,加密得P,即:
![]()
如果針對(duì)明文有操作f,針對(duì)E可構(gòu)造F,使得:
![]()
這樣E就是一個(gè)針對(duì)f的同態(tài)加密算法。若對(duì)于任意復(fù)雜的明文操作f,都能構(gòu)造出相應(yīng)的F,則稱E為全同態(tài)加密算法。全同態(tài)加密的目的在于找到一種能在加密的數(shù)據(jù)上進(jìn)行任意數(shù)量的加法和乘法運(yùn)算的加密算法,使得對(duì)加密數(shù)據(jù)進(jìn)行某種操作所得到的結(jié)果恰好等于對(duì)加密前的數(shù)據(jù)進(jìn)行預(yù)期操作再加密后得到的密文。
2、全同態(tài)加密算法的實(shí)現(xiàn)
為了簡(jiǎn)便,本文使用Craig Gentry提出的對(duì)稱全同態(tài)加密算法。
(l)加密算法
加密參數(shù)有p、q和r,其中p是一個(gè)正奇數(shù),q是一個(gè)很大的正整數(shù),p和q在密鑰生成階段確定,p是加密密鑰,而r是加密時(shí)選取的一個(gè)隨機(jī)數(shù)。
對(duì)于明文m,計(jì)算:
![]()
即可得到密文。
(2)解密算法
對(duì)于明文:
![]()
因pq遠(yuǎn)遠(yuǎn)大于2r+m,所以:

3、同態(tài)性驗(yàn)證
(l)同態(tài)加法特性驗(yàn)證
假設(shè)有兩組明文m1和m2,對(duì)他們分別進(jìn)行加密可得到密文

則對(duì)于明文
![]()
應(yīng)有

只要(m1+m2)+2(r1+r2)遠(yuǎn)遠(yuǎn)小于p,則C3=(Cl+C2) mod p=(m1+m2)+2(r1+r2),即該算法滿足加同態(tài)條件。
(2)同態(tài)乘法特性驗(yàn)證
對(duì)于明文
![]()
應(yīng)有

只要(m1+m2)+2(r1+r2)遠(yuǎn)遠(yuǎn)大于p,就有C4 =(CI×C2) mod p=mlm2十2(r1r2+r1m2十r2 m1) ,即該算法滿足乘同態(tài)條件。
三、安全方案的架構(gòu)和應(yīng)用場(chǎng)景
在云計(jì)算中使用全同態(tài)加密算法對(duì)數(shù)據(jù)進(jìn)行加密處理,可以保證云計(jì)算中的數(shù)據(jù)安全。即在存儲(chǔ)用戶數(shù)據(jù)前先對(duì)敏感數(shù)據(jù)進(jìn)行加密,從而提高數(shù)據(jù)的安全性,即便這些數(shù)據(jù)被竊取,惡意用戶得到的也只是數(shù)據(jù)加密后的密文,沒(méi)有密鑰進(jìn)行解密是無(wú)法得到明文的。而密鑰由用戶保存,云端不存儲(chǔ)用戶密鑰。同時(shí),由于全同態(tài)加密算法的同態(tài)特性,云端可以對(duì)密文進(jìn)行數(shù)據(jù)處理,從而可有效避免對(duì)加密數(shù)據(jù)進(jìn)行傳統(tǒng)操作時(shí)的效率和資源浪費(fèi)問(wèn)題。普通的加密方案如果需要對(duì)密文數(shù)據(jù)進(jìn)行操作,必須將密文數(shù)據(jù)傳回用戶端,用戶先對(duì)其進(jìn)行解密再操作,最后將數(shù)據(jù)再加密傳回到云端。
1、安全方案的實(shí)現(xiàn)
基于全同態(tài)加密計(jì)算數(shù)據(jù)安全方案,構(gòu)造的云計(jì)算數(shù)據(jù)安全如圖1所示。主要結(jié)構(gòu)由用戶端和云端兩部分組成。

(l)用戶端:用戶在電腦、瘦客戶機(jī)或者手機(jī)等設(shè)備上通過(guò)云計(jì)算系統(tǒng)登錄程序與云端進(jìn)行信息交互,負(fù)責(zé)完成提交用戶請(qǐng)求給云端、對(duì)用戶隱私數(shù)據(jù)進(jìn)行加密和解密以及密文數(shù)據(jù)的上傳和下載等工作。
(2)云端:包括有應(yīng)用管理系統(tǒng)、數(shù)據(jù)處理系統(tǒng)、數(shù)據(jù)存儲(chǔ)系統(tǒng)和密鑰管理與認(rèn)證模塊等。其中應(yīng)用管理系統(tǒng)是其中最主要部分,負(fù)責(zé)統(tǒng)籌處理用戶請(qǐng)求,需要申請(qǐng)密鑰或用戶認(rèn)證的工作交給密鑰管理與認(rèn)證模塊,需要對(duì)數(shù)據(jù)進(jìn)行運(yùn)算的任務(wù)交給數(shù)據(jù)處理系統(tǒng),可直接進(jìn)行存儲(chǔ)的數(shù)據(jù)由數(shù)據(jù)存儲(chǔ)系統(tǒng)完成,并協(xié)作與用戶之間的信息交互。數(shù)據(jù)處理系統(tǒng)包括數(shù)據(jù)檢索、數(shù)據(jù)運(yùn)算、數(shù)據(jù)更新等模塊,是云端功能最關(guān)鍵的部分。數(shù)據(jù)存儲(chǔ)系統(tǒng)負(fù)責(zé)云數(shù)據(jù)的存儲(chǔ)工作,根據(jù)記錄的用戶數(shù)據(jù)位置存儲(chǔ)和提取用戶數(shù)據(jù)。密鑰管理與認(rèn)證模塊則負(fù)責(zé)用戶
密鑰的生成與保存。
該安全方案的具體操作步驟:
(l)用戶訪問(wèn)云端,應(yīng)用管理系統(tǒng)接收到用戶請(qǐng)求后,將用戶信息轉(zhuǎn)發(fā)給密鑰管理與認(rèn)證模塊,該模塊根據(jù)算法產(chǎn)生基于該用戶信息的一對(duì)對(duì)稱密鑰并將用戶信息與密鑰綁定并加密存儲(chǔ),應(yīng)用管理系統(tǒng)將密鑰對(duì)通過(guò)安全通道發(fā)給用戶。
(2)用戶使用密鑰在用戶端對(duì)數(shù)據(jù)進(jìn)行加密,并將加密后的密文數(shù)據(jù)傳輸?shù)皆贫耍瑧?yīng)用管理系統(tǒng)接到數(shù)據(jù)后將其存放到存儲(chǔ)系統(tǒng)。
(3)用戶需要使用數(shù)據(jù)時(shí),應(yīng)用管理系統(tǒng)接到用戶請(qǐng)求后從存儲(chǔ)系統(tǒng)提取數(shù)據(jù)傳回給用戶,用戶收到后解密即可使用。
(4)由于全同態(tài)加密算法的特性,在用戶需要進(jìn)行數(shù)據(jù)檢索等操作時(shí),數(shù)據(jù)處理系統(tǒng)可直接對(duì)加密后的檢索詞在密文數(shù)據(jù)庫(kù)中進(jìn)行檢索,將檢索到的密文數(shù)據(jù)傳輸給用戶,用戶解密后即可查看。而不需要解密全部密文數(shù)據(jù)庫(kù)再檢索,這樣既節(jié)約時(shí)間、方便用戶,也減少了系統(tǒng)開銷。
2、安全方案應(yīng)用場(chǎng)景
該方案采用的是全同態(tài)加密算法,其應(yīng)用場(chǎng)景很廣泛,主要有以下3方面。
(l)隱私保護(hù):用戶數(shù)據(jù)以密文的形式傳輸?shù)皆贫瞬⒈4?,既保證了數(shù)據(jù)在傳輸過(guò)程中的安全性,又確保數(shù)據(jù)的存儲(chǔ)安全,即便是云計(jì)算服務(wù)商的工作人員也無(wú)法輕易獲取明文信息。
(2)數(shù)據(jù)處理:全同態(tài)加密機(jī)制可使用戶或可信第三方對(duì)密文數(shù)據(jù)直接進(jìn)行處理操作,而不用原始數(shù)據(jù),用戶得到運(yùn)算結(jié)果進(jìn)行解密即可得到處理好的數(shù)據(jù)。比如在醫(yī)療信息系統(tǒng)中,電子病歷均以密文形式存儲(chǔ)在云端的服務(wù)器上,當(dāng)衛(wèi)生部門需要知道某地區(qū)某種病的病人地理位置和年齡分布以應(yīng)對(duì)可能引發(fā)的公共衛(wèi)生安全問(wèn)題時(shí),就可將密文的電子病歷數(shù)據(jù)交給專業(yè)的數(shù)據(jù)處理服務(wù)商處理,得到處理結(jié)果后解密即可得到需要的正確數(shù)據(jù)。
(3)密文檢索:基于全同態(tài)加密技術(shù)的密文檢索方法可以直接對(duì)密文數(shù)據(jù)進(jìn)行檢索,不僅能保證查詢隱私和提高檢索效率,還能對(duì)被檢索數(shù)據(jù)進(jìn)行加法和乘法運(yùn)算而不改變對(duì)應(yīng)的明文。
小知識(shí)之同態(tài)加密
同態(tài)加密是基于數(shù)學(xué)難題的計(jì)算復(fù)雜性理論的密碼學(xué)技術(shù)。對(duì)經(jīng)過(guò)同態(tài)加密的數(shù)據(jù)進(jìn)行處理得到一個(gè)輸出,將這一輸出進(jìn)行解密,其結(jié)果與用同一方法處理未加密的原始數(shù)據(jù)得到的輸出結(jié)果是一樣的。







