{VERSION 3 0 "IBM INTEL NT" "3.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 }{CSTYLE "2D Output" 2 20 "" 0 1 0 0 255 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 256 "" 1 18 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 257 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 258 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 259 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 260 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{PSTYLE "Normal " -1 0 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Maple Output" 0 11 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }3 3 0 -1 -1 -1 0 0 0 0 0 0 -1 0 } {PSTYLE "" 11 12 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 } 1 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }} {SECT 0 {EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 2 " " }{TEXT 256 46 " Stream cipher encryption using MAPL E" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 364 " Th is worksheet will build a stream cipher based on MAPLE's random number generator. The seed to the random number generator must also be input ted, along with the message. If the seed of the encrypt does not match that of the decrypt then the message is not corrected decrypted. This uses parts of a procedure of John Cosgrave (St Patrick's Univ, Dublin , Ireland)." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 24 "crypto1.mws,wdj,10-29-98" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "restart:\nread(`c:/maplev4/bin.win/crypto.mpl`);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 78 "We shall encrypt the following sentence u sing MAPLE's random number generator." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 75 "S:=\"Now is the time for all good men to come to the \+ aid of their country.\";" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"SGQ`oN ow~is~the~time~for~all~good~men~to~come~to~the~aid~of~their~country.6 \"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "whattype(S);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#%'stringG" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 63 "There are two predefined \"alphabets\" in the package cry pto.mpl." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "`crypt/alphabet `;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#QjpabcdefghijklmnopqrstuvwxyzABC DEFGHIJKLMNOPQRSTUVWXYZ``1234567890-=|ir!@#$|^u%^&*()_+~,./<>?;':[]|fr |hr|gr6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "alphabet0;" }} {PARA 12 "" 1 "" {XPPMATH 20 "6#7jpQ\"a6\"Q\"bF%Q\"cF%Q\"dF%Q\"eF%Q\"f F%Q\"gF%Q\"hF%Q\"iF%Q\"jF%Q\"kF%Q\"lF%Q\"mF%Q\"nF%Q\"oF%Q\"pF%Q\"qF%Q \"rF%Q\"sF%Q\"tF%Q\"uF%Q\"vF%Q\"wF%Q\"xF%Q\"yF%Q\"zF%Q\"AF%Q\"BF%Q\"CF %Q\"DF%Q\"EF%Q\"FF%Q\"GF%Q\"HF%Q\"IF%Q\"JF%Q\"KF%Q\"LF%Q\"MF%Q\"NF%Q\" OF%Q\"PF%Q\"QF%Q\"RF%Q\"SF%Q\"TF%Q\"UF%Q\"VF%Q\"WF%Q\"XF%Q\"YF%Q\"ZF%Q \"`F%Q\"1F%Q\"2F%Q\"3F%Q\"4F%Q\"5F%Q\"6F%Q\"7F%Q\"8F%Q\"9F%Q\"0F%Q\"-F %Q\"=F%Q\"|irF%Q\"!F%Q\"@F%Q\"#F%Q\"$F%Q\"|^uF%Q\"%F%Q\"^F%Q\"&F%Q\"*F %Q\"(F%Q\")F%Q\"_F%Q\"+F%Q\".F%Q\"/F%Q\"F%Q\"?F%Q\";F%Q\"'F%Q\" :F%Q\"[F%Q\"]F%Q\"|frF%Q\"|hrF%Q\"|grF%Q\"~F%Q\",F%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 149 " Each string must be converted to a list of 0's and 1's before encrypti ng it. For example, the list associated to \"abc\" is obtained using t he command " }{TEXT 257 14 "string_to_list" }{TEXT -1 15 " in crypto.m pl." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "L:=string_to_list(\" abc\");\nnops(L);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%\"LG7hn\"\"\"\" \"!F'F'F'F'F'F'F'F'F'F'F'F'F'F'F'F'F'F'F'F&F'F'F'F'F'F'F'F'F'F'F'F'F'F 'F'F'F'F'F&F&F'F'F'F'F'F'F'F'F'F'F'F'F'F'F'F'F'F'" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#g" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 21 "To convert back, use " }{TEXT 258 14 "list_to_string" }{TEXT -1 1 "." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "list_to_string(L2);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#Q$abc6\"" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 58 "T o get a random string of 0's and 1's with \"seed\" 11, use " }{TEXT 259 11 "random_list" }{TEXT -1 15 " in crypto.mpl." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "L:=random_list(20,11);\nnops(L);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"LG76\"\"\"F&\"\"!F'F'F'F&F&F&F&F&F'F&F'F 'F&F'F&F'F&" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#?" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 48 "To encrypt \"abcd\" using random seed 10, use t he " }{TEXT 260 7 "encrypt" }{TEXT -1 9 " command." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "E:=encrypt(\"abcd\",10);\nnops(E);" }} {PARA 12 "" 1 "" {XPPMATH 20 "6#>%\"EG7\\p\"\"\"F&F&\"\"!F&F&F'F&F'F&F 'F&F&F'F'F&F'F'F'F&F&F'F&F'F&F'F'F'F'F'F'F&F&F'F&F'F'F'F&F'F'F'F'F&F&F &F'F&F&F&F&F'F&F'F&F&F'F'F&F'F'F&F&F'F&F&F'F&F'F&F&F'F&F'F&F&F&F&F'F& " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#!)" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 41 "You can't decrypt it using the wrong key:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "M:=decrypt(E,11);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"MGQ!6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "M:=decrypt(E,10);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"MGQ%abc d6\"" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 61 "Must have the same seed t o decrypt. Now for a longer example." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "L:=string_to_list(S);\nnops(L);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%\"LG7`ap\"\"!F&F&\"\"\"F&F'F&F&F&F&F&F&F&F&F&F&F&F&F& F&F'F'F'F'F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F'F'F'F&F'F&F&F&F&F&F&F&F&F& F&F&F&F&F&F&F'F&F&F&F'F&F'F&F&F&F&F&F&F&F&F&F&F&F&F&F'F&F&F'F&F&F&F&F& F&F&F&F&F&F&F&F&F&F&F&F'F'F&F&F'F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F'F&F&F& F'F&F'F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F'F&F'F&F&F&F&F&F&F&F&F&F&F&F&F&F& F&F&F&F&F'F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F'F&F'F&F&F&F&F&F&F&F&F&F&F& F&F&F&F&F&F&F'F&F&F&F'F&F'F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F'F&F'F&F&F&F& F&F&F&F&F&F&F&F&F&F&F&F'F&F&F'F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F'F&F'F' F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F'F&F'F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F& F&F'F&F&F&F'F&F'F&F&F&F&F&F&F&F&F&F&F&F&F&F&F'F'F&F&F&F&F&F&F&F&F&F&F& F&F&F&F&F&F&F'F'F'F'F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F'F&F&F'F&F&F&F& F&F&F&F&F&F&F&F&F&F&F&F'F&F&F&F'F&F'F&F&F&F&F&F&F&F&F&F&F&F&F&F'F&F&F& F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F'F'F&F&F&F&F&F&F&F&F&F&F&F&F&F&F& F&F&F&F'F'F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F'F&F&F&F'F&F'F&F&F&F&F&F&F& F&F&F&F&F&F&F'F'F'F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F'F'F'F'F&F&F&F&F& F&F&F&F&F&F&F&F&F&F&F&F'F'F'F'F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F'F& F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F'F&F&F&F'F&F'F&F&F&F&F&F&F&F&F&F&F&F& F&F'F&F'F'F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F'F&F'F&F&F&F&F&F&F&F&F&F&F& F&F&F&F&F&F&F&F'F'F'F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F'F&F&F&F'F&F'F&F& F&F&F&F&F&F&F&F&F&F&F&F&F&F'F&F'F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F'F'F'F' F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F'F&F&F&F'F&F'F&F&F&F&F&F&F&F&F&F&F&F& F&F'F'F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F'F'F'F'F&F&F&F&F&F&F&F&F&F& F&F&F&F&F&F&F'F&F'F'F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F'F&F'F&F&F&F&F&F& F&F&F&F&F&F&F&F&F&F&F&F'F&F&F&F'F&F'F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F'F& F'F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F'F'F'F'F&F&F&F&F&F&F&F&F&F&F&F&F&F&F& F&F'F&F&F&F'F&F'F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F'F&F'F&F&F&F&F&F&F&F&F& F&F&F&F&F&F&F&F&F&F'F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F'F&F'F&F&F&F&F&F& F&F&F&F&F&F&F&F&F&F&F&F'F&F&F&F'F&F'F&F&F&F&F&F&F&F&F&F&F&F&F&F'F&F&F& F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F'F&F&F'F&F&F&F&F&F&F&F&F&F&F&F&F&F&F& F&F&F&F'F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F'F&F&F&F'F&F'F&F&F&F&F&F&F& F&F&F&F&F&F&F'F'F'F'F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F'F'F&F&F&F&F&F& F&F&F&F&F&F&F&F&F&F&F&F'F&F&F&F'F&F'F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F'F& F'F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F'F&F&F&F&F&F&F&F&F&F&F&F&F&F&F& F&F'F&F'F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F'F&F&F'F&F&F&F&F&F&F&F&F&F& F&F&F&F&F&F&F&F'F&F&F'F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F'F&F&F&F'F&F'F&F& F&F&F&F&F&F&F&F&F&F&F&F'F'F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F'F'F'F' F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F'F&F'F&F'F&F&F&F&F&F&F&F&F&F&F&F&F&F& F&F&F'F'F'F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F'F&F'F&F&F&F&F&F&F&F&F& F&F&F&F&F&F&F&F'F&F&F'F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F'F&F&F'F'F&F&F&F& F&F&F&F&F&F&F&F&F&F&F&F'F'F&F&F'F&F'F&F&F&F&F&F&F&F&F&F&F&F&F&" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#\"%!Q\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "E:=encrypt(S,10);\nnops(E);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%\"EG7`ap\"\"!\"\"\"F'F'F'F&F&F'F&F'F&F'F'F&F&F'F&F&F& F'F&F&F&F'F'F&F&F&F&F&F&F'F'F&F'F&F&F&F'F&F&F&F'F'F&F'F&F'F'F'F'F&F'F& F'F'F&F&F'F&F'F'F&F&F&F'F'F'F&F'F'F&F'F&F'F'F'F'F&F'F'F'F&F'F'F&F&F'F' F&F&F'F&F&F'F'F&F'F'F'F&F'F&F&F'F'F&F'F&F&F'F&F'F'F&F&F&F&F&F&F'F&F&F& F'F'F'F&F'F'F'F&F&F&F&F&F&F&F'F&F&F'F'F&F&F'F&F&F'F'F'F'F&F&F'F'F'F&F' F'F'F'F'F'F&F&F&F&F&F&F'F&F&F&F'F&F&F&F&F'F'F&F&F'F&F'F&F&F&F'F'F&F&F& F&F&F&F'F'F'F&F'F&F'F&F&F&F&F&F'F&F&F&F&F'F'F&F'F'F&F'F'F'F&F&F&F'F&F' F'F&F'F&F'F'F'F'F&F&F&F'F&F'F'F'F'F&F&F&F&F'F&F'F&F&F'F'F'F'F'F&F&F'F& F'F'F'F&F'F'F&F&F'F&F&F&F&F&F&F'F'F'F&F'F'F'F'F&F'F'F'F'F&F&F'F&F'F'F' F'F&F&F'F&F'F&F&F&F&F&F'F&F'F'F'F&F&F'F'F'F&F&F'F'F&F'F&F'F'F&F'F'F'F& F&F'F&F&F&F'F'F&F'F'F'F'F'F&F'F'F&F&F'F&F'F'F'F'F&F&F&F'F'F&F'F&F'F'F' F'F&F&F&F'F&F'F&F&F'F&F'F&F&F&F'F'F&F'F&F'F&F&F'F'F'F&F'F'F&F&F&F&F'F& F'F'F&F'F&F'F'F'F&F'F'F'F&F&F&F&F&F&F&F&F&F&F&F&F'F&F'F&F&F'F'F&F'F&F' F'F'F'F'F'F&F&F&F&F&F'F'F'F'F'F&F'F&F'F&F&F'F'F'F&F&F'F'F'F&F&F'F'F&F& F'F&F'F'F'F'F&F'F'F'F'F'F&F&F&F&F&F'F&F&F'F&F&F&F&F&F'F&F'F'F&F'F'F&F' F'F&F'F&F'F'F&F'F'F&F'F'F'F&F'F&F&F&F'F&F&F&F&F&F'F&F'F&F&F&F&F&F&F'F& F'F'F&F&F&F&F&F&F&F'F&F'F'F&F'F&F'F'F'F&F'F&F'F'F'F&F&F&F&F'F'F&F&F&F& F&F'F'F'F&F'F&F'F&F&F'F&F'F&F&F&F'F&F&F&F'F'F&F&F&F&F&F'F&F'F'F'F&F&F& F'F'F&F&F&F'F&F'F&F&F&F'F&F&F&F&F&F&F'F'F&F'F'F'F'F&F&F'F'F&F&F'F'F&F& F&F'F&F&F&F'F&F&F'F'F'F'F&F&F'F&F'F'F'F'F'F'F&F'F&F'F'F&F&F'F&F'F&F'F& F&F'F'F'F'F'F'F&F&F&F'F'F'F'F'F'F'F&F&F&F&F&F&F&F&F&F'F'F&F'F'F'F'F&F& F&F'F'F&F'F'F&F'F&F&F'F&F'F&F'F'F&F'F&F'F&F&F&F&F&F&F&F'F&F'F'F&F&F'F& F&F&F'F'F'F&F&F'F&F'F'F'F&F&F&F&F'F'F&F&F'F'F'F&F'F'F'F&F'F&F&F'F&F'F& F&F'F&F&F&F&F'F&F'F'F&F'F&F&F&F&F'F'F'F&F&F&F'F&F'F&F&F'F'F&F'F'F&F&F' F&F'F'F'F'F&F&F&F&F&F&F'F&F'F&F&F'F'F&F'F'F'F&F&F&F'F&F&F&F'F&F&F&F&F' F'F&F'F&F&F&F'F&F&F'F&F&F&F'F'F&F'F'F&F'F'F&F'F'F'F'F'F&F'F&F&F&F&F&F' F&F'F&F&F'F&F&F&F'F&F&F&F'F'F&F'F&F'F&F&F'F'F'F&F'F&F&F&F&F&F&F'F'F&F& F&F&F&F'F'F&F&F'F'F'F&F&F'F'F&F'F&F&F'F'F'F'F'F'F'F&F'F&F'F&F'F&F&F'F& F&F&F'F&F&F&F'F&F'F&F&F'F&F'F&F'F'F'F&F'F'F'F'F'F'F&F'F'F&F'F&F'F&F'F& F&F&F'F'F'F'F'F&F&F&F&F&F'F&F'F&F&F'F&F'F&F'F&F'F&F'F'F&F&F'F'F'F&F'F& F'F'F&F&F'F&F'F'F'F&F'F'F'F'F&F'F'F&F'F&F&F'F&F&F&F'F'F'F&F&F'F'F&F&F' F&F'F'F&F'F&F&F&F&F'F'F'F'F&F'F'F'F'F'F'F&F&F&F&F'F&F&F'F&F&F'F&F'F'F' F'F'F&F&F'F&F&F'F'F&F&F'F'F'F&F'F'F'F&F'F&F&F&F&F&F'F&F'F&F&F'F'F'F&F' F'F&F'F'F&F'F'F'F'F&F&F'F'F'F&F&F'F&F&F&F'F&F'F'F&F'F'F'F'F'F&F'F'F'F' F&F'F&F'F'F'F'F'F'F&F&F'F&F'F&F&F'F&F'F'F&F&F'F&F&F&F&F&F'F'F'F&F&F&F' F&F&F&F&F&F'F&F'F'F'F'F'F&F&F'F&F&F&F'F'F&F&F&F&F&F'F&F&F'F'F'F&F'F'F& F'F&F'F&F&F'F'F&F&F&F'F'F'F&F'F&F&F'F'F'F'F&F'F&F'F&F'F&F&F&F'F'F&F&F' F'F'F'F&F&F'F'F&F&F&F'F'F'F'F'F'F&F'F'F'F&F'F'F'F'F'F&F&F'F&F&F'F'F'F' F'F'F&F&F&F&F&F'F'F&F'F'F'F&F&F&F&F'F'F'F'F'F'F&F'F'F&F'F'F'F'F&F'F'F& F'F'F'F&F'F&F&F'F&F&F'F&F'F&F'F&F'F'F&F&F'F&F'F&F'F'F'F'F'F'F&" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#\"%!Q\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "M:=decrypt(E,10);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6# >%\"MGQ`oNow~is~the~time~for~all~good~men~to~come~to~the~aid~of~their~ country.6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{MARK "24 0 0" 0 }{VIEWOPTS 1 1 0 1 1 1803 }