前言 Ⅴ
引言 Ⅵ
1 范围 1
2 规范性引用文件 1
3 术语、定义和缩略语 1
3.1 术语和定义 1
3.2 缩略语 3
4 可信计算密码支撑平台功能原理 3
4.1 平台体系结构 3
4.1.1 密码与平台功能的关系 3
4.1.2 平台组成结构 4
4.1.3 可信密码模块 5
4.1.4 TCM 服务模块 6
4.2 密码算法要求 6
4.2.1 概述 6
4.2.2 SM2 7
4.2.3 SM3 9
4.2.4 HMAC 10
4.2.5 SMS4 10
4.2.6 随机数发生器 11
4.3 功能原理 11
4.3.1 平台完整性 11
4.3.2 平台身份可信 13
4.3.3 平台数据安全保护 14
5 可信计算密码支撑平台功能接口 17
5.1 概述 17
5.2 上下文管理 18
5.2.1 概述 18
5.2.2 创建上下文 18
5.2.3 关闭上下文 19
5.2.4 设置上下文属性(整型参数) 19
5.2.5 获取上下文属性(整型参数) 20
5.2.6 设置上下文属性(变长参数) 21
5.2.7 获取上下文属性(变长参数) 22
5.2.8 连接上下文 23
5.2.9 释放上下文 23
5.2.10 获取上下文默认策略 24
5.2.11 创建对象 24
5.2.12 关闭对象 25
5.2.13 获取平台功能特性 25
5.2.14 获取TCM 对象句柄 27
5.2.15 通过密钥属性加载密钥 27
5.2.16 通过密钥ID加载密钥 28
5.2.17 注册密钥 28
5.2.18 销毁密钥 29
5.2.19 通过密钥ID获取密钥 30
5.2.20 通过公钥获取密钥 30
5.2.21 通过ID获取注册密钥 31
5.2.22 设置传输会话加密密钥 32
5.2.23 关闭传输会话 32
5.3 策略管理 32
5.3.1 设置策略类属性(整型参数) 33
5.3.2 获取上下文属性(整型参数) 34
5.3.3 设置上下文属性(变长参数) 35
5.3.4 获取上下文属性(变长参数) 36
5.3.5 设置策略授权 37
5.3.6 清除策略授权 37
5.3.7 绑定策略对象 38
5.4 可信密码模块(TCM)管理 38
5.4.1 概述 38
5.4.2 创建平台身份和证书请求 38
5.4.3 激活平台身份和获取PIK证书 39
5.4.4 创建PEK请求 40
5.4.5 获取PEK证书 41
5.4.6 导入PEK密钥 42
5.4.7 创建不可撤消的密码模块密钥 42
5.4.8 获取密码模块密钥公钥 43
5.4.9 创建可撤销的密码模块密钥 43
5.4.10 撤销密码模块密钥 44
5.4.11 创建密码模块所有者 45
5.4.12 清除可信密码模块所有者 45
5.4.13 设置操作者授权 46
5.4.14 设置可信密码模块状态 46
5.4.15 查询设置可信密码模块状态 48
5.4.16 获取可信密码模块特性 49
5.4.17 可信密码模块完全自检 52
5.4.18 获取可信密码模块自检结果 53
5.4.19 获取可信密码模块产生的随机数 53
5.4.20 获取可信密码模块单个事件 54
5.4.21 获取可信密码模块一组事件 54
5.4.22 获取可信密码模块事件日志 55
5.4.23 可信密码模块PCR扩展 55
5.4.24 读取可信密码模块PCR值 56
5.4.25 重置可信密码模块PCR 57
5.4.26 引证PCR 57
5.4.27 读可信密码模块计数器 58
5.4.28 读可信密码模块当前时钟 58
5.4.29 获取可信密码模块审计摘要值 59
5.4.30 设置可信密码模块命令审计状态 60
5.5 密钥管理 60
5.5.1 概述 60
5.5.2 改变实体授权数据 60
5.5.3 获取策略对象 61
5.5.4 设置密钥属性(整型参数) 61
5.5.5 获取密钥属性(整型参数) 63
5.5.6 设置密钥属性(变长参数) 65
5.5.7 获取设置密钥属性(变长参数) 65
5.5.8 加载密钥 67
5.5.9 卸载密钥 67
5.5.10 获取密钥公钥 68
5.5.11 签署密钥 68
5.5.12 创建密钥 69
5.5.13 封装密钥 69
5.5.14 创建迁移授权 70
5.5.15 创建迁移密钥数据块 70
5.5.16 导入迁移密钥数据块 71
5.6 数据加密与解密 72
5.6.1 改变实体授权 72
5.6.2 获取策略对象 73
5.6.3 获取数据属性(整型参数) 73
5.6.4 设置数据属性(变长参数) 74
5.6.5 获取数据属性 75
5.6.6 数据加密 76
5.6.7 数据解密 76
5.6.8 数据封装 77
5.6.9 数据解封 78
5.6.10 数字信封封装 79
5.6.11 数字信封解密 79
5.7 PCR管理 80
5.7.1 概述 80
5.7.2 设置PCRLocality属性 80
5.7.3 获取PCRLocality属性 80
5.7.4 获取PCR摘要 81
5.7.5 设置PCR值 81
5.7.6 获取PCR值 82
5.7.7 选择PCR索引 83
5.7.8 非易失性存储管理 83
5.7.9 设置非易失性存储区属性(整型参数) 83
5.7.10 获取非易失性存储区属性(整型参数) 84
5.7.11 获取非易失性存储区属性(变长参数) 85
5.7.12 创建非易失性存储区空间 86
5.7.13 释放非易失性存储区空间 87
5.7.14 数据写入非易失性存储区 88
5.7.15 从非易失性存储区读取数据 89
5.8 杂凑操作 89
5.8.1 设置杂凑对象属性(整型参数) 89
5.8.2 获取杂凑对象属性(整型参数) 90
5.8.3 设置杂凑对象属性(变长参数) 91
5.8.4 对用户数据进行杂凑操作 92
5.8.5 设置杂凑值 93
5.8.6 获取杂凑值 93
5.8.7 更新杂凑值 94
5.8.8 对杂凑值签名 94
5.8.9 验证杂凑值签名 95
5.8.10 给杂凑类加时间戳 96
5.9 密钥协商 96
5.9.1 创建会话 96
5.9.2 获取会话密钥 97
5.9.3 释放会话 98
附录A (规范性附录) 数字证书格式 100
附录B(规范性附录) 接口规范数据结构 106
参考文献 133