VMPC (Variably Modified Permutation Composition) for
cryptography
Cryptography, or cryptology (from grc, , translit=kryptós "hidden, secret"; and ''graphein'', "to write", or ''-logia'', "study", respectively), is the practice and study of techniques for secure communication in the presence of adve ...
is a
stream cipher
stream cipher is a symmetric key cipher where plaintext digits are combined with a pseudorandom cipher digit stream ( keystream). In a stream cipher, each plaintext digit is encrypted one at a time with the corresponding digit of the keystream ...
similar to the
well known and popular cipher
RC4
In cryptography, RC4 (Rivest Cipher 4, also known as ARC4 or ARCFOUR, meaning Alleged RC4, see below) is a stream cipher. While it is remarkable for its simplicity and speed in software, multiple vulnerabilities have been discovered in RC4, ren ...
designed by
Ron Rivest
Ronald Linn Rivest (; born May 6, 1947) is a cryptographer and an Institute Professor at MIT. He is a member of MIT's Department of Electrical Engineering and Computer Science (EECS) and a member of MIT's Computer Science and Artificial Int ...
. It was designed by Bartosz Żółtak, presented in 2004 at the
Fast Software Encryption conference. VMPC is a modification of the
RC4
In cryptography, RC4 (Rivest Cipher 4, also known as ARC4 or ARCFOUR, meaning Alleged RC4, see below) is a stream cipher. While it is remarkable for its simplicity and speed in software, multiple vulnerabilities have been discovered in RC4, ren ...
cipher.
[ (originally presented at FSE 2006 conference)]
The core of the cipher is the VMPC function, a transformation of ''n''-element
permutation
In mathematics, a permutation of a set is, loosely speaking, an arrangement of its members into a sequence or linear order, or if the set is already ordered, a rearrangement of its elements. The word "permutation" also refers to the act or p ...
s defined as:
for x from 0 to n-1:
g(x) = VMPC(f)(x) = f(f(f(x))+1)
The function was designed such that inverting it, i.e. obtaining from , would be a complex problem. According to computer simulations the average number of operations required to recover from 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.
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
In cryptography, encryption is the process of encoding information. This process converts the original representation of the information, known as plaintext, into an alternative form known as ciphertext. Ideally, only authorized parties can dec ...
algorithm – the VMPC
stream cipher
stream cipher is a symmetric key cipher where plaintext digits are combined with a pseudorandom cipher digit stream ( keystream). In a stream cipher, each plaintext digit is encrypted one at a time with the corresponding digit of the keystream ...
. The algorithm allows for efficient in software implementations; to encrypt bytes of plaintext do:
''All arithmetic is performed modulo 256.''
i := 0
while GeneratingOutput:
a := S
j := S
+ a
output S
[S[j + 1">[S[j.html" ;"title="[S[j">[S[j + 1 swap S[i">[S[j.html"_;"title="[S[j">[S[j<_a>_+_1.html" ;"title="[S[j.html" ;"title="[S[j">[S[j + 1">[S[j.html" ;"title="[S[j">[S[j + 1 swap S[iand S[j]
(''b := S[j]; S[i] := b; S[j] := a)'')
i := i + 1
endwhile
Where 256-element permutation and integer value are obtained from the encryption password using the VMPC-KSA (Key Scheduling Algorithm).
References
External links
VMPC HomepageOriginal conference paper on VMPC from okna wrocław (PDF)Kamil Kulesza: On inverting the VMPC one-way functionUnofficial C implementation of VMPC Stream cipherUnofficial 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
Stream ciphers
{{cryptography navbox , stream