公开密钥体系
分类
- 基于证书的公开密钥体系
- 基于身份的公开密钥体系
- 基于无证书的公开密钥体系
基于证书的公开密钥体系
第一种方案是采用证书机制实现用户的身份和用户的钥匙之间的安全对应。证书机制一般都采用公钥基础设施(Public Key Infrastructure: PKI)技术。它综合使用了数字摘要技术、数字签名等密码技术以及一套完整的证书管理机制来提供安全服务。系统建设有公信力的认证中心(Certification Authority:CA)鉴定用户身份,然后为用户签发数字证书。数字证书安全地将用户身份和用户密钥绑定在一起。用户在业务系统中先交换证书,然后使用公私钥完成用户的身份认证、访问控制、信息安全传递等操作。但加密操作过程中数据发送方需要预先获得接收方证书,进而获取加密公钥,相关过程较为复杂。因此,目前证书系统广泛用于提供数字签名服务,实现身份认证、数据一致性保护等。为了进一步降低证书管理的复杂性,目前还有一些轻量级的证书管理协议,如简单证书注册协议SCEP等来降低证书注册等流程的复杂性。
基于身份的公开密钥体系
第二种方案是基于标识的密码技术 (Identity-Based Cryptography:IBC)。为了降低公钥系统中密钥管理和使用的复杂性,Shamir在1984年提出了基于标识的密码机制。在这种系统中,用户的标识就可以用做用户的公钥(更加准确地说是用户的公钥可以从用户的标识和标识密码算法规定的一个方法计算得出)。在这种情况下,用户不需要申请和交换证书,而是直接使用标识(身份信息)进行密码运算,从而解决公钥真实性问题,极大地简化了密钥系统管理的复杂性。这类系统中用户的私钥由系统中的一受信任的第三方(密钥生成中心:KGC)使用标识私钥生成算法计算生成。这样的系统具有天然的密码委托功能,特别适合于对数据恢复有需求的应用环境。另外这类基于标识的密码系统相较于传统PKI具有巨大的灵活性、扩展性、简洁性。因为系统加密过程直接使用应用涉及的标识作为公钥,无需分发、查询证书、无需申请策略证书等,充分体现了加密操作的便捷性。应用系统涉及的标识只要具有唯一性特征就可以直接作为公钥进行密码应用。这些标识可以具有任意的格式、属性,可以是常用的用户标识如邮件地址、手机号码、身份证号码;在物联网中可以是设备标识、Handle码、OID等;还可以是数据安全控制策略的形式化编码、生物特征信息、甚至是标识属性集等,特别适合基于标识、基于属性的权限访问控制和数据安全保护。在密码运算中直接使用这类标识作为公钥运算,无需进行证书申请、无需额外的实体标识与公钥间的映射管理,充分体现了标识密钥的灵活性。
基于身份的公开密钥密码体系存在密钥托管问题
密钥托管: 是一种将加密数据解密所需的密钥保存在托管中的安排,以便在某些情况下,授权的第三方可以访问这些密钥。这些第三方可以包括企业,谁可能需要访问员工的安全与业务相关的通信,还是政府,谁可能希望能够查看加密通信的内容(也被称为特殊的访问)
基于无证书的公开密钥体系
第三种方案是无证书的密码体制(Certificateless Public Key Cryptography, CL-PKC)。该体制的代表有1991年Girault 提出的“隐式证书”密码系统(Implicit Certificate)和Al-Riyami和Paterson在2001年提出的无证书公钥密码体制(AP-CL-PKC)。这种密码体制介于传统PKI和标识密码技术之间。这种机制中用户私钥由两个秘密因素决定:一个是从密钥生成中心中提取的与用户身份相关的密钥,另一个是由用户自己生成的密钥。从一个秘密元素不能计算另一个,即密钥生成中心不能算出用户的部分密钥,用户也算不出密钥生成中心生成的部分密钥。 因此,无证书密码系统没有密钥托管(key escrow)的功能。无证书密码系统保证即使是攻击人成功地用自己的公钥代替了受害者的公钥,攻击人仍然无法伪造一个受害者的签名,或者解密一段加密给受害者的密文信息。这一点无疑会减少恶意攻击者的兴趣。这种密码机制在加密过程中仍然提前需要获取接收方公钥(实际为公钥还原数据),然后使用接收方标识和系统参数计算接收方完整公钥。因此这类密码系统在加密应用中面临传统PKI类似的挑战,即需要预先获得接收方的公钥还原数据。对于签名过程,签名方可以将其公钥还原数据作为签名的一部分一起传递,验签方从签名结果中提取签名人的公钥还原数据,然后使用签名方标识和系统参数计算签名方的完整公钥,验证签名的正确性。因此这类系统在签名应用中具有无证书管理、系统轻量、通信开销低、具有强不可抵赖性等众多优点,非常适合物联网等领域的身份认证应用.