---
title: 鲲鹏加速引擎KAE简介-官方技术文章-鲲鹏社区
description: 了解鲲鹏加速引擎KAE的基础知识和应用场景
keywords: 鲲鹏加速引擎,简介,官方技术文章,鲲鹏社区,什么是,加解密,KAEzip,KAE,应用场景
url: https://www.hikunpeng.com/developer/techArticles/20230906-4?envFlag=1
section: (其他)
---

# 鲲鹏加速引擎KAE简介-官方技术文章-鲲鹏社区

URL: https://www.hikunpeng.com/developer/techArticles/20230906-4?envFlag=1
描述: 了解鲲鹏加速引擎KAE的基础知识和应用场景
关键词: 鲲鹏加速引擎,简介,官方技术文章,鲲鹏社区,什么是,加解密,KAEzip,KAE,应用场景

官方技术文章 [了解详情](https://www.hikunpeng.com/zh/developer/techArticles)

鲲鹏加速引擎KAE简介

鲲鹏加速引擎KAE简介

实战经验

发表于 2023/09/06

0

尊敬的鲲鹏开发者你好，为了给大数据加解密、分布式存储压缩、视频转码等应用场景提供高性能加速，充分释放硬件算力，鲲鹏BoostKit提供基于ARM指令深度优化和基于鲲鹏硬件加速引擎开发的加速库，覆盖系统库、压缩、加解密、媒体、数学库、存储和网络7类加速库。其中鲲鹏加速引擎（Kunpeng Accelerator Engine，简称：KAE）是基于鲲鹏920处理器提供的硬件加速解决方案，包含了KAE加解密和KAEzip，归属加解密和压缩两类库，分别用于加速SSL/TLS应用加解密和数据压缩，可以显著降低处理器消耗，提高处理器效率。

您可以通过本文学习如何在Web场景下使用KAE。

本文主要介绍了以下知识：

（1）鲲鹏加速引擎KAE简介。

（2） 如何在Web场景下使用KAE。

## 什么是KAE

鲲鹏920处理器内置KAE硬件引擎，支持硬件加解密和压缩/解压缩特性，同时提供适配KAE硬加速的zlib和OpenSSL库，让开发者在不修改应用程序的同时获得成倍的性能提升。

在使用KAE之前，我们先来了解一下什么是KAE，掌握了KAE的基础概念和作用原理，才能更好的将其运用在实际业务场景中。

鲲鹏加速引擎KAE的背景可以追溯到云计算和大数据时代的爆发需求。随着云服务、人工智能和大数据分析的快速发展，数据中心和服务器面临着更高的计算要求和能源效率要求。为了满足这些需求，华为推出了鲲鹏加速引擎KAE。该加速引擎可以通过优化许多关键任务的执行效率和资源利用率，提供更快的数据处理速度和更低的能耗。同时，它还支持虚拟化技术，提供更灵活的资源分配和管理能力。鲲鹏加速引擎KAE的出现，进一步加强了华为在云计算和数据中心领域的竞争力，为企业和组织提供了强大的计算能力，帮助他们更好地应对日益增长的数据处理和应用需求。

KAE是基于鲲鹏920处理器提供的硬件加速解决方案，包含了KAE加解密和KAEzip，分别用于加速SSL/TLS应用加解密和数据压缩，可以显著降低处理器消耗，提高处理器效率。此外，KAE对应用层屏蔽了其内部实现细节，开发者通过OpenSSL、zlib标准接口即可实现快速迁移现有业务。KAE系统逻辑架构如下图所示：

KAE使能与调用流程如下：

（1）BMC子系统管理芯片加速器子系统的License，当系统初始化时，BMC将License传递给BIOS系统。

（2）BIOS子系统解析License信息，并根据解析结果对芯片加速器子系统进行使能控制，同时上报加速器ACPI（Advanced Configuration and Power Interface）表到内核。

（3）上层应用基于OpenSSL/zlib加速库调用鲲鹏加速引擎，并通过寄存器操作调用芯片加速器子系统。

各子系统详细功能描述如表2-1所示，其中芯片加速器子系统、BIOS子系统和BMC子系统为基于鲲鹏920处理器的硬件服务器自带子系统。

表2-1 子系统功能描述

子系统名称

功能描述

| 子系统名称 | 功能描述 |
| --- | ---|
| 芯片加速器子系统 | 集成在鲲鹏920处理器中，提供加速器的能力，对上层提供寄存器接口。该子系统是加速器的硬件实现，不直接开放给客户。 |
| BIOS子系统 | 单板BIOS软件系统，主要负责根据License决定对加速器哪些模块初始化，并上报加速器ACPI表到内核（加速器驱动子系统处理）。 |
| BMC子系统 | 服务器BMC软件系统，在这里主要负责对加速器License的管理。 |
| 加速器驱动子系统 | 本系统的核心，向上层提供各子加速器模块统一的驱动接口。 |
| 应用库子系统 | 应用库子系统包括基于OpenSSL加速器引擎、zlib替代库等，向上层提供标准接口。 |
| 应用系统 | 通过调用应用库子系统或驱动子系统实现对应用加速的功能，包括大数据应用、Web应用等，属于开发者层面系统。 |

如下图所示，KAE主要包含3个模块：高性能RSA加速引擎HPRE（High Performance RSA Engine）、高性能zlib/Gzlib压缩引擎ZIP和硬件安全加速引擎SEC（Security Engine），通过内核态运行，有着非常强的安全防护能力，且已经通过底层适配OpenSSL/zlib通用开源库，应用层使用简单，直接调用OpenSSL、zlib的API就可以使用。如果开发者原有的程序已经使用了OpenSSL等，那基本不用修改代码，就可以享受到KAE给软件带来的性能提升。

鲲鹏处理器内置KAE加速引擎，具备以下价值优势：

（1） 高性能：独立硬件引擎，不占用CPU资源，相比软件加密（无指令加速）和外挂密码卡，性能倍级提升。

（2）更安全：加解密引擎集成在CPU片内，明文只通过片内总线传输，数据计算时明文存在，传输存储时密文存在，数据泄露也不泄密。

（3）业务透明无感知：实现平台内部管理密钥、数据加解密，对上层业务系统透明。

### 1. KAE加解密

KAE加解密是鲲鹏加速引擎的加解密模块，使用鲲鹏硬件加速模块实现RSA/SM3/SM4/DH/MD5/AES算法，结合无损用户态驱动框架，提供高性能对称加解密、非对称加解密算法能力，兼容OpenSSL 1.1.1a及其之后版本，支持同步和异步机制。

目前主要支持以下算法：

（1）摘要算法SM3/MD5，支持异步模型。

（2）对称加密算法SM4，支持异步模型，支持CTR/XTS/CBC/ECB/OFB模式。

（3）对称加密算法AES，支持异步模型，支持ECB/CTR/XTS/CBC模式。

（4）非对称算法RSA，支持异步模型，支持Key Sizes 1024/2048/3072/4096。

（5）密钥协商算法DH，支持异步模型，支持Key Sizes 768/1024/1536/2048/3072/4096。

### 2. KAEzip

KAEzip是鲲鹏加速引擎的压缩模块，使用鲲鹏硬件加速模块实现deflate算法，结合无损用户态驱动框架，提供高性能Gzip/zlib格式压缩接口。

（1） 支持zlib/Gzip数据格式，符合RFC1950/RFC1952标准规范。

（2）支持deflate算法。

（3）支持同步模式。

（4）单处理器（鲲鹏920处理器）最大压缩带宽7GB/s，最大解压带宽8GB/s。

（5）支持的压缩比≈2，与zlib 1.2.11接口保持一致。

通过加速引擎可以实现不同场景下应用性能的提升，例如在分布式存储场景下，通过zlib加速库加速数据压缩和解压。

## KAE应用场景

KAE加解密可以应用于Web场景，KAEzip可以应用于分布式存储和大数据场景，本文主要介绍KAE加解密在Web场景下的使用。

HTTPS作为Web场景一个常见通用的协议，应用十分广泛，HTTPS协议中的短连接很频繁，是Web场景的性能瓶颈；作为安全协议，其中的RSA2048是加解密的瓶颈，我们通过TaiShan 200服务器（鲲鹏处理器）中内置的鲲鹏加速引擎KAE对HTTPS传输场景中的SSL/TLS加解密算法进行卸载，从而助力HTTPS处理性能的大幅提升。其实现原理如下图所示：

该加速方案主要对HTTPS请求处理中SSL/TLS握手时的非对称加解密运算进行加速，如上图所示，加速主要通过Tengine异步调用OpenSSL的鲲鹏加速引擎Engine来实现，主要针对加密中的RSA2048算法进行硬件卸载。

目前鲲鹏加速引擎KAE对外提供了OpenSSL API和自定义API两种类型的接口，分别可以通过Nginx及客户自研软件进行应用。

（1）OpenSSL API主要是指鲲鹏加速引擎以Engine方式集成到OpenSSL中，供Nginx和客户自研软件调用。

（2） 自定义API主要是指鲲鹏加速引擎用户态Library，提供自定义API供客户自研软件调用。

鲲鹏加速引擎KAE对SSL/TLS加解密的卸载主要包括以下几个关键步骤：

（1）接收客户端请求：KAE作为服务器的一部分，首先接收从客户端过来的HTTPS请求。

（2）SSL/TLS握手：KAE负责与客户端进行SSL/TLS握手过程，建立安全连接。这包括验证客户端身份和生成会话密钥等操作。

（3）SSL/TLS加密/解密操作：一旦安全连接建立，KAE会使用硬件加速模块来执行SSL/TLS的加密和解密操作。这些操作通常是计算密集型的，通过硬件加速可以提高执行速度。

（4）转发明文数据：一旦数据被解密，KAE将明文数据转发给后端服务器进行进一步处理。这样，后端服务器就可以专注于处理业务逻辑，而不需要关心SSL/TLS的加解密过程。

（5）加密返回数据：当后端服务器生成响应数据后，KAE会使用硬件加速模块对数据进行加密操作，以确保数据在传输过程中的安全性。

通过SSL/TLS卸载，KAE可以将SSL/TLS加解密的计算任务转移到硬件加速模块上，减轻了后端服务器的负担，提高了系统的性能和响应速度。同时，由于硬件加速模块的优化设计，KAE可以更高效地执行加解密操作，达到更好的性能表现。

本页内容
