1.一种面向联盟链的多因子身份认证方法,其特征在于,包括:
S1:联盟链服务器生成并公开系统公共参数;
S2:联盟链中的各授权中心节点根据系统公共参数进行初始化,生成系统的主公钥y和中间参数g2,并根据所述系统公共参数、主公钥y和中间参数g2生成并公开系统验证参数Z;
S3:用户终端向联盟链服务器发送注册请求,所述注册请求中包含所述用户终端的用户属性信息,所述用户属性信息中包括所述用户终端的多个属性组成的用户属性集以及每一属性分别对应的特征信息;
S4:所述联盟链服务器根据所述用户属性信息确定所述用户终端合法后,向授权中心节点发送指示信息;
S5:各授权中心节点在接收到所述指示信息后根据所述用户终端的用户属性信息针对该用户终端的每一目标属性生成对应的属性部分密钥,并将所述属性部分密钥发送给所述用户终端;
S6:所述用户终端根据接收到的属性部分密钥计算对应目标属性的属性私钥;
S7:当所述用户终端需要向系统中的其他验证者证明自己的身份时,所述用户终端和所述验证方利用所述用户终端的属性私钥以及系统验证参数Z通过身份交互协议完成身份验证。
2.如权利要求1所述的面向联盟链的多因子身份认证方法,其特征在于,所述系统公共参数包括p、g、e、G、GT、k、n、t,其中,p表示联盟链服务器根据安全参数生成的素数阶,G和GT表示两个阶为素数p的乘法循环群,g是群G的生成元,双线性映射e:G×G→GT,属性门限值k表示用户终端在指定验证策略属性集中需要满足的属性个数门限值,n表示授权中心的个数,系统门限值t表示生成属性密钥所需的授权中心的个数;
所述步骤S2中生成系统主公钥y的步骤包括:
S21:所述联盟链中的各授权中心节点Pi根据参数t生成第一多项式函数,根据所述第一多项式函数、参数g和p计算第一秘密值yij,并将第一秘密值yij发送给授权中心节点Pj,其中i,j=1,…,n,j≠i;
S22:授权中心节点Pj根据接收到的第一秘密值yij判断授权中心节点Pi是否是可信的授权中心,如是,转至S23,否则授权中心节点Pj要求授权中心节点Pi重新发送第一秘密值yij;
S23:各授权中心节点Pi基于可信授权中心节点的第一秘密值进行计算得到系统主密钥,并根据系统主密钥进行计算得到系统主公钥y;
所述步骤S2中生成中间参数g2的步骤包括:
S24:所述联盟链中的各授权中心节点Pi根据参数n生成第二多项式函数,根据所述第二多项式函数、参数g和p计算第二秘密值tij,并将第二秘密值tij发送给授权中心节点Pj,其中i,j=1,…,n,j≠i;
S25:授权中心节点Pj根据接收到的第二秘密值tij判断授权中心节点Pi是否是可信的授权中心,如是,转至S26,否则授权中心节点Pj要求授权中心节点Pi重新发送第二秘密值tij;
S26:各授权中心节点Pi在互相验证可信后根据n个授权中心的第二多项式函数的系数计算中间参数g2;
步骤S2中通过公式Z=e(y,g2)生成系统验证参数Z。
3.如权利要求2所述的面向联盟链的多因子身份认证方法,其特征在于,步骤S21中授权中心节点Pi生成的第一多项式函数为fi(x)=ci0+ci1x+…+ci(t-1)xt-1,且各个授权中心节点Pi根据公式 针对第一多项式函数的每一系数计算并广播授权中心节点Pi的第一验证系数Ciλ,λ=0,...,t-1,并根据公式yij=fi(Pj)计算第一秘密值yij,并将第一秘密值yij发送给授权中心节点Pj;
步骤S22中授权中心节点Pj接收到第一秘密值yij后验证等式 是否成立,如果成立,则确定授权中心节点Pi为可信的授权中心,否则,授权中心节点Pj要求授权中心节点Pi重新发送yij;
步骤S23中各授权中心节点Pi通过公式 计算系统的主密
钥s,并通过公式y=gs计算系统主公钥y,其中,S表示参与密钥生成的t个授权中心节点组成的集合,
4.如权利要求2所述的面向联盟链的多因子身份认证方法,其特征在于,步骤S24中各授权中心节点Pi生成的第二多项式函数为hi(x)=bi0+bi1x+...+bi(n-1)xn-1,且各个授权中心节点Pi根据公式 针对第二多项式函数的每一系数计算并广播授权中心节点Pi的第二验证系数Biε,ε=0,...,n-1,并根据公式tij=hi(Pj)计算第二秘密值tij,并将第二秘密值tij发送给授权中心节点Pj;
步骤S25中各授权中心节点Pj接收到第二秘密值tij后验证等式 是否成立,如果成立,则确定授权中心节点Pi为可信的授权中心,否则,授权中心节点Pj要求授权中心节点Pi重新发送tij;
步骤S26中各授权中心节点Pi通过公式 计算中间参数g2。
5.如权利要求2所述的面向联盟链的多因子身份认证方法,其特征在于,在步骤S5中,各个授权中心节点根据所述用户终端的用户属性集和系统的默认属性集生成所述用户终端的目标属性集,并针对目标属性集中的每一目标属性,计算其对应的属性部分密钥,并将其发送给所述用户终端;
步骤S6中,所述用户终端在收到t个授权中心节点针对每一目标属性发送的属性部分密钥后计算每一目标属性对应的属性私钥。
6.如权利要求5所述的面向联盟链的多因子身份认证方法,其特征在于,所述系统公共参数还包括属性全集U、属性全集中部分属性组成的默认属性集A、哈希函数H:{0,1}*→G、属性个数参数a,a-1表示表示默认属性集A中属性元素的个数;
步骤S5中,各授权中心节点Pi通过 生成所述用户终端的目标属性集,其中,I表示所述用户终端的用户属性集,所述用户属性集为属性全集U的子集,表示所述用户终端的目标属性集,各授权中心节点Pi针对目标属性集 中的第q个目标属性生成随机数riq,所述随机数为整数,并通过公式 和 计算所述用户终端针对第q个目标属性的属性部分密钥 和
步 骤 S6 中 ,用 户终 端 根 据公 式 和 公式
计算第q个目标属性的属性私钥Dq=(dq0,dq1) ,其中,
7.如权利要求6所述的面向联盟链的多因子身份认证方法,其特征在于,步骤S7包括:S71:所述用户终端选择含有k个属性的属性子集I′, I*表示系统预先设置的验证策略属性集;
S72:用户终端选择默认属性子集A′, |A′|=a-k,并选择m+a-k个随机值r′q,随机值r′q为整数,其中q∈I*∪A′,m表示属性集I*中的属性个数,并选择随机数v,计算和σ′0=gv,将(σq,σ′0)发送给验证者,S73:验证者随机选择参数θ作为随机验证参数,并发送给所述用户终端;
S7 4 :所述 用 户终 端 收 到验 证 者发 来的 随 机 验 证参 数θ后 ,计 算并将σ0发送给验证者;
S75:验证者在接收到所述用户终端发来的值后,验证等式 是否成
立,如果等式成立,则通过认证,否则认证失败。
8.如权利要求1所述的面向联盟链的多因子身份认证方法,其特征在于,所述验证者为其他用户终端或授权中心节点。