This entry was posted on Monday, December 22nd, 2008 at 14:12 and is filed under Articles.
It is possible to use cryptographic methods to not only ensure data privacy, but also check its integrity. As a rule, integrity is checked with the help of the so-called “checksum”. Specialists in the field of data encryption and communications theory have developed a lot of algorithms that calculate the checksum of transferred or stored data. If performance is the key factor, a regular checksum (calculated, for example, with the well-known CRC32 algorithm) is quite enough for most applications. As an example, you can take typical network data transfer applications.
The problem of these simple checksum calculation algorithms is that it is possible to find several data blocks that will have the same checksum. That is why cryptographically strong checksums are obtained by applying the so-called hash functions to the input data.
There is a hypothesis about the existence of one-way functions. Having the results of such a function, theoretically or at least by means of calculations it is impossible to compute its input arguments (that is, you cannot restore the input data from the result of the function). So far it is not proved that such functions actually exist. That is why all hash functions used at the moment are referred to as possible one-way functions despite their perfect properties. The main properties of a cryptographically strong hash function are its diffusion, irreversibility and collision resistance. Irreversibility was mentioned above. The collision of a hash function is a situation when the result of a hash function is the same for two different input data blocks. Since the result has a fixed length and there are no restrictions concerning input data, this situation is quite possible. Diffusion means that minimum changes in the input data cause maximum changes in the result of a hash function.
Currently, the main algorithms for calculating hash functions are MD4, MD5, SHA1, SHA2, RIPEMD and others. The result length of hash functions varies. 32 bytes are considered the standard length. One of the most popular algorithms is MD5. This algorithm is used in a lot of software and operating systems. According to the results of many cryptanalytic studies, MD5 will soon be abandoned because the collision resistance of this algorithm is close to the critical point.