Variably Modified Permutation Composition
![]() | This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
No issues specified. Please specify issues, or remove this template. |
![]() | It has been suggested that this article be merged into Variably modified permutation composition. (Discuss) Proposed since December 2010. |
This article may meet Wikipedia's criteria for speedy deletion because in its current form it serves only to promote or publicise an entity, person, product, or idea, and would require a fundamental rewrite in order to become encyclopedic. However, the mere fact that a company, organization, or product is a page's subject does not, on its own, qualify that page for deletion under this criterion. This criterion also does not apply where substantial encyclopedic content would remain after removing the promotional material as deletion is not cleanup; in this case please remove the promotional material yourself, or add the {{advert}} tag to alert others to do so. See CSD G11.
If this article does not meet the criteria for speedy deletion, or you intend to fix it, please remove this notice, but do not remove this notice from pages that you have created yourself. If you created this page and you disagree with the given reason for deletion, you can click the button below and leave a message explaining why you believe it should not be deleted. You can also visit the talk page to check if you have received a response to your message. Note that this article may be deleted at any time if it unquestionably meets the speedy deletion criteria, or if an explanation posted to the talk page is found to be insufficient.
Note to administrators: this article has content on its talk page which should be checked before deletion. Administrators: check links, talk, history (last), and logs before deletion. Consider checking Google.This page was last edited by Blackvisionit (contribs | logs) at 01:52, 4 May 2011 (UTC) (14 years ago) |
VMPC ("Variably Modified Permutation Composition") is encryption technology designed by Bartosz Zoltak, publicly presented in 2004 at an international cryptography conference Fast Software Encryption in Delhi, India.
The core of the technology is the VMPC one-way function, applied in an encryption algorithm - the VMPC stream cipher.
The VMPC function is a transformation of n-element permutations defined as:
for x from 0 do n-1: g(x) = VMPC(f(x)) = f(f(f(x))+1)
Interestingly inverting the function, i.e. obtaining f from g appears to 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.
Theoretically speaking - if these results were possible to be proved - it would imply that VMPC is a true one way function, which would solve the famous P vs NP problem.
In 2006 at Cambridge University Kamil Kulesza published a paper "On inverting the VMPC one-way function", which investigated the issue but it left the problem open - the one-wayness of the function was neither proved nor denied.
The VMPC one-way function is used in an encryption algorithm - the VMPC Stream Cipher (see what a stream cipher is. The algorithm is very efficient in software implementations (encrypt L bytes of plaintext do):
1. n = 0 2. Repeat steps 3-6 L times: 3. s = P[ (s + P[n]) mod 256 ] 4. Output = P[ (P[P[s]]+1) mod 256 ] 5. Temp = P[n] P[n] = P[s] P[s] = Temp 6. 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), which can be found at the VMPC Homepage along with the VMPC-MAC (Message Authentication Code) allowing to authenticate messages encrypted with the VMPC Stream Cipher.
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