【问题标题】:Access MAC keys in NaCl/libsodium访问 NaCl/libsodium 中的 MAC 密钥
【发布时间】:2018-02-16 04:26:25
【问题描述】:

根据https://cr.yp.to/highspeed/naclcrypto-20090310.pdf,NaCl 从crypto_box API 中的共享密钥和随机数派生一个 MAC 密钥。

Alice 使用长流的前 32 个字节(从共享密钥和使用 salsa20 的随机数生成)来计算加密数据包的身份验证器。

但是,此过程是内部的。不知道有没有 API 可以手动派生 MAC 密钥?

【问题讨论】:

    标签: libsodium nacl-cryptography


    【解决方案1】:

    box 构造使用 xsalsa20 密码(最初 -- 还有一个变体使用 xchacha20)。

    该密码的第一个块用作 Poly1305 密钥。剩余的块与消息进行异或运算以计算密文。

    因此,您可以简单地使用crypto_stream() 来计算 Poly1305 密钥。

    【讨论】:

    • 好的。谢谢。 IMO 访问 MAC 密钥可能是一个有用的 API。
    • 可能不是 :) 请记住,这是一次性密钥。它应该只使用一次。使用相同的密钥对不同的消息(或密文)进行身份验证可能会导致密钥恢复。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-23
    相关资源
    最近更新 更多