【问题标题】:Cryptographic API vs manually implemented algorithm [closed]加密 API 与手动实现的算法 [关闭]
【发布时间】:2017-03-19 18:22:40
【问题描述】:

我尝试在互联网上进行搜索,但找不到任何东西。 所以问题是:什么更好用?操作系统提供加密 API 或手动实现/库提供的算法?

我知道,当 CPU 在 OS 系统调用后进入内核模式时,它会消耗大量的 CPU 周期,但另一方面我知道 OS 可以使用硬件加速相关的密码学。那么现实世界的情况是怎样的呢?是否值得使用 OS Cryptographic API?

例如,我从事的项目使用 CRC32 和 MD5 算法。

编辑:我的主要目标是选择最快的方法,次要目标是了解所有利弊。

【问题讨论】:

  • CRC 不是密码学。哈希是密码学的一个方面。
  • @olaf ,Linux 和 Windows 都在其 crypto api 中提供 md5 和 crc 功能。
  • 取决于什么是“最好的”。外部提供的库/操作系统可以有后门。自己的实现可能(将)有错误。
  • @Inline:那么,CRC 必须是密码学!那么所有的CS书一定是错的!请注意,CRC 不适合作为针对 inteional 修改的完整性检查。它可以很容易地重新计算。
  • @Olaf ,我在这个问题中仅使用“API”来使用单词密码学。我并不是说散列函数是密码学作为科学的一部分。我的意思是 Windows 和 Linux 在它们的加密 API 中实现了 crc 和 md5 函数。是误会。如果问题令人困惑,请帮助我纠正我的问题。

标签: c linux windows optimization cryptoapi


【解决方案1】:

MD5 可能随处可见。 CRC32 非常简单(而不是真正的密码学),您可以直接在应用程序中包含或实现它。

Windows 加密 API 支持multiple providers,默认提供程序可能在用户模式下完全实现,而无需切换到内核模式。 PRng 和 AES 加密可能在硬件中实现。

你的目标是什么?速度?没有后门?晦涩的算法?

【讨论】:

  • 我编辑了问题为您添加了答案。谢谢你的帮助。
【解决方案2】:

TLS 有硬件加速器,但主要用于公钥加密。除非你有专门的比特币挖矿硬件,否则哈希将在用户端和软件中完成。使用最方便的。

【讨论】:

  • 硬件中的加密支持在硬件加密引擎的 CPU 指令集中非常常见。例如 Intel CPU 指令和具有硬件加密引擎的 iPhone。
猜你喜欢
  • 1970-01-01
  • 2011-08-20
  • 2011-04-19
  • 1970-01-01
  • 2014-08-26
  • 1970-01-01
  • 1970-01-01
  • 2011-10-03
  • 1970-01-01
相关资源
最近更新 更多