参考:
https://blog.csdn.net/qq_25933249/article/details/100065093
理解公钥和私钥首先要区分加密和认证这两个概念!
加密和认证
加密是将数据资料加密,使别人即使获取加密数据也无法获取正确的资料内容,重点在于数据的安全性。
认证是是确定数据的真实发送方,使别人无法伪造或冒充,重点在于用户的真实性。
公钥和私钥
公钥和私钥通常称非对称加密(又称 不对称加密)
使用公钥和私钥的目的是为了安全的数据传输,必须实现如下目的:
发送方将数据加密,在数据传输过程中不能被别人看到真实数据内容
接收方能确定数据是发送方发送的数据,不是别人冒充。
首先解释公钥和私钥的意义和作用:
公钥:是公布出去给别人用的,可以被很多人获取。用来加密和验签
私钥:只能自己持有,并且不可以被其他人知道,用来解密和签名
公钥和私钥的作用:公钥加密私钥解密数据,私钥加密公钥解密。
一个公钥对应一个私钥
密钥对中,让大家都知道的是公钥,自己知道是私钥
如果用其中一个密钥加密数据,则只有对应的那个密钥才能解密
如果用其中一个密钥可以进行解密数据,则该数据必然由对应密钥进行加密
密钥包括公钥和私钥
要达到数据安全传输的目的,必须发送方和接收方都持有对方的公钥和自己私钥,即任意一方持有自己的私钥和对方的公钥。
为了数据的安全性:加密
A需要使用B的公钥来给数据加密,这样只有B的私钥才可以解密数据,这样保证了数据的安全性,这是数字签名。
为了保证数据发送方的真实性:认证
A需要使用自己的私钥来个数据加密,这样其他人用A的公钥进行解密,由于只有A私钥加密的数据,A的公钥才能解密,所以他人用A的公钥若能解密此数据,则证实数据是由A发送的,若不能解密,则证明数据不是用A的私钥加密,即不是A发送的,这样保证了送法的真实性。
证书:
证书是为公钥做认证,为了使公钥真实可信,防止他人伪造公钥;证书颁发 机构(证书中心CA)会用自己的私钥对用户的公钥和相关信息进行加密,生成”数字证书“,然后证书中心会公布自己的公钥给所有人,用来让用户使用此公钥验证”数字证书“是否由CA颁发,即是否真实可信,产生证书的场景:
A给B发信息:
首先A用Hash函数对要发送的数据实体生成摘要(digest),这个过程是不可逆。
A使用自己的私钥对这个摘要进行加密,生成数字签名(signature),并将此签名连同要发送的数据实体一起发送给B.
B收到A发送过的数据后,首先用A的公钥数字签名进行解密,得到摘要,从而证明数据确实来自A,因为只有A有私钥。
B再对接收到的数据实体进行Hash函数,如果得到的结果和上一步摘要一致,则证明数据实体没有被篡改过。
如上,如果C偷偷将B持有的A公钥换成自己的公钥,而B不知道公钥已被替换,那么以后C就可以使用冒充A给B发送信息,而B相信此信息来自A。
为了解决这一问题,需要对B持有的A公钥做认证,从而确定此公钥确实是A的公钥,而不是其他人篡改过的!而认证机构必须是第三方可信赖的机构,就是CA,由此发送过程就变成如下:
A发给B数据的时候,除了要发送签名和数据实体,还要发送CA颁发的证书。
B接收到A发送过来的数据后,首先用CA的公钥去解密证书,如果能解,表明这个证书里的信息可信赖,从而得到证书里A的公钥,然后B再用到后的公钥去做下一步动作。
注意:
以上前提必须是CA是可信赖的,CA证书是不可伪造的!
上边A给B发送数据只实现了身份确认,数据未被修改过,但是没有保证数据是安全的,即数据传输的过程中可以被第三人看到数据内容,要想实现安全的数据传输,A还要做进一步工作,即用B的公钥给数据加密,这样只有B才可以解密,从而保证了数据的安全性。
由上再次总结:
证书分为公钥证书和私钥证书,每个人的公钥,私钥证书不一样,但是肯定是一一对应的。
加密技术:公钥证书加密,私钥证书解密
签名技术:私钥证书加密,公钥证书解密
对于一方来说,持有对方公钥(即证书,因为公钥放在证书里),就可以验证对方身份,并且保证发送给对方数据的安全性。
对方对己方要想做到这一点,则要持有己方的公钥,即:
加密和签名技术相结合才能实现,机密性,完整性,不可否认性。
证书是未了保证密钥的真实性!没有证书,谈不上非对称加密。
标签:公钥,私钥,证书,加解密,解密,加密,数据 From: https://www.cnblogs.com/tkzc2013/p/17167800.html