Information technology — Security techniques — Hash-functions — Part 2: Hash-functions using an n-bit block cipher

ISO/IEC 10118-2:2010 specifies hash-functions which make use of an n-bit block cipher algorithm. They are therefore suitable for an environment in which such an algorithm is already implemented. Block ciphers are specified in ISO/IEC 18033-3. Four hash-functions are specified. The first provides hash-codes of length less than or equal to n, where n is the block-length of the algorithm used. The second provides hash-codes of length less than or equal to 2n; the third provides hash-codes of length equal to 2n; and the fourth provides hash-codes of length 3n. All four of the hash-functions specified in ISO/IEC 10118-2:2010 conform to the general model specified in ISO/IEC 10118-1.

Technologies de l'information — Techniques de sécurité — Fonctions de brouillage — Partie 2: Fonctions de brouillage utilisant un chiffrement par blocs de n bits

General Information

Status
Published
Publication Date
10-Oct-2010
Current Stage
9093 - International Standard confirmed
Start Date
15-Nov-2021
Completion Date
14-Feb-2026

Relations

Effective Date
16-Oct-2025
Effective Date
15-Apr-2008

Overview

ISO/IEC 10118-2:2010 - "Information technology - Security techniques - Hash‑functions - Part 2: Hash‑functions using an n‑bit block cipher" specifies four standardized hash‑function constructions that are built on an underlying n‑bit block cipher. The part is intended for environments where a block cipher (for example AES or other ciphers listed in ISO/IEC 18033‑3) is already implemented. All four constructions conform to the general hash model of ISO/IEC 10118‑1.

Key topics and technical requirements

  • Block‑cipher based hashing: Hash functions are constructed from an n‑bit block cipher and a round function; this allows reuse of existing cipher implementations.
  • Four hash variants:
    • Hash‑function 1: produces hash‑codes of length ≤ n (where n is block length).
    • Hash‑function 2: produces hash‑codes of length ≤ 2n.
    • Hash‑function 3: produces hash‑codes of length = 2n.
    • Hash‑function 4: produces hash‑codes of length = 3n.
  • Conformance to general model: Each function specifies parameters (output length L, intermediate lengths), padding, IV, round function φ, and output transformation T as required by ISO/IEC 10118‑1.
  • Round function and key derivation: For example, Hash‑function 1 uses a round step of the form φ(Dj, Hj‑1) = E_{Kj}(Dj) ⊕ Dj with Kj = u(Hj‑1), where u maps an n‑bit block to a block‑cipher key. (Selection of u and padding method is left to users.)
  • Padding and IV: Padding method and initializing value (IV) are out of scope of this part and must be chosen so that distinct inputs yield distinct padded outputs; the IV is agreed and fixed by users.
  • Security notes: The standard records that Hash‑function 2 has known theoretical attacks (notably collision and preimage concerns for n=128) - it is retained primarily for backward compatibility.

Practical applications

  • Reusing block‑cipher implementations to derive hash‑codes in systems where implementing a dedicated hash primitive is not desirable or possible.
  • Embedded systems or constrained environments that already include AES or other ISO/IEC 18033‑3 ciphers.
  • Legacy interoperability where specific block‑cipher‑based hashes are required.
  • Situations requiring different output lengths tied to cipher block size (≤ n, ≤ 2n, =2n, 3n).

Who should use this standard

  • Cryptographic engineers and security architects designing hash services around existing block ciphers.
  • Software and hardware vendors implementing compliant hashing modules.
  • Evaluation and certification labs verifying conformance to ISO cryptographic standards.
  • Standards authors and integrators ensuring interoperability with ISO/IEC 10118 family.

Related standards and resources

  • ISO/IEC 10118‑1 - General model for hash‑functions (normative).
  • ISO/IEC 18033‑3 - Block cipher specifications recommended for use as the underlying primitive.
  • Annexes in ISO/IEC 10118‑2:2010 include AES usage examples, worked examples, and an ASN.1 module.

Keywords: ISO/IEC 10118-2:2010, hash-functions, n-bit block cipher, AES, ISO/IEC 18033-3, hash-code, round function, padding, IV, block-cipher based hashing.

Buy Documents

Standard

ISO/IEC 10118-2:2010 - Information technology -- Security techniques -- Hash-functions

English language (29 pages)
sale 15% off
Preview
sale 15% off
Preview

Get Certified

Connect with accredited certification bodies for this standard

BSI Group

BSI (British Standards Institution) is the business standards company that helps organizations make excellence a habit.

UKAS United Kingdom Verified

Bureau Veritas

Bureau Veritas is a world leader in laboratory testing, inspection and certification services.

COFRAC France Verified

DNV

DNV is an independent assurance and risk management provider.

NA Norway Verified

Sponsored listings

Frequently Asked Questions

ISO/IEC 10118-2:2010 is a standard published by the International Organization for Standardization (ISO). Its full title is "Information technology — Security techniques — Hash-functions — Part 2: Hash-functions using an n-bit block cipher". This standard covers: ISO/IEC 10118-2:2010 specifies hash-functions which make use of an n-bit block cipher algorithm. They are therefore suitable for an environment in which such an algorithm is already implemented. Block ciphers are specified in ISO/IEC 18033-3. Four hash-functions are specified. The first provides hash-codes of length less than or equal to n, where n is the block-length of the algorithm used. The second provides hash-codes of length less than or equal to 2n; the third provides hash-codes of length equal to 2n; and the fourth provides hash-codes of length 3n. All four of the hash-functions specified in ISO/IEC 10118-2:2010 conform to the general model specified in ISO/IEC 10118-1.

ISO/IEC 10118-2:2010 specifies hash-functions which make use of an n-bit block cipher algorithm. They are therefore suitable for an environment in which such an algorithm is already implemented. Block ciphers are specified in ISO/IEC 18033-3. Four hash-functions are specified. The first provides hash-codes of length less than or equal to n, where n is the block-length of the algorithm used. The second provides hash-codes of length less than or equal to 2n; the third provides hash-codes of length equal to 2n; and the fourth provides hash-codes of length 3n. All four of the hash-functions specified in ISO/IEC 10118-2:2010 conform to the general model specified in ISO/IEC 10118-1.

ISO/IEC 10118-2:2010 is classified under the following ICS (International Classification for Standards) categories: 35.030 - IT Security; 35.040 - Information coding. The ICS classification helps identify the subject area and facilitates finding related standards.

ISO/IEC 10118-2:2010 has the following relationships with other standards: It is inter standard links to ISO/IEC 10118-2:2000/Cor 1:2006, ISO/IEC 10118-2:2000. Understanding these relationships helps ensure you are using the most current and applicable version of the standard.

ISO/IEC 10118-2:2010 is available in PDF format for immediate download after purchase. The document can be added to your cart and obtained through the secure checkout process. Digital delivery ensures instant access to the complete standard document.

Standards Content (Sample)


INTERNATIONAL ISO/IEC
STANDARD 10118-2
Third edition
2010-10-15
Information technology — Security
techniques — Hash-functions —
Part 2:
Hash-functions using an n-bit block
cipher
Technologies de l'information — Techniques de sécurité — Fonctions
de brouillage —
Partie 2: Fonctions de brouillage utilisant un chiffrement par blocs de
n bits
Reference number
©
ISO/IEC 2010
PDF disclaimer
This PDF file may contain embedded typefaces. In accordance with Adobe's licensing policy, this file may be printed or viewed but
shall not be edited unless the typefaces which are embedded are licensed to and installed on the computer performing the editing. In
downloading this file, parties accept therein the responsibility of not infringing Adobe's licensing policy. The ISO Central Secretariat
accepts no liability in this area.
Adobe is a trademark of Adobe Systems Incorporated.
Details of the software products used to create this PDF file can be found in the General Info relative to the file; the PDF-creation
parameters were optimized for printing. Every care has been taken to ensure that the file is suitable for use by ISO member bodies. In
the unlikely event that a problem relating to it is found, please inform the Central Secretariat at the address given below.

©  ISO/IEC 2010
All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized in any form or by any means,
electronic or mechanical, including photocopying and microfilm, without permission in writing from either ISO at the address below or
ISO's member body in the country of the requester.
ISO copyright office
Case postale 56 • CH-1211 Geneva 20
Tel. + 41 22 749 01 11
Fax + 41 22 749 09 47
E-mail copyright@iso.org
Web www.iso.org
Published in Switzerland
ii © ISO/IEC 2010 – All rights reserved

Contents Page
Foreword .v
Introduction.vi
1 Scope.1
2 Normative references.1
3 Terms and definitions .1
4 Symbols and abbreviated terms .2
5 Use of the general model.2
6 Hash-function 1 .2
6.1 General.2
6.2 Parameter selection.2
6.3 Padding method .3
6.4 Initializing value.3
6.5 Round function .3
6.6 Output transformation .4
7 Hash-function 2 .4
7.1 General.4
7.2 Parameter selection.4
7.3 Padding method .4
7.4 Initializing value.4
7.5 Round function .4
7.6 Output transformation .5
8 Hash-function 3 .6
8.1 General.6
8.2 Parameter selection.6
8.3 Padding method .6
8.4 Initializing value.6
8.5 Round function .6
8.6 Output transformation .9
9 Hash-function 4 .9
9.1 General.9
9.2 Parameter selection.9
9.3 Padding method .9
9.4 Initializing value.9
9.5 Round function .9
9.6 Output transformation .11
Annex A (informative) Use of AES.13
A.1 General.13
A.2 Hash-function 1 .13
A.3 Hash-function 2 .13
A.4 Hash-function 3 .13
A.5 Hash-function 4 .14
Annex B (informative) Examples .15
B.1 General.15
B.2 Hash-function 1 .15
B.3 Hash-function 2 .16
B.4 Hash-function 3 .17
© ISO/IEC 2010 – All rights reserved iii

B.5 Hash-function 4.22
Annex C (normative) ASN.1 Module.27
Bibliography .29

iv © ISO/IEC 2010 – All rights reserved

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.
International Standards are drafted in accordance with the rules given in the ISO/IEC Directives, Part 2.
The main task of the joint technical committee is to prepare International Standards. 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.
ISO/IEC 10118-2 was prepared by Joint Technical Committee ISO/IEC JTC 1, Information technology,
Subcommittee SC 27, IT Security techniques.
This third edition cancels and replaces the second edition (ISO/IEC 10118-2:2000), which has been
technically revised. It also incorporates the Technical Corrigendum ISO/IEC 10118-2:2000/Cor.2:2007. The
major change is that in the second edition the underlying block cipher used in the hash-functions was
assumed to be Data Encryption Algorithm (DEA), whereas in the third edition it is assumed to be more secure
block ciphers like Advanced Encryption Standard (AES) and other ciphers included in ISO/IEC 18033-3.
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
⎯ Part 3: Dedicated hash-functions
⎯ Part 4: Hash-functions using modular arithmetic

© ISO/IEC 2010 – All rights reserved v

Introduction
The International Organization for Standardization (ISO) and International Electrotechnical Commission (IEC)
draw attention to the fact that it is claimed that compliance with this document may involve the use of patents.
The ISO and IEC take no position concerning the evidence, validity and scope of these patent rights.
The holders of these patent rights have assured the ISO and IEC that they are willing to negotiate licences
under reasonable and non-discriminatory terms and conditions with applicants throughout the world. In this
respect, the statements of the holders of these patent rights are registered with the ISO and IEC. Information
may be obtained from the ISO/IEC JTC 1 Patent database:
http://www.iso.org/patents
Attention is drawn to the possibility that some of the elements of this document may be the subject of patent
rights other than those identified above. ISO and IEC shall not be held responsible for identifying any or all
such patent rights.
vi © ISO/IEC 2010 – All rights reserved

INTERNATIONAL STANDARD ISO/IEC 10118-2:2010(E)

Information technology — Security techniques —
Hash-functions —
Part 2:
Hash-functions using an n-bit block cipher
1 Scope
This part of ISO/IEC 10118 specifies hash-functions which make use of an n-bit block cipher algorithm. They
are therefore suitable for an environment in which such an algorithm is already implemented.
Four hash-functions are specified. The first provides hash-codes of length less than or equal to n, where n is
the block-length of the underlying block cipher algorithm used. The second provides hash-codes of length less
than or equal to 2n; the third provides hash-codes of length equal to 2n; and the fourth provides hash-codes of
length 3n. All four of the hash-functions specified in this part of ISO/IEC 10118 conform to the general model
specified in ISO/IEC 10118-1.
2 Normative references
The following referenced documents are indispensable for the application 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-1:2000, Information technology — Security techniques — Hash-functions — Part 1: General
3 Terms and definitions
For the purposes of this document, the terms and definitions given in ISO/IEC 10118-1 and the following apply.
3.1
block
string of bits of defined length
3.2
n-bit block cipher
block cipher with the property that plaintext blocks and ciphertext blocks are n bits in length
[ISO/IEC 18033-3:2005]
3.3
round function
function φ (.,.) that transforms two binary strings of lengths L and L to a binary string of length L
1 2 2
NOTE The round function is used iteratively.
© ISO/IEC 2010 – All rights reserved 1

4 Symbols and abbreviated terms
For the purposes of this document, the symbols and abbreviated terms given in ISO/IEC 10118-1 and the
following apply.
L
B When n is even, the string composed of the n/2 leftmost bits of the block B.
When n is odd, the string composed of the (n+1)/2 leftmost bits of the block B
R
B When n is even, the string composed of the n/2 rightmost bits of the block B.
When n is odd, the string composed of the (n-1)/2 rightmost bits of the block B
B When B is a sequence of blocks and each block has m bits, B (x≥0)
x
x
represents the x-th block of B.
E (P) n-bit block cipher algorithm taking the key K and plaintext P as input. It is
K
recommended that the block cipher algorithms specified in ISO/IEC 18033-3
are used in the hash-functions.
K Key for the algorithm E
u or u’ Function which takes as input an n-bit block and gives as output a key for the
algorithm E.
5 Use of the general model
The hash-functions specified in the next four clauses provide hash-codes H of length L . The hash-functions
H
conform to the general model specified in ISO/IEC 10118-1. For each of the four hash-functions that follow, it
is therefore only necessary to specify
⎯ the parameters L , L , L ,
1 2 H
⎯ the padding method,
⎯ the initializing value IV,
⎯ the round function φ,
⎯ the output transformation T.
6 Hash-function 1
6.1 General
The hash-function specified in this clause provides hash-codes of length L and L where L and L are equal
1 2 1 2
to n. Some specific definitions that are required to specify hash-function 1 follow.
NOTE This hash-function is described in [5].
6.2 Parameter selection
The parameters L , L and L for the hash-function specified in this clause shall satisfy L = L = n, and L is
1 2 H 1 2 H
less than or equal to n.
2 © ISO/IEC 2010 – All rights reserved

6.3 Padding method
The selection of the padding method for use with this hash-function is beyond the scope of this part of
ISO/IEC 10118. As minimum requirements, the padding method shall output a set of q blocks D , D , ., D
1 2 q
where each block D is of length n and shall be such that each possible input produces distinct outputs.
j
Examples of padding methods are presented in ISO/IEC 10118-1:2000, Annex A.
6.4 Initializing value
The selection of the IV for use with this hash-function is beyond the scope of this part of ISO/IEC 10118. The
IV shall be a bit-string of length n and the value of the IV shall be agreed upon and fixed by users of the
hash-function.
6.5 Round function
Transformation u:
Define a mapping u from the ciphertext space.
The round function φ combines a padded data block D (of L = n-bits) with H , the previous output of the
j 1 j-1
round function (of L = n bits), to yield H. As part of the round function it is necessary to choose a function u,
2 j
which transforms an n-bit block into a key for use with the block cipher algorithm E. The selection of the
function u for use with this hash-function is outside the scope of this part of ISO/IEC 10118.
The round function itself is defined as follows:
Set H equal to IV
φ (D , H ) = E (D ) ⊕ D
j j-1 Kj j j
where K = u (H ). The round function is shown in Figure 1.
j j-1
D
j
H
j-1
E
u
K
j
H
j
Figure 1 — Round function of hash-function 1
© ISO/IEC 2010 – All rights reserved 3

6.6 Output transformation
The output transformation T is simply truncation, i.e., the hash-code H is derived by taking the leftmost L bits
H
of the final output block H .
q
7 Hash-function 2
7.1 General
The hash-function specified in this clause provides hash-codes of length L and L where L is equal to n and
1 2 1
L is equal to 2n. Some specific definitions that are required to specify hash-function 2 follow.
NOTE 1 This hash-function is described in [4].
NOTE 2 In [6], theoretical attacks on hash-function 2 have been reported: a collision attack, with n = 128, which has
124.5 n
complexity 2 , and a preimage attack requiring complexity and space about 2 .
The only reason to keep hash-function 2 in this part of ISO/IEC 10118 is for compatibility with the existing
applications.
7.2 Parameter selection
The parameters L , L and L for the hash-function specified in this clause shall satisfy L = n, L = 2n, and L
1 2 H 1 2 H
is less than or equal to 2n.
7.3 Padding method
The selection of the padding method for use with this hash-function is beyond the scope of this part of
ISO/IEC 10118. As minimum requirements, the padding method shall output a set of q blocks D , D , ., D
1 2 q
where each block D is of length n and shall be such that each possible input produces distinct outputs.
j
Examples of padding methods are presented in ISO/IEC 10118-1:2000, Annex A.
7.4 Initializing value
The selection of the IV (of length 2n) for use with this hash-function is beyond the scope of this part of
ISO/IEC 10118. The IV shall be a bit-string of length 2n and the value of the IV shall be agreed upon and fixed
L R
by users of the hash-function. However, the IV shall be selected such that u(IV ) and u’ (IV ) are different.
7.5 Round function
The round function φ combines a padded data block D (of L = n bits) with H , the previous output of the
j 1 j-1
round function (of L = 2n bits), to yield H. As part of the round function it is necessary to choose two
2 j
transformations u and u’. These transformations are used to transform an output block into two suitable L bit
K
keys for the algorithm E. The specification of u and u’ is beyond the scope of this part of ISO/IEC 10118.
However, it should be taken into consideration that the selection of u and u’ is important for the security of the
hash-function.
L R L R
Set H and H equal to IV and IV respectively. The round function is defined in the following way, for j = 1
0 0
to q:
H = φ (D , H )
j j j-1
L R
X = u(H ) and Y = u’ (H )
j-1 j-1
B = E (D ) ⊕ D , and B’ = E (D ) ⊕ D
j X j j j Y j j
4 © ISO/IEC 2010 – All rights reserved

L L R R L R
H = B || B’ and H =B’ || B
j j j j j j
L R
The round function is shown in Figure 2 where X and Y are replaced with K and K respectively.
j j
7.6 Output transformation
L
If L is even, the hash-code is the concatenation of the L /2 leftmost bits of H and the L /2 leftmost bits of
H H q H
R L
H . If L is odd, the hash-code is the concatenation of the (L +1)/2 leftmost bits of H and the (L -1)/2
q H H q H
R
leftmost bits of H .
q
H
j-1 D
j
L R
H       H
j-1 j-1
E E R
L R
L
K
j
K H
H j j-1
j-1
u′
u
L R
L R
B       B
j j B ′     B ′
j j
L R
L R
B      B ′
j j
B ′      B
j j
L R
H           H
j j
H
j
Figure 2 — Round function of hash-function 2
© ISO/IEC 2010 – All rights reserved 5

8 Hash-function 3
8.1 General
The hash-function specified in this clause provides hash-codes of length L , where L is equal to 2n for even
H H
values of n. Some specific definitions that are required to specify hash-function 3 follow.
NOTE This hash-function is described in [1].
8.2 Parameter selection
The parameters L , L and L for the hash-function specified in this clause shall satisfy L = 4n, L = 8n, and
1 2 H 1 2
L = 2n.
H
8.3 Padding method
The padding method for use with this hash-function shall be that specified in ISO/IEC 10118-1:2000, A.3, such
that r = n.
8.4 Initializing value
The selection of the IV for use with this hash-function is beyond the scope of this part of ISO/IEC 10118. The
IV shall be a bit-string of length 8n and the value of the IV shall be agreed upon and fixed by users of the
hash-function.
8.5 Round function
Transformation u:
Define eight mappings u , u ,…, u from the ciphertext space to the key space, such that:
1 2 8
u(C) ≠ u (C), for all i, j from the set {1,2,…, 8}, j ≠ i, and for all values of C
i j
This can be achieved by fixing specific key bits: e.g., One can fix three key bits to the values 000, 001, ., 111.
Additional conditions might be imposed upon the mappings u, for example, to avoid the problems related to
i
weak keys or complementation properties of the block cipher. Let u = u (X ).
j,i j j,i
Function f :
i
Define the eight functions f as follows:
i
f(X,Y) = E (Y) ⊕ Y, 1 ≤ i ≤ 8.
i ui(X)
Linear mapping β:
Define the linear mapping β that takes as input a 2n-bit string X = x ||x ||x ||x and maps it to a 2n-bit string
0 1 2 3
Y = y ||y ||y ||y as follows:
0 1 2 3
y := x ⊕ x
0 0 3
y := x ⊕ x ⊕ x
1 0 1 3
y := x ⊕ x
2 1 2
y := x ⊕ x
3 2 3
Here x and y are n/2-bit strings.
i j
6 © ISO/IEC 2010 – All rights reserved

φ
The round function has eight parallel encryptions, and eight n-bit chaining variables H , H ,…, H .
j,1 j,2 j,8
In every iteration, four n-bit data blocks, D , D , D , D (of length L = 4n bits) are combined from the
j,1 j,2 j,3 j,4 1
previous output of the round function, H , H ,…, H (of length L = 8n bits) to yield H , H ,…, H
j-1,1 j-1,2 j-1,8 2 j,1 j,2 j,8
(of length L = 8n bits).
The round function is based on a linear mapping γ , that takes as input 12 n-bit strings I , I ,…, I and maps
1 1 2 12
them to eight n-bit strings X , X ,…, X and to eight n-bit strings Y , Y ,…, Y . The mapping uses eight 2n-bit
1 2 8 1 2 8
auxiliary strings R , R , M , M ,., M . The mapping γ is defined by the following steps:
0 1 0 1 5 1
i) Set H ,., H in the way that H ||.||H is equal to IV.
0,1 0,8 0,1 0,8
L R
ii) for i = 0 to 5 do { M := I ; M := I ;}
i 2i+1 i 2i+2
R := 0 ; R := 0 ;
0 1
iii) for i = 0 to 5 do
...

Questions, Comments and Discussion

Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.

Loading comments...