メッセージ認証コード

暗号学 において、メッセージ認証コードMAC )は、認証タグとも呼ばれ、メッセージの認証整合性チェックに使用される短い情報です。言い換えれば、メッセージが指定された送信者から送信されたこと(真正性)と、改ざんされていないこと(整合性)を確認するために使用されます。MAC値により、検証者(秘密鍵も保有)はメッセージ内容の変更を検出できます。

用語

メッセージ整合性コードMIC)という用語は、特に通信分野において、メディアアクセス制御アドレスMACアドレス)という用語と区別するために、 MACという用語の代わりに頻繁に使用されます。 [ 1 ]しかし、一部の著者[ 2 ]は、 MICをメッセージダイジェスト(単一のメッセージを一意に、しかし不透明に識別することのみを目的としたもの)を指すために使用しています。メッセージ整合性コード(MIC)という用語は避け、代わりにチェックサムエラー検出コードハッシュキー付きハッシュメッセージ認証コード、または保護チェックサムを使用することが推奨されます。[ 3 ]

定義

非公式には、メッセージ認証コード システムは次の 3 つのアルゴリズムで構成されます。

  • キー生成アルゴリズムは、キー空間からキーを均一にランダムに選択します。
  • MAC 生成アルゴリズムは、キーとメッセージが与えられると、効率的にタグを返します。
  • 検証アルゴリズムは、同じ鍵とタグが与えられた場合、メッセージの真正性を効率的に検証します。つまり、メッセージとタグが改ざんまたは偽造されていない場合はacceptedを返し、そうでない場合はrejectedを返します。

安全なメッセージ認証コードは、既知のメッセージや選択されたメッセージの状況を含め、任意のメッセージ、選択されたメッセージ、またはすべてのメッセージに対して、攻撃者がタグを偽造しようとする試みに抵抗できなければなりません。最悪のケースとして、攻撃者が問題のメッセージ以外のメッセージのタグを知っていると仮定したとしても、鍵を知らずに与えられたメッセージの有効なタグを計算することは計算上不可能でなければなりません。[ 4 ]

正式には、メッセージ認証コードMAC )システムは、次の条件を満たす効率的な[ 5 ]アルゴリズム(GSV )の3つから構成される。

  • G (キージェネレータ) は入力1 nに対してキーkを生成します。ここでnはセキュリティパラメータです。
  • S (署名)は、キーkと入力文字列xのタグtを出力します。
  • V (検証) は、入力 (キーk、文字列x、タグt )に対して承認または拒否された出力を行います。

SV は以下を満たす必要があります。

Pr [ kG (1 n ), V ( k , x , S ( k , x ) ) =受け入れられる] = 1[ 6 ]

MACが偽造不可能なのは、あらゆる効率的な敵対者Aに対して、

Pr [ kG (1 n ), ( x , t ) ← A S ( k , · ) (1 n ), x ∉ Query( A S ( k , · ) , 1 n ), V ( k , x , t ) =受け入れられる] < negl( n ) ,

ここでAS ( k ,·)AがオラクルS(k,·)にアクセスできること示し、Query( AS ( k ,·) ,1n )はAがSに対して行ったクエリの集合(Aはnを知っている)を示す。明らかに、いかなる敵対者もS上の文字列xを直接クエリできないことを要求している。そうでなければ、有効なタグが敵対者によって簡単に取得されてしまうからである。[ 7 ]

安全

MAC関数は暗号ハッシュ関数に類似していますが、セキュリティ要件は異なります。MAC関数が安全であるとみなされるためには、選択メッセージ攻撃に対する存在偽造耐性が必要です。これは、たとえ攻撃者が秘密鍵を持ち、攻撃者が選択したメッセージのMACを生成するオラクルにアクセスできたとしても、攻撃者は実行不可能な量の計算を行わない限り、(オラクルへの問い合わせに使用されていない)他のメッセージのMACを推測できないことを意味します。

MAC はデジタル署名とは異なり、MAC 値の生成と検証は同じ秘密鍵を使用して行われます。つまり、対称暗号化の場合と同様に、メッセージの送信者と受信者は通信を開始する前に同じ鍵で合意する必要があります。同じ理由で、ネットワーク全体で共有されている秘密鍵の場合に特に、MAC は署名が提供する否認不可の特性を提供しません。つまり、MAC を検証できるユーザーは誰でも、他のメッセージの MAC を生成することができます。これとは対照的に、デジタル署名は鍵ペアの秘密鍵を使用して生成され、公開鍵暗号化方式です。[ 5 ]この秘密鍵にはその所有者しかアクセスできないため、デジタル署名は、文書が他でもないその所有者によって署名されたことを証明します。したがって、デジタル署名は否認不可を提供します。ただし、否認不可は、鍵使用情報を MAC 鍵に安全にバインドするシステムによって提供できます。同じ鍵を2人が所持しているが、一方はMAC生成に使用できる鍵のコピーを所持し、もう一方はMAC検証のみを許可するハードウェアセキュリティモジュール内に鍵のコピーを所持している。これは金融業界では一般的に行われている手法である。

MACの主な目的は、秘密鍵を知らない敵対者による偽造を防ぐことですが、特定のシナリオではそれだけでは不十分です。敵対者がMAC鍵を制御できる場合、ハッシュ関数における衝突耐性原像安全性に類似した、より強力な保証が必要になります。MACでは、これらの概念はコミットメント安全性コンテキスト発見安全性として知られています。[ 8 ]

実装

MACアルゴリズムは、暗号ハッシュ関数( HMACの場合)などの他の暗号プリミティブや、ブロック暗号アルゴリズム(OMACCCMGCMPMAC )から構築できます。しかし、 UMAC - VMACPoly1305-AESなど、最も高速なMACアルゴリズムの多くは、ユニバーサルハッシュに基づいて構築されています。[ 9 ]

SipHashのような本質的に鍵を持つハッシュアルゴリズムも定義上はMACであり、ユニバーサルハッシュベースのMACよりもさらに高速になる可能性がある。[ 10 ]

さらに、MACアルゴリズムは、2つ以上の暗号プリミティブを意図的に組み合わせることで、後からそのうちの1つに脆弱性が見つかった場合でも保護を維持することができます。例えば、トランスポート層セキュリティ(TLS)バージョン1.2より前のバージョンでは、入力データは2つに分割され、それぞれ異なるハッシュプリミティブ(SHA-1SHA-2)で処理され、それらの排他的論理和( XOR)が取られてMACが出力されます。

ワンタイムMAC

ユニバーサルハッシュ、特にペアワイズ独立ハッシュ関数は、鍵が最大1回しか使用されない限り、安全なメッセージ認証コードを提供します。これは認証のためのワンタイムパッドと見なすことができます。[ 11 ]

最も単純なペアワイズ独立ハッシュ関数はランダムキー key = ( a , b )によって定義され、メッセージmの MAC タグはtag = ( am + b ) mod pとして計算されます(pは素数です)。

より一般的には、k方向に独立したハッシュ関数では、キーがk回未満しか使用されない限り、k方向に独立したハッシュ関数によって安全なメッセージ認証コードが提供されます。

メッセージ認証コードとデータ発信元認証も量子暗号の枠組みの中で議論されてきました。鍵配布などの他の暗号タスクとは対照的に、量子MACのかなり広範なクラスにおいては、量子リソースは無条件に安全なワンタイムMACに比べて何の利点ももたらさないことが示されています。[ 12 ]

標準

MACアルゴリズムを定義する様々な標準が存在します。これらには以下が含まれます。

  • FIPS PUB 113コンピュータデータ認証[ 13 ]は2002年に撤回されましたが、[ 14 ]DESに基づくアルゴリズムを定義しています。
  • FIPS PUB 198-1鍵付きハッシュメッセージ認証コード(HMAC)[ 15 ]
  • NIST SP800-185 SHA-3派生関数: cSHAKE、KMAC、TupleHash、ParallelHash [ 16 ]
  • ISO/IEC 9797-1ブロック暗号を用いたメカニズム[ 17 ]
  • ISO /IEC 9797-2専用ハッシュ関数を用いたメカニズム[ 18 ]
  • ISO /IEC 9797-3ユニバーサルハッシュ関数を用いたメカニズム[ 19 ]
  • ISO /IEC 29192-6軽量暗号 - メッセージ認証コード[ 20 ]

ISO/IEC 9797-1および-2は、あらゆるブロック暗号またはハッシュ関数、そして様々なパラメータで使用できる汎用モデルとアルゴリズムを定義しています。これらのモデルとパラメータを使用することで、パラメータを指定することにより、より具体的なアルゴリズムを定義することができます。例えば、FIPS PUB 113アルゴリズムは、パディング方式1とブロック暗号アルゴリズムDESを適用したISO/IEC 9797-1 MACアルゴリズム1と機能的に同等です。

MACの使用例

[ 21 ]この例では、メッセージの送信者はメッセージをMACアルゴリズムに通してMACデータタグを生成します。メッセージとMACタグは受信者に送信されます。受信者は、同じ鍵を用いて同じMACアルゴリズムにメッセージ部分を適用し、2番目のMACデータタグを生成します。受信者は、送信時に受信した最初のMACタグと、2番目に生成されたMACタグを比較します。これらが一致すれば、受信者はメッセージが送信中に変更または改ざんされていないと安全に推測できます(データ整合性)。

しかし、受信者がリプレイ攻撃を検知できるようにするには、メッセージ自体に、同じメッセージが一度しか送信できないことを保証するデータ(タイムスタンプ、シーケンス番号、ワンタイムMACの使用など)が含まれている必要があります。そうでなければ、攻撃者はメッセージの内容を理解することなく、このメッセージを記録し、後で再生することで、元の送信者と同じ結果を生み出す可能性があります。

参照

注記

  1. ^ IEEE 情報技術標準 - システム間の通信および情報交換 - ローカルエリアネットワークおよびメトロポリタンエリアネットワーク - 特定要件 - パート11:無線LAN メディアアクセス制御(MAC)および物理層(PHY)仕様 PDF (2007年改訂)。IEEE -SA。2007年6月12日。doi 10.1109 /IEEESTD.2007.373646。ISBN 978-0-7381-5656-9. 2008年10月13日時点のオリジナル(PDF)からアーカイブ。
  2. ^ 「CS 513 システムセキュリティ - ハッシュとメッセージダイジェスト」 www.cs.cornell.edu . 2023年12月20日閲覧
  3. ^ R. Shirey (2007年8月).インターネットセキュリティ用語集 バージョン2.ネットワークワーキンググループ. doi : 10.17487/RFC4949 . RFC 4949 .情報提供。RFC 2828は  廃止されます。
  4. ^最強の敵は、鍵を知らなくても署名アルゴリズムにアクセスできると想定される。しかし、最終的に偽造されたメッセージは、彼女が以前に署名アルゴリズムを照会するために選択したどのメッセージとも異なるものでなければならない。定義134.2の前のPassの議論を参照。
  5. ^ a b理論的には、効率的なアルゴリズムは確率多項式時間内で実行されます。
  6. ^パス、防御率134.1
  7. ^パス、防御率 134.2
  8. ^バウミク、リタム;チャクラボルティ、ビシュワジット。チェ・ウォンソク。ダッタ、アビジット。ゴビンデン、ジェローム。沈耀斌(2024)。「汎用構成へのアプリケーションを使用した MAC のセキュリティのコミット」。レオニードのレイジンにて。ステビラ、ダグラス (編)。暗号学の進歩 – CRYPTO 2024。コンピューターサイエンスの講義ノート。 Vol. 14923. チャム: Springer Nature スイス。 pp.  425–462土井: 10.1007/978-3-031-68385-5_14ISBN 978-3-031-68385-5
  9. ^ 「VMAC: ユニバーサルハッシュを使用したメッセージ認証コード」 CFRGワーキンググループ。 2010年3月16日閲覧
  10. ^ Jean-Philippe Aumasson & Daniel J. Bernstein (2012年9月18日). 「SipHash: 高速なショートインプットPRF」(PDF) .
  11. ^シモンズ、グスタフス(1985). 「認証理論/符号理論」.暗号学の進歩 - CRYPTO 84 議事録. ベルリン: シュプリンガー. pp.  411– 431.
  12. ^ Nikolopoulos, Georgios M.; Fischlin, Marc (2020). 「量子および古典リソースによる情報理論的に安全なデータオリジン認証」 .暗号化. 4 (4): 31. arXiv : 2011.06849 . doi : 10.3390/cryptography4040031 . S2CID 226956062 . 
  13. ^ 「FIPS PUB 113コンピュータデータ認証 。 2011年9月27日時点のオリジナルよりアーカイブ2010年10月10日閲覧。
  14. ^ 「連邦情報処理標準出版物、FIPS番号別リスト、撤回」2010年8月1日時点のオリジナルよりアーカイブ。 2010年10月10日閲覧
  15. ^ 鍵付きハッシュメッセージ認証コード(HMAC)(PDF) . 2023年12月20日閲覧
  16. ^ SHA-3 派生関数nvlpubs.nist.gov
  17. ^ 「ISO/IEC 9797-1:2011」 . ISO . 2023年12月20日閲覧
  18. ^ 「ISO/IEC 9797-2:2011」 . ISO . 2023年12月20日閲覧
  19. ^ 「ISO/IEC 9797-3:2011」 . ISO . 2023年12月20日閲覧
  20. ^ 「ISO/IEC 29192-6:2019」 . ISO . 2023年12月20日閲覧
  21. ^「Mac セキュリティ概要」、Mac® セキュリティバイブル、Wiley Publishing, Inc.、2011年11月1日、pp.  1– 26、doi : 10.1002/9781118257739.ch1ISBN 9781118257739

参考文献

  • Goldreich, Oded (2001), Foundations of Cryptography I: Basic Tools , Cambridge: Cambridge University Press, ISBN 978-0-511-54689-1
  • Goldreich, Oded (2004), Foundations of Cryptography II: Basic Applications (第1版), Cambridge [ua]: Cambridge Univ. Press, ISBN 978-0-521-83084-3
  • Pass, Rafael, A Course in Cryptography (PDF) 、 2015年12月31日閲覧[ 1 ]
  1. ^ 2020年11月12日