1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
\begin{tikzpicture}[
-latex,
entity/.style = {
draw = gray!30,
thick,
rounded rectangle,
fill = white,
minimum width = 2cm,
font = \fontsize{8}{8}\selectfont,
text = white,
},
relation/.style = {
draw = none,
font = \fontsize{6}{6}\selectfont,
},
path/.style = {
draw,
thick,
-latex,
},
]
\node[entity, fill=darkBlue] (Publisher) at (0,0) { Publisher };
\node[entity, fill=darkGreen, below=1.5cm of Publisher] (EndUser) {End-user};
\node[entity, fill=darkOrange, left=1.5cm of Publisher] (Log) {Log};
\node[entity, fill=darkRed, below=1.5cm of Log] (Witness) {Witness};
% Key setup
\path[path, dashed] ($ (EndUser) + (2,0) $) --
node[relation, above] { Public keys }
(EndUser);
% Get data and signature
\path[path] (Publisher) --
node[relation, right] {
\begin{tabular}{c}
Opaque data\\
Signature\\
Proofs of logging\\
\end{tabular}
}
(EndUser);
% Verification
\path[path, rounded corners]
(EndUser.180) -|
($ (EndUser) + (-1.25,-.75) $)
node[relation, below]{
Verify
} -|
(EndUser.210);
% Cosigning
\path[path] (Witness) edge[bend right]
node[relation,right]{Cosignature}
(Log);
\path[path] (Log) edge[bend right]
node[relation,left]{Tree head}
(Witness);
\path[path, rounded corners]
(Witness.180) -|
($ (Witness) + (-1.25,-.75) $)
node[relation, below]{
Verify
} -|
(Witness.210);
% Get proofs
\path[path] (Log) --
node[relation,above]{Proofs of logging}
(Publisher);
\end{tikzpicture}
|