I'm looking for differentials in my kind of toy encryption scheme. I can't find any.
Let's consider linear congruential generator:
$X_{k+1} = a \cdot X_{k} \mod 2^{128}$
Such that $a$ is some number which for every 128-bit input $X_{k}$ from $0$ to $2^{128}-1$ will give us different output $X_{k+1}$ from $0$ to $2^{128}-1$. So we got bijection here (we can find many such odd $a$). Now let's say we will choose such 128-bit $a_{1},a_{2}, ..., a_{10}$ as a keys, randomly. We make $10$ rounds of encryption like that:
- $a_{1} \cdot INPUT \mod 2^{128}$
- Reverse $128$-bit block.
- $a_{2} \cdot (2^{128}-INPUT) \mod 2^{128}$
- $a_{3} \cdot INPUT \mod 2^{128}$
- Reverse $128$-bit block.
- $a_{4} \cdot (2^{128}-INPUT) \mod 2^{128}$
and so on...
Do you see any differentials here? Let's skip the encryption problems with zero-block - it can be solve easily, for example if we will use xoring before every round. Of course it is just keyed Lehmer random number generator with a modulus which is a power of two - and such generators have problems with low bits, but I can't use it to find differentials in that case.