2010-01-27 65 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