Page 314 - 《软件学报》2021年第11期
P. 314

3640                               Journal of Software  软件学报 Vol.32, No.11, November 2021

                    协议 4.  多方向量相等保密判定协议.
                    输入:m 个参与者 P i (i∈[1,m])分别输入有理数向量 X i .
                    输出:P(X 1 ,…,X m ).
                                                                                     2
                    准备:(a)  对于每一个 P i (i∈[2,m]),P i 分别随机选取非零有理数 S i 构造向量 X ′ =     (2SX  , S−  2 ) ,并随机选取有
                                                                                i    i  i  i
                                                                                           2
                 理数 a i1 ,…,a in 和有理数向量 X i1 ,…,X in ,使得 X ′ =  aX +  ... a X+  ;(b) P 1 构造向量 X ′ =  (X  ,| X  | ) ,并随机选取有
                                                    i  1 i  1 i  in  in           1   1  1
                 理数 b i1 ,b i2 和有理数向量 U i1 ,U i2 (i∈[2,m]),使得 X ′ =  bU +  b U .
                                                       1   1 i  1 i  2 i  2 i
                    1.   P i (i∈[2,m])和 P 1 分别将向量 X ′ 和 X ′ 作为协议 1 的输入向量,按照准备阶段(a)和阶段(b)合作调用协
                                                 i   1
                         议 1(注解 1 的点积协议),P 1 得到 z 2 ,…,z m ,并计算 Z=z 2 +…+z m ,其中, z =  X ′⋅  X ′ .
                                                                              i   i  1
                    2.   每一个 P i ,i=2,…,m:
                                                   2
                         (a)  从 P i−1 处接收到 w i− 1  =  S i 2  | X i  | ;
                         (b)  将 w i 与 w i−1 相加,最后得到 W=w 2 +…+w m ,并发送给 P 1 .
                    3.   P 1 比较 Z 和 W:如果 Z=W,输出 P(Z,W)=1;否则,输出 P(Z,W)=0.
                    协议 4 的正确性.  需要证明 W=Z⇔X 1 =…=X m .
                    根据 Z =  z +  ... z+  X ′=  X ′ ⋅  +  ... X ′+  X ′ ⋅  =  (2S X ⋅ 2  X −  S 2  | X  | ) ... (2S X+  2  +  2  ⋅  X −  S 2  | X  | ) ,那么,W−Z=
                                                                                            2
                             2     m   2  1      m  1    2  2  1  2  1        m  m  1  m   1
                         2
                                        2
                 (S 2 X 2 −S 2 X 1 ) +…+(S m X m −S m X 1 ) .因此,W=Z⇔∀i∈[2,m],S i X i −S i X 1 =0⇔∀i∈[2,m],X i −X 1 =0⇔X 1 =…=X m .
                    因此,协议 4 是正确的.
                    协议 4 的安全性.  协议 4 是基于向量点积协议 1 设计的,当不考虑合谋攻击时,由协议 1 的安全性分析可知,
                 参与者 P i (i∈[2,m])向量的安全性完全类似于协议 1 中 Alice 向量的安全性.参与者 P 1 向量的安全性完全类似于
                 协议 1 中 Bob 向量的安全性.因此,在协议 4 中,各参与者的向量是安全的.
                    下面我们主要分析协议 4 中的合谋攻击.由于在协议 4 中,参与者 P 1 拥有向量点积 X ′                   1  X ′ ⋅  2 ,..., X ′  1  X ′ ⋅  m  ,若 P 1

                 与其他参与者合谋,很容易判断出哪些向量 X i (i∈[2,m])与向量 X 1 相等.因此,我们将仅考虑参与者 P 1 不参与合谋
                                                                       2
                                                                    2
                 的情况.假设参与者 P 3 ,…,P m 合谋,他们最多可得到参与者 P 2 的 SX 值.由于 S 2 是 P 2 的保密数据,因此无法得
                                                                    2
                                                                      2
                 到向量 X 2 的任何信息.
                    根据协议 4 的设计过程可知,协议仅应用基本的算术运算解决多方向量相等保密判定问题,计算效率较高;
                 但是协议 4 需要限制参与者 P 1 不参与合谋攻击,具有一定的局限性.据我们所知,现有的抵抗合谋攻击的保密计
                 算协议均需要借助公钥加密方案,例如:利用 ElGamal 同态加密方案可以构造门限密码体制,进而设计可以抵抗
                 合谋攻击的多方保密计算协议.现有信息论安全的协议很难有效抵抗合谋攻击,均需要设定一些限制条件.
                 6.2   向量和矩阵的保密计算问题
                    假设 Alice 有一个 m 维有理数向量 X=(x 1 ,…,x m ),Bob 有一个 m×n 阶的有理数矩阵 A=(a ij ),Alice 和 Bob 想要
                 保密计算 X 和 A 的乘积.
                    记矩阵 A 的第 i 个列向量为 A i (i=1,…,n),则有以下的关系:
                                                    Y=XA=(X⋅A 1 ,…,X⋅A n ).
                    因此,计算 X 和 A 的乘积问题即转化为计算 X 与 A 的列向量的内积问题.利用这一原理,构造向量与矩阵乘
                 积保密计算协议如下:
                    协议 5.  向量和矩阵乘积保密计算协议.
                    输入:Alice 和 Bob 分别输入有理数向量 X=(x 1 ,…,x m )和有理数矩阵 A=(a ij ) m×n .
                    输出:Alice 输出 Y=XA.
                    1.   Alice 将向量 X=(x 1 ,…,x m )按以下方式进行分解:随机选取有理数 a 1 ,…,a t 和有理数向量 X i =(x i1 ,…,x im )
                        (i∈[1,t],2≤t<n),使得 X=a 1 X 1 +…+a t X t .Alice 将向量(X 1 ,…,X t )发送给 Bob;
                    2.   Bob 计算 z 1 =X 1 A,…,z t =X t A,将 z 1 ,…,z t 发送给 Alice;
                    3.   Alice 计算 Z=a 1 z 1 +…+a t z t ;
   309   310   311   312   313   314   315   316   317   318   319