加密和解密技术基础与OpenSSL(2)


加密和解密技术基础(02)
1、公钥加密:密钥分为公钥与私钥
  公钥:从私钥中提取产生;可公开给所有人;public key
  私钥:通过工具创建,使用者自己留存,必须保证其私密性;secret key;
  特点:用公钥加密的数据,只能使用与之配对儿的私钥解密;反之亦然;
2、公钥加密的用途:
        数字签名:主要在于让接收方确认发送方的身份;(数字签名是一个过程)
        密钥交换:发送方用对方公钥加密一个对称密钥,并发送给对方;
        数据加密    


3、数据发送的两种方式
(1)数据传送图
                          c
a————————————————>b
                           
(2)传送图解释
ab之间的通信,a为发送方,b接收方。a通过b的公钥给数据加密发送给b,b公钥加密的数据只能通过b私钥来解密。
c为窃听者,a发给b的数据能被c拿到, 
(3)问题:b通过自己的私钥加密一份数据给a,被c拿到,c用b的公钥可以将其解密,这样发送的方式有意义吗?  
意义:a能确定数据是b发送的,b的私钥是b独有的 (通过数字签名这个过程来完成身份验证)   
漏洞:c同样能用b的公钥去解密,不安全,怎么办?
漏洞解决办法?
第一步:b用单向加密计算出数据的特征码(数据特征码:只用用数据特征码才能去解密数据获得数据) 
第二步:b用自己的私钥加密数据特征码,a用b的公钥去解密,能解,则说明是b发的。(身份验证) 
第三步:b用对称加密去加密整段数据(包括特征码),生成了一个秘钥。然后b用a的公钥去加密这个秘钥形成一个数据段
加在特征码的后面。 (保密性)
(4)不直接使用对称加密加密数据的原因?
a和b之间要无数次的通信,数据量非常大,用对称加密性能太差。而用单项加密得到的特征码、对称加密生成的秘钥还是
用公钥加密用到的公钥、私钥本身非常小。
(5)秘钥交换?
b用对称加密的方式生成了一个秘钥,然后b再用a的公钥去加密这个秘钥。a用自己的私钥去解密自己的公钥得到秘钥,
这样的一个过程即为秘钥交换。
  
    
可靠的获取公钥
                                 
4、假如ab此前从未见过面,当b想和a通信时,c跳出来说我是a,然后c再和a说我是b,如此,ab之间的通信信息
全都会经过c,(c拿着自己的公钥和ab进行通信,将b给的信息传给a,将a给的传给b,ab还认为彼此是彼此)。
产生这种问题的原因是什么?如何解决?
(1)问题产生的原因
 缺少一个可靠的获取公钥的办法
(2)解决问题
通过CA:可信的第三方机构,能保证ab能准确拿到彼此的公钥

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/9039919e2fc36a10f176334514e2403b.html