ECDSA 在区块链应用中的七宗罪
source link: https://www.tuicool.com/articles/j2uayqb
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
基于椭圆曲线 secp256k1 的 ECDSA 由于 Bitcoin 中的部署 , 逐渐成为区块链项目中默认的签名机制 . 然而在 Bitcoin 诞生的时期 , 工程项目中更多采用基于一条名为 secp256r1 的椭圆曲线的 ECDSA 签名机制 , Bitcoin 中最初采纳 secp256k1 的真正原因已不可知 , 我们只能进行揣测 , 也许是 secp256r1 曲线中可能埋藏的由 NSA 引入的算法后门 , 也许是非常适合 secp256k1 支持的自同态映射能够加速签名验证过程的特性 .
在区块链场景中应用基于 secp256k1 的 ECDSA, 带来了诸多方面的挑战 , 稍有不慎 , 就可能在区块链网络中引发安全问题 , 或者数字货币资产的损失 . 回顾区块链发挥过程中踩过的坑 , 我们总结了 ECDSA 签名机制在区块链场景中应用时的七宗罪 :
-
如果签名过程中随机数值泄露 , 则任何知道该随机数值的⼈可以使⽤该随机数产⽣签名值恢复私钥
-
如果同一个用户对两个不同的消息签名时 , 采用了相同的随机数 , 则则任何⼈都可以通过两个签名值恢复出私钥
-
如果两个用户执行 ECDSA 签名时采用了相同的随机数 , 则两人中的任何一方可以推算出另一方的私钥
-
如果相同的私钥和随机数被同时用于 ECDSA 签名和 Schnorr 签名 , 则任何⼈都能够恢复出私钥
-
ECDSA 签名值的可锻造性带来的安全隐患
-
ECDSA 签名值的 DER 编码的不唯一性会带来的安全隐患
-
如果验签时不要求提供被签名的消息 , 则任何人都可以伪造签名值
在介绍 ECDSA 七宗罪的原理之外 , 还介绍了应对措施 . 值得一提的是 , Craig Wright ( 澳本聪 ) 曾经利用上述的第 7 个问题 , 伪造中本聪的签名 , 并进而仅此宣称自己是中本聪 .
在各种安全问题之外 , ECDSA 签名机制也拥有非常适合区块链场景的特性 , 比如可以从签名值中恢复出公钥 , 利用这个特性可以缩减每笔交易的大小 , 以太坊中利用了这个特性 .
secp256k1 和 secp256r1 的对比 , 七宗罪的背后的数学原理和应对措施 , 从 ECDSA 签名值恢复公钥的数学原理以及在 libsecp256k1 中的应用详情 , 请点击【阅读原文】
Recommend
-
45
文 | Jefferson Nunn BTCManager将详细介绍Vitalik Buterin提出的七个问题。 这七个问题是这个蓬勃发展的生态系统的一些最相关的特征。
-
13
The elliptic curve digital signature algorithm (ECDSA) is a common digital signature scheme that we see in many of our code reviews. It has some desirable properties, but can also be very fragile. For example,
-
11
Using ECDSA in IdentityServer4 By default, IdentityServer4 uses RS256 to sign identity tokens and JWT access tokens; however, it does also support Elliptical Curve Cryptography (ECC). Using Elliptical Curve Digital Signing Algorith...
-
16
Comparing SSH Keys - RSA, DSA, ECDSA, or EdDSA? Apr 6, 2021 by Virag Mody This blog post was originally released on 08/26/20.
-
6
签名算法 DSA 和 ECDSA 作者: 张志强 , 发表于...
-
7
CloudFront 宣佈支援 ECDSA 的 Certificate Amazon CloudFront 宣佈支援 ECDSA 的 certificate:...
-
12
JWT Signing using ECDSA in .NET Core Scott Brady 02 February 2018 ・ C# ・ Updated August 2021 ...
-
2
ECDSA and Custom XML Signatures in .NET Scott Brady 21 September 2021 ・ C# XML digital sign...
-
4
VaultHSM:OpenPGP智能卡中确定性 ECDSA的测试方法 ...
-
4
ECDSA使用,实现多签 (二) ECDSA 在多签中的运用,一个多签转账的例子。...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK