![密码包问题,4 人协议](https://linux22.com/image/354528/%E5%AF%86%E7%A0%81%E5%8C%85%E9%97%AE%E9%A2%98%EF%BC%8C4%20%E4%BA%BA%E5%8D%8F%E8%AE%AE.png)
我正在使用 cryptocode 包来制定 4 个玩家的协议。
\fbox{
\procedure{name}{%
\textbf{Alice} \< \textbf{Verisign} \< \textbf{Eve} \< \textbf{Bob} \\
\sendmessageright{top=\text{hello}} \<\\
\<\sendmessageright{top=\text{hello}} \<\\
\<\<\sendmessageright{top=\text{hello}} \<\\
}
}
答案1
您可以使用\sendmessageleftx
和\sendmessagerightx
命令创建绕过一个或多个方的箭头。目前,这些箭头无法自行计算正确的长度,因此您需要对大小参数进行一些调整。这些命令采用可选的长度参数、要绕过的列数以及箭头顶部显示的文本。
\fbox{
\procedure{name}{
\textbf{Alice} \<\< \textbf{Verisign} \<\< \textbf{Eve} \<\< \textbf{Bob} \\
\<\sendmessageright{length=2cm,top=\text{hello}} \\
\<\<\<\sendmessageright{length=2cm,top=\text{hello}} \\
\<\<\<\<\<\sendmessageright{length=2cm,top=\text{hello}} \\
\<\sendmessageleftx[8cm]{12}{\text{hello back to Alice}}\< \\
}}
这将产生以下协议
请注意,我为消息引入了列。因此,Bob 发回 Alice 的最终消息每条超过 6 列,\<
形成两列,因此总共 12 列。