理解两种加密方式中私钥和公钥的概念

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了理解两种加密方式中私钥和公钥的概念相关的知识,希望对你有一定的参考价值。

参考技术A 私钥加密算法 ,又称  对称加密算法 ,因为这种算法解密密钥和加密密钥是相同的。也正因为同一密钥既用于加密又用于解密,所以这个密钥是不能公开的。常见的有《 DES加密算法 》、《 AES加密算法 》。

公钥和私钥成对出现

公开的密钥叫公钥,只有自己知道的叫私钥

用公钥加密的数据只有对应的私钥可以解密

用私钥加密的数据只有对应的公钥可以解密

如果可以用公钥解密,则必然是对应的私钥加的密

如果可以用私钥解密,则必然是对应的公钥加的密

公钥和私钥是相对的,两者本身并没有规定哪一个必须是公钥或私钥。

要实现数据的安全传输,当然就要对数据进行加密了。

如果使用对称加密算法,加解密使用同一个密钥,除了自己保存外,对方也要知道这个密钥,才能对数据进行解密。如果你把密钥也一起传过去,就存在密码泄漏的可能。所以我们使用 非对称算法 ,过程如下:

首先 接收方 生成一对密钥,即私钥和公钥;

然后,接收方 将公钥发送给 发送方;

发送方用收到的公钥对数据加密,再发送给接收方;

接收方收到数据后,使用自己的私钥解密。

由于在非对称算法中,公钥加密的数据必须用对应的私钥才能解密,而私钥又只有接收方自己知道,这样就保证了数据传输的安全性。

除了保证数据的安全传输之外,公钥体系的另一个用途就是对数据进行签名。通常 “数字签名” 是用来验证发送方的身份并帮助保护数据的完整性。

例如:一个发送者 A 想要传些资料给大家,用自己的私钥对资料加密,即签名。这样一来,所有收到资料的人都可以用发送者的公钥进行验证,便可确认资料是由 A 发出来的了。(因为只有A使用私钥签名得到的信息,才能用这个公钥来解) 采用数字签名,可以确认两点:

保证信息是由签名者自己签名发送的,签名者不能否认或难以否认。

保证信息自签发后到收到为止未曾作过任何修改。

之所以可以确认这两点,是因为用公钥可以解密的必然是用对应的私钥加的密,而私钥只有签名者持有。

四、公钥算法的缺点

现实中,公钥机制也有它的缺点,那就是 效率非常低 ,比常用的私钥算法(如 DES 和 AES)慢上一两个数量级都有可能。所以它不适合为大量的原始信息进行加密。为了同时兼顾安全和效率,我们通常结合使用公钥算法和私钥算法:

首先,发送方使用对称算法对原始信息进行加密。

接收方通过公钥机制生成一对密钥,一个公钥,一个私钥。

接收方 将公钥发送给 发送方。

发送方用公钥对对称算法的密钥进行加密,并发送给接收方。

接收方用私钥进行解密得到对称算法的密钥。

发送方再把已加密的原始信息发送给接收方。

接收方使用对称算法的密钥进行解密。

理解证书

首先明确几个基本概念:

1、密钥对,在非对称加密技术中,有两种密钥,分为私钥和公钥,私钥是密钥对所有者持有,不可公布,公钥是密钥对持有者公布给他人的。

 

2、公钥,公钥用来给数据加密,用公钥加密的数据只能使用私钥解密。

3、私钥,如上,用来解密公钥加密的数据。

4、摘要,对需要传输的文本,做一个HASH计算,一般采用SHA1,SHA2来获得。

5、签名,使用私钥对需要传输的文本的摘要进行加密,得到的密文即被称为该次传输过程的签名。

6、 签名验证,数据接收端,拿到传输文本,但是需要确认该文本是否就是发送发出的内容,中途是否曾经被篡改。因此拿自己持有的公钥对签名进行解密(密钥对中的 一种密钥加密的数据必定能使用另一种密钥解密。),得到了文本的摘要,然后使用与发送方同样的HASH算法计算摘要值,再与解密得到的摘要做对比,发现二 者完全一致,则说明文本没有被篡改过。

上面实际上介绍了加密解密和数字签名两个概念和实现过程,二者的过程正好是相反的。

在 签名的过程中,有一点很关键,收到数据的一方,需要自己保管好公钥,但是要知道每一个发送方都有一个公钥,那么接收数据的人需要保存非常多的公钥,这根本 就管理不过来。并且本地保存的公钥有可能被篡改替换,无从发现。怎么解决这一问题了?由一个统一的证书管理机构来管理所有需要发送数据方的公钥,对公钥进 行认证和加密。这个机构也就是我们常说的CA。认证加密后的公钥,即是证书,又称为CA证书,证书中包含了很多信息,最重要的是申请者的公钥。

CA 机构在给公钥加密时,用的是一个统一的密钥对,在加密公钥时,用的是其中的私钥。这样,申请者拿到证书后,在发送数据时,用自己的私钥生成签名,将签名、 证书和发送内容一起发给对方,对方拿到了证书后,需要对证书解密以获取到证书中的公钥,解密需要用到CA机构的”统一密钥对“中的公钥,这个公钥也就是我 们常说的CA根证书,通常需要我们到证书颁发机构去下载并安装到相应的收取数据的客户端,如浏览器上面。这个公钥只需要安装一次。有了这个公钥之后,就可 以解密证书,拿到发送方的公钥,然后解密发送方发过来的签名,获取摘要,重新计算摘要,作对比,以验证数据内容的完整性。

以上是关于理解两种加密方式中私钥和公钥的概念的主要内容,如果未能解决你的问题,请参考以下文章

公钥私钥和证书

公钥私钥和HTTPS分析

公钥私钥和HTTPS分析

关于RSA公钥私钥加密签名的那些概念

HP通过OpenSSL生成证书密钥并且加密解密数据,以及公钥,私钥和数字签名的理解

请问SSL加密的公钥和私钥区别