KKRT16协议如下:
参数 : 参数{: } 参数:Alice输入 X ; X; X;Bob输入 Y , Y, Y,其中 ∣ X ∣ = ∣ Y ∣ = n . s |X|=|Y|=n.\:s ∣X∣=∣Y∣=n.s是Cuckoo哈希的存储大小的上界。
-
Bob指定随机哈希函数 h 1 , h 2 , h 3 : h_1,h_2,h_3: h1,h2,h3: ${ 0, 1} ^{* }\to [ 1.2n] $并将它们告诉Alice。
-
Bob使用Cuckoo哈希将他的 Y Y Y的各条数据分配到 1.2 n 1.2n 1.2n个箱中。让Bob为每个 y y y跟踪 z ( y ) z(y) z(y),即:如果 z ( y ) = ⊥ z(y) = \bot z(y)=⊥,则 y y y在存储中;否则 y y y在箱 z ( y ) z(y) z(y)中,这个过程中以任意顺序安排存储中的项目。(Cuckoo hashing分为两个存储表,一个为Cuchoo哈希表,一个称为堆存储容器,本协议采用的这样的容器,之后的文章有采用无堆存储容器的Cuckoo hashing)
Bob按以下方式选择OPRF输入:对于 i ∈ [ 1.2 n ] i\in[1.2n] i∈[1.2n],如果箱 # i \#i #i为空,则将 r i r_i ri设置为虚值;否则,如果 y y y在箱 # i \#i #i中,则将 r i = y ∥ z ( y ) r_i=y\|z(y) ri=y∥z(y)。对于 i ∈ [ s ] i\in [ s] i∈[s],如果存储中位置 i i i是 y y y,则将 r i = y r_i=y ri=y;否则将 r i r_i ri设置为一个虚值,由此生成 ( r i ) ({r_i}) (ri).
-
各方调用 1.2 n + s 1.2n+s 1.2n+s个OPRF实例(BaRK-OPRF),其中Bob作为接收方,输入为 ( r 1 , … , r 1.2 n + s ) (r_1,\ldots,r_{1.2n+s}) (r1,…,r1.2n+s)。Alice拥有密钥 ( k 1 , … , k 1.2 n + s ) (k_1,\ldots,k_{1.2n+s}) (k1,…,k1.2n+s),Bob接收所有 i i i的 F ( k i , r i ) F(k_i,r_i) F(ki,ri)。
-
Alice计算(F即OPRF):
H i = { F ( k h i ( x ) , x ∥ i ) ∣ x ∈ X } , f o r i ∈ { 1 , 2 , 3 } S j = { F ( k 1.2 n + j , x ) ∣ x ∈ X } , f o r j ∈ { 1 , … , s } \begin{array}{l}{H_{i}=\{F(k_{h_{i}(x)},x\|i)\mid x\in X\},\mathrm{~for~}i\in\{1,2,3\}}\\{S_{j}=\{F(k_{1.2n+j},x)\mid x\in X\},\mathrm{~for~}j\in\{1,\ldots,s\}}\end{array} Hi={F(khi(x),x∥i)∣x∈X}, for i∈{1,2,3}Sj={F(k1.2n+j,x)∣x∈X}, for j∈{1,…,s}
并将每个集合的一个排列发送给Bob。
-
Bob初始化一个空集 O \mathcal{O} O,对于 y ∈ Y y\in Y y∈Y执行以下操作:如果 z ( y ) = ⊥ z(y) = \bot z(y)=⊥且 y y y在存储中的位置为 j j j且 F ( k 1.2 n + j , y ) ∈ S j F(k_{1.2n+j}, y) \in S_j F(k1.2n+j,y)∈Sj,则Bob将 y y y添加到 O \mathcal{O} O。如果 z ( y ) ≠ ⊥ z(y) \neq\bot z(y)=⊥且 F ( k h z ( y ) ( y ) , y ∥ z ( y ) ) ∈ H z ( y ) F(k_{h_{z(y)}(y)}, y\|z(y)) \in H_{z(y)} F(khz(y)(y),y∥z(y))∈Hz(y),则Bob将 y y y添加到 O \mathcal{O} O。
-
Bob将 O \mathcal{O} O发送给Alice,双方输出 O \mathcal{O} O。
文章描述了KKRT16协议如何利用Cuckoo哈希算法进行数据分配和OPRF(OptimalPublicRandomFunction)的运用,以确保安全的通信和数据存储。Bob使用随机哈希函数和OPRF实例与Alice进行加密交互,存储和验证数据在堆存储容器中的位置。
1031

被折叠的 条评论
为什么被折叠?



