密钥协商介绍及算法规格

为了避免恶意第三方获取到保密信息,密钥本身是不可以直接在设备间传输的。一般情况下,会采取密钥协商的方式,安全地在双方(或多方)间共享密钥。密钥协商只会传输密钥的公钥部分,私钥仍存留在设备内,以保护数据的安全性和机密性。

两台设备间进行密钥协商,双方各准备一个非对称密钥,并互换非对称密钥的公钥,以对端公钥与己端私钥协商出一个密钥,该密钥在两台设备相同。

说明:

  • 轻量级设备不支持密钥协商功能。
  • 使用现有密钥别名作为协商结果密钥别名会把现有密钥覆盖。

从API 23开始支持群组密钥特性。

支持的算法

以下为密钥协商支持的规格说明。

面向OpenHarmony的厂商适配密钥管理服务规格分为必选规格和可选规格。必选规格为所有厂商均支持的算法规格。而对于可选规格,厂商将基于实际情况决定是否实现,如需使用,请查阅具体厂商提供的说明,确保规格支持再使用。

建议开发者使用必选规格开发应用,可保证全平台兼容。

算法 备注 协商的密钥长度 协商密钥可用算法 API级别 是否必选规格
ECDH 协商密钥类型为ECC类型密钥。 256 AES/256
HMAC/256
8+
DH 协商密钥类型为DH类型密钥。 2048 AES/128/192/256
HMAC/8-1024
SM4/128
DES/64
3DES/128/192
8+
DH 协商密钥类型为DH类型密钥。 3072/4096 AES/128/192/256
HMAC/8-1024
SM4/128
DES/64
3DES/128/192
8+
X25519 协商密钥类型为X25519类型密钥。 256 AES/256
HMAC/256
8+