揭秘Rabin提出的不经意传输(Oblivious Transfer)技术:秘密交换的奇妙之道

不经意传输(Oblivious Transfer Protocol ,OT)

1 Rabin 1981,The EOS(Exchange of Secrets) Protocol

1.1 假设

假设Alice拥有公钥 K A K_A KA、私钥 S K A SK_A SKA和Bob拥有公钥 K B K_B KB、私钥 S K B SK_B SKB,这将用于加密和数字签名。Alice和Bob之间传送的消息都使用私钥签名。另外,Alice拥有秘密值 S A S_A SA,Bob拥有秘密值 S B S_B SB,不失一般性,假设秘密值都为单个bit。 S B S_B SB 是Alice想要访问某个文件的密码 (称为:Alice的文件),而 S A S_A SA 则是Bob的文件。

1.2 步骤

(1)Alice选择两个大质数 p p p q q q并创建一个一次性密钥 n A = p ⋅ q n_A = p\cdot q nA=pq,并发送 n A n_A nA给Bob。

(2)Bob随机选择一个 x ≤ n A x \le n_A xnA,并计算 c = x 2   m o d   n A c=x^2\ mod\ n_A c=x2 mod nA。然后,给Alice发送 E K B ( x ) E_{K_B}(x) EKB(x) c c c E K B ( x ) E_{K_B}(x) EKB(x)即使用公钥 K B K_B KB x x x进行加密的密文, c c c x x x m o d   n A mod \ n_A mod nA下的平方根。

(3)Alice利用 p p p q q q n A n_A nA计算 x 1 2 = c   m o d   n A x_1^2=c\ mod\ n_A x12=c mod nA得到 x 1 x_1 x1。然后,发送 x 1 x_1 x1给Bob。

(4)Bob计算 ( x − x 1 , n A ) (x-x_1, n_A) (xx1,nA)的最大公因数 d d d d d d 1 2 \frac{1}{2} 21的概率是 p p p或者 q q q。也就是说,Bob有 1 2 \frac{1}{2} 21的概率可以知道因数分解 n a = p ⋅ q n_a=p \cdot q na=pq。但是,Alice并不知道Bob的 x x x的真实值,所以也不知道Bob是否知道 n A n_A nA的分解。(为什么 d d d 1 2 \frac{1}{2} 21的概率是 p p p或者 q q q见1.6.1节)

以上这种传输信息的模式,即发送者不知道接受者是否接收到信息的模式,称为不经意传输(oblivious transfer, OT)。

(5)定义:
v B = { 0 i f ( x − x 1 , n A ) = p   o r   q , 1 o t h e r w i s e v_B = \left\{ \begin{array}{lr} 0 & if (x-x_1,n_A)=p\ or\ q, \\ 1& otherwise \end{array} \right. vB={01if(xx1,nA)=p or q,otherwise
因此,当 v B = 0 v_B=0 vB=0时当且仅当在上述不经意传输后,Bob知道了 n A n_A nA的因数分解。

Bob计算 ϵ B = S B ⊕ v B \epsilon_B=S_B\oplus v_B ϵB=SBvB并发送给Alice。

(6)Alice将她的秘密值 S A S_A SA作为中心比特放在一条随机消息 m A m_A mA中。然后,使用任何需要因数 p p p q q q的公钥系统将 m A m_A mA加密,即 d A = E n A ( m A ) d_A=E_{n_A} (m_A) dA=EnA(mA),并发送给Bob。

同理,Alice作为接受者,Bob作为发送者,Bob收到 ϵ A \epsilon_A ϵA,Alice收到 d B d_B dB

1.3 定理

以上协议执行,双方无法交换秘密值的概率为 1 4 \frac{1}{4} 41。具体解释如下:

Alice有 1 2 \frac{1}{2} 21的概率可以获得 n B n_B nB的因数,Bob也有 1 2 \frac{1}{2} 21的概率获得 n A n_A nA的因数。

有以下四种情况:

第一,双方都不能获得相应一次性密钥的因数,故无法解密获得随机消息,也因此无法获得秘密值。

第二,Alice知道 n B n_B nB的因数,而Bob不知道 n A n_A nA的因数。因此,Alice可以解密获得随机消息 m B m_B mB并因此获得秘密值 S B S_B SB。随后,Alice将使用该秘密访问文件。Bob得知文件被访问,清楚Alice获得了 n B n_B nB的因数,故 ϵ A = S A ⊕ v A = S A ⊕ 0 = S A \epsilon_A=S_A \oplus v_A=S_A \oplus 0 = S_A ϵA=SAvA=SA0=SA。则Bob也获得了秘密值。

第三,Bob知道 n A n_A nA的因数,Alice不知道 n B n_B nB的因数,与二同理,最终双方可以交换秘密值。

第四,双方都获得了相应一次性密钥的因数,获得了秘密值。

1.4 安全性

(1)这一协议适用于半诚实模型,若在Alice或者Bob其中一方是恶意的,则协议无法运行。

在这里,半诚实是指协议参与方会遵守协议的执行,但是对其他方的数据好奇,想推断知道更多的信息;而恶意是指协议参与方可能不遵循协议的执行。比如说:Alice是恶意的,发送 ϵ A \epsilon_A ϵA m A m_A mA并不包含秘密值,则Bob永远无法读取自己的文件。

(2)如果协议未实现秘密交换,多轮执行该程序是不可能的。

假设协议多轮执行,一个参与者,比如Alice,可能在第一轮之后就获得了秘密值 S B S_B SB,但故意在第二轮之后才访问她的文件。Bob在这两轮中都没有获得 n A n_A nA,也就没有获得秘密值 S A S_A SA。Alice在第二轮结束后访问文件,Bob无法得知是第一轮 v A = 0 v_A=0 vA=0还是第二轮,因此可能无法访问文件。

1.5 改进

对协议进行修改,在Bob从Alice处收到 n A n_A nA后,Bob将选择 x , y ≤ n A x,y \le n_A x,ynA,并发送 x 2   m o d   n A x^2\ mod\ n_A x2 mod nA y 2   m o d   n A y^2\ mod\ n_A y2 mod nA给Alice,而Alice发送 x 1   m o d   n A x_1\ mod\ n_A x1 mod nA y 1   m o d   n A y_1\ mod\ n_A y1 mod nA给Bob。协议其余部分不变。

修改后,Bob将有 3 4 \frac{3}{4} 43的概率获得 n A = p ⋅ q n_A=p \cdot q nA=pq。( 3 4 \frac{3}{4} 43如何求得见1.6.2节)

Alice从Bob处收到 n B n_B nB同理。

综上,该协议不能实现秘密交换而终止协议的概率为 1 16 \frac{1}{16} 161

注意:这里的改善存在一个限制,超过该限制协议的增强将会失效。解释如下:

当经过协议的改进得到 P r [ v B = 1 ] ∼ 1 32 , 000 Pr[v_B=1]\sim\frac{1}{32,000} Pr[vB=1]32,0001时,有:
P r [ ϵ B = S B ] = P r [ ϵ B = S B ∣ v B = 0 ] ⋅ P r [ v B = 0 ] + P r [ ϵ B = S B ∣ v B = 1 ] ⋅ P r [ v B = 1 ] P r [ ϵ B = S B ] = 1 ⋅ ( 1 − 1 32 , 000 ) + 0 = 1 − 1 32 , 000 Pr[\epsilon _B=S_B]= Pr[\epsilon _B=S_B | v_B=0]\cdot Pr[v_B=0] +Pr[\epsilon _B=S_B | v_B=1]\cdot Pr[v_B=1] \\ Pr[\epsilon _B=S_B]= 1\cdot (1-\frac{1}{32,000})+0=1-\frac{1}{32,000} Pr[ϵB=SB]=Pr[ϵB=SBvB=0]Pr[vB=0]+Pr[ϵB=SBvB=1]Pr[vB=1]Pr[ϵB=SB]=1(132,0001)+0=132,0001
备注:原论文中是 P r [ v B = 0 ] ∼ 1 32 , 000 Pr[v_B=0]\sim\frac{1}{32,000} Pr[vB=0]32,0001,个人认为是笔误。
因此,改进到一定程度, ϵ B \epsilon _B ϵB有很大概率是 S B S_B SB,Alice可以使用 ϵ B \epsilon _B ϵB直接访问自己的文件,而不继续执行协议。

1.6 附录

1.6.1 为什么 d d d 1 2 \frac{1}{2} 21的概率是 p p p或者 q q q

(1)对于Alice:

Alice已知 n A = p ⋅ q n_A=p \cdot q nA=pq和Bob发送来的 c c c,求该同余式 c = x 1 2   m o d   n A c=x_1^2\ mod\ n_A c=x12 mod nA可转化为求:
x 1 2 = c   m o d   p x 1 2 = c   m o d   q x_1^2 = c\ mod\ p \\ x_1^2 = c\ mod\ q\\ x12=c mod px12=c mod q
c c c p p p q q q的二次剩余。

构造等式获得一次同余方程组:
r 2 = x 1 2 = c   m o d   p ⇒ r = x 1 = c   m o d   p s 2 = x 1 2 = c   m o d   q ⇒ s = x 1 = c   m o d   q r^2 = x_1^2 = c\ mod\ p \Rightarrow r = x_1 = \sqrt{c}\ mod\ p\\ s^2 = x_1^2 = c\ mod\ q \Rightarrow s = x_1 = \sqrt{c}\ mod\ q\\ r2=x12=c mod pr=x1=c  mod ps2=x12=c mod qs=x1=c  mod q
由欧拉准则可知:对于奇质数 p p p

a a a是模 p p p的二次剩余的充要条件为: a p − 1 2 ≡ 1   m o d   p a^{\frac{p-1}{2}} \equiv 1\ mod \ p a2p11 mod p

a a a是模 p p p的非二次剩余的充要条件为: a p − 1 2 ≡ − 1   m o d   p a^{\frac{p-1}{2}} \equiv -1\ mod \ p a2p11 mod p

本文选取很大的质数 p p p q q q,故一定是奇质数。因此,有:
c p − 1 2 ≡ 1   m o d   p c^{\frac{p-1}{2}}\equiv 1\ mod\ p c2p11 mod p
代入同余方程可得:
r 2 = c = c ⋅ c p − 1 2 = c p + 1 2 = ( c p + 1 4 ) 2   m o d   p r^2=c=c \cdot c^{\frac{p-1}{2}}=c^{\frac{p+1}{2}}=(c^{\frac{p+1}{4}})^2\ mod\ p r2=c=cc2p1=c2p+1=(c4p+1)2 mod p
因此:
r = ± c p + 1 4   m o d   p r=\pm c^{\frac{p+1}{4}}\ mod\ p r=±c4p+1 mod p
同理,可得:
s = ± c p + 1 4   m o d   q s=\pm c^{\frac{p+1}{4}}\ mod\ q s=±c4p+1 mod q
不妨设 k = c p + 1 4 k=c^{\frac{p+1}{4}} k=c4p+1

r = ± k   m o d   p r = \pm k \ mod\ p r=±k mod p s = ± k   m o d   q s=\pm k\ mod\ q s=±k mod q

将其 r r r s s s代入同余方程组
x 1 = r   m o d   p x 1 = s   m o d   q x_1 = r\ mod\ p\\ x_1 = s\ mod\ q\\ x1=r mod px1=s mod q
得到四种情况:

第一, x 1 = + k   m o d   p x_1=+k\ mod\ p x1=+k mod p x 1 = + k   m o d   q x_1=+k\ mod\ q x1=+k mod q

第二, x 1 = − k   m o d   p x_1=-k\ mod\ p x1=k mod p x 1 = − k   m o d   q x_1=-k\ mod\ q x1=k mod q

第三, x 1 = + k   m o d   p x_1=+k\ mod\ p x1=+k mod p x 1 = − k   m o d   q x_1=-k\ mod\ q x1=k mod q

第四, x 1 = − k   m o d   p x_1=-k\ mod\ p x1=k mod p x 1 = + k   m o d   q x_1=+k\ mod\ q x1=+k mod q

使用中国剩余定理求解同余方程组,得 x 1   m o d   n A x_1\ mod\ n_A x1 mod nA并发送给Bob。

(2)对于Bob:

d = g c d ( x − x 1 , n A ) d = gcd(x-x_1, n_A) d=gcd(xx1,nA)(gcd为求最大公因数),则有:
d = g c d ( x − x 1 , n A ) = g c d ( x − x 1 , p ⋅ q ) d = gcd(x-x_1, n_A)=gcd(x-x_1, p \cdot q) d=gcd(xx1,nA)=gcd(xx1,pq)
引入一个定义:对于 0 ≤ y 1 , y 2 < n = p ⋅ q 0 \le y_1,y_2<n=p \cdot q 0y1,y2<n=pq y 1 ∼ y 2 y_1\sim y_2 y1y2表示为 y 1 2 = y 2 2 m o d    n y_1^2=y_2^2\mod n y12=y22modn
y 2 = r   m o d   p y_2=r\ mod\ p y2=r mod p y 2 = s   m o d   q y_2 = s \ mod\ q y2=s mod q,那么有 y 1 = ± r   m o d   p y_1=\pm r\ mod\ p y1=±r mod p y 1 = ± s   m o d   q y_1=\pm s\ mod\ q y1=±s mod q,即 y 1 = ± y 2   m o d   p y_1=\pm y_2\ mod\ p y1=±y2 mod p y 1 = ± y 2   m o d   q y_1=\pm y_2\ mod\ q y1=±y2 mod q

显然,在 m o d   n A mod\ n_A mod nA下, x ∼ x 1 x\sim x_1 xx1,所以有以下四种情况:

第一, x = x 1   m o d   p x=x_1\ mod\ p x=x1 mod p x = x 1   m o d   q x=x_1\ mod\ q x=x1 mod q

第二, x = − x 1   m o d   p x=-x_1\ mod\ p x=x1 mod p x = − x 1   m o d   q x=-x_1\ mod\ q x=x1 mod q

第三, x = x 1   m o d   p x=x_1\ mod\ p x=x1 mod p x = − x 1   m o d   q x=-x_1\ mod\ q x=x1 mod q

第四, x = − x 1   m o d   p x=-x_1\ mod\ p x=x1 mod p x = x 1   m o d   q x=x_1\ mod\ q x=x1 mod q

对于第一种情况,知道: x − x 1 = 0   m o d   p x-x_1=0\ mod\ p xx1=0 mod p x − x 1 = 0   m o d   q x-x_1=0\ mod\ q xx1=0 mod q。也就是说 x − x 1 x-x_1 xx1是由若干个 p p p q q q的乘积组成,因此 d = p ⋅ q d=p\cdot q d=pq

对于第二种情况,知道: x − x 1   m o d   p = − 2 x 1   m o d   p x-x_1\ mod\ p=-2x_1\ mod\ p xx1 mod p=2x1 mod p x − x 1   m o d   q = − 2 x 1   m o d   q x-x_1\ mod\ q=-2x_1\ mod\ q xx1 mod q=2x1 mod q。因为 x 1 x_1 x1 ± k   m o d   p   o r   q \pm k \ mod\ p\ or\ q ±k mod p or q下的值,则 x 1 ≥ 0 x_1 \ge 0 x10,因此 − 2 x 1 -2x_1 2x1 m o d   p mod\ p mod p m o d   q mod\ q mod q下一定小于 p p p q q q,不含有 p p p或者 q q q的倍数。

对于第三种情况,知道: x − x 1 = 0   m o d   p x-x_1=0\ mod\ p xx1=0 mod p。也就是说, x − x 1 x-x_1 xx1是若干个 p p p的乘积组成,因此 d = p d=p d=p

对于第四种情况,知道: x − x 1 = 0   m o d   q x-x_1=0\ mod\ q xx1=0 mod q。也就是说, x − x 1 x-x_1 xx1是若干个 q q q的乘积组成,因此 d = q d=q d=q

综上所述, d d d 1 2 \frac{1}{2} 21的概率是 p p p或者 q q q

1.6.2 3 4 \frac{3}{4} 43如何求得?

对于Bob来说,引入 x x x y y y后,得知 n A = p ⋅ q n_A=p \cdot q nA=pq的选择增多,利用排列组合的思想,有:
4 + 4 + 2 + 2 4 × 4 = 3 4 \frac{4+4+2+2}{4\times 4}=\frac{3}{4} 4×44+4+2+2=43
进一步解释, d 1 = g c d ( x − x 1 , n A ) d_1 = gcd(x-x_1, n_A) d1=gcd(xx1,nA)或者 d 2 = g c d ( y − y 1 , n A ) d_2=gcd(y-y_1,n_A) d2=gcd(yy1,nA)有一个最大公因数是 p p p或者 q q q的都可以使Bob知道 n A n_A nA的分解。因此, x 1 x_1 x1有四种解的情况, y 1 y_1 y1也有四种解的情况,两两组合 4 × 4 4 \times 4 4×4种所有的可能性,其中 x 1 x_1 x1有两种可能使Bob得知 n A n_A nA的分解,同理 y 1 y_1 y1也是,两两组合中有其中一个能使Bob得知 n A n_A nA的分解即或的关系就可以使Bob得知 n A n_A nA的分解,那么便有分子的12种组合。

用概率的计算,可以有:
P r [ B o b   k n o w s   n A = p ⋅ q ] = 1 − P r [ n o t   B o b   k n o w s   n A = p ⋅ q ] = 1 − 1 2 × 1 2 = 3 4 Pr[Bob\ knows\ n_A=p \cdot q] = 1-Pr[not\ Bob\ knows\ n_A=p \cdot q]=1-\frac{1}{2}\times \frac{1}{2}=\frac{3}{4} Pr[Bob knows nA=pq]=1Pr[not Bob knows nA=pq]=121×21=43

1.7 参考文献

[1] Rabin, M.O. (2005). How To Exchange Secrets with Oblivious Transfer. IACR Cryptol. ePrint Arch., 2005, 187.

[2] 王,巴德.(2022)Rabin加密原理.https://zhuanlan.zhihu.com/p/533927542

[3] Rabin, M.O. (1979). DIGITALIZED SIGNATURES AND PUBLIC-KEY FUNCTIONS AS INTRACTABLE AS FACTORIZATION. Technical Report. Massachusetts Institute of Technology, USA.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值