组织之间的协同管理决策就是利用各组织甚至个人的信息,协同制订全局优化决策问题的解决方案.然而组织间的管理或运营数据,不仅仅存在分布性、异构性等大数据的特点,关键还涉及到众多组织不愿意公开的信息,通常称这类信息为“隐私信息”[1].如何保护好各自的隐私信息,又能完成协同决策问题,是大数据时代典型的组织协同优化决策问题的重要难题.
在供应链管理中,有联合库存管理(JMI)问题,产能约束下多个零部件的协同决策问题等等[2-6].但在联合优化决策时,无论是目标函数还是约束条件,可能需要使用到不同组织间的数据,如上下游企业或合同企业的资金、人员、生产能力与库存情况等.在供应链的上下游企业中并不愿意提供本组织内的真实数据给对方,也不愿意将数据交给所谓的“可信”第三方进行计算,因此,如何设计一个“好的”的协同分析机制,在不泄露原始数据的前提下,去完成协同优化决策问题.这就是保护组织隐私数据的协同决策问题[7].
安全多方计算(Secure Multi-party Computation,以下简称SMC)是目前解决大数据环境下这一类隐私保护计算问题的方法之一[8].安全多方计算这个概念最早是由图灵奖获得者Yao A C[9]于1982年提出的,即广为人知的百万富翁问题.Goldreich、Micali和Wigderson将其理论扩展,给出了一般的描述[10].由于安全多方计算具有广泛的应用前景,目前许多国内外专家都致力于安全多方计算的研究.人们都知道在SMC理论上,最有名的构造方法就是单调张成方法[11],它是通过存取结构(Access Structure)来给出安全多方协议的通用构造矩阵,然而在实际应用时,该方法有着明显的缺点,就是计算复杂度太高,以至于实际应用时难以按这一思路来设计合作机制.因此近年来学者针对不同的应用提出各种具体构造安全多方协议的方法,如Du对科学计算问题就提出了一些高效的安全多方协议,但是科学计算问题的结构是无穷的,Du的方法目前对简单的线性方程是有效的,对于其他系统,如动态系统、优化问题等就未必有效了[12].在国内,比较多的研究是针对供应链上的协同计算问题来研究,如供应链的订货管理[13],但该文只是针对一个成本函数来分析,没有考虑约束,因此,在得到成本函数的解析解后,再使用同态加密算法,这样处理方法还相对容易,加上同态算法的复杂度较高,使得实际效率不高.
在本文中,主要对组织间的决策机制分为异构与同构两种情况,并分别研究两种情况下的安全多方计算协议,及对它们的安全性给出证明.
1 基本概念与问题的提出 1.1 半诚实模型下的安全性定义本节给出了半诚实模型下的两方计算的安全性定义[6],多方计算的安全性定义可以类推.
在半诚实模型中,一个半诚实参与方在执行协议的过程中会忠实地履行协议,但他可能会保留所有中间结果,试图从中间结果推导出协议之外的信息.
设f:{0, 1}*×{0, 1}*→{0, 1}*×{0, 1}*是一个函数,f1(x, y)和f2(x, y)分别代表函数f(x, y)的第一个和第二个元素.∏是计算函数f的两方协议.协议的输入(x, y),执行协议∏时,参与方p1(p2)得到的信息记作
| $ \begin{array}{l} {\rm{VIEW}}_1^\Pi \left( {x, y} \right) = \\ \left( {x, {r^1}, m_1^1, \cdots, m_t^1} \right)\left( {{\rm{VIEW}}_2^\Pi \left( {x, y} \right) = \left( {x, {r^2}, m_1^2, \cdots, m_t^2} \right)} \right), \end{array} $ |
其中ri(i=1, 2)是参与方pi产生的随机数,mi1(mi2)是参与方p1(p2)接收到的第i个消息.OUTPUTi∏(x, y)(i=1, 2)表示pi方的输出结果,显然它是VIEWi∏(x, y)的一部分.
定义1 若存在多项式时间算法S1与S2使得下面两个公式成立,则π能保密地计算f.
| $ \begin{array}{l} {\left\{ {\left( {{S_1}\left( {x, {f_1}\left( {x, y} \right)} \right), {f_2}\left( {x, y} \right)} \right)} \right\}_{x, y \in {{\left\{ {0, 1} \right\}}^*}}}\mathop \equiv \limits^c \\ {\left\{ {\left( {{\rm{VIEW}}_1^\Pi \left( {x, y} \right), {\rm{OUTPUT}}_2^\Pi \left( {x, y} \right)} \right)} \right\}_{x, y \in {{\left\{ {0, 1} \right\}}^*}}}, \end{array} $ | (1) |
| $ \begin{array}{l} {\left\{ {\left( {{f_1}\left( {x, y} \right), {S_1}\left( {y, {f_2}\left( {x, y} \right)} \right)} \right)} \right\}_{x, y \in {{\left\{ {0, 1} \right\}}^*}}}\mathop \equiv \limits^c \\ {\left\{ {\left( {{\rm{OUTPUT}}_1^\Pi \left( {x, y} \right){\rm{VIEW}}_2^\Pi \left( {x, y} \right)} \right)} \right\}_{x, y \in {{\left\{ {0, 1} \right\}}^*}}}, \end{array} $ | (2) |
其中,
同态加密的概念是由Rivest、Adleman和Dertouzos于1978年提出的.同态加密的特殊性质使我们可以直接对密文进行某些运算来代替对明文的运算取得同样的效果,这样不影响明文数据的机密性.Paillier算法就是一种同加密算法[14],它有两个重要的性质:
(1) E(m1)⊕E(m2)=gm1+m1(r1r2)NmodN2=E(m1+m2);
(2) E(m1)m2=gm1m1(rm2)NmodN2=E(m1m2).
1.3 协同优化决策的模型本文主要针对大数据环境下的优化问题来研究各合作方的安全多方计算问题:
| $ \left. \begin{array}{l} {\rm{opt}}\;\xi {\rm{ = }}g\left( z \right), \\ {\rm{s}}{\rm{.t}}{\rm{.}}\;f\left( z \right) = 0. \end{array} \right\} $ | (3) |
下面给出协同优化决策时两类优化问题的安全多方计算问题.
1.3.1 决策变量同构时的优化决策问题设参与协同决策的决策方分别是P1, P2, …, Pn,共同求解以下问题:
| $ \left. \begin{array}{l} {\rm{opt}}\;\xi {\rm{ = }}g\left( {z, c} \right), \\ {\rm{s}}{\rm{.t}}{\rm{.}}\;f\left( {z, {\alpha _1}, {\alpha _2}, \cdots, {\alpha _n}} \right) = 0. \end{array} \right\} $ | (4) |
隐私假设:
(1) 决策变量是各方共享的;
(2) αi是Pi的隐私参数;
(3) 目标函数的参数c是共享的.
1.3.2 决策变量异构时的优化决策问题设参与方仍是Pi(i=1, 2, …, n),优化问题的结构如下:
| $ \left. \begin{array}{l} {\rm{opt}}\;\xi {\rm{ = }}g\left( {{z_1}, {z_2}, \cdots, {z_n}, c} \right), \\ {\rm{s}}{\rm{.t}}{\rm{.}}\;f\left( {{z_i}, {\alpha _i}} \right) = 0\;\;\;i = 1, 2, \cdots n. \end{array} \right\} $ | (5) |
隐私假设:
(1) zi是Pi的隐私决策变量;
(2) αi是Pi的隐私参数;
(3) 目标函数的参数c是共享的.
本文的后半部分将对以上两类问题的安全多方计算问题进行分析,并结合安全性证明.
2 约束同构时安全多方计算 2.1 模型与假设本节研究在半诚实模型下的约束同构的线性优化问题(本文只考虑存在最优解的安全多方计算,后面的计算亦是如此),其数学模型如下:
| $ \begin{array}{l} {\rm{max}}\;\xi {\rm{ = }}{\mathit{\boldsymbol{C}}^{\rm{T}}}\mathit{\boldsymbol{X}}, \\ {\rm{s}}{\rm{.t}}{\rm{.}}\left\{ \begin{array}{l} {\left( {\mathit{\boldsymbol{A}}_1^{\rm{T}}, \mathit{\boldsymbol{A}}_2^{\rm{T}}, \cdots, \mathit{\boldsymbol{A}}_n^{\rm{T}}} \right)^{\rm{T}}}\mathit{\boldsymbol{X}} = {\left( {\mathit{\boldsymbol{b}}_1^{\rm{T}}, \mathit{\boldsymbol{b}}_2^{\rm{T}}, \cdots, \mathit{\boldsymbol{b}}_n^{\rm{T}}} \right)^{\rm{T}}}, \\ \mathit{\boldsymbol{X}} \ge 0. \end{array} \right. \end{array} $ | (6) |
假设:
(1) C, X ∈ Rn为共享信息;
(2) Pi的隐私信息Ai, bi,其中Ai∈ Rmi×n,bi∈ Rmi, (一般m1+m2+…+mn≤n).
2.2 模型(6)的安全多方协议模型(6)用单纯形法求解的计算步骤如下:
Step1:找出初始可行基,确定初始基可行解,建立初始单纯形表.
Step2:在不泄漏隐私信息的情况下,P1, P2, …, Pn协同检查各非基变量的检验数,若σ≤0,则已得到最优解,计算结束.否则转入下一步.
Step3:根据max(σ)>0,确定了换入变量后,按照
Step4:求出新基变量以及新基变量对应的基可行解,得到新的单纯形表.
Step5:重复Step2~Step4,直到终止.
2.2.1 关于Step2的安全多方协议参与方Pi隐私数据xi,它们要共同计算
协议1 安全多方求和问题的解决方案
输入:参与方Pi拥有隐私数据为xi
输出:
(1) 若n为偶数,将n个参与者随机分成A和B组,对其重新编号,即A={A1, A2, …, Ak},B={B1, B2, …, Bk}(
① 假设(G, E, D)是Paillier同态加密方案,τ是设定的安全参数.参与方Ai运行G(τ)生成同态加密方案的公钥和密钥,用公钥加密ai得到密文E(ai);
② 将E(xi)与公钥一起发送给Bi;
③ Bi选择一个随机数ri,计算
E(ai+bi)=(riNE(ai)bi)modN2;
④ 将计算结果E(ai+bi)发送给Ai
⑤ Ai用私钥解密E(ai+bi)得到ai+bi,参与者集合A共同计算
(2) 若n为奇数,则再增加一个虚拟参与者Pn+1,他拥有的隐私数据为0,这样可以参照上面的协议来完成这个计算任务.
2.2.2 关于Step3的安全多方计算参与方Pi拥有隐私数据xi=min(θi),它们希望知道哪个xi最小,但又不愿意泄漏各自的xi.在此情况下, 探讨如何安全地进行比较.为了提高计算效率,本文将安全多方比较问题转换成多个安全两方比较问题,进而得到最终的计算结果.因此,这个计算问题可以归约为参与方A与B的隐私数据x与y的大小比较问题.
首先对保密的数据进行编码,不失一般性,假设x, y∈{w1, w2, …, wm}= U, 其中w1 < w2 < … < wm.进一步假设x=wk,y=wl,(1≤k, l≤m),那么x≤y当且仅当k≤l.解决方案基于下面的的观察:
根据x,y和U, 构造两个新的向量A =(a1, a2, …, am),B =(b1, b2, …, bm),其中
反之,如果x>y,那么k>l,a1=a2=…=al=0,则
因此保密地比较x, y的大小可以归约到保密计算
协议2 安全两方比较问题的解决方案
输入:参与方A的隐私数据为x,参与方B的隐私数据为y,设{x, y∈w1, w2, ···, wm}=U.
输出:P(x, y).
(1) 设x=rk,y=rl,参与方A和B分别构造两个向量A=(a1, a2, ···, am),B=(b1, b2, ···, bm),其中
| $ {a_i} = \left\{ \begin{array}{l} 0, \;\;i < k\\ 1, \;\;\;i \ge k \end{array} \right., {b_j} = \left\{ \begin{array}{l} 0, \;\;\;j < l\\ 1, \;\;\;j \ge l \end{array} \right.. $ |
(2) 假设(G, E, D)是Paillier同态加密方案,τ是设定的安全参数.参与方A运行G(τ)生成同态加密方案的私钥和公钥,用公钥加密向量A得到E(A)=(E(a1), E(a2), …, E(am)).
(3) 将E(A)与公钥一起发送给Bob.
(4) 参与方B选择一个随机数r,计算
| $ E\left( v \right) = \left( {{r^N}\prod\limits_{i = 1}^l {{{\left( {E\left( {{a_i}} \right)} \right)}^{{b_i}}}} } \right)\bmod {N^2} = E\left( {\sum\limits_{i = 1}^l {{a_i}{b_i}} } \right). $ |
(5) 将计算结果E(v)告诉参与方A.
(6) 参与方A用私钥解密E(v)得到v并告诉B.
2.3 安全性证明证明1 通过构造满足式(1)和(2)的模拟器S1,S2来证明协议1的安全性.S1工作过程如下:
(1) 给定输入(ai, ai+bi),S1随机选择一个b′i使得ai+b′i=ai+bi, 用ai, b′i来模拟;
(2) 加密ai得到E(ai);
(3) 选择一个随机数r′i,计算
| $ E\left( {{a_i} + {{b'}_i}} \right) = \left( {r_i^NE\left( {{a_i}} \right){{b'}_i}} \right)\bmod {N^2}; $ |
(4) 解密E(ai+b′i)得到ai+b′i.
在本协议中, VIEW1∏(ai, bi)={ai, E(ai), E(ai+bi), ai+bi}.令S1(ai, ai+bi)={ai, E(ai), E(ai+b′i), ai+b′i}.因为ai+b′i=ai+ bi,根据ai+bi的计算方法可知E(ai+bi)
证明2 通过构造满足式(1)和(2)的模拟器S1,S2来证明协议2的安全性.S1工作过程如下:
(1) 给定输入(x, P(x, y)),S1随机选择一个y′∈{w1, w2, …, wm}使得P(x, y′)=P(x, y),用x,y′来模拟.首先按照协议构造向量A =(a1, a2,…, am),B′=(b′1, b′2, …, b′m).
(2) 加密A得到
| $ E\left( \mathit{\boldsymbol{A}} \right) = \left( {E\left( {{a_1}} \right), E\left( {{a_2}} \right), \cdots, E\left( {{a_m}} \right)} \right). $ |
(3) 选择一个随机数r′,计算
| $ E\left( {v'} \right) = \left( {{{\left( {r'} \right)}^N}\prod\limits_{i = 1}^l {{{\left( {E\left( {{a_i}} \right)} \right)}^{{{b'}_i}}}} } \right)\bmod {N^2} = E\left( {\sum\limits_{i = 1}^l {{a_i}{{b'}_i}} } \right). $ |
(4) 解密E(v′)得到v′.
在本协议中,VIEW1∏(x, y)={ A, E(A), E(v), v}.令S1(x, P(x, y))={ A, E(A), E(v′), v′}.因为P(x, y′)=P(x, y),根据v的计算方法可知v=v′,E(v)x, y
例子1 Alice掌握:A1, b1,Bob掌握:A2, b2,其中Ai∈ Rmi×n, bi∈ Rmi(i=1, 2)(一般的m1+m2≤n).在不完全泄漏各自隐私的情况下,共同解决线性规划问题:
| $ \begin{array}{l} \max \xi = {\mathit{\boldsymbol{C}}^{\rm{T}}}\mathit{\boldsymbol{X}}, \\ \text{s.t.}\left\{ \begin{array}{l} {\left( {\mathit{\boldsymbol{A}}_1^{\rm{T}}, \mathit{\boldsymbol{A}}_2^{\rm{T}}} \right)^{\rm{T}}}\mathit{\boldsymbol{X}} = {\left( {\mathit{\boldsymbol{b}}_1^{\rm{T}}, \mathit{\boldsymbol{b}}_2^{\rm{T}}} \right)^{\rm{T}}}, \\ \mathit{\boldsymbol{X}} \ge 0. \end{array} \right. \end{array} $ | (7) |
为了阐述方便起见,设
| $ \begin{array}{l} \left( \begin{array}{l} {\mathit{\boldsymbol{A}}_1}\\ {\mathit{\boldsymbol{A}}_2} \end{array} \right) = \left( {\begin{array}{*{20}{l}} {{\mathit{\boldsymbol{B}}_1}}&{{\mathit{\boldsymbol{D}}_1}}&{{\mathit{\boldsymbol{N}}_1}}\\ {{\mathit{\boldsymbol{D}}_2}}&{{\mathit{\boldsymbol{B}}_2}}&{{\mathit{\boldsymbol{N}}_2}} \end{array}} \right);\mathit{\boldsymbol{X}} = {\left( {\mathit{\boldsymbol{X}}_{{B_1}}^{\rm{T}}, \mathit{\boldsymbol{X}}_{{B_2}}^{\rm{T}}, \mathit{\boldsymbol{X}}_N^{\rm{T}}} \right)^{\rm{T}}};\\ \mathit{\boldsymbol{b}} = \left( {\mathit{\boldsymbol{b}}_1^{\rm{T}}, \mathit{\boldsymbol{b}}_2^{\rm{T}}} \right);\mathit{\boldsymbol{C}} = {\left( {\mathit{\boldsymbol{C}}_{{B_1}}^{\rm{T}}, \mathit{\boldsymbol{C}}_{{B_2}}^{\rm{T}}, \mathit{\boldsymbol{C}}_N^{\rm{T}}} \right)^{\rm{T}}}. \end{array} $ |
XB, XN分别表示基变量和非基变量,这时的线性规划问题可变换成如下的等价形式:
| $ \begin{array}{l} \max \xi = \mathit{\boldsymbol{C}}_{{B_1}}^{\rm{T}} + \mathit{\boldsymbol{C}}_{{B_2}}^{\rm{T}}\mathit{\boldsymbol{X}}_{{B_1}}^{\rm{T}} + \mathit{\boldsymbol{C}}_N^{\rm{T}}{\mathit{\boldsymbol{N}}_N}, \\ \text{s.t.}\left\{ \begin{array}{l} \left( {\begin{array}{*{20}{l}} \mathit{\boldsymbol{E}}&{\mathit{\boldsymbol{B}}_1^{-1}{\mathit{\boldsymbol{D}}_1}}&{\mathit{\boldsymbol{B}}_1^{-1}{\mathit{\boldsymbol{N}}_1}}\\ {\mathit{\boldsymbol{B}}_2^{-1}{\mathit{\boldsymbol{D}}_2}}&\mathit{\boldsymbol{E}}&{\mathit{\boldsymbol{B}}_2^{ - 1}{\mathit{\boldsymbol{N}}_2}} \end{array}} \right)\left( \begin{array}{l} {\mathit{\boldsymbol{X}}_{{B_1}}}\\ {\mathit{\boldsymbol{X}}_{{B_2}}}\\ {\mathit{\boldsymbol{X}}_N} \end{array} \right) = \left( \begin{array}{l} \mathit{\boldsymbol{B}}_1^{ - 1}{\mathit{\boldsymbol{b}}_1}\\ \mathit{\boldsymbol{B}}_2^{ - 1}{\mathit{\boldsymbol{b}}_2} \end{array} \right), \\ {\mathit{\boldsymbol{X}}_{{B_1}}}, {\mathit{\boldsymbol{X}}_{{B_1}}}, {\mathit{\boldsymbol{X}}_N} \ge 0. \end{array} \right. \end{array} $ |
该表达形式称为线性规划问题对应与基变量的典式.
用单纯形法求解,见表 1.
| 表 1 同构单纯形初始表 Table 1 The isomorphic initial simplex tableau |
其计算步骤如下:
Step1:找出初始可行基,确定初始基可行解,建立初始单纯形表.
Step2:在不泄漏隐私信息的情况下,Alice和Bob协同检查各非基变量的检验数,若σ≤ 0,则已得到最优解,计算结束.否则转入下一步.
Step3:根据max(σ)=σk>0,确定xk为换入变量后,按照
Step4:求出新基变量对应的典式以及新基变量对应的基可行解.
Step5:重复Step2~Step4,直到终止.
关于Step2和Step3的安全多方计算问题, 可用前面的协议1和协议2来解决,因此本节不再述说.
3 约束异构时安全多方计算 3.1 模型与假设本节研究在半诚实模型下的约束异构的线性优化问题,其数学模型如下:
| $ \begin{array}{l} \max \xi = \left( {\mathit{\boldsymbol{C}}_1^{\rm{T}}, \mathit{\boldsymbol{C}}_2^{\rm{T}}, \cdots, \mathit{\boldsymbol{C}}_n^{\rm{T}}} \right){\left( {\mathit{\boldsymbol{X}}_1^{\rm{T}}, \mathit{\boldsymbol{X}}_2^{\rm{T}}, \cdots, \mathit{\boldsymbol{X}}_n^{\rm{T}}} \right)^{\rm{T}}}, \\ {\rm{s}}{\rm{.t}}{\rm{.}}\left\{ \begin{array}{l} {\rm{diag}}\left( {{\mathit{\boldsymbol{A}}_1}, {\mathit{\boldsymbol{A}}_2}, \cdots {\mathit{\boldsymbol{A}}_n}} \right)\left( {\mathit{\boldsymbol{X}}_1^{\rm{T}}, \mathit{\boldsymbol{X}}_2^{\rm{T}}, \cdots, \mathit{\boldsymbol{X}}_n^{\rm{T}}} \right) = \\ \;\;\;\;\;\;\;\;\;\;{\left( {\mathit{\boldsymbol{b}}_1^{\rm{T}}, \mathit{\boldsymbol{b}}_2^{\rm{T}}, \cdots, \mathit{\boldsymbol{b}}_n^{\rm{T}}} \right)^{\rm{T}}}, \\ {\mathit{\boldsymbol{X}}_i} \ge \mathit{\boldsymbol{0}}, i = 1, \cdots, n. \end{array} \right. \end{array} $ | (8) |
假设:
(1) Ci∈ Rn为共享信息;
(2) Pi的隐私信息Ai, bi, Xi,其中Ai∈ Rmi×n,bi∈ Rmi, Xi∈ Rn(一般m1+m2+…+mn≤n).
3.2 模型(8)的安全多方协议模型(8)用单纯形法求解的计算步骤如下:
Step1:找出初始可行基,确定初始基可行解,建立初始单纯形表.
Step2:在不泄漏隐私信息的情况下,P1, P2, …, Pn独自检查各非基变量的检验数,若σi≤ 0,则已得到最优解,计算结束.否则转入下一步.
Step3:若max(σi)>0,P1, P2, …, Pn选出各自的max(σi),在不泄露各自信息的情况下,比较其大小,确定换入变量,进入下一步.
Step4:按θ规则,P1, P2, …, Pn独自计算θi,并选出各自的min(θi),在不泄露各自隐私的情况下,比较其大小,确定换出变量,再入下一步.
Step5:求出新基变量与其对应的基可行解.
Step6:重复Step2~Step5,直到终止.
Step7:P1, P2, …, Pn共同计算maxξ.
模型(8)涉及到的隐私计算问题是安全多方比较问题和安全多方求和问题,可以用协议1和协议2来完成这两个计算任务,因此本节不再详述.
3.3 例子分析例子2:Alice掌握:A1, b1,Bob掌握:A2, b2,其中Ai∈ Rmi×n, bi∈ Rmi(i=1, 2)(一般的m1+m2≤n),且C1, Χ2∈ Rn是公开的.在不完全泄漏各自隐私的情况下,共同解决线性规划问题:
| $ \begin{array}{l} \max \xi = \left( {\mathit{\boldsymbol{C}}_1^{\rm{T}}, \mathit{\boldsymbol{C}}_2^{\rm{T}}} \right){\left( {\mathit{\boldsymbol{X}}_1^{\rm{T}}, \mathit{\boldsymbol{X}}_2^{\rm{T}}} \right)^T}, \\ {\rm{s}}{\rm{.t}}{\rm{.}}\left\{ \begin{array}{l} {\rm{diag}}\left( {{\mathit{\boldsymbol{A}}_1}, {\mathit{\boldsymbol{A}}_2}} \right){\left. {\mathit{\boldsymbol{X}}_1^{\rm{T}}, \mathit{\boldsymbol{X}}_2^{\rm{T}}} \right)^{\rm{T}}} = {\left( {\mathit{\boldsymbol{b}}_1^{\rm{T}}, \mathit{\boldsymbol{b}}_2^{\rm{T}}} \right)^{\rm{T}}}, \\ {\mathit{\boldsymbol{X}}_i} \ge \mathit{\boldsymbol{0}}, i = 1, 2. \end{array} \right. \end{array} $ | (9) |
根据文献[15],Alice和Bob独自对系数增广矩阵(A1 b1)和(A2 b2)作保持可行性(即b列非负)的初等行变换,得到(A′1 b′1和(A′2 b′2); 其中diag(A′1, A′2)已含初始可行基.建立初始单纯形表,如表 2所示.
| 表 2 异构初始单纯形表 Table 2 The isomerous initial simplex tableau |
其计算步骤如下:
Step1:找出初始可行基,确定初始基可行解,建立初始单纯形表.
Step2:在不泄漏隐私信息的情况下,Alice和Bob各自检查各非基变量的检验数,若σ≤0,则已得到最优解,计算结束.否则转入下一步.
Step3:若max(σ)>0,Alice和Bob选出各自的max(σ1),max(σ2),在不泄露各自信息的情况下,比较其大小,确定换入变量,进入下一步.
Step4:按θ规则,Alice和Bob分别单独计算θ1和θ2,并选出各自的min (θ1),min(θ2),在不泄露各自信息的情况下,比较其大小,确定换出变量,再入下一步.
Step5:求出新基变量与其对应的基可行解.
Step6:重复Step2~Step5,直到终止.
Step7:P1, P2, …, Pn共同计算maxξ.
例子2的安全多方计算问题,可以用协议1和协议2来解决,因此本节不再详述.
4 结语无论是生产运作管理还是在供应链管理中,有大量的优化决策问题,本文仅仅是提出一种针对线性优化问题的安全多方计算协议,并对文中提出的协议的安全性给出了证明,研究表明该协议比一般的单调张成方法生成的安全多方计算协议具有较高的计算效率.在实际应用系统中,大部分的系统(如SCM,ERP)中的模型求解,多数使用Karmarkar方法,本文没有采用这个方法来设计SMC,也没有考虑非线性约束下的各类优化问题的SMC问题,当然这是非常庞大的研究内容,从目前的研究来看,也不太可能存在一种通用的设计方法,因此对于不同的优化系统,可能还是要先设计不同的SMC.
实际应用时,还要讲究计算的效率问题,目前多数SMC方法的计算复杂度比较高,如何提高实际协同决策时的SMC方法的计算效率,还是一个非常广阔的研究方向.
| [1] |
朱慧, 刘洪伟, 陈丽, 等. 网络用户的信息隐私边界及其敏感度等级研究[J].
广东工业大学学报, 2013, 30(4): 1-7.
Zhu H, Liu H W, Chen L, et al. Research on information privacy boundaries and sensitivity of net users[J]. Journal of Guangdong University of Technology, 2013, 30(4): 1-7. |
| [2] |
郭大宁, 张健. 供应链管理中的联合库存控制[J].
东华大学学报:自然科学版, 2003, 29(5): 63-66.
Guo D N, Zhang J. United inventory control on supply chainmanagement[J]. Journal of Donghua University:Natural Science, 2003, 29(5): 63-66. |
| [3] |
张广霞. 联合库存管理法在供应链库存控制中的应用[J].
中国市场, 2008, 4(15): 14-15.
Zhang G X. Joint inventory management appliance in the supply chain inventory control[J]. China Market, 2008, 4(15): 14-15. DOI: 10.3969/j.issn.1005-6432.2008.15.004. |
| [4] |
李果, 张祥, 马士华. 基于不同交货期策略的两供应-单制造商协同供货模型[J].
中国管理科学, 2010, 18(5): 66-75.
Li G, Zhang X, Ma S H. Supply coordination model of two suppliers and one manufacturer system based on different delivery policies[J]. Chinese Journal of Management Science, 2010, 18(5): 66-75. |
| [5] |
马士华, 龚凤美. 基于Supply Hub的供应商配送批量协同决策[J].
工业工程与管理, 2009, 14(2): 1-9.
Ma S H, Gong F M. Collaborative decision of distribution lot-sizing among suppliers based on supply hub[J]. Industrial Engineering and Management, 2009, 14(2): 1-9. |
| [6] |
李毅鹏, 马士华. 基于安全多方计算的产能约束供应商协调供货[J].
控制与决策, 2013, 28(11): 1623-1629.
Li Y P, Ma S H. Research on suppliers synchronization replenishment under performance constraint based on secure multi-party computation[J]. Control and Decision, 2013, 28(11): 1623-1629. |
| [7] |
刘洪伟, 石雅强, 梁周扬, 等. 面向聚类挖掘的局部旋转扰动隐私保护算法[J].
广东工业大学学报, 2012, 29(3): 28-34.
Liu H W, Shi Y Q, Liang Z Y, et al. Partial rotation perturbation for privacy-preserving clustering mining[J]. Journalof Guangdong University of Technology, 2012, 29(3): 28-34. |
| [8] |
Goldreich O. Foundations of Cryptography: Volume 2, Basic Applications[M]. Cambridge: England Cambridge university press, 2009: 332-410.
|
| [9] |
Yao A C. Protocols for secure computations[C]//M Thorup: 2013 IEEE 54th Annual Symposium on Foundations of Computer Science. Berkeley: IEEE Computer Society, 1982: 160-164.
|
| [10] |
Goldreich O, Micali S, Wigderson A. How to play any mental game[C]// Alfred V A: Proceedings of the nineteenth annual ACM symposium on Theory of computing. New York : ACM, 1987: 218-229.
|
| [11] |
刘木兰, 张志芳.
密钥共享体制和安全多方计算[M]. 北京: 电子工业出版社, 2008: 182-198.
|
| [12] |
Du W, Atallah M J. Privacy-preserving cooperative scientific computations[C]//Smith G: Proceedings of the 14th IEEE Computer Security Foundations Workshop. Nova Scotia: IEEE Computer Society, 2001: 0273-0273.
|
| [13] |
鲁芳, 仲伟俊, 张玉林. 成本信息保护下的安全供应链联合订货决策[J].
管理工程学报, 2009, 23(04): 163-165.
Lu F, Zhong W J, Zhang Y L. Secure supply-chain cooperative ordering decision under cost-information protection[J]. Journal of Industrial Engineering and Engineering Management, 2009, 23(04): 163-165. DOI: 10.3969/j.issn.1004-6062.2009.04.031. |
| [14] |
Paillier P. Public-key cryptosystems based on composite degree residuosity classes[C]// Jacques Stern: Advances in cryptology—EUROCRYPT'99. Berlin: Springer Berlin Heidelberg, 1999: 223-238.
|
| [15] |
申卯兴, 许进. 求解线性规划的单纯形法的直接方法[J].
计算机工程与应用, 2007, 43(30): 94-96.
Shen M X, Xu J. Direct way of simplex method for solving linear programming model[J]. Computer Engineering and Applications, 2007, 43(30): 94-96. DOI: 10.3321/j.issn:1002-8331.2007.30.030. |
2014, Vol. 31