{VERSION 17 1 "Windows 7" "17.1" } {USTYLETAB {PSTYLE "Ordered List 1" -1 200 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }1 1 0 0 3 3 2 0 2 0 2 2 -1 1 } {PSTYLE "Ordered List 2" -1 201 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }1 1 0 0 3 3 2 36 2 0 2 2 -1 1 }{PSTYLE "Ordered List 3" -1 202 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }1 1 0 0 3 3 2 72 2 0 2 2 -1 1 }{PSTYLE "Ordered List 4" -1 203 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }1 1 0 0 3 3 2 108 2 0 2 2 -1 1 }{PSTYLE "Ordered List 5" -1 204 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }1 1 0 0 3 3 2 144 2 0 2 2 -1 1 }{PSTYLE "Author" -1 19 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }3 1 0 0 8 8 2 0 2 0 2 2 -1 1 }{PSTYLE "Warning" -1 7 1 {CSTYLE "" -1 -1 "Courier" 1 10 0 0 255 1 2 2 2 2 2 1 1 0 0 1 } 1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Annotation Title" -1 205 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 1 2 1 2 2 2 2 1 0 0 1 }3 1 0 0 12 12 2 0 2 0 2 2 -1 1 }{PSTYLE "Fixed Width" -1 17 1 {CSTYLE "" -1 -1 "C ourier" 1 10 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }3 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Maple Plot" -1 13 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }3 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Line Printe d Output" -1 6 1 {CSTYLE "" -1 -1 "Courier" 1 10 0 0 255 1 2 2 2 2 2 1 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Help" -1 10 1 {CSTYLE "" -1 -1 "Courier" 1 9 0 0 255 1 2 2 2 2 2 1 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Text Output" -1 2 1 {CSTYLE "" -1 -1 "Courier" 1 10 0 0 255 1 2 2 2 2 2 1 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 } {PSTYLE "Diagnostic" -1 9 1 {CSTYLE "" -1 -1 "Courier" 1 10 64 128 64 1 2 2 2 2 2 1 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Maple Output" -1 11 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }3 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Dash Item" -1 16 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }1 1 0 0 3 3 2 0 2 0 2 2 -1 1 }{PSTYLE "Hyperlin kError" -1 206 1 {CSTYLE "" -1 -1 "Courier New" 1 12 255 0 255 1 2 2 1 2 2 1 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Error" -1 8 1 {CSTYLE "" -1 -1 "Courier" 1 10 255 0 255 1 2 2 2 2 2 1 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Title" -1 18 1 {CSTYLE "" -1 -1 "Tim es" 1 18 0 0 0 1 2 1 1 2 2 2 1 0 0 1 }3 1 0 0 12 12 2 0 2 0 2 2 -1 1 } {PSTYLE "Heading 1" -1 3 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 1 2 1 2 2 2 2 1 0 0 1 }1 1 0 0 8 4 2 0 2 0 2 2 -1 1 }{PSTYLE "Bullet Item" -1 15 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }1 1 0 0 3 3 2 0 2 0 2 2 -1 1 }{PSTYLE "Heading 4" -1 20 1 {CSTYLE "" -1 -1 "Times" 1 10 0 0 0 1 1 1 2 2 2 2 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Heading 3" -1 5 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 1 1 2 2 2 2 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Heading 2" -1 4 1 {CSTYLE "" -1 -1 "Times" 1 14 0 0 0 1 2 1 2 2 2 2 1 0 0 1 }1 1 0 0 8 2 2 0 2 0 2 2 -1 1 }{PSTYLE "HyperlinkWarning" -1 207 1 {CSTYLE "" -1 -1 "Courier New" 1 12 0 0 255 1 2 2 1 2 2 1 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Left Justified Maple Output" -1 12 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "List Item" -1 14 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }1 1 0 0 3 3 2 0 2 0 2 2 -1 1 }{CSTYLE "An notation Text" -1 200 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 } {CSTYLE "Help Maple Name" -1 35 "Times" 1 12 104 64 92 1 2 1 2 2 2 2 0 0 0 1 }{CSTYLE "2D Math Bold" -1 5 "Times" 1 12 0 0 0 1 2 1 2 2 2 2 0 0 0 1 }{CSTYLE "Help Menus" -1 36 "Times" 1 12 0 0 0 1 2 1 2 2 2 2 0 0 0 1 }{CSTYLE "2D Math Italic" -1 3 "Times" 1 12 0 0 0 1 1 2 2 2 2 2 0 0 0 1 }{CSTYLE "Help Normal" -1 30 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "Plot Text" -1 28 "Times" 1 8 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "Help Nonterminal" -1 24 "Courier" 1 12 0 0 0 1 2 1 2 2 2 2 0 0 0 1 }{CSTYLE "Help Heading" -1 26 "Times" 1 14 0 0 0 1 2 1 2 2 2 2 0 0 0 1 }{CSTYLE "Help Italic" -1 42 "Times" 1 12 0 0 0 1 1 2 2 2 2 2 0 0 0 1 }{CSTYLE "Help Variable" -1 25 "Courier" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "Help Italic Bold" -1 40 "Times" 1 12 0 0 0 1 1 2 2 2 2 2 0 0 0 1 }{CSTYLE "Default" -1 38 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "Help Underlined Italic" -1 43 "Times" 1 12 0 0 0 1 1 2 1 2 2 2 0 0 0 1 }{CSTYLE "Maple Input" -1 0 "Courier" 1 12 255 0 0 1 2 1 2 2 1 2 0 0 0 1 }{CSTYLE "2D Output" -1 20 "Times" 1 12 0 0 255 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "2D Math Bold Small" -1 10 " Times" 1 1 0 0 0 1 2 1 2 2 2 2 0 0 0 1 }{CSTYLE "2D Math Small" -1 7 " Times" 1 1 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "Page Number" -1 33 "T imes" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "Output Labels" -1 29 "Times" 1 8 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "Plot Title" -1 27 "T imes" 1 10 0 0 0 1 2 1 2 2 2 2 0 0 0 1 }{CSTYLE "Help Emphasized" -1 22 "Times" 1 12 0 0 0 1 1 2 2 2 2 2 0 0 0 1 }{CSTYLE "2D Math Symbol 2 " -1 16 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "Maple Comme nt" -1 21 "Courier" 1 12 0 0 0 1 2 1 2 2 2 2 0 0 0 1 }{CSTYLE "Caption Reference" -1 201 "Times" 1 12 0 0 0 1 2 1 2 2 2 2 0 0 0 1 }{CSTYLE " 2D Math Italic Small204" -1 202 "Times" 1 1 0 0 0 1 1 2 2 2 2 2 0 0 0 1 }{CSTYLE "Maple Input Placeholder" -1 203 "Courier" 1 12 200 0 200 1 2 1 2 2 1 2 0 0 0 1 }{CSTYLE "Code" -1 204 "Courier" 1 12 255 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "2D Inert Output" -1 205 "Times" 1 12 144 144 144 1 2 2 2 2 1 2 0 0 0 1 }{CSTYLE "2D Math Italic Small" -1 206 " Times" 1 1 0 0 0 1 1 2 2 2 2 2 0 0 0 1 }{CSTYLE "2D Comment" -1 18 "Ti mes" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "Help Underlined Bold" -1 41 "Times" 1 12 0 0 0 1 1 1 2 2 2 2 0 0 0 1 }{CSTYLE "Copyright" -1 34 "Times" 1 10 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "Hyperlink" -1 17 "Times" 1 12 0 128 128 1 2 2 1 2 2 2 0 0 0 1 }{CSTYLE "Help Underli ned" -1 44 "Times" 1 12 0 0 0 1 2 2 1 2 2 2 0 0 0 1 }{CSTYLE "Prompt" -1 1 "Courier" 1 12 0 0 0 1 2 1 2 2 2 2 0 0 0 1 }{CSTYLE "2D Math" -1 2 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "2D Input" -1 19 " Times" 1 12 255 0 0 1 2 2 2 2 1 2 0 0 0 1 }{CSTYLE "Header and Footer" -1 207 "Times" 1 10 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "Text" -1 208 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "Help Notes" -1 37 "Times" 1 12 0 0 0 1 2 1 2 2 2 2 0 0 0 1 }{CSTYLE "Help Bold" -1 39 "Times" 1 12 0 0 0 1 2 1 2 2 2 2 0 0 0 1 }{CSTYLE "Equation Label" -1 209 "Times" 1 12 0 0 0 1 2 1 2 2 2 2 0 0 0 1 }{CSTYLE "LaTeX" -1 32 " Times" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "Popup" -1 31 "Times" 1 12 0 128 128 1 1 2 1 2 2 2 0 0 0 1 }{CSTYLE "Atomic Variable" -1 210 "Times" 1 12 175 0 175 1 1 2 2 2 2 2 0 0 0 1 }{CSTYLE "Dictionary \+ Hyperlink" -1 45 "Times" 1 12 147 0 15 1 2 2 1 2 2 2 0 0 0 1 }{CSTYLE "Caption Text" -1 211 "Times" 1 12 0 0 0 1 2 1 2 2 2 2 0 0 0 1 } {CSTYLE "Help Fixed" -1 23 "Courier" 1 10 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "" -1 212 "Times" 1 18 0 0 0 1 2 1 2 2 2 2 0 0 0 1 }} {SECT 0 {EXCHG {PARA 0 "" 0 "" {TEXT 212 24 "Breaking Vigenere Cipher " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 208 77 "Initialize from reading the \+ necessary commands from the publisher's web-site:" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 64 "with(LinearAlgebra): with(linalg): with(numt heory): with(plots):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 219 "numb:=tabl e([\" \"=0,\"a\"=1, \"b\"=2, \"c\"=3, \"d\"=4, \"e\"=5, \"f\"=6, \"g\" =7, \"h\"=8, \"i\"=9, \"j\"=10, \"k\"=11, \"l\"=12, \"m\"=13, \"n\"=14 , \"o\"=15, \"p\"=16, \"q\"=17, \"r\"=18, \"s\"=19, \"t\"=20, \"u\"=21 , \"v\"=22, \"w\"=23, \"x\"=24, \"y\"=25, \"z\"=26]):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 194 "alph:=table([0=\" \",1=\"a\",2=\"b\",3=\"c\",4= \"d\",5=\"e\",6=\"f\",7=\"g\",8=\"h\",9=\"i\",10=\"j\",11=\"k\",12=\"l \",13=\"m\",14=\"n\",15=\"o\",16=\"p\",17=\"q\",18=\"r\",19=\"s\",20= \"t\",21=\"u\",22=\"v\",23=\"w\",24=\"x\",25=\"y\",26=\"z\"]):" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "shift:=proc(txt,n) " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 16 " local i, z; " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 12 " z :=NULL;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 40 " for i fr om 1 while i<= length(txt) do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 61 " \+ z:=cat(z,(alph[(numb[substring(txt,i)]+n-1 mod 26)+1]));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 10 " end do;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 13 " return(z);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 5 "end: " }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "allshifts:= proc(txt)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 12 " local i;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 30 " for i from 0 while i<26 do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 24 " print(shift(txt,i));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 14 " \+ end do; " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "end:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "affinecrypt:= proc(txt,m,n)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 14 " local i,z;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 12 " z:=NULL;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "for i from 1 wh ile i<=length(txt) do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 65 " z:=ca t(z,(alph[((numb[substring(txt,i)]-1)*m+n mod 26)+1]));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 11 " end do;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 14 " return(z);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "end:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "vigenere:= proc(txt,v)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 14 " local i,z;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 12 " z:=NULL;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "for i from 1 wh ile i<=length(txt) do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 79 " z:=cat (z,alph[(numb[substring(txt,i)]+v[(i-1 mod nops(v))+1]-1 mod 26)+1]);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 11 " end do;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 14 " return(z);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 " end:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "choose:=proc(txt,m,n)" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 " local i,z;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 12 " z:=NULL;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 43 " \+ for i from n by m while i<= length(txt) do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 32 " z:=cat(z,substring(txt,i));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 9 " end do;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "retur n(z);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "end:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "frequency:=proc(txt)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 78 " local i,j,k,v,z; z:=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0];" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 39 " for i from 1 wh ile i<= length(txt) do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 29 " j:=num b[substring(txt,i)];" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 25 " z:=subso p(j=z[j]+1,z);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 10 " end do;" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "return(z);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "end:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "vigvec:= pr oc(txt,m,n)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 14 " local w,z,i;" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 " z:=choose(txt,m,n);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 31 " w:=frequency(z)/length(z)*1.;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 11 " return(w);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "end:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 165 "alfreq:=[.082, .015, \+ .028, .043, .127, .022, .020, .061, .070, .002, .008, .040, .024, .067 , .075, .019, .001, .060, .063, .091, .028, .010, .023, .001, .020, .0 01]:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "corr:=proc(v)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 17 " local i,j,w,z;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 45 " w:=augment(matrix(1,26,v),matrix(1,26,v));" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 " z:=seq(sum(alfreq[i]*w[1,i+j-1], i=1..26),j=1..26);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 11 " return(z);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "end:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "coinc:=proc(txt,s)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 14 " lo cal i,w,z;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 7 " z:=0;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 42 " for i from 1 while i <= length(txt)-s do" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 2 " " }{TEXT 213 1 " " }{MPLTEXT 1 0 64 "if substring(txt,i)=substring(txt,i+s) then z:=z+1 else z:=z fi;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 9 " end do;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 11 " return(z);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "end: " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "lfsr:=proc(c,k,n) " }}{PARA 0 " > " 0 "" {MPLTEXT 1 0 18 " local f,i,j,r,z;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 25 " z:=matrix(1,nops(k),k);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 38 " for i from 1 while i<= n-nops(c) do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "z:=augment(z,matrix(1,1,[sum(z[1,j+i-1]*c[j],j =1..nops(c)) mod 2]));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 10 " end do ;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 36 " z:=row(z,1);z:=[seq(z[i],i=1 ..n)];" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 6 " end:" }}{PARA 0 "> " 0 " " {MPLTEXT 1 0 21 "lfsrlength:=proc(v,n)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 19 " local w,z,i,j,k; " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 28 " f or k from 1 while k<=n do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 22 " w:=a rray(1..k,1..k);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 29 " for i from 1 \+ while i<= k do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 29 " for j from 1 wh ile j<= k do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 20 " w[i,j]:=v[i+j-1] ;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 8 " end do;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 8 " end do;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 25 " print( [k,det(w) mod 2]);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 8 " end do;" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 5 " end:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "lfsrsolve:=proc(v,n)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 21 " l ocal w1,w,z,i,j,k;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 23 " w1:=array(1 ..n,1..1);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 22 " w:=array(1..n,1..n) ;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 29 " for i from 1 while i<= n do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 29 " for j from 1 while j<= n do" } }{PARA 0 "> " 0 "" {MPLTEXT 1 0 20 " w[i,j]:=v[i+j-1];" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 8 " end do;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 8 " end do;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 28 " for i from 1 while i<= n do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 18 " w1[i,1]:=v[i+n]; " }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 " end do;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 51 " z:=evalm(det(w)*transpose(evalm(inverse(w)&*w1)));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "z:=map(x->x mod 2,z); z:=[seq(z[1 ,i],i=1..n)];" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 3 " z;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "end:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 21 " tex t2num:=proc(txt)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 19 " local i,z; z :=0;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 39 " for i from 1 while i<=le ngth(txt) do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 35 " z:=100*z+numb[su bstring(txt,i)];" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 9 " end do;" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 " return(z);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 6 " end:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "num2text: =proc(n)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 27 " local i,w,z; z:=NULL;w :=n;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 36 " for i from 1 while 100^( i-1) " 0 "" {MPLTEXT 1 0 29 " z:=cat(alph[w mod 1 00],z);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 19 " w:=floor(w/100);" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 " end do;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 12 " return(z);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 6 " e nd:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "cards:=[200514,10010311,1721 050514,11091407,10305]:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "with(com binat,randperm):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "khide:=proc();2 *rand()+101;end:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "shuffle:=proc(k )" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 10 " local z; " }}{PARA 0 "> " 0 " " {MPLTEXT 1 0 90 "z:=randperm(\{cards[1]&^k,cards[2]&^k,cards[3]&^k,c ards[4]&^k,cards[5]&^k\}mod 24691313099);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "return(z); end:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "reveal:=proc(c) " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 14 " local k1,z; " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 31 " k1:= k&^(-1) mod 24691313098; " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 68 " z:=[c[1]&^k1,c[2]&^k1,c[3]&^k 1,c[4]&^k1,c[5]&^k1] mod 24691313099;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 80 "z:=[num2text(z[1]),num2text(z[2]),num2text(z[3]),num2text(z[4]), num2text(z[5])];" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 13 " return(z); " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "end:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "advise:=proc(v)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 13 " local \+ i,w,z;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 7 " w:=1; " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 26 " for i from 1 while w=1 do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 47 " w:=v[i]&^((24691313099-1)/2) mod 24691313099;" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 " end do;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 13 " return(i-1);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 5 "en d: " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "addell:=proc(p1,p2,a,b,n)" } }{PARA 0 "> " 0 "" {MPLTEXT 1 0 24 " local z,z1,m,x3,y3,p3;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 7 " z:=0;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 8 " z1:=1;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 62 " if p1=[\"infinity \",\"infinity\"] then p3:=p2; z:=1 else end if;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 23 " if z=1 then NULL else " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 75 " if p2=[\"infinity\",\"infinity\"] then p3:=p1; z:=1 else en d if end if;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 23 " if z=1 then \+ NULL else " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 81 " if p1[1]=p2[1] and \+ p1[2]=0 then p3:=[\"infinity\",\"infinity\"]; z:=1 else end if" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 " end if;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 22 " if z=1 then NULL else" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 39 " if p1[1]=p2[1] and p1[2]<>p2[2] then " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 55 " p3:=[\"infinity\",\"infinity\"]; z:=1 else end if e nd if;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 23 " if z=1 then NULL else " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 50 " if p1=p2 and gcd(p1[2],n)<>1 an d gcd(p1[2],n)<>n" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 50 " then z1:=gc d(p1[2],n); z:=1 else end if end if;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 23 " if z=1 then NULL else " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 102 " \+ if p1=p2 then m:=((3*p1[1]^2+a)*((2*p1[2])&^(-1) mod n)) mod n; z:= 1; x3:=(m^2-p1[1]-p2[1]) mod n;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 32 " y3:=(m*(p1[1]-x3)-p1[2]) mod n;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "p3:=[x3,y3];" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "else end if end if ;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 23 " if z=1 then NULL else " }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 79 " if gcd(p2[1]-p1[1],n)<>1 then z:= 1;z1:=gcd(p2[1]-p1[1],n) else end if end if;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 23 " if z=1 then NULL else " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 56 " m:= ((p2[2]-p1[2])*((p2[1]-p1[1])&^(-1) mod n)) mod n;" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 84 " x3:=(m^2-p1[1]-p2[1]) mod n; y3:= (m*(p1[1]-x3)-p1[2]) mod n; p3:= [x3,y3] end if;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "if z1=1 then return(p3) else return([\"factor=\",z1] ) end if;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "end:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "multsell:=proc(p1,m,a,b,n)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 11 " local i,z;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 13 " z: =[[1,p1]];" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 54 " for i from 2 while i <=m and z[-1][2][1]<>\"factor=\" do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 55 " z:=[op(z),[1+nops(z),addell(p1,z[nops(z)][2],a,b,n)]];" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 9 " end do;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 11 " return(z);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "end:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "multell:=proc(p,m,a,b,n)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 18 " local i,j,q,y,z1;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 28 " y:=[\"infinity\",\"infinity\"];" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 6 " q:=p;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 8 " z1:=m; " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 48 " for i from 1 while z1<>0 and y[1]<>\"fac tor=\" do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 57 " for j from 1 while z 1 mod 2 = 0 and q[1]<>\"factor=\" do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 42 " z1:=z1/2; q:=addell(q,q,a,b,n); end do;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 50 " z1:=z1-1; y:=addell(q,y,a,b,n); end do; " } }{PARA 0 "> " 0 "" {MPLTEXT 1 0 48 " if q[1]=\"factor=\" then y:=q el se NULL end if; " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 1 " " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 11 " return(y);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "end:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "gaul:= \"gaulisdividedin tothreeparts\":" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "ycve:= \"ycvejqw vhqtdtwvwu\":\n" }{MPLTEXT 1 0 40 "edsg:= \"edsgickxhuklzveqzvkxwkzukc vuh\":\n" }{MPLTEXT 1 0 151 "tcab:= \"tcabtiqmfheqqmrmvmtmaq\": lcll:= \"lcllewljazlnnzmvyiylhrmhza\": DNA:= \"GAATTCGCGGCCGCAATTA ACCCTCACTAAAGGGATCTCTAGAACT\": " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 82 "xkju:= \"xkjurowmllpxwznpimbvbqjcnowxpcchhvvfvsllfvxh azityxohulxqojaxelxzxmyjaqfs\\\n" }{MPLTEXT 1 0 80 "tsrulhhucdskbxknjq idallpqslluhiaqfpbpcidsvcihwhwewthbtxrljnrsncihuvffuxvoukjlj\\\n" } {MPLTEXT 1 0 80 "swmaqfvjwjsdyljogjxdboxajultucpzmpliwmlubzxvoodybafds kxgqfadshxnxehsaruojaqfpf\\\n" }{MPLTEXT 1 0 80 "kndhsaafvulluwtaqfrup wjrszxgpfutjqiynrxnyntwmhcukjfbirzsmehhsjshyonddzzntzmpli\\\n" } {MPLTEXT 1 0 27 "lrwnmwmlvuryonthuhabwnvw\":\n" }{MPLTEXT 1 0 82 "ocwy := \"ocwyikoooniwugpmxwktzdwgtssayjzwyemdlbnqaaavsuwdvbrflauplooubfgqh gcscmgz\\\n" }{MPLTEXT 1 0 80 "latoedcsdeidpbhtmuovpiekifpimfnoamvlpqf xejsmxmpgkccaykwfzpyuavtelwhrhmwkbbvgtg\\\n" }{MPLTEXT 1 0 80 "uvtefjl odfefkvpxsgrsorvgtajbsauhzrzalkwuowhgedefnswmrciwcpaaavogpdnfpktdbalsi s\\\n" }{MPLTEXT 1 0 80 "urlnpsjyeatcuceesohhdarkhwotikbroqrdfmzghguce bvgwcdqxgpbgqwlpbdaylooqdmuhbdqgm\\\n" }{MPLTEXT 1 0 8 "yweuik\":" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 80 "hdsf:= \"hdsfgvmkoowafweetcmfthskuc aqbilgjofmaqlgspvatvxqbiryscpcfrmvswrvnqlszd\\\n" }{MPLTEXT 1 0 80 "mg aoqsakmlupsqforvtwvdfcjzvgsoaoqsacjkbrsevbelvbksarlscdcaarmnvrysywxqgv ellcyl\\\n" }{MPLTEXT 1 0 80 "uwwveoafgclazowafojdlhssfiksepsoywxafowl bfcsocylngqsyzxgjbmlvgrggokgfgmhlmejab\\\n" }{MPLTEXT 1 0 80 "sjvgmlnr vqzcrggcrghgeupcyfgtydycjkhqluhgxgzovqswpdvbwsffsenbxapasgazmyuhgsfhmf \\\n" }{MPLTEXT 1 0 43 "tayjxmwznrsofrsoaopgauaaarmftqsmahvqecev\":\n" }{MPLTEXT 1 0 80 "vvhq:= \"vvhqwvvrhmusgjgthkihtssejchlsfcbgvwcrlryqt fsvgahwkcuhwauglqhnslrljshbl\\\n" }{MPLTEXT 1 0 80 "tspisprdxljsveeghl qwkasskuwepwqtwvspgoelkcqyfnsvwljsniqkgnrgybwlwgoviokhkazkqk\\\n" } {MPLTEXT 1 0 80 "xzgyhcecmeiujoqkwfwvefqhkijrclrlkbienqfrjljsdhgrhlsfq twlauqrhwdmwlgusgikkflryv\\\n" }{MPLTEXT 1 0 80 "cwvspgpmlkassjvoqxegg veyggzmljcxxljsvpaivwikvrdrygfrjljslveggveyggeiapuuisfpbt\\\n" } {MPLTEXT 1 0 30 "gnwwmuczrvtwglrwugumnczvile\":\n" }{MPLTEXT 1 0 78 "L 100:= [1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, \+ 1, 0, \n" }{MPLTEXT 1 0 79 " 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, \+ 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, \n" }{MPLTEXT 1 0 79 " 0, 0, \+ 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, \n" }{MPLTEXT 1 0 79 " 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0 , 0, 1, 0, 0, 0, 1, 0, 0, \n" }{MPLTEXT 1 0 22 " 1, 0, 0, 0, 0]: \n" }{MPLTEXT 1 0 80 "L011:= [0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0 , 0, 1, 1, 1, 0, 1, 0, 1, 0, 0,\n" }{MPLTEXT 1 0 79 " 0, 1, 0, 0 , 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1,\n" } {MPLTEXT 1 0 14 " 0, 1]:\n" }{MPLTEXT 1 0 59 "L101:= [1, 0, 1, 0 , 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1,\n" }{MPLTEXT 1 0 60 " 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1,\n" }{MPLTEXT 1 0 79 " 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, \+ 0, 1, 1, 1, \n" }{MPLTEXT 1 0 79 " 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, \+ 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, \n" }{MPLTEXT 1 0 28 " \+ 0, 1, 1, 1, 0, 0, 0]:\n" }{MPLTEXT 1 0 80 "rsan:= 11438162575788886766 923577997614661201021829672124236256256184293570693\\\n" }{MPLTEXT 1 0 60 "5245733897830597123563958705058989075147599290026879543541:\n" } {MPLTEXT 1 0 13 "rsae:= 9007:\n" }{MPLTEXT 1 0 80 "rsaci:= 96869613754 62206147714092225435588290575999112457431987469512093081629\\\n" } {MPLTEXT 1 0 60 "82251457083569314766228839896280133919905518299451578 15154:\n" }{MPLTEXT 1 0 73 "rsap:= 34905295108476509491478496199038981 33417764638493387843990820577:\n" }{MPLTEXT 1 0 74 "rsaq:= 32769132993 266709549961988190834461413177642967992942539798288533:\n" }{MPLTEXT 1 0 67 "naive:= 152415787501905985701881832150835089037858868621211004 433:\n" }{MPLTEXT 1 0 68 "cnaive:= 14107746176556950024119950561785467 3388398574333341423525:\n" }{MPLTEXT 1 0 1441 "n1:=8834884587090814646 372459890377418962766907: sigpairm1:=4187265 53997094258577980055061305150940547956: sigpairs1:=7491426496415481015 20133634736865752883277237: sigpairm2:=1482376523249871234451241871713 0930: sigpairs2:=43176121628465441340112418672065063: signa:=1710 24704183616109700818066925197841516671277: signb:=83907354273436935926 0871355939062622747633109: sigpb:=98763457697834568934613: sigqb:=849 5789457893457345793: golay:=matrix(12,24,[1,0,0,0,0,0,0,0,0,0 ,0,0,1,1,1,0,1,1,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,1,1,1,0 ,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,1,1,1,0,0,0,0,0,0,1,0,0,0,0 ,0,0,0,0,1,0,1,0,1,1,0,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,1,1 ,0,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,1,1,0,1,1,1,0,0,0,0,0,0 ,1,0,0,0,0,0,1,1,0,0,0,1,0,1,1,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,0,0 ,0,1,0,1,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,1,0,0,0,1,0,1,1,0,0,0,0,0 ,0,0,0,0,0,1,0,0,1,0,1,1,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0 ,1,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1]): \+ golayb:=matrix(12,12,[1,1,1,0,1,1,1,0,0,0,1,0,1,0,1,1,0,1,1,1,0,0,0,1, 1,1,0,1,1,0,1,1,1,0,0,0,1,0,1,0,1,1,0,1,1,1,0,0,1,0,0,1,0,1,1,0,1,1,1, 0,1,0,0,0,1,0,1,1,0,1,1,1,1,1,0,0,0,1,0,1,1,0,1,1,1,1,1,0,0,0,1,0,1,1, 0,1,1,1,1,1,0,0,0,1,0,1,1,0,1,0,1,1,1,0,0,0,1,0,1,1,1,1,0,1,1,1,0,0,0, 1,0,1,0,1,1,1,1,1,1,1,1,1,1,1]): hammingpc:=matrix(4,15,[0,0,0,0,1,1,1 ,1,1,1,1,1,0,0,0,\n" }{MPLTEXT 1 0 61 "1,1,1,0,0,0,0,1,1,1,1,0,1,0,0,0 ,1,1,1,0,1,1,0,0,1,1,0,0,1,0,\n" }{MPLTEXT 1 0 32 "1,0,1,1,1,0,1,0,1,0 ,1,0,0,0,1]):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 145 "XXXX:= \"DON'T FO RGET TO HIT RETURN TO LOAD THE ABOVE COMMANDS BEFORE STARTING YOUR WOR K. PUT THE CURSOR HERE, OR HIGHER, BEFORE HITTING RETURN.\":" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 208 62 "We start from defining a plaintte xt in the appropriate format:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1120 "plaintext:=\"youdontknowaboutmewithoutyouhavereadabookbythenam eoftheadventuresoftomsawyerbutthataintnomatterthatbookwasmadebymrmarkt wainandhetoldthetruthmainlytherewasthingswhichhestretchedbutmainlyheto ldthetruththatisnothingineverseenanybodybutliedonetimeoranotherwithout itwasauntpollyorthewidowormaybemaryauntpollytomsauntpollysheisandmarya ndthewidowdouglasisalltoldaboutinthatbookwhichismostlyatruebookwithsom estretchersasisaidbeforenowthewaythatthebookwindsupisthistomandmefound themoneythattherobbershidinthecaveanditmadeusrichwegotsixthousanddolla rsapieceallgolditwasanawfulsightofmoneywhenitwaspiledupwelljudgethatch erhetookitandputitoutatinterestanditfetchedusadollaradayapiecealltheye arroundmorethanabodycouldtellwhattodowiththewidowdouglasshetookmeforhe rsonandallowedshewouldsivilizemebutitwasroughlivinginthehouseallthetim econsideringhowdismalregularanddecentthewidowwasinallherwaysandsowheni couldntstanditnolongerilitoutigotintomyoldragsandmysugarhogsheadagaina ndwasfreeandsatisfiedbuttomsawyerhehuntedmeupandsaidhewasgoingtostarta bandofrobbersandimightjoinifiwouldgobacktothewidowandberespectablesoiw entback\";" }}{PARA 11 "" 1 "" {XPPMATH 20 "Q]`oyoudontknowaboutmewith outyouhavereadabookbythenameoftheadventuresoftomsawyerbutthataintnomat terthatbookwasmadebymrmarktwainandhetoldthetruthmainlytherewasthingswh ichhestretchedbutmainlyhetoldthetruththatisnothingineverseenanybodybut liedonetimeoranotherwithoutitwasauntpollyorthewidowormaybemaryauntpoll ytomsauntpollysheisandmaryandthewidowdouglasisalltoldaboutinthatbookwh ichismostlyatruebookwithsomestretchersasisaidbeforenowthewaythattheboo kwindsupisthistomandmefoundthemoneythattherobbershidinthecaveanditmade usrichwegotsixthousanddollarsapieceallgolditwasanawfulsightofmoneywhen itwaspiledupwelljudgethatcherhetookitandputitoutatinterestanditfetched usadollaradayapiecealltheyearroundmorethanabodycouldtellwhattodowithth ewidowdouglasshetookmeforhersonandallowedshewouldsivilizemebutitwasrou ghlivinginthehouseallthetimeconsideringhowdismalregularanddecentthewid owwasinallherwaysandsowhenicouldntstanditnolongerilitoutigotintomyoldr agsandmysugarhogsheadagainandwasfreeandsatisfiedbuttomsawyerhehuntedme upandsaidhewasgoingtostartabandofrobbersandimightjoinifiwouldgobacktot hewidowandberespectablesoiwentback6\"" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 208 49 "Compute the ciphertext using the vigenere command" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "ciphertext:=vigenere(plaintext,[3,1 2,21,7,4]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "Q]`obapksqffuszmwvywyzdmw tjbxbapoeyqmlegmwvsnntalhzvtirrooidpqlrwgmlwrrovqvmrfiunpaxkmohmqfivqd folvwtvafrafdevyvkiekhyqddfaaduihrgtzasopooiwdpalpmdupbfclvhivzxkuinwz tdjlkqnavhfxoignpaqduisckqovpgfclxugooxkmopwqaoomqsduiyqmzihzvuceayffx fgpigailxlyzvvdzjalhdrpxkapamwivzexzowsoxtvvwtzdmgarvvpmtiipmmfexzowso xtaspevbrwbjspbeclmvmikqddthrgfclalpjdhrgbsevunhpofjshdnjbxlzooewnjvoz tdjllehvwwxthxugzisrwrpxkejtivfmlxftzywdedzelpwljrdzuszfcladkooewfclfr afdmqpnbtleoomvfjteqphljrgikxkqhvrhkooewfclvrnwlvvtdkmqfclgdhzhrguoteg qpzvlocdijaozmafcvyvmikhrxghvvmkpifqvspjagkmwivzeqmrmyoednlwaatsqqtdlh zdaadekpphppwahxgqygszaldfxoiutzasrwdaeqpkbxlfjbxdfduxhdzzxdzypxiqojlh ppzegagseumyhcdbdlghmgsxkqtleudjbrgyjyiwtvueeayfgrggkxhxgdldfovhridalw tzdmgarksxsghwvtzasrwhljrdclvvaihrgmgsszqyzlhijbpgedcmouulqhnpamwivzvr gboplhduklzooikapzidxgalhfdtifaizmgqmprjtjdhlehhpuqbbpddvuhgqxlrwfclal pjdadedueoxclvzmtzeqpnvakqipgrggkrweohrguousoainiuugpxrgopkrfduxrytvpg dvnwdzytcvgbhvkabzlhmyhkduihrgivzjuqzhrgevamvrdlhegoaspevdchdcllxzolhp qpweqpnhmgtzdevsjprjfjzxddohfdzyvjuawiiuevuhlydnlwvjprlrddsxxynsemxrxr fclalpjdeqpwlvheklgwmwsivaddiqfwhgn6\"" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 208 91 "Now we assume that we have ciphertext only and we want t o brake the cipher and find the key" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 208 113 "Finction \"coinc\" counts number of coincidences between the \+ ciphertext and the displaced ciphertexrt. For example," }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "coinc(ciphertext,7);" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"#K" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 208 70 "We th en compute the numbers of coincidences for different replacements" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "f:=x->coinc(ciphertext,x);" }}{PARA 11 "" 1 "" {XPPMATH 20 "f*6#I\"xG6\"F%6$I)operatorGF%I&arrowGF %F%-I&coincGF%6$I+ciphertextGF%9$F%F%F%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "map(f,[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]);" }} {PARA 11 "" 1 "" {XPPMATH 20 "72\"#\\\"#T\"#X\"#M\"#_\"#N\"#K\"#O\"#[ \"#n\"#Z\"#W\"#`F)\"#rF(" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 208 113 "So \+ the length of the key is 5 as the spikes are at positions 5,10,15, etc . We can now proceed to finding the key!" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "choose(ciphertext,5,1);" }}{PARA 11 "" 1 "" {XPPMATH 20 "Qixbqzwwbygnhrdwrvukqdwrveddgowpbhkzkhgdkgukqqyhexgldhkwxowgppxopw bvdglrvodlwzlwurkvfdlrzdwrqlvqrkhwrvqdggljavrvfjwqowqhdhhgdurqldhdihgu dhkugwerhdrwgxvrrvgzhgohwrllkdhfgjludgwldozqkrwgourrrgdvkhdgugvephxpqg vjdduulwlxerlqhwvqn6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "f req:=frequency(%);" }}{PARA 11 "" 1 "" {XPPMATH 20 "7<\"\"\"\"\"%\"\"! \"#C\"\"&\"\"$\"#A\"#>F#F$\"#7\"#:F%\"\"#\"\")\"\"'\"#9\"#@F%F%\"#6F,F 1F/F-F/" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "corr(%);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6<$\"%jt!\"$$\"%ehF%$\"%!))*F%$\"&'G9F%$ \"%c#)F%$\"%!H'F%$\"%Z\")F%$\"%d))F%$\"%zsF%$\"%4!)F%$\"%1!*F%$\"%awF% $\"%xwF%$\"%%e*F%$\"%B$*F%$\"%_))F%$\"%z&)F%$\"%V))F%$\"&,/\"F%$\"%9&) F%$\"%/lF%$\"%zzF%$\"%\"e)F%$\"%^vF%$\"%(>)F%$\"&_/\"F%" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 208 41 "Therefore the first entry in the key is \+ 3" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "choose(ciphertext,5,2) ;" }}{PARA 11 "" 1 "" {XPPMATH 20 "Qhxafmytaqmnzrpgrmnmfftaykdutpdmfiu tqfnuqfgmasqzafayzdaizxtammzxebemdfpgufnzntexgweftepdfkfapefpgqkfntfhu qoafmxmqaimeaqzepxsftwpffdzqpambmqdytagxfitastwdamqieunighzaxfaqteqdqf pexmpqgeuaugfydzgamuiqergedzqptsfdzaeyvrxmfppemaf6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "freq:=frequency(%);" }}{PARA 11 "" 1 "" {XPPMATH 20 "7<\"#A\"\"#\"\"!\"#7\"#;\"#E\"#6F$\"\"(F%\"\"$F%\"#>F*\" \"\"\"#9\"#<\"\"%F0F.\"\"*F-F+F1\"\"'F&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "corr(%);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6<$\"%J$*!\" $$\"&^+\"F%$\"%]&)F%$\"%TlF%$\"%%3)F%$\"%+*)F%$\"%XuF%$\"%+tF%$\"%)f*F %$\"%uuF%$\"%3iF%$\"%q\"*F%$\"&pP\"F%$\"%'>*F%$\"%YnF%$\"%v$)F%$\"%u#) F%$\"%pwF%$\"%c%)F%$\"%b$*F%$\"%@uF%$\"%)R(F%$\"%Z*)F%$\"%#G*F%$\"%4)) F%$\"%s))F%" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 208 43 "Therefore the sec ond entry in the key is 12" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "choose(ciphertext,5,3);" }}{PARA 11 "" 1 "" {XPPMATH 20 "Qhxpfwzjp mwtvoqmorpoiovfvhfizopdcvidnxpiocooodmvygizjrpvotzrtmotvjcitcjbnjjojdh tzrjmzdwzcocfnojhihocwdczopcocigkvgvrdatdkpgzxzdkjdzyopgydgtjjvyggodzr gzhcigyjdupvbdopgdimjhbvxcjdctnigooigodtvybbyivzvdovcopnzjjoywvdjdyxcj wkwdw6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "freq:=frequency (%);" }}{PARA 11 "" 1 "" {XPPMATH 20 "7<\"\"\"\"\"&\"#:\"#@\"\"!\"\"% \"#8\"\"'F)\"#>F(F'F*F$\"#E\"#7F#F*F'\"#5F#\"#<\"\")F(\"\"*F%" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "corr(%);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6<$\"%$o(!\"$$\"%u*)F%$\"%&y*F%$\"%%\\)F%$\"%0sF%$\"%;\") F%$\"%e!*F%$\"%z#)F%$\"%N#)F%$\"%?zF%$\"&s0\"F%$\"%?!*F%$\"%goF%$\"%)3 (F%$\"%u$*F%$\"%%\\*F%$\"%EzF%$\"%6$*F%$\"%kxF%$\"%OlF%$\"%dvF%$\"&>K \"F%$\"%R))F%$\"%#=(F%$\"%.zF%$\"%F))F%" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 208 42 "Therefore the third entry in the key is 21" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "choose(ciphertext,5,4);" }}{PARA 11 "" 1 "" {XPPMATH 20 "Qhxkuvdbolvatollvfahvladkyahaoaulznjaoasvlopouzu fplvapazwvdvifwabslkhldshsbovjvhiptlyzluloldbotlkvollklhtzdzvkhpskzmnt dapwqaoaabbuzpjzshlslbyufkdvadkhallhszbclazouozatzpdhbulldulzvpkhunppu vnthzhhzhaladllwhdpzhviunpdnrldllsdh6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "freq:=frequency(%);" }}{PARA 11 "" 1 "" {XPPMATH 20 " 7<\"#@\"\"*\"\"\"\"#;\"\"!\"\"%F'\"#>\"\"$F*\"#5\"#JF%\"\"'\"#8F.F%F%F $\"\"(F.F&F(F'F*\"#<" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "corr (%);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6<$\"%i*)!\"$$\"%;yF%$\"%tnF%$\" &?2\"F%$\"%FqF%$\"%.gF%$\"%X#)F%$\"&cW\"F%$\"%+()F%$\"%2pF%$\"%ByF%$\" %/**F%$\"%+wF%$\"%RwF%$\"%0()F%$\"%0#)F%$\"%rrF%$\"%\"*yF%$\"&?.\"F%$ \"%)o)F%$\"%V\")F%$\"%)z)F%$\"&v-\"F%$\"%f))F%$\"%^lF%$\"%S!*F%" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 208 42 "Therefore the fourth entry in the key is 7" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "choose(ciphert ext,5,5);" }}{PARA 11 "" 1 "" {XPPMATH 20 "Qhxssymxeesliirwqixmqvfeiqa rsilpvxwlviqcpxxwmiicfixvlxmesvmviessrpmqrahephxeolwxsxixwejsaefmtmejx revvmgrevimyhvipmeylslapaylisexxxxxleecgxeriegxlhlmswsjvrslpmqmvpkiili mrhpphraaeveagrrsixkxpwcvlkrjrmhsclhemerxfjihlrssxaevgiig6\"" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "freq:=frequency(%);" }} {PARA 11 "" 1 "" {XPPMATH 20 "7<\"\"*\"\"!\"\"&F$\"#B\"\"%\"\"'F#\"#AF %\"\"$\"#;\"# " 0 "" {MPLTEXT 1 0 8 "corr(%);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6<$\"&n+\"!\"$$\"%(e(F%$\"%lpF%$\"%3$)F%$\"&*F%$\"%R$)F%$\"%RvF%" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 208 41 "Therefore the fifth entry in the key is 4" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 208 15 "Thus the key is" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "key:=[3,12,21,7,4];" }}{PARA 11 "" 1 "" {XPPMATH 20 " 7'\"\"$\"#7\"#@\"\"(\"\"%" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 208 38 "And we can decipher the original text:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "vigenere(ciphertext,-key);" }}{PARA 11 "" 1 "" {XPPMATH 20 "Q]`oyoudontknowaboutmewithoutyouhavereadabookbythenameoft headventuresoftomsawyerbutthataintnomatterthatbookwasmadebymrmarktwain andhetoldthetruthmainlytherewasthingswhichhestretchedbutmainlyhetoldth etruththatisnothingineverseenanybodybutliedonetimeoranotherwithoutitwa sauntpollyorthewidowormaybemaryauntpollytomsauntpollysheisandmaryandth ewidowdouglasisalltoldaboutinthatbookwhichismostlyatruebookwithsomestr etchersasisaidbeforenowthewaythatthebookwindsupisthistomandmefoundthem oneythattherobbershidinthecaveanditmadeusrichwegotsixthousanddollarsap ieceallgolditwasanawfulsightofmoneywhenitwaspiledupwelljudgethatcherhe tookitandputitoutatinterestanditfetchedusadollaradayapiecealltheyearro undmorethanabodycouldtellwhattodowiththewidowdouglasshetookmeforherson andallowedshewouldsivilizemebutitwasroughlivinginthehouseallthetimecon sideringhowdismalregularanddecentthewidowwasinallherwaysandsowhenicoul dntstanditnolongerilitoutigotintomyoldragsandmysugarhogsheadagainandwa sfreeandsatisfiedbuttomsawyerhehuntedmeupandsaidhewasgoingtostartaband ofrobbersandimightjoinifiwouldgobacktothewidowandberespectablesoiwentb ack6\"" }}}} {MARK "0 0 0" 0 }{VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }