RSA
RSA 是 Rivest、Shamir、Adleman 于 1977 年提出的非对称加密算法,基于大整数分解难题,用于加密与数字签名。
用途
实现非对称加密与数字签名,使通信双方无需预先共享密钥即可安全通信与认证。
机制
密钥生成:选两素数 p、q,n=pq,φ=(p-1)(q-1),选 e 与 φ 互素,d=e^{-1} mod φ。加密 c=m^e mod n,解密 m=c^d mod n。安全性依赖分解大数 n 的困难性。
用例
- TLS 证书密钥交换与签名
- SSH 公钥认证
- PGP/GPG 密钥
- 代码签名证书
示例
- 输入
n=3233, e=17, m=65输出c=2790Encrypting 65 → 2790
常见错误
- Using keys that are too short (<2048 bits)
- Use at least 2048 bits; 3072 or 4096 recommended