基于LWE的简单BGN型密码系统
1. 引言
同态加密方案对于安全计算非常有用,许多公钥密码系统仅支持加密数据的加法或乘法,同时实现两者较为困难。本文介绍了一种加法同态且支持一次乘法的加密方案,该方案基于Gentry、Peikert和Vaikuntanathan提出的陷门函数(GPV陷门函数)。
GPV陷门函数的“公钥”是矩阵 $A \in Z_q^{m×n}$(参数 $p$ 且 $m > n$),对应的陷门是满秩整数矩阵 $T \in Z_q^{m×m}$,满足 $TA = 0 \pmod{q}$。本加密系统的公钥和私钥与GPV陷门函数相同。加密一个二进制方阵 $B \in Z_2^{m×m}$ 的方式为:
$C = AS + 2X + B \pmod{q}$
其中,$S$ 是随机“系数矩阵” $S \in Z_q^{n×m}$,$X$ 是“噪声矩阵”,其元素较小,$X \in Z_q^{m×m}$。
密文矩阵可以相加,也支持一次矩阵乘法 $C’ = C_1 \cdot C_2^t \pmod{q}$($C^t$ 是 $C$ 的转置)。解密时,设置 $B = T^{-1} \cdot (TCT^t \pmod{q}) \cdot (T^t)^{-1} \pmod{2}$。
该方案的安全性等价于学习带误差(LWE)问题的难度。LWE问题是“带噪声学习奇偶性”的推广,已成为基于格的密码学研究的标准问题。
1.1 同态加密简史
支持对加密数据进行操作的加密方案(即同态加密)对安全计算非常有用。许多公钥密码系统要么支持加密数据的加法,要么支持乘法,但同时实现两者似乎更具挑战性。
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



