我一直在阅读关于Poly1305在NaCl库中实现的文章,更具体地说,我是指Java实现 of NaCl。我对XSalsa20Poly1305 (至少在这个实现中)的理解是,它将32个零字节加到明文中,按照通常的方式用XSalsa20加密,使用32个加密的零字节作为计算16字节Poly1305 MAC的密钥,然后丢弃加密的零字节。我理解得对吗?这是使用Poly1305的标准方式吗?
发布于 2013-09-24 13:18:56
我不知道这是否是标准的方式,但我知道poly1305是一个单一用途的MAC功能。显然,您不能对不同的消息使用相同的poly1305密钥两次,或者攻击者可以伪造MACs。因此,这听起来像是一种简单、安全、计算成本低廉的方法,您无论如何都要使用加密密码为每条消息生成一个唯一的强随机poly1305密钥。
https://crypto.stackexchange.com/questions/8711
复制相似问题