密码学系列 - PSI随笔

最近在调研PSI协议,突然悟到一点:PSI过程中对明文的编码处理,需要参与方共同参与计算,任何一方不可以有能力单独计算明文的编码结果,否则会发生隐私泄露。
例如,两个参与方的PSI场景,A和B分别有数据 X={x1, x2,…xn}、Y={y1, y2,… ym},最简单直接的想法是,利用哈希算法H进行求交,即A和B分别计算 H(X) = {H(x1), H(x2)… H(xn)} 和 H(Y) = {H(y1), H(y2)… H(ym)},通过对比哈希结果来找到交集。
若A方有其他未参与求交的数据 S={s1, s2,… sk},则可单独计算 H(S) = {H(s1), H(s2)… H(sk)},对比H(S)和H(Y)获得更多的求交结果,从而产生隐私泄露。
再者,ECDH-PSI协议中,ECC的基点为G,A和B分别持有私钥 skA 和 skB,明文 x 的编码为 C(x) = HashToPoint(x)*skA*skB,需要两方用各自私钥分别执行一次编码计算。
该协议不可以简单粗暴地使用 C(x)=(x*G)*skA*skB,因为A只需通过一个交集数据 x,就可计算出 skB*G = C * (skA)^{-1} * x^ {-1},其中(skA)^{-1} 和 x^{-1} 分别为 skA 和 x 的逆元。若A方有其他未参与求交的数据 S={s1, s2,… sk},对于每个si,可单独计算 si 的编码 C(si) = si*skA*(skB*G),则A可以额外获得S和Y的交集数据,产生隐私泄露。

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值