Oblivious PRFs
OPRF protocol
令 F F F是定义在 ( K , X , Y ) (K,X,Y) (K,X,Y)上的带密钥的安全 P R F PRF PRF。协议的双方是发送者(拥有 k k k)和接收者(拥有 x x x),协议有如下性质,
- 接收者可以学习到 y : = F ( k , x ) y:=F(k,x) y:=F(k,x)
- 接收者无法学习到其他点 x ′ ≠ x x'\neq x x′=x的函数值。
- 发送者无法学习到关于 x x x的任何信息。
一种基于CDH的实例
K
=
Z
q
K=Z_q
K=Zq,
G
G
G是生成元为
g
g
g的素数
q
q
q阶循环群。令
F
:
K
×
X
→
Y
F: K \times X \rightarrow Y
F:K×X→Y是如下形式的
P
R
F
PRF
PRF,
F
(
k
,
x
)
:
=
H
′
(
x
,
H
(
x
)
k
)
F(k,x) := H'(x,H(x)^k)
F(k,x):=H′(x,H(x)k)
其中
H
:
X
→
G
H:X \rightarrow G
H:X→G,
H
′
:
X
×
G
→
Y
H': X \times G \rightarrow Y
H′:X×G→Y都是基于
R
O
M
ROM
ROM的Hash函数。
发送者的私钥为 k ← R Z q k \leftarrow_R Z_q k←RZq,公钥为 u = g k ∈ G u=g^k \in G u=gk∈G。接收者要计算点 x ∈ X x \in X x∈X的函数值。协议如下:
- 接收者选择 ρ ← R Z q \ { 0 } \rho \leftarrow_R Z_q \backslash\{0\} ρ←RZq\{0} 和 τ ← R Z q \tau \leftarrow_R Z_q τ←RZq,计算 v ← H ( x ) ρ ⋅ g τ ∈ G v \leftarrow H(x)^\rho \cdot g^\tau \in G v←H(x)ρ⋅gτ∈G,发送 v v v给发送者
- 发送者计算 w ← v k ∈ G w \leftarrow v^k \in G w←vk∈G,发送 w w w给接收者
- 接收者计算 y ← H ′ ( x , ( w ⋅ u − τ ) 1 / ρ ) ∈ Y y \leftarrow H'(x,(w\cdot u^{-\tau})^{1/\rho}) \in Y y←H′(x,(w⋅u−τ)1/ρ)∈Y
安全性:在恶意发送者存在的情况下, τ \tau τ是均匀的导致 v ∈ G v \in G v∈G是均匀的,上述协议是安全的。在恶意接收者存在的情况下,在one more Diffie-Hellman assumption下(敌手学习某些 ( v , w : = v α ) (v,w:=v^\alpha) (v,w:=vα)对,然后挑战者发送一些 v v v,敌手同时正确计算出所有的 w = v α w=v^\alpha w=vα的概率可忽略),上述协议是安全的。
基于OPRF的OT协议
令 F F F是定义在 ( K p r f , [ n ] , K ) (K_{prf},[n],K) (Kprf,[n],K)上的的 P R F PRF PRF,令 Π \Pi Π是计算 F F F的OPRF协议,再令 ( E , D ) (E,D) (E,D)是定义在 ( K , M , C ) (K,M,C) (K,M,C)上的对称加密方案。
发送者拥有 m 1 , ⋯ , m n ∈ M m_1,\cdots,m_n \in M m1,⋯,mn∈M,接收者希望获得 m i m_i mi。OT协议的流程为:
- 发送者选择 k ← R K p r f k \leftarrow_R K_{prf} k←RKprf,自行计算 k i ← F ( k , i ) k_i \leftarrow F(k,i) ki←F(k,i),然后计算 c i ← R E ( k i , m i ) c_i \leftarrow_R E(k_i,m_i) ci←RE(ki,mi),最后发送 C : = ( c 1 , ⋯ , c n ) C:=(c_1,\cdots,c_n) C:=(c1,⋯,cn)给接收者
- 接收者根据索引 i i i,利用协议 Π \Pi Π和发送者交互,计算出 k i = F ( k , i ) k_i = F(k,i) ki=F(k,i),最后输出 m i ← D ( k i , c i ) m_i \leftarrow D(k_i,c_i) mi←D(ki,ci)
上述协议中,发送者只需执行 1 1 1次第一步,接收者可以执行 l l l次第二步来获取至多 l l l个不同的消息。
安全性:在恶意发送者存在的情况下,根据OPRF协议的安全性,发送者无法学习到关于 i i i的任何信息,上述OT协议是安全的。在恶意接收者存在的情况下,根据OPRF协议的安全性,接收者至多解密 l l l个消息(这里 l l l是协议第二步的执行次数),上述OT协议是安全的。