2.3 Paillier算法2.3.1 密钥生成类似于RSA算法,Paillier也拥有公钥和私钥对 。
文章插图
在上述过程中,Alice总计生成了6个数字:
p = 11q = 19n = 209λ = 90g = 147μ = 153Alice将 n 和g 封装成公钥 public-key = (n, g)将λ和μ封装成私钥: private-key = (λ, μ)
2.3.2 加密假设Bob需要加密明文m,0 <= m < n. 且Bob收到了Alice发送过来的公钥(n, g)
- Bob选择一个随机数r,满足0 < r < n
- Bob计算加密后的密文 c = gm.rn mod n2
c = 32948m= gmpy2.mod(L(gmpy2.mod(pow(c, lam), n_square), n) * mu, n)# m =8正确性证明
为了证明解密操作的正确性,我们把加密的公式代入:
文章插图
根据卡米切尔定理(Carmichael’s function)有:
文章插图
继续化简得:
文章插图
由于g ∈ Zn2*, n + 1 ∈ Zn2*, 那么一定存在唯一一对(a, b)使得:② gλ mod n2 = (1 + naλ) * bnλ mod n2 = 1 + a
推荐阅读
- 云数据库时代,DBA将走向何方?
- 京东云开发者|IoT运维 - 如何部署一套高可用K8S集群
- 云小课|MRS基础原理之MapReduce介绍
- 京东云开发者|关于“React 和 Vue 该用哪个”我真的栓Q
- 京东云开发者|ElasticSearch降本增效常见的方法
- 云原生之旅 - 6)不能错过的一款 Kubernetes 应用编排管理神器 Kustomize
- Windows下自动云备份思源笔记到Gitee
- 云原生之旅 - 5)Kubernetes时代的包管理工具 Helm
- 云顶之弈碧波法师阵容怎么玩
- 云上当空接龙规则(接龙规则口诀)