🍋
Menu
Security

RSA

RSA(Rivest-Shamir-Adleman)

大きな素数の因数分解が数学的に困難であることに基づく、広く使用されている公開鍵暗号アルゴリズムです。秘密鍵を共有することなく、安全な鍵交換、デジタル署名、暗号化通信を実現します。

技術的詳細

RSAは鍵ペアを生成します:暗号化用の公開鍵(n, e)と復号用の秘密鍵(n, d)で、nは2つの大きな素数の積です。暗号化は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')
);
```

関連ツール

関連用語