同态加密的Paillier方案
Paillier 加密方案(1999)基于判定性合数剩余假设(DCR),实现了任意次数的加法同态,同时兼具密文紧凑、解密高效的特点,成为目前隐私保护计算领域应用最广泛的加法同态加密(AHE)方案。
安全归约
判定性合数剩余问题(Decisional Composite Residuosity Problem, DCRP)
设 \(n = p q\) 为两个大素数的乘积。称一个整数 \(z\) 为模 \(n^2\) 的 \(n\) 次剩余,如果存在 \(y \in \mathbb{Z}_{n^2}^*\) 使得:
- 判定性问题:给定 \((n, z)\),判定 \(z\) 是否为模 \(n^2\) 的 \(n\) 次剩余。
- 困难性:当 \(n\) 的分解 \(p, q\) 未知时,区分 \(n\) 次剩余与普通元素是计算上困难的。Paillier 方案的 IND-CPA 安全性直接归约到 DCR 问题的困难性。
方案构造
1. 密钥生成 (KeyGen)
- 选择两个随机大素数 \(p, q\),满足 \(\gcd(pq, (p-1)(q-1)) = 1\)(此条件保证映射的满射性)。
- 计算 \(n = p q\),以及 \(\lambda = \mathrm{lcm}(p-1, q-1)\)(卡迈克尔函数)。
- 随机选择 \(g \in \mathbb{Z}_{n^2}^*\),使得 \(g\) 的阶为 \(n\) 的非零倍数,即满足:\[\gcd\big(L(g^\lambda \bmod n^2),\; n\big) = 1 \]其中辅助函数 \(L(x) = \dfrac{x-1}{n}\)。
- 计算 \(\mu = \big(L(g^\lambda \bmod n^2)\big)^{-1} \bmod n\)。
- 输出:
- 公钥:\(\mathrm{pk} = (n, g)\)
- 私钥:\(\mathrm{sk} = (\lambda, \mu)\)
优化选取:实际应用中常取 \(g = n + 1\)。此时 \(g^\lambda \bmod n^2 = 1 + \lambda n\),\(L(g^\lambda \bmod n^2) = \lambda\),与 \(n\) 互素,且 \(\mu \equiv \lambda^{-1} \bmod n\)。这极大简化了密钥生成与解密运算。
2. 加密 (Encrypt)
明文空间为 \(\mathbb{Z}_n\)(即 \(m \in [0, n-1]\))。
- 随机选取 \(r \in \mathbb{Z}_n^*\)。
- 计算密文:\[c = g^m \cdot r^n \bmod n^2 \]
随机掩码 \(r^n\) 使方案成为概率加密,同一明文每次加密得到不同密文。
3. 解密 (Decrypt)
- 利用私钥 \(\lambda, \mu\) 计算:\[m = L(c^\lambda \bmod n^2) \cdot \mu \bmod n \]
正确性推导
卡迈克尔定理:对任意 \(w \in \mathbb{Z}_{n^2}^*\),有 \(w^{n \lambda} \equiv 1 \pmod{n^2}\),等价于 \(w^\lambda\) 的阶整除 \(n\)。
考虑 \(c^\lambda = (g^m r^n)^\lambda = g^{m \lambda} \cdot r^{n \lambda}\)。由于 \(r^{n \lambda} \equiv 1 \pmod{n^2}\),所以:
构造 \(g = n+1\) 的情形(不失一般性,任意合法 \(g\) 均满足类似性质):
因此:
再乘以 \(\mu = \lambda^{-1} \bmod n\),即得 \(m\)。
同态性质
1. 加法同态(核心)
设有明文 \(m_1, m_2\),对应密文 \(c_1 = g^{m_1} r_1^n\),\(c_2 = g^{m_2} r_2^n\)。
- 计算密文乘积:\[c_1 \cdot c_2 = g^{m_1 + m_2} (r_1 r_2)^n \bmod n^2 \]
这正是明文 \(m_1 + m_2\) 在随机数 \(r_1 r_2\) 下的合法密文。因此:
支持任意多次加法运算(同态密文相乘可不断累积)。
2. 标量乘法(密文指数运算)
给定密文 \(c = g^m r^n\) 和标量 \(k \in \mathbb{Z}_n\):
- 计算 \(c^k = g^{m k} (r^k)^n\),这正是明文 \(m \cdot k\) 的密文:\[D(c^k \bmod n^2) = m \cdot k \bmod n \]
3. 不是乘法同态
但这要求加密者知道 \(m_2\)(将其作为指数),在密文空间中无法由两个互不相识的加密者直接计算 \(E(m_1 \cdot m_2)\)(因为没有配对操作或私钥)。因此,Paillier 是加法同态加密,不支持非交互式密文-密文乘法。
效率
| 维度 | 指标 |
|---|---|
| 明文空间 | \(\mathbb{Z}_n\)(如 2048 位整数) |
| 密文空间 | \(\mathbb{Z}_{n^2}^*\)(如 4096 位) |
| 密文膨胀率 | n 倍 |
| 加密 | 2 次模指数运算 |
| 解密 | 1 次模指数运算(\(c^\lambda\)) |
工程优化技巧:
- 选取 \(g = n + 1\):将 \(g^m\) 简化为 \((1+n)^m \equiv 1 + m n \pmod{n^2}\),加密时仅需 1 次模指数(\(r^n\)),大幅提速。
- 中国剩余定理(CRT)加速:将大整数模 \(n^2\) 的指数运算拆分到模 \(p^2\) 和模 \(q^2\) 下分别计算,最后 CRT 聚合,速度提升约 4 倍。
- 打包技术(Packing):当多个小消息 \(m_1 \| m_2 \| \dots\) 长度较小时,可将它们拼接编码进一个大整数 \(m\) 中加密。同态加法在打包数据上并行执行,将加解密与通信开销降为原来的 \(1/k\)。
对比
| 方案 | 同态类型 | 困难假设 | 密文膨胀 | 特点 |
|---|---|---|---|---|
| GM | XOR(加法) | 二次剩余 | \(\log N\) 倍 | 按比特加密,理论价值高 |
| BGN | 加法 + 一次乘法 | 子群判定 + 配对 | 常数倍 | 支持乘法,但仅限一次 |
| Paillier | 加法(无限次) | DCR | 2 倍 | 效率高,应用最广泛 |
Paillier 方案完美平衡了安全性、效率与功能,是加法同态加密的工业级标准。

浙公网安备 33010602011771号