{VERSION 2 3 "IBM INTEL NT" "2.3" } {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 } {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 "Text Output" -1 2 1 {CSTYLE "" -1 -1 "Courier" 1 10 0 0 255 1 0 0 0 0 0 1 3 0 0 }1 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Warning" 2 7 1 {CSTYLE "" -1 -1 "" 0 1 0 0 255 1 0 0 0 0 0 0 1 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 } {PSTYLE "Error" 7 8 1 {CSTYLE "" -1 -1 "" 0 1 255 0 255 1 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 "" {MPLTEXT 1 0 55 "Alphabet:= convert([ seq(i,i=33..126),162,10,32],bytes);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6 #>%)AlphabetG%\\q!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRST UVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz|fr|gr|hr|ir|]u|+~G" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "length(Alphabet);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#(*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 318 "ToNum := proc(text)\n local i,goodnum;\n global Alphabet;\n\n [seq ( modp(SearchText( substring(text,i),Alphabet) -1,\n lengt h(Alphabet)),\n i=1..length(text))];\nend:\nFromNum := proc(numl ist)\n local i;\n global Alphabet;\n cat(seq( substring(Alphabet,nu mlist[i]+1),\n i=1..nops(numlist)));\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 263 "TextToVects:= proc(text,n)\n local i,j, textnums,vectors;\n\n textnums := ToNum(cat(text,\n \+ seq(` `,\n i=1..modp(n-length(text),n))));\n [seq ([seq(textnums[(j-1)*n + i],\n i=1..n)], \n j=1..nop s(textnums)/n)];\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "V ectsToText:= vects -> FromNum(map(op,vects)); " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%,VectsToTextG:6#%&vectsG6\"6$%)operatorG%&arrowGF(-%( FromNumG6#-%$mapG6$%#opG9$F(F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "TextToVects(`abcdefghijkl`,5);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7%7'\"#k\"#l\"#m\"#n\"#o7'\"#p\"#q\"#r\"#s\"#t7'\"#u\"#v\"#'*F3F 3" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "VectsToText(\");" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#%0abcdefghijkl~~~G" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 327 "AffineMatEncode := proc(text,A,B)\n local \+ vtext,vcrypt,i,n,p;\n global Alphabet;\n\n p:=length(Alphabet);\n n :=nops(convert(B,list));\n\n vtext := TextToVects(text, n);\n vcrypt:= [seq( map(modp,\n evalm( A &* vtext[i] + B),\n \+ p), \n i=1..nops(vtext))];\n VectsToT ext(vcrypt);\nend:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 365 "AffineMatDec ode := proc(text,A,B)\n local vtext,vcrypt,i,n,p,AINV;\n global Alp habet;\n\n p:=length(Alphabet);\n n:=nops(convert(B,list));\n\n AINV \+ := linalg[inverse](A);\n vtext := TextToVects(text, n);\n vcrypt:= [se q( map(modp,\n evalm( AINV &* (vtext[i] -B)),\n \+ p), \n i=1..nops(vtext))];\n VectsToTe xt(vcrypt);\nend:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 75 "AffineMatEncod e(`Hello my friend`,TextToVects(`hello,HI!`,3),ToNum(`abc`));" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "AffineMatDecode(\",TextToVects(`hel lo,HI!`,3),ToNum(`abc`));" }}{PARA 8 "" 1 "" {TEXT -1 40 "Error, (in F romNum) invalid types in sum" }}{PARA 8 "" 1 "" {TEXT -1 76 "Error, (i n ToNum) wrong number (or type) of parameters in function substring" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 69 "VectsToText:= vects -> Fro mNum(map(op,\n map(convert,vects,list))); \n\n" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%,VectsToTextG:6#%&vectsG6\"6$%)operatorG%&arrowGF(-%( FromNumG6#-%$mapG6$%#opG-F06%%(convertG9$%%listGF(F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 139 "jabber:=`Twas brillig, and the slithy to thes\ndid gyre and gimbal in the wabe.\nAll mimsy were the borogroves, \nand the mome raths outgrabe.`;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>% 'jabberG%[sTwas~brillig,~and~the~slithy~tothes|+did~gyre~and~gimbal~in ~the~wabe.|+All~mimsy~were~the~borogroves,|+and~the~mome~raths~outgrab e.G" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "AffineMatEncode(jabb er,[[0,1],[4,6]],[3,5]);\n" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#%[szOvke $lsomjC#LqM#jku#no(w0|grJw/wHh3\"?l;#j|grFh[d|]ugEjBpgdd#)qmw/h3zAef1a D|hrompfpg|grvzAuu#nku#nrWr6u|hryTv|fr\"FqM#jku#nr\"hGu#wqv&rrw`u|href 1aG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "AffineMatDecode(\",[ [0,1],[4,6]],[3,5]);\n" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#%[sTwas~bril lig,~and~the~slithy~tothes|+did~gyre~and~gimbal~in~the~wabe.|+All~mims y~were~the~borogroves,|+and~the~mome~raths~outgrabe.G" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "linalg[inverse] ( [[0,1],[4,6]]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%'MATRIXG6#7$7$#!\"$\"\"##\"\"\"\" \"%7$F,\"\"!" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "modp(1/4,97 );" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#t" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 5 "73*4;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"$#H" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "292 mod 97;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{MARK "16 0 0" 0 }{VIEWOPTS 1 1 0 3 2 1804 }