新闻中心

NEWS

首页 - 新闻中心 -

前沿技术|SM2-KDF算法快速实现及其应用

发布时间: 2024-05-30 18:22

引言

SM2椭圆曲线公钥密码算法是我国自主设计的公钥密码算法,包括椭圆曲线数字签名算法,椭圆曲线密钥交换协议,椭圆曲线公钥加密算法,分别用于实现数字签名、密钥协商、数据加密等功能。我国的SM3密码杂凑算法[1]是一种典型的密码杂凑算法,用于计算数据的数字摘要(也叫杂凑值),目前已被广泛运用在网上银行、电信运营商、电子商务、企业等众多应用领域。SM3算法计算数据的杂凑值是采取链式分块计算法,即必须先计算输入数据的前一个分块(512比特)的迭代压缩值,然后将此迭代压缩值与后一个分块(512比特)一起进行迭代压缩得到更新后的迭代压缩值,如此反复直至处理完所有分块。在SM2加密算法[2]中使用KDF(密钥派生函数)算法生成与明文等长的密钥流用于加密明文,KDF所采用的核心模块就是SM3杂凑算法。

在云计算、网络数据传输等场景中,通常需要对数据进行加密传输,现有的技术方案是采取数字信封的加密保护方式。PKCS#7解释为:数字信封包含被加密的内容和被加密的密钥(用于加密该内容)。数字信封就像一个双保险锁,它不仅锁住了你的秘密(数据),还把开锁的钥匙(密钥)也一起锁了起来。在数字信封中,信息发送方采用对称密钥来加密信息内容,比如使用SM4算法[3],然后将此对称密钥用接收方的公开密钥来加密(这部分称数字信封)之后,将它和加密后的信息一起发送给接收方,接收方先用相应的私有密钥打开数字信封,得到对称密钥,然后使用对称密钥解开加密信息。数字信封主要包括数字信封封装和数字信封解封装,数字信封封装是使用对方的公钥将加密密钥进行加密的过程,只有对方的私钥才能将加密后的数据还原;数字信封解封装是使用私钥将加密过的数据解密的过程。事实上,SM2算法有类似的属性,可以直接对大块的数据(数据长度不超过128GB32B)执行加解密。

技术概述

传统方案中不直接使用SM2而是选择数字信封方案的一个主要原因是SM2执行效率不高,其中瓶颈之一是SM2加密和解密使用的密钥派生算法KDF的执行效率较低。陈学雷等[4]提出了一种基于SIMDSingle Instruction Multiple Data,单指令流多数据流)寄存器并行执行SM3SM2-KDF快速实现方法。但该方法未能进一步考虑SM2-KDFSM2加解密应用中的特殊性,有鉴于此,太阳成集团tyc4633深入挖掘SM2-KDFSM2加解密快速实现中的综合应用,给出更加高效的SM2加解密实现方案[5]
方案介绍

太阳成集团tyc4633提出一种基于并行计算方法执行SM2算法的密钥派生算法KDF的方法,不仅实现密钥派生算法KDF的并行快速处理,还能进一步提升SM2加密和解密功能的执行效率。

在探究SM2加解密算法快速实现的过程中,太阳成集团tyc4633公司关注到了算法关键步骤对KDF函数的使用。该函数的执行涉及到对恒定长度为512比特的SM2点坐标与32比特计数器的杂凑处理。在此过程中,SM3杂凑函数特定的数据处理方式为SM2加解密算法的优化提供了可能。输入值的固定长度与SM3的消息分块大小匹配,使得第一个消息分块的计算结果不变。这便于通过仅执行一次计算并复用结果,规避了重复计算所导致的资源浪费。第二个消息块的值由计数器和特定填充字节构成,呈现出相对稳定性。在适当的条件下,例如存储空间充裕时,可以通过预计算第二个消息块的消息扩展阶段进一步减轻计算负担,提升效率。不同SM3计算实例之间的第二个消息块相互独立,为并行处理提供了用武之地。通过运用SIMD指令集,如SSEAVXAVX2AVX512,以及多线程技术,可以实现SM3计算的并行化,从而显著提高计算效率。这些优化策略不仅提升了SM2-KDF的执行效率,更为SM2加密算法和解密算法的性能增强开辟了路径。具体的优化方案和执行细节,请参考相关文献[5],以获取更深入的技术解析和实施指南。通过这些优化技术,SM2能够在保障信息安全的同时,大幅提升数据处理的速度和效率,这可以为构建高性能的信息安全体系奠定坚实的基础。
技术优势

本方案的技术优势包括:执行效率高,可以显著提升SM2加密和解密的性能,比如结合SSE指令、AVX512指令并行实现SM3CF压缩函数,可以显著提升KDF效率和SM2加解密效率,特别适合于大量数据的加密,摆脱对数字信封的依赖;兼容标准的SM2算法,不改变标准的SM2算法的加密解密执行流程;可实施、可兼容和场景广泛,从低端密码产品至高端服务器都能兼容,并表现出很高的性能。
应用场景分析

众多应用场景均可以使用,特别是大块数据需要加密的应用场景,比如金融、交通、水利、党政等领域均可实施应用。
后记

本文给出了一种通过提升SM2-KDF性能来快速实现SM2加解密的方案,结合SIMD技术,比如SSE指令、AVX指令、AVX2指令、AVX512指令等可以显著提升SM2公钥加密算法的KDF性能以及SM2加密解密性能。本方法并不局限于特定平台,在X86ARMRISC-V、国产化平台等众多平台上都有较好的发挥空间。

 

售后在线客服

售前咨询
010-59790009转8055

售后服务
400-109-9696

XML 地图