aboutsummaryrefslogtreecommitdiffstats
path: root/buch/chapters/90-crypto/images/dh.tex
blob: 1faa8309cb37a0981cd3cb81e24b58a2be517017 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
%
% dh.tex -- diffie hellmann key exchange
%
% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
%
\documentclass[tikz]{standalone}
\usepackage{amsmath}
\usepackage{times}
\usepackage{txfonts}
\usepackage{pgfplots}
\usepackage{csvsimple}
\usetikzlibrary{arrows,intersections,math,calc,hobby}
\begin{document}
\definecolor{darkgreen}{rgb}{0,0.6,0}
\def\skala{1}
\begin{tikzpicture}[>=latex,thick,scale=\skala]
\def\l{2.5}
\fill[color=blue!20] (-7,-6.5) rectangle (7,0.5);
\fill[color=red!20] (-\l,-6.5) rectangle (\l,0.501);
\node[color=red] at (0,-1.5) {öffentliches Netzwerk};
\node[color=blue] at (-7,0.2) [right] {privat};
\node[color=blue] at (7,0.2) [left] {privat};
\coordinate (A) at (-\l,-2.5);
\coordinate (C) at (\l,-5.5);
\coordinate (B) at (\l,-2.5);
\coordinate (D) at (-\l,-5.5);
\node at (0,0) {$p\in\mathbb{N},g\in\mathbb{F}_p$ aushandeln};
\fill[color=white] (-\l,-0.7) circle[radius=0.3];
\draw (-\l,-0.7) circle[radius=0.3];
\fill[color=white] (\l,-0.7) circle[radius=0.3];
\draw (\l,-0.7) circle[radius=0.3];
\node at (-\l,-0.7) {$A$};
\node at (\l,-0.7) {$B$};
\node at (-\l,-1.5) [left] {$a$ auswählen};
\node at (-\l,-2.0) [left] {$x=g^a\in\mathbb{F}_p$ auswählen};
\node at (\l,-1.5) [right] {$b$ auswählen};
\node at (\l,-2.0) [right] {$y=g^b\in\mathbb{F}_p$ auswählen};
\draw[->] (-\l,-1) -- (-\l,-6);
\draw[->] (\l,-1) -- (\l,-6);
\draw[->] (A) -- (C);
\draw[->] (B) -- (D);
\fill (A) circle[radius=0.08];
\fill (B) circle[radius=0.08];
\node at ($0.8*(A)+0.2*(C)$) [above right] {$x=g^a$};
\node at ($0.8*(B)+0.2*(D)$) [above left] {$y=g^b$};
\node at (-\l,-5.5) [left] {$s=g^{ab}=y^a\in\mathbb{F}_p$ ausrechnen};
\node at (\l,-5.5) [right] {$s=g^{ab}=x^b\in\mathbb{F}_p$ ausrechnen};
\fill[rounded corners=0.3cm,color=darkgreen!20] ({-\l-1},-7) rectangle ({\l+1},-6);
\draw[rounded corners=0.3cm] ({-\l-1},-7) rectangle ({\l+1},-6);
\node at (0,-6.5) {$A$ und $B$ haben den gemeinsamen Schlüssel $s$};
\end{tikzpicture}
\end{document}