HOME

TheInfoList



OR:

The elliptic curve only hash (ECOH) algorithm was submitted as a candidate for SHA-3 in the
NIST hash function competition The NIST hash function competition was an open competition held by the US National Institute of Standards and Technology (NIST) to develop a new hash function called SHA-3 to complement the older SHA-1 and SHA-2. The competition was formally ann ...
. However, it was rejected in the beginning of the competition since a
second pre-image attack The second (symbol: s) is the unit of time in the International System of Units (SI), historically defined as of a day – this factor derived from the division of the day first into 24 hours, then to 60 minutes and finally to 60 seconds eac ...
was found. The ECOH is based on the MuHASH
hash algorithm A hash function is any function that can be used to map data of arbitrary size to fixed-size values. The values returned by a hash function are called ''hash values'', ''hash codes'', ''digests'', or simply ''hashes''. The values are usually ...
, that has not yet been successfully attacked. However, MuHASH is too inefficient for practical use and changes had to be made. The main difference is that where MuHASH applies a
random oracle In cryptography, a random oracle is an oracle (a theoretical black box) that responds to every ''unique query'' with a (truly) random response chosen uniformly from its output domain. If a query is repeated, it responds the same way every time tha ...
, ECOH applies a
padding Padding is thin cushioned material sometimes added to clothes. Padding may also be referred to as batting when used as a layer in lining quilts or as a packaging or stuffing material. When padding is used in clothes, it is often done in an attempt ...
function. Assuming random oracles, finding a
collision In physics, a collision is any event in which two or more bodies exert forces on each other in a relatively short time. Although the most common use of the word ''collision'' refers to incidents in which two or more objects collide with great fo ...
in MuHASH implies solving the
discrete logarithm problem In mathematics, for given real numbers ''a'' and ''b'', the logarithm log''b'' ''a'' is a number ''x'' such that . Analogously, in any group ''G'', powers ''b'k'' can be defined for all integers ''k'', and the discrete logarithm log''b ...
. MuHASH is thus a provably secure hash, i.e. we know that finding a collision is at least as hard as some hard known mathematical problem. ECOH does not use random oracles and its security is not strictly directly related to the discrete logarithm problem, yet it is still based on mathematical functions. ECOH is related to the Semaev's problem of finding low degree solutions to the summation polynomial equations over binary field, called the Summation Polynomial Problem. An efficient algorithm to solve this problem has not been given so far. Although the problem was not proven to be
NP-hard In computational complexity theory, NP-hardness ( non-deterministic polynomial-time hardness) is the defining property of a class of problems that are informally "at least as hard as the hardest problems in NP". A simple example of an NP-hard pr ...
, it is assumed that such an algorithm does not exist. Under certain assumptions, finding a collision in ECOH may be also viewed as an instance of the
subset sum problem The subset sum problem (SSP) is a decision problem in computer science. In its most general formulation, there is a multiset S of integers and a target-sum T, and the question is to decide whether any subset of the integers sum to precisely T''.'' ...
. Besides solving the Summation Polynomial Problem, there exists another way how to find second pre-images and thus collisions, Wagner's generalized birthday attack. ECOH is a good example of hash function that is based on mathematical functions (with the
provable security Provable security refers to any type or level of computer security that can be proved. It is used in different ways by different fields. Usually, this refers to mathematical proofs, which are common in cryptography. In such a proof, the capabiliti ...
approach) rather than on classical ad hoc mixing of bits to obtain the hash.


The algorithm

Given n, ECOH divides the message M into n blocks M_0,\ldots,M_. If the last block is incomplete, it is padded with single 1 and then appropriate number of 0. Let furthermore P be a function that maps a message block and an integer to an elliptic curve point. Then using the mapping P, each block is transformed to an
elliptic curve In mathematics, an elliptic curve is a smooth, projective, algebraic curve of genus one, on which there is a specified point . An elliptic curve is defined over a field and describes points in , the Cartesian product of with itself. If ...
point P_i, and these points are added together with two more points. One additional point X_1 contains the padding and depends only on the message length. The second additional point X_2 depends on the message length and the XOR of all message blocks. The result is truncated to get the hash H. \begin P_i &:= P(M_i,i)\\ X_1 &:= P'(n) \\ X_2 &:= P^*(M_i, n)\\ Q &:= \sum_^ P_i + X_1 + X_2\\ R &:= f(Q) \end The two extra points are computed by P' and P^* . Q adds all the elliptic curve points and the two extra points together. Finally, the result is passed through an output transformation function f to get the hash result R. To read more about this algorithm, se
"ECOH: the Elliptic Curve Only Hash"


Examples

Four ECOH algorithms were proposed, ECOH-224, ECOH-256, ECOH-384 and ECOH-512. The number represents the size of the message digest. They differ in the length of parameters, block size and in the used elliptic curve. The first two uses the elliptic curve B-283: X^ + X^ + X^7 + X^5 + 1 , with parameters (128, 64, 64). ECOH-384 uses the curve B-409: X^ + X^ + 1 , with parameters (192, 64, 64). ECOH-512 uses the curve B-571: X^ + X^ + X^5 + X^2 + 1 , with parameters (256, 128, 128). It can hash messages of bit length up to 2^ .


Properties

* Incrementality: ECOH of a message can be updated quickly, given a small change in the message and an intermediate value in ECOH computation. * Parallelizability: This means the computation of the P_i's can be done on parallel systems. * Speed: The ECOH algorithm is about thousand times slower than
SHA-1 In cryptography, SHA-1 (Secure Hash Algorithm 1) is a cryptographically broken but still widely used hash function which takes an input and produces a 160-bit (20- byte) hash value known as a message digest – typically rendered as 40 hexadec ...
. However, given the developments in desktop hardware towards
parallelization Parallel computing is a type of computation in which many calculations or processes are carried out simultaneously. Large problems can often be divided into smaller ones, which can then be solved at the same time. There are several different f ...
and carryless multiplication, ECOH may in a few years be as fast as SHA-1 for long messages. For short messages, ECOH is relatively slow, unless extensive tables are used.


Security of ECOH

The ECOH hash functions are based on concrete mathematical functions. They were designed such that the problem of finding collisions should be reducible to a known and hard mathematical problem (the
subset sum problem The subset sum problem (SSP) is a decision problem in computer science. In its most general formulation, there is a multiset S of integers and a target-sum T, and the question is to decide whether any subset of the integers sum to precisely T''.'' ...
). It means that if one could find collisions, one would be able to solve the underlying mathematical problem which is assumed to be hard and unsolvable in
polynomial time In computer science, the time complexity is the computational complexity that describes the amount of computer time it takes to run an algorithm. Time complexity is commonly estimated by counting the number of elementary operations performed by ...
. Functions with these properties are known
provably secure Provable security refers to any type or level of computer security that can be proved. It is used in different ways by different fields. Usually, this refers to mathematical proofs, which are common in cryptography. In such a proof, the capabiliti ...
and are quite unique among the rest of hash functions. Nevertheless, second pre-image (and thus a collision) was later found because the assumptions given in the proof were too strong.


Semaev Summation Polynomial

One way of finding collisions or second pre-images is solving Semaev Summation Polynomials. For a given elliptic curve E, there exists polynomials f_n that are symmetric in n variables and that vanish exactly when evaluated at abscissae of points whose sum is 0 in E. So far, an efficient algorithm to solve this problem does not exist and it is assumed to be hard (but not proven to be
NP-hard In computational complexity theory, NP-hardness ( non-deterministic polynomial-time hardness) is the defining property of a class of problems that are informally "at least as hard as the hardest problems in NP". A simple example of an NP-hard pr ...
). More formally: Let \mathbf be a finite field, E be an elliptic curve with
Weierstrass equation In mathematics, an elliptic curve is a smooth, projective, algebraic curve of genus one, on which there is a specified point . An elliptic curve is defined over a field and describes points in , the Cartesian product of with itself. If t ...
having coefficients in \mathbf and O be the point of infinity. It is known that there exists a multivariable polynomial f_n(X_1,\ldots,X_N) if and only if there exist < y_1,\ldots,y_n such that (x_1,y_1)+\ldots+(x_n,y_n) = O. This polynomial has degree 2^ in each variable. The problem is to find this polynomial.


Provable security discussion

The problem of finding collisions in ECOH is similar to the
subset sum problem The subset sum problem (SSP) is a decision problem in computer science. In its most general formulation, there is a multiset S of integers and a target-sum T, and the question is to decide whether any subset of the integers sum to precisely T''.'' ...
. Solving a subset sum problem is almost as hard as the
discrete logarithm In mathematics, for given real numbers ''a'' and ''b'', the logarithm log''b'' ''a'' is a number ''x'' such that . Analogously, in any group ''G'', powers ''b'k'' can be defined for all integers ''k'', and the discrete logarithm log' ...
problem. It is generally assumed that this is not doable in
polynomial time In computer science, the time complexity is the computational complexity that describes the amount of computer time it takes to run an algorithm. Time complexity is commonly estimated by counting the number of elementary operations performed by ...
. However a significantly loose heuristic must be assumed, more specifically, one of the involved parameters in the computation is not necessarily random but has a particular structure. If one adopts this loose heuristic, then finding an internal ECOH collision may be viewed as an instance of the
subset sum problem The subset sum problem (SSP) is a decision problem in computer science. In its most general formulation, there is a multiset S of integers and a target-sum T, and the question is to decide whether any subset of the integers sum to precisely T''.'' ...
. A second pre-image attack exists in the form of generalized birthday attack.


Second pre-image attack

Description of the attack: This is a Wagner’s Generalized Birthday Attack. It requires 2143 time for ECOH-224 and ECOH-256, 2206 time for ECOH-384, and 2287 time for ECOH-512. The attack sets the checksum block to a fixed value and uses a collision search on the elliptic curve points. For this attack we have a message ''M'' and try to find a ''M that hashes to the same message. We first split the message length into six blocks. So M'= (M_1,M_2,M_3,M_4,M_5,M_6). Let ''K'' be a natural number. We choose ''K'' different numbers for (M_0,M_1) and define M_2 by M_2 := M_0 + M_1 . We compute the ''K'' corresponding elliptic curve points P(M_0,0) + P(M_1,1) + P(M_2,2) and store them in a list. We then choose ''K'' different random values for (M_3,M_4), define M_5 := M_3 + M_4 , we compute Q - X_1 - X_2 - P(M_3,3) - P(M_4,4) - P(M_5, 5), and store them in a second list. Note that the target ''Q'' is known. X_1 only depends on the length of the message which we have fixed. X_2 depends on the length and the XOR of all message blocks, but we choose the message blocks such that this is always zero. Thus, X_2 is fixed for all our tries. If ''K'' is larger than the square root of the number of points on the elliptic curve then we expect one
collision In physics, a collision is any event in which two or more bodies exert forces on each other in a relatively short time. Although the most common use of the word ''collision'' refers to incidents in which two or more objects collide with great fo ...
between the two lists. This gives us a message (M_1,M_2,M_3,M_4,M_5,M_6) with: Q = \sum_^5 P(M_i,i) + X_1 + X_2 This means that this message leads to the target value ''Q'' and thus to a second preimage, which was the question. The workload we have to do here is two times ''K'' partial hash computations. For more info, se
"A Second Pre-image Attack Against Elliptic Curve Only Hash (ECOH)"
Actual parameters: * ECOH-224 and ECOH-256 use the elliptic curve B-283 with approximately 2^ points on the curve. We choose K = 2^ and get an attack with complexity 2^. * ECOH-384 uses the elliptic curve B-409 with approximately 2^ points on the curve. Choosing K=2^ gives an attack with complexity 2^. * ECOH-512 uses the elliptic curve B-571 with approximately 2^ points on the curve. Choosing K=2^ gives an attack with complexity 2^.


ECOH2

The officia
comments
on ECOH included a proposal called ECOH2 that doubles the elliptic curve size in an effort to stop the Halcrow-Ferguson second preimage attack with a prediction of improved or similar performance.


References

* Daniel R. L. Brown, Matt Campagna, Rene Struik (2008)
"ECOH: the Elliptic Curve Only Hash"
* Michael A. Halcrow, Niels Ferguson (2009)
"A Second Pre-image Attack Against Elliptic Curve Only Hash (ECOH)"
{{Cryptography navbox , hash Cryptographic hash functions