令 F F F是定义在 ( K , X , Y ) (K,X,Y) (K,X,Y)上的带密钥的安全 P R F PRF PRF。协议的双方是发送者(拥有 k k k)和接收者(拥有 x x x),协议有如下性质,
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的函数值。协议如下:
安全性:在恶意发送者存在的情况下, τ \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α的概率可忽略),上述协议是安全的。
令 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协议的流程为:
上述协议中,发送者只需执行 1 1 1次第一步,接收者可以执行 l l l次第二步来获取至多 l l l个不同的消息。
安全性:在恶意发送者存在的情况下,根据OPRF协议的安全性,发送者无法学习到关于 i i i的任何信息,上述OT协议是安全的。在恶意接收者存在的情况下,根据OPRF协议的安全性,接收者至多解密 l l l个消息(这里 l l l是协议第二步的执行次数),上述OT协议是安全的。