2010-01-27 56 views
2

我想知道是否可以使用skein而不是MD5或SHA1进行文件完整性检查?使用Skein进行文件完整性检查

真的比SHA1和MD5更好还是更快?

更新:

关于你的反应。实际上,我希望对OSSEC等主机IDS使用更快的算法(例如,可以每10分钟执行一次文件完整性检查),以降低主机上的负载并节省资源。

所以,我有两个选择:

  1. 新算法中
  2. 提高SHA1或MD5。

您能否解释哪种方式可以实现并更好?

回答

1

回复最后一个问题:作为SHA-3竞赛的参赛者,它应该是,比SHA-2好得多,更不用说SHA-1了。

(甚至不提MD5:它已经坏了,你不应该在任何新的代码中使用它。)

+2

注意,如果OP只是想保护随机错误文件的完整性(不涉及恶意用户),MD5将工作得很好,如将任何校验(如CRC-32,这是多大对了,你必须要用于工作的工具:比那些) – 2010-01-27 18:37:10

+0

@BlueRaja更快要么你想防篡改(再使用SHA-2或更高),或损坏检测(在这种情况下CRC-32是非常好的)。在这两种情况下,MD5都非常有用。 :-P – 2010-01-27 18:42:09

+1

实际上CRC-32对于大文件有很多冲突。从这个角度来看,MD5可能是一个不错的方式来保持你的头部进入沙子,以避免随机碰撞。 (不只是随机误差。) – 2011-11-06 15:13:32

1

绞纱的汇交要求每处理一个字节6.1个时钟周期的最大性能,假设64 bit汇编实现并使用Skein-512。这在2.4 GHz内核上低于400 MB/s,这非常好。然而,我自己的MD5 C代码在同一台机器上可以达到400 MB/s以上的速度:Skein并不比MD5快。但也不慢。

绞纱,但是,是速度不够快:你并不真正需要的散列函数比硬盘快很多,但更快的代码可能会释放一些CPU的其他线程运行(但是,话又说回来,一个2.4 GHz PC通常有几个核心)。我个人建议使用已建立的标准(SHA-256或SHA-512,如果你想保守 - 但对于某些任务,MD5甚至MD4都足够好了,MD4是真的是快,其紧凑的代码使用非常小的L1缓存)。当“SHA-3”正式被选中时,将是时候使用它并将其部署到生产环境中。

+0

THX您response.Actually我倒要使用主机的IDS像OSSEC更快的算法(这也许执行文件完整性检查,例如每10分钟),把低负载在主机上,并采取少所以我有两个选择:1)新算法2)改进SHA1或MD5。请你解释哪种方式是可行的和更好的? – Steward 2010-01-28 06:38:32

+1

千万不要考虑改变散列算法的内容。这只会彻底摧毁安全。关于优化实现,那里已经有很好的(和免费的)实现,并且很难做得更好。 在纯粹的性能上,你会遇到比MD5更好的效果,它在RAM中非常快速和紧凑; MD4甚至更快更紧凑,但在涉及繁重磁盘访问的情况下,我有些怀疑它会产生任何可衡量的差异。如果OSSEC推荐MD5然后使用它。 – 2010-01-28 13:39:40