Next Article in Journal
Designing Secure Heterogeneous Multicore Systems from Untrusted Components
Previous Article in Journal
ReSOLV: Applying Cryptocurrency Blockchain Methods to Enable Global Cross-Platform Software License Validation
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Sequential Hashing with Minimum Padding

Faculty of Engineering, University of Fukui, Fukui 910-8507, Japan
Cryptography 2018, 2(2), 11; https://doi.org/10.3390/cryptography2020011
Submission received: 10 May 2018 / Revised: 5 June 2018 / Accepted: 7 June 2018 / Published: 10 June 2018

Abstract

:
This article presents a sequential domain extension scheme with minimum padding for hashing using a compression function. The proposed domain extension scheme is free from the length extension property. The collision resistance of a hash function using the proposed domain extension is shown to be reduced to the collision resistance and the everywhere preimage resistance of the underlying compression function in the standard model, where the compression function is assumed to be chosen at random from a function family in some efficient way. Its indifferentiability from a random oracle up to the birthday bound is also shown on the assumption that the underlying compression function is a fixed-input-length random oracle or the Davies-Meyer mode of a block cipher chosen uniformly at random. The proposed domain extension is also applied to the sponge construction and the resultant hash function is shown to be indifferentiable from a random oracle up to the birthday bound in the ideal permutation model. The proposed domain extension scheme is expected to be useful for processing short messages.

1. Introduction

1.1. Background

A cryptographic hash function takes as input a sequence of arbitrary length and produces as output a sequence of fixed length. It usually consists of a primitive and a domain extension scheme. A primitive is a compression function or a permutation, which takes a fixed-length input and produces a fixed-length output. A domain extension scheme specifies how to process an input sequence with arbitrary length using a primitive with fixed input length.
The standardized hash functions SHA-2 [1] use dedicated compression functions and a domain extension scheme due to Merkle [2] and Damgård [3]. The domain extension scheme is called strengthened Merkle-Damgård (SMD). It is a sequential iteration of a compression function and its padding algorithm appends the binary representation of the length of an input message, which is called MD strengthening.
A positive point of SMD is its preservation of collision resistance. Namely, a hash function using SMD satisfies collision resistance if its underlying compression function satisfies it. On the other hand, a negative point of SMD is its length extension property. Due to this property, the MAC function HMAC [4] invokes the underlying hash function twice. It causes inefficiency for short messages. The other negative point is that message blocks after padding may include a message block consisting only of a padding sequence, which needs an additional call to the compression function.
A domain extension scheme with minimum padding and free from the length extension property seems useful especially for processing short messages. Informally, we say that padding is minimum if the produced message blocks include no message block only with the padding sequence for any non-empty input message.

1.2. Our Contribution

This article first presents a sequential domain extension scheme with minimum padding for hashing using a compression function. The padding function of the domain extension is not injective. It extends the MDP domain extension [5] and uses two distinct permutations for domain separation. The permutations also prevent the length extension property. The permutations need not be cryptographic transformations. A typical candidate for them is bitwise XOR with a nonzero constant.
Then, the security properties of a hash function using the proposed domain extension are analyzed. The properties considered are the collision resistance and the indifferentiability.
The proposed domain extension does not preserve the collision resistance. However, it is shown that the collision resistance of a hash function using the domain extension is reduced to the collision resistance and the everywhere preimage resistance of the underlying compression function.
It is also shown that a hash function using the domain extension is indifferentiable from a variable-input-length random oracle (VIL RO) up to the birthday bound if the underlying compression function is a fixed-input-length random oracle (FIL RO) or the Davies-Meyer mode of a block cipher chosen uniformly at random.
The proposed domain extension scheme can also be applied to the sponge construction in a straightforward way. It is shown that the resultant hash function is indifferentiable from a VIL RO up to the birthday bound if the underlying permutation is chosen uniformly at random.

1.3. Related Work

The presented domain extension of hashing was first considered for a pseudorandom function using a compression function [6]. It is shown in [6] that keying via IV to the domain extension presented in the current article produces a pseudorandom function if the underlying compression function is a pseudorandom function against related-key attacks with respect to the permutations used in the domain extension.
There are many proposals for domain extension of hashing. On the other hand, little attention has been paid to padding.
The most related work was done by Bagheri et al. [7]. They proposed a generic scheme to construct an iterated hash function which requires neither a fixed IV nor the MD strengthening. Their scheme uses three distinct compression functions to get prefix-free and suffix-free property. It assumes injective padding function. They also showed that their hash function is indifferentiable from a VIL RO if the underlying compression functions are FIL ROs.
Nandi [8] showed that the suffix-free property of padding is necessary and sufficient for the plain MD domain extension to preserve the collision resistance. He also presented a suffix-free padding scheme which works for any input message M of arbitrary length. It appends O ( log | M | ) bits to M. The padding scheme for SHA-2, which is based on Merkle’s [2], also appends only O ( log | M | ) bits. However, it works only for input messages of bounded length.
Coron et al. [9] formalized the indifferentiability notion for hash functions in the framework by Maurer et al. [10]. They also showed the indifferentiability of the following domain extension schemes: prefix-free plain MD, plain MD with output truncation (chopMD), NMAC construction, and HMAC construction, where HMAC construction is rather different from the MAC function HMAC [4]. They assumed injective padding. Their work was followed by Chang et al. [11,12].
Bellare and Ristenpart introduced the notion of multi-property preservation for domain extension [13]. They also presented the EMD (enveloped MD) domain extension and showed that it preserves collision resistance, pseudorandom function, and indifferentiability assuming injective padding.
Merkle-Damgård with permutation (MDP) [5] is a variant of plain MD preventing its length-extension property. A typical example of MDP was presented by Kelsey in [14]. It uses bitwise XOR with a nonzero constant for the permutation.
Minimum padding is already common among MAC functions based on a block cipher such as CMAC [15] and PMAC [16]. The idea to finalize the iteration with multiple non-cryptographic transformations for domain separation is used in the secure CBC-MAC variants GCBC1 and GCBC2 [17].
Sarkar [18] presented a domain extension scheme preserving the collision resistance based on directed acyclic graphs. Bertoni et al. [19] formulated sufficient conditions for domain extension schemes covering both tree and sequential structures to be indifferentiable up to the birthday bound. Based on the sufficient conditions, a coding scheme for tree domain extension schemes is specified in [20], which also covers sequential domain extension schemes.
The sponge construction [21] is a scheme to construct a hash function using a function with its input length equal to its output length, which is typically a permutation. It was invented for the SHA-3 hash function [22]. It is adopted by lightweight hash functions such as PHOTON [23] and SPONGENT [24]. It is also extended to design cryptographic schemes such as authenticated encryption [25].

1.4. Organization

Section 2 gives notations used in this article and defines some security properties required of cryptographic hash functions. The proposed scheme is described in Section 3. The collision resistance of the proposed hash function is discussed in the standard model in Section 4. The indifferentiability is discussed in Section 5. The proposed domain extension is applied to the sponge construction in Section 6. A concluding remark is given in Section 7.

2. Preliminaries

2.1. Notations

Let Σ = { 0 , 1 } . Let Σ = i = 0 Σ i , and ( Σ n ) + = i = 1 Σ n i .
For binary sequences x and y, let x y be their concatenation. The empty sequence is denoted by ε .
The operation of selecting an element from set S uniformly at random and assigning it to s is denoted by s S .

2.2. Collision Resistance and Preimage Resistance

In this section, the collision resistance and everywhere preimage resistance [26] are defined in the standard model. To do so, a family of hash functions should be introduced. Suppose that h is a hash function chosen at random from some set of hash functions from X to Y in some efficient way.
Let A be an adversary which is given h as input and tries to find a collision pair for h. A collision pair for h are a pair of distinct inputs mapped to the same output by h. The col-advantage of A against h is given by
Adv h col ( A ) = Pr [ ( M , M ) A ( h ) : h ( M ) = h ( M ) M M ] ,
where the probability is taken over the coin tosses by A and the distribution of h.
Let A be an adversary which is given h as input and tries to find a preimage of an output for h. The pre-advantage of A against h is given by
Adv h epre ( A ) = max Y Y Pr [ M A ( h ) : h ( M ) = Y ] ,
where the probability is taken over the coin tosses by A and the distribution of h.

2.3. Indifferentiability from Random Oracle

Maurer et al. [10] formalized the notion of indifferentiability as a generalized notion of indistinguishability. Then, Coron et al. [9] tailored it for the security analysis of hash functions.
Let C be an algorithm with oracle access to an ideal primitive P . Here in this article, C is a domain extension scheme using P with fixed input length and C P defines a hash function. Let R be a VIL random oracle and S be a simulator which has oracle access to R . S R simulates P in order to convince an adversary that R is C P . The indiff-advantage of adversary A against ( C , S ) is given by
Adv C , S indiff ( A ) = Pr [ A C P , P = 1 ] Pr [ A R , S R = 1 ] ,
where the probabilities are taken over the coin tosses by A, S and the oracles R and P . C P and R are called VIL oracles, and P and S R are called FIL oracles.

3. Proposed Scheme

The proposed hash function consists of a compression function F : Σ n × Σ w Σ n , permutations π 0 and π 1 over Σ n , and an initialization vector IV Σ n . For π 0 and π 1 , it is assumed that π 0 ( v ) v , π 1 ( v ) v and π 0 ( v ) π 1 ( v ) for any v Σ n .
Remark 1.
Let c 0 and c 1 be distinct constants in Σ n \ { 0 } . Let π i ( v ) = v c i for i = 0 , 1 . Then, for any v Σ n , π 0 ( v ) v , π 1 ( v ) v and π 0 ( v ) π 1 ( v ) .
Let π be a permutation over Σ n . For 1 i x , let X i Σ w . The MDP domain extension [5] C IV F , π : ( Σ w ) + Σ n for F is defined as follows: C IV F , π ( X 1 X 2 X x ) = v x , where v 0 IV , v i F ( v i 1 , X i ) for 1 i x 1 , and v x F ( π ( v x 1 ) , X x ) .
For M Σ , the padding function is defined as follows:
pad ( M ) = M if | M | > 0 and | M | 0 ( mod w ) , M 10 d otherwise ,
where d is the smallest non-negative integer such that | M | + 1 + d 0 ( mod w ) . The length of any output of pad is a positive multiple of w. In particular, pad ( ε ) = 10 w 1 . If | M | > 0 , then | pad ( M ) | = w | M | / w .
The proposed hash function H IV F , { π 0 , π 1 } : Σ Σ n is defined as follows:
H IV F , { π 0 , π 1 } ( M ) = C IV F , π 0 ( pad ( M ) ) if | M | > 0 and | M | 0 ( mod w ) , C IV F , π 1 ( pad ( M ) ) otherwise .
It is also depicted in Figure 1.

4. Collision Resistance

The collision resistance of H IV F , { π 0 , π 1 } is discussed in the standard model. It is assumed that the compression function F is chosen at random from some set of functions from Σ n × Σ w to Σ n in some efficient way.
The collision resistance of H IV F , { π 0 , π 1 } needs a new security requirement for F, which is a kind of collision resistance. A pair of distinct inputs ( v , X ) and ( v , X ) for F are called a { π 0 , π 1 } -pseudo-collision pair if π 0 ( F ( v , X ) ) = π 1 ( F ( v , X ) ) . The advantage of adversary A against F with respect to { π 0 , π 1 } -pseudo-collision is defined similarly to the col-advantage. It is denoted by Adv F , { π 0 , π 1 } pcol ( A ) .
It will be shown that the collision resistance of H IV F , { π 0 , π 1 } is reduced to the collision resistance, the { π 0 , π 1 } -pseudo-collision resistance and the everywhere preimage resistance of F.
Lemma 1.
Any collision pair for H IV F , { π 0 , π 1 } implies a collision pair, a { π 0 , π 1 } -pseudo-collision pair, or a preimage of IV , π 0 1 ( π 1 ( IV ) ) , or π 1 1 ( π 0 ( IV ) ) for F.
Proof. 
Let M and M be any collision pair for H IV F , { π 0 , π 1 } . It is shown below that, by tracing back the computation of H IV F , { π 0 , π 1 } ( M ) and H IV F , { π 0 , π 1 } ( M ) , one can find a collision pair for F, a { π 0 , π 1 } -pseudo-collision pair for F, or a preimage of IV , π 0 1 ( π 1 ( IV ) ) , or π 1 1 ( π 0 ( IV ) ) for F. Let | pad ( M ) | / w = m and | pad ( M ) | / w = m .
Suppose that pad ( M ) = pad ( M ) . Then, one of H IV F , { π 0 , π 1 } ( M ) and H IV F , { π 0 , π 1 } ( M ) uses π 0 and the other uses π 1 . Notice that π 0 ( v ) π 1 ( v ) for any v Σ n . If m = m = 1 , then one finds a collision pair for F since π 0 ( IV ) π 1 ( IV ) . If m = m 2 , then one finds a collision pair or a { π 0 , π 1 } -pseudo-collision pair for F since π 0 ( v ) = π 1 ( v ) implies v v for any v , v Σ n .
Suppose that pad ( M ) pad ( M ) .
(i)
Suppose that one of H IV F , { π 0 , π 1 } ( M ) and H IV F , { π 0 , π 1 } ( M ) uses π 0 and the other uses π 1 . Assume that H IV F , { π 0 , π 1 } ( M ) uses π 0 and H IV F , { π 0 , π 1 } ( M ) uses π 1 without loss of generality. If m = m = 1 , then one finds a collision pair for F. If m = 1 and m 2 , then one finds a collision pair for F or a preimage of π 1 1 ( π 0 ( IV ) ) for F. If m 2 and m = 1 , then one finds a collision pair for F or a preimage of π 0 1 ( π 1 ( IV ) ) for F. If m 2 and m 2 , then one finds a collision pair or a { π 0 , π 1 } -pseudo-collision pair for F.
(ii)
Suppose that both of H IV F , { π 0 , π 1 } ( M ) and H IV F , { π 0 , π 1 } ( M ) uses a same permutation. If m = m = 1 , then one finds a collision pair for F. If m = 1 and m 2 , or m 2 and m = 1 , then one finds a collision pair for F or a preimage of IV for F. If m 2 and m 2 , then one finds a collision pair or a preimage of IV for F.
 ☐
Theorem 1.
For any adversary A trying to find a collision pair for H IV F , { π 0 , π 1 } with run time t, there exist adversaries B 1 , B 2 and B 3 such that
Adv H IV F , { π 0 , π 1 } col ( A ) Adv F col ( B 1 ) + Adv F , { π 0 , π 1 } pcol ( B 2 ) + 3 Adv F epre ( B 3 ) .
The run times of B 1 , B 2 and B 3 are about t + O ( ( | pad ( M ) | + | pad ( M ) | ) T F / w ) , where M and M are a collision pair of H IV F , { π 0 , π 1 } output by A and T F is the time required to compute F.
Proof. 
Let B be an algorithm which works as follows. B takes F as input. It first runs A with input H IV F , { π 0 , π 1 } . If A fails to find a collision pair for H IV F , { π 0 , π 1 } , then it aborts. Otherwise, for a collision pair M and M output by A, it computes H IV F , { π 0 , π 1 } ( M ) and H IV F , { π 0 , π 1 } ( M ) .
Let B 1 be an adversary trying to find a collision pair for F. Let B 2 be an adversary trying to find a { π 0 , π 1 } -pseudo-collision pair for F. Let B 3 be an adversary trying to find a preimage of IV , π 0 1 ( π 1 ( IV ) ) , or π 1 1 ( π 0 ( IV ) ) for F. All of them first run B. From Lemma 1, if A succeeds in finding a collision pair for H IV F , { π 0 , π 1 } , then B 1 , B 2 or B 3 succeed. ☐

5. Indifferentiability from Random Oracle

5.1. In the Random Oracle Model

In this section, to discuss the indifferentiability, the compression function F is assumed to be chosen uniformly at random from all the functions from Σ n × Σ w to Σ n .
The following theorem implies that the proposed hash function is indifferentiable from a random oracle up to the birthday bound. The game-playing technique [27] is used for the proof.
Theorem 2.
Suppose that the compression function F : Σ n × Σ w Σ n is chosen uniformly at random. Then, for the hash function H IV F , { π 0 , π 1 } , there exists a simulator S of F such that, for any adversary A making at most q queries to its FIL oracle and queries to its VIL oracle which cost at most σ message blocks in total,
Adv H IV F , { π 0 , π 1 } , S indiff ( A ) 5 ( σ + q ) 2 2 n + 3 σ q 2 n 6 q + 1 ,
and S makes at most q queries.
Proof. 
Each game provides two interfaces to adversary A: H for the hash function and F for the compression function. It is assumed without loss of generality that A makes no repeated queries both to H and to F .
The game G1 is given in Figure 2. F simply calls F , which implements the compression function F by lazy evaluation. F uses a partial function F . Initially, F [ v , X ] = for every ( v , X ) Σ n × Σ w . H computes H IV F , { π 0 , π 1 } with the aid of F . Thus,
Pr A H IV F , { π 0 , π 1 } , F = 1 = Pr A G 1 = 1 .
Notice that F may receive repeated queries since H also calls F as well as F .
The game G2 is given in Figure 3a. F and H are not changed and omitted.
In G2, F constructs and maintains a directed graph ( V , E ) based on the queries to F . It also uses a function findM , which will be described later. Initially, V = { } and E = { } . For a new query ( v , X ) , if findM ( v , X ) , then F replaces V with V { v } . On the other hand, if findM ( v , X ) = , then F replaces V with V { v , F [ v , X ] } and E with E { ( v , F [ v , X ] ) } . The edge ( v , F [ v , X ] ) is labeled with X. T and H are the sets of tails and heads of edges in ( V , E ) , respectively. Vertices with no adjacent edges in ( V , E ) are also included in T . Initially, T = { } and H = { } .
findM tries to find a path in ( V , E ) corresponding to the computation H IV F , { π 0 , π 1 } ( M ) for some M. Given ( v , X ) as input, findM first searches a path from IV to π 0 1 ( v ) or π 1 1 ( v ) in ( V , E ) . If IV equals π 0 1 ( v ) or π 1 1 ( v ) , then the single vertex IV is regarded as a path. If findM finds a path, then let X 1 , X 2 , , X l be the labels of the edges on the path. If the path is IV , then l = 0 , that is, X 1 X 2 X l = ε . If there exists some M Σ such that pad ( M ) = X 1 X 2 X l X , which depends on whether the terminal of the path is π 0 1 ( v ) or π 1 1 ( v ) , then findM returns M. Otherwise, findM returns ⊥. It will be shown that findM ( v , X ) finds at most one path.
F of G2 differs from F of G1 only if bad gets true in G2. This is because F [ v , X ] is chosen uniformly at random in G2 until bad gets true . For the i-th call to F , | B | 6 i 1 since
B = T π 0 1 ( T ) π 1 1 ( T ) H π 0 1 ( π 1 ( H ) ) π 1 1 ( π 0 ( H ) ) IV , π 0 1 ( IV ) , π 1 1 ( IV ) , π 0 1 ( π 1 ( IV ) ) , π 1 1 ( π 0 ( IV ) ) ,
| T | i 1 and | H | i 1 . F is called at most ( σ + q ) times. Thus,
Pr A G 1 = 1 Pr A G 2 = 1 Pr A G 2 sets bad i = 1 σ + q 6 i 1 2 n = 3 ( σ + q ) 2 + 2 ( σ + q ) 2 n .
For the game G3 in Figure 3b, the lines from 605 to 609 in G2 are replaced with the line 605 in G3. Since they are equivalent, Pr A G 2 = 1 = Pr A G 3 = 1 .
The game G4 is given in Figure 4. It introduces a variable-input-length random oracle H , which is implemented by lazy evaluation. Initially, H [ M ] = for every M Σ . H may receive repeated queries since it is called by both H and F . Different from F of G3, F assigns H ( M ) to F [ v , X ] at the line 603 in G4. Different from H of G3, H ( M ) returns H ( M ) in G4. We will see that G4 is actually equivalent to G3 in spite of these changes.
First, let us see some properties of the graph ( V , E ) . Both in G3 and in G4, at the beginning of each run of F with ( v , X ) such that F [ v , X ] = , V T H . Then, whenever this run adds F [ v , X ] to both V and H , F [ v , X ] is chosen from Σ n \ B , where { IV } T H B . Thus, every vertex in ( V , E ) has at most one incoming edge, and IV has no incoming edge. It implies that every vertex in ( V , E ) has at most one simple path from IV . In addition, for every path ( v 1 , v 2 , , v l ) with v 1 = IV , v i ’s are added to ( V , E ) in this order. Furthermore, before v l is added to ( V , E ) , neither ( π 0 ( v l ) , X ) nor ( π 1 ( v l ) , X ) were asked to F for any X Σ w since { π 0 1 ( IV ) , π 1 1 ( IV ) } π 0 1 ( T ) π 1 1 ( T ) B .
Suppose that findM ( v , X ) finds two paths in ( V , E ) . Then, one is from IV to π 0 1 ( v ) and the other is from IV to π 1 1 ( v ) . Notice that π 0 1 ( v ) π 1 1 ( v ) since π 0 ( u ) π 1 ( u ) for every u Σ n . Suppose that both paths have two or more vertices. Then, both π 0 1 ( v ) and π 1 1 ( v ) are elements of H , which implies that one was added to H after the other since at most one vertex is added to H during each run of F . It contradicts π 1 b 1 ( π b ( H ) ) B for b Σ . Suppose that one path is the single vertex IV and the other has two or more vertices. π b 1 ( v ) = IV contradicts π 1 b 1 ( π b ( IV ) ) B for b Σ . Thus, findM ( v , X ) finds at most a single path in ( V , E ) .
In G4, for a new query ( v , X ) to F , suppose that findM finds a path in ( V , E ) and returns M corresponding to the path and ( v , X ) . Then, M is a new query to H , that is H [ M ] = , and it is assigned an element chosen uniformly at random from Σ n . On the other hand, for H , v x = H ( M ) . Thus, G4 is equivalent to G3, and Pr A G 4 = 1 = Pr A G 3 = 1 .
From G4 to G5, only F changes, which is given in Figure 5a. F of G5 is augmented with the lines from 600 to 606 and the lines from 614 to 616. H A is the set of heads of edges in ( V , E ) in the view of A. Initially, H A = { } . These changes do not affect the output of F . Thus, G5 is equivalent to G4, and Pr A G 5 = 1 = Pr A G 4 = 1 .
From G5 to G6, only H changes. H of G6 is identical to that of G7, which is given in Figure b. In G6, H ( M ) does not call F and just returns H ( M ) . In G6, F is called only by F and it does not receive any repeated queries, which implies that bad never gets true . On the other hand, bad may get true in G5. If bad gets true in G5, then A may trace some computation path of H IV F , { π 0 , π 1 } in ( V , E ) from its middle. | B a | 3 σ since B a = ( H \ H A ) π 0 ( H \ H A ) π 1 ( H \ H A ) and | H \ H A | σ . A knows at most 6 q 1 elements in B . Thus,
Pr A G 5 = 1 Pr A G 6 = 1 Pr A G 5 sets bad 3 σ q 2 n 6 q + 1 .
From G6 to G7, only F changes. G7 is given in Figure 5b. F of G7 is obtained from F of G6 by removing the lines from 600 to 606 and the lines from 614 to 616. Since F does not receive any repeated queries, the lines 607 and 619 are also removed. These changes do not affect the output of F . Thus, Pr A G 7 = 1 = Pr A G 6 = 1 . F of G7 works as a simulator S of F.
From the discussion above, we have
Adv H IV F , { π 0 , π 1 } , S indiff ( A ) = Pr A G 1 = 1 Pr A G 7 = 1 Pr A G 2 sets bad + Pr A G 5 sets bad 3 ( σ + q ) 2 + 2 ( σ + q ) 2 n + 3 σ q 2 n 6 q + 1 5 ( σ + q ) 2 2 n + 3 σ q 2 n 6 q + 1 .
 ☐

5.2. In the Ideal Cipher Model

In this section, F : Σ n × Σ w Σ n is assumed to be the Davies-Meyer compression function [28] using a block cipher E : Σ w × Σ n Σ n , where the key space of E is Σ w . Namely, F ( V , X ) = E ( X , V ) V . E is assumed to be chosen uniformly at random.
Theorem 3.
Suppose that the compression function F : Σ n × Σ w Σ n is the Davies-Meyer mode of a block cipher E chosen uniformly at random. Let D be the decryption function of E. Then, for the hash function H IV F , { π 0 , π 1 } , there exists a simulator S of ( E , D ) such that, for any adversary A making at most q e queries to its FIL encryption oracle, q d queries to its FIL decryption oracle, and queries to its VIL oracle which cost at most σ message blocks in total,
Adv H IV F , { π 0 , π 1 } , S indiff ( A ) 12 ( σ + q e + q d ) 2 2 n + 3 σ ( q e + q d ) 2 n 6 ( q e + q d ) 5 ,
and S makes at most q e queries.
Proof. 
Each game provides three interfaces to adversary A: H for the hash function, E for the encryption and D for the decryption. It is assumed without loss of generality that A makes no repeated queries both to H and to ( E , D ) . For E and D , once A gets a tuple ( key , pt , ct ) such that E ( key , pt ) = ct by a query to E or D , A never makes any query on the tuple.
The game G1 is given in Figure 6. E and D simply call E and D , respectively. E and D implement the encryption function and the decryption function by lazy evaluation, respectively. H computes H IV F , { π 0 , π 1 } with the aid of E . Thus,
Pr A H IV F , { π 0 , π 1 } , ( E , D ) = 1 = Pr A G 1 = 1 .
Notice that E and D may receive repeated queries since H also calls E as well as E .
From G1 to G2, only E and D are changed, which are given in Figure 7. In G2, E [ X , v ] and D [ X , u ] are chosen uniformly at random from Σ n . G1 and G2 are identical until bad gets true in G2. Since E and D are called at most σ + q e + q d times in total and | P X | = | C X | σ + q e + q d ,
Pr A G 1 = 1 Pr A G 2 = 1 Pr A G 2 sets bad ( σ + q e + q d ) 2 2 n .
From G2 to G3, only E and D are changed, which are given in Figure 8. In G3, E and D constructs and maintains a directed graph ( V , E ) based on the queries to them. Initially, V = { } and E = { } . For a new query ( X , v ) , if findM ( v , X ) , then E replaces V with V { v } . If findM ( v , X ) = , then E replaces V with V { v , u } and E with E { ( v , u ) } , where u = E ( X , v ) v . The edge ( v , u ) is labeled with X. On the other hand, for a new query ( X , u ) , D replaces V with V { v , v u } and E with E { ( v , v u ) } , where v = D ( X , u ) .
T and H are the sets of tails and heads of edges in ( V , E ) , respectively. Vertices with no adjacent edges in ( V , E ) are also in T . Initially, T = H = { } .
findM tries to find a path in ( V , E ) corresponding to the computation H IV F , { π 0 , π 1 } ( M ) for some M. Given ( v , X ) as input, findM first searches a path from IV to π 0 1 ( v ) or π 1 1 ( v ) in ( V , E ) . If IV equals π 0 1 ( v ) or π 1 1 ( v ) , then the single vertex IV is regarded as a path. If findM finds a path, then let X 1 , X 2 , , X l be the labels of the edges on the path. If the path is IV , then l = 0 , that is, X 1 X 2 X l = ε . If there exists some M Σ such that pad ( M ) = X 1 X 2 X l X , which depends on whether the terminal of the path is π 0 1 ( v ) or π 1 1 ( v ) , then findM returns M. Otherwise, findM returns ⊥.
E of G3 always assigns to E [ X , v ] a value chosen uniformly at random from Σ n until bad gets true at line 607. D of G3 always assigns to D [ X , u ] a value chosen uniformly at random from Σ n until bad gets true at line 703. Thus, G3 is identical to G2 until bad gets true in G3. Since | T | σ + q e + q d and | H | σ + q e + q d , | B e | 6 ( σ + q e + q d ) + 5 and | B d | 6 ( σ + q e + q d ) + 4 . E is called at most ( σ + q e ) times and D is called at most q d times and Thus,
Pr A G 2 = 1 Pr A G 3 = 1 Pr A G 3 sets bad ( 6 ( σ + q e + q d ) + 5 ) ( σ + q e ) 2 n + ( 6 ( σ + q e + q d ) + 4 ) q d 2 n = 6 ( σ + q e + q d ) 2 + 5 σ + 5 q e + 4 q d 2 n .
For the game G4 in Figure 9, the lines from 605 to 609 of G3 are replaced with the line 605 of G4, and the lines from 701 to 705 of G3 are replaced with the line 701 of G4. Since these changes do not affect the behavior, Pr [ A G 3 = 1 ] = Pr [ A G 4 = 1 ] .
The game G5 is given in Figure 10. It introduces a variable-input-length random oracle H , which is implemented by lazy evaluation. Initially, H [ M ] = for every M Σ . H may receive repeated queries since it is called by both H and F . Different from E of G4, E of G5 assigns H ( M ) to u at the line 603. Different from H of G4, H of G5 returns H ( M ) . We will see that G5 is actually equivalent to G4 in spite of these changes.
First, let us see some properties of the graph ( V , E ) . At the beginning of each run of E with ( X , v ) such that E [ X , v ] = , V T H . Whenever u is added to both V and H by this run, it is chosen from Σ n \ B e , where T H { IV } B e . On the other hand, at the beginning of each run of D with ( X , u ) such that D [ X , u ] = , V T H . Then, v is chosen from Σ n \ B d , and v u is added to both V and H by this run, where T H { IV } ( u ( T H { IV } ) ) B d . Thus, every vertex in ( V , E ) has at most one incoming edge, and IV has no incoming edge. It implies that every vertex in ( V , E ) has at most one simple path from IV . In addition, every path ( v 1 , v 2 , , v l ) with v 1 = IV is constructed only by queries to E , and v i ’s are added to ( V , E ) in this order. Furthermore, before v i is added to ( V , E ) , neither π 0 ( v i ) nor π 1 ( v i ) existed in ( V , E ) since π 0 1 ( T ) π 1 1 ( T ) { π 0 1 ( IV ) , π 1 1 ( IV ) } B e . Neither π 0 ( v i ) nor π 1 ( v i ) are added to ( V , E ) as tails by the queries to D after v i since π 0 ( H ) π 1 ( H ) { π 0 ( IV ) , π 1 ( IV ) } B d .
Suppose that findM ( v , X ) finds two paths in ( V , E ) . Then, one is from IV to π 0 1 ( v ) and the other is from IV to π 1 1 ( v ) . Notice that π 0 1 ( v ) π 1 1 ( v ) since π 0 ( u ) π 1 ( u ) for every u Σ n . Suppose that both paths have two or more vertices. Then, both π 0 1 ( v ) and π 1 1 ( v ) are elements of H , which implies that one was added to H after the other since at most one vertex is added to H during each run of E . It contradicts π 1 b 1 ( π b ( H ) ) B e for b Σ . Suppose that one path is the single vertex IV and the other has two or more vertices. π b 1 ( v ) = IV contradicts π 1 b 1 ( π b ( IV ) ) B e for b Σ . Thus, findM ( v , X ) finds at most a single path in ( V , E ) .
In G5, for a new query ( v , X ) to E , suppose that findM finds a path in ( V , E ) and returns M corresponding to the path and ( v , X ) . Then, M is a new query to H , that is H [ M ] = , and it is assigned an element chosen uniformly at random from Σ n . On the other hand, for H , v x = H ( M ) . Thus, G5 is equivalent to G4, and Pr [ A G 5 = 1 ] = Pr [ A G 4 = 1 ] .
From G5 to G6, E and D change, which are given in Figure 11. E of G6 is augmented with the lines from 600 to 606 and the lines from 614 to 616. H A is the set of heads of edges in ( V , E ) in the view of A. Initially, H A = { } . These changes do not affect the output of E . D of G6 is augmented with the lines from 700 to 704 and the line 710. These changes do not affect the output of D , either. Thus, G6 is equivalent to G5, and Pr [ A G 6 = 1 ] = Pr [ A G 5 = 1 ] .
From G6 to G7, only H changes. H of G7 is identical to that of G8, which is given in Figure 12. In G7, H ( M ) does not call E and just returns H ( M ) . In G7, E is called only by E and it does not receive any repeated queries. D does not receive any repeated queries, either. Thus, bad never gets true in G7. On the other hand, bad may get true in G6. | B ae | 3 σ and | B ad | 3 σ since B ae = ( H \ H A ) π 0 ( H \ H A ) π 1 ( H \ H A ) , B ad = ( v ( H \ H A ) ) ( H ( M ) ( π 0 ( H \ H A ) π 1 ( H \ H A ) ) ) , and | H \ H A | σ . A knows at most 6 ( q e + q d ) + 5 elements in B e . Thus,
Pr A G 6 = 1 Pr A G 7 = 1 Pr A G 6 sets bad 3 σ ( q e + q d ) 2 n 6 ( q e + q d ) 5 .
From G7 to G8, E and D changes. G8 is given in Figure 12. E of G8 is obtained from E of G7 by removing the lines from 600 to 606 and the lines from 614 to 616. Since E does not receive any repeated queries, the lines 607 and 619 are also removed. These changes do not affect the output of E . Similarly, D of G8 is obtained from D of G7 by removing the lines from 700 to 704, the lines 705, 707, and 710. These changes do not affect the output of D . Thus, Pr [ A G 8 = 1 ] = Pr [ A G 7 = 1 ] . ( E , D ) of G8 works as a simulator S of ( E , D ) .
From the discussion above, we have
Adv H IV F , { π 0 , π 1 } , S indiff ( A ) = Pr A G 1 = 1 Pr A G 8 = 1 Pr A G 2 sets bad + Pr A G 3 sets bad + Pr A G 6 sets bad 7 ( σ + q e + q d ) 2 + 5 σ + 5 q e + 4 q d 2 n + 3 σ ( q e + q d ) 2 n 6 ( q e + q d ) 5 12 ( σ + q e + q d ) 2 2 n + 3 σ ( q e + q d ) 2 n 6 ( q e + q d ) 5 .
 ☐

6. Application to Sponge Construction

6.1. Scheme

Let P : Σ b Σ b be a permutation and b = w + c , where b, w and c are positive integers. The sponge hash function using the proposed domain extension consists of the permutation P, permutations π 0 and π 1 over Σ c , and an initialization vector IV Σ b . For π 0 and π 1 , it is assumed that π 0 ( u ) u , π 1 ( u ) u and π 0 ( u ) π 1 ( u ) for every u Σ c .
For y Σ b , let y = y r y c , where y r Σ w and y c Σ c . In the remaining parts, some notations are abused for simplicity. For permutation π over Σ c and string y Σ b , π ( y ) represents y r π ( y c ) . Namely, π is applied to the c least significant bits (LSBs) of y. For strings y Σ b and X Σ w , y X represents ( y r X ) y c .
Let π be a permutation over Σ c . For 1 i x , let X i Σ w . The tweaked sponge construction S IV P , π : ( Σ w ) + Σ n is defined as follows: S IV P , π ( X 1 X 2 X x ) = v ^ x , where v 0 IV , v i P ( v i 1 X i ) for 1 i x 1 , v x P ( π ( v x 1 ) X x ) , and v ^ x is the n most significant bits (MSBs) of v x .
The sponge hash function G IV P , { π 0 , π 1 } : Σ Σ n based on the proposed domain extension is defined as follows:
G IV P , { π 0 , π 1 } ( M ) = S IV P , π 0 ( pad ( M ) ) if | M | > 0 and | M | 0 ( mod w ) , S IV P , π 1 ( pad ( M ) ) otherwise .
It is also depicted in Figure 13.

6.2. IRO in the Ideal Permutation Model

In this section, P : Σ b Σ b is assumed to be chosen uniformly at random. The following theorem implies that the proposed hash function is indifferentiable from a random oracle up to the birthday bound.
Theorem 4.
Suppose that the permutation P : Σ b Σ b is chosen uniformly at random. Then, for the hash function G IV P , { π 0 , π 1 } , there exists a simulator S of ( P , P 1 ) such that, for any adversary A making at most q f queries to its FIL forward oracle, q b queries to its FIL backward oracle, and queries to its VIL oracle which cost at most σ message blocks in total,
Adv G IV P , { π 0 , π 1 } , S indiff ( A ) 12 ( σ + q f + q b ) 2 2 c + 3 σ ( q f + q b ) 2 c 6 ( q f + q b ) 5 ,
and S makes at most q f queries.
Proof. 
Each game provides three interfaces to adversary A: H for the hash function, P for the permutation and P 1 for its inverse. It is assumed without loss of generality that A makes no repeated queries both to H and to ( P , P 1 ) . For P and P 1 , once A gets a pair ( y , z ) such that P ( y ) = z by a query to P or P 1 , A never makes any query on the pair.
The game G1 is given in Figure 14. P and P 1 simply call P and P 1 , respectively. P and P 1 implement P and P 1 by lazy evaluation, respectively. H computes G IV P , { π 0 , π 1 } with the aid of P and P 1 . Thus,
Pr A G IV P , { π 0 , π 1 } , ( P , P 1 ) = 1 = Pr A G 1 = 1 .
Notice that P and P 1 may receive repeated queries since H also calls P as well as P .
From G1 to G2, only P and P 1 are changed, which are given in Figure 15. In G2, P [ Y ] and P 1 [ Z ] are chosen uniformly at random from Σ b . G1 and G2 are identical until bad gets true in G2. Since P and P 1 are called at most σ + q f + q b times in total and | Y | = | Z | σ + q f + q b ,
Pr A G 1 = 1 Pr A G 2 = 1 Pr A G 2 sets bad ( σ + q f + q b ) 2 2 b .
From G2 to G3, only P and P 1 are changed, which are given in Figure 16. In G3, P and P 1 constructs and maintains a directed graph ( V , E ) based on the queries to them. Initially, V = { } and E = { } . For a new query Y, if findM ( Y ) = , then P replaces V with V { Y c , Z c } and E with E { ( Y c , Z c ) } . If there exists some Z such that Z = IV or P 1 [ Z ] , and Z c = Y c , then the edge ( Y c , Z c ) is labeled with Z r Y r . Otherwise, it is labeled with ⊥. If findM ( Y ) , then P replaces V with V { Y c } . On the other hand, for a new query Z, P 1 replaces V with V { Y c , Z c } and E with E { ( Y c , Z c ) } . If there exists some Z such that Z = IV or P 1 [ Z ] , and Z c = Y c , then the edge ( Y c , Z c ) is labeled with Z r Y r . Otherwise, it is labeled with ⊥.
T and H are the sets of tails and heads of edges in ( V , E ) , respectively. Vertices with no adjacent edges in ( V , E ) are also in T . Initially, T = H = { } .
findM tries to find a path in ( V , E ) corresponding to the computation G IV P , { π 0 , π 1 } ( M ) for some M. Given Y as input, findM first searches a path from IV c to π 0 1 ( Y c ) or π 1 1 ( Y c ) in ( V , E ) . If IV c equals π 0 1 ( Y c ) or π 1 1 ( Y c ) , then the single vertex IV c is regarded as a path. If findM finds a path, then let X 1 , X 2 , , X l be the labels of the edges on the path. If the path is IV c , then l = 0 , that is, X 1 X 2 X l = ε . Suppose that Z ˜ c is the terminal of the path and P 1 [ Z ˜ r Z ˜ c ] for some Z ˜ r . If there exists some M Σ such that pad ( M ) = X 1 X 2 X l ( Z ˜ r Y r ) , which depends on whether Z ˜ c equals π 0 1 ( Y c ) or π 1 1 ( Y c ) , then findM returns M. Otherwise, findM returns ⊥.
P of G3 always assigns to P [ Y ] a value chosen uniformly at random from Σ b until bad gets true at line 608. P 1 of G3 always assigns to P 1 [ Z ] a value chosen uniformly at random from Σ b until bad gets true at line 704. Thus, G3 is identical to G2 until bad gets true in G3. Since | T | σ + q f + q b and | H | σ + q f + q b , | B f | 6 ( σ + q f + q b ) + 5 and | B b | 3 ( σ + q f + q b ) + 3 . P is called at most ( σ + q f ) times and P 1 is called at most q b times. Thus,
Pr A G 2 = 1 Pr A G 3 = 1 Pr A G 3 sets bad ( 6 ( σ + q f + q b ) + 5 ) ( σ + q f ) 2 c + ( 3 ( σ + q f + q b ) + 3 ) q b 2 c 6 ( σ + q f + q b ) 2 + 5 ( σ + q f + q b ) 2 c .
For the game G4 in Figure 17, the lines from 606 to 610 of G3 are replaced with the line 606 of G4, and the lines from 702 to 706 of G3 are replaced with the line 702 of G4. Since these changes do not affect the behaviour, Pr [ A G 3 = 1 ] = Pr [ A G 4 = 1 ] .
The game G5 is given in Figure 18. It introduces a variable-input-length random oracle H , which is implemented by lazy evaluation. Initially, H [ M ] = for every M Σ . H may receive repeated queries since it is called by both H and P . Different from P of G4, P of G5 assigns to Z an element chosen uniformly at random from { H ( M ) } × Σ b n at the line 603. Different from H of G4, H of G5 returns H ( M ) . We will see that G5 is actually equivalent to G4 in spite of these changes.
First, let us see some properties of the graph ( V , E ) . At the beginning of each run of P with Y such that P [ Y ] = , V T H . Whenever Z c is added to both V and H by this run, it is chosen from Σ c \ B f , where T H { IV c } B f . On the other hand, at the beginning of each run of P 1 with Z such that P 1 [ Z ] = , V T H . Then, Y c is chosen from Σ n \ B b , where H { IV c } B b . Thus, every vertex in ( V , E ) has at most one incoming edge labeled with some element in Σ w , and every incoming edge of IV c is labeled with ⊥. It implies that every vertex in ( V , E ) has at most one simple path from IV c without edges labeled by ⊥. In addition, every path ( v 1 , v 2 , , v l ) with v 1 = IV c is constructed only by queries to P , and v i ’s are added to ( V , E ) in this order. Furthermore, before v i is added to ( V , E ) , neither π 0 ( v i ) nor π 1 ( v i ) existed in ( V , E ) since π 0 1 ( T ) π 1 1 ( T ) { π 0 1 ( IV c ) , π 1 1 ( IV c ) } B f . Neither π 0 ( v i ) nor π 1 ( v i ) are added to ( V , E ) as tails by the queries to P 1 after v i since π 0 ( H ) π 1 ( H ) { π 0 ( IV c ) , π 1 ( IV c ) } B b .
Suppose that findM ( Y ) finds two paths in ( V , E ) without edges labeled by ⊥. Then, one is from IV c to π 0 1 ( Y c ) and the other is from IV c to π 1 1 ( Y c ) . Notice that π 0 1 ( Y c ) π 1 1 ( Y c ) since π 0 ( v ) π 1 ( v ) for every v Σ c . Suppose that both paths have two or more vertices. Then, both π 0 1 ( Y c ) and π 1 1 ( Y c ) are elements of H , which implies that one was added to H after the other since at most one vertex is added to H during each run of P . It contradicts π 1 a 1 ( π a ( H ) ) B f for a Σ . Suppose that one path is the single vertex IV c and the other has two or more vertices. π a 1 ( Y c ) = IV c contradicts π 1 a 1 ( π a ( IV c ) ) B f for a Σ . Thus, findM ( Y ) finds at most a single path in ( V , E ) without edges labeled by ⊥.
In G5, for a new query Y to P , suppose that findM finds a path in ( V , E ) and returns M corresponding to the path and Y. Then, M is a new query to H , that is, H [ M ] = , and it is assigned an element chosen uniformly at random from Σ n . On the other hand, for H , the n MSBs of v x equals H ( M ) . Thus, G5 is equivalent to G4, and Pr [ A G 5 = 1 ] = Pr [ A G 4 = 1 ] .
From G5 to G6, P and P 1 change, which are given in Figure 19. P of G6 is augmented with the lines from 600 to 606 and the lines from 615 to 617. H A is the set of heads of edges in ( V , E ) in the view of A. Initially, H A = { } . These changes do not affect the output of P . P 1 of G6 is augmented with the lines from 700 to 704 and the line 711. These changes do not affect the output of P 1 . Thus, G6 is equivalent to G5, and Pr [ A G 6 = 1 ] = Pr [ A G 5 = 1 ] .
From G6 to G7, only H changes. H of G7 is identical to that of G8, which is given in Figure 20. In G7, H ( M ) does not call P and just returns H ( M ) . In G7, P is called only by P and it does not receive any repeated queries. P 1 does not receive any repeated queries, either. Thus, bad never gets true in G7. On the other hand, bad may get true in G6. | B a | 3 σ since B a = ( H \ H A ) π 0 ( H \ H A ) π 1 ( H \ H A ) and | H \ H A | σ . A knows at most 6 ( q f + q b ) + 5 elements in B f . Thus,
Pr A G 6 = 1 Pr A G 7 = 1 Pr A G 6 sets bad 3 σ ( q f + q b ) 2 c 6 ( q f + q b ) 5 .
From G7 to G8, P and P 1 change. G8 is given in Figure 20. P of G8 is obtained from P of G7 by removing the lines from 600 to 606 and the lines from 615 to 617. Since P does not receive any repeated queries, the lines 607 and 620 are also removed. These changes do not affect the output of P . Similarly, P 1 of G8 is obtained from P 1 of G7 by removing the lines from 700 to 704, the lines 705, 708 and 711. These changes do not affect the output of P 1 . Thus, Pr [ A G 8 = 1 ] = Pr [ A G 7 = 1 ] . ( P , P 1 ) of G8 works as a simulator S of ( P , P 1 ) .
From the discussion above, we have
Adv H IV F , { π 0 , π 1 } , S indiff ( A ) = Pr A G 1 = 1 Pr A G 8 = 1 Pr A G 2 sets bad + Pr A G 3 sets bad + Pr A G 6 sets bad ( σ + q f + q b ) 2 2 b + 6 ( σ + q f + q b ) 2 + 5 ( σ + q f + q b ) 2 c + 3 σ ( q f + q b ) 2 c 6 ( q f + q b ) 5 12 ( σ + q f + q b ) 2 2 c + 3 σ ( q f + q b ) 2 c 6 ( q f + q b ) 5 .
 ☐

7. Conclusions

In this article, a domain extension scheme which extends MDP [5] has been presented for iterated hashing. The collision resistance and indifferentiability from a random oracle of an iterated hash function using the domain extension have been confirmed under reasonable assumptions. For the pseudorandom-function property of the iterated hash function keyed via IV, readers are asked to see [6] for details.
The domain extension can also be applied to the sponge construction. The indifferentiability from a random oracle of the resultant hash function has been confirmed in the ideal permutation model.
The presented domain extension is simple and efficient. It is expected to be useful for lightweight cryptography.

Acknowledgments

This work was supported in part by JSPS KAKENHI Grant Number JP16H02828.

Conflicts of Interest

The author declares no conflict of interest.

References

  1. Dang, Q.H. Secure Hash Standard (SHS); FIPS PUB 180-4; National Institute of Standards and Technology: Gaithersburg, MD, USA, 2012.
  2. Merkle, R.C. One Way Hash Functions and DES. In Advances in Cryptology—CRYPTO 89, Proceedings of the 9th Annual International Cryptology Conference on Advances in Cryptology, Santa Barbara, CA, USA, 20–24 August 1989; Brassard, G., Ed.; Lecture Notes in Computer Science; Springer: Berlin/Heidelberg, Germany, 1990; Volume 435, pp. 428–446. [Google Scholar]
  3. Damgård, I. A Design Principle for Hash Functions. In Advances in Cryptology—CRYPTO 89, Proceedings of the 9th Annual International Cryptology Conference on Advances in Cryptology, Santa Barbara, CA, USA, 20–24 August 1989; Brassard, G., Ed.; Lecture Notes in Computer Science; Springer: Berlin/Heidelberg, Germany, 1990; Volume 435, pp. 416–427. [Google Scholar]
  4. Bellare, M.; Canetti, R.; Krawczyk, H. Keying Hash Functions for Message Authentication. In Advances in Cryptology—CRYPTO 96, Proceedings of the 16th Annual International Cryptology Conference, Santa Barbara, CA, USA, 18–22 August 1996; Koblitz, N., Ed.; Lecture Notes in Computer Science; Springer: Berlin/Heidelberg, Germany, 1996; Volume 1109, pp. 1–15. [Google Scholar]
  5. Hirose, S.; Park, J.H.; Yun, A. A Simple Variant of the Merkle-Damgård Scheme with a Permutation. In Advances in Cryptology—ASIACRYPT 2007, Proceedings of the 13th International Conference on the Theory and Application of Cryptology and Information Security, Kuching, Malaysia, 2–6 December 2007; Kurosawa, K., Ed.; Lecture Notes in Computer Science; Springer: Berlin/Heidelberg, Germany, 2007; Volume 4833, pp. 113–129. [Google Scholar]
  6. Hirose, S.; Yabumoto, A. A Tweak for a PRF Mode of a Compression Function and Its Applications. In Innovative Security Solutions for Information Technology and Communications, Proceedings of the 9th International Conference, SECITC 2016, Bucharest, Romania, 9–10 June 2016; Bica, I., Reyhanitabar, R., Eds.; Lecture Notes in Computer Science; Springer: Berlin/Heidelberg, Germany, 2016; Volume 10006, pp. 103–114. [Google Scholar]
  7. Bagheri, N.; Gauravaram, P.; Knudsen, L.R.; Zenner, E. The suffix-free-prefix-free hash function construction and its indifferentiability security analysis. Int. J. Inf. Secur. 2012, 11, 419–434. [Google Scholar] [CrossRef] [Green Version]
  8. Nandi, M. Characterizing Padding Rules of MD Hash Functions Preserving Collision Security. In Information Security and Privacy, Proceedings of the 14th Australasian Conference, ACISP 2009, Brisbane, Australia, 1–3 July 2009; Boyd, C., Nieto, J.M.G., Eds.; Lecture Notes in Computer Science; Springer: Berlin/Heidelberg, Germany, 2009; Volume 5594, pp. 171–184. [Google Scholar]
  9. Coron, J.S.; Dodis, Y.; Malinaud, C.; Puniya, P. Merkle-Damgård Revisited: How to Construct a Hash Function. In Advances in Cryptology—CRYPTO 2005, Proceedings of the 25th Annual International Cryptology Conference, Santa Barbara, CA, USA, 14-18 August 2005; Shoup, V., Ed.; Lecture Notes in Computer Science; Springer: Berlin/Heidelberg, Germany, 2005; Volume 3621, pp. 430–448. [Google Scholar]
  10. Maurer, U.M.; Renner, R.; Holenstein, C. Indifferentiability, Impossibility Results on Reductions, and Applications to the Random Oracle Methodology. In Theory of Cryptography, Proceedings of the First Theory of Cryptography Conference, TCC 2004, Cambridge, MA, USA, 19-21 February 2004; Naor, M., Ed.; Lecture Notes in Computer Science; Springer: Berlin/Heidelberg, Germany, 2004; Volume 2951, pp. 21–39. [Google Scholar]
  11. Chang, D.; Lee, S.; Nandi, M.; Yung, M. Indifferentiable Security Analysis of Popular Hash Functions with Prefix-Free Padding. In Advances in Cryptology—ASIACRYPT 2006, Proceedings of the 12th International Conference on the Theory and Application of Cryptology and Information Security, Shanghai, China, 3–7 December 2006; Lai, X., Chen, K., Eds.; Lecture Notes in Computer Science; Springer: Berlin/Heidelberg, Germany, 2006; Volume 4284, pp. 283–298. [Google Scholar]
  12. Chang, D.; Nandi, M. Improved Indifferentiability Security Analysis of chopMD Hash Function. In Fast Software Encryption, Proceedings of the 15th International Workshop, FSE 2008, Lausanne, Switzerland, 10–13 February 2008; Nyberg, K., Ed.; Lecture Notes in Computer Science; Springer: Berlin/Heidelberg, Germany, 2008; Volume 5086, pp. 429–443. [Google Scholar]
  13. Bellare, M.; Ristenpart, T. Multi-property-preserving hash domain extension and the EMD transform. In Advances in Cryptology—ASIACRYPT 2006, Proceedings of the 12th International Conference on the Theory and Application of Cryptology and Information Security, Shanghai, China, 3–7 December 2006; Lai, X., Chen, K., Eds.; Lecture Notes in Computer Science; Springer: Berlin/Heidelberg, Germany, 2006; Volume 4284, pp. 299–314. [Google Scholar]
  14. Kelsey, J. Public Comments on the Draft Federal Information Processing Standard (FIPS) Draft FIPS 180-2, Secure Hash Standard (SHS), 2001. Available online: http://www.cs.utsa.edu/∼wagner/CS4363/SHS/dfips-180-2-comments1.pdf (accessed on 9 June 2018).
  15. Dworkin, M.J. Recommendation for Block Cipher Modes of Operation: The CMAC Mode for Authentication; NIST Special Publication 800-38B; National Institute of Standards and Technology: Gaithersburg, MD, USA, 2005.
  16. Black, J.; Rogaway, P. A Block-Cipher Mode of Operation for Parallelizable Message Authentication. In Advances in Cryptology—EUROCRYPT 2002, Proceedings of the International Conference on the Theory and Applications of Cryptographic Techniques, Amsterdam, The Netherlands, 28 April–2 May 2002; Knudsen, L.R., Ed.; Lecture Notes in Computer Science; Springer: Berlin/Heidelberg, Germany, 2002; Volume 2332, pp. 384–397. [Google Scholar]
  17. Nandi, M. Fast and Secure CBC-Type MAC Algorithms. In Fast Software Encryption, Proceedings of the 16th International Workshop, FSE 2009, Leuven, Belgium, 22–25 February 2009; Dunkelman, O., Ed.; Lecture Notes in Computer Science; Springer: Berlin/Heidelberg, Germany, 2009; Volume 5665, pp. 375–393. [Google Scholar]
  18. Sarkar, P. Domain extender for collision resistant hash functions: Improving upon Merkle-Damgård iteration. Discret. Appl. Math. 2009, 157, 1086–1097. [Google Scholar] [CrossRef]
  19. Bertoni, G.; Daemen, J.; Peeters, M.; Assche, G.V. Sufficient conditions for sound tree and sequential hashing modes. Int. J. Inf. Secur. 2014, 13, 335–353. [Google Scholar] [CrossRef]
  20. Bertoni, G.; Daemen, J.; Peeters, M.; Assche, G.V. Sakura: A Flexible Coding for Tree Hashing. In Applied Cryptography and Network Security, Proceedings of the 12th International Conference, ACNS 2014, Lausanne, Switzerland, 10–13 June 2014; Boureanu, I., Owesarski, P., Vaudenay, S., Eds.; Lecture Notes in Computer Science; Springer: Berlin/Heidelberg, Germany, 2014; Volume 8479, pp. 217–234. [Google Scholar]
  21. Bertoni, G.; Daemen, J.; Peeters, M.; Van Assche, G. Sponge Functions. In Proceedings of the ECRYPT Hash Workshop 2007, Barcelona, Spain, 24–25 May 2007. [Google Scholar]
  22. Dworkin, M.J. SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions; FIPS PUB 202; National Institute of Standards and Technology: Gaithersburg, MD, USA, 2015.
  23. Guo, J.; Peyrin, T.; Poschmann, A. The PHOTON Family of Lightweight Hash Functions. In Advances in Cryptology—CRYPTO 2011, Proceedings of the 31st Annual Cryptology Conference, Santa Barbara, CA, USA, 14–18 August 2011; Rogaway, P., Ed.; Lecture Notes in Computer Science; Springer: Berlin/Heidelberg, Germany, 2011; Volume 6841, pp. 222–239. [Google Scholar]
  24. Bogdanov, A.; Knezevic, M.; Leander, G.; Toz, D.; Varici, K.; Verbauwhede, I. spongent: A Lightweight Hash Function. In Cryptographic Hardware and Embedded Systems—CHES 2011, Proceedings of the 13th International Workshop, Nara, Japan, 28 September–1 October 2011; Preneel, B., Takagi, T., Eds.; Lecture Notes in Computer Science; Springer: Berlin/Heidelberg, Germany, 2011; Volume 6917, pp. 312–325. [Google Scholar]
  25. Bertoni, G.; Daemen, J.; Peeters, M.; Van Assche, G. Duplexing the Sponge: Single-Pass Authenticated Encryption and Other Applications. In Selected Areas in Cryptography, Proceedings of the 18th International Workshop, SAC 2011, Toronto, ON, Canada, 11–12 August 2011; Miri, A., Vaudenay, S., Eds.; Lecture Notes in Computer Science; Springer: Berlin/Heidelberg, Germany, 2011; Volume 7118, pp. 320–337. [Google Scholar]
  26. Rogaway, P.; Shrimpton, T. Cryptographic Hash-Function Basics: Definitions, Implications, and Separations for Preimage Resistance, Second-Preimage Resistance, and Collision Resistance. In Fast Software Encryption, Proceedings of the 11th International Workshop, FSE 2004, Delhi, India, 5–7 February 2004; Roy, B.K., Meier, W., Eds.; Lecture Notes in Computer Science; Springer: Berlin/Heidelberg, Germany, 2004; Volume 3017, pp. 371–388. [Google Scholar]
  27. Bellare, M.; Rogaway, P. The Security of Triple Encryption and a Framework for Code-Based Game-Playing Proofs. In Advances in Cryptology—EUROCRYPT 2006, Proceedings of the 25th Annual International Conference on the Theory and Applications of Cryptographic Techniques, St. Petersburg, Russia, 28 May–1 June 2006; Vaudenay, S., Ed.; Lecture Notes in Computer Science; Springer: Berlin/Heidelberg, Germany, 2006; Volume 4004, pp. 409–426. [Google Scholar]
  28. Quisquater, J.; Girault, M. 2n-Bit Hash-Functions Using n-Bit Symmetric Block Cipher Algorithms. In Advances in Cryptology—EUROCRYPT ’89, Proceedings of the Workshop on the Theory and Application of of Cryptographic Techniques, Houthalen, Belgium, 10–13 April 1989; Quisquater, J.J., Vandewalle, J., Eds.; Lecture Notes in Computer Science; Springer: Berlin/Heidelberg, Germany, 1989; Volume 434, pp. 102–109. [Google Scholar]
Figure 1. The proposed hash function. M = M 1 M 2 M m , where | M i | = w for 1 i m 1 .
Figure 1. The proposed hash function. M = M 1 M 2 M m , where | M i | = w for 1 i m 1 .
Cryptography 02 00011 g001
Figure 2. Game G1. For the partial function F used in F , initially, F [ v , X ] = for every ( v , X ) Σ n × Σ w .
Figure 2. Game G1. For the partial function F used in F , initially, F [ v , X ] = for every ( v , X ) Σ n × Σ w .
Cryptography 02 00011 g002
Figure 3. Games G2 and G3. F and H are omitted, which are identical to those of G1. B = T π 0 1 ( T ) π 1 1 ( T ) H π 0 1 ( π 1 ( H ) ) π 1 1 ( π 0 ( H ) ) { IV , π 0 1 ( IV ) , π 1 1 ( IV ) , π 0 1 ( π 1 ( IV ) ) , π 1 1 ( π 0 ( IV ) ) } . Initially, T = { } and H = { } .
Figure 3. Games G2 and G3. F and H are omitted, which are identical to those of G1. B = T π 0 1 ( T ) π 1 1 ( T ) H π 0 1 ( π 1 ( H ) ) π 1 1 ( π 0 ( H ) ) { IV , π 0 1 ( IV ) , π 1 1 ( IV ) , π 0 1 ( π 1 ( IV ) ) , π 1 1 ( π 0 ( IV ) ) } . Initially, T = { } and H = { } .
Cryptography 02 00011 g003
Figure 4. Game G4. Initially, H [ M ] = for every M Σ .
Figure 4. Game G4. Initially, H [ M ] = for every M Σ .
Cryptography 02 00011 g004
Figure 5. Games G5, G6 and G7.
Figure 5. Games G5, G6 and G7.
Cryptography 02 00011 g005
Figure 6. Game G1. For the partial functions E and D , initially, E [ X , v ] = for every ( X , v ) Σ w × Σ n and D [ X , u ] = for every ( X , u ) Σ w × Σ n . If u is assigned to E [ X , v ] , then v is assigned to D [ X , u ] . If v is assigned to D [ X , u ] , then u is assigned to E [ X , v ] . P X and C X are the sets of values already assigned as plaintexts and ciphertexts for key X, respectively.
Figure 6. Game G1. For the partial functions E and D , initially, E [ X , v ] = for every ( X , v ) Σ w × Σ n and D [ X , u ] = for every ( X , u ) Σ w × Σ n . If u is assigned to E [ X , v ] , then v is assigned to D [ X , u ] . If v is assigned to D [ X , u ] , then u is assigned to E [ X , v ] . P X and C X are the sets of values already assigned as plaintexts and ciphertexts for key X, respectively.
Cryptography 02 00011 g006
Figure 7. Game G2. H , E and D , which are not changed, are omitted.
Figure 7. Game G2. H , E and D , which are not changed, are omitted.
Cryptography 02 00011 g007
Figure 8. Game G3. H , E and D are not changed and omitted. B e = T π 0 1 ( T ) π 1 1 ( T ) H π 0 1 ( π 1 ( H ) ) π 1 1 ( π 0 ( H ) ) { IV , π 0 1 ( IV ) , π 1 1 ( IV ) , π 0 1 ( π 1 ( IV ) ) , π 1 1 ( π 0 ( IV ) ) } . B d = T H ( u T ) ( u H ) π 0 ( H ) π 1 ( H ) { IV , u IV , π 0 ( IV ) , π 1 ( IV ) } . Initially, T = H = { } .
Figure 8. Game G3. H , E and D are not changed and omitted. B e = T π 0 1 ( T ) π 1 1 ( T ) H π 0 1 ( π 1 ( H ) ) π 1 1 ( π 0 ( H ) ) { IV , π 0 1 ( IV ) , π 1 1 ( IV ) , π 0 1 ( π 1 ( IV ) ) , π 1 1 ( π 0 ( IV ) ) } . B d = T H ( u T ) ( u H ) π 0 ( H ) π 1 ( H ) { IV , u IV , π 0 ( IV ) , π 1 ( IV ) } . Initially, T = H = { } .
Cryptography 02 00011 g008
Figure 9. Game G4. H , E and D are not changed and omitted.
Figure 9. Game G4. H , E and D are not changed and omitted.
Cryptography 02 00011 g009
Figure 10. Game G5. D and D are not changed and omitted. Initially, H [ M ] = for every M Σ .
Figure 10. Game G5. D and D are not changed and omitted. Initially, H [ M ] = for every M Σ .
Cryptography 02 00011 g010
Figure 11. E and D of G6 and G7. B ae = ( H H A ) π 0 ( H H A ) π 1 ( H H A ) . B ad = ( v ( H H A ) ) ( H ( M ) ( π 0 ( H H A ) π 1 ( H H A ) ) ) , where D [ X , u ] = v and findM ( v , X ) = M . Initially, H A = { } .
Figure 11. E and D of G6 and G7. B ae = ( H H A ) π 0 ( H H A ) π 1 ( H H A ) . B ad = ( v ( H H A ) ) ( H ( M ) ( π 0 ( H H A ) π 1 ( H H A ) ) ) , where D [ X , u ] = v and findM ( v , X ) = M . Initially, H A = { } .
Cryptography 02 00011 g011
Figure 12. Game G8.
Figure 12. Game G8.
Cryptography 02 00011 g012
Figure 13. The sponge hash function based on the proposed domain extension. M = M 1 M 2 M m , where | M i | = w for 1 i m 1 .
Figure 13. The sponge hash function based on the proposed domain extension. M = M 1 M 2 M m , where | M i | = w for 1 i m 1 .
Cryptography 02 00011 g013
Figure 14. Game G1. For the partial function P and its inverse P 1 , initially, P [ Y ] = for every Y Σ b and P 1 [ Z ] = for every Z Σ b . If Z is assigned to P [ Y ] , then Y is assigned to P 1 [ Z ] . If Y is assigned to P 1 [ Z ] , then Z is assigned to P [ Y ] . Y and Z are the sets of values already assigned as inputs and outputs of P and P 1 , respectively. Initially, Y = Z = { } .
Figure 14. Game G1. For the partial function P and its inverse P 1 , initially, P [ Y ] = for every Y Σ b and P 1 [ Z ] = for every Z Σ b . If Z is assigned to P [ Y ] , then Y is assigned to P 1 [ Z ] . If Y is assigned to P 1 [ Z ] , then Z is assigned to P [ Y ] . Y and Z are the sets of values already assigned as inputs and outputs of P and P 1 , respectively. Initially, Y = Z = { } .
Cryptography 02 00011 g014
Figure 15. Game G2. H , P and P 1 , which are not changed, are omitted.
Figure 15. Game G2. H , P and P 1 , which are not changed, are omitted.
Cryptography 02 00011 g015
Figure 16. Game G3. H , P and P 1 are not changed and omitted. B f = T π 0 1 ( T ) π 1 1 ( T ) H π 0 1 ( π 1 ( H ) ) π 1 1 ( π 0 ( H ) ) { IV c , π 0 1 ( IV c ) , π 1 1 ( IV c ) , π 0 1 ( π 1 ( IV c ) ) , π 1 1 ( π 0 ( IV c ) ) } . B b = H π 0 ( H ) π 1 ( H ) { IV c , π 0 ( IV c ) , π 1 ( IV c ) } . Initially, T = H = { } .
Figure 16. Game G3. H , P and P 1 are not changed and omitted. B f = T π 0 1 ( T ) π 1 1 ( T ) H π 0 1 ( π 1 ( H ) ) π 1 1 ( π 0 ( H ) ) { IV c , π 0 1 ( IV c ) , π 1 1 ( IV c ) , π 0 1 ( π 1 ( IV c ) ) , π 1 1 ( π 0 ( IV c ) ) } . B b = H π 0 ( H ) π 1 ( H ) { IV c , π 0 ( IV c ) , π 1 ( IV c ) } . Initially, T = H = { } .
Cryptography 02 00011 g016
Figure 17. Game G4. H , P and P 1 are not changed and omitted.
Figure 17. Game G4. H , P and P 1 are not changed and omitted.
Cryptography 02 00011 g017
Figure 18. Game G5. P 1 and P 1 are not changed and omitted. Initially, H [ M ] = for every M Σ .
Figure 18. Game G5. P 1 and P 1 are not changed and omitted. Initially, H [ M ] = for every M Σ .
Cryptography 02 00011 g018
Figure 19. P and P 1 of G6 and G7. B a = ( H H A ) π 0 ( H H A ) π 1 ( H H A ) . Initially, H A = { } .
Figure 19. P and P 1 of G6 and G7. B a = ( H H A ) π 0 ( H H A ) π 1 ( H H A ) . Initially, H A = { } .
Cryptography 02 00011 g019
Figure 20. Game G8.
Figure 20. Game G8.
Cryptography 02 00011 g020

Share and Cite

MDPI and ACS Style

Hirose, S. Sequential Hashing with Minimum Padding. Cryptography 2018, 2, 11. https://doi.org/10.3390/cryptography2020011

AMA Style

Hirose S. Sequential Hashing with Minimum Padding. Cryptography. 2018; 2(2):11. https://doi.org/10.3390/cryptography2020011

Chicago/Turabian Style

Hirose, Shoichi. 2018. "Sequential Hashing with Minimum Padding" Cryptography 2, no. 2: 11. https://doi.org/10.3390/cryptography2020011

Article Metrics

Back to TopTop