-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
98 additions
and
40 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,88 @@ | ||
--- | ||
layout: post | ||
catalog: true | ||
tags: | ||
- 架构 | ||
--- | ||
|
||
# 1. 加解密技术 | ||
|
||
![加解密.jpg](https://blog0912pic.oss-cn-beijing.aliyuncs.com/blog/202409131549383.jpg) | ||
## 1.1. 对称加密 | ||
|
||
对称加密是指加密和解密都使用相同的密钥。这意味着发送方和接收方都必须拥有这个密钥才能进行加密和解密操作。 | ||
|
||
**常见的对称加密算法:** | ||
|
||
- AES(高级加密标准) | ||
- DES(数据加密标准) | ||
- 3DES(三重数据加密算法) | ||
|
||
**对称加密特点** | ||
|
||
一般来说,对称加密具有如下特点: | ||
|
||
1. 速度较快:由于加密和解密使用相同的密钥,对称加密通常比非对称加密要快。 | ||
2. 密钥管理:对称加密的主要挑战在于密钥的分发和管理。如果密钥泄露,加密的安全性就会受到威胁。 | ||
3. 适用于大量数据:由于速度快,对称加密适合加密大量数据。 | ||
|
||
从这里可以看到,对称加密主要有两大优势:第一就是运算速度快;第二就是适用于大量数据。 | ||
|
||
但是,对称加密有一个致命的问题,就是密钥管理。如何从服务端将密钥安全的传输到客户端是个问题!另外就是当一对多通信的时候,如何管理好密钥不被泄露也是一个考验。这是对称加密的不足之处。 | ||
|
||
**用途** | ||
|
||
对消息明文进行加密传送 | ||
## 1.2. 非对称加密 | ||
|
||
非对称加密,是一种使用两个不同密钥(公钥和私钥)的加密方式 | ||
|
||
**加密体制,用接收方的公钥加密,用接收方的私钥解密** | ||
|
||
**常见的非对称加密算法:** | ||
|
||
- RSA | ||
- ECC | ||
|
||
**非对称加密特点** | ||
|
||
任何人的私钥只能自己拥有,任何人的公钥可以明文公开发送 | ||
|
||
1. 公开密钥分发方便 | ||
- 公钥的公开性:公钥可以公开给任何人,因此分发起来非常方便。任何人都可以使用公钥来加密数据,但只有私钥持有者才能解密。 | ||
2. 身份验证与数字签名 | ||
- 身份验证:公钥可以用作用户的身份标识,其他人可以验证用户的身份而无需了解其私钥。这有助于在区块链等去中心化网络中建立可信身份。 | ||
- 数字签名:私钥持有者可以使用私钥对消息进行签名,其他人则可以使用公钥来验证签名的真实性。这确保了消息的完整性和来源的可靠性。 | ||
3. 安全通信 | ||
- 加密通信:公钥可以用于加密消息,只有持有相应私钥的人才能解密。这确保了通信过程中的数据安全,防止了信息被未经授权的人员访问。 | ||
4. 数字资产控制 | ||
- 区块链地址与私钥:区块链地址通常由公钥派生而来,用户通过私钥来控制与该地址相关联的数字资产。私钥的安全性对数字资产的安全至关重要。 | ||
5. 加密解密速度 | ||
- 相对较慢:非对称加密的加密和解密速度相对于对称加密要慢得多,因为它需要进行更加复杂的数学计算。然而,这并不影响其在安全通信、身份验证等领域的应用。 | ||
|
||
**用途** | ||
|
||
对密钥加密(通常给对称加密中的密钥进行加密处理),做数字签名 | ||
# 2. 数字签名技术 | ||
|
||
## 2.1. 信息摘要 | ||
|
||
单向散列函数 hash(不可逆) | ||
|
||
固定长度的散列值 | ||
|
||
摘要用途:确保信息的完整性,防篡改 | ||
|
||
常用的信息摘要算法:md5、sha | ||
## 2.2. 什么是签名 | ||
|
||
**签名体制,用发送方的私钥签名,用发送方的公钥验证** | ||
|
||
因为公钥是公开的,所以任何持有公钥的人都能解密私钥加密过的密文,所以这个过程并不能保证消息的安全性,但是它却能保证消息来源的准确性和不可否认性,也就是说,如果使用公钥能正常解密某一个密文,那么就能证明这段密文一定是由私钥持有者发布的,而不是其他第三方发布的,并且私钥持有者不能否认他曾经发布过该消息(不可抵赖性)。故此将该过程称为「签名」 | ||
|
||
![数字签名的过程.jpg](https://blog0912pic.oss-cn-beijing.aliyuncs.com/blog/202409131537597.jpg) | ||
# 3. 加密和签名的综合案例 | ||
|
||
设计一个系统,要求以加密的形式进行传输,传输文件最大2GB,发送者不可抵赖,若文件被第三方截获,第三方无法篡改 | ||
|
||
![加密的案例.jpg](https://blog0912pic.oss-cn-beijing.aliyuncs.com/blog/202409131636640.jpg) |