{VERSION 5 0 "SUN SPARC SOLARIS" "5.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 1 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 1 }{CSTYLE "2D Output" 2 20 "" 0 1 0 0 255 1 0 0 0 0 0 0 0 0 0 1 } {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 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 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 0 }1 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }} {SECT 0 {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 272 "with(StringTools): \nToNumList := proc(str::string)\n local slist;\n global Alphabet; \n slist := Explode(str);\n return(\n map(x->SearchText(x,Alphab et)-1, slist));\nend:\nNumListToStr:=proc(l::list)\n global Alphabet; \n return(\n Implode(map(x->Alphabet[x+1], l)));\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 79 "Alphabet:=Implode([\"\\n\",\"\\t\", op(select(IsPrintable,[seq(Char(i),i=1..255)]))]);" }}{PARA 11 "" 1 " " {XPPMATH 20 "6#>%)AlphabetGQ\\q|+|*~!\"#$%&'()*+,-./0123456789:;<=>? @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz|fr|gr|hr| ir6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 290 "Vignere:= proc(pl ain, key)\n local nl, i, j, keylen, Alen;\n global Alphabet, ToNumLi st, NumListToStr;\n keylen:=nops(key);\n Alen :=length(Alphabet);\n nl := ToNumList(plain);\n NumListToStr(\n [seq( nl[i]+ key[modp( i-1,keylen)+1] mod length(Alphabet), i=1..length(plain))]\n );\nen d:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "Vignere(\"One for you , nineteen for me.\", [1,2,3,27]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6# Q>Pph;gqu;zqxG!pl(fvh|*o\"i)s\"p|*/6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 345 "Vignere2:= proc(plain::string, keytext::string)\n l ocal nl, i, j, key, keylen, Alen;\n global Alphabet, ToNumList, NumLi stToStr;\n key := ToNumList(keytext);\n keylen:=nops(key);\n Alen \+ :=length(Alphabet);\n nl := ToNumList(plain);\n NumListToStr(\n [ seq( nl[i]+ key[modp(i-1,keylen)+1] mod length(Alphabet), i=1..leng th(plain))]\n );\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 " Vignere2(\"What is the password?\", \"secret\");" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#Q6KNEgg^ggX[KvdGWf]dfJ#6\"" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 20 "ToNumList(\"secret\");" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7(\"#&)\"#r\"#p\"#%)F%\"#')" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 45 "NumListToStr([-86, -72, -70, -85, -72, -87]);" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}{PARA 11 "" 1 "" {XPPMATH 20 "6# Q'*8:+8)6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "Vignere2(\"W hat is the password?\", \"secret\");" }}{PARA 11 "" 1 "" {XPPMATH 20 " 6#Q6KNEgg^ggX[KvdGWf]dfJ#6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "Vignere2(%, \"*8:+8)\");" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#Q6Wh at~is~the~password?6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "l ength(Alphabet);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#(*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "Vignere2(\"What is the password?\", \"Today is tax day, so there!\");" }}{PARA 11 "" 1 "" {XPPMATH 20 "6# Q6,XFV|frk]uv]GzrFUm$qfTA6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "rand();" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"-qKp56K" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "rand();" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"-(ptIjV$" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "_seed := 2;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%&_seedG\"\"#" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "rand();" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"-i\"Q$R[&)" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "rand();" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"-SlQ@Ak" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "_seed := 2;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%&_seedG\"\"#" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "rand();" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"-i\"Q$R[&)" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "rand();" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"-SlQ@Ak" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "_seed := 1; rand(); rand();" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%&_se edG\"\"\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"-\"3p'>uU" }}{PARA 11 " " 1 "" {XPPMATH 20 "6#\"-qKp56K" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "_seed := 1; rand(); rand();" }}{PARA 11 "" 1 "" {XPPMATH 20 "6 #>%&_seedG\"\"\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"-\"3p'>uU" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#\"-qKp56K" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 19 "randshift:=rand(6);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%*randshiftGf*6\"6#%\"tGF&F&C&>%&_seedG-%%iremG6$*&T#\"\"\"F+F1 T%>8$F+?(F&F1F1T'%%trueGC$>F+F,>F4,&*&T)F1F4F1F1F+F1,&-F-6$F4T+F1T-F1F &6#F+6.%\"aG%\"aG%\"pG%\"pG%(concatsG%(concatsG%\"sG%\"sG%(divisorG%(d ivisorG%'offsetG%'offsetG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "randshift();" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"!" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "randshift();" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"$" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 637 "On eTimePad:= proc(plain::string, key::posint)\n local nl, i, j, Alen, r andshift;\n global Alphabet, ToNumList, NumListToStr, _seed;\n Alen \+ :=length(Alphabet);\n nl := ToNumList(plain);\n randshift := rand(A len);\n _seed := key;\n NumListToStr(\n [seq( nl[i]+ randshift() \+ mod Alen, i=1..length(plain))]\n );\nend:\nUnOneTimePad:= proc(pla in::string, key::posint)\n local nl, i, j, Alen, randshift;\n global Alphabet, ToNumList, NumListToStr, _seed;\n Alen :=length(Alphabet) ;\n nl := ToNumList(plain);\n randshift := rand(Alen);\n _seed := k ey;\n NumListToStr(\n [seq( nl[i]- randshift() mod Alen, i=1..l ength(plain))]\n );\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "OneTimePad(\"yo ho ho\", 3);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#Q) ^V/^~2kY6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "UnOneTimePad (%, 3);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#Q)yo~ho~ho6\"" }}}}{MARK "2 8" 0 }{VIEWOPTS 1 1 0 3 2 1804 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }