Mac
這個 MAC 方案安全嗎?
假設我們有一個計算安全的消息認證程式碼方案(Gen、Tag、Ver)。
讓 $ Tag’_k(m):= $ 前半部分 $ Tag_k(m) $ . 假設標籤的範圍是 $ n $ 位。
(Gen, Tag’, Ver) 安全嗎?
無法使用破壞(Gen,Tag’,Ver)的有效對手來建構破壞(Gen,Tag,Ver)的有效對手,因為前者仍然必須猜測最後一個 $ \frac{n}{2} $ 位。所以我想說它不安全。
然而我想說它是安全的,因為我想不出一種可以有效破解的算法(Gen、Tag’、Ver)。
它一般來說並不安全,但一般來說也不是不安全的。
例如,您可以通過將常量數據連接到安全 MAC 來獲得安全的 MAC 算法。 $ Tag_k(m) = M_k(m)||0^n $ 是一個安全的 MAC 如果 $ M $ 是。顯然,如果前半部分是安全的 MAC $ n = |M_k(m)| $ .
另一方面,顛倒上面常量和非常量部分的順序,你會得到一個 MAC 方案,其中前半部分是非常不安全的。
如果您的安全 MAC 算法基於 PRF,您可以採用前半部分並擁有一個安全的 MAC,但更容易隨機猜測。(因為安全 PRF 是安全 MAC,而截斷的 PRF 仍然是 PRF。)例如,HMAC 和 CMAC 等許多 MAC 算法都可以因此而被截斷。