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