暗号モード(CBC/CTR/GCM) - 暗号化全般

暗号化全般 | IT用語集

暗号モードとは

暗号モード(Block Cipher Mode of Operation)は、ブロック暗号(AESなど)を使用して可変長のデータを暗号化する方法です。AESは128ビットのブロックしか処理できないため、長いデータを処理するには暗号モードが必要です。

主要な暗号モード

モード認証並列処理推奨度
ECBなし可能❌ 使用禁止
CBCなし復号のみ⚠️ レガシー
CTRなし可能✅ 良い(+HMAC)
GCM✅ あり可能✅ 推奨

GCM(Galois/Counter Mode)

GCMは認証付き暗号(AEAD)を提供し、暗号化と認証を同時に行います。TLS 1.2/1.3で広く使用されています。

from cryptography.hazmat.primitives.ciphers.aead import AESGCM
import os

key = AESGCM.generate_key(bit_length=256)
aesgcm = AESGCM(key)
nonce = os.urandom(12)  # 96ビット推奨

# 暗号化(認証タグが自動付与)
ct = aesgcm.encrypt(nonce, b"plaintext", b"associated data")

# 復号化(認証失敗時は例外)
pt = aesgcm.decrypt(nonce, ct, b"associated data")

トラブル事例

⚠️ ECBモードの使用

問題:同じ平文ブロックが同じ暗号文になり、パターンが漏洩

対策:GCMまたはCBCを使用。ECBは絶対に避ける。

関連用語

📝 関連ブログ記事

【2026年最新】OpenSSLの深刻な問題とは?

暗号実装のご相談