ISO/IEC 10118-4:1998 情報技術—セキュリティ技術—ハッシュ関数—パート4:モジュラー演算を使用したハッシュ関数 | ページ 2

※一部、英文及び仏文を自動翻訳した日本語訳を使用しています。

序文

ISO (国際標準化機構) と IEC (国際電気標準会議) は、世界標準化のための専門システムを形成しています。 ISO または IEC のメンバーである国家機関は、技術活動の特定の分野を扱うために、それぞれの組織によって設立された技術委員会を通じて、国際規格の開発に参加しています。 ISO と IEC の技術委員会は、相互に関心のある分野で協力しています。 ISO および IEC と連携して、政府および非政府の他の国際機関もこの作業に参加しています。

情報技術の分野では、ISO と IEC は合同技術委員会 ISO/IEC JTC 1 を設立しました。合同技術委員会によって採択された国際規格の草案は、投票のために各国の機関に回覧されます。国際規格として発行するには、投票を行う国の機関の少なくとも 75% による承認が必要です。

国際規格 ISO/IEC 10118-4 は、合同技術委員会 ISO/IEC JTC 1, 情報技術、小委員会 SC27, IT セキュリティ技術によって作成されました。

ISO/IEC 10118 は、情報技術 — セキ​​ュリティ技術 — ハッシュ関数という一般的なタイトルの下に、次の部分で構成されています。

Part 1:全般的
Part 2:n ビット ブロック暗号アルゴリズムを使用したハッシュ関数
Part 3:専用ハッシュ関数
Part 4:剰余演算を使用したハッシュ関数

ISO/IEC 10118 のこの部分の附属書 A, B, および C は、情報提供のみを目的としています。

1 スコープ

ISO/IEC 10118 のこの部分では、剰余演算を利用する 2 つのハッシュ関数を指定しています。衝突耐性があると考えられているこれらのハッシュ関数は、任意だが限られた長さのメッセージを、7.3 で定義されたリダクション関数で使用される素数の長さによって長さが決定されるハッシュ コードに圧縮します。したがって、ハッシュコードは、任意のメカニズム (署名アルゴリズム、識別スキームなど) の入力長に簡単にスケーリングされます。

MASH-1 および MASH-2 (Modular Arithmetic Secure Hash) として知られる、ISO/IEC 10118 のこの部分で指定されているハッシュ関数は、十分な長さのモジュラー演算の実装が既に利用可能な環境に特に適しています。 2 つのハッシュ関数は、ラウンド関数で使用される指数のみが異なります。

2 規範的参照

次の規格には、このテキストでの参照を通じて、ISO/IEC 10118 のこの部分の規定を構成する規定が含まれています。発行の時点で、示された版は有効でした。すべての規格は改訂される可能性があり、ISO/IEC 10118 のこの部分に基づく契約の当事者は、以下に示す規格の最新版を適用する可能性を調査することをお勧めします。 IEC および ISO のメンバーは、現在有効な国際規格の登録簿を維持しています。

  • ISO/IEC 10118-1:1994, 情報技術 — セキ​​ュリティ技術 — ハッシュ関数 — 1: 一般。

3 用語と定義

ISO/IEC 10118 のこの部分の目的のために、次の定義が適用されます。

3.1 ISO/IEC 10118-1 より

  • 耐衝突ハッシュ関数
  • データ文字列 (データ)
  • ハッシュコード
  • ハッシュ関数
  • 初期値
  • パディング。

3.2 ISO/IEC 10118 のこの部分に固有

3.2.1

ブロック

長さL φのビットの文字列。これは 16 の整数倍でなければならない (6.1 節も参照)

例:

ラウンド関数の出力H jの長さ。

3.2.2

ハーフブロック

長さL ϕ/2 のビット列

例:

ブロックH jの長さの半分。

3.2.3

ハッシュ関数識別子

特定のハッシュ関数を識別するバイト

3.2.4

係数

正の整数と 2 つの異なる素数の積であるパラメーター

3.2.5

リダクション機能

長さL ϕのブロックH qに適用され、長さL pのハッシュコードHを生成する関数RED

3.2.6

ラウンド関数

長さ L φ の 2 つのバイナリ文字列を長さL φバイナリ文字列に変換する関数φ( ·,· )

注記 1:これはハッシュ関数の一部として反復的に使用され、長さ L φ の「拡張された」データ ブロックを長さL φ前の出力と結合します。

3.3 規約

3.3.1 ビット順序

ISO/IEC 10118 のこの部分のビット順序は、ISO/IEC 10118-1 の第 3 節で説明されているとおりです。

3.3.2 数値を文字列に変換する

ラウンド関数の計算中に、整数をLビットの文字列に変換する必要があります。これが必要な場合、ビット列は整数の 2 進数表現と等しくなるようにし、文字列の左端のビットが 2 進数表現の最上位ビットに対応するようにします。結果のビット文字列がLビット未満の場合、長さLになるように文字列の左側に適切な数のゼロが埋め込まれます。

3.3.3 文字列を数値に変換する

ラウンド関数の計算中に、ビットの文字列を整数に変換する必要があります。これが必要な場合、整数は、バイナリ文字列と等しいバイナリ表現を持つ数に等しくする必要があります。ここで、文字列の左端のビットは、バイナリ表現の最上位ビットと見なされます。

3.4 ハッシュ関数識別子

識別子は、この標準で指定されている 2 つの MASH ハッシュ関数のそれぞれに対して定義されています。 8.1 節および 8.2 節で指定されたハッシュ関数のハッシュ関数識別子は、それぞれ 41 および 42 (16 進数) です。 43 から 4f (16 進数) までの値の範囲は、ISO/IEC 10118 のこの部分によってハッシュ関数識別子として将来使用するために予約されています。

附属書C

(参考)

参考文献

[1]Dan Boneh, Matthew Franklin:共有 RSA キーの効率的な生成。 Advances in Cryptology — CRYPTO'97 (Burton S. Kaliski Jr, (Ed.)), Lecture Notes in Computer Science 1294, Springer-Verlag, 1997, p.425-439
[2]Clifford Cocks: RSA パラメータの分割知識生成。暗号化とコーディング、コンピューター サイエンスの講義ノート 135, Springer-Verlag, 1997 年、p.89-95
[3]Yair Frankel, Philip D. MacKenzie, Moti Yung: 堅牢で効率的な分散型 RSA キー生成.コンピューティング理論に関する第 30 回年次 ACM シンポジウム (第 30 回 STOC'98) の議事録、ACM, 1998 年、p. 663-67

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.

In the field of information technology, ISO and IEC have established a joint technical committee, ISO/IEC JTC 1. Draft International Standards adopted by the joint technical committee are circulated to national bodies for voting. Publication as an International Standard requires approval by at least 75 % of the national bodies casting a vote.

International Standard ISO/IEC 10118-4 was prepared by Joint Technical Committee ISO/IEC JTC 1, Information technology, Subcommittee SC27, IT Security techniques.

ISO/IEC 10118 consists of the following parts, under the general title Information technology — Security techniques — Hash-functions:

Part 1:General
Part 2:Hash-functions using an n-bit block cipher algorithm
Part 3:Dedicated hash-functions
Part 4:Hash-functions using modular arithmetic

Annexes A, B and C of this part of ISO/IEC 10118 are for information only.

1 Scope

This part of ISO/IEC 10118 specifies two hash-functions which make use of modular arithmetic. These hash-functions, which are believed to be collision-resistant, compress messages of arbitrary but limited length to a hash-code whose length is determined by the length of the prime number used in the reduction-function defined in 7.3. Thus, the hash-code is easily scaled to the input length of any mechanism (e.g., signature algorithm, identification scheme).

The hash-functions specified in this part of ISO/IEC 10118, known as MASH-1 and MASH-2 (Modular Arithmetic Secure Hash) are particularly suitable for environments in which implementations of modular arithmetic of sufficient length are already available. The two hash-functions differ only in the exponent used in the round-function.

2 Normative reference

The following standard contains provisions which, through reference in this text, constitute provisions of this part of ISO/IEC 10118. At the time of publication, the edition indicated was valid. All standards are subject to revision and parties to agreements based on this part of ISO/IEC 10118 are encouraged to investigate the possibility of applying the most recent edition of the standard indicated below. Members of IEC and ISO maintain registers of currently valid International Standards.

  • ISO/IEC 10118-1: 1994, Information technology — Security techniques — Hash-functions — 1: General.

3 Terms and definitions

For the purposes of this part of ISO/IEC 10118, the following definitions apply.

3.1 From ISO/IEC 10118-1

  • collision-resistant hash-function
  • data string (data)
  • hash-code
  • hash-function
  • initializing value
  • padding.

3.2 Unique to this part of ISO/IEC 10118

3.2.1

block

a string of bits of length Lϕ , which shall be an integer multiple of 16 (see also clause 6.1)

EXAMPLE:

The length of the output Hj of the round-function.

3.2.2

half-block

a string of bits of length Lϕ/2

EXAMPLE:

Half the length of the block Hj .

3.2.3

hash-function identifier

a byte identifying a specific hash-function

3.2.4

modulus

a parameter which is a positive integer and a product of two distinct prime numbers

3.2.5

reduction-function

a function RED that is applied to the block Hq of length Lϕ to generate the hash-code H of length Lp

3.2.6

round-function

a function ϕ(·,·) that transforms two binary strings of length Lϕ to a binary string of length Lϕ

Note 1 to entry: It is used iteratively as part of a hash-function, where it combines an 'expanded' data block of length Lϕ with the previous output of length Lϕ .

3.3 Conventions

3.3.1 Bit ordering

Bit ordering in this part of ISO/IEC 10118 is as described in clause 3 of ISO/IEC 10118-1.

3.3.2 Converting a number to a string

During computation of the round-function, integers need to be converted to strings of L bits. Where this is required, the string of bits shall be made equal to the binary representation of the integer, with the left-most bit of the string corresponding to the most significant bit of the binary representation. If the resulting string of bits has less than L bits, then the string shall be left-padded with the appropriate number of zeros to make it of length L.

3.3.3 Converting a string to a number

During computation of the round-function, strings of bits need to be converted into integers. Where this is required, the integer shall be made equal to the number having binary representation equal to the binary string, where the left-most bit of the string is considered as the most significant bit of the binary representation.

3.4 Hash-function identifier

Identifiers are defined for each of the two MASH hash-functions specified in this standard. The hash-function identifiers for the hash-functions specified in clause 8.1 and 8.2 are equal to 41 and 42 (hexadecimal) respectively. The range of values from 43 to 4f (hexadecimal) are reserved for future use as hash-function identifiers by this part of ISO/IEC 10118.

Annex C

(informative)

Bibliography

[1]Dan Boneh, Matthew Franklin: Efficient Generation of Shared RSA Keys. Advances in Cryptology — CRYPTO'97 (Burton S. Kaliski Jr, (Ed.)), Lecture Notes in Computer Science 1294, Springer-Verlag, 1997, p.425-439
[2]Clifford Cocks: Split knowledge generation of RSA parameters. Cryptography and Coding, Lecture Notes in Computer Science 1355 (M. Darell (Ed.)), Springer-Verlag, 1997, p.89-95
[3]Yair Frankel, Philip D. MacKenzie, Moti Yung: Robust efficient distributed RSA-key generation. Proceeedings of the 30th Annual ACM Symposium on the Theory of Computing (30th STOC'98), ACM, 1998, p. 663-672.