Identity-Based-Encryption

在基於身份的加密中生成相同私鑰的可能性

  • June 12, 2016

在 IBE 方案的私鑰生成中,私鑰的生成方式如下: $ SK_{ID}=s.H(ID) $

假設兩台伺服器使用相同的曲線域參數。如果伺服器 A 上的 PKG 生成私鑰 $ SK_{ID}=s.H(ID) $

伺服器 B 上的 PKG 生成私鑰 $ SK_{ID}=b.H(ID) $

對於同一個ID。

如果伺服器超過 100000 台,是否有可能生成相同的私鑰?

我假設 $ s $ 和 $ b $ 是兩個 IBE 伺服器的主要主密鑰組件。

如果 $ s=b $ , 然後 $ SK_{ID,s}=SK_{ID,b} $ 假設曲線參數和散列函式 $ H $ 是相同的。現在,問題是兩個 IBE 伺服器生成相同主密鑰組件的機率是多少。這取決於實際方案和定義它的欄位。

在 IBE 中,主要使用基於配對的組。我們通常有 $ s,b\in \mathbb{Z}_{r} $ 曲線定義在哪裡 $ \mathbb{F}_q $ . 例如, $ r $ 在 PBC 中設置為 A 型配對的 solinas 素數。A 型配對的預設值為 $ |q|=512 $ 和 $ |r|=160 $ . 所以,至少有兩個的機率 $ n $ 生成相同主密鑰的伺服器本質上是生日問題,可以這樣計算:

$$ \begin{eqnarray} p(n) & = & 1 - \frac{r!}{r^n\left(r-n\right)!}\ & = & 1 - \frac{\prod^r_{i=r-n+1}i}{r^n}\ & = & 1 - \prod^r_{i=r-n+1}\frac{i}{r} \end{eqnarray} $$ 機率大概是 $ 3\cdot 10^{-39} $ 在你的情況下。這是我用來計算它的 groovy 腳本。結果是 $ 3\cdot 10^{-42} $ 在假設 $ |r|=170 $ .

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