陳文倩, 趙 嵐,2, 張亦茹
(1. 湖北工業(yè)大學(xué) 計算機(jī)學(xué)院 湖北 武漢 430068; 2. 湖北工業(yè)大學(xué) 工業(yè)大數(shù)據(jù)協(xié)同創(chuàng)新中心 湖北 武漢 430068; 3. 廣州中學(xué) 廣東 廣州 510000)
電子交易被越來越多的消費(fèi)者接受并廣泛使用[1],文獻(xiàn)[2]揭示若消費(fèi)者數(shù)據(jù)沒有得到妥善處置,攻擊者可對消費(fèi)者狀態(tài)及行為進(jìn)行分析、預(yù)測,從而造成嚴(yán)重影響[3].如何保護(hù)數(shù)據(jù)隱私和防止敏感信息泄露成為當(dāng)前面臨的重大挑戰(zhàn)[4]. 因此交易平臺的信息安全管理問題已成為關(guān)注熱點(diǎn).西密歇根大學(xué)發(fā)表的一份報告表明,顧客只會訪問有積極印象的網(wǎng)站,因此分析顧客信息來提高服務(wù)是很有必要的[5].目前統(tǒng)計相關(guān)分析中的相關(guān)系數(shù)可用于交易中的推薦系統(tǒng),我們將針對消費(fèi)者信息的相關(guān)性分析進(jìn)行隱私保護(hù)研究.
針對統(tǒng)計分析過程中暴露消費(fèi)者隱私等安全問題,現(xiàn)有方案主要集中在保護(hù)系統(tǒng)免受外部攻擊和進(jìn)行簡單數(shù)據(jù)分析[6].文獻(xiàn)[7]用分布式方法計算相關(guān)性但效率較低,文獻(xiàn)[8]在效率上有所提高,但是不能有效地防止內(nèi)部攻擊.類似還有以公鑰為基礎(chǔ)的解決方案[9-13],通常比對稱加密的方案效率低,且這類方案中的數(shù)據(jù)處理只能給出簡單統(tǒng)計處理.
針對電子交易數(shù)據(jù)分析過程中保護(hù)消費(fèi)者隱私問題,本文提出了有效解決方案:對大量消費(fèi)者數(shù)據(jù)分塊,通過安全信道傳輸給多服務(wù)器儲存,只要其中一個服務(wù)器沒被攻破,則該系統(tǒng)是安全的;采用Paillier同態(tài)加密數(shù)據(jù)并控制訪問權(quán)限,僅授權(quán)分析者能訪問數(shù)據(jù)并實(shí)現(xiàn)數(shù)據(jù)分析;實(shí)現(xiàn)密文下的相關(guān)性分析處理方法,運(yùn)用相關(guān)性分析實(shí)現(xiàn)多屬性間相關(guān)性分析,并保護(hù)消費(fèi)者個人隱私信息.
4) 加法同態(tài)性質(zhì). 給定兩個明文m1和m2,則有E(m1+m2)=E(m1)×E(m2).
圖1表示所提出的系統(tǒng)模型的結(jié)構(gòu),包括3個實(shí)體.
消費(fèi)者C:消費(fèi)者在購物過程中產(chǎn)生電子交易信息(身份、購買商品、瀏覽記錄等),這些信息被分離成多塊分別發(fā)送給對應(yīng)服務(wù)器.
數(shù)據(jù)服務(wù)器S:每個數(shù)據(jù)服務(wù)器對收到的數(shù)據(jù)加密并存儲.接受到分析者的查詢請求,服務(wù)器間配合完成密文上的安全計算,對于不同合法請求給予不同密文.
分析者V:可能是行為分析者、研究者等需要相關(guān)性分析結(jié)果的人員.僅完成身份注冊的分析者才能在查詢時獲得符合自己權(quán)限的密文,對密文解密和整理,得到最終需要的統(tǒng)計相關(guān)分析值.
圖1 系統(tǒng)模型圖Fig.1 System model
本模型考慮兩種攻擊模式:外部攻擊者和內(nèi)部攻擊者.外部攻擊指模型之外的攻擊者在不知道私鑰下,從系統(tǒng)中了解消費(fèi)者信息.內(nèi)部攻擊是指系統(tǒng)參與者,如服務(wù)器或分析者試圖從方案中學(xué)習(xí)并還原敏感信息等惡意行為.假設(shè)數(shù)據(jù)服務(wù)器和分析者都是半誠實(shí)的,即準(zhǔn)確執(zhí)行協(xié)議但會試圖挖掘隱私.為便于描述,圖1中服務(wù)器數(shù)量為3,但方案適用于更多情況.模型中涉及3部分的通信:消費(fèi)者與服務(wù)器之間、服務(wù)器之間、分析者與服務(wù)器之間.
假設(shè)系統(tǒng)中存在公共密鑰基礎(chǔ)設(shè)施(public key infrastructure, PKI),其中存在證書頒發(fā)機(jī)構(gòu)(certificate authority,CA).分析者根據(jù)Paillier加密算法生成兩對公私鑰對(pk,sk)和(pk*,sk*).分析者在服務(wù)器上完成注冊,CA將包含(pk,pk*)的數(shù)字證書發(fā)送給分析者.出于安全原因,Paillier算法中N應(yīng)不低于1 024 bt.
2.2.1信息分離儲存 若將消費(fèi)者信息發(fā)送給同一個服務(wù)器,服務(wù)器嘗試分析消費(fèi)者數(shù)據(jù)則會暴露其隱私,為有效防止內(nèi)部攻擊,我們設(shè)立了多數(shù)據(jù)服務(wù)器.運(yùn)用文獻(xiàn)[14]的方法,將單個隱私信息ηi隨機(jī)分為3個整數(shù)(根據(jù)數(shù)據(jù)服務(wù)器數(shù)量分配),ηi=λi+μi+νi,i=1,2,…,n,n表示消費(fèi)者個數(shù).消費(fèi)者Ui將λi發(fā)送給S1,將μi發(fā)送給S2,將νi發(fā)送給S3.
2.2.2密文計算處理 假設(shè)有n個消費(fèi)者,每個消費(fèi)者有3個屬性X、Y、A,X=(x1,x2,…,xn),Y=(y1,y2,…,yn),A=(a1,a2,…,an),(xi,yi,ai)為同一消費(fèi)者Ui的信息.xi=λi+μi+νi,yi=λ′i+μ′i+ν′i,ai=λ″i+μ″i+ν″i,i=1,2,…,n.安全計算需要3個算法:算法1用來在密文域中進(jìn)行處理,使解密之后得到屬性的平均值;算法2解密后可得到同一屬性存儲在各服務(wù)器的分塊信息乘方和;算法3解密之后可得到兩個屬性存儲在各服務(wù)器的分塊信息的乘積和.具體過程如下.
算法1平均分析算法.
輸入:X=(x1,x2,…,xn),xi=λi+μi+νi,i=1,2,…,n;
1. 令Cx=1;
5.i從1~n按上述步驟循環(huán),當(dāng)i=n時結(jié)束;
6.S3存儲最后得到的Cx值.
算法2乘方循環(huán)算法.
輸入:X=(x1,x2,…,xn),xi=λi+μi+νi,i=1,2,…,n;
1. 令Cx2=1;
8.i從1到n按上述步驟循環(huán),S3存儲Cx2值.
算法3相關(guān)循環(huán)算法.
輸入:X=(x1,x2,…,xn),Y=(y1,y2,…,yn),xi=λi+μi+νi,yi=λ′i+μ′i+ν′i,i=1,2,…,n;
1. 令Cxy=1;
8. 將i從1到n按上述步驟循環(huán),S3存儲Cxy值.
2.2.3數(shù)據(jù)查詢 本文設(shè)計控制訪問權(quán)限,分析者查詢結(jié)果前需發(fā)送查詢請求,包含查詢消息、對查詢消息的簽名、數(shù)字證書、時間戳等.服務(wù)器檢查時間戳與當(dāng)前時間吻合,再驗證簽名,若簽名正確,則服務(wù)器相信查詢請求由授權(quán)分析者提供.根據(jù)不同請求,服務(wù)器返回相關(guān)的密文.由分析者解密并整理計算.
(1)
(2)
其中X與Y的相關(guān)性為
(3)
同理可得到X與A的相關(guān)性rXA,Y與A的相關(guān)性rYA,從而計算出半偏相關(guān)系數(shù).
3) 若查詢的是消費(fèi)者的屬性X與Y都除去屬性A的影響后的偏相關(guān)系數(shù).分析者得到的密文同上,解密后整理計算偏相關(guān)系數(shù)為
(4)
4) 若分析者查詢屬性Y與X、A的復(fù)相關(guān)系數(shù).分析者得到的密文同上,解密之后整理計算,
(5)
定理5數(shù)據(jù)查詢過程中分析者查詢的是相關(guān)系數(shù),則得到的密文是Cx,Cy,Ca,Cx2,Cy2,Ca2,Cxy,Cxa,Cya;解密得到
本方案設(shè)計3個安全目標(biāo),具體如下.
1) 數(shù)據(jù)存儲安全, 密鑰存儲安全,信息存儲安全,密文存儲安全.
證明方案初始階段,公私鑰和簽名驗證鑰通過安全信道來進(jìn)行傳輸?shù)?信道的秘鑰可通過Diffie-Hellman密鑰交換協(xié)議[15]或者RSA等公鑰密碼系統(tǒng)建立.通過安全信道可以實(shí)現(xiàn)數(shù)據(jù)的保密性、真實(shí)性和完整性,因此密鑰的存儲是安全的.在消費(fèi)者和服務(wù)器間的通信中,消費(fèi)者數(shù)據(jù)分離基于SHA-3生成,任何外部攻擊和內(nèi)部攻擊,即服務(wù)器被攻陷或服務(wù)器之間勾結(jié),在沒有密鑰的情況下都不能猜出分塊整數(shù),數(shù)據(jù)分塊目的是防止服務(wù)器分析數(shù)據(jù)進(jìn)行內(nèi)部攻擊,方案假設(shè)至少有一個服務(wù)器不被攻破,存放在服務(wù)器內(nèi)的數(shù)據(jù)是安全的.同時使用Paillier加密算法對數(shù)據(jù)加密,在密文域上完成安全計算且將值存儲在服務(wù)器S3中.Paillier的困難問題沒有解決,則加密過程是安全的,外部攻擊者無法得到存儲的數(shù)據(jù),密文的存儲是安全的.因此本文提出的方案達(dá)到數(shù)據(jù)存儲安全.
2) 數(shù)據(jù)分析安全. 即使破解了任一服務(wù)器或多服務(wù)器合謀也不會泄露消隱私信息.
證明數(shù)據(jù)分析過程是在3個服務(wù)器交互中且在密文域上完成的.加密系統(tǒng)是完善的,分析過程中任何一個交互過程,外部攻擊者沒有私鑰下都無法獲取消費(fèi)者的隱私數(shù)據(jù).另外,可在3個數(shù)據(jù)服務(wù)器之間使用公鑰系統(tǒng)再建立一個安全信道以增加方案的安全系數(shù).服務(wù)器都是半信任模型,且分析過程中沒有解密步驟,即使出現(xiàn)內(nèi)部攻擊即多個服務(wù)器合謀,甚至拿到了存儲在S3的最關(guān)鍵的密文,也無法分析得到完整的原始隱私數(shù)據(jù)和相關(guān)統(tǒng)計分析值.因此本文提出的方案實(shí)現(xiàn)了數(shù)據(jù)分析安全.
3) 數(shù)據(jù)查詢安全. 僅合法命令才能獲得計算結(jié)果.
證明查詢階段,服務(wù)器驗證分析者的簽名和時效性,僅將符合權(quán)限的查詢結(jié)果以密文的形式返回給授權(quán)分析者,因此避免了惡意外部攻擊.壞的情況是分析者得到結(jié)果前,足夠強(qiáng)大的外部攻擊者攔截下密文并解密,但這樣獲得的是還未整理的值,若不知整理計算過程,信息與隨機(jī)數(shù)無法區(qū)分,因此保證了數(shù)據(jù)的隱私性.更壞的情況是授權(quán)分析者與服務(wù)器勾結(jié)能在此過程中獲得數(shù)據(jù),但由于至少一個服務(wù)器不被攻破,攻擊者只能得到部分統(tǒng)計數(shù)據(jù)且不涉及原始隱私信息,甚至S3也參與勾結(jié),在系統(tǒng)的最后也不會提供任何原始個人隱私信息的查詢.因此方案實(shí)現(xiàn)了數(shù)據(jù)查詢安全.
本文采用Paillier同態(tài)加密算法解決密文下相關(guān)性計算問題,基本運(yùn)算是模指數(shù)運(yùn)算,加密或者解密一次需要進(jìn)行兩次模指數(shù)運(yùn)算.信息分離存儲過程中使用文獻(xiàn)[14]中基于SHA-3隨機(jī)數(shù)生成方案.方案中3個算法和總相關(guān)性分析及與文獻(xiàn)[7]和[8]算法復(fù)雜性比較如表1所示.
表1 復(fù)雜性分析Tab.1 Complexity analysis
本文對電子交易中消費(fèi)者數(shù)據(jù)的儲存和統(tǒng)計計算方面的安全隱私問題進(jìn)行了探討,并提出了一種高效的解決方案,設(shè)計了安全計算方法,使得各服務(wù)器協(xié)作在密文上完成統(tǒng)計分析,保證了消費(fèi)者隱私.通過訪問控制確保僅授權(quán)分析者能獲取相關(guān)性分析值.最后進(jìn)行了正確性、安全性和技術(shù)性能分析.