曹來成,吳文濤,馮 濤,郭 顯
(蘭州理工大學 計算機與通信學院,甘肅 蘭州 730050)
隨著計算機計算能力的發展,機器學習技術在推薦、認證、威脅分析等服務中被廣泛應用于生成預測模型。雖然該技術在語音、圖像、文本等領域中都取得了重要的突破,也使得很多問題有了新的解決辦法,但是它需要收集大量的用戶數據,因此其安全和隱私問題不容小覷,如何保護數據的隱私已經成為了一個重要問題[1]。
保護數據隱私的一種方法是在將數據上傳到云中之前對數據進行加密。在現今流行的云計算服務中,服務器和云服務提供商在用戶結束服務很長時間后依舊可以訪問用戶數據,但云計算不能侵犯用戶的數據隱私,這個挑戰可以通過使用同態加密方案[2]來解決,該方案允許在不解密的情況下對加密數據執行操作,而不會泄漏結果以外的任何信息,在密文域中進行計算,將計算后的結果解密就相當于在明文下直接計算。同態加密技術可以對機器學習進行隱私保護,利用加密數據訓練機器學習模型,將結果返回給用戶自行解密,達到保護用戶敏感信息的目的。
AHARONI等[3]提出了一個基于同態加密的安全邏輯回歸模型,但這種解決方案只能分析二分類問題,而現實生活中存在許多分類問題[4]。SINHA等[5]使用近似同態加密方案(Cheon-Kim-Kim-Song,CKKS),以位分片的形式應用量化和適當的數據打包,以減少噪聲;然而隨著迭代次數的增加,CKKS方案的參數也需要變大,這使得訓練時間急劇增加。JANG等[6]引入擴展的CKKS方案MatHEAAN(Matrix HEAAN),以提供有效的矩陣表示和運算以及改進的噪聲控制;但是隨著樣本數量的增加,可用操作的范圍和網絡的深度會受到限制。YAN等[7]提出了一種具有隱私保護特性的算法來解決多分類問題,將目標函數的梯度信息作為代理的隱私信息;但是該算法在訓練期間沒有考慮數據質量和數據稀疏問題。JIA等[8]結合可搜索加密和同態加密,使服務器可以通過盲查詢陷門和索引執行密文數據搜索,使用搜索到的同態密文進行模型訓練;但是在對于不同用戶發送相同請求的冗余訓練時,模型存儲空間增大,耗時較長。FU等[9]提出了一種兩方縱向聯邦邏輯回歸協議,該協議通過同態加密技術來保證特征數據和標簽信息的安全,雖然可以保證模型無損,但是沒有對非線性函數使用多項式近似計算,且沒有考慮模型參數隱私。ZHAO等[10]構建了一個邏輯回歸模型,將數據聚合矩陣構建算法和對稱同態加密技術相結合,在整個訓練過程中保護局部訓練數據和全局模型免受推理攻擊。雖然云服務提供商和參與者之間不需要交互,減少了模型訓練開銷,但是最終不能確定模型的性能是否滿足邏輯回歸分類要求。EDEMACU等[11]提出了一個具有低質量數據過濾的多方隱私保護邏輯回歸框架,在分布式環境中提出一種度量梯度相似性,用于從具有較差質量數據的數據貢獻者中過濾出參數;但是該梯度下降方法和求解邏輯回歸模型參數方法不適用于特殊情況,例如數據集是高維稀疏矩陣。
為解決上述問題,文中設計了一個在保證數據質量的情況下用戶數據隱私和模型參數隱私保護多分類邏輯回歸(Privacy Preserving Multi-classification Logistic Regression,PPMLR)方案,允許云服務提供商與參與者之間交互,使得模型的性能滿足邏輯回歸分類要求。利用同態加密中的批處理技術和單指令多數據(Single Instruction Multiple Data,SIMD)機制,將多條消息打包成一個密文,并在多個明文時隙上執行相同的算術計算,減少所需的存儲空間并優化計算時間。
近似數算術同態加密(Homomorphic Encryption for Arithmetic of Approximate Numbers,HEAAN)是將加密噪聲視為近似計算過程中出現錯誤的一部分,即給定私鑰ks和密文模數q,對于小的誤差e,一個明文m的加密密文c滿足〈c,ks〉=m+e(modq)。減小了一定的精度而大幅提高效率,并支持定點算數,有著出色的運算效率。近似數算術同態加密支持一種并行單指令多數據技術,利用中國剩余定理將多個數據打包到一個多項式中,并在明文槽上提供旋轉操作,可以安全地將加密的向量移位成明文向量對應的密文。
近似數算術同態加密是以容錯學習(Learning With Errors,LWE)問題[12]為理論基礎。 對于2的整數冪N,模數為N的分圓多項式定義為R=Z[X]/(XN+1),對于一個正整數p,R模p的剩余環定義為RP=R/pR。 近似數算術同態加密中提供的主要功能描述如下:
(1) 密鑰生成:給定預設的安全參數λ,近似數算術同態加密中默認的最大密文模數p以及離散高斯分布χ,取樣s←R,a←Rp,e←χ,輸出私鑰ks←(1,s)和公鑰kp←(b,a)∈Rp×Rp,其中b← -as+e(modp),設P=p2,取樣s′←s2,a′←RP,e′←χ,輸出計算密鑰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):輸入兩個密文ct1和ct2,輸出ctadd←ct1+ct2(modp)。

(6) 重縮放(ct,bits):重縮放操作將密文的大小降低到適當的級別,新的縮放因子比原始縮放因子小2bits位,但保留ct的相同消息。
(7) 旋轉(ct,kr):輸入密文ct和旋轉密鑰kr,輸出ct的明文向量旋轉r個位置后的密文ct′(包括向左旋轉和向右旋轉)。
邏輯回歸廣泛應用于二分類任務中,用sigmoid函數估計二元值變量是否屬于某一類。 假設用于回歸的響應是輸入x∈R(1+d)的線性函數,通過sigmoid函數g(z)=1/(1+exp(-z))將整條實線βTx映射到(0,1)。 邏輯回歸可以公式化如下:
(1)
其中,向量β∈R(1+d),y∈{±1}是類標簽,向量x=(1,x1,…,xd)∈R(1+d)是協變量。
邏輯回歸問題可以轉化為一個優化問題,其對數似然函數l(β)最多有一個惟一的全局最大值,梯度為0,通過Hessian矩陣的牛頓法求解?βl(β)=0時的β值。


(2)
由于需要反轉加密域中的固定海森矩陣,因此將矩陣H替換為對角線矩陣B,其對角線元素僅為矩陣H中每一行的和,并以特定的計算順序以更有效地獲得B。對于固定海森矩陣矩陣B,其對角元素可以為0,尤其是當數據集是高維稀疏矩陣時,這導致該對角矩陣B不可逆。 為了使簡化的固定海森矩陣推廣為在任何情況下都是可逆的,應用如下方法:


其中,ε是一個較小的正數,以避免被零除(通常設置為1×10-8)。
穩私保護多分類邏輯回歸方案主要分為4個部分,即預處理階段、數據加密階段、模型訓練階段和模型返回階段,圖1是系統架構圖。

圖1 安全多分類系統架構圖
3.1.1 初始化權重矩陣
在邏輯回歸二分類的基礎問題上,基于拆解方法中的 “一對其余”(One vs.Rest,OvR)策略[13],擴展二分類邏輯回歸模型來解決多分類問題。
給定數據集D={(x1,y1),(x2,y2),…,(xm,ym)},yi∈{C1,C2,…,Ck}。OvR 策略只需訓練k個分類器,在訓練過程中,每次只把一類樣例作為正樣本,其他所有樣例都作為負樣本,這樣就會得到k個二分類問題。使用二分類模型對k個數據集可以訓練出k個二分類模型,即k個分類器,記為{F1,F2,…,Fk},比較各個分類器的預測置信度,選擇最大置信度對應的標記類別作為該樣本的預測分類結果。
“一對其余”策略只需要訓練k個分類器,相對其它拆分策略,存儲和測試時間開銷通常較小。使用 “一對其余” 策略得到的多分類邏輯回歸的詳細過程如算法1所示。
算法1多分類邏輯回歸算法。
輸入:X∈RN×F,y∈RN,α>0
輸出:w∈RN×F
初始化權重矩陣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 客戶端數據處理
為了充分利用計算和存儲資源,首先將二維訓練數據集劃分為多個固定大小的矩陣;這些矩陣仍然保留完整的樣本信息數據結構,需要預先設置數據矩陣的大小,以便每個矩陣能夠以逐行的方式打包成單個密文。如果訓練數據集的大小不能被矩陣的這個預設大小整除,則可以將零填充到最后一個矩陣中。然后,將這樣一個完整的矩陣逐個打包成一個密文,并對每個密文并行執行操作,這樣可以對加密在密文中的明文矩陣的任何元素或任何部分執行同態加密操作。
(3)
可進一步轉換為
(4)


在數據加密階段,基于近似數算術同態加密方案的開源代碼庫,定義Secretkey對象可以得到私鑰ks,通過私鑰ks和環境變量,定義Scheme對象生成公鑰kp。 輸入明文m,槽的數量slots,批數量batch等參數,調用encrypt(加密)方法加密明文,如算法2所示。
算法2加密。
輸入:明文m,槽的數量slots,批數量batch,縮放因子wBits,密文模數log Q,樣本數sampleDim
輸出:密文ct
步驟1 定義Scheme對象生成公鑰kp
/* 調用encrypt方法加密明文m*/
步驟2 for(longj=0;j for longi=0;i m[batchj=1].real(m[j][batchi+1]); ∥real(·)函數用于返回復數的實部 /* 加密得密文ct←slotskp+(m+wBits,log Q)(modp) */ ct=scheme.encrypt(m,slots,wBits,log Q) 數據提供者使用公鑰將4個矩陣x0、X、Y、W分別加密為密文ex0、eX、eY、eW。 對這4個數據矩陣加密后,客戶端將生成的密文發送到云服務器(Cloud Server,CS)。 云服務器收到加密矩陣后,運行密文域的多分類邏輯回歸算法。 由于同態加密的同態性,在密文域上運行多分類邏輯回歸算法得到的結果解密后和在明文上運行此算法得到的結果一致。 多分類邏輯回歸算法的具體構造如下: 步驟1 在收到數據提供者上傳的密文后,云服務器在eX和eY之間執行單指令多數據乘法以獲得密文eZ。 在剩下的訓練過程中,云端不再需要密文eX和eY。 步驟3 云端對接收到的密文ex0和得到的密文eB進行運算,調用迭代公式(4),得到密文eB-1加密B的逆近似。 步驟4 云端通過對密文eZ和權重密文eW的同態加密操作計算出原始梯度密文eg。其計算過程如下: 云端接受兩個密文eZ和eW,并評估梯度下降算法以找到最佳建模向量。 每次迭代的目標是使用損失函數梯度更新權重密文矩陣eW的建模向量W(t): (5) 其中,αt表示第t次迭代時的學習速率,每次迭代包括以下8個過程: (1) 對于給定的兩個密文eZ和eW,將它們相乘并按p位重新縮放: (6) 輸出密文如下: e2←Add(e1,Rotate(e1;2j)) , (7) 對于j=0,1,…,log(f+1)-1,輸出密文e2加密第一個列和其他列中的一些“垃圾”值,其中“垃圾”值用*表示: (3) 執行常量乘法以消除垃圾值。 通過計算編碼多項式cm←Encode(C;pc)對矩陣進行編碼: 對某些整數pc使用2pc的比例因子。 選擇參數pc作為明文的位精度,將多項式cm乘以密文e2,并用pc位重新縮放: e3←ReScale(CMult(e2;cm);pc) 。 (8) 輸出密文e3在第一列中是內積結果,在其他列中用零填充: (4) 將內積值復制到其他列,與②類似,通過將輸入密文添加到其列中來實現遞歸移位,但方向相反: e4←Add(e3,Rotate(e3;-2j)) 。 (9) 對于j=0,1,…,log(f+1)-1,輸出密文e4每行內積值相同: (6) 云端將密文e5與加密數據集eZ相乘,并將所得密文重新縮放p位: e6←ReScale(Mult(e5,eZ);p) 。 (10) e7←Add(e6,Rotate(e6;2j)) 。 (11) 對于j=log(f+1),…,log(f+1)+logn-1,輸出密文矩陣如下: e8←ReScale(Δ(t)·e7;pc) , (12) (13) 最后,返回加密更新的建模向量的密文。 步驟5 云端通過在密文eB-1和eg之間的一次單指令多數據乘法,生成密文eG。 步驟6 云端對不同的算法使用不同的學習速率設置策略,使用密文eG更新權重密文eW。 步驟7 在每次迭代結束時,云端檢查權重密文eW的剩余模是否足夠大,以完成下一輪密文eW更新。 否則,云將使用旋轉鍵引導這些權重密文,以大模數呈現權重密文。 步驟8 如果算法達到預設的最大迭代次數t,則云服務器向數據提供者發送權重密文,否則訓練過程轉到步驟4繼續運行。 通過上述8個步驟,執行了內積計算、sigmoid函數多項式近似、重縮放、移位等操作,完成了密文運算,即密文的多分類邏輯回歸算法。 整個訓練過程完成后,云服務器將密文訓練模型發給數據提供者,數據提供者解密密文訓練的結果,并確定模型的性能是否滿足要求。如果是,停止訓練。否則,繼續訓練。其中訓練模型的性能滿足要求的標準為:模型的準確率是否與未加密情況下的準確率近似,且準確率是否高于之前的方案,同時判斷運行時間在某些注重隱私保護的領域中是否屬于可接受范圍內。 在半誠實對手模型[14]中,假設數據提供者和云服務器持有公鑰kp,數據提供者持有私鑰ks。 對于穩私保護多分類邏輯回歸方案的評估確定性函數f,分析其安全模型,即數據提供者加密其私有數據x并將結果發送給云服務器。 云服務器對加密結果執行同態操作以獲得y,同態評估密文模型函數,數據提供者解密y并獲得f(x)。 定理1假設云服務器是一個半誠實實體,并假設數據提供者和云服務器不相互勾結。x是數據提供者的私有數據。如果同態加密方案提供了語義安全性[15],那么在對x執行同態運算并對密文求評估函數后,數據提供者獲得f(x),云服務器什么也不能獲得。 安全證明:假設穩私保護多分類邏輯回歸的安全性證明遵循基于仿真的范式。 設數據提供者和云服務器在評估期間的視圖分別為VDP和VCS,云服務器的視圖VCS由{kp、x、y、f(x)}組成。 首先同時構建一個模擬器SCS,SCS隨機選擇輸入數據{x′、y′、f(x′)},然后SCS通過V′CS={kp、x′、y′、f(x′)}模擬VCS;由于同態加密方案提供語義安全性,因此VCS和V′CS無法區分,即穩私保護多分類邏輯回歸對半誠實云服務器是安全的。 云服務器能夠得到加密數據集D′和密文矩陣,本節證明在半誠實模型下,云服務器在得到加密數據集D′以及密文矩陣時無法恢復出明文集合D={x1,x2,…,xn}。 首先,密文ci對應的明文為xi,其中i=1,2,…,n;為了便利,簡化加密過程為c=HE.E(x,S),其中HE.E(·)表示調用同態加密中加密函數,S為密鑰。因此可以推論當同態加密自身是安全且云服務器無法獲取密鑰時,那么明文數據集就是安全的。 當然也可假設密鑰在數據提供者的私有云存儲,且公共云無法獲取私有云信息。 其次,構建特殊矩陣U來構造密文下的損失函數,通過等式I*=AM求解出矩陣A(其中M是密鑰轉換矩陣),然后通過矩陣A來構造矩陣U=ATA;由于密文和明文之間滿足關系c=M(ωx)*,因此當云端擁有矩陣U和密文c時,可能會通過以上3個等式聯合求解明文。 但是,對于一個隨機的正定矩陣Q,滿足關系QTQ=I,其中I為單位矩陣。 于是可得到等式U=ATA=ATQTQA=ATIA=U。 很明顯,不能從U=ATA中恢復出矩陣A,因為矩陣Q是隨機選取的。 因此云服務器無法從密文c和矩陣U中恢復出明文。 穩私保護多分類邏輯回歸方案在功能上分別與文獻[9-11]進行對比,如表1所示。 文獻[9]使用同態加密技術來保證特征數據和標簽信息的安全,但是沒有對非線性函數使用多項式近似計算;文獻[10]可以在整個訓練過程中保護局部訓練數據和全局模型免受推理攻擊。雖然云服務提供商和參與者之間不需要交互,減少了模型訓練開銷,但是最終不能確定模型的性能是否滿足邏輯回歸分類要求;文獻[11]在模型訓練過程中過濾掉質量較差的數據。但是該梯度下降方法和求解邏輯回歸模型參數方法不能適用于任何情況。穩私保護多分類邏輯回歸方案可以解決多分類問題,用多項式近似值代替sigmoid函數,將二維訓練數據集劃分為多個固定大小的矩陣;這些矩陣仍然保留完整的樣本信息數據結構,在模型訓練期間,能夠減輕數據的稀疏性,保證數據質量。 表1 方案功能比較 文中所有的實驗都在Intel Core i7-8750H 2.20 GHz機器上實現。使用了來自加州大學歐文分校(University of California Irvine,UCI)數據庫的Heart Disease、Edinburgh 、Iris 3個數據集、Heart Disease數據集,共298個樣本,每個樣本包含13個特征;Edinburgh數據集共1 253個樣本,每個樣本包含10個特征;Iris數據集共150個樣本,每個樣本包含4個特征。 為驗證方案的分類性能,分別在Heart Disease數據集、Edinburgh數據集上對穩私保護多分類邏輯回歸方案和文獻[9-11]的方案進行了準確率對比實驗,采用5倍交叉驗證方法來獲得實驗結果的有效性,最大迭代次數λ取19。從圖1和圖2中看到使用sigmoid原函數進行計算時,通過增大迭代次數,可以達到較高的準確率,同樣使用sigmoid近似函數進行計算時,方案對加密數據訓練得到的準確率與對未加密數據訓練得到的準確率幾乎相同,且高于其他方案的分類準確率。 由此可以驗證本方案同態計算的可行性和準確性。 圖1 Heart Disease數據集精度 圖2 Edinburgh數據集精度 本小節測試了穩私保護多分類邏輯回歸方案與文獻[9-11]的方案在3個數據集上完成加密和模型訓練所需要的時間開銷;圖3和圖4反映了每個方案的計算時間開銷對比情況。根據實驗結果,從加密時間來看,在Heart Disease數據集下,所提模型的加密時間比文獻[9-11]分別減少了約61.65%、52.03%、37.98%,在Edinburgh數據集、Iris數據集下,加密時間也減少了。用戶只參與最終密文預測結果的解密計算,沒有參與密文訓練過程,所以用戶的解密計算時間開銷不會隨數據集的樣本和特征數的增加而增加。在大規模訓練數據集上,穩私保護多分類邏輯回歸方案在對多項式的近似、數據集的劃分、執行具體的同態加密操作等步驟中充分利用計算和存儲資源,對于醫療、財務、個人信息等隱私數據而言,該模型的效率是較好的。 圖3 數據集上加密時間和對比 圖4 數據集上模型訓練時間和對比 根據上述的實驗分析,表2列出了在Heart Disease數據集,Edinburgh數據集上分別對未加密數據和加密數據進行計算的模型的性能,由于迭代次數越大,計算開銷也越大,將加密狀態下的迭代次數設置為7次。對實驗中的加密時間,模型訓練時間以及準確率進行計算和統計。 表2 使用5倍交叉驗證的模型的實驗結果 文中提出了一種在加密的訓練數據上實現多分類邏輯回歸的方案,使數據所有者能夠利用云服務提供商的強大存儲和計算資源進行多分類邏輯回歸分析,而不暴露訓練數據的隱私,利用同態加密中的批處理技術和單指令多數據機制來加快訓練進度;同時該方案能夠保證訓練數據的質量,在不影響多分類數據準確率的同時降低了計算開銷。通過性能分析和實驗對比,在真實數據集上進行模擬,該方案綜合性能較好。3.3 模型訓練階段



3.4 模型返回階段
4 安全性分析
4.1 語義隱私性
4.2 數據隱私性
5 性能分析
5.1 功能對比

5.2 損失分析


5.3 計算開銷分析



6 結束語