小编Ben*_*enM的帖子

我能否以位形式从 ECDSA 签名中提取 R 和 S,反之亦然?

我搜索了论坛并找到了相关信息,但没有回答这个问题。我在一个带宽极度受限的环境中工作,需要创建尽可能小的 ECDSA 签名。目前,我们正在使用 OpenSSL。此外 - 由于签名数据必须具有可预测的长度 - 固定大小。

我知道 ECDSA 签名由两个整数 S 和 R 组成,位长等于曲线大小。此外,当我尝试创建签名,从cygwin wc -c命令读取大小时,似乎添加了 6-7 个字节。我已经阅读了很多地方,这种开销可能会有所不同 - 因此我们失去了签名长度的可预测性。

可能的解决方案 - 提取 S 和 R 并以二进制(?)形式传输 - 就像位流一样。我不确定这是否可行,因为我猜它失去了与 OpenSSL 库的兼容性。所以我们需要颠倒这个过程,在 OpenSSL 接受的编码中使用 S 和 R 构造一个签名。

我注意到-binaryOpenSSL中有一个选项,它给了我一个空白文件。我以为我走错了路。

openssl dsa

6
推荐指数
1
解决办法
9522
查看次数

标签 统计

dsa ×1

openssl ×1