天天看點

第三十個知識點:大緻簡述密鑰協商中的BR安全定義。

第三十個知識點:大緻簡述密鑰協商中的BR安全定義。

在兩方之間建密鑰共享是一件密碼學中古老的問題。就算隻考慮定義也比标準加密困難的多。盡管古典的Diffie-Hellman協定在1976年思路解決了這個問題,但是它沒有認證機制。就是說密鑰能和任何人協商。這會導緻中間人攻擊。

為了阻止這樣或者其它的攻擊,我們需要一個安全定義。當定義一個密鑰交換的安全性有兩種主要的方法。一個是基于符号模型的,一個是基于計算模型的。在經典的論文BAN logic之後,符号模型在90年代開始流行,形式化的技術被用于分析和模組化。符号模型擅長定義攻擊,但是很難定義所有種類攻擊的底層邏輯,是以該模型中的分析不能提供很好的安全性保證,但是可以半自動使用定理證明。

在他們開創性的1993年論文中,Bellare和Rogaway在一個計算模型中為經過身份驗證的密鑰交換建立了一個基于博弈的安全定義,類似于用于加密的IND-CPA和IND-CCA定義。在這個模型中,密碼原語并不是不可破解的,而是通過計算對手在安全遊戲中的“優勢”來量化其成功機率。我們希望包含的對手的主要特征是所有的通信都在對手的控制之下:它們可以讀取、修改、延遲和重播消息。它們還可以與其他方同時運作協定的任意數量的執行個體。安全博弈背後的直覺是,對手讓一方接受約定密鑰的唯一方法是從真正的協定運作中轉發誠實的消息,在這種情況下,他們不可能學到任何新東西。

安全博弈由許多不同的問詢組成,攻擊者可以使用這些問詢。主要的三個問詢就是corruption oracle,允許對手控制標明的一方;key registration oracle,任何標明的使用者都能注冊一個公鑰;message oracle,傳遞消息主要的問詢。注意,消息不是在參與者之間直接發送的,相反,對手使用message oracle來發送消息。

message oracle是一個允許攻擊者和多方建立協定會話的主要問詢(目标是建立一個短期的密鑰共享),然後發送消息。當進行問詢,他們能夠進行下面的動作:

  • 在兩個使用者之間開始一個新會話。
  • 獲得任何一個中止會話的密鑰。
  • 在一個存在的會話中發送消息,并得到回應。

安全博弈遵循一個real-or-random範例,通過選擇一個秘密的bit---\(b\)。如果\(b=0\),那麼攻擊者被給一個随機的密鑰,否則它獲得一個真實的密鑰。在和問詢互動後,攻擊者選擇一個已經中止的會話,這個會話的兩方都沒有被破壞,同時密鑰也沒有洩露,攻擊者獲得這個會話的密鑰。如果攻擊者猜對了\(b\),就赢了。

如果任何攻擊者的政策的機率都不比随機猜測好,那麼就說這個協定是一個安全可認證的密鑰交換協定。當然,上面的提綱隻是一個粗略的草圖,論文中還有很多細節。