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 -