认证的基于身份的密文等值测试方法、装置、系统及介质

文档序号:32523381发布日期:2022-12-13 20:18阅读:26来源:国知局
认证的基于身份的密文等值测试方法、装置、系统及介质

1.本发明涉及一种认证的基于身份的密文等值测试方法、装置、系统及介质,属于密文等值测试技术领域。


背景技术:

2.随着近年来科技的快速发展,互联网环境发生了深刻的变化。无论是企业还是个人的数据量都呈现快速增长趋势,这给本地数据存储和管理带来了巨大的挑战。云计算作为一种高效便捷的数据处理技术被应用到各个领域中。越来越多的企业和个人倾向于将数据存放到云服务器以简化本地数据的管理。然而,云服务在给用户提供强大计算和存储能力的同时,也带来了数据隐私泄露问题。例如2021年2月,印度政府网站有数百万核算检测报告被泄露,报告中包含受检人姓名、年龄、婚姻状况、检测时间、居住地址等敏感个人信息;2021年4月,美国知名社交媒体平台facebook有超过5.33亿用户的个人信息被泄露。
3.密码学在云计算中的应用为用户数据隐私安全提供了保障,用户的隐私数据可以经过加密后再存放到云服务器上,但加密后的数据由于结构的改变导致了数据管理成为了一个新的问题。在这种情况下,用户如果想要搜索需要的数据,只能将存放于云服务器上的加密文件全部下载到本地,经过解密后再进行搜索。这这种查询方式不仅效率低而且还会占用大量的计算资源和本地存储空间。
4.公钥可搜索加密技术的出现有效地解决加密数据的检索问题,该技术可以使用户直接对加密后的数据进行关键字检索而不需要解密,但该技术只能实现相同公钥下加密数据的检索。随后提出的密文等值测试加密技术较好地弥补了公钥可搜索加密技术的缺陷,其能够对不同公钥加密的数据进行相等性判断而无需解密。密文等值测试加密技术应用前景广阔,比如在医疗领域中,为更好的保护病人的隐私,医院通常会将病人的疾病信息经过加密后存放到云服务器上,当病人a和病人b想要找到和自己相同病症的人来分享治疗经验并相互鼓励时就需要用到密文等值测试加密技术,病人a和b可以分别用自己的私钥计算一个授权陷门,并将授权陷门发送给云服务器,拿到授权陷门的云服务器可以在不解密的情况下测试两个病人是否患有相同的疾病。然而,当明文空间较小的时候,现有的各种密文等值测试加密技术大都无法抵抗离线消息恢复攻击,其主要原因是在现有的公钥密码体制下,任何人都可以生成合法密文,这样在明文空间较小的情况下,云服务可以通过穷举的方式,生成明文空间中每个消息的密文,在获得用户授权的授权陷门后执行测试算法从而正确猜测出用户密文对应的明文信息。


技术实现要素:

5.有鉴于此,本发明提供了一种认证的基于身份的密文等值测试方法、装置、系统及存储介质,其与现有的密文等值测试技术相比,能够有效抵抗离线消息恢复攻击,安全性能更好。
6.本发明的第一个目的在于提供一种认证的基于身份的密文等值测试方法。
7.本发明的第二个目的在于提供一种认证的基于身份的密文等值测试装置。
8.本发明的第三个目的在于提供一种认证的基于身份的密文等值测试系统。
9.本发明的第四个目的在于提供一种计算机可读存储介质。
10.本发明的第一个目的通过采取如下技术方案达到:
11.一种认证的基于身份的密文等值测试方法,应用于云服务器,所述方法包括:
12.获取两个接收者的授权陷门,两个接收者分别为接收者a和接收者b;
13.从存储器中获取预先存储的两个接收者的密文;
14.提取两个接收者密文中的第二密文段、第四密文段;
15.根据两个接收者密文的第二密文段、第四密文段以及授权陷门,恢复出密文中隐藏的坐标点;
16.根据两个接收者的坐标点,判断两个接收者的密文中是否包含相同的明文消息,返回判断结果。
17.进一步的,所述根据两个接收者密文的第二密文段、第四密文段以及授权陷门,恢复出隐藏在密文中的坐标点,具体包括:
18.利用接收者a的密文ca中的第二密文段c
2,a
、第四密文段c
4,a
和授权陷门tda以及公共参数中的第六哈希函数h6,计算恢复出隐藏在密文ca中的坐标信息x1||x2||y1||y2,并转化成坐标点(x1,y1),(x2,y2);
19.利用接收者b的密文cb中的第二密文段c
2,b
、第四密文段c
4,b
和授权陷门tdb以及公共参数中的第六哈希函数h6,计算恢复出隐藏在密文cb中的坐标信息x1′
||x2′
||y1′
||y2′
,并转化成坐标点(x1′
,y1′
),(x2′
,y2′
)。
20.进一步的,所述根据两个接收者的坐标点,判断两个接收者的密文中是否包含相同的明文消息,具体包括:
21.利用接收者a的的两个坐标点(x1,y1),(x2,y2)和接收者b的一个坐标点(x1′
,y1′
)构造一个二次多项式,并利用接收者b的两个坐标点(x1′
,y1′
),(x2′
,y2′
)和接收者a的一个坐标点(x1,y1)构造另一个二次多项式;
22.判断构造的两个二次多项式的常数项是否相同;
23.若两个二次多项式的常数项相同,则两个接收者的密文中包含相同的明文信息;
24.若两个二次多项式的常数项不同,则两个接收者的密文中包含不同的明文信息。
25.进一步的,所述两个接收者的授权陷门计算如下:
26.利用接收者a的私钥和发送者的身份信息ids,计算接收者a的授权陷门其中
27.利用接收者b的私钥和发送者的身份信息ids,计算接收者b的授权陷门其中
28.本发明的第二个目的通过采取如下技术方案达到:
29.一种认证的基于身份的密文等值测试装置,应用于云服务器,所述装置包括:
30.第一获取模块,用于获取两个接收者的授权陷门,两个接收者分别为接收者a和接收者b;
31.第二获取模块,用于从存储器中获取预先存储的两个接收者的密文;
32.提取模块,用于提取两个接收者密文中的第二密文段、第四密文段;
33.恢复模块,用于根据两个接收者密文的第二密文段、第四密文段以及授权陷门,恢复出密文中隐藏的坐标点;
34.判断模块,用于根据两个接收者的坐标点,判断两个接收者的密文中是否包含相同的明文消息,返回判断结果。
35.本发明的第三个目的通过采取如下技术方案达到:
36.一种认证的基于身份的密文等值测试系统,所述系统包括用户端、密钥生成中心和云服务器,所述用户端分别与密钥生成中心、云服务器相连;
37.所述用户端在作为发送者时,用于根据明文消息和公共参数,生成三个点;利用这三个点确定一个二次多项式;随机选取二次多项式上的两个坐标点;获取两个随机数、发送者的私钥以及接收者的公钥;利用两个随机数、两个坐标点、发送者的私钥以及接收者的公钥对明文消息进行加密得到密文,并将密文上传至云服务器;
38.所述用户端在作为接收者时,用于获取待解密的密文、接收者的私钥和发送者的公钥;利用密文的第一密文段、第三密文段和接收者的私钥恢复出明文消息和随机数;利用密文的第四密文段、接收者的私钥以及发送者的公钥恢复出两个坐标点;根据恢复出的明文消息和公共参数,计算三个点,并利用这三个点重构二次多项式;利用随机数、两个坐标点以及二次多项式进行密文正确性的验证,若验证通过,则输出明文消息;
39.所述密钥生成中心,用于基于安全参数,生成主私钥和公共参数;接收用户端发送的注册请求,生成用户的公私钥对,并将用户的公私钥对反馈给用户端;
40.所述云服务器,用于执行上述的密文等值测试方法。
41.进一步的,所述根据明文消息和公共参数,生成三个点,如下式:
[0042][0043][0044][0045]
其中,m为明文消息,η1、η2、η3、η4、η5和η6为公共参数中的六个随机数,h3为公共参数中的第三哈希函数。
[0046]
进一步的,利用三个点p1、p2、p3唯一确定一个二次多项式f(x),并随机选取二次多项式上的两个坐标点(x1,y1)和(x2,y2),其中y1=f(x1),y2=f(x2)。
[0047]
进一步的,所述利用两个随机数、两个坐标点、发送者的私钥以及接收者的公钥对明文消息进行加密得到密文,如下式:
[0048][0049][0050][0051]
其中,c1、c2、c3、c4和c5是密文c的五个密文段,r1和r2为两个随机数,(x1,y1)和(x2,y2)为两个坐标点,)为两个坐标点,为发送者的私钥的第一部分,为
接收者的公钥的第二部分,h4为公共参数中的第四哈希函数,h5为公共参数中的第五哈希函数,h6为公共参数中的第六哈希函数,h7为公共参数中的第七哈希函数,m为明文消息。
[0052]
进一步的,所述利用密文的第一密文段、第三密文段和接收者的私钥恢复出明文消息和随机数,如下式:
[0053][0054]
其中,为接收者的私钥的第三部分,c1为密文的第一密文段,c3为密文的第三密文段,h4为公共参数中的第四哈希函数;
[0055]
所述利用密文的第四密文段、接收者的私钥以及发送者的公钥恢复出两个坐标点,如下式:
[0056][0057]
其中,为接收者的私钥的第二部分,c4为密文的第四密文段,h5为公共参数中的第五哈希函数,
[0058]
本发明的第四个目的通过采取如下技术方案达到:
[0059]
一种计算机可读存储介质,存储有程序,所述程序被处理器执行时,实现上述的密文等值测试方法。
[0060]
本发明相对于现有技术具有如下的有益效果:
[0061]
1、本发明的密文等值测试方法通过云服务器获取两个接收者授权的授权陷门以后,分别基于两个接收者密文中的第二密文段和第四密文段恢复出密文构造过程中用到的二次多项式上的随机点,利用恢复的随机点进行二次多项式的构造并计算多项式对应的常数项的值,通过判断两个常数项的值是否相同可以知道密文中包含的明文消息是否相同。
[0062]
2、本发明考虑到目前大多数密文等值测试加密技术在明文空间较小的情况下都无法抵抗离线消息恢复攻击,通过在密文生成过程中加入发送者私钥的方式,防止除发送者以外的任意第三方生成合法密文,从而有效抵抗此类攻击,提高了安全性。
附图说明
[0063]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
[0064]
图1为本发明实施例的认证的基于身份的密文等值测试系统的结构框图。
[0065]
图2为本发明实施例的认证的基于身份的密文等值测试系统中数据加密的流程图。
[0066]
图3为本发明实施例的认证的基于身份的密文等值测试系统中数据解密的流程图。
[0067]
图4为本发明实施例的认证的基于身份的密文等值测试系统中密文等值测试的流程图。
[0068]
图5为本发明实施例的认证的基于身份的密文等值测试系统中数据加密装置的结构框图。
[0069]
图6为本发明实施例的认证的基于身份的密文等值测试系统中数据解密装置的结构框图。
[0070]
图7为本发明实施例的认证的基于身份的密文等值测试系统中密文等值测试装置的结构框图。
具体实施方式
[0071]
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0072]
实施例1:
[0073]
如图1所示,本实施例提供了一种认证的基于身份的密文等值测试系统,该系统包括用户端、密钥生成中心和云服务器,用户端分别与密钥生成中心、云服务器相连。
[0074]
本实施例的密文等值测试系统具体实现过程如下:
[0075]
(1)初始化过程
[0076]
基于安全参数λ,生成主私钥msk和公共参数pp,具体为:设定两个阶为p的群和群的生成元g,以及一个双线性映射接着选取七个抗碰撞的哈希函数:接着选取七个抗碰撞的哈希函数:其中l代表中元素的比特长度;再接着随机地从中选取三个数α,β,γ,并将(α,β,γ)设定为主私钥msk,将(g1=g
α
,g2=g
β
,g3=g
γ
)设定为主公钥mpk;然后随机地从{0,1}
λ
选取六个随机数γ1,γ2,γ3,γ4,γ5和γ6;最后输出公共参数;最后输出公共参数主私钥msk=(α,β,γ);其中,h1为第一哈希函数,h2为第二哈希函数,h3为第三哈希函数,h4为第四哈希函数,h5为第五哈希函数,h6为第六哈希函数,h7为第七哈希函数。
[0077]
(2)用户密钥生成过程
[0078]
用户将自己的身份信息id发送给密钥生成中心进行注册,密钥生成中心在接收到用户注册请求后,密钥生成中心根据系统参数用户注册请求后,密钥生成中心根据系统参数主私钥msk=(α,β,γ)以及用户的身份信息id计算用户的私钥公钥公钥并将sk
id
和pk
id
反馈给用户,至此用户完成注册过程。
[0079]
(3)数据加密过程
[0080]
用户端在作为发送者时可以实现数据加密过程,如图2所示,包括以下步骤:
[0081]
s201、根据明文消息和公共参数,生成三个点。
[0082]
获取公共参数中的六个随机数η1、η2、η3、η4、η5、η6以及第三哈希函数h3,利用明文消息m、随机数η1、η2、η3、η4、η5和η6和第三哈希函数h3,生成三个点p1、p2和p3,如下式:
[0083][0084][0085][0086]
s202、利用这三个点p1、p2和p3确定一个二次多项式f(x)。
[0087]
s203、随机选取二次多项式上的两个坐标点(x1,y1)和(x2,y2),其中y1=f(x1),y2=f(x2)。
[0088]
s203、获取两个随机数、发送者的私钥以及接收者的公钥。
[0089]
从中选取两个随机数r1和r2,获取接收者的公钥,获取接收者的公钥以及发送者的私钥以及发送者的私钥
[0090]
s204、利用两个随机数、两个坐标点、发送者的私钥以及接收者的公钥对明文消息进行加密得到密文,并将密文上传至云服务器。
[0091]
利用两个随机数r1,r2、两个坐标点(x1,y1)和(x2,y2)、发送者的私钥以及接收者的公钥对明文消息m进行加密得到密文c=(c1,c2,c3,c4,c5),其中c1、c2、c3、c4、c5是密文c的五个密文段,计算方式如下:
[0092][0093][0094][0095]
其中,
[0096]
(3)数据解密过程
[0097]
用户端在作为接收者时可以实现数据解密过程,如图3所示,包括以下步骤:
[0098]
s301、获取待解密的密文、接收者的私钥和发送者的公钥。
[0099]
其中,待解密的密文c=(c1,c2,c3,c4,c4,c5),接收者的私钥),接收者的私钥发送者的公钥发送者的公钥
[0100]
s302、利用密文的第一密文段、第三密文段和接收者的私钥恢复出明文消息和随机数。
[0101]
利用密文的第一密文段c1、第三密文段c3和接收者的私钥通过计算恢复出m||r2。
[0102]
s303、利用密文的第四密文段、接收者的私钥以及发送者的公钥恢复出两个坐标点。
[0103]
利用密文的第四密文段c4、接收者的私钥以及发送者的公钥通过计算恢复出x1||x2||y1||y2,其中
[0104]
s304、根据恢复出的明文消息和公共参数,计算三个点,并利用这三个点重构二次
多项式。
[0105]
该步骤s304所使用的方法同上述步骤s201,获取公共参数中的六个随机数η1、η2、η3、η4、η5、η6以及第三哈希函数h3,利用明文消息m、随机数η1、η2、η3、η4、η5和η6和第三哈希函数h3,生成三个点p1、p2和p3,利用这三个点p1、p2和p3构造二次多项式f(x)。
[0106]
s305、利用随机数、两个坐标点以及二次多项式进行密文正确性的验证,若验证通过,则输出明文消息。
[0107]
验证下面式子是否都成立:
[0108]
f(x1)=y1,f(x2)=y2,
[0109]
若式子都成立,则输出明文消息,否则解密失败。
[0110]
(4)认证的基于身份的密文等值测试过程
[0111]
通过云服务器可以实现密文等值测试过程,如图4所示,包括以下步骤:
[0112]
s401、获取两个接收者的授权陷门。
[0113]
两个接收者分别为接收者a和接收者b,利用接收者a的私钥和发送者的身份信息ids,计算接收者a的授权陷门其中利用接收者b的私钥和发送者的身份信息ids,计算接收者b的授权陷门其中接收者a和接收者b将授权陷门tda和tdb发送给云服务器。
[0114]
s402、从存储器中获取预先存储的两个接收者的密文。
[0115]
具体地,云服务器获取接收者a和接收者b的陷门以后,从存储器中获取接收者a的密文ca=(c
1,a
,c
2,a
,c
3,a
,c
4,a
,c
5,a
)和接收者b的密文(c
1,b
,c
2,b
,c
3,b
,c
4,b
,c
5,b
)。
[0116]
s403、提取两个接收者密文中的第二密文段、第四密文段。
[0117]
具体地,提取接收者a的密文中的第二密文段c
2,a
和第四密文段c
4,a
,以及提取接收者b的密文中的第二密文段c
2,b
和第四密文段c
4,b

[0118]
s404、根据两个接收者密文的第二密文段、第四密文段以及授权陷门,恢复出密文中隐藏的坐标点。
[0119]
利用接收者a的密文ca中的第二密文段c
2,a
、第四密文段c
4,a
和授权陷门tda以及公共参数中的第六哈希函数h6,计算恢复出隐藏在密文ca中的坐标信息x1||x2||y1||y2,并转化成坐标点(x1,y1),(x2,y2)。
[0120]
利用接收者b的密文cb中的第二密文段c
2,b
、第四密文段c
4,b
和授权陷门tdb以及公共参数中的第六哈希函数h6,计算恢复出隐藏在密文cb中的坐标信息x1′
||x2′
||y1′
||y2′
,并转化成坐标点(x1′
,y1′
),(x2′
,y2′
)。
[0121]
s405、根据两个接收者的坐标点,判断两个接收者的密文中是否包含相同的明文消息,返回判断结果。
[0122]
进一步地,该步骤s405具体包括:
[0123]
s4051、利用接收者a的的两个坐标点(x1,y1),(x2,y2)和接收者b的一个坐标点(x1′
,y1′
)构造一个多项式,并利用接收者b的两个坐标点(x1′
,y1′
),(x2′
,y2′
)和接收者a的一个坐标点(x1,y1)构造另一个多项式。
[0124]
s4052、判断构造的两个多项式的常数项是否相同。
[0125]
s4053、若两个多项式的常数项相同,则接收者a和接收者b的密文中包含相同的明文信息,以1作为相同的判断结果,返回1。
[0126]
s4054、若两个多项式的常数项不同,则接收者a和接收者b的密文中包含不同的明文信息,以1作为不同的判断结果,返回0。
[0127]
根据上述过程的内容,本实施例还提供了数据加密装置、数据解密装置以及认证的基于身份的密文等值测试装置,用户端作为发送者时,使用数据加密装置;用户端作为接收者时,使用数据解密装置;云服务器中包括认证的基于身份的密文等值测试装置。
[0128]
本实施例的数据加密装置如图5所示,包括生成模块501、确定模块502、选取模块503、获取模块504和加密模块505,各个模块的具体功能如下:
[0129]
生成模块501,用于根据明文消息和公共参数,生成三个点。
[0130]
确定模块502,用于利用这三个点确定一个二次多项式。
[0131]
选取模块503,用于随机选取二次多项式上的两个坐标点。
[0132]
获取模块504,用于获取两个随机数、发送者的私钥以及接收者的公钥。
[0133]
加密模块505,用于利用两个随机数、两个坐标点、发送者的私钥以及接收者的公钥对明文消息进行加密得到密文,并将密文上传至云服务器。
[0134]
本实施例的数据解密装置如图6所示,包括获取模块601、第一恢复模块602、第二恢复模块603、重构模块604和验证模块605,各个模块的具体功能如下:
[0135]
获取模块601,用于获取待解密的密文、接收者的私钥和发送者的公钥。
[0136]
第一恢复模块602,用于利用密文的第一密文段、第三密文段和接收者的私钥恢复出明文消息和随机数。
[0137]
第二恢复模块603,用于利用密文的第四密文段、接收者的私钥以及发送者的公钥恢复出两个坐标点。
[0138]
重构模块604,用于根据恢复出的明文消息和公共参数,计算三个点,并利用这三个点重构二次多项式。
[0139]
验证模块605,用于利用随机数、两个坐标点以及二次多项式进行密文正确性的验证,若验证通过,则输出明文消息。
[0140]
本实施例的密文等值测试装置如图7所示,该装置包括第一获取模块701、第二获取模块702、提取模块703、恢复模块704和判断模块705,各个模块的具体功能如下:
[0141]
第一获取模块701,用于获取两个接收者的授权陷门。
[0142]
第二获取模块702,用于从存储器中获取预先存储的两个接收者的密文。
[0143]
提取模块703,用于提取两个接收者密文中的第二密文段、第四密文段。
[0144]
恢复模块704,用于根据两个接收者密文的第二密文段、第四密文段以及授权陷门,恢复出密文中隐藏的坐标点。
[0145]
判断模块705,用于根据两个接收者的坐标点,判断两个接收者的密文中是否包含相同的明文消息,返回判断结果。
[0146]
应当注意,尽管在附图中以特定顺序描述了上述实施例的方法操作,但是这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,
将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
[0147]
需要说明的是,上述实施例提供的装置仅以上述各功能模块的划分进行举例说明,在实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
[0148]
本实施例的计算机可读存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0149]
综上所述,本发明的密文等值测试方法通过云服务器获取两个接收者授权的授权陷门以后,分别基于两个接收者密文中的第二密文段和第四密文段恢复出密文构造过程中用到的二次多项式上的随机点,利用恢复的随机点进行二次多项式的构造并计算多项式对应的常数项的值,通过判断两个常数项的值是否相同可以知道密文中包含的明文消息是否相同。
[0150]
以上所述,仅为本发明专利较佳的实施例,但本发明专利的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明专利所公开的范围内,根据本发明专利的技术方案及其发明构思加以等同替换或改变,都属于本发明专利的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1