認証付き暗号(AE: Authenticated Encryption)とは
認証付き
暗号(AE)、または関連データ付き
認証付き
暗号(AEAD: Authenticated Encryption with Associated Data)は、データの秘匿性、完全性、および
認証性を同時に提供する
暗号利用モードです。これは、単一のAPIでこれらの特性をまとめて提供し、復号処理と同時にデータの完全性も検証できるという利便性があります。
AEの必要性が認識された背景には、従来の秘匿用モードと
認証用モードを単純に組み合わせることが、必ずしも安全ではないという指摘がありました。実際、多くのプロトコルやアプリケーションでは、
認証の実装不備や欠如が原因で、攻撃を招く脆弱性が生じてきました。例えば、SSL/TLSがその一例です。
2000年、Charanjit Jutlaによって発表されたIACBCおよびIntegrity Aware Parallelizable Modeが、この分野の研究を大きく進展させました。ISO/IEC 19772:2009では、OCB 2.0、Key Wrap、CCM、EAX、Encrypt-then-MAC (EtM)、GCMの6つの異なるモードが標準化されました。さらに、NIST(アメリカ国立標準技術研究所)によって開発が推進され、Sponge関数をデュプレックスモードで使用することで
認証付き
暗号を実現する研究も進められています。
AEモードの典型的なAPI
AEモードのAPIは、一般的に以下のような関数を提供します。
暗号化:
入力:平文、鍵、オプションでヘッダ(
暗号化はされないが
認証対象となるデータ)
出力:
暗号文、
認証タグ(MAC)
復号:
入力:
暗号文、鍵、
認証タグ、オプションでヘッダ
出力:平文、または
認証タグが
暗号文やヘッダと一致しない場合はエラー
ヘッダ部は、ネットワークや記録の目的で使用されるメタデータの
認証や完全性保護に使用され、秘匿は不要ですが、
認証は必須です。
平文既知性と選択暗号文攻撃への耐性
AEは、秘匿性と完全性に加え、平文既知性(PA: plaintext awareness)を備えており、選択
暗号文攻撃に対して安全です。選択
暗号文攻撃とは、攻撃者が巧妙に細工した
暗号文を「復号オラクル」に渡し、その復号結果を分析することで、
暗号システムの秘密鍵などの情報を得ようとする攻撃手法です。
認証付き
暗号システムでは、不正な
暗号文を識別し、復号を拒否することで、この種の攻撃を防ぎます。つまり、適切に
暗号化アルゴリズムで生成された
暗号文以外は復号できないため、攻撃者は復号オラクルから有益な情報を得ることができません。
共通鍵
ブロック暗号で使用するための専用モードが多く開発されていますが、一般的には、
暗号システムとメッセージ
認証符号(MAC)を組み合わせることで構成されます。この構成では、
暗号システムは選択平文攻撃に対して強秘匿性(IND-CPA)を、MAC関数は選択メッセージ攻撃に対して偽造不可(SUF-CMA)であることが求められます。
Bellare and Namprempre(2000)は、
暗号とMACの組み合わせを3つのパターンで考察し、両方の関数が必要な性質を満たす場合、メッセージを
暗号化した後に
暗号文に対するMACを計算するEncrypt-then-MAC(EtM)方式が、適応的選択
暗号文攻撃に対して安全であることを証明しました。
2013年には、
認証付き
暗号モードの設計を促進するためのコンペティションも開催されました。
Encrypt-then-MAC (EtM):
最初に平文を
暗号化し、その後、
暗号文からMACを計算します。
暗号文とMACを連結して送信します。これは、ISO/IEC 19772:2009で標準化されており、IPSecなどで使用されています。EtMは、使用するMACが「強偽造不可」である場合に、AEで最高水準の安全性を達成できる唯一の手法です。2014年11月には、TLSおよびDTLSの拡張としてEtMを定義するRFC 7366が勧告されました。
Encrypt-and-MAC (E&M):
平文からMACを計算し、平文はそのまま
暗号化します。
暗号文とMACを連結して送信します。SSHやGrain 128aなどで使用されています。E&M自体は強偽造不可とは証明されていませんが、わずかな修正を加えることでSSHを強偽造不可にすることが可能です。
MAC-then-Encrypt (MtE):
平文からMACを計算し、平文とMACを連結した状態で
暗号化します。
暗号化された平文と
暗号化されたMACを含む
暗号文が送信されます。SSL/TLSなどで使用されています。MtE自体は強偽造不可とは証明されていませんが、SSL/TLS実装はKrawczykによって強偽造不可であることが証明されています。SSL/TLSは、MtEと同時に使用するエンコーディングのおかげで事実上安全です。
関連項目
暗号利用モード
NIST: Modes Development
Counter with CBC-MAC (CCM mode)
CWC mode
OCB mode
EAX mode
Galois/Counter Mode|Galois_Counter Mode (GCM)
signcryption