VMPC – Zmiennie Modyfikowane Złożenie Permutacji
VMPC (Variably Modified Permutation Composition) to funkcja oraz algorytm szyfrowania stworzony przez Bartosza Żółtaka, zaprezentowany na międzynarodowej konferencji kryptograficznej Fast Software Encryption w 2004 roku. Algorytm VMPC charakteryzuje się prostą budową, ale jego odwrócenie okazuje się trudne.
Definicja i Działanie
Funkcję VMPC można zdefiniować dla n-elementowej permutacji f jako:
Symulacje pokazują, że odwrócenie permutacji g dla różnych rozmiarów permutacji wymaga ogromnej liczby operacji:
- Dla 16-elementowej permutacji: około 211 operacji (ok. 2000)
- Dla 64-elementowej permutacji: około 253 operacji (ok. 9 biliardów)
- Dla 256-elementowej permutacji: około 2260 operacji
Algorytm Szyfrowania VMPC
Algorytm szyfrowania oparty na VMPC jest szyfrem strumieniowym. Proces szyfrowania L-znakowej informacji przedstawia się następująco:
1. n = 0 2. Powtarzaj kroki 3-6 L razy: 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
W tym procesie P to 256-elementowa permutacja, a s to 1-bajtowa zmienna, uzyskana z hasła szyfrującego przy użyciu algorytmu VMPC-KSA.
Bezpieczeństwo VMPC
W 2006 roku Dr Kamil Kulesza z Cambridge University ocenił, że VMPC nie jest dobrym kandydatem na jednokierunkową funkcję kryptograficzną. Wnioski te opierają się na:
- Istnieniu kluczy, które mogą być odwrócone w czasie liniowym.
- Obecności słabych kluczy, dla których wystarczy odgadnięcie dużej części wartości.
- Braku gwarancji, że VMPC zawsze działa jako funkcja różnowartościowa.
- Potencjalnej możliwości znalezienia kolejnych zbiorów słabych kluczy.
- Atakach opartych na kryptoanalizie dużych zbiorów danych.
W latach 2005–2015 opublikowano prace dotyczące ataków na VMPC, które koncentrowały się na analizie kryptograficznej. W praktyce ataki te wymagają jednak dużej ilości zaszyfrowanych danych używających tego samego klucza.