Variably Modified Permutation Composition
   HOME

TheInfoList



OR:

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 adver ...
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 Intell ...
. It was designed by Bartosz Żółtak, presented in 2004 at the
Fast Software Encryption Fast or FAST may refer to: * Fast (noun), high speed or velocity * Fast (noun, verb), to practice fasting, abstaining from food and/or water for a certain period of time Acronyms and coded Computing and software * ''Faceted Application of Subje ...
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 proc ...
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 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 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 decip ...
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.html"_;"title="[S[j.html"_;"title="[S[j">[S[j_+_1">[S[j.html"_;"title="[S[j">[S[j_+_1_____swap_S[i.html" ;"title="[S[j.html"_;"title="[S[j">[S[j_+_1.html" ;"title="[S[j.html" ;"title="[S[j">[S[j + 1">[S[j.html" ;"title="[S[j">[S[j + 1 swap S[i">[S[j.html"_;"title="[S[j">[S[j_+_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 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 Stream ciphers {{cryptography navbox , stream