\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\froman\fcharset1 Times New Roman;}{\f6\fswiss\fprq2\fcharset1 Arial;}{\f7\fmodern\fprq1\fcharset1 Courier New;}{\f8\fswiss\fprq2 Helvetica;}}
{\colortbl\red0\green0\blue0;\red255\green255\blue255;\red255\green0\blue0;\red0\green0\blue255;\red0\green128\blue0;}
\deflang1031\pard\ri4\plain\f4\fs20\cf0\b ________________________________________________________________________________
\par
\par \plain\f4\fs20\cf0 Inhalt....: Diffie-Hellman-Algorithmus
\par Kategorie.: Arbeitsblatt
\par Mathematik: Kryptographie, Zahlentheorie
\par MuPAD.....: 3.0.0
\par Datum.....: 2003-06-23
\par Autoren...: Julia Faflek
\par Funktionen: nextprime, ithprime, factor, numlib::primroot, numlib::order,
\par Funktionen: powermod, igcd, random, plot::Point2d
\par \plain\f4\fs20\cf0\b ________________________________________________________________________________
\par \plain\f3\fs36\cf0\b
\par \plain\f3\fs40\cf0\b Schl\'fcsselerzeugung mittels des Diffie-Hellman-
\par Algorithmus\plain\f3\fs36\cf0\b
\par \plain\f3\fs22\cf0
\par \plain\f3\fs24\cf4 Zum Ver- und Entschl\'fcsseln von Daten braucht man Schl\'fcssel. Mit dem hier vorgestellten
\par Algorithmus werden Schl\'fcssel auf sicherem Wege generiert, um sp\'e4ter z.B. ein sym-
\par metrisches Kryptosystem zu verwenden.
\par \plain\f4\fs22\cf3
\par
\par \plain\f3\fs28\cf0 Wir wollen einen gemeinsamen Schl\'fcssel mit einer anderen Person ver-
\par einbaren. Dazu legen wir zun\'e4chst eine Primzahl p fest und eine Basis g
\par aller Elemente aus \plain\f3\fs28\cf0\i Z_p\plain\f3\fs28\cf0 , die ungleich 0 sind. Die Ordnung dieser Gruppe
\par ist \plain\f3\fs28\cf0\i p\plain\f3\fs28\cf0 -1 und ein Element erzeugt die Gruppe, wenn dessen Ordnung \plain\f3\fs28\cf0\i p\plain\f3\fs28\cf0 -1 ist.
\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} p := nextprime(10)\plain\f3\fs28\cf2
\par \pard\ri4\plain\f6\fs28\cf0 Das Problem, dass sich nun stellt ist: Wie finden wir einen Erzeuger dieser
\par Gruppe? Falls \plain\f6\fs28\cf0\i p\plain\f6\fs28\cf0 klein genug ist, findet man das gew\'fcnschte Element \plain\f6\fs28\cf0\i x\plain\f6\fs28\cf0 fol-
\par genderweise:
\par
\par Man w\'e4hlt ein zuf\'e4lliges \plain\f6\fs28\cf0\i x\plain\f6\fs28\cf0 und \'fcberpr\'fcft, ob die Ordnung von \plain\f6\fs28\cf0\i x\plain\f6\fs28\cf0 nicht (\plain\f6\fs28\cf0\i p\plain\f6\fs28\cf0 -1)/\plain\f6\fs28\cf0\i q\plain\f6\fs28\cf0
\par teilt f\'fcr jeden Primfaktor \plain\f6\fs28\cf0\i q\plain\f6\fs28\cf0 von \plain\f6\fs28\cf0\i p\plain\f6\fs28\cf0 -1, indem man \plain\f6\fs28\cf0\i x\plain\f6\fs28\cf0 mit (\plain\f6\fs28\cf0\i p\plain\f6\fs28\cf0 -1)/\plain\f6\fs28\cf0\i q\plain\f6\fs28\cf0 potenziert. Das
\par Ergebnis muss immer ungleich 1 sein.
\par
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf2 {\pntext\f1\'b7\tab}factor(p-1)
\par \pard\ri4\plain\f6\fs28\cf0 Wir versuchen es mit der 3:
\par
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf2 {\pntext\f1\'b7\tab}powermod(3, (p-1)/2, p);
\par \pard\li600\ri1\fi-300\plain\f4\fs28\cf2 powermod(3, (p-1)/5, p);
\par \pard\ri4\plain\f6\fs28\cf0 3 ist also kein erzeugendes Element. Zur Veranschaulichung lassen wir
\par alle Potenzen von 3 ausgeben:
\par
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf2 {\pntext\f1\'b7\tab}powermod(3, i, p) $ i = 1..p
\par \pard\ri4\plain\f6\fs28\cf0
\par Die Ordnung von 3 modulo \plain\f6\fs28\cf0\i p\plain\f6\fs28\cf0 ist also 5. Man \'fcberpr\'fcft:
\par
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf2 {\pntext\f1\'b7\tab}numlib::order(3, p)
\par \pard\ri4\plain\f6\fs28\cf0
\par Es ist also nicht so einfach ein erzeugendes Element zu finden. MuPAD
\par bietet mit der Funktion \plain\f7\fs28\cf2 numlib::primroot\plain\f6\fs28\cf0 ein Hilfsmittel an:
\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}numlib::primroot(p)
\par \pard\ri4\plain\f3\fs28\cf0
\par Dieser Befehl liefert uns das kleinste Element mit Ordnung \plain\f3\fs28\cf0\i p\plain\f3\fs28\cf0 -1:
\par
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf2 {\pntext\f1\'b7\tab}numlib::order(2, p)
\par \pard\ri4\plain\f3\fs28\cf0
\par Wir k\'f6nnen aber auch ein anderes Element w\'e4hlen, eins das gr\'f6\'dfer ist
\par als 2:
\par
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf2 {\pntext\f1\'b7\tab}numlib::primroot(3, p)
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf2 {\pntext\f1\'b7\tab}numlib::order(6, p)
\par \pard\ri4\plain\f3\fs28\cf0
\par Es gibt also meistens mehrere Kandidaten f\'fcr den Erzeuger.
\par
\par Wenn aber \plain\f3\fs28\cf0\i p\plain\f3\fs28\cf0 zu gro\'df ist, dann versagt unsere bisherige Vorgehensweise.
\par Denn in der Praxis ist \plain\f3\fs28\cf0\i p\plain\f3\fs28\cf0 -1 so gro\'df, dass das Faktorisieren von \plain\f3\fs28\cf0\i p\plain\f3\fs28\cf0 -1 schwer
\par ist. In diesem Fall muss man sich damit zufrieden geben, ein Element mit
\par gro\'dfer Ordnung zu bekommen. Wir sammeln also zun\'e4chst alle kleinen
\par Primfaktoren von \plain\f3\fs28\cf0\i p\plain\f3\fs28\cf0 -1 und dividieren \plain\f3\fs28\cf0\i p\plain\f3\fs28\cf0 -1 durch diese. \'dcbrig bleibt ein gro\'dfer
\par Faktor von \plain\f3\fs28\cf0\i p\plain\f3\fs28\cf0 -1. Nun wird jedes Element \plain\f3\fs28\cf0\i x\plain\f3\fs28\cf0 ^(Produkt entfernter Primfaktoren)
\par mit gro\'dfer Wahrscheinlichkeit eine Ordnung haben, die den gro\'dfen Faktor
\par teilt. Als erstes bilden wir das Produkt der ersten n Primzahlen:
\par
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf2 {\pntext\f1\'b7\tab}kleinePrim := proc(n)
\par \pard\li600\ri1\fi-300\plain\f4\fs28\cf2 begin
\par _mult(ithprime(i) $ i = 1..n)
\par end_proc:
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf2 {\pntext\f1\'b7\tab}kleinePrim(10) = factor(kleinePrim(10));
\par \pard\li600\ri1\fi-300\plain\f4\fs28\cf2
\par \pard\ri4\plain\f3\fs28\cf0 Mittels des ggT entfernen wir nun alle kleinen Primfaktoren von \plain\f3\fs28\cf0\i p\plain\f3\fs28\cf0 -1 und
\par lassen uns den \'fcbrig gebliebenen gro\'dfen Faktor sowie das Produkt der
\par entfernten Primfaktoren zur\'fcckgeben:
\par
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf2 {\pntext\f1\'b7\tab}entferneFaktoren := proc(p, n)
\par \pard\li600\ri1\fi-300\plain\f4\fs28\cf2 local grFaktor, gemFaktor, ProdFaktoren;
\par begin
\par grFaktor := p-1:
\par gemFaktor := igcd(kleinePrim(n), grFaktor):
\par while (gemFaktor > 1) do
\par grFaktor := grFaktor/gemFaktor:
\par gemFaktor := igcd(kleinePrim(n), grFaktor):
\par end_while:
\par ProdFaktoren := (p-1)/grFaktor:
\par return(grFaktor, ProdFaktoren):
\par end_proc:
\par \pard\ri4\plain\f6\fs28\cf0
\par Wir erzeugen eine gro\'dfe Primzahl:
\par
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf2 {\pntext\f1\'b7\tab}p := nextprime(random(2^500..2^550)());
\par \pard\li600\ri1\fi-300\plain\f4\fs28\cf2
\par \pard\ri4\plain\f6\fs28\cf0
\par Nun wenden wir die obige Prozedur an und berechnen einen Erzeuger von der
\par Form \plain\f6\fs28\cf0\i x\plain\f6\fs28\cf0 ^(Produkt entfernter Faktoren), wobei \plain\f6\fs28\cf0\i x\plain\f6\fs28\cf0 beliebig gew\'e4hlt wird:
\par
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf2 {\pntext\f1\'b7\tab}Ergebnis := entferneFaktoren(p,100)
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf2 {\pntext\f1\'b7\tab}x := random(1..p)();
\par \pard\li600\ri1\fi-300\plain\f4\fs28\cf2 g := powermod(x, Ergebnis[2], p)
\par \pard\ri4\plain\f6\fs28\cf0 Wir \'fcberpr\'fcfen, ob \plain\f6\fs28\cf0\i g\plain\f6\fs28\cf0 die gew\'fcnschte Ordnung hat:
\par
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf2 {\pntext\f1\'b7\tab}powermod(g, Ergebnis[1], p)\plain\f4\fs22\cf2
\par \pard\ri4\plain\f3\fs28\cf0 Nun haben wir alles zur Hand um mit dem eigentlichen Protokoll zu beginnen:
\par 1) \plain\f3\fs28\cf0\i p\plain\f3\fs28\cf0 und \plain\f3\fs28\cf0\i g\plain\f3\fs28\cf0 sind jeder Partei bekannt
\par 2) Wir w\'e4hlen einen geheimen Schl\'fcssel \plain\f3\fs28\cf0\i a\plain\f3\fs28\cf0 < \plain\f3\fs28\cf0\i p\plain\f3\fs28\cf0 -1
\par
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf2 {\pntext\f1\'b7\tab}a := random(1..p-1)();
\par \pard\ri4\plain\f6\fs28\cf0
\par 3) Wir berechnen Alpha und schicken dies an die andere Partei
\par
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf2 {\pntext\f1\'b7\tab}Alpha := powermod(g, a, p)
\par \pard\ri4\plain\f3\fs28\cf0
\par 4) Von der anderen Partei erhalten wir ein Beta, das auf die gleiche Weise
\par \plain\f3\fs28\cf1 ss\plain\f3\fs28\cf0 erzeugt wurde
\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}b := random(1..p-1)()
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf2 {\pntext\f1\'b7\tab}Beta := powermod(g, b, p)
\par \pard\ri4\plain\f3\fs28\cf0
\par 5) Nun berechnen wir mit der Exponentialfunktion einen gemeinsamen Schl\'fcssel
\par \plain\f3\fs28\cf1\i ss\plain\f3\fs28\cf0\i k\plain\f3\fs28\cf0 wie folgt:
\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}k1 := powermod(Beta, a, p)
\par \pard\ri4\plain\f4\fs20\cf0\b
\par \plain\f3\fs28\cf0
\par 6) Die andere Partei geht wie folgt vor:
\par
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf2 {\pntext\f1\'b7\tab}k2 := powermod(Alpha, b, p)
\par \pard\ri4\plain\f6\fs28\cf0 Schon hier sehen wir, dass beide Parteien wirklich gleiche Schl\'fcssel erzeugt
\par haben. Warum ist das so? Wir erinnern uns daran wie Beta erzeugt wurde:
\par \pard\li2500\ri4\plain\f4\fs22\cf3 {\pict\wmetafile8\picw6223\pich974\picscaley99\picwgoal3528\pichgoal553
010009000003F403000009001C0000000000050000000B0200000000050000000C02CE034F1803
0000001E00050000000C02D1034F18050000000B0200000000030000001E00050000000C02DA03
4F18050000000B0200000000050000000B0200000000030000001E00050000000C02DC034F1805
0000000B0200000000050000000B0200000000050000000B0200000000030000001E0005000000
0C02E5034F18050000000B0200000000050000000B0200000000050000000B0200000000050000
000B0200000000030000001E00050000000C02E8034F18050000000B0200000000050000000B02
00000000050000000B0200000000050000000B0200000000050000000B0200000000030000001E
00050000000C02F2034F18050000000B0200000000050000000B0200000000050000000B020000
0000050000000B0200000000050000000B0200000000050000000B0200000000030000001E0005
0000000C02FE034F18050000000B0200000000050000000B0200000000050000000B0200000000
050000000B0200000000050000000B0200000000050000000B0200000000050000000B02000000
00030000001E00050000000C0209044F18050000000B0200000000050000000B02000000000500
00000B0200000000050000000B0200000000050000000B0200000000050000000B020000000005
0000000B0200000000050000000B0200000000030000001E00050000000C020B044F1805000000
0B0200000000050000000B0200000000050000000B0200000000050000000B0200000000050000
000B0200000000050000000B0200000000050000000B0200000000050000000B02000000000500
00000B0200000000030000001E00030000001E00050000000C024B02C80D050000000B02000000
00050000000B0200000000050000000B0200000000050000000B0200000000050000000B020000
0000050000000B0200000000050000000B0200000000050000000B0200000000050000000B0200
000000050000000B020000000008000000FA0200000000000000000000040000002D0100001C00
0000FB0238FF00000000000090010000000107000000417269616C000000840D0A0B7CE81200D8
9FF177E19FF1772020F377160E6677040000002D01010005000000020101000000050000000102
FFFFFF00050000002E01180000000500000009020000000004000000080100001C000000FB02E8
FE00000000000090010000000107000000417269616C0000001C0C0ACE7CE81200D89FF177E19F
F1772020F377160E6677040000002D0102000B00000026060F000C004D6174685479706500007F
001C000000FB023AFF00000000000090010100000107000000417269616C000000CF0C0A727CE8
1200D89FF177E19FF1772020F377160E6677040000002D0103001C000000FB02E8FE0000000000
0090010100000107000000417269616C000000390E0A407CE81200D89FF177E19FF1772020F377
160E6677040000002D010400040000002D010200040000002D010400040000002D0103001C0000
00FB02E8FE000000000000900100000002070000005346204D61746820457874007CE81200D89F
F177E19FF1772020F377160E6677040000002D010500040000002D010200040000002D01050004
0000002D010200040000002D010500040000002D010300040000002D010400040000002D010200
1C000000FB02E8FE0000000000009001000000020700000053796D626F6C0000D00D0AB97CE812
00D89FF177E19FF1772020F377160E6677040000002D010600040000002D010200070000002105
01004200AC01640007000000210501006500AC011F0107000000210501007400AC01BB01070000
00210501006100AC010902040000002D010300070000002105010061000801A502040000002D01
020007000000210501006D00AC01590307000000210501006F00AC014204070000002105010064
00AC01DE04040000002D01040007000000210501007000AC01C205040000002D01060007000000
210501003D00AC01B206040000002D010200040000002D010500040000002D010200040000002D
010500040000002D010200040000002D010500040000002D010200040000002D01050004000000
2D010200040000002D01050007000000210501002800AC01A007040000002D010200040000002D
01040007000000210501006700AC012008040000002D010300070000002105010062000801BD08
040000002D010500040000002D010200040000002D010500040000002D010200040000002D0105
0007000000210501002900AC012B09040000002D01030007000000210501006100E300AB090400
00002D01020007000000210501006D00AC015F0A07000000210501006F00AC01480B0700000021
0501006400AC01E40B040000002D01040007000000210501007000AC01C80C08000000FA020000
0000000000000000040000002D0107001C000000FB021000070000000000BC0200000000010202
2253797374656D0000A10B0A2E7CE81200D89FF177E19FF1772020F377160E6677040000002D01
0800040000002701FFFF04000000F001000004000000F001010004000000F001020004000000F0
01030004000000F001040004000000F001050004000000F0010600040000002701FFFF04000000
2701FFFF040000002701FFFF040000002701FFFF040000002701FFFF040000002701FFFF040000
002701FFFF040000002701FFFF040000002701FFFF040000002701FFFF030000000000
}\plain\f4\fs22\cf3
\par \pard\ri4\plain\f6\fs28\cf0 Mit einfachen Rechenregeln folgt:
\par \pard\li2500\ri4\plain\f4\fs22\cf3 {\pict\wmetafile8\picw5334\pich974\picscalex98\picscaley99\picwgoal3054\pichgoal553
0100090000030E0400000A001C0000000000050000000B0200000000050000000C02CE03D61403
0000001E00050000000C02D1030C15050000000B0200000000030000001E00050000000C02DA03
4415050000000B0200000000050000000B0200000000030000001E00050000000C02DC03451505
0000000B0200000000050000000B0200000000050000000B0200000000030000001E0005000000
0C02E5037C15050000000B0200000000050000000B0200000000050000000B0200000000050000
000B0200000000030000001E00050000000C02E8037F15050000000B0200000000050000000B02
00000000050000000B0200000000050000000B0200000000050000000B0200000000030000001E
00050000000C02F203B615050000000B0200000000050000000B0200000000050000000B020000
0000050000000B0200000000050000000B0200000000050000000B0200000000030000001E0005
0000000C02FE03F115050000000B0200000000050000000B0200000000050000000B0200000000
050000000B0200000000050000000B0200000000050000000B0200000000050000000B02000000
00030000001E00050000000C0209042A16050000000B0200000000050000000B02000000000500
00000B0200000000050000000B0200000000050000000B0200000000050000000B020000000005
0000000B0200000000050000000B0200000000030000001E00050000000C020B042C1605000000
0B0200000000050000000B0200000000050000000B0200000000050000000B0200000000050000
000B0200000000050000000B0200000000050000000B0200000000050000000B02000000000500
00000B0200000000030000001E00030000001E00050000000C024B02920C050000000B02000000
00050000000B0200000000050000000B0200000000050000000B0200000000050000000B020000
0000050000000B0200000000050000000B0200000000050000000B0200000000050000000B0200
000000050000000B020000000008000000FA0200000000000000000000040000002D0100001C00
0000FB0238FF00000000000090010000000107000000417269616C000000160E0A787CE81200D8
9FF177E19FF1772020F377A10B6630040000002D01010005000000020101000000050000000102
FFFFFF00050000002E01180000000500000009020000000004000000080100001C000000FB02E8
FE00000000000090010000000107000000417269616C000000D00D0ABA7CE81200D89FF177E19F
F1772020F377A10B6630040000002D0102000B00000026060F000C004D6174685479706500007F
001C000000FB02E8FE00000000000090010100000107000000417269616C00000045070A517CE8
1200D89FF177E19FF1772020F377A10B6630040000002D0103001C000000FB023AFF0000000000
0090010100000107000000417269616C000000390E0A417CE81200D89FF177E19FF1772020F377
A10B6630040000002D0104001C000000FB02E8FE00000000000090010000000207000000534620
4D61746820457874007CE81200D89FF177E19FF1772020F377A10B6630040000002D0105000400
00002D010200040000002D010500040000002D010200040000002D010500040000002D01040004
0000002D010300040000002D010200040000002D0103001C000000FB023AFF0000000000009001
0000000107000000417269616C0000001C0C0ACF7CE81200D89FF177E19FF1772020F377A10B66
30040000002D010600040000002D010300040000002D0102001C000000FB02E8FE000000000000
9001000000020700000053796D626F6C0000840D0A0C7CE81200D89FF177E19FF1772020F377A1
0B6630040000002D010700040000002D010200040000002D010500040000002D01020004000000
2D010500040000002D010200040000002D010500040000002D010200040000002D010500040000
002D010200040000002D01050007000000210501002800AC016400040000002D01020004000000
2D01030007000000210501006700AC01E400040000002D01040007000000210501006200080181
01040000002D010500040000002D010200040000002D010500040000002D010200040000002D01
050007000000210501002900AC01EF01040000002D01040007000000210501006100E3006F0204
0000002D01020007000000210501006D00AC01230307000000210501006F00AC010C0407000000
210501006400AC01A804040000002D01030007000000210501007000AC018C05040000002D0107
0007000000210501003D00AC017C06040000002D010200040000002D0103000700000021050100
6700AC016A07040000002D01060007000000210501006100080107080700000021050100620008
017508040000002D01020007000000210501006D00AC01290907000000210501006F00AC01120A
07000000210501006400AC01AE0A040000002D01030007000000210501007000AC01920B080000
00FA0200000000000000000000040000002D0108001C000000FB021000070000000000BC020000
00000102022253797374656D00001A0B0A627CE81200D89FF177E19FF1772020F377A10B663004
0000002D010900040000002701FFFF04000000F001000004000000F001010004000000F0010200
04000000F001030004000000F001040004000000F001050004000000F001060004000000F00107
00040000002701FFFF040000002701FFFF040000002701FFFF040000002701FFFF040000002701
FFFF040000002701FFFF040000002701FFFF040000002701FFFF040000002701FFFF0400000027
01FFFF030000000000
}\plain\f5\fs22\cf0
\par \plain\f4\fs22\cf3 {\pict\wmetafile8\picw5270\pich974\picscalex98\picscaley99\picwgoal3018\pichgoal553
0100090000030A0400000A001C0000000000050000000B0200000000050000000C02CE03961403
0000001E00050000000C02D103CD14050000000B0200000000030000001E00050000000C02DA03
0315050000000B0200000000050000000B0200000000030000001E00050000000C02DC03051505
0000000B0200000000050000000B0200000000050000000B0200000000030000001E0005000000
0C02E5033B15050000000B0200000000050000000B0200000000050000000B0200000000050000
000B0200000000030000001E00050000000C02E8033E15050000000B0200000000050000000B02
00000000050000000B0200000000050000000B0200000000050000000B0200000000030000001E
00050000000C02F2037415050000000B0200000000050000000B0200000000050000000B020000
0000050000000B0200000000050000000B0200000000050000000B0200000000030000001E0005
0000000C02FE03AE15050000000B0200000000050000000B0200000000050000000B0200000000
050000000B0200000000050000000B0200000000050000000B0200000000050000000B02000000
00030000001E00050000000C020904E715050000000B0200000000050000000B02000000000500
00000B0200000000050000000B0200000000050000000B0200000000050000000B020000000005
0000000B0200000000050000000B0200000000030000001E00050000000C020B04E91505000000
0B0200000000050000000B0200000000050000000B0200000000050000000B0200000000050000
000B0200000000050000000B0200000000050000000B0200000000050000000B02000000000500
00000B0200000000030000001E00030000001E00050000000C024B026C0C050000000B02000000
00050000000B0200000000050000000B0200000000050000000B0200000000050000000B020000
0000050000000B0200000000050000000B0200000000050000000B0200000000050000000B0200
000000050000000B020000000008000000FA0200000000000000000000040000002D0100001C00
0000FB0238FF00000000000090010000000107000000417269616C000000A10B0A317CE81200D8
9FF177E19FF1772020F3771A0B6664040000002D01010005000000020101000000050000000102
FFFFFF00050000002E01180000000500000009020000000004000000080100001C000000FB02E8
FE00000000000090010000000107000000417269616C000000840D0A0D7CE81200D89FF177E19F
F1772020F3771A0B6664040000002D0102000B00000026060F000C004D6174685479706500007F
001C000000FB02E8FE00000000000090010100000107000000417269616C0000001C0C0AD07CE8
1200D89FF177E19FF1772020F3771A0B6664040000002D0103001C000000FB023AFF0000000000
0090010000000107000000417269616C000000CF0C0A747CE81200D89FF177E19FF1772020F377
1A0B6664040000002D010400040000002D010300040000002D010200040000002D0103001C0000
00FB023AFF00000000000090010100000107000000417269616C000000390E0A427CE81200D89F
F177E19FF1772020F3771A0B6664040000002D0105001C000000FB02E8FE000000000000900100
000002070000005346204D61746820457874007CE81200D89FF177E19FF1772020F3771A0B6664
040000002D010600040000002D010200040000002D010600040000002D010200040000002D0105
00040000002D010300040000002D0102001C000000FB02E8FE0000000000009001000000020700
000053796D626F6C0000D00D0ABB7CE81200D89FF177E19FF1772020F3771A0B6664040000002D
010700040000002D010200040000002D01030007000000210501006700AC016400040000002D01
040007000000210501006100080101010700000021050100620008016F01040000002D01020007
000000210501006D00AC01230207000000210501006F00AC010C0307000000210501006400AC01
A803040000002D01030007000000210501007000AC018C04040000002D01070007000000210501
003D00AC017C05040000002D010200040000002D010600040000002D010200040000002D010600
040000002D010200040000002D010600040000002D010200040000002D010600040000002D0102
00040000002D01060007000000210501002800AC016A06040000002D010200040000002D010300
07000000210501006700AC01D706040000002D0105000700000021050100610008017407040000
002D010600040000002D010200040000002D010600040000002D010200040000002D0106000700
0000210501002900AC01E207040000002D0105000700000021050100620008014F08040000002D
01020007000000210501006D00AC01030907000000210501006F00AC01EC090700000021050100
6400AC01880A040000002D01030007000000210501007000AC016C0B08000000FA020000000000
0000000000040000002D0108001C000000FB021000070000000000BC0200000000010202225379
7374656D0000160E0A797CE81200D89FF177E19FF1772020F3771A0B6664040000002D01090004
0000002701FFFF04000000F001000004000000F001010004000000F001020004000000F0010300
04000000F001040004000000F001050004000000F001060004000000F0010700040000002701FF
FF040000002701FFFF040000002701FFFF040000002701FFFF040000002701FFFF040000002701
FFFF040000002701FFFF040000002701FFFF040000002701FFFF040000002701FFFF0300000000
00
}\plain\f4\fs22\cf3
\par \pard\ri4\plain\f6\fs28\cf0 Nun wissen wir:
\par \pard\li2500\ri4\plain\f4\fs22\cf3 {\pict\wmetafile8\picw5900\pich974\picscalex99\picscaley99\picwgoal3378\pichgoal553
010009000003F703000009001C0000000000050000000B0200000000050000000C02CE030C1703
0000001E00050000000C02D1034717050000000B0200000000030000001E00050000000C02DA03
8617050000000B0200000000050000000B0200000000030000001E00050000000C02DC03C31705
0000000B0200000000050000000B0200000000050000000B0200000000030000001E0005000000
0C02E5030218050000000B0200000000050000000B0200000000050000000B0200000000050000
000B0200000000030000001E00050000000C02E8034218050000000B0200000000050000000B02
00000000050000000B0200000000050000000B0200000000050000000B0200000000030000001E
00050000000C02F2038118050000000B0200000000050000000B0200000000050000000B020000
0000050000000B0200000000050000000B0200000000050000000B0200000000030000001E0005
0000000C02FE03C318050000000B0200000000050000000B0200000000050000000B0200000000
050000000B0200000000050000000B0200000000050000000B0200000000050000000B02000000
00030000001E00050000000C0209040419050000000B0200000000050000000B02000000000500
00000B0200000000050000000B0200000000050000000B0200000000050000000B020000000005
0000000B0200000000050000000B0200000000030000001E00050000000C020B04051905000000
0B0200000000050000000B0200000000050000000B0200000000050000000B0200000000050000
000B0200000000050000000B0200000000050000000B0200000000050000000B02000000000500
00000B0200000000030000001E00030000001E00050000000C024B022F0E050000000B02000000
00050000000B0200000000050000000B0200000000050000000B0200000000050000000B020000
0000050000000B0200000000050000000B0200000000050000000B0200000000050000000B0200
000000050000000B020000000008000000FA0200000000000000000000040000002D0100001C00
0000FB0238FF00000000000090010000000107000000417269616C0000001A0B0A657CE81200D8
9FF177E19FF1772020F377160E667B040000002D01010005000000020101000000050000000102
FFFFFF00050000002E01180000000500000009020000000004000000080100001C000000FB02E8
FE00000000000090010000000107000000417269616C000000D00D0ABC7CE81200D89FF177E19F
F1772020F377160E667B040000002D0102000B00000026060F000C004D6174685479706500007F
001C000000FB02E8FE00000000000090010100000107000000417269616C00000045070A537CE8
1200D89FF177E19FF1772020F377160E667B040000002D0103001C000000FB023AFF0000000000
0090010100000107000000417269616C000000390E0A437CE81200D89FF177E19FF1772020F377
160E667B040000002D0104001C000000FB02E8FE00000000000090010000000207000000534620
4D61746820457874007CE81200D89FF177E19FF1772020F377160E667B040000002D0105000400
00002D010200040000002D010500040000002D010200040000002D010400040000002D01030004
0000002D010200040000002D010400040000002D010300040000002D0102001C000000FB02E8FE
0000000000009001000000020700000053796D626F6C00001C0C0AD17CE81200D89FF177E19FF1
772020F377160E667B040000002D010600040000002D010200040000002D010500040000002D01
0200040000002D010500040000002D010200040000002D010500040000002D010200040000002D
010500040000002D010200040000002D01050007000000210501002800AC016400040000002D01
0200040000002D01030007000000210501006700AC01D100040000002D01040007000000210501
00610008016E01040000002D010500040000002D010200040000002D010500040000002D010200
040000002D01050007000000210501002900AC01DC01040000002D010400070000002105010062
0008014902040000002D01020007000000210501006D00AC01FD0207000000210501006F00AC01
E60307000000210501006400AC018204040000002D01030007000000210501007000AC01660504
0000002D01060007000000210501003D00AC015606040000002D01020007000000210501004100
AC01450707000000210501006C00AC01000807000000210501007000AC013E0807000000210501
006800AC01DA0807000000210501006100AC017609040000002D01040007000000210501006200
0801120A040000002D01020007000000210501006D00AC01C60A07000000210501006F00AC01AF
0B07000000210501006400AC014B0C040000002D01030007000000210501007000AC012F0D0800
0000FA0200000000000000000000040000002D0107001C000000FB021000070000000000BC0200
0000000102022253797374656D0000840D0A0E7CE81200D89FF177E19FF1772020F377160E667B
040000002D010800040000002701FFFF04000000F001000004000000F001010004000000F00102
0004000000F001030004000000F001040004000000F001050004000000F0010600040000002701
FFFF040000002701FFFF040000002701FFFF040000002701FFFF040000002701FFFF0400000027
01FFFF040000002701FFFF040000002701FFFF040000002701FFFF040000002701FFFF03000000
0000
}\plain\f4\fs22\cf2
\par \pard\ri4\plain\f6\fs28\cf0 Die Frage ist, wie geheim ist denn der geheime Schl\'fcssel? Kann ein Angreifer
\par den geheimen Schl\'fcssel berechnen? Kann dieser bei Kenntnis von Alpha bzw.
\par Beta den Wert von \plain\f6\fs28\cf0\i a\plain\f6\fs28\cf0 bzw. \plain\f6\fs28\cf0\i b\plain\f6\fs28\cf0 herausfinden? Dazu m\'fcsste der Angreifer den
\par diskreten Logarithmus von Alpha bzw. Beta zur Basis \plain\f6\fs28\cf0\i g\plain\f6\fs28\cf0 berechnen. Dies ist
\par gl\'fccklicherweise nicht leicht m\'f6glich bei gro\'dfen Zahlen. Die Sicherheit dieses
\par Protokolls basiert also auf der Eigenschaft, dass die diskrete Exponentialfunkt-
\par ion eine Einwegfunktion ist, d.h. leicht zu berechnen, aber schwer zu invertieren.
\par
\par Um dies zu verdeutlichen schauen wir uns die Funktionswerte von \plain\f6\fs28\cf0\i g\plain\f6\fs28\cf0 ^\plain\f6\fs28\cf0\i x\plain\f6\fs28\cf0 mod \plain\f6\fs28\cf0\i p\plain\f6\fs28\cf0 an.
\par Dazu w\'e4hlen wir ein nicht zu gro\'dfes \plain\f6\fs28\cf0\i p\plain\f6\fs28\cf0 und einen Erzeuger \plain\f6\fs28\cf0\i g\plain\f6\fs28\cf0 :
\par
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf2 {\pntext\f1\'b7\tab}p := nextprime(random(1000..2000)());
\par \pard\li600\ri1\fi-300\plain\f4\fs28\cf2 g := numlib::primroot(p)
\par
\par \pard\ri4\plain\f3\fs28\cf0
\par Nun wollen wir das ganze visualisieren:
\par
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf2 {\pntext\f1\'b7\tab}plot(plot::Point2d(i, powermod(g, i, p)) $ i = 1..p)
\par \pard\ri4\plain\f3\fs28\cf0
\par In dieser Grafik k\'f6nnen wir keinerlei Muster erkennen. Es scheint als w\'fcrde
\par sich die diskrete Exponentialfunktion zuf\'e4llig verhalten. Dies macht es be-
\par sonders schwer auf das Urbild zur\'fcck zu schlie\'dfen.
\par \plain\f4\fs22\cf3
\par \plain\f4\fs20\cf0\b _____________________________________________________________________________________\plain\f4\fs22\cf2
\par \plain\f4\fs22\cf3
\par \plain\f3\fs22\cf3\b \'dcbungen:
\par \plain\f3\fs20\cf3\b 1.\plain\f3\fs20\cf3 Machen Sie sich mit den Funktionen \plain\f4\fs20\cf2 numlib::order\plain\f3\fs20\cf3 und \plain\f4\fs20\cf2 numlib::primroot\plain\f3\fs20\cf3 vertraut. Besuchen Sie
\par \plain\f3\fs20\cf1 ss\plain\f3\fs20\cf3 dazu die Hilfeseiten \plain\f4\fs20\cf2 ?numlib::order\plain\f3\fs20\cf3 und \plain\f4\fs20\cf2 ?numlib::primroot\plain\f3\fs20\cf3 .
\par \plain\f4\fs20\cf0\b _____________________________________________________________________________________
\par \plain\f3\fs22\cf0
\par \plain\f3\fs22\cf4\b Anmerkungen:\plain\f3\fs22\cf4
\par \plain\f3\fs20\cf4\b 1. \plain\f3\fs20\cf4 Unter \plain\f3\fs20\cf4\b\i www.schule.mupad.de/material/\plain\f3\fs20\cf4 befinden sich Notebooks, die sich ebenfalls mit
\par \plain\f3\fs20\cf1 ss\plain\f3\fs20\cf4 Kryptographie besch\'e4ftigen.
\par
\par \plain\f3\fs20\cf4\b 2. \plain\f3\fs20\cf4 Weitere Anregungen finden Sie in der Buchreihe \plain\f3\fs20\cf2 Mathematik 1 x anders\plain\f3\fs20\cf4 . In dieser Reihe wird eine Vielzahl
\par \plain\f3\fs20\cf1 ss\plain\f3\fs20\cf4 unterschiedlichster mathematischer Probleme mit MuPAD gel\'f6st. Die B\'fccher k\'f6nnen unter
\par \plain\f3\fs20\cf1 ss\plain\f8\fs20\cf3 www.schule.mupad.de/literatur\plain\f3\fs20\cf4 kostenfrei kopiert werden.
\par \plain\f3\fs20\cf2
\par \plain\f4\fs20\cf0\b _____________________________________________________________________________________
\par
\par
\par }