之前的一期中,Dr.M讲到在1984年,AdiShamir为了解决PKI中公钥难以管理的问题,提出了基于标识的密码系统的概念-----IBC。他提出了应直接使用用户的既有标识作为公钥。这样做的好处是什么呢?在IBC里,Alic和Bob的通讯过程变成这样的了:
我们看到这个图简化了很多吧?!
Alic和Bob直接使用对方的标识作为公钥,没有了证书申请、查询、验证的环节,所以加密通讯变得非常容易。
But….
密码学都要讲数学原理,Shamir提出了这个想法之后,很多年过去了,一直没有找到数学方式来证明这个是可以安全的实现的。
一直到了2001年左右,密码学界才找到了安全性可证明的加密算法。在接下来的几年内,标准化的过程不断加快,产品和方案纷纷面世。基于标识的密码技术在过去几年中得到快速发展。研究人员设计了大量的新密码系统。随着应用的逐渐广泛,相应算法的标准化工作也在逐步展开。IEEEP1363.3的基于标识的密码技术工作组正在进行相关算法的标准化工作。ISO/IC已经标准化了两个基于标识的签名算法。以上都是国际上的情况,国内咱们也没闲着……
我国政府也非常重视标识密码技术的推广应用。2006到2007年,在国家密码局组织下,我公司参与了国家标识密码体系IBC标准规范的编写工作。2007年12月国家IBC标准正式通过了评审。2008年IBC算法正式获得国家密码管理局颁发的SM9算法型号,2 016年3月,中国标识SM9密码算法正式对外发布。
目前,在国家密码局发布的系列算法中,基于公钥体系算法有SM2和SM9,分别代表了基于PKI/CA数字证书体系和IBC标识密码体系,二者在功能上是相同的,都能够进行加解密、签名验证和密钥交换等密码操作。但因其技术特点,适应场景不同:
在PKI技术中用户公钥是一串没有意义的数字。为了绑定用户公钥和系统中用户的身份标识,需要引入数字证书。在某些应用场景,如系统数量庞大的用户之间需要点对点通信的情况,繁琐的数字证书管理就极大地限制了PKI技术的应用推广。但因为其使用第三方管理思路,特别适合于第三方公正时的强签名认证。
这个就是PKI的公钥的范例:
在IBC技术中基于用户的唯一身份标识(如手机号、邮箱地址、设备编码等等),作为公钥,然后通过用户公钥计算出用户私钥,这使得IBC技术成为一种轻量级管理中心的公钥密码技术,避免了繁琐的数字证书管理问题,特别适合于云计算、物联网、电子邮件加密、加密通话等点对点通讯、数据加密的应用。
这个是IBC公钥的范例: