【隐私计算笔谈】MPC系列专题(三):不经意传输与混淆电路
文章目录
不经意传输
不经意传输( Oblivious transfer,OT,也有翻译是茫然传输 )是在构建安全多方计算时经常需要使用的一个模块。
在双方参与的不经意传输中,一方“Bob”输入一组数据,另一方“Alice”输入一个选择,从Bob输入的数据中选取一个。Alice只获得其所选择的数据,无法得知 Bob输入的其他数据。Bob无法知道Alice选择获得了哪个数据。如有一个2选1的不经意传输协议,Bob输入{𝑎0,𝑎1},Alice输入𝑟∈{0,1} 计算结束后Alice获得𝑎𝑟,但是无法获得𝑎1-𝑟,Bob无法得知Alice输入的𝑟的值。若Alice输入的𝑟=0,则Alice获得𝑎0,无法获得𝑎1;若Alice输入的𝑟=1,则Alice获得𝑎1,无法获得𝑎0。Bob无法得知Alice具体获得的是𝑎0还是𝑎1。
不经意传输协议还有N选1,N选M等。将2选1不经意传输协议写作 ( 2 1 ) O T \begin{pmatrix} 2\\ 1\\ \end{pmatrix}OT (21)OT
N选1不经意传输协议写作 ( N 1 ) O T \begin{pmatrix} N\\ 1\\ \end{pmatrix}OT (N1)OT
将重复调用k次不经意传输协议写作
,如Bob输入
,Alice输入{𝑟1,𝑟2,…,𝑟𝑘},𝑟𝑖∈ {0,1},1≤𝑖≤𝑘,在协议计算结束后,Alice获得
Naor-Pinkas不经意传输协议是经典的OT协议,其基于离散对数困难问题,通过三次公钥密码学操作实现了
( 2 1 ) O T \begin{pmatrix} 2\\ 1\\ \end{pmatrix}OT (21)OT
Naor-Pinkas不经意传输协议中的公共参数有:𝑞阶有限域的𝑍𝑞、有限域𝑍𝑝、𝑍𝑝的生成元𝑔和𝑍𝑝的𝑞阶子群𝐺𝑞 。其中𝑝和𝑞的关系是𝑞|𝑝−1,即𝑝−1能够被𝑞除尽。
发送者输入两个长度为𝑙比特的数据(𝑥0,𝑥1),接收者输入一个选择比特𝑟。
-
发送者生成一个随机数𝐶,并将𝐶进行公开,接着发送者生成一个随机数𝑎,计算 ga 和 Ca 。
-
接收者生成一个随机数𝑘,1≤𝑘≤𝑞。再生成两个公钥𝑝𝑘𝑟和𝑝𝑘1-𝑟,𝑝𝑘𝑟= gk, 𝑝𝑘1-𝑟= c g k \frac{c}{ g^k } gkc,接收者将𝑝𝑘0发送给发送者。
-
发送者计算 (pk0)a ,(pk1)a = C a p k 0 a \frac{C^a}{ pk_0^a } pk