给定数据集: x i ∈ R d , y i ∈ R , i ∈ [ 1 , n ] x_i \in R^d, y_i \in R, i \in [1, n] xi∈Rd,yi∈R,i∈[1,n] ,其中d也为特征数
回归:为映射 f : R d → R f:R^d \rightarrow R f:Rd→R 找到 y i ≈ f ( x i ) y_i \approx f(x_i) yi≈f(xi)
线性回归:找到 y i ≈ β T x i , x ∈ [ n ] ≡ { 1 , . . . , n } , β ∈ R d y_i \approx \beta ^Tx_i, x \in [n] \equiv \{1, ..., n\}, \beta \in R^d yi≈βTxi,x∈[n]≡{1,...,n},β∈Rd
归一化:将x的区间变为有限的区间,归一化方法
岭回归:最小化函数 F ( β ) = ∑ i = 1 n ( y i − β T x i ) 2 + λ ∥ β ∥ 2 2 F(\beta) = \sum_{i=1}^n(y_i-\beta^Tx_i)^2+\lambda\|\beta\|_2^2 F(β)=∑i=1n(yi−βTxi)2+λ∥β∥22,岭回归理解 ,训练 λ \lambda λ 使得 β \beta β更稳定
sklearn 中 linear_model.Ridge 使用的最小化函数: ∣ ∣ y − w X ∣ ∣ 2 2 + a l p h a ∗ ∣ ∣ w ∣ ∣ 2 2 ||y-wX||_2^2+alpha*||w||_2^2 ∣∣y−wX∣∣22+alpha∗∣∣w∣∣22, w 即为求解后的coef或权重系数
∥ β ∥ a b \|\beta\|_a^b ∥β∥ab 为 β \beta β的a次范式的b次方,范式的理解
最小化函数 F ( β ) F(\beta) F(β) 即求 A β = b , A = X T X + λ I , b = X T y , y ∈ R n × 1 , X ∈ R n × d A\beta = b, A = X^TX+\lambda I, b = X^Ty, y\in R^{n\times1}, X\in R^{n\times d} Aβ=b,A=XTX+λI,b=XTy,y∈Rn×1,X∈Rn×d
因为A是正定矩阵,可以使用Cholesky分解
对于一个用户 u i u_i ui而言: A i = x i x i T , b i = y i x i , A = ∑ i = 1 n A i + λ I , b = ∑ i = 1 n b i A_i=x_ix_i^T, b_i=y_ix_i, A=\sum_{i=1}^nA_i+\lambda I, b = \sum_{i=1}^nb_i Ai=xixiT,bi=yixi,A=∑i=1nAi+λI,b=∑i=1nbi
Paillier 加密方案
有时候 Z n Z_n Zn与 Z n ∗ Z_n^* Zn∗相同,但有时 Z n ∗ Z_n^* Zn∗特指简化剩余类,即模n互质余数的集合, Z n Z_n Zn特指[0, n-1],也就是 ∥ Z n ∥ = n , ∥ Z n ∗ ∥ = ϕ ( n ) \|Z_n\|=n, \|Z_n^*\|=\phi(n) ∥Zn∥=n,∥Zn∗∥=ϕ(n)
使用C语言实现Regev算法,然后通过软件生成电路图,再进行Garbled化,就可以获得Garbled电路
输入定义为 G I ( x ) GI(x) GI(x)
假设用户 u i u_i ui与 u j u_j uj提供数据
Evaluator提供给CSP输入数据集的特征数d,数据集的数据范围,代表数据整数部分和小数部分的比特数
CSP准备Garbled电路,生成同态加密使用的秘钥(pk,sk),将 G I ( s k ) GI(sk) GI(sk)嵌入Garbled电路
每个 u i u_i ui计算 A i , b i , c i = E p k ( A i ; b i ) A_i, b_i, c_i=E_{pk}(A_i;b_i) Ai,bi,ci=Epk(Ai;bi),然后将 c i c_i ci发送给Evaluator,假设user与Evaluator之间存在一个安全的通道,比如TLS
Evaluator计算 c λ = E p k ( λ I ; 0 ) c_{\lambda}=E_{pk}(\lambda I;0) cλ=Epk(λI;0),然后可以计算 c = ( ⨂ i = 1 n c i ) ⨂ c λ = E p k ( ∑ i = 1 n A i + λ I ; ∑ i = 1 n b i ) = E p k ( 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) c=(i=1⨂nci)⨂cλ=Epk(i=1∑nAi+λI;i=1∑nbi)=Epk(A;b)
使用Garbled电路(输入 G I ( c ) 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 (μA;μb)∈M,并通过不经意传输从CSP获取 G I ( μ A ; μ b ) GI(\mu_A;\mu_b) GI(μA;μb)
Evaluator和第一种协议一样获取c,然后计算 c ^ = c ⨂ E p k ( μ A ; μ b ) \hat c=c\bigotimes E_{pk}(\mu_A;\mu_b) c^=c⨂Epk(μA;μb)
Evaluator 发送 c ^ \hat c c^给CSP
CSP解密获取 ( A ^ , b ^ ) (\hat A, \hat b) (A^,b^),然后将 G I ( A ^ , b ^ ) GI(\hat A, \hat b) GI(A^,b^)发送给Evaluator
Evaluator根据 G I ( A ^ , b ^ ) , G I ( μ A ; μ b ) GI(\hat A, \hat b),GI(\mu_A;\mu_b) GI(A^,b^),GI(μA;μb)可以获取 A , b A, b A,b
Evaluator获取 β \beta β
此种协议解密算法没有嵌入Garbled电路,因此可以使用多种同态加密算法,比如Paillier