
1. Szyfr Płotkowy
Szyfry przestawieniowe - polegają na pewnej ustalonej z góry permucacji znaków w szyfrowanym tekście. Szyfr płotkowy jest jednym z najprostrzych szyfrów permutacyjnych. Kluczem szyfru płotkowego jest liczba określająca jego głębokość. Dla przykładu tekst jawny:

Zgodnie z zasadami kryptografii usunęłem z tekstu białe znaki (spacje), aby nie zakłócały szyfrogramu, a na koniec płotka dodałem literę X.
Dodana została, gdyż bez niej płotek jest niepełny, a szyfrowanie i późniejsze deszyfrowanie wymaga pełnego (symetrycznego) płotka.
Z tak utworzonej struktury odczytujemy litery wierszami, co da nam przedstawiony szyfrogram.
Do implementacji struktury płotka w programie, najwygodniej jest użyć macierzy, o wymiarach NxM. gdzie M=K+1 a N=len(C)/3 len(C) - długość tekstu jawnego C
W przypadku naszego tekstu, tworzymy macierz:
N=7 i M=4

Jak widać tekst jawny zapisujemy kolumnami a zczytujemy wierszami. Bardzo ważną rzeczą jest, aby parzyste kolumny macierzy były niepełne (niewypełnione elementy pierwszy i ostatni). Niezachowanie tej reguły spowoduje, że nie powstanie prawidłowy płotek.
Deszyfrowanie wiadomości tak zaszyfrowanej, jest równie proste jak jej zaszyfrowanie. Ponownie musimy obliczyć rozmiar macierzy w sposób już znany, a następnie wypełnić ją wierszami i odczytać kolumnami (pamiętając o pustych komórkach w parzystych kolumnach).
2. Szyfr oparty na macierzy
Jeżeli utworzymy sobie macierz o określonych wymiarach MxN, i będziemy wypełniać ją szyfrowanym tekstem otrzymamy prosty szyfr blokowy oparty na macierzy. Ideą takiego algorytmu, jest zastosowanie pewnej permutacji kolumn macierzy podczas odczytu z niej tekstu. Inaczej mówiąc - zapisujemy wierszami, odczytujemy kolumnami w pewnej ustalonej kolejności.
Ustalmy sobie że blokiem szyfrowania będzie macierz wielkości 4x3 a kluczem (kolejnością odczytywania kolumn) K={4,1,3,2}. Zaszyfrujmy tekst:

Jak widać, nie zmieścił się nam cały szyfrowany tekst. Odczytujemy więc kolumny wg. klucza K - czyli najpierw 4, później 1, 3 a nakońcu 2.

Jak widać blok jest niepełny. Są dwa rozwiązania, brakujące elementy można zastąpić znakami takimi jak np "X", co jest metodą prostszą.
Po odczycie kolumn otrzymany cały szyfrogram
Podsumowanie
Przedstawiłem tu tylko dwa algorytmy szyfrowania przestawieniowego, jednakże możliwości wykorzystania macierzy są ogromne - można swobodnie stosować kombinacje przestawiania kolumn, wierszy, lub wszystkiego na raz - to tylko zależy od wyobraźni.
Źródło:
Autor: Anubis
http://binboy.sphere.pl/index.php?show=71