從已知的 64 位散列函式建構 256 位散列函式
有 64 位通用或幾乎通用的雜湊函式,如 CLHASH 或 VHASH:
https://arxiv.org/pdf/1503.03465.pdf
https://eprint.iacr.org/2007/338.pdf
我們可以通過連接這個散列函式(通過為每個函式使用不同的密鑰)來創建安全的 256 位散列函式嗎?與 ECHO 雜湊的作者基於 AES 所做的類似(我發現的唯一一篇關於此的論文是“ASIC 評估 ECHO 雜湊函式”)。
事實上,VHASH 系列已被提議用於加密應用,特別是消息認證 VMAC:
https://en.wikipedia.org/wiki/VMAC
我認為 CLHASH 背後也有同樣的想法,否則 2015 年提出 64 位雜湊函式的意義何在?但是這些函式似乎非常有效,那麼為什麼作者沒有更進一步,沒有提出 256 位雜湊函式(尤其是並行計算),這可能符合現代安全標準?
我們可以通過連接這個散列函式(通過為每個函式使用不同的密鑰)來創建安全的 256 位散列函式嗎?
聽起來不太可能;問題是通用散列函式和加密散列函式是非常不同的東西。
通用散列函式是鍵控函式;它的定義屬性是,對於任何兩條不同的消息,通用散列函式將它們映射到相同的輸出,僅用於一小部分鍵。就是這樣 - 這是它需要擁有的唯一屬性。一方面,沒有什麼可以說,對於一個公開的密鑰,它根本就具有任何安全屬性。找到原像可能很簡單。事實上,對於大多數已知的通用散列函式來說,這很容易。
相比之下,加密雜湊函式是一個無密鑰的函式——當有人用特定的原像計算它時,他們可以看到它所發生的一切——也就是說,如果裡面有一個通用雜湊,他們就知道該通用雜湊的密鑰。這會使我們從通用散列(至少作為通用散列)中獲得的任何屬性無效。
現在,可能會有具有附加屬性的通用散列 - 這些可能會在加密散列中找到用途。然而,僅僅作為一個通用雜湊是不夠的。