{VERSION 4 0 "IBM INTEL LINUX22" "4.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 "Text Output" -1 2 1 {CSTYLE "" -1 -1 "Courier" 1 10 0 0 255 1 0 0 0 0 0 1 3 0 3 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 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 7 "rand();" }}{PARA 11 " " 1 "" {XPPMATH 20 "6#\"-\"3p'>uU" }}}{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 13 "print(_seed);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"-(ptIjV$" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "_seed:=1000;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%&_seedG\"%+5" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "rand();" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"-(p&3p'>% " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "rand();" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"-JNF$p5\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "rand();" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"-t2qtIj" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "rand();" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"-9#oN9c#" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "_seed:=1000;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%&_seedG\"%+5" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "rand();" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"-(p&3p'>%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "rand(13);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#R6\"6#%\"tGF$F$C%>%&_s eedG-%%iremG6$,$F)\"-\"3p'>uU\"-*)**********>8$F)-F+6$F1\"#8F$6#F)F$" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "f:=rand(13);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%\"fGR6\"6#%\"tGF&F&C%>%&_seedG-%%iremG6$,$F+ \"-\"3p'>uU\"-*)**********>8$F+-F-6$F3\"#8F&6#F+F&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "f();" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\" *" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "f();" }}{PARA 11 "" 1 " " {XPPMATH 20 "6#\"\"(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "f( );" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "f();" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"\"" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "f();" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#5" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "f(); " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#6" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "print(_seed);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\",_ `3AA'" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "f();" }}{PARA 11 " " 1 "" {XPPMATH 20 "6#\"\"$" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "print(_seed);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"-Ufx@T(*" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "_seed:=12; seq(f(),i=1..50); " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%&_seedG\"#7" }}{PARA 12 "" 1 "" {XPPMATH 20 "6T\"\"*\"\"\"\"#5\"\"%\"\"'F$\"\"$\"\"!F#F(F#F&F)\"\"&\" \"(\"\")F&F(F&F(F#F)\"\"#\"#7F'F*F%F*F$F&F-F%F)F)F(F.F#F(F%F+F)F$F-F, \"#6F-F*F.F&F*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "_seed:=12 ; seq(f(),i=1..50);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%&_seedG\"#7" }}{PARA 12 "" 1 "" {XPPMATH 20 "6T\"\"*\"\"\"\"#5\"\"%\"\"'F$\"\"$\"\" !F#F(F#F&F)\"\"&\"\"(\"\")F&F(F&F(F#F)\"\"#\"#7F'F*F%F*F$F&F-F%F)F)F(F .F#F(F%F+F)F$F-F,\"#6F-F*F.F&F*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 385 "onetimepad:=proc(text,seed)\n global Alphabet,_seed;\n \+ local i,p,q,numtext,codedtext,randnum,shift,numcoded;\n\n p:= length(Alphabet);\n q:=length(text);\n \n _seed:=seed; \n randnum:=rand(p);\n shifts:=[seq(randnum(),i=1..q)];\n \+ \n numtext:=ToNum(text);\n\n numcoded:=[seq(modp(numtext[ i]+shifts[i],p),i=1..q)];\n\n FromNum(numcoded);\nend; " }} {PARA 7 "" 1 "" {TEXT -1 73 "Warning, `shifts` is implicitly declared \+ local to procedure `onetimepad`\n" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#> %+onetimepadGR6$%%textG%%seedG6+%\"iG%\"pG%\"qG%(numtextG%*codedtextG% (randnumG%&shiftG%)numcodedG%'shiftsG6\"F3C*>8%-%'lengthG6#%)AlphabetG >8&-F86#9$>%&_seedG9%>8)-%%randG6#F6>8,7#-%$seqG6$-FDF3/8$;\"\"\"F<>8' -%&ToNumGF>>8+7#-FL6$-%%modpG6$,&&FT6#FPFR&FIF[oFRF6FO-%(FromNumG6#FXF 36$F:FAF3" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 84 "cryptic:=oneti mepad(\"Sherlock Holmes could have seen through this one time pad\",17 );" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%(crypticGQZebYLeYglXSOKHROrP.p vWHvaFnXvnKmyLSqgZWp,DmUIetVoOTHnGkmrW6\"" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 24 "onetimepad(cryptic,-17);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#QZSherlock~Holmes~could~have~seen~through~this~one~time ~pad6\"" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 336 "Note that we can use \+ the negative of the key to undo the encryption because of a Maple pecu liarity (probably not a good one), namely that if you change the seed \+ to its negative, the pseudo random sequence is changed to its negative . Hence changing the seed to its negative gives exactly the opposite o ne time pad, as demonstrated below." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "_seed:=100;seq(f(),i=1..10);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%&_seedG\"$+\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6,\"\" *F#\"#7\"\"!F#\"\")\"\"$\"#5\"\"&F'" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "_seed:=-100;seq(f(),i=1..10);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%&_seedG!$+\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6,!\"*F #!#7\"\"!F#!\")!\"$!#5!\"&F'" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{MARK "27 0 0" 336 }{VIEWOPTS 1 1 0 2 1 1805 1 1 1 1 } {PAGENUMBERS 0 1 2 33 1 1 }