1.一种基于国密SM9算法的可审计隐私保护认证方法,其特征在于,包括:S1:系统初始化,KGC定义系统相关公共参数;
S2:获取各个用户参数,所述用户参数包括用户标识、用户属性集以及签名策略;将所有的用户参数分别上传到KGC中,生成各个自用户秘钥;
S3:用户获取待认证信息,采用签名算法对用户秘钥和待认证信息进行处理,得到待认证信息的签名;
S4:对待认证信息、签名以及签名策略进行验签处理,判断该签名是否合法;若签名合法,则对待认证消息进行认证;若签名不合法,则KGC通过签名对签名的用户进行身份追踪,防止滥用签名。
2.根据权利要求1所述的一种基于国密SM9算法的可审计隐私保护认证方法,其特征在于,KGC定义系统相关公共参数的过程包括:定义两个阶为大素数N的加法循环群G1、G2,两个加法循环群的的生成元分别为P1、P2;根据加法循环群G1和G2定义G2→G1的算法ψ;定义阶为大素数N的乘法循环群GT,从G1×G2到GT的双线性对为e;定义两个密码杂凑函数H1、H2;随机选取 作为主私钥;计算加法循环群G2的元素mpk,将该元素作为主公钥;公开除主私钥msk的所有参数;其中,msk表示主私钥, 表示与N互素且小于N的正整数,N表示循环群G1、G2和GT的阶,R表示随机空间,mpk表示主公钥。
3.根据权利要求1所述的一种基于国密SM9算法的可审计隐私保护认证方法,其特征在于,生成用户秘钥的过程包括:
S21:用户将用户标识ID、用户属性集S′以及签名策略τ发送到KGC;
S22:KGC根据用户标识ID与密码杂凑函数H1计算出用户标识的哈希值hID;
S23:KGC根据签名策略τ生成签名树T;
S24:KGC根据密码杂凑函数H1、双线性对e、用户属性集S′、签名策略树T计算用户密钥skID(skID1,skID2),并将计算的用户秘钥返回给用户。
4.根据权利要求3所述的一种基于国密SM9算法的可审计隐私保护认证方法,其特征在于,根据签名策略τ生成签名树T的过程包括:S231:定义拉格朗日差值公式 其中 上的一个d‑1多项式p(·)可通过拉格朗日插值法得到p(x)=∑i∈Sp(i)Δi,s(x),d=|S|;采用拉格朗日差值公式计算属性树T的相关中间值;其中,Δi,s(x)表示拉格朗日差值公式,j表示用户属性的编号数,i表示用户属性的编号数,S表示系统内所有用户属性, 表示表示与N互素且小于N的正整数,N表示大素数,d表示用户属性的编号数,p(x)表示多项式p(·)的参数为x时的值,p(i)表示多项式p(·)的参数为i时的值;
S232:定义属性树T,即每一个节点代表一个门限,节点x的子节点数量numx,节点x的门限值为kx;当门限值kx=1时,该门为“或”门;当kx=numx时,该门为“与”门,其中每个叶子节点代表一个属性,用attr(x)表示,叶子节点对应的门限值kx=1;对每个节点的子节点进行编号,并采用函数index(x)返回节点x的编号,采用函数parent(x)返回节点x的父节点;
S233:根据签名策略τ生成签名树T:即对T的每个节点x生成一个kx‑1次的多项式px(·);随机选择 定义根节点proot(0)=t,对每一个子节点x′定义px′(0)=pparent(x′)(index(x′)),根据根节点和子节点生成签名树。
5.根据权利要求3所述的一种基于国密SM9算法的可审计隐私保护认证方法,其特征在于,计算用户秘钥的过程包括:根据主私钥msk、用户标识的哈希值hID以及加法循环群G1的生成元P1计算用户的用户密钥中间值skID0;对于签名树T的每一个叶子节点i=attr(x),令ti=pi(0),根据签名树的叶子节点计算用户秘钥对skID(skID1,skID2);将用户密钥对skID(skID1,skID2)返回给用户。
6.根据权利要求1所述的一种基于国密SM9算法的可审计隐私保护认证方法,其特征在于,采用签名算法对用户秘钥和待认证信息进行处理的过程包括:S31:输入用户密钥对skID与消息m,根据用户密钥对对输入的消息执行签名;
S32:根据加法循环群的生成元P1、加法循环群G2的元素mpk以及从G1×G2到GT的双线性对e计算出群GT元素g;
S33:选取随机数 根据随机数r和元素g计算群GT元素w;
S34:将元素w和消息m输入到密码杂凑函数H2中,计算哈希值h;
S35:根据随机数r、哈希值h以及用户密钥skID1计算出群G1元素集合S36:定义群G2元素k的秘钥为skID2;
S37:根据G1元素集合 和群G2元素k的秘钥skID2对消息m进行签名,签名为
7.根据权利要求1所述的一种基于国密SM9算法的可审计隐私保护认证方法,其特征在于,判断签名是否和法的过程为:
步骤1:输入签名sig(h,{s1,s2,…,s|τ|},k,τ)、消息m和签名策略τ;
h
步骤2:利用双线性对e、群G1生成元P1、主公钥mpk和签名h计算出群GT元素g;
h
步骤3:利用双线性对e、签名s集合部分、签名k部分、群GT元素g 和签名策略τ计算出群GT元素w′;
步骤4:采用密码杂凑函数H2计算群GT元素w′和消息m的哈希值h′;
步骤5:判断签名h与哈希值h′是否相等,若相等,则签名合法;否则签名不合法。
8.根据权利要求7所述的一种基于国密SM9算法的可审计隐私保护认证方法,其特征在于,计算出群GT元素w′的过程包括:步骤31:从叶子节点自下而上计算属性树T的根植sroot;
步骤32:若叶子节点x的kparent(x)=1,则skIDparent(x)=skIDx,否则skIDparent(x)=∑i∈XskIDi,其中X代表父节点的所有孩子节点,最后得到sroot;
h
步骤33:利用双线性对e、sroot、签名k部分以及群GT元素g计算出群GT元素w′。
9.根据权利要求1所述的一种基于国密SM9算法的可审计隐私保护认证方法,其特征在于,对待认证消息进行认证的过程包括:步骤1:提交sig(h,{s1,s2,…,s|τ|},k,τ)中的k值,执行审计;
步骤2:由于 t为KGC在密钥生成部分生成的随机数,msk为主私钥,由KGC保存,故KGC能从k中求得hID;
步骤3:根据hID对用户进行身份追踪。