安文政
(中国电信股份有限公司日照分公司研发中心 山东 日照 276800)
随着信息技术的快速发展和全球化进程的加速,网络数据传输已经渗透到人们的日常生活和工作中,成为不可或缺的一部分。然而,由于网络环境的复杂性和开放性,文件传输过程中存在着诸多安全隐患,如数据泄露、篡改和窃取等。因此,如何确保文件的安全传输一直是信息行业关注的热门话题之一。
基于国家安全战略的考虑,我国从2009 年开始加大了对国产密码算法的推广。信创,作为国家战略布局,旨在实现信息技术领域的科技自立自强,保障国家信息安全。“十四五”规划中明确指出,到2025 年,行政办公及电子政务系统要全部完成国产化替代。国资委79 号文件《关于开展对标世界一流企业价值创造行动的通知》部署了国、央企信创国产化的具体要求和推进时间表,要求到2027 年100%完成信创替代。当前,关键基础设施行业的信创化进入快速推进期,国密应用的替换和强制要求已成为必然。
国产SM 密码算法作为国产密码算法中的一类,已经被广泛应用于各种安全领域。SM 算法具有自主可控、安全强度高、运算速度快等优点,为信息记录的安全存储、安全传输提供了新的解决方案。它不仅提高了数据传输的安全性,还为国家信息安全战略的实施提供了有力支持。
目前,SM 系列算法分为SM1、SM2、SM3、SM4、SM7 和SM9。其中,SM1、SM4 和SM7 是对称算法,SM2 和SM9 是非对称算法,而SM3 是摘要算法[1]。
(1)SM1 是一种对称加密算法,其算法并不公开。在调用该算法时,需要通过加密芯片接口来实现。由于SM1算法具有较高的安全性,因此在数据传输、存储和访问控制等方面都有广泛的应用。此外,SM1 还可以用于数字签名、身份认证等安全应用中,以确保数据的完整性和可信度。其加密强度与高级加密标准(advanced encryption standard,AES)相当。
(2)SM2 是一种非对称加密算法,它基于椭圆曲线密码学(elliptic curve cryptography,ECC)算法,其算法是公开的。由于该算法基于ECC,所以其签名速度与密钥生成速度都快于RSA(Rivest-Shamir-Adleman)。更重要的是,ECC 256 位(SM2 采用的就是ECC 256 位的一种)安全强度比RSA 2048 位还要高。这使得SM2 适用于数字签名、密钥协商、数据加密等场景[2]。SM2 数字签名算法与ECDSA 算法的性能受两者选用的杂凑函数影响,但总体上性能相近;当数据量较少时,SM2 公钥加密算法与ECIES 算法性能取决于加密数据的规模,随着数据量增多,后者的性能显著优于前者[3]。
(3)SM3 是一种消息摘要算法,其性能与SHA-256 算法相近[3]。这个算法是公开的,主要用于数据完整性校验和数字签名等场景。它可以产生一个256 位的校验结果。
(4)SM4 是一种对称加密分组密码算法,其算法是公开的。它被设计用于加密大数据量,具有128 位的密钥长度和分组长度。这种设计使得它既高效又安全,非常适用于数据加密和密钥协商等场景。根据一些测试,SM4 的性能介于AES 与三重数字加密标准(triple data encryption standard,3DES)之间[3]。
(5)SM7 是一种对称加密算法,其算法不公开,采用分组加密算法,分组长度为128 位,密钥长度也为128 位。这种设计使得SM7 非常适合于非接触式IC 卡的使用场景,包括但不限于身份识别类应用(如门禁卡等),票务类应用(大型赛事门票、展会门票),支付与通卡类应用(积分消费卡、校园一卡通、企业一卡通等)[4]。
(6)SM9 是基于非对称密码体制的标识密码算法,其算法是公开的。标识密码将用户的标识(如手机号码、微信号、网卡MAC 等)作为公钥,省略了交换数字证书和公钥的过程,使得安全系统变得易于部署和管理,非常适合端对端离线安全通信、云端数据加密、基于属性加密、基于策略加密的各种场合[5]。
在进行文件传输时,特别是通过HTTP 等方式下载文件,通过查看网页源码或抓包工具极易得到文件原始地址,得到原始地址后,会导致文件下载难以管控。另外,对于无纸化会议等场景,个别重要文件需要保密存储、限制有权限的用户下载、限制查看权限等保密需求,传统的明文文件下载及查看方式都是不能满足的。
而传统的加密方法,多为简单的对称加密,如ZIP 压缩文件包的加密方式,需要将密钥存储于客户端(或随文件下发),一旦客户端程序被反编译或数据被抓包、穷举破解,极易发现密钥进而解密文件。
政府机关、部分国企,已经对新研发系统要求国产化、使用国密算法。
本文以重要会议文件的存储、下载、客户端查看过程为例,详细阐述了如何通过SM2、SM3、SM4 三种常用的国密算法对文件进行加解密或摘要处理的过程。为便于理解,我们将过程中涉及到的用户、密钥、文件均配以标识符。
(1)原始文件的加密存储:原始文件通过使用非对称加密算法进行加密存储,以确保即使在非法复制的情况下也无法查看。在文件提供方将原始明文文件A 上传到服务器S 后,服务器S 的加密系统将使用SM2 非对称加密算法生成非对称密钥的公钥和私钥,并使用公钥对原始明文文件A 进行非对称加密以生成加密文件B 并保存,同时删除明文文件A。服务器S 将在适当的位置保存私钥和加密文件的对应关系,建议将私钥存储在USB 介质或另一台机器上(必须有访问验证)以提高安全性。
(2)处理下载请求:当文件使用者U 请求下载文件时,文件服务器S 将使用私钥解密文件B 以获得临时明文文件流A-Temp(为增强安全性,不写入硬盘,仅存储于内存中)。同时,服务器S 将使用文件使用者U 的账号UName 或其他标识型信息(假如使用者U 的客户端也有这些信息)U-Info 以及随机数Rand(可为4 ~8 位随机数字,用于下发到文件使用者U 的手机)等进行字符串重组,通过SM3 摘要算法生成密钥种子Seed,并使用密钥种子Seed 生成对称密钥K,然后使用对称密钥K 对临时明文文件流A-Temp 进行SM4 对称加密以生成加密文件C 并写入磁盘、生成下载网址URL-Down。加密完成后,将清空临时明文文件流A-Temp。
(3)客户端解密并查看文件:服务器S 将调用短信接口,向文件使用者U 的手机发送包含随机数Rand 的短信。文件使用者U 的客户端将使用与步骤(2)中相同的算法(包括使用者U 的标识型信息U-Info、从短信接收到的随机数Rand 等信息来生成密钥种子Seed),通过SM3摘要算法计算得到对称密钥K,然后使用该密钥K 对步骤(2)中下发的文件网址URL-Down 进行下载,从而获得加密文件C 并使用密钥K 进行解密,最终生成明文文件A(文件A 并不保存到使用者U 的终端硬盘或其他存储介质上,仅可查看)。
(4)善后事宜:当文件使用者U 的客户端完成解密并查看文件后,将通知服务器S。服务器S 将删除加密文件C,清除下载网址URL-Down,从而完成此次文件加密传输过程。
整个过程如图1 所示。
图1 文件加解密处理过程流程图
图2 为原始文件上传服务器的过程。上传文件时选择加密选项,服务器会采用SM2 非对称算法,生成密钥对并加密文件。
图2 上传文件过程
图3 为服务端加、解密过程,可以看到,服务端采用非对称解密速度非常快,仅需37 ms。加密时由于需要读取原始文件和产生密钥对,耗时1 863 ms(图3 中显示文件大小为256 228 Bytes,换算为kB 的计算方法为:256 228/1 024=250.22 kB,为图2 中所显示的文件大小)。
图3 服务端加解密
图4 为手机客户端(测试机为华为畅享10 S,中低端配置手机)对文件解密的临时日志,产生的密钥长度为128 位,对于接收到的235.63 kB 的密文,仅需要126 ms即可解密并正常查看。
图4 手机客户端解密日志
特点1:密钥不存储于客户端,也不通过网络下发,而是通过手机短信每次仅发送部分字符作为密钥种子,由自主研发的算法重新生成密钥,保证了安全性。
特点2:原始文件经过SM2 非对称加密存储于服务器,安全性极高(资料显示,采用SM2 等加密算法存储的文件安全性高于3DES 方式,而通过穷举法解密3DES 文件,约需要数年才能解密)。
特点3:服务端非对称密钥加解密保证存储的安全性,加解密速度快(可接受范围时间),解决了非对称密钥方式在手机等移动终端上解密耗时大的问题;手机等移动终端采用对称解密方式,能更快解密文件,提升用户体验。
特点4:每次下载都随机生成对称密钥,只有使用者的手机等移动终端才能收到密钥种子的部分信息,只有使用解密客户端才能解密文件,安全程度高(此过程会影响文件查看效率,可根据文件安全级别,选择该功能)。
特点5:没有固定的文件存储网址,每次下载都是新生成的,保护了文件免遭滥下载。
本方案已在笔者所在城市的某政府机关和部分国企的无纸化会议项目中得到应用。该系统主要提供会议设置、文件保管、与会者在线阅读、笔记等功能。通过采用国密算法和服务端国产化,实现了文件的加密存储、传输和无缓存阅读。实施一年多来,已处理会议电子文件不低于3 000 份,同时获得了安全性和处理效率方面的好评。
SM 密码算法作为国产密码算法的杰出代表,在信息技术创新应用中发挥着越来越关键的作用。
首先,SM 密码算法显著提高了系统安全性。相比传统的加密算法,SM 密码算法的灵活搭配使用,能够有效地防范黑客入侵和数据泄露。同时,随着硬件和操作系统的国产化,系统的整体安全性会得到更全面的保障。
其次,SM 密码算法具有高自主可控性。由我国自主研发的SM 密码算法具有完全自主知识产权。这意味着,在信息安全领域,我们不再完全依赖于国外技术,而是可以自主实现技术突破和产业升级。同时,由于SM 密码算法的自主可控性,政府和企业在使用过程中,能够更好地保障数据安全和隐私权益,有效避免一些后门软件的植入或窃取信息。
再次,SM 密码算法具有良好的软硬件性能。在加密速度方面,SM 密码算法的运算效率不亚于国外同类算法。这使得SM 密码算法在处理大量数据时,能够更好地满足实时性要求,优化了信息系统的性能。
最后,SM 密码算法支持多种平台和硬件环境,具有良好的可移植性。在多款国产化服务端系统、安卓、鸿蒙等客户端系统测试中均无使用障碍,可以更容易地将其集成到现有信息系统中,降低了企业和开发者的技术门槛和成本。
总之,应用SM 密码算法可以提高信息系统的安全性、自主可控性,并优化系统性能。同时,可以降低对外部技术的依赖,提高自主创新能力和国家安全水平。此外,它可以进一步推动我国信息技术产业的发展和壮大,提高我国在全球信息技术领域的地位和影响力。未来可以进一步拓展SM 密码算法的使用场景,替换掉国外密码算法,真正做到“国产化”。