Variably Modified Permutation Composition: Difference between revisions

Content deleted Content added
Importing Wikidata short description: "Stream cipher" (Shortdesc helper)
Miliwatt (talk | contribs)
m Simplified the psuedocode by removing the excessive 'a' variable.
 
(5 intermediate revisions by 5 users not shown)
Line 1:
{{Short description|Stream cipher}}
'''VMPC''' ('''Variably Modified Permutation Composition''') for [[cryptography]] is a [[stream cipher]] similar to the
{{context|date=October 2009}}
well known and popular cipher [[RC4]] designed by [[Ron Rivest]]. It was designed by Bartosz Żółtak, presented in 2004 at the [[Fast Software Encryption]] conference. VMPC is a modification of the [[RC4]] cipher.<ref name=maximov>{{cite documentjournal |title=Two Linear Distinguishing Attacks on VMPC and RC4A and Weakness of RC4 Family of Stream Ciphers (Corrected) |author=Alexander Maximov |journal=Cryptology ePrint Archive |date=2007-02-22 |url=https://eprint.iacr.org/2007/070 }} (originally presented at FSE 2006 confernececonference)</ref>
 
'''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 Żółtak, presented in 2004 at the [[Fast Software Encryption]] conference. VMPC is a modification of the [[RC4]] cipher.<ref name=maximov>{{cite document |title=Two Linear Distinguishing Attacks on VMPC and RC4A and Weakness of RC4 Family of Stream Ciphers (Corrected) |author=Alexander Maximov |date=2007-02-22 |url=https://eprint.iacr.org/2007/070 }} (originally presented at FSE 2006 confernece)</ref>
 
The core of the cipher is the VMPC function, a transformation of ''n''-element [[permutation]]s defined as:
Line 12 ⟶ 10:
The function was designed such that inverting it, i.e. obtaining {{mono|f}} from {{mono|g}}, would be a complex problem. According to computer simulations the average number of operations required to recover {{mono|f}} from {{mono|g}} for a 16-element permutation is about 2<sup>11</sup>; for 64-element permutation, about 2<sup>53</sup>; and for a 256-element permutation, about 2<sup>260</sup>.{{Citation needed|date=September 2015}}
 
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".<ref name="Kulesza2006">{{cite documentweb|last1=Kulesza|first1=Kamil|date= 2008-10-27|title=On Inverting the VMPC One-Way Function|url=http://www-old.newton.ac.uk/preprints/NI06009.pdf|access-date=9 February 2015}}</ref>
 
The VMPC function is used in an [[encryption]] algorithm – the VMPC [[stream cipher]]. The algorithm allows for efficient in software implementations; to encrypt {{mono|L}} bytes of plaintext do:
Line 19 ⟶ 17:
i := 0
'''while''' GeneratingOutput:
aj := S[j + S[i]]
j := S[j + a]
'''output''' S[S[S[j]] + 1]
swap S[i] and S[j] <span style="color: green;">(''b := S[j]; S[ij] := bS[i]; S[ji] := ab)'')</span>
i := i + 1