本发明涉及信息安全技术领域,具体为一种无证书公钥密码系统的构造方法。
背景技术:
公钥密码技术是一种广泛应用的对发送给指定接收者的文件、消息等信息进行加密的技术。采用这种密码技术的系统需要为每个用户生成一对数学上的相关联的公钥和私钥,公钥通过某种方式公开发布,使得任何发送者都可获得接收者的公钥,私钥则有接收者私密保存。
公钥密码系统应用中一个重要的安全需求就是确保使用的公钥确切的属于指定的接收者,即需要一种将用户标识(id)和其公钥绑定在一起的安全机制。传统公钥密码体制中,例如采用rsa、dsa、ecc等算法的系统,公钥的产生和用户的标识没有关系,需要由第三方认证中心(ca)发放证书,即对用户的公钥和标识进行签名,将二者绑定,这个基于传统公钥密码体系的以ca为中心的体系叫做公钥基础架构,其主要有两个缺点:一是用户的标识私钥在秘钥中心的托管问题,用户的标识私钥必须由秘钥中心完成,因此秘钥中心和用户一样也拥有用户标识私钥,因此,严格的说,标识密码体制产生的签名不具有不可否认性,相应的标识密码体制产生的密文在秘钥中心可以解密,有信息泄露的风险;二是用户标识私钥丢失后,传统公钥体制中用户的标识和公钥绑定在一起,如果用户私钥丢失,用户可以重新生成一对公钥和私钥,而在标识密码体制中,用户的标识就是公钥,因此无法被注销,为此,我们提出了一种无证书公钥密码系统的构造方法投入使用,以解决上述问题。
技术实现要素:
本发明的目的在于提供一种无证书公钥密码系统的构造方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:一种无证书公钥密码系统的构造方法,该无证书公钥密码系统的构造方法的具体步骤如下:
s1:输入安全参数k,采用kgc运行算法对系统进行初始化;
s2:kgc在证实用户a的身份后,输入系统参数params、主密钥master-key和一个用户的身份识别符ida,ida∈{0,1}*,计算qa=h1(ida)∈g1并返回用户a的部分私钥da=(s+qa)-1p∈g1,然后将da通过安全信道传送给用户a;
s3:输入用户a的身份识别符ida和安全参数k,输出一个随机数
s4:输入系统参数params和秘密值xa,计算qa=ppub+h1(ida)p∈g1和ra=xaqa∈g1,并返回用户a的公钥pka=ra∈g1;
s5:输入用户a的秘密值xa、公钥ra和部分私钥da,计算
s6:输入消息明文m∈m、签名者身份ida、私钥sa及系统参数params,对系统进行无证书签名;
s7:输入消息m、签名σ、签名者身份ida、公钥ra及系统参数params,进行验证,若验证通过则输出1,否则输出0。
优选的,所述步骤s1中,kgc算法为:输出<g1,g2,e>,其中g1和g2是两个q阶循环群,e:g1×g2→g2是一个双线性映射,选择一个随机数
优选的,所述步骤s6中,在进行无证书签名时的算法运行为选择一个随机数
优选的,所述步骤s7中,在进行验证时,计算qa=(s+qa)p=ppub+h1(ida)p,ya=h2(ra)及h=h3(m,u),检查e(v,ra+yaqa)=ugh是否成立,若等式成立,验证者输出1,否则输出0。
与现有技术相比,本发明的有益效果是:本发明采用无证书签名体制,签名验证者在验证签名时无需像在传统公钥密码系统下那样验证签名者公钥的有效性,没有基于身份密码系统中的密钥托管问题,本发明能够解决标识密码系统私钥被托管的安全缺陷,其安全性较高。
附图说明
图1为本发明工作流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,本发明提供一种技术方案:一种无证书公钥密码系统的构造方法,该无证书公钥密码系统的构造方法的具体步骤如下:
s1:输入安全参数k,采用kgc运行算法对系统进行初始化,kgc算法为:输出<g1,g2,e>,其中g1和g2是两个q阶循环群,e:g1×g2→g2是一个双线性映射,选择一个随机数
s2:kgc在证实用户a的身份后,输入系统参数params、主密钥master-key和一个用户的身份识别符ida,ida∈{0,1}*,计算qa=h1(ida)∈g1并返回用户a的部分私钥da=(s+qa)-1p∈g1,然后将da通过安全信道传送给用户a,其中系统参数;
s3:输入用户a的身份识别符ida和安全参数k,输出一个随机数
s4:输入系统参数params和秘密值xa,计算qa=ppub+h1(ida)p∈g1和ra=xaqa∈g1,并返回用户a的公钥pka=ra∈g1;
s5:输入用户a的秘密值xa、公钥ra和部分私钥da,计算
s6:输入消息明文m∈m、签名者身份ida、私钥sa及系统参数params,对系统进行无证书签名,在进行无证书签名时的算法运行为选择一个随机数
s7:输入消息m、签名σ、签名者身份ida、公钥ra及系统参数params,进行验证,若验证通过则输出1,否则输出0,在进行验证时,计算qa=(s+qa)p=ppub+h1(ida)p,ya=h2(ra)及h=h3(m,u),检查e(v,ra+yaqa)=ugh是否成立,若等式成立,验证者输出1,否则输出0。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。