為什么要使用消息認證碼(MAC)而非對稱密鑰?


##問題: 看了消息認證碼的介紹后,小麗心想“如果用對稱密碼將消息加密后再發送的話,是不是就不需要消息認證碼了呢?”原因有下: 1.對稱密碼的密文只有使用和加密時相同的密鑰才能正確解密; 2.如果解密密鑰和加密密鑰不同,解密之后也只能得到“看上去隨機的雜亂消息”; 3.因此,只要解密之后得到的明文是正確的,就可以知道這條消息室由持有相同密鑰的發送者加密的; 4.也就是說,只用對稱密碼就可以實現和消息認證碼相同的功能。 請問小麗的想法正確嗎? ##解答: 小麗的想法部分正確,但並非完全正確。 的確,使用對稱密碼來對消息進行認證是可能的,實際上也存在這樣的方法,但是這樣的方法是有局限性的。 假設我們要發送的明文就是隨機的比特序列,我們將明文用對稱密碼加密之后發送出去,當接受者收到密文並進行解密時,明文看上去就是一串隨機的比特序列。那么這段密文是來自正確的接受者呢?還是來自不正確的發送者呢(偽裝的發送者)呢? “正確的發送者用正確的密鑰加密的隨機比特序列”和“不正確的發送者用錯誤的密鑰加密的任意比特序列”,兩者在解密后看上去都是隨機的比特序列,因此無法對它們進行區別。 小麗的思考過程1~4中,3中的“解密之后得到的明文是正確的”這一點是有問題的。要判斷“解密之后得到的明文是正確的”,就需要明文具備某種特定的結構(如存在頭尾,或者是像英文文章一樣存在概率偏向)。 注:這里的“看起來隨機”是指對解密者而言。舉一個例子:商品的數量為255,小麗對明文FF加密后得到L8F31,小明解密后得到FE,但小明並不能確認FE就是被篡改過后得到的明文,**因為這個結果也在明文空間里**。 如果使用消息認證碼,即便發送的是隨機比特序列,我們也能夠正確地對消息進行認證。 本質上來說,**就是將消息完整性的認證從預定結構的正確性判斷抽象到消息認證碼單項散列函數的抗碰撞的性質上**,從而使得消息本身可以使用任意結構;同時可認證性使用共享密鑰保證。

題目來自:
《圖解密碼技術》第三版
https://zh.wikipedia.org/wiki/訊息鑑別碼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM