{VERSION 2 3 "IBM INTEL NT" "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 } {CSTYLE "" 0 21 "" 0 1 0 0 0 1 0 0 0 0 2 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 "Text Output" -1 2 1 {CSTYLE "" -1 -1 "Couri er" 1 10 0 0 255 1 0 0 0 0 0 1 3 0 0 }1 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 2 6 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 2 0 0 } 0 0 0 -1 -1 -1 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 }} {SECT 0 {EXCHG {PARA 0 "" 0 "" {MPLTEXT 0 21 37 "On initialise le g \351n\351rateur al\351atoire" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "res tart:Seed:=readlib(randomize)():" }}}{EXCHG {PARA 0 "" 0 "" {MPLTEXT 0 21 47 "Fonction qui transforme une lettre en sa valeur" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "lettre_val:=proc(ch)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 9 " local s:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 49 " s:=se archtext(ch,`abcdefghijklmnopqrstuvwxyz `):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 13 " if s>0 then " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 12 " \+ RETURN(s);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 5 " else" }}{PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 36 " ERROR(`caract\350re non valide`, ch);" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 4 " fi:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "end:" }}}{EXCHG {PARA 0 "" 0 "" {MPLTEXT 0 21 47 "Fonction qui \+ transforme une valeur en sa lettre" }{MPLTEXT 1 0 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "val_lettre:=proc(n)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 52 " RETURN(substring(`abcdefghijklmnopqrstuvwxyz `,n)): " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "end:" }}}{EXCHG {PARA 0 "" 0 "" {MPLTEXT 0 21 42 "Fonction qui transforme un texte en nombre" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "texte_en_nombre:=proc(ch)" }}{PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 12 " local nb,i:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 7 " nb:=0:" }}{PARA 0 "" 0 "" {MPLTEXT 0 21 43 " Le texte repr\351 sente un nombre en base 28" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 30 " for \+ i from 1 to length(ch) do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 40 " nb:= nb*28+lettre_val(substring(ch,i));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 " od:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "RETURN(nb):" }}{PARA 0 " > " 0 "" {MPLTEXT 1 0 4 "end:" }}}{EXCHG {PARA 0 "" 0 "" {MPLTEXT 0 21 42 "Fonction qui transforme un nombre en texte" }}{PARA 0 "> " 0 " " {MPLTEXT 1 0 25 "nombre_en_texte:=proc(nb)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 9 " local l:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 24 " l:=co nvert(nb,base,28):" }}{PARA 0 "" 0 "" {MPLTEXT 0 21 43 " On inverse \+ la liste donn\351e par \"convert\"" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 34 " l:=[l[nops(l)-i]$i=0..nops(l)-1]:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 36 " RETURN(cat(op(map(val_lettre,l))));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "end:" }}}{EXCHG {PARA 0 "" 0 "" {MPLTEXT 0 21 27 "Fonc tion qui code un nombre" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "nb_en_co de:=proc(nb)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 23 " RETURN(nb&^e mod p ro):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "end:" }}}{EXCHG {PARA 0 "" 0 "" {MPLTEXT 0 21 29 "Fonction qui d\351code un nombre" }}{PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 20 "code_en_nb:=proc(nb)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 9 " local d:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 50 " d:=(1 /e mod ((p-1)*(q-1))):RETURN(nb&^d mod pro):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "end:" }}}{EXCHG {PARA 0 "" 0 "" {MPLTEXT 0 21 51 "On e ntre ici p et q : le programme calculera e et d" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 10 "p:=314159:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "q:=500009:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "pro:=p*q: e:=0:" }}}{EXCHG {PARA 0 "" 0 "" {MPLTEXT 0 21 20 "Boucle qui choisit \+ e" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "while igcd(e,(p-1)*(q-1))>1 do " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 27 " e:=rand(1..(p-1)*(q-1))();" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 80 "od:printf(` \+ Valeur de e: %a`,e);" }}{PARA 6 "" 1 "" {TEXT -1 74 " Valeur d e e: 115665416069" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "texte_ en_nombre(`secret`);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"*+/:I$" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "nb_en_code(\");" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\",RtA,h$" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "code_en_nb(\");" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\" *+/:I$" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "nombre_en_texte( \");" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%'secretG" }}}}{MARK "14 1 0" 0 }{VIEWOPTS 1 1 0 1 1 1803 }