【隐私计算笔谈】MPC系列专题(九):OT协议(二)

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′ \),由此实现不经意传输。
 

图片


隐私计算与AI全解析_从技术到实战
矩阵元技术团队,⼀群专注于技术、玩转算法、追求⾼效的⼯程师。矩阵元定位于隐私计算和区块链技术服务...

PlatON技术团队,⼀群专注于技术、玩转算法、追求⾼效的⼯程师。

20 声望
152 粉丝
0 条评论
推荐阅读
【隐私计算笔谈】MPC系列专题(十六):三方复制秘密共享(二)
 上次科普介绍了在布尔电路下的三方复制秘密共享方案,这次科普介绍把它扩展到环 \( 2^n \) 下的方式。 首先是在环\( 2^n \)下生成三个随机数 \( 𝑎_1,𝑎_2,𝑎_3 \) ,并且满足 \( 𝑎_1+𝑎_2+𝑎_3=0 \) 。上次科普已经...

PlatON技术团队阅读 259

封面图
【隐私计算笔谈】MPC系列专题(十一):共享随机数和比特分享
本次科普主要介绍多方比较的实现方法。回忆一下,之前介绍过的Shamir(t,n)秘密分享协议可以实现秘密分享,Shamir(t,n)协议主要基于拉格朗日插值,也可以通俗地理解成𝑛个方程求解𝑛个未知数。

PlatON技术团队1阅读 748

封面图
从0系列---Zk sync基础原理
在Eth上有一个Zk sync合约,在Eth外有一条合约对应的平台(或者链),所以交易发到平台上,每一分钟,验证者将一分钟内所有交易以及用户最终状态作为零知识证明的参数输入,生成一个零知识证明为输出结果。将输入输...

一句话阅读 1.6k

【隐私计算笔谈】MPC系列专题(十二):比特比较
在介绍比特比较之前先简单介绍一下比特的或。比特异或的实现方法较为简单,利用之前介绍过的𝐹2下Shamir共享机制的加法就能实现。而比特或则无法直接通过Shamir共享机制的加法或者乘法实现。

PlatON技术团队1阅读 480

封面图
读懂区块链共识机制 :PoW、PoS、PAXOS、RAFT、PBFT
所谓“共识机制”,是通过特殊节点的投票,在很短的时间内完成对交易的验证和确认;对一笔交易,如果利益不相干的若干个节点能够达成共识,我们就可以认为全网对此也能够达成共识。再通俗一点来讲,如果中国一名微...

BSN研习社阅读 932

封面图
BSN祝全体技术工作者新春快乐!
新春来年之际,BSN恭祝大家心想事成、健康平安,新的一年里不加班!整理 | 朱珂欣出品 | CSDN程序人生(ID:coder_life)对于很多程序员而言,工作三连无疑就是——“查bug、改bug 、写bug ”。程序员加班的话题,也...

BSN研习社阅读 794

封面图

PlatON技术团队,⼀群专注于技术、玩转算法、追求⾼效的⼯程师。

20 声望
152 粉丝
宣传栏