Rate This Document
Findability
Accuracy
Completeness
Readability

Supported Algorithms

This section describes the algorithms and modes supported by the KAE encryption and decryption module and the KAE decompression modules (KAEZlib, KAEZstd, and KAELz4).

KAE Encryption and Decryption

The KAE encryption and decryption module uses Kunpeng hardware-based acceleration to implement the RSA, SM2, SM3, SM4, DH, MD5, and AES algorithms. It provides high-performance symmetric and asymmetric encryption and decryption based on the lossless user-space driver framework. It is compatible with OpenSSL 1.1.1x, OpenSSL 3.0.x, Tongsuo 8.4.0, and BoringSSL, and supports synchronous and asynchronous mechanisms.

  • OpenSSL 1.1.1x supports the following algorithms:
    • Digest algorithms SM3 and MD5, operating in asynchronous mode
    • Symmetric encryption algorithm SM4, operating in asynchronous mode and supporting CTR, XTS, CBC, ECB, CFB, and OFB
    • Symmetric encryption algorithm AES, operating in asynchronous mode and supporting ECB, CTR, XTS, OFB, CFB, and CBC
    • Asymmetric algorithm RSA, operating in asynchronous mode, with key sizes of 1024, 2048, 3072, and 4096
    • Asymmetric algorithm SM2, operating in asynchronous mode
    • Key negotiation algorithm DH, operating in asynchronous mode, with key sizes of 768, 1024, 1536, 2048, 3072, and 4096
  • OpenSSL 3.0.x offers encryption and decryption algorithm implementations through the engine mechanism and supports the SM3, MD5, SM4, AES, and RSA algorithms.
  • Tongsuo 8.4.0 offers encryption and decryption algorithm implementations through the engine mechanism and supports the SM3, SM4, AES, and RSA algorithms.
  • BoringSSL offers encryption and decryption algorithm implementations through the engine mechanism and supports the RSA algorithm (private key encryption and decryption).
  • The provider mechanism and later OpenSSL versions are not supported.
  • Tongsuo is an encryption and decryption library derived from OpenSSL. Its interfaces and usage patterns are compatible with OpenSSL.
  • BoringSSL is an open source encryption library developed and maintained by Google and derived from earlier OpenSSL versions. Some of its interfaces and usage patterns are different from those of OpenSSL. For details about how to use BoringSSL+KAE, see Using BoringSSL to Call KAE.

KAEZlib

KAEZlib is a KAE decompression module. It uses Kunpeng hardware-based acceleration to implement the Deflate algorithm, and works with the lossless user-space driver framework to provide interfaces for high-performance compression in gzip or zlib format.

  • It supports the zlib and gzip formats, and complies with the RFC 1950 and RFC 1952 standards.
  • It supports the Deflate algorithm.
  • It supports configurable compression levels and window lengths.
  • It supports the synchronous mode.
  • A single Kunpeng 920 processor delivers a maximum compression bandwidth of 7 GB/s and a maximum decompression bandwidth of 8 GB/s.
  • It is compatible with open source zlib 1.2.11 interfaces.

KAE can be used to improve application performance in different scenarios. For example, in software-defined storage (SDS) scenarios, the KAEZlib library can accelerate data compression and decompression. In addition, the KAEGzip compression tool is built on the KAEZlib library, enabling you to compress and decompress files without calling APIs.

KAEZstd

KAEZstd is a KAE decompression module. It uses Kunpeng hardware-based acceleration to implement the lz77_zstd algorithm and provides standard zstd library interfaces.

  • It allows general compression and decompression, but does not support the zstd dictionary mode or multi-thread mode.
  • It supports hardware-based acceleration for compression but not for decompression.
  • It can compress both small packets (less than 64 KB) and large packets (greater than 1 GB).
  • It supports configurable zstd compression levels.

KAE can improve application performance in different scenarios and significantly enhances compression efficiency.

KAELz4

KAELz4 is a KAE decompression module. It uses Kunpeng hardware-based acceleration to implement the lz77_lz4 algorithm and provides standard LZ4 library interfaces.

  • It supports lz4_block_format and lz4_frame_format.
  • It supports hardware-based acceleration for compression but not for decompression.
  • It supports both synchronous and asynchronous modes.