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].

Przypisy

  1. a b c d Bruce Schneier: Kryptografia dla praktyków: protokoły, algorytmy i programy źródłowe w języku C. Warszawa: Wydawnictwa Naukowo-Techniczne, 2002, s. 385–387. ISBN 83-204-2678-2.