Block Cipher
ブロック暗号は固定長のブロック(例: 128 ビット)を暗号化・復号する対称暗号であり、任意長のデータを扱うには運用モードが必要である。
目的
固定ブロックに対する安全な変換を提供し、証明可能な安全な暗号の構成要素となる。
メカニズム
暗号化関数 E(K, P) は n ビットの平文ブロックを n ビットの暗号文ブロックへ写像する全単射である。鍵スケジュールがラウンド鍵を導出し、複数ラウンドで代替と置換を交互に適用する(SPN または Feistel 構造)。可変長データには ECB/CBC/CTR/GCM などのモードが必要である。
ユースケース
- AES ベースの暗号化基盤
- ディスク暗号化(ブロック単位)
- MAC 構成(CMAC など)
- 疑似ランダム関数の構成
例
- 入力
AES-128 blockOutput16-byte ciphertext blockA mode is required for multiple blocks
よくあるエラー
- Encrypting multiple blocks directly with the raw block cipher (i.e., ECB mode)
- Always use a secure mode (GCM, or CBC with an IV)
関連用語
Stream Cipher
ストリーム暗号はバイト単位やビット単位で暗号化し、鍵ストリームを平文と XOR する。パディングが不要で、リアルタイムやストリーミングデータに適する。 用語集
Mode of Operation
運用モード(mode of operation)は、ブロック暗号を任意長のデータに適用するための方式で、暗号化時に複数の平文ブロックをどう連結するかを定義する。代表的なものにECB、CBC、CTR、GCMがある。 用語集
AES
AES(Advanced Encryption Standard)は NIST が 2001 年に確立した対称ブロック暗号であり、128/192/256 ビット鍵をサポートし、現代暗号化の事実上の標準である。 用語集
Padding
パディングは、平文をブロック境界まで伸長する仕組みである。代表的な方式はPKCS#7、ゼロパディング、ISO 10126で、AEADモードでは不要である。 用語集