本发明涉及网络安全技术领域,特别是一种基于属性的用户身份认证方法及系统。
背景技术:
无线通信技术、云计算等信息技术的不断发展进步使得云存储可以提供无限、便捷、低成本的服务,越来越多个人用户及企业用户将其重要信息存储于云服务器端。同时,由于移动设备具有灵活便利的管理及使用方式,如今移动设备如智能手机、平板电脑结合云存储已经成为人们日常生活中密不可分的一部分。
存储于云端的信息通常会包含一些敏感信息,如账户信息、病例、就医记录等数据,如被未经授权的用户不正当访问会导致数据泄露、隐私泄露等严重后果。为防止非授权访问,在用户进行数据访问时需要对其进行身份验证。对移动设备用户验证身份的传统方法是基于密码、密钥或指纹等,这些传统的方法存在的问题是,一旦密码被泄露或用户通过了指纹的初始认证没有退出,未授权的用户可能获得对用户信息的访问。此外,传统身份认证过程中还存在用户部分隐私泄露的问题。因此,研究一种有效的身份认证方法,以解决移动设备认证过程中的用户隐私、细粒度的访问控制及效率问题,已经成为云环境下移动设备认证的发展趋势。
技术实现要素:
本发明的目的在于提供一种安全性高、认证速度快的用户身份认证方法及系统。
实现本发明目的的技术解决方案为:一种基于属性的用户身份认证方法,包括以下步骤:
步骤1、第三方属性机构初始化整个系统;
步骤2、认证申请者生成属性证明;
步骤3、认证服务器检查属性索引的有效性,确定认证。
进一步地,步骤1中所述的第三方属性机构初始化整个系统,包括系统主密钥mksys和公共参数pksys,所述公共参数pksys包括双线性群g1、映射e(g,g)α和单向哈希函数h。
进一步地,步骤2所述的认证申请者生成属性证明,具体如下:
步骤2.1、认证申请者生成请求访问数据的描述inf,并附上时间戳ts;
步骤2.2、认证申请者使用自身属性a对应的密钥集
步骤2.3、认证申请者将认证索引发送至认证服务器。
进一步地,步骤2.2中所述的密钥集
进一步地,步骤2.2所述的认证申请者使用自身属性a对应的密钥集
步骤2.2.1、认证申请者选择子属性集合
步骤2.2.2、认证申请者生成一个对应的n位属性索引i,来指示生成属性证明所包含的属性;
步骤2.2.3、计算属性证明ap:
其中,h为单向哈希函数,inf为请求数据的描述,ts为时间戳,xja为属性对应的密钥;
进一步地,步骤3所述的认证服务器检查属性索引的有效性,确定认证,具体如下:
步骤3.1、认证服务器检查所接收的时间戳ts的有效性;
步骤3.2、对于有效的时间戳ts,云服务器即认证服务器进一步检查索引i,如果i≠0则将收到的i与预设的索引值iv比较,即对任意属性aj及通用的属性集au,若下面式子成立,即
其中ij为索引值i的第j位数值,ivj为预设索引值iv的第j位数值;
则云服务器即认证服务器执行步骤3.3,否则通过返回rt=0来,终止验证过程;
步骤3.3、对于有效的i,云服务器计算中间变量ι
其中aj为第j个属性,au为通用属性集,ij为索引i第j位数值,|i1|表示索引i中的1的数量;dja为第j个属性认证密钥,si为信任机构ta赋予用户i的私钥;
步骤3.4、云服务器即认证服务器计算并判断以下式子是否成立:
其中h为单向哈希函数,inf为请求数据的描述,ts为时间戳,ap为收到的属性e(g,g)为双线性对;
若等式成立,则验证成功,完成认证;否则通过返回rt=0来终止验证过程。
一种基于属性的用户身份认证系统,包括第三方属性机构、认证申请者和认证服务器;
所述第三方属性机构,用于初始化整个系统;
所述认证申请者,用于生成属性证明;
所述认证服务器,用于检查属性索引的有效性,确定认证。
进一步地,所述初始化整个系统,包括系统主密钥mksys和公共参数pksys,所述公共参数pksys包括双线性群g1、映射e(g,g)α和单向哈希函数h。
进一步地,所述生成属性证明,具体如下:
认证申请者生成请求访问数据的描述inf,并附上时间戳ts;
认证申请者使用自身属性a对应的密钥集
认证申请者将认证索引发送至认证服务器。
本发明与现有技术相比,其显著优点为:(1)具有有效抵抗重放攻击、有效抵抗伪造攻击和有效抵抗共谋攻击几方面的安全性保证,提高了用户认证的安全性;(2)降低了通信开销和计算开销,提高了认证效率。
附图说明
图1为本发明一种基于属性的用户身份认证系统的结构框图。
图2为本发明实施例中基于属性认证系统的用户属性集合示意图。
图3为本发明一种基于属性的用户身份认证方法的流程示意图。
图4为本发明实施例中ta执行的系统初始化的流程示意图。
图5为本发明实施例中用户user向云服务器认证过程的流程示意图。
具体实施方式
本发明基于属性的用户身份认证方法,包括以下步骤:
步骤1、第三方属性机构初始化整个系统;
步骤2、认证申请者生成属性证明;
步骤3、认证服务器检查属性索引的有效性,确定认证。
进一步地,步骤1中所述的第三方属性机构初始化整个系统,包括系统主密钥mksys和公共参数pksys,所述公共参数pksys包括双线性群g1、映射e(g,g)α和单向哈希函数h。
进一步地,步骤2所述的认证申请者生成属性证明,具体如下:
步骤2.1、认证申请者生成请求访问数据的描述inf,并附上时间戳ts;
步骤2.2、认证申请者使用自身属性a对应的密钥集
步骤2.3、认证申请者将认证索引发送至认证服务器。
进一步地,步骤2.2中所述的密钥集
进一步地,步骤2.2所述的认证申请者使用自身属性a对应的密钥集
步骤2.2.1、认证申请者选择子属性集合
步骤2.2.2、认证申请者生成一个对应的n位属性索引i,来指示生成属性证明所包含的属性;
步骤2.2.3、计算属性证明ap:
其中,h为单向哈希函数,inf为请求数据的描述,ts为时间戳,xja为属性对应的密钥;
进一步地,步骤3所述的认证服务器检查属性索引的有效性,确定认证,具体如下:
步骤3.1、认证服务器检查所接收的时间戳ts的有效性;
步骤3.2、对于有效的时间戳ts,云服务器即认证服务器进一步检查索引i,如果i≠0则将收到的i与预设的索引值iv比较,即对任意属性aj及通用的属性集au,若下面式子成立,即
其中ij为索引值i的第j位数值,ivj为预设索引值iv的第j位数值;
则云服务器即认证服务器执行步骤3.3,否则通过返回rt=0来,终止验证过程;
步骤3.3、对于有效的i,云服务器计算中间变量ι
其中aj为第j个属性,au为通用属性集,ij为索引i第j位数值,|i1|表示索引i中的1的数量;dja为第j个属性认证密钥,si为信任机构ta赋予用户i的私钥;
步骤3.4、云服务器即认证服务器计算并判断以下式子是否成立:
其中h为单向哈希函数,inf为请求数据的描述,ts为时间戳,ap为收到的属性e(g,g)为双线性对;
若等式成立,则验证成功,完成认证;否则通过返回rt=0来终止验证过程。
双线性对e(g,g)α计算上具有双线性的性质(即e(gα,gb)=e(g,g)αb),它有两个输入;云服务器接收到用户发送过来的ap,inf|ts,i后,首先计算中间变量ι,然后计算gh(inf|ts)·ι并将其作为双线性对的第一个输入,ap作为双线性对的第二个输入,通过一系列计算看最终结果是够等于e(g,g),以此达到认证的目的。
一种基于属性的用户身份认证系统,包括第三方属性机构、认证申请者和认证服务器;
所述第三方属性机构,用于初始化整个系统;
所述认证申请者,用于生成属性证明;
所述认证服务器,用于检查属性索引的有效性,确定认证。
进一步地,所述初始化整个系统,包括系统主密钥mksys和公共参数pksys,所述公共参数pksys包括双线性群g1、映射e(g,g)α和单向哈希函数h。
进一步地,所述生成属性证明,具体如下:
认证申请者生成请求访问数据的描述inf,并附上时间戳ts;
认证申请者使用自身属性a对应的密钥集
认证申请者将认证索引发送至认证服务器。
下面结合附图和具体实施例对本发明作进一步详细说明。
实施例1
结合图1,本发明一种基于属性的用户身份认证系统,包括第三方属性机构、认证申请者和认证服务器;
所述第三方属性机构,用于初始化整个系统;
所述认证申请者,用于生成属性证明;
所述认证服务器,用于检查属性索引的有效性,确定认证。
结合图3~5,一种基于属性的用户身份认证方法,包括以下步骤:
步骤1、第三方属性机构初始化整个系统,如图4所示。
首先,将通用属性集au正式化为au={a1,a2,an},其输出是系统主密钥mksys和公共参数pksys,其中:系统主密钥mksys=(β,gα)
公共参数pksys包括双线性群g1、映射e(g,g)α和单向哈希函数h。
表1符号描述
步骤2、认证申请者生成属性证明的过程如下,如图2所示:
步骤2.1、认证申请者生成请求访问数据的描述inf,并附上时间戳ts;
步骤2.2、认证申请者使用自身属性a对应的密钥集
具体步骤如下:
步骤2.2.1、认证申请者选择子属性集合
步骤2.2.2、认证申请者生成一个对应的n位属性索引i,
i={1,0}n
用i来指示生成属性证明所包含的属性,即:如果
步骤2.2.3、利用以下式子计算属性证明ap
其中h为单向哈希函数,inf为请求数据的描述,ts为时间戳,xja属性对应的秘钥;
步骤2.3、认证申请者将信息λ={inf|ts,i,i,ap}发送至认证服务器。
步骤3、认证服务器检查属性索引的有效性,确定认证,具体如下:
为了验证λ,云服务器执行以下两步验证操作:
步骤3.1、认证服务器检查所接收的时间戳ts的有效性;
步骤3.2、对于有效的ts,云服务器(认证服务器)进一步检查其索引i,如果
i≠0(1)
则将收到的i与预设的索引值iv比较,即
其中ij为索引值i的第j位数值,ivj为预设索引值iv的第j位数值;
等式(2)成立时,云服务器执行步骤3.3,否则通过返回rt=0来终止验证过程;
步骤3.3、对于有效的i,云服务器(认证服务器)计算中间值ι
其中aj为第j个属性,au为通用属性集,ij为索引i第j位数值,|i1|表示索引i中的1的数量;dja为第j个属性认证密钥;
步骤3.4、云服务器(认证服务器)计算并判断
其中h为单向哈希函数,inf为请求数据的描述,ts为时间戳,ap为收到的属性e(g,g)为双线性对;
如果公式(4)成立,则验证成功,完成认证;否则通过返回rt=0来终止验证过程。
以下证明上述认证过程的正确性。
假设i中有w个1,证明验证的正确性如下。
设left=e(gh(inf|ts)·t,ap),得到:
如果vti拥有所声明的属性,则验证成功。
最后,云服务器根据所请求访问的数据描述inf将对应的密文数据发送到给请求的用户。
为了证明本发明的有效性,性能分析如下:
低通信开销:完成认证,云服务器需要传输|ack|长度的数据包;用户需要传输一个信息描述inf,两个随机数rn,一个n位的索引i以及属性证明ap,即|inf| 2|rn| |i| |ap|;
低计算开销:云服务器的计算开销为(a^s 1)·cm cp,移动用户的计算开销为2a^s·cm ch,其中cm为乘法运算成本,cp为双线性对匹配开销,ch为哈希运算开销;
进一步地,本实施例在3.30ghzintelcorei5-2500处理器以及512mbram的ios平台上进行实验,ios上:cp为74.1ms,cm为10.4ms;在i5-2500处理器上:c'p和c′m分别为2.9ms和1.0ms。
由此可知,本发明一种基于属性的用户身份认证系统及方法,具有有效抵抗重放攻击、有效抵抗伪造攻击和有效抵抗共谋攻击几方面的安全性保证,提高了用户认证的安全性,并且降低了通信开销和计算开销,提高了认证效率。
1.一种基于属性的用户身份认证方法,其特征在于,包括以下步骤:
步骤1、第三方属性机构初始化整个系统;
步骤2、认证申请者生成属性证明;
步骤3、认证服务器检查属性索引的有效性,确定认证。
2.根据权利要求1所述的基于属性的用户身份认证方法,其特征在于,步骤1中所述的第三方属性机构初始化整个系统,包括系统主密钥mksys和公共参数pksys,所述公共参数pksys包括双线性群g1、映射e(g,g)α和单向哈希函数h。
3.根据权利要求1所述的基于属性的用户身份认证方法,其特征在于,步骤2所述的认证申请者生成属性证明,具体如下:
步骤2.1、认证申请者生成请求访问数据的描述inf,并附上时间戳ts;
步骤2.2、认证申请者使用自身属性a对应的密钥集
步骤2.3、认证申请者将认证索引发送至认证服务器。
4.根据权利要求3所述的基于属性的用户身份认证方法,其特征在于,步骤2.2中所述的密钥集
5.根据权利要求3所述的基于属性的用户身份认证方法,其特征在于,步骤2.2所述的认证申请者使用自身属性a对应的密钥集
步骤2.2.1、认证申请者选择子属性集合
步骤2.2.2、认证申请者生成一个对应的n位属性索引i,来指示生成属性证明所包含的属性;
步骤2.2.3、计算属性证明ap:
其中,h为单向哈希函数,inf为请求数据的描述,ts为时间戳,xja为属性对应的密钥。
6.根据权利要求1所述的基于属性的用户身份认证方法,其特征在于,步骤3所述的认证服务器检查属性索引的有效性,确定认证,具体如下:
步骤3.1、认证服务器检查所接收的时间戳ts的有效性;
步骤3.2、对于有效的时间戳ts,云服务器即认证服务器进一步检查索引i,如果i≠0则将收到的i与预设的索引值iv比较,即对任意属性aj及通用的属性集au,若下面式子成立,即
其中ij为索引值i的第j位数值,ivj为预设索引值iv的第j位数值;
则云服务器即认证服务器执行步骤3.3,否则通过返回rt=0来,终止验证过程;
步骤3.3、对于有效的i,云服务器计算中间变量l
其中aj为第j个属性,au为通用属性集,ij为索引i第j位数值,|i1|表示索引i中的1的数量;dja为第j个属性认证密钥;si为信任机构ta赋予用户i的私钥;
步骤3.4、云服务器即认证服务器计算并判断以下式子是否成立:
其中h为单向哈希函数,inf为请求数据的描述,ts为时间戳,ap为收到的属性,e(g,g)为双线性对;
若等式成立,则验证成功,完成认证;否则通过返回rt=0来终止验证过程。
7.一种基于属性的用户身份认证系统,其特征在于,包括第三方属性机构、认证申请者和认证服务器;
所述第三方属性机构,用于初始化整个系统;
所述认证申请者,用于生成属性证明;
所述认证服务器,用于检查属性索引的有效性,确定认证。
8.根据权利要求7所述的基于属性的用户身份认证系统,其特征在于,所述初始化整个系统,包括系统主密钥mksys和公共参数pksys,所述公共参数pksys包括双线性群g1、映射e(g,g)α和单向哈希函数h。
9.根据权利要求7所述的基于属性的用户身份认证系统,其特征在于,所述生成属性证明,具体如下:
认证申请者生成请求访问数据的描述inf,并附上时间戳ts;
认证申请者使用自身属性a对应的密钥集
认证申请者将认证索引发送至认证服务器。
技术总结