{VERSION 2 3 "SUN SPARC SOLARIS" "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 } {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 "Heading 1" 0 3 1 {CSTYLE "" -1 -1 "" 1 18 0 0 0 0 0 1 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 }3 3 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }} {SECT 0 {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "restart:" }}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 40 "Umrechnen zwischen Bytefolgen und Zahlen " }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 113 "bytes2number := proc( X )\n local x,i;\n x:=0:\n for i to nops(X) do\n x:=256*x+X[nops( X)+1-i];\n od;\n x;\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 200 "number2bytes := proc( xx, l )\n local X,x;\n x:=xx;\n X:=NULL; \n to l do\n x:=iquo( x, 256, 'r' );\n X:=(X,r);\n od;\n if x <>0 then print(`Warnung: Informationsverlust! `,x); fi;\n [eval(X)]; \nend:" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 3 "RSA" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "N := 114904368268304941496221083076526600441521262452417537215 66611:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "phiN := 114904368 26830494149622108307642448732977418697626067520174392:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "e := 300451064496881304823305871781 1100614819243903353950594001587:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "n:=floor(log[256](N))+1;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"nG\"#E" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 47 "Vers chl\374sselungsfunktion.\n(Achtung! Blo\337 NICHT " }{TEXT 0 9 "x^e mo d N" }{TEXT -1 45 " verwenden ...\nModular geht viel schneller;-)" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "encrypt := proc( N, e, x )\n x &^ \+ e mod N;\nend:" }{TEXT -1 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 96 " In welchem Ordner liegen die Dateien?\n[Der Ordnername MYFOLDER/ ist e ntsprechend anzupassen ...]" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "FOLD ER:=`MYFOLDER/`:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 75 "\326ffne die \+ Klartextdatei zum Lesen. Diese Daten sollen verschl\374sselt werden." }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "INPUT :=fopen( ``.FOLDER.`bild.gi f`, READ, BINARY ):" }}{PARA 0 "" 0 "" {TEXT -1 83 "\326ffne die Gehei mtextdatei zum Schreiben. Hier sollen die verschl\374sselten Daten hin ." }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "OUTPUT:=fopen( ``.FOLDER.`bild .crypt`, WRITE, BINARY ):" }}{PARA 0 "" 0 "" {TEXT -1 32 "Stopuhr star ten zum Zeit messen." }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "st:=time(): " }}{PARA 0 "" 0 "" {TEXT -1 16 "Schleifenanfang." }}{PARA 0 "> " 0 " " {MPLTEXT 1 0 2 "do" }}{PARA 0 "" 0 "" {TEXT -1 5 "Lies " }{TEXT 0 3 "n-1" }{TEXT -1 34 " bytes. (Mehr darf nicht sein, da " }{TEXT 0 1 "x " }{TEXT -1 11 " h\366chstens " }{TEXT 0 1 "N" }{TEXT -1 11 " sein dar f." }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 29 " X:=readbytes( INPUT, n-1 ); " }}{PARA 0 "" 0 "" {TEXT -1 76 "Wenn nichts mehr gelesen wurde, ist d ie Datei `am Ende': Schleife verlassen." }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 24 " if X=0 then break; fi;" }}{PARA 0 "" 0 "" {TEXT -1 120 "Gele sene Bytes in eine Zahl umwandeln.\n(Also x:=sum( X[k-i] * 256^i, i=0. .k-1 ), wobei k die Anzahl der Bytes in X ist.)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 23 " x:=bytes2number( X );" }}{PARA 0 "" 0 "" {TEXT -1 14 "Verschl\374sseln." }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 24 " y:=encry pt( N, e, x );" }}{PARA 0 "" 0 "" {TEXT -1 38 "Verschl\374sselte Zahl \+ in eine Folge von " }{TEXT 0 1 "n" }{TEXT -1 74 " Bytes umwandeln.\n(G egenst\374ck zu oben. ACHTUNG! Die Zahl N selbst braucht " }{TEXT 0 1 "n" }{TEXT -1 68 " Bytes,\ndaher ist ein Block hier um ein Byte l\344n ger als beim Lesen!)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 26 " Y:=number 2bytes( y, n );" }}{PARA 0 "" 0 "" {TEXT -1 31 "Verschl\374sselte Byte s schreiben." }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 26 " writebytes( OUTPU T, Y );" }}{PARA 0 "" 0 "" {TEXT -1 54 "Sicherstellen, da\337 sofort a lles auf der Platte landet." }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 17 " ff lush(OUTPUT);" }}{PARA 0 "" 0 "" {TEXT -1 14 "Schleifenende." }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "od:" }}{PARA 0 "" 0 "" {TEXT -1 14 "Zeit a usgeben." }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "time()-st;" }}{PARA 0 " " 0 "" {TEXT -1 18 "Dateien schlie\337en." }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "fclose(INPUT);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 15 " fclose(OUTPUT);" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}} {MARK "3 7 3 0" 52 }{VIEWOPTS 1 1 0 1 1 1803 }