1. 非对称加密与RSA算法基础
非对称加密是现代密码学的基石之一,它彻底改变了传统加密方式中密钥分发的难题。与对称加密使用同一密钥进行加解密不同,非对称加密采用密钥对的概念:公钥用于加密,私钥用于解密。这种机制完美解决了密钥交换的安全问题。
RSA算法作为最经典的非对称加密实现,由Ron Rivest、Adi Shamir和Leonard Adleman三位学者在1977年提出。其安全性基于大整数分解的数学难题——将两个大质数的乘积分解回原质数在计算上是不可行的。随着密钥长度的增加,破解难度呈指数级上升。目前2048位RSA密钥被认为是安全的,而3072位则用于更高安全要求的场景。
在实际应用中,RSA通常不会直接加密大量数据,而是用于加密对称密钥(如AES密钥),再由对称算法处理实际数据。这种混合加密方案兼顾了安全性和性能。RSA还广泛应用于数字签名、SSL/TLS握手等场景,是互联网安全通信的基础。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. RSA密钥生成实战
2.1 密钥对生成原理
生成RSA密钥对的核心步骤包括:
- 选择两个大质数p和q(通常为1024位以上)
- 计算模数n = p × q
- 计算欧拉函数φ(n) = (p-1)(q-1)
- 选择公钥指数e(通常为65537)
- 计算私钥指数d ≡ e⁻¹ mod φ(n)
这些参数中,(n, e)组成公钥,(n, d)组成私钥。p和q在生成后应立即丢弃,因为它们可以用来推导出私钥。
2.2 OpenSSL生成密钥示例
使用OpenSSL命令行工具可以轻松生成RSA密钥:
bash复制# 生成2048位的私钥
openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048
# 从私钥提取公钥
openssl rsa -pubout -in private_key.pem -out public_key.pem
生成的PEM格式密钥文件内容如下:
私钥示例:
code复制-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCz4bJ7H1Jj...
-----EN
