2012-08-26 56 views
0

考慮以下情況:Hash函數和完整性

  1. 我有一個字符串s和散列函數H生成散列 「H」。
  2. 我發送s和h到另一個。
  3. 他把s和h送回給我。
  4. 在s和h收到時,我執行h'= H(s),並將它與接收到的h進行比較,如果它們相同,表示在步驟3中接收到的si與我在步驟2中發送的完全相同。

這是正確的嗎?

如果某人有h和s但沒有H散列函數,他能發現(或創建)H函數嗎?

感謝

回答

1
  1. 是,如果哈希是一樣的,兩個字符串是相同的,同一個哈希衝突可能是個例外。

  2. 在一般情況下,不可能從字符串及其散列值反向設計散列函數。顯然,如果散列函數是常見的(SHA1),那麼對於「攻擊者」來說,嘗試不同的標準散列算法並查看使用哪一個算法是微不足道的。但是這可以通過散列s以及一些祕密來解決。