Abstract (eng)
With the significance of data security increasing, hashing has become a vital part of both the computer sciences and mathematical research. Even though the first secure hashing algorithm has been defined by NIST decades ago, research on the field of secure hashing algorithms is now more relevant than ever. However, the choice of which security level to use in your application can often be a hard one. Using a literature approach, this paper offers an overview of all three secure hash algorithm families, SHA-1, SHA-2, and SHA-3, defined by NIST so far along with an analysis of their security status, including the most efficient known attacks for SHA-1, an algorithm pronounced insecure. It also provides an introduction into the evolution of secure hashing algorithms, introducing MD2, MD4, and MD5, as SHA-1 and SHA-2’s direct predecessors as well as an insight on relevant properties for defining hash functions. Some general properties and properties specific to cryptographic hash functions are discussed. Lastly, using implementations of all algorithms in Python, the paper presents examples for all secure hash algorithms alongside a short guide on which security level to use for different purposes.