郭震 AI公众号:郭震AI

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

发布日期:

分类: 网络安全

预计阅读: 3 分钟

阅读次数: 0

预计阅读3 分钟
结构重点5 个
图文要点0 张
正文规模1.1k 字

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

对称加密

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

案例:AES加密

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

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

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加密和解密的示例:

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密钥,然后使用公钥加密一条消息,只有持有私钥的用户才能解密。非对称加密虽然计算量大且处理速度比对称加密慢,但它提供了更高的安全性和方便性,特别是在密钥分发方面。

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

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

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

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

分享文章

转发到常用平台

微信/朋友圈可先复制链接

相关内容

更多相关文章

返回栏目

Reader Messages

读者留言

有问题、补充资料或实测结果,可以直接留下。这里不需要登录。

最多 800 字

为了防刷,每条留言会做长度、链接数量和提交频率限制。

0/800

留言列表

0
正在加载留言...