OT扩大协定

首先假如Alice是发送方,Bob是接管方,Bob的比专长的抉择比特串为,\( _ \)示意抉择比特串的第比特。Bob产生两个 × 的随机矩阵A和B:
 


 

用\( ^,^ \)别离示意矩阵和的第列向量,用\( _,_ \)别离示意矩阵和的第行向量。矩阵和满足\( _⊕_=_.1^k \),即若\( _= 1 \),则\( _⊕_=1^k \);若\( _=0 \),则\( _ ⊕_=0^k \),其中\( 1^k \)示意比专长的1组成的比特串,\( 0^k \)示意比专长的0组成的比特串。
 

发送方Alice随机产生一个比专长的串。Alice和Bob之间利用2选1不经意传输协定,依据比特串的各个比特\( _1,…,_ \)的值,Bob向Alice发送不同的值。若\( _=0 \),则Bob发送\( ^ \);若\( _=1 \),则Bob发送\( ^ \)。
 

当Bob发送完后,Alice取得了一个×的矩阵,记为, 

记\( ^ \)示意矩阵的第列向量,\( _ \)示意矩阵的第列向量。那么有论断:\( _=_\oplus[_.] \),即若\( _=0 \),则\( _=_\oplus[_.]=_ \);若\( _=1 \),则\( _=_\oplus[_.]=_\oplus \)。
 

假如有一个哈希函数,则Bob能够计算\( (_) \)和\( (_\oplus) \),对于每一个\( _ \),都等于\( _ \)或者\( _\oplus \)。Alice 别离应用\( (_) \)和\( (_\oplus) \)来加密机密\( _0 \)和\( _1 \),失去\( _0=(_)\oplus_0,_1= (_\oplus)\oplus_1 \)。
 

加密之后Alice将\( _0 \)和\( _1 \)发送给Bob。因为\( _ \)的值为\( _ \)或\( _\oplus \),而\( _\oplus \)的值为\( _\oplus \)或\( _ \),依据\( _ \)的值而定,若\( _ \)为\( _ \)则\( _\oplus \)为\( _\oplus \);若\( _ \)为\( _\oplus \)则\( _\oplus \)为\( _ \),二者中必有一个是\( _ \)。
 

Bob只把握\( _ \)而不晓得\( _ \),Bob又把握着\( _ \),因而对于Alice发送过去的\( (_)\oplus_0 \)和\( (_\oplus)\oplus_1 \),Bob能够本地计算\( (_) \)来解密\( (_)\oplus_0 \)或者\( (_\oplus)\oplus_1 \)中的一个,具体解密哪个取决于\( _ \)的值。矩阵C的每一列都可用来进行一次OT协定,因而可进行次比特的OT协定。 
 

假如Bob的抉择比特串为=101,Bob产生两个3×3的随机矩阵A和B,且矩阵A和矩阵B合乎\( _\oplus_=_.1^k \): 
 

 
能够看到,\( _1\oplus_1= 1.1^k =[1 1 1]^T,_2\oplus_2=0.1^k=[0 0 0]^T,_3\oplus_3= 1.1^k =[1 1 1]^T \)。
 

 
联合具体例子来看:发送方Alice随机产生一个=3比专长的抉择比特串=[0 0 1],Alice和Bob间利用二选一的不经意传输协定,如之前介绍过的Naor-Pinkas协定,接管依据比特串的各个比特\( _1,_2,_3 \)的值,Bob向 Alice发送矩阵A和B的不同列。若\( _=0 \),则Bob发送\( ^ \);若\( _=1 \),则Bob发送\( ^ \) 。则Alice将收到\( ^1={[1 0 0]}^T, ^2={[1 0 0]}^T,^3={[1 1 1]}^T \)。
 

 
将最初Alice收到的矩阵记为: 
 

 
能够看到矩阵满足\( _=_\oplus[_.] \),如\( _1=_1\oplus[_.]=_1\oplus[1.]= [1 1 0]\oplus[0 0 1]=[1 1 1],_2= _2\oplus[_2.]=_2\oplus[0.]=_2=[0 0 1],_3=_3\oplus[_3.]=_3 \oplus = [0 1 0]\oplus [0 0 1]=[0 1 1] \)。能够看到矩阵的各行都满足关系式\( _=_ \oplus [_.] \)。
 

 
Alice应用矩阵哈希函数H和矩阵C对机密进行加密,Alice应用\( (_1) \)来加密Alice的机密\( _0 \),应用\( (_1 \oplus ) \)来加密机密\( _1 \),失去加密后的密文\( _0=(_1) \oplus _0,_1=(_1  \oplus ) \oplus _1 \),之后Alice将\( _0 \)和\( _1 \)发送给Bob。
 

 
留神此时\( (_1)= ([1 1 1])=(_1 \oplus ),(_1 \oplus ) = (_1 \oplus \oplus )=(_1) \),Bob是不晓得的,Bob只晓得\( _1 \) ,当\( _1=1 \)时,因为\( (_1 \oplus )=(_1) \),Bob又把握\( _1 \),因而Bob能够间接计算(),由此通过计算\( (_1 \oplus ) \oplus _1 \oplus (_1)=_1 \),能够解密出\( _1 \)。而Bob不晓得,因而Bob无奈计算\( (_1 \oplus ) \),也就无奈计算出\( _2 \)。
 
Alice接着又应用\( (_2) \)来加密机密\( _0′ \),应用\( (_2 \oplus ) \)来加密机密\( _1′ \),失去加密后的密文\( _2=(_2) \oplus _0′, _3= (_2 \oplus ) \oplus _1′ \),之后Alice将\( _2 \)和\( _3 \)发送给Bob。
 
因为\( _2=0 \),因而\( (_2)=([0 0 1])=(_2 \oplus ) \)
\( (_2 \oplus )=(_2 \oplus \oplus )=(_2) \),Bob又把握\( _2 \),因而 Bob能够间接计算\( (_2) \),由此通过计算\( (_2) \oplus _0′ \oplus (_2)=_0′ \),能够解密出\( _0 \)。而Bob不晓得,因而 Bob无奈计算\( (_2 \oplus ) \),也就无奈计算出\( _2 \)。Bob能解密哪个取决于Bob的抉择比特串的各比特值,正如下面的例子,\( _0=1 \)时Bob可解密\( _1 \);\( _1=0 \)时Bob可解密\( _0′ \),由此实现不经意传输。