Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Dan seems certain that the messages are encoded using a simple substitution ciph

ID: 3776578 • Letter: D

Question

Dan seems certain that the messages are encoded using a simple substitution cipher. We will start by learning how they work. In a simple substitution cipher, letters in the original message are simply substituted with another letter. For example, all of the "A"s in the original message might be changed to "G"s in the encrypted message. All of the "B"s might be "Q"s.

The alphabet of the encrypted messages Dan has discovered is "ABCDEFGHIJKLMNOPQRSTUVWXYZ' ". In other words, we will be dealing with only the upper-case English letters, apostrophes, and spaces. To encode and decode a message, we need to know the substitution alphabet, which is a permutation of the original alphabet. This tells us which letters we need to exchange. For example, the substitution alphabet "TQVMHKJOXLGZWYN 'RIPDAUFCESB" would mean that we substitute "A" "T", "B" "Q", "C" "V", ... , "Z" "E",  "'" "S", and " " "B".

Compose a function substitution which accepts two arguments. The first parameter message will be a string representing a message we want to encode or decode. The second parameter sub_alpha will be a list of exactly 28 characters representing the substitution alphabet. The return value should be a string representing the encoded version of the input message. A dictionary may be useful.

Using the example substitution alphabet above, you should be able to decode a message from the string " ZP'WRZPAHPURSOFPNHWRPHCVJASOZ".

You need only submit the code defining substitution in this step.

Explanation / Answer

Program 1)

Program 2:

Substitution Cipher (Java)

import java.util.*;
class SubCipher
{
public static void main(String args[])
{
Scanner sc=new Scanner(System.in);
System.out.println(“Enter the plain text”);
String pl=sc.nextLine();
pl=pl.toUpperCase();
System.out.println(pl);
System.out.println(“Enter the shift factor”);
int n=sc.nextInt();
System.out.println(“Cipher Text:”);
char a[]= pl.toCharArray();
for(int i=0;i<a.length;i++)
{
a[i]=(char)(n+(int)a[i]);
}
for(int i=0;i<a.length;i++)
{
System.out.print(a[i]);
}
System.out.println();
}
}