答案1
我建议您研究设计一个三列array
环境。
我承认我对这种符号完全不熟悉。特别是,我不确定如何解释/排版中间一列的内容:箭头和它们上方的内容是否紧密相关,还是应该排版在不同的行上?请指教。
\documentclass{article}
\usepackage[a4paper,margin=2.5cm]{geometry} % choose page parameter suitably
\usepackage{amsmath,booktabs}
\newcommand\vn[1]{\textsc{\MakeLowercase{#1}}} % "variable name" macro
\newcommand\mc[1]{\multicolumn{1}{c}{#1}} % handy shortcut macro
\newcommand\ID{\mathit{ID}}
\begin{document}
\begin{figure}
\[ % start math mode, center the contents
\begin{array}{lcl}
\mc{\text{AHE}} & & \mc{\text{Meter}} \\
\cmidrule{1-1} \cmidrule{3-3}
X_{\vn{AHE}}=a^{x_{\vn{AHE}}} & &
X_{\vn{M}}=a^{x_{\vn{M}}}\\
h_{\vn{AHE}}=H(\ID_{\vn{AHE}} \Vert X_{\vn{AHE}}) & &
h_{\vn{M}}=H(\ID_{\vn{M}}\Vert X_{\vn{M}})\\
m_{\vn{AHE}}=h_{\vn{AHE}}\Vert \ID_{\vn{AHE}}\Vert X_{\vn{AHE}} &
\overset{m_{\vn{AHE}\vphantom{y}}}{\longrightarrow} &
\text{verifies $h_{\vn{AHE}}$}\\
\text{verifies $h_{\vn{M}}$} &
\overset{m_{\vn{M}}}{\longleftarrow} &
\text{computes: }m_{\vn{M}}=h_{\vn{M}}\Vert \ID_{\vn{M}} \Vert X_{\vn{M}} \\
\text{computes session key:}\\
k_{\vn{AHE}}^{\vn{M}}=\dots\\
c_{\vn{AHE}}=\dots\\
\mathrm{mess}_{\vn{AHE}}=\dots &
\overset{\mathrm{mess}_{\vn{AHE}\vphantom{y}}}{\longrightarrow} &
k_{\vn{M}}^{\vn{AHE}}=X_{\vn{AHE}}^{x_{\vn{M}}}\\
&& c_{\vn{AHE}}=\dots\\
\text{check if}&& c_{\vn{M}} = \dots\\
c_{\vn{M}}=\dots &
\overset{\mathrm{mess}_{\vn{M}\vphantom{y}}}{\longleftarrow} &
\mathrm{mess}_{\vn{M}}=\dots\\
\end{array}
\]
\caption{Kamto \dots}
\end{figure}
\end{document}