for a fixed output length. Thirdly, the computation is a
bit-stream procedure as opposed to a block procedure.
Finally, we note that creating a collision requires the
solution of a system of non-linear iterated exponential
equations. As far as we are aware, such equations can-
not be solved by standard methods of analytic number
theory. Moreover, we are not aware of any other hash
function in the literature whose collision resistance in-
volves such iterated exponential equations.
For its performance characteristics, design fea-
tures and dependence on what appears to be an in-
tractible mathematical problem, we believe this hash
function is worthy of further attention, and so we
present this preliminary report.
Our construction uses polynomials over finite
fields. We note that earlier works have used polyno-
mials over finite fields in the construction of hash al-
gorithms. See for example, the work of Krovetz and
Rogoway (Krovetz and Rogoway, 2000). However,
our use of polynomials is very different. Most other
existing hash algorithms are based on the Damgaard-
Merkle (Damgaard,1989), (Merkle,1989) approach.
The reader can find a description of such algorithms
in the book of Menezes, van Oorschot and Vanstone
(Menezes et al,1997).
Following the recent ground-breaking work of
Wang (Wang et al, 2005), the Damgaard-Merkle de-
sign methodology has come under close scrutiny. Our
approach, however, is not based on the Damgaard-
Merkle methodology.
2 BRIEF DESCRIPTION OF THE
STEPS
The main steps are stretching, masking, forming a
collection of tables with bit strings, forming a knap-
sack and performing one exponentiation in a group.
We briefly describe each of these steps.
2.1 Padding, Splitting and Masking
The message is stretched by appending 4096 bits con-
sisting of a fixed string. This stretching operation
is different from the one described in, for example,
Aiello, Haber and Venkatesan (Aiello et al, 1998)
in which a randomized function is used to perform
stretching. In our algorithm, the purpose of stretch-
ing is to populate certain auxiliary bit strings. Let us
denote by k the length in bits of the padded message
M.
The message is then split into overlapping seg-
ments which are interpreted as polynomials over F
2
of degree < n where n is chosen such that 3 < n < 11.
More precisely, denote by M(i, j) the substring of
M beginning with the i-th bit and ending with the
j-th bit. Also, denote by M[i] the i-th bit of M.
Let us define S(M,n) to be the set M(1, n),M(2,n +
1),··· ,M(k − n + 1,k),M(k − n + 2)M[1],M(k − n+
3)M(1,2),···M[k]M(1,n − 1). Each M(i,i + n − 1)
may be thought of as a polynomial of degree < n over
F
2
. Thus, S(M,n) consists of k polynomials of degree
< n. Note that the construction of the S(M, n) is a
stream procedure. We choose c values of n, where c
is a variable parameter.
Next, we perform a complicated iterative mathe-
matical procedure which we call masking. It is one-
to-one and length preserving. Though one-to-one, the
procedure is difficult to invert and it involves finite
field arithmetic. Let us denote by CUR
1
,· ·· ,CUR
k
the effect of this procedure. We view them as k poly-
nomials of degree < n. At any given time, we need to
store 2
n
of these polynomials.
For any bit string B, we define int(B) to be the
integer whose base 2 expansion is B. The registers
CUR
i
are constructed as follows. Set
d
1
= d
1
(i) = i− 2− int(M
i−1
), (1)
d
2
= d
2
(i) = i− 2− int(CUR
i−1
).
Let f(x) ∈ F
2
[x] be irreducible of degree n. Thus,
there is an isomorphism of fields
F
2
[x]/( f(x)) ≃ F
2
n
.
Denote by φ
f
the isomorphism of F
2
-vector spaces
F
2
[x]/( f(x)) −→ F
n
2
.
Let δ and β be generators of (F
2
[x]/( f(x)))
×
(resp.
(F
2
[x]/(g(x)))
×
) corresponding to polynomials f(x)
and g(x) say. We set
CUR
1
= M
1
⊕ φ
f
(δ) ⊕ φ
g
(β), (2)
CUR
i
= M
i
⊕
φ
f
(δ
(int(M
i−1
)+int(CUR
i−2
)mod2
n
)⊕
⊕φ
g
(β
(int(CUR
i−1
)+int(CUR
i−2
))mod2
n
)
)
for i = 2,...,2
n
+ 1, and
CUR
i
= M
i
⊕ (3)
φ
f
(δ
int(M
i−1
)+int(CUR
d
1
)mod2
n
)⊕
⊕φ
g
(β
(int(CUR
i−1
)+int(CUR
d
2
)mod2
n
)
for i = 2
n
+2,...,k with d
1
and d
2
defined by (1). Once
again, we stress that the procedure just described for
calculating the values CUR
i
is a stream procedure.
Moreover, as the result below indicates, the values of
theCUR
i
uniquely determine the original message M.
SECRYPT 2008 - International Conference on Security and Cryptography
104