鲲鹏加速引擎 KAE技术解析:释放硬件算力,多场景高性能加速【附openHiTLS源码】

在云计算与大数据飞速发展的当下,数据中心和服务器面临着日益增长的计算需求与能源效率挑战。为应对这一现状,华为推出鲲鹏加速引擎(Kunpeng Accelerator Engine,简称 KAE),作为基于鲲鹏 920 处理器的硬件加速解决方案,它能为多类应用场景提供强劲算力支持,显著提升性能并降低资源消耗。本文将从 KAE 的核心构成、技术原理、价值优势、应用场景及 Web 场景实践等方面展开详细介绍。

一、KAE 核心构成与技术原理

(一)核心模块

KAE 主要包含三大核心模块,各模块功能明确,协同为应用提供加速能力:

  1. 高性能 RSA 加速引擎(HPRE):专注于 RSA 算法的加速处理,RSA 作为常用的非对称加密算法,在 SSL/TLS 握手等场景中应用广泛,HPRE 能大幅提升其运算效率。
  2. 高性能 zlib/Gzlib 压缩引擎(ZIP):基于 deflate 算法,实现 zlib/Gzlib 格式的数据压缩与解压缩加速,符合 RFC1950/RFC1952 标准规范,在分布式存储、大数据等场景中发挥重要作用。
  3. 硬件安全加速引擎(SEC):集成多种加解密算法,为数据安全提供硬件级保障,支持对称加解密、非对称加解密及摘要算法等,确保数据在处理过程中的安全性。

(二)系统逻辑架构

KAE 系统逻辑架构层次清晰,从上层应用到底层硬件形成完整的协同体系,具体架构如下:

  1. 应用系统(APPs):处于架构最上层,包括大数据应用、Web 应用等开发者层面系统,通过调用应用库子系统或驱动子系统实现应用加速功能。
  2. 应用库子系统(OpenSSL/openHiTLS/zlib):包含基于 OpenSSL 加速器引擎、zlib 替代库等,向上层提供 OpenSSL/openHiTLS、zlib 标准接口,开发者无需修改现有应用程序代码,即可通过标准接口调用 KAE 加速能力。
  3. 驱动统一接口 Wrap:起到承上启下的作用,将应用库子系统的调用请求统一转换为适配加速库驱动子系统的接口调用,实现接口的标准化与兼容性。
  4. 加速库驱动子系统:作为系统核心,向上层提供各子加速器模块统一的驱动接口,向下通过寄存器操作与芯片加速器子系统进行交互,负责调度硬件加速资源。
  5. 芯片加速器子系统:集成在鲲鹏 920 处理器中,是加速器的硬件实现,提供加速器的核心能力,对上层提供寄存器接口,但不直接开放给客户。
  6. 辅助子系统
    • BIOS 子系统:为单板 BIOS 软件系统,主要功能是根据 License 决定对加速器哪些模块进行初始化,并将加速器 ACPI(Advanced Configuration and Power Interface)表上报到内核,供加速库驱动子系统处理。
    • BMC 子系统:即服务器 BMC 软件系统,主要负责对加速器 License 的管理,在系统初始化时将 License 传递给 BIOS 系统,保障加速器的合法使用与功能授权。

(三)使能与调用流程

KAE 的使能与调用需经过多子系统协同配合,具体流程如下:

  1. License 管理与传递:BMC 子系统管理芯片加速器子系统的 License,当系统初始化时,BMC 将 License 传递给 BIOS 系统,为加速器功能启用提供授权依据。
  2. 加速器初始化与 ACPI 表上报:BIOS 子系统解析接收到的 License 信息,根据解析结果对芯片加速器子系统进行使能控制,同时将加速器 ACPI 表上报到内核,让内核感知加速器硬件资源。
  3. 应用调用与硬件交互:上层应用基于 OpenSSL/zlib 加速库调用鲲鹏加速引擎,调用请求经应用库子系统、驱动统一接口 Wrap、加速库驱动子系统层层传递后,通过寄存器操作与芯片加速器子系统进行交互,最终由硬件加速器完成计算任务,实现应用加速。

二、KAE 价值优势

鲲鹏处理器内置的 KAE 加速引擎,凭借其独特的硬件设计与软件优化,具备三大核心价值优势,为用户带来卓越的应用体验:

(一)高性能:突破算力瓶颈

KAE 拥有独立的硬件引擎,在执行加解密、数据压缩等计算密集型任务时,不占用 CPU 资源,可将计算任务完全卸载到硬件加速器中。相比传统的软件加密(无指令加速)和外挂密码卡方案,KAE 能实现性能的倍级提升。以 KAEzip 为例,单鲲鹏 920 处理器最大压缩带宽可达 7GB/s,最大解压带宽高达 8GB/s,大幅提升数据处理效率,有效突破应用算力瓶颈。

(二)更安全:筑牢数据安全防线

KAE 的加解密引擎集成在 CPU 片内,数据处理过程中,明文仅通过片内总线传输,避免了数据在外部传输过程中被窃取的风险。同时,数据计算时以明文形式存在,传输和存储时则以密文形式保存,即使发生数据泄露,攻击者也无法获取有效信息,从硬件层面筑牢数据安全防线。

(三)业务透明无感知:降低开发与迁移成本

KAE 对应用层屏蔽了内部实现细节,开发者无需了解硬件加速的底层原理,只需通过 OpenSSL、zlib 等标准接口即可调用加速能力。如果开发者原有的程序已经使用了 OpenSSL、zlib 等库,无需修改代码,即可无缝迁移到 KAE 平台,享受硬件加速带来的性能提升,极大降低了开发与迁移成本,实现业务的平滑过渡。

三、KAE 核心功能模块详解

KAE 包含加解密和压缩两大核心功能模块,分别对应 KAE 加解密和 KAEzip,两大模块针对不同应用场景,提供专业的加速能力。

(一)KAE 加解密:高效保障数据安全传输

KAE 加解密模块使用鲲鹏硬件加速模块实现多种加解密算法,结合无损用户态驱动框架,提供高性能对称加解密、非对称加解密及摘要算法能力,兼容 OpenSSL 1.1.1a 及其之后版本,支持同步和异步机制,满足不同场景下的性能需求。目前主要支持以下算法:

  1. 摘要算法:支持 SM3、MD5,采用异步模型,能快速计算数据的哈希值,用于数据完整性校验、数字签名等场景。
  2. 对称加密算法
    • SM4:支持异步模型,支持 CTR、XTS、CBC、ECB、OFB 等多种模式,适用于数据加密传输、存储加密等场景,是我国自主研发的密码算法,安全性高。
    • AES:支持异步模型,支持 ECB、CTR、XTS、CBC 等模式,是国际通用的对称加密算法,广泛应用于各类安全通信场景。
  3. 非对称算法:RSA,支持异步模型,支持 Key Sizes 1024、2048、3072、4096,在 SSL/TLS 握手、数字证书生成与验证等场景中发挥关键作用。
  4. 密钥协商算法:DH,支持异步模型,支持 Key Sizes 768、1024、1536、2048、3072、4096,用于在通信双方之间安全地协商会话密钥,保障后续数据传输的安全性。

(二)KAEzip:提升数据压缩与解压缩效率

KAEzip 是 KAE 的压缩模块,使用鲲鹏硬件加速模块实现 deflate 算法,结合无损用户态驱动框架,提供高性能 Gzip/zlib 格式压缩接口,主要特点如下:

  1. 格式与算法支持:支持 zlib/Gzip 数据格式,严格遵循 RFC1950/RFC1952 标准规范,确保与现有系统的兼容性;基于 deflate 算法,在压缩效率与压缩速度之间取得良好平衡。
  2. 运行模式:支持同步模式,满足大多数场景下的数据压缩与解压缩需求,确保数据处理的实时性。
  3. 性能表现:单鲲鹏 920 处理器最大压缩带宽 7GB/s,最大解压带宽 8GB/s,压缩比约为 2,与 zlib 1.2.11 接口保持一致,开发者可轻松替换原有 zlib 库,享受硬件加速带来的性能提升。在分布式存储场景中,通过 KAEzip 加速数据压缩和解压,能有效减少数据存储占用空间,提升数据传输速度,降低存储与网络成本。

四、KAE 应用场景

KAE 凭借其强大的加解密与压缩加速能力,广泛应用于多个领域,主要应用场景包括:

(一)Web 场景

在 Web 场景中,HTTPS 协议作为常用的安全通信协议,应用十分广泛。但 HTTPS 协议中的短连接频繁,且 SSL/TLS 握手过程中的 RSA2048 加解密运算成为性能瓶颈。KAE 加解密模块可对 HTTPS 传输场景中的 SSL/TLS 加解密算法进行卸载,通过硬件加速 RSA2048 等算法,大幅提升 HTTPS 处理性能,减少服务器 CPU 资源消耗,保障 Web 服务的高并发与低延迟。

(二)分布式存储场景

分布式存储系统需要处理大量数据的存储与传输,数据压缩能有效减少存储容量占用和网络传输带宽消耗。KAEzip 模块支持高性能的数据压缩与解压缩,可集成到分布式存储系统中,加速数据压缩和解压过程,提升存储系统的读写性能,降低存储成本,同时保障数据在传输过程中的效率。

(三)大数据场景

大数据处理过程中,数据量庞大,涉及数据的传输、存储与计算。KAE 的加解密模块可保障大数据传输与存储的安全性,防止数据泄露;KAEzip 模块则能对大数据进行压缩,减少数据传输带宽和存储容量占用,提升大数据处理框架(如 Hadoop、Spark)的运行效率,缩短数据处理周期。

五、Web 场景下 KAE 的实践应用

Web 场景中,HTTPS 性能优化是关键需求,KAE 通过对 SSL/TLS 加解密的硬件卸载,有效提升 HTTPS 处理能力,以下从实现原理、接口类型及关键步骤三方面介绍其在 Web 场景的应用。

(一)实现原理

在 Web 场景中,KAE 的加速方案主要针对 HTTPS 请求处理中 SSL/TLS 握手时的非对称加解密运算(如 RSA2048 算法)进行硬件卸载。以 TaiShan 200 服务器(搭载 2 * 鲲鹏 920 CPU)为例,其实现原理如下:

  1. 请求传输路径:用户发送 HTTPS 请求,经负载均衡 / ELB 分发到 Nginx 节点;Nginx 节点接收请求后,通过 OpenSSL/openHiTLS API 调用鲲鹏加速引擎。
  2. 加速引擎调用流程:Nginx Worker 调用 OpenSSL libssl 的 EVP API,进而触发 OpenSSL libcrypto 的 Engine API,最终调用鲲鹏 CPU 加速库 Engine;鲲鹏 CPU 加速库 Engine 通过用户态 Library 与内核态 Driver 交互,调用鲲鹏 920 加速器的硬件资源,完成 SSL/TLS 加解密运算。
  3. 数据处理与响应:加解密运算完成后,明文数据转发给应用服务器进行业务处理;应用服务器生成响应数据后,再经 KAE 加密处理,通过 Nginx 节点、负载均衡 / ELB 返回给用户,实现完整的 HTTPS 通信流程。

(二)接口类型

KAE 对外提供两种类型的接口,满足不同 Web 应用的调用需求:

  1. OpenSSL API:KAE 以 Engine 方式集成到 OpenSSL 中,开发者可通过 Nginx 或自研 Web 软件直接调用 OpenSSL 标准 API,无需修改原有代码,即可实现 SSL/TLS 加解密的硬件加速,适配性强,迁移成本低。
  2. 自定义 API:KAE 提供用户态 Library,包含自定义 API,供客户自研 Web 软件调用。对于有特殊功能需求或需要深度定制的 Web 应用,可通过自定义 API 实现更灵活的硬件加速调用,满足个性化需求。

(三)SSL/TLS 卸载关键步骤

KAE 对 SSL/TLS 加解密的卸载过程主要包括以下五个关键步骤,各步骤协同工作,实现 HTTPS 性能的提升:

  1. 接收客户端请求:KAE 作为服务器硬件的一部分,与 Web 服务器协同工作,首先接收从客户端发送的 HTTPS 请求,为后续处理做准备。
  2. SSL/TLS 握手:KAE 负责与客户端进行 SSL/TLS 握手过程,包括验证客户端身份、协商加密算法套件、生成会话密钥等操作。在此过程中,KAE 通过硬件加速 RSA 等非对称加解密算法,缩短握手时间,提升连接建立速度。
  3. SSL/TLS 加密 / 解密操作:安全连接建立后,KAE 使用硬件加速模块执行 SSL/TLS 的加密和解密操作。由于加解密运算由硬件完成,不占用 CPU 资源,大幅提升了数据处理速度,同时避免了 CPU 成为性能瓶颈。
  4. 转发明文数据:数据解密完成后,KAE 将明文数据转发给后端应用服务器,应用服务器可专注于业务逻辑处理,无需参与复杂的加解密运算,减轻了应用服务器的负担,提升了业务处理效率。
  5. 加密返回数据:应用服务器生成响应数据后,将其传递给 KAE;KAE 使用硬件加速模块对响应数据进行加密处理,确保数据在回传过程中的安全性;加密后的响应数据经 Web 服务器返回给客户端,完成一次 HTTPS 请求的处理。

通过上述步骤,KAE 将 SSL/TLS 加解密的计算任务转移到硬件加速模块,不仅减轻了后端服务器的 CPU 负担,还提高了系统的整体性能和响应速度,为 Web 应用的高并发、低延迟提供了有力支撑。

六、总结

鲲鹏加速引擎 KAE 作为基于鲲鹏 920 处理器的硬件加速解决方案,通过 KAE 加解密和 KAEzip 两大核心模块,为大数据加解密、分布式存储压缩、视频转码、Web 场景 HTTPS 加速等提供了高性能、高安全、低成本的加速能力。其业务透明无感知的特性降低了开发者的使用门槛,丰富的接口类型和广泛的应用场景使其能灵活适配不同行业的需求。在云计算与大数据持续发展的背景下,KAE 将进一步释放鲲鹏硬件算力,为企业数字化转型提供强大的技术支撑,助力企业应对日益增长的数据处理挑战,提升业务竞争力。

openHiTLS Provider for 鲲鹏KAE 源码下载

随着数字经济的深入发展及国家商用密码改造全面深化,数据安全与处理效率已成为核心矛盾,传统软件实现的密码算法在高并发、大规模数据场景下面临CPU性能瓶颈。鲲鹏KAE(Kunpeng Accelerator Engine)加解密加速引擎通过芯片级硬件加速,致力于为商用密码及国际通用密码算法提供高性能、低功耗的解决方案。openHiTLS作为业界首个面向全场景的开源密码库,为鲲鹏KAE加解密加速引擎提供了相应的Provider实现(KAEP)。

https://gitcode.com/openHiTLS/kaep

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值