馬鳳英 吳黎明 張芳芳
近年來,機器學(xué)習(xí)吸引了眾多學(xué)者的研究興趣,并已經(jīng)成為人工智能領(lǐng)域研究的主流.支持向量機(support vector machine,SVM)是最為火熱的機器學(xué)習(xí)算法之一,并被應(yīng)用到各個領(lǐng)域,例如:風(fēng)險檢測[1]、圖像識別[2]、故障診斷[3]等.支持向量機中使用的數(shù)據(jù)越多,學(xué)習(xí)模型預(yù)測的準確率越高.然而,大量數(shù)據(jù)的使用會給本地計算資源帶來巨大挑戰(zhàn).
隨著云計算應(yīng)用范圍越來越廣泛,許多SVM 的訓(xùn)練和預(yù)測任務(wù)都外包到云服務(wù)器上運行,例如:文獻[4]提出了一種在云計算環(huán)境中實現(xiàn)數(shù)據(jù)分類的SVM算法,文獻[5]構(gòu)建了一種云計算環(huán)境下利用SVM 改進醫(yī)療服務(wù)的機器學(xué)習(xí)模型,文獻[6]在云計算環(huán)境中設(shè)計了一種基于SVM 的信息熵檢測異常網(wǎng)絡(luò)流量算法.然而,這些方案都涉及到用戶私有數(shù)據(jù)的研究,不可避免地使用屬于第三方利益相關(guān)者的可見數(shù)據(jù),增加了隱私泄漏的風(fēng)險[7-9].
對數(shù)據(jù)進行加密是實現(xiàn)隱私保護最簡單有效的方法之一,混沌加密和同態(tài)加密各自具有不可比擬的優(yōu)勢,應(yīng)用廣泛.一方面,混沌加密中的混沌序列因具有初值敏感性、偽隨機性和遍歷性,眾多學(xué)者將其應(yīng)用到加密算法[10-13].其中,文獻[13]設(shè)計的二維滯后復(fù)Logistic 映射(two dimension lag complex logistic mapping,2D-LCLM)將傳統(tǒng)二維Logistic 映射的變量從實數(shù)域擴展到復(fù)數(shù)域,具有廣泛的混沌區(qū)間,良好的遍歷性以及不可預(yù)測的特性,將其應(yīng)用到文本加密中能實現(xiàn)良好的加密效果.另一方面,同態(tài)加密算法不會損壞數(shù)據(jù)的可用性,使加密后的密文數(shù)據(jù)仍然可以執(zhí)行計算操作.Paillier 密碼系統(tǒng)是目前廣泛應(yīng)用的具有語義安全的同態(tài)加密算法之一,其安全性是基于決策復(fù)合剩余困難問題,具有非常高效的運行性能[14].文獻[15-17]利用Paillier 加密方案保護機器學(xué)習(xí)中的數(shù)據(jù)隱私,例如:文獻[15]在云計算環(huán)境中利用Paillier 同態(tài)加密方案實現(xiàn)圖像數(shù)據(jù)外包,文獻[17]為支持向量機模型設(shè)計了一種可驗證的、保護隱私的機器學(xué)習(xí)預(yù)測服務(wù).這些方案實現(xiàn)了在云計算環(huán)境中用戶數(shù)據(jù)的隱私保護,但其要求用戶實時在線并參與SVM 分類算法的計算過程.然而在現(xiàn)實世界中,由于時間、設(shè)備等原因,用戶存在無法實時在線并參與計算過程的情況.
為了解決當(dāng)前在云計算環(huán)境中進行SVM 分類時無法保護數(shù)據(jù)隱私和需要用戶實時在線的問題,本文提出了利用2D-LCLM 和Paillier 加密方案的隱私保護SVM 分類方案,實現(xiàn)云計算環(huán)境中分類模型的安全和隱私保護,并有效減少本地計算開銷.本文的主要工作如下:
1)使用2D-LCLM 和Paillier 同態(tài)加密結(jié)合的加密算法作為底層密碼系統(tǒng),并構(gòu)造了基于兩個非共謀云服務(wù)器模型的隱私保護SVM 分類方案.該方案可以在加密數(shù)據(jù)庫上有效地執(zhí)行分類任務(wù).
2)將所有數(shù)據(jù)進行轉(zhuǎn)換.原始訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)可能是帶有分數(shù)部分的數(shù)字.而Paillier 加密方案只支持整數(shù)計算,因此,需要一種將其轉(zhuǎn)換為整數(shù)的方案.本文采用縮放的數(shù)學(xué)格式完成這項工作,它的主要優(yōu)點為小數(shù)的準確表示.
3)在半誠實安全模型下進行安全性分析.該方案從數(shù)據(jù)集安全、分類結(jié)果的隱私性和隱藏數(shù)據(jù)訪問(即隱藏數(shù)據(jù)記錄與分類之間的對應(yīng)關(guān)系,防止合謀攻擊)3 個方面保護了隱私性.
SVM 是一種強大的機器學(xué)習(xí)算法,其基本思想是在特征空間中尋找最佳的分離超平面,使得訓(xùn)練集上的正、負樣本區(qū)間最大化[18].SVM 既可以解決二分類問題,也可以解決多分類問題.因此,本文采用SVM 作為機器學(xué)習(xí)算法,將解決二分類問題作為研究內(nèi)容,多分類問題的解決方法與二分類問題的解決方法類似.
假設(shè)給定一個線性不可分的訓(xùn)練集DB,DB 中包含m 個訓(xùn)練數(shù)據(jù)(xi,yi),i=1,2,…,m,其中,表示n 維的特征向量;表示n 維實數(shù)集;yi∈{1,-1}表示特征向量xi的特征值.SVM 的解決思路是使用核函數(shù),將原始空間樣本映射到高維特征空間,將線性不可分的問題轉(zhuǎn)化為線性可分的問題.
在訓(xùn)練分類模型之前,為防止尺度較大的數(shù)據(jù)對結(jié)果產(chǎn)生偏差,需要將數(shù)據(jù)進行標準化處理,其過程如式(1)所示:
SVM 在訓(xùn)練結(jié)束后會產(chǎn)生一個分類模型,分類模型可以用式(2)和式(3)來表示:
本文只考慮采用高斯函數(shù)作為核函數(shù),即:
如果使用明文數(shù)據(jù),分類模型將使用式(5)對未分類的數(shù)據(jù)進行分類.為了滿足在密文下進行計算的要求,將在下一節(jié)重新表述式(5),它將在不影響分類性能的前提下保護數(shù)據(jù)、模型參數(shù)和分類結(jié)果的隱私.
1)加法同態(tài)屬性:
2)同態(tài)標量乘屬性:
二維滯后復(fù)Logistic 映射的數(shù)學(xué)表達如式(8)所示:
其中,ωn=xn+jyn為復(fù)變量;xn,yn,zn為實變量;a,b 均系統(tǒng)參數(shù)且b>0.
將ωn的實部和虛部分開表示可以得到式(9):
本章將詳細描述系統(tǒng)模型和威脅模型,并確定設(shè)計目標.
本文考慮在云計算環(huán)境中的隱私保護SVM 分類模型,如圖1 所示.由于服務(wù)商本地的通信和計算能力有限,事先便將用于訓(xùn)練的明文數(shù)據(jù)委托給受服務(wù)商信任的一個服務(wù)器,被稱為模型服務(wù)器(model server,MS),為用戶提供可靠的在線分類任務(wù).MS 在訓(xùn)練過程中使用未加密的數(shù)據(jù)進行訓(xùn)練,使訓(xùn)練后的分類模型可以處理不同的測試數(shù)據(jù).因此,用戶端可以將加密后的密文數(shù)據(jù)集應(yīng)用于該分類模型.在此過程中分類模型只需進行一次訓(xùn)練,可以減少處理時間.
圖1 系統(tǒng)架構(gòu)Fig.1 System architecture
假設(shè)用戶端向MS 和云服務(wù)器(cloud server,CS)發(fā)送請求后,CS 能夠產(chǎn)生密鑰對(pk,sk),其中,pk表示公鑰,分發(fā)給MS 和用戶端;sk 表示私鑰,由CS 獨自保管.然后,用戶端加密明文數(shù)據(jù)集合D 得到密文數(shù)據(jù)集合并發(fā)送給MS.最后,MS 與CS 在密文數(shù)據(jù)集合上協(xié)同計算分類結(jié)果.但是由于用戶端無法訪問私鑰sk,MS 將含噪聲的密文分類結(jié)果交給CS 解密,并將相應(yīng)的噪聲發(fā)送給用戶端.CS 解密后將含噪聲的明文分類結(jié)果發(fā)送給用戶端,用戶端減去噪聲得到最終的分類結(jié)果.
需要注意的是,由于用戶數(shù)據(jù)存在隱私信息,用戶端將保存明文集合D 的副本,分類結(jié)果與明文數(shù)據(jù)副本進行匹配.
在本文中,假設(shè)MS、CS 和用戶端都是潛在的威脅,它們都是半誠實系統(tǒng),也就是說它們將嚴格遵循協(xié)議的執(zhí)行,但是會試圖在分類過程中找出其他私有信息.另外,在本文中假設(shè)兩個服務(wù)器不會進行合謀攻擊,即這兩個服務(wù)器不會串通在一起,試圖打探用戶端的隱私數(shù)據(jù).這種使用兩個云服務(wù)器的非共謀模型在文獻[19-20]中得以應(yīng)用,并且模型在現(xiàn)實中可以實現(xiàn),這是因為兩個服務(wù)器在現(xiàn)實中是屬于不同的公司,一旦發(fā)現(xiàn)雙方存在共謀,便會產(chǎn)生十分惡劣的影響.最后,假設(shè)CS 不會和用戶端相互勾結(jié),試圖尋找模型參數(shù).
基于系統(tǒng)模型和威脅模型,設(shè)計目標包含下面兩個部分:
1)安全:系統(tǒng)模型中各方都是半誠實的系統(tǒng),因此,系統(tǒng)模型中各方的安全性需要保護.既需要保護用戶端的明文數(shù)據(jù)集合D 和分類結(jié)果不會透漏給CS,同時也應(yīng)當(dāng)保護模型參數(shù)不會被用戶端獲得.
2)效率:由于用戶端的計算和通信能力不足,因此,在整個分類過程中應(yīng)當(dāng)盡可能減小用戶端的計算和通信過程,即希望用戶端在加密數(shù)據(jù)時使用的加密算法的計算過程較少,并且在接收分類結(jié)果之前,用戶端保持離線狀態(tài),無需參與分類結(jié)果的計算過程.
基于云計算的隱私保護SVM 分類算法主要包含以下幾部分:
1)初始化.CS 生成一幅密鑰對(pk,sk),并將公鑰pk 分發(fā)給模型服務(wù)器和用戶端,并將私鑰sk 保存.同時,模型服務(wù)器使用數(shù)據(jù)訓(xùn)練,得到分類模型.
2)用戶端請求.用戶端將明文數(shù)據(jù)集D 利用2D-LCLM 進行加密生成數(shù)據(jù)集D',并向兩個服務(wù)器發(fā)送分類請求.然后將數(shù)據(jù)集D'使用公鑰pk 加密后生成密文數(shù)據(jù)集,發(fā)送給模型服務(wù)器.
4)安全返回分類結(jié)果.用戶端接收到MS 和CS的項目后進行處理并得到最終分類結(jié)果.
本文所提算法方案中使用的符號如表1 所示,同時基于云計算的隱私保護SVM 分類方案的主要過程如算法1 所示.
表1 符號Table 1 Notations
在初始化階段,CS 將選取安全參數(shù)φ,并通過Paillier 密碼系統(tǒng)用以產(chǎn)生密鑰對(pk,sk).并將公鑰pk 分發(fā)給模型服務(wù)器和用戶端.同時模型服務(wù)器使用式(1)標準化后的數(shù)據(jù)進行訓(xùn)練,得到分類模型.
值得注意的是,訓(xùn)練數(shù)據(jù)無需加密,只用于構(gòu)建SVM 模型,任何用戶都可以直接使用,但用戶數(shù)據(jù)必須進行加密后再進行分類.
用戶端在本地使用將明文數(shù)據(jù)集進行混沌加密生成數(shù)據(jù)集D',并將D'使用CS 分發(fā)的公鑰pk 進行加密后生成密文數(shù)據(jù)集并發(fā)送給MS.
如算法2 所示,用戶端選取式(9)中的參數(shù)初始值X1,Y1,Z1,并按式(9)生成與明文數(shù)據(jù)集中元素個數(shù)相同的一維偽隨機數(shù)列X,Y,Z,并計算其累計平均值獲得混沌序列e,再將e 按照D 的維度進行分維,生成混沌矩陣e'.然后,將混沌矩陣e'中的每行數(shù)據(jù)按照數(shù)據(jù)的大小進行排序,得到位置矩陣CM.最后,再將明文數(shù)據(jù)D 按照位置矩陣CM的位置索引進行重新排列生成數(shù)據(jù)集D',用戶端再將D'使用公鑰pk 進行加密,并將密文矩陣發(fā)送給MS,明文數(shù)據(jù)D 進行加密的具體過程如圖2 所示.
圖2 數(shù)據(jù)混沌置亂Fig.2 Chaotic scrambling of data
MS 和CS 接收到用戶端的分類請求后,將協(xié)同運行分類算法并計算分類結(jié)果,主要包括:1)安全計算決策函數(shù);2)安全計算分類函數(shù);3)安全返回分類結(jié)果.
3.3.1 安全計算決策函數(shù)
當(dāng)γ>0 時,式(5)和式(10)具有相同的結(jié)果,故若γ 足夠大(如γ>106),則量化變量前后的結(jié)果近似相等:
3.3.2 安全計算分類結(jié)果
4.1.1 抗半誠實攻擊
根據(jù)威脅模型(第2.2 節(jié))所提到的,MS、CS 和用戶端都是潛在的攻擊者,因為它們都是半誠實的系統(tǒng),即它們在嚴格按協(xié)議執(zhí)行的同時,也會試圖根據(jù)計算的中間結(jié)果來推測額外的信息.簡而言之,本文所提方案對MS 保留隱私,因為MS 所擁有的數(shù)據(jù)都是語義安全下的密文,而CS 獲得的信息要么是偽隨機值,要么是隨機值,也不會泄露隱私.而且在本方案中,用戶端只需要在本地進行混沌加密并向云端發(fā)送請求,最后從云端接收噪聲r 和含有噪聲的分類結(jié)果.用戶沒有在分類過程中與云端產(chǎn)生交互,用戶端無法了解模型參數(shù)或其他中間結(jié)果.
4.1.2 抗共謀攻擊
相比于單純的半誠實攻擊,CS 可以與用戶端進行合作,利用用戶的樣本數(shù)據(jù)和最終分類結(jié)果來推測中間結(jié)果和分類模型參數(shù).如算法5 所示,CS 根據(jù)接收到中間結(jié)果和最終的分類結(jié)果能夠計算出決策函數(shù)的值,但無法獲知更多的信息,這種隱藏數(shù)據(jù)訪問模式極大地保護MS 的隱私.正如威脅模型(第2.2節(jié))所提到的,兩個服務(wù)器之間不會共謀損害用戶的利益來獲得額外的信息,因為一旦發(fā)現(xiàn),帶來的后果極為嚴重.通過上述分析,本文的方案可以抵抗各方的共謀攻擊.
本節(jié)用實驗來分析所提出方案的性能,比較所提出的方案與傳統(tǒng)SVM 分類算法的準確性.實驗均在Intel Core i7-8700 3.20 GHz 和8 RAM 的Windows系統(tǒng)上運行,并使用Python 3.8.13 編程語言.
4.2.1 數(shù)據(jù)集選取
采用和鯨中的Credit Card Fraud Detection 數(shù)據(jù)集用于測試密文域下SVM 模型.該數(shù)據(jù)集共包含284 807 條經(jīng)主成分分析法處理后的數(shù)據(jù),其中,僅包含492 條欺詐數(shù)據(jù),直接使用這種不平衡的數(shù)據(jù)集會導(dǎo)致嚴重的過擬合.本文通過SMOTE 算法進行上采樣,然后從平衡后的數(shù)據(jù)中隨機選取680 條數(shù)據(jù)作為本次的數(shù)據(jù)集,其中,476 條(70%)數(shù)據(jù)用作訓(xùn)練集,204 條(30%)數(shù)據(jù)用作測試集.
4.2.2 實驗結(jié)果
測試的目的是比較應(yīng)用于加密數(shù)據(jù)的改進SVM模型和應(yīng)用于未加密數(shù)據(jù)的傳統(tǒng)SVM 模型的性能,即評估改進后的SVM 模型是否建立正確,以及在加密數(shù)據(jù)上應(yīng)用SVM 模型是否會降低其性能.
表2 展示了每個場景分類的準確性,其中,TP 表示真正例,FP 表示假正例,FN 表示假反例,TN 表示真正例.由表2 可知,對29 個屬性未加密數(shù)據(jù)的分類正確率為96.5%,其中,TP 為136,FP 為6,FN 為1,TN 為61;對29 個屬性加密數(shù)據(jù)的分類正確率為93.1%,其中,TP 為132,FP 為11,FN 為5,TN 為58.從表2 中可以得知,對已加密數(shù)據(jù)分類的正確率比對未加密數(shù)據(jù)分類的正確率下降了3.4%,這是因為2D-LCLM 和Paillier 加密方案僅支持整數(shù)型運算會產(chǎn)生部分計算誤差,但數(shù)據(jù)的安全性得到了顯著提升,因此,正確率的降低處于可接受范圍.
表2 未加密數(shù)據(jù)和加密數(shù)據(jù)分類的正確率Table 2 The classification accuracy of unencrypted data and encrypted data
表3 從準確率、召回率和F1 分數(shù)3 部分對分類模型對未加密數(shù)據(jù)和已加密數(shù)據(jù)進行分類性能分析.從表3 中得知,在兩種類型的數(shù)據(jù)上準確率均在93%以上.與未加密數(shù)據(jù)的分類結(jié)果進行對比,已加密數(shù)據(jù)的分類結(jié)果為正常的召回率達到96%,且對分類結(jié)果為異常的召回率為86%.另外,未加密數(shù)據(jù)中分類結(jié)果為正常和異常的F1 分數(shù)分別為97%和94%,已加密數(shù)據(jù)中分類結(jié)果為正常和異常的F1 分數(shù)分別為95%和90%.
表3 分類模型在未加密和加密數(shù)據(jù)上的性能比較Table 3 The performance comparison of classification model on unencrypted and encrypted data
4.2.3 結(jié)果分析
根據(jù)評估結(jié)果,該模型在加密數(shù)據(jù)上具有較好的效果.這體現(xiàn)在所有性能測量的數(shù)值上,即正確率、準確率、召回率和F1 分數(shù)上.該模型對已加密數(shù)據(jù)分類的正確率為93.1%,對已加密數(shù)據(jù)中分類結(jié)果為正常的準確率為93%,召回率為96%和F1 分數(shù)為95%,對已加密數(shù)據(jù)中分類結(jié)果異常的準確率為93%,召回率為86%,F1 分數(shù)為90%.這表明該模型在加密數(shù)據(jù)上具有良好的分類能力,并且與SVM 模型在未加密數(shù)據(jù)上的性能相差較小.
對于分類結(jié)果為異常的召回率比分類結(jié)果為正常的召回率大約低10%.這意味著分類異常的能力小于分類正常的能力,但此為正?,F(xiàn)象.因為標記為正常的數(shù)據(jù)記錄數(shù)量(296 個)遠多于標記為異常的數(shù)據(jù)記錄數(shù)量(180 個).
此外,該模型可以針對不同加密的測試數(shù)據(jù)使用相同的分類器,而不需要使用CS 的公鑰再次對訓(xùn)練數(shù)據(jù)進行加密并訓(xùn)練分類模型,這極大減少了完成整個分類過程的時間.
本文建立了一個基于云模型的隱私保護SVM 分類模型.測試數(shù)據(jù)采用2D-LCLM 和Paillier 加密方案進行加密,并對訓(xùn)練過程中得到的分類模型進行了修改以適應(yīng)數(shù)據(jù)加密的要求.
該方案既能保護用戶端的明文數(shù)據(jù)和分類結(jié)果,又能防止其他方學(xué)習(xí)分類模型參數(shù).該模型的性能與應(yīng)用于未加密數(shù)據(jù)的傳統(tǒng)SVM 模型的性能相當(dāng),并且本方案的思想和框架也可以用于其他需要隱私保護的機器學(xué)習(xí)任務(wù)中,例如聚類和回歸等,因此,該方案具有較高的實際應(yīng)用價值.但目前本方案只適用于小樣本,當(dāng)測試數(shù)據(jù)較多時,存在著處理時間較長、計算成本和通信成本較大的問題.在未來的工作中,將考慮模型的計算和通信成本,研究和整合更有效的方法優(yōu)化分類功能.