# Variably Modified Permutation Composition

This article provides insufficient context for those unfamiliar with the subject. (October 2009) (Learn how and when to remove this template message) |

**VMPC** (**Variably Modified Permutation Composition**) is a stream cipher similar to the
well known and popular cipher RC4 designed by Ron Rivest. It was designed by Bartosz Zoltak, presented in 2004 at the Fast Software Encryption conference. VMPC is a modification of the RC4 cipher.^{[1]}

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

forxfrom0ton-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 2^{11}; for 64-element permutation, about 2^{53}; and for a 256-element permutation, about 2^{260}.^{[citation needed]}

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".^{[2]}

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:

```
1 n = 0
2 Repeat steps 3-8 L times:
3 s = P[ (s + P[n]) mod 256 ]
4 Output P[ (P[P[s]]+1) mod 256 ]
5 Temp = P[n]
6 P[n] = P[s]
7 P[s] = Temp #Swap(P[n], P[s])
8 n = (n + 1) mod 256
```

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

## References[edit]

**^**Alexander Maximov (2007-02-22). "Two Linear Distinguishing Attacks on VMPC and RC4A and Weakness of RC4 Family of Stream Ciphers (Corrected)". Cite journal requires`|journal=`

(help) (originally presented at FSE 2006 confernece)**^**Kulesza, Kamil (2008-10-27). "On Inverting the VMPC One-Way Function" (PDF). Retrieved 9 February 2015. Cite journal requires`|journal=`

(help)

## External links[edit]

- VMPC Homepage
- Original conference paper on VMPC from okna wrocław (PDF)
- Kamil Kulesza: On inverting the VMPC one-way function
- Unofficial C implementation of VMPC Stream cipher
- Unofficial Delphi implementation of VMPC Stream cipher

- https://eprint.iacr.org/2013/768.pdf VMPC-R: Cryptographically Secure Pseudo-Random Number Generator Alternative to RC4
- https://eprint.iacr.org/2014/985.pdf Statistical weakness in Spritz against VMPC-R: in search for the RC4 replacement
- https://eprint.iacr.org/2014/315.pdf Statistical weaknesses in 20 RC4-like algorithms and (probably) the simplest algorithm free from these weaknesses - VMPC-R
- https://eprint.iacr.org/2019/041.pdf Message Authentication (MAC) Algorithm For The VMPC-R (RC4-like) Stream Cipher

This cryptography-related article is a stub. You can help Deep web by expanding it. |