\documentclass{standalone}
\usepackage{amsmath}
\usepackage{tikz}
\usepackage{xcolor}
% Colorblind-friendly palette from <https://jfly.uni-koeln.de/color/>.
\definecolor{Vermillion} {cmy}{0, 0.8, 1}
\definecolor{Orange} {cmy}{0, 0.5, 1}
\definecolor{SkyBlue} {cmy}{0.8, 0, 0}
\definecolor{BluishGreen} {cmy}{0.97, 0, 0.75}
\definecolor{Yellow} {cmy}{0.1, 0.5, 0.9}
\definecolor{Blue} {cmy}{1, 0.5, 0}
\definecolor{ReddishPurple} {cmy}{0.1, 0.7, 0}
\begin{document}
\begin{tikzpicture}
\usetikzlibrary{calc}
\usetikzlibrary{shapes}
% Nodes representing data.
\tikzset{publicdatum/.style={
shape=circle,
rounded corners=0.5ex,
minimum height=4ex,
fill=SkyBlue, fill opacity=0.4,
text opacity=1,
}}
\tikzset{secretdatum/.style={
shape=rectangle,
rounded corners=0.5ex,
minimum height=4ex,
fill=Vermillion, fill opacity=0.4,
text opacity=1,
}}
% Nodes representing operations on data.
\tikzset{operation/.style={
shape=trapezium,
trapezium left angle=-65,
trapezium right angle=-65,
minimum height=4ex,
}}
\node (gen) at (1/4, 5) [draw, operation] {$\operatorname{Gen}$};
\coordinate (gen-pk) at ($(gen.south) - (1/4,0)$);
\coordinate (gen-sk) at ($(gen.south) + (1/4,0)$);
\node (m0) at (-2.5, 3) [draw, secretdatum] {$m$};
\node (pk) at (-1.5, 3) [draw, publicdatum] {$\mathit{pk}$};
\node (encrypt) at (-2, 2) [draw, operation]
{$\operatorname{Encrypt}(\mathit{pk}, m)$};
\coordinate (encrypt-m) at ($(encrypt.north) - (1/2,0)$);
\coordinate (encrypt-pk) at ($(encrypt.north) + (1/2,0)$);
\coordinate (encrypt-c) at (encrypt.south);
\node (c) at (-1.25, 0.5) [draw, publicdatum] {$c$};
\node (sk) at (0.5, 0) [draw, secretdatum] {$\mathit{sk}$};
\node (decrypt) at (0, -1) [draw, operation]
{$\operatorname{Decrypt}(\mathit{sk}, c)$};
\coordinate (decrypt-c) at ($(decrypt.north) - (1/2,0)$);
\coordinate (decrypt-sk) at ($(decrypt.north) + (1/2,0)$);
\coordinate (decrypt-m) at (decrypt.south);
\node (m1) at (0, -2) [draw, secretdatum] {$m$};
\draw[->] (gen-pk) |- ($(pk) + (0,1)$) -- (pk);
\draw[->] (gen-sk) -- (sk);
\draw[->] (m0) -- (encrypt-m);
\draw[->] (pk) -- (encrypt-pk);
\draw[->] (encrypt-c) |- (c);
\draw[->] (c) -| (decrypt-c);
\draw[->] (sk) -- (decrypt-sk);
\draw[->] (decrypt-m) -- (m1);
\end{tikzpicture}
\end{document}