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.