hash_framework
is a framework for studying cryptographic hash functions via
SAT. Its
focus is in developing metrics for analyzing collisions and studying and
improving new attacks.
This framework is under heavy development and is not yet stable and thus has no guarantees about working in the future.
- Python3
- Flask
- Gunicorn
- sqlite3
- CryptoMiniSat5
- bc2cnf
This repository is meant to be run from master. Simply clone the repository
and update the configuration in hash_framework/config.py
to point to the
required tools.
To run a worker, validate the configuration and run start_workers.sh
from
the base of the repository. See examples in runs
for distributing jobs.
- ASCII Search
- Family Search
- Minimal Differential Path Search
- Multicollision Search
- Neighborhood Search
- Ones
- Zeros
- Finish building database abstraction
- Build manager API for remote clients
- Build remote client library
- Build worker with remote client library
- Build local client library
- Add efficient insertion to client library for large batch job insertion
- Base it on generator / callback?
- Update kernel
hash_framework
is licensed under the GLPv3. Contributions are welcome; please
fork and open a pull request. No guarantees made about timeliness in response;
please be patient.
Most welcome are new attacks (in the form of kernels) and implementations of other hash functions. Also welcome is compute resources for ongoing research.
This project is part of ongoing research at Iowa State University. As papers are published using this framework, please refer to this repository.