🍋
Menu
Security

AES

AES(Advanced Encryption Standard)

2001年に米国政府(NIST)の標準として採用された、最も広く使用されている共通鍵暗号アルゴリズムです。AESは128、192、または256ビットの鍵を使用して、固定128ビットブロック単位でデータを暗号化します。

技術的詳細

AESは置換(S-box)、行シフト、列混合、鍵加算の変換を複数ラウンド実行します(128/192/256ビット鍵でそれぞれ10/12/14ラウンド)。ブロック暗号モードは複数ブロックの処理方法を決定します:ECB(安全でない、パターンが露出する)、CBC(ブロックを連鎖させ、IVが必要)、CTR(カウンターモード、並列処理可能)、GCM(ガロア/カウンターモード、暗号化と認証の両方を提供)。Web Crypto APIはAES-GCM、AES-CBC、AES-CTR、AES-KWをサポートしています。AES-256-GCMはTLS 1.3、ファイル暗号化、ディスク暗号化(BitLocker、FileVault)の標準です。

```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')
);
```

関連ツール

関連用語