什么是公钥和密钥?
以前的加密是对称式的,加密方和解密方使用同一个密钥来加密和解密信息。而现在的非对称加密,会有两个密钥,即公钥和密钥,用公钥加密的信息只能用密钥解密,公钥不可解密;同理用密钥加密的信息只能用公钥解密,密钥不可解;公密之分,仅在于哪个密钥是公之于众,哪个是秘不示人。
为什么要使用公钥和密钥?
为了加密信息,防止别人偷看到此信息。例如我和某私密网站通信,那么我会使用网站提供给我的公钥加密我要发送的信息,那么除了掌握私钥的网站以外,无人能破解我的信息,因为公钥无法解密被同公钥加密的信息。
只有公密钥能保证信息安全吗?
不可以,公密钥只能保证加密后的信息不被破解,但在加密之前的一些环节,仍有安全漏洞。例如,别人可能仿冒你的身份用同一网站的公钥发送虚假信息,这里有三个问题需要解决,一个是你的身份必须得到确认,另一个是你的消息必须保证没有被篡改,第三个是这个网站的身份必须被确认,你得保证你在和你真正需要的网站进行通信。
接下来解决这三个问题。
如何确定自己和对方身份?
这需要第三方来做公证人,权威的第三方会给你颁发一个证书,证明你就是你自己,别人看到这个证书,就知道你真的是你,同时证书里面包含了你自己的公钥,比人得到了你的证书也就拿到了你的公钥,可以解密你通过自己私钥加密的信息。现在银行发给个人的各种usbkey, 里面就是存储了你个人的证书和私钥。
如何保证自己的信息没有被篡改?
现在有些公用的算法,能从你的信息中算出一个特殊的字符串,这个字符串是唯一的,任何人只要改动了你原始信息中的任意一个字节,重新运行这个算法,得到的字符串就一定会改变。所以你在和网站通信时,除了发送信息,还得发送这个字符串,网站得到你的信息后,运行同样的算法,得到一个字符串和你同时发过来的那个进行比对,如果相同,则证明你的信息没有被修改,如果不一样,则证明有人动了你的信息。
当然你会说聪明的坏家伙会伪造信息,同时给伪造信息运行这些算法生成字符串,然后一并以你的名义发给网站不久结了吗?这样当然可以,但是别忘了你还有最后一件法宝,你的私钥! 你要用自己的私钥加密你生成的字符串,然后网站先用你证书里面的公钥解密这个字符串,然后进行比对,坏家伙除非得到你的私钥,否则休想伪造!
这个字符串在英文里叫digest,意思是简明短小的摘要,这些算法里最有名的是md5算法,linux下有md5sum这个小工具,帮你对某个文件生成MD5,此外还有SHA-1算法等。
什么是ssl?
SSL(secure socket layer)是在应用层(http/ftp)和传输层(tcp/ip)之间的一个中间层,负责处理证书,会话创建,加解密等一系列的工作,这样对应用层来说,底下如何加密如何解密时完全透明的。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16168490/viewspace-675746/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/16168490/viewspace-675746/