1.一种基于无证书环境的可否认认证的加密方法,其特征在于,所述方法包括以下步骤:
步骤1:设定系统参数,所述系统参数包括选择的安全参数k、加法群G1和乘法群G2的阶q、加法群G1的生成元P、加法群G1、乘法群G2、无证书环境的密钥生成中心生成的主公钥Ppub、主私钥s以及用于无证书环境可否认认证加密解密的双线性对e和哈希函数hash;
步骤2:密钥生成中心根据主私钥s和用户提交的身份信息ID,生成用户的部分私钥DID;
无证书环境的用户联合其部分私钥DID和自己的秘密值xID生成自身的完全私钥SID,同时利用秘密值xID生成其公钥PKID;
步骤3:无证书环境的发送者获取接收者的身份信息IDB和接收者的公钥PKB,根据自身的身份信息IDA、公钥PKA、完全私钥SA、接收者的身份信息IDB、接收者的公钥PKB以及无证书环境的密钥生成中心生成的主公钥Ppub,通过双线性对e和哈希函数hash运算生成对称密钥K,同时生成内部状态信息ω;
对称密钥K表达式如下:
K=H2(r,T,IDA,IDB,PKA,PKB);
其中H2为哈希函数,T为双线性对,内部状态信息ω=(r,T,SA,IDA,IDB,PKA,PKB);
步骤4:发送者根据对称密钥K和消息m生成密文c,并根据密文c、标签τ、发送者的身份信息IDA、发送者的公钥PKA、发送者的完全私钥SA、接收者的身份信息IDB、接收者的公钥PKB和消息m,通过异或、哈希函数、点乘、点加和双线性对运算执行加密过程;
步骤5:接收者根据标签τ、密文c、发送者的身份信息IDA、发送者的公钥PKA、接收者的身份信息IDB、接收者的公钥PKB和接收者的完全私钥SB,通过双线性对、哈希函数、点乘和异或运算执行解密过程,若验证通过,则输出对称密钥并恢复出原始消息,否则拒绝该对称密钥;
步骤4中加密过程包括以下步骤:
(4.1)计算由对称密钥K和消息m生成的密文c,表达式为:c=DEM.EK(m);
(4.2)计算由密文c、标签τ、双线性对T、发送者的公钥PKA、接收者的公钥PKB以及发送者生成的秘密值xA与接收者的公钥PKB的乘积构成的hash值h,表达式如下:计算h=H3(c,τ,T,PKA,PKB,xA PKB);
(4.3)利用hash值h与发送者部分私钥DA的乘积,加上发送者的随机数r和主公钥Ppub的乘积,生成签名V,表达式为:V=hDA+rPpub,(4.4)计算由签名V和接收者的部分公钥QB构成的双线性对W,表达式为:W=e(V,QB),
其中接收者的部分公钥QB的表达式为:QB=H1(IDB);
(4.5)计算承诺S,表达式为:S=hQB;
(4.6)输出可否认认证的密文:σ=(c,W,S);
步骤5中解密过程包括以下步骤:
接收者在收到密文σ=(c,W,S)时,执行以下步骤:(5.1)计算T’=W/e(S,DB);
(5.2)计算h’=H3(c,τ,T’,PKA,PKB,xB PKA);
(5.3)计算S’=h’QB,如果S’=S,输出对称密钥K=H2(r,T’,IDA,IDB,PKA,PKB),并计算出消息m=DEM.DK(c);如果不成立,拒绝该对称密钥。
2.根据权利要求1所述的加密方法,其特征在于,步骤2具体包括如下:密钥生成中心计算用户的部分私钥DID,表达式为:DID=sQID,其中s为密钥生成中心随机选择的主私钥, 为阶为q的无零元的有限域;
QID为用户身份信息的hash值,表达式为QID=H1(ID),ID为用户提交给密钥生成中心的身份信息;
用户随机选择 作为秘密值;
用户根据部分私钥DID和秘密值xID设置完全私钥SID=(DID,xID);
用户计算公钥PKID=xIDP。
3.根据权利要求1所述的加密方法,其特征在于,步骤3具体包括:步骤3.1:生成一个随机数r,并根据随机数r、主公钥Ppub以及接收者身份信息IDB的哈希值计算双线性对T;
步骤3.2:计算由随机数r、双线性对T、发送者的身份信息IDA、接收者的身份信息IDB、发送者的公钥PKA、接收者的公钥PKB构成的hash值,也即对称密钥K;
步骤3.3:输出对称密钥K和内部状态信息w,所述内部状态信息w包括发送者完全私钥SA、随机数r、双线性对T、发送者的身份信息IDA、接收者的身份信息IDB、发送者的公钥PKA和接收者的公钥PKB。
4.根据权利要求1所述的加密方法,其特征在于,根据对称密钥K和消息m生成密文c的方法为:发送者采用数据封装机制DEM对消息m和对称密钥K进行加密生成封装后的密文c,表达式为:
c=DEM.EK(m);
对密文c解密得到消息m的表达式为:m=DEM.DK(c)。
5.一种基于无证书环境的可否认认证的加密系统,其特征在于,所述系统包括:无证书系统参数设置模块:用于设定系统参数,所述系统参数包括选择的安全参数k、加法群G1和乘法群G2的阶q、加法群G1的生成元P、加法群G1、乘法群G2、无证书环境的密钥生成中心生成的主公钥Ppub、主私钥s以及用于无证书环境可否认认证加密解密的双线性对e和哈希函数hash;
无证书环境用户密钥生成模块:用于密钥生成中心根据主私钥s和用户提交的用户身份信息ID,生成用户的部分私钥DID;无证书环境的用户联合部分私钥DID和自己的秘密值xID生成自身的完全私钥SID,同时利用秘密值xID生成其公钥PKID;
对称密钥生成模块:无证书环境的发送者获取接收者的身份IDB和接收者的公钥PKB,根据自身的身份信息IDA、公钥PKA、完全私钥SA、接收者的身份信息IDB、接收者的公钥PKB以及无证书环境的密钥生成中心生成的主公钥Ppub,通过双线性对和哈希函数运算生成对称密钥K,同时生成内部状态信息ω;
对称密钥K表达式如下:
K=H2(r,T,IDA,IDB,PKA,PKB);
其中H2为哈希函数,T为双线性对,内部状态信息ω=(r,T,SA,IDA,IDB,PKA,PKB);
封装模块:用于发送者根据对称密钥生成模块生成的对称密钥K、消息m生成密文c,并根据密文c、标签τ、发送者的身份信息IDA、发送者的公钥PKA、发送者的完全私钥SA、接收者的身份信息IDB、接收者的公钥PKB和消息m,通过异或、哈希函数、点乘、点加和双线性对运算执行加密过程;加密过程包括以下步骤:(4.1)计算由对称密钥K和消息m生成的密文c,表达式为:c=DEM.EK(m);
(4.2)计算由密文c、标签τ、双线性对T、发送者的公钥PKA、接收者的公钥PKB以及发送者生成的秘密值xA与接收者的公钥PKB的乘积构成的hash值h,表达式如下:计算h=H3(c,τ,T,PKA,PKB,xA PKB);
(4.3)利用hash值h与发送者部分私钥DA的乘积,加上发送者的随机数r和主公钥Ppub的乘积,生成签名V,表达式为:V=hDA+rPpub,(4.4)计算由签名V和接收者的部分公钥QB构成的双线性对W,表达式为:W=e(V,QB),其中接收者的部分公钥QB的表达式为:QB=H1(IDB);
(4.5)计算承诺S,表达式为:S=hQB;
(4.6)输出可否认认证的密文:σ=(c,W,S);
解封装模块:用于接收者根据标签τ、密文c、发送者的身份信息IDA、发送者的公钥PKA、接收者的身份信息IDB、接收者的公钥PKB和接收者的完全私钥SB,通过双线性对、哈希函数、点乘和异或运算执行解密过程,若验证通过,则输出对称密钥并恢复消息,否则拒绝该对称密钥,
解密过程包括以下步骤:
接收者在收到密文σ=(c,W,S)时,执行以下步骤:(5.1)计算T’=W/e(S,DB);
(5.2)计算h’=H3(c,τ,T’,PKA,PKB,xB PKA);
(5.3)计算S’=h’QB,如果S’=S,输出对称密钥K=H2(r,T’,IDA,IDB,PKA,PKB),并计算出消息m=DEM.DK(c);如果不成立,拒绝该对称密钥。
6.根据权利要求5所述的可否认认证的加密系统,其特征在于,所述对称密钥生成模块包括:
双线性T计算模块:用于生成一个随机数r,并根据随机数r、主公钥Ppub以及接收者身份信息IDB的哈希值QB计算双线性对T;
对称密钥生成模块:计算由随机数r、双线性T计算模块生成的双线性对T、发送者的身份信息IDA、接收者的身份信息IDB、发送者的公钥PKA、接收者的公钥PKB构成的hash值,也即对称密钥K;
对称密钥K和内部状态信息w输出模块:用于输出对称密钥生成模块生成的对称密钥K和内部状态信息w,所述内部状态信息w包括发送者完全私钥SA、随机数r、双线性对T、发送者的身份信息IDA、接收者的身份信息IDB、发送者的公钥PKA和接收者的公钥PKB。