一.RSA公钥加密算法安全性
1.RSA安全性假定:
基于分解大整数的困难性假定
如果RSA的模数n被成功的分解成p*q,则立刻可以得到对应的φ(n)=(p-1)*(q-1),从而可以确定e模φ(n)的乘法逆元d,即可被成功攻击
例:RSA-129(428bit)于1994年4月被分解;RSA-155(512bit)于1999年8月被成功分解
模数长度应该介于1024bit到2048bit之间
2.对RSA的攻击
- 共模攻击:(背景:实现RSA时为了方便,给每一个用户相同的模数n)
- 低指数攻击:(背景:多个用户的加密指数都很小)
- 选择密文攻击(背景:RSA是确定性的加密算法,不能抵御选择密文攻击)
3.密文攻击如何攻击RSA:
假设攻击者得到了公钥(n,e),截获到某一个密文c1,假设对应的明文为m1,即c1=(m1^e) mod n,然后攻击者可以选取明文m,构造新的密文c2,此时c2=c1* (m^e) mod n,此时把新密文c2发送给解密者,获得明文m2,通过m1=(m2/m) mod n即可进行对最开始密文对应的明文的破解。
4.RSA加密算法应用:HTTP+SSL=HTTPS
SSL:对称加密+非对称加密的综合
支持对称加密的算法:DES以及RC5
支持非对称加密的算法:RSA
支持数据摘要算法有:MD5和SHA
5.拓展(对RSA的修正的算法)
Rabin密码体制:
https://blog.csdn.net/weixin_46790209/article/details/123166279
ElGamal密码体制:
1.安全性基于有限域上的离散对数的难解性
2.加密算法是概率算法
3.不能抵御选择密文攻击
ElGamal密码体制:
1.密钥产生过程:
选择一素数p以及小于p的随机数x,g是p的原根,计算y=(g^x) mod p
其中y为公钥,x为密钥
2.加密过程:
明文消息m,随机选取一个整数k<p-1
C1=(g^k) mod p,C2=(y^k)m mod p,密文为C=(C1,C2)
3.解密过程: