首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >密码算法的常数时间实现

密码算法的常数时间实现
EN

Cryptography用户
提问于 2018-03-12 01:56:26
回答 1查看 1.5K关注 0票数 5

为了防止缓存攻击(侧信道攻击),通常建议采用恒定时间的密码实现。在某些情况下,DJB发布了新的算法(chacha),在设计时考虑到了这一点(作为目标之一)。如果是

  1. 对于所有流行的算法来说,恒定时间的实现可行吗?我之所以这样问,是因为AES、RSA、SHA*、EC*和DSA算法(至少其中一些算法)并没有考虑到侧信道攻击。既然如此,这些在软件中使用是否安全?(我知道安全在这里是一个很有意义的术语,但我严格地从侧通道的角度讲)。
  2. 所有的标准库都支持这种固定时间的实现吗?我希望看到这样的实现与不这样做的东西进行比较。
  3. 我知道在硬件中使用一种算法是可行的。当密码算法被“在硬件中实现”时,它通常意味着它完全在硬件上实现,还是其中的一部分被嵌入到了微码中?我知道AES可能是完全用硬件实现的,那么ECDSA或者其他更复杂的东西呢?
EN

回答 1

Cryptography用户

回答已采纳

发布于 2018-03-12 03:29:40

  1. 任何功能都可以使定时攻击具有抵抗力,而且可能更昂贵。例如,AES可以通过使用硬件模拟的恒定时间查找电路(也许更神奇)来实现安全。

如果您需要AES:在软件中使用带有固定时间回退的硬件。如果您不需要AES,那么您可以通过硬件选择它,然后协商使用诸如chacha20这样的快速软件密码。

  1. 我还没有进行调查(因为我没有使用这些“标准库”)。标准中包括哪些图书馆?OpenSSL?LibreSSL?BoringSSL?利伯钠?
  2. 在硬件上实现了AES圆函数。这使调用方能够决定模式I,例如CTR与CBC对GCM等。最后我检查了AESNI包括sha1和sha2,但没有任何ECDSA、ECDH、EdDSA或RSA。硬件可以实现任何这些,然而,并不是所有的功能在硬件中都有显著的加速,因此使用硬件是首选的。
票数 5
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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