Merkle Tree
From CRYPTUTOR
A Merkle-Damgard iteration is an NMAC signing algorithm constructed as follows:
is the key for each iteration.
is a subset of a message
is the final hash output.
can be utilized for any length
, but without recording the length,
is not a CRHF. Consider the following situation:
Because the final output of
is dependent only upon the inputs
...
, if
was actually constructed from a prior iteration
...
, there is no way to distinguish between the two hashes and a collision is created.
To alleviate this problem, the number of iterations is saved:
A Merkle-Damgard iteration can be made more effective by creating a tree structure rather than chaining
blocks.
So long as
is a CRHF, the final tree or chained construction will be a CRHF. The same is true if
is a UOWHF. By using a OWF, it is possible to construct these hashing trees without needing to store every node (see OWF and seeding for more information).




