通用的半诚恳公钥OT协定
之前曾经介绍过Naor-Pinkas不经意传输协定,Naor-Pinkas不经意传输协定基于离散对数艰难问题,这次介绍一个通用的基于公钥的半诚恳平安的不经意传输协定和Beaver的非黑盒结构。
有一个发送方Alice和一个接管方Bob,这个协定的前提条件是可能在公钥空间里随机采样取得一个公钥。而不是先取得私钥,再通过私钥产生公钥。
简略的说就是可能随机生成一个和公钥格局雷同的随机数。Alice在协定中的输出为机密值\( _0,_1 \),Bob在协定的输出为抉择比特∈{0,1} 。
协定开始时,Bob首先生成一个公私钥对(\( _{Bob},_{Bob} \)),并在公钥空间里进行随机采样,再生成一个随机公钥\( ′_{Bob} \),Bob依据本人输出的抉择比特b,如果抉择比特=0,那么Bob将(\( _{Bob}, ′_{Bob} \))发送给Alice;如果抉择比特=1,那么Bob将(\( ′_{Bob}, _{Bob} \))发送给Alice。
将Alice从Bob那收到的公钥记为(\( _0,_1 \)),Alice收到Bob发来的公钥对后,向Bob发送两个密文(\( _0,_1 \)),其中
$$_0=_{0}(_0),_1=_{1}(_1)$$
\( _y() \)指用加密算法Enc和加密秘钥y加密x。
Bob 接管到(\( _0,_1 \))后,应用本人的私钥\( _{Bob} \)解密密文\( _ \)。
该不经意传输协定基于半诚恳的,即Bob和Alice都不会违反协定,恪守协定的规定,Bob产生的公钥\( ′_{Bob} \)是随机产生的,Bob无奈得悉公钥\( ′_{Bob} \)所对应的私钥。
如果Bob是歹意的用户,不恪守协定规定,先产生一个私钥\( ′_{Bob} \)后再依据\( ′_{Bob} \)产生对应的公钥\( ′_{Bob} \),则Alice发送过去的(\( _0,_1 \))Bob均可解密,所以协定前提是半诚恳的。
Bob不晓得\( ′_{Bob} \)所对应的私钥,也就只能解密(\( _0,_1 \))其中之一,无奈解密Alice应用\( ′_{Bob} \)加密的\( _{1-b} \)。
Beaver的非黑盒结构
之前介绍过的多个混同电路估值协定都须要应用到不经意传输协定,Beaver提出了一种自举姚氏混同电路协定(bootstrapping Yao’s GC protocol),能够用大量的公钥密码学操作生成多项式数量级的不经意传输协定。
假如Alice是发送方,Bob是接管方。有一个布尔电路C,该电路可能实现不经意传输函数F,函数F的输出是加密过的Bob的抉择比特串以及Alice的机密值对,输入是OT协定的执行后果。有一个伪随机函数(),能够将比特的输出扩大到比特。
Bob产生比专长的抉择比特串,和比专长的随机比特串,利用伪随机函数()来将扩大到比专长,之后Bob向Alice发送()⨁。
Alice收到()⨁后,将收到的()⨁和本人持有的机密值对
$${(_{10},_{11}),(_{20},_{21}),…,(_{m0},_{m1})}$$
作为函数F的输出。之后Bob再向函数F输出,函数F会通过由Bob输出的计算出()后对()⨁进行解密失去,再利用抉择比特串从Alice的机密值对中进行抉择,并输入抉择后果。
即对于函数F而言,它只须要Bob的比特的输出。函数F的实现能够通过混同电路,在Alice因为不晓得,因而无奈解密出。Alice计算函数F对应的布尔电路后,对其进行混同。
之后Alice将混同电路以及()⨁和\( {(_{10},_{11}),(_{20},_{21}),…,(_{m0},_{m1})} \)对应的导线加密值发送给 Bob,Bob则通过次OT协定获取对应的输出导线的加密值,进行电路估值。
若()⨁曾经在协定开始之前发送给了Alice,那么 Bob在协定中须要输出的只有比特随机比特串,因为混同电路的输出比特数量和须要执行的OT次数相关联,Alice事后生成混同电路后发送给Bob,Bob通过次OT获取输出的各个比特对应的混同秘钥,进行电路估值。
若不应用这种构造间接进行OT协定,因为抉择比特串是比专长,因而须要个OT协定。通过这种结构胜利将个OT协定降为了个OT协定。