2022年06月28日
基于标识的密码算法
随着物联网、5G通信应用的快速扩张,遭受类型多样化的网络攻击、数据极易被截获或破解等安全风险也逐渐凸显。但是近年来各种安全认证逐步完善、各种密码算法一一标准化,也体现出了企业和政府对安全的重视。为了解决在互联网环境中身份伪造等攻击,在安全体系架构中常常会引入PKI/CA证书体系来保证数据源认证,确保通信双方都是可信的。除了PKI/CA证书体系,近年来我们也看到了基于标识的密码算法也在各种应用领域中逐渐被应用。
基于标识的密码算法是一门新兴的且正在不断快速发展中的公钥密码算法分支。为了降低公开密钥系统中密钥和证书管理的复杂性,以色列科学家、RSA算法发明人之一Adi Shamir在1984年提出了标识密码(Identity-Based Cryptography)的理念。这种密码算法的设计目标是让通信双方在不需要交换公私钥信息、不需要保存密钥的目录服务等基础设施、不需要使用第三方提供认证服务的情况下,保证信息交换的安全性并可以验证相互之间的签名。
要了解基于标识的密码算法,首先来回顾下传统的PKI (Public Key Infrastructure)技术。
PKI使用经典的公钥密码算法如RSA/ECDSA等。此时每个用户拥有一对密钥,其中一个是公钥,可以公开发布给其他人,另一个则是私钥,仅自己保留,不可公开。
随之而来的问题是,拿到一个用户,如A用户的公钥后,如何确认该公钥就是A用户的?如果不进行确认,直接用该公钥加密消息后发送给用户A,则是很危险的,假若攻击者B用其公钥替换了A的公钥,则只有他能解密密文,而真正的接收者A恐怕收不到加密的消息,即使收到,解密后只会得到一堆乱码。
可见,身份认证是个大问题,而PKI可以有效解决该问题。具体的,PKI引入了CA CA(Certification Authority)的角色,使用证书机制解决认证,CA负责颁发用户证书,对证书进行查询,验证等管理。同一CA下可以有很多用户,CA给其用户颁发证书,不同用户之间通过证书完成身份认证。如下是一个典型的例子。
图片来源:深圳奥联官网
为了降低公钥系统中密钥管理和使用的复杂性,Shamir在1984年提出了基于标识的密码技术(Identity-Based Cryptography - IBC):即用户的标识就可以用做用户的公钥(更加准确地说是用户的公钥可以从用户的标识和系统指定的一个方法计算得出)
图片来源:深圳奥联官网
如上图所示,如果使用PKI技术,用户的公钥可能是一堆乱码,或者多个用户有一样的公钥(如RSA算法,公钥通常都选取65537),不论是哪种情况,都很难直观且唯一地把公钥和用户直接联系起来。
而采用IBC,则用户的公钥可以直接取用户的唯一特征信息即可(即用户标识),如邮件地址,手机号等。并且用户的公钥可以先于用户私钥生成(当然了,只要是用户的唯一标识且被用户认可就可以了,此时同一用户公钥可以有多个)。
图片来源:深圳奥联官网
如此一来,上面的加密过程可得到简化,如上图所示。
标识算法虽然可以降低密码系统管理的复杂度,但是由于其本身算法的原因,运算速度依然比较缓慢,这也是目前阻碍标识算法大规模应用的主要原因之一。
我国近年来也在大力推动基于标识的密码算法的标准化,SM9算法是国密局颁布的一种基于用户标识的密码算法。2008年,标识密码算法正式获得国家密码管理局颁发的商密算法型号:SM9(商密九号算法),为我国标识密码技术的应用奠定了坚实的基础。之后,SM9算法逐渐完善和标准化,2016年,作为密码行业标准GM/T 0044-2016正式发布。
为了解决该性能瓶颈的问题,OSR推出了SM9加速算法IP,在原有的PKE的基础上,通过软件算法库来调用底层硬件来加速SM9,API完全支持GM/T 0044-2016。除此之外,OSR也有SM9专用加速器IP,该加速器针对双线性对运算进行,极大地提高了SM9的运算性能,使得SM9可以应用于各种高速服务场景中。
Copyright 2018. Open Security Research, Inc. All rights reserved. 粤ICP备18045701号