{VERSION 5 0 "IBM INTEL NT" "5.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 2 1 2 0 0 0 1 }{CSTYLE "_cstyle1" -1 202 "Times" 0 1 0 0 0 0 0 0 0 2 2 2 0 0 0 1 }{CSTYLE "_cstyle2" -1 203 "Times" 0 1 0 0 0 0 0 0 0 2 2 2 0 0 0 1 }{PSTYLE "_pstyle1" -1 200 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 2 2 2 0 0 0 1 }0 0 0 -1 -1 -1 1 0 1 0 2 2 -1 1 }{PSTYLE "_pstyle 2" -1 201 1 {CSTYLE "" -1 -1 "Courier" 0 1 255 0 0 1 0 1 0 2 1 2 0 0 0 1 }0 0 0 -1 -1 -1 1 0 1 0 2 2 -1 1 }{PSTYLE "_pstyle3" -1 202 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 2 2 2 0 0 0 1 }0 0 0 -1 -1 -1 1 0 1 0 2 2 -1 1 }} {SECT 0 {EXCHG {PARA 200 "" 0 "" {TEXT 202 3 "01." }{TEXT 202 0 "" }}} {EXCHG {PARA 201 "> " 0 "" {MPLTEXT 1 0 25 "ListToNumber:=proc(liste) " }{MPLTEXT 1 0 0 "" }{MPLTEXT 1 0 17 "\nif nops(liste)=1" }{MPLTEXT 1 0 0 "" }{MPLTEXT 1 0 23 "\n then return liste[1]" }{MPLTEXT 1 0 0 " " }{MPLTEXT 1 0 75 "\n else return 1000*ListToNumber([op(1..nops(list e)-1,liste)])+op(-1,liste)" }{MPLTEXT 1 0 0 "" }{MPLTEXT 1 0 10 "\nend if; " }{MPLTEXT 1 0 0 "" }{MPLTEXT 1 0 10 "\nend proc:" }{MPLTEXT 1 0 0 "" }{MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 27 "\nTextToNumber:=proc(str ing)" }{MPLTEXT 1 0 0 "" }{MPLTEXT 1 0 39 "\nListToNumber(convert(stri ng,'bytes'));" }{MPLTEXT 1 0 0 "" }{MPLTEXT 1 0 10 "\nend proc:" } {MPLTEXT 1 0 0 "" }{MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 25 "\nNumberToLis t:=proc(zahl)" }{MPLTEXT 1 0 0 "" }{MPLTEXT 1 0 13 "\nif zahl<1000" } {MPLTEXT 1 0 0 "" }{MPLTEXT 1 0 21 "\n then return [zahl]" }{MPLTEXT 1 0 0 "" }{MPLTEXT 1 0 76 "\n else return [op(NumberToList((zahl-(zah l mod 1000))/1000)),zahl mod 1000]" }{MPLTEXT 1 0 0 "" }{MPLTEXT 1 0 8 "\nend if;" }{MPLTEXT 1 0 0 "" }{MPLTEXT 1 0 10 "\nend proc:" } {MPLTEXT 1 0 0 "" }{MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 25 "\nNumberToTex t:=proc(zahl)" }{MPLTEXT 1 0 0 "" }{MPLTEXT 1 0 37 "\nconvert(NumberTo List(zahl),'bytes');" }{MPLTEXT 1 0 0 "" }{MPLTEXT 1 0 10 "\nend proc: " }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 200 "" 0 "" {TEXT 202 3 "02." } {TEXT 202 0 "" }}}{EXCHG {PARA 201 "> " 0 "" {MPLTEXT 1 0 31 "Verschlu essele:=proc(nachricht)" }{MPLTEXT 1 0 0 "" }{MPLTEXT 1 0 39 "\nPower( TextToNumber(nachricht),e) mod n" }{MPLTEXT 1 0 0 "" }{MPLTEXT 1 0 10 "\nend proc:" }{MPLTEXT 1 0 0 "" }{MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 27 "\nEntschluessele:=proc(zahl)" }{MPLTEXT 1 0 0 "" }{MPLTEXT 1 0 34 "\nNumberToText(Power(zahl,d) mod n)" }{MPLTEXT 1 0 0 "" }{MPLTEXT 1 0 10 "\nend proc:" }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 200 "" 0 "" {TEXT 202 3 "03." }{TEXT 202 0 "" }}}{EXCHG {PARA 201 "> " 0 "" {MPLTEXT 1 0 24 "InitialisiereRSA:=proc()" }{MPLTEXT 1 0 0 "" } {MPLTEXT 1 0 17 "\nlocal rnd1,rnd2;" }{MPLTEXT 1 0 0 "" }{MPLTEXT 1 0 22 "\nglobal p,q,n,phi,e,d;" }{MPLTEXT 1 0 0 "" }{MPLTEXT 1 0 27 "\nrn d1:=rand(10^100,10^101);" }{MPLTEXT 1 0 0 "" }{MPLTEXT 1 0 25 "\nrnd2: =rand(10^50,10^51);" }{MPLTEXT 1 0 0 "" }{MPLTEXT 1 0 22 "\np:=nextpri me(rnd1());" }{MPLTEXT 1 0 0 "" }{MPLTEXT 1 0 22 "\nq:=nextprime(rnd1( ));" }{MPLTEXT 1 0 0 "" }{MPLTEXT 1 0 8 "\nn:=p*q;" }{MPLTEXT 1 0 0 " " }{MPLTEXT 1 0 18 "\nphi:=(p-1)*(q-1);" }{MPLTEXT 1 0 0 "" }{MPLTEXT 1 0 8 "\ne:=phi;" }{MPLTEXT 1 0 0 "" }{MPLTEXT 1 0 27 "\nwhile not(gcd (phi,e)=1) do" }{MPLTEXT 1 0 0 "" }{MPLTEXT 1 0 23 "\n e:=nextprime(r nd2())" }{MPLTEXT 1 0 0 "" }{MPLTEXT 1 0 8 "\nend do;" }{MPLTEXT 1 0 0 "" }{MPLTEXT 1 0 19 "\nd:=e^(-1) mod phi;" }{MPLTEXT 1 0 0 "" } {MPLTEXT 1 0 10 "\nend proc:" }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 200 " " 0 "" {TEXT 202 3 "04." }{TEXT 202 0 "" }}}{EXCHG {PARA 201 "> " 0 " " {MPLTEXT 1 0 19 "InitialisiereRSA():" }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 200 "" 0 "" {TEXT 202 3 "05." }{TEXT 202 0 "" }}}{EXCHG {PARA 201 "> " 0 "" {MPLTEXT 1 0 6 "[e,n];" }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 200 "" 0 "" {TEXT 202 3 "06." }{TEXT 202 0 "" }}}{EXCHG {PARA 201 "> " 0 "" {MPLTEXT 1 0 38 "nachricht:=\"Dies ist meine Nachricht\" ;" }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 200 "" 0 "" {TEXT 202 3 "07." } {TEXT 202 0 "" }}}{EXCHG {PARA 201 "> " 0 "" {MPLTEXT 1 0 36 "resultat :=Verschluessele(nachricht);" }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 200 " " 0 "" {TEXT 202 3 "08." }{TEXT 202 0 "" }}}{EXCHG {PARA 201 "> " 0 " " {MPLTEXT 1 0 25 "Entschluessele(resultat);" }{MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 200 "" 0 "" {TEXT 202 3 "09." }{TEXT 202 0 "" }}}{EXCHG {PARA 201 "> " 0 "" {MPLTEXT 1 0 27 "Entschluessele(resultat+1);" } {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 200 "" 0 "" {TEXT 202 3 "10." } {TEXT 202 0 "" }}}{EXCHG {PARA 201 "> " 0 "" {MPLTEXT 1 0 59 "resultat :=Verschluessele(\"Wie ist es mit dieser Meldung?\");" }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 200 "" 0 "" {TEXT 202 3 "11." }{TEXT 202 0 "" }}} {EXCHG {PARA 201 "> " 0 "" {MPLTEXT 1 0 25 "Entschluessele(resultat); " }{MPLTEXT 1 0 0 "" }}}{PARA 202 "" 0 "" {TEXT 203 0 "" }}{PARA 202 " " 0 "" {TEXT -1 0 "" }}}{MARK "1 0 0" 0 }{VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }