徐 鵬, 陳天陽 金 海服務計算技術與系統(tǒng)教育部重點實驗室 集群與網(wǎng)格計算湖北省重點實驗室 計算機學院 華中科技大學, 武漢 中國 430074 深圳華中科技大學研究院, 深圳 中國 58057
云郵件系統(tǒng)是一種以軟件即服務模式向各公司或機構提供郵件服務的云計算系統(tǒng)。它的基本架構如圖1所示。在云郵件系統(tǒng)中, 云郵件服務提供商提供已經(jīng)配置好的郵件系統(tǒng)供用戶租用, 用戶只需要自己架設管理服務器, 對云郵件系統(tǒng)進行參數(shù)設置及管理系統(tǒng)用戶等。云郵件廠商通常會在一臺物理服務器上部署多臺虛擬服務器, 同時對外提供服務。
近年來, 云郵件系統(tǒng)的發(fā)展十分迅速, 如圖2所示為Radicati對云郵件企業(yè)總營收的預測結果。由圖可以看到, 從 2014年, 云郵件系統(tǒng)的市場規(guī)模以每年大約 42%的比例高速發(fā)展; 而到2018年, 所有云郵件企業(yè)的總營收會增長到 16.9億美元。另據(jù)DataMotion的調查, 有 50%的企業(yè)用戶正在使用云郵件系統(tǒng), 或者有使用云郵件系統(tǒng)的計劃。除此之外,Gartner還預計, 在2017年底, 至少33%的企業(yè)用戶會使用云郵件系統(tǒng)來為自己提供郵件服務。這一切都說明了云郵件系統(tǒng)發(fā)展受到廣泛關注。
云郵件系統(tǒng)受到企業(yè)青睞的主要因素是租用云平臺所帶來的低廉成本。如表 1所示為 Proofpoint發(fā)起的一項關于云郵件服務節(jié)省成本數(shù)量調查的結果。從表中可以看到, 雖然用戶數(shù)量越多, 云郵件系統(tǒng)能節(jié)省的成本也越高, 但是當用戶數(shù)量比較少的時候, 云郵件系統(tǒng)節(jié)省的成本總數(shù)也是不小的數(shù)字。除了成本之外, 企業(yè)使用云郵件系統(tǒng)還有另外一個重要原因, 就是不需要去關注郵件系統(tǒng)中軟件的更新、系統(tǒng)的漏洞以及數(shù)據(jù)的備份等。這些重要但瑣碎的事務都由云郵件服務提供商提供解決方案。同時, 如果云郵件系統(tǒng)中的數(shù)據(jù)出現(xiàn)了問題, 企業(yè)或者機構可以向云郵件服務提供商尋求賠償, 從這一點上來說, 使用云郵件系統(tǒng), 公司的郵件數(shù)據(jù)也有了一定保障。
雖然云郵件系統(tǒng)的發(fā)展如此迅速, 但是因為擔憂安全問題, 還是有大量用戶對于云郵件系統(tǒng)顧慮重重。用戶的擔憂不是沒有道理, 畢竟電子郵件承載了用戶太多的隱私甚至機密信息, 并且近年來電子郵件服務器的泄露事故層出不窮。比如2016年美國大選期間的郵件泄露事件; 2013年沃爾瑪內(nèi)部郵件泄露事件; 2012年敘利亞總統(tǒng)辦公室郵件泄露事件以及 2009年哥本哈根氣候變化會議郵件泄露事件等。這些郵件泄漏事件都對當事人或者當事國家造成了不小的損失, 從這些案例可以看出, 郵件服務器的安全非常重要。而在云郵件系統(tǒng)中, 常常是一臺物理服務器為多個公司或者機構提供服務, 這也意味著在云郵件系統(tǒng)廠商的單臺服務器上, 往往有多個公司或者機構的郵件信息。如果這些服務器上的郵件被泄露出去, 將會影響到不止一家公司, 造成的損失也會因為波及范圍的擴大而變得無法估量,甚至可能對云郵件系統(tǒng)的發(fā)展造成毀滅性的影響。因此, 將加密技術應用在云郵件系統(tǒng)上去是很有必要的。雖然傳統(tǒng)加密技術可以保證郵件的安全性, 但是在商用云郵件系統(tǒng)上, 安全性僅僅是最基礎的要求。本文將以云郵件系統(tǒng)為背景介紹加密技術的發(fā)展, 并且分析這些加密技術依然存在的科學問題。
表1 Proofpoint關于云郵件服務節(jié)省企業(yè)成本數(shù)量的調查結果[2]Table 1 Survey about the cost saved through Cloud Mail for enterprises producted by Proofpoint[2]
圖1 云郵件系統(tǒng)的具體架構Figure 1 Architecture of Cloud Mail System
圖2 Redicati對云郵件市場的預測[1]Figure 2 Redicati`s prediction on market of the Cloud Mail[1]
基于安全套接字層(Secure Socket Layer, SSL)的云郵件系統(tǒng)是使用SSL協(xié)議來傳遞郵件。SSL協(xié)議的運行原理如圖3所示, 其具體運行步驟為:
1. 用戶與服務器通訊, 以協(xié)商一個用于對通信鏈路進行加密的對稱密鑰(或稱會話密鑰);
2. 用戶使用會話密鑰加密郵件, 然后將加密后的郵件傳遞給郵件服務器;
3. 收到加密的郵件后, 服務器會將郵件解密,再將其存儲到用戶的發(fā)件箱, 并投遞給對應的收件人。目前, 提供 SSL技術的郵件公司有 Voltage、DataMotion、Proofpoing、EdgeWave、Symantec、Sophos、LuxSci和Privato等。
從SSL協(xié)議的運行方式中, 我們可以發(fā)現(xiàn), 基于SSL的云郵件系統(tǒng)中, 用戶的郵件在服務器端和客戶端都是明文保存的, 只有在傳輸鏈路上才是加密的。這種的技術的好處是實現(xiàn)簡單, 運行起來效率高,用戶群發(fā)郵件和群轉發(fā)郵件的操作簡單, 占用客戶端的帶寬和計算資源小, 并且在云郵件服務器上對郵件進行內(nèi)容檢索也很簡單。但是, 這種加密技術只能防止攻擊者對通信鏈路的竊聽, 而不能保證郵件保存時的安全。如果云郵件服務器遭到攻擊, 用戶郵件泄露, 那么攻擊者會獲得用戶的全部明文郵件。2011年Gmail便發(fā)生了這種郵件泄露事故。除此之外, 這種加密技術也不能避免郵件服務器對用戶郵件的掃描與窺探, 造成用戶隱私泄露, 比如2013年,Gmail就承認其掃描用戶郵件內(nèi)容, 不尊重用戶隱私。因此, 這種加密技術的安全性是不足的。
圖3 SSL協(xié)議的運行原理Figure 3 SSL Procotol
PGP(Pretty Good Privacy, 一種基于RSA公鑰加密體系的郵件加密協(xié)議)協(xié)議與基于身份加密[3](Identity-Based Encryption, IBE)均屬于公鑰加密體制,在運行原理上比較相似。圖4為PGP協(xié)議的運行原理, 其具體運行步驟為:
1. 發(fā)件人請求CA證書, 驗證收件人公鑰;
2. 發(fā)件人利用收件人公鑰加密郵件, 并發(fā)送給服務器;
3. 收件人從服務器接收解密郵件, 解密出明文。
圖5為IBE的運行原理, 其具體運行步驟為:
1. 發(fā)件人用收件人ID加密郵件, 并發(fā)送給服務器;
2. 收件人從服務器接收加密的郵件, 用私鑰解密并查看。
目前, 提供 PGP技術的郵件公司有 Voltage、DataMotion、Cryptzone、Symantec、Sophos和 Privato等; 提供 IBE技術的郵件公司有 Voltage、DataMotion、Proofpoint和Trendmicro等。
圖4 PGP協(xié)議的運行原理Figure 4 PGP Protocol
圖5 IBE協(xié)議的運行原理Figure 5 IBE Protocol
相比于SSL協(xié)議, PGP/IBE協(xié)議的優(yōu)點是更加安全。因為這兩種協(xié)議是用接收者的公鑰對郵件內(nèi)容進行加密, 而加密后的密文只有擁有私鑰的接收者才能解密。也就是說, 使用這種加密方式, 用戶無需擔心自己的郵件被攻擊者攔截獲取或者被服務器偷窺掃描, 因為他們都沒有私鑰, 無法獲得明文。雖然這兩種加密方式提高了郵件系統(tǒng)的安全性, 有效保障了用戶的隱私, 但是它們也有自己的缺點。
首先在發(fā)送郵件時, 如果用戶要將一份郵件發(fā)送給多個收件人, 那么有多少個收件人, 用戶的客戶端就要將用戶的郵件加密多少次, 然后將這些密文再分別傳送到云郵件服務器上。因此, 對于群發(fā)郵件, 客戶端的加密運算會消耗用戶過多的時間; 上傳郵件到服務器的過程也會消耗用戶的時間與帶寬資源; 另外, 如果用戶在發(fā)送郵件時使用的是移動設備, 那么用戶的電量也會因為加密時的運算開銷與上傳文件時的通信開銷而快速消耗, 降低用戶設備的續(xù)航。
除了上面兩點之外, PGP與IBE更嚴重的問題是,它們不支持群轉發(fā)功能。也就是說, 如果這兩種加密體制下的云郵件系統(tǒng)用戶在云郵件服務器上有一封早先發(fā)送過的郵件想要轉發(fā)給其他用戶, 那么他就必須先從云郵件服務器上將要轉發(fā)的郵件下載到本地, 將其解密后再重新加密發(fā)送出去。這樣的郵件轉發(fā)過程既復雜又浪費用戶的時間, 當然也存在上面所說的消耗用戶電量的問題。因此, 從上面所說的缺點來看, PGP與IBE并不能很好的滿足用戶需要。
從上述SSL、PGP與IBE協(xié)議的介紹可以看出,傳統(tǒng)加密技術使得云郵件的安全性與用戶使用時的友好性無法兼顧。
針對傳統(tǒng)公鑰加密技術無法有效實現(xiàn)加密郵件的群發(fā)和群轉發(fā)問題, 代理重加密[4](Proxy Re-Encryption, PRE)成為解決思路之一。PRE技術可以讓云端直接對密文進行計算, 將僅某用戶可以解密的密文直接轉化成另一個用戶可以解密的密文,從而節(jié)省大量網(wǎng)絡資源, 也充分利用了云端的計算資源, 減少了用戶的負擔。
稍具體地說, PRE的主要流程有:
1. 用戶 A用自己的公鑰加密數(shù)據(jù), 并將密文存放到云端, 此密文數(shù)據(jù)只能由用戶 A用自己的私鑰解密, 從而實現(xiàn)數(shù)據(jù)的云存儲保密性;
2. 當用戶A需要將此密文數(shù)據(jù)共享給用戶B時,用戶A可以生成一個重加密密鑰, 并將其發(fā)送給云端;
3. 云端使用該重加密密鑰對密文進行計算, 將僅可以由用戶A解密的密文轉化為用戶B可以解密的密文, 且在轉化的過程中不會泄露明文的任何信息。
PRE的思想是由Blaze, Bleumer和Strauss在文獻[4]中提出的, 并在文獻[5]中進行了規(guī)范的形式化定義。由于 PRE在密文共享方面的優(yōu)越性, 研究人員近幾年來對 PRE開展了大量的研究, 主要的工作如下。
3.1.1 傳統(tǒng)公鑰體制的PRE方案
在沒有使用雙線性映射的情況下,文獻[6]提出的PRE方案實現(xiàn)了選擇密文攻擊(Chosen Ciphertext Attacks, CCA)下的安全性?;谑褂米顝V泛的RSA簽名, 文獻[7]構造了PRE方案。文獻[8]所提出了單向并具有CCA安全性的PRE方案, 其中“單向”是指接收者的加密數(shù)據(jù)不會被同時共享給發(fā)送者。文獻[9-11]提出的 PRE方案在實現(xiàn)安全性的同時也實現(xiàn)了匿名性。在傳統(tǒng)的公鑰體制中, 每個用戶的公鑰為一個隨機數(shù), 因此用戶公鑰與用戶本身并沒有天然的綁定關系, 可能會發(fā)生由于公鑰與用戶不相符引起的數(shù)據(jù)泄露問題。因此, 在實際應用中需要權威的 CA為每一個用戶生成一個證書從而綁定用戶及其公鑰。每次執(zhí)行加密算法時, 發(fā)送方都要從CA下載證書, 并驗證用戶及其公鑰是否匹配; 當用戶數(shù)量較大時, 整個系統(tǒng)的證書管理、下載和驗證過程會帶來很大開銷[12]。為了解決傳統(tǒng)公鑰體制所面臨的問題, 出現(xiàn)了一種特殊的公鑰體制, 即 IBE, 進而也提出了基于身份加密體制的PRE方案。
3.1.2 基于身份加密體制的PRE方案
文獻[13]所提方案在隨機預言機(Random Oracle,RO)模型下具有可證明安全性。文獻[3]所提方案在標準模型下具有可證明安全性, 比RO模型下的方案具有更強的安全性。文獻[14,15]所提方案在標準模型下具有CCA安全性。文獻[3]所提方案中的初始密文、重加密密鑰和重加密密文都具有常數(shù)級長度, 使其傳輸效率更高, 并且將此方案運用到了醫(yī)療健康領域, 在應用上做了很大的突破。
在上述基于傳統(tǒng)公鑰體制的代理重加密方案和基于身份的代理重加密方案中, 代理方為每個接收者生成一條密文, 在多接收者請求一條數(shù)據(jù)的情況下, 需要為每一個接收者生成一個重加密密鑰, 代理方使用此重加密密鑰為每一個接收者執(zhí)行重加密算法生成一條重加密密文。因此執(zhí)行此步驟的次數(shù)與接收者人數(shù)成正比, 在這種情況下會造成大量的計算資源和網(wǎng)絡資源消耗。在實際的應用場景中, 多接收者請求一條數(shù)據(jù)的情況非常常見, 熱門資源經(jīng)常被大批量地分享, 這樣上述問題在這種場景下會非常明顯。
為了解決這個問題, 一般會使用廣播加密(Broadcast Encryption, BE)。BE是指為多接收者加密一條數(shù)據(jù), 生成一條密文, 此密文可被所有指定的接收者用自己的私鑰解密, 非指定的接收者無法解密。在這種方法中, 批量的用戶請求可以只進行一次加密。為了具有廣播的特點, 文獻[15]提出了廣播代理重加密(Broadcast PRE, BPRE)方案。BPRE的工作模式和常規(guī)的代理重加密很相似, 但是它有更強大的功能。在BPRE中, 發(fā)送者可以為一個接收者集合生成一條初始密文, 而不用為每一個接收者生成一條初始密文。而且, 發(fā)送者可以為另一個收者集合生成一個代理重加密密鑰, 發(fā)送給代理方做計算, 然后只生成一條重加密密文, 這條重加密密文可以由這個接收者集合中的每個成員解密。廣播代理重加密方案很好地解決了多用戶請求初始密文所面臨的效率問題, 在運行過程中由于發(fā)送方只需要生成一個重加密密鑰, 因此會節(jié)省大量的計算和網(wǎng)絡資源。
在以上提出的這些代理重加密方案中, 在代理收到發(fā)送者的重加密密鑰后, 可以將發(fā)送者的所有初始密文進行重加密運算, 這樣發(fā)送方也因此失去了共享的細粒度控制能力, 使得云端重加密的密文范圍超出用戶的預期。為了解決這個問題, 文獻[16]提出了基于類型的代理重加密(Type-based PRE,PRE)方案, 使得代理方只能對具有指定類型的初始密文做重加密計算。文獻[17]中提出了一個相似的概念,即帶條件的代理重加密(Conditional PRE, CPRE)。在這種方法中, 當且僅當初始密文具有的條件與重加密密鑰所具有的條件相同時, 云端才可以對該初始密文進行重加密計算。上述兩種方案都在RO模型下具有可證明安全性。之后, 更多的 CPRE方案被提出。文獻[3,14,18]所提方案均實現(xiàn)了對密文的細粒度控制。文獻[19]所提方案實現(xiàn)了基于身份體制、細粒度控制和代理重加密的有效結合, 并且提出的方案在標準模型下具有 CCA安全性。文獻[20]提出了具有CCA安全性的CPRE方案, 并且使其運算過程更高效。文獻[21]提出了具有匿名性的帶條件的廣播代理重加密方案, 并且提出的方案在標準模型下具有可證明安全性。
文獻[22]所提方案可以允許發(fā)送者控制對自己初始密文做重加密運算的時間。當發(fā)送者為重加密一條初始密文生成一個重加密密鑰時, 發(fā)送者需要將這條初始密文的接收者作為輸入。在實際情況中,這意味著發(fā)送者需要保存他所發(fā)送的所有初始密文的接收者, 這對存儲資源的限的終端(例如移動設備)來說, 有很大的限制。
文獻[23,24]所提方案具有多用戶間雙向重加密的特性, 這種特性使一條密文可被多次重加密, 也就是說一個重加密密鑰可被兩方共享。舉例來說, 如果Alice為Bob生成了一個重加密密鑰, 代理方可使用此重加密密鑰將Alice的密文計算生成一個可以由Bob解密的密文, 此重加密密鑰也可以用做將Bob的密文為Alice生成重加密密文。這兩個方案分別在隨機預言機模型和標準模型下具有抵抗密文攻擊的安全性。文獻[25]所提方案具有在云計算環(huán)境下可撤銷的基于身份代理重加密的特性, 這種特性支持用戶可以授權或撤銷對密文的解密權。
上述 PRE方案, 在易用性和高效性方面依然存在問題: 1. 用戶生成重加密密鑰發(fā)送給云端后, 云端可以使用此重加密密鑰將發(fā)送者的所有密文數(shù)據(jù)進行轉化, 因此用戶無法對云端轉化的密文數(shù)據(jù)進行粒度控制; 2. 傳統(tǒng)的公鑰體制在運行過程中, 需要認證中心將用戶與證書進行綁定, 用戶需要進行證書管理和證書認證, 造成管理消耗; 3. 當需要向多用戶分享時, 只能為一個接收者生成一個重加密密鑰, 因此需要生成的密文數(shù)目與接收者人數(shù)成正比, 會造成時間和網(wǎng)絡資源的大量消耗。
針對這些問題, 我們提出了帶條件的基于身份廣播代理重加密(Conditional Identity-based Broadcast Proxy Re-Encryption, CIBPRE)方案[19]。
CIBPRE方案有三個特點: 基于身份加密、廣播加密和帶條件的代理重加密。它們的作用如下:
1. 基于身份加密, 意味著 CIBPRE加密體制的運行不需要公鑰基礎設施(Public Key Infrastructure,PKI)的支持, 因為用戶的郵件地址就是加密時所需的公鑰, 只需要密鑰生成中心(Key Generation Centre,KGC)為每個用戶生成私鑰即可。而 KGC的運行成本比 PKI要低許多, 并且客戶端在加密時免去了獲取公鑰證書的開銷。因此 CIBPRE加密體制運行所需要的成本比較小;
2. 廣播加密, 意味著用戶可以方便地群發(fā)郵件。用戶在使用廣播加密技術群發(fā)加密郵件時, 只要將明文郵件使用所有收件人的郵箱地址加密一次,產(chǎn)生的密文就可以被所有收件人使用自己的私鑰解密。廣播加密技術克服了PGP協(xié)議和IBE協(xié)議在群發(fā)郵件時加密開銷與通信開銷大的問題, 節(jié)約了用戶的時間和帶寬, 提升了移動設備用戶的續(xù)航;
3. 帶條件的代理重加密, 意味著用戶可以方便地群轉發(fā)自己保存在云郵件服務器上面的郵件。當用戶想要轉發(fā)一封已經(jīng)存在于服務器上的郵件給其他一組接收者的時候, 他只需要在本地生成一個重加密密鑰文件再將其提交給服務器。服務器在收到重加密密鑰后就可以對用戶指定的郵件進行重加密操作, 完成后再將重加密后的郵件轉發(fā)給用戶新指定的一組接收者。新的接收者在收到重加密后的郵件后, 便可以使用自己的私鑰解密出明文來查閱了。同時, 由于使用了帶條件的代理重加密技術, 云服務器也不可能和某接收者合謀, 利用用戶的重加密密鑰重加密用戶的所有郵件, 造成用戶隱私泄露。
圖6 基于CIBPRE體制的郵件系統(tǒng)運行原理Figure 6 CIBPRE-Based Cloud Mail system
CIBPRE加密體制的核心算法有7個, 它們分別為SetupPRE、ExtractPRE、EncPRE、RKExtractPRE、ReEncPRE、Dec-1PRE和Dec- 2PRE。它們的作用如下:
1.SetupPRE: 初始化CIBPRE系統(tǒng)并生成系統(tǒng)運行所必要的參數(shù);
2.ExtractPRE: 根據(jù)用戶ID為用戶生成私鑰;
3.EncPRE: 對用戶的文件進行加密操作, 產(chǎn)生的密文可被一組接收者解密;
4.RKExtractPRE: 生成重加密密鑰, 用于重加密已有郵件;
5.ReEncPRE: 利用重加密密鑰對用戶的郵件進行重加密操作, 產(chǎn)生的重加密郵件可被另一組接
收者解密;
6.Dec- 1PRE: 利用私鑰解密EncPRE算法加密的郵件;
7.Dec- 2PRE: 利用私鑰解密ReEncPRE算法重加密后的郵件。
如圖6所示為基于CIBPRE加密體制的云郵件系統(tǒng)的運行原理。
基于 CIBPRE的云郵件系統(tǒng)運行時, 其具體的運行步驟為:
1. 密鑰生成中心運行SetupPRE算法, 初始化并生成主公開參數(shù)與主秘密參數(shù);
2. 密鑰生成中心運行ExtractPRE算法, 為系統(tǒng)中的用戶生成私鑰;
3. 發(fā)送者運行EncPRE算法, 使用第一組接收者的ID加密郵件, 并將其上傳到郵件服務器;
4. 第一組接收者上線時, 從郵件服務器下載加密郵件到本地, 并在本地運行Dec- 1PRE算法, 解密并查看郵件密文;
5. 發(fā)送者要將已發(fā)送的郵件轉發(fā)給第二組接收者時, 會在本地運行RKExtractPRE算法, 生成重加密密鑰, 并上傳到云郵件服務器;
6. 云郵件服務器收到發(fā)送者的重加密密鑰后,利用重加密密鑰對指定的郵件運行ReEncPRE算法,并將重加密后的郵件轉發(fā)給指定的接收者;
7. 第二組接收者上線時, 從郵件服務器下載重加密的郵件到本地, 并在本地運行Dec- 2PRE算法,解密并查看郵件明文。
表2 CIBPRE方案與現(xiàn)有郵件加密技術的對比Table 2 Comparisons between CIBPRE and the existing email-encryption schemes
圖7 初始密文加解密性能開銷與用戶數(shù)量關系[19]Figure 7 The decryption cost of an initial cipher[19]
如圖7所示為加密生成初始密文(折線Enc)和解密初始密文(折線Dec-1)時, CIBPRE方案性能開銷與用戶數(shù)量的關系; 如圖 8所示為對密文進行重加密操作(折線 ReEnc)與解密重加密密文(折線 Dec-2)時,CIBPRE方案性能開銷與用戶數(shù)量的關系。如表3所示為測試的環(huán)境。從測試結果可以看出, CIBPRE方案運算所需時間與系統(tǒng)中支持的收件人數(shù)量大致成正比, 并且當收件人數(shù)量不是特別高時, 對初始密文以及重加密密文的加解密操作所耗費的時間都在可以接受的范圍內(nèi)。
圖8 重加密密文加解密性能開銷與用戶數(shù)量關系[19]Figure 8 The decryption cost of a re-encrypted cipher[19]
如表 2所示為 CIBPRE方案與 SSL、PGP/IBE方案的綜合對比。從表中可以看出, CIBPRE方案既擁有SSL協(xié)議的便捷性, 又擁有PGP/IBE協(xié)議的安全性。再加上其可接受的性能開銷, 可以得出CIBPRE加密體制非常適合應用在云郵件系統(tǒng)的結論。
表3 性能測試環(huán)境[19]Table 3 Configurations and parameters[19]
雖然上面介紹的 CIBPRE方案可以在保障安全性的條件下有效提高用戶體驗, 但它還是擺脫不了加密郵件系統(tǒng)普遍都有的缺點, 即在云郵件服務器上無法按照內(nèi)容來檢索所需郵件。這個缺點產(chǎn)生的原因也很直接, 即加密后的郵件密文通常不支持搜索。假設用戶在云服務器存儲了幾百封密文郵件, 用戶想要取回特定的一封郵件時, 由于云端沒有檢索功能, 不能找到用戶想要的郵件, 只能將全部郵件都返回給用戶, 用戶解密后自行檢索才能得到想要的數(shù)據(jù)。很顯然, 這種處理方法在實際應用中是不能被接受的, 所以如何實現(xiàn)用戶提交檢索請求時, 云服務器能高效率檢索并返回指定的密文是云郵件系統(tǒng)的重要問題和需求之一。
為了解決該問題, 可搜索加密(Searchable Encryption, SE)被提出。總的來說, 可搜索加密方案允許數(shù)據(jù)擁有者用加密密鑰生成可搜索密文, 并將密文存放在云端; 當數(shù)據(jù)擁有者需要委托云端檢索含有指定關鍵字的密文時, 數(shù)據(jù)擁有者用解密密鑰和被檢索關鍵字生成對應的檢索陷門, 并將該陷門發(fā)送給云端; 收到陷門后, 云端可以檢索匹配的密文, 并返還給數(shù)據(jù)擁有者; 最后, 數(shù)據(jù)擁有者解密出明文。在上述過程中, 可搜索加密方案可以保障被檢索關鍵字的保密性。
可搜索加密方案有兩種: 可搜索對稱加密(Searchable Semantic Encryption, SSE)[26]與可搜索公鑰加密(Public-Key Encryption with Keyword Search,PEKS)[27], 其中, 因為可搜索對稱加密需要與其他用戶共享秘密消息的天然缺陷, 不適合應用在主要為收件人提供云檢索服務的云郵件系統(tǒng)中。因此在這里不討論可搜索對稱加密。
可搜索公鑰加密由Dan Boneh在文獻[27]首次提出, 之后其相關研究受到了廣泛的關注。針對PEKS的概念存在的一些缺陷, Abdalla等人[28]進一步完善了PEKS的一致性定義, 并且解決了PEKS與基于身份加密間的通用轉換問題。圍繞PEKS的檢索多樣性問題, 文獻[29-35]實現(xiàn)了關鍵字的合取檢索; 文獻[36-38]實現(xiàn)了關鍵字的范圍檢索; 文獻[37]實現(xiàn)了關鍵字的子集檢索; 文獻[31, 39]實現(xiàn)了時間范圍檢索;文獻[39, 40]實現(xiàn)了關鍵字的相似度檢索。針對不可信的關鍵字檢索陷門生成者, Camenisch等人[41]提出了“不經(jīng)意的”關鍵字陷門生成算法, 從而保護關鍵字在其檢索陷門生成過程中的隱私性。
雖然上述文獻都為 PEKS的研究與發(fā)展作出了重要貢獻, 但是所有上述PEKS方案均存在安全性高(具有語義安全性)但是檢索效率低下問題, 即檢索復雜度與所有密文的數(shù)目線性相關。為了實現(xiàn)關鍵字的高效檢索, Bellare等人[42]引入了“確定的公鑰加密”這一概念, 并且形式化地定義其安全性。該安全性比單向性強, 但是比語義安全性弱。在檢索效率方面, 確定的公鑰加密使得關鍵字的檢索十分高效,其檢索效率就如同關鍵字沒有進行加密一般。Bellare等人[42]同時也提出了一個確定的公鑰加密方案(即RSA-DOAEP方案), 和一個在RO模型下將概率的公鑰加密方案轉化成確定的公鑰加密的通用方法。針對文獻[42]中確定的公鑰加密方案存在的安全性不足, Bellare等人[43]和Boldyreva等人[44]分別在標準模型下提出了確定的公鑰加密方案。前者基于通用的難題假設給出了通用的構造方法, 后者基于具體的難題假設給出了效率更高的實例化方案。進一步地,Brakerski等人[45]提出了具有更好安全性的確定的公鑰加密方案。由于在理論上, 只有當明文空間具有先驗高熵時, 確定的公鑰加密方案才可能具有語義安全性, 否則攻擊者只需要發(fā)起加密并且測試這種簡單的暴力攻擊就可以提取出加密的內(nèi)容。因此, 由于關鍵字空間通常不具有先驗高熵, 因此由確定的公鑰加密實現(xiàn)的關鍵字可搜索公鑰加密無法實現(xiàn)語義安全性。
Camenisch等人[41]非正式地描述了一種方法, 使得具有相同關鍵字的密文形成一條隱式鏈。如果服務器正確查找到第一條匹配的密文, 他們的方法將會提高檢索的效率。然而, 他們并沒有解決如何找到第一段匹配密文的問題。同時, 他們的加密方案不具備語義安全性。在每一條鏈中, 第一段密文和后邊的密文是平凡可區(qū)分的。這種平凡可區(qū)分性使得在這個方案中很難正確定義語義安全性。實際上, 他們并沒有提供任何正式的安全性定義。
Boneh等人[27]在公鑰加密開山作中給出了明確的安全性定義, 即選擇關鍵字攻擊下的語義安全性(Semantic Security under Chosen Keyword Attacks,SS-CKA)。此安全性定義意味著如果服務器沒有得到關鍵字檢索的自陷門, 那么服務器就不會獲取含有對應關鍵字的密文段中的任何信息。但是選擇關鍵字攻擊下的語義安全性并沒有論述當關鍵字檢索自陷門被知曉的情況下是否依舊能保障關鍵字的機密性。
Byun等人[46]首次提出了關鍵字猜測攻擊(Keyword Guessing Attacks, KGA)這個概念。Jeong等人[47]證明了任何至少滿足計算不可區(qū)分的一致性的PEKS方案都容易遭受KGA這種攻擊。KGA的攻擊模式, 即攻擊者產(chǎn)生所有對應關鍵字的密文。如果關鍵字空間是多項式規(guī)模, 那么這種攻擊模式非常容易實現(xiàn)。為了抵抗外部攻擊者發(fā)起的KGA攻擊,文獻[48,49]分別提出兩種方法: 一種是為關鍵字檢索陷門建立安全性的傳輸信道; 另一種是PEKS的發(fā)送方和接收方通過協(xié)商關鍵字的別名實現(xiàn)關鍵字的匿名性。但是, 由于PEKS的主要優(yōu)點在于發(fā)送方和接收方不需要同時在線即可以完成可搜索密文的生成, 因此文獻[49]提出的方案在實際應用失去了PEKS天生的優(yōu)勢。解決這個問題的一個簡單方法就是通過允許發(fā)送者自定義關鍵字實現(xiàn)增大關鍵字的空間。然而, 正如文獻[50]所示, 這種方式使得接收者很難去生成對應的關鍵字檢索陷門。并且如果不同的發(fā)送者使用不同的關鍵字來表達同一個意思,那么接收者就必須生成多個關鍵字檢索陷門來檢索匹配的密文, 由此帶來巨大的計算開銷。因此, 很有必要拓展傳統(tǒng)的 PEKS模型來實現(xiàn)在關鍵字空間很小的情況下, 保證在KGA攻擊模式下關鍵字的機密性[51]。文獻[52]拓展了 PEKS, 將靜態(tài)索引以及動態(tài)索引結合起來構造了混合索引密文檢索方案, 利用靜態(tài)索引將關鍵字的首次檢索復雜度從 O(n)降低到O(n*w), 利用動態(tài)索引將關鍵字的非首次檢索復雜度從O(n)降低到O(w)。
根據(jù)上面的國內(nèi)外研究現(xiàn)狀的闡述可以看出,在可搜索對稱加密領域, “結構化”的思想已經(jīng)被用來實現(xiàn)了高安全的和檢索高效的關鍵字可搜索對稱加密, 并進一步實現(xiàn)結構化數(shù)據(jù)的對稱加密。但是,在可搜索公鑰加密領域, “結構化”的思想僅在文獻[41]中出現(xiàn), 但是這篇文章完全沒有討論其提出方案的高安全性, 而且很明顯的該方案不具有高安全性。進一步地, 該文獻也沒有正式地和形式化地討論和定義結構化可搜索公鑰加密及其安全性。僅針對PEKS的低檢索效率, 有一些文獻[42-45]雖然提出了高檢索效率的方法, 但同時也大幅降低了安全性。由此可見, 有關“結構化可搜索公鑰加密”及其相關領域的研究幾乎是沒有的, 結構化數(shù)據(jù)的公鑰加密研究更是難覓蹤跡。
由于 PEKS具有的高安全性使得即使含有相同關鍵字的兩個密文, 它們之間也相互獨立, 因此PEKS的檢索復雜度似乎必須是線性級(即與密文的總量線性相關)。而且, 現(xiàn)有的高安全的 PEKS實例化方案也都是這種線性級的檢索復雜度。為了解決這個問題, 我們提出了一種帶隱藏結構的可搜索公鑰加密方案[53](Searchable Public-key Ciphertext with Hidden Structures, SPCHS)。
SPCHS首次在保證語義安全性的條件下實現(xiàn)了亞線性級的檢索復雜度, 降低了PEKS方案的檢索開銷。除此之外, 通過采用我們提出的一種特殊的基于身份密鑰封裝機制[53], 提出了新的匿名基于身份廣播加密方案[54], 該方案具備基于標準模型常數(shù)級解密效率、抗適應性攻擊以及強匿名性這四種特性。SPCHS方案的核心思路是, 為同一個關鍵字的所有可搜索密文構造一個隱藏的鏈式結構, 再將所有的鏈式結構的頭部與一個公共頭部連接起來, 形成一個星型結構, 如圖9所示。
圖9 SPCHS方案為可搜索密文構造的星型結構[50]Figure 9 Star-like structure of ciphers in SPCHS[50]
SPCHS方案的核心算法有 5個, 它們分別是參數(shù)初始化算法SystemSetup、隱藏結構初始化算法StructureInitialization、可搜索密文生成算法StructuredEncryption、關鍵字檢索陷門生成算法Trapdoor和結構化密文檢索算法StructuredSearch,它們的作用是:
1.SystemSetup: 初始化 SPCHS方案運行所需的參數(shù), 包括主公開信息和主秘密信息;
2.StructureInitialization: 本算法接收 SPCHS的主公開信息, 生成并初始化隱藏結構的私有部分與公有部分;
3.StructuredEncryption: 本算法接收SPCHS的主公開信息、關鍵字和隱藏結構的私有部分, 生成SPCHS的可搜索密文;
4.Trapdoor: 本算法接收 SPCHS的主秘密信息和關鍵字, 生成關鍵字檢索陷門;
5.StructuredSearch: 本算法接收系統(tǒng)公鑰、隱藏結構的公有部分、可搜索密文集合和關鍵字搜索陷門, 查找到關鍵字對應的密文。
如圖10所示為基于SPCHS的內(nèi)容可搜索加密郵件系統(tǒng)的運行原理。
圖10 基于SPCHS可搜索加密的郵件系統(tǒng)運行原理Figure 10 SPCHS-Based mail system
它的具體運行步驟為:
1. 接收者輸入安全參數(shù), 運行SystemSetup算法,生成系統(tǒng)主公開信息和主秘密信息;
2. 接收者將主公開信息傳遞給發(fā)送者, 發(fā)送者運行StructureInitialization算法, 生成隱藏結構的公有部分和私有部分; 發(fā)送者將在步驟 2中生成的隱藏結構的公有部分上傳至云郵件服務器;
3. 發(fā)送者為接收者生成可搜索密文時, 輸入系統(tǒng)主公開信息、密文的關鍵字和隱藏結構的私有部分, 運行StructuredEncryption算法, 生成可搜索密文, 并上傳到服務器保存;
4. 接收者要根據(jù)某關鍵字查找發(fā)送者發(fā)送給自己的文件時, 輸入系統(tǒng)主秘密信息和待檢索的關鍵字, 運行Trapdoor算法生成關鍵字檢索陷門, 并上傳至服務器;
5. 服務器收到接收者的關鍵字檢索陷門后, 對每一個發(fā)送可搜索密文給接收者的發(fā)送者, 輸入系統(tǒng)主公開信息、發(fā)送者隱藏結構的公有部分、可搜索密文和檢索陷門, 運行StructuredSearch算法, 找到所有滿足條件的密文;
6. 將第5步找到的滿足條件的密文返回給接收者。
如圖11所示為SPCHS方案性能開銷與含有指定關鍵字的密文數(shù)量的關系圖像; 如表 4所示為測試環(huán)境。可以看到, SPCHS方案的檢索用時與包含指定關鍵字的密文的數(shù)量成正比關系。如果不考慮極端情況, 如檢索的關鍵字正好被云存儲服務器上所有密文都包含, 那么相比PEKS方案, SPCHS方案能夠節(jié)省的時間將會非常可觀。
圖11 檢索耗時與指定關鍵字密文數(shù)量關系[50]Figure 11 The search cost[50]
SPCHS方案在保證了可搜索公鑰加密安全性的基礎上, 提高了密文檢索效率, 如果能夠應用在云郵件系統(tǒng)上, 可以極大地提升用戶體驗, 提高用戶的使用效率。
在使用上述技術提高云郵件系統(tǒng)的安全性和易用性的同時, 也帶來了另一個問題, 即兩個使用不同加密體制的云郵件系統(tǒng)的用戶間該如何互相轉發(fā)郵件的問題。這個問題具有重要的實用意義, 現(xiàn)代社會, 企業(yè)間的合作司空見慣, 而兩個不同企業(yè)的員工之間也大多使用email進行通信交流。如果這兩個企業(yè)的同時使用了云郵件系統(tǒng), 并且這兩個企業(yè)的云郵件系統(tǒng)使用的加密體制不一樣, 那兩個企業(yè)的員工間如何互相轉發(fā)郵件便成為問題。對于SSL協(xié)議, 解決這個問題比較簡單, 因為SSL協(xié)議中, 云平臺上的郵件以明文形式保存, 在進行郵件轉發(fā)時云郵件系統(tǒng)直接將郵件投遞到另一個云郵件系統(tǒng)即可。雖然很便捷, 但是SSL協(xié)議的安全性不足, 無法阻止郵件明文的泄露。對于PGP/IBE協(xié)議, 解決這個問題便很困難了, 因為 PGP/IBE只有在指定的密碼體制下使用私鑰才能解密, 直接轉發(fā)到另一個體制的云郵件系統(tǒng)中, 接收者是沒有辦法解密出明文的。同樣的, 基于PRE的云郵件系統(tǒng)也存在同樣的問題。針對異構PRE方案之間的安全郵件發(fā)送問題, 學術界提出了混合代理重加密(Hybrid Proxy Re-Encryption,HPRE)。
表4 性能測試環(huán)境[50]Table 4 Configurations and parameters[50]
近幾年來, 為了滿足加密云數(shù)據(jù)的多樣化共享功能, 國內(nèi)外已經(jīng)涌現(xiàn)出多種多樣的 PRE方案。這些方案在具備代理重加密的基本功能基礎上, 還具有很多其他的特性, 從而使之能夠滿足不同應用場景的要求。從密鑰類型方面來看, 有傳統(tǒng)的基于證書的 PRE方案、基于身份的 PRE方案和基于屬性的PRE方案等; 從功能性方面來看, 有帶條件的 PRE方案[15,21]能夠實現(xiàn)以細粒度的方式安全共享用戶的云端數(shù)據(jù); 廣播PRE方案[15,22]可同時向多個用戶共享數(shù)據(jù)。
這些種類繁多的PRE方案有利于用戶共享他們在云端的數(shù)據(jù)。然而, 帶來便利的同時也產(chǎn)生了一個新的問題: 假設有兩個加密云存儲平臺分別使用了不同的 PRE方案, 那么這兩個云存儲平臺之間就無法安全共享數(shù)據(jù)。這個問題同樣存在于同一個云平臺中, 當兩個企業(yè)租用了同一云平臺, 但是了不同的 PRE方案來實現(xiàn)它們的云存儲服務時, 也無法實現(xiàn)安全的數(shù)據(jù)共享。
為了實現(xiàn)異構 PRE方案之間的安全數(shù)據(jù)共享,學者們提出了混合代理重加密方案(Hybrid PRE,HPRE)。2007年, Matsuo在 Pairing-Based Cryptography會議上首次提出了HPRE的概念[55], 并提出了CB-PRE到IB-PRE的密文轉換HPRE方案。Niu 等人[56]在Matsuo的基礎上做了改進, 解決了其存在的密鑰托管問題。Wang等人[57]提出了 IB-PRE到CB-PRE的HPRE方案, 但存在密鑰托管問題。針對該問題, Zhang等人[58]提出了解決方案。Wei等人[59]和 Mizuno等人[60]分別提出了 CL-PRE到 AB-PRE,和AB-PRE到IB-PRE的HPRE方案。Tang等人[61]研究了跨域的 PRE問題, 即授權方與被授權方分別處于不同的兩個域中(部署了不同 IB-PRE方案), 并提出了跨域的IB-PRE到IB-PRE的HPRE方案來解決該場景的問題。Xu等人[62]提出了安全的 IB-PRE到CB-PRE的HPRE方案, 并且該方案實現(xiàn)了數(shù)據(jù)的細粒度共享。
現(xiàn)有的 HPRE方案均是針對特定的 PRE方案,無法通用地解決異構 PRE方案之間的的數(shù)據(jù)轉換,因而, 我們提出了通用混合代理重加密[63](Generally HPRE, GHPRE)來更好地解決異構PRE方案間的數(shù)據(jù)共享。
GHPRE提供了一種在任意兩個不同的 PRE體制間, 或者由 PRE體制向傳統(tǒng)公鑰加密體制(Public Key Encryption, PKE)進行文件分享的通用方案。由于GHPRE方案的通用性極強, 在兩個加密體制不同的云郵件系統(tǒng)間部署 GHPRE方案時不需要對已部署的加密體制進行太多修改, 只要按照GHPRE的定義添加代碼即可。因此GHPRE方案非常適合應用在兩個已有的加密體制不同的云郵件系統(tǒng)之間。
這里, 首先給出PRE和PKE的定義。PKE由以下算法組成:
1.Setupa: 初始化并生成PKE系統(tǒng)運行所需的參數(shù);
2.Extracta: 為系統(tǒng)中的每個用戶生成一對公私鑰;
3.Enca: 利用用戶公鑰對數(shù)據(jù)進行加密, 加密后的文件能且僅能被公鑰對應的私鑰解密;
4.Deca: 利用用戶的私鑰解密使用用戶公鑰加密的數(shù)據(jù)。
PRE由以下算法組成:
1.Setupb: 初始化并生成PRE系統(tǒng)運行所需的參數(shù);
圖12 GHPRE算法的核心流程Figure 12 GHPRE scheme
2.Extracta: 為系統(tǒng)中的每個用戶生成一對公私鑰;
3.Encb: 利用用戶公鑰將明文數(shù)據(jù)進行加密,生成 PRE系統(tǒng)的初始密文, 生成的密文能且僅能利用公鑰對應的私鑰被Dec-1b解密出明文;Dec-1b:利用用戶的私鑰, 解密使用用戶公鑰加密的密文,生成明文;
4.RKb: 生成密文的重加密密鑰。用戶將重加密密鑰上傳到云端, 云端利用重加密密鑰, 使用ReEncb算法對用戶指定的密文進行重加密, 生成重加密密文。重加密密文可以被在重加密密鑰生成過程中指定的一個用戶解密;
5.ReEncb: 利用重加密密鑰, 對用戶指定的文件進行重加密操作, 生成重加密密文。重加密密文可以被在重加密密鑰生成過程中指定的一個用戶解密;
6.Dec-2b: 使用用戶的私鑰解密ReEncb算法生成的重加密密文, 生成對應的明文。
GHPRE是一套通用的算法, 它的核心算法流程如圖12所示。假設一個PRE體制的用戶A要向另外一個PKE體制的用戶B轉發(fā)一封郵件Mail, 且郵件Mail是使用用戶A的公鑰PKA加密存儲在云端的。用戶A首先從自身的密鑰生成中心KGCA獲取一對臨時公私密鑰(PKTemp,SKTemp), 隨后使用自己的私鑰SKA和臨時公鑰PKTemp在本地生成用于在用戶A所在的PRE體制內(nèi)部進行加密文件共享的重加密密鑰RKA。之后, 用戶A向其所在的云郵件系統(tǒng)提交生成的重加密密鑰RKA, 由云端使用RKA將用戶原本的密文郵件EncMail重加密, 得到重加密后的密文郵件ReEncMail。其中,ReEncMail可以使用臨時私鑰SKTemp進行解密。用戶A查詢獲得用戶B的公鑰PKB, 隨后使用公鑰PKB將可以解密郵件的臨時私鑰SKTemp加密為密文EncSK待用。云郵件服務器CloudA再將(EncSK,ReEncMail)一起傳輸給用戶B所屬的云郵件服務器CloudB。傳輸完畢后, 用戶B只需要從云服務器CloudB上下載(EncSK,ReEncMail), 再使用自己的私鑰從EncSK中解密出臨時私鑰SKTemp, 使用SKTemp解密ReEncMail就可以順利獲得用戶A的郵件明文Mail。
由GHPRE算法的核心流程可以看出, 算法很巧妙地申請了一對臨時的公私鑰, 發(fā)送者在跨密碼體制轉發(fā)郵件時, 相當于把自己的郵件轉發(fā)給了臨時的公鑰, 再用接收者的公鑰將臨時私鑰加密。這樣一來, 接收者就可以先解密出臨時私鑰, 再使用臨時私鑰解密出明文了。
接下來闡述如何使用 GHPRE方案來進行解決異構密碼算法的加密云郵件系統(tǒng)間的郵件轉發(fā)問題。假設部署了基于PKE的a和基于PRE的b兩個加密云郵件系統(tǒng), 下面詳細闡述如何部署GHPRE方案(稱為g), 實現(xiàn)b系統(tǒng)中的用戶 Alice發(fā)送郵件給a系統(tǒng)中的用戶 Carl, 其中令b=(Setupb,Extractb,Encb,Dec-1b,RKb,ReEncb,Dec- 2b)和a= (Setupa,Extracta,Enca,Deca)。
假設Alice想要發(fā)送郵件給Carl。令g=(Setupg,Extractg,Encg,Dec-1g,RKg,ReEncg,Dec-2g),g是一個GHPRE方案, 采用了PRE方案b和PKE方案a作為構造模塊。方案g的主公開參數(shù)MPg=(MPa,MPb)。b系統(tǒng)中的用戶發(fā)送郵件給與a系統(tǒng)中的用戶由以下幾個步驟組成:
1. 系統(tǒng)初始化階段:b加密云和a加密云均生成它們各自的主公開和主秘密參數(shù), 從而初始化各自的系統(tǒng)。令KGCb和KGCa分別是b加密云和a加密云的密鑰生成中心。令(K,SE,SD)為一個對稱加密方案, 其中K是對稱密鑰空間,SE和SD分別是對稱加密和解密算法。KGCb執(zhí)行算法Setupb生成主公開和主秘密參數(shù)(MPb,MSb), 并選擇一個安全的對稱加密方案(K,SE,SD), 比如 AES算法。類似地,KGCa執(zhí)行算法Setupa生成主公開和主秘密參數(shù)(MPa,MSa) 。最后,KGCb發(fā)布 (MPb,K)給b加密云Cloudb,KGCa發(fā)布MPa給a加密云Clouda。這一步驟如圖13中點虛線所示;
圖13 GHPRE系統(tǒng)初始化與密鑰分發(fā)過程Figure 13 System setup and key publish in GHPRE
2. 密鑰分發(fā)階段:KGCb和KGCa為各自系統(tǒng)中的用戶生成一對真實的公私鑰。Alice想要加入b加密云時, 然后KGCb執(zhí)行算法Extractb生成一對真實的公私鑰(PKAlice,SKAlice)并通過一個安全信道將(MPb,K,PKAlice,SKAlice)發(fā)送給 Alice。同樣的, Bob通過同樣的方式獲取他的真實公私鑰(PKBob,SKBob)。當Carl加入a加密云時,KGCa執(zhí)行算法Extracta生成一對真實公私鑰(PKCarl,SKCarl)并通過安全信道將(MPa,PKCarl,SKCarl)發(fā)送給Carl。這一步驟如圖13的虛線所示;
3. Alice生成一個重加密密鑰RKg,Alice?Carl?RKg并將其發(fā)送給Cloudb。在這一步, 首先 Alice從KGCb獲取一對臨時公私鑰(PKTemp,SKTemp)以及a系統(tǒng)的主公開參數(shù)MPa;接著, Alice執(zhí)行算法RKb生成b系統(tǒng)的重加密密鑰RKb,Alice?PKTemp, 并執(zhí)行算法Enca, 用Carl的公鑰將臨時私鑰加密得到EncSKCarl; 最后, Alice將g的重
加 密 密 鑰RKg,Alice?Carl= (RKb,Alice?PKTemp,EncSKCarl)發(fā)送給b郵件系統(tǒng)。這一步驟如圖14中的點虛線所示;
4.b郵件系統(tǒng)得到重加密密鑰RKg,Alice?Carl=(RKb,Alice?PKTemp,EncSKCarl), 執(zhí)行重加密算法ReEncg將 Alice的密文EncMailAlice重加密得到新密文ReEncMailPKTemp, 并將(ReEncMailPKTemp,EncSK)發(fā)送給Clouda。這一步驟如圖14中的虛線所示;
5. 當 Carl上線時, 他從Clouda收到郵件密文(ReEncMailPKTemp,EncSK), 然后先執(zhí)行Dec-2g得到用于解密郵件的對稱密鑰KAlice, 再執(zhí)行SD得到明文數(shù)據(jù)Mail。在一步中, Carl先執(zhí)行Deca得到臨時私鑰SKTemp, 接著執(zhí)行Dec-2b得到對稱密鑰KAlice, 最后執(zhí)行SD得到郵件明文。這一過程如圖14中的實線所示。
從上述g的應用可以看出,g可以非常便利地部署到正在運行的PRE系統(tǒng)b中。Alice需要重加密原密文時, 并不需要修改存在云端的密文。另外, 用戶與KGC之間的通信量與數(shù)據(jù)共享的請求量呈線性關系。要降低通信開銷, 用戶在共享數(shù)據(jù)給同一個人時可以使用同樣的公私鑰對。這就使得用戶與KGC之間的通信量僅與數(shù)據(jù)消費者的數(shù)量線性相關了。這個方法的唯一缺陷就是會增加用戶管理臨時密鑰的負擔。
CIBPRE提供了從一個PRE體系向另一個PRE體系, 或由PRE體系向PKE體系進行安全文件共享的解決方案。雖然在目前的PKI體系下, 本方案并不具有很高的實用性, 但是它清除了 PRE加密體系間安全文件共享的障礙, 為未來 PRE加密體系做了重要的鋪墊。
圖14 GHPRE分享文件過程Figure 14 File sharing in GHPRE
加密技術的發(fā)展提升了郵件系統(tǒng)用戶的安全性和用戶體驗, 同時也提高了垃圾郵件的隱蔽性。關于垃圾郵件的危害, 人們已經(jīng)討論了很長時間了, 其最主要的危害就是浪費用戶時間、降低用戶體驗、占用服務器帶寬與存儲空間以及可能攜帶惡意軟件等。
現(xiàn)在防范垃圾郵件的主要方式是根據(jù)發(fā)件地址攔截和在郵件系統(tǒng)上根據(jù)郵件內(nèi)容過濾。其中, 根據(jù)發(fā)件地址攔截的方式很容易誤傷正常用戶的郵件,并且垃圾郵件的發(fā)送者也可以很容易地偽造或更換發(fā)件地址, 因此根據(jù)發(fā)件地址攔截的方式有一定局限性。根據(jù)內(nèi)容過濾垃圾郵件的方法可以很好地工作在無加密的或以SSL作為加密技術的云郵件系統(tǒng)上, 因為郵件服務器可以直接掃描郵件的明文。但是在基于PGP/IBE/PRE的郵件系統(tǒng)上無法發(fā)揮作用。在這些云郵件系統(tǒng)上, 只有接收者才能看到郵件的明文, 服務器無法分辨哪些郵件是垃圾郵件。目前,還沒有一種方法可以基于郵件內(nèi)容解決加密郵件的垃圾過濾問題。
本文從云郵件系統(tǒng)上的郵件安全開始, 討論了傳統(tǒng)的 SSL協(xié)議在安全性上的缺陷, 以及 PGP和IBE協(xié)議在群發(fā)和群轉發(fā)功能上的不足。接著, 介紹了既能保證用戶郵件的安全性, 又可以讓用戶便捷地群發(fā)郵件和群轉發(fā)郵件的 CIBPRE方案, 并介紹了 CIBPRE方案在云郵件系統(tǒng)上的典型應用。接下來, 討論了可以實現(xiàn)在云郵件服務器進行加密郵件檢索的可搜索加密方案, 介紹了在保證檢索關鍵字安全的基礎上, 提升了傳統(tǒng) PEKS檢索效率的SPCHS方案。以上都是在同一個云郵件系統(tǒng)下, 提高用戶安全性和用戶體驗的方法, 這些方案對在兩個異構加密云郵件系統(tǒng)之間進行郵件轉發(fā)的情況則無能為力。此時就需要使用GHPRE方案實現(xiàn)異構密碼算法的云郵件系統(tǒng)之間的郵件轉發(fā)功能。最后, 介紹了加密云郵件系統(tǒng)中解決難度最大的加密垃圾郵件的過濾問題。要想徹底解決這個問題, 我們面臨的挑戰(zhàn)還非常多。
[1] “Cloud business email market, 2014-2018”, Radicati Group, http://www.radicati.com/wp/wp-content/uploads/2014/10/Cloud-Busines s-Email-Market-2014-2018-Executive-Summary.pdf, Oct, 2014
[2] “Cloud-based archiving vs. on-premises legacy archiving”, Proofpoint Group. (2012), http://video.proofpoint.com/id/cloud-basedarchiving-vs.-on-premises-legacy-archiving-TCO-white-paper, Jun,2012.
[3]L. Ibraimi, Q. Tang, P. Hartel, and W. Jonker, “A type-and- identity-based proxy re-encryption scheme and its appli-cation in healthcare,” in Proc. 5th VLDB Conf. Secure Data Manage, pp.185–198, 2008.
[4]M. Blaze, G. Bleumer, and M. Strauss, “Divertible protocols and atomic proxy cryptography,” in Proc. Int. Conf. Theory Appl. Crytographic Techn.: Adv. Cryptol., pp. 127–144, 1998.
[5]G. Ateniese, K. Fu, M. Green, and S. Hohenberger, “Improved proxy re-encryption schemes with applications to secure distributed storage,” ACM Trans. Inf. Syst. Security, vol. 9, pp. 1–30, 2006.
[6]R. H. Deng, J. Weng, S. Liu, and K. Chen, “Chosen-ciphertext secure proxy re-encryption without pairings,” Cryptol. Netw. Security,vol. 5339, pp. 1–17, 2008.
[7]V. Kirtane and C. P. Rangan, “RSA-TBOS signcryption with proxy re-encryption,” in Proc. 8th ACM Workshop Digital Rights Manage, pp. 59–66, 2008.
[8]B. Libert and D. Vergnaud, “Unidirectional chosen-ciphertext secure proxy re-encryption,” in Proc. 11th Int. Workshop Practice Theory, pp. 360–379, 2008.
[9]J. Shao and Z. Cao, “CCA-secure proxy re-encryption without pairings,” in Proc. 12th Int. Conf. Practice Theory Public Key Cryptography, pp. 357–376, 2009.
[10]G. Ateniese, K. Benson, and S. Hohenberger, “Key-private proxy re-encryption,” in Proc. Cryptographers’ Track RSA Conf. Topics Cryptol, pp. 279–294., 2009.
[11]J. Shao, P. Liu, G. Wei, and Y. Ling, “Anonymous proxy reencryption,” Security Commun. Netw., vol. 5, no. 5,pp. 439–449, 2012.
[12]A. Boldyreva, M. Fischlin, A. Palacio, and B. Warinschi, “A closer look at PKI: Security and efficiency,” in Proc. 10th Int. Conf. Practice Theory Public-Key Cryptography, pp. 458–475, 2007.
[13]M. Green and G. Ateniese, “Identity-based proxy re-encryption,” in Proc. 5th Int. Conf. Appl. Cryptography Netw. Security, pp.288–306, 2007.
[14]C.-K. Chu and W.-G. Tzeng, “Identity-based proxy re-encryption without random oracles,” in Proc. 10th Int. Conf. Inf. Security, pp.189–202, 2007.
[15]C.-K. Chu, J. Weng, S. S. M. Chow, J. Zhou, and R. H. Deng,“Conditional proxy broadcast re-encryption,” in Proc. 14th Australasian Conf. Inf. Security Privacy, pp. 327–342, 2009.
[16]Q. Tang, “Type-based proxy re-encryption and its construction,” in Proc. 9th Int. Conf. Cryptol. India: Progress Cryptol, pp. 130–144,2008.
[17]J. Weng, R. H. Deng, X. Ding, C.-K. Chu, and J. Lai, “Conditional proxy re-encryption secure against chosen-ciphertext attack,” in Proc. 4th Int. Symp. Inf., Comput. Commun.Security, pp. 322–332,2009.
[18]J. Shao, G. Wei, Y. Ling, and M. Xie, “Identity-based conditional proxy re-encryption,” in Proc. IEEE Int. Conf. Commun, pp. 1–5,2011.
[19]P. Xu, T. Jiao, Q. Wu, W. Wang and J. Hai, “Conditional Identity-Based Broadcast Proxy Re-Encryption and Its Application to Cloud Email”IEEE Transactions on Computers, vol. 65, no. 1, pp.66-78, Jan. 2016.
[20]J. Weng, Y. Yang, Q. Tang, R. H. Deng, and F. Bao, “Efficient conditional proxy re-encryption with chosen-ciphertext security,” in Proc. 12th Int. Conf. Inf. Security, pp. 151–166 , 2009.
[21]L. Fang, W. Susilo, and J. Wang, “Anonymous conditional proxy re-encryption without random oracle,” in Proc. 3rd Int. Conf.Provable Security, pp. 47–60, 2009.
[22]K. Liang, Q. Huang, R. Schlegel, D. S. Wong, and C. Tang, “A conditional proxy broadcast re-encryption scheme supporting timedrelease,” in Proc. 9th Int. Conf. Inf. Security Practice Experience, pp. 132–146, 2013.
[23]R. Canetti and S. Hohenberger, “Chosen-ciphertext secure proxy reencryption,” in Proc. 14th ACM Conf. Comput. Commun. Security, pp. 185–194, 2007.
[24]T. Matsuda, R. Nishimaki, and K. Tanaka, “CCA proxy re-encryption without bilinear maps in the standard model,” in Proc.13thInt. Conf. Practice Theory Public Key Cryptography, pp.261–278, 2010.
[25]K. Liang, J. K. Liu, D. S. Wong, and W. Susilo, ” An efficient cloudbased revocable identity-based proxy re-encryption scheme for public clouds data sharing,” in Proc. Eur. Symp. Res. Comput.Security, pp. 257–272, 2014.
[26]D. X. Song, D. Wagner, and A. Perrig, “Practical techniques for searches on encrypted data,” inProc. IEEE S&P, pp. 44–55,May.2000.
[27]D. Boneh, G. D. Crescenzo, R. Ostrovsky, and G. Persiano, “Public key encryption with keyword search,” inAdvances in Cryptology—EUROCRYPT(Lecture Notes in Computer Science), vol. 3027, C.Cachin and J. L. Camenisch, Eds. Berlin, Germany:Springer-Verlag, pp. 506–522, 2004.
[28]M. Abdallaet al., “Searchable encryption revisited: Consistency properties, relation to anonymous IBE, and extensions,” inAdvances in Cryptology—CRYPTO(Lecture Notes in Computer Science), vol. 3621, V. Shoup, Ed. Berlin, Germany: Springer- Verlag,pp. 205–222, 2005.
[29]D. J. Park, K. Kim, and P. J. Lee, “Public key encryption with conjunctive field keyword search,” inInformation Security Applications(Lecture Notes in Computer Science), vol. 3325, C. H. Lim and M. Yung, Eds. Berlin, Germany: Springer-Verlag, pp. 73–86,2005.
[30]P. Golle, J. Staddon, and B. Waters, “Secure conjunctive keyword search over encrypted data,” inApplied Cryptography and Network Security(Lecture Notes in Computer Science), vol. 3089, M. Jakobsson, M. Yung, and J. Zhou, Eds. Berlin, Germany:Springer-Verlag, pp. 31–45, 2004.
[31]L. Ballard, S. Kamara, and F. Monrose, “Achieving efficient conjunctive keyword searches over encrypted data,” inInformation and Communications Security(Lecture Notes in Computer Science), vol. 3783, S. Qing, W. Mao, J. López, and G. Wang, Eds.Berlin, Germany: Springer-Verlag, pp. 414–426, 2005.
[32]J. Baek, R. Safavi-Naini, W. Susilo, Public Key Encryption with Keyword Search Revisited, ICCSA 2008, LNCS, vol. 5072, pp.1249-1259, Springer, Heidelberg (2008)
[33]Y. H. Hwang and P. J. Lee, “Public key encryption with conjunctive keyword search and its extension to a multi-user system,” inPairingBased Cryptography—Pairing(Lecture Notes in Computer Science), vol. 4575, T. Takagi, T. Okamoto, E. Okamoto, and T.Okamoto, Eds. Berlin, Germany: Springer-Verlag, pp. 2–22, 2007.
[34]E.-K. Ryu and T. Takagi, “Efficient conjunctive keyword-searchable encryption,” inProc. 21st Int. Conf. Adv. Inf. Netw.Appl. Workshops, pp. 409–414, May 2007.
[35]Mitsuhiro Hattori, Takato Hirano, Takashi Ito, Nori Matsuda, Takumi Mori, Yusuke Sakai, Kazuo Ohta, “Ciphertext-Policy Delegatable Hidden Vector Encryption and Its Application to Searchable Encryption in Multi-user Setting”, IMA Int. Conf., pp.190-209, 2011.
[36]J. Bethencourt, T.-H. H. Chan, A. Perrig, E. Shi, and D. Song,“Anonymous multi-attribute encryption with range query and conditional decryption,” School Comput. Sci., Carnegie Mellon Univ.,Pittsburgh, PA, USA, Tech. Rep. CMU-CS-06-135, 2006.
[37]E. Shi, J. Bethencourt, T.-H. H. Chan, D. Song, and A. Perrig,“Multidimensional range query over encrypted data,” inProc.IEEE S&P, vol. 4392, S. P. Vadhan, Ed. Berlin, Germany:Springer-Verlag, pp. 350–364, May 2007.
[38]D. Boneh and B. Waters, “Conjunctive, subset, and range queries on encrypted data,” inTheory of Cryptography(Lecture Notes in Computer Science), pp. 535–554, 2007.
[39]D. W. Cheung, N. Mamoulis, W. K. Wong, S. M. Yiu, and Y. Zhang,“Anonymous fuzzy identity-based encryption for similarity search,” inAlgorithms and Computation(Lecture Notes in Computer Science), vol. 6506, O. Cheong, K.-Y. Chwa, and K. Park,Eds. Berlin, Germany: Springer-Verlag, pp. 61–72, 2010.
[40]Saeed Sedghi, Peter van Liesdonk, Svetla Nikova, Pieter H. Hartel,Willem Jonker, “Searching Keywords with Wildcards on Encrypted Data,” SCN 2010, pp. 138-153, 2010.
[41]J. Camenisch, M. Kohlweiss, A. Rial, and C. Sheedy, “Blind and anonymous identity-based encryption and authorised private searches on public key encrypted data,” inPublic Key Cryptogra-phy— PKC(Lecture Notes in Computer Science), vol. 5443, S. Jarecki and G. Tsudik, Eds. Berlin, Germany: Springer-Verlag,pp.196–214, 2009.
[42]M. Bellare, A. Boldyreva, and A. O’Neill, “Deterministic and efficiently searchable encryption,” inAdvances in Cryptology—CRYPTO(Lecture Notes in Computer Science), vol. 4622, A. Menezes, Ed. Berlin, Germany: Springer-Verlag, pp. 535–552, 2007.
[43]M. Bellare, M. Fischlin, A. O’Neill, and T. Ristenpart, “Deterministic encryption: Definitional equivalences and constructions without random oracles,” inAdvances in Cryptology—CRYPTO(Lecture Notes in Computer Science), vol. 5157, D. Wagner, Ed.Berlin, Germany: Springer-Verlag, pp. 360–378, 2008.
[44]A. Boldyreva, S. Fehr, and A. O’Neill, “On notions of security for deterministic encryption, and efficient constructions without random oracles,” inAdvances in Cryptology—CRYPTO(Lecture Notes in Computer Science), vol. 5157, D. Wagner, Ed. Berlin,Germany: Springer-Verlag, pp. 335–359, 2008.
[45]Z. Brakerski and G. Segev, “Better security for deterministic public-key encryption: The auxiliary-input setting,” inAdvances in Cryptology—CRYPTO(Lecture Notes in Computer Science), vol.6841, P. Rogaway, Ed. Berlin, Germany: Springer-Verlag, pp.543–560, 2011.
[46]J.W. Byun et al., “Offline Keyword Guessing Attacks on Recent Keyword Search Schemes over Encrypted Data,” Proc. Third VLDB Int’l Conf. Secure Data Management, pp. 75-83, 2006.
[47]I.R. Jeong et al., “Constructing PEKS Schemes Secure against Keyword Guessing Attacks Is Possible?,” Computer Comm, vol.32, no. 2, pp. 394-396, 2009.
[48]Liming Fang, Willy Susilo, Chunpeng Ge, Jiandong Wang, “A Secure Channel Free Public Key Encryption with Keyword Search Scheme without Random Oracle,” CANS 2009, pp. 248-258, 2009.
[49]Qiang Tang, Liqun Chen, “Public-Key Encryption with Registered Keyword Search,” EuroPKI 2009, pp. 163-178, 2009.
[50]W. Harrower, “Searching Encrypted Data,” Technical report, Dept.of Computing, Imperial College London, 2009.
[51]P. Xu, H. Jin, Q. Wu, and W. Wang, “Public-key encryption with fuzzy keyword search: A provably secure scheme under keyword guessing attack,”IEEE Trans. Comput., vol. 62, no. 11, pp.2266–2277, Nov. 2013.
[52]Wei Wang, Peng Xu, Hui Li, Laurence Tianruo Yang, “Secure Hybrid-Indexed Search for High Efficiency over Keyword Searchable Ciphertexts,” Future Generation Computer Systems, 55, pp.353-361, Feb. 2016.
[53]P. Xu, Q. Wu, W. Wang, W. Susilo, J. Domingo-Ferrer, “Generating Searchable Public-Key Ciphertexts With Hidden Structures for Fast Keyword Search”IEEE Trans. Inf. Forensics Security, vol. 10, no.9, pp. 1667-1680, Sep. 2015.
[54]Peng Xu, Jingnan Li, Wei Wang, Hai Jin, “Anonymous Identity-Based Broadcast Encryption with Constant Decryption Complexity and Strong Security,” ASIACCS 2016, pp. 223-233, 2016.
[55]T. Matsuo, “Proxy re-encryption systems for identity-based encryption,” in Proc. 1st Int. Conf. Pairing-Based Cryptography, pp.247–267, 2007.
[56]K. Niu, X. A. Wang, and M. Zhang. “How to Solve Key Escrow-Problem in Proxy Re-encryption from CBE to IBE,” InProceedings of DBTA 2009, pages 95-98. IEEE, 2009
[57]X. A. Wang, X. Yang, and M. Zhang. “Proxy Re-encryption Scheme from IBE to CBE,” InProceedings of DBTA 2009, pages 99-102. IEEE, 2009.
[58]J. D. Zhang, X.A. Wang and X.Y. Yang. Hybrid proxy re-encryption between IBE and CBE. Journal of Computers, vol. 8,no. 7, pp 1873-1881, 2013.
[59]P. Wei, X.A. Wang and X.Y. Yang. Proxy Re-Encryption from CLE to CBE. in: Proceedings of International Conference on Computational Intelligence and Security, Nanning China, pp 339-342, 2010.
[60]T. Mizuno and H. Doi. Hybrid Proxy Re-encryption Scheme for Attribute-Based Encryption. in: Proceedings of 5thInternational Conference on Information Security and Cryptology, Beijing,China, pp 288~302, 2009.
[61]Q. Tang, P. H. Hartel, and W. Jonker. “Inter-domain Identity-Based Proxy Re-encryption,” InProceedings of Inscrypt 2008, LNCS, Vol.5487, pages 332-347. Springer, 2009.
[62]P. Xu, H. Chen, D. Zou, and H. Jin. “Fine-grained and heterogeneous proxy re-encryption for secure cloud storage,”Chinese Science Bulletin,59(32): 4201-4209, 2014.
[63]P. Xu, J. Xu, W. Wang, H. Jin, W. Susilo, D. Zou, “Generally Hybrid Proxy Re-Encryption: A Secure Data Sharing among Cryptographic Clouds” in Proc. 11thACM on Asia Conference on Computer and Communications Security, pp. 913-918, 2016.