• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 对称密钥生成和转换规格
2
3当前章节将说明系统目前支持的算法及其对应的规格。
4
5开发者可以通过字符串参数承载密钥规格,来生成对应的密钥。对于每种算法支持的字符串参数,将会在具体的每个算法规格中介绍。
6
7## AES
8
9AES(Advanced Encryption Standard),最常见的对称加密算法。
10
11基本特点:
12
13- 分组密码算法,分组长度为128位。
14
15- 密钥长度为128位、192位或256位。
16
17- 与3DES相比,安全性更高,处理速度更快。
18
19当前支持以字符串参数生成AES密钥,具体的“字符串参数”由“对称密钥算法”和“密钥长度”拼接而成,用于在创建对称密钥生成器时,指定密钥规格。
20
21| 对称密钥算法 | 密钥长度(bit) | 字符串参数 | API版本 |
22| -------- | -------- | -------- | -------- |
23| AES | 128 | AES128 | 9+ |
24| AES | 192 | AES192 | 9+ |
25| AES | 256 | AES256 | 9+ |
26
27## 3DES
28
293DES(Triple Data Encryption Algorithm),也称为3DESede或TripleDES。
30
31基本特点:
32
33- 使用3个64位的密钥对数据库进行三次加密,相当于对每个数据块执行三次DES(Data Encryption Standard)加密算法。
34
35- 与DES相比,3DES的密钥长度更长,安全性更高,但处理速度不如DES。
36
37当前支持以字符串参数生成3DES密钥,具体的“字符串参数”由“对称密钥算法”和“密钥长度”拼接而成,用于在创建对称密钥生成器时,指定密钥规格。
38
39| 对称密钥算法 | 密钥长度(bit) | 字符串参数 | API版本 |
40| -------- | -------- | -------- | -------- |
41| 3DES | 192 | 3DES192 | 9+ |
42
43## SM4
44
45SM4,即SM4分组密码算法。
46
47基本特点:
48
49- 分组密码算法,分组长度为128位。
50
51- 密钥长度为128位。可通过扩展密钥增加密钥长度。
52
53- 加密算法与密钥扩展算法都采用32轮非线性迭代结构,数据解密和数据加密的算法结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。
54
55当前支持以字符串参数生成SM4密钥,具体的“字符串参数”由“对称密钥算法”和“密钥长度”使用连接符“_”拼接而成,用于在创建对称密钥生成器时,指定密钥规格。
56
57| 对称密钥算法 | 密钥长度(bit) | 字符串参数 | API版本 |
58| -------- | -------- | -------- | -------- |
59| SM4 | 128 | SM4_128 | 10+ |
60
61## HMAC
62
63HMAC(Hash-based message authentication code),是一种基于哈希的消息认证码算法,运算时需要输入对称密钥。
64
65基本特点:
66
67HMAC使用的对称密钥可以是任何长度。
68
69- 如果密钥的长度大于HMAC分组长度,则将密钥进行单向散列的结果作为新的密钥。
70
71- 如果密钥的长度小于HMAC分组长度,则将末尾填充0作为新的密钥,即最终的密钥长度与HMAC分组长度保持一致。
72
73- 密钥长度推荐采用摘要算法的输出长度。
74
75当前支持以字符串参数生成HMAC使用的对称密钥:
76
77- 当HMAC使用的密钥长度与摘要算法的输出长度一致时,具体的“字符串参数”由“消息认证码算法”和“摘要算法”使用连接符“|”拼接而成,用于在创建对称密钥生成器时,指定密钥规格。
78
79- 当HMAC使用的密钥长度不在上述摘要算法输出长度的范围内,可以通过字符串参数“HMAC”创建对称密钥生成器,并根据HMAC使用的密钥的二进制数据生成密钥。
80
81| 消息认证码算法 | 摘要算法 | 密钥长度(bit) | 字符串参数 | API版本 |
82| -------- | -------- | -------- | -------- | -------- |
83| HMAC | SHA1 | 160 | HMAC\|SHA1 | 11+ |
84| HMAC | SHA224 | 224 | HMAC\|SHA224 | 11+ |
85| HMAC | SHA256 | 256 | HMAC\|SHA256 | 11+ |
86| HMAC | SHA384 | 384 | HMAC\|SHA384 | 11+ |
87| HMAC | SHA512 | 512 | HMAC\|SHA512 | 11+ |
88| HMAC | SM3 | 256 | HMAC\|SM3 | 11+ |
89| HMAC | - | [1, 32768] | HMAC | 11+ |
90