Search results
Results from the WOW.Com Content Network
Consider a pseudorandom number generator function P(key) that is uniform on the interval [0, 2 b − 1]. A hash function uniform on the interval [0, n − 1] is n P(key) / 2 b. We can replace the division by a (possibly faster) right bit shift: n P(key) >> b.
Fast-Hash [3] 32 or 64 bits xorshift operations SpookyHash 32, 64, or 128 bits see Jenkins hash function: CityHash [4] 32, 64, 128, or 256 bits FarmHash [5] 32, 64 or 128 bits MetroHash [6] 64 or 128 bits numeric hash (nhash) [7] variable division/modulo xxHash [8] 32, 64 or 128 bits product/rotation t1ha (Fast Positive Hash) [9] 64 or 128 bits
As an example, consider the 64-bit FNV-1 hash: All variables, except for byte_of_data, are 64-bit unsigned integers. The variable, byte_of_data, is an 8-bit unsigned integer. The FNV_offset_basis is the 64-bit value: 14695981039346656037 (in hex, 0xcbf29ce484222325). The FNV_prime is the 64-bit value 1099511628211 (in hex, 0x100000001b3).
[6] Estébanez et al. list the "most important" NCHFs: [7] The Fowler–Noll–Vo hash function (FNV) was created by Glenn Fowler and Phong Vo in 1991 with contributions from Landon Curt Noll. FNV with its two variants, FNV-1 and FNV-1a, is very widely used in Linux, FreeBSD OSes, DNS servers, NFS, Twitter, PlayStation 2, and Xbox, among others.
HAVAL is a cryptographic hash function. Unlike MD5, but like most modern cryptographic hash functions, HAVAL can produce hashes of different lengths – 128 bits, 160 bits, 192 bits, 224 bits, and 256 bits. HAVAL also allows users to specify the number of rounds (3, 4, or 5) to be used to generate the hash. HAVAL was broken in 2004. [1]
Tiger is based on Merkle–Damgård construction.The one-way compression function operates on 64-bit words, maintaining 3 words of state and processing 8 words of data. . There are 24 rounds, using a combination of operation mixing with XOR and addition/subtraction, rotates, and S-box lookups, and a fairly intricate key scheduling algorithm for deriving 24 round keys from the 8 input w
Checksum algorithms, such as CRC32 and other cyclic redundancy checks, are designed to meet much weaker requirements and are generally unsuitable as cryptographic hash functions. For example, a CRC was used for message integrity in the WEP encryption standard, but an attack was readily discovered, which exploited the linearity of the checksum.
As an example, if a 64-bit hash is used, there are approximately 1.8 × 10 19 different outputs. If these are all equally probable (the best case), then it would take 'only' approximately 5 billion attempts ( 5.38 × 10 9 ) to generate a collision using brute force. [ 8 ]