1.基于PKI的传统公钥密码体制
基于PKI的传统公钥密码体制,解决了对称密码体制中通信双方通信之前需要进行密钥协商以及密钥多,管理复杂的问题。基于PKI的公钥密码体制主要思想为信息加密运用一种陷门单向函数。具体来说就是,函数是单向的,从x得到f(x)很容易,但是反过来,从f(x)得到x不可能,但是如果给定陷门信息,则可以容易从f(x)得到x,这个陷门信息就是作为公钥密码体制中的私钥,保密私钥即可,而与私钥相对应的公钥则用来加密信息,因为没有私钥,由单向陷门函数的特性可知,公钥公开不影响信息的安全性,则公钥一般是公开可供任何用户查询的。任何用户想给某用户发送消息时,首先必须查询该用户的公钥,然后运用公钥加密消息。那么存在的一个问题就是,如何保证查询到的公钥信息是正确的而非被纂改过的呢?为了解决这一问题,需要PKI对用户的公钥进行认证,认证通过之后,用PKI的私钥对用户的公钥进行签名,签名之后的用户公钥就是公钥证书了,用户查询时会首先用PKI的公钥对证书的签名进行验证,验证通过就相信该公钥是合法的,没被纂改的。当然,这样一来,带来的问题就是PKI要管理用户公钥,包括公钥的有效期以及公钥的撤销等问题,非常复杂且成本很高,而用户也需要进行一系列的认证,计算开销也比较大。
2.基于身份的密码体制(IBE)
为了解决传统基于PKI的公钥密码体制中公钥管理复杂的问题,提出了基于身份的密码体制。该密码体制的思想为:用户的公钥由能够唯一标识用户身份信息的ID计算得到,这样就不需要PKI对用户的公钥与用户的身份进行验证,解决了PKI管理公钥的问题。但是也带来的新的问题,就是用户私钥的问题,基于身份的密码体制中,用户的私钥必须由私钥生成中心PKG来生成。原因在于,如果用户可以根据自己的公钥生成自己的私钥,那么该用户也可以通过其他用户的公钥生成其他用户的私钥,这样显然是不可以的。因此用户私钥必须由一个可信第三方来根据用户的公钥生成,然后通过安全方式发送给用户,因此带来的问题就是密钥托管的问题。因为PKG拥有任何一个用户的私钥,因此PKG具有可以解密任何用户的信息以及伪造任何用户的签名的能力,因此,存在安全隐患。
3.基于无证书的公钥密码体制
为了解决基于身份密码体制中固有的密钥托管问题,提出了无证书的公钥密码体制。该体制的主要思想为:在基于身份的公钥密码体制基础上,将用户的私钥由两部分组成,包括KGC提供的部分私钥和用户选择的秘密值组成,这样KGC和用户都不可能独立生成完全的私钥,从而解决了基于身份密码体制中密钥托管问题。因此一个无证书加密体制的形式化模型一般包括七个算法,比基于身份的密码体制中的四个算法增加了三个,基于身份的密码体制一般包括系统建立、密钥生成、加密和解密四个算法,而无证书加密体制包括系统建立、部分私钥提取、设置秘密值、设置私钥、设置公钥、加密、解密。
4.分层公钥密码体制
分层公钥密码体制也是为了解决基于身份密码体制中的密钥托管问题,采用多PKG的方式,也就是说,IBE系统的主密钥被分发给多个PKG,没有任何一个PKG拥有主密钥的完整信息。通过门限的方式为一个身份产生私钥。但是带来的问题就是需要采用额外的基础设施和通信设备,代价很大。而用户也需要向多个权威机构证明自己的身份,从而获取私钥,用户的代价也较大。
5.PKG受约束的基于身份密码体制
该方案还没有弄明白,先留个位置,以后补充。