VMPC ( Variably Modified Permutation Composition ) pour la cryptographie est un chiffrement de flux similaire au célèbre et populaire chiffrement RC4 conçu par Ron Rivest . Il a été conçu par Bartosz Żółtak, présenté en 2004 à la conférence Fast Software Encryption . VMPC est une modification du chiffrement RC4 .
Le cœur du chiffrement est la fonction VMPC, une transformation de permutations à n éléments définie comme :
pour x de 0 à n-1 : g(x) = VMPC(f)(x) = f(f(f(x))+1)
La fonction a été conçue de telle sorte que son inversion, c'est-à-dire l'obtention de f à partir de g , serait un problème complexe. Selon les simulations informatiques, le nombre moyen d'opérations nécessaires pour récupérer f à partir de g pour une permutation à 16 éléments est d'environ 2 11 ; pour une permutation à 64 éléments, d'environ 2 53 ; et pour une permutation à 256 éléments, d'environ 2 260 .
En 2006, à l'Université de Cambridge, Kamil Kulesza a étudié le problème de l'inversion de VMPC et a conclu que « les résultats indiquent que VMPC n'est pas un bon candidat pour une fonction cryptographique à sens unique ».
La fonction VMPC est utilisée dans un algorithme de chiffrement – le chiffrement de flux VMPC . L'algorithme permet des implémentations logicielles efficaces ; pour chiffrer L octets de texte en clair, procédez comme suit :
Toutes les opérations arithmétiques sont effectuées modulo 256. je := 0 pendant la génération de la sortie : a := S[i] j := S[j + a] sortie S[S[S[j]] + 1] échanger S[i] et S[j] ( b := S[j]; S[j] := S[i]; S[i] := b) ) je := i + 1 pour finir
Où la permutation P à 256 éléments et la valeur entière s sont obtenues à partir du mot de passe de cryptage à l'aide de l'algorithme de planification de clés VMPC-KSA.