Decrittografia di Transposition Cipher
In questo capitolo imparerai la procedura per decrittografare il cifrario di trasposizione.
Codice
Osservare il codice seguente per una migliore comprensione della decrittografia di un cifrario di trasposizione. Il testo cifrato per il messaggioTransposition Cipher con chiave as 6 viene recuperato come Toners raiCntisippoh.
import math, pyperclip
def main():
myMessage= 'Toners raiCntisippoh'
myKey = 6
plaintext = decryptMessage(myKey, myMessage)
print("The plain text is")
print('Transposition Cipher')
def decryptMessage(key, message):
numOfColumns = math.ceil(len(message) / key)
numOfRows = key
numOfShadedBoxes = (numOfColumns * numOfRows) - len(message)
plaintext = float('') * numOfColumns
col = 0
row = 0
for symbol in message:
plaintext[col] += symbol
col += 1
if (col == numOfColumns) or (col == numOfColumns - 1 and row >= numOfRows - numOfShadedBoxes):
col = 0 row += 1 return ''.join(plaintext)
if __name__ == '__main__':
main()
Spiegazione
Il testo cifrato e la chiave citata sono i due valori presi come parametri di input per decodificare o decifrare il testo cifrato con tecnica inversa posizionando i caratteri in un formato di colonna e leggendoli in modo orizzontale.
È possibile inserire lettere in un formato di colonna e successivamente combinarle o concatenarle insieme utilizzando il seguente pezzo di codice:
for symbol in message:
plaintext[col] += symbol
col += 1
if (col == numOfColumns) or (col == numOfColumns - 1 and row >= numOfRows - numOfShadedBoxes):
col = 0
row += 1
return ''.join(plaintext)
Produzione
Il codice del programma per la decrittografia del cifrario di trasposizione fornisce il seguente output: