論文《Privacy-Preserving Ridge Regression on Hundreds of Millions of Records》梳理

線性迴歸模型

給定數據集: xiRdyiRi[1,n]x_i \in R^d, y_i \in R, i \in [1, n] ,其中d也爲特徵數
迴歸:爲映射 f:RdRf:R^d \rightarrow R 找到 yif(xi)y_i \approx f(x_i)
線性迴歸:找到 yiβTxi,x[n]{1,...,n},βRdy_i \approx \beta ^Tx_i, x \in [n] \equiv \{1, ..., n\}, \beta \in R^d
歸一化:將x的區間變爲有限的區間,歸一化方法
嶺迴歸:最小化函數F(β)=i=1n(yiβTxi)2+λβ22F(\beta) = \sum_{i=1}^n(y_i-\beta^Tx_i)^2+\lambda\|\beta\|_2^2嶺迴歸理解 ,訓練 λ\lambda 使得β\beta更穩定
sklearn 中 linear_model.Ridge 使用的最小化函數:ywX22+alphaw22||y-wX||_2^2+alpha*||w||_2^2, w 即爲求解後的coef或權重係數

βab\|\beta\|_a^bβ\beta的a次範式的b次方,範式的理解

最小化函數F(β)F(\beta) 即求Aβ=b,A=XTX+λI,b=XTy,yRn×1,XRn×dA\beta = b, A = X^TX+\lambda I, b = X^Ty, y\in R^{n\times1}, X\in R^{n\times d}
因爲A是正定矩陣,可以使用Cholesky分解

對於一個用戶uiu_i而言:Ai=xixiT,bi=yixi,A=i=1nAi+λI,b=i=1nbiA_i=x_ix_i^T, b_i=y_ix_i, A=\sum_{i=1}^nA_i+\lambda I, b = \sum_{i=1}^nb_i

同態加密

Paillier 加密方案

術語 英語 描述 符號表示
同餘類 congruence class / residue class 模 n 同餘的所有整數組成的集合 an/[a]{\displaystyle {\overline {a}}_{n}} / [a]
餘數系統 residue system 模 n 同餘類的代表數的集合
完整餘數系統 complete residue system 模 n 的全部同餘類的代表數的集合
最小余數系統 least residue system 由每個同餘類的最小非負整數所組成
簡約餘數系統 reduced residue system 模 n 的結果與 n 互質的代表數所構成的集合,集合元素個數等於歐拉函數ϕ(n)\phi (n)
歐拉定理 aφ(n)1(modn)a^{\varphi (n)}\equiv 1{\pmod {n}}
卡邁克爾函數 aλ(n)1(modn)a^{\lambda (n)}\equiv 1{\pmod {n}} 在這裏插入圖片描述
乘法羣 模 n 的互質同餘類,即爲簡約餘數系統,也稱爲整數模 n 乘法羣;在環理論中,一個抽象代數的分支,也稱這個羣爲整數模 n 的環的單位羣 ZnZ_n
羣的階數 羣的階數由歐拉函數給出:Zn=ϕ(n)\|Z_n^*\| = \phi(n)
循環羣 設(G,)爲一個羣,若存在一G內的元素g,對屬於G的任意x,都存在整數k,使x = g^k ,稱(G,)爲循環羣,g爲羣的生成元。若存在最小正整數n,使得gn=eg^n=e,稱n爲生成元的階(e爲幺元,即g^0)。參考資料:https://www.zhihu.com/question/23353412/answer/24329687

有時候 ZnZ_nZnZ_n^*相同,但有時ZnZ_n^*特指簡化剩餘類,即模n互質餘數的集合,ZnZ_n特指[0, n-1],也就是Zn=n,Zn=ϕ(n)\|Z_n\|=n, \|Z_n^*\|=\phi(n)

Garbled 電路

使用C語言實現Regev算法,然後通過軟件生成電路圖,再進行Garbled化,就可以獲得Garbled電路
輸入定義爲GI(x)GI(x)

各方交互步驟

數據傳輸圖
假設用戶uiu_iuju_j提供數據

  1. ci=Epk(Ai;bi),cj=Epk(Aj;bj)c_i=E_{pk}(A_i;b_i), c_j=E_{pk}(A_j;b_j)uiu_iuju_j將數據cic_icjc_j傳給Evaluator
  2. Evaluator計算cicj=Epk(Ai;bi)Epk(Aj;bj)=Epk(Ai+Aj;bi+bj)c_i \bigotimes c_j =E_{pk}(A_i;b_i) \bigotimes E_{pk}(A_j;b_j)=E_{pk}(A_i+A_j;b_i+b_j)

第一種協議

準備階段:

Evaluator提供給CSP輸入數據集的特徵數d,數據集的數據範圍,代表數據整數部分和小數部分的比特數
CSP準備Garbled電路,生成同態加密使用的祕鑰(pk,sk),將GI(sk)GI(sk)嵌入Garbled電路

階段一:

每個uiu_i計算Ai,bi,ci=Epk(Ai;bi)A_i, b_i, c_i=E_{pk}(A_i;b_i),然後將cic_i發送給Evaluator,假設user與Evaluator之間存在一個安全的通道,比如TLS
Evaluator計算cλ=Epk(λI;0)c_{\lambda}=E_{pk}(\lambda I;0),然後可以計算c=(i=1nci)cλ=Epk(i=1nAi+λI;i=1nbi)=Epk(A;b)c = (\bigotimes_{i=1}^nc_i)\bigotimes c_{\lambda} = E_{pk}(\sum_{i=1}^nA_i+\lambda I; \sum_{i=1}^n b_i)=E_{pk}(A;b)

階段二:

使用Garbled電路(輸入GI(c)GI(c))解出c,可以獲取A和b,然後可以解出β\beta

備註:

同態加密可以使用Regev,使用Garbled電路解c時比較簡單

第二種協議

準備階段:

Evaluator提供給CSP輸入數據集的特徵數d,數據集的數據範圍,代表數據整數部分和小數部分的比特數
CSP準備Garbled電路,生成同態加密使用的祕鑰(pk,sk)
Evaluator選擇一個隨機的mask (μA;μb)M(\mu_A;\mu_b)\in M,並通過不經意傳輸從CSP獲取 GI(μA;μb)GI(\mu_A;\mu_b)

階段一:

Evaluator和第一種協議一樣獲取c,然後計算c^=cEpk(μA;μb)\hat c=c\bigotimes E_{pk}(\mu_A;\mu_b)

階段二:

Evaluator 發送 c^\hat c給CSP
CSP解密獲取(A^,b^)(\hat A, \hat b),然後將GI(A^,b^)GI(\hat A, \hat b)發送給Evaluator
Evaluator根據GI(A^,b^),GI(μA;μb)GI(\hat A, \hat b),GI(\mu_A;\mu_b)可以獲取A,bA, b
Evaluator獲取β\beta

備註:

此種協議解密算法沒有嵌入Garbled電路,因此可以使用多種同態加密算法,比如Paillier

參考資料:

  1. Paillier 加密方案
  2. 安全多方計算(阿里)
發佈了52 篇原創文章 · 獲贊 10 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章