Latex 中的安全协议

Latex 中的安全协议

我对 Latex 还很陌生。作为课程的一部分,我们需要使用常规的 Alice、Bob 和 Trudy 提交不同版本的协议。

我想知道是否有可能制作类似的东西:这个http://images.slideplayer.us/5/1532038/slides/slide_44.jpg

到目前为止,我能够使用 mathml 中的\includegraphics\overleftarrow/显示图像overright arrow。但箭头位于图像的底部,连续箭头位于一条直线上。

我不知道如何打破它们并垂直对齐它们。

答案1

TiKZ是一个选择

\documentclass[border=2mm,tikz]{standalone}

\usepackage{mwe}
\usepackage{amsmath}
\usetikzlibrary{positioning}

\begin{document}

\begin{tikzpicture}[>=stealth]
\node[ label=below:{Alice: $K, a$}] (A) {\includegraphics[width=2cm,keepaspectratio]{example-image-a}};
\node[right=5cm of A, label=below:{Bob: $K, b$}] (B) {\includegraphics[width=2cm,keepaspectratio]{example-image-b}};
\draw[->,thick] (A.20) -- node[above]{$E(g^a\ \text{mod}\ p, K)$} (B.160);
\draw[<-,thick] (A.-20) -- node[above]{$E(g^b\ \text{mod}\ p, K)$} (B.-160);
\end{tikzpicture}
\end{document}

在此处输入图片描述

但您可以在这里搜索找到一些其他选项(msc、pstricks......):

虽然没有必要使用它们,但你可以用tabulars它来做

\begin{tabular}{ccc}
\includegraphics[width=2cm,keepaspectratio]{example-image-a} & 
\raisebox{5ex}{%
   \begin{tabular}{c}
   $\underrightarrow{\quad E(g^a\ \text{mod}\ p, K)\quad}$\\
   $\underleftarrow{\quad E(g^b\ \text{mod}\ p, K)\quad}$
   \end{tabular}} &
\includegraphics[width=2cm,keepaspectratio]{example-image-b} \\
Alice: $K, a$ & & Bob: $K, b$\\
\end{tabular}

在此处输入图片描述

更新:

我只想提一下tikzpeople这个包,它旨在绘制更多丰富多彩的安全协议。使用defaultalice 和 bob 您将获得:

\documentclass[border=2mm,tikz]{standalone}

\usepackage{tikzpeople}
\usetikzlibrary{positioning}
\usepackage{amsmath}

\begin{document}

\begin{tikzpicture}[>=stealth]
\node[alice, minimum size=2cm,label=below:{Alice: $K, a$}] (alice) {};
\node[bob, mirrored, minimum size=2cm, right=5cm of alice, label=below:{Bob: $K, b$}] (bob) {};
\draw[->,thick] (alice.20) -- node[above]{$E(g^a\ \text{mod}\ p, K)$} (bob.160);
\draw[<-,thick] (alice.-20) -- node[above]{$E(g^b\ \text{mod}\ p, K)$} (bob.-160);
\end{tikzpicture}
\end{document}

在此处输入图片描述

但是您可以使用其他一些字符,例如以下字符和其他一些

在此处输入图片描述

相关内容