Substitution Cipher – Dictionary

Introduction

A substitution cipher swaps letters in a message to encrypt it.

For example, let’s say this is our secret substitution dictionary:

key = {
"a": "z",
"b": "u",
"c": "g",
"d": "t"
}

If your secret message was “bad cab”, that would become “uzt gzu” after you substitute the letters according to the secret dictionary.

Assignment

1. Make a secret substitution dictionary. It must include every letter of the alphabet in lower case.

2. Use your key to create a cipher (encrypted message) of a string.

secret = "I get to eat a piece of cheesecake tomorrow."
cipher = ""
### your code goes here ###

# At the end, print the encrypted version of your message:
print(cipher)

3. Use a for loop to create a randomly generated dictionary key. Each letter needs to be in the key, and it needs to convert to another letter. No letter can be used twice, and a letter cannot be substituted for itself.

4. Use your skills to decode this cipher and figure out where the text came from. You don’t have to write a single program that solves it in one try. You can figure out the letters one at a time. Start out by figuring out which letters are substituted for “a” and “i” and “e”, for example.

Cuf vxic ujmy kqxm cqygov zb mqb rebxmbcm mky pyjmqc yn pi ounb, xjv um’c mgejbv ujmy x jurqmpxeb.

U vyj’m bhbj sjyk kqy’oo ebxv mquc. U rgbcc cypbyjb kuoo nujv um bhbjmgxooi. Pxizb x qgjvebv ibxec neyp jyk.

Nye mqb ebwyev . . . U vuvj’m vub yj Cyo 6. Wbemxujoi mqb ebcm yn mqb webk mqygrqm U vuv, xjv U wxj’m zoxpb mqbp. Pxizb mqbeb’oo zb x vxi yn jxmuyjxo pygejujr nye pb, xjv pi Kusulbvux lxrb kuoo cxi, “Pxes Kxmjbi uc mqb yjoi qgpxj zbujr my qxhb vubv yj Pxec.”

Xjv um’oo zb eurqm, leyzxzoi. ’Wxgcb U’oo cgeboi vub qbeb. Agcm jym yj Cyo 6 kqbj bhbeiyjb mqujsc U vuv.

Obm’c cbb . . . kqbeb vy U zbruj?

Mqb Xebc Leyrexp. Pxjsujv ebxwqujr ygm my Pxec my cbjv lbylob my xjymqbe loxjbm nye mqb hbei nuecm mupb xjv bflxjv mqb qyeutyjc yn qgpxjumi zoxq, zoxq, zoxq. Mqb Xebc 1 webk vuv mqbue mqujr xjv wxpb zxws qbeybc. Mqbi rym mqb lxexvbc xjv nxpb xjv oyhb yn mqb kyeov.

Xebc 2 vuv mqb cxpb mqujr, uj x vunnbebjm oywxmuyj yj Pxec. Mqbi rym x nuep qxjvcqxsb xjv x qym wgl yn wynnbb kqbj mqbi rym qypb.

Xebc 3. Kboo, mqxm kxc pi puccuyj. Ysxi, jym pujb lbe cb. Wyppxjvbe Obkuc kxc uj wqxerb. U kxc agcm yjb yn qbe webk. Xwmgxooi, U kxc mqb hbei oykbcm exjsbv pbpzbe yn mqb webk. U kygov yjoi zb “uj wyppxjv” yn mqb puccuyj un U kbeb mqb yjoi ebpxujujr lbecyj.

Kqxm vy iyg sjyk? U’p uj wyppxjv.

U kyjvbe un mquc oyr kuoo zb ebwyhbebv zbnyeb mqb ebcm yn mqb webk vub yn yov xrb. U lebcgpb mqbi rym zxws my Bxemq xoo eurqm. Rgic, un iyg’eb ebxvujr mquc: Um kxcj’m iyge nxgom. Iyg vuv kqxm iyg qxv my vy. Uj iyge lycumuyj U kygov qxhb vyjb mqb cxpb mqujr. U vyj’m zoxpb iyg, xjv U’p roxv iyg cgehuhbv.

Here’s another one:

Oxc yvw lb wgs vbugxcwsf mxuhqxwscd yo wgs vboxdglybxmzs sbf yo wgs qsdwscb dtlcxz xck yo wgs Ixzxja zlsd x dkxzz vbcsixcfsf aszzyq dvb. 

Ycmlwlbi wgld xw x fldwxbus yo cyvigza blbswa-wqy klzzlyb klzsd ld xb vwwscza lbdlibloluxbw zlwwzs mzvs icssb tzxbsw qgyds xts-fsdusbfsf zlos oyckd xcs dy xkxrlbiza tclklwles wgxw wgsa dwlzz wglbh flilwxz qxwugsd xcs x tcswwa bsxw lfsx. 

Wgld tzxbsw gxd - yc cxwgsc gxf - x tcymzsk, qglug qxd wgld: kydw yo wgs tsytzs yb lw qscs vbgxtta oyc tcswwa kvug yo wgs wlks. Kxba dyzvwlybd qscs dviisdwsf oyc wgld tcymzsk, mvw kydw yo wgsds qscs zxcisza uybuscbsf qlwg wgs kyesksbwd yo dkxzz icssb tlsusd yo txtsc, qglug ld yff msuxvds yb wgs qgyzs lw qxdb'w wgs dkxzz icssb tlsusd yo txtsc wgxw qscs vbgxtta. 

Xbf dy wgs tcymzsk cskxlbsf; zywd yo wgs tsytzs qscs ksxb, xbf kydw yo wgsk qscs kldscxmzs, sesb wgs ybsd qlwg flilwxz qxwugsd.