[SOLVED] Cryptanalysis

15.00 $

Programming resource
Digital learning resource
Category:
Practical programming resource
Suitable for guided study and reference
Tutor guidance available when needed

Description

4.7/5 - (4 votes)

Cryptanalysis

Your country is at war and your enemies are using a secret code to communicate with each other. You have managed to intercept a message that read as follows:
:mmZ\dxZmx]Zpgy
The message is obviously encrypted using the enemys secret code. You have just learned that their encryption method is based upon the ASCII code. Individual characters in a string are encoded using this system. For
example, the letter `A’ is encoded using the number 65 and `B’ is encoded using the number 66.
Your enemys secret code takes each letter of the message and encrypts it as follows (using a secret key):
If (OriginalChar + Key > 126) then
EncryptedChar = ((OriginalChar + Key) – 127) + 32
Else
EncryptedChar = (OriginalChar + Key)
For example, if the enemy uses Key = 10 then the message \Hey” would be
encrypted as:
Character ASCII
H 72
e 101
y 121
Encrypted H = (72 + 10) = 82 = R in ASCII
Encrypted e = (101 + 10) = 111 = o in ASCII
Encrypted y = 32 + ((121 + 10) – 127) = 36 = $ in ASCII
Consequently, \Hey” would be transmitted as \Ro$”.
Write a program that decrypts the intercepted message. You only know that the key used is a number between 1 and 100. Your program should try to decode the message using all possible keys between 1 and 100. When
you try the valid key, the message will make sense. For all other keys, the message will appear as gibberish.
HINT: since the string has a nin it, be sure to escape it with an additional n. You will want to put the following into your Java program.
:mmZ\\dxZmx]Zpgy

Resource details

Understand the Task Before You Use the Resource

Review the requirements, identify the programming concepts involved, study the implementation and test your understanding with your own examples and modifications.