{VERSION 5 0 "IBM INTEL LINUX" "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 "Heading 1" 0 3 1 {CSTYLE "" -1 -1 "" 1 18 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }1 0 0 0 8 4 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 {SECT 1 {PARA 3 "" 0 "" {TEXT -1 21 " Fermat Factorization" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "p:=nextprime(1452845);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"pG\"(^GX\"" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 22 "q:=nextprime(1457439);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"qG\"(fuX\"" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "n:=p*q;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"nG\".4cwqu6#" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "m := lcm((p-1),(q-1)); ifactor(m);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"mG\".]w#Rte5" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#*,- %!G6#\"\"#\"\"\")-F%6#\"\"&F'F()-F%6#\"\"(F'F(-F%6#\"$$fF(-F%6#\"'H(G( F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "e:= 17^2*31^3; gcd(m,e);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"eG\"(*f4')" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\" \"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 235 "Ffact := proc(n, num )\nlocal i, s,t, bool;\n\nbool := false;\nt := floor(sqrt(n));\nfor i \+ from 1 to num while not bool do \nt:=t+1;\n s := t^2 -n;\n s:= sq rt(s);\n bool := evalb(s = Integer(s));\nod;\nRETURN(bool, Integer(s ), t);\nend proc;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%&FfactGf*6$%\"n G%$numG6&%\"iG%\"sG%\"tG%%boolG6\"F.C&>8'%&falseG>8&-%&floorG6#-%%sqrt G6#9$?(8$\"\"\"F>9%4F1C&>F4,&F4F>F>F>>8%,&*$)F4\"\"#F>F>F;!\"\">FE-F96 #FE>F1-%&evalbG6#/FE-%(IntegerGFM-%'RETURNG6%F1FSF4F.F.F." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "a, b, c :=Ffact(n,6000);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>6%%\"aG%\"bG%\"cG6%%%trueG\"%/B\"(b^X\"" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "c-b;c+b;(c-b)*(c+b);n;" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#\"(^GX\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"(fuX\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\".4cwqu6#" }}{PARA 11 "" 1 "" {TEXT -1 0 "" }}}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 25 "Chin ese Remainder Theorem" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 254 "CR T:= proc(r, ms, as)\nlocal i, M, Ms,Ts, A;\n\nMs:= Vector(r);\nTs := V ector(r);\nM := 1;A:=0;\nfor i from 1 to r do\n M:= M* ms[i];\nod;\nf or i from 1 to r do\n Ms[i]:= M/ ms[i];\n Ts[i] := Ms[i]^(-1) mod ms [i];\n A:= A+ as[i]*Ms[i]*Ts[i] mod M;\nod;\nend proc;\n" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%$CRTGf*6%%\"rG%#msG%#asG6'%\"iG%\"MG%#MsG%#Ts G%\"AG6\"F0C(>8&-%'VectorG6#9$>8'F4>8%\"\"\">8(\"\"!?(8$F F;*&F;F<&9%6#FAF&F3FG*&F;F&F9FG-%$modG6$*&FF>-FQ6$,&F>F<*(&9&FGF \+ " 0 "" {MPLTEXT 1 0 140 "twofac:= proc(n)\nlocal i, cnt, nn;\n\ncnt:=0 ;\nnn:=n;\nwhile 0 = nn mod 2 do\n cnt := cnt+1;\n nn := nn/2; \nod;\nRETURN(cnt,nn);\nend proc;\n" }}{PARA 12 "" 1 "" {XPPMATH 20 " 6#>%'twofacGf*6#%\"nG6%%\"iG%$cntG%#nnG6\"F,C&>8%\"\"!>8&9$?(F,\"\"\"F 5F,/F0-%$modG6$F2\"\"#C$>F/,&F/F5F5F5>F2,$F2#F5F:-%'RETURNG6$F/F2F,F,F ," }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 293 "FindSqrRoot1 := proc( n,s,t)\nlocal b, rnum, c, sqr_root1;\n\nrnum := rand(n);\nsqr_root1:= -1;\nwhile sqr_root1 = -1 do\n b := rnum();\n b := b&^t mod n;\n w hile (b <> 1 and b <> n-1) do\n c := b &^2 mod n;\n if c = 1 the n sqr_root1 := b fi;\n b := c;\n od;\nod;\nRETURN(sqr_root1);\nend proc;\n" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%-FindSqrRoot1Gf*6%%\"nG% \"sG%\"tG6&%\"bG%%rnumG%\"cG%*sqr_root1G6\"F/C&>8%-%%randG6#9$>8'!\"\" ?(F/\"\"\"F;F//F8F9C%>8$-F2F/>F?-%$modG6$-%#&^G6$F?9&F6?(F/F;F;F/30F?F ;0F?,&F6F;F;F9C%>8&-FC6$-FF6$F?\"\"#F6@$/FPF;>F8F?>F?FP-%'RETURNG6#F8F /F/F/" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 217 "ProbFact := proc( n, r)\nlocal s,t, sqr_root1, d1, d2;\n\ns, t := twofac(r);\nsqr_root1 \+ := FindSqrRoot1(n,s,t);\nd1 := gcd(sqr_root1 - 1, n );\nd2 := gcd(sqr_ root1 + 1, n );\nRETURN(d1,d2,d1*d2);\nend proc; " }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%)ProbFactGf*6$%\"nG%\"rG6'%\"sG%\" tG%*sqr_root1G%#d1G%#d2G6\"F/C'>6$8$8%-%'twofacG6#9%>8&-%-FindSqrRoot1 G6%9$F3F4>8'-%$gcdG6$,&F:\"\"\"FE!\"\"F>>8(-FB6$,&F:FEFEFEF>-%'RETURNG 6%F@FH*&F@FEFHFEF/F/F/" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 32 " Finding the Decrypting Expon ent" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "p:=nextprime(1928398) ;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"pG\"(,%G>" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "q:=nextprime(9345239);n:= p*q;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"qG\"(p_M*" }}{PARA 11 "" 1 "" {XPPMATH 20 " 6#>%\"nG\"/p[3E9-=" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "m := \+ lcm(p-1,q-1);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"mG\".+Gq``]%" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "e:=793^(-1) mod m;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"eG\".dWhD " 0 " " {MPLTEXT 1 0 17 "5&^(793*e) mod n;" }}{PARA 11 "" 1 "" {XPPMATH 20 " 6#\"\"&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "5&^m mod n;" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "isprime (q); phn:=numtheory[phi](n);(p-1)*(q-1)/m;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%%trueG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%$phnG\"/+7 \"[T@!=" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "e*793 mod m;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 257 "Dexp := proc( n,e, num)\nlocal i, d, bool, rnum, k, kk;\n\nbool:=true;\nrnum := rand (n);\nfor d from 1 to num while bool do\n for i from 1 to 1 while boo l do\n k:= rnum();\n kk:= k&^(d*e) mod n;\n bool := evalb(kk< >k);\n od;\nod;\nRETURN(bool, d-1);\nend proc;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%%DexpGf*6%%\"nG%\"eG%$numG6(%\"iG%\"dG%%boolG%%rnumG% \"kG%#kkG6\"F1C&>8&%%trueG>8'-%%randG6#9$?(8%\"\"\"F>9&F4?(8$F>F>F>F4C %>8(-F7F1>8)-%$modG6$-%#&^G6$FD*&F=F>9%F>F;>F4-%&evalbG6#0FGFD-%'RETUR NG6$F4,&F=F>F>!\"\"F1F1F1" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "printlevel :=1;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%+printlevelG \"\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "d:= Dexp(n, e, 30 00)[2];" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"dG\"$$z" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "ProbFact(n, d*e-1);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%\"(p_M*\"(,%G>\"/p[3E9-=" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "n;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"/p[3E9-= " }}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 17 " Iterative Attack" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "p:=nextprime(2938238);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"pG\"(T#QH" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "q: =nextprime(534673);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"qG\"'(pM&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "n:=p*q;" }}{PARA 11 "" 1 " " {XPPMATH 20 "6#>%\"nG\".xzko5d\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "m:= lcm(p-1,q-1);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6# >%\"mG\"-!)o9$Q'>" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "ifacto r(p-1);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#*()-%!G6#\"\"#\"\"(\"\"\"-F &6#\"\"&F*-F&6#\"%\"f%F*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "ifactor(q-1);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#*()-%!G6#\"\"#\"\"$ \"\"\"-F&6#F)F*-F&6#\"&zA#F*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "ifactor(m);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#*,)-%!G6#\"\"#\" \"(\"\"\"-F&6#\"\"$F*-F&6#\"\"&F*-F&6#\"&zA#F*-F&6#\"%\"f%F*" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "e:=CRT(5, [2^7,3,5,22279, 45 91], [7,2,3,1,1]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"eG\",Bw;l6' " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "rnum := rand(10^7);" }} {PARA 12 "" 1 "" {XPPMATH 20 "6#>%%rnumGf*6\"6#%\"tGF&F&C%>%&_seedG-%% iremG6$,$F+\"-\"3p'>uU\"-*)**********>8$F+-F-6$F3\")+++5F&6#F+F&" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "k:= rnum(10^9);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"kG\"(wO[#" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "kk:= k&^(e^(16)) mod n;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#kkG\"(wO[#" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 241 "Iattack := proc(n,e,num)\nl ocal i, bool, rnum, k, kk, exp;\n\nexp := 1;\nrnum := rand(n);\nfor i \+ from 1 to 10 do\n k:= rnum();\n kk:=k&^(e^exp) mod n;\n while kk <> k do\n kk:= kk&^(e) mod n;\n exp := exp +1;\n od;\nod;\nRETURN (exp);\nend proc; " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 12 "" 1 " " {XPPMATH 20 "6#>%(IattackGf*6%%\"nG%\"eG%$numG6(%\"iG%%boolG%%rnumG% \"kG%#kkG%$expG6\"F1C&>8)\"\"\">8&-%%randG6#9$?(8$F5F5\"#5%%trueGC%>8' -F7F1>8(-%$modG6$-%#&^G6$FB)9%F4F;?(F1F5F5F10FEFBC$>FE-FG6$-FJ6$FEFMF; >F4,&F4F5F5F5-%'RETURNG6#F4F1F1F1" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "Iattack(n,e,500);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 5 "e^16;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#\"huh,=z3$RgF+@#)*yA\"eJ-F>2@pW\"Q)[+6xLwQK*Q?mPQ" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "h:=e^16-1;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6 #>%\"hG\"hug,=z3$RgF+@#)*yA\"eJ-F>2@pW\"Q)[+6xLwQK*Q?mPQ" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "ProbFact(n,h);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 " " }}{PARA 11 "" 1 "" {XPPMATH 20 "6%\"'(pM&\"(T#QH\".xzko5d\"" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "n;" }}}}}{MARK "1 1 0 0" 78 } {VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }