The Spritz cipher is a "sponge-like" construction that the authors show can be used as a hash, MAC, stream cipher, re-seedable pseudo random number generator, and/or an authenticated cipher.
Apart from some internal control variables, there is an array of size N (call it the state : I set N = 256 for this discussion).
The state is initialized to the identity permutation (ie: s [0] = 0 , s [1] = 1 , ...).
For those modes that require a secret key, the authors first "absorb" the secret key and then "squeeze" out the mask bits and/or a digest.
It occurred to me that by choosing the initial permutation state randomly, would I not be able to consider this as a key in and of itself?
This would allow me to have the full domain of possible keys to choose from (256! in this case).
An example of the MAC mode :
- Initialize state S with secret permutation (the key)
- Absorb the message text
- Absorb STOP
- Absorb message digest size (in bytes)
- Squeeze out digest
Are there any security issues raised by doing this?
Would this affect any of the other modes of operation that the authors prescribe?