※一部、英文及び仏文を自動翻訳した日本語訳を使用しています。
序文
ISO (国際標準化機構) と IEC (国際電気標準会議) は、世界標準化のための専門システムを形成しています。 ISO または IEC のメンバーである国家機関は、技術活動の特定の分野を扱うために、それぞれの組織によって設立された技術委員会を通じて、国際規格の開発に参加しています。 ISO と IEC の技術委員会は、相互に関心のある分野で協力しています。 ISO および IEC と連携して、政府および非政府の他の国際機関もこの作業に参加しています。
この文書の開発に使用された手順と、今後の維持のために意図された手順は、ISO/IEC 指令で説明されています。 1. 特に、さまざまなタイプの文書に必要なさまざまな承認基準に注意する必要があります。この文書は、ISO/IEC 指令の編集規則に従って作成されました。 2 ( www.iso.org/directives or www.iec.ch/members_experts/refdocs を参照)
このドキュメントの要素の一部が特許権の対象となる可能性があることに注意してください。 ISO および IEC は、そのような特許権の一部またはすべてを特定する責任を負わないものとします。文書の作成中に特定された特許権の詳細は、序論および/または受信した特許宣言の ISO リスト ( www.iso.org/patents を参照) または受信した特許宣言の IEC リスト ( patents. iec.ch )。
このドキュメントで使用されている商号は、ユーザーの便宜のために提供された情報であり、保証を構成するものではありません。
規格の自主的な性質の説明、適合性評価に関連する ISO 固有の用語と表現の意味、および技術的貿易障壁 (TBT) における世界貿易機関 (WTO) の原則に対する ISO の遵守に関する情報については、 www を参照してください。 .iso.org/iso/foreword.html . IEC については、 www.iec.ch/understanding-standards を参照してください。
この文書は、合同技術委員会 ISO/IEC JTC 1, 情報技術、SC 27, 情報セキュリティ、サイバーセキュリティおよびプライバシー保護によって作成されました。
この第 3 版は、技術的に改訂された第 2 版 (ISO/IEC 9797-2:2011) を取り消して置き換えるものです。
前作からの主な変更点は以下の通り。
- MAC アルゴリズム 1 および 3 に専用のハッシュ関数 17 を使用することが追加されました。
- MAC アルゴリズム 2 用の専用ハッシュ関数 11, 12, 13 ~ 16, および 17 の使用が追加されました。
- 専用ハッシュ関数 13 ~ 16 の定義のプリミティブである Keccak に基づく MAC アルゴリズム 4 が追加されました。
ISO/IEC 9797 シリーズのすべての部品のリストは、ISO および IEC の Web サイトにあります。
1 スコープ
このドキュメントでは、秘密鍵とハッシュ関数 (またはそのラウンド関数またはスポンジ関数) を使用してmビット MAC を計算する MAC アルゴリズムを指定します。これらのメカニズムは、データが不正に変更されていないことを確認するためのデータ整合性メカニズムとして使用できます。
注完全性サービスを提供するための一般的なフレームワークは、ISO/IEC 10181-6 で指定されています。
2 参考文献
以下のドキュメントは、その内容の一部またはすべてがこのドキュメントの要件を構成するように、テキスト内で参照されています。日付のある参考文献については、引用された版のみが適用されます。日付のない参照については、参照文書の最新版 (修正を含む) が適用されます。
- ISO/IEC 10118-3, IT セキュリティ技術 — ハッシュ関数 — 3: 専用のハッシュ関数
3 用語と定義
このドキュメントでは、次の用語と定義が適用されます。
ISO と IEC は、次のアドレスで標準化に使用する用語データベースを維持しています。
3.1
ブロック
長さL1のビット文字列、つまりラウンド関数への最初の入力の長さ
[出典: ISO/IEC 10118‑3:2018, 3.1]
3.2
エントロピ
閉鎖系における無秩序、ランダム性または変動性の尺度
注記 1確率変数Xのエントロピーは、 Xの観測によって提供される情報量の数学的尺度です。
[出典: ISO/IEC 18031:2011, 3.11]
3.3
入力データ文字列
MAC アルゴリズムへの入力であるビットの文字列
3.4
ハッシュコード
ハッシュ関数の出力であるビットの文字列
[出典: ISO/IEC 10118‑1:2016, 3.3]
3.5
ハッシュ関数
- 与えられた出力に対して、この出力に対応する入力を見つけることは計算上不可能です。
- 与えられた入力に対して、同じ出力にマッピングされる 2 番目の入力を見つけることは計算上不可能です。
注記1:計算の実行不可能性は、特定のセキュリティ要件と環境に依存します。 ISO/IEC 10118-1:2016, 附属書 C を参照してください。
[出典: ISO/IEC 10118‑1:2016, 3.4, 修正 — 注記 1 の「実行可能性」を「実行不可能性」に変更]
3.6
初期値
ハッシュ関数の開始点を定義する際に使用される値
[出典: ISO/IEC 10118‑1:2016, 3.5, 修正 — エントリの注 1 を削除]
3.7
MAC アルゴリズム キー
MAC アルゴリズムの動作を制御するキー
[出典: ISO/IEC 9797‑1:2011, 3.8]
3.8
メッセージ認証コード
マック
MAC アルゴリズムの出力であるビット列
注記 1: MAC は、暗号チェック値と呼ばれることもあります (たとえば、ISO 7498-2 [1]を参照)
[出典: ISO/IEC 9797‑1:2011, 3.9]
3.9
メッセージ認証コード アルゴリズム
MAC アルゴリズム
- 任意のキーと任意の入力文字列に対して、関数を効率的に計算できます。
- 任意の固定キーに対して、キーの事前知識がない場合、入力文字列のセットと対応する関数値の知識が与えられたとしても、新しい入力文字列の関数値を計算することは計算上実行不可能です。ここで、 i番目の値は入力文字列は、最初のi -1 関数値の値を観察した後に選択された可能性があります (整数i > 1 の場合)
注記 1 MAC アルゴリズムは、暗号チェック機能と呼ばれることもある (たとえば、ISO 7498-2 を参照)
注記 2:計算の実行不可能性は、ユーザー固有のセキュリティ要件と環境に依存します。
[出典: ISO/IEC 9797‑1:2011, 3.10 を修正 — 注記 2 の「実行可能性」を「実行不可能性」に変更]
3.10
出力変換
切り捨て操作の前に、MAC アルゴリズムの最後に適用される関数
[出典: ISO/IEC 9797‑1:2011, 3.12]
3.11
パディング
データ文字列に余分なビットを追加する
[出典: ISO/IEC 10118‑1:2016, 3.7]
3.12
ラウンド関数
長さL1とL2の 2 つのバイナリ文字列を、ハッシュ関数の一部として繰り返し使用される長さL2のバイナリ文字列に変換する関数ϕ (..,..)長さLのデータ文字列を結合します。長さL2または初期化値の前の出力で1
注記 1この主題に関する文献には、ラウンド関数と同じまたは類似の意味を持つさまざまな用語が含まれています。圧縮機能と反復機能は、いくつかの例です。
[出典: ISO/IEC 10118‑1:2016, 3.8]
3.13
セキュリティ強度
暗号化アルゴリズムまたはシステムを破るのに必要な作業量に関連付けられ、ビット単位で指定され、セキュリティ強度sビットが必要な操作数が 2 sであることを意味するように指定された数値。
注記3.2, 3.6, および 3.10 で計算上実行不可能であることは、セキュリティ強度が少なくとも 112 ビットであることを意味します。 ISO/IEC 10118-1:2016, 附属書 C を参照してください。
3.14
語
専用ハッシュ関数 1, 2, 3, 4, 8, および 17 で使用される 32 ビットの文字列、または ISO/IEC 10118-3:2018 の専用ハッシュ関数 5, 6, 9, および 10 で使用される 64 ビットの文字列
[出典: ISO/IEC 10118‑3:2018, 3.2, modified — 異なる専用ハッシュ関数に対して特定のビット長、32 ビットまたは 64 ビットを追加]
参考文献
| [1] | ISO 7498-2, 情報処理システム — オープン システム相互接続 — 基本参照モデル — 2: セキュリティ アーキテクチャ |
| [2] | ISO/IEC 646, 情報技術 — 情報交換用の ISO 7 ビット コード化文字セット |
| [3] | ISO/IEC 9797-1, 情報技術 — セキュリティ技術 — メッセージ認証コード (MAC) — 1:ブロック暗号を利用した仕組み |
| [4] | ISO/IEC 10118-1, 情報技術 — セキュリティ技術 — ハッシュ関数 — 1: 一般 |
| [5] | ISO/IEC 10181-6, 情報技術 — オープン システム相互接続 — オープン システムのセキュリティ フレームワーク: 整合性フレームワーク |
| [6] | ISO/IEC 18031, 情報技術 - セキュリティ技術 - ランダム ビット生成 |
| [7] | Bellare M, Canetti R, Krawczyk H メッセージ認証用のキーイング ハッシュ関数。 Advances in Cryptology CRYPTO '96, Lecture Notes in Computer Science Vol. 1109, Koblitz N., ed., Springer-Verlag, 1996. |
| [8] | Bellare M.、Canetti R.、Krawczyk H.、「メッセージ認証のためのハッシュ関数のキーイング」、暗号学の進歩、Crypto'96 議事録、LNCS 1109, Koblitz N.、Ed.、Springer-Verlag, 1996 年、pp. 1– 15 |
| [9] | Bellare M, Canetti R, Krawczyk H, 「Pseudorandom functions revisited: The cascade construction and its 具体的なセキュリティ」 Proc.コンピュータ サイエンスの基礎に関する第 37 回年次シンポジウム、IEEE 、1996 年、514 ~ 523 ページ。 http://www-cse.ucsd.edu/users/mihir 経由の完全版。 |
| [10] | Preneel B., van Oorschot PC, "MDx-MAC and building fast MACs from hash functions," Advances in Cryptology, Proceedings Crypto'95, LNCS 963, Coppersmith D., Ed., Springer-Verlag, 1995, pp. 1– 14 |
| [11] | Kelsey J, Chang J, Perlner R, R.「SHA-3 派生関数: cSHAKE, KMAC, TupleHash, ParallelHash」NIST Special Publication 800-18 2016 年 12 月 http://csrc.nist.gov |
| [12] | Bertoni G, Daemen J, Peeters M, Van Assche G 暗号スポンジ関数。 https://keccak.team/files/CSF-0.1.pdf |
Foreword
ISO (the International Organization for Standardization) and IEC (the International Electrotechnical Commission) form the specialized system for worldwide standardization. National bodies that are members of ISO or IEC participate in the development of International Standards through technical committees established by the respective organization to deal with particular fields of technical activity. ISO and IEC technical committees collaborate in fields of mutual interest. Other international organizations, governmental and non-governmental, in liaison with ISO and IEC, also take part in the work.
The procedures used to develop this document and those intended for its further maintenance are described in the ISO/IEC Directives, 1. In particular, the different approval criteria needed for the different types of document should be noted. This document was drafted in accordance with the editorial rules of the ISO/IEC Directives, 2 (see www.iso.org/directives or www.iec.ch/members_experts/refdocs ).
Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. ISO and IEC shall not be held responsible for identifying any or all such patent rights. Details of any patent rights identified during the development of the document will be in the Introduction and/or on the ISO list of patent declarations received (see www.iso.org/patents ) or the IEC list of patent declarations received (see patents.iec.ch ).
Any trade name used in this document is information given for the convenience of users and does not constitute an endorsement.
For an explanation of the voluntary nature of standards, the meaning of ISO specific terms and expressions related to conformity assessment, as well as information about ISO's adherence to the World Trade Organization (WTO) principles in the Technical Barriers to Trade (TBT) see www.iso.org/iso/foreword.html . In the IEC, see www.iec.ch/understanding-standards .
This document was prepared by Joint Technical Committee ISO/IEC JTC 1, Information technology, SC 27, Information security, cybersecurity and privacy protection.
This third edition cancels and replaces the second edition (ISO/IEC 9797-2:2011), which has been technically revised.
The main changes compared to the previous edition are as follows:
- Using dedicated hash-function 17 for MAC Algorithms 1 and 3 has been added;
- Using dedicated hash-functions 11, 12, 13 to 16, and 17 for MAC Algorithm 2 has been added;
- MAC Algorithm 4 based on Keccak, a primitive in the definition of dedicated hash-functions 13 to 16 has been added.
A list of all parts in the ISO/IEC 9797 series can be found on the ISO and IEC websites.
1 Scope
This document specifies MAC algorithms that use a secret key and a hash-function (or its round-function or sponge function) to calculate an m-bit MAC. These mechanisms can be used as data integrity mechanisms to verify that data has not been altered in an unauthorized manner.
NOTE A general framework for the provision of integrity services is specified in ISO/IEC 10181-6.
2 Normative references
The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.
- ISO/IEC 10118-3, IT Security techniques — Hash-functions — 3: Dedicated hash-functions
3 Terms and definitions
For the purposes of this document, the following terms and definitions apply.
ISO and IEC maintain terminological databases for use in standardization at the following addresses:
3.1
block
bit-string of length L1, i.e. the length of the first input to the round-function
[SOURCE: ISO/IEC 10118‑3:2018, 3.1]
3.2
entropy
measure of the disorder, randomness or variability in a closed system
Note 1 to entry: The entropy of a random variable X is a mathematical measure of the amount of information provided by an observation of X.
[SOURCE: ISO/IEC 18031:2011, 3.11]
3.3
input data string
string of bits which is the input to a MAC algorithm
3.4
hash-code
string of bits which is the output of a hash-function
[SOURCE: ISO/IEC 10118‑1:2016, 3.3]
3.5
hash-function
- for a given output, it is computationally infeasible to find an input which maps to this output;
- for a given input, it is computationally infeasible to find a second input which maps to the same output
Note 1 to entry: Computational infeasibility depends on the specific security requirements and environment. Refer to ISO/IEC 10118-1:2016, Annex C.
[SOURCE: ISO/IEC 10118‑1:2016, 3.4, modified —"feasability" in Note 1 to entry changed to"infeasability".]
3.6
initializing value
value used in defining the starting point of a hash-function
[SOURCE: ISO/IEC 10118‑1:2016, 3.5, modified — Note 1 to entry removed]
3.7
MAC algorithm key
key that controls the operation of a MAC algorithm
[SOURCE: ISO/IEC 9797‑1:2011, 3.8]
3.8
message authentication code
MAC
string of bits which is the output of a MAC algorithm
Note 1 to entry: A MAC is sometimes called a cryptographic check value (see for example ISO 7498-2 [1]).
[SOURCE: ISO/IEC 9797‑1:2011, 3.9]
3.9
message authentication code algorithm
MAC algorithm
- for any key and any input string the function can be computed efficiently;
- for any fixed key, and given no prior knowledge of the key, it is computationally infeasible to compute the function value on any new input string, even given knowledge of the set of input strings and corresponding function values, where the value of the ith input string may have been chosen after observing the value of the first i-1 function values (for integer i > 1)
Note 1 to entry: A MAC algorithm is sometimes called a cryptographic check function (see for example ISO 7498-2).
Note 2 to entry: Computational infeasibility depends on the user's specific security requirements and environment.
[SOURCE: ISO/IEC 9797‑1:2011, 3.10 modified —"feasability" in Note 2 to entry changed to"infeasability".]
3.10
output transformation
function that is applied at the end of the MAC algorithm, before the truncation operation
[SOURCE: ISO/IEC 9797‑1:2011, 3.12]
3.11
padding
appending extra bits to a data string
[SOURCE: ISO/IEC 10118‑1:2016, 3.7]
3.12
round-function
function ϕ (..,..) that transforms two binary strings of lengths L1 and L2 to a binary string of length L2 that is used iteratively as part of a hash-function, where it combines a data string of length L1 with the previous output of length L2 or the initializing value
Note 1 to entry: The literature on this subject contains a variety of terms that have the same or similar meaning as round-function. Compression function and iterative function are some examples.
[SOURCE: ISO/IEC 10118‑1:2016, 3.8]
3.13
security strength
number associated with the amount of work required to break a cryptographic algorithm or system and specified in bits such that security strength s bits implies the required number of operations is 2 s
Note 1 to entry: Computationally infeasible in 3.2, 3.6 and 3.10 implies the security strength is at least 112 bits. Refer to ISO/IEC 10118-1:2016, Annex C.
3.14
word
string of 32 bits used in dedicated hash-functions 1, 2, 3, 4, 8 and 17 or a string of 64 bits used in dedicated hash-functions 5, 6, 9 and 10 of ISO/IEC 10118-3:2018
[SOURCE: ISO/IEC 10118‑3:2018, 3.2, modified — added specific bit lengths, 32 bits or 64 bits, for different dedicated hash-functions.]
Bibliography
| [1] | ISO 7498-2, Information processing systems — Open Systems Interconnection — Basic Reference Model — 2: Security Architecture |
| [2] | ISO/IEC 646, Information technology — ISO 7-bit coded character set for information interchange |
| [3] | ISO/IEC 9797-1, Information technology — Security techniques — Message Authentication Codes (MACs) — 1: Mechanisms using a block cipher |
| [4] | ISO/IEC 10118-1, Information technology — Security techniques — Hash-functions — 1: General |
| [5] | ISO/IEC 10181-6, Information technology — Open Systems Interconnection — Security frameworks for open systems: Integrity framework |
| [6] | ISO/IEC 18031, Information technology — Security techniques — Random bit generation |
| [7] | Bellare M., Canetti R., Krawczyk H., Keying hash functions for message authentication. Advances in Cryptology CRYPTO '96, Lecture Notes in Computer Science Vol. 1109, Koblitz N., ed., Springer-Verlag, 1996. |
| [8] | Bellare M., Canetti R., Krawczyk H., “Keying hash functions for message authentication,” Advances in Cryptology, Proceedings Crypto'96, LNCS 1109, Koblitz N., Ed., Springer-Verlag, 1996, pp. 1–15. |
| [9] | Bellare M., Canetti R., Krawczyk H., “Pseudorandom functions revisited: The cascade construction and its concrete security,” Proc. 37th Annual Symposium on the Foundations of Computer Science, IEEE, 1996, pp. 514–523. Full version via http://www-cse.ucsd.edu/users/mihir . |
| [10] | Preneel B., van Oorschot P.C., “MDx-MAC and building fast MACs from hash functions,” Advances in Cryptology, Proceedings Crypto'95, LNCS 963, Coppersmith D., Ed., Springer-Verlag, 1995, pp. 1–14. |
| [11] | Kelsey J., Chang J., Perlner R., R. “SHA-3 derived functions: cSHAKE, KMAC, TupleHash And ParallelHash” NIST Special Publication 800-185. December 2016. http://csrc.nist.gov |
| [12] | Bertoni G., Daemen J., Peeters M., Van Assche G., Cryptographic sponge functions. https://keccak.team/files/CSF-0.1.pdf |