失效
一种接受保证的隐私保护空间众包任务分配系统及方法
毛睿、李荣华、陆敏华、王毅、罗秋明、商烁
深圳大学
摘要
本发明公开了一种接受保证的隐私保护空间众包任务分配系统及方法,包括SC服务器、加密服务提供者、空间任务请求者和工人;加密服务提供者生成密钥,采用Paillier密码和ElGamal密码系统;空间任务请求者创建空间任务,将任务位置返回SC服务器;SC服务器加密任务位置,每个工人计算任务位置与工人位置的距离;每个工人的速度被加密发送SC服务器,每个工人计算其行进时间,加密后发送给SC服务器;SC服务器借助加密服务提供者计算获胜工人,加密服务提供者将含有多名获胜者的获胜者集加密后返回SC服务器;SC服务器加密任务位置向所有工人广播,获胜工人到达指定位置执行任务。本发明在空间众包中实现双方隐私保护,计算成本大大降低,能保证任务被高概率的接受。
1.一种接受保证的隐私保护空间众包任务分配系统,其特征在于,包括SC服务器、加密服务提供者、空间任务请求者和工人;所述SC服务器为空间众包服务器;所述加密服务提供者用于生成密钥,其采用Paillier密码系统和ElGamal密码系统,所述加密服务提供者生成ElGamal的域参数和Paillier和ElGamal的密钥对,其对私钥进行保密,并向SC服务器和所有工人发送公钥;所述空间任务请求者用于创建空间任务,将任务位置传送给所述SC服务器;所述SC服务器用公钥加密任务位置后,向所有工人发送密文,从SC服务器接收到该加密信息后,每个工人计算任务位置与工人位置的距离,从而计算得到隐私保护距离;每个工人的速度被加密并发送到与加密服务提供者协作的SC服务器,SC服务器对加密后的所有工人的速度求乘积,并由加密服务提供者解密得到V,发送给每个工人,V是所有工人速度的乘积;每个工人计算其行进时间,加密后发送给SC服务器;SC服务器借助加密服务提供者根据加密的隐私保护行进时间计算获胜工人,加密服务提供者将含有多名获胜工人的获胜工人集加密后返回给SC服务器;所述加密服务提供者从SC服务器获得所有工人的行进时间,按升序对其进行排序后,逐个添加工人到获胜工人集,直到达到预期的接受率;SC服务器加密任务位置并向所有工人广播,将任务分配给工人,加密后的任务位置只有获胜工人能解密,获胜工人到达指定位置执行相应的任务;空间任务s是指要在位置l s 执行,并与截止日期e s 相关联的任务;工人w是愿意执行空间任务的人,每个工人与由SC服务器指定的ID即id w ,速度v w 和其当前所处的位置l w 相关联;所述SC服务器根据工人集合W={w 1 ,w 2 ,…,w n }和空间任务s的位置l s 和截止日期e s ,通过任务分配算法,将任务分配给工作者w i* ,w n 中的n指工人的数量,w n 指第n个工人,工作者w i* 需满足两个条件:第一,w i* 可以在截止日期e s 之前到达l s ;第二,没有其他工人可以在w i* 之前到达l s 。
2.如权利要求1所述的系统,其特征在于,所述ElGamal是一个公钥密码系统,其安全性基于离散对数问题的难解性,它由多个用户共享的公共域参数和三种算法组成:–域参数:令p为大素数,q为中等素数,使得q|p–1;令g=r (p–1/q) mod p<>1,其中r∈F p * ;这些公共参数使用用生成参数g创建质数阶q的公共有限阿贝尔组G;–密钥生成:选择一个整数x,使得0≤x≤q–1并计算h=g x mod p;公钥pk为h,密钥sk为x;–加密E’:令m为G中的消息;通过选择随机数r来加密,其中0≤r≤q–1,并计算:c 1 =g r ,c 2 =mh r . (5)m的密文c为E’(m)=(c 1 ,c 2 );–解密D’:密文c通过如下计算进行解密:m=D’(c)=c 2 (c 1 x ) -1 (6)所述ElGamal密码系统能被扩展为支持交换式加密,采用如下两种新算法定义如下:–二次加密 给定用公钥ha加密的密文E’ha(m)=(gra,mhara),ra是随机数,其中0≤ra≤q–1;其通过选择随机数rb,其中0≤rb≤q–1,并计算c1=gra,c2=grb和c3=mh a ra h b rb ,其中h b 为公钥,来进行二次加密;E’ ha (m)的密文为 –二次解密 密文(c1,c2,c3)通过以不同的顺序使用私钥x a 和x b 进行解密,其解密结果是相同的;如果首先使用私钥x a ,有 E’ hb (m)被x b 再次解密以获得m;很容易验证,如果首先使用x b 然后使用x a ,解密结果也是相同的。
3.如权利要求1所述的系统,其特征在于,所述多名获胜工人集的是令W={w 1 ,w 2 ,…,w n }是n个工人的集合,给定空间任务s,将任务s分配给一组工人W * ,称为获胜工人集,使得:1,每个工人w i* ∈W * 都可以在截止日期e s 之前到达位置l s ;w i* 代表第i个获胜工人;2,没有其他工人w j ∈W\W * 可以在任何工人w i* ∈W * 之前到达位置l s ;w j 代表第j个非获胜工人;3,η(W * ,s)≥α,其中,η(W * ,s)表示W * 中至少一个工人接受任务s的概率,α是W * 中至少一名工人接受任务s的预期接受率。
4.一种如权利要求1-3任一项所述的系统的实现方法,其特征在于,包括如下步骤:第一阶段,任务位置与工人位置距离计算:空间众包服务器用Paillier公钥加密任务位置l s =(x s ,y s )后,向所有工人发送三份密文:E(x s 2 +y s 2 ),E(x s )和E(y s ),从空间众包服务器接收到该加密信息后,每个工人w i 计算l s 和其当前位置l i 的距离的平方,并进行加密,即:其中,d 2 (l i ,l s )为位置l i 和l s 之间的欧几里得距离的平方;x s 代表任务位置l s 横坐标,y s 代表任务位置l s 纵坐标,x i 代表当前位置l i 横坐标,y i 代表当前位置l i 纵坐标;第二阶段,每个工人行进时间计算:令W={w 1 ,w 2 ,…,w n }是n个工人的集合,V是所有工人速度的乘积,即 v k 是第k个工人的速度,k从1-n取值,且vk‘=V/vk,其中1≤k≤n;对于任意两个工人w i ,w j ∈W,当且仅当d(li,ls)vi‘<d(lj,ls)vj‘时有d(li,ls)/vi<d(lj,ls)/vj;d代表两个位置之间的欧几里得距离;为每个工人计算虚拟行程时间ti’=d(li,ls)vi‘,其等同于确切的行程时间ti=d(li,ls)/vi,即具有最短虚拟行程时间的工人必定具有最短的确切行程时间;lj是工人wj的位置,vj是工人wj的速度,vi是工人w i 的速度;第三阶段,获胜工人计算:SC服务器具有2元组<i,E(ti’ 2 )>的列表,其中i是工人w i 的ID,1≤i≤n;为了保护工人的身份,它通过一个PRF伪随机函数加密每个工人的ID,并向加密服务提供者发送<f k (i),E(tf k (i)’ 2 )>,加密服务提供者计算得到行进时间的获胜工人集,加密服务提供者按升序对其进行排序,然后逐个添加工人到获胜工人集,直到达到预期的接受率;f k (i)中f k 为PRF伪随机函数,f k (i)为对每个工人w i 的ID用PRF伪随机函数进行加密;第四阶段,任务位置广播:一旦接收到E’ C (f k (i * )),空间众包服务器便加密任务位置l s 并向所有工人广播 以如下方式加密l s :其中h是长度匹配哈希函数,用于将长位串映射到短位串;一种被证明是语义安全的h的构建方法是,将一个长位串截断为多个固定长度的短位串,并在这些短位串上进行异或计算并输出;只有获得E’ C (f k (i * ))信息的工人才能通过计算 得到任务位置信息。
5.如权利要求4所述的方法,其特征在于,所述第一阶段中,要求所有工人以E(x i 2 +y i 2 ),E(x i )和E(y i )的形式向空间众包服务器发送加密位置,并要求空间众包服务器计算E(d 2 (l i ,l s ))。
6.如权利要求4所述的方法,其特征在于,所述第二阶段中,每个工人通过ElGamal密码系统对其速度进行加密,并将E‘(v i )发送给空间众包服务器,空间众包服务器通过将所有加密的速度相乘获得E’(V);然后,空间众包服务器要求加密服务提供单元解密E’(V),并给所有工人移动端发送V;通过用其速度v i 除V,每个工人w i 得到v i ’的值并计算E(d 2 (l i ,l s ))v i ’ 2 =E(d 2 (l i ,l s )v i ’ 2 )=E(t i ’ 2 );加密的虚拟行程时间被发送到空间众包服务器进行进一步处理;上述第二阶段过程中加密服务提供单元和所有工人都知道V的确切值,这并不违反任何工人的个人隐私。
7.如权利要求4所述的方法,其特征在于,所述第三阶段中,由于加密服务提供者具有Paillier的私钥,因此能通过解密E(ti’ 2 )来获得ti’ 2 并计算实际的行程时间 然后,加密服务提供者按行程时间对所有工人进行排序并判断其是否可以在截止日期es之前到达任务位置,然后逐个添加工人到获胜工人集,直到达到预期的接受率;如果不能以预期的接受率接受任务,加密服务提供者则通知SC服务器没有工人集合可以保证任务被接受;否则,它使用ElGamal加密获胜工人集中每个获胜工人的ID f k (i*),并将E’C(f k (i*))发送到SC服务器。
8.如权利要求4所述的方法,其特征在于,所述第四阶段中,以下步骤确保只有获胜工人才能获得E’ C (f k (i * ))信息:首先,每个工人w i 从空间众包服务器获取加密的ID(f k (i)),并使用自己的公钥通过ElGamal进行加密,然后将加密后的信息E’w i (f k (i))发送给加密服务提供单元,加密服务提供单元接收到该信息后,使用其公钥和用于加密E’ C (f k (i * ))的相同随机数r再次通过ElGamal进行加密;加密服务提供单元随后将结果E’ C (E’w i (f k (i * ))发送到每个可以通过其私钥来解密以获得E’ C (f k (i))的工人;所述公钥应该保密,以保护隐私。



