① RSA和DES算法的优缺点、比较
DES算法:
优点:密钥较短,加密处理简单,加解密速度快,适用于加密大量数据的场合。
缺点:密钥单一,不能由其中一个密钥推导出另一个密钥。
RSA算法:
优点:应用广泛,加密密钥和解密密钥不一样,一般加密密钥称为私钥。解密密钥称为公钥,私钥加密后只能用公钥解密,,当然也可以用公钥加密,用私钥解密。
缺点:密钥尺寸大,加解密速度慢,一般用来加密少量数据,比如DES的密钥。
(1)用私钥加密之后可以用公钥解密扩展阅读:
安全性
RSA的安全性依赖于大数分解,但是否等同于大数分解一直未能得到理论上的证明,因为没有证明破解RSA就一定需要作大数分解。假设存在一种无须分解大数的算法,那它肯定可以修改成为大数分解算法。RSA 的一些变种算法已被证明等价于大数分解。
不管怎样,分解n是最显然的攻击方法。人们已能分解多个十进制位的大素数。因此,模数n必须选大一些,因具体适用情况而定。
② 公钥密码里面,如果一方用自己的私钥加密,解密用自己的公钥,公钥不是公开的吗任何人都可以解开
信息传输有两条路径,一是信息加密,二是身份认证,你说的这种只是身法认证环节,任何人拥有了你的公钥,都能确认是“你”发出的(因为你使用自己的私钥加密的,这个环节叫电子签名)。
而具体的密文的加密是使用你的公钥加密的,只有你的私钥可解密,其它人没有你的私钥,虽然收到了消息,也知道是你发出的(即前面说的身份认证过程畅通无阻),但是没法解密,因此无法知道具体信息内容。
③ 公钥与私钥用于加解密和签名
公钥:公开持有,每个人都可以获得。
私钥:个人持有,需要保密不能泄露。
公钥加密,私钥解密
信息从公钥持有者中的某一个向私钥持有者发送。
加解密是为了让通信的第三方无法获取消息内容。
私钥签名,公钥验签
信息从私钥持有者向公钥持有者中的某一个发送。
签名是为了证明消息发送者的身份合法,即是“我”本人而不是其他人冒充我发送的消息。(但这个消息可能是公开的,如果希望加密发送,则需要另外一对儿公钥和私钥反方向持有,完成加解密过程)
私钥和公钥是一对,谁都可以加解密,只是谁加密谁解密是看情景来用的:
第一种情景是签名,使用私钥加密,公钥解密,用于让所有公钥所有者验证私钥所有者的身份并且用来防止私钥所有者发布的内容被篡改.但是不用来保证内容不被他人获得。
第二种情景是加密,用公钥加密,私钥解密,用于向公钥所有者发布信息,这个信息可能被他人篡改,但是无法被他人获得。
比如加密情景:
如果甲想给乙发一个安全的保密的数据,那么应该甲乙各自有一个私钥,甲先用乙的公钥加密这段数据,再用自己的私钥加密这段加密后的数据.最后再发给乙,这样确保了内容即不会被读取,也不会被篡改。
英文版: http://www.youdzone.com/signature.html
中文版: http://www.blogjava.net/yxhxj2006/archive/2012/10/15/389547.html
https://www.hu.com/question/25912483
④ RSA解密:已知N,E,密文,怎么能得到明文呢根据公式应该先求D,但是不知道PQ…
RSA是非对称加密算法,用公钥加密的可以用私钥解密,反之用私钥加密的也可以用公钥解密。
假设密文使用私钥加密,那么用公钥(n,e)执行解密算法即可
求解c^e≡m(mod n)即可得到明文m,其中c是密文
假设密文使用公钥加密,那么只有公钥的情况下无法解密。