Aes
CBC-MAC 密鑰可以添加到密文中嗎?
我使用 AES CBC 和 CBC-MAC 來加密一些東西。我為 CBC 生成一個密鑰,為 CBC-MAC 生成一個不同的密鑰。
- 第二個密鑰(用於 CBC-MAC)是否需要保密?
- 如何將這樣的密鑰與密文連接起來?通過在最後包含它?
從您的問題的聲音來看,您似乎對 CBC-MAC 密鑰和 CBC-MAC 標籤之間有些混淆。
CBC-MAC 算法獲取消息(在這種情況下,很可能是密文)和一個密鑰;它輸出一個標籤(可以是公共的)。CBC-MAC 的安全屬性是不知道密鑰的人不能生成有效的消息、標籤對,即使他看到大量的有效消息、標籤對(當然,他是不允許建議消息的) ,給他的標籤對)。實際上,即使允許他指定消息,它也有效。
這個想法是,如果接收者 (Bob) 收到一條消息和驗證的標籤對,這意味著發送者 (Alice) 必須生成它。畢竟,只有知道密鑰的人才能生成這樣的一對,而只有 Alice 和 Bob 兩個人(而 Bob 知道他永遠不會生成這樣的一對,所以一定是 Alice 發送的)。
考慮到這一點,您的問題:
第二個密鑰(用於 CBC-MAC)是否需要保密?
絕對地; 如果攻擊者得到了那個密鑰,那麼所有的安全賭注都被取消了。他可以輕鬆地為他選擇的任何消息生成有效的 MAC 標籤。
如何將這樣的密鑰與密文連接起來?通過在最後連接它?
不,您不會發送帶有密文的密鑰;它需要保密。另一方面,您可以發送帶有密文的*標籤;*在末尾連接標籤是一種常見的方法。