Commit | Line | Data |
---|---|---|
888f8938 MW |
1 | \documentclass{article} |
2 | ||
3 | \usepackage{tikz} | |
4 | \usetikzlibrary{% | |
5 | shapes.symbols,shapes.callouts,% | |
6 | decorations.pathreplacing,positioning,calc} | |
7 | \tikzset{ | |
8 | mugshot/.style = {draw, fill = white, inner sep = 0, outer sep = \jot}, | |
9 | thought/.style = { | |
10 | shape = cloud callout, cloud ignores aspect, draw, fill = white, | |
11 | cloud puffs = 20, cloud puff arc = 110, | |
12 | callout absolute pointer = (#1) | |
13 | }, | |
14 | box/.style = {draw, minimum size = 16pt, fill = #1}, | |
15 | op/.style = {box = #1, shape = circle}, | |
16 | rounded/.style = {rounded corners = 2mm}, | |
17 | offset/.style = {transform canvas = {shift = {#1}}}, | |
18 | > = stealth | |
19 | } | |
20 | ||
21 | \begin{document} | |
22 | ||
23 | \begin{tikzpicture}[node distance = 5mm] | |
24 | \node[box = yellow!20, minimum width = 30mm] (m) {$m$}; | |
25 | \node[op = red!20, below = of m] (enc) {$E$} | |
26 | edge[<-] (m); | |
27 | \coordinate[below = of enc] (p); | |
28 | \node[box = red!20, minimum width = 30mm + 15pt, below = of enc] | |
29 | (c) {$c$} | |
30 | edge[<-] (enc); | |
31 | \node[box = green!20, right = -0.6pt of c] (sig) {$\sigma$}; | |
32 | \node[box = blue!20, left = -0.6pt of c] (u) {$u$}; | |
33 | \node[op = green!20, above = 10mm] at (sig |- m) (s) {$S$} | |
34 | edge[->] (sig); | |
35 | \node[above = of s] {$a'$} edge[->] (s); | |
36 | \draw[->] (s |- enc) -- (enc); | |
37 | \node[box = green!20, left = 25mm of s, below] (t2) {$\tau$}; | |
38 | \node[box = blue!20, above = -0.6pt of t2] (b2) {$B$}; | |
39 | \draw[decorate, decoration = brace] | |
40 | (b2.north east) -- (t2.south east) | |
41 | coordinate[pos = 0.5, right = 2.5pt] (sm) edge[->] (s); | |
42 | \node[box = green!20, left = of t2] (tag) {$\tau$} edge[->] (t2); | |
43 | \node[box = red!20, left = -0.6pt of tag] (k) {$K$}; | |
44 | \draw[rounded, ->] (k) |- (enc); | |
45 | \draw[decorate, decoration = brace] | |
46 | (k.north west) -- (tag.north east) | |
47 | coordinate[pos = 0.5, above = 2.5pt] (z); | |
48 | \node[op = blue!20, above = 8mm of z] (kem) {$\mathcal{E}$} | |
49 | edge[->] (z); | |
50 | \draw[rounded, ->] (kem) -| +(-10mm, -8mm) |- (u); | |
51 | \node at (kem -| b2) {$B$} edge[->] (kem) edge[->] (b2); | |
52 | \end{tikzpicture} | |
53 | ||
54 | \end{document} |