v3 already has significant enhancements over a "pure ARX" design or even RC4 :
- The LUT is NOT a byte permutation. It's a bit permutation. This makes the output useless to recover the input/index.
- The index addition for A and B is chained/merged hence co-dependent. Getting one index from the output does not directly provide the other index, particularly since A is XORed by the LFSR.
- The LUT is an expansion table and only one half is output, the other is fed back.
But it's not perfect yet.
https://en.wikipedia.org/wiki/Rotational_cryptanalysis describes the class of cyphers based on the Add/Rotate/XOR operators, ARX in short. It is the basis of Salsa20, Speck, ChaCha20, ThreeFish, Blake, Skein, Cubehash...
Only the (truncated carry) Add is "not linear", so the cypher requires a lot of rounds. It also hints how its cryptanalysis works, in particular because XOR, ADD and ROT are reversible. Some other cyphers combine non-reversible operators : OR and AND. v4 would benefit from this.
Since the design of #PEAC I have a fondness for End-Around-Carry, which wipes the LSB computation that degenerates to a simple XOR, that is easy to correlate. So adding a carry-in and carry-out to the design will strengthen it. That's a second enhancement for v4.
A third easy enhancement is the replacement of the lousy LFSR8.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.