Key-Exchange

PQ 密鑰交換算法何時適合與長期靜態密鑰一起使用?

  • July 15, 2021

我看了一下Cloudflare Circl,因為我很好奇 Go 中實現了哪些 Post-Quantum 算法,可以用來交換密鑰。

我讀到這條評論說,與 CSIDH 相比,SIDH 僅適用於臨時密鑰交換。

問題 1:

因此,我想知道,後量子算法必須具備哪些特徵才能適合創建用於密鑰交換的長期靜態密鑰(如 RSA 或 ECC)?

問題 2:

為什麼 SIDH 只適用於臨時密鑰交換而不適用於 CSIDH?

還有呢

  • 賽克
  • 凱伯
  • 經典麥凱利斯
  • FrodoKEM?

還是每個算法的答案都如此具體,以至於只能由專家根據密碼分析的目前狀態來確定?

以下是情況摘要:

Q1。一些密鑰交換系統不能與靜態密鑰一起使用的主要原因是選擇密文攻擊。一般的主題是惡意客戶端將操縱的密鑰交換消息發送到伺服器,這允許它們在每個此類查詢中提取有關伺服器靜態密鑰的部分資訊。

也許最著名的例子是對(實施不當)ECDH 的無效曲線攻擊:在這裡,攻擊者發送一個點作為他的公鑰,該點實際上不在正確的曲線上,然後偽造密鑰交換的結果會洩露資訊關於密鑰(例如它的餘數模一個小素數)。現在在 ECDH 中,可以通過在密鑰交換中處理公鑰之前驗證公鑰來解決此問題(例如,檢查給定點是否位於預期曲線上),因此如果此漏洞存在於密碼庫。

不幸的是,幾乎所有用於建構後量子密鑰交換的範例都存在與此類似的潛在資訊洩漏;例如,請參見此處此處此處(第 2.4 節),更不幸的是,避免此問題通常不像ECDH 那樣容易。例如,可以證明區分操縱的 SIDH 密鑰和真實生成的密鑰與破壞方案一樣困難(我認為類似的論點適用於基於格和程式碼的構造,但我不太熟悉這些)。

主流後量子密鑰交換系統使用的解決方法是Fujisaki-Okamoto 變換(或其變體之一)。基本上,客戶端使用新協商的密鑰材料發送的第一件事是對其密鑰進行加密用於密鑰交換。然後,伺服器重新計算與該密鑰對應的公鑰,如果生成的公鑰不等於之前從客戶端收到的公鑰,它會立即中止連接。因此,從不誠實客戶的角度來看,在所有情況下的行為都是相同的——連接斷開——因此無法提取任何資訊。顯然,雖然這使伺服器能夠使用靜態密鑰對,但客戶端仍然需要每次都生成一個新的臨時密鑰對,因為伺服器要學習秘密。換句話說,從 FO 變換獲得的原語是 CCA 安全的KEM

總而言之,您的問題的答案是:如果不可能進行選擇密文攻擊,則可以重用密鑰,方法是應用類似 FO 的變換或推理系統不易受攻擊。

**Q2。**CSIDH 類似於 ECDH,因為它可以有效地區分有效和無效的公鑰(有點有趣的是,ECDH 和 CSIDH 的驗證過程幾乎相同)。因此,操縱的公鑰不是問題,我們可以使用帶有靜態密鑰的“vanilla”CSIDH 單向組操作。

相比之下,您列出的所有其他密鑰交換方案都包含 FO 轉換的某些變體以實現 CCA 安全性,這意味著一方可以使用靜態密鑰對,但另一方不能。一般來說,任何密碼系統的預設假設應該是選擇密文攻擊是一個問題,除非它們被排除在外。

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