From c4446c32a0fd6e829959ca2bf84bbad211554a87 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <andreas.mueller@othello.ch>
Date: Tue, 6 Apr 2021 16:40:17 +0200
Subject: add new stuff

---
 buch/chapters/90-crypto/images/sbox.tex | 241 ++++++++++++++++++++++++++++++++
 1 file changed, 241 insertions(+)
 create mode 100644 buch/chapters/90-crypto/images/sbox.tex

(limited to 'buch/chapters/90-crypto/images/sbox.tex')

diff --git a/buch/chapters/90-crypto/images/sbox.tex b/buch/chapters/90-crypto/images/sbox.tex
new file mode 100644
index 0000000..41f8812
--- /dev/null
+++ b/buch/chapters/90-crypto/images/sbox.tex
@@ -0,0 +1,241 @@
+%
+% sbox.tex -- template for standalon tikz images
+%
+% (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}
+\begin{document}
+\def\skala{1}
+\begin{tikzpicture}[>=latex,thick,scale=\skala]
+
+\def\s{0.2}
+\def\punkt#1#2{({#1*\s},{(8-(#2))*\s})}
+
+\definecolor{b}{rgb}{0,0,0}
+\definecolor{w}{rgb}{1,1,1}
+
+\def\feld#1#2#3{
+	\fill[color=#3] \punkt{#1}{#2} rectangle \punkt{(#1+1)}{(#2-1)};
+}
+
+\def\zeile#1#2#3#4#5#6#7#8#9{
+	\feld{0}{#1}{#2}
+	\feld{1}{#1}{#3}
+	\feld{2}{#1}{#4}
+	\feld{3}{#1}{#5}
+	\feld{4}{#1}{#6}
+	\feld{5}{#1}{#7}
+	\feld{6}{#1}{#8}
+	\feld{7}{#1}{#9}
+}
+\def\inverse#1#2#3#4#5#6#7#8#9{
+	\feld{8}{#1}{#2}
+	\feld{9}{#1}{#3}
+	\feld{10}{#1}{#4}
+	\feld{11}{#1}{#5}
+	\feld{12}{#1}{#6}
+	\feld{13}{#1}{#7}
+	\feld{14}{#1}{#8}
+	\feld{15}{#1}{#9}
+}
+\def\rechteck{
+	\draw (0,{1*\s}) rectangle ({16*\s},{(8+1)*\s});
+	\draw ({8*\s},{1*\s}) -- ({8*\s},{(8+1)*\s});
+}
+
+\def\pivot#1#2{
+	\draw[color=red,line width=1.2pt]
+		\punkt{(#1+\inset)}{(#2-\inset)}
+		rectangle
+		\punkt{(#1+1-\inset)}{(#2-1+\inset)};
+}
+\def\inset{0.1}
+\def\cleanup#1#2#3{
+	\pgfmathparse{(#3-#2)/abs(#3-#2)}
+	\xdef\signum{\pgfmathresult}
+	\draw[color=blue!50,line width=1.2pt]
+		\punkt{(#1+\inset)}{#3}
+		--
+		\punkt{(#1+\inset)}{(#2-1+\inset*\signum)}
+		--
+		\punkt{(#1+1-\inset)}{(#2-1+\inset*\signum)}
+		--
+		\punkt{(#1+1-\inset)}{#3}
+	;
+}
+
+\begin{scope}
+	\zeile0bwwwbbbb \inverse0bwwwwwww
+	\zeile1bbwwwbbb \inverse1wbwwwwww
+	\zeile2bbbwwwbb \inverse2wwbwwwww
+	\zeile3bbbbwwwb \inverse3wwwbwwww
+	\zeile4bbbbbwww \inverse4wwwwbwww
+	\zeile5wbbbbbww \inverse5wwwwwbww
+	\zeile6wwbbbbbw \inverse6wwwwwwbw
+	\zeile7wwwbbbbb \inverse7wwwwwwwb
+	\rechteck
+	\pivot{0}{0}
+	\cleanup{0}{1}{7}
+\end{scope}
+
+\begin{scope}[xshift=4cm]
+	\draw[->,shorten >= 0.05cm,shorten <= 0.05cm]
+		\punkt{-4}{3} -- \punkt{0}{3};
+	\zeile0bwwwbbbb \inverse0bwwwwwww
+	\zeile1wbwwbwww \inverse1bbwwwwww
+	\zeile2wbbwbbww \inverse2bwbwwwww
+	\zeile3wbbbbbbw \inverse3bwwbwwww
+	\zeile4wbbbwbbb \inverse4bwwwbwww
+	\zeile5wbbbbbww \inverse5wwwwwbww
+	\zeile6wwbbbbbw \inverse6wwwwwwbw
+	\zeile7wwwbbbbb \inverse7wwwwwwwb
+	\rechteck
+	\pivot{1}{1}
+	\cleanup{1}{2}{7}
+\end{scope}
+
+\begin{scope}[xshift=8cm]
+	\draw[->,shorten >= 0.05cm,shorten <= 0.05cm]
+		\punkt{-4}{3} -- \punkt{0}{3};
+	\zeile0bwwwbbbb \inverse0bwwwwwww
+	\zeile1wbwwbwww \inverse1bbwwwwww
+	\zeile2wwbwwbww \inverse2wbbwwwww
+	\zeile3wwbbwbbw \inverse3wbwbwwww
+	\zeile4wwbbbbbb \inverse4wbwwbwww
+	\zeile5wwbbwbww \inverse5bbwwwbww
+	\zeile6wwbbbbbw \inverse6wwwwwwbw
+	\zeile7wwwbbbbb \inverse7wwwwwwwb
+	\rechteck
+	\pivot{2}{2}
+	\cleanup{2}{3}{7}
+\end{scope}
+
+\begin{scope}[xshift=12cm,yshift=0cm]
+	\draw[->,shorten >= 0.05cm,shorten <= 0.05cm]
+		\punkt{-4}{3} -- \punkt{0}{3};
+	\zeile0bwwwbbbb \inverse0bwwwwwww
+	\zeile1wbwwbwww \inverse1bbwwwwww
+	\zeile2wwbwwbww \inverse2wbbwwwww
+	\zeile3wwwbwwbw \inverse3wwbbwwww
+	\zeile4wwwbbwbb \inverse4wwbwbwww
+	\zeile5wwwbwwww \inverse5bwbwwbww
+	\zeile6wwwbbwbw \inverse6wbbwwwbw
+	\zeile7wwwbbbbb \inverse7wwwwwwwb
+	\rechteck
+	\pivot{3}{3}
+	\cleanup{3}{4}{7}
+	\draw[->,shorten >= 0.05cm,shorten <= 0.05cm]
+		\punkt{8}{7} -- \punkt{8}{11};
+\end{scope}
+
+\begin{scope}[xshift=12cm,yshift=-2.4cm]
+	\draw[<-,shorten >= 0.05cm,shorten <= 0.05cm]
+		\punkt{-4}{3} -- \punkt{0}{3};
+	\zeile0bwwwbbbb \inverse0bwwwwwww
+	\zeile1wbwwbwww \inverse1bbwwwwww
+	\zeile2wwbwwbww \inverse2wbbwwwww
+	\zeile3wwwbwwbw \inverse3wwbbwwww
+	\zeile4wwwwbwwb \inverse4wwwbbwww
+	\zeile5wwwwwwbw \inverse5bwwbwbww
+	\zeile6wwwwbwww \inverse6wbwbwwbw
+	\zeile7wwwwbbwb \inverse7wwbbwwwb
+	\rechteck
+	\pivot{4}{4}
+	\cleanup{4}{5}{7}
+\end{scope}
+
+\begin{scope}[xshift=8cm,yshift=-2.4cm]
+	\draw[<-,shorten >= 0.05cm,shorten <= 0.05cm]
+		\punkt{-4}{3} -- \punkt{0}{3};
+	\zeile0bwwwbbbb \inverse0bwwwwwww
+	\zeile1wbwwbwww \inverse1bbwwwwww
+	\zeile2wwbwwbww \inverse2wbbwwwww
+	\zeile3wwwbwwbw \inverse3wwbbwwww
+	\zeile4wwwwbwwb \inverse4wwwbbwww
+	\zeile5wwwwwwbw \inverse5bwwbwbww
+	\zeile6wwwwwwwb \inverse6wbwwbwbw
+	\zeile7wwwwwbww \inverse7wwbwbwwb
+	\rechteck
+\end{scope}
+
+\begin{scope}[xshift=4cm,yshift=-2.4cm]
+	\draw[<-,shorten >= 0.05cm,shorten <= 0.05cm]
+		\punkt{-4}{3} -- \punkt{0}{3};
+	\zeile0bwwwbbbb \inverse0bwwwwwww
+	\zeile1wbwwbwww \inverse1bbwwwwww
+	\zeile2wwbwwbww \inverse2wbbwwwww
+	\zeile3wwwbwwbw \inverse3wwbbwwww
+	\zeile4wwwwbwwb \inverse4wwwbbwww
+	\zeile5wwwwwbww \inverse5wwbwbwwb
+	\zeile6wwwwwwbw \inverse6bwwbwbww
+	\zeile7wwwwwwwb \inverse7wbwwbwbw
+	\rechteck
+	\cleanup{7}{7}{-1}
+\end{scope}
+
+\begin{scope}[xshift=0cm,yshift=-2.4cm]
+	\zeile0bwwwbbbw \inverse0bbwwbwbw
+	\zeile1wbwwbwww \inverse1bbwwwwww
+	\zeile2wwbwwbww \inverse2wbbwwwww
+	\zeile3wwwbwwbw \inverse3wwbbwwww
+	\zeile4wwwwbwww \inverse4wbwbwwbw
+	\zeile5wwwwwbww \inverse5wwbwbwwb
+	\zeile6wwwwwwbw \inverse6bwwbwbww
+	\zeile7wwwwwwwb \inverse7wbwwbwbw
+	\rechteck
+	\cleanup{6}{6}{-1}
+	\draw[->,shorten >= 0.05cm,shorten <= 0.05cm]
+		\punkt{8}{7} -- \punkt{8}{11};
+\end{scope}
+
+\begin{scope}[xshift=0cm,yshift=-4.8cm]
+	\zeile0bwwwbbww \inverse0wbwbbbbw
+	\zeile1wbwwbwww \inverse1bbwwwwww
+	\zeile2wwbwwbww \inverse2wbbwwwww
+	\zeile3wwwbwwww \inverse3bwbwwbww
+	\zeile4wwwwbwww \inverse4wbwbwwbw
+	\zeile5wwwwwbww \inverse5wwbwbwwb
+	\zeile6wwwwwwbw \inverse6bwwbwbww
+	\zeile7wwwwwwwb \inverse7wbwwbwbw
+	\rechteck
+	\cleanup{5}{5}{-1}
+\end{scope}
+
+\begin{scope}[xshift=4cm,yshift=-4.8cm]
+	\draw[->,shorten >= 0.05cm,shorten <= 0.05cm]
+		\punkt{-4}{3} -- \punkt{0}{3};
+	\zeile0bwwwbwww \inverse0wbbbwbbb
+	\zeile1wbwwbwww \inverse1bbwwwwww
+	\zeile2wwbwwwww \inverse2wbwwbwwb
+	\zeile3wwwbwwww \inverse3bwbwwbww
+	\zeile4wwwwbwww \inverse4wbwbwwbw
+	\zeile5wwwwwbww \inverse5wwbwbwwb
+	\zeile6wwwwwwbw \inverse6bwwbwbww
+	\zeile7wwwwwwwb \inverse7wbwwbwbw
+	\rechteck
+	\cleanup{4}{4}{-1}
+\end{scope}
+
+\begin{scope}[xshift=8cm,yshift=-4.8cm]
+	\draw[->,shorten >= 0.05cm,shorten <= 0.05cm]
+		\punkt{-4}{3} -- \punkt{0}{3};
+	\zeile0bwwwwwww \inverse0wwbwwbwb
+	\zeile1wbwwwwww \inverse1bwwbwwbw
+	\zeile2wwbwwwww \inverse2wbwwbwwb
+	\zeile3wwwbwwww \inverse3bwbwwbww
+	\zeile4wwwwbwww \inverse4wbwbwwbw
+	\zeile5wwwwwbww \inverse5wwbwbwwb
+	\zeile6wwwwwwbw \inverse6bwwbwbww
+	\zeile7wwwwwwwb \inverse7wbwwbwbw
+	\rechteck
+\end{scope}
+
+\end{tikzpicture}
+\end{document}
+
-- 
cgit v1.2.1

