\documentclass[12pt]{beamer}

% color theme
\usetheme{psu}
\usecolortheme[RGB={0,38,93}]{structure}

% For fancy fonts
\usepackage{fontspec}
\defaultfontfeatures{Scale=MatchLowercase, Mapping=tex-text}
\setmainfont[Ligatures={Common}, Numbers={OldStyle}]{Cambria}
\setsansfont[Scale=0.95]{Candara}
\setromanfont{Cambria}
\setmonofont{Monaco}

\usepackage{tikz}
\usetikzlibrary{arrows}

\newcommand{\TBE}{\textrm{TBE}}
\newcommand{\Sign}{\textrm{Sign}}
\newcommand{\PKE}{\textrm{PKE}}
\newcommand{\Verify}{\textrm{Verify}}

\begin{document}

\begin{frame}
  \frametitle{Canetti-Halevi-Katz Construction}
  \begin{figure}[h]
    \centering
    \begin{tikzpicture}[->,
        >=stealth',
        shorten >= 1pt,
        auto,
        semithick,
        bend angle=15,
      ]
      
      \coordinate (O) at (0cm, 0cm);
      \coordinate (A) at (-1.4cm, .2cm);
      \coordinate (B) at ( 1cm, .2cm);
      
      \tikzstyle{inbox} = [rectangle, draw=red!40!black!50, thick, top
        color=white, bottom color=red!60!blue!50, minimum width=1.5cm,
        minimum height=.8cm, rounded corners];
      \tikzstyle{outbox} = [rectangle, draw=black!50, thick, fill=black!5,
        minimum width=5.6cm, minimum height=2.2cm, rounded corners];
      \tikzstyle{line} = [draw, -latex', very thick]
      \tikzstyle{ann} = [above, text width=5em]
      
      \node [outbox] (PKE) at (O) {};
      \node [inbox] (TBE)  at (A) {\TBE};
      \node [inbox] (Sign) at (B) {\Sign};
      \node (blank) at (-5cm, 0cm) {$\medspace$};
      
      \path [line] (TBE) -- node [midway, above] {$C$} (Sign);
      
      \node (vk) [below of=TBE, node distance=2.6em] {$vk$};
      \path [line] (vk) -- (TBE);
      
      \node (sigk) [below of=Sign, node distance=2.6em] {$sigk$};
      \path [line] (sigk) -- (Sign);
      
      \node (sigma) [right of=Sign, node distance=3.7em] {$\sigma$};
      \path [line] (Sign) -- (sigma);
      
      \node (pk) [above of=TBE, node distance=3.7em] {$pk$};
      \path [line] (pk) -- (TBE);
      
      \node (M) [left of=TBE, node distance=5em] {M};
      \path [line] (M) -- (TBE);
      
      \node (Cpke) [right of=PKE, node distance=10.5em]
            {$\langle C,vk,\sigma\rangle$};
            \path [line] (PKE) -- (Cpke);
            
            \node (label) at (-2.4cm, 1.4cm) {\PKE};
            \node () [below of=PKE, node distance=1.4cm] {Encryption};
    \end{tikzpicture}
    
    \begin{tikzpicture}[->,
        >=stealth',
        shorten >= 1pt,
        auto,
        semithick,
        bend angle=15,
      ]
      
      \coordinate (O) at (0cm, 0cm);
      \coordinate (A) at (-1.2cm, .2cm);
      \coordinate (B) at ( 1.2cm, .2cm);
      
      \tikzstyle{inbox} = [rectangle, draw=red!40!black!50, thick, top
        color=white, bottom color=red!60!blue!50, minimum width=1.5cm,
        minimum height=.8cm, rounded corners];
      \tikzstyle{outbox} = [rectangle, draw=black!50, thick, fill=black!5,
        minimum width=5.6cm, minimum height=2.2cm, rounded corners];
      \tikzstyle{line} = [draw, -latex', very thick]
      \tikzstyle{ann} = [above, text width=5em]
      
      \node [outbox] (PKE) at (O) {};
      \node [inbox] (VFY)  at (A) {\Verify};
      \node [inbox] (TBE) at (B) {\TBE};
      
      \path [line] (VFY) -- node [pos=.7, above] {$C$} (TBE);
      
      \node (vk1) [below of=VFY, node distance=2.6em] {$vk$};
      \path [line] (vk1) -- (VFY);
      
      \node (vk2) [below of=TBE, node distance=2.6em] {$vk$};
      \path [line] (vk2) -- (TBE);
      
      \node (M) [right of=TBE, node distance=3.6em] {\hspace{-1mm}$M$};
      \path [line] (TBE) -- (M);
      
      \node (sk) [above of=TBE, node distance=3.5em] {$sk$};
      \path [line] (sk) -- (TBE);
      
      \node (Cpke) [left of=PKE, node distance=11em] {$\langle C,vk,\sigma\rangle$};
      \path [line] (Cpke) -- (PKE);
      
      \node (sigma) [left of=VFY, node distance=3.5em] {$\sigma$};
      \path [line] (sigma) -- (VFY);
      
      \node (output) [right of=PKE, node distance=10.8em] {$M\medspace$ or $\medspace\perp$};
      \path [line] (PKE) -- (output);
      
      \fill [black] (-1mm,.2cm) circle (2pt);
      \node (no) at (-1mm, -.6cm) {$\perp$};
      \path [line] (-1mm,.2cm) -- (no);
      
      \node (label) at (-2.4cm, 1.4cm) {\PKE};
      \node () [below of=PKE, node distance=1.4cm] {Decryption};
    \end{tikzpicture}
  \end{figure}
\end{frame}
\end{document}
Comments Off on Canetti-Halevi-Katz Construction