线性回归模型
给定数据集:
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
同态加密
术语 | 英语 | 描述 | 符号表示 |
---|---|---|---|
同余类 | congruence class / residue class | 模 n 同余的所有整数组成的集合 | a ‾ n / [ a ] {\displaystyle {\overline {a}}_{n}} / [a] an/[a] |
余数系统 | residue system | 模 n 同余类的代表数的集合 | |
完整余数系统 | complete residue system | 模 n 的全部同余类的代表数的集合 | |
最小余数系统 | least residue system | 由每个同余类的最小非负整数所组成 | |
简约余数系统 | reduced residue system | 模 n 的结果与 n 互质的代表数所构成的集合,集合元素个数等于欧拉函数 ϕ ( n ) \phi (n) ϕ(n) | |
欧拉定理 | a φ ( n ) ≡ 1 ( m o d n ) a^{\varphi (n)}\equiv 1{\pmod {n}} aφ(n)≡1(modn) | ||
卡迈克尔函数 |
a
λ
(
n
)
≡
1
(
m
o
d
n
)
a^{\lambda (n)}\equiv 1{\pmod {n}}
aλ(n)≡1(modn) ![]() | ||
乘法群 | 模 n 的互质同余类,即为简约余数系统,也称为整数模 n 乘法群;在环理论中,一个抽象代数的分支,也称这个群为整数模 n 的环的单位群 | Z n Z_n Zn | |
群的阶数 | 群的阶数由欧拉函数给出: ∥ Z n ∗ ∥ = ϕ ( n ) \|Z_n^*\| = \phi(n) ∥Zn∗∥=ϕ(n) | ||
循环群 | 设(G,)为一个群,若存在一G内的元素g,对属于G的任意x,都存在整数k,使x = g^k ,称(G,)为循环群,g为群的生成元。若存在最小正整数n,使得 g n = e g^n=e gn=e,称n为生成元的阶(e为幺元,即g^0)。参考资料:https://www.zhihu.com/question/23353412/answer/24329687 |
有时候 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)
Garbled 电路
使用C语言实现Regev算法,然后通过软件生成电路图,再进行Garbled化,就可以获得Garbled电路
输入定义为
G
I
(
x
)
GI(x)
GI(x)
各方交互步骤
假设用户
u
i
u_i
ui与
u
j
u_j
uj提供数据
- c i = E p k ( A i ; b i ) , c j = E p k ( A j ; b j ) c_i=E_{pk}(A_i;b_i), c_j=E_{pk}(A_j;b_j) ci=Epk(Ai;bi),cj=Epk(Aj;bj), u i u_i ui与 u j u_j uj将数据 c i c_i ci与 c j c_j cj传给Evaluator
- Evaluator计算 c i ⨂ c j = E p k ( A i ; b i ) ⨂ E p k ( A j ; b j ) = E p k ( A i + A j ; b i + b j ) 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) ci⨂cj=Epk(Ai;bi)⨂Epk(Aj;bj)=Epk(Ai+Aj;bi+bj)
第一种协议
准备阶段:
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