Public-Key

如何評估新的公鑰密碼系統的功效

  • October 31, 2022

假設我有一個新的公鑰或密鑰交換協議。我如何客觀地評估它,以確定它是否值得與更廣泛的社區分享?每當開發密碼系統時,重要的是要問“誰在乎?”,看看它是否解決了目前系統面臨的任何挑戰,但不清楚究竟如何回答“誰在乎?” 問題。

例如,是否存在“唯一性門檻值”,如果您的新公鑰密碼系統超過該門檻值,那麼它是否值得分享?是否有任何標準測試可以讓系統通過以測試其功效,從而測試其價值?如果它的安全性降低到已知的難題怎麼辦?速度和密鑰大小在多大程度上很重要,您將如何測試您的公鑰密碼系統的這些數量是否“好”?

假設我有一個新的公鑰或密鑰交換協議。我如何客觀地評估它,以確定它是否值得與更廣泛的社區分享?

任何人都應該問的第一個問題是“為什麼我們認為它是安全的?”。在你解決這個問題之前,它的表現如何並不重要。

如果它的安全性降低到已知的難題怎麼辦?

那會很好(假設這些都是經過深入研究的難題;如果難題是您發明的東西,但也不是破壞交易的東西,那就沒那麼好了)。另一方面,對於公鑰加密,你需要證明,給定公鑰和大量密文,如果你能提取出任何關於明文的資訊,你就可以解決難題(即使你讓攻擊者可以查詢他自己的密文)。對於密鑰交換,它並不那麼廣泛(您可以假設,對於密鑰交換,您只使用一次公鑰並將其丟棄),但您仍然需要證明找到共享密鑰仍然等同於難題.

並且,在這一點上,您的難題是否是“抗量子”是很有趣的,也就是說,即使攻擊者擁有與密碼學相關的量子電腦,它是否仍然不可行)——如果我們不關心量子抗性,那麼坦率地說,很難擊敗 ECC。

假設上述情況(並且您可以設置安全參數以使難題無法解決),那麼進一步的問題就會發揮作用:

  • 以前提出的公鑰加密或密鑰交換算法使用的難題是什麼?如果它基於(比如說)理想晶格,那麼你需要證明它比現在的更好;如果是基於沒用過的東西,或者只是輕用過的東西,要求不那麼嚴格,因為你不需要“更好”,“可用”可能就足夠了,因為有話要說關於依靠獨立的難題。
  • 公鑰大小是多少?密文大小?私鑰大小不太重要,但並非完全不相關。
  • 它在公鑰生成、公鑰加密和公鑰解密中如何執行?
  • 它是否非常適合小型設備(例如 IOT 或 HSM)?它需要多少記憶體來執行其內部計算?防禦側通道攻擊(定時、基於記憶體、DPA 式攻擊、故障攻擊)有多容易?
  • 它是否非常適合需要高性能的大型設備(例如 TLS 伺服器)?
  • 它是否具有附加功能,例如以門檻值方式工作(多方共同共享私鑰,以及 $ t $ 他們中的哪些人需要在不披露其私鑰份額的情況下進行解密)?

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