Szyfrowanie przestawieniowe jest klasyczną metodą szyfrowania polegającą na zmianie
kolejności liter w szyfrowanym tekście. Często używa się reguł zamiany opartych na różnych
figurach geometrycznych – w tym zadaniu użyjemy kwadratu. Szyfrowanie będzie polegało
na wprowadzeniu tekstu do kwadratowej tablicy szyfrującej o wymiarach \(\displaystyle{ n \times n}\) po kolei
wierszami, a następnie odczytaniu tekstu z tablicy kolumnami od lewej do prawej. Wymiar \(\displaystyle{ n}\)
tablicy jest najmniejszą liczbą, przy której tekst zmieści się w całości w kwadracie \(\displaystyle{ n \times n}\) .
W przypadku, gdy tekst jest krótszy i nie wypełnia wszystkich pól tablicy, puste pola
uzupełnia się znakami odstępu. W tym zadaniu znaki odstępu będziemy oznaczać _
Przykład:
Załóżmy, że tekst ALGORYTM_PRZESTAWIENIOWY ma być zaszyfrowany w tablicy
kwadratowej. Liczba znaków w tekście do zaszyfrowania jest równa \(\displaystyle{ 24}\), czyli tablica
szyfrująca ma wymiary \(\displaystyle{ 5 \times 5}\) . Ostatni element tablicy będzie uzupełniony znakiem odstępu.
Tekst zapisujemy do tablicy wierszami.
c) Zapisz algorytm (w postaci listy kroków, schematu blokowego lub w wybranym języku
programowania), który szyfruje zadany tekst sposobem opisanym w tym zadaniu i jest
zgodny z poniższą specyfikacją.
Specyfikacja
Dane:
d
– dodatnia liczba całkowita, długość tekstu do zaszyfrowaniatekst[1…d]
– tablica zawierająca tekst do zaszyfrowania, gdzie tekst[i]
, to i-ty znak w tekściedo zaszyfrowania
Wynik:
s
– dodatnia liczba całkowita, długość tekstu po zaszyfrowaniuszyfr[1…s]
– tablica zawierająca tekst po zaszyfrowaniu, gdzie szyfr[i]
, to i-ty znak w tekściepo zaszyfrowaniu
Z góry THX.