\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};

	% Key setup
	\path[path, dashed] ($ (EndUser) + (2,0) $) --
			node[relation, above] { Public key }
		(EndUser);
	% Get data and signature
	\path[path] (Publisher) --
			node[relation, right] {
				\begin{tabular}{c}
					Opaque data\\
					Signature\\
				\end{tabular}
			}
		(EndUser);
	% Verification
	\path[path, rounded corners]
		(EndUser.180) -|
		($ (EndUser) + (-1.25,-.75) $)
			node[relation, below]{
				Verify
			} -|
		(EndUser.210);
\end{tikzpicture}
