开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第9天,点击查看活动详情
基础知识
RSA算法
证明者提供以下数值:
- p,q : 任意的两个质数(可丢弃但是不可泄露)
- n:=p * q : (对外已知,与e共同构成公钥)
- d : 1~n-1间的随机数(私钥)
- e : 满足de≡1(mod (p-1)(q-1))
- 知识补充: ≡ 在数论中是同余符号,a≡b(mod m)等价与a和b分别除以m,所得余数相同
- 在此RSA加密算法中,公钥是(e,n),私钥是d
RSA加密细节
- 使用公钥(e,n)对消息m进行加密(m值范围是0 ~ n-1)
- 加密后的密文为c=E(m)(c值范围为0~n-1)
- 公式如下:
RSA解密细节
-
解密后的明文m=D(c)=(c的d次方)%n
-
解密实现的数学依据:
RSA算法的乘法同态特性
RSA加密算法具有的乘法同态特性,依赖于其E加密算法数学特征:即两个加密信息的乘积等于两个信息乘积的加密,公式描述如下:
这种同态特性可在零知识证明中发挥作用,即不用暴露x,y的具体数值,证明者只需要发送 x , y , xy 各自的加密密文(a=E(x)、b=E(y)和c=E(xy)),验证者即可进行验证,验证者只需要确认 (a*b)%n ≡ c%n 成立,就能确定证明者发送的是两个数值和这两个数值的乘积。 blog.csdn.net/mutourend/a…