gpt4 book ai didi

algorithm - 如何在golang中签署curve25519 key ?

转载 作者:行者123 更新时间:2023-12-01 22:22:07 26 4
gpt4 key购买 nike

我正在尝试从 Signal in Go 中实现 X3DH 算法。但是,我在如何签署 Public Signed PreKey 上陷入了困境。
根据规范,它应该是 X25519 key 。在查看 Github 上以前的实现时,他们生成了 [32]byte来自 curve25519 的 key 包,然后将其转换为 ed25519 key ,然后签名。
但是,它们用于转换的软件包已被弃用(github.com/agl/ed25519)。因此,我要么需要能够将 key 转换为 ed25519所以我可以用当前的 ed25519 签署它们包 ( golang.org/x/crypto/25519 ) 或为 curve25519 实现签名和验证功能键。

最佳答案

Ed25519 key 可以转换为 X25519轻松敲击,Ed25519 使用的扭曲的 Edwards 曲线和 X25519 使用的蒙哥马利曲线是 birationally相等的。
爱德华兹曲线上的点通常称为 (x, y),而蒙哥马利曲线上的点通常称为 (u, v)。
您不需要库来进行转换,它真的很简单......

(u, v) = ((1+y)/(1-y), sqrt(-486664)*u/x)
(x, y) = (sqrt(-486664)*u/v, (u-1)/(u+1))
这是一个很棒的 blog由 Google 的 Golang 安全主管 Filippo Valsorda 讨论这个话题。

关于algorithm - 如何在golang中签署curve25519 key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62586488/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com