如何在非对称加密场景下无需解密即可完成密文数值的乘法运算
同态乘法加密方案实现解答
你需要的是**支持乘法同态的半同态加密(PHE)**方案,这类方案的核心特性就是无需解密密文,直接对密文进行运算即可得到对应明文运算结果的密文,完全匹配你描述的场景需求。
针对你提到的RSA算法,首先纠正认知偏差:原生RSA天然支持乘法同态,你之前认为需要先解密才能做乘法运算的理解有误,它完全可以满足当前需求,实现逻辑如下:
- 你本地生成RSA密钥对,自行保管私钥,加密用的公钥可以公开
- 用公钥加密两个待计算的数字x1、x2得到密文E(x1)、E(x2),发送给乘法运算服务
- 服务不需要解密,直接执行运算
E(x1) * E(x2) mod n(n为RSA密钥的模数),运算结果就是E(x1*x2) - 你收到服务返回的结果后,用本地私钥解密即可得到x1*x2的明文值,全程服务无法获取任何原始数值的明文
如果后续你需要同时支持密文的加法、乘法混合运算,可以选择全同态加密(FHE)方案如BFV、CKKS等,但这类方案的性能开销远高于RSA,仅需乘法运算的场景用RSA就足够。
注意:原生RSA直接用于同态运算存在安全缺陷,易遭受选择明文攻击,实际落地时建议搭配安全的padding优化方案,或直接调用成熟的半同态加密库实现,不要自行实现底层加密逻辑。
内容的提问来源于stack exchange,提问作者Tony Miller
相关产品推荐
相关产品推荐

