2

在維基百科UMAC,https://en.wikipedia.org/wiki/UMAC,它指出:爲什麼在UMAC(通用消息認證碼)算法中進行散列之後進行安全性所需的加密?

結果摘要或然後指紋被加密隱藏所使用的散列函數的 身份。

此外,在本文中,http://web.cs.ucdavis.edu/~rogaway/papers/umac-full.pdf,它指出:

甲消息由與共享散列函數散列 ,然後進行加密所得到的散列(使用加密密鑰)驗證。

我的問題是,如果設定的散列函數H是足夠大的,和散列桶|B|的數量足夠大,我們爲什麼需要加密 - 是不是祕密的散列是否足夠安全?

例如,在最壞的情況下,每個客戶端都發送相同的短內容,如「x」。如果我們散列到32個字節,並且我們的散列取決於一個32字節的密鑰,並且散列表現出統一的屬性,那麼即使沒有加密,攻擊者又有什麼希望知道任何單個客戶端的祕密散列密鑰?

而且,如果攻擊者不知道密鑰,攻擊者怎麼會希望惡意更改消息內容?

謝謝!

+0

不幸的是,通用的散列函數族是我從來沒有學過的東西。但是,如果我現在有時間研究它,我會查看UMAC概念基於的舊的[Wegman和Carter論文](http://www.sciencedirect.com/science/article/pii/0022000081900337) 。 – TheGreatContini

回答

0

我不知道很多關於UMAC明確,但:

  • 具有特定的散列函數rainbow table擊敗你穿上了信息任何加密所以不是具有單一的攻擊面,你現在有兩個
  • 隨着計算能力隨着時間的推移而增加,您將越來越可能找出消息的明文,因此如果您將MAC解密,PFS(https://en.wikipedia.org/wiki/Forward_secrecy)將永遠不可能。除此之外,如果你可以從MAC值中找出單個純文本消息,那麼你可以通過獲取關於PRNG,其他數據的上下文,IV的信息,指數地接近解密剩下的消息,等等
相關問題