在公钥密码的实际应用中,如何方便地验证公钥与主体身份之间的联系?对于此问题,传统的解决方法是采用基于公钥基础设施的公钥证书机制,但是,证书机制要求此类证书管理过程有高计算与存储开销。一种基于身份验证的加密的密码系统中,用户的身份信息直接作为公钥,或公钥可轻易地从身份信息中计算得到,而私钥通过私钥生成中心(PKG)的可信第三方产生后发给用户。当用户用通信对方的公钥时,只需清楚其身份信息,而不需要获得并验证其公钥证书。
基于身份的密码系统特点:
(1)用户只用知道通信对方的身份。
(2)用户不用存储任何公钥、证书之类的列表。
(3)PKG只是在系统的建立阶段提供服务,且用户对其绝对无条件信任。
基于身份密码体制与传统基于证书密码体制的相同之处如下:
(1)具有一对公钥和私钥,公钥可以公开,私钥由用户保密。
(2)用户的身份都需要认证。传统基于证书密码体制中,用户要对对方证明自己的身份;基于身份的密码体制中,用户要对PKG证明自己的身份。
(3)公钥和私钥在加密方案中,两者都用于加密,私钥用于解密;在签名方案中,都是私钥用来签名、公钥用来验证签名。
不同的地方在于:
(1)密钥生成过程不同。传统基于证书的密码体制中,用户的私钥与公钥一起产生。由用户先选出私钥,然后计算得出公钥=F(私钥);基于身份的密码体制中,用户的公钥是已被公开的身份信息,通过PKG给用户生成私钥,私钥=F(主密钥,公钥),这里的主密钥通过PKG进行秘密保存。由此可知,这两种密码体制的密钥生成过程恰好相逆。
(2)用户身份信息的获取方式不同。在基于证书的密码体制中,用户的身份信息要绑定证书,在验证了证书上的签名之后才能确认用户的身份。
(3)公钥获取方式不同。基于证书的密码体制中,要获得用户的公钥,必须先得到用户的证书,证书中包括了证书权威机构对用户公钥的签名;基于身份的密码体制中,不需要任何人或机构对公钥签名。
(4)公钥存储方法不同。在基于证书的密码系统中,需要将包含用户公钥的证书存储在目录中;在基于身份的密码系统中,不使用单独的目录来存储公钥的。