UWAGA konkurs!
Mistrz Programowania
Serwis algorytm.edu.pl zaprasza na kompleksowe zajęcia przygotowujące do matury z informatyki (nowa podstawa programowa) oraz dla uczniów szkół podstawowych do zajęć przygotowujących do Olimpiady Informatycznej Juniorów.
więcej informacji pod adresem szkola-fraktal.pl
Szyfr przestawieniowy charakteryzuje się tym, że w tekście zaszyfrowanym występują wszystkie znaki tekstu szyfrowanego (jawnego), ale są one poprzestawiane według ściśle określonego schematu np.:
Kolejne pary znaków zamieniamy miejscami. Jeśli liczba znaków jest nieparzysta, to ostatnia litera zostaje niezmieniona. Dla przykładu popatrzmy na wyraz lokomotywa:
Tekst jawny:
$$lokomotywa$$
Tekst zaszyfrowany (szyfrogram)
$$olokomywaw$$
Pierwsze $$o$$ zamieniamy z literą $$l$$, drugie $$o$$ z literą $$k$$, itd.
Żeby odszyfrować szyfrogram należy wykonać ponownie zamianę sąsiadujących liter parami.
Przesunięcie spółgłosek o jedno miejsceDrugim przykładem jest przesunięcie spółgłosek o jedno (kilka miejsc) miejsce w prawo (lewo). Ostatnia spółgłoska po prawej stronie "wskoczy" na miejsce pierwszej od lewej. Samogłoski zostają na swoich miejscach: Dla słowa lokomotywa szyfrogram będzie wyglądał następująco: Tekst jawny: $$lokomotywa$$ Szyfrogram: $$wolokomyta$$ Aby otrzymać tekst przed zaszyfrowaniem wystarczy przesunąć spółgłoski o jedno miejsce w lewo. Rozwiązanie zagadnienia szyfrowania jest następujące:
Deszyfrowanie będzie polegało na zastosowaniu powyższych kroków przechodząc wszystkie znaki od prawej do lewej. Rozwiązanie w C++:
Oczywiscie to są tylko dwa przykłady szyfrowania przestawieniowego. Można samemu spróbować wymysleć mniej lub bardziej złożony szyfr, który w jakis sposób (niewielki) zabezpieczy dane. |