homework

0 comments

Homework 1 – Permutation Cipher in C++

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 gentlemendo not readeachother’smailx2143 2143 2143 2143 2143 2143 2143 2143 2143 2143 egtn elem nod n to r ae dae hco htre s’m iaxlEncrypted 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 permutationinformation via standard input (keyboard).
  • To decrypt: a binary file that includes an encrypted ciphertext, and a block size and thepermutation 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: PlaintextFileOutput 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: CiphertextFileOutput 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 mailThe program should be able to process up to 8 characters at each block with a minimum of 2 characters. Submit your makefile, source code (encrypt.h encrypt.cpp, decrypt.h, decrypt.cpp, main.cpp) and test files to your BitBucket repository.

About the Author

Follow me


{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}