零知识证明|1.什么是同态隐藏?

零知识证明允许证明者在不泄露秘密的情况下,证实他们知道某个信息。同态隐藏是实现这一目标的关键,它是一种数学函数,满足特定条件,如隐藏原始数据、保持加法关系等。通过模p加法和模p乘法,我们可以构建同态隐藏函数,用于在保护敏感数据的同时验证其正确性。在本文中,我们探讨了如何使用同态隐藏函数进行零知识证明,并通过实例展示了其实现过程。
摘要由CSDN通过智能技术生成

所谓零知识证明,指的是在不泄露秘密的前提下,证明我知道这个秘密

举个简单例子,假设我一个月工资2000,我老婆一个月工资3000。我不会把这两个数字透露给你,但是我可以告诉你,我俩每个月的工资加起来是5000。你可以通过某种方式验证我俩的工资加起来确实是5000,但是你没办法反推出来我每个月的工资是多少,我老婆每个月工资是多少。

要做到这一点,需要引入一个概念,叫做同态隐藏。这需要一些数论的知识,不过别担心,我也没有学过数论,所以我会尽可能用简单的语言来解释这个概念。

我们把上面那个问题用数学语言描述一下:已知两个数 x x x y y y,需要在不泄漏这两个数的前提下,证明 x + y = 5 x+y=5 x+y=5

要实现这一点,我们需要引入一个同态隐藏函数 E ( x ) E(x) E(x),该函数满足下面3个条件:

  • 知道 E ( x ) E(x) E(x)的值,没法反推出 x x x的值。这个很容易理解,如果能反推的话,秘密就暴露了
  • 如果 x ≠ y x \neq y x̸=y,那么 E ( x ) ≠ E ( y ) E(x) \neq E(y) E(x)̸=E(y)。也就是说,这是一个单射,或者叫一一映射
  • 如果知道了 E ( x ) E(x) E(x) E ( y ) E(y) E(y),就可以算出 E ( x + y ) E(x+y) E(x+y)。举个例子: E ( x + y ) = E ( x ) ⋅ E ( y ) E(x+y)=E(x) \cdot E(y) E(x+y)=E(x)E(y)

如果找到了这个同态隐藏函数,问题就简单了:我把 E ( x ) E(x) E(x) E ( y ) E(y) E(y)的值告诉你,你用它们算出 E ( x + y ) E(x+y) E(x+y),然后判断一下是不是等于 E ( 5 ) E(5) E(5)就行了。也就是说,把验证 x + y = 5 x+y=5 x+y=5转化成了验证 E ( x + y ) = E ( 5 ) E(x+y)=E(5) E(x+y)=E(5)

这个同态隐藏函数,用普通的加减乘除运算是没法实现的,我们需要引入2个新的运算。

1.模p加法

p可以是任意整数,不过为了获得一些特殊性质,p一般取一个素数,比如7。

所谓模p加法,就是加完之后对p取模(除以p取余数)。比如下面的例子:

x x x 0 1 2 3 4 5 6
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值