{VERSION 2 3 "SGI IRIS UNIX" "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 "Heading 1" 0 3 1 {CSTYLE "" -1 -1 "" 1 18 0 0 0 0 0 1 0 0 0 0 0 0 0 }1 0 0 0 6 6 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 {SECT 0 {PARA 3 "" 0 "" {TEXT -1 44 "file contents -> numbers \+ numbers -> text" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 405 "Read Bignums:= proc(filename,chunksize)\n local file,chunk,i,p,numlist;\n \+ \n p := 128;\n numlist := [];\n file := fopen(filename, R EAD, BINARY);\n chunk := readbytes(file,chunksize);\n while (chunk <> 0) do\n numlist := [op(numlist), \n sum( chu nk[i]* p^(chunksize-i), i=1..nops(chunk))];\n chunk := readbytes( file,chunksize);\n od;\n close(file);\n RETURN(numlist);\nend:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "data:=ReadBignums(`/home/mat 331/www/exercise3/data/Extra`,47):\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "data[2];" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"^q&p$3w3 m&H>ljJetiYoIa\\\\=AC/XMQMja+.-S`$*R5k&)ey9(3z9A#))" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "nops(data);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#R" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 124 "BignumToText :=proc(num,k)\n local i,p;\n p:=128;\n convert([seq( iquo(modp(num ,p^(k-i+1)),p^(k-i)), i=1..k)],'bytes');\nend:" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 25 "BignumToText(data[2],47);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#%Pg~phrase,~which~was~encoded~using~a~affine|+encoG" }} }}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 69 "Basic Setup: choice of primes, base, exponent, and decoding exponent" }}{PARA 0 "" 0 "" {TEXT -1 0 " " }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 51 "First, we need to a way to pic k big random numbers." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "Bi gRand := rand(10^100..10^105):\nMedRand := rand(50..10^90):" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "readlib(randomize)(); # lo ad randomize(), and call it" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"*#>g? *)" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 25 "Now, lets pick our stuff" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 75 "p:=nextprime(BigRand()); \nq:=nextprime(BigRand());\nphi:=(p-1)*(q-1);\nn:=p*q;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"pG\"dqJ(z\\(p)*>-w([#)=1cjS*)>J'Q\"z`W5qXGz?Qf Ik)[f]#z1.nce-%[pW$[\"o\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"qG\"d qZE')fUITOz^sxM[Hm!f.sSf/ZdqOgJ(oB2/cLKu7)>;;1mcO'=P4v9f(" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%$phiG\"]x!elTV)or\"[w`T-fdRp%>7oa*zu^*>\"fsaN .WYU6(3d?=f2.\"QV4!*4ndsx7qc35tg2Q\"*fKf%G#[6a\"*p7)p2,.&R.'=Lpr;ZtfPg 8c\"[jdg*3!3(R\\w7" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%\"nG\"]xdz+p'z H.-sF,p[3m;VX%Q(ojv`!)=lK@$RTuBM_U?6[^RILD)zc]_`Xq8qc35tg2Q\"*fKf%G#[6 a\"*p7)p2,.&R.'=Lpr;ZtfPg8c\"[jdg*3!3(R\\w7" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "a:=MedRand();\nwhile( gcd(a,phi) <> 1) do; a:= Med Rand(); od;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"aG\"epNJS1yj.&Qm&R \\?-&zo8IR?%\"aG\"ep?$)>FC>\"Rpd<3\"R1weu@*yN@*o%)4-k'*36:83VDN%=t\\#4p1)> $" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"aG\"dpo-J&)Q#4)QI7i*y>6\"R\"o M%\" aG\"ep3^MmYr#Q'>giWUpKZhi&Rn&Hy.SOv2*fo0E!Qc^I(>\"\\=u4Sy" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"aG\"epv7s:q4eDNT1%[BDly_UEN.MklZ=oI6-ZEKUAr tchMg+e!))" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"aG\"dpAdfb+`y?m\"4p \"f0(*fe%Gsn%=rB+A;fn&H-qy\"o7vtNnl[9t)" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"aG\"ep.cT4@4%pox@yCF\"fWiKM![7as@1NgHT19f7P_OrDXvOgDk$" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"aG\"epuIWLtt@d6W.?XVP[)G!\\S.yz]L[ CI+N[\"ze'Rh75IZykJ5s" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"aG\"epM]2 a0d/q$o\")pj7^,IS2;#y!y]q7Ad))f6re*>gU]wz#)>2#[9*" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"aG\"epnl,XH[AbL_v#*y%yE#\\#f6kr'>AlafN=GO;yhG6VU%H' [)\\88$" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "x:= modp( 1/a, p hi);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%\"xG\"\\xVVB$H9\\BoVD,qH`?&4 Qoe))=-i^X:z)f'3r7ofZxH#R)3GJ$)Hb>mo%y`OlmJ7D+Cc)>K:\\aTwq.X1U'f(pq9um &fP)4?3))H^=wgW#Gptq!Q$RceW;" }}}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 18 "Encoding/Decoding." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "RSAEncode := proc(bignum, a, n)\n modp( bi gnum &^ a, n);\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "RSA Encode(data[1],a,n);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#\"\\x9-c1@Q=g& )R4\"zMB(*p<>7<;IdZ@EGXK#)*Gv1*\\0s$*Q%*Q+k(fFfm'y1*[)y&\\ncH(=G!ozb?B y%>9&*)\\dCZ\"3(*3Sw$y#o9-**[RSa\"=f_m08t " 0 "" {MPLTEXT 1 0 38 "encoded := map(RSAEncode, data, a, n):" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "decoded := map(RSAEncode, en coded, x, n):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "map(Bignum ToText,decoded,47);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#7I%P|+Here~is~e xercise~#3.|+|+[1.]~Decode~the~followinG%Pg~phrase,~which~was~encoded~ using~a~affine|+encoG%Pding~cipher~on~a~27-letter~alphabet~(the~letter G%Ps~a-z~and~a~blank).|+Note~that~a=0.|+|+~xgb~dkjvmbG%Pkffcmtkrv~m~lk aerask~mdbmwkfmezremzkmxrcm~kkmfvG%Pkrx~mxgvkmaskrvsc|+|+|+----------- ----------------G%P-----------------------------------------------G%P- --|+[2.]|+The~message~below~has~been~encoded~usiG%Png~a~linear~cipher, ~A*v,~where~A~is~a|+3x3~matriG%Px.~~The~mesage~was~coded~in~a~97-chara cter~alphG%Pabet~(given~below),|+where~the~first~character~(G%Pa~blank )~is~given~the~numeric~code~0.~~You~are|+G%Pgiven~the~decoding~of~the~ first~sentence.~~LineG%P~breaks~have~been~preserved.|+Decrypt~the~mess agG%Pe.|+|+Alphabet:=convert([seq(i,i=32..126),162,164G%P],bytes);|+~| +First~line~of~message:|+A~Deep~ThougG%Pht~By~Jack~Handey:|+~|+Coded~m essage~follows:|+$bLG%PHD(7\"7>[C_ct(JJt-!sJ\\3K4W(9|+|+buJq0IGi(6!i(c \\zF/G%P5oCQy\"y-1l)&a p,.\\*|grQN#gy)~x8Yj|fr+$|ir&|+W~HNG%PJWQ-<.S|hr\"k:SdFY9?gPd;Vb;7sD4U knE.ezrr|irH!&^BZ|hru\"G%P84y.qi`pT3K4lbJ,i\"[ zx%*y.Hpw/G%PrAn7U[:\";sqh0~^CrQ-H!&^BZ|hru\"84y.qiOT&2:JF@m0u$Q-<]G%P']_W$G[!INF60g$v8~ ~~7\"7a59!H|irBh\\|fr9nU$X)/R|+>f+]oG%P85vvs\\/s2#3K4Vl5VvUM>F-w2|ir'* jLPU!AqW>|irzs|ir#DSSQ7G%PXeG[!U!AH!&^BZ|hru\"84y.qie!\"|+INF60g]Vi3K4 : " 0 "" {MPLTEXT 1 0 0 "" }}}}}{MARK "0 4 0 0" 0 }{VIEWOPTS 1 1 0 3 2 1804 }