{VERSION 5 0 "IBM INTEL NT" "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 } {CSTYLE "" -1 256 "" 1 24 0 0 0 0 0 1 1 0 0 0 0 0 0 0 }{PSTYLE "Normal " -1 0 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Heading 1" -1 3 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 1 2 1 2 2 2 2 1 1 1 1 }1 1 0 0 8 4 1 0 1 0 2 2 0 1 }{PSTYLE "Heading 2" -1 4 1 {CSTYLE "" -1 -1 "Times" 1 14 0 0 0 1 2 1 2 2 2 2 1 1 1 1 }1 1 0 0 8 2 1 0 1 0 2 2 0 1 }{PSTYLE "Warning" -1 7 1 {CSTYLE "" -1 -1 "Courier" 1 10 0 0 255 1 2 2 2 2 2 1 1 1 3 1 } 1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Maple Output" -1 11 1 {CSTYLE " " -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }3 3 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Normal" -1 256 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }3 1 0 0 0 0 1 0 1 0 2 2 0 1 }} {SECT 0 {EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 256 "" 0 "" {TEXT 256 49 "Le cryptosyst\350me RSA : mise en oeuvre et attaque." }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "restart:" }}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 21 "Mise en oeuvre \+ de RSA" }}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 37 "G\351n\351ration de gra nds nombres premiers" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 179 "nbp :=proc(x,b)\nlocal p,a,alea:\np:=0:\nwhile p=0 do\na:=rand(b):\na:=[se q(a(),i=1..x-1),1]:\nalea:=add( a[i]*b^(i-1), i=1..x ):\np:=nextprime( alea):\nif p>=b^x then p:=0:\nfi:\nod:\np;\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "nbp(5,10);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6 #\"&4P\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "isprime(%);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#%%trueG" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 63 "G\351n\351ration des exposants de chiffrement e et de dec hiffrement d" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 302 "expo:=proc( x,b)\nlocal a,p,q,n,phi,e,d:\np:=nbp(x,b);\nq:=nbp(x,b);\nn:=p*q;\nphi :=(p-1)*(q-1);\ne:=0:\nwhile (e=0) do\na:=rand(b);\na:=[seq(a(),i=1..i quo(x,4))];\ne:=add( a[i]*b^(i-1), i=1..iquo(x,4) );\nif (e>phi) or (g cd(e,phi)<>1) then e:=0:\nfi:\nod:\nigcdex(e,phi,'u','v'):\nd:=u mod p hi;\n[p,q,n,phi,d,e];\nend:\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "expo(16,2);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7(\"&@*f\"&Ff&\"+ n " 0 "" {MPLTEXT 1 0 116 "encode:=p roc(mot)\nlocal n,liste:\nliste:=convert(mot,bytes):\nn:=nops(liste): \nadd(liste[i]*10**(3*(i-1)),i=1..n);\nend;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%'encodeGf*6#%$motG6$%\"nG%&listeG6\"F+C%>8%-%(convert G6$9$%&bytesG>8$-%%nopsG6#F.-%$addG6$*&&F.6#%\"iG\"\"\")\"#5,&*&\"\"$F @F?F@F@FE!\"\"F@/F?;F@F5F+F+F+" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 88 "decode:=proc(nb)\nlocal liste,i:\nliste:=convert(nb,base,1000) :\nconvert(liste,bytes);\nend:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "mot:= \"on veut transform er un message en un nombre\";" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%$mo tGQLon~veut~transformer~un~message~en~un~nombre6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "nb:=encode(mot);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#nbG\"\\s6,6K!=65 " 0 "" {MPLTEXT 1 0 10 "decode(%);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#QLon~veut~transforme r~un~message~en~un~nombre6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 118 "codersa:=proc(nb, n,e)\nlocal res,m,M:\nres:=[]:\nM:=convert(nb,base,n):\nfor m in M do \nres:=[op(res),m&^e mod n]:\nod:\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 134 "decode rsa:=proc(M,n,d)\nlocal m,res:\nres:=[]:\nfor m in M do\nres:=[op(res) ,m&^d mod n]:\nod:\nm:=add(res[i]*n**(i-1),i=1..nops(res));\nend:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 46 "message:=\"mise en place du cryptosyst\350me RSA\"; " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%(messageGQCmise~en~place~du~cryp tosyst|cyme~RSA6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "cle:= expo(32,2);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%$cleG7(\"+^nHzR\"+>Ng nI\"5pn'G^;Z!p?7\"5+l'fY4Z!p?7\"4zb/xcnu)pD\"#>" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 43 "Me:=codersa(encode(message),cle[3],cle[5]);" } }{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#MeG7(\"4%)))zNyC2/Q^'\"4y6@@.)pSKd\"4z`'3;%*R.N>\"4'*ee\"f9qLy'*" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 40 "Md:=decode(decodersa(Me,cle[3],cle[6]));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#MdGQCmise~en~place~du~cryptosyst|cyme~RSA 6\"" }}}}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 14 "Attaque de RSA" }} {SECT 0 {PARA 4 "" 0 "" {TEXT -1 35 "Conna\356tre d <=> savoir factori ser n" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 498 "factod:=proc(n,e,d ,b,taille)\nlocal a,test,s,t,w,v,v0,r,pgcd,nb:\ntest:=true:\nwhile tes t do\nw:=n:\nwhile w>=n do\na:=rand(b):\na:=[seq(a(),i=1..taille),1]: \nw:=add( a[i]*b^(i-1), i=1..taille+1 ):\nod:\npgcd:=gcd(w,n):\nif pgc d > 1 then RETURN([pgcd,n/pgcd]):fi:\ns:=0:\nnb:=e*d-1:\nwhile irem(nb ,2)= 0 do\ns:=s+1:\nnb:=iquo(nb,2):\nod:\nr:=iquo(e*d-1,2**s):\nv0:=0: \nv:= w &^ r mod n:\nt:=0:\nwhile v<>1 and t<=s do\nv0:=v:\nv:= v &^ 2 mod n:\nt:=t+1:\nod:\ntest:= ((t<=0) or (v0=n-1)): \nod:\n[gcd(v0+1,n ),gcd(v0-1,n)];\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "cl\351:=expo(50,2);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%$cl|dyG7(\"0Hb4r\")G@)\"0Z<\"e*\\)yo \"?j\"ztj4(>`GM,\"=&\\c\"?))=Zqk`5QGM,\"=&\\c\"?jIm.:1dJ$**3L(GL=\"$^ \"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "factod(cl\351[3],cl \351[5],cl\351[6],2,4);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7$\"0Hb4r\" )G@)\"0Z<\"e*\\)yo" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 35 "Attaque p ar les fractions continues" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "with(numtheory):" }}{PARA 7 "" 1 "" {TEXT -1 69 "Warning, the prot ected name order has been redefined and unprotected\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 285 "attaque:=proc(n,e,base,taille,born e)\nlocal fc,i,test,v,d,w:\ntest:=true:\nfc:=[seq(nthconver(cfrac(e/n) ,i),i=0..borne)];\ni:=2:\nwhile (test and i<=borne+1) do\nd:=denom(fc[ i]):\nif irem(d,2)=1 then\nv:=factod(n,e,d,base,taille):\nif v[1]>1 th en test:=false:\nfi:\nfi:\ni:=i+1:\nod:\nw:=[v,i];\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "cle:=expo(32,2);" }}{PARA 11 "" 1 " " {XPPMATH 20 "6#>%$cleG7(\"+f#fiL$\"+>jF^O\"5@w=JkU/;=7\"5W?lV%>Wg\"= 7\"4psQnjG-:1#\"#l" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "attaq ue(cle[3],cle[5],2,10,10);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7$7$\"+> jF^O\"+f#fiL$\"\"&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}} }}{MARK "3 2 1 0 0" 0 }{VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }