🍋
Menu
Security

RSA

RSA(Rivest-Shamir-Adleman)

一种广泛使用的非对称加密算法,基于大素数分解的数学难题,能够实现安全的密钥交换、数字签名和加密通信,而无需共享密钥。

技术细节

RSA 生成一对密钥:用于加密的公钥 (n, e) 和用于解密的私钥 (n, d),其中 n 是两个大素数的乘积。加密计算 c = m^e mod n,解密计算 m = c^d mod n。当前推荐的最小密钥长度为 2,048 位;4,096 位提供更大的安全余量。RSA 比对称算法慢,因此实际应用中通常加密一个随机 AES 会话密钥而非大量数据(混合加密)。RSA-OAEP(最优非对称加密填充)可防止选择密文攻击。RSA-PSS 是推荐的签名方案。

示例

```javascript
// AES-256-GCM encryption (Web Crypto API)
const key = await crypto.subtle.generateKey(
  { name: 'AES-GCM', length: 256 }, true, ['encrypt', 'decrypt']
);
const iv = crypto.getRandomValues(new Uint8Array(12));
const ciphertext = await crypto.subtle.encrypt(
  { name: 'AES-GCM', iv },
  key,
  new TextEncoder().encode('secret message')
);
```

相关工具

相关术语