Is MAC enough——關於BB84量子密鑰分發協議(三)

題圖來自 tutorialspoint.com/cryp

關於BB84的前兩篇

玄星:揮之不去的「經典」——關於BB84量子密鑰分發協議(一)zhuanlan.zhihu.com圖標玄星:石子vs光子——關於BB84量子密鑰分發協議(二)zhuanlan.zhihu.com圖標

這篇聊三個話題:

MAC是個什麼?Wegman-Carter MAC是什麼?在BB84里,還能用什麼樣的MAC?

1. MAC是個什麼

密碼學裡所說的MAC的全稱是Message Authentication Code直譯是「消息驗證碼」是用來保護消息完整性的手段之一。MAC不是網站通過手機發送的那個確認支付的code,也不是網卡上用到的media access control。

密碼學裡對MAC的定義請參考

HMAC與MAC演算法在密碼學的區別? - 信息安全

1.1 MAC有什麼用

簡單來說,MAC的作用是給消息(message)打個標籤(tag/code),並讓接收到消息的一方可以自己利用消息標籤來驗證消息本身的完整性(integrity)。MAC和日常生活中,商品的包裝,尤其是食品的包裝類似,一旦消費者(接收方)發現封口(tag)出現破損或者其他異常,那麼這件商品(消息)就會被認為有問題,從而被丟棄(discard/drop)。

MAC與Hash的最大區別是一個秘密的k的引入。k只有參與通信的雙方持有,並不公開。這就使得在安全的情況下,tag只可被持有被保密的k的角色來檢驗(verification)。因此同時,MAC隱含著對MAC生成者,也就是發送方的認證(authentication),認證他是否真的持有k。打個可能不特別貼切的比方,MAC像是只有被擁有同樣秘術的忍者才能打開的封印。

(圖片來自火影忍者 封印札, Sealing Tag)

所以,(二)中提到的由於缺少對消息來源認證導致的問題,可以用MAC來補救

1.2 MAC與數字簽名

MAC 與數字簽名(digital signature)的功能性不同在於,MAC的發送方和接收方都有製造tag的能力,因為雙方都持有對稱密鑰k。但數字簽名中,只有一方可以製造簽名(signature)。因此,MAC無法提供抗抵賴性(non-repudiation), 即第三方無法判斷tag到底是由發送者還是接受者製造的。

但在性能上,由於MAC可以用高速的hash或者block-cipher來構造,所以當不需要non-repudiation的時候,MAC完全可以替代signature作為驗證手段。

另外,MAC與CPA安全的對稱加密方案正確結合後,比如,用encrypt-then-mac這種方式,可以構造出更安全的加密方案。

2. Wegman-Carter MAC (Wegman-Carter Authentication )

sciencedirect.com/scien

這個是由J. L. Carter 和M. N. Wegman在1981年提出的一個消息驗證方案,其基於他們在1979年定義的universal_2函數族。我們在這裡省略universal hash L2的更嚴格數學定義[1],只把它理解為密碼學上的hash, 這樣的話整個方案可以簡化成下面這個樣子。Cryptology ePrint Archive: Report 2018/014

Tag = WC_{k, k}(N,M) = (N,Enc_{k}(N) oplus H_k(M))

其中k和k是兩個不同的密鑰,Enc是個安全的block cipher, H是個安全的帶壓縮的hash。

這個MAC演算法的正確性很容易驗證。持有k和k的一方,收到N, M, Tag後,直接自己計算Tag,然後和收到的內容比較即可。

當k, k保密時,安全性來自於1)block cipher作為PRP和隨機映射不可區分;2)H加上k與帶壓縮的隨機函數不可區分;3) tag偽造成功的概率若大於「可忽略概率」,則意味著不隨機。在D. Boneh的公開課cryptography 1里也提到過這個MAC的安全證明。(Boneh的公開課裡面是叫carter-wegman MAC, 其中H是一個one-time-MAC)

在更嚴苛情況下更嚴謹的證明請參考 eprint.iacr.org/2013/12

3. 在BB84里,還能用什麼樣的MAC

對於所有的安全對稱加密方案,例如block cipher (比如AES)和hash (比如SHA-3),目前為止都沒有高效的量子攻擊演算法。所以純粹由這些演算法組成的MAC, 比如HMAC,也是可以在BB84里使用的。

[1] cs.princeton.edu/course


推薦閱讀:

TAG:密碼學 | 信息安全 | 量子通訊 |