summaryrefslogtreecommitdiff
path: root/images/basic_precomputation.tex
diff options
context:
space:
mode:
Diffstat (limited to 'images/basic_precomputation.tex')
-rw-r--r--images/basic_precomputation.tex112
1 files changed, 112 insertions, 0 deletions
diff --git a/images/basic_precomputation.tex b/images/basic_precomputation.tex
new file mode 100644
index 0000000..e734839
--- /dev/null
+++ b/images/basic_precomputation.tex
@@ -0,0 +1,112 @@
+\documentclass{standalone}
+
+\usepackage{tikz}
+\usetikzlibrary{arrows}
+\usepackage{amsmath,amssymb}
+\newcommand{\enc}{\mathcal{E}}
+\newcommand{\dec}{\mathcal{D}}
+\newcommand{\perm}{\pmb{\Pi}}
+
+\begin{document}
+
+\begin{tikzpicture}
+\path [every node/.style={draw,minimum width=.5cm, minimum height=5cm}]
+ node[label={[minimum size=.5cm]Node 1}] (r1) {}
+ [xshift=2cm]
+ node[label={[minimum size=.5cm]Node 2}](r2) {}
+ [xshift=2.8cm]
+ %node[label={[minimum size=.5cm]Node 3}](r3) {}
+ %[xshift=3cm]
+ node[label={[minimum size=.5cm]Node $n$}](rn) {}
+ [xshift=2.8cm]
+ node[label={[minimum size=.5cm]Node 1}](s1) {}
+ [xshift=3.6cm]
+ node[label={[minimum size=.5cm]Node 2}](s2) {}
+ [xshift=4.6cm]
+ %node[label={[minimum size=.5cm]Node 3}](s3) {}
+ %[xshift=3cm]
+ node[label={[minimum size=.5cm]Node $n$}](sn) {}
+ [xshift=.8cm]
+ node(d)[draw=none,minimum width=0cm] {};
+
+% R step
+\draw [->] ([yshift=2cm]r1.east) -- node[above] {$\enc_e(r_{1,1})$} ([yshift=2cm]r2.west);
+\draw [->] ([yshift=1cm]r1.east) -- node[above] {$\enc_e(r_{1,2})$} ([yshift=1cm]r2.west);
+\draw [dotted] ([yshift=-1.8cm,xshift=1cm]r1.north) -- ([yshift=1.1cm,xshift=1cm]r1.south);
+\draw [->] ([yshift=-2cm]r1.east) -- node[above] {$\enc_e(r_{1,\beta})$} ([yshift=-2cm]r2.west);
+
+\draw [-] ([yshift=2cm]r2.west) -- ([yshift=2cm]r2.east);
+\draw [-] ([yshift=1cm]r2.west) -- ([yshift=1cm]r2.east);
+%\draw [dotted] ([yshift=-1.8cm]r2.north) -- ([yshift=1.1cm]r2.south);
+\draw [-] ([yshift=-2cm]r2.west) -- ([yshift=-2cm]r2.east);
+
+\draw [dashed,->] ([yshift=2cm]r2.east) -- node[above] {$\enc_e(r_{1,1} \cdot r_{2,1})$} ([yshift=2cm]rn.west);
+\draw [dashed,->] ([yshift=1cm]r2.east) -- node[above] {$\enc_e(r_{1,2} \cdot r_{2,2})$} ([yshift=1cm]rn.west);
+\draw [dotted] ([yshift=-1.8cm,xshift=1.4cm]r2.north) -- ([yshift=1.1cm,xshift=1.4cm]r2.south);
+\draw [dashed,->] ([yshift=-2cm]r2.east) -- node[above] {$\enc_e(r_{1,\beta} \cdot r_{2,\beta})$} ([yshift=-2cm]rn.west);
+
+%\draw [-] ([yshift=2cm]r3.west) -- ([yshift=2cm]r3.east);
+%\draw [-] ([yshift=1cm]r3.west) -- ([yshift=1cm]r3.east);
+%%\draw [dotted] ([yshift=-1.8cm]r2.north) -- ([yshift=1.1cm]r2.south);
+%\draw [-] ([yshift=-2cm]r3.west) -- ([yshift=-2cm]r3.east);
+
+%\draw [dashed] ([yshift=2cm]r3.east) -- node[above] {} ([yshift=2cm]rn.west);
+%\draw [dashed] ([yshift=1cm]r3.east) -- node[above] {} ([yshift=1cm]rn.west);
+%\draw [dotted] ([yshift=-1.8cm,xshift=1.5cm]r3.north) -- ([yshift=1.1cm,xshift=1.5cm]r3.south);
+%\draw [dashed] ([yshift=-2cm]r3.east) -- node[above] {} ([yshift=-2cm]rn.west);
+
+\draw [-] ([yshift=2cm]rn.west) -- ([yshift=2cm]rn.east);
+\draw [-] ([yshift=1cm]rn.west) -- ([yshift=1cm]rn.east);
+%\draw [dotted] ([yshift=-1.8cm]r2.north) -- ([yshift=1.1cm]r2.south);
+\draw [-] ([yshift=-2cm]rn.west) -- ([yshift=-2cm]rn.east);
+
+\draw [->] ([yshift=2cm]rn.east) -- node[above] {$\enc_e(\prod_{i=1}^{n} r_{i,1})$} ([yshift=2cm]s1.west);
+\draw [->] ([yshift=1cm]rn.east) -- node[above] {$\enc_e(\prod_{i=1}^{n} r_{i,2})$} ([yshift=1cm]s1.west);
+\draw [dotted] ([yshift=-1.8cm,xshift=1.4cm]rn.north) -- ([yshift=1.1cm,xshift=1.4cm]rn.south);
+\draw [->] ([yshift=-2cm]rn.east) -- node[above] {$\enc_e(\prod_{i=1}^{n} r_{i,\beta})$} ([yshift=-2cm]s1.west);
+
+% S step
+\draw [-] ([yshift=2cm]s1.west) -- ([yshift=2cm,xshift=.1cm]s1.west) -- ([yshift=-1cm,xshift=-.1cm]s1.east) -- ([yshift=-1cm]s1.east);
+\draw [-] ([yshift=1cm]s1.west) -- ([yshift=1cm,xshift=.1cm]s1.west) -- ([yshift=0cm,xshift=-.1cm]s1.east) -- ([yshift=0cm]s1.east);
+%\draw [dotted] ([yshift=-1.8cm]r2.north) -- ([yshift=1.1cm]r2.south);
+\draw [-] ([yshift=-2cm]s1.west) -- ([yshift=-2cm,xshift=.1cm]s1.west) -- ([yshift=2cm,xshift=-.1cm]s1.east) -- ([yshift=2cm]s1.east);
+
+\draw [->] ([yshift=-1cm]s1.east) -- node[above] {$\enc_e(\prod_{i=1}^{n} (r_{i,1}) \cdot s_{1,4})$} ([yshift=-1cm]s2.west);
+\draw [->] ([yshift=0cm]s1.east) -- node[above] {$\enc_e(\prod_{i=1}^{n} (r_{i,2}) \cdot s_{1,3})$} ([yshift=0cm]s2.west);
+\draw [dotted] ([yshift=-.7cm,xshift=1.8cm]s1.north) -- ([yshift=3.2cm,xshift=1.8cm]s1.south);
+\draw [dotted] ([yshift=-3.7cm,xshift=1.8cm]s1.north) -- ([yshift=.5cm,xshift=1.8cm]s1.south);
+\draw [->] ([yshift=2cm]s1.east) -- node[above] {$\enc_e(\prod_{i=1}^{n} (r_{i,\beta}) \cdot s_{1,1})$} ([yshift=2cm]s2.west);
+
+\draw [-] ([yshift=-1cm]s2.west) -- ([yshift=-1cm,xshift=.1cm]s2.west) -- ([yshift=0cm,xshift=-.1cm]s2.east) -- ([yshift=0cm]s2.east);
+\draw [-] ([yshift=0cm]s2.west) -- ([yshift=0cm,xshift=.1cm]s2.west) -- ([yshift=2cm,xshift=-.1cm]s2.east) -- ([yshift=2cm]s2.east);
+%\draw [dotted] ([yshift=-1.8cm]r2.north) -- ([yshift=1.1cm]r2.south);
+\draw [-] ([yshift=2cm]s2.west) -- ([yshift=2cm,xshift=.1cm]s2.west) -- ([yshift=1cm,xshift=-.1cm]s2.east) -- ([yshift=1cm]s2.east);
+
+\draw [dashed,->] ([yshift=0cm]s2.east) -- node[above] {$\enc_e(\prod_{i=1}^{n} (r_{i,1}) \cdot s_{1,4} \cdot s_{2,3})$} ([yshift=0cm]sn.west);
+\draw [dashed,->] ([yshift=2cm]s2.east) -- node[above] {$\enc_e(\prod_{i=1}^{n} (r_{i,2}) \cdot s_{1,3} \cdot s_{2,1})$} ([yshift=2cm]sn.west);
+\draw [dotted] ([yshift=-2.8cm,xshift=2.5cm]s2.north) -- ([yshift=.5cm,xshift=2.5cm]s2.south);
+\draw [dashed,->] ([yshift=1cm]s2.east) -- node[above] {$\enc_e(\prod_{i=1}^{n} (r_{i,\beta}) \cdot s_{1,1} \cdot s_{2,2})$} ([yshift=1cm]sn.west);
+
+%\draw [-] ([yshift=0cm]sn.west) -- ([yshift=0cm,xshift=.1cm]sn.west) -- ([yshift=1cm,xshift=-.1cm]sn.east) -- ([yshift=1cm]sn.east);
+%\draw [-] ([yshift=2cm]sn.west) -- ([yshift=2cm,xshift=.1cm]sn.west) -- ([yshift=-1cm,xshift=-.1cm]sn.east) -- ([yshift=-1cm]sn.east);
+%%\draw [dotted] ([yshift=-1.8cm]r2.north) -- ([yshift=1.1cm]r2.south);
+%\draw [-] ([yshift=1cm]sn.west) -- ([yshift=1cm,xshift=.1cm]sn.west) -- ([yshift=2cm,xshift=-.1cm]sn.east) -- ([yshift=2cm]sn.east);
+
+%\draw [dashed] ([yshift=1cm]s3.east) -- node[above] {} ([yshift=1cm]sn.west);
+%\draw [dashed] ([yshift=-1cm]s3.east) -- node[above] {} ([yshift=-1cm]sn.west);
+%\draw [dotted] ([yshift=-1.8cm,xshift=1.5cm]s3.north) -- ([yshift=1.7cm,xshift=1.5cm]s3.south);
+%\draw [dotted] ([yshift=-3.7cm,xshift=1.5cm]s3.north) -- ([yshift=.5cm,xshift=1.5cm]s3.south);
+%\draw [dashed] ([yshift=2cm]s3.east) -- node[above] {} ([yshift=2cm]sn.west);
+
+\draw [-] ([yshift=1cm]sn.west) -- ([yshift=1cm,xshift=.1cm]sn.west) -- ([yshift=2cm,xshift=-.1cm]sn.east) -- ([yshift=2cm]sn.east);
+\draw [-] ([yshift=0cm]sn.west) -- ([yshift=0cm,xshift=.1cm]sn.west) -- ([yshift=-2cm,xshift=-.1cm]sn.east) -- ([yshift=-2cm]sn.east);
+%\draw [dotted] ([yshift=-1.8cm]r2.north) -- ([yshift=1.1cm]r2.south);
+\draw [-] ([yshift=2cm]sn.west) -- ([yshift=2cm,xshift=.1cm]sn.west) -- ([yshift=1cm,xshift=-.1cm]sn.east) -- ([yshift=1cm]sn.east);
+
+\draw [->] ([yshift=2cm]sn.east) -- node[above] {} ([yshift=2cm]d.west);
+\draw [->] ([yshift=-2cm]sn.east) -- node[above] {} ([yshift=-2cm]d.west);
+\draw [dotted] ([yshift=-1.8cm,xshift=.5cm]sn.north) -- ([yshift=1.1cm,xshift=.5cm]sn.south);
+\draw [->] ([yshift=1cm]sn.east) -- node[above] {} ([yshift=1cm]d.west);
+\end{tikzpicture}
+
+\end{document} \ No newline at end of file