Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Please write a code using c++ for the following instructions: The Vigenere CBC encipher needs a key and an IV. For this assignment, you would

Please write a code using c++ for the following instructions:

The Vigenere CBC encipher needs a key and an IV. For this assignment, you would allow the user to enter a key (key length ranges from 2 to 10) and an IV with the same length as key. You may want to mandate that the length of IV should be the same as the key. Inputs to the Vigenere CBC decipher should be the same key and IV, as well as the ciphertext. The ciphertext sequence should be generated by the Vigenere CBC encipher.

The easy way to allow the users input is using the command line arguments. For example, assuming the executable of your Vigenere CBC encipher is called V_encipher, plaintext file is called sample.txt, the key is rock and the IV is dark. The Unix command line to run the encipher would look like this:

./V_encipher sample.txt rock dark

Assuming your encipher would save the ciphertext to a file ciphertext.txt and your decipher executable is called V_decipher (the key and the IV are same as the above), the Unix command line to run the decipher would look like this:

./V_decipher ciphertext.txt rock dark

3.3. Outputs

As mentioned above, you would create two programs: one for the encipher (including the preprocessing) and one for the decipher. The outputs of the encipher program should include the following:

Original text file name

Key

IV

Block size

Plaintext (after preprocessing) printed on the screen

Number of characters in plaintext (before padding)

Ciphertext printed on the screen

Name of ciphertext file (ciphertext saved to a file)

Number of padding characters

The ciphertext file will be used as one of the inputs to the decipher. The outputs of the decipher program should include the following:

Ciphertext file name

Number of characters in ciphertext

Recovered plaintext printed on the screen

This is the text for the output

"Cipher block chaining (CBC) is a mode of operation for a block cipher (one in which a sequence

of bits are encrypted as a single unit or block with a cipher key applied to the entire block).

Cipher block chaining uses what is known as an initialization vector (IV) of a certain length.

One of its key characteristics is that it uses a chaining mechanism that causes the decryption

of a block of ciphertext to depend on all the preceding ciphertext blocks.

As a result, the entire validity of all preceding blocks is contained in the

immediately previous ciphertext block. A single bit error in a ciphertext block affects

the decryption of all subsequent blocks. Rearrangement of the order of the ciphertext

blocks causes decryption to become corrupted"

Also, text should be printed on screen eliminating special characters and spaces from text.

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image_2

Step: 3

blur-text-image_3

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Modern Database Management

Authors: Heikki Topi, Jeffrey A Hoffer, Ramesh Venkataraman

13th Edition

0134773659, 978-0134773650

More Books

Students also viewed these Databases questions