ブロック暗号とストリーム暗号
更新日:
用語解説
共通鍵暗号をデータの処理単位で分類したものです。ブロック暗号は固定長ブロックへ変換を施し、ストリーム暗号は鍵とnonceなどから生成する鍵ストリームを平文へ逐次結合します。
■ 試験で押さえるポイント
AESとCamelliaは代表的なブロック暗号です。AESのブロック長は128ビットで、鍵長は128、192、256ビットから選ぶため、両者を混同しません。
ブロック暗号はECB、CBC、CTR、GCMなどの利用モードと組み合わせます。CTRはブロック暗号からストリーム状の鍵系列を作り、GCMは暗号化と認証を同時に提供するAEADです。
ストリーム暗号では同じ鍵とnonceから同じ鍵ストリームを再利用すると、暗号文同士の関係から平文が漏れ得ます。ChaCha20-Poly1305などではnonceの一意性を守ります。
暗号化だけでは改ざんを検知できません。SCでは認証付き暗号又は安全なMACとの組合せ、鍵・IV・nonceの生成と管理まで評価します。
方式名だけから常に速度や安全性の優劣を断定できません。実装、モード、ハードウェア支援、通信特性を含めて選びます。
項目 | AESの仕様 | 注意点 |
|---|---|---|
暗号方式 | 共通鍵ブロック暗号 | 採用アルゴリズムはRijndael |
ブロック長 | 128ビット固定 | 鍵長が変わっても固定 |
鍵長 | 128・192・256ビット | 3種類から選択 |
CBC | AESの利用モードの一つ | AESの鍵長ではない |
■ 過去問での着眼点
AESではブロック長が128ビットに固定され、鍵長の128・192・256ビットとは別です。また、鍵とnonceの組合せを再利用してはいけない方式では一意性の確保が必須です。暗号化と完全性保護の有無も分けて判断します。
例: AES-GCMで通信を保護する場合、同じ鍵の下でnonceを重複させず、受信側は認証タグを検証してから平文を利用します。