Szyfr Gaderypoluki
Szyfr Gaderypoluki polega na zamienianiu liter parami. Nazwa szyfru pochodzi od par: GA, DE, RY, PO, LU, KI. Każda litera z pary zostaje zastąpiona drugą literą, na przykład G zmienia się w A, a A w G. Litery, które nie należą do żadnej pary, pozostają bez zmian.
Ten sam sposób służy do szyfrowania i deszyfrowania wiadomości. Po ponownym zastosowaniu szyfru otrzymujemy pierwotny tekst.

Program w Pythonie
W linijkach 1-15 znajduje się funkcja szyfr_gaderypoluki. Jest to najważniejsza część programu, ponieważ opisuje sposób działania szyfru. Funkcja otrzymuje napis, który ma zostać zaszyfrowany albo odszyfrowany.
W linijkach 2-6 tworzony jest słownik pary. Słownik przechowuje wszystkie pary liter używane w szyfrze: G z A, D z E, R z Y, P z O, L z U oraz K z I. Każda litera jest zapisana w nim dwa razy, na przykład "G": "A" oraz "A": "G". Dzięki temu program wie, że literę G ma zamienić na A, a literę A na G.
W linijce 7 powstaje pusta zmienna wynik. Będzie do niej dopisywana gotowa, zaszyfrowana wiadomość. W linijkach 9-13 pętla bierze po kolei każdy znak tekstu i zamienia go na wielką literę. Jeżeli znak znajduje się w słowniku, program odczytuje jego parę i dopisuje ją do wyniku. Jeżeli znak nie należy do żadnej pary, na przykład jest spacją, cyfrą lub literą B, zostaje przepisany bez zmian.
W linijce 15 funkcja zwraca cały gotowy tekst. Ten sam program służy zarówno do szyfrowania, jak i deszyfrowania. W szyfrze Gaderypoluki nie trzeba tworzyć osobnej funkcji do odczytywania wiadomości, ponieważ ponowne zamienienie liter parami przywraca tekst początkowy.
W linijce 17 zapisana jest wiadomość GRUPA. W linijkach 19-20 program wywołuje funkcję, szyfruje tę wiadomość i wypisuje wynik AYLOG. W linijkach 22-23 funkcja zostaje użyta drugi raz, tym razem dla szyfrogramu. Ponowna zamiana liter parami daje z powrotem słowo GRUPA.
def szyfr_gaderypoluki(napis):pary = {"G": "A", "A": "G", "D": "E", "E": "D","R": "Y", "Y": "R", "P": "O", "O": "P","L": "U", "U": "L", "K": "I", "I": "K"}wynik = ""for znak in napis.upper():if znak in pary:wynik = wynik + pary[znak]else:wynik = wynik + znakreturn wyniktajemna_wiadomosc = "GRUPA"zaszyfrowana = szyfr_gaderypoluki(tajemna_wiadomosc)print("Zaszyfrowana wiadomość:", zaszyfrowana)odszyfrowana = szyfr_gaderypoluki(zaszyfrowana)print("Odszyfrowana wiadomość:", odszyfrowana)