Criptografia com Python - Algoritmo ROT13

Até agora, você aprendeu sobre cifra reversa e algoritmos de cifra de César. Agora, vamos discutir o algoritmo ROT13 e sua implementação.

Explicação do Algoritmo ROT13

A cifra ROT13 refere-se à forma abreviada Rotate by 13 places. É um caso especial de Cifra de César em que o deslocamento é sempre 13. Cada letra é deslocada em 13 lugares para criptografar ou descriptografar a mensagem.

Exemplo

O diagrama a seguir explica o processo do algoritmo ROT13 pictoricamente -

Código do Programa

A implementação do programa do algoritmo ROT13 é a seguinte -

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()

Você pode ver a saída ROT13 conforme mostrado na imagem a seguir -

Recua

O algoritmo ROT13 usa 13 turnos. Portanto, é muito fácil deslocar os caracteres no sentido inverso para descriptografar o texto cifrado.

Análise do Algoritmo ROT13

O algoritmo de cifra ROT13 é considerado um caso especial de Cifra de César. Não é um algoritmo muito seguro e pode ser quebrado facilmente com a análise de frequência ou apenas tentando 25 chaves possíveis, enquanto o ROT13 pode ser quebrado mudando 13 lugares. Portanto, não inclui nenhum uso prático.