Kryptografia z Pythonem - algorytm ROT13

Do tej pory poznałeś algorytmy szyfru odwrotnego i szyfru Cezara. Omówmy teraz algorytm ROT13 i jego implementację.

Wyjaśnienie algorytmu ROT13

Szyfr ROT13 odnosi się do formy skróconej Rotate by 13 places. Jest to szczególny przypadek szyfru Cezara, w którym przesunięcie wynosi zawsze 13. Każda litera jest przesuwana o 13 miejsc w celu zaszyfrowania lub odszyfrowania wiadomości.

Przykład

Poniższy schemat przedstawia obrazowo proces algorytmu ROT13 -

Kod programu

Programowa implementacja algorytmu ROT13 wygląda następująco -

from string import maketrans

rot13trans = maketrans('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', 
   'NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm')

# Function to translate plain text
def rot13(text):
   return text.translate(rot13trans)
def main():
   txt = "ROT13 Algorithm"
   print rot13(txt)
	
if __name__ == "__main__":
   main()

Możesz zobaczyć wyjście ROT13, jak pokazano na poniższym obrazku -

Wada

Algorytm ROT13 wykorzystuje 13 zmian. Dlatego bardzo łatwo jest przesuwać znaki w odwrotnej kolejności, aby odszyfrować zaszyfrowany tekst.

Analiza algorytmu ROT13

Algorytm szyfru ROT13 jest uważany za szczególny przypadek szyfru Cezara. Nie jest to bardzo bezpieczny algorytm i można go łatwo złamać za pomocą analizy częstotliwości lub po prostu wypróbować możliwych 25 kluczy, podczas gdy ROT13 można złamać, przesuwając o 13 miejsc. Dlatego nie obejmuje żadnego praktycznego zastosowania.