Madryga
Madryga (również Algorytm Madrygi) – szyfr blokowy stworzony w 1984 przez W. E. Madrygę, zaprojektowany tak, aby był wygodny w implementacji programowej[1].
Opis algorytmu
Założeniami projektowymi szyfru były: bezpieczeństwo szyfru musiało się opierać na kluczu, a nie na tajności algorytmu; długość szyfrogramu powinna być równa długości szyfrowanego tekstu jawnego; nie powinny występować klucze słabe[1].
Ponieważ szyfr został stworzony tak, aby był wygodny w implementacji programowej, jedyne wykorzystywane w nim operacje to alternatywa wykluczająca oraz rotacje – obie te operacje wykonywane są na bajtach. Sam algorytm składa się z dwóch zagnieżdżonych cykli – cyklu zewnętrznego, który powtarzany jest 8 razy i zawiera cykl wewnętrzny, wykonujący operacje na bajtach tekstu jawnego. Iteracja cyklu wewnętrznego wykonywana jest dla 3-bajtowego (24-bitowego) bloku danych nazwanego ramką roboczą. Ostatni bajt okna jest sumowany modulo 2 z bitami klucza natomiast pierwsze dwa bajty przesuwane są cyklicznie o pewną, zmienną liczbę pozycji. Następnie ramka przesuwana jest o jeden bajt w prawo – jeżeli w pierwszej iteracji przetwarzaliśmy bajty 1, 2, 3 to w następnej będziemy przetwarzać bajty 2, 3, 4[1].
Analiza algorytmu dowiodła, że operacje w nim stosowane nie zapewniają efektu lawinowego podczas szyfrowania oraz że liczba jedynek i zer w szyfrogramie nie jest równomierna[1].