密码学系列 - KKRT PSI

文章讨论了计算速度最快的PSI协议KKRTPSI,它基于IKNPOTE和PSSZ协议优化,强调了m-related-key-PRFsecurity功能在协议安全中的作用。KKRT协议详细描述了如何使用布谷鸟哈希和加密技巧来实现高效的数据交换。
摘要由CSDN通过智能技术生成

KKRT PSI是目前计算速度最快的PSI协议,当然是以高通信复杂度为代价的。若实际场景中对通信复杂度限制较大,建议采用ECDH PSI。

KKRT PSI主要借鉴了两个协议:IKNP OTE和PSSZ PSI。IKNP OTE及其变体实现了高效的OT extension协议,详见上一篇文章。PSSZ是一种高效的PSI协议,KKRT在其基础上实现了性能提升。

介绍KKRT前,先介绍一个关键函数。KKRT原论文定义了m-related-key-PRF security函数,对于函数 F((k*,k), r),有一个固定seed k* 和一个变换seed k,若F为m-related-key-PRF security,则给定一组 F ( ( k ∗ , k i ) , r i ) , i ∈ { 1 , 2 , . . . m } {F((k *, k_i), r_i) }, i\in\{1,2,...m\} F((k,ki),ri),i{1,2,...m},则该组F值和一组随机值 { z 1 , . . . , z m } \{z_1,...,z_m\} {z1,...,zm}很难区分。原论文证明了如下函数也具备m-related-key-PRF security:

F ( ( ( C , s ) , ( q j , j ) ) ,   r ) = H ( j ∣ ∣ q j ⊕ [ C ( r ) ⋅ s ] ) F(((C,s),(q_j,j)),\ r)=H(j||q_j \oplus[C(r)\cdot s]) F(((C,s),(qj,j)), r)=H(j∣∣qj[C(r)s])

该函数用在了IKNP变体中。可将 ( C , s ) (C,s) (C,s)看做k*, ( q j , j ) (q_j, j) (qj,j)看做k,该函数的安全特性保证了KKRT协议的安全。KKRT协议描述如下:

准备

  • Alice和Bob分别持有数据集X和Y, ∣ X ∣ = ∣ Y ∣ = n |X|=|Y|=n X=Y=n
  • 布谷鸟哈希的储藏区(stash)大小为 s s s

步骤

1、Bob指定三个哈希函数 h 1 , h 2 , h 3 : { 0 , 1 } ∗ → [ 1.2 n ] {h_1, h_2, h_3}: \{0,1\}^* \to [1.2n] h1,h2,h3:{0,1}[1.2n] 并将哈希函数告知Alice( h i h_i hi的值域为[0, 1.2n)之间的数值)
2、Bob利用布谷鸟哈希将Y中元素映射到 1.2n 个箱子中,并用 z ( y ) z(y) z(y)记录映射元素 y y y使用的哈希编号{1,2,3}。若 z ( y ) z(y) z(y)不存在,则 y y y被存放在了储藏区中,否则 y y y被存放在编号为 h z ( y ) ( y ) h_{z(y)}(y) hz(y)(y)的箱中
3、Bob设置选择向量(类比IKNP中的向量r),向量 r r r 的长度为 1.2 n + s 1.2n+s 1.2n+s

  • 对于第 i i i 个箱子,若箱中存放了元素 y y y,则 r i = y ∣ ∣ z ( y ) r_i=y||z(y) ri=y∣∣z(y),否则 r i r_i ri 取一个无意义值(dummy value)
  • 对于储藏区(stash),若位置 i i i 有元素 y y y,则 r 1.2 n + i = y r_{1.2n+i}=y r1.2n+i=y,否则 r i r_i ri 取一个无意义值(dummy value)

4、Bob作为接收方,用 r = { r 1 , . . r 1.2 n + s } r=\{r_1,..r_{1.2n+s}\} r={r1,..r1.2n+s}发起OTE实现 1.2 n + s 1.2n+s 1.2n+s个OT,Bob同时会得到矩阵 t \bold t t,Alice作为发送方,会得到向量 s s s,矩阵 q \bold q q,将 ( q i , i ) (q_i,i) (qi,i)做为 k i k_i ki,则Alice可以得到 { k 1 , k 2 . . . k 1.2 n + s } \{k_1,k_2...k_{1.2n+s}\} {k1,k2...k1.2n+s}
5、Alice计算如下集合

  • H i = { F ( k h i ( x ) , x ∣ ∣ i )   ∣   x ∈ X } , f o r   i ∈ { 1 , 2 , 3 } H_i=\{F(k_{h_i(x)},x||i) \ |\ x\in X\}, for\ i\in\{1,2,3\} Hi={F(khi(x),x∣∣i)  xX},for i{1,2,3}
  • S j = { F ( k 1.2 n + j , x )   ∣   x ∈ X } ,   f o r   j ∈ { 1 , 2 , . . . , s } S_j=\{F(k_{1.2n+j},x) \ |\ x\in X\},\ for\ j\in\{1,2,...,s\} Sj={F(k1.2n+j,x)  xX}, for j{1,2,...,s}
    再将 { H 1 , H 2 , H 3 ,   S 1 , S 2 , . . . S s } \{H_1, H_2, H_3, \ S_1, S_2,...S_s\} {H1,H2,H3, S1,S2,...Ss} 打乱顺序后发送给Bob(共 3 n + s n 3n+sn 3n+sn个元素)

6、Bob对于Y中元素做如下计算:先设置交集 O O O为空

  • z ( y ) z(y) z(y)不为空,则 y y y 必在某个箱中,计算 F = F ( k h z ( y ) ( y ) , y ∣ ∣ z ( y ) ) F=F(k_{h_{z(y)}(y)}, y||z(y)) F=F(khz(y)(y),y∣∣z(y)), 若 F F F H z ( y ) H_{z(y)} Hz(y)中,则将 y y y 加入到 O O O
  • z ( y ) z(y) z(y)为空,则 y y y 必在储藏区中,若 y y y 在储藏区位置为 j j j,则计算 S = F ( k 1.2 n + j , y ) S=F(k_{1.2n+j}, y) S=F(k1.2n+j,y),若 S S S S j S_j Sj中,则将 y y y 加入到 O O O
    Bob有能力计算F(.),是因为IKNP变体的一个重要特性:对于接收方的 r j r_j rj 满足 t j = q j ⊕ [ C ( r j ) ⋅ s ] t_j=q_j\oplus [C(r_j)\cdot s] tj=qj[C(rj)s],即Bob可利用矩阵 t \bold t t计算F(.)

7、Bob将交集发送给Alice,双方都得到交集 O O O
在这里插入图片描述

参考资料:https://eprint.iacr.org/2016/799.pdf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值