Jesse Friedman is an independent web and software developer specializing in Mathematica and Node.js. He is also interested in information security and penetration testing. His scientific interests primarily reside in the field of artificial intelligence. He is an avid fan of Star Trek and The Hitchhiker’s Guide to the Galaxy.
Project: Creating a Cellular Automaton-Based Cryptographic Hash Function
A hash function is designed to be easy to compute given an input, but extremely hard to reverse given an output. Hashes are commonly used in many fields, primarily secure password storage and verification for web applications. This project investigates the viability of a hash function based on elementary cellular automata.
The manner in which hashes are generated using this system is essentially simple: the binary input to the function is used as an initial condition for a cellular automaton (CA). The CA rule and row to compute to are specified by the user. This project is primarily focused on estimating the frequency of hash collisions (when two different inputs hash to the same output) and determining an optimal length for the hashed output to minimize such collisions. Other areas of focus include choosing an optimal rule, determining a method of padding/downsampling inputs, and optimizing performance in lower-level languages.