问题标签 [ecdsa]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 从比特币私钥中检索公钥
我如何从比特币私钥中获取比特币地址。
我了解整个方法,除了第一个方法,公钥及其 x 和 y 线来自哈希/私钥。
如果我可以在 php 中获得代码示例,那对我会更有帮助。
linux - 了解 BCryptSignHash 输出签名
我已经使用带有 ECDSA 算法的BCryptSignHash在 Windows 中签署了一个哈希值。输出签名缓冲区的长度为 64 字节。我还使用BCryptGenerateKeyPair函数(BCRYPT_ECDSA_P256_ALGORITHM 算法)生成了公钥和私钥 blob,并使用该函数对哈希进行了签名。
我必须在 linux 中使用这个密钥对来验证这个签名。我能够使用链接“ http://msdn.microsoft.com/en-us/library/windows/desktop/aa375520%28v=vs.85%29.aspx ”破译生成的公私钥对" 并且能够在 linux 中使用它。
理想情况下,生成的 64 字节签名应该是签名对 (r,s) ( http://en.wikipedia.org/wiki/Elliptic_Curve_DSA )。
有没有办法理解生成的 64 字节签名,以便我可以将签名 blob 内容映射到 linux 中的 (r,s) 对并验证它?
或者有没有更简单的方法来验证linux中生成的签名?
谢谢, F
c++ - 使用 Crypto++ 获取 ECDSA 签名
我必须使用 Crypto++ 在变量中获取 ECDSA 签名。
我在启动 SignMessage 后尝试获取它,但签名为空。
我怎么能得到它?
digital-signature - 如何在没有验证功能的情况下使用 Crypto++ 验证 ECDSA 签名?
我使用 Crypto++ 使用 ECDSA 制作了签名者/检查者机制。
问题是当我想检查签名时,它不适用于验证功能。
你能建议我一种更手动的方式来验证签名吗?
crypto++ - 是否有带有点压缩的公钥初始化 API?
我在 CryptoPP 上翻来覆去,找不到这个特定问题的答案。这是示例源代码(部分)
通过这种方式,我可以使用组件值生成 publicKey。但是,我不能让它与点压缩一起工作——这意味着我没有 Qy 值——有没有办法做到这一点?Initialize 方法有两个重载,但都不是针对点压缩的情况。
我的问题是关于“PublicKey.Initialize(curve,G,n,Q)”的 Crypto++ 的具体问题。由于我无法使用当前项目传输整个 publicKey - 我被迫将域参数指定为索引值并且只能传输 Qx 值。所以我应该使用“PublicKey.Initialize(curve,G,n,Q)”之类的东西来初始化 publicKey 但是,我找不到这样的关于点压缩的初始化 API。
所以,这不是关于“如何进行点压缩”,而是“有没有办法在没有 Qy 值的情况下初始化公钥?”
go - 如何在 Go 中存储 ECDSA 私钥
我正在使用该ecdsa.GenerateKey
方法在 Go 中生成私钥/公钥对。我想将私钥存储在用户计算机上的文件中,并在程序启动时加载它。有一种方法elliptic.Marshal
可以编组公钥,但没有编组私钥。我应该自己动手,还是有推荐的方法来存储私钥?
encryption - 雅可比坐标中的椭圆曲线加法
我尝试在素数场上的椭圆曲线上添加两个点,将这些点从仿射/仿射坐标转换,但无法获得正确的结果(我正在测试的曲线有 a=0)。任何人都可以看到有什么问题吗?
c# - BouncyCastle ESDSA implementation
I'm implementing ECDSA in C# using the BouncyCastle library and I'm having a hard time understanding TestECDsa192bitPrime() example.
In the above example how BouncyCastle directly calculated G( Basepoint) and Q( public key).
cryptography - Golang 使用 ecdsa 和来自 SHA224 摘要的私钥进行签名
我需要签署一条消息以提交到远程服务(通过 websocket)。为此,我需要基于整数(我的用户 ID)和密码(base64 编码的字符串)构造一个私钥,并使用 SHA224 进行哈希处理。我正在使用 golang 和 crypto/ecdsa 以及随附的字节编码包等。
这是我拥有的文档:
签名使用椭圆曲线数字签名算法 (ECDSA) 编码的消息,其中包含:用户 ID、服务器随机数、客户端节点和私钥。使用 SHA224 对您的用户 ID 和密码进行散列生成私钥。
这是我的功能:
我对这个函数的意图是:
散列 userId 并正确传递
[]byte
使用 SHA224。将其读入
int64
然后用作私钥构造一个实例
ecdsa.PrivateKey
并ecdsa.PublicKey
正确对应返回用于
ecdsa.Sign()
函数调用的键
然后我签署另一条由 userId(整数)和两个 nonce 组成的消息。
这是我签署消息的方式:
问题:
我的
NewKey
功能正确吗?和组件非常大 - 大概是因为我正在
r
使用. 这可能是一个问题吗?s
int64
拥有这两个项目的行是否
sha256.New224().Sum([]byte(userId + pass))
“正确”?如何正确创建我的私钥(假设它是错误的)并随后签署消息?
我对 ECDSA 非常陌生,并且一般具有基本的加密知识。