一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种多维数据的安全查询方法及装置与流程

2022-02-22 18:31:15 来源:中国专利 TAG:


1.本发明涉及云计算与大数据技术领域,尤其是一种多维数据的安全查询方法及装置。


背景技术:

2.随着互联网的极速发展,人们在生活和工作中产生的数据量也大大增加。海量的数据被以多维数据的形式由数据拥有者集中存储,然后为用户提供一些出行、消费、医疗服务和科学研究等有价值的查询服务。然而,这种查询服务会带来巨大的存储和计算成本,同时用户的查询信息也会被数据拥有者清楚的知晓,不能保证用户的隐私安全。
3.随着云计算技术的发展,数据拥有者把数据存储到云服务器上,并由云服务器根据用户的请求提供查询服务已经是当下的主流趋势。由于这些数据是敏感信息,数据拥有者不希望自己的数据信息被云服务器获知,用户也不希望自己查询的隐私信息泄露给云服务器和数据拥有者。因此,数据安全问题是多维数据查询中亟待解决的关键问题。
4.传统的同态加密是在不需要解密的前提下完成对加密数据的运算。但是,由于该加密运算普遍需要大量的计算资源,并不适用于多维数据的安全查询。


技术实现要素:

5.本发明提供了一种多维数据的安全查询方法及装置,用于解决现有多维数据的查询方式不完善的问题。
6.为实现上述目的,本发明采用下述技术方案:
7.本发明第一方面提供了一种多维数据的安全查询方法,所述查询方法包括以下步骤:
8.用户向云服务器发送查询请求,所述查询请求中包括基于请求信息的加密查询参数的密文、用户身份标识、时间戳以及签名值;
9.云服务器接收所述查询请求,利用用户公钥验证所述签名值,并解密密文得到请求信息的加密查询参数;
10.云服务器通过存储的加密数据项及所述请求信息的加密查询参数,对加密数据项的每一维度进行比较计算,将得到的数据集合使用当前用户公钥进行加密,并通过云服务器私钥签名后,生成查询结果集,发送给用户。
11.进一步地,所述用户向云服务器发送查询请求之前还包括以下步骤:
12.初始化服务器获取安全参数ω,得到两个ω位的大素数p1和p2,运行gen(ω),得到若干个系统参数,所述系统参数包括计算群g、计算群g的映射群g
t
、大素数p1、大素数p2、生成元g、生成元u、对称加密的密钥k以及计算参数和
13.进一步地,所述用户向云服务器发送查询请求之前还包括数据拥有者、用户及云服务器向所述初始化服务器注册,具体包括:
14.数据拥有者或用户在注册时,随机选择数字作为其私钥sk,计算对应的公
钥pk=g
sk
,并将该公钥发送给初始化服务器,初始化服务器通过安全信道将《b1,b2,k》给注册的数据拥有者或用户;
15.云服务器在注册时,产生公私钥对并将公钥pk
cs
发送给初始化服务器用于签名验证;初始化服务器计算其中1≤j≤η,η是一个长度小于256比特的大整数,并构建评估数据集合 hps={hp1,hp2,

,hp
η
};初始化服务器按照大小顺序对集合中数据进行排序,并发送排序后的评估数据集合hps给云服务器。
16.进一步地,所述用户向云服务器发送查询请求之前还包括以下步骤:
17.数据拥有者将每一条数据项用一个n维向量表示;
18.通过加密算法和密钥k加密得到cxi;
19.通过如下公式(1)给所述数据项添加扰乱:
[0020][0021]
随机选择n个数r1,r2,

,rn,并计算加密属性参数
[0022]
通过公式(3)计算签名,其中sk是数据拥有者的私钥,id是数据拥有者的身份标识,ts1是当前时刻的时间戳,h()是杂凑函数;
[0023]
sig=h(fi||cxi||id||ts1)
sk
ꢀꢀ
(3)
[0024]
数据拥有者单元将签名后的数据项《fi||cxi||id||ts1||sig》发送给云服务器。
[0025]
进一步地,云服务器在接收到数据拥有者签名的数据项后,进行如下操作:
[0026]
将时间戳与当前时间进行对比,验证其时效性;
[0027]
验证公式(4)是否成立:e(g,sig)=e(pk,h(fi||cxi||id||ts1))
ꢀꢀ
(4);
[0028]
若成立,则存储签名验证后的数据项fi。
[0029]
进一步地,所述用户向云服务器发送查询请求的具体过程为:
[0030]
用户基于请求确定一个n维的参数向量(y1,y2,

,yn);
[0031]
按照公式(6),对所述参数向量进行计算:
[0032][0033]
按照公式(7),计算加密查询参数:
[0034][0035]
按照公式(8),利用云服务器公钥对所述加密查询参数进行加密,得到密文q:
[0036][0037]
按照公式(9),计算签名值,其中是用户自己的私钥,ts2是当前的时间戳,uj是用户身份标识:
[0038][0039]
将加密的查询请求《q||uj||ts2||sigj》发送给云服务器。
[0040]
进一步地,云服务器在接收到用户发送的查询请求后,计算查询结果集,具体过程为:
[0041]
建立临时窗口及临时文件;
[0042]
从初始集合中第一个数据点开始遍历,将数据点与临时窗口中的每一个数据点进行比较,判断支配性;
[0043]
若该数据点被临时窗口中的数据点支配时,丢弃该数据点,若该数据点支配临时窗口中的一个或多个数据点时,则将临时窗口中被支配的所述一个或多个数据点丢弃,将该数据点存入所述临时窗口中;若该数据点与临时窗口中所有数据点都互不支配时,则将该数据点存入所述临时窗口中;若临时窗口已满,则存入所述临时文件中;
[0044]
遍历完集合中所述数据点后,将临时文件中的第一个数据点插入临时窗口中的数据点输出作为sp点,将临时文件中的数据当作新的数据集合返回上一步计算;当初始集合中的所有数据点被丢弃或当成sp点输出后,终止计算,则所有的sp点的集合为查询结果集。
[0045]
进一步地,所述将数据点与临时窗口中的每一个数据点进行比较,判断支配性的具体过程为:
[0046]
选取两个云服务器上存储的加密数据项和以及用户单元的查询请求《q1,q2,

,qn》;
[0047]
通过公式(12),计算比较参数dk,k=1,2,

,n,
[0048][0049]
设置参数a、b和c,其初始值均设置为0;
[0050]
如果dk=1,则a的值加1;否则,计算hdk=h(dk),并在自身存储的评估数据集合hps中查找hdk,若找到该参数hdk,则b的值加1;若未找到该参数hdk,c的值加1;
[0051]
所有维度比较之后,在a=n的情况下,即fi和fj对于用户的查询条件而言是没有差别的,如果b》0,c=0,则fj支配fi,如果c》0,b=0,则fi支配fj;否则,fi和fj没有支配关系。
[0052]
本发明第二方面提供了一种多维数据的安全查询装置,所述装置包括:
[0053]
用户单元,用于向云服务器发送查询请求,所述查询请求中包括基于请求信息的加密查询参数的密文、用户身份标识、时间戳以及签名值;
[0054]
云服务器单元,用于接收所述查询请求,利用用户公钥验证所述签名值,并解密密文得到请求信息的加密查询参数;通过存储的加密数据项及所述请求信息的加密查询参数,对加密数据项的每一维度进行比较计算,将得到的数据集合使用当前用户公钥进行加密,并通过云服务器私钥签名后,生成查询结果集,发送给用户。
[0055]
进一步地,所述装置还包括:
[0056]
初始化控制单元,用于获取安全参数ω,得到两个ω的大素数p1和p2,运行gen(ω),得到若干个系统参数,所述系统参数包括计算群g、计算群g的映射群g
t
、大素数p1、大素数p2、生成元g、生成元u、对称加密的密钥k以及计算参数和还用于接收并处理数据拥有者单元、用户单元及云服务器单元的注册请求;
[0057]
数据拥有者单元,用于将数据源进行加密,并将签名后的数据项存储至云所述服务器单元
[0058]
本发明第二方面的所述安全查询装置能够实现第一方面及第一方面的各实现方式中的方法,并取得相同的效果。
[0059]
发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:
[0060]
本发明数据拥有者将加密的数据存储到云服务器端;用户将自己的请求加密运算后,生成查询请求发送给云服务器端;云服务器端收到用户加密的查询请求后,进行计算,得到满足用户查询请求的最优点集合,并将结果返回给用户。整个过程中数据项的具体内容以及查询请求的具体内容均不会被知晓,能提供高效、安全和准确的多维数据查询服务,还可以保护数据拥有者的数据安全,以及避免用户查询的隐私信息的泄露。
附图说明
[0061]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0062]
图1是本发明所述查询方法实施例的流程示意图;
[0063]
图2是本发明所述查询装置实施例的结构示意图。
具体实施方式
[0064]
为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
[0065]
如图1所示,本发明实施例提供的一种多维数据的安全查询方法,所述查询方法包括以下步骤:
[0066]
s1,用户向云服务器发送查询请求,所述查询请求中包括基于请求信息的加密查询参数的密文、用户身份标识、时间戳以及签名值;
[0067]
s2,云服务器接收所述查询请求,利用用户公钥验证所述签名值,并解密密文得到请求信息的加密查询参数;
[0068]
s3,云服务器通过存储的加密数据项及所述请求信息的加密查询参数,对加密数据项的每一维度进行比较计算,将得到的数据集合使用当前用户公钥进行加密,并通过云服务器私钥签名后,生成查询结果集,发送给用户。
[0069]
本发明实施例的其一实现方式中,所述用户向云服务器发送查询请求之前还包括以下步骤:
[0070]
初始化服务器获取安全参数ω,得到两个ω位的大素数p1和p2,运行gen(ω),得到若干个系统参数,所述系统参数包括计算群g、计算群g的映射群g
t
、大素数p1、大素数p2、生成元g、生成元u、对称加密的密钥k以及计算参数和
[0071]
其中以g为生成元的n阶双线性映射群g,生成元的n阶双线性映射群g,是n-1阶非零整数群。
[0072]
计算群g的另一个生成元u,并根据双线性映射函数e()计算群g的映射群g
t
;同时,根据群g的生成元u和大素数p2,计算系统参数初始化控制单元根据生成元g和大素数p1,以及双线性映射函数e(),计算系统参数和
[0073]
选择符合要求的非对称加密算法e()和杂凑函数h()。然后,随机选择一个128比特的数字作为对称加密的密钥k,随机选择一个数字作为其私钥sk
ta
,并计算对应的公钥然后,由初始化控制单元公开系统参数《m,g,g
t
,e,g,h,pk
ta
,e(),h(),k》,其中m=p1*p2。
[0074]
本发明实施例的其一实现方式中,所述用户向云服务器发送查询请求之前还包括数据拥有者、用户及云服务器向所述初始化服务器注册,具体包括:
[0075]
数据拥有者或用户在注册时,随机选择数字作为其私钥sk,计算对应的公钥pk=g
sk
,并将该公钥发送给初始化服务器,初始化服务器通过安全信道将《b1,b2,k》给注册的数据拥有者或用户;云服务器在注册时,产生公私钥对并将公钥pk
cs
发送给初始化服务器用于签名验证;初始化服务器计算其中1≤j≤η,η是一个长度小于256比特的大整数,并构建评估数据集合hps={hp1,hp2,

,hp
η
};初始化服务器按照大小顺序对集合中数据进行排序,并发送排序后的评估数据集合hps给云服务器。在数据拥有者、用户和云服务器注册完成后,采用离线或关闭服务的方式来防止单点攻击。
[0076]
本发明实施例的其一实现方式中,所述用户向云服务器发送查询请求之前还包括以下步骤:
[0077]
数据拥有者将每一条数据项用一个n维向量表示,在数据存储前,数据拥有者单元会对每一条数据都进行如下的计算操作:
[0078]
通过aes加密算法和密钥k加密得到cxi;
[0079]
通过如下公式(1)给所述数据项添加扰乱,用来防止恶意攻击。其中b1只被注册的用户和数据拥有者知晓:
[0080][0081]
随机选择n个数r1,r2,

,rn,并计算加密属性参数具体计算方法如下公式(2)所示:
[0082][0083]
通过公式(3)计算签名,其中sk是数据拥有者的私钥,id是数据拥有者的身份标识,ts1是当前时刻的时间戳,h()是杂凑函数;
[0084]
sig=h(fi||cxi||id||ts1)
sk
ꢀꢀ
(3)
[0085]
数据拥有者单元将签名后的数据项《fi||cxi||id||ts1||sig》发送给云服务器。
[0086]
云服务器在接收到数据拥有者签名的数据项后,进行如下操作:
[0087]
将时间戳t1与当前时间进行对比,验证其时效性;
[0088]
验证公式(4)是否成立:e(g,sig)=e(pk,h(fi||cxi||id||ts1))(4),原因如公式(5)所示:
[0089]
e(g,sig)=e(g,h(fi||cxi||id||ts1))
sk
[0090]
=e(pk,h(fi||cxi||id||ts1)
ꢀꢀꢀꢀꢀꢀꢀ
(5);
[0091]
若成立,则存储签名验证后的数据项fi。
[0092]
上述步骤s1中,为了保证用户查询信息的隐私性,注册用户在向云服务器单元发送查询请求前会对查询信息进行加密操作,所述用户向云服务器发送查询请求的具体过程为:
[0093]
用户基于请求确定一个n维的参数向量(y1,y2,

,yn);
[0094]
按照公式(6),对所述参数向量进行计算:
[0095][0096]
按照公式(7),计算加密查询参数(q1,q2,

,qn):
[0097][0098]
按照公式(8),利用云服务器公钥pk
cs
对所述加密查询参数进行加密,得到密文q:
[0099][0100]
按照公式(9),计算签名值,其中是用户自己的私钥,ts2是当前的时间戳,uj是用户身份标识:
[0101][0102]
将加密的查询请求《q||uj||ts2||sigj》发送给云服务器。
[0103]
步骤s2中,云服务器首先验证时间戳ts2的时效性,并通过计算公式(10)是否成立来验证签名的正确性。如果该公式成立,则签名的时效性得到验证,原因如公式(11)所示:
[0104][0105][0106]
云服务器用自己的私钥sk
cs
解密密文q,得到《q1,q2,

,qn》。
[0107]
步骤s3中,云服务器单元用bnl算法遍历自身存储的所有数据项。具体来说,对于bnl算法中任意两个数据项的比较,云服务器单元运行如下支配性判断算法得到对应的支配关系:
[0108]
bnl算法首先在内存中建立一个空白的临时窗口及临时文件,临时窗口用来存放可能是sp点的数据,临时文件用于临时窗口空间不足时,存放数据点;
[0109]
从初始集合中第一个数据点开始遍历,将数据点与临时窗口中的每一个数据点进行比较,判断支配性。当临时窗口为空时,将该数据点直接插入临时窗口。
[0110]
若该数据点被临时窗口中的数据点支配时,丢弃该数据点,若该数据点支配临时窗口中的一个或多个数据点时,则将临时窗口中被支配的所述一个或多个数据点丢弃,将该数据点存入所述临时窗口中;若该数据点与临时窗口中所有数据点都互不支配时,则将该数据点存入所述临时窗口中;若临时窗口已满,则存入所述临时文件中;
[0111]
遍历完集合中所述数据点后,将临时文件中的第一个数据点插入临时窗口中的数据点输出作为sp点,将临时文件中的数据当作新的数据集合返回上一步计算;当初始集合中的所有数据点被丢弃或当成sp点输出后,终止计算,则所有的sp点的集合为查询结果集。
[0112]
所述将数据点与临时窗口中的每一个数据点进行比较,判断支配性的具体过程为:
[0113]
选取两个云服务器上存储的加密数据项和以及用户单元的查询请求《q1,q2,

,qn》;
[0114]
通过公式(12),计算比较参数dk,k=1,2,

,n,
[0115][0116]
设置参数a、b和c,其初始值均设置为0;
[0117]
如果dk=1,则a的值加1;否则,计算hdk=h(dk),并在自身存储的评估数据集合hps中查找hdk,若找到该参数hdk,则b的值加1;若未找到该参数hdk,c的值加1;
[0118]
所有维度比较之后,在a=n的情况下,即fi和fj对于用户的查询条件而言是没有差别的,如果b》0,c=0,则fj支配fi,如果c》0,b=0,则fi支配fj;否则,fi和fj没有支配关系。
[0119]
用bnl(block nested loops,嵌套循环算法)算法遍历了所有的数据项后,云服务器得到一个数据集合sky(f),其中的每一项fi都在数据集中不被其他数据项支配。云服务器将该集合中每一个数据项fi对应的cxi加入集合sky(cx),并用非对称加密算法e()和用户的公钥加密sky(cx),并用自己的私钥sk
cs
通过公式(13)计算签名:
[0120][0121]
云服务器将结果集发送给用户。
[0122]
在接收到来自服务器的查询结果集后,用户首先检查时间戳ts3的时效性,并通过计算公式14是否成立来验证签名的正确性。然后,用户单元用自己的私钥来解密得到sky(cx)。最后,用户用aes解密算法和对称密钥k解密sky(cx),获得满足条件的结果集中的每一条数据项的明文:
[0123][0124]
如图2所示,本发明实施例还提供了一种多维数据的安全查询装置,所述装置包括初始化控制单元、用户单元、数据拥有者单元和云服务器单元。
[0125]
初始化控制单元,用于获取安全参数ω,得到两个ω的大素数p1和p2,运行gen(ω),得到若干个系统参数,所述系统参数包括计算群g、计算群g的映射群g
t
、大素数p1、大素数p2、生成元g、生成元u、对称加密的密钥k以及计算参数和还用于接收并处理数据拥有者单元、用户单元及云服务器单元的注册请求。
[0126]
数据拥有者单元包括拥有大量数据资源的数据提供商,它会对数据资源进行整合分析,以便能够为用户提供查询服务。由于数据拥有者直接提供查询服务需要大量的存储和计算资源,所以他们希望借由云服务器来为用户提供查询服务。然而,数据作为重要资
产,数据拥有者希望保证其机密性,所以会在数据存储到云服务器前进行加密操作。
[0127]
云服务器单元包含大量分布式存储和计算节点,可以存储海量来自数据拥有者的加密数据信息,并根据这些密文为用户提供安全查询服务。云服务器单元主要包括两部分:存储数据和完成加密数据的查询,即存储数据拥有者的密文数据,并根据用户的加密查询请求在密文上进行计算,返回满足条件的结果集。具体为接收查询请求,利用用户公钥验证所述签名值,并解密密文得到请求信息的加密查询参数;通过存储的加密数据项及所述请求信息的加密查询参数,对加密数据项的每一维度进行比较计算,将得到的数据集合使用当前用户公钥进行加密,并通过云服务器私钥签名后,生成查询结果集,发送给用户。
[0128]
用户单元在初始化控制单元完成注册后,就可以给云服务器发送查询请求,并得到云服务器返回的查询结果集。为了防止云服务器获得用户查询请求的内容,用户需要对查询请求进行加密。同时,未注册的用户无法获得数据拥有者的数据。用户单元发送的查询请求中包括基于请求信息的加密查询参数的密文、用户身份标识、时间戳以及签名值。
[0129]
云服务器单元和数据拥有者单元之间需要做到机密性要求。即使云服务器存储了数据拥有者的所有加密数据项,它依然不能获得任意一条数据项的具体数值。同时与用户单元之间需要做到隐私性要求。即使云服务器单元能够获得用户所有的查询请求,但它却不能获得任何用户查询请求的相关具体信息。另外,云服务器单元返回的响应结果集,只有合法的用户才能收到并解密对应的响应。
[0130]
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献