Crittografia con Python - Algoritmo ROT13

Fino ad ora, hai imparato a conoscere gli algoritmi di cifratura inversa e di cifratura Caesar. Parliamo ora dell'algoritmo ROT13 e della sua implementazione.

Spiegazione dell'algoritmo ROT13

La cifratura ROT13 si riferisce alla forma abbreviata Rotate by 13 places. È un caso speciale di Caesar Cipher in cui lo spostamento è sempre 13. Ogni lettera viene spostata di 13 posizioni per crittografare o decrittografare il messaggio.

Esempio

Il diagramma seguente spiega graficamente il processo dell'algoritmo ROT13:

Codice programma

L'implementazione del programma dell'algoritmo ROT13 è la seguente:

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

Puoi vedere l'output ROT13 come mostrato nell'immagine seguente -

Inconveniente

L'algoritmo ROT13 utilizza 13 turni. Pertanto, è molto facile spostare i caratteri in modo inverso per decrittografare il testo cifrato.

Analisi dell'algoritmo ROT13

L'algoritmo di cifratura ROT13 è considerato come un caso speciale di Caesar Cipher. Non è un algoritmo molto sicuro e può essere rotto facilmente con l'analisi della frequenza o semplicemente provando 25 tasti possibili mentre ROT13 può essere rotto spostando 13 posizioni. Pertanto, non include alcun utilizzo pratico.