Tag Info

Hot answers tagged


If you can generate uniform random numbers, you can use a variant of Fisher-Yates. //given an array s with the elements to be permuted for i from n-1 to 1: t = rand(0, i) # inclusive swap(s[i], s[t])


In the substitution step of a typical Substitution-Permutation Network (e.g. in AES SubBytes), the whole state is broken in parts and each part substituted. That's not the case in (the core of) a Feistel cipher, where at each step/round some sizable part of the state is bound to remain unchanged (in order that each step be reversible).


Assuming that the probability distributions of $\pi_{k_1}$ and $\pi_{k_2}$ are both uniform (that is, each permutation can take on any particular setting with probability $1/n!$), then no, adversary does not have enough information to learn anything about the original positions. This remains true even if we assume the adversary can perform unbounded ...


Hint: you can notice that $n! > 2^n$ (except for very small $n$).


A while ago, I spent time playing with modern field/pen & paper ciphers, especially with Card-Chameleon. Card-Chameleon needs two separate full alphabet permutations as a key. As it's a field/pen & paper cipher, I tried to find a computer-less, math-less, way to generate these permutations from passwords. My solution is a two steps process. Let's ...


What is meant by vectors here? Just the inputs and outputs of the function. The function $f$ takes, as input, a sequence of bits (for example, 1010), and returns a sequence of bits (for example, 1100); the text refers to such a sequence of bits as a vector Can someone explain this? Well, the idea is that every output bit depends on all input ...

Only top voted, non community-wiki answers of a minimum length are eligible