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

基于加密数据的数据检索方法、装置及存储介质与流程

2022-10-26 18:16:57 来源:中国专利 TAG:


1.本发明涉及数据检索安全技术领域,尤其涉及一种基于加密数据的数据检索方法、装置及存储介质。


背景技术:

2.数据检索指的是根据用户的需求对数据库中存储的数据进行检索以获取用户所需的数据。近年来信息技术高速发展,数据存储的云端化是一个必然的趋势,然而,数据云存储给人们带来方便与快捷的同时,也带来了一系列的数据安全问题,如何保障数据库中的数据不被泄漏,如何实现数据的安全高效运输,以及如何隐匿用户的检索目标等,都成为了数据检索安全领域的重要问题。
3.在现有技术中,数据检索领域存在隐匿数据检索的需求。即对于数据交互的数据检索方和数据持有方,都存在保护和隐匿数据的需求。对于数据检索方来说,查询用户向作为数据持有方的数据源发送查询请求时,希望能在数据源获得正确的检索结果,同时又不向数据源暴露自己的查询请求。对于数据持有方来说,数据源希望查询用户一次查询只能获取一个查询结果,无法获得更多的信息。除了双方各自的安全需求外,还需要要求通信数据在中间链路传输时不可篡改、不可窃听。


技术实现要素:

4.本发明提供了一种基于加密数据的数据检索方法、装置及存储介质,旨在有效解决现有技术中数据检索领域难以隐匿数据检索的技术问题,保障数据检索过程中的数据安全。
5.根据本发明的第一方面,本发明提供一种基于加密数据的数据检索方法,所述方法包括:数据检索方根据将要检索的目标数据所对应的目标数据参数生成包括多个查询条件的查询条件集合,对所述查询条件集合进行数字签名以生成签名结果,并向数据持有方发送检索方数字证书、所述查询条件集合和所述签名结果;所述数据持有方对所述检索方数字证书、所述查询条件集合和所述签名结果进行验证,并在验证成功后基于所述查询条件集合对数据进行检索以生成与所述多个查询条件一一对应的多个查询结果,基于包括所述多个查询结果的查询结果集合生成持有方随机数集合,并向所述数据检索方发送持有方数字证书和所述持有方随机数集合,其中,所述多个查询结果包含与所述目标数据相对应的目标查询结果;所述数据检索方生成检索方随机数,并基于所述检索方随机数、所述持有方数字证书和所述持有方随机数集合生成交换参数,向所述数据持有方发送所述交换参数;所述数据持有方基于所述交换参数、所述持有方数字证书对应的持有方私钥和所述持有方随机数集合得到密钥序列集合,并基于所述密钥序列集合和所述查询结果集合得到密文序列集合,基于数字信封加密方法对所述密文序列集合进行加密以生成数字信封,
发送所述数字信封至所述数据检索方;所述数据检索方对所述数字信封进行解密以获得所述目标数据。
6.进一步地,所述方法还包括:在所述数据检索方根据将要检索的目标数据所对应的目标数据参数生成包括多个查询条件的查询条件集合之前,所述数据持有方基于非对称加密方法生成包括持有方公钥指数和持有方模数的持有方公钥,以及生成包括持有方私钥指数和所述持有方模数的所述持有方私钥,并基于所述持有方公钥签发所述持有方数字证书,所述数据检索方基于所述非对称加密方法生成检索方公钥和检索方私钥,并基于所述检索方公钥签发所述检索方数字证书。
7.进一步地,所述多个查询条件包括多个虚假查询条件和至少一个与所述目标数据参数相对应的真实查询条件。
8.进一步地,所述对所述查询条件集合进行数字签名以生成签名结果包括:所述数据检索方基于所述检索方私钥对所述查询条件集合进行数字签名以生成所述签名结果。
9.进一步地,所述数据持有方对所述检索方数字证书、所述查询条件集合和所述签名结果进行验证包括:所述数据持有方对所述检索方数字证书进行验证,并在验证通过后基于所述检索方数字证书对所述查询条件集合和所述签名结果进行验签。
10.进一步地,所述基于所述检索方随机数、所述持有方数字证书和所述持有方随机数集合生成交换参数包括:所述数据检索方获取所述持有方随机数集合中与所述目标数据参数相对应的目标持有方随机数,并获取所述持有方数字证书对应的所述持有方公钥指数和所述持有方模数;所述数据检索方基于所述检索方随机数、所述目标持有方随机数、所述持有方公钥指数和所述持有方模数生成所述交换参数。
11.进一步地,所述数据检索方基于所述检索方随机数、所述目标持有方随机数、所述持有方公钥指数和所述持有方模数生成所述交换参数包括:基于下式生成所述交换参数:sr=(c
e mod n)

mr,其中,sr表示所述交换参数,c表示所述检索方随机数,e表示所述持有方公钥指数,n表示所述持有方模数,mr表示所述目标持有方随机数,mod为取余运算符,

为异或运算符。
12.进一步地,所述数据持有方基于所述交换参数、所述持有方数字证书对应的持有方私钥和所述持有方随机数集合得到密钥序列集合包括:针对所述持有方随机数集合中的每一个持有方随机数,所述数据持有方基于所述交换参数、该持有方随机数、所述持有方私钥指数和所述持有方模数得到所述密钥序列集合中与该持有方随机数相对应的密钥序列。
13.进一步地,所述数据持有方基于所述交换参数、该持有方随机数、所述持有方私钥指数和所述持有方模数得到所述密钥序列集合中与该持有方随机数相对应的密钥序列包
括:根据下式得到所述密钥序列:k
t
= (sr⊕mt
) d mod n,其中,k
t
表示所述密钥序列,sr表示所述交换参数,m
t
表示该持有方随机数,d表示所述持有方私钥指数,n表示所述持有方模数,mod为取余运算符,

为异或运算符。
14.进一步地,所述基于所述密钥序列集合和所述查询结果集合得到密文序列集合包括:针对所述密钥序列集合中的每一个密钥序列,所述数据持有方获取查询结果集合中与该密钥序列相对应的查询结果,并基于该密钥序列和该查询结果得到密文序列。
15.进一步地,所述基于该密钥序列和该查询结果得到密文序列包括:根据下式得到所述密文序列:e
t
= k
t

x
t
,其中,e
t
表示所述密文序列,k
t
表示密钥序列,x
t
表示查询结果,

为异或运算符。
16.进一步地,所述基于数字信封加密方法对所述密文序列集合进行加密以生成数字信封包括:所述数据持有方生成会话密钥并获取所述检索方公钥的检索方公钥结构,基于所述检索方公钥加密所述会话密钥以得到加密结果,获取所述会话密钥对应的对称加密方法的标识,基于所述对称加密方法和所述会话密钥对所述密文序列集合进行加密以生成加密信息;所述数据持有方基于所述检索方公钥结构、所述加密结果、所述会话密钥、所述标识和所述加密信息生成所述数字信封。
17.进一步地,所述数据持有方基于所述检索方公钥结构、所述加密结果、所述会话密钥、所述标识和所述加密信息生成所述数字信封包括:基于下式生成所述数字信封:envelop
eb (e0,

,e
i-1
,key
ab
) =pub
eb
||enc
eb (key
ab )||algo|| enc
keyab (e0,e1,

,e
i-1
),其中,envelop
eb (e0,

,e
i-1
,key
ab
)表示所述数字信封,(e0,e1,

,e
i-1
)表示包括i个密文序列的密文序列集合,key
ab
表示所述会话密钥,pub
eb
表示所述检索方公钥结构,enc
eb (key
ab )表示所述加密结果,algo表示所述标识,enc
keyab (e0,e1,

,e
i-1
)表示所述加密信息,||运算符表示将两个或两个以上的字符串用连接符连接在一起以得到一个字符串。
18.进一步地,所述数据检索方对所述数字信封进行解密以获得所述目标数据包括:所述数据检索方基于所述检索方私钥对所述数字信封进行解密以得到所述会话密钥,基于所述会话密钥和所述标识对所述加密信息进行解密以得到所述密文序列集合,基于所述密文序列集合和所述检索方随机数得到所述目标数据。
19.进一步地,所述基于所述密文序列集合和所述检索方随机数得到所述目标数据包括:所述数据检索方在所述密文序列集合中获取与所述目标数据参数相对应的目标密文序列,基于所述目标密文序列和所述检索方随机数得到所述目标查询结果,基于所述
目标查询结果得到所述目标数据。
20.进一步地,所述基于所述目标密文序列和所述检索方随机数得到所述目标查询结果包括:基于下式得到所述目标查询结果:xr=e
r ⊕
c,其中,xr表示所述目标查询结果,er表示所述目标密文序列,c表示所述检索方随机数,

为异或运算符。
21.根据本发明的第二方面,本发明还提供了一种基于加密数据的数据检索方法,用于数据检索方,所述数据检索方与数据持有方相关联,所述方法包括:根据将要检索的目标数据所对应的目标数据参数生成包括多个查询条件的查询条件集合,对所述查询条件集合进行数字签名以生成签名结果,并向所述数据持有方发送检索方数字证书、所述查询条件集合和所述签名结果;接收所述数据持有方发送的持有方数字证书和持有方随机数集合;生成检索方随机数,并基于所述检索方随机数、所述持有方数字证书和所述持有方随机数集合生成交换参数,向所述数据持有方发送所述交换参数;接收所述数据持有方发送的数字信封;对所述数字信封进行解密以获得所述目标数据。
22.根据本发明的第三方面,本发明还提供了一种基于加密数据的数据检索方法,用于数据持有方,所述数据持有方与数据检索方相关联,所述方法包括:接收所述数据检索方发送的检索方数字证书、查询条件集合和签名结果;对所述检索方数字证书、所述查询条件集合和所述签名结果进行验证,并在验证成功后基于所述查询条件集合对数据进行检索以生成与多个查询条件一一对应的多个查询结果,基于包括所述多个查询结果的查询结果集合生成持有方随机数集合,并向所述数据检索方发送持有方数字证书和所述持有方随机数集合,其中,所述多个查询结果包含与所述目标数据相对应的目标查询结果;接收所述数据检索方发送的交换参数;基于所述交换参数、所述持有方数字证书对应的持有方私钥和所述持有方随机数集合得到密钥序列集合,并基于所述密钥序列集合和所述查询结果集合得到密文序列集合,基于数字信封加密方法对所述密文序列集合进行加密以生成数字信封,发送所述数字信封至所述数据检索方,以使所述数据检索方对所述数字信封进行解密以获得所述目标数据。
23.根据本发明的第四方面,本发明还提供了一种基于加密数据的数据检索装置,用于数据检索方,所述数据检索方与数据持有方相关联,所述装置包括:检索申请发送单元,用于根据将要检索的目标数据所对应的目标数据参数生成包括多个查询条件的查询条件集合,对所述查询条件集合进行数字签名以生成签名结果,并向所述数据持有方发送检索方数字证书、所述查询条件集合和所述签名结果;持有方随机数集合接收单元,用于接收所述数据持有方发送的持有方数字证书和持有方随机数集合;交换参数发送单元,用于生成检索方随机数,并基于所述检索方随机数、所述持有
方数字证书和所述持有方随机数集合生成交换参数,向所述数据持有方发送所述交换参数;数字信封接收单元,用于接收所述数据持有方发送的数字信封;目标数据获取单元,用于对所述数字信封进行解密以获得所述目标数据。
24.根据本发明的第五方面,本发明还提供了一种基于加密数据的数据检索装置,用于数据持有方,所述数据持有方与数据检索方相关联,所述装置包括:检索申请接收单元,用于接收所述数据检索方发送的检索方数字证书、查询条件集合和签名结果;持有方随机数集合发送单元,用于对所述检索方数字证书、所述查询条件集合和所述签名结果进行验证,并在验证成功后基于所述查询条件集合对数据进行检索以生成与多个查询条件一一对应的多个查询结果,基于包括所述多个查询结果的查询结果集合生成持有方随机数集合,并向所述数据检索方发送持有方数字证书和所述持有方随机数集合,其中,所述多个查询结果包含与所述目标数据相对应的目标查询结果;交换参数接收单元,用于接收所述数据检索方发送的交换参数;数字信封发送单元,用于基于所述交换参数、所述持有方数字证书对应的持有方私钥和所述持有方随机数集合得到密钥序列集合,并基于所述密钥序列集合和所述查询结果集合得到密文序列集合,基于数字信封加密方法对所述密文序列集合进行加密以生成数字信封,发送所述数字信封至所述数据检索方,以使所述数据检索方对所述数字信封进行解密以获得所述目标数据。
25.根据本发明的另一方面,本发明还提供了一种存储介质,所述存储介质中存储有多条指令,所述指令适于由处理器加载以执行如上所述的任一基于加密数据的数据检索方法。
26.通过本发明中的上述实施例中的一个实施例或多个实施例,至少可以实现如下技术效果:本发明的技术方案所提供的基于加密数据的数据检索方法是一种轻量的隐匿数据的检索方法,通过数据持有方和数据检索方各自的非对称公私钥对和协议交互,满足了隐匿数据检索场景的安全需求。
27.在本发明的技术方案中,数据持有方和数据检索方通过数字证书实现身份鉴别和数据加解密,保护了协议交互流程的数据完整性和机密性。通过密码算法、协议交互和查询条件混淆,实现了数据检索方的查询数据对数据源的隐藏,同时又保证了一次查询只能获得一个目标结果,不过多的暴露数据源的数据,保障了数据源对持有数据的利益。
28.在本发明中,在目标数据的传输过程中,通过数字信封进行数据交互,使用对称加密方法和非对称加密方法相结合的两层加密体系,即使加密文件被非法截获,由于截获者无法得到发送方的通信密钥,则不可能对文件进行解密,保证了数据传输的真实性和完整性。
29.综上,本发明的协议交互过程简单,不需要过多的公私钥对,算法易于实现,计算过程精简,是一种安全可靠的轻量数据检索技术。
附图说明
30.下面结合附图,通过对本发明的具体实施方式详细描述,将使本发明的技术方案及其它有益效果显而易见。
31.图1为本发明实施例提供的一种基于加密数据的数据检索方法的步骤流程图;图2为本发明实施例提供的一种数据交互过程的示意图;图3为本发明中数字信封加密方法的加密示意图;图4为本发明实施例提供的一种用于数据检索方的基于加密数据的数据检索方法的步骤流程图;图5为本发明实施例提供的一种用于数据持有方的基于加密数据的数据检索方法的步骤流程图;图6为本发明实施例提供的一种用于数据检索方的基于加密数据的数据检索装置的结构示意图;图7为本发明实施例提供的一种用于数据持有方的基于加密数据的数据检索装置的结构示意图。
具体实施方式
32.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
33.根据本发明的一方面,本发明提供一种基于加密数据的数据检索方法,图1所示为本发明实施例所提供的基于加密数据的数据检索方法的步骤流程图,所述方法包括:步骤101:数据检索方根据将要检索的目标数据所对应的目标数据参数生成包括多个查询条件的查询条件集合,对所述查询条件集合进行数字签名以生成签名结果,并向数据持有方发送检索方数字证书、所述查询条件集合和所述签名结果;步骤102:所述数据持有方对所述检索方数字证书、所述查询条件集合和所述签名结果进行验证,并在验证成功后基于所述查询条件集合对数据进行检索以生成与所述多个查询条件一一对应的多个查询结果,基于包括所述多个查询结果的查询结果集合生成持有方随机数集合,并向所述数据检索方发送持有方数字证书和所述持有方随机数集合,其中,所述多个查询结果包含与所述目标数据相对应的目标查询结果;步骤103:所述数据检索方生成检索方随机数,并基于所述检索方随机数、所述持有方数字证书和所述持有方随机数集合生成交换参数,向所述数据持有方发送所述交换参数;步骤104:所述数据持有方基于所述交换参数、所述持有方数字证书对应的持有方私钥和所述持有方随机数集合得到密钥序列集合,并基于所述密钥序列集合和所述查询结果集合得到密文序列集合,基于数字信封加密方法对所述密文序列集合进行加密以生成数字信封,发送所述数字信封至所述数据检索方;步骤105:所述数据检索方对所述数字信封进行解密以获得所述目标数据。
34.图1为本发明实施例提供的一种基于加密数据的数据检索方法的步骤流程图,图2
为本发明实施例提供的一种数据交互过程的示意图,以下基于图1和图2对上述步骤101~105进行具体描述。
35.在步骤101中,数据检索方根据将要检索的目标数据所对应的目标数据参数生成包括多个查询条件的查询条件集合,对所述查询条件集合进行数字签名以生成签名结果,并向数据持有方发送检索方数字证书、所述查询条件集合和所述签名结果。
36.示例性地,在数据检索中,数据检索方向数据持有方发送检索请求,检索请求中包括需要获取的数据的相关信息,以及保障数据安全的安全信息。具体来说,作为数据检索方的查询用户在向作为数据持有方的数据源发送查询请求时,希望获得正确结果的同时又不向数据源暴露自己的查询请求。为了解决该问题,数据检索方获取将要检索的目标数据所对应的目标数据参数,根据至少一个目标数据参数生成至少一个真实查询条件。为了不暴露自己的查询需求,数据检索方同时生成用于混淆真实查询条件的多个虚假查询条件,并将真实查询条件和多个虚假查询条件进行混合以生成包括多个查询条件的查询条件集合。
37.在生成查询条件集合后,通过数据检索方所对应的检索方私钥对整个查询条件集合进行数字签名,生成签名结果sign
db
。数字签名有两个作用,一是能确定消息确实是由发送方签名并发出来的,因为未知者难以假冒发送方的签名,二是数字签名能确定消息的完整性,因此数字签名能够在加密算法中起到保护数据的作用。
38.数据检索方本身具有检索方数字证书,在生成了查询条件集合和签名结果后,如图2所示,数据检索方向数据持有方发送检索请求,即向数据持有方发送检索方数字证书、查询条件集合和签名结果。
39.在步骤102中,所述数据持有方对所述检索方数字证书、所述查询条件集合和所述签名结果进行验证,并在验证成功后基于所述查询条件集合对数据进行检索以生成与所述多个查询条件一一对应的多个查询结果,基于包括所述多个查询结果的查询结果集合生成持有方随机数集合,并向所述数据检索方发送持有方数字证书和所述持有方随机数集合,其中,所述多个查询结果包含与所述目标数据相对应的目标查询结果。
40.示例性地,数据持有方对检索方数字证书、查询条件集合和签名结果进行验证。具体来说,数据持有方在收到数据检索方的检索请求后,先对检索方数字证书进行验证,以判断对方是否为合法的数据检索方。在验证检索方数字证书为合法的证书以后,再对查询条件集合和签名结果进行签名验证,从而确定查询条件集合是否是完整的数据,以及签名结果是否是来自合法的数据检索方。
41.在验证成功后,对查询条件集合(t0,t1,

,tr,

,t
i-1
)进行解析以得到每个查询条件,然后在数据库中进行数据检索,根据每一个查询条件检索出对应的查询结果,并生成查询结果集合(x0,x1,

,xr,

,x
i-1
)。其中,多个查询条件和多个查询结果一一对应,集合内的元素数量一致,相同序列号的查询条件和查询结果相对应。
42.因为查询条件集合中只有查询条件tr为真实查询条件,因此,在查询结果集合中,也只有查询结果mr为目标数据所对应的目标查询结果。但是对于数据持有方来说,它并不知道哪一个才是真实查询条件,因此也不知道哪一个数据为用户真正所需的目标查询结果。如果数据持有方将所有的查询结果都发送给数据检索方,不但会泄露信息,还会加重数据传输负担。对于数据持有方来说,数据源希望查询用户一次查询只能获取一个查询结果,无法获得更多的信息。为了解决该问题,数据持有方并不直接向数据检索方发送查询结果
集合,而是对查询结果集合进行暂存,存储在临时存储器上,并基于查询结果集合(x0,x1,

,xr,

,x
i-1
)生成持有方随机数集合(m0,m1,

,mr,

,m
i-1
)。
43.数据持有方自身有持有方数字证书,在加密通信中,数据检索方向数据检索方发送持有方数字证书和持有方随机数集合。
44.在步骤103中,所述数据检索方生成检索方随机数,并基于所述检索方随机数、所述持有方数字证书和所述持有方随机数集合生成交换参数,向所述数据持有方发送所述交换参数。
45.示例性地,数据检索方在收到持有方数字证书和持有方随机数集合后,生成检索方随机数c,并获取持有方数字证书的相关参数,以及在持有方随机数集合中获取与目标数据相对应的随机数,然后生成交换参数,并向数据持有方发送交换参数。在本发明中,交换参数中有两个关键点,一方面,不同于之前的集合,交换参数只有一个数据,该数据是针对目标数据而专门生成的,交换参数和目标数据相关,但是又不是直接相关的目标数据参数,因此数据持有方不能根据交换参数得出用户想要的数据,实现了用户隐匿数据的需求。另一方面,交换参数中使用了持有方数字证书所对应的持有方公钥相关的数据,因此,该交换参数只对数据持有方有效,其它未知者即使收到该交换参数,也不能破解出所需要的信息,保障了数据安全。
46.在步骤104中,所述数据持有方基于所述交换参数、所述持有方数字证书对应的持有方私钥和所述持有方随机数集合得到密钥序列集合,并基于所述密钥序列集合和所述查询结果集合得到密文序列集合,基于数字信封加密方法对所述密文序列集合进行加密以生成数字信封,发送所述数字信封至所述数据检索方。
47.示例性地,数据持有方在接收到交换参数后,对持有方随机数集合中的每一个持有方随机数进行数据处理,分别得到数量一致的密钥序列,多个密钥系列组成密钥序列集合,该数据处理涉及到数学算法,经过数学运算后,双方信息保持在隐匿状态,但是目前双方交互过程中的数据中依然没有目标数据。
48.为了实现目标数据的传输,数据持有方基于密钥序列集合和查询结果集合得到密文序列集合,在之前的步骤中,查询结果集合处于被暂存的状态,只有到该步骤中,才对查询结果集合进行数据处理,并以安全的方式发送给用户。
49.在发送数据时,为了进一步保障数据传输安全,本发明采用数字信封加密方法传输数据,以实现双重数据保护。具体来说,对密文序列集合进行加密以生成数字信封,并发送数字信封至数据检索方。
50.通过数字信封进行加密的过程中,发送方随机生成一个对称密钥,把数据加密成密文,但密钥也要给接收方,接收方才能正确解密。密钥就用接收方的公钥加密,保证只有接收方才能解密,类似把密钥包装在信封里,只有接收方才能查看。图3为本发明中数字信封加密方法的加密示意图,下面根据图3说明数字信封加密技术:s1:数据持有方使用对称密钥对明文进行加密,生成密文信息。
51.s2:数据持有方使用数据检索方的公钥加密对称密钥,生成数字信封。
52.s3:数据持有方将数字信封和密文信息一起发送给数据检索方。
53.s4:数据检索方接收到数据持有方的加密信息后,使用自己的私钥打开数字信封,得到对称密钥。
54.s5:数据检索方使用对称密钥对密文信息进行解密,得到最初的明文。
55.在本发明中,通过数字信封传输数据,数字信封方法是将对称密钥通过非对称加密(有公钥和私钥的加密方法)的结果分发对称密钥的方法,数字信封是实现信息保密性验证的技术。当接收方收到数字信封时,先用私钥或预共享密钥解密,得到对称密钥,再用该对称密钥解密密文以获得原文,数字信封技术使用两层加密体系,采用数字信封技术后,即使加密文件被非法截获,因为截获者无法得到发送方的通信密钥,故不可能对文件进行解密,保证了数据传输的真实性和完整性。
56.在步骤105中,所述数据检索方对所述数字信封进行解密以获得所述目标数据。
57.示例性地,数据检索方收到数字信封后,使用检索方私钥对数字信封进行解密以获得对称密钥,然后用对称密钥解密获得信息,进而解析出目标数据。
58.进一步地,所述方法还包括:在所述数据检索方根据将要检索的目标数据所对应的目标数据参数生成包括多个查询条件的查询条件集合之前,所述数据持有方基于非对称加密方法生成包括持有方公钥指数和持有方模数的持有方公钥,以及生成包括持有方私钥指数和所述持有方模数的所述持有方私钥,并基于所述持有方公钥签发所述持有方数字证书,所述数据检索方基于所述非对称加密方法生成检索方公钥和检索方私钥,并基于所述检索方公钥签发所述检索方数字证书。
59.示例性地,本方案中既用到对称加密方法,又用到非对称加密方法。只有在进行最终传输目标数据时才使用对称加密方法。而在传输目标数据之前,数据传输使用的是非对称加密方法。其中,多种加密算法可以实现非对称加密方法,数据交互双方使用的为同一种加密算法。在本发明中,可以采用经典的rsa非对称加密算法,该算法通常生成一对rsa密钥,其中之一是保密私钥,由用户保存,另一个为公开密钥,可对外公开,甚至可在网络服务器中注册。rsa算法是被广泛研究的公钥算法,经历了各种攻击的考验,普遍认为是目前最优秀的公钥方案之一。
60.在数据检索方发送检索请求之前,双方各自生成了非对称加密算法所需的私钥、公钥和数字证书,并且各自严密保存自己的密码信息。
61.对于数据持有方来说,数据持有方基于非对称加密方法生成持有方公钥(e,n)和持有方私钥(d,n),其中,e为持有方公钥指数,d为持有方私钥指数,n为持有方模数。然后基于持有方公钥(d,n)签发持有方数字证书certe。
62.对于数据检索方来说,数据检索方基于相同的非对称加密方法生成检索方公钥(eb,nb)和持有方私钥(db,nb),其中,eb为检索方公钥指数,db为检索方私钥指数,nb为检索方模数。然后基于检索方公钥(eb,nb)签发持有方数字证书cert
eb

63.进一步地,所述多个查询条件包括多个虚假查询条件和至少一个与所述目标数据参数相对应的真实查询条件。
64.示例性地,作为数据检索方的查询用户在向作为数据持有方的数据源发送查询请求时,希望获得正确结果的同时又不向数据源暴露自己的查询请求。为了解决该问题,数据检索方获取将要检索的目标数据所对应的目标数据参数,根据至少一个目标数据参数生成至少一个真实查询条件,为了不暴露自己的查询需求,数据检索方同时生成用于混淆真实查询条件的多个虚假查询条件,并将真实查询条件和多个虚假查询条件进行混合以生成包
括多个查询条件的查询条件集合。
65.举例来说,数据检索方分别生成两个随机数i和r,并且r∈[0,i-1],其中,随机数i为查询条件集合中查询条件的数量,而随机数r则为真实查询条件所对应的序列号。然后构造出具有i个查询条件的查询条件集合(t0,t1,

,tr,

,t
i-1
),其中,只有查询条件tr为真实查询条件,其余的查询条件则为扰乱条件。
[0066]
进一步地,所述对所述查询条件集合进行数字签名以生成签名结果包括:所述数据检索方基于所述检索方私钥对所述查询条件集合进行数字签名以生成所述签名结果。
[0067]
示例性地,数据检索方使用私钥(db,nb)进行数字签名,具体对包含i个查询条件的查询条件集合(t0,t1,

,tr,

,t
i-1
)进行加密处理,进行数字签名生成签名结果sign
db

[0068]
进一步地,所述数据持有方对所述检索方数字证书、所述查询条件集合和所述签名结果进行验证包括:所述数据持有方对所述检索方数字证书进行验证,并在验证通过后基于所述检索方数字证书对所述查询条件集合和所述签名结果进行验签。
[0069]
示例性地,数据持有方对检索方数字证书进行验证,以判断对方是否为合法的数据检索方。在验证检索方数字证书为合法的证书以后,再对查询条件集合和签名结果进行签名验证,从而确定查询条件集合是否是完整的数据,以及签名结果是否是来自合法的数据检索方。
[0070]
进一步地,所述基于所述检索方随机数、所述持有方数字证书和所述持有方随机数集合生成交换参数包括:所述数据检索方获取所述持有方随机数集合中与所述目标数据参数相对应的目标持有方随机数,并获取所述持有方数字证书对应的所述持有方公钥指数和所述持有方模数;所述数据检索方基于所述检索方随机数、所述目标持有方随机数、所述持有方公钥指数和所述持有方模数生成所述交换参数。
[0071]
进一步地,所述数据检索方基于所述检索方随机数、所述目标持有方随机数、所述持有方公钥指数和所述持有方模数生成所述交换参数包括:基于下式生成所述交换参数:sr=(c
e mod n)

mr,其中,sr表示所述交换参数,c表示所述检索方随机数,e表示所述持有方公钥指数,n表示所述持有方模数,mr表示所述目标持有方随机数,mod为取余运算符,

为异或运算符。
[0072]
示例性地,数据检索方在发生检索请求时通过虚假查询条件实现检索信息隐匿,在同时具有虚假查询条件和真实查询条件的情况下,如何准确获取目标数据是本发明的关键点。在本步骤中,数据检索方针对目标数据而专门生成交换参数,并在该过程中使用了持有方公钥指数e和持有方模数n来对数据进行加密,通过该数据处理过程以及下一步数据持有方的操作,数据检索方能够实现信息隐匿,又能准确获取到目标数据。
[0073]
进一步地,所述数据持有方基于所述交换参数、所述持有方数字证书对应的持有方私钥和所述持有方随机数集合得到密钥序列集合包括:
针对所述持有方随机数集合中的每一个持有方随机数,所述数据持有方基于所述交换参数、该持有方随机数、所述持有方私钥指数和所述持有方模数得到所述密钥序列集合中与该持有方随机数相对应的密钥序列。
[0074]
进一步地,所述数据持有方基于所述交换参数、该持有方随机数、所述持有方私钥指数和所述持有方模数得到所述密钥序列集合中与该持有方随机数相对应的密钥序列包括:根据下式得到所述密钥序列:k
t
= (sr⊕mt
) d mod n,其中,k
t
表示所述密钥序列,sr表示所述交换参数,m
t
表示该持有方随机数,d表示所述持有方私钥指数,n表示所述持有方模数,mod为取余运算符,

为异或运算符。
[0075]
进一步地,所述基于所述密钥序列集合和所述查询结果集合得到密文序列集合包括:针对所述密钥序列集合中的每一个密钥序列,所述数据持有方获取查询结果集合中与该密钥序列相对应的查询结果,并基于该密钥序列和该查询结果得到密文序列。
[0076]
进一步地,所述基于该密钥序列和该查询结果得到密文序列包括:根据下式得到所述密文序列:e
t
= k
t

x
t
,其中,e
t
表示所述密文序列,k
t
表示密钥序列,x
t
表示查询结果,

为异或运算符。
[0077]
示例性地,本发明通过数学运算实现信息隐匿传输,具体来说,首先计算密钥序列k
t
,再次计算密文序列e
t
。数值i为查询条件集合中查询条件的数量,数值r则为真实查询条件所对应的序列号,r∈[0,i-1]。首先基于运算式k
t
= (sr⊕mt
) d mod n生成密钥序列k
t
,再基于运算式e
t
= k
t

x
t
生成密文序列e
t

[0078]
下面举例说明本发明的技术方案具体如何通过多次的数学运算将目标数据进行还原:假设有数据检索方有3个查询条件(t0,t1,t2),对应数据持有方检索出3个查询结果(x0,x1,x2),假设第3个查询条件t2是查询方真正想要查询的数据,在该例子中,i为3,r为3,对应的查询结果为x2。
[0079]
数据检索方向数据持有方发送查询条件(t0,t1,t2),数据持有方检索出3个查询结果(x0,x1,x2),并一一对应生成3个随机数给查询方(m0,m1,m2)。数据检索方生成一个随机数c,选择对应t2的m2,计算交换参数s2=(c
e mod n)

m2,然后发送给数据持有方,数据持有方接收到交换参数后进一步进行数学运算。
[0080]
首先,数据持有方基于下式计算密钥序列:k0= (s2⊕
m0) d mod n,k1= (s2⊕
m1) d mod n,k2= (s2⊕
m2) d mod n,然后,数据持有方基于下式计算密文序列:e0= k0⊕
x0,e1= k1⊕
x1,e2= k2⊕
x2,
数据持有方将生成的加密序列(e0,e1,e2)发送给数据检索方。数据检索方根据实际想查的第3个查询条件是选择对应的目标查询结果e2,因为k2=c,则对应有以下运算:e2⊕
c =x2⊕
k2⊕
c =x2⊕c⊕
c =x2,该运算式基于的数学原理为:一个数a两次异或b后,得到的结果仍为a。由于s2异或了m2,k2计算时再次异或m2,运算就恢复成了q=(c
e mod n),然后进一步通过持有方私钥d解密运算c=(q
d mod n)。整个运算过程如下式所示:k2=(s2⊕
m2) d mod n =((c
e mod n)

m2⊕
m2)
d mod n=(c
e mod n)
d mod n=c。
[0081]
其中,x2是正确的查询结果,而对于k0,k1,虽然也能解密运算,算出结果,但结果是一个跟c没有关系的值,而且这个值查询方是反推不出来的,进而查询方也就无法通过e0和e1获取查询结果x0和x1。由此,可得出数据检索方所需的目标数据。
[0082]
进一步地,所述基于数字信封加密方法对所述密文序列集合进行加密以生成数字信封包括:所述数据持有方生成会话密钥并获取所述检索方公钥的检索方公钥结构,基于所述检索方公钥加密所述会话密钥以得到加密结果,获取所述会话密钥对应的对称加密方法的标识,基于所述对称加密方法和所述会话密钥对所述密文序列集合进行加密以生成加密信息;所述数据持有方基于所述检索方公钥结构、所述加密结果、所述会话密钥、所述标识和所述加密信息生成所述数字信封。
[0083]
进一步地,所述数据持有方基于所述检索方公钥结构、所述加密结果、所述会话密钥、所述标识和所述加密信息生成所述数字信封包括:基于下式生成所述数字信封:envelop
eb (e0,e1,

,e
i-1
,key
ab
) =pub
eb
||enc
eb (key
ab )||algo|| enc
keyab (e0,e1,

,e
i-1
),其中,envelop
eb (e0,e1,

,e
i-1
,key
ab
)表示所述数字信封,(e0,e1,

,e
i-1
)表示包括i个密文序列的密文序列集合,key
ab
表示所述会话密钥,pub
eb
表示所述检索方公钥结构,enc
eb (key
ab )表示所述加密结果,algo表示所述标识,enc
keyab (e0,e1,

,e
i-1
)表示所述加密信息,||运算符表示将两个或两个以上的字符串用连接符连接在一起以得到一个字符串。
[0084]
示例性地,数据持有方使用数字信封方法加密发送密文序列集合(e0,

,e
i-1
),加密方式envelop
eb (e0,e1,

,e
i-1
,key
ab
) =pub
eb
||enc
eb (key
ab )||algo|| enc
keyab (e0,e1,

,e
i-1
),其中,pub
eb
为查询用户的公钥结构,enc
eb (key
ab )为使用查询用户公钥加密会话密钥key
ab
,algo为对称加密算法标识,enckey
ab (e0,e1,

,e
i-1
)为采用algo对称加密算法,并使用会话密钥key
ab
加密密文序列集合(e0,e1,

,e
i-1
)。
[0085]
进一步地,所述数据检索方对所述数字信封进行解密以获得所述目标数据包括:所述数据检索方基于所述检索方私钥对所述数字信封进行解密以得到所述会话密钥,基于所述会话密钥和所述标识对所述加密信息进行解密以得到所述密文序列集合,基于所述密文序列集合和所述检索方随机数得到所述目标数据。
[0086]
进一步地,所述基于所述密文序列集合和所述检索方随机数得到所述目标数据包括:
所述数据检索方在所述密文序列集合中获取与所述目标数据参数相对应的目标密文序列,基于所述目标密文序列和所述检索方随机数得到所述目标查询结果,基于所述目标查询结果得到所述目标数据。
[0087]
进一步地,所述基于所述目标密文序列和所述检索方随机数得到所述目标查询结果包括:基于下式得到所述目标查询结果:xr=e
r ⊕
c,其中,xr表示所述目标查询结果,er表示所述目标密文序列,c表示所述检索方随机数,

为异或运算符。
[0088]
示例性地,数据检索方收到数字信封envelop
eb (e0,e1,

,e
i-1
,key
ab
)后,使用检索方私钥(db,nb)解开信封,具体流程为使用检索方私钥解密获得会话密钥key
ab
,使用会话密钥key
ab
和标识algo所对应的对称加密算法进行解密,解密对象为加密信息enc
keyab (e0,e1,

,e
i-1
),解密后获得数据持有方的原始的密文序列集合(e0,e1,

,e
i-1
),最后基于运算式xr=e
r ⊕
c得到目标查询结果,进而得到目标数据。
[0089]
通过本发明中的上述实施例中的一个实施例或多个实施例,至少可以实现如下技术效果:本发明的技术方案所提供的基于加密数据的数据检索方法是一种轻量的隐匿数据的检索方法,通过数据持有方和数据检索方各自的非对称公私钥对和协议交互,满足了隐匿数据检索场景的安全需求。
[0090]
在本发明的技术方案中,数据持有方和数据检索方通过数字证书实现身份鉴别和数据加解密,保护了协议交互流程的数据完整性和机密性。通过密码算法、协议交互和查询条件混淆,实现了数据检索方的查询数据对数据源的隐藏,同时又保证了一次查询只能获得一个目标结果,不过多的暴露数据源的数据,保障了数据源对持有数据的利益。
[0091]
在本发明中,在目标数据的传输过程中,通过数字信封进行数据交互,使用对称加密方法和非对称加密方法相结合的两层加密体系,即使加密文件被非法截获,由于截获者无法得到发送方的通信密钥,则不可能对文件进行解密,保证了数据传输的真实性和完整性。
[0092]
综上,本发明的协议交互过程简单,不需要过多的公私钥对,算法易于实现,计算过程精简,是一种安全可靠的轻量数据检索技术。
[0093]
综上,本发明的协议交互过程简单,不需要过多的公私钥对,易于实现,计算过程精简,是一种轻量的基于加密的数据检索技术。
[0094]
根据本发明的第二方面,本发明还提供了一种基于加密数据的数据检索方法,用于数据检索方,所述数据检索方与数据持有方相关联,图4为本发明实施例提供的一种用于数据检索方的基于加密数据的数据检索方法的步骤流程图,如图4所示,所述方法包括:步骤201:根据将要检索的目标数据所对应的目标数据参数生成包括多个查询条件的查询条件集合,对所述查询条件集合进行数字签名以生成签名结果,并向所述数据持有方发送检索方数字证书、所述查询条件集合和所述签名结果;步骤202:接收所述数据持有方发送的持有方数字证书和持有方随机数集合;步骤203:生成检索方随机数,并基于所述检索方随机数、所述持有方数字证书和
所述持有方随机数集合生成交换参数,向所述数据持有方发送所述交换参数;步骤204:接收所述数据持有方发送的数字信封;步骤205:对所述数字信封进行解密以获得所述目标数据。
[0095]
其中,所述基于加密数据的数据检索方法的其它方面以及实现细节与前面所描述的基于加密数据的数据检索方法相同或相似,在此不再赘述。
[0096]
根据本发明的第三方面,本发明还提供了一种基于加密数据的数据检索方法,用于数据持有方,所述数据持有方与数据检索方相关联,图5为本发明实施例提供的一种用于数据持有方的基于加密数据的数据检索方法的步骤流程图,如图5所示,所述方法包括:步骤301:接收所述数据检索方发送的检索方数字证书、查询条件集合和签名结果;步骤302:对所述检索方数字证书、所述查询条件集合和所述签名结果进行验证,并在验证成功后基于所述查询条件集合对数据进行检索以生成与多个查询条件一一对应的多个查询结果,基于包括所述多个查询结果的查询结果集合生成持有方随机数集合,并向所述数据检索方发送持有方数字证书和所述持有方随机数集合,其中,所述多个查询结果包含与所述目标数据相对应的目标查询结果;步骤303:接收所述数据检索方发送的交换参数;步骤304:基于所述交换参数、所述持有方数字证书对应的持有方私钥和所述持有方随机数集合得到密钥序列集合,并基于所述密钥序列集合和所述查询结果集合得到密文序列集合,基于数字信封加密方法对所述密文序列集合进行加密以生成数字信封,发送所述数字信封至所述数据检索方,以使所述数据检索方对所述数字信封进行解密以获得所述目标数据。
[0097]
其中,所述基于加密数据的数据检索方法的其它方面以及实现细节与前面所描述的基于加密数据的数据检索方法相同或相似,在此不再赘述。
[0098]
根据本发明的第四方面,本发明还提供了一种基于加密数据的数据检索装置,用于数据检索方,所述数据检索方与数据持有方相关联,图6为本发明实施例提供的一种用于数据检索方的基于加密数据的数据检索装置的结构示意图,所述装置包括:检索申请发送单元401,用于根据将要检索的目标数据所对应的目标数据参数生成包括多个查询条件的查询条件集合,对所述查询条件集合进行数字签名以生成签名结果,并向所述数据持有方发送检索方数字证书、所述查询条件集合和所述签名结果;持有方随机数集合接收单元402,用于接收所述数据持有方发送的持有方数字证书和持有方随机数集合;交换参数发送单元403,用于生成检索方随机数,并基于所述检索方随机数、所述持有方数字证书和所述持有方随机数集合生成交换参数,向所述数据持有方发送所述交换参数;数字信封接收单元404,用于接收所述数据持有方发送的数字信封;目标数据获取单元405,用于对所述数字信封进行解密以获得所述目标数据。
[0099]
其中,所述基于加密数据的数据检索装置的其它方面以及实现细节与前面所描述的基于加密数据的数据检索方法相同或相似,在此不再赘述。
[0100]
根据本发明的第五方面,本发明还提供了一种基于加密数据的数据检索装置,用
于数据持有方,所述数据持有方与数据检索方相关联,图7为本发明实施例提供的一种用于数据持有方的基于加密数据的数据检索装置的结构示意图,如图7所示,所述装置包括:检索申请接收单元501,用于接收所述数据检索方发送的检索方数字证书、查询条件集合和签名结果;持有方随机数集合发送单元502,用于对所述检索方数字证书、所述查询条件集合和所述签名结果进行验证,并在验证成功后基于所述查询条件集合对数据进行检索以生成与多个查询条件一一对应的多个查询结果,基于包括所述多个查询结果的查询结果集合生成持有方随机数集合,并向所述数据检索方发送持有方数字证书和所述持有方随机数集合,其中,所述多个查询结果包含与所述目标数据相对应的目标查询结果;交换参数接收单元503,用于接收所述数据检索方发送的交换参数;数字信封发送单元504,用于基于所述交换参数、所述持有方数字证书对应的持有方私钥和所述持有方随机数集合得到密钥序列集合,并基于所述密钥序列集合和所述查询结果集合得到密文序列集合,基于数字信封加密方法对所述密文序列集合进行加密以生成数字信封,发送所述数字信封至所述数据检索方,以使所述数据检索方对所述数字信封进行解密以获得所述目标数据。
[0101]
其中,所述基于加密数据的数据检索装置的其它方面以及实现细节与前面所描述的基于加密数据的数据检索方法相同或相似,在此不再赘述。
[0102]
根据本发明的另一方面,本发明还提供一种存储介质,所述存储介质中存储有多条指令,所述指令适于由处理器加载以执行如上所述的任一基于加密数据的数据检索方法。
[0103]
综上所述,虽然本发明已以优选实施例揭露如上,但上述优选实施例并非用以限制本发明,本领域的普通技术人员,在不脱离本发明的精神和范围内,均可作各种更动与润饰,因此本发明的保护范围以权利要求界定的范围为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献