主页 > imtoken官方网址 > 公钥私钥与SSL的握手协议(传输)

公钥私钥与SSL的握手协议(传输)

imtoken官方网址 2023-02-10 06:48:13

1.公钥和私钥

1.公钥和私钥成对出现

2.公钥称为公钥,只有你自己知道的称为私钥

3.用公钥加密的数据只能用对应的私钥解密

4.用私钥加密的数据只能用对应的公钥解密

5. 如果可以用公钥解密,则必须用对应的私钥加密。

6. 如果可以用私钥解密,则必须用对应的公钥加密。

明白了吗?

假设,我找到两个数字,一个是1,一个是2,我喜欢数字2,所以我就留着不告诉你,然后我告诉你1是我的公钥。

我有一个文件别人看不到,所以用1加密,别人找到了这个文件,但是他不知道2是解密的私钥,所以无法解密。 只有我可以使用我的私钥数字 2 来解密它。 这样我就可以保护数据。

我的好朋友x用我的公钥1加密了字符a,加密后变成了b,放到网上。 别人偷了这个文件,但是他们不能解密,因为他们不知道2是我的私钥,只有我才能解密。 解密后得到一个。 这样,我们就可以传输加密数据了。

现在我们知道,用公钥加密,用私钥解密,就可以解决安全传输的问题。 如果我用私钥加密一段数据(当然只有我能用私钥加密,因为只有我知道2是我的私钥),每个人都会看到我的内容,因为他们都知道我的公钥是1,那么这个加密有什么用呢?

一个比特币账号包含私钥和公钥吗_从比特币私钥恢复钱包_比特币 私钥

但是我的好朋友x说有人冒充我给他寄了封信。 怎么做? 我用我的私钥2加密我要发的信,内容是c,加密后的内容是d,发给x,然后告诉他解密看是不是c。 他用我的公钥1解密,发现确实是c。 这时候他就会认为用我的公钥可以解密的数据一定要用我的私钥加密。 只有我知道我的私钥,所以他可以确认真的是我发的。 这样我们就可以确认发件人的身份。 这个过程称为数字签名。 当然,具体过程稍微复杂一些。 使用私钥加密数据,目的是数字签名。

好的,让我们回顾一下:

1.公钥和私钥成对出现

2.只有我知道私钥

3.你可以用我的公钥给我发加密信件

4、大家用我的公钥解密信件内容,看看能不能解开。 如果可以解锁,说明已经用我的私钥加密过,你可以确认确实是我发的。

总结一下结论:

1.用公钥加密数据,用私钥解密数据

2、使用私钥加密数据(数字签名),使用公钥验证数字签名。

在实际使用中,公钥并不是单独出现的,而是总是以数字证书的形式出现,这是为了保证公钥的安全性和有效性。

二、SSL

比特币 私钥_从比特币私钥恢复钱包_一个比特币账号包含私钥和公钥吗

我和我的好朋友 x 想安全地交流。 这种交流可以是QQ聊天,很频繁。 使用我的公钥加密数据不起作用,因为:

1、我的好朋友x没有公私钥对,怎么给他发加密信息? (注:实际情况下,双方可能都有一对公私钥)

2.公私钥加密费时费力,影响QQ效果。

一个比特币账号包含私钥和公钥吗,好朋友x,找了一个数字3,用我的公钥1加密,发给我,说,以后就用这个数字加密信息吧。 我解开后,得到了3这个数字。这样,只有我们两个人知道这个秘密数字3,其他人都不知道,因为他们不知道x选的是什么数字,他们无法解密加密内容。 我们称这个秘密号码为会话密钥。 钥匙。

然后,我们选择一种对称密钥算法,比如DES,(对称算法是指加密过程和解密过程是对称的,用一个密钥加密,可以用同一个密钥解密。该算法使用公钥和私钥是非对称加密算法)来加密我们之间的通信内容。 因为别人不知道3是我们的session key,所以无法解密。

好的,回顾:

1、SSL实现安全通信

2、通信双方使用一方或双方的公钥进行传递并约定会话密钥(这个过程称为握手)

3. 双方使用会话密钥加密双方的通信内容

以上是原理。 你可能认为它更复杂,但在实际使用中,它甚至比这更复杂。 幸运的是,好心的先驱们已经在操作系统或相关软件中实现了这一层(Layer),并给它起了一个丑陋的名字,叫做SSL(Secure Socket Layer)。

SSL 握手协议

从比特币私钥恢复钱包_一个比特币账号包含私钥和公钥吗_比特币 私钥

1、用户的浏览器向服务器发送其SSL版本号、加密设置参数、会话相关数据和其他必要信息。

2、服务器向浏览器发送自己的SSL版本号、加密设置参数、会话相关数据等必要信息,同时将服务器的证书发送给浏览器。 如果配置服务器的SSL需要验证用户身份,也会请求浏览器提供用户的证书。

3、客户端检查服务器证书,如果检查失败,提示无法建立SSL连接。 如果成功,则继续。

4. 客户端浏览器为本次会话生成一个pre-master secret,用服务器的公钥加密后发送给服务器。

5. 如果服务端需要验证客户端的身份,客户端需要签署一些其他的数据,连同客户端证书一起发送给服务端。

6. 如果服务端需要验证客户端身份,检查签署客户端证书的CA是否可信。 如果不在信任列表中,则结束会话。 如果校验通过,服务器用自己的私钥对收到的pre-master secret进行解密,并通过一些算法生成本次会话的master secret。

7、客户端和服务器都使用这个master secret为本次会话生成一个会话密钥(对称密钥)。 双方之间 SSL 握手结束后传递的任何消息都使用此会话密钥。 这样做的主要原因是对称加密的计算量比非对称加密低一个数量级以上,可以显着提高双方对话的计算速度。

8. 客户端通知服务器所有后续消息都将使用此会话密钥加密。 并通知服务器客户端已经完成SSL握手。

9. 服务器通知客户端所有后续消息都将使用此会话密钥加密。 并通知客户端服务器SSL握手已经完成。

10. 握手过程结束,会话建立。 双方使用相同的会话密钥分别对发送和接收的信息进行加密和解密。

图1 SSL通信示意图

比特币 私钥_从比特币私钥恢复钱包_一个比特币账号包含私钥和公钥吗

SSL通信示意图如图1所示:

4b67225d9b264298895020bc9e6ad3a8.jpg

2 SSL通信说明

在本节中,将解释图 1 中所示的示意图。 为了描述方便,本文中将客户端记为B,将服务端记为S。

STEP 1:B——>S(发起对话,协商传输加密算法)

你好,小号! 我想和你进行一次安全的谈话。 我的对称加密算法包括DES、RC5,我的密钥交换算法包括RSA和DH,我的摘要算法包括MD5和SHA。

STEP2:S——>B(发送服务器数字证书)

你好乙! 然后我们使用DES-RSA-SHA的组合来进行通信。 为了证明我确实是S,我现在把我的数字证书发给你,你可以验证我的身份。

STEP 3:B——>S(传递本次对话的密钥)

(检查S的数字证书是否正确,通过CA组织颁发的证书验证S证书的真实性和有效性。生成本次对话的密钥,用S的公钥加密后发送给S)

S,我已经确认了你的身份,现在我把我们这次通讯使用的对称加密算法的密钥发给你。

一个比特币账号包含私钥和公钥吗_比特币 私钥_从比特币私钥恢复钱包

STEP4:S——>B(获取密钥)

(S用自己的私钥解密,得到本次通信的密钥)。

B、我已经拿到钥匙了。 我们可以开始通信了。

STEP5:SB(用于沟通)

注:一般情况下,当B为机密信息的发送者时,B不需要数字证书来验证其身份的真实性。 例如,在电子银行的应用中,客户需要将自己的帐号和密码发送给银行,因此银行的服务器需要安装一个数字证书来表明您身份的有效性。 在一些B2B应用中,服务端还需要验证客户端的身份。 这时,客户端还需要安装数字证书,以保证服务器在通信过程中能够识别客户端的身份。 验证过程与服务器类似。

此外,需要注意的是,在一些电子商务应用中,也可能会使用电子签名,或者会增加电子签名和消息验证码(MAC),以实现更安全的信息交换。

为了便于对SSL的理解,下面就信息加密相关知识做一个简单的介绍。 使用密钥类型对信息进行加密的加密算法可分为以下几类:HASH编码、对称加密和非对称加密。

HASH编码是使用HASH算法从任意长度的消息中计算出一个HASH值的过程。 HASH值可以说是消息的指纹,因为对于任何不同的消息一个比特币账号包含私钥和公钥吗,几乎总有不同的HASH值。 因此,在SSL通信过程中,可以对报文的HASH值进行加密,保证传输的报文在传输过程中没有被修改。

非对称加密或公钥加密使用两个数学上相关的数字对信息进行编码(加密),一个称为公钥,另一个称为私钥。 用公钥加密的信息可以用私钥解密,用私钥加密的信息可以用公钥解密。 由于公钥可以大规模分发,因此在SSL加密通信中使用公钥加密对密钥进行加密或数字签名。

对称加密与非对称加密的区别在于,在对称加密中,加密信息和解密信息使用的是同一个密钥,因此密钥不能公开。 但它具有加解密速度快的特点。

在SSL通信中,首先使用非对称加密来交换信息,使服务器获得浏览器提供的对称加密密钥,然后在通信过程中使用该密钥对信息进行加密和解密。 为了保证消息在传输过程中不被篡改,可以对HASH码进行加密,保证信息的完整性。

[@更多的@]