Szyfrowanie kolumnowe jest jedną z metod szyfrowania przestawieniowego, polegającego na zmianie kolejności znaków w szyfrowanym tekście. W tej metodzie jest wykorzystywana tabela o dodatniej liczbie wierszy równej k. Liczba k jest nazywana kluczem. Wiersze i kolumny tabeli są numerowane liczbami naturalnymi, począwszy od 1. Znaki tekstu, który ma być zaszyfrowany, wpisujemy do kolejnych kolumn tabeli, zaczynając od jej lewego górnego rogu. W kolumnach nieparzystych znaki wpisujemy od góry do dołu, a w parzystych od dołu do góry. Puste miejsca w ostatniej rozpoczętej kolumnie wypełniamy znakiem „_” oznaczającym spację. Następnie odczytujemy kolejne wiersze od góry do dołu (każdy z nich od lewej do prawej), w wyniku czego uzyskujemy szyfrogram.
Przykład: dla klucza k=3 i tekstu MATURA_Z_INFORMATYKI budujemy tabelę:
M | A | _ | F | O | Y | K |
A | R | Z | N | R | T | I |
T | U | _ | I | M | A | _ |
i otrzymujemy szyfrogram MA_FOYKARZNRTITU_IMA_.
Zadanie 2.1. (0–2)
Do zaszyfrowania pewnego 40-znakowego cytatu z wypowiedzi Juliusza Cezara użyto metody szyfru kolumnowego o kluczu 10. Otrzymano szyfrogram:
NKI_ATE_USGACYOKZZ_YYSJTCWEKI_SAEMTRLE_P
Rozszyfruj ten cytat.
Odpowiedź: ..................................................................................................
Zadanie 2.2. (0–4)
W wybranym przez siebie języku programowania, w pseudokodzie lub w postaci listy kroków, napisz algorytm deszyfrujący tekst, który został zakodowany szyfrem kolumnowym.
Specyfikacja:
Dane:
k – klucz, liczba całkowita większa od 0
n – liczba znaków w tekście zaszyfrowanym, n jest wielokrotnością k
S[1..n] – ciąg znaków (tekst do odszyfrowania)
Wynik:
T[1..n] – ciąg znaków (tekst odszyfrowany)
Algorytm:
1.
2.1
Za poprawne odszyfrowanie – 2 punkty
Za odpowiedź z jednym błędem - 1 punkt
Odpowiedź:
NAUCZYCIELEM_WSZYSTKIEGO_JEST_PRAKTYKA
2.2
Za poprawny algorytm – 4 punkty,
w tym:
− za poprawne przestawianie wskaźnika elementu
początkowego dla pętli wewnętrznych
(po wykonaniu pętli wewnętrznej +1) – 1 punkt
− za poprawne indeksowanie komórek przy
nieparzystej iteracji (zwiększanie o P) – 1 punkt
− za poprawne indeksowanie komórek przy
nieparzystej iteracji (zmniejszanie o P) – 1 punkt
− za poprawny kierunek indeksowania pętli
odczytujących – 1 punkt
Przykładowe rozwiązanie:
P←n/k;
W←0;z←P;
dla i=1, ..., P wykonuj
W←W+1;
dla j=1 ... k wykonuj
T←T+S[W]; W←W+z;
W←W-z;
z←z*(-1);
Źródła:
Arkusz: https://egzamin-informatyka.blogspot.com/2021/07/arkusz-min-r11p-193.html
Zasady oceniania: https://egzamin-informatyka.blogspot.com/2019/07/zasady-oceniania-min-r11p-193-i-min.html