曹來(lái)成,吳文濤,馮 濤,郭 顯
(蘭州理工大學(xué) 計(jì)算機(jī)與通信學(xué)院,甘肅 蘭州 730050)
隨著計(jì)算機(jī)計(jì)算能力的發(fā)展,機(jī)器學(xué)習(xí)技術(shù)在推薦、認(rèn)證、威脅分析等服務(wù)中被廣泛應(yīng)用于生成預(yù)測(cè)模型。雖然該技術(shù)在語(yǔ)音、圖像、文本等領(lǐng)域中都取得了重要的突破,也使得很多問(wèn)題有了新的解決辦法,但是它需要收集大量的用戶數(shù)據(jù),因此其安全和隱私問(wèn)題不容小覷,如何保護(hù)數(shù)據(jù)的隱私已經(jīng)成為了一個(gè)重要問(wèn)題[1]。
保護(hù)數(shù)據(jù)隱私的一種方法是在將數(shù)據(jù)上傳到云中之前對(duì)數(shù)據(jù)進(jìn)行加密。在現(xiàn)今流行的云計(jì)算服務(wù)中,服務(wù)器和云服務(wù)提供商在用戶結(jié)束服務(wù)很長(zhǎng)時(shí)間后依舊可以訪問(wèn)用戶數(shù)據(jù),但云計(jì)算不能侵犯用戶的數(shù)據(jù)隱私,這個(gè)挑戰(zhàn)可以通過(guò)使用同態(tài)加密方案[2]來(lái)解決,該方案允許在不解密的情況下對(duì)加密數(shù)據(jù)執(zhí)行操作,而不會(huì)泄漏結(jié)果以外的任何信息,在密文域中進(jìn)行計(jì)算,將計(jì)算后的結(jié)果解密就相當(dāng)于在明文下直接計(jì)算。同態(tài)加密技術(shù)可以對(duì)機(jī)器學(xué)習(xí)進(jìn)行隱私保護(hù),利用加密數(shù)據(jù)訓(xùn)練機(jī)器學(xué)習(xí)模型,將結(jié)果返回給用戶自行解密,達(dá)到保護(hù)用戶敏感信息的目的。
AHARONI等[3]提出了一個(gè)基于同態(tài)加密的安全邏輯回歸模型,但這種解決方案只能分析二分類(lèi)問(wèn)題,而現(xiàn)實(shí)生活中存在許多分類(lèi)問(wèn)題[4]。SINHA等[5]使用近似同態(tài)加密方案(Cheon-Kim-Kim-Song,CKKS),以位分片的形式應(yīng)用量化和適當(dāng)?shù)臄?shù)據(jù)打包,以減少噪聲;然而隨著迭代次數(shù)的增加,CKKS方案的參數(shù)也需要變大,這使得訓(xùn)練時(shí)間急劇增加。JANG等[6]引入擴(kuò)展的CKKS方案MatHEAAN(Matrix HEAAN),以提供有效的矩陣表示和運(yùn)算以及改進(jìn)的噪聲控制;但是隨著樣本數(shù)量的增加,可用操作的范圍和網(wǎng)絡(luò)的深度會(huì)受到限制。YAN等[7]提出了一種具有隱私保護(hù)特性的算法來(lái)解決多分類(lèi)問(wèn)題,將目標(biāo)函數(shù)的梯度信息作為代理的隱私信息;但是該算法在訓(xùn)練期間沒(méi)有考慮數(shù)據(jù)質(zhì)量和數(shù)據(jù)稀疏問(wèn)題。JIA等[8]結(jié)合可搜索加密和同態(tài)加密,使服務(wù)器可以通過(guò)盲查詢陷門(mén)和索引執(zhí)行密文數(shù)據(jù)搜索,使用搜索到的同態(tài)密文進(jìn)行模型訓(xùn)練;但是在對(duì)于不同用戶發(fā)送相同請(qǐng)求的冗余訓(xùn)練時(shí),模型存儲(chǔ)空間增大,耗時(shí)較長(zhǎng)。FU等[9]提出了一種兩方縱向聯(lián)邦邏輯回歸協(xié)議,該協(xié)議通過(guò)同態(tài)加密技術(shù)來(lái)保證特征數(shù)據(jù)和標(biāo)簽信息的安全,雖然可以保證模型無(wú)損,但是沒(méi)有對(duì)非線性函數(shù)使用多項(xiàng)式近似計(jì)算,且沒(méi)有考慮模型參數(shù)隱私。ZHAO等[10]構(gòu)建了一個(gè)邏輯回歸模型,將數(shù)據(jù)聚合矩陣構(gòu)建算法和對(duì)稱(chēng)同態(tài)加密技術(shù)相結(jié)合,在整個(gè)訓(xùn)練過(guò)程中保護(hù)局部訓(xùn)練數(shù)據(jù)和全局模型免受推理攻擊。雖然云服務(wù)提供商和參與者之間不需要交互,減少了模型訓(xùn)練開(kāi)銷(xiāo),但是最終不能確定模型的性能是否滿足邏輯回歸分類(lèi)要求。EDEMACU等[11]提出了一個(gè)具有低質(zhì)量數(shù)據(jù)過(guò)濾的多方隱私保護(hù)邏輯回歸框架,在分布式環(huán)境中提出一種度量梯度相似性,用于從具有較差質(zhì)量數(shù)據(jù)的數(shù)據(jù)貢獻(xiàn)者中過(guò)濾出參數(shù);但是該梯度下降方法和求解邏輯回歸模型參數(shù)方法不適用于特殊情況,例如數(shù)據(jù)集是高維稀疏矩陣。
為解決上述問(wèn)題,文中設(shè)計(jì)了一個(gè)在保證數(shù)據(jù)質(zhì)量的情況下用戶數(shù)據(jù)隱私和模型參數(shù)隱私保護(hù)多分類(lèi)邏輯回歸(Privacy Preserving Multi-classification Logistic Regression,PPMLR)方案,允許云服務(wù)提供商與參與者之間交互,使得模型的性能滿足邏輯回歸分類(lèi)要求。利用同態(tài)加密中的批處理技術(shù)和單指令多數(shù)據(jù)(Single Instruction Multiple Data,SIMD)機(jī)制,將多條消息打包成一個(gè)密文,并在多個(gè)明文時(shí)隙上執(zhí)行相同的算術(shù)計(jì)算,減少所需的存儲(chǔ)空間并優(yōu)化計(jì)算時(shí)間。
近似數(shù)算術(shù)同態(tài)加密(Homomorphic Encryption for Arithmetic of Approximate Numbers,HEAAN)是將加密噪聲視為近似計(jì)算過(guò)程中出現(xiàn)錯(cuò)誤的一部分,即給定私鑰ks和密文模數(shù)q,對(duì)于小的誤差e,一個(gè)明文m的加密密文c滿足〈c,ks〉=m+e(modq)。減小了一定的精度而大幅提高效率,并支持定點(diǎn)算數(shù),有著出色的運(yùn)算效率。近似數(shù)算術(shù)同態(tài)加密支持一種并行單指令多數(shù)據(jù)技術(shù),利用中國(guó)剩余定理將多個(gè)數(shù)據(jù)打包到一個(gè)多項(xiàng)式中,并在明文槽上提供旋轉(zhuǎn)操作,可以安全地將加密的向量移位成明文向量對(duì)應(yīng)的密文。
近似數(shù)算術(shù)同態(tài)加密是以容錯(cuò)學(xué)習(xí)(Learning With Errors,LWE)問(wèn)題[12]為理論基礎(chǔ)。 對(duì)于2的整數(shù)冪N,模數(shù)為N的分圓多項(xiàng)式定義為R=Z[X]/(XN+1),對(duì)于一個(gè)正整數(shù)p,R模p的剩余環(huán)定義為RP=R/pR。 近似數(shù)算術(shù)同態(tài)加密中提供的主要功能描述如下:
(1) 密鑰生成:給定預(yù)設(shè)的安全參數(shù)λ,近似數(shù)算術(shù)同態(tài)加密中默認(rèn)的最大密文模數(shù)p以及離散高斯分布χ,取樣s←R,a←Rp,e←χ,輸出私鑰ks←(1,s)和公鑰kp←(b,a)∈Rp×Rp,其中b← -as+e(modp),設(shè)P=p2,取樣s′←s2,a′←RP,e′←χ,輸出計(jì)算密鑰kev←(b′,a′)∈RP×RP,其中b′← -a′s+e′+ps′(modP)。
(2) 加密(kp,m):輸入明文m∈R,取樣u←χ,e0←χ,e1←χ,輸出密文ct←ukp+(m+e0,e1)(modp)。
(3) 解密(ks,ct):輸入密文ct=(ct0,ct1),輸出m←ct0+ct1s(modp)。
(4) 加法(ct1,ct2):輸入兩個(gè)密文ct1和ct2,輸出ctadd←ct1+ct2(modp)。
(6) 重縮放(ct,bits):重縮放操作將密文的大小降低到適當(dāng)?shù)募?jí)別,新的縮放因子比原始縮放因子小2bits位,但保留ct的相同消息。
(7) 旋轉(zhuǎn)(ct,kr):輸入密文ct和旋轉(zhuǎn)密鑰kr,輸出ct的明文向量旋轉(zhuǎn)r個(gè)位置后的密文ct′(包括向左旋轉(zhuǎn)和向右旋轉(zhuǎn))。
邏輯回歸廣泛應(yīng)用于二分類(lèi)任務(wù)中,用sigmoid函數(shù)估計(jì)二元值變量是否屬于某一類(lèi)。 假設(shè)用于回歸的響應(yīng)是輸入x∈R(1+d)的線性函數(shù),通過(guò)sigmoid函數(shù)g(z)=1/(1+exp(-z))將整條實(shí)線βTx映射到(0,1)。 邏輯回歸可以公式化如下:
(1)
其中,向量β∈R(1+d),y∈{±1}是類(lèi)標(biāo)簽,向量x=(1,x1,…,xd)∈R(1+d)是協(xié)變量。
邏輯回歸問(wèn)題可以轉(zhuǎn)化為一個(gè)優(yōu)化問(wèn)題,其對(duì)數(shù)似然函數(shù)l(β)最多有一個(gè)惟一的全局最大值,梯度為0,通過(guò)Hessian矩陣的牛頓法求解?βl(β)=0時(shí)的β值。
(2)
由于需要反轉(zhuǎn)加密域中的固定海森矩陣,因此將矩陣H替換為對(duì)角線矩陣B,其對(duì)角線元素僅為矩陣H中每一行的和,并以特定的計(jì)算順序以更有效地獲得B。對(duì)于固定海森矩陣矩陣B,其對(duì)角元素可以為0,尤其是當(dāng)數(shù)據(jù)集是高維稀疏矩陣時(shí),這導(dǎo)致該對(duì)角矩陣B不可逆。 為了使簡(jiǎn)化的固定海森矩陣推廣為在任何情況下都是可逆的,應(yīng)用如下方法:
其中,ε是一個(gè)較小的正數(shù),以避免被零除(通常設(shè)置為1×10-8)。
穩(wěn)私保護(hù)多分類(lèi)邏輯回歸方案主要分為4個(gè)部分,即預(yù)處理階段、數(shù)據(jù)加密階段、模型訓(xùn)練階段和模型返回階段,圖1是系統(tǒng)架構(gòu)圖。
圖1 安全多分類(lèi)系統(tǒng)架構(gòu)圖
3.1.1 初始化權(quán)重矩陣
在邏輯回歸二分類(lèi)的基礎(chǔ)問(wèn)題上,基于拆解方法中的 “一對(duì)其余”(One vs.Rest,OvR)策略[13],擴(kuò)展二分類(lèi)邏輯回歸模型來(lái)解決多分類(lèi)問(wèn)題。
給定數(shù)據(jù)集D={(x1,y1),(x2,y2),…,(xm,ym)},yi∈{C1,C2,…,Ck}。OvR 策略只需訓(xùn)練k個(gè)分類(lèi)器,在訓(xùn)練過(guò)程中,每次只把一類(lèi)樣例作為正樣本,其他所有樣例都作為負(fù)樣本,這樣就會(huì)得到k個(gè)二分類(lèi)問(wèn)題。使用二分類(lèi)模型對(duì)k個(gè)數(shù)據(jù)集可以訓(xùn)練出k個(gè)二分類(lèi)模型,即k個(gè)分類(lèi)器,記為{F1,F2,…,Fk},比較各個(gè)分類(lèi)器的預(yù)測(cè)置信度,選擇最大置信度對(duì)應(yīng)的標(biāo)記類(lèi)別作為該樣本的預(yù)測(cè)分類(lèi)結(jié)果。
“一對(duì)其余”策略只需要訓(xùn)練k個(gè)分類(lèi)器,相對(duì)其它拆分策略,存儲(chǔ)和測(cè)試時(shí)間開(kāi)銷(xiāo)通常較小。使用 “一對(duì)其余” 策略得到的多分類(lèi)邏輯回歸的詳細(xì)過(guò)程如算法1所示。
算法1多分類(lèi)邏輯回歸算法。
輸入:X∈RN×F,y∈RN,α>0
輸出:w∈RN×F
初始化權(quán)重矩陣w
for iter=0 toTdo
fork=0 toKdo
fori=0 toNdo
Pi←
Si←σ(Pi)
end
forj=0 toFdo
wkj←wkj-αvj
end
end
end
returnw
3.1.2 客戶端數(shù)據(jù)處理
為了充分利用計(jì)算和存儲(chǔ)資源,首先將二維訓(xùn)練數(shù)據(jù)集劃分為多個(gè)固定大小的矩陣;這些矩陣仍然保留完整的樣本信息數(shù)據(jù)結(jié)構(gòu),需要預(yù)先設(shè)置數(shù)據(jù)矩陣的大小,以便每個(gè)矩陣能夠以逐行的方式打包成單個(gè)密文。如果訓(xùn)練數(shù)據(jù)集的大小不能被矩陣的這個(gè)預(yù)設(shè)大小整除,則可以將零填充到最后一個(gè)矩陣中。然后,將這樣一個(gè)完整的矩陣逐個(gè)打包成一個(gè)密文,并對(duì)每個(gè)密文并行執(zhí)行操作,這樣可以對(duì)加密在密文中的明文矩陣的任何元素或任何部分執(zhí)行同態(tài)加密操作。
(3)
可進(jìn)一步轉(zhuǎn)換為
(4)
在數(shù)據(jù)加密階段,基于近似數(shù)算術(shù)同態(tài)加密方案的開(kāi)源代碼庫(kù),定義Secretkey對(duì)象可以得到私鑰ks,通過(guò)私鑰ks和環(huán)境變量,定義Scheme對(duì)象生成公鑰kp。 輸入明文m,槽的數(shù)量slots,批數(shù)量batch等參數(shù),調(diào)用encrypt(加密)方法加密明文,如算法2所示。
算法2加密。
輸入:明文m,槽的數(shù)量slots,批數(shù)量batch,縮放因子wBits,密文模數(shù)log Q,樣本數(shù)sampleDim
輸出:密文ct
步驟1 定義Scheme對(duì)象生成公鑰kp
/* 調(diào)用encrypt方法加密明文m*/
步驟2 for(longj=0;j for longi=0;i m[batchj=1].real(m[j][batchi+1]); ∥real(·)函數(shù)用于返回復(fù)數(shù)的實(shí)部 /* 加密得密文ct←slotskp+(m+wBits,log Q)(modp) */ ct=scheme.encrypt(m,slots,wBits,log Q) 數(shù)據(jù)提供者使用公鑰將4個(gè)矩陣x0、X、Y、W分別加密為密文ex0、eX、eY、eW。 對(duì)這4個(gè)數(shù)據(jù)矩陣加密后,客戶端將生成的密文發(fā)送到云服務(wù)器(Cloud Server,CS)。 云服務(wù)器收到加密矩陣后,運(yùn)行密文域的多分類(lèi)邏輯回歸算法。 由于同態(tài)加密的同態(tài)性,在密文域上運(yùn)行多分類(lèi)邏輯回歸算法得到的結(jié)果解密后和在明文上運(yùn)行此算法得到的結(jié)果一致。 多分類(lèi)邏輯回歸算法的具體構(gòu)造如下: 步驟1 在收到數(shù)據(jù)提供者上傳的密文后,云服務(wù)器在eX和eY之間執(zhí)行單指令多數(shù)據(jù)乘法以獲得密文eZ。 在剩下的訓(xùn)練過(guò)程中,云端不再需要密文eX和eY。 步驟3 云端對(duì)接收到的密文ex0和得到的密文eB進(jìn)行運(yùn)算,調(diào)用迭代公式(4),得到密文eB-1加密B的逆近似。 步驟4 云端通過(guò)對(duì)密文eZ和權(quán)重密文eW的同態(tài)加密操作計(jì)算出原始梯度密文eg。其計(jì)算過(guò)程如下: 云端接受兩個(gè)密文eZ和eW,并評(píng)估梯度下降算法以找到最佳建模向量。 每次迭代的目標(biāo)是使用損失函數(shù)梯度更新權(quán)重密文矩陣eW的建模向量W(t): (5) 其中,αt表示第t次迭代時(shí)的學(xué)習(xí)速率,每次迭代包括以下8個(gè)過(guò)程: (1) 對(duì)于給定的兩個(gè)密文eZ和eW,將它們相乘并按p位重新縮放: (6) 輸出密文如下: e2←Add(e1,Rotate(e1;2j)) , (7) 對(duì)于j=0,1,…,log(f+1)-1,輸出密文e2加密第一個(gè)列和其他列中的一些“垃圾”值,其中“垃圾”值用*表示: (3) 執(zhí)行常量乘法以消除垃圾值。 通過(guò)計(jì)算編碼多項(xiàng)式cm←Encode(C;pc)對(duì)矩陣進(jìn)行編碼: 對(duì)某些整數(shù)pc使用2pc的比例因子。 選擇參數(shù)pc作為明文的位精度,將多項(xiàng)式cm乘以密文e2,并用pc位重新縮放: e3←ReScale(CMult(e2;cm);pc) 。 (8) 輸出密文e3在第一列中是內(nèi)積結(jié)果,在其他列中用零填充: (4) 將內(nèi)積值復(fù)制到其他列,與②類(lèi)似,通過(guò)將輸入密文添加到其列中來(lái)實(shí)現(xiàn)遞歸移位,但方向相反: e4←Add(e3,Rotate(e3;-2j)) 。 (9) 對(duì)于j=0,1,…,log(f+1)-1,輸出密文e4每行內(nèi)積值相同: (6) 云端將密文e5與加密數(shù)據(jù)集eZ相乘,并將所得密文重新縮放p位: e6←ReScale(Mult(e5,eZ);p) 。 (10) e7←Add(e6,Rotate(e6;2j)) 。 (11) 對(duì)于j=log(f+1),…,log(f+1)+logn-1,輸出密文矩陣如下: e8←ReScale(Δ(t)·e7;pc) , (12) (13) 最后,返回加密更新的建模向量的密文。 步驟5 云端通過(guò)在密文eB-1和eg之間的一次單指令多數(shù)據(jù)乘法,生成密文eG。 步驟6 云端對(duì)不同的算法使用不同的學(xué)習(xí)速率設(shè)置策略,使用密文eG更新權(quán)重密文eW。 步驟7 在每次迭代結(jié)束時(shí),云端檢查權(quán)重密文eW的剩余模是否足夠大,以完成下一輪密文eW更新。 否則,云將使用旋轉(zhuǎn)鍵引導(dǎo)這些權(quán)重密文,以大模數(shù)呈現(xiàn)權(quán)重密文。 步驟8 如果算法達(dá)到預(yù)設(shè)的最大迭代次數(shù)t,則云服務(wù)器向數(shù)據(jù)提供者發(fā)送權(quán)重密文,否則訓(xùn)練過(guò)程轉(zhuǎn)到步驟4繼續(xù)運(yùn)行。 通過(guò)上述8個(gè)步驟,執(zhí)行了內(nèi)積計(jì)算、sigmoid函數(shù)多項(xiàng)式近似、重縮放、移位等操作,完成了密文運(yùn)算,即密文的多分類(lèi)邏輯回歸算法。 整個(gè)訓(xùn)練過(guò)程完成后,云服務(wù)器將密文訓(xùn)練模型發(fā)給數(shù)據(jù)提供者,數(shù)據(jù)提供者解密密文訓(xùn)練的結(jié)果,并確定模型的性能是否滿足要求。如果是,停止訓(xùn)練。否則,繼續(xù)訓(xùn)練。其中訓(xùn)練模型的性能滿足要求的標(biāo)準(zhǔn)為:模型的準(zhǔn)確率是否與未加密情況下的準(zhǔn)確率近似,且準(zhǔn)確率是否高于之前的方案,同時(shí)判斷運(yùn)行時(shí)間在某些注重隱私保護(hù)的領(lǐng)域中是否屬于可接受范圍內(nèi)。 在半誠(chéng)實(shí)對(duì)手模型[14]中,假設(shè)數(shù)據(jù)提供者和云服務(wù)器持有公鑰kp,數(shù)據(jù)提供者持有私鑰ks。 對(duì)于穩(wěn)私保護(hù)多分類(lèi)邏輯回歸方案的評(píng)估確定性函數(shù)f,分析其安全模型,即數(shù)據(jù)提供者加密其私有數(shù)據(jù)x并將結(jié)果發(fā)送給云服務(wù)器。 云服務(wù)器對(duì)加密結(jié)果執(zhí)行同態(tài)操作以獲得y,同態(tài)評(píng)估密文模型函數(shù),數(shù)據(jù)提供者解密y并獲得f(x)。 定理1假設(shè)云服務(wù)器是一個(gè)半誠(chéng)實(shí)實(shí)體,并假設(shè)數(shù)據(jù)提供者和云服務(wù)器不相互勾結(jié)。x是數(shù)據(jù)提供者的私有數(shù)據(jù)。如果同態(tài)加密方案提供了語(yǔ)義安全性[15],那么在對(duì)x執(zhí)行同態(tài)運(yùn)算并對(duì)密文求評(píng)估函數(shù)后,數(shù)據(jù)提供者獲得f(x),云服務(wù)器什么也不能獲得。 安全證明:假設(shè)穩(wěn)私保護(hù)多分類(lèi)邏輯回歸的安全性證明遵循基于仿真的范式。 設(shè)數(shù)據(jù)提供者和云服務(wù)器在評(píng)估期間的視圖分別為VDP和VCS,云服務(wù)器的視圖VCS由{kp、x、y、f(x)}組成。 首先同時(shí)構(gòu)建一個(gè)模擬器SCS,SCS隨機(jī)選擇輸入數(shù)據(jù){x′、y′、f(x′)},然后SCS通過(guò)V′CS={kp、x′、y′、f(x′)}模擬VCS;由于同態(tài)加密方案提供語(yǔ)義安全性,因此VCS和V′CS無(wú)法區(qū)分,即穩(wěn)私保護(hù)多分類(lèi)邏輯回歸對(duì)半誠(chéng)實(shí)云服務(wù)器是安全的。 云服務(wù)器能夠得到加密數(shù)據(jù)集D′和密文矩陣,本節(jié)證明在半誠(chéng)實(shí)模型下,云服務(wù)器在得到加密數(shù)據(jù)集D′以及密文矩陣時(shí)無(wú)法恢復(fù)出明文集合D={x1,x2,…,xn}。 首先,密文ci對(duì)應(yīng)的明文為xi,其中i=1,2,…,n;為了便利,簡(jiǎn)化加密過(guò)程為c=HE.E(x,S),其中HE.E(·)表示調(diào)用同態(tài)加密中加密函數(shù),S為密鑰。因此可以推論當(dāng)同態(tài)加密自身是安全且云服務(wù)器無(wú)法獲取密鑰時(shí),那么明文數(shù)據(jù)集就是安全的。 當(dāng)然也可假設(shè)密鑰在數(shù)據(jù)提供者的私有云存儲(chǔ),且公共云無(wú)法獲取私有云信息。 其次,構(gòu)建特殊矩陣U來(lái)構(gòu)造密文下的損失函數(shù),通過(guò)等式I*=AM求解出矩陣A(其中M是密鑰轉(zhuǎn)換矩陣),然后通過(guò)矩陣A來(lái)構(gòu)造矩陣U=ATA;由于密文和明文之間滿足關(guān)系c=M(ωx)*,因此當(dāng)云端擁有矩陣U和密文c時(shí),可能會(huì)通過(guò)以上3個(gè)等式聯(lián)合求解明文。 但是,對(duì)于一個(gè)隨機(jī)的正定矩陣Q,滿足關(guān)系QTQ=I,其中I為單位矩陣。 于是可得到等式U=ATA=ATQTQA=ATIA=U。 很明顯,不能從U=ATA中恢復(fù)出矩陣A,因?yàn)榫仃嘠是隨機(jī)選取的。 因此云服務(wù)器無(wú)法從密文c和矩陣U中恢復(fù)出明文。 穩(wěn)私保護(hù)多分類(lèi)邏輯回歸方案在功能上分別與文獻(xiàn)[9-11]進(jìn)行對(duì)比,如表1所示。 文獻(xiàn)[9]使用同態(tài)加密技術(shù)來(lái)保證特征數(shù)據(jù)和標(biāo)簽信息的安全,但是沒(méi)有對(duì)非線性函數(shù)使用多項(xiàng)式近似計(jì)算;文獻(xiàn)[10]可以在整個(gè)訓(xùn)練過(guò)程中保護(hù)局部訓(xùn)練數(shù)據(jù)和全局模型免受推理攻擊。雖然云服務(wù)提供商和參與者之間不需要交互,減少了模型訓(xùn)練開(kāi)銷(xiāo),但是最終不能確定模型的性能是否滿足邏輯回歸分類(lèi)要求;文獻(xiàn)[11]在模型訓(xùn)練過(guò)程中過(guò)濾掉質(zhì)量較差的數(shù)據(jù)。但是該梯度下降方法和求解邏輯回歸模型參數(shù)方法不能適用于任何情況。穩(wěn)私保護(hù)多分類(lèi)邏輯回歸方案可以解決多分類(lèi)問(wèn)題,用多項(xiàng)式近似值代替sigmoid函數(shù),將二維訓(xùn)練數(shù)據(jù)集劃分為多個(gè)固定大小的矩陣;這些矩陣仍然保留完整的樣本信息數(shù)據(jù)結(jié)構(gòu),在模型訓(xùn)練期間,能夠減輕數(shù)據(jù)的稀疏性,保證數(shù)據(jù)質(zhì)量。 表1 方案功能比較 文中所有的實(shí)驗(yàn)都在Intel Core i7-8750H 2.20 GHz機(jī)器上實(shí)現(xiàn)。使用了來(lái)自加州大學(xué)歐文分校(University of California Irvine,UCI)數(shù)據(jù)庫(kù)的Heart Disease、Edinburgh 、Iris 3個(gè)數(shù)據(jù)集、Heart Disease數(shù)據(jù)集,共298個(gè)樣本,每個(gè)樣本包含13個(gè)特征;Edinburgh數(shù)據(jù)集共1 253個(gè)樣本,每個(gè)樣本包含10個(gè)特征;Iris數(shù)據(jù)集共150個(gè)樣本,每個(gè)樣本包含4個(gè)特征。 為驗(yàn)證方案的分類(lèi)性能,分別在Heart Disease數(shù)據(jù)集、Edinburgh數(shù)據(jù)集上對(duì)穩(wěn)私保護(hù)多分類(lèi)邏輯回歸方案和文獻(xiàn)[9-11]的方案進(jìn)行了準(zhǔn)確率對(duì)比實(shí)驗(yàn),采用5倍交叉驗(yàn)證方法來(lái)獲得實(shí)驗(yàn)結(jié)果的有效性,最大迭代次數(shù)λ取19。從圖1和圖2中看到使用sigmoid原函數(shù)進(jìn)行計(jì)算時(shí),通過(guò)增大迭代次數(shù),可以達(dá)到較高的準(zhǔn)確率,同樣使用sigmoid近似函數(shù)進(jìn)行計(jì)算時(shí),方案對(duì)加密數(shù)據(jù)訓(xùn)練得到的準(zhǔn)確率與對(duì)未加密數(shù)據(jù)訓(xùn)練得到的準(zhǔn)確率幾乎相同,且高于其他方案的分類(lèi)準(zhǔn)確率。 由此可以驗(yàn)證本方案同態(tài)計(jì)算的可行性和準(zhǔn)確性。 圖1 Heart Disease數(shù)據(jù)集精度 圖2 Edinburgh數(shù)據(jù)集精度 本小節(jié)測(cè)試了穩(wěn)私保護(hù)多分類(lèi)邏輯回歸方案與文獻(xiàn)[9-11]的方案在3個(gè)數(shù)據(jù)集上完成加密和模型訓(xùn)練所需要的時(shí)間開(kāi)銷(xiāo);圖3和圖4反映了每個(gè)方案的計(jì)算時(shí)間開(kāi)銷(xiāo)對(duì)比情況。根據(jù)實(shí)驗(yàn)結(jié)果,從加密時(shí)間來(lái)看,在Heart Disease數(shù)據(jù)集下,所提模型的加密時(shí)間比文獻(xiàn)[9-11]分別減少了約61.65%、52.03%、37.98%,在Edinburgh數(shù)據(jù)集、Iris數(shù)據(jù)集下,加密時(shí)間也減少了。用戶只參與最終密文預(yù)測(cè)結(jié)果的解密計(jì)算,沒(méi)有參與密文訓(xùn)練過(guò)程,所以用戶的解密計(jì)算時(shí)間開(kāi)銷(xiāo)不會(huì)隨數(shù)據(jù)集的樣本和特征數(shù)的增加而增加。在大規(guī)模訓(xùn)練數(shù)據(jù)集上,穩(wěn)私保護(hù)多分類(lèi)邏輯回歸方案在對(duì)多項(xiàng)式的近似、數(shù)據(jù)集的劃分、執(zhí)行具體的同態(tài)加密操作等步驟中充分利用計(jì)算和存儲(chǔ)資源,對(duì)于醫(yī)療、財(cái)務(wù)、個(gè)人信息等隱私數(shù)據(jù)而言,該模型的效率是較好的。 圖3 數(shù)據(jù)集上加密時(shí)間和對(duì)比 圖4 數(shù)據(jù)集上模型訓(xùn)練時(shí)間和對(duì)比 根據(jù)上述的實(shí)驗(yàn)分析,表2列出了在Heart Disease數(shù)據(jù)集,Edinburgh數(shù)據(jù)集上分別對(duì)未加密數(shù)據(jù)和加密數(shù)據(jù)進(jìn)行計(jì)算的模型的性能,由于迭代次數(shù)越大,計(jì)算開(kāi)銷(xiāo)也越大,將加密狀態(tài)下的迭代次數(shù)設(shè)置為7次。對(duì)實(shí)驗(yàn)中的加密時(shí)間,模型訓(xùn)練時(shí)間以及準(zhǔn)確率進(jìn)行計(jì)算和統(tǒng)計(jì)。 表2 使用5倍交叉驗(yàn)證的模型的實(shí)驗(yàn)結(jié)果 文中提出了一種在加密的訓(xùn)練數(shù)據(jù)上實(shí)現(xiàn)多分類(lèi)邏輯回歸的方案,使數(shù)據(jù)所有者能夠利用云服務(wù)提供商的強(qiáng)大存儲(chǔ)和計(jì)算資源進(jìn)行多分類(lèi)邏輯回歸分析,而不暴露訓(xùn)練數(shù)據(jù)的隱私,利用同態(tài)加密中的批處理技術(shù)和單指令多數(shù)據(jù)機(jī)制來(lái)加快訓(xùn)練進(jìn)度;同時(shí)該方案能夠保證訓(xùn)練數(shù)據(jù)的質(zhì)量,在不影響多分類(lèi)數(shù)據(jù)準(zhǔn)確率的同時(shí)降低了計(jì)算開(kāi)銷(xiāo)。通過(guò)性能分析和實(shí)驗(yàn)對(duì)比,在真實(shí)數(shù)據(jù)集上進(jìn)行模擬,該方案綜合性能較好。3.3 模型訓(xùn)練階段
3.4 模型返回階段
4 安全性分析
4.1 語(yǔ)義隱私性
4.2 數(shù)據(jù)隱私性
5 性能分析
5.1 功能對(duì)比
5.2 損失分析
5.3 計(jì)算開(kāi)銷(xiāo)分析
6 結(jié)束語(yǔ)