软件学报  2017, Vol. 28 Issue (2): 352-360   PDF    
Cut-and-Choose双向不经意传输
赵川, 蒋瀚, 魏晓超, 徐秋亮     
山东大学 计算机科学与技术学院, 山东 济南 250101
摘要: 不经意传输作为现代密码学的一个基本工具,在安全协议的研究中起着重要作用.近年来,许多功能性更强的不经意传输变种被提出来,以适应不同的需求和环境.提出一个不经意传输变种,称为cut-and-choose双向不经意传输.基于同态加密给出该原语的一轮高效协议构造,且在半诚实模型下形式化证明了该协议的安全性.将cut-and-choose双向不经意传输运用到基于cut-and-choose技术的安全协议(尤其是安全两方计算)中,可以更具模块化地描述协议高层框架,降低协议交互轮数.此外,作为信息安全领域的一个底层基本工具,该原语本身也具有独立的研究意义.
关键词: 不经意传输     cut-and-choose     同态加密     半诚实模型     安全两方计算    
Cut-and-Choose Bilateral Oblivious Transfer
ZHAO Chuan, JIANG Han, WEI Xiao-Chao, XU Qiu-Liang     
School of Computer Science and Technology, Shandong University, Ji'nan 250101, China
Foundation item: National Natural Science Foundation of China (61572294, 61173139)
Abstract: Oblivious transfer is a fundamental tool in modern cryptography. It plays an important role in the research of security protocols. In recent years, many oblivious transfer variants with more powerful functionalities are proposed to fit in different kinds of requirements and scenarios. In this paper, a new oblivious transfer variant, called cut-and-choose bilateral oblivious transfer, is proposed. Based on homomorphic encryption, an efficient one-round protocol of this primitive is constructed along with rigorous security proof in semi-honest model. When applied in security protocols based on cut-and-choose technique (especially in secure two-party computation), cut-and-choose bilateral oblivious transfer enables a more modular high-level description of the protocol framework, and also reduces the round complexity of the protocols. Besides, as a basic tool in the information security area, this primitive itself is of independent research interest.
Key words: oblivious transfer     cut-and-choose     homomorphic encryption     semi-honest model     secure two-party computation    

随着物联网以及移动互联网的快速发展, 全球数据量呈指数级增长, 大数据时代已经到来.在大数据产业蓬勃发展的同时, 个人隐私数据泄露事件层出不穷, 引起了人们的广泛关注.确保数据安全性、设计安全实用的多方协议成为亟待解决的问题.不经意传输(oblivious transfer)作为许多典型安全协议的核心基本工具, 无论是在理论研究还是在应用研究中都担任了重要角色.

不经意传输是一个两方传输任务.其中一个参与方称为发送方, 提供多个字符串; 另一个参与方称为接收方, 提供一个索引以选取其中1个或多个.任务执行完成后, 接收方获得其索引所对应的字符串, 对其他字符串一无所知; 发送方没有输出, 且不知道接收方获得了哪些字符串.自Rabin在1981年提出不经意传输以来[1], 针对该领域的研究就受到了密码学研究者的广泛关注.在后续的研究中, 有很多工作重点关注设计更高效或更安全的不经意传输协议[2-6].另外, 也有很多工作提出了功能性更强的不经意传输变种, 用来增强调用不经意传输的外层协议的安全性或提高协议效率, 如承诺不经意传输[7, 8]、不经意传输扩展[9-11]等.值得注意的是, Lindell等人在TCC 2011会议上提出了cut-and-choose不经意传输[12], 将其应用在基于混乱电路和cut-and-choose技术的安全两方计算协议中, 高效地解决了Kiraz等人指出的选择性失败攻击问题[13].然而, 该变种仅能用来传输单个参与方的混乱密钥.为了传输另一个参与方的混乱密钥以完成混乱电路检测和计算, 协议还需要参与方进行多轮交互.显然, 基于该原语的协议交互复杂度过高.

受cut-and-choose不经意传输的启发, 本文提出cut-and-choose双向不经意传输这一新原语.与cut-and-choose不经意传输相比, 新原语具有更强大的功能, 可以在安全两方计算中一次性传输两个参与方的所有相关密钥.除了能够解决选择性失败攻击问题以外, 该原语还具有以下3个优势:

(1)降低外层协议的交互轮数, 这在协议双方交互受限的场景中是非常关键的;

(2)更具模块化、更清晰地描述协议过程, 使协议更易于理解和分析;

(3)可用于其他cut-and-choose场景中, 其本身具有独立的研究意义.

基于同态加密, 本文构造出仅需1轮交互的cut-and-choose双向不经意传输协议, 并基于标准的安全性定义, 在半诚实模型下形式化证明该协议的安全性.

本文第1节回顾一些预备知识.第2节给出新原语cut-and-choose双向不经意传输的功能函数定义, 并基于同态加密构造具体协议, 在半诚实模型下给出严格的安全性证明.第3节阐述该原语在基于cut-and-choose技术的安全两方计算中的应用.第4节总结全文, 并展望后续的研究工作.

1 预备知识

本节介绍相关预备知识, 包括不经意传输、cut-and-choose不经意传输、同态加密方案以及半诚实模型下的安全性定义.

1.1 不经意传输

一个标准的2取1不经意传输是一个两方功能函数, 其中一个参与方称为发送方S, 输入为两个n比特字符串y0, y1, 另一个参与方称为接收方R, 输入为一个选择比特τ∈{0, 1}.该任务执行完成后, R获得yτ, 而对y1-τ一无所知; S没有输出, 且不知道R获得了y0, y1中的哪一个.这些性质可以由下面的功能函数ℱot给出.

功能函数ℱot.

输入:

    --S输入y0, y1∈{0, 1}n.

    --R输入τ∈{0, 1}.

输出:

    --S输出⊥(表示为空).

    --R输出yτ.

1.2 Cut-and-Choose不经意传输

Lindell等人提出的cut-and-choose不经意传输是在2取1不经意传输的基础上, 为R引入一个cut-and-choose指示比特j, 以便让R选择是要获得S的所有两个输入值, 还是只需要获得其中一个.我们将Lindell等人提出的该原语做了适当简化, 将其写成下面的功能函数ℱccot以便表述.

功能函数ℱccot.

输入:

    --S输入y0, y1∈{0, 1}n.

    --R输入(j, τ), 其中j∈{0, 1}为cut-and-choose指示比特, τ∈{0, 1}为R的选择比特.

输出:

    --S输出⊥.

    --R输出z:

      当j=1时, z为(y0, y1);

      当j=0时, zyτ.

1.3 同态加密方案

记某公钥加密方案为M=(Gen, Enc, Dec), 其中, Gen表示密钥生成算法, Enc表示加密算法, Dec表示解密算法.将使用公钥pk对明文m的加密记为Encpk(m).直观上, 给定两个密文c1=Encpk(m1)和c2=Encpk(m2), 若在不知道对应私钥和明文的前提下可以高效计算c1·c2满足c1·c2=Encpk(m1+m2), 则称该公钥加密方案具有加法同态性.这里要求计算c1·c2的结果是对m1+m2的一次随机加密.正式地, 有如下定义:

定义1(加法同态加密).对于一个公钥加密方案M=(Gen, Enc, Dec), 如果对于任意的n, 任意Gen(1n)的输出(pk, sk), 满足:

{pk, c1=Encpk(m1), c1·Encpk(m2)}≅{pk, Encpk(m1), Encpk(m1+m2)},

其中, 等号≅表示计算不可区分, 则M是一个加法同态加密方案.

1.4 安全性定义

不经意传输作为一类具体的安全两方计算问题, 其安全性可由安全两方计算的标准安全模型来定义.本文使用半诚实模型下的安全性定义[14]来刻画所构造的cut-and-choose双向不经意传输协议的安全性.

定义2(半诚实模型下的安全性).令f(·, ·)=(f1, f2)为任意{0, 1}×{0, 1}→{0, 1}×{0, 1}多项式时间功能函数, π为一个计算f(·, ·)的两方协议.给定输入(x, y)(参与方P1的输入为x, P2的输入为y)和安全参数n, Pi(i∈{1, 2})在协议π中的视图记为viewiπ(x, y, n)=(w, ri, m1i, …, mti), 其中, w∈{x, y}, riPi的内部随机带, mjiPi接收到的第j条消息; Pi的输出记为outputiπ(x, y, n).另外, 记双方的联合输出为outputπ(x, y, n)=(output1π(x, y, n), output2π(x, y, n)).

如果下列条件满足, 则协议π在半诚实模型下安全计算功能函数f(·, ·).

首先, 要求满足正确性, 即满足:

{outputπ(x, y, n)}x, y, n≅{f(x, y)}x, y.

其次, 要求存在概率多项式时间算法$\mathcal{S}$1$\mathcal{S}$2, 满足:

{$\mathcal{S}$1(1n, x, f1(x, y))}x, y, n≅{view1π(x, y, n)}x, y, n,

{$\mathcal{S}$2(1n, y, f2(x, y))}x, y, n≅{view2π(x, y, n)}x, y, n,

其中, x, y∈{0, 1}, 满足|x|=|y|, n.

2 Cut-and-Choose双向不经意传输

这一节首先介绍并形式化定义cut-and-choose双向不经意传输功能函数, 然后基于同态加密给出其协议构造, 并形式化证明该协议满足半诚实模型下的标准安全性定义(定义2).

2.1 功能函数

我们说标准的不经意传输和cut-and-choose不经意传输实现的功能都是单向的.也就是说, S输入两个值等待R进行选择, 而其本身并没有主动选择权.如果在cut-and-choose不经意传输的基础上, 为S增加两个字符串x0x1, 使其能够通过一个新的选择比特σR接收到这两个字符串中的哪一个拥有决定权, 就构成了cut-and-choose双向不经意传输.当然, 增加的这两个字符串被R接收到1个还是2个, 依然由R的cut-and-choose指示比特j来决定.需要注意的是, 引入选择比特σ会带来以下问题:当j为0时, R必须知道x0x1这两个值应该获得哪一个.如果按照正常顺序x0, x1发送这两个值, 则R可以获得σ的值, 这与σ需要保密相矛盾.因此, 需要引入一个置换比特b来对x0x1的位置进行随机置换, 从而达到隐藏σ的目的.这样, R就可以在不知道σ的情况下获得xσ.置换比特的引入会对接收方的输出造成影响:当cut-and-choose指示比特j为1时, 接收方除了获得被置换位置后的两个字符串xb, x1-b之外, 还需要拿到b的值, 以获得正常顺序的x0, x1; 当cut-and-choose指示比特j为0时, 接收方除了获得由发送方指定应该获得的xσ之外, 实际上也获得了xσ的位置信息σb, 即当获得xb, x1-b中的第1个时, 说明σb为0, 反之则说明σb为1.该功能可以由下面的功能函数ℱccbot给出.

功能函数ℱccbot.

输入:

    --S输入(x0, x1, y0, y1, b, σ), 其中x0, x1, y0, y1∈{0, 1}n, b∈{0, 1}为置换比特, σ∈{0, 1}为S的选择比特.

    --R输入(j, τ), 其中j∈{0, 1}为cut-and-choose指示比特, τ∈{0, 1}为R的选择比特.

输出:

    --S输出⊥.

    --R输出z:

      当j=1时, z为(xb, x1-b, 1-b, y0, y1);

      当j=0时, z为(xσ, yτ, σb), 其中σb指示xσ的位置信息.

2.2 协议构造

Cut-and-choose双向不经意传输可以基于同态加密构造.主要思想是利用加密方案的同态性, 将接收方cut-and-choose指示比特的密文与发送方的输入进行特定运算.具体构造请见协议1.

协议1. Cut-and-Choose双向不经意传输协议.

输入:发送方S输入(x0, x1, y0, y1, b, σ); 接收方R输入(j, τ)).

辅助输入:安全参数1n; 满足定义1的选择明文攻击(CPA)安全的加法同态加密方案M=(Gen, Enc, Dec).

协议过程:

步骤1. Rτ编码为两个比特τ0τ1, 其中ττ=1, τ1-τ=0.具体来说, 如果τ=1, 则编码为τ0τ1=01;如果τ=0, 则编码为τ0τ1=10.另外, Rj编码为两个比特j0j1=j0.然后, R生成一组密钥(pk, sk)←Gen(1n), 公开公钥pk, 并用pk对(j0, jτ0+τ0, jτ1+τ1)进行加密, 将加密后得到的密文三元组(Encpk(j0), Encpk(jτ0+τ0), Encpk(jτ1+τ1))发送给S.

步骤2. Sσ编码为两个比特σ0σ1, 其中σσ=1, σ1-σ=0.具体来说, 如果σ=1, 则编码为σ0σ1=01;如果σ=0, 则编码为σ0σ1=10.然后, S利用R的公钥pk计算(Encpk(j1), Encpk(σ0), Encpk(σ1), Encpk(b)), 并计算密文五元组:

$\begin{array}{c} {w_b} = {(En{c_{pk}}({j_{{\sigma _b}}}) \cdot En{c_{pk}}({\sigma _b}))^{{x_b}}},\\ {w_{1 - b}} = {(En{c_{pk}}({j_{{\sigma _{1 - b}}}}) \cdot En{c_{pk}}({\sigma _{1 - b}}))^{{x_{1 - b}}}},\\ {w_2} = {(En{c_{pk}}({j_b}) \cdot En{c_{pk}}(b))^{1 - b}},\\ {w_3} = {(En{c_{pk}}({j_{{\tau _0}}} + {\tau _0}))^{{y_0}}},\\ {w_4} = {(En{c_{pk}}({j_{{\tau _1}}} + {\tau _1}))^{{y_1}}}. \end{array}$

计算完成后, 将密文五元组(wb, w1-b, w2, w3, w4)发送给R.

步骤3. R用私钥sk对接收到的密文五元组进行解密, 得到明文五元组(ub, u1-b, u2, u3, u4):

·当j=1时, 令(ub, u1-b, u2, u3, u4)=(xb, x1-b, 1-b, y0, y1);

·当j=0时, 忽略u2的值, 令ub, u1-b中不为0的值为xσ, 即ub, u1-b中的第σb+1个; 令u3, u4中的第τ+1个为yτ, 得到输出(xσ, yτ, σb).

2.3 安全性证明

定理1.假定M=(Gen, Enc, Dec)是一个满足定义1的CPA安全的加法同态加密方案, 则协议1在定义2下安全计算功能函数ℱccbot.

证明:令ℱccbot为cut-and-choose双向不经意传输功能函数, π为计算ℱccbot的协议1, 根据定义2, 如果下列条件满足, 我们就说协议π在半诚实模型下安全计算ℱccbot.

首先满足正确性, 即

{outputπ((x0, x1, y0, y1, b, σ), (j, τ), n)}x0, x1, y0, y1, b, σ, j, τ, n≅{ℱccbot((x0, x1, y0, y1, b, σ), (j, τ))}x0, x1, y0, y1, b, σ, j, τ.

其次, 存在概率多项式时间算法$\mathcal{S}$1$\mathcal{S}$2满足:

${\{ {{\cal S}_1}({1^n},({x_0},{x_1},{y_0},{y_1},b,\sigma ))\} _{{x_0},{x_1},{y_0},{y_1},b,\sigma ,n}} \cong {\{ vie{w_1}^\pi (({x_0},{x_1},{y_0},{y_1},b,\sigma ),\left( {j,\tau } \right),n)\} _{{x_0},{x_1},{y_0},{y_1},b,\sigma ,j,\tau ,n}}$ (1)
${\{ {{\cal S}_2}({1^n},(j,\tau ,z))\} _j}_{,\tau ,z,n} \cong {\{ vie{w_2}^\pi (({x_0},{x_1},{y_0},{y_1},b,\sigma ),\left( {j,\tau } \right),n)\} _{{x_0},{x_1},{y_0},{y_1},b,\sigma ,j,\tau ,n}}$ (2)

其中, x0, x1, y0, y1∈{0, 1}n, z∈{0, 1}, b, σ, j, τ∈{0, 1}, n.

下面我们对协议1的安全性给出形式化证明.

首先, 根据cut-and-choose指示比特j的取值分两种情况对协议1的正确性进行证明.

情况1)当j=1时, ℱccbot((x0, x1, y0, y1, b, σ), (j, τ))的输出为(xb, x1-b, 1-b, y0, y1), 我们证明在此情况下, 协议1的输出也是如此.

在协议1中, 当j=1时, j0=1, j1=0, 有jb+b=1, b∈{0, 1}, 所以,

$\begin{array}{c} {w_b} = {(En{c_{pk}}({j_{{\sigma _b}}}) \cdot En{c_{pk}}({\sigma _b}))^{{x_b}}} = En{c_{pk}}({x_b} \cdot ({j_{{\sigma _b}}} + {\sigma _b})) = En{c_{pk}}({x_b}),\\ {w_{1 - b}} = {(En{c_{pk}}({j_{{\sigma _{1 - b}}}}) \cdot En{c_{pk}}({\sigma _{1 - b}}))^{{x_{1 - b}}}} = En{c_{pk}}({x_{1 - b}} \cdot ({j_{{\sigma _{1 - b}}}} + {\sigma _{1 - b}})) = En{c_{pk}}({x_{1 - b}}),\\ {w_2} = {(En{c_{pk}}({j_b}) \cdot En{c_{pk}}(b))^{1 - b}} = En{c_{pk}}((1 - b) \cdot ({j_b} + b)) = En{c_{pk}}(1 - b),\\ {w_3} = {(En{c_{pk}}({j_{{\tau _0}}} + {\tau _0}))^{{y_0}}} = En{c_{pk}}({y_0} \cdot ({j_{{\tau _0}}} + {\tau _0})) = En{c_{pk}}({y_0}),\\ {w_4} = {(En{c_{pk}}({j_{{\tau _1}}} + {\tau _1}))^{{y_1}}} = En{c_{pk}}({y_1} \cdot ({j_{{\tau _1}}} + {\tau _1})) = En{c_{pk}}({y_1}). \end{array}$

这样, 对(wb, w1-b, w2, w3, w4)解密得到的明文为(xb, x1-b, 1-b, y0, y1).

因此, 当j=1时, 协议1的输出为(xb, x1-b, 1-b, y0, y1), 满足正确性要求.

情况2)当j=0时, ℱccbot((x0, x1, y0, y1, b, σ), (j, t))的输出为(xσ, yτ, σb), 我们证明在此情况下, 协议1的输出也是如此.

在协议1中, 当j=0时, j0=0, j1=0, 有jb+b=b, b∈{0, 1}, 所以,

$\begin{array}{c} {w_b} = {(En{c_{pk}}({j_{{\sigma _b}}}) \cdot En{c_{pk}}({\sigma _b}))^{{x_b}}} = En{c_{pk}}({x_b} \cdot ({j_{{\sigma _b}}} + {\sigma _b})) = En{c_{pk}}({x_b} \cdot {\sigma _b}),\\ {w_{1 - b}} = {(En{c_{pk}}({j_{{\sigma _{1 - b}}}}) \cdot En{c_{pk}}({\sigma _{1 - b}}))^{{x_{1 - b}}}} = En{c_{pk}}({x_{1 - b}} \cdot ({j_{{\sigma _{1 - b}}}} + {\sigma _{1 - b}})) = En{c_{pk}}({x_{1 - b}} \cdot {\sigma _{1 - b}}),\\ {w_2} = {(En{c_{pk}}({j_b}) \cdot En{c_{pk}}(b))^{1 - b}} = En{c_{pk}}((1 - b) \cdot ({j_b} + b)) = En{c_{pk}}((1 - b) \cdot b) = En{c_{pk}}(0),\\ {w_3} = {(En{c_{pk}}({j_{{\tau _0}}} + {\tau _0}))^{{y_0}}} = En{c_{pk}}({y_0} \cdot ({j_{{\tau _0}}} + {\tau _0})) = En{c_{pk}}({y_0} \cdot {\tau _0}),\\ {w_4} = {(En{c_{pk}}({j_{{\tau _1}}} + {\tau _1}))^{{y_1}}} = En{c_{pk}}({y_1} \cdot ({j_{{\tau _1}}} + {\tau _1})) = En{c_{pk}}({y_1} \cdot {\tau _1}). \end{array}$

可以看到, 当j=0时, 无论b取何值, w2都是对0的加密.根据协议, 我们忽略这一项, 分别对wb, w1-bw3, w4进行处理.对wb, w1-b, 由于σσ=1, σ1-σ=0, 所以在对wb, w1-b解密得到的明文中, 一个为0, 一个为xσ, 其中xσ的位置信息为σb.具体来说, 若σ=1, 则σ1=1, σ0=0, 对wb, w1-b解密可得到0和x1(顺序不定, x1的位置信息为σb=1⊕b); 若σ=0, 则σ0=1, σ1=0, 对wb, w1-b解密可得到0和x0(顺序不定, x0的位置信息为σb=0⊕b).对w3, w4, 由于ττ=1, τ1-τ=0, 所以在对w3, w4解密得到的明文中, 一个为yτ, 一个为0, 其中yτ的位置由τ直接确定.

因此, 当j=0时, 协议1的输出为(xσ, yτ, σb), 满足正确性要求.

综上所述, 有{outputπ((x0, x1, y0, y1, b, σ), (j, τ), n)}x0, x1, y0, y1, b, σ, j, τ, n≅{ℱccbot((x0, x1, y0, y1, b, σ), (j, τ))}x0, x1, y0, y1, b, σ, j, τ.

下面我们分别证明等式(1)和等式(2)成立.

情况1) S被腐化, 证明等式(1)成立.

为了证明S被腐化时等式(1)成立, 我们需要构造一个模拟器$\mathcal{S}$1, 给定输入(x0, x1, y0, y1, b, σ)和安全参数1n, 输出S在协议1中的视图, 并证明该视图和真实协议执行中S的视图view1π((x0, x1, y0, y1, b, σ), (j, τ), n)计算不可区分.

根据协议1, S所能看到的视图消息仅为密文(Encpk(j0), Encpk(jτ0+τ0), Encpk(jτ1+τ1)).为了模拟该消息, 我们令模拟器$\mathcal{S}$1在明文空间随机选取明文m1, m2, m3, 使用R的公钥pk进行加密, 得到密文(Encpk(m1), Encpk(m2), Encpk(m3)).这样, 给定输入(1n, (x0, x1, y0, y1, b, σ)), 模拟器$\mathcal{S}$1的输出为

(x0, x1, y0, y1, b, σ, r, Encpk(m1), Encpk(m2), Encpk(m3)),

其中, r为协议过程中使用的随机数.

以上即是模拟器$\mathcal{S}$1的构造.我们接下来证明等式(1)成立, 即

{$\mathcal{S}$1(1n, (x0, x1, y0, y1, b, σ))}x0, x1, y0, y1, b, σ, τ, n≅{view1π((x0, x1, y0, y1, b, σ), (j, τ), n)}x0, x1, y0, y1, b, σ, j, τ, n.

由模拟器$\mathcal{S}$1的构造可知, {$\mathcal{S}$1(1n, (x0, x1, y0, y1, b, σ))}={(x0, x1, y0, y1, b, σ, r, Encpk(m1), Encpk(m2), Encpk(m3))}.

由协议1可知, {view1π((x0, x1, y0, y1, b, σ), (j, τ), n)}={(x0, x1, y0, y1, b, σ, r, Encpk(j0), Encpk(jτ0+τ0), Encpk(jτ1+τ1))}.

我们利用规约来证明上述两个分布不可区分.假如存在一个非均匀概率多项式时间区分器D和一个多项式p(·), 满足对于无限多n, 有:

|Pr[D($\mathcal{S}$1(1n, (x0, x1, y0, y1, b, σ)))=1]-Pr[D(view1π((x0, x1, y0, y1, b, σ), (j, τ), n))=1| > 1∕p(n),

则存在一个敌手$\mathcal{A}$M, 满足:

|Pr[$\mathcal{A}$M(Encpk(m1), Encpk(m2), Encpk(m3))=1]-Pr[$\mathcal{A}$M(Encpk(j0), Encpk(jτ0+τ0), Encpk(jτ1+τ1))=1| > 1∕p(n).

我们知道, 如果公钥加密方案M满足CPA下的不可区分性, 则M在CPA下是不可区分多重加密.因此, 若存在敌手$\mathcal{A}$M能够区分上述两个多重加密消息序列, 则其能够攻破加密方案M, 即M不具有CPA安全性, 这和我们的假设相矛盾.因此, 等式(1)成立, 协议1在参与方S被腐化时是安全的.

情况2) R被腐化, 证明等式(2)成立.

为了证明R被腐化时等式(2)成立, 我们需要构造一个模拟器$\mathcal{S}$2, 给定输入(j, τ, z)和安全参数1n, 输出R在协议1中的视图, 并证明该视图和真实协议执行中R的视图view2π((x0, x1, y0, y1, b, σ), (j, τ), n)计算不可区分.

根据协议1, R所能看到的消息为S发送的密文五元组(wb, w1-b, w2, w3, w4).由于cut-and-choose指示比特j取值不同时, 由该密文五元组解密得到的输出结果不同, 因此需要分情况进行讨论.

情况(1)当j=1时, R解密密文得到的结果为z=(xb, x1-b, 1-b, y0, y1).给定z的值, 模拟器$\mathcal{S}$2可以直接用R的公钥pk对(xb, x1-b, 1-b, y0, y1)进行加密, 得到密文五元组(wb', w1-b', w2', w3', w4'), 作为对真实协议执行中(wb, w1-b, w2, w3, w4)的模拟.

以上即是模拟器$\mathcal{S}$2j=1时的构造.我们接下来证明在该情况下, 等式(2)成立, 即

{$\mathcal{S}$2(1n, (j, τ, z))}j, τ, z, n≅{view2π((x0, x1, y0, y1, b, σ), (j, τ), n)}x0, x1, y0, y1, b, σ, j, τ, n.

由模拟器$\mathcal{S}$2的构造可知, {$\mathcal{S}$2(1n, (j, τ, z))}={(j, τ, r, wb', w1-b', w2', w3', w4')}.

由协议1可知, {view2π((x0, x1, y0, y1, b, σ), (j, τ), n)}={(j, τ, r, wb, w1-b, w2, w3, w4)}.

由于R掌握私钥sk, 因此(wb', w1-b', w2', w3', w4')和(wb, w1-b, w2, w3, w4)在R看来都是对(xb, x1-b, 1-b, y0, y1)的加密.也就是说, 上述两个分布对R来说是等同的.因此, 等式(2)在j=1时成立.

情况(2)当j=0时, R解密密文得到的结果为z=(xσ, yτ, σb).给定(j, τ, z)的值, 模拟器$\mathcal{S}$2可以如下构造R的视图:

对(wb, w1-b, w2, w3, w4)中前两个元素wbw1-b, $\mathcal{S}$2pk加密xσ作为对其中第σb+1个元素的模拟, 用pk加密0作为对另一个元素的模拟; 对第3个元素w2, $\mathcal{S}$2pk加密0作为对w2的模拟; 对最后两个元素w3w4, $\mathcal{S}$2pk加密yτ作为对其中第τ+1个元素的模拟, 用pk加密0作为对另一个元素的模拟.

以上即是模拟器$\mathcal{S}$2j=0时的构造.在掌握私钥skR看来, 上述构造的密文和真实协议执行中接收到的密文(wb, w1-b, w2, w3, w4)具有等同的分布.因此, 等式(2)在j=0时成立.

这样就完成了R被腐化时的证明.协议1在参与方R被腐化时是安全的.

综上, 协议1在定义2下安全计算功能函数ℱccbot.

3 应用

Cut-and-choose双向不经意传输在基于cut-and-choose技术的密码协议中具有重要意义.本文以安全两方计算为例, 对其应用及所带来的优势进行阐述.在详细介绍如何将cut-and-choose双向不经意传输应用到安全两方计算之前, 首先简单介绍基于Yao混乱电路的安全两方计算协议以及cut-and-choose范例.

安全两方计算是参与方P1P2之间的交互式计算任务.双方各自持有自己的秘密输入xy, 互不信任, 交互式地协同计算一个目标函数f(·, ·).任务完成后, 双方各自获得相应的秘密输出, 整个计算过程不泄露其他任何额外信息.20世纪80年代, 姚期智先生提出采用“混乱电路”的方法来实现安全两方计算[15].混乱电路实际上是对布尔电路的一种加密形式, 其拥有如下性质:

(1)每条电路线对应两个混乱密钥, 一个密钥对应比特0, 另一个密钥对应比特1;

(2)当每条电路输入线给定一个密钥时, 可以逐层计算该混乱电路, 并最终获得电路输出值, 除此之外得不到其他任何额外信息.

基于混乱电路和不经意传输, 文献[15]给出了安全两方计算的第1个通用解决方案--Yao协议.在该协议中, P1P2分别为混乱电路构造方和混乱电路计算方.双方首先将要计算的函数表示为布尔电路, 参与方输入的每一比特在布尔电路中都有对应的电路输入线.然后, P1独立构造该布尔电路对应的混乱电路, 并将该混乱电路以及对应自己输入的密钥发送给P2.对P2输入所对应的每条输入线, 双方执行一次不经意传输协议, 使P2获取自己输入对应的密钥.具体来说, P1作为发送方, 输入为该条输入线上的两个密钥; P2作为接收方, 输入为该条输入线对应的输入比特.协议执行完成后, P2获得其输入比特对应的密钥.最后, P2使用已获得的所有电路输入线上的密钥, 在不知道P1秘密输入和其他额外信息的情况下, 茫然地对混乱电路逐层计算, 获得电路的输出值.

Yao协议非常高效, 但其仅在半诚实模型下安全.在恶意模型下, 潜在的恶意参与方可以任意偏离协议执行, 协议构造更加困难, 也更低效.一个显然的问题是, 恶意的P1可能会构造错误的混乱电路, 使P2计算出的函数结果出错.与利用零知识证明强迫潜在的恶意敌手诚实地执行协议相比, 使用cut-and-choose技术可以获得恶意模型下非常高效的安全两方计算协议[12, 16, 17].该技术的基本想法是使参与方P2能够以很高的概率发现恶意P1的作弊行为.首先, P1被要求构造s份混乱电路而不是1份(s为统计学安全参数).P2随机选择其中一部分(称为检测电路), 要求P1打开, 以检测混乱电路是否正确构造; 若全部检测通过, 则以很高的概率说明剩余混乱电路中的大多数都是正确构造的.随后, 双方像Yao协议一样计算剩余的每个混乱电路(称为计算电路), 并取计算结果中占大多数的值作为协议输出.通过这种方法, 恶意构造方作弊成功的概率被限制得非常小.

在所有基于cut-and-choose范例的两方计算协议中, 文献[12]提供的解决方案较为典型、高效.该协议主要基于cut-and-choose不经意传输进行构造.注意到该功能函数仅能用来传输单个混乱电路中单条P2输入线上的密钥.为了使其能够适用于外层的两方计算协议, 需要将其扩展为一个可以进行批处理的版本, 称为批处理单选择cut-and-choose不经意传输, 记为ℱ$_{ccbot}^{B,S}{\rm{,}}$以用来传输s个混乱电路中所有P2输入线上的密钥.关于ℱ$_{ccbot}^{B,S}$的详细描述可参见文献[12].基于cut-and-choose不经意传输, 我们可以获得如下的安全两方计算协议框架.

基于Cut-and-Choose不经意传输的安全两方计算协议框架.

步骤1. P1构造s份混乱电路.

步骤2.双方调用批处理单选择cut-and-choose不经意传输功能函数ℱ$_{ccbot}^{B,S}.$对于所有混乱电路中每条P2

入线:在检测电路中, P2获得全部两个密钥; 在计算电路中, P2获得与其输入比特相对应的密钥.

步骤3. P1将所有混乱电路发送给P2.

步骤4. P2公开ℱ$_{ccbot}^{B,S}$中用到的cut-and-choose指示比特串J, 并向P1证明J的正确性.

步骤5.对每个检测电路, P1发送自己每条输入线上的两个密钥.

步骤6. P2对所有检测电路进行检测.若检测出现问题, 则P2中止协议; 否则继续执行.

步骤7.对每个计算电路, P1将自己输入对应的密钥发送给P2, 并证明在所有计算电路中, P1输入一致.

步骤8. P2对所有计算电路进行计算, 并取计算结果中占大多数的值作为协议输出.

可以看出, 上述协议框架中的密钥传输被分割成为几个部分, 导致参与方之间的交互变得非常复杂, 从轮复杂度的角度考虑协议较为低效; 同时, 复杂的交互使协议框架非常混乱, 不利于协议的理解和应用.

为了降低参与方的交互复杂度并简化协议框架, 我们将上述协议中的cut-and-choose不经意传输替换为新原语cut-and-choose双向不经意传输.利用该原语的双向性, 可以将所有涉及到的密钥在一个阶段全部传输完成.同样, 由于功能函数ℱccbot仅能用来传输单个混乱电路中单条输入线上的密钥, 我们将其扩展为可用于传输s个混乱电路中所有输入线密钥的功能函数, 称为批处理单选择cut-and-choose双向不经意传输, 记为ℱ$_{ccbot}^{B,S}.$基于cut-and-choose双向不经意传输, 安全两方计算协议框架可以简化为如下过程.

基于Cut-and-Choose双向不经意传输的安全两方计算协议框架.

步骤1.P1构造s份混乱电路.

步骤2.双方调用批处理单选择cut-and-choose双向不经意传输功能函数ℱ$_{ccbot}^{B,S}.$对于所有混乱电路中的每条输入线:在检测电路中, P2获得全部两个密钥; 在计算电路中, P2获得与参与方输入比特相对应的密钥.

步骤3. P1将所有混乱电路发送给P2.

步骤4. P2对所有检测电路进行检测, 检测通过后计算所有计算电路, 并取计算结果中占大多数的值作为协议输出.

通过对比该协议框架与基于cut-and-choose不经意传输的协议框架, 可以看出, 将cut-and-choose不经意传输替换为cut-and-choose双向不经意传输后, 协议框架明显得到简化, 新框架更清晰、更易于理解; 参与方之间的交互轮数明显得到降低.具体来说, 原有协议框架中的公开cut-and-choose指示比特串(步骤4)、发送检测电路中P1输入线密钥(步骤5)以及发送计算电路中P1输入对应密钥(步骤7)等诸多步骤都被省去.参与方P1仅需在构造完混乱电路后和P2运行一次批处理单选择cut-and-choose双向不经意传输协议, 然后将所有混乱电路发送给P2即可.剩余阶段不再需要P1参与, P2可以本地完成所有检测和计算操作, 从而极大地降低了协议的交互复杂度.

4 结束语

本文提出了一种称为cut-and-choose双向不经意传输的密码学原语, 并基于同态加密给出了仅需1轮交互的协议构造.该构造被形式化证明在半诚实模型下满足标准的安全性定义.此外, 本文详细阐述了该原语在基于cut-and-choose范例的安全两方计算中的应用和优势.在下一步的研究中, 我们将重点关注如何构造可抵抗恶意敌手攻击的cut-and-choose双向不经意传输协议, 使其能够真正应用到基于cut-and-choose范例的安全协议中.

参考文献
[1] Rabin MO. How to exchange secrets with oblivious transfer.TR-81:Cambridge & Boston, Massachusetts, Aiken Computation Laboratory, Harvard University, 1981.
[2] Crépeau C. Equivalence between two flavours of oblivious transfers. In:Pomerance C, ed. Advances in Cryptology-CRYPTO'87. Berlin:Springer-Verlag, 1988. 350-354.[doi:10.1007/3-540-48184-2_30]
[3] Naor M, Pinkas B. Efficient oblivious transfer protocols. In:Kosaraju SR, ed. Proc. of the 12th Annual ACM-SIAM Symp. on Discrete Algorithms. Philadelphia:Society for Industrial and Applied Mathematics, 2001. 448-457.
[4] Camenisch J, Neven G, Shelat A. Simulatable adaptive oblivious transfer. In:Naor M, ed. Proc. of the EUROCRYPT 2007. Berlin:Springer-Verlag, 2007. 573-590.[doi:10.1007/978-3-540-72540-4_33]
[5] Peikert C, Vaikuntanathan V, Waters B. A framework for efficient and composable oblivious transfer. In:Wagner D, ed. Proc. of the CRYPTO 2008. Berlin:Springer-Verlag, 2008. 554-571.[doi:10.1007/978-3-540-85174-5_31]
[6] Guo YB, Zhang ZN, Yang KW. Oblivious transfer based on physical unclonable function system. Journal on Communications, 2013, 34(Z1): 38–43 (in Chinese with English abstract). http://www.cnki.com.cn/Article/CJFDTOTAL-TXXB2013S1006.htm
[7] Garay JA, MacKenzie P, Yang K. Efficient and universally composable committed oblivious transfer and applications. In:Naor M, ed. Proc. of the TCC 2004. Berlin:Springer-Verlag, 2004. 297-316.[doi:10.1007/978-3-540-24638-1_17]
[8] Kiraz MS, Schoenmakers B, Villegas J. Efficient committed oblivious transfer of bit strings. In:Garay JA, Lenstra AK, Mambo M, Peralta R, eds. Proc. of the ISC 2007. Berlin:Springer-Verlag, 2007. 130-144.[doi:10.1007/978-3-540-75496-1_9]
[9] Ishai Y, Kilian J, Nissim K, Petrank E. Extending oblivious transfers efficiently. In:Boneh D, ed. Proc. of the CRYPTO 2003. Berlin:Springer-Verlag, 2003. 145-161.[doi:10.1007/978-3-540-45146-4_9]
[10] Nielsen JB, Nordholt PS, Orlandi C, Burra SS. A new approach to practical active-secure two-party computation. In:Safavi-Naini R, Canetti R, eds. Proc. of the CRYPTO 2012. Berlin:Springer-Verlag, 2012. 681-700.[doi:10.1007/978-3-642-32009-5_40]
[11] Asharov G, Lindell Y, Schneider T, Zohner M. More efficient oblivious transfer and extensions for faster secure computation. In:Sadeghi AR, ed. Proc. of the 20th ACM Conference on Computer and Communications Security. New York:ACM, 2013. 535-548.[doi:10.1145/2508859.2516738]
[12] Lindell Y, Pinkas B. Secure two-party computation via cut-and-choose oblivious transfer. In:Ishai Y, ed. Proc. of the TCC 2011. Berlin:Springer-Verlag, 2011. 329-346.[doi:10.1007/978-3-642-19571-6_20]
[13] Kiraz MS, Schoenmakers B. A protocol issue for the malicious case of Yao's garbled circuit construction. In:Lagendijk RL, Weber JH, eds. Proc. of the 27th Symp. on Information Theory in the Benelux. Eindhoven:Werkgemeenschap voor Informatie-en Communicatietheorie, 2006. 283-290.
[14] Goldreich O. Foundations of Cryptography:Volume Ⅱ, Basic Applications. New York: Cambridge University Press, 2004. .
[15] Yao ACC. How to generate and exchange secrets. In:Hopcroft J, ed. Proc. of the 27th Annual IEEE Symp. on Foundations of Computer Science. Washington:IEEE Computer Society, 1986. 162-167.[doi:10.1109/SFCS.1986.25]
[16] Lindell Y, Pinkas B. An efficient protocol for secure two-party computation in the presence of malicious adversaries. In:Naor M, ed. Proc. of the EUROCRYPT 2007. Berlin:Springer-Verlag, 2007. 52-78.[doi:10.1007/978-3-540-72540-4_4]
[17] Lindell Y. Fast cut-and-choose based protocols for malicious and covert adversaries. In:Canetti R, Garay JA, eds. Proc. of the CRYPTO 2013. Berlin:Springer-Verlag, 2013. 1-17.[doi:10.1007/978-3-642-40084-1_1]
[6] 郭渊博, 张紫楠, 杨奎武. 基于PUFS的不经意传输协议. 通信学报, 2013 , 34(Z1) : 38 –43. http://www.cnki.com.cn/Article/CJFDTOTAL-TXXB2013S1006.htm