RSA非对称加密,产生一对公钥和私钥,应该是当前非对称加密的主流。以下的资料来自网络。便于我们从整体上来理解。
/
RSA加密和其他加密手段配合使用:
为提高保密强度,RSA密钥至少为500位长,一般推荐使用1024位。这就使加密的计算量很大。为减少计算量,在传送信息时,常采用传统加密方法与公开密钥加密方法相结合的方式,即信息采用改进的DES或IDEA对话密钥加密,然后使用RSA密钥加密对话密钥和信息摘要。对方收到信息后,用不同的密钥解密并可核对信息摘要。
/
关于公钥加密,私钥解密的流程,如下例子:
· 小明想秘密给小英发送消息
· 小英手里有一个盒子(public key),这个盒子只有小英手里的钥匙(private key)才打得开
· 小英把盒子送给小明(分发公钥)
· 小明写好消息放进盒子里,锁上盒子(公钥加密)
· 小明把盒子寄给小英(密文传输)
· 小英用手里的钥匙打开盒子,得到小明的消息(私钥解密)
· 假设小刚劫持了盒子,因为没有小英的钥匙,他也打不开
/
数字签名无非就两个目的:
证明这消息是你发的;
证明这消息内容确实是完整的---也就是没有经过任何形式的篡改(包括替换、缺少、新增)。
其实,上面关于“公告”那段内容,已经证明了第一点:证明这消息是你发的。
那么要做到第二点,也很简单,就是把你公告的原文做一次哈希(md5或者sha1都行),然后用你的私钥加密这段哈希作为签名,并一起公布出去。当别人收到你的公告时,他可以用你的公钥解密你的签名,如果解密成功,并且解密出来的哈希值确实和你的公告原文一致,那么他就证明了两点:这消息确实是你发的,而且内容是完整的。
/
公钥加密私钥解密是密送,保证消息即使公开也只有私钥持有者能读懂。
私钥加密公钥解密是签名,保证消息来源是私钥持有者。
目前的计算能力,公钥有效时间内推不出私钥,私钥也推不出公钥。
/
数字证书是由权威机构--CA证书授权(Certificate Authority)中心发行的,能提供在Internet上进行身份验证的一种权威性电子文档,人们可以在互联网交往中用它来证明自己的身份和识别对方的身份。
数字签名(又称公钥数字签名、电子签章)是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。
做个简单比喻:
数字证书 好比 现实中你的身份证
数字签名 好比 现实中你的签字