Décryptage du chiffre de transposition

Dans ce chapitre, vous apprendrez la procédure de déchiffrement du chiffrement de transposition.

Code

Observez le code suivant pour une meilleure compréhension du déchiffrement d'un chiffrement de transposition. Le texte chiffré du messageTransposition Cipher avec clé comme 6 est récupéré comme 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()

Explication

Le texte chiffré et la clé mentionnée sont les deux valeurs prises comme paramètres d'entrée pour décoder ou déchiffrer le texte chiffré en technique inverse en plaçant les caractères dans un format de colonne et en les lisant de manière horizontale.

Vous pouvez placer des lettres dans un format de colonne et ensuite les combiner ou les concaténer en utilisant le morceau de code suivant -

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)

Production

Le code de programme pour déchiffrer le chiffrement de transposition donne la sortie suivante -