0

我有短消息(<=256 位)需要加密并发布为(HTTP URL)二维码以及公钥。由于 QR 要求,结果也应该保持 256 位长 - 使用方案、服务器名称和 base64 编码生成的 URL 已经有相当长的长度,因此 QR 很容易变得“太大”。

  1. 对于那个密钥大小,RSA 是不可能的。
  2. libsodium使用 ED25519提供crypto_box功能;但对于这些,我还需要传输随机数(24 个字节),结果是例如。48 字节——这使得二维码已经有点笨拙了。
    • 此外,每条消息使用一个(恒定)密钥对和另一个随机生成的密钥意味着还需要嵌入随机密钥,从而扩大结果
    • 使用单个密钥对不起作用 - 如果我使用sec1and加密pub1,我也需要准确发布这些值以进行解密。
  3. 所以我正在考虑使用普通的原始 ED25519 加密和解密。我需要注意 RSA(填充、坏键(如 pub exp 3))之类的陷阱吗?

我的计划是获取输入,对其进行 SHA256,使用哈希值将输入填充到 256 位,然后进行普通的 ED25519 加密。(我将在结果前添加一个键标记,以使键轮换成为可能。)

会出什么问题?毕竟,libsodium 的所有复杂性都必须有一个原因,对吧?

非常感谢您的帮助!

4

0 回答 0