《非对称加密算法》
小明有一把公钥
和一把私钥
,小明公钥加密的东西只能用私钥解开(所以私钥不能让任何人知道)
通过以上可知,小红拿小明的公钥加密的文件只有小明用自己的私钥解密后,才能知道里面的内容(安全性)
以上就是非对称加密算法的基本原理。
《数字签名》
但是以上加密算法还是有一定的安全风险。
,小红并不确定这个信息是小明的,而且不知道这个信有没有在传输过程中被修改过
比如小明
想给小红
写一封信,但是又想让小红
确定这个信是小明
写的,小明的解决方法是:
小红还想验证这个信息有没有在传输路上被人篡改过,小明又想了个办法:
总结就是:小明
先把信的内容写好,然后小明
通过哈希算法生成一个摘要(digest),接着小明
再用自己的私钥对摘要进行加密,就形成了数字签名(digital signature),最后小明
把信和签名一同发送给小红
。小红
在收到小明
的信后,用小明
的公钥解密数字签名,得到摘要,然后再把信件的内容通过哈希算法得到一个哈希值,再与之前得到的摘要进行对比,如果一致,那么说明信件确实是小明
发送的,且信件内容没有被修改。
ps: 数字签名就是用小明的秘钥
对信进行签名
但是,以上方法真的绝对安全吗??
《数字证书》
有一天,来了一个黑客小刘,小刘也有自己的公钥和私钥
小刘偷偷使用了小明的电脑,冒充自己是小明,并将自己(小刘)的公钥给了小红
于是,小红将加密后的(重要信息
)使用小刘的公钥进行了加密,并发给了他以为的小明。(信息泄露)
为了解决以上风险问题,又出现了数字证书
小明和小红找了一个绝对信得过的CA机构,他先向机构提出申请。在CA判明小明的身份后,便为他分配一个公钥,并且CA将该公钥与申请者的身份信息绑定在一起,并为之签字,便形成证书发给申请者。
CA认证机构用自己的私钥,对小明的公钥和一些相关信息一起加密,生成数字证书并签名。所以之后如果小明再想给小红写信,他只需要在签名的同时,再附上数字证书就可以了。小红收到信件后,用CA的公钥
解开数字证书,就可以拿到小明真实的公钥了,然后就能证明信件确实是小明发送的。
补充:
消息摘要算法:MD5、和SHA(对数字证书本省做摘要处理,用于验证数据完整性服务器)
对称加密算法:RC2、RC4、IDEA、DES、AES(对数据进行加密/解密操作,用于保证数据保密性服务)
非对称加密算法:RSA、DH(对数据进行加密/解密操作,用于保证数据保密性服务)
数字签名算法:RSA、DSA
相关软件:推荐一款非常好用的加密软件Kleopatra.可以亲自体验一番,如何进行非对称加密、数字签名等。