Identity-Based-Encryption

在無證書基於身份的加密中選擇秘密值

  • September 16, 2016

在無證書的基於身份的密碼學中,選擇秘密值

$$ x_i \in Z_p $$並聲明個人使用者的公鑰,例如$$ Pub_i=g^{x_i} $$ $ g $ 是公共參數。

我認為在選擇秘密值時會有某種衝突。

在安全證明中,他們假設秘密值不允許攻擊者使用。
夠了嗎?

我認為在選擇秘密值時會有某種衝突。

可能會發生什麼樣的碰撞(實際發生的可能性很大)?

如果 $ p $ 是順序 $ g $ , 然後 $ Pub_i = Pub_j $ 除非 $ x_i = x_j $ . 而如果 $ p $ 很大(例如,至少 256 位),我們假設 $ x_i, x_j $ 被隨機且獨立地選擇(即,任何一個參與者都不允許在另一個參與者的任何秘密處達到峰值,並且他們都具有良好的熵),那麼 $ x_i = x_j $ 正在發生 $ < 2^{-256} $ ,也就是說,令人難以置信的可能性不大。

事實上,如果我們有 70 億參與者,每個人選擇一個 $ x_n $ 隨機,存在兩個不同參與者選擇相同值的機率為 $ < 2^{-191} $ ,仍然令人難以置信的可能性。

這確實假設每個參與者的熵是好的;在安全證明中往往會被忽略,但在實施系統時不能被忽略。

在安全證明中,他們假設秘密值不允許攻擊者使用。夠了嗎?

他們還假設(並且他們應該明確表示)離散對數問題很困難。也就是說,給定值 $ g^{x_i} $ ,很難恢復 $ x_i $ . 如果該組足夠小,某人將有很大的機率獲得 $ x_i $ ,通過猜測(和計算 $ g^{x} $ 驗證),嗯,這意味著離散對數問題將是易於處理的。

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