公钥、私钥和证书

理解公钥和私钥首先要区分 加密认证这两个概念!
 
加密和认证:
加密是将数据资料加密,使别人即便获取加密资料,也没法获取正确的资料内容,重点在于数据的安全性。
认证是肯定数据的真实发送方,使别人没法伪造或冒充,重点在于用户的真实性。
 
公钥和私钥:
公钥和私钥就是俗称的不对称加密方式,是对称加密(使用用户名与密码)方式的提升。
使用公钥与私钥的目的是为了安全的数据传输,必须实现以下目的:
  • 我发送给你的内容必须加密,在数据传输过程当中不能被别人看到真实数据内容。
  • 接收数据方能肯定是我发送的数据,不是别人冒充个人。
 
首先解释公钥和私钥的意义和做用:
  • 公钥:是公布出去的给别人用的,能够被不少人获取。用来加密和验章。
  • 私钥:只能本身持有,而且不能够被其余人知道。用来解密和签章。
 
公钥与私钥的做用是:用公钥加密的内容只能用私钥解密,用私钥加密的内容只能用公钥解密。
公钥和私钥有如下原则:(注意:密钥包括公钥和私钥)
  • 一个公钥对应一个私钥;
  • 密钥对中,让你们都知道的是公钥,不告诉你们,只有本身知道的,是私钥;
  • 若是用其中一个密钥加密数据,则只有对应的那个密钥才能够解密;
  • 若是用其中一个密钥能够进行解密数据,则该数据必然是对应的那个密钥进行的加密;
 
要达到数据安全传输的目的,必须发送方和接收方都持有对方的公钥和本身的私钥,即任意一方持有本身的私钥和对方的公钥。
如 A 给 B 发送数据:
  • 为了数据的安全性,A 须要使用 B 的公钥来给数据加密,这样只有 B 的私钥才能够解密数据,别人没法解密,这样保证了数据的安全性。这是数字签名。
  • 为了保证数据发送方的真实性,A 须要使用本身的私钥来给数据加密,这样其余人用 A 的公钥进行解密,因为只有 A 的私钥加密的数据,A 的公钥才能解密,因此他人用 A 的公钥若能解密此数据,则证明了此数据是由 A 发送的,若不能解密,则证实此数据不是用 A 的私钥加密的,即不是 A 发送的,这样保证了发送方的真实性。
 
证书:
证书是为公钥作认证,为了使公钥真实可信,防止他人伪造公钥;证书颁发机构(证书中心CA)会用本身的私钥对用户的公钥和相关信息进行加密,生成”数字证书“,而后证书中心会公布本身的公钥给全部人,用来让用户使用此公钥验证”数字证书“是否由CA颁发,便是否真实可信,产生证书是由于以下场景:
A 给 B 发信息:
1. 首先 A 用 Hash 函数对要发送的数据实体生成摘要(digest),这个过程是不可逆的。
2. A 使用本身的私钥对这个 摘要进行加密,生成数字签名(signature),并将此签名连同要发送的数据实体一块儿发送给 B 。
3. B 收到 A 发送过来的数据后,首先用 A 的公钥对数字签名进行解密,获得摘要,从而证实数据确实来自 A,由于只有 A 有私钥。
4. 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才能够解密,从而保证了数据的安全性。
 
由上再次总结:
证书分为公钥证书和私钥证书,每一个人的公钥、私钥证书是不同的,可是确定是一一对应的。
加密技术:公钥证书加密、私钥证书解密;
签名技术:私钥证书加密、公钥证书解密;
对于一方来讲,持有对方公钥(即证书,由于公钥放在证书里),就能够验证对方身份,而且保证发给对方数据的安全性。对方对己方要也想作到这一点,则也要持有己方的公钥,即:
加密和签名技术相结合才能实现,机密性、完整性、不能否认性。
证书是为了保证密钥的真实性!没有证书,谈不上非对称加密。
相关文章
相关标签/搜索