Michael O. Rabin. How to exchange secrets with oblivious transfer. Technical Report TR-81, Aiken Computation Lab, Harvard University, 1981.
Introduction
Alice和Bob分别拥有一个对方想要解密的加密文件,密钥为1 bit秘密$SA\ SB$,因此两人想要交换$SA\ SB$
但是存在问题,如果密钥错误,文件会损坏不能再解密。因此Alice和Bob都想要保证能够正确解密文件
如果Bob给了Alice错误的密钥$S\neq SB$,交换得到了正确的$SA$,这是Alice不希望发生的情况
如果Bob发送一条消息, My secret is S, signed Bob. Alice可以收到$S$后不发给Bob $SA$,这是Bob不希望发生的情况,Alice也可以耍赖 “I gave Bob the password SA and he has not used it; I am willing to reveal it again right now.” 尽管Bob最终能够得到$SA$,Alice已经占据了时间优势
进行归纳,协议的流程总是分为$Alcie \to^{I_i} Bob, Bob \to^{J_i} Alice $,总会存在一个$k$满足Bob可以从$\{I_1,\dots,I_k\}$中得知$SA$,而Alice不能从$\{J_1,\dots,J_{k-1}\}$中得知$SB$,因此需要设计一种协议保证:
当Bob得知$SA$时,Alice一定可以得知$SB$
假设:当Bob发送$SA$去读文件时,Alice能够知道这一情况;反之亦然
Exchange of Secrets Protocol
假设Alice和Bob目前分别有了公钥$K_A,K_B$可以进行公钥加密与签名。为了简洁,后续的流程中省略了签名
Alice选择两个大素数$p,q$并计算一次性密钥$n_A=pq$,发送给Bob
类似地,Bob选择两个大素数$p_1,q_1$并计算一次性密钥$n_B=p_1q_1$,发送给Alice
Bob随机选$x\leq n_A$,计算$c \equiv x^2 \bmod n_A$,发送$c$给Alice
Alice已知$p,q$,计算出$x_1^2\equiv c \bmod n_A$,发送$x_1$给Bob
- 可能会有四个解$\pm x,\pm y$
- Bob可能作弊,发送自己无法求根的$c$,可能会允许R分解$n$,可以通过添加零知识证明来防御 [GMR85]
Bob计算$gcd(x-x_1,n_A)=d$,有$Pr(d=p\ or\ q)=1/2$
- 如果$x_1\neq \pm x,x_1^2 -x^2\equiv 0 \bmod n_A,(x_1-x)(x_1+x)\equiv0 \bmod n_A$
- 即得知 $p,q$,所以概率$Pr(d=p\ or\ q)=1/2$
Bob同样执行 $3-4$ 步,定义
Bob发送$\varepsilon_B=S_B\oplus v_B$
同样地,Alice发送$\varepsilon_A=S_A\oplus v_A$
Alice将秘密$S_A$放在消息$m_A$中,采用公钥加密$E_{n_A}(m_A)=C$并发送给Bob
- 提供$m_A$的一小段前缀来区分4个根
- 公钥加密算法采用依赖整数分解的算法即可
Bob将秘密$S_B$放在消息$m_B$中,采用公钥加密$E_{n_B}(m_B)=C’$并发送给Bob
证明
定理:任何参与方都不能获得秘密的概率为$1/4$
证明:如果任何参与方在协议正常结束前终止交互,另一方也会停止,两方都无法获得对方的秘密。
不妨设Alice已经发给了Bob$E_{n_A}(m_A)$,Bob成功解密并对比得到$SA$,当Bob尝试使用$SA$进行文件解密时,根据假设,Alice能够得知$v_B=0$,因此Alice能够计算出$S_B=\varepsilon_B \oplus v_B$;Bob发送$E_{n_B}(m_B)$的情况同理;
因此任何参与方都不能获得秘密的概率为两方都不能计算出$p,q,p_1,q_1$的概率,即$(1/2)^2=1/4$
Remark
协议不能迭代执行,考虑当Alice已经知道$SB$,但是直到第二轮结束才查询文件,Bob可能不知道第二轮的$v_A=0$是否成立
可以通过修改OT子协议实现正确率
- 收到$n_A$后,Bob随机选$x,y\leq n_A$,发送$x^2,y^2 \bmod n_A$,收到解$x_1,y_1$后不知道$p,q$的概率为$1/4$
- 协议总的失败率为$(1/4)^2=1/16$
- 但是这种方法存在一个上限,如果$Pr[v_B=0]\to0$,则Alice很可能认为Bob知道p,q,即$Pr[\varepsilon_B=S_B]\to 1$
Future work
- OT子协议在没有假设的前提下也是有效的,是否能找到其他应用场景
- 对EOS协议的假设能否变弱、
- 能否构造永远能终止的EOS,或者有人能证明非零的不终止概率是必要的?