{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 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 257 "" 1 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 258 "" 0 1 0 0 0 0 0 2 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 259 "" 0 1 0 0 0 0 0 2 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 260 "" 1 12 0 0 0 0 0 2 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 261 "" 1 10 0 0 0 0 0 2 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 262 "" 1 10 0 0 0 0 0 2 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 263 "" 1 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 264 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 265 "" 1 14 0 0 0 0 0 0 0 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 3" -1 5 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 1 1 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Maple Output" -1 11 1 {CSTYLE "" -1 -1 "Ti mes" 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 "Heading 3" -1 256 1 {CSTYLE "" -1 -1 "Times" 1 14 0 0 0 1 1 1 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Heading 3" -1 257 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 1 1 1 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Heading 3" -1 258 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 1 1 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Heading 2" -1 259 1 {CSTYLE "" -1 -1 "Times" 1 14 0 0 0 1 1 1 2 2 2 2 1 1 1 1 }1 1 0 0 8 2 1 0 1 0 2 2 0 1 }} {SECT 0 {PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 257 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "restart;" }}}{SECT 1 {PARA 257 "" 0 "" {TEXT 256 56 "Message, cl\351s secr\351tes : p et q et cl\351s publiqu es : n et" }{TEXT 263 1 " " }{TEXT 264 1 "e" }{TEXT 262 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 147 "message:=bonjour;\n#il est pr\351f \351rable de prendre p et q < 10 000 pour un temps de calcul raisonnab le\nP:=nextprime(2458);\nQ:=nextprime(2838);\nN:=P*Q;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%(messageG%(bonjourG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"PG\"%fC" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"QG\" %VG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"NG\"(P4*p" }}}{SECT 1 {PARA 258 "" 0 "" {TEXT 258 0 "" }{TEXT -1 0 "" }{TEXT 259 0 "" } {TEXT 260 0 "" }{TEXT 261 0 "" }{TEXT -1 50 "Les nombres p et q doiven t absolument etre premier" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 168 "if isprime(P)=true then print(\"P est premier\") else print(\"P n 'est pas premier\")fi;\nif isprime(Q)=true then print(\"Q est premier \") else print(\"Q n'est pas premier\") fi;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#Q.P~est~premier6\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#Q .Q~est~premier6\"" }}}{SECT 1 {PARA 5 "" 0 "" {TEXT -1 18 "D\351termin ation de E" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 163 "LE:=[]:\nfor \+ EE from 1 to P while nops(LE)<5 do \nif igcd(EE,(P-1)*(Q-1))= 1 the n LE:=[op(LE),EE] else \"E n'est pas premier avec p-1 et q-1\"\nfi:\no d;\nLE;\nE:=LE[3];" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7'\"\"\"\"\"$\" \"&\"\"*\"#6" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"EG\"\"&" }}}}}} {SECT 1 {PARA 5 "" 0 "" {TEXT -1 0 "" }{TEXT 265 19 "Cryptage du messa ge" }{TEXT -1 0 "" }}{SECT 1 {PARA 5 "" 0 "" {TEXT -1 27 "V\351rificat ion des conditions" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 161 "if is prime(Q)=true and\n isprime(P)=true and \n igcd( E,(P-1)(Q-1))= 1 \nthen \"cryptage possible\"\nelse \"une condition n'est pas remplie\"\nfi;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#Q2cryptag e~possible6\"" }}}}{SECT 1 {PARA 5 "" 0 "" {TEXT -1 23 "Assignation de s lettres" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 131 "(a,b,c,d,e,f,g ,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,_):=(1,2,3,4,5,6,7,8,9,10,11,12 ,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27):" }}}}{SECT 1 {PARA 5 " " 0 "" {TEXT -1 8 "Cryptage" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1541 "lg:=length(message):\n \n#les lettres sont associ\351es 2 \340 2 avant d'\352tre crypt\351es \n\nL0:=[]:\nL1:=[]:\nL10:=[]:\nL11:=[a]: \n\n\nnombre[0]:=0:\nS:=1:\nmess[0]:=message:\n\n\nif type(message,int eger)=true \nthen \n L11:=[nombre]:\n fo r kl from 1 to lg \n do nombre[kl]:=trunc(mess[kl-1] /10^(lg-S));\n mess[kl]:=(mess[kl-1]-nombre[kl]*10 ^(lg-S));\n S:=S+1; \n od;\n\n \+ for R from 1 to lg\n do L10:=[op(L10),nombr e[R]]:\n L11:=[op(L11),modp((nombre[R])^E,N)]:\n \+ od:\n\nprint(\"nombre non crypt\351\" =L10);\nprint(\"nombr e crypt\351\" =L11);\nelse\n\n for R from 1 to lg \n \+ do Lettre[R]:=substring(message,R) \n od;\n\n if N \+ >2727 \n then \n if type(lg/2,in teger)=true \n then \n else L ettre[lg+1]:=Lettre[lg]:\n Lettre[lg]:=0:\n lg:=lg+1 \n fi:\n\n \+ for R from 1 to lg/2 \n do L0: =[op(L0),Lettre[2*R]+100*Lettre[2*R-1]]: \n \+ L1:=[op(L1),modp((Lettre[2*R]+100*Lettre[2*R-1])^E,N)]: \n \+ od: \n else \n for R from 1 \+ to lg\n do L0:=[op(L0),Lettre[R]]:\n \+ L1:=[op(L1),modp((Lettre[R])^E,N)]:\n od: \n fi;\nprint(\"message non crypt\351\" =L0);\nprint(\"mess age crypt\351\" =L1);\nfi:\n" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/Q3mes sage~non~crypt|dy6\"7&\"$:#\"%59\"%@:\"#=" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/Q/message~crypt|dy6\"7&\"(%HTf\"(d\"GB\"()ylb\"(o&*)= " }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }} }{SECT 1 {PARA 256 "" 0 "" {TEXT -1 21 "D\351cryptage du message" }} {SECT 1 {PARA 256 "" 0 "" {TEXT -1 26 "D\351sassignation des lettres" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 167 "(a,b,c,d,e,f,g,h,i,j,k,l, m,n,o,p,q,r,s,t,u,v,w,x,y,z,_):=('a','b','c','d','e','f','g','h','i',' j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','_' ):" }}}}{SECT 1 {PARA 256 "" 0 "" {TEXT -1 25 "D\351termination de la \+ cl\351 d" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 206 "D1:=op(2,op(mso lve(E*D=1,(P-1)*(Q-1))));\nfacD:=ifactor(D1);\nfor JK from 1 to nops(f acD) do\nif nops(op(JK,facD))=2\nthen Cl\351D[JK]:=op(op(1,op(1,facD)) )^op(2,op(1,facD));\nelse\nCl\351D[JK]:=op(op(JK,facD))\nfi;\nod;" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%#D1G\"(4&)e&" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%%facDG*&-%!G6#\"%$4\"\"\"\"-F'6#\"%8^F*" }}}}{SECT 1 {PARA 256 "" 0 "" {TEXT -1 10 "D\351cryptage" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 922 "L2:=[]:\nL3:=[]:\nL12:=[]: #pour les chiffres\nL 13:=[nomb]:\n\nif op(1,L11)=nombre\nthen\n opL:=nops(L11):\n \+ for R from 2 to opL \n do ME[R]:=modp(op(R,L11)^D1 ,N); \n od:\n\nL13:=[nombre,seq(ME[Rt],Rt=2..opL)]; \nprint(L13);\n \nelse\n opL:=nops(L1):\n opL1:=nops(ifactor(D 1));\n for R from 1 to opL \n do ME[R]:=modp(op(R ,L1)^(Cl\351D[1]),N);\n for RL from 2 to nops(facD) do\nME[R]:=mod p(ME[R]^(Cl\351D[RL]),N);\n od: \n od:\n\n\n \+ if N>2727\n\n then\n \n\n L2:=[seq([Z[trunc(ME[R T]/100)],Z[ME[RT]-trunc(ME[RT]/100)*100]],RT=1..opL)];\n L3:=[ seq(op(L2[ER]),ER=1..opL)]:\n\n if L3[2*opL-1]=Z[0] \n \+ then L3[2*opL-1]:=op(2*opL,L3);\n opL:= opL-1/2 \n else \n fi; \n else L3:=[seq(Z[ME [Rt]],Rt=1..opL)]\n fi;\nprint(L2);\nprint(L3);\nprint(\"message d \351crypt\351\");\nfi:\n" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7&7$&%\"ZG 6#\"\"#&F&6#\"#:7$&F&6#\"#9&F&6#\"#57$F)&F&6#\"#@7$&F&6#\"\"!&F&6#\"#= " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7*&%\"ZG6#\"\"#&F%6#\"#:&F%6#\"#9& F%6#\"#5F(&F%6#\"#@&F%6#\"#=F4" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#Q1me ssage~d|dycrypt|dy6\"" }}}}{SECT 1 {PARA 256 "" 0 "" {TEXT -1 13 "R \351assignation" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 212 "(Z[1],Z[ 2],Z[3],Z[4],Z[5],Z[6],Z[7],Z[8],Z[9],Z[10],Z[11],Z[12],Z[13],Z[14],Z[ 15],Z[16],Z[17],Z[18],Z[19],Z[20],Z[21],Z[22],Z[23],Z[24],Z[25],Z[26], Z[27]):=(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,_):" }}}} {SECT 1 {PARA 256 "" 0 "" {TEXT -1 27 "Lecture du message d\351crypt \351" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 353 "mess1:=NULL:\nmess2 :=NULL:\nif op(1,L13)=nombre\nthen\n\nfor S from 2 to opL \n do \n mess1:=cat(mess1,L13[S]) \n od:\n\n print(\"m essage\"=mess1);\n\n else \n \nif N>2727\nthen opL: =2*opL \nelse \nfi:\n for S from 1 to opL \n do \n \+ mess1:=cat(mess1,L3[S]) \n od:\n \n print(\"message\"= mess1);\nfi:" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/Q(message6\"%(bonjour G" }}}}{PARA 256 "" 0 "" {TEXT -1 0 "" }}}{SECT 1 {PARA 256 "" 0 "" {TEXT -1 12 "Outils Maple" }}{SECT 1 {PARA 256 "" 0 "" {TEXT -1 56 "Tr ouver un nombre premier entre n et p (n et p 2 r\351els)" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 148 "Premier:=[]:\nfor N from 340 to 35 0 \ndo \n if isprime(N)=true \n then Premier:=[op(P remier),N] \n else \n fi:\nod:\nPremier;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7$\"$Z$\"$\\$" }}}}{SECT 1 {PARA 259 "" 0 "" {TEXT -1 41 "Pour trouver facilement un nombre premier" }}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 47 "npremier:=nextprime(34567);\nisprime(npremier) ;\n" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%)npremierG\"&$eM" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%%trueG" }}}}{SECT 1 {PARA 256 "" 0 "" {TEXT -1 41 "Trouver les facteurs premiers d'un r\351el R" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "ifactor(234);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#*(-%!G6#\"\"#\"\"\")-F%6#\"\"$F'F(-F%6#\"#8F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}}}{MARK "2" 0 }{VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }