公钥加密高级主题深度解析
1. 同态加密概述
同态加密是一种强大的加密技术,允许对加密数据进行特定计算,最终得到包含加密结果的密文。以Paillier加密方案为例,它能对加密数据执行模加法运算。具体来说,若固定公钥 $pk = N$,对 $m_1$ 和 $m_2$ 的加密结果相乘(模 $N^2$),会得到 $[m_1 + m_2 \mod N]$ 的加密结果,这是因为:
[((1 + N)^{m_1} \cdot r_1^N) \cdot ((1 + N)^{m_2} \cdot r_2^N) = (1 + N)^{[m_1 + m_2 \mod N]} \cdot (r_1r_2)^N \mod N^2]
同态加密的一般定义如下:一个公钥加密方案 $(Gen, Enc, Dec)$ 是同态的,需满足对于所有的 $n$ 和 $Gen(1^n)$ 输出的所有 $(pk, sk)$,能定义依赖于 $pk$ 的群 $M$ 和 $C$,使得:
- 消息空间为 $M$,$Enc_{pk}$ 输出的所有密文都是 $C$ 的元素。为方便表示,将 $M$ 视为加法群,$C$ 视为乘法群。
- 对于任意 $m_1, m_2 \in M$,$Enc_{pk}(m_1)$ 输出的任意 $c_1$ 和 $Enc_{pk}(m_2)$ 输出的任意 $c_2$,有 $Dec_{sk}(c_1 \cdot c_2) = m_1 + m_2$。并且,先分别加密 $m_1$ 和 $m_2$ 再相乘得到的密文分布,与直接加密 $m_1 + m_2$ 得到的密文分布相同。
Paillier加密方案在 $M = Z_N$ 和 $C = Z_{N^2}^*$ 时是同态的。此外,El Gama
超级会员免费看
订阅专栏 解锁全文
4249

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



