Discrete-Logarithm

如何證明產品中離散對數的知識?

  • October 23, 2015

定義

假設我有兩個大的安全素數[Math Processing Error] $ p $ 和[Math Processing Error] $ q $ , 和一個合數 $ N=pq $ . 我有[Math Processing Error] $ G $ ,一個大的循環子群[Math Processing Error] $ \mathbb{Z}^{*}{N} $ ;[Math Processing Error] $ g $ 和[Math Processing Error] $ h $ 是生成器[Math Processing Error] $ G $ . 我承諾[Math Processing Error] $ x $ 使用隨機值[Math Processing Error] $ r\in{{R}\mathbb{Z}_{N}} $ 作為[Math Processing Error] $ (x,r)=g^{x}h^{r}\mod{N} $ .

我有一組有效消息[Math Processing Error] $ S={p_{1},p_{2},…,p_{m}} $ , 和一條消息[Math Processing Error] $ x\in{S} $ . 套裝[Math Processing Error] $ S $ 是公開的,而[Math Processing Error] $ x $ 是私人的。

問題

我必須證明兩個秘密整數的知識[Math Processing Error] $ \mu $ 和[Math Processing Error] $ \nu $ :

[Math Processing Error]$$ \mu=(\prod^{m}{j=1}{p{j}})/x $$ $$ \nu=\mu r $$使用承諾:$$ C=g^{\prod^{m}{j=1}{p{j}}}h^{\nu} $$我知道這應該可以使用兩個 Schnorr 簽名的組合來完成。我只需要一些關於如何利用這兩個簽名來證明知識的指導 $ \mu $ 和 $ \nu $ . 到目前為止我所擁有的

鑑於定義 $ \mu $ 我有 $ C=g^{\mu x}h^{\nu} $ . 我也知道我可以表達 $ g^{\mu x}=h^{-\nu}C $ 和 $ h^{\nu}=g^{-(\mu x)}C $ ,所以這給了我

$$ \mu x=\log_{g}(h^{-\nu}C)=\log_{g}(h^{-1})\log_{g}(\nu)+\log_{g}(C) $$ $$ \nu=\log_{h}(g^{-(\mu x)}C)=\log_{h}(g^{-1})(\log_{h}(\mu)+\log_{h}(x))+\log_{h}(C) $$我真的不知道從哪裡開始,因為我似乎讓它變得更複雜而不是更少……

$$ (x,r) = g^x h^r $$ $$ C = (x,r)^ \mu $$ 現在你有兩個標準的知識證明。

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