[Cryptography] Cryptanalyzing a whole-message cipher and a double-tree hash function
Pierre Abbat
phma at bezitopo.org
Mon Dec 25 04:54:23 EST 2023
I've invented a cipher and a hash function and am trying to cryptanalyze them.
So far I've done a related-key attack with a 96-byte key (and shorter ones)
and an 8-byte message and integral cryptanalysis with an 8-byte message. So
far it's passed, though I've run the program less than an hour, and I should
run it for longer. How should I make sure the cipher resists attacks when used
to encipher a 729-byte, 524288-byte, 531441-byte, or longer message?
As to the hash function, I haven't found a sufficiently detailed explanation of
how to attack hash functions. The hash function should resist the related-key
attack equally well, since the cipher and hash use the same keying algorithm.
I tried to find collisions of the compression function given two 32-byte
blocks, where the compression function, both with sboxalt=0 and with
sboxalt=1, give the same output when one byte of the input is changed. I found
none. What are some other ways to attack hash functions?
https://github.com/phma/wring-twistree is the reference implementation, in
both Rust and Haskell. https://github.com/phma/WringTwistree.jl is a Julia
implementation, which passes all the test vectors, but allocates too much RAM
when hashing a large vector, which I have to look into.
Pierre
--
.i toljundi do .ibabo mi'afra tu'a do
.ibabo damba do .ibabo do jinga
.icu'u la ma'atman.
More information about the cryptography
mailing list