4 密码学基础之对称加密与非对称加密

在上一篇中,我们讨论了网络安全的发展历程,了解了如何通过不断演进的技术和策略来保护我们的信息安全。今天,我们将深入探讨密码学的一个核心基础——“对称加密与非对称加密”。

对称加密

对称加密是一种加密技术,在这种技术中,加密和解密使用的是同一个密钥。这种方式简单高效,特别适合于大量数据的加密。在对称加密中,发送方和接收方必须安全地共享密钥,以确保信息交流的安全。

案例:AES加密

对称加密算法中,以高级加密标准(AES)最为知名。AES是由美国国家标准技术研究院(NIST)于2001年发布的一种对称加密标准。

以下是一个使用Python中的pycryptodome库实现AES加密和解密的简单示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
import os

# 生成密钥
key = os.urandom(16) # 128位密钥
cipher = AES.new(key, AES.MODE_CBC)
iv = cipher.iv # 初始化向量

# 加密
data = b'Hello, this is a secure message.'
ciphertext = cipher.encrypt(pad(data, AES.block_size))

print(f'Encrypted: {ciphertext.hex()}')

# 解密
decipher = AES.new(key, AES.MODE_CBC, iv)
plaintext = unpad(decipher.decrypt(ciphertext), AES.block_size)

print(f'Decrypted: {plaintext.decode()}')

在这个示例中,我们首先生成一个128位的密钥,然后使用AES算法以CBC模式加密了一段简单的消息。加密后的密文可以安全地传输,而只有拥有相同密钥的接收方能够解密还原消息。

非对称加密

与对称加密不同,非对称加密(也称为公钥加密)使用一对密钥:一个“公钥”和一个“私钥”。公钥可以公开,私钥需要保密。数据使用公钥加密后,只有持有私钥的人才能解密。因此,非对称加密不仅可以保证数据的机密性,还可以实现身份认证。

案例:RSA加密

RSA是其中最流行的非对称加密算法之一,其安全性基于大整数因式分解的困难性。以下是一个使用Python中的cryptography库实现RSA加密和解密的示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives.asymmetric import rsa, padding
from cryptography.hazmat.primitives import serialization, hashes

# 生成RSA密钥对
private_key = rsa.generate_private_key(
public_exponent=65537,
key_size=2048,
backend=default_backend()
)

public_key = private_key.public_key()

# 加密
message = b'Secure message using RSA.'
ciphertext = public_key.encrypt(
message,
padding.OAEP(
mgf=padding.MGF1(algorithm=hashes.SHA256()),
algorithm=hashes.SHA256(),
label=None
)
)

print(f'Encrypted with RSA: {ciphertext.hex()}')

# 解密
plaintext = private_key.decrypt(
ciphertext,
padding.OAEP(
mgf=padding.MGF1(algorithm=hashes.SHA256()),
algorithm=hashes.SHA256(),
label=None
)
)

print(f'Decrypted with RSA: {plaintext.decode()}')

在这个示例中,我们生成了一对RSA密钥,然后使用公钥加密一条消息,只有持有私钥的用户才能解密。非对称加密虽然计算量大且处理速度比对称加密慢,但它提供了更高的安全性和方便性,特别是在密钥分发方面。

对称加密与非对称加密的对比

特性 对称加密 非对称加密
密钥数量 一把密钥 一对密钥(公钥+私钥)
加密速度 较慢
安全性 密钥分发难题 解决密钥分发难题
适用场景 大量数据加密 小量数据传输、身份认证

在实际应用中,常常将对称加密与非对称加密结合使用:首先使用非对称加密安全地传输对称密钥,然后在数据传输中使用对称加密进行加密。这种方法结合了两者的优点,既保证了安全性,又提供了高效性。

接下来,我们将在下一篇中进一步探讨哈希函数,这也是密码学中不可或缺的一部分。确保您继续关注,我们将为您揭示哈希函数在数据完整性与验证中的重要作用!

4 密码学基础之对称加密与非对称加密

https://zglg.work/network-security-zero/4/

作者

IT教程网(郭震)

发布于

2024-08-15

更新于

2024-08-16

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论