Block-Cipher
PRP 與 PRF 有何不同?兩者都可以反轉以獲得相同的輸入
PRP 被稱為雙射函式,這意味著與輸出存在一對一的映射。因此,可以使用解密算法反轉輸出以獲得相同的輸入。
問題是 PRF 與此有何不同。如果它不是雙射的,我們將如何解密消息?
在計數器模式下,據說我們使用的是 PRF 而不是 PRP(與 CBC 不同),即我們沒有使用分組密碼的解密功能。這是什麼意思?無論如何,我們將通過對 IV 計數器和密鑰與密文進行異或來解密消息。那為什麼說我們沒有使用解密功能呢?它與必須具有解密算法的 PRP 有何不同?
實際上,正如您所指出的,PRP 和 PRF 之間的主要區別在於 PRP 必須是雙射的,而 PRF 則不必。這也意味著 PRF 承認衝突,即可能存在密鑰 $ k $ 這樣對於兩個不同的輸入 $ x,x’ $ $ F_k(x)=F_k(x’) $ ,而這對於 PRP 來說是不可能的。
在計數器模式下,據說我們使用的是 PRF 而不是 PRP(與 CBC 不同),即我們沒有使用分組密碼的解密功能。
考慮反模式的另一種方法是考慮使消息失明的密鑰流。然後在接收端,您再現了致盲並揭開了消息。
而對於像 CBC 這樣的其他模式,您實際上是通過您的函式執行您的消息,這意味著您需要有一個雙射才能明確地恢復您的原始消息。