4-KCA验证The Knowledge of Coefficient Test and Assumption

KCA验证The Knowledge of Coefficient Test and Assumption

2019.12.06 胡振远

在多项式盲证中,Alice在未知的情况下,通过计算,确实能够验证Bob拥有,是的解。因此Alice可以向外界宣告,Bob是对的。但是如果Alice不诚实,不计算就直接向外宣告Bob是对的,或者宣告Bob是错的。那么Alice这种行为如何保证呢。我们需要用到KCA做检验。

KCA检验原理

我们可以这么理解KCA检验的原理,假设Bob秘密的持有一个数据,现在Alice除了需要公布,还需要公布。那么Bob就能根据和计算这两者的相关性。

由于Alice不知道,如果Alice没有诚实地计算和,就无法伪造一份。

那么Bob如何把秘密地传输给Alice,而且Alice还可以在不知道的情况下,计算出 和呢。

我们定义是群的生成元,表示个相加。如果,都是中的元素,且,我们称是一个对。

按一下流程

  1. Bob首先在某个中选择一个,从中选择,然后计算
  2. Bob发送这个给Alice
  3. Alice在中选择一个,计算
  4. 由于,因此也是一个对。

使用对进行KCA检验

在Bob向Alice公布的同时,我们现在要求Bob同时Alice公布,我们当然希望Bob公布的分别都是一个个的对。

... ...

那怎么验证他们确实都是对呢。

配对函数

配对函数是满足如下定义的函数:

如果要验证对,我们就可以判断如下等式是否成立:

设,


因此是一个对,这样也就验证了Bob公布的两组数据。

KCA检验

回到多项式盲证,为了检验Alice正确的计算了,现在需要Alice再计算一组。由于

=

现在Alice不光要公布的计算结果,同时还需要公布

这样Alice由于不知道,如果不经过诚实地计算,就几乎不可能向Bob公布出来这两组数据,而且这两组数据具有

对的关系。

偏移

更进一步,我们也不希望公布,为此Bob可以挑选偏移

设,

这样由Bob公布的数据将更加进一步得到隐藏,本文在此不再详述。

你可能感兴趣的:(4-KCA验证The Knowledge of Coefficient Test and Assumption)