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

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

                 对于 i∈[1,m],记 u i =s i a i ,v i =s i b i ,w i =s i c i ,并记 X=(x 0 ,y 0 ,1),A i =(u i ,v i ,w i )以及
                                                           ⎛  u  u  ... u  ⎞
                                                           ⎜  ⎜  1  2  m ⎟  ⎟
                                               A =  ( ,..., A m ) =  ⎜  ⎜  v 1  v 2  ... v m ⎟  ⎟    (15)
                                                  A
                                                   1
                                                           ⎜           ⎟
                                                           ⎜  w  w  ... w ⎟
                                                           ⎝  1  2    m ⎠
                 则条件(14)可表示为 Y=XA=(X⋅A 1 ,…,X⋅A n )>0.如此,可以通过计算 Y=XA,根据其每个分量是否大于 0 来判断点 P 0
                 是否在多边形 S 内部.
                    为方便后面的叙述,定义二元谓词 P(P 0 ,S)如下:如果点 P 0 在多边形 S 内部,定义 P(P 0 ,S)=1;否则,P(P 0 ,S)=0.
                 根据上面的计算原理,容易设计出点与多边形位置关系的保密判定协议,具体如下.
                    协议 6.  点与凸多边形的位置关系判定协议.
                    输入:Alice 输入点 P 0 (x 0 ,y 0 ),Bob 输入凸多边形 S:P 1 P 2 …P m ,顶点坐标为 P i :(x i ,y i )(i∈[1,m]).
                    输出:Bob 输出 P(P 0 ,S).
                    1.   Bob 按照公式(15)计算矩阵 A.
                    2.   Alice 将向量 X=(x 0 ,y 0 ,1)按以下方式进行分解:随机选取有理数 t 1 ,t 2 ,t 3 和有理数向量 X i =(x i1 ,x i2 ,x i3 )(i=1,
                        2,3),使得 X=t 1 X 1 +t 2 X 2 +t 3 X 3 ,其中,t=t 1 +t 2 +t 3 >0;并将(X 1 ,X 2 ,X 3 )发送给 Bob.
                    3.   Bob 随机选取有理数 r i >0,i∈[1,m]和有理数 s,计算 A =     (rA  ,...,r A  ) 和 Z =  XA sE+  ,Z =  X A sE+  ,
                                                                      11   m  m   1   1      2   2
                         Z =  XA sE+  ,其中,E=(1,…,1);并将(Z 1 ,Z 2 ,Z 3 )发送给 Alice.
                          3   3
                                    1
                    4.   Alice 计算 Z =  (tZ +  t Z +  t Z  ) ,选取向量 Z 中的最小分量 z min 发送给 Bob.
                                    t  11  2  2  3  3
                    5.   Bob 比较 z min 与 s.如果 z min >s,Bob 输出 P(P 0 ,S)=1;否则,输出 P(P 0 ,S)=0.
                    协议 6 的正确性.  我们首先证明 Z =       1  XA sE+  成立.
                                                 t
                    根据矩阵运算性质,对于向量 X=(x 0 ,y 0 ,1),及 X 的任意分解方式 X=t 1 X 1 +t 2 X 2 +t 3 X 3 ,均有以下等式成立:
                                1               1                                   1
                             Z =  (t Z +  11  t Z +  2  2  t Z 3 ) =  ( ( t X AsE+  1  ) t X A sE+  2 (  2  +  ) t X AsE+  3 (  3  +  )) =  XAsE+  ;
                                           3
                                                  1
                                 t              t                                   t
                    进一步,根据有理数 r i >0,i∈[1,m]和 t>0 可知:
                                  Y =  XA =  (X A⋅  1 ,..., X A⋅  m ) >  0 ⇔  XA =  (r XA 1 ,...,r XA m ) >  0 ⇔  z min  >  . s
                                                                1
                                                                       m
                 因此,协议 6 是正确的.
                    协议 6 的安全性.  协议 6 是结合协议 1 和协议 3 的设计思想进行设计的,类似于协议 1 和协议 3 的安全性
                 证明思想进行证明.
                    首先考虑 Alice 向量的安全性.Alice 秘密选择有理数 t 1 ,t 2 ,t 3 和有理数向量 X 1 ,X 2 ,X 3 ,将向量 X=(x 0 ,y 0 ,1)进行
                 分解.Bob 在协议执行中得到 Alice 发送的 X 1 ,X 2 ,X 3 ,Bob 由关系式 X=t 1 X 1 +t 2 X 2 +t 3 X 3 ,即
                                                   x = ⎧  tx +  t x +  t x
                                                  ⎪  0  1 11  2 21  3 31
                                                    y = ⎨  0  t x +  1 12  t x +  2 22  t x          (16)
                                                                 3 32
                                                  ⎪
                                                    =
                                                  ⎩ 1 tx +  113  t x +  2 23  t x
                                                                3 33
                 推算 X 的相关信息.方程组(16)中有 3 个方程,但含有 5 个未知数 x 0 ,y 0 ,t 1 ,t 2 ,t 3 .由于 t 1 ,t 2 ,t 3 均由 Alice 随机选择,Bob
                 即使有无限的计算能力,也得不到向量 X 的任何信息.在第 4 步中,Bob 还收到 Alice 发送的向量 Z 中最小分量
                 z min .如果 Bob 猜测对于某一个 i ∈  0  [1, ],m z min  =  z ,这时,Bob 可联立求解方程组(16)以及 z min  =  (r 0 i  / )t X A⋅  0 i  +  s ,得
                                                      0 i
                 到关于 x 0 ,y 0 的一个关系式.由于 Bob 无法获知对于哪个分量有 z min =z i ,Bob 能猜对 x 0 ,y 0 关系式的概率仅有 1/m.
                    下面再考虑 Bob 向量的安全性.在协议执行中,Alice 仅获得 Bob 发送的信息:
                                          ⎧ Z =  XA sE = +  (r X ⋅  A +  s ,...,r X ⋅  A +  ) s
                                          ⎪  1  1       1  1  1   m  1  m
                                           Z = ⎨  2  XA sE = +  (r X ⋅  1  2  A +  1  s ,...,r X ⋅  m  2  A +  m  ) s  (17)
                                                2
                                          ⎪
                                          ⎩ Z =  3  XA sE+  3  =  (r X ⋅  1  3  A +  1  s ,...,r X ⋅  m  3  A +  m  ) s
   311   312   313   314   315   316   317   318   319   320   321