Digital Fingerprints: Constructing One-Way Hash Functions
CSEF · 2016 Mathematics & Computer Science
Overview
Objectives/Goals The objective of this experiment is to test numerous designs (based on mathematical problems and basic operations) to aid in the construction of faster and more secure hash algorithms. The designs were evaluated by speed and the lack of collisions, which occur when two inputs share the same output. The construction of more efficient hash algorithms provide security of passwords, integrity of files, et cetera by preventing inversion of the function and the discovery of a collision. Methods/Materials A laptop computer with the Python interpreter was used to design and test the algorithms. The computer and interpreter provided the timer for testing speed. The algorithms were tested on a sample word list of common passwords (to demonstrate applicability). Some of the algorithms were derived from source code or programming libraries, such as hashlib (Python). Results The data indicates that primitive operations performed quickly, clocking in at under a second. They provided many collisions (most yielded more than 500). The fastest operations included addition, XOR, and bit-shifting while the most secure included bit-shifting, addition, modulus, and subtracting. On the other hand, the investigated mathematical constructs that were the fastest included SHA-3, MD5, the position-based design, the addition construct, and the linear congruential generator while those that provided the most resistance to collisions included SHA-3, MD5, the sum of three cubes design, the linear shift feedback register, and the discrete logarithm problem design. Conclusions/Discussion The speed of primitive operations allows hash algorithms to quickly perform operations on the bits in order to "mix" them. Although the quantity of these operations affects the speed of the algorithm, the security of these do not create most of the security of the algorithm; the mathematical constructs do. The constructs are the steps that properly transform/diffuse the bits, so that the output provides a seemingly random output. Furthermore, if the constructs are based on computational hardness assumptions, they can be further proven to be secure as an input must be impossible to retrieve from its output. This information encourages the construction of hash algorithms with NP problems (problems known to be hard to solve in polynomial time), and it can aid in the construction of future hash algorithms to further enhance cryptographic security.
Summary statement
A hash function is most effective (measured by speed and lack of collisions) when simple mathematical problems, such as the discrete logaritihm problem, are used in junction with primitive operations, such as addition and XOR.
Help received
I designed and programmed the hash algorithm and evaluating tests and analyzed the data myself. Some of the algorithm designs were based on pre-existing ones, such as MD5, SHA-3, and Adi Shamir's Discrete Logarithm Hash Function.
Competition history
- CSEF 2016
Resources
Related projects
ISEF · 2018
A Novel Cryptographic Hash Code Algorithm Based on Cellular Automata
ISEF · 2014
Winning the War against Hackers: A Hybrid Asymmetric Cryptographic Algorithm for Safe and Secure Data
CSEF · 2004
The Effect of Quantum Computing on Hash Functions
CSEF · 2004
Encryption: The Effect of Algorithm Type and Plaintext Length on Encryption, Decryption, and Force-Cracking Times
ISEF · 2015
An Asymmetric Elliptic Curve Algorithm to Increase Entropy and Decrease Computation Time of Iris Recognition
CSEF · 2006
Your Password Is Not Secure
ISEF · 2025
Impact of Encryption Strength on Password Cracking Time
CSEF · 2014
Evaluation of the Stronger Data Encryption Type for Secured Communication
Closest projects by meaning, across every fair and year in the corpus.
Browse more like this
Source: California Science & Engineering Fair public projects