Transposition Cipher
Transposition Cipher è un algoritmo crittografico in cui l'ordine degli alfabeti nel testo in chiaro viene riorganizzato per formare un testo cifrato. In questo processo, gli alfabeti di testo normale non sono inclusi.
Esempio
Un semplice esempio di cifrario di trasposizione è columnar transposition cipherdove ogni carattere nel testo normale è scritto orizzontalmente con la larghezza dell'alfabeto specificata. Il codice è scritto verticalmente, il che crea un testo cifrato completamente diverso.
Considera il testo normale hello worlde applichiamo la semplice tecnica di trasposizione colonnare come mostrato di seguito
I caratteri di testo normale vengono posizionati orizzontalmente e il testo cifrato viene creato con formato verticale come : holewdlo lr. Ora, il destinatario deve utilizzare la stessa tabella per decrittografare il testo cifrato in testo normale.
Codice
Il seguente codice di programma dimostra l'implementazione di base della tecnica di trasposizione colonnare:
def split_len(seq, length):
return [seq[i:i + length] for i in range(0, len(seq), length)]
def encode(key, plaintext):
order = {
int(val): num for num, val in enumerate(key)
}
ciphertext = ''
for index in sorted(order.keys()):
for part in split_len(plaintext, len(key)):
try:ciphertext += part[order[index]]
except IndexError:
continue
return ciphertext
print(encode('3214', 'HELLO'))
Spiegazione
Utilizzo della funzione split_len(), possiamo dividere i caratteri di testo semplice, che possono essere inseriti in formato colonna o riga.
encode aiuta a creare un testo cifrato con la chiave che specifica il numero di colonne e stampa il testo cifrato leggendo i caratteri in ogni colonna.
Produzione
Il codice del programma per l'implementazione di base della tecnica di trasposizione colonnare fornisce il seguente output:
Note- I crittoanalisti hanno osservato un miglioramento significativo della sicurezza crittografica quando viene eseguita la tecnica di trasposizione. Hanno anche notato che la ricrittografia del testo cifrato utilizzando lo stesso cifrario di trasposizione crea una maggiore sicurezza.