本发明涉及云计算安全与数据隐私保护技术领域,具体的说是一种基于sm3/4的身份认证与隐私匹配系统及方法。
背景技术:
随着数据量的不断增大,个人以及组织的隐私保护意识越来越强烈,隐私数据的保护首当其冲成为人们的关注要点。隐私数据是指不想被他人获知的秘密信息,包括信用卡号、个人健康记录和聊天记录等个人信息以及公司业务信息、员工的薪资情况、重要文件等组织机构的信息。云计算的发展使得越来越多的组织或者个人希望将自身的数据外包给云服务器进行存储和计算。而这种外包资源在提供服务的同时,却也使得租户对自身任务以及数据处理过程不再拥有完全的控制权,这大大增加了云平台数据安全的风险性。如何在云计算中实现数据在高效使用的同时保证数据的隐私是目前亟待完善解决的关键技术问题。
集合交集计算作为集合操作的基础运算,可以有效地应用到电子医疗数据库记录匹配或者在线推荐系统中。传统的加密技术将隐私数据信息转换为无法识别的密文数据,丧失了许多数据的语义特征,导致常规的数据处理方法失效,阻碍了密文数据的使用。近几年被广泛研究的同态加密、可检索加密、保序加密等可计算加密方案是解决隐私数据处理的有效手段,并且均可直接对隐私数据的密文进行操作。但是当数据被外包存储在云端时,如何高效地实现安全的隐私数据之间的匹配运算以及当有用户需要进行访问使用数据时,如何对用户进行身份认证功能,是需要着重解决的问题。
技术实现要素:
本发明要解决的技术问题是提供一种基于sm3/4的身份认证与隐私匹配系统及方法,云租户通过协商授权令牌发送给云服务器,云服务器根据授权令牌将密文集合转化成中间值,从而能实现对用户身份进行认证。
为解决上述技术问题,本发明采用的技术方案为:
一种基于sm3/4的身份认证与隐私匹配系统,其特征在于:包括可信授权机构、云服务器和终端用户;
所述的可信授权机构用于维护用户列表,对进入系统的云租户进行身份验证,为合法的用户产生系统参数并根据云用户的身份为其分发私钥,所述的云用户为数据拥有者;
所述的终端用户包括数据拥有者和数据使用者,其中数据拥有者将数据使用ibpm方案加密并且外包上传至云服务器,通过操作令牌将密文集合操作运算授权给云服务器,并收到云服务器返回的匹配结果;
所述的云服务器用于存储加密后的密文数据,同时当收到数据用户的授权令牌后,自动完成密文集合匹配运算且将最后结果返回给云用户,所述的云服务器无法获得原始明文的任何有效信息。
该系统中具体过程分为6个部分,包括生成公共参数与主私钥setup,产生私钥keygen,加密enc,解密dec,产生令牌tok和匹配运算mat。其中,setup和keygen由可信授权机构完成,enc和dec由云租户完成,tok和mat由云服务器完成
一种基于sm3/4的身份认证与隐私匹配方法,其特征在于:所述的身份认证与隐私匹配方法包括如下步骤:
步骤1,系统建立阶段,可信授权机构产生系统公共参数,并为用户颁发私钥证书所用的主私钥;
步骤2,用户私钥产生阶段,可信授权机构根据用户的身份id,为用户产生私钥,并颁发给用户;
步骤3,数据加密阶段,用户对需要外包存储的数据集合d进行加密,并将加密后的密文集合c发送给云服务器存储;
步骤4,数据解密阶段,用户利用私钥对加密的密文集合c进行解密,若解密成功则输出对应明文集合d;否则输出错误信息;
步骤5,授权令牌产生阶段,当两个用户id和id'之间需要向云服务器请求做密文匹配运算时,产生一个授权令牌
步骤6,密文匹配计算阶段,云服务器收到用户的授权令牌
所述的步骤1的具体步骤如下:
步骤1.1,首先运行(e,p,g,g,gt)←bmapgen(1λ),产生双线性映射对e:g×g→gt;式中,g、gt是阶数为p的素阶循环群,p是一个λ比特的素数,且g是g的生成元;
步骤1.2,选择两个sm3哈希函数:h1,h2:{0,1}*→g,选择一个sm4函数h3:g→g;
步骤1.3,选择
pp=(e,p,g,ga,gb,gc,g,gt,h1,h2,h3)
msk=(a,b,c)
所述的步骤2至步骤6的步骤中均隐含输入了pp。
所述的步骤2的具体步骤如下:
步骤2.1,用户将身份id发送给可信授权机构;
步骤2.2,可信授权机构选择
sk1=gabh1(id)t,sk2=gt,sk3=h2(id)c。
所述的步骤3的具体步骤如下:
步骤3.1,给定需要外包的隐私数据集合d={d1,...,dn},其中di∈{0,1}*;
步骤3.2,对于每个集合元素di,1≤i≤n,选择
ci,1=gri,2,ci,2=gbri,1,ci,3=h1(id)ri,2
ci,4=ga(ri,1 ri,2)h3(di),ci,5=die(h2(id),gc)ri,2
步骤3.3,数据集合d={d1,...,dn}对应的密文集合为c={c1,...,cn}。
所述的步骤4的具体步骤如下:
步骤4.1,给定密文集合c={c1,...,cn},对于每个密文ci,1≤i≤n,则计算
di=ci,5/e(sk3,ci,1)
步骤4.2,依次解密,即可得到解密集合d={d1,...,dn}。
所述的步骤5的具体步骤如下:
步骤5.1,给定两个用户id和id',用户id和id'协商一个秘密值
步骤5.2,用户id根据自己的私钥计算(gabsh1(id)st,gst,gas,gbs),用户id'根据自己的私钥计算(gabsh1(id′)st′,gst′);
步骤5.3,将
所述的步骤6的具体步骤如下:
步骤6.1,用户对应的密文集合分别为c={c1,...,cn}和c′={c′1,...,c′n};
步骤6.2,对于每个密文ci∈c,1≤i≤n,计算
eti,1=e(ci,2,gas)=e(g,g)absri,1,
eti,2=e(gabsh1(id)st,ci,1)/e(gst,ci,3)=e(g,g)absri,2,
eti=e(ci,4,gbs)/(eti,1eti,2)=e(h3(di),g)bs
得到密文集合c对应的中间结果et={et1,...,etn}。
步骤6.3,同理,对于每个密文c′i∈c′,1≤i≤n,计算
et′i,1=e(c′i,2,gas)=e(g,g)absr′i,1,
et′i,2=e(gabsh1(id′)st,c′i,1)/e(gst,c′i,3)=e(g,g)absr′i,2,
et′i=e(c′i,4,gbs)/(et′i,1et′i,2)=e(h3(d′i),g)bs
得到密文集合c′对应的中间结果et′={et′1,...,et′n}。
步骤6.4,最后计算et∩et′,得到最终的密文匹配结果:rslt={ci|ci∈c∧eti∈et∩et′},将结果返回给用户,用户解密即可得到最终的交集结果。
该种基于sm3/4的身份认证与隐私匹配系统及方法能够产生的有益效果为:云租户通过协商授权令牌发送给云服务器,云服务器根据授权令牌将密文集合转化成中间值,从而能实现对用户身份进行认证。在这个过程中,可信授权机构对每个进入系统的云租户进行身份认证,并为合法的云租户生成私钥。在实际生活中,数据集合是庞大的,该算法可将加解密运算和匹配运算交给云服务器来完成,并且云服务器也无法获得隐私数据的明文信息,大大减少了用户端的工作负担,同时又保证了数据的隐私性。
附图说明
图1为本发明一种基于sm3/4的身份认证与隐私匹配系统的系统架构图。
图2为本发明一种基于sm3/4的身份认证与隐私匹配方法的算法流程图。
具体实施方式
以下结合说明书附图和具体优选的实施例对本发明作进一步描述。
如图1所示,一种基于sm3/4的身份认证与隐私匹配系统,其特征在于:包括可信授权机构、云服务器和终端用户;
所述的可信授权机构用于维护用户列表,对进入系统的云租户进行身份验证,为合法的用户产生系统参数并根据云用户的身份为其分发私钥,所述的云用户为数据拥有者;
所述的终端用户包括数据拥有者和数据使用者,其中数据拥有者将数据使用ibpm方案加密并且外包上传至云服务器,通过操作令牌将密文集合操作运算授权给云服务器,并收到云服务器返回的匹配结果;
所述的云服务器用于存储加密后的密文数据,同时当收到数据用户的授权令牌后,自动完成密文集合匹配运算且将最后结果返回给云用户,所述的云服务器无法获得原始明文的任何有效信息。
如图2所示,一种基于sm3/4的身份认证与隐私匹配方法,其特征在于:所述的身份认证与隐私匹配方法包括如下步骤:
步骤1,系统建立阶段,可信授权机构产生系统公共参数,并为用户颁发私钥证书所用的主私钥;
步骤2,用户私钥产生阶段,可信授权机构根据用户的身份id,为用户产生私钥,并颁发给用户;
步骤3,数据加密阶段,用户对需要外包存储的数据集合d进行加密,并将加密后的密文集合c发送给云服务器存储;
步骤4,数据解密阶段,用户利用私钥对加密的密文集合c进行解密,若解密成功则输出对应明文集合d;否则输出错误信息;
步骤5,授权令牌产生阶段,当两个用户id和id'之间需要向云服务器请求做密文匹配运算时,产生一个授权令牌
步骤6,密文匹配计算阶段,云服务器收到用户的授权令牌
所述的步骤1的具体步骤如下:
步骤1.1,首先运行(e,p,g,g,gt)←bmapgen(1λ),产生双线性映射对e:g×g→gt;式中,g、gt是阶数为p的素阶循环群,p是一个λ比特的素数,且g是g的生成元;
步骤1.2,选择两个sm3哈希函数:h1,h2:{0,1}*→g,选择一个sm4函数h3:g→g;
步骤1.3,选择
pp=(e,p,g,ga,gb,gc,g,gt,h1,h2,h3)
msk=(a,b,c)
所述的步骤2至步骤6的步骤中均隐含输入了pp。
所述的步骤2的具体步骤如下:
步骤2.1,用户将身份id发送给可信授权机构;
步骤2.2,可信授权机构选择
sk1=gabh1(id)t,sk2=gt,sk3=h2(id)c。
所述的步骤3的具体步骤如下:
步骤3.1,给定需要外包的隐私数据集合d={d1,...,dn},其中di∈{0,1}*;
步骤3.2,对于每个集合元素di,1≤i≤n,选择
ci,1=gri,2,ci,2=gbri,1,ci,3=h1(id)ri,2
ci,4=ga(ri,1 ri,2)h3(di),ci,5=die(h2(id),gc)ri,2
步骤3.3,数据集合d={d1,...,dn}对应的密文集合为c={c1,...,cn}。
所述的步骤4的具体步骤如下:
步骤4.1,给定密文集合c={c1,...,cn},对于每个密文ci,1≤i≤n,则计算
di=ci,5/e(sk3,ci,1)
步骤4.2,依次解密,即可得到解密集合d={d1,...,dn}。
所述的步骤5的具体步骤如下:
步骤5.1,给定两个用户id和id',用户id和id'协商一个秘密值
步骤5.2,用户id根据自己的私钥计算(gabsh1(id)st,gst,gas,gbs),用户id'根据自己的私钥计算(gabsh1(id′)st′,gst′);
步骤5.3,将
所述的步骤6的具体步骤如下:
步骤6.1,用户对应的密文集合分别为c={c1,...,cn}和c′={c1′,...,cn′};
步骤6.2,对于每个密文ci∈c,1≤i≤n,计算
eti,1=e(ci,2,gas)=e(g,g)absri,1,
eti,2=e(gabsh1(id)st,ci,1)/e(gst,ci,3)=e(g,g)absri,2,
eti=e(ci,4,gbs)/(eti,1eti,2)=e(h3(di),g)bs
得到密文集合c对应的中间结果et={et1,...,etn}。
步骤6.3,同理,对于每个密文c′i∈c′,1≤i≤n,计算
et′i,1=e(c′i,2,gas)=e(g,g)absr′i,1,
et′i,2=e(gabsh1(id′)st,c′i,1)/e(gst,c′i,3)=e(g,g)absr′i,2,
et′i=e(c′i,4,gbs)/(et′i,1et′i,2)=e(h3(d′i),g)bs
得到密文集合c′对应的中间结果et′={et′1,...,et′n}。
步骤6.4,最后计算et∩et′,得到最终的密文匹配结果:rslt={ci|ci∈c∧eti∈et∩et′},将结果返回给用户,用户解密即可得到最终的交集结果。
进一步的,可由通过实际的车联网系统对基于sm3/4的身份认证与隐私匹配系统及方法进行验证,测试内容如下:
第一,将授权机构与用户设备设置在同一个局域网中,可信授权机构扫描当前局域网设备。
第二,用户查看指定网关中的合法用户。
第三,模拟非法用户登录系统。
第四,模拟合法匹配用户登录,并查看可信授权机构为其分发的私钥,用户可查看自己的密文,查看用户匹配的结果。
第五,模拟合法不匹配用户登录,查看用户匹配的结果。
测试中主要通过三种方案对基于sm3/4的身份认证与隐私匹配系统及方法进行验证:第一,不合法用户进入系统;第二,合法不匹配用户进入系统;第三,合法并且匹配用户进入系统。具体测试步骤如下:
首先,可信授权机构维护一个合法的用户列表。智能小车alice首先在可信授权机构的用户列表中,bob车进入系统,企图与alice车进行隐私匹配。
其次,可信授权机构先对bob车进行身份验证,看他是否在用户列表中。若在,即为合法,为他生成私钥,并进行之后的操作;若不在,即判断为非法用户,拒绝相关请求。
再次,若bob通过认证,则与alice协商一个授权令牌,发给云服务器。根据授权令牌将相应用户的密文集合转化成中间值,转化的中间值与明文信息一一对应,然后进行密文匹配计算。
最后,若隐私匹配成功,则两车形成车队,做出相同的响应动作,如前进。若匹配失败,则未与其他用户匹配成功的小车掉头。
通过测试,能够证明本申请中基于sm3/4的身份认证与隐私匹配系统及方法的有效性。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
1.一种基于sm3/4的身份认证与隐私匹配系统,其特征在于:包括可信授权机构、云服务器和终端用户;
所述的可信授权机构用于维护用户列表,对进入系统的云租户进行身份验证,为合法的用户产生系统参数并根据云用户的身份为其分发私钥,所述的云用户为数据拥有者;
所述的终端用户包括数据拥有者和数据使用者,其中数据拥有者将数据使用ibpm方案加密并且外包上传至云服务器,通过操作令牌将密文集合操作运算授权给云服务器,并收到云服务器返回的匹配结果;
所述的云服务器用于存储加密后的密文数据,同时当收到数据用户的授权令牌后,自动完成密文集合匹配运算且将最后结果返回给云用户,所述的云服务器无法获得原始明文的任何有效信息。
2.基于如权利要求1所述系统的一种基于sm3/4的身份认证与隐私匹配方法,其特征在于:所述的身份认证与隐私匹配方法包括如下步骤:
步骤1,系统建立阶段,可信授权机构产生系统公共参数,并为用户颁发私钥证书所用的主私钥;
步骤2,用户私钥产生阶段,可信授权机构根据用户的身份id,为用户产生私钥,并颁发给用户;
步骤3,数据加密阶段,用户对需要外包存储的数据集合d进行加密,并将加密后的密文集合c发送给云服务器存储;
步骤4,数据解密阶段,用户利用私钥对加密的密文集合c进行解密,若解密成功则输出对应明文集合d;否则输出错误信息;
步骤5,授权令牌产生阶段,当两个用户id和id'之间需要向云服务器请求做密文匹配运算时,产生一个授权令牌
步骤6,密文匹配计算阶段,云服务器收到用户的授权令牌
3.如权利要求2所述的一种基于sm3/4的身份认证与隐私匹配方法,其特征在于:所述的步骤1的具体步骤如下:
步骤1.1,首先运行(e,p,g,g,gt)←bmapgen(1λ),产生双线性映射对e:g×g→gt;式中,g、gt是阶数为p的素阶循环群,p是一个λ比特的素数,且g是g的生成元;
步骤1.2,选择两个sm3哈希函数:h1,h2:{0,1}*→g,选择一个sm4函数h3:g→g;
步骤1.3,选择
pp=(e,p,g,ga,gb,gc,g,gt,h1,h2,h3)
msk=(a,b,c)
所述的步骤2至步骤6的步骤中均隐含输入了pp。
4.如权利要求3所述的一种基于sm3/4的身份认证与隐私匹配方法,其特征在于:所述的步骤2的具体步骤如下:
步骤2.1,用户将身份id发送给可信授权机构;
步骤2.2,可信授权机构选择
sk1=gabh1(id)t,sk2=gt,sk3=h2(id)c。
5.如权利要求4所述的一种基于sm3/4的身份认证与隐私匹配方法,其特征在于:所述的步骤3的具体步骤如下:
步骤3.1,给定需要外包的隐私数据集合d={d1,...,dn},其中di∈{0,1}*;
步骤3.2,对于每个集合元素di,1≤i≤n,选择
ci,1=gri,2,ci,2=gbri,1,ci,3=h1(id)ri,2
ci,4=ga(ri,1 ri,2)h3(di),ci,5=die(h2(id),gc)ri,2
步骤3.3,数据集合d={d1,...,dn}对应的密文集合为c={c1,...,cn}。
6.如权利要求5所述的一种基于sm3/4的身份认证与隐私匹配方法,其特征在于:所述的步骤4的具体步骤如下:
步骤4.1,给定密文集合c={c1,...,cn},对于每个密文ci,1≤i≤n,则计算
di=ci,5/e(sk3,ci,1)
步骤4.2,依次解密,即可得到解密集合d={d1,...,dn}。
7.如权利要求6所述的一种基于sm3/4的身份认证与隐私匹配方法,其特征在于:所述的步骤5的具体步骤如下:
步骤5.1,给定两个用户id和id',用户id和id'协商一个秘密值
步骤5.2,用户id根据自己的私钥计算(gabsh1(id)st,gst,gas,gbs),用户id'根据自己的私钥计算(gabsh1(id′)st′,gst′);
步骤5.3,将
8.如权利要求7所述的一种基于sm3/4的身份认证与隐私匹配方法,其特征在于:所述的步骤6的具体步骤如下:
步骤6.1,用户对应的密文集合分别为c={c1,...,cn}和c′={c1′,...,cn′};
步骤6.2,对于每个密文ci∈c,1≤i≤n,计算
eti,1=e(ci,2,gas)=e(g,g)absri,1,
eti,2=e(gabsh1(id)st,ci,1)/e(gst,ci,3)=e(g,g)absri,2,
eti=e(ci,4,gbs)/(eti,1eti,2)=e(h3(di),g)bs
得到密文集合c对应的中间结果et={et1,...,etn}。
步骤6.3,同理,对于每个密文c′i∈c′,1≤i≤n,计算
et′i,1=e(c′i,2,gas)=e(g,g)absr′i,1,
et′i,2=e(gabsh1(id′)st,c′i,1)/e(gst,c′i,3)=e(g,g)absr′i,2,
eti′=e(c′i,4,gbs)/(et′i,1et′i,2)=e(h3(di′),g)bs
得到密文集合c′对应的中间结果et′={et1′,...,et′n}。
步骤6.4,最后计算et∩et′,得到最终的密文匹配结果:rslt={ci|ci∈c∧eti∈et∩et′},
将结果返回给用户,用户解密即可得到最终的交集结果。
技术总结