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.