Question: S2_OneTimePad For all three problems, store the alphabet in a static array that contains only capital letters, i.e. the length of the array should be

S2_OneTimePad

For all three problems, store the alphabet in a static array that contains only capital letters, i.e. the length of the array should be 26, and you may have to convert any input text to uppercase.

Your alphabet should be stored as follows, but with all the alphabet:

final static char alphabet [] = {A, B, C};

You should have a method to convert a letter to an index of the alphabet array, and vice versa.

IMPORTANT NOTE: To get credit for the Hard, you only have to do the Hard part. To get credit for the Medium, you only have to do the Medium part. Code from the easy should be able to be re-used in the medium part and likewise for the hard part. So, if you do the Easy part and later decide to do the Medium, you haven't wasted your time. The difficulty of this problem varies based on the parts you complete, but you may only count it once (easy OR medium OR hard).

Easy:

A simple way to encrypt text is to simply shift each letter forward by a given number, n.

When n=13, and using just letters, the message is:

S2_OneTimePad For all three problems, store the alphabet in a static array

You are to create a program that prompts you to enter a message and the value of n, and then displays the cipher text. You must also have a program that decrypts the cipher text given an n value.

Medium:

The easy problem's encryption is easily broken. To make this type of encryption unbreakable, you simply need to change the n for each letter of the message.

that contains only capital letters, i.e. the length of the array should

You are to write a program that takes a message as input and then generates n values for each letter and the number of the input message, and displays the cipher-text. Then you are to create a program that decrypts the cipher text, given the n values. To make this as easy to use as possible, print the n values and cipher-text one line each. This will make it easier to copy and paste from your encrypting program to your decrypting program.

Example input:

Message: Meet me at three.

Key: 2,13,22,1,3,17,15,19,25,1,14,12,7

Cipher Text: ORAU PV PM SIFQL.

Hard:

One of the problems faced in cryptography, is how do you transfer the key?

The medium problem would require you to transmit a new set of n values for each message. Instead, you are to generate a large set of n values that is defined by the user, and then store the n values in a file.

Your encrypting suite should have three programs: A key generator, an encryptor, and decryptor. They key generator should allow the user to generate a key file with a specified number of n values. The encrypting program should ask the user for the location of the key file and the message, and then should output a file containing the encrypted text and update the current position of the key file. The decryptor should prompt the user to specify the location of the key file and the location of the encrypted text file, and display the decrypted text.

Example key file:

4

12,7,23,2,13,22,1,3,17,15,19,25,1,14,12,7,4,5,2,6,8

The first line is the current position of where to start from, and the next line is the n values.

Encrypted file:

4

ORAU PV PM SIFQL

The first line is the position in the key file that n values are from, and the second line is the cipher text.

After encrypting the message, the key file's position will be updated to the current position. In the example above, the new key file will look like:

17

12,7,23,2,13,22,1,3,17,15,19,25,1,14,12,7,4,5,2,6,8

When the decrypting program reads the encrypted file, it knows where in the key file to start reading n values.

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!