1. 引言
隐私集合计算是安全多方计算 [1] [2] 领域中的一类重要问题,集合成员关系的保密判定问题是其中的一个基本问题,要求判定一个元素是否属于一个集合,而不泄露该元素和集合的具体信息。集合成员关系的保密判定问题在可搜索加密 [3]、访问控制 [4]、可撤销访问结构 [5] 等问题中有重要的应用。
集合成员关系保密判定可通过数据相等比较 [1] [6] [7]、两方集合交集或交集的势 [8] [9] [10] [11] [12]、集合包含关系 [13] [14] [15] [16] 的保密计算协议间接地来实现。上述方法或者需要将元素与集合中元素进行一一比较、或者不需要协议的全部计算功能,会使协议的效率欠佳或导致参与方拥有的信息泄露。文献 [17] 利用可交换加密方案提出了数集成员关系保密判定协议。文献 [18] 利用全同态加密,结合范德蒙行列式的性质,设计了集合成员判定关系的相关协议。上述协议均仅适用于整数集上的集合成员关系判定。文献 [19] 首次设计了有理数域上集合成员关系保密判定协议,并在数集成员关系保密判定协议的基础上,利用哥德尔编码将有理点编码为有理数,设计了点集成员关系的保密判定协议,但该协议只适用于2维有理点。
由于信息技术的快速发展,与坐标定位相关的应用软件得到了广泛应用,使用户的位置信息的私密性成为需要关注的问题。因此,设计有理点的相关保密计算协议有重要的实用价值。本文借助文献 [20] 中提出的按位编码思想,结合ElGamal同态加密算法,针对有理数集合成员关系和有理点集成员关系的判定问题设计了保密计算协议。
2. 预备知识
2.1. 安全多方计算模型
安全多方计算中通常使用半诚实模型和恶意模型。半诚实模型下的参与者会忠实地执行协议,但同时他们会保留执行协议中收到的中间信息,并试图推断其它参与者的输入。恶意模型下的参与者不按要求执行协议,可能有拒绝参加协议、提供错误的输入或者中间计算结果以及随时终止协议等行为。本文考虑半诚实模型下协议的安全性。
2.2. 半诚实模型下的安全性定义
设
拥有私密信息
,利用协议
合作计算函数
,其中
是
收到的输出。将参与者
收到的信息序列记为
,其中
是
的输入,
是
产生的随机数,
表示
收到的第t个消息。
定义1 [21] (半诚实模型下协议的安全性)对于
,若存在概率多项式时间模拟器
满足下式:
(1)
则称
保密地计算了
,其中符号
表示计算上不可区分。
可通过构造满足式 的概率多项式时间模拟器
来证明协议的安全性,此方法称为模拟范例 [21]。本文将用此方法证明协议的安全性。
2.3. ElGamal同态加密算法
同态加密的概念最早由RIVEST [22] 提出,可以通过对密文的操作实现对相应明文的计算。ElGamal加密算法 [23] 是基于有限域上计算离散对数问题的困难性和Diffie-Hellman假设设计的,算法描述如下:
1) 密钥生成算法
对给定安全参数k,系统生成一个k比特的大素数p和循环群
的一个生成元g。若选取随机数x作为私钥,对应公钥为
。
2) 加密算法E
对明文
,选取的随机数r,加密得密文:
。
3) 解密算法D
对于密文
,其明文为:
。
ElGamal同态加密算法具有乘法同态性。对于明文消息
,其密文
满足
。
3. 有理数域上集合成员关系保密判定
3.1. 编码方法
李顺东 [20] 等人为了解决多个有理数相等保密判定问题,提出了按位编码的方法,将一个有理数编码为一个矩阵,具体过程如下:
首先,对于参与者
持有的有理数
,其中
,
,统一其分子和分母位数分别为
,位数不够的情况按下式转换数据,
(2)
即通过在分子分母之前补0将其拥有的有理数的分子分母位数统一,并将其分子分母连接起来,其中
。其次,根据式(2)将有理数
按位编码为矩阵:
(3)
对于每一行
,有:
(4)
其中
且是非零的随机数。现将上述编码方法中的式(4)改为:
(5)
其中
且是大于1的随机数。下文将利用改动后的方法设计有理数域上集合成员关系的保密判定协议。
3.2. 有理数域上数集成员关系的保密判定
问题描述 Alice拥有有理数
,Bob拥有有理数集合
。双方希望在不泄露
,V中元素及V的势的前提下合作计算函数
:若
,
;否则,
。
计算原理 Alice和Bob依据式(2)将有理数
作如下转换:
(6)
其中
。Alice依据式(5)将有理数
编码为矩阵U,并将U发送给Bob。Bob对于其拥有的有理数
,依据式(6)中的
从
至
中依次取出对应位置编码
,计算
,容易得到以下命题是正确的。
命题1
当且仅当对于每一个
存在
。
协议1有理数域上数集成员关系的保密判定协议
输入:Alice输入
,Bob输入
。
输出:
准备:Alice和Bob依据式(2)对有理数
进行转换得到式(6)。
1. Alice执行以下操作:
1) 产生ElGamal同态算法的密钥对
;
2) 根据(5)式将
按位编码为矩阵U;
3) 利用公钥
加密矩阵U中
的分量,得加密矩阵:
(7)
其中
,
为随机数对。Alice将矩阵
及公钥
发送
给Bob。
2. 对于每个
,Bob执行以下操作:
1) 根据式 中的
从
中按位取出密文
,并计算:
(8)
2) 选取正整数l,满足
。从
中选取
个大于1的随机数
,并计算其密文
;
3) 对密文
的顺序进行随机置换,并按置换后的顺序发
送给Alice。
3. Alice解密收到的密文,记解密结果为
。若存在
,Alice输出
;否则,输出
。
正确性分析 命题1的正确性及本文采用的ElGamal加密算法的同态性保证了协议1的正确性。
安全性分析 Alice将加密矩阵
发送给Bob,由于Bob没有私钥,因此无法获得有理数
的任何信息。Bob将随机置换后的l个密文
发送给Alice,由于Alice不知道具体置换,因此无法推得集合V中任何元素的信息;同时,由于随机数
均大于1,则发送密文
给Alice的操作不影响协议的正确性且隐藏了集合V的势。
定理1 协议1在半诚实模型下是安全的。
证明:利用模拟范例证明协议1的安全性。在协议1中,
。首先构造模拟器
,
接受输入
,按照如下方式运行:
1) 随机选取有理数集
使得
,将
进行转换:
(9)
2)
将
编码为矩阵U,并加密得矩阵
,如式(7)所示。
3) 计算
,
,生成
个大于1的随机数
,计算其密文
。
4) 解密
,记解密结果为
,根据
可得
。
令
,其中
,
。而协议执行中,
。由于Bob没有私钥,根据ElGamal加密算法的语义安全性,对Bob来说,
以及
,其中
,
。由于随机数计算上不可区分,则
。又因为
,因此
。
可用类似方法构造,此处省略。定理1得证。
3.3. 有理数域上点集成员关系的保密判定
以n维有理点为例设计点集成员关系的保密判定协议。
问题描述 Alice拥有n维有理点
,Bob拥有n维有理点集合
,其中
。双方希望在不泄露X、Y中元素及Y的势的前提下合作计算函数
:若
,
;否则
。
计算原理 Alice和Bob依据式(2)将有理点
的坐标
作如下转换:
(10)
其中
,
。对于每一个
,Alice依据下式:
(11)
将
编码为矩阵
,并发送给Bob。对于每一个有理点
的坐标
,Bob依据式(10)中的
,从
至
中依次取出对应位置编码
,并计算:
。容易得到以下命题是正确的。
命题2
当且仅当对于每个
存在
。
协议2有理数域上点集成员关系保密判定协议
输入:Alice输入有理点
,Bob输入有理数集合
,其中
。
输出:
。
准备:Alice和Bob据式(2)对有理点
的坐标转换得到式(10)。
1. Alice执行以下操作:
1) 产生ElGamal加密算法的密钥对
;
2) 根据(11)式将
按位编码为矩阵
;
3) 利用公钥
加密矩阵
中
的分量,得加密矩阵:
(12)
其中
,
为随机数对。Alice将矩阵
及公钥
发送给Bob。
2. 对于每一个
和
,Bob执行以下操作:
1) 根据
从
中按位取出密文
,计算:
(13)
进一步计算
。
2) 选取正整数l,满足
。从
中选取
个大于1的随机数
,并计算其密文
;
3) 对密文
的顺序进行随机置换,并按置换后的顺序发
送给Alice。
3. Alice解密收到的密文,记解密结果为
。若存在
,Alice输出
;否则,输出
。
正确性分析 命题2的正确性以及本文采用的ElGamal加密系统的同态性保证了协议2的正确性。
安全性分析 X、Y中元素及Y的势的隐私性可类似于协议1中
、V中元素及V的势的隐私性进行分析。
定理2 协议2在半诚实模型下是安全的。
定理2的证明类似于定理1的证明,故省略。
4. 协议分析与比较
本文中设计的协议用到了ElGamal同态加密算法,计算复杂性分析只考虑费时的模指数运算。用通信次数衡量协议的通信复杂性,一方发送给另一方算一次。
计算复杂性分析 每进行一次ElGamal加密(解密)操作需要2次(1次)模指数运算。协议1中Alice需加密
次,解密l次;Bob需加密
次。因此,协议1共需
次模指数运算。类似地进行分析可知协议2共需
次模指数运算。
通信复杂性分析 协议1和协议2的通信次数均为2次。
将本文设计的协议与文献 [19] 中的协议进行比较,结果如表1所示。

Table 1. The comparison of protocols
表1. 协议的比较
注解:其中l均是参与方为隐藏集合的势选取的正整数。
相比文献 [19],当参与计算的有理数按(2)式统一转换后,当
时,协议1计算复杂性低;当
且
时,协议2计算复杂性低。本文协议的通信效率高于文献 [19] 中的协议。此外,协议2可用于
维有理点。
5. 结束语
针对有理数域上集合成员关系的保密判定问题,本文借助文献 [20] 中按位编码的方法,提出了有理数集成员关系和有理点集成员关系的保密判定协议,且点集成员关系的保密判定协议适用于
维有理点。比较分析表明本文设计的协议通信效率高于相关协议,当参与计算的有理数满足一定条件时,本文协议的计算复杂度更低。因此,未来将进一步研究高效的集合成员关系的保密判定协议。