同态加密的GM方案
Goldwasser-Micali (GM) 方案
同态加密允许在密文上直接执行计算,结果解密后与明文上执行相同计算一致。
Goldwasser-Micali (GM) 加密方案(1982)是第一个基于标准数论困难假设(二次剩余问题)证明语义安全(IND-CPA)的概率公钥加密方案,同时天然支持异或(XOR)同态。
数学基础:二次剩余与 Legendre 符号
1. 二次剩余
设 \(N\) 为正整数,\(a\) 与 \(N\) 互素。若存在 \(x\) 使得
则称 \(a\) 是模 \(N\) 的二次剩余;否则称为二次非剩余。
- 当 \(N=pq\) 是两个大素数乘积时,二次剩余问题是指:给定 \((a, N)\),判断 \(a\) 是否为模 \(N\) 的二次剩余。
- 若已知 \(p, q\),则可利用 Legendre 符号判定:\[\left(\frac{a}{p}\right) \equiv a^{(p-1)/2} \pmod p \]值为 \(1\) 表示二次剩余,\(-1\) 表示非剩余。同理对 \(q\)。只有对 \(p\) 和 \(q\) 均为剩余时,\(a\) 才是模 \(N\) 的二次剩余。
2. 特殊素数选取
GM 方案要求 \(p \equiv q \equiv 3 \pmod 4\),这样 \(-1\) 是模 \(p\) 和模 \(q\) 的非剩余,方便构造公钥参数。
GM 加密方案描述
GM 方案包含三个算法:密钥生成、加密、解密。明文按比特处理,即 \(m = (m_1, m_2, \dots, m_n) \in \{0,1\}^n\)。
1. 密钥生成 (KeyGen)
- 随机选择两个大素数 \(p, q\),满足 \(p \equiv q \equiv 3 \pmod 4\)。
- 计算 \(N = p q\)。
- 选取一个整数 \(a\),使得:\[\left(\frac{a}{p}\right) = -1,\quad \left(\frac{a}{q}\right) = -1 \]即 \(a\) 是模 \(p\) 和模 \(q\) 的二次非剩余,从而 \(a\) 是模 \(N\) 的非剩余。
- 公钥:\(\mathrm{pk} = (a, N)\);私钥:\(\mathrm{sk} = (p, q)\)。
2. 加密 (Encrypt)
对明文位 \(m_i \in \{0,1\}\):
-
随机选取 \(b_i \in \mathbb{Z}_N^*\)(与 \(N\) 互素)。
-
计算密文:
\[c_i = b_i^2 \cdot a^{m_i} \pmod N \] -
输出密文向量 \(c = (c_1, c_2, \dots, c_n)\)。
-
若 \(m_i = 0\),则 \(c_i = b_i^2\) 是一个二次剩余(模 \(N\))。
-
若 \(m_i = 1\),则 \(c_i = b_i^2 \cdot a\),由于 \(a\) 是非剩余,乘以剩余仍然是非剩余,因此 \(c_i\) 是二次非剩余。
3. 解密 (Decrypt)
给定密文 \(c_i\),利用私钥 \(p, q\) 判断 \(c_i\) 是否为模 \(N\) 的二次剩余:
- 计算 \(c_{i,p} = c_i \bmod p\),\(c_{i,q} = c_i \bmod q\)。
- 检查:\[c_{i,p}^{(p-1)/2} \equiv 1 \pmod p \quad\text{且}\quad c_{i,q}^{(q-1)/2} \equiv 1 \pmod q \]若二者均成立,则 \(c_i\) 是二次剩余,\(m_i=0\);否则 \(m_i=1\)。
加法同态性(XOR)
GM 方案满足密文相乘对应明文异或。设有两个明文位 \(m_1, m_2\),对应密文:
则:
- 若 \(m_1 + m_2 = 0\) 或 \(1\),则 \(a^{m_1+m_2}\) 的指数即为异或值 \(m_1 \oplus m_2\)。
- 若 \(m_1 = m_2 = 1\),则 \(m_1+m_2 = 2\),此时 \(c_1 c_2\) 是一个二次剩余(因为 \(a^2\) 是剩余),解密判定为 \(0\),而 \(1 \oplus 1 = 0\),结果一致。
因此,密文乘积对应明文按位异或,即加法同态(在 \(\mathbb{F}_2\) 上)。
安全性
GM 方案的语义安全性(IND-CPA)归结为二次剩余问题的困难性。在 CPA 中,敌手能区分明文 \(0\) 和 \(1\) 的密文,当且仅当它能区分二次剩余与非剩余,而这在 \(N\) 的分解未知时是困难的。因此,GM 方案是概率加密 ——同一明文每次加密因随机 \(b_i\) 不同而得到不同密文,确保语义安全。
效率与局限性
| 指标 | 数值 |
|---|---|
| 明文长度 | 1 比特 |
| 密文长度 | \(\log_2 N\) 比特(约 2048 位) |
| 密文膨胀率 | \(\log_2 N\)(约 2000 倍) |
- 优点:基于经典数论假设,安全性基础坚实;首次实现可证明安全的概率加密。
- 缺点:密文膨胀极大,每次加密仅处理 1 比特,实用性受限。
小结
- GM 方案是首个 IND-CPA 安全的概率公钥加密,基于二次剩余困难假设。
- 天然支持 XOR 同态(密文乘法对应明文异或),属于加法同态加密。
- 密文膨胀严重,主要用于理论教学和小规模应用(电子投票中的位运算)。

浙公网安备 33010602011771号