# Collision resistance – Wikipedia

property of cryptanalytic hash functions

In cryptography,

In cryptography,

**collision resistance**is a property of cryptanalytic hashish functions : a hash function*H*is collision-resistant if it is unvoiced to find two inputs that hash to the like output ; that is, two inputs*a*and*b*where*a*≠*b*but*H*(*a*) =*H*(*b*). [ 1 ] : 136 The cubbyhole principle means that any hashish function with more inputs than outputs will inevitably have such collisions ; [ 1 ] : 136 the unvoiced they are to find, the more cryptographically secure the hashish routine is. The “ birthday paradox “ places an amphetamine bind on collision resistance : if a hash affair produces*N*bits of output, an attacker who computes lone 2*N*/2 ( or 2 N { \displaystyle \scriptstyle { \sqrt { 2^ { N } } } } ) hash operations on random input signal is likely to find two matching outputs. If there is an easier method than this brute-force attack, it is typically considered a flaw in the hashish routine. [ 2 ] cryptanalytic hashish functions are normally designed to be collision resistant. however, many hash functions that were once thought to be collision repellent were later broken. MD5 and SHA-1 in particular both have published techniques more efficient than beastly force for finding collisions. [ 3 ] [ 4 ] however, some hash functions have a proof that finding collisions is at least vitamin a difficult as some hard mathematical problem ( such as integer factorization or discrete logarithm ). Those functions are called demonstrably procure. [ 2 ]Read more: Multiple encryption – Wikipedia

Read more: A Few Thoughts on Cryptographic Engineering

Reading: Collision resistance – Wikipedia

## definition [edit ]

A family of functions { *h* *k* : { 0, 1 } *m* ( *k* ) → { 0, 1 } *l* ( *k* ) } generated by some algorithm *G* is a kin of collision-resistant hash functions, if | *m* ( *k* ) | > | *l* ( *k* ) | for any *k*, i, *h* *k* compresses the remark string, and every *h* *k* can be computed within polynomial time given *k*, but for any probabilistic polynomial algorithm *A*, we have

- Pr [
*k*←*G*(1*n*), (*x*1,*x*2) ←*A*(*k*, 1*n*) s.t.*x*1 ≠*x*2 but*h**k*(*x*1) =*h**k*(*x*2)] < negl(*n*),

where negl ( · ) denotes some negligible serve, and *n* is the security argument. [ 5 ]

## rationale [edit ]

collision resistance is desirable for several reasons .

- In some digital signature systems, a party attests to a document by publishing a public key signature on a hash of the document. If it is possible to produce two documents with the same hash, an attacker could get a party to attest to one, and then claim that the party had attested to the other.
- In some distributed content systems, parties compare cryptographic hashes of files in order to make sure they have the same version. An attacker who could produce two files with the same hash could trick users into believing they had the same version of a file when they in fact did not.