Crate mostinefficientsha [−] [src]
This crate tries to break SHA256. (But fails unfortunately).
It implements SHA256 in the most inefficient fashion ever. Usually, SHA256 operates on integers with 32 bits (u32). This implementation uses one double (f64) for each bit of each integer, thereby allowing to use 8 fuzzy input bits for each input byte.
Term represents a fuzzy bit either as a settable bit (constant or symbolic)
or as a bitwise combination of other Term
s, thereby creating a treelike graph of Term
s.
These terms are evaluated lazily.
U combines 32 Term
s and represents a fuzzy integer.
U also implements high level operations like shifting, rotating, adding.
These operations will be transformed into fuzzy lazily evaluated bit operations.
Sha256 uses these U
s to calculate the SHA256
algorithm.
Linopt uses the fuzzy Sha256
to try to break it.
No chance.
Modules
linopt 

sha 

term 

u 

util 
Encoding helpers between ascii, u32 and f64 representations of 256 bit hashes. 