Signature
為什麼 MAC 通常是確定性的,而數字簽名結構是隨機的?
事實是我不太確定我的問題陳述是否正確,但是我所知道的所有 MAC 結構(例如 CBC-MAC、CMAC、HMAC)都是確定性的,而許多數字簽名的結構是隨機的(例如 DSA、ECDSA , RSASSA-PSS)。我也知道 RSASSA-PKCS1.5 是確定性的,但仍被認為是安全的(儘管不推薦支持 RSASSA-PSS)。
- 為什麼大多數 MAC 是確定性的,而大多數數字簽名方案是隨機的?是否有我根本不知道的隨機 MAC,它們是否比確定性方法有任何優勢?MAC 和數字簽名之間是否存在一些根本區別,這使得隨機化對簽名更可取(但仍然不是必需的)?
- 如果隨機化器的輸出與隨機無法區分,MAC 或數字簽名的隨機結構是否會嚴重破壞,或者它們是否都只是簡化為仍然安全的確定性方案?
一般來說,避免隨機方案,特別是在 MAC 中的一個基本原理是,這種方案中的隨機往往會增加密碼的大小或減小有效負載的大小。一個例子是帶有消息恢復的ISO/IEC 9796-2 RSA 簽名中的方案 2,其中隨機/鹽欄位的大小與可從簽名中恢復的數據量直接相反。
此外,隨機方案通常會打開一個“潛意識通道”後門,在實施的黑盒測試中無法檢測到該後門,並且可能會漏出敏感資訊。例如,一個 RSA(SSA-PSS 或 ISO/IEC 9796-2 方案 2)簽名黑盒可能會洩露私鑰的一個因子,用隨機 IV 加密的 CBC 和一個應該是隨機的欄位中的後門密鑰。
鑑於 MAC 似乎不需要隨機化以確保安全,以上理由足以說明大多數 MAC 在其定義中是確定性的。然而請注意,在實踐中,MACed 消息本身通常包含一個隨機組件,或/和(為了抵抗對實現的側通道攻擊)密鑰可能是隨機會話密鑰,實際上是隨機化 MAC。
如果隨機數字簽名方案中的隨機源不好,通常會削弱該方案。最好的例子可能是
$$ EC $$DSA 和 PS3 簽名慘敗,請參閱此,包括評論 #2。