Lably
Skip to content

Variably Modified Permutation Composition

  • 1 min read
  • 1 chapters

Related on Lably

Through Permutation

The core of the cipher is the VMPC function, a transformation of n-element permutations defined as:

<b id="mwEw">for</b> x <b id="mwFA">from</b> 0 <b id="mwFQ">to</b> n-1: g(x) = VMPC(f)(x) = f(f(f(x))+1)

The function was designed such that inverting it, i.e. obtaining f from g, would be a complex problem. According to computer simulations the average number of operations required to recover f from g for a 16-element permutation is about 211; for 64-element permutation, about 253; and for a 256-element permutation, about 2260.

In 2006 at Cambridge University, Kamil Kulesza investigated the problem of inverting VMPC and concluded "results indicate that VMPC is not a good candidate for a cryptographic one-way function".

The VMPC function is used in an encryption algorithm – the VMPC stream cipher. The algorithm allows for efficient in software implementations; to encrypt L bytes of plaintext do:

<span style="color: green;" id="mwLQ"><i id="mwLg">All arithmetic is performed modulo 256.</i></span> i := 0 <b id="mwLw">while</b> GeneratingOutput: j := S[j + S[i]] <b id="mwMA">output</b> S[S[S[j]] + 1] swap S[i] and S[j] <span style="color: green;" id="mwMQ">(<i id="mwMg">b := S[j]; S[j] := S[i]; S[i] := b)</i>)</span> i := i + 1 <b id="mwMw">endwhile</b>

Where 256-element permutation P and integer value s are obtained from the encryption password using the VMPC-KSA (Key Scheduling Algorithm).

More in Computing and communication