\mnb150ÿ{\rtf1\ansi\deff0\deftab720{\fonttbl{\f0\fswiss MS Sans Serif;}{\f1\froman\fcharset2 Symbol;}{\f2\fswiss\fprq2 System;}{\f3\fswiss\fprq2 Arial;}{\f4\fmodern\fprq1 Courier New;}{\f5\fswiss\fprq2 Helvetica;}} {\colortbl\red0\green0\blue0;\red0\green128\blue0;\red255\green0\blue0;\red0\green0\blue255;\red0\green0\blue128;} \deflang1031\pard\ri4\plain\f4\fs20\cf0\b ________________________________________________________________________________ \par \par \plain\f4\fs20\cf0 Inhalt....: Verschl\'fcsselung beliebig langer Texte mittels RSA \par Kategorie.: Arbeitsblatt \par Mathematik: Kryptographie, Zahlentheorie \par MuPAD.....: 3.0.0 \par Datum.....: 2002-08-05 \par Autoren...: Julia Faflek \par Funktionen: numlib::toAscii, modp, powermod, floor, nextprime, random, igcd \par \plain\f4\fs20\cf0\b ________________________________________________________________________________ \par \plain\f3\fs36\cf0\b \par \plain\f3\fs40\cf0\b Ver- und Entschl\'fcsselung beliebig langer Texte \par mittels RSA\plain\f3\fs36\cf0\b \par \plain\f3\fs22\cf0 \par \plain\f3\fs24\cf1 RSA ist weltweiter Standard bei der Ver- und Entschl\'fcsselung von Daten. Hier wird gezeigt, \par wie man einen Text aufbereitet, um ihn mit RSA zu verschl\'fcsseln. Auf weitere zahlentheoretische \par Hintergr\'fcnde wird nicht n\'e4her eingegangen. Eine Einf\'fchrung in das RSA Verfahren bietet das \par Notebook "RSA.mnb", welches unter \plain\f3\fs24\cf1\b\i www.mupad.de/schule/material\plain\f3\fs24\cf1 zum Download zur \par Verf\'fcgung steht. \par \plain\f3\fs28\cf0 \par Wir wollen einen Textstring eingeben, der dann in das ASCII-Format umgewandelt \par wird. \par \plain\f3\fs22\cf0 \par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf2 {\pntext\f1\'b7\tab}Nachricht:= "MuPAD ist toll!"\plain\f3\fs28\cf2 \par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf2 {\pntext\f1\'b7\tab}numlib::toAscii(Nachricht) \par \pard\ri4\plain\f3\fs28\cf0 \par Die nun vorliegende Liste wird als 128-adische Darstellung einer ganzen Zahl \par aufgefasst. Da in RSA mit ganzen Zahlen gerechnet wird, wandeln wir diese Liste \par in eine ganze Zahl um. \par \par Dazu schreiben wir eine Prozedur, die eine ganze Zahl x berechnet mit \par \pard\li1500\ri4\plain\f4\fs22\cf3 {\pict\wmetafile8\picw4400\pich1614\picscalex98\picscaley99\picwgoal2520\pichgoal924 010009000003240400000B001C0000000000050000000B0200000000050000000C024E06301103 0000001E00050000000C025E065D11050000000B0200000000030000001E00050000000C026006 8C11050000000B0200000000050000000B0200000000030000001E00050000000C027006BA1105 0000000B0200000000050000000B0200000000050000000B0200000000030000001E0005000000 0C028306BC11050000000B0200000000050000000B0200000000050000000B0200000000050000 000B0200000000030000001E00050000000C029406E911050000000B0200000000050000000B02 00000000050000000B0200000000050000000B0200000000050000000B0200000000030000001E 00050000000C02A7061A12050000000B0200000000050000000B0200000000050000000B020000 0000050000000B0200000000050000000B0200000000050000000B0200000000030000001E0005 0000000C02B9064912050000000B0200000000050000000B0200000000050000000B0200000000 050000000B0200000000050000000B0200000000050000000B0200000000050000000B02000000 00030000001E00050000000C02BB064B12050000000B0200000000050000000B02000000000500 00000B0200000000050000000B0200000000050000000B0200000000050000000B020000000005 0000000B0200000000050000000B0200000000030000001E00030000001E00050000000C02D103 5F0A050000000B0200000000050000000B0200000000050000000B0200000000050000000B0200 000000050000000B0200000000050000000B0200000000050000000B0200000000050000000B02 00000000050000000B020000000008000000FA0200000000000000000000040000002D0100001C 000000FB0238FF00000000000090010000000107000000417269616C0000002F0D0A6A38E91200 D89FF177E19FF1772020F377C50C6617040000002D010100050000000201010000000500000001 02FFFFFF00050000002E01180000000500000009020000000004000000080100001C000000FB02 E8FE0000000000009001000000010700000054696D6573204E657720526F6D616E00D89FF177E1 9FF1772020F377C50C6617040000002D0102000B00000026060F000C004D617468547970650000 42011C000000FB02E8FE0000000000009001010000010700000054696D6573204E657720526F6D 616E00D89FF177E19FF1772020F377C50C6617040000002D010300040000002D0102001C000000 FB023AFF0000000000009001010000010700000054696D6573204E657720526F6D616E00D89FF1 77E19FF1772020F377C50C6617040000002D0104001C000000FB023AFF00000000000090010000 00020700000053796D626F6C0000DB0D0A8B38E91200D89FF177E19FF1772020F377C50C661704 0000002D0105001C000000FB023AFF0000000000009001000000010700000054696D6573204E65 7720526F6D616E00D89FF177E19FF1772020F377C50C6617040000002D010600040000002D0102 00040000002D0104001C000000FB02E8FE0000000000009001000000020700000053796D626F6C 0000910D0A9038E91200D89FF177E19FF1772020F377C50C6617040000002D010700040000002D 010400040000002D010600040000002D010500040000002D010400040000002D01060004000000 2D0105001C000000FB02E8FE000000000000900100000002070000005346204D61746820457874 0038E91200D89FF177E19FF1772020F377C50C6617040000002D010800040000002D0102000400 00002D010500040000002D010700040000002D0102000500000009020000FF00040000002D0103 00070000002105010078013E026E00040000002D01070007000000210501003D013E023E010400 00002D010500040000002D010800040000002D010200040000002D010500040000002D01080004 0000002D010200040000002D010500040000002D0108000700000021050100580126012C020400 00002D010400070000002105010069016B037102040000002D01050007000000210501003D016B 03C602040000002D010600070000002105010030016B035103040000002D010400070000002105 01006B0105015C02040000002D01050007000000210501002D010501DA02040000002D01060007 00000021050100310105016503040000002D010700040000002D010200040000002D0106000400 00002D01020007000000210501004C013E02F803070000002105010069013E02A3040700000021 05010073013E02F104070000002105010074013E025E05070000002105010065013E02AC050400 00002D01040007000000210501006B0181022806040000002D01050007000000210501002D0181 02A606040000002D0104000700000021050100690181023107040000002D010700070000002105 0100D7013E02A107040000002D010200070000002105010031013E021F08070000002105010032 013E02AB08070000002105010038013E023709040000002D01040007000000210501006901AF01 C30908000000FA0200000000000000000000040000002D0109001C000000FB0210000700000000 00BC02000000000102022253797374656D0000150D0A6B38E91200D89FF177E19FF1772020F377 C50C6617040000002D010A00040000002701FFFF04000000F001000004000000F0010100040000 00F001020004000000F001030004000000F001040004000000F001050004000000F00106000400 0000F001070004000000F0010800040000002701FFFF040000002701FFFF040000002701FFFF04 0000002701FFFF040000002701FFFF040000002701FFFF040000002701FFFF040000002701FFFF 040000002701FFFF030000000000 }\plain\f3\fs28\cf0 \par \pard\ri4\plain\f3\fs28\cf0 wobei k die L\'e4nge der Liste darstellt. \par \plain\f3\fs22\cf0 \par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf2 {\pntext\f1\'b7\tab}Ascii2Int:= proc(Liste) \par \pard\li600\ri1\fi-300\plain\f4\fs28\cf2 local Zahl, i; \par begin \par Zahl:= 0: \par for i from 1 to nops(Liste) do \par Zahl:= 128 * Zahl + Liste[nops(Liste) + 1 - i] \par end_for: \par return(Zahl): \par end: \par \pard\ri4\plain\f3\fs28\cf0 \par Das Problem, das sich nun stellt, ist, dass mit RSA nur Nachrichten versch\'fcsselt \par werden k\'f6nnen, deren Wert in obiger Codierung einer ganzen Zahl kleiner als N \par entspricht. Dabei ist N = p * q der RSA-Modul. Daher m\'fcssen wir die Liste der \par ASCII-Darstellung in Bl\'f6cke der L\'e4nge n - 1 zerlegen, wobei n die L\'e4nge der Zahl \par N in 128-adischer Darstellung ist. Dazu m\'fcssen wir uns \'fcberlegen, wie viele solcher \par Bl\'f6cke gebildet werden m\'fcssen, falls die L\'e4nge der Liste gr\'f6\'dfer als n - 1 ist. \par \par Dazu betrachten wir den Ausdruck \par \plain\f4\fs22\cf2 \par \pard\li1500\ri4\plain\f4\fs22\cf3 {\pict\wmetafile8\picw5566\pich841\picscalex99\picscaley99\picwgoal3186\pichgoal481 010009000003E103000008001C0000000000050000000B0200000000050000000C024903BE1503 0000001E00050000000C025103F415050000000B0200000000030000001E00050000000C025C03 F815050000000B0200000000050000000B0200000000030000001E00050000000C0265032F1605 0000000B0200000000050000000B0200000000050000000B0200000000030000001E0005000000 0C0267033316050000000B0200000000050000000B0200000000050000000B0200000000050000 000B0200000000030000001E00050000000C026F036B16050000000B0200000000050000000B02 00000000050000000B0200000000050000000B0200000000050000000B0200000000030000001E 00050000000C027A03A816050000000B0200000000050000000B0200000000050000000B020000 0000050000000B0200000000050000000B0200000000050000000B0200000000030000001E0005 0000000C028303E316050000000B0200000000050000000B0200000000050000000B0200000000 050000000B0200000000050000000B0200000000050000000B0200000000050000000B02000000 00030000001E00050000000C028503E516050000000B0200000000050000000B02000000000500 00000B0200000000050000000B0200000000050000000B0200000000050000000B020000000005 0000000B0200000000050000000B0200000000030000001E00030000001E00050000000C02FF01 FB0C050000000B0200000000050000000B0200000000050000000B0200000000050000000B0200 000000050000000B0200000000050000000B0200000000050000000B0200000000050000000B02 00000000050000000B020000000008000000FA0200000000000000000000040000002D0100001C 000000FB0238FF00000000000090010000000107000000417269616C000000C50C0A1838E91200 D89FF177E19FF1772020F377150D666D040000002D010100050000000201010000000500000001 02FFFFFF00050000002E01180000000500000009020000000004000000080100001C000000FB02 E8FE0000000000009001000000010700000054696D6573204E657720526F6D616E00D89FF177E1 9FF1772020F377150D666D040000002D0102000B00000026060F000C004D617468547970650000 80001C000000FB02E8FE000000000000900100000002070000005346204D617468204578740038 E91200D89FF177E19FF1772020F377150D666D040000002D010300040000002D01020004000000 2D010300040000002D0102001C000000FB02E8FE0000000000009001010000010700000054696D 6573204E657720526F6D616E00D89FF177E19FF1772020F377150D666D040000002D0104000400 00002D0102001C000000FB02E8FE0000000000009001000000020700000053796D626F6C0000DB 0D0A8C38E91200D89FF177E19FF1772020F377150D666D040000002D010500040000002D010300 040000002D010200040000002D010300040000002D010200040000002D010500040000002D0104 00040000002D010500040000002D0102000500000009020000FF0007000000210501006E015E01 640007000000210501006F015E01F000070000002105010070015E017C01070000002105010073 015E010802040000002D010300040000002D010200040000002D010300040000002D0102000400 00002D010300070000002105010028015E017502040000002D010500040000002D010200070000 00210501004C015E01E202070000002105010069015E018D03070000002105010073015E01DB03 070000002105010074015E014804070000002105010065015E019604040000002D010300040000 002D010200040000002D010300040000002D010200040000002D01030007000000210501002901 5E011205040000002D01050007000000210501003D015E01D305040000002D010300040000002D 010200040000002D010300040000002D010200040000002D010500040000002D01040007000000 2105010073015E01C406040000002D0105000700000021050100D7015E016907040000002D0103 00040000002D010200040000002D010300040000002D010200040000002D010300040000002D01 0200040000002D010300040000002D010200040000002D010300070000002105010028015E01E7 07040000002D01040007000000210501006E015E015408040000002D0105000700000021050100 2D015E012609040000002D010200070000002105010031015E01060A040000002D010300040000 002D010200040000002D010300040000002D010200040000002D01030007000000210501002901 5E01920A040000002D01050007000000210501002B015E01450B040000002D0104000700000021 05010072015E01250C08000000FA0200000000000000000000040000002D0106001C000000FB02 1000070000000000BC02000000000102022253797374656D0000CF0C0A8838E91200D89FF177E1 9FF1772020F377150D666D040000002D010700040000002701FFFF04000000F001000004000000 F001010004000000F001020004000000F001030004000000F001040004000000F0010500040000 002701FFFF040000002701FFFF040000002701FFFF040000002701FFFF040000002701FFFF0400 00002701FFFF040000002701FFFF040000002701FFFF040000002701FFFF030000000000 }\plain\f4\fs22\cf3 \par \par \pard\ri4\plain\f3\fs28\cf0 Ist r = 0, so m\'fcssen wir s Bl\'f6cke bilden, andernfalls s+1. Nun schreiben wir eine \par Prozedur, die bei Eingabe eines Strings, je nach L\'e4nge entweder eine ganze Zahl \par oder eine Liste von Zahlen ausgibt. \par \plain\f4\fs22\cf2 \par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf2 {\pntext\f1\'b7\tab}Text2Int:= proc(Text, n) \par \pard\li600\ri1\fi-300\plain\f4\fs28\cf2 local Liste, Quotient, Rest, Block, Zahl, i; \par begin \par Liste:= numlib::toAscii(Text): \par if nops(Liste) > n-1 then \par Quotient:= _div(nops(Liste), n-1): \par Rest:= modp(nops(Liste), n-1): \par Block:= null(): \par Zahl:= null(): \par for i from 1 to Quotient do \par Block:= op(Liste, (i-1)*n-i+2..i*(n-1)): \par Zahl:= (Zahl, Ascii2Int([Block])): \par end_for: \par if Rest = 0 then \par return([Zahl]): \par else \par Block:= op(Liste, Quotient*n-(Quotient+1)+2..nops(Liste)): \par Zahl:= (Zahl, Ascii2Int([Block])): \par return([Zahl]) \par end_if: \par else \par return([Ascii2Int(Liste)]): \par end_if: \par end: \par \pard\ri4\plain\f4\fs22\cf3 \par \plain\f3\fs28\cf0 Nun haben wir den Text so aufbereitet, dass wir ihn mit RSA verschl\'fcsseln \par k\'f6nnen. Dazu ben\'f6tigen wir noch eine geeignete Verschl\'fcsselungsprozedur, \par die bei Eingabe des RSA-Moduls N, des \'f6ffentlichen Schl\'fcssels und der \par Nachricht verschl\'fcsselte Zahlen ausgibt. \par \plain\f4\fs22\cf3 \par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf2 {\pntext\f1\'b7\tab}verschluesseln:= proc(Modul, oeffentlich, Nachricht) \par \pard\li600\ri1\fi-300\plain\f4\fs28\cf2 local n, Umwandlung, Codierung; \par begin \par n:= floor(log(128, Modul)) + 1: \par Umwandlung:= Text2Int(Nachricht, n): \par Codierung:= [powermod(Umwandlung[i], oeffentlich, Modul) \par $ i = 1..nops(Umwandlung)]: \par end: \par \pard\ri4\plain\f4\fs20\cf0\b \par \plain\f3\fs28\cf0 Jetzt m\'fcssen wir uns nur noch Gedanken um die Entschl\'fcsselung machen, \par dazu gehen wir "r\'fcckw\'e4rts" vor: Nehmen wir an, wir haben eine Liste von Zahlen \par erhalten, die wir entschl\'fcsseln wollen. Als erstes wenden wir auf jede dieser \par Zahlen die RSA-Entschl\'fcsselung an, indem wir den geheimen Schl\'fcssel ver- \par wenden. Die so erhaltenen Zahlen m\'fcssen nun ins ASCII-Format umgewandelt \par werden. \par \par Zun\'e4chst brauchen wir also eine Prozedur, die uns aus einer ganzen Zahl kleiner \par als N eine Darstellung im ASCII-Format liefert: \par \par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf2 {\pntext\f1\'b7\tab}Int2Ascii:= proc(Zahl, n) \par \pard\li600\ri1\fi-300\plain\f4\fs28\cf2 local Liste, Quotient, Rest, i; \par begin \par Quotient:= Zahl: \par Liste:= null(): \par for i from 1 to n-1 do \par Rest:= modp(Quotient, 128): \par Quotient:= _div(Quotient, 128): \par Liste:= (Liste, Rest): \par end_for: \par return(Liste): \par end: \par \pard\ri4\plain\f3\fs28\cf0 \par Diese Prozedur muss also auf jede entschl\'fcsselte Zahl angewandt werden. \par Die so erhaltenen Listen m\'fcssen aneinandergesetzt werden und dann in \par einen Textstring umgewandelt werden. Dies leistet die folgende Prozedur: \par \par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf2 {\pntext\f1\'b7\tab}Int2Text:= proc(Zahlliste, n) \par \pard\li600\ri1\fi-300\plain\f4\fs28\cf2 local Liste, i, Text; \par begin \par Liste:= null(): \par for i from 1 to nops(Zahlliste) do \par Liste:= (Liste, Int2Ascii(Zahlliste[i], n)): \par end_for: \par Text:= numlib::fromAscii([Liste]): \par return(Text): \par end: \par \pard\ri4\plain\f3\fs28\cf0 \par Jetzt fehlt nur noch die Entschl\'fcsselungsprozedur, in der wir die Prozedur \par \plain\f4\fs28\cf2 Int2Text\plain\f3\fs28\cf0 verwenden: \par \par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf2 {\pntext\f1\'b7\tab}entschluesseln:= proc(Modul, geheim, GeheimeNachricht) \par \pard\li600\ri1\fi-300\plain\f4\fs28\cf2 local n, Umwandlun, Decodierung; \par begin \par n:= floor(log(128, Modul)) + 1: \par Decodierung:= [powermod(GeheimeNachricht[i], geheim, Modul) \par $ i = 1..nops(GeheimeNachricht)]: \par Umwandlung:= Int2Text(Decodierung, n): \par end: \par \pard\ri4\plain\f3\fs28\cf0 \par Betrachten wir nun ein Beispiel. Zun\'e4chst legen wir folgende RSA-Parameter fest: \par \par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf2 {\pntext\f1\'b7\tab}p:= nextprime(2^64): \par \pard\li600\ri1\fi-300\plain\f4\fs28\cf2 q:= nextprime(p + 2^16): \par N:= p*q: \par \pard\ri4\plain\f3\fs28\cf0 \par und erzeugen wir ein zuf\'e4lliges Schl\'fcsselpaar: \par \par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf2 {\pntext\f1\'b7\tab}Schluesselerzeugung:= proc(p, q) \par \pard\li600\ri1\fi-300\plain\f4\fs28\cf2 local Phi_N; \par begin \par Phi_N:= (p-1)*(q-1): \par for i from 1 to Phi_N do \par e:= random(2..Phi_N-1)(): \par if igcd(e, Phi_N) = 1 then \par print("oeffentlich = " .e): \par break: \par end_if: \par end_for: \par d:= e^(-1) mod Phi_N: \par print("geheim = " .d); \par end: \par \pard\ri4\plain\f3\fs28\cf0 \par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf2 {\pntext\f1\'b7\tab}Schluesselerzeugung(p, q) \par \pard\ri4\plain\f3\fs28\cf0 \par Folgenden Text wollen wir mit dem \'f6ffentlichen Schl\'fcssel e verschl\'fcsseln und \par verschicken: \par \plain\f4\fs20\cf0 \par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf2 {\pntext\f1\'b7\tab}Mitteilung := "Hallo liebe MuPAD-Freunde! ". \par \pard\li600\ri1\fi-300\plain\f4\fs28\cf2 "Nun koennen wir beliebig lange ". \par "Texte verschluesseln. Wir muessen ". \par "nur darauf achten, dass die verwendeten ". \par "Zeichen auch im Ascii-Format vorliegen. ". \par "Also Umlaute und einige Sonderzeichen vermeiden! ". \par "Daher sind auch keine Zeilenumbrueche per ". \par "Shift+Return erlaubt. Einige Zeichen, wie ". \par "@, *, ~ und ^ sind dagegen erlaubt." \par \par \pard\ri4\plain\f4\fs20\cf0\b \par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf2 {\pntext\f1\'b7\tab}GeheimeMitteilung := verschluesseln(N, e, Mitteilung) \par \pard\ri4\plain\f4\fs20\cf0\b \par \plain\f3\fs28\cf0 Nehmen wir an, wir h\'e4tten jetzt obige geheime Botschaft empfangen. Wir verwenden \par nun den geheimen Schl\'fcssel d, um zu entschl\'fcsseln: \par \plain\f4\fs20\cf0\b \par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf2 {\pntext\f1\'b7\tab}entschluesseln(N, d, GeheimeMitteilung) \par \pard\ri4\plain\f4\fs20\cf0\b \par __________________________________________________________________________ \par \plain\f4\fs22\cf3 \par \plain\f3\fs22\cf3\b \'dcbungen: \par \plain\f3\fs20\cf3\b 1.\plain\f3\fs20\cf3 Verwenden Sie andere RSA-Parameter und verschl\'fcsseln Sie immer die gleiche Nachricht. Welches \par Verhalten bzgl. der L\'e4nge der verschl\'fcsselten Nachricht k\'f6nnen Sie feststellen? \par \plain\f3\fs20\cf4 \par \plain\f3\fs20\cf3\b 2\plain\f3\fs20\cf3 . Machen Sie sich mit den Funktionen\plain\f3\fs20\cf4 \plain\f4\fs20\cf2 _div\plain\f3\fs20\cf4 \plain\f3\fs20\cf3 und\plain\f3\fs20\cf4 \plain\f4\fs20\cf2 modp\plain\f3\fs20\cf3 vertraut. Wo liegt der Unterschied? \par \par \plain\f4\fs20\cf0\b ________________________________________________________________________________ \par \plain\f3\fs22\cf0 \par \plain\f3\fs22\cf1\b Anmerkungen:\plain\f3\fs22\cf1 \par \plain\f3\fs20\cf1\b 1. \plain\f3\fs20\cf1 Weitere Erl\'e4uterungen finden Sie in unserem Newsletter #3 August 2002. \par \par \plain\f3\fs20\cf1\b 2. \plain\f3\fs20\cf1 Unter \plain\f3\fs20\cf1\b\i www.schule.mupad.de/material/\plain\f3\fs20\cf1 befinden sich Notebooks, die sich ebenfalls mit dem \par Thema RSA besch\'e4ftigen. Dort steht u.a. auch ein Notebook bereit, das eine kurze Einf\'fchrung in das \par RSA-Verfahren gibt. \par \par \plain\f3\fs20\cf1\b 3. \plain\f3\fs20\cf1 Weitere Anregungen finden Sie in der Buchreihe \plain\f3\fs20\cf2 Mathematik 1 x anders\plain\f3\fs20\cf1 . In dieser Reihe \par wird eine Vielzahl unterschiedlichster mathematischer Probleme mit MuPAD gel\'f6st. Die \par B\'fccher k\'f6nnen unter \plain\f5\fs20\cf3 www.schule.mupad.de/literatur\plain\f3\fs20\cf1 kostenfrei kopiert werden. \par \plain\f3\fs20\cf2 \par \plain\f4\fs20\cf0\b _______________________________________________________________________________ \par \par \par }