智能合约隐私计算之再谈Paillier同态加密算法

本文介绍了Paillier加法同态加密算法,详细阐述了其秘钥生成、加密和解密过程,并讨论了加法同态性质,以及密文与常数的乘、除、加、减操作。内容适用于智能合约的隐私计算场景。
摘要由CSDN通过智能技术生成

本文首发公众号 VenusBlockChain,关注公众号后可免费阅读!VenusBlockChain 致力于区块链技术研究,传播区块链技术和解决方案、区块链应用落地、区块链行业动态等。
在这里插入图片描述

智能合约隐私计算系列文章,已经总结了两篇:开篇、同态加密应用举例。为保持整个内容和知识体系的完整性,这里再次总结一下同态加密的数学原理,方便后面对其改进做理论疏导。注意,整个过程涉及到的同态加密是指加法同态加密,且是Paillier算法实现的加法同态加密。

1.同态加密实现

1.1.Paillier加法同态加密算法

Paillier加密算法[1]是1999年Paillier发明的基于复合剩余类的困难问题的,且满足加法同态加密算法。

(1)秘钥生成

  • 随机选择两个大质数p和q满足 g c d ( p q , ( p − 1 ) ( q − 1 ) ) = 1 gcd(pq, (p−1)(q−1))=1 gcd(pq,(p1)(q1))=1。这个属性是保证两个质数长度相等。 g c d gcd gcd即求两个数的最大公约数。
  • 计算 n = p q n=pq n=pq λ = l c m ( p − 1 , q − 1 ) λ=lcm(p−1, q−1) λ=lcm(p1,q1)。lcm即求两个数的最小公倍数。
  • 选择随机整数g, g ∈ Z n 2 ∗ g \in Z_{n^2}^ \ast gZn2,使得。此处定义 L ( x ) = ( x − 1 ) / n L(x)=(x-1)/n L(x)=(x1)/n
  • 计算 u = L ( g λ m o d n 2 ) − 1 m o d n u={L(g^λmodn^2)}^{-1}modn u=L(gλmodn2)1modn
  • 公钥为 ( n , g ) (n, g) (n,g),私钥为 ( λ , μ ) (λ, μ) (λ,μ)

(2)加密

  • 明文m, m ∈ Z n 2 ∗ m \in Z_{n^2}^* mZn2
  • 选择随机数r,0<r<n, g
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值