首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ECDSA中的DSA漏洞

ECDSA中的DSA漏洞
EN

Cryptography用户
提问于 2018-06-28 08:31:10
回答 2查看 2.3K关注 0票数 2

我已经实现了一个红宝石代码,我在这里生成私钥和公钥,如下所示。

然而,我很少读到关于数字减影技术的[1]文章,以及为什么不应该使用它。我不擅长密码学。但仍然想知道我的实现是否容易恢复公钥/私钥?

代码语言:javascript
复制
$group = ECDSA::Group::Secp256k1
$private_key = 1 + SecureRandom.random_number($group.order - 1)
$public_key = $group.generator.multiply_by_scalar($private_key)
EN

回答 2

Cryptography用户

回答已采纳

发布于 2018-06-28 10:19:05

您的混淆似乎是在DSA、离散签名算法和椭圆曲线变体ECDSA之间。你所指出的问题的答案似乎已经区分了这两种情况,这个答案不会再重复。

对于Koblitz曲线(如SECP256K1 ),256位的密钥大小被认为是安全的.。因此,正确使用的<#>if在涉及到所使用的算法和密钥大小时,显示的代码是安全的。使用坏的随机数发生器来进行ECDSA签名是众所周知的,它会导致关键材料的灾难性损失.

备注:

  • 不建议使用ECC的单人实现:实现错误或侧信道攻击的可能性更大(例如,在计算公钥或签名生成的乘法过程中);
  • SECP256K1提供的安全性略小于128位,目前无法破解(尽管比特大小略低)。但是,EC(DSA)很容易受到来自未来量子计算机的攻击(DSA也是如此)。
票数 4
EN

Cryptography用户

发布于 2018-06-28 11:39:05

Ruby代码中的数学原理是可以的:它的目标是在范围$$中生成私钥,然后生成相应的公钥,用于椭圆曲线secp256k1 (例如,由比特币的ECDSA签名使用)。据信,这提供了近128位的安全性,十年来都很好。

它的安全性主要取决于运行代码的计算机的完整性、使用私钥的谨慎程度以及SecureRandom.random_number的质量。

在链接的问题中讨论的问题是在某些情况下被废弃的DSA (不是ECDSA),因为

  • 在许多Linux发行版中,DSA私钥过去是由一个破碎的随机数生成器生成的,这使得许多私钥很容易猜测。摆脱DSA是修复此问题漏洞的一种简单、确定和可接受的烦人方法。
  • DSA经常与1024位的基组一起使用,按照今天的标准,这并没有给出足够的安全裕度(尽管公开攻击远低于这个阈值)。

与问题的代码最接近的共同点是,如果SecureRandom.random_number不安全,那么所做的事情就不安全了。

票数 2
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/60366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档