1.一种基于证书的无线体域网群组认证与密钥协商方法,其特征在于,包括以下步骤:S1、构建无线体域网的网络管理NM的长期私钥skn和公钥pkn;
S2、根据网络管理NM的长期私钥skn和公钥pkn,通过网络管理NM向群管理员GM颁发证书certGM,构建无线体域网的群管理员GM;
S3、根据网络管理NM的长期私钥skn和公钥pkn,通过网络管理NM向用户颁发证书certi,构建无线体域网的用户;
S4、根据群管理员GM的证书certGM、长期私钥xGM和公钥XGM,向构建了群管理员GM和用户的无线体域网加入应用服务提供商AP;
S5、根据用户的证书certi、群管理员GM的长期私钥xGM和群管理员GM的公钥XGM,向构建了应用服务提供商AP的无线体域网加入用户;
S6、根据用户证书certi,对引入的随机参数进行签名,得到用户签名σi,向应用服务提供商AP申请服务,并请求会话密钥;
S7、根据用户签名σi和与用户通信的用户会话密钥服务值k′i,对用户进行认证以及密钥协商;
S8、对应用服务提供商AP进行认证。
2.根据权利要求1所述的基于证书的无线体域网群组认证与密钥协商方法,其特征在于,所述步骤S1包括以下步骤:S101、将网络管理NM选取的随机数skn作为长期私钥;
S102、将长期私钥skn与椭圆曲线生成的元P进行基于椭圆曲线的倍点运算,得到网络管理NM的公钥pkn。
3.根据权利要求2所述的基于证书的无线体域网群组认证与密钥协商方法,其特征在于,所述步骤S2包括以下步骤:S201、将群管理员GM选取的随机参数xGM作为长期私钥;
S202、将长期私钥xGM与椭圆曲线生成的元P进行基于椭圆曲线的倍点运算,得到群管理员GM的公钥XGM;
S203、将网络管理NM选取的随机数rGM与椭圆曲线生成的元P进行基于椭圆曲线的倍点运算,得到群管理员GM证书承诺值RGM;
S204、将群管理员GM公钥XGM、群管理员GM证书承诺值RGM和群管理员GM的身份标识IDGM进行哈希运算,得到哈希值hGM;
S205、将哈希值hGM与网络管理NM的长期私钥skn做乘法运算,得到乘法值PGM;
S206、将乘法值PGM与随机数rGM做加法运算,得到群管理员GM证书certGM;
S207、通过网络管理NM将群管理员GM证书certGM和证书承诺值RGM发给群管理员GM,同时将群管理员GM证书certGM、证书承诺值RGM、公钥XGM和身份标识IDGM添加到网络管理NM的数据库中;
S208、利用网络管理NM的公钥pkn、群管理员GM的证书承诺值RGM、群管理员GM的公钥XGM和身份标识IDGM对证书certGM进行验证,若验证通过,则群管理员GM存储证书certGM、证书承诺值RGM、公钥XGM和身份标识IDGM,完成群管理员GM的构建,若验证未通过,则跳转至步骤S201。
4.根据权利要求3所述的基于证书的无线体域网群组认证与密钥协商方法,其特征在于,所述步骤S3包括以下步骤:S301、将用户选取随机参数xi作为长期私钥;
S302、将长期私钥xi与椭圆曲线生成的元P进行基于椭圆曲线的倍点运算,得到用户公钥Xi,将用户公钥Xi和身份标识IDi发给网络管理NM;
S303、将网络管理NM选取的随机数ri与椭圆曲线生成的元P进行基于椭圆曲线的倍点运算,得到用户证书承诺值Ri;
S304、将用户公钥Xi、用户证书承诺值Ri和用户身份标识IDi进行哈希运算,得到哈希值hi;
S305、将哈希值hi与网络管理NM的长期私钥skn做乘法运算,得到乘法值pi;
S306、将乘法值pi与随机数ri做加法运算,得到用户证书certi;
S307、将网络管理NM的长期私钥skn与用户公钥Xi进行基于椭圆曲线的倍点运算,得到共享密钥值sknXi;
S308、将共享密钥值sknXi与用户身份标识IDi做哈希运算,得到临时身份初始值Pid0;
S309、将临时身份初始值Pid0和共享密钥值sknXi做哈希运算,得到用户临时身份值Pid1;
S310、将通过网络管理NM将用户证书承诺值Ri和用户证书certi发给用户,同时将用户的公钥Xi、证书certi、用户临时身份值Pid1、证书承诺值Ri和用户身份标识IDi添加到网络管理NM的数据库中;
S311、利用网络管理NM的公钥pkn、用户公钥Xi、用户临时身份值Pid1、证书承诺值Ri和用户身份标识IDi对证书certi进行验证,若验证通过,则用户存储公钥Xi、临时身份值Pid1、证书certi、证书承诺值Ri和身份标识IDi,完成无线体域网用户的构建,若验证未通过,则跳转至步骤S301。
5.根据权利要求4所述的基于证书的无线体域网群组认证与密钥协商方法,其特征在于,所述步骤S4包括以下步骤:S401、将应用服务提供商AP选取的随机数xj作为长期私钥;
S402、将长期私钥xj与椭圆曲线的生成元P进行基于椭圆曲线的倍点运算,得到应用服务提供商AP公钥Xj;
S403、通过应用服务提供商AP将应用服务提供商AP公钥Xj和应用服务提供商AP的身份标识IDj发给群管理员GM;
S404、将群管理员GM选择的随机数rj与椭圆曲线生成的元P进行基于椭圆曲线的倍点运算,得到应用服务提供商AP的证书承诺值Rj;
S405、将应用服务提供商AP的公钥Xj、应用服务提供商AP的证书承诺值Rj和应用服务提供商AP的身份标识IDj做哈希运算,得到哈希值hj1;
S406、将哈希值hj1与群管理员GM私钥xGM做乘法运算,得到乘法值pj1S407、将应用服务提供商AP的公钥Xj、群管理员GM的公钥XGM和应用服务提供商AP的身份标识IDj做哈希运算,得到哈希值hj2;
S408、将哈希值hj2与随机数rj做乘法运算,得到乘法值pj2;
S409、将群管理员GM证书certGM、乘法值pj1和乘法值pj2做加法运算,得到应用服务提供商AP证书certj;
S410、通过群管理员GM将应用服务提供商AP证书certj和应用服务提供商AP的证书承诺值Rj发送给应用服务提供商AP,同时将应用服务提供商AP的证书certj、公钥Xj和证书承诺值Rj添加到群管理员GM的数据库中;
S411、将应用服务提供商AP的证书承诺值Rj、公钥Xj、群管理员GM的公钥XGM和网络管理NM公钥pkn用于验证应用服务提供商AP的证书certj,若验证通过,应用服务提供商AP存储证书承诺值Rj、公钥Xj和证书certj,完成应用服务提供商AP加入无线体域网,若验证未通过,则跳转至步骤S401。
6.根据权利要求5所述的基于证书的无线体域网群组认证与密钥协商方法,其特征在于,所述步骤S5包括以下步骤:S501、将用户选择的随机数yi作为临时私钥;
S502、将临时私钥yi与椭圆曲线生成的元P进行基于椭圆曲线的倍点运算,得到用户临时公钥Yi;
S503、将用户证书certi与椭圆曲线生成的元P进行基于椭圆曲线的倍点运算,得到部分零知识证明值c1;
S504、将用户临时身份值Pid1与用户公钥Xi进行基于椭圆曲线的倍点运算,得到部分零知识证明值c2;
S505、将部分零知识证明值c1和c2进行加法运算,得到零知识证明值veri;
S506、将用户临时私钥yi与群管理员GM公钥XGM进行基于椭圆曲线的倍点运算,得到用户临时公钥验证值Y′i;
S507、将用户临时公钥验证值Y′i和零知识证明值veri进行哈希运算,得到哈希值h′i;
S508、将哈希值h′i与用户临时身份值Pid1进行异或运算,得到用户身份隐藏值mi;
S509、将零知识证明值veri、用户身份隐藏值mi和用户临时公钥Yi发送给群管理员GM;
S510、将群管理员GM长期私钥xGM与用户临时公钥Yi进行基于椭圆曲线的倍点运算,得到用户临时公钥验证值Y’'i,Y’'i=Y′i;
S511、通过群管理员GM将零知识证明值veri发给网络管理NM;
S512、通过网络管理NM将网络管理NM的长期私钥skn和群管理员GM的公钥XGM进行基于椭圆曲线的倍点运算,得到群管理员GM的公钥验证值p1;
S513、将公钥验证值p1和零知识证明值veri进行哈希运算,得到哈希值hpidi;
S514、将哈希值hpidi与用户临时身份值Pid1进行异或运算,得到用户身份验证值mpidi;
S515、通过网络管理NM将用户身份验证值mpidi发送给群管理员GM;
S516、利用长期私钥xGM、公钥pkn和零知识证明值veri对用户临时身份值Pid1进行验证,若通过验证,群管理员GM选择随机数c作为零知识证明挑战值,若未通过验证,则跳转至步骤S501;
S517、将用户临时公钥验证值Y’′i和用户零知识证明值veri进行哈希运算,得到哈希值h″i;
S518、将哈希值h″i与零知识证明挑战值c进行异或运算,得到隐藏值mveri;
S519、将用户临时公钥验证值Y’′i、零知识证明挑战值c和零知识证明值veri进行哈希运算,得到哈希值hc;
S520、通过群管理员GM将隐藏值mveri、哈希值hc和用户临时身份值Pid1发给用户;
S521、根据接收到哈希值hc和用户临时身份值Pid1,利用临时公钥验证值Y’′i、零知识证明挑战值c和零知识证明值veri对哈希值hc进行验证,若未通过验证,则跳转至步骤S501,若通过验证,将用户临时身份值Pid1和长期私钥xi进行乘法运算,得到乘法值pj3;
S522、将乘法值pj3与用户证书certi进行加法运算,得到加法值k1;
S523、将加法值k1与零知识证明挑战值c进行乘法运算,得到乘法值pk1;
S524、将乘法值pk1与用户临时私钥yi进行加法运算,得到零知识证明应答值zi;
S525、将零知识证明应答值zi和哈希值hi进行异或运算,得到应答隐藏值mc;
S526、将应答隐藏值mc和零知识证明挑战值c发送给群管理员GM;
S527、通过群管理员GM将哈希值h′i与应答隐藏值mc进行异或运算,得到零知识证明应答值z′i;
S528、通过用户临时公钥验证值Y’′i、零知识证明挑战值c和零知识证明值veri对零知识证明应答值z′i进行验证,若未通过验证,则跳转至步骤S501,若通过验证,将群管理员GM选择的随机数rgi与椭圆曲线生成的元P进行基于椭圆曲线的倍点运算,得到用户证书承诺值Rgi;
S529、根据群管理员GM选择的时间戳tgi,将用户公钥Xi、用户证书承诺值Rgi和时间戳tgi做哈希运算,得到哈希值hi1;
S530、将哈希值hi1与群管理员GM私钥xGM做乘法运算,得到乘法值pi1;
S531、将用户公钥Xi、群管理员GM公钥XGM和时间戳tgi做哈希运算,得到哈希值hi2;
S532、将哈希值hi2与随机数rgi做乘法运算,得到乘法值pi2;
S533、将群管理员GM的证书certGM、乘法值pi1和乘法值pi2做加法运算,得到用户证书certgi;
S534、通过群管理员GM将用户证书certgi、用户证书承诺值Rgi和时间戳tgi发给用户,同时将用户证书certgi、临时公钥Yi、证书承诺值Rgi和时间戳tgi添加到群管理员GM的数据库中;
S535、通过用户证书承诺值Rgi、时间戳tgi、群管理员GM公钥XGM和用户临时公钥Yi对用户证书certgi进行验证,若未通过验证,则跳转至步骤S501,若验证通过,则用户存储用户证书承诺值Rgi、时间戳tgi、用户证书certgi和临时公钥Yi,完成用户加入无线体域网。
7.根据权利要求6所述的基于证书的无线体域网群组认证与密钥协商方法,其特征在于,所述步骤S6包括以下步骤:S601、将用户选择的随机数rij作为用户临时秘密值;
S602、将用户临时秘密值rij与用户临时公钥Yi进行基于椭圆曲线的倍点运算,得到用户会话密钥承诺值Rij;
S603、将用户选择的随机数di与椭圆曲线的生成元P进行基于椭圆曲线的倍点运算,得到签名隐藏值Di;
S604、将用户临时秘密值rij和临时私钥yi做乘法运算,得到乘法值pj4;
S605、将乘法值pj4与应用服务提供商AP公钥Xj进行基于椭圆曲线的倍点运算,得到用户会话密钥服务值ki;
S606、采用用户会话密钥服务值ki对用户证书承诺值Rgi、用户临时公钥Yi和时间戳tgi进行加密,得到加密值Ei;
S607、将用户选择的时间戳tij、用户会话密钥服务值ki和签名隐藏值Di进行哈希运算,得到哈希值hi3;
S608、将哈希值hi3与用户临时私钥yi进行乘法运算,得到乘法值pyi;
S609、将用户临时公钥Yi、用户会话密钥承诺值Rij和时间戳tij进行哈希运算,得到哈希值hi4;
S610、将哈希值hi4与随机数di进行乘法运算,得到乘法值pdi;
S611、将用户证书certgi、乘法值pyi和乘法值pdi进行加法运算,得到用户签名σi;
S612、将加密值Ei、签名隐藏值Di、用户会话密钥承诺值Rij、用户签名σi和时间戳tij发给应用服务提供商AP,向应用服务提供商AP申请服务,并请求会话密钥。
8.根据权利要求7所述的基于证书的无线体域网群组认证与密钥协商方法,其特征在于,所述步骤S7包括以下步骤:S701、根据应用服务提供商AP收到的加密值Ei、签名隐藏值Di、用户会话密钥承诺值Rij、用户签名σi和时间戳tij,通过应用服务提供商AP将长期私钥xj与用户会话密钥承诺值Rij进行基于椭圆曲线的倍点运算,得到用户会话密钥服务值k′i;
S702、通过用户会话密钥服务值k′i解密加密值Ei,得到用户的证书承诺值Rgi、用户临时公钥Yi和时间戳tgi;
S703、通过用户的证书承诺值Rgi、用户临时公钥Yi、时间戳tgi、签名隐藏值Di和用户会话密钥承诺值Rij对用户签名σi进行验证,若验证未通过,则跳转至步骤S6,若验证通过,则将应用服务提供商AP选择的随机数rji作为临时秘密值,并将临时秘密值rji与应用服务提供商AP长期公钥Xj进行基于椭圆曲线的倍点运算,得到应用服务提供商AP会话密钥承诺值Rji;
S704、将应用服务提供商AP临时秘密值rji与临时私钥xj做乘法运算,得到乘法值pji1;
S705、将乘法值pji1与用户会话密钥承诺值Rij进行基于椭圆曲线的倍点运算,得到应用服务提供商AP的会话密钥kji;
S706、将应用服务提供商AP会话密钥承诺值Rji、会话密钥kji和时间戳tij进行哈希运算,得到会话密钥验证值macji;应用服务提供商AP将会话密钥验证值macji和会话密钥承诺值Rji发给用户,同时存储用户证书承诺值Rgi、用户临时公钥Yi、用户签名σi、签名隐藏值Di、时间戳tgi以及会话密钥kji,完成对用户的认证以及密钥协商。
9.根据权利要求8所述的基于证书的无线体域网群组认证与密钥协商方法,其特征在于,所述步骤S8包括以下步骤:S801、根据用户收到的会话密钥验证值macji和会话密钥承诺值Rji,通过用户将临时秘密值rij和临时私钥yi做乘法运算,得到乘法值pji2;
S802、将乘法值pji2与应用服务提供商AP会话密钥承诺值Rji进行基于椭圆曲线的倍点运算,得到用户的会话密钥kij;
S803、利用会话密钥kij、应用服务提供商AP会话密钥承诺值Rji和时间戳tij对会话密钥验证值macji进行验证,若未通过验证,则跳转至步骤S6,若验证通过,则实现用户对应用服务提供商AP的认证。