%
% dh.tex
%
% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
%
\begin{frame}[t]
\frametitle{Diffie-Hellmann Schlüsselaushandlung}

\begin{center}
\definecolor{darkgreen}{rgb}{0,0.6,0}
\def\skala{0.95}
\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.0);
\coordinate (B) at (\l,-2.5);
\coordinate (D) at (-\l,-5.0);
\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$};
\uncover<2->{
	\node at (-\l,-1.5) [left] {$a$ auswählen\strut};
	\node at (-\l,-2.0) [left] {$x=g^a\in\mathbb{F}_p$\strut};
	\node at (\l,-1.5) [right] {$b$ auswählen\strut};
	\node at (\l,-2.0) [right] {$y=g^b\in\mathbb{F}_p$\strut};
}
\draw[->] (-\l,-1) -- (-\l,-6);
\draw[->] (\l,-1) -- (\l,-6);
\uncover<3->{
	\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)+(-0.4,0)$) [above right] {$x=g^a$};
	\node at ($0.8*(B)+0.2*(D)+(0.4,0)$) [above left] {$y=g^b$};
}
\uncover<4->{
	\node at (-\l,-5.0) [left] {$s=g^{ab}=y^a\in\mathbb{F}_p$};
	\node at (-\l,-5.5) [left] {ausrechnen};
	\node at (\l,-5.0) [right] {$s=g^{ab}=x^b\in\mathbb{F}_p$};
	\node at (\l,-5.5) [right] {ausrechnen};
}
\uncover<5->{
	\fill[rounded corners=0.3cm,color=darkgreen!20]
		({-\l-1.7},-7) rectangle ({\l+1.7},-6);
	\draw[rounded corners=0.3cm] ({-\l-1.7},-7) rectangle ({\l+1.7},-6);
	\node at (0,-6.5) {$A$ und $B$ haben den gemeinsamen Schlüssel $s$};
}
\end{tikzpicture}

\end{center}

\end{frame}
