2. 贵州师范学院 网络空间安全重点实验室, 贵阳 550018;
3. 贵州师范学院 教育科学学院, 贵阳 550018
提出一类安全两方计算问题,即安全变换相等问题,研究了如何在保护隐私的前提下,比较有限集合上的两个变换是否相等.基于具有加法同态性的加密体制,在半诚实攻击模型下构建了解决安全变换相等问题的一个协议,证明了协议是正确的,且协议在半诚实攻击模型下是安全的,并对协议的效率给予了说明.
2. Key Laboratory of Cyberspace Security, Guizhou Education University, Guiyang 550018, China;
3. School Education Science, Guizhou Education University, Guiyang 550018, China
A new secure two-party computation problem, called secure transformation-equivalence problem, is proposed, which researches how to determine whether two transformations, defined on some finite set, are equivalent in the sense of privacy preserving. Based on additively homomorphic encryption system, a secure transformation-equivalence determination protocol is constructed. It is proved that the protocol is correct, and the protocol is secure under the semi-honest adversary model. Furthermore, the efficient of the protocol is shown.
安全多方计算研究的是如何使一组互不信任的参与方实现保护隐私的协同计算问题, 即是这样一种分布式协议: n个参与方A1, A2, …, An分别拥有自己的秘密输入x1, x2, …, xn, 在不借助任何第三方的情况下, 它们联合计算某个n变元功能函数
(y1, y2, …, yn)=f (x1, x2, …, xn)
且至少满足2个基本特性: 1) 正确性, 即每个参与方Ai都得到本方的正确输出yi;2) 安全性, 即任何参与方的输入xi都未泄露给其他人, 包括协议的其它参与方以及其他任何第三方.仅涉及2个参与方的安全多方计算称为安全两方计算.
安全多方计算的思想是Yao[1]最先提出的.在Yao的开创性工作中, 提出了著名的百万富翁问题:两个富翁在街头相遇了, 在不向对方透露自己的财富的情况下, 他们想知道谁更富有. Yao将此问题抽象为隐私保护整数比较问题, 即分别拥有正整数a和b的2个人, 在不泄漏自己所拥有的整数的情况下, 如何比较a和b的大小,并给出了该问题的一个解决方案.此后,该思想受到了密码界的广泛关注. Goldreich等[2]将Yao的安全计算思想推广为一般的安全多方计算模型, 并且证明了在点对点网络模型中, 若攻击者计算能力是有限的, 则1) 在半诚实攻击模型下, 安全多方计算可行的条件是t<n;2) 在恶意攻击模型下, 安全多方计算可行的条件是t<n/2. Ben-Or等[3]和Chaum等[4]证明了在点对点网络模型中, 若攻击者拥有无限的计算能力, 则1) 在半诚实攻击模型下, 安全多方计算可行的条件是t<n/2;2) 在恶意攻击模型下, 安全多方计算可行的条件是t<n/3. Rabin等[5-6]证明了在广播网络模型中, 若攻击者拥有无限的计算能力, 则在半诚实攻击模型和恶意攻击模型下, 安全多方计算可行的条件都是t<n/2.
关于隐私保护整数比较问题, 由于Yao[1]提出方案的复杂度较高, 很多密码学工作者致力于研究该问题安全高效的解决方案. Jakobsson等[7]通过多轮迭代的方法给出了复杂度为多项式量级的一种解决方案;Ioannidis等[8]基于1-out-of-2健忘传输协议给出了一种解决方案, 需要并行地运行n个1-out-of-2健忘传输协议, n为输入长度;Blake等[9]基于同态加密体制给出了计算复杂度为16nlog N+28n、通信复杂度为4nlog N的一种解决方案.为避免复杂的公钥运算, Li等[10-11]尝试利用对称密码的思想来解决隐私保护整数比较问题, 尽管提出的方案的效率较高, 但马敏耀[12]指出它们的解决方案有时会输出错误的比较结果.
隐私保护整数比较问题比较的是2个整数的大小关系, 笔者提出一类新的安全两方比较问题, 即安全变换相等问题, 研究如何让两方在保护隐私的前提下, 比较有限集合上两个变换是否相等.非空集合X到自身的映射α:X→X称为集合X上的变换.对整数n (n>1), 令集合Xn={1, 2, …, n}, 将集合Xn上的所有变换构成的集合记为Tn, 即任意α∈Tn, α是这样的一个变换:α:Xn→Xn.对α∈Tn, 用α(i)表示i (i=1, 2, …, n)在α下的像.称Xn上的两个变换(即Tn中的两个元素)α和β是相等的如果α(i)=β(i)对所有的i=1, 2, …, n都成立.
笔者研究如何在保护隐私的情况下, 判断Xn上的2个变换,即Tn中的2个元素是否相等.此类问题有着丰富的应用背景, 例如在某些保护隐私的协作计算过程中, “双方拥有相同的变换”是整个计算过程有效进行的基本前提, 为此, 在计算真正开始之前, 双方需要在保护隐私的情况下执行某个协议, 来判断双方是否持有相同的变换.笔者在半诚实攻击模型下, 以具有加法同态性的加密体制为基本原语, 设计了求解安全变换相等问题的一个协议, 证明了其正确性和安全性, 并对其效率进行了说明.
1 知识准备下面给出所涉及的基本知识.延用上文的符号, 记Tn为集合Xn={1, 2, …, n}上的所有变换构成的集合.
定义1 Alice和Bob分别拥有变换α∈Tn和β∈Tn, 在未泄露各自所拥有的变换且不借助任何第三方的前提下, 判定α和β是否相等的问题称为安全变换相等问题.求解安全变换相等问题的协议称为安全变换相等判定协议.
1.1 有限域上的Lagrange插值多项式定义2[13] n是正整数, p是大于n的素数, 变换α∈Tn在GFp上的Lagrange插值多项式,定义为
${f_\alpha }\left( x \right) = \sum\limits_{i = 1}^n {} \left\{ {\alpha \left( i \right)\prod\limits_{j = 1,j \ne i}^n {} {{\left( {i - j} \right)}^{ - 1}}\left( {x - j} \right)} \right\}$ | (1) |
其中α(i)表示i (i=1, 2, …, n)在α下的像.可以验证, fα(x)∈GFp[x]是次数不超过n-1的多项式, 并且对任意i=1, 2, …, n, 都有fα(i)=α(i).
下面的结论是显然的(证明略):
定理1 n是正整数, p是大于n的素数, 变换α, β∈Tn在域GFp上的Lagrange插值多项式分别为
$\begin{array}{l} {f_\alpha }\left( x \right) = \sum\limits_{i = 1}^n {} \left\{ {\alpha \left( i \right)\prod\limits_{j = 1,j \ne i}^n {} \left[ {{{\left( {i - j} \right)}^{ - 1}}\left( {x - j} \right)} \right]} \right\}\\ {f_\beta }\left( x \right) = \sum\limits_{i = 1}^n {} \left\{ {\beta \left( i \right)\prod\limits_{j = 1,j \ne i}^n {} \left[ {{{\left( {i - j} \right)}^{ - 1}}\left( {x - j} \right)} \right]} \right\} \end{array}$ |
记fα(x)的系数向量为vα=(α0, α1, α2, …, αn-1), fβ(x)的系数向量为vβ=(β0, β1, β2, …, βn-1), 则有
${v_\alpha } = {v_\beta } \Leftrightarrow \alpha = \beta $ | (2) |
定义3 公钥加密体制E称为加法同态的, 如果在未知解密密钥的情况下, 能够从m1和m2的密文E (m1)和E (m2)有效地计算出m1+m2的密文E (m1+m2).
加法同态的加密体制具有如下特性: 1) 对任意正整数a, 能够从明文m的密文E (m)计算出数乘am的密文E (am). 2) 对有限域GFp上的n维加密向量E (v)和n阶矩阵M, 可以同态地计算加密向量E (v·M).若用∑M (i)表示矩阵M的第i列的所有元素的整数和, 则此计算过程中需要调用
在半诚实攻击模型下, 每个参与者都严格地执行协议的步骤, 但他们可能保留协议执行的中间结果, 试图推导出其他参与方的隐私输入.下面给出半诚实攻击模型下两方隐私函数计算的定义.
定义4[14] 记f:{0, 1}*×{0, 1}*→{0, 1}*×{0, 1}*是一个二元概率多项式时间函数, 其中f (x, y)=(f1(x, y), f2(x, y)). Π是计算f的一个双方协议.协议开始, 参与方P1和P2分别以x和y为输入, 执行协议后, P1和P2的view分别记为
$\begin{array}{l} {\rm{view}}_1^\mathit{\Pi }\left( {x,y} \right) = (x,{r^1},m_1^1,m_2^1, \ldots ,{m_t}^1)\\ {\rm{view}}_2^\mathit{\Pi }\left( {x,y} \right) = (y,{r^2},m_1^2,m_2^2, \ldots ,m_k^2) \end{array}$ |
其中:ri表示第i方的内部随机带输出, mji表示第i方收到的第j条信息. P1和P2的output分别记为output1Π(x, y)和output2Π(x, y).称Π在半诚实攻击模型下隐私计算f, 如果存在概率多项式时间算法S1和S2, 使下面的2个关系式成立:
$\begin{array}{l} \left\{ {{S_1}(x,{f_1}\left( {x,y} \right)),{f_2}\left( {x,y} \right)} \right\} \equiv c\\ \left\{ {{\rm{vie}}{{\rm{w}}_1}^\mathit{\Pi }\left( {x,y} \right),{\rm{outpu}}{{\rm{t}}_2}^\mathit{\Pi }\left( {x,y} \right)} \right\} \end{array}$ | (3) |
$\begin{array}{l} {f_1}\left( {x,y} \right),{S_2}(y,{f_2}\left( {x,y} \right))\mathop \equiv \limits^c \\ {\rm{outpu}}{{\rm{t}}_1}^\mathit{\Pi }\left( {x,y} \right),{\rm{vie}}{{\rm{w}}_2}^\mathit{\Pi }\left( {x,y} \right) \end{array}$ | (4) |
其中
下面基于有限域上的Lagrange插值多项式, 以加法同态加密体制为基本原语, 构造一个安全变换相等判定协议.在协议开始之前, 假定Alice和Bob商定了一个具有加法同态性的公钥加密体制, 例如Paillier加密体制[15]. Alice生成自己的公私钥对, 保密私钥, 将公钥k告知Bob.
协议1 安全变换相等判定协议
输入: Alice拥有变换α∈Tn, Bob拥有变换β∈Tn.
输出: Alice和Bob均输出α=β或α≠β.
协议步骤如下:
1) Alice首先计算α∈Tn的Lagrange插值多项式
$\begin{array}{l} {f_\alpha }\left( x \right) = \sum\limits_{i = 1}^n {} \left\{ {\alpha \left( i \right)\prod\limits_{j = 1,j \ne i}^n {} \left[ {{{\left( {i - j} \right)}^{ - 1}}\left( {x - j} \right)} \right]} \right\} = \\ \quad \quad \quad {a_0} + {a_1}x + {a_2}{x^2} + \ldots + {a_{n - 1}}{x^{n - 1}} \end{array}$ |
令vα=(a0, a1, a2, …, an-1), 然后利用公钥k计算加密向量Ek(vα)=(Ek(a0), Ek(a1), …, Ek(an-1)), 即对向量的各个分量进行加密.最后将Ek(vα)发送给Bob.
2) Bob收到Ek(vα)后, 执行如下步骤.
① 计算β∈Tn的Lagrange插值多项式
$\begin{array}{l} {f_\beta }\left( x \right) = \sum\limits_{i = 1}^n {} \left\{ {\beta \left( i \right)\prod\limits_{j = 1,j \ne i}^n {} \left[ {{{\left( {i - j} \right)}^{ - 1}}\left( {x - j} \right)} \right]} \right\} = \\ \quad \quad \quad {b_0} + {b_1}x + {b_2}{x^2} + \ldots + {b_{n - 1}}{x^{n - 1}} \end{array}$ |
令vβ=(b0, b1, b2, …, bn-1), 用Alice的公钥k计算加密向量Ek(-vβ)=(Ek(-b0), Ek(-b1), …, Ek(-bn-1)), 其中-bi表示bi在有限域GFp中的加法逆元.
② 根据Ek(vα)=(Ek(a0), Ek(a1), …, Ek(an-1))和Ek(-vβ)=(Ek(-b0), Ek(-b1), …, Ek(-bn-1)), 利用加密体制的加法同态性计算:
$({E_k}({a_0} - {b_0}), \ldots ,{E_k}({a_{n - 1}} - {b_{n - 1}})) = {E_k}({v_\alpha } - {v_\beta })$ |
③ 随机地生成GFp上的一个n阶可逆矩阵M, 利用加密体制的加法同态性计算Ek[(vα-vβ) M], 并将Ek[(vα-vβ) M]发送给Alice, 其中M是Bob的秘密矩阵.
3) Alice收到Ek[(vα-vβ) M]后, 用自己的私钥对其进行解密(分别解密每个分量), 得到向量δ=(vα-vβ) M.根据
4) Alice将比较结果发送给Bob, 协议结束.
3 协议分析 3.1 正确性分析定理2 在半诚实攻击模型下, 协议1执行结束后, 双方都输出正确的结果.
证明 在半诚实攻击模型下, Alice和Bob都严格地遵守协议规则, 由于δ=(vα-vβ) M, 其中M是有限域GFp上的n阶可逆矩阵, 所以, δ=(vα-vβ) M=0,当且仅当vα-vβ=0, 即vα=vβ.由定理1可知, vα=vβ当且仅当α=β.从而α=β当且仅当δ=(vα-vβ) M=0, 即
在半诚实模型下, A和B都严格遵循协议步骤, 允许他们借助自己在执行协议过程中的全部中间信息, 去推测对方的秘密输入.下面将证明协议1在该模型下是安全的.
定理3 协议1在半诚实攻击模型下是安全的.
证明 由于当″α=β″时, 双方都知道对方的输入.故证明过程中, 仅讨论″α≠β″的情形.令
f1(α, β)=f2(α, β)=″α≠β″
根据定义4, 需证明存在两个模拟器S1和S2, 分别满足半诚实攻击模型下隐私函数计算的两个条件.
首先构造模拟器S1, 使其满足定义4中的式(3) :
$\begin{array}{l} \left\{ {{S_1}(\alpha ,{f_1}\left( {\alpha ,\beta } \right)),{f_2}\left( {\alpha ,\beta } \right)} \right\}\mathop \equiv \limits^c \\ \left\{ {{\rm{vie}}{{\rm{w}}_1}^\mathit{\Pi }\left( {\alpha ,\beta } \right),{\rm{outpu}}{{\rm{t}}_2}^\mathit{\Pi }\left( {\alpha ,\beta } \right)} \right\} \end{array}$ |
协议1执行完之后, Alice的view为
${\rm{vie}}{{\rm{w}}_1}^\mathit{\Pi }\left( {\alpha ,\beta } \right) = \left( {\alpha ,{R^1},{E_k}\left[ {({v_\alpha } - {v_\beta })\mathit{\boldsymbol{M}}} \right]} \right)$ |
其中:α为Alice的输入, R1为Alice的内部随机带输出, Ek[(vα-vβ) M]为Alice从Bob处收到的信息.模拟器S1以(α, f1(α, β))=(α, ″α≠β″)为输入, 执行如下步骤:
1) S1计算α∈Tn的Lagrange插值多项式
$\begin{array}{l} {f_\alpha }\left( x \right) = \sum\limits_{i = 1}^n {} \left\{ {\alpha \left( i \right)\prod\limits_{j = 1,j \ne i}^n {} \left[ {{{\left( {i - j} \right)}^{ - 1}}\left( {x - j} \right)} \right]} \right\} = \\ \quad \quad \quad {a_0} + {a_1}x + {a_2}{x^2} + \ldots + {a_{n - 1}}{x^{n - 1}} \end{array}$ |
令vα=(a0, a1, a2, …, an-1), 然后用Alice的公钥k计算加密向量Ek(vα)=(Ek(α0), Ek(α1), …, Ek(αn-1)).
2) S1随机选取β*∈Tn满足α≠β*, 计算其Lagrange插值多项式
$\begin{array}{l} {f_{{\beta ^*}}}\left( x \right) = \sum\limits_{i = 1}^n {} \left\{ {{\beta ^*}\left( i \right)\prod\limits_{j = 1,j \ne i}^n {} \left[ {{{\left( {i - j} \right)}^{ - 1}}\left( {x - j} \right)} \right]} \right\}{b_0}^* + \\ \quad \quad \quad {b_1}^*x + {b_2}^*{x^2} + \ldots + b_{n - 1}^*{x^{n - 1}} \end{array}$ |
令vβ*=(b0*, b1*, b2*, …, bn-1*), 用Alice的公钥k计算加密向量
Ek(-vβ*)=(Ek(-b0*), Ek(-b1*), …, Ek(-bn-1*))
其中-bi*表示bi*在有限域GFp中的加法逆元.
3) S1根据Ek(vα)=(Ek(α0), Ek(α1), …, Ek(αn-1))和Ek(-vβ*)=(Ek(-b0*), Ek(-b1*), …, Ek(-bn-1*)), 利用加密体制的加法同态性计算
(Ek(a0-b0*), …, Ek(an-1-bn-1*))=Ek(vα-vβ*).
4) S1随机地生成GFp上的一个n阶可逆矩阵M*, 并利用加密体制的加法同态性计算Ek[(vα-vβ*) M*].
5) S1输出
S1(α, f1(α, β))=α, R*, Ek[(vα-vβ*) M*]
其中R*是S1的内部随机带输出.
下面证明
$\alpha ,{R^1},{E_k}\left[ {({v_\alpha } - {v_\beta })M} \right]\mathop \equiv \limits^c \left( {\alpha ,{R^*},{E_k}\left[ {({v_\alpha } - {v_{{\beta ^*}}}){M^*}} \right]} \right)$ |
即随机变量簇view1Π(α, β)和S1(α, f1(α, β))是计算不可区分的.首先, 由于R1和R*分别是Alice和S1的内部随机带输出, 故R1$\mathop \equiv \limits^c $R*,其次证明Ek[(vα-vβ*) M*]和Ek[(vα-vβ*) M*]的不可区分性:
1) 对除Alice之外的攻击者而言, 其不知道解密密钥(私钥), 由加密体制的安全性, 可保证Ek[(vα-vβ*) M*]和Ek[(vα-vβ*) M*]的不可区分性.
2) 对半诚实攻击者Alice而言, 其知道解密密钥, 能够从Ek[(vα-vβ*) M*]和Ek[(vα-vβ*) M*]分别得到(vα-vβ) M和(vα-vβ*) M*.由于α≠β且α≠β*, 根据定理1, 可得vα≠vβ且vα≠vβ*, 即满足vα-vβ和vα-vβ*都是非零向量.由于M*和M都是GFp上n阶随机可逆矩阵, 故在未知M*和M的情况下, (vα-vβ) M和(vα-vβ*) M*是不可区分的, 从而有
Ek[(vα-vβ*) M*]$\mathop \equiv \limits^c $Ek[(vα-vβ*) M*]
综上, 下面的关系式成立:
$\begin{array}{l} \left( {\alpha ,{R^1},{E_k}\left[ {({v_\alpha } - {v_\beta })M} \right]} \right)\mathop \equiv \limits^c \\ \left( {\alpha ,{R^*},{E_k}\left[ {({v_\alpha } - {v_{{\beta ^*}}}){M^*}} \right]} \right) \end{array}$ |
即S1(α, f1(α, β))$\mathop \equiv \limits^c $view1Π(α, β).由于变换相等函数是确定型的, 从而下关系式成立:
$\begin{array}{l} \left\{ {{S_1}(\alpha ,{f_1}\left( {\alpha ,\beta } \right)),{f_2}\left( {\alpha ,\beta } \right)} \right\}\mathop \equiv \limits^c \\ \left\{ {{\rm{vie}}{{\rm{w}}_1}^\mathit{\Pi }\left( {\alpha ,\beta } \right),{\rm{outpu}}{{\rm{t}}_2}^\mathit{\Pi }\left( {\alpha ,\beta } \right)} \right\} \end{array}$ |
类似地, 可以构造模拟器S2, 使定义4中的式(4) :
$\begin{array}{l} \left\{ {{f_1}\left( {\alpha ,\beta } \right),{S_2}(\beta ,{f_2}\left( {\alpha ,\beta } \right))} \right\} \equiv c\\ \left\{ {{\rm{outpu}}{{\rm{t}}_1}^\mathit{\Pi }\left( {\alpha ,\beta } \right),{\rm{vie}}{{\rm{w}}_2}^\mathit{\Pi }\left( {\alpha ,\beta } \right)} \right\} \end{array}$ |
成立, 定理证毕.
3.3 效率说明协议1的信复杂度为nK (其中K为密文长度).令∑M (i)表示矩阵M的第i列的所有元素的整数和, 在协议1的一次执行中, Alice和Bob的计算复杂度如表 1所示.
笔者提出一类新的安全两方计算问题, 即安全变换相等问题.为了构造该问题的解决方案, 首先通过有限域上的Lagrange插值多项式, 将此问题转化为判断有限域上的两个向量是否相等问题, 然后以具有加法同态性的加密体制为基本原语, 设计了解决安全变换相等问题的一个协议.协议被证明是正确的, 且被证明在半诚实攻击模型下是安全的.从效率方面来看, 协议的复杂度较低.对所选用的加密体制而言, 本文只要求其安全且具有加法同态性, Paillier[15]加密体制是一个可选的方案.笔者仅研究半诚实攻击者模型下的协议设计, 因此在下一步研究工作中, 可将如何在恶意模型下构建安全变换相等判定协议作为研究方向.
[1] | Yao A C C. Protocols for secure computations[C]//FOCS'82. Chicago: IEEE, 1982: 80-91. |
[2] | GoldreichO, Micali S, Wigderson A. How to play any mental game-a completeness theorem for protocols with honest majority[C]//STOC'87. New York: ACM, 1987: 218-229. |
[3] | Ben-Or M, Goldwasser S, Wigderson A. Completeness theorems for non-cryptographic fault-tolerant distributed computation[C]//STOC'88. Chicago: ACM, 1988: 1-10. |
[4] | Chaum D, Crépeau C, Damgard I. Multi-party unconditionally secure protocols (extended abstract)[C]//STOC'88. Chicago: ACM, 1988: 11-19. |
[5] | Rabin T, Ben-Or M. Verifiable secret-sharing and multiparty protocols with honest majority[C]//STOC'89. Seattle: ACM, 1989: 73-85. |
[6] | Beaver D. Secure multi-party protocols and zero-knowledge proof systems tolerating a faulty minority[J]. Journal of Cryptology, 1991, 4(2): 75–122. |
[7] | Jakobsson M, Yung M. Proving without knowing: on oblivious, agnostic and blindfolded provers[C]//CRYPTO'96. California: Springer, 1996: 186-200. |
[8] | IoannidisI, Grama A. An efficient protocol for yao's millionaires' problem[C]//Proceedings of the 36th Hawaii Internatinal Conference on System Sciences. Hawaii: (s.n.), 2003: 205-210. |
[9] | BlakeI F, Kolesnikov V. Strong conditional oblivious transfer and computing on intervals[C]//ASIACRYPT'04. Jeju Island: Springer, 2004: 515-529. |
[10] | Li S D, Wang D S, Dai Y Q, et al. Symmetric cryptographic solution to Yao's millionaires' problem and an evaluation of secure multiparty computations[J]. Information Sciences, 2008(178): 244–255. |
[11] | Li S D, Wang D S, Dai Y Q. Symmetric cryptographic protocols for extended millionaires' problem[J]. Science in China Series F, 2009, 52(6): 974–982. doi: 10.1007/s11432-009-0109-6 |
[12] | 马敏耀. 安全多方计算及其扩展问题的研究[D]. 北京: 北京邮电大学, 2010. http://cdmd.cnki.com.cn/Article/CDMD-10013-2010222227.htm |
[13] | LidlR, Niederreiter H. Finite fields[M]. Cambridge University Press, 1996. |
[14] | Goldreich O. Foundation of cryptography, Volume (Ⅱ): basic applications[M]. [S.l.]: Cambridge University Press, 2004. |
[15] | Paillier P. Public-key cryptosystems based on composite degree residuosity classes[C]//EUROCRYPT'99. Czech Republic: Springer, 1999: 223-238. |