Mac

MAC中的機率多項式時間算法

  • September 18, 2016

根據Wiki 文章,MAC 是機率多項式時間算法的三元組 $ (G, S, V) $ 這樣:

  • G 在輸入 1^n 上給出密鑰 k,其中 n 是安全參數
  • S 在鍵 k 和輸入字元串 x 上輸出一個標籤
  • V 在輸入上輸出“接受”或“拒絕”:鍵 k、字元串 x 和標籤 t。

據我了解,機率多項式時間算法是一種在多項式時間內執行並返回機率的算法。

我真的不明白 G、S 和 V 的輸出如何算作“機率”。他們測量的機率是多少?

據我了解,機率多項式時間算法是一種在多項式時間內執行並返回機率的算法。

可悲的是,沒有機率多項式時間算法是一種在多項式時間內執行的算法,並且可以使用(真正的)隨機性來產生(可能)不確定的結果。

名稱中的“機率”來自於一個事實,即人們只能以一定的機率預測某些結果。例如,一個不接受輸入並模擬擲硬幣的算法就是這樣一種機率算法,因為它不確定(在評估之前)結果是什麼,是正面還是反面?


在具體情況下,只有密鑰生成算法必須是機率性的(即使用隨機性)。

標籤生成算法可以使用隨機性,但也可以決定不使用,例如HMAC是確定性的,而其他 MAC 可能不是。在任何一種情況下,說它們是“機率的”並沒有什麼壞處,並且給了算法更多的自由。

另一方面,驗證算法必須是完全確定的,因為您總是希望正確回答“此標籤在此上下文中是否有效?”的問題。然而,它仍然是一種機率算法,只是碰巧從不使用它允許使用的隨機性。

引用自:https://crypto.stackexchange.com/questions/40059