Authentication

經過身份驗證的 DH,哪些協議是安全的?

  • March 31, 2014

我在 SIGMA 論文中讀到 STS + 變體不安全,然後建議將 SIGMA 作為替代品。SIGMA 變體是否仍然被認為是安全的,或者是否有其他一些目前推薦使用的協議?

適馬

SIGMA 論文沒有描述如何實現 SIGMA-I 的“響應消息”。如果它被實現為(例如)[數學處理錯誤] $ B $ [MACKm(“ACK”)數學處理錯誤] [A數學處理錯誤]發送 $ :\operatorname{MAC}{K_m}\hspace{-0.02 in}(\text{“ACK”}): $ 到 $ A $ ,那麼在以下情況下,這實際上不會提供所需的對等感知屬性 $ : B = \text{“ACK”} : $ . 如果 || 表示連接,那麼這可以通過替換來修復 $ \operatorname{MAC}{K_m}\hspace{-0.02 in}(B): $ 和[數學處理錯誤] $ :\operatorname{MAC}{K_m}\hspace{-0.01 in}(00\hspace{.02 in}||\hspace{.02 in}B): $ [MACKm(A)數學處理錯誤] [MACKm(10||A)數學處理錯誤]並更換 $ :\operatorname{MAC}{K_m}\hspace{-0.02 in}(A): $ 和 $ :\operatorname{MAC}{K_m}\hspace{-0.02 in}(10\hspace{.02 in}||\hspace{.02 in}A) $ 並將響應消息實現為 $ :\operatorname{MAC}{K_m}\hspace{-0.02 in}(110); $ .

它是安全的 $ A $ 發送加密的“應用層”消息 $ K_s $ 連同它在密鑰協商協議中的最後一條消息,只要記住此時, $ A $ 不能確定[數學處理錯誤] $ B $ [A數學處理錯誤] [數學處理錯誤] [A數學處理錯誤] [A數學處理錯誤]意識到 $ A $ 最近啟動了他們之間的關鍵協議協議。 $ : $ 通過我描述的修復,人們還可以指定如果 $ A $ 這樣做,那麼 $ A $ 也會送 $ :\operatorname{MAC}{K_m}\hspace{-0.01 in}(01\hspace{.02 in}||\hspace{.02 in}A): $ 代替 $ :\operatorname{MAC}{K_m}\hspace{-0.02 in}(10\hspace{.02 in}||\hspace{.02 in}A); $ .

與此類似但獨立於此,可以指定如果 $ B $ 發送應用層消息及其響應消息,然後 $ B $ 將發送 $ :\operatorname{MAC}{K_m}\hspace{-0.02 in}(111): $ 代替[Math Processing Error] $ :\operatorname{MAC}{K_m}\hspace{-0.02 in}(110); $ .

在對預設消息進行 MAC 處理後,當事人可以“改變主意”;一方在對替代消息進行 MAC 處理後“改變主意”不會損害安全性,但會導致另一方拒絕。(我在上一句中提到的 MAC 是使用[Math Processing Error] $ K_m $ 作為密鑰,而不是可能涉及應用層數據的認證加密的任何 MAC。)

帕克

密碼驗證密鑰協議(PAKE),或者使用公共參考字元串(例如這個),或者最好在普通模型中(這個)。這些論文中的第二篇可能是標準 PKI 身份驗證的最佳替代方案。(此外,除非它是“增強的” ,否則PAKE 是可拒絕的。)可以要求經過身份驗證的密鑰協商協議滿足可拒絕性的預設定義。這可以只用 PKI 來完成,儘管我在搜尋後很驚訝我找不到這樣的協議的一個很好的例子。[數學處理錯誤] $ : $ [數學處理錯誤]可以通過將密鑰對用於簽名來製作這樣的協議,但是用提供簽名知識的並發統計 ZK 參數來代替發送簽名。 $ : $ 人們可能想要進行計算假設並選擇簽名方案並擴展公鑰,以便使用 4 輪協議(其第一條消息是公鑰的一部分)在 3 輪中使用統計 WI實現階段 2。

使用知識進行密鑰註冊

( https://www.google.com/q=“Key+Registration+with+Knowledge” )

KRK $ ;;; $ = $ ;;; $ 公鑰基礎設施 $ : $ + $ : $ 每一方都知道與其關聯的每個公鑰的有效私鑰。這允許比使用 PKI 和公共參考字元串組合實現的可否認性版本顯著更強,儘管它們對最強版本的“構造”,即帶有罪名中止的密鑰交換,使用了我找不到任何構造的原語的任何地方。

我懷疑一個人可以從

$$ semantically secure PKE with perfect completeness $$加上非送出的語義安全 PKE。[Math Processing Error] $ : $ 令 H 是一個計算均勻的m ( 2,2) 獨立散列族,具有很大的範圍。[Math Processing Error] $ : $ 公鑰將有兩個完美完整性公鑰加密密鑰,一個對位 0 的完美綁定承諾,以及對不是H 中的雜湊 h 但與那些雜湊具有相同長度的東西的完美綁定承諾;私鑰將有兩個私鑰解密密鑰,第二個承諾中承諾的值,以及這兩個承諾中的每一個的開放。[Math Processing Error] $ : $ 在本段的其餘部分中,“主加密密鑰”將是參與目前執行 KEIA 的兩方的四個完美完整性公共加密密鑰(每一方持有兩個),對於任何一方,該方通過使用主加密密鑰加密該事物,“等加密”事物,採樣[Math Processing Error] $ v $ 均勻地從共域[Math Processing Error] $ H $ 的雜湊,發送密文和[Math Processing Error] $ v $ 給對方,然後用特殊的 sound s igma 協議向對方證明加密是相同的消息對方公鑰中的第一個承諾實際上是對方公鑰中的一個 1第二個承諾公鑰實際上是一個雜湊 $ :h\hspace{-0.02 in}\in\hspace{-0.015 in}H: $ 這樣 $ h $ 評價為$$ a structure indicating which ciphertext corresponds to which main encryption key $$ [Math Processing Error] $ : $ 取值[Math Processing Error] $ v $ . 要從這些假設中得到一個 11 輪的 KEIA 協議,請將DREnc的三個實例替換為相等加密,並在底部從左到右添加一個箭頭用於發送[Math Processing Error] $ n_R $ . $ : $ 每一方必須延遲檢查另一方發送的密文的解密一致性,直到相應的 sigma 協議完成,並且如果(sigma 協議的)驗證者不接受證明(包括是否超時),則驗證者不得表明明文是否一致。

對於該協議,商定的密鑰與未送出的 PKE具有完全相同的可否認性,無論可能有多大。 $ : $ 儘管這會導致更多輪的通信,但可以通過將 sigma 協議替換為具有更強知識提取保證的證明來增加協議對可能違反 KRK 第二部分而不違反 PKI 部分的對手的離線否認能力。

還有一些協議假設當事方能夠檢查他們的“短認證字元串”的相等性,這種方式不允許對手說服他們中的任何一個字元串是相等的,而這些字元串實際上既不存在也不相等。目前推薦使用的這種類型的協議(由我以外的人)是MANA IVZRTP。 $ : $ 但是,我還沒有找到對這種協議的任何描述,足以讓我相信它只使用一個短的身份驗證字元串,而不是一個短的身份驗證字元串。 $ \textit{ed} $ 字元串或公共參考字元串或隨機預言。

我相信一個令人滿意的協議可以通過以下方式建構:每一方生成一個簽名密鑰對並將驗證密鑰發送給另一方,Alice 使用這對驗證密鑰作為標籤送出一個隨機字元串,其方式是是不可延展的 wrt 替換,Bob 發送一個隨機字元串,Alice 取消送出,從這兩個隨機字元串的 xor 中計算出短認證字元串,然後雙方使用他們的簽名密鑰對進行標準認證密鑰協商。(對於這些類型的協議,可能應該讓各方每次使用相同的簽名密鑰對,以便可以實現公鑰固定。 $ : $ 但是,如果不這樣做,則可以使用一次性簽名密鑰對而不是標準簽名密鑰對。)

引用自:https://crypto.stackexchange.com/questions/8955