浅谈商密SM9的发展与应用场景

数据安全 数据安全 1899 人阅读 | 0 人回复

发表于 2022-12-21 15:56:07 | 显示全部楼层 |阅读模式

基于标识的密码算法
随着物联网、5G通信应用的快速扩张,遭受类型多样化的网络攻击、数据极易被截获或破解等安全风险也逐渐凸显。但是近年来各种安全认证逐步完善、各种密码算法一一标准化,也体现出了企业和政府对安全的重视。为了解决在互联网环境中身份伪造等攻击,在安全体系架构中常常会引入PKI/CA证书体系来保证数据源认证,确保通信双方都是可信的。除了PKI/CA证书体系,近年来我们也看到了基于标识的密码算法也在各种应用领域中逐渐被应用。

基于标识的密码算法是一门新兴的且正在不断快速发展中的公钥密码算法分支。为了降低公开密钥系统中密钥和证书管理的复杂性,以色列科学家、RSA算法发明人之一Adi Shamir在1984年提出了标识密码(Identity-Based Cryptography)的理念。这种密码算法的设计目标是让通信双方在不需要交换公私钥信息、不需要保存密钥的目录服务等基础设施、不需要使用第三方提供认证服务的情况下,保证信息交换的安全性并可以验证相互之间的签名。
传统的PKI(Public Key Infrastructure)技术
要了解基于标识的密码算法,首先来回顾下传统的PKI (Public Key Infrastructure)技术。

PKI使用经典的公钥密码算法如RSA/ECDSA等。此时每个用户拥有一对密钥,其中一个是公钥,可以公开发布给其他人,另一个则是私钥,仅自己保留,不可公开。

随之而来的问题是,拿到一个用户,如A用户的公钥后,如何确认该公钥就是A用户的?如果不进行确认,直接用该公钥加密消息后发送给用户A,则是很危险的,假若攻击者B用其公钥替换了A的公钥,则只有他能解密密文,而真正的接收者A恐怕收不到加密的消息,即使收到,解密后只会得到一堆乱码。

可见,身份认证是个大问题,而PKI可以有效解决该问题。具体的,PKI引入了CA CA(Certification Authority)的角色,使用证书机制解决认证,CA负责颁发用户证书,对证书进行查询,验证等管理。同一CA下可以有很多用户,CA给其用户颁发证书,不同用户之间通过证书完成身份认证。如下是一个典型的例子。

pki.png


PKI的加密过程

用户Bob向CA申请证书。

CA收到申请,审核通过后,向其颁发证书(证书中包含CA的信息,用户个人信息,用户公钥等),Bob收到后,可将其证书公开发布。

Alice要对Bob发送加密消息,首先申请向CA查询Bob的证书,确认该证书的有效性

CA验证该证书(包含数字签名验证过程),给出证书有效性结论。

Alice得到有效性确认后,从Bob的证书中提取Bob的公钥,进行加密,并把密文发送给Bob。

Bob接收到密文后,用自己的私钥进行解密,获得明文。

PKI的缺点是过程复杂,步骤较多,且需要与CA的交互。对于不具备相关知识的用户来说不够简洁,在很多应用场景下,如此多的步骤和计算量也是个负担。

基于标识的密码技术IBC (Identity-Based Cryptography)
为了降低公钥系统中密钥管理和使用的复杂性,Shamir在1984年提出了基于标识的密码技术(Identity-Based Cryptography - IBC):即用户的标识就可以用做用户的公钥(更加准确地说是用户的公钥可以从用户的标识和系统指定的一个方法计算得出)
ibc.png


如上图所示,如果使用PKI技术,用户的公钥可能是一堆乱码,或者多个用户有一样的公钥(如RSA算法,公钥通常都选取65537),不论是哪种情况,都很难直观且唯一地把公钥和用户直接联系起来。

而采用IBC,则用户的公钥可以直接取用户的唯一特征信息即可(即用户标识),如邮件地址,手机号等。并且用户的公钥可以先于用户私钥生成(当然了,只要是用户的唯一标识且被用户认可就可以了,此时同一用户公钥可以有多个)。
ibc2.png


如此一来,上面的加密过程可得到简化,如上图所示。

IBC的加密过程

Alice要发送加密消息给Bob,直接用Bob的邮件地址作为Bob的公钥进行加密,将密文发送给Bob。

Bob接收到后,向KGC申请基于其邮件地址的私钥。

KGC接收到申请后,生成Bob的私钥,并安全分发给Bob。

Bob用该私钥解密,恢复消息。

在这种情况下,用户不需要申请和交换证书,从而极大地简化了密码系统管理的复杂性。用户的私钥由系统中的一受信任的第三方KGC(密钥生成中心)使用标识私钥生成算法计算生成。这样的系统具有天然的密码委托功能,适合于有监管的应用环境。

标识算法虽然可以降低密码系统管理的复杂度,但是由于其本身算法的原因,运算速度依然比较缓慢,这也是目前阻碍标识算法大规模应用的主要原因之一。

我国推出基于用户标识的密码算法-SM9
我国近年来也在大力推动基于标识的密码算法的标准化,SM9算法是国密局颁布的一种基于用户标识的密码算法。2008年,标识密码算法正式获得国家密码管理局颁发的商密算法型号:SM9(商密九号算法),为我国标识密码技术的应用奠定了坚实的基础。之后,SM9算法逐渐完善和标准化,2016年,作为密码行业标准GM/T 0044-2016正式发布。
ibc3.png



为了解决该性能瓶颈的问题,OSR推出了SM9加速算法IP,在原有的PKE的基础上,通过软件算法库来调用底层硬件来加速SM9,API完全支持GM/T 0044-2016。除此之外,OSR也有SM9专用加速器IP,该加速器针对双线性对运算进行,极大地提高了SM9的运算性能,使得SM9可以应用于各种高速服务场景中。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则