From 5945ecf94b5ba63801b61e9e7bdbe7c8ff11ae6c Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Sun, 28 Apr 2013 17:04:34 +0200 Subject: [PATCH] added CBC Mode Decryption --- .../CBC-Mode-Decryption.png | Bin 0 -> 19923 bytes .../CBC-Mode-Decryption.tex | 50 ++++++++++++++++++ tikz/CBC-Mode-Decryption/Makefile | 35 ++++++++++++ tikz/CBC-Mode-Decryption/Readme.md | 3 ++ 4 files changed, 88 insertions(+) create mode 100644 tikz/CBC-Mode-Decryption/CBC-Mode-Decryption.png create mode 100644 tikz/CBC-Mode-Decryption/CBC-Mode-Decryption.tex create mode 100644 tikz/CBC-Mode-Decryption/Makefile create mode 100644 tikz/CBC-Mode-Decryption/Readme.md diff --git a/tikz/CBC-Mode-Decryption/CBC-Mode-Decryption.png b/tikz/CBC-Mode-Decryption/CBC-Mode-Decryption.png new file mode 100644 index 0000000000000000000000000000000000000000..14a312127164d710b01c6e2d63ffd896041c6a36 GIT binary patch literal 19923 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 A7ytkO literal 0 HcmV?d00001 diff --git a/tikz/CBC-Mode-Decryption/CBC-Mode-Decryption.tex b/tikz/CBC-Mode-Decryption/CBC-Mode-Decryption.tex new file mode 100644 index 0000000..d1a3b12 --- /dev/null +++ b/tikz/CBC-Mode-Decryption/CBC-Mode-Decryption.tex @@ -0,0 +1,50 @@ +\documentclass{article} +\usepackage[pdftex,active,tightpage]{preview} + +\usepackage{tikz} +\usetikzlibrary{calc} + +\begin{document} +\begin{preview} +% thanks to http://tex.stackexchange.com/a/75838/5645 +\tikzset{XOR/.style={fill=black!15,draw,minimum size=13pt,circle,append after command={ + [shorten >=\pgflinewidth, shorten <=\pgflinewidth,] + (\tikzlastnode.north) edge (\tikzlastnode.south) + (\tikzlastnode.east) edge (\tikzlastnode.west) + } + } +} + +\tikzstyle{encrypt}=[draw,fill=black!15,rectangle,minimum size=20pt,inner sep=0pt] +\begin{tikzpicture} + \newcommand{\n}{3} + \foreach \nr in {1, ..., \n}{ + \node (C\nr) at (0,{(\n-\nr)*2}) {$C_\nr$}; + \node (D\nr)[encrypt] at (2,{(\n-\nr)*2}) {$D$}; + \node (x\nr)[XOR] at (4,{(\n-\nr)*2}) {}; + \node (M\nr) at (6,{(\n-\nr)*2}) {$M_\nr$}; + + \node (K\nr) at (2,{(\n-\nr)*2+1}) {$K$}; + + \draw[->,very thick] (C\nr) -- (D\nr); + \draw[->,very thick] (D\nr) -- (x\nr); + \draw[->,very thick] (x\nr) -- (M\nr); + + \draw[->,very thick] (K\nr) -- (D\nr); + } + + \foreach \nr in {2, ..., \n}{ + \pgfmathtruncatemacro{\tmp}{\nr-1} + \draw[->,very thick] (1,{(\n-\tmp)*2}) -- (1,{(\n-\tmp)*2-0.5}) -- (4,{(\n-\tmp)*2-0.5}) -- (x\nr); + } + + \node (IV) at (4,{\n*2-1}) {$IV$}; + \draw[->, very thick] (IV) -- (x1); + + \node (Mx) at (0,-1) {$\vdots$}; + \node (xx) at (2,-1) {$\vdots$}; + \node (Ex) at (4,-1) {$\vdots$}; + \node (Cx) at (6,-1) {$\vdots$}; +\end{tikzpicture} +\end{preview} +\end{document} diff --git a/tikz/CBC-Mode-Decryption/Makefile b/tikz/CBC-Mode-Decryption/Makefile new file mode 100644 index 0000000..3c21c6a --- /dev/null +++ b/tikz/CBC-Mode-Decryption/Makefile @@ -0,0 +1,35 @@ +SOURCE = CBC-Mode-Decryption +DELAY = 80 +DENSITY = 300 +WIDTH = 512 + +make: + pdflatex $(SOURCE).tex -output-format=pdf + make clean + +clean: + rm -rf $(TARGET) *.class *.html *.log *.aux *.data *.gnuplot + +gif: + pdfcrop $(SOURCE).pdf + convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif + make clean + +png: + make + make svg + inkscape $(SOURCE).svg -w $(WIDTH) --export-png=$(SOURCE).png + +transparentGif: + convert $(SOURCE).pdf -transparent white result.gif + make clean + +svg: + make + #inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg + pdf2svg $(SOURCE).pdf $(SOURCE).svg + # Necessary, as pdf2svg does not always create valid svgs: + inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg + rsvg-convert -a -w $(WIDTH) -f svg $(SOURCE).svg -o $(SOURCE)2.svg + inkscape $(SOURCE)2.svg --export-plain-svg=$(SOURCE).svg + rm $(SOURCE)2.svg diff --git a/tikz/CBC-Mode-Decryption/Readme.md b/tikz/CBC-Mode-Decryption/Readme.md new file mode 100644 index 0000000..56262f9 --- /dev/null +++ b/tikz/CBC-Mode-Decryption/Readme.md @@ -0,0 +1,3 @@ +Compiled example +---------------- +![Example](CBC-Mode-Decryption.png)