基于PKI的传统公私钥基础设施的核心问题是需要信任一个中心化的信任根,并由此可能引出相关的安全和效率问题。而DPKI(分布式公钥基础设施)的出现为这一问题提供了解决方案。下面我们就来了解一下无证书公钥密码体制。
无证书公钥密码体制
无证书公钥密码体制(CL-PKI)是在已有公钥密码体制基础上,将用户的私钥由两部分组成,包括KGC(密钥生成中心)提供的部分私钥和用户选择的秘密值组成,这样KGC和用户都不可能独立生成完全的私钥,从而解决了基于身份密码体制中的密钥托管问题。
无证书公钥密码体制中的算法过程
无证书公钥密码体制的形式化模型需要包含额外的算法,一般包括系统初始化设置、提取部分私钥、设定秘密值、设定私钥值、设定公钥、加密和解密。
系统初始化设置算法
此算法通常由密钥生成中心(KGC)运行。该算法输入一个安全参数k,输出系统参数params和主密钥master-key。系统参数包括消息空间M和密文空间C。系统参数公开,主密钥只有KGC知道。
提取部分私钥算法
此算法通常由密钥生成中心(KGC)运行。该算法输入参数params,主密钥master-key以及用户身份ID∈{0,1}*,返回部分私钥DID。
设置秘密值算法
此算法输入参数params和用户身份ID,输出秘密值x。
设置私钥算法
该算法输入参数params,用户身份ID,用户的部分私钥DID和秘密值x,输出用户的完整私钥SKID。
设置公钥算法
输入参数params,用户身份ID,用户秘密值x,输出用户的完整公钥PKID。
加密算法
此算法是概率性算法。加密方输入参数params,用户身份ID,用户公钥PKID和明文消息m∈M(M是明文空间),输出密文c∈C(C是密文空间)。
解密算法
此算法是确定性算法。解密方输入参数params,用户私钥SKID,密文c,输出明文m或错误标识⊥,⊥表示解密失败。
无证书公钥密码体制的应用
无证书公钥密码的相关理论技术在2003年就已经完善,但真正为这一技术提供产品化基础的是区块链技术的发展与DPKI的落地实践。
在标准的CL-PKI形式化定义中,KGC依然承担了部分中心化的信任根的功能。基于分布式账本的DPKI充分发挥了区块链作为信任机器的作用,消除了传统PKI系统的中心化风险。
DPKI与CL-PKI的结合,并非对PKI或传统CA系统的全盘抛弃和替代,更多是在原有认证体系基础之上的一种改进和补充,通过构建一种分布式的认证体系来解决中心化认证体系存在的问题,是未来网络信任生态的基础设施。
免责声明:素材源于网络,如有侵权,请联系删稿。