Przeczytaj
Specyfikacja problemu:
Napisz program, którego zadaniem będzie zaszyfrowanie i zdeszyfrowanie wiadomości „WIOSENNIE” dla klucza równego 3, przy użyciu szyfru Cezara.
Napisz program, którego zadaniem będzie zaszyfrowanie i zdeszyfrowanie wiadomości „WIOSENNIE” dla klucza równego 3, przy użyciu szyfru Cezara.
Porównaj swoje rozwiązanie z animacją.
Na wstępie warto przypomnieć sposób działania szyfru Cezara.
Każda litera z tekstu jawnego jest zamieniana na inną, oddaloną o określoną liczbę pozycji w alfabecie. Ta liczba liter zwana jest kluczem szyfrującymkluczem szyfrującym. Juliusz Cezar używał klucza równego 3. Zobaczmy zatem, w jaki sposób można zaszyfrować wszystkie litery alfabetu łacińskiego.
Z powyższego przykładu wynika, że litera A
zamieniona została na literę D
. Dzieje się tak, dlatego że litera D
oddalona jest o 3 pozycje od litery A
w alfabecie łacińskim.
Pseudokod
Pseudokod algorytmu szyfrującego przy użyciu szyfru Cezara wygląda następująco:
W powyższym pseudokodzie wykorzystaliśmy następującą notację: tekst_jawny[i]
. Ozncza ona odwołanie się od i‑tego znaku w ciągu znaków. Pętla w linijce 4. wykonuje się, zaczynając od wartości 0, czyli założyliśmy, że indeks pierwszej litery z ciągu znaków wynosi 0 (jak w przypadku języka C++).
Komputerowa realizacja w C++
Zanim spróbujemy napisać własną implementacjęwłasną implementację algorytmu szyfru Cezara, należy przypomnieć o kilku istotnych zagadnieniach związanych z językiem C++.
Aby odwołać się do i‑tego znaku w łańcuchu znaków (
string
), należy użyć notacji:tekst_jawny[i]
, gdzietekst_jawny
to nazwa łańcucha znaków.W celu uzyskania długości łańcucha znaków użyjemy funkcji
length()
w następujący sposób:tekst_jawny.length()
, gdzietekst_jawny
to nazwa łańcucha znaków.Wykonując dowolne działanie arytmetyczne na konkretnym znaku w łańcuchu znaków, należy pamiętać, że zostanie on zastąpiony kodem z tablicy ASCII. Przykładowo, w tablicy ASCII mała litera
a
ma wartość 97.
Jak to odszyfrować?
W celu zaszyfrowania liter należy wartość klucza szyfrującego dodawać do tekstu jawnego. Jeżeli chcemy odszyfrować tekst, wystarczy wartość klucza odejmować od tekstu zaszyfrowanego.
W prezentacji multimedialnej znajdziesz implementację algorytmu szyfrującego przy użyciu szyfru Cezara, napisaną w języku w C++.
Słownik
komputerowa realizacja algorytmu przy użyciu języka programowania; często mianem implementowania nazywamy również sam proces tworzenia programu
wartość liczbowa używana do określania liczby liter, o którą należy przesunąć litery z tekstu jawnego, aby uzyskać litery zaszyfrowane; np. jeśli klucz jest równy 3, to litera A
zostanie zamieniona na literę D