The permutation ciphers are used to generate a ciphertext (encrypted text) by re-arranging the position of the letters in a given plaintext.
How does it work?
1. Select the block size (n) and a permutation.
2. Divide a given plaintext into blocks of n letters and use ‘x’ as padding, if necessary.
3. Apply a permutation to each block and generate the encrypted ciphertext.
For example, for n = 4 and permutation of (2, 1, 4, 3)
Unencrypted plaintext is gentlemen do not read each other’s mail [1]
1234 1234 1234 1234 1234 1234 1234 1234 1234 1234
gent leme n do not rea d ea ch o ther ’s m ailx
2143 2143 2143 2143 2143 2143 2143 2143 2143 2143
egtn elem nod n to r ae dae hco htre s’m iaxl
Encrypted ciphertext is egtnelem nodn tor ae daehco htres’m iaxl
The program needs to get the following information from the user:
To encrypt: a text file that includes the plaintext, and a block size and the permutation information via standard input (keyboard).
To decrypt: a binary file that includes an encrypted ciphertext, and a block size and the permutation information via standard input (keyboard).
Here's what a sample run should look like:
> ./PermCipher
Usage: ./PermCipher option -i InputFileName -o OutputFileName Options: -e Encrypt -d Decrypt
> ./PermCipher -e -i PlaintextFile -o CiphertextFile
Welcome to the Permutation Cipher Selected Mode: Encrypt
Input File: PlaintextFile Output File: CiphertextFile
Please enter the block size (2-8) and the permutation (e.g., 4 2413): 4 2143
Encrypted ciphertext file: egtnelem nodn tor ae daehco htres’m iaxl
> ./PermCipher -d -i CiphertextFile -o PlaintextFile
Welcome to the Permutation Cipher Selected Mode: Decrypt
Input File: CiphertextFile Output File: PlaintextFile
Please enter the block size (2-8) and the permutation (e.g., 4 2413): 4 2143
Decrypted ciphertext file: gentlemen do not read each other’s mail
The program should be able to process up to 8 characters at each block with a minimum of 2 characters
This assignment has been answered 5 times in private sessions.
© 2024 Codify Tutor. All rights reserved