GB/T 29829-2013 信息安全技术 可信计算密码支撑平台功能与接口规范
GB/T 29829-2013 Information security techniques—Functionality and interface specification of cryptographic support platform for trusted computing
基本信息
本标准适用于可信计算密码支撑平台相关产品的研制、生产、测评与应用开发。
发布历史
-
2013年11月
-
2022年04月
研制信息
- 起草单位:
- 联想(北京)有限公司、国民技术有限责任公司、中国科学院软件研究所、同方股份有限公司、北京信息科技大学、北京兆日技术有限责任公司、瑞达信息安全产业股份有限公司、长春吉大正元信息技术股份有限公司、方正科技集团股份有限公司、中国长城计算机深圳股份有限公司、成都卫士通信息产业股份有限公司、无锡江南信息安全工程技术中心、中国人民解放军国防科学技术大学
- 起草人:
- 吴秋新、韦卫、冯登国、徐震、杨贤伟、邹浩、余发江、宁晓魁、秦宇、郑必可、刘韧、王梓、林洋、刘鑫、李伟平、尹洪兵、严飞、李丰、许勇、贾兵、王蕾、顾健、何长龙
- 出版信息:
- 页数:140页 | 字数:252 千字 | 开本: 大16开
内容描述
ICS35.040
L80百目
中华人民共和国国彖标准
GB/T29829—2013
信息安全技术
可信计算密码支撑平台功能与接口规范
Informationsecuritytechniques—Functionalityandinterfacespecificationof
cryptographicsupportplatformfortrustedcomputing
2013-11-12发布2014-02-01实施
GB/T29829—2013
目次
前言V
引言\1
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.4TCM服务模块6
4.2密码算法要求6
4.2.1概述6
4.2.2SM27
4.2.3SM39
4.2.4HMAC10
4.2.5SMS410
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
T
GB/T29829—2013
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
n
GB/T29829—2013
5.4.22获取可信密码模块事件日志55
5.4.23可信密码模块PCR扩展55
5.4.24读取可信密码模块PCR值56
5.4.25重置可信密码模块PCR57
5.4.26引证PCR57
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.7PCR管理80
5.7.1概述80
5.7.2设置PCRLocality属性80
5.7.3获取PCRLocality属性80
5.7.4获取PCR摘要81
m
GB/T29829—2013
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.&1设置杂凑对象属性(整型参数)89
5.&2获取杂凑对象属性(整型参数)90
5.&3设置杂凑对象属性(变长参数)91
5.8.4对用户数据进行杂凑操作92
5.65设置杂凑值93
5.66获取杂凑值93
5.&7更新杂凑值94
5.68对杂凑值签名94
5.69验证杂凑值签名95
5.&10给杂凑类加时间戳96
5.9密钥协商96
5.9.1创建会话96
5.9.2获取会话密钥97
5.9.3释放会话98
附录A(规范性附录)数字证书格式100
附录B(规范性附录)接口规范数据结构106
参考文献133
IV
GB/T29829—2013
■ir■■i
刖吕
本标准依据GB/T1.1—2009给出的规则起草。
请注意本文件的某些内容可能涉及专利。本文件的发布机构不承担识别这些专利的责任。
本标准由国家密码管理局提出。
本标准由全国信息安全标准化技术委员会(SAC/TC260)归口。
本标准主要起草单位:联想(北京)有限公司、国民技术有限责任公司、中国科学院软件研究所、同方
股份有限公司、北京信息科技大学、北京兆日技术有限责任公司、瑞达信息安全产业股份有限公司、长春
吉大正元信息技术股份有限公司、方正科技集团股份有限公司、中国长城计算机深圳股份有限公司、成
都卫士通信息产业股份有限公司、无锡江南信息安全工程技术中心、中国人民解放军国防科学技术
大学。
本标准主要起草人:吴秋新、市卫、冯登国、徐震、杨贤伟、邹浩、余发江、宁晓魁、秦宇、郑必可、刘韧、
王梓、林洋、刘鑫、李伟平、尹洪兵、严飞、李丰、许勇、贾兵、王蕾、顾健、何长龙。
GB/T29829—2013
引言
本标准以我国可信计算密码技术要求与应用方案为指导,描述了可信计算密码支撑平台的功能原
理与要求,并定义了可信计算密码支撑平台为应用层提供服务的接口规范,用以指导我国相关可信计算
产品开发和应用。
VI
GB/T29829—2013
信息安全技术
可信计算密码支撑平台功能与接口规范
1范围
本标准描述可信计算密码支撑平台功能原理与要求,并详细定义了可信计算密码支撑平台的密码
算法、密钥管理、证书管理、密码协议、密码服务等应用接口规范。
本标准适用于可信计算密码支撑平台相关产品的研制、生产、测评与应用开发。
2规范性引用文件
下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适用于本文
件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
GB/T5271.8—2001信息系统词汇第8部分:安全(idtISO/IEC2382-8:1998)
GB/T16264.8—2005信息技术开放系统互连目录第8部分:公钥和属性证书框架(ISO/
IEC9594-8:2001,IDT)
RFC3280互联网X.5O9公钥基础设施证书和CRL轮廓[RFC3280InternetX.509PubliKey
InfrastructureCertificateandCertificateRevocationList(CRL)Profile]
3术语、定义和缩略语
3.1术语和定义
GB/T5271.8—2001中界定的以及下列术语和定义适用于本文件。
3.1.1
可信计算平台trustedcomputingplatform
构建在计算系统中,用于实现可信计算功能的支撑系统。
3.1.2
可信计算密码支撑平台cryptographisupportplatformfortrustedcomputing
可信计算平台的重要组成部分,包括密码算法、密钥管理、证书管理、密码协议、密码服务等内容,为
可信计算平台自身的完整性、身份可信性和数据安全性提供密码支持。
注:可信计算密码支撑平台的产品形态主要表现为可信密码模块和可信密码服务模块。
3.1.3
完整性度量integritymeasurement
使用密码杂凑算法对被度量对象计算其杂凑值的过程。
3.1.4
可信度量根rootoftrustformeasurement
一个可信的完整性度量单元,是可信计算平台内进行可信度量的基础。
3.1.5
可信存储根rootoftrustforstorage
存储主密钥,是可信计算平台内进行可信存储的基础。
1
GB/T29829—2013
3.1.6
可信报告根rootoftrustforreporting
密码模块密钥,是可信计算平台内进行可信报告的基础。
3.1.7
可信密码模块trustedcryptographymodule
可信计算平台的硬件模块,为可信计算平台提供密码运算功能,具有受保护的存储空间。
3.1.8
TCM服务模块TCMservicemodule
可信计算密码支撑平台内部的软件模块,为对平台外部提供访问可信密码模块的软件接口。
3.1.9
部件component
计算系统中可被度量的硬件和/或软件模块。
3.1.10
平台配置寄存器platformconfigurationregister
可信密码模块内部用于存储平台完整性度量值的存储单元。
3.1.11
完整性度量值integritymeasurementvalue
部件被度量后得到的杂凑值。
3.1.12
完整性基准值predefinedintegrityvalue
部件在可信状态下被度量得到的杂凑值。该值可作为完整性校验的基准。
3.1.13
信任链trustedchain
在计算系统启动和运行过程中,使用完整性度量方法在部件之间所建立的信任传递关系。
3.1.14
可信方trustedparty
提供可信证明的机构,包含可信第三方和主管方。
3.1.15
密钥管理中心keymanagementcentre
用于密钥生成和管理的软硬件系统。
3.1.16
双证书dualcertificate
包括签名证书和加密证书,分別用于签名和数据加密,由可信方一同签发。
3.1.17
实体entity
访问密码支撑平台资源的应用程序和用户。
3.1.18
对象object
可信计算密码支撑平台内可以被实体访问的各类资源,包括密钥数据、运行环境数据、敏感数据等。
3.1.19
SMS4
本标准采用的对称密码算法。
2
GB/T29829—2013
3.1.20
SM2
本标准采用的椭圆曲线密码算法。包括三个子算法:椭圆fill线数字签名算法(SM2-1).椭圆曲线密
钥交换协议(SM2-2)、椭圆曲线公钥加密算法(SM2-3)O
3.1.21
SM3
本标准采用的密码杂凑算法。
3.1.22
HMAC
本标准采用的消息验证码算法。
3.1.23
密码模块密钥TCMendorsementkey
可信密码模块的初始密钥。
3.1.24
平台身份密钥platformidentitykey
可信密码模块的身份密钥。
3.1.25
平台加密密钥platformencryptionkey
可信密码模块中与平台身份密钥关联的加密密钥。
3.1.26
存储主密钥storagemasterkey
用于保护平台身份密钥和用户密钥的主密钥。
3.2缩略语
下列缩略语适用于本文件。
EK:密码模块密钥(TCMEndorsementkey)
KMC:密钥管理中心(KeyManagementCentre)
NV:非易失性(Non-volatility)
PCR:平台配置寄存器(PlatformConfigurationRegister)
PEK:平台加密密钥(PlatformEncryptionkey)
PIK:平台身份密钥(PlatformIdentityKey)
SMK:存储主密钥(StorageMasterKey)
TCM:可信密码模块(TrustedCryptographyModule)
TSM;TCM服务模块(TCMServiceModule)
4可信计算密码支撑平台功能原理
4.1平台体系结构
4.1.1密码与平台功能的关系
密码与平台功能关系如下:
3
GB/T29829—2013
a)平台完整性
利用密码机制,通过对系统平台组件的完整性度量,确保系统平台完整性,并向外部实体可信地报
告平台完整性。
b)平台身份可信
利用密码机制,标识系统平台身份,实现系统平台身份管理功能,并向外部实体提供系统平台身份
证明。
)平台数据安全保护
利用密码机制,保护系统平台敏感数据。其中数据安全保护包括平台自身敏感数据的保护和用户
敏感数据的保护。另外也可为用户数据保护提供服务接口。
密码对平台功能的支撑关系如图1所示。
图1密码与平台功能的关系
4.1.2平台组成结构
可信计算密码支撑平台主要由可信密码模块(TCM)和TCM服务模块(TSM)两大部分组成,其功
能架构如图2所示。
4
GB/T29829—2013
畑*用
如必;
u/iirt-W*W^W半&
itMat务加nsMj
▼台;
対;
予含林安全tra•
*WWH|
JCfTMlH«:■
ll*lXfHN
丁
HK.^
CRTM
11—n—~nr
1•
I浚■“倍!:
::•
11
•111
1>>ti
裤算祛
图2可信计算密码支撑平台功能架构
可信计算密码支撑平台以可信密码模块为可信根,通过如下三类机制及平台自身安全管理功能,实
现平台安全功能:
a)以可信度量根为起点,计算系统平台完整性度量值,建立计算机系统平台信任链,确保系统平
台可信。
b)可信报告根标识平台身份的可信性,具有唯一性,以可信报告根为基础,实现平台身份证明和
完整性报告。
)基于可信存储根,实现密钥管理、平台数据安全保护功能,提供相应的密码服务。
4.1.3可信密码模块
可信密码模块(TCM)是可信计算密码支撑平台必备的关键基础部件,提供独立的密码算法支撑。
TCM是硬件和固件的集合,可以采用独立的封装形式,也可以采用IP核的方式和其他类型芯片集成在
一起,提供TCM功能。其基本组成结构如图3所示。
5
GB/T29829—2013
图3可信密码模块结构
图3中各部件说明如下:
I/O:TCM的输入输出硬件接口;
SMS4引擎:执行SMS4对称密码运算的单元;
SM2引擎:产生SM2密钥对和执行SM2力口/解密、签名运算的单元;
SM3引擎:执行杂凑运算的单元;
随机数发生器:生成随机数的单元;
HMAC引擎:基于SM3引擎的计算消息认证码单元;
执行引擎:TCM的运算执行单元;
非易失性存储器:存储永久数据的存储单元[宀;
易失性存储器:TCM运行时临时数据的存储单元。
4.1.4TCM服务模块
可信密码模块定义了一个具有存储保护和执行保护的子系统,该子系统将为计算平台建立信任根
基,并且其独立的计算资源将建立严格受限的安全保护机制。为防止TCM成为计算平台的性能瓶颈,
将子系统中需执行保护的函数与无需执行保护的函数划分开,将无需执行保护的功能函数由计算平台
主处理器执行,而这些支持函数构成了TCM服务模块,简记为TSMO
TSM主要为用户使用TCM基础资源提供支持,由多个部分组成,每个部分间的接口定义应具有
互操作性WTSM应提供规范化的函数接口。
TSM设计目标:
a)为应用程序调用TCM安全保护功能提供一个入口点;
b)提供对TCM的同步访问;
)向应用程序隐藏TCM所建立的功能命令;
d)管理TCM资源。
4.2密码算法要求
4.2.1概述
本标准涉及的密码算法包括SM2椭圆曲线密码算法、SMS4对称密码算法、SM3密码杂凑算法、
HMAC消息认证码算法、随机数发生器。上述密码算法必须符合国家密码管理局管理要求并在可信密
码模块内实现。
6
GB/T29829—2013
4.2.2SM2
本标准采用的SM2算法,其密钥位长为m(m=256)。
SM2算法包涵:系统参数、密钥对生成、数字签名算法(SM2-1)、密钥交换协议(SM2-2)和加密算法
(SM2-3)共五个部分。
系统参数
SM2算法使用固定的F„域,系统参数如下:
a)F”域的特征”"是加比特长度的素数;
b)Fp中的两个元素a和",它们定义曲线E的方程—.r3+a.r~\~b,a满足4a+27//HO;
c)基点G=(%,w)WE(F”),GHO(()为无穷远点);
d)基点G的阶","是加比特长度的索数。
系统参数说明:
a)p.a.b.xc.yc.和”均为加比特长度的大整数,也可以看作加/8字节长度的字符串。
b)G可以看作一个有序整数对,也可以看作一个m/4+l字节长度的字符串。
c)无穷远点()是一个理想点,不能用有序整数对Cr,y)即仿射坐标表示。
SM2系统参数作为公共参数,可以在所有的平台和系统之间公开共享。
密钥对生成
SM2的密钥对包括私钥(记为〃)和公钥(记为Q),其中〃为小于n~l的一个随机的正整数,Q为
曲线E(FP)上的一个非无穷远点且满足Q=〃G(即连续〃个G点“相加”,简称为“点乘”)。
输入参数:
无
输出参数:
d:私钥
Q:公钥Q=clG
说明:
a)E(F”)上的两个点“相加”是一个较复杂的运算过程(与普通的整数加法不同),()与E(F“)上
的任意点P“相加”结果仍为P,“相加”是一个可结合、可交换的运算。
b)Q=(g,》,q)GE(F”),QH(),可以看作一个有序整数对;
SM2系统参数作为公共参数,可以在所有的平台和系统之间公开共享。
SM2-1数字签名算法
数字签名是书写签名的电子形式。数字签名可以向第三方证明消息是由声称的始发者所签。与书
写签名不同,数字签名要验证消息的完整性。对存储的数据和程序产生数字签名,使得在以后的任何时
刻都可以验证数据和程序的完整性。
数字签名算法流程是由一个签名者对数据产生数字签名,并由一个验证者验证签名的正确性。每
个签名者有一个公钥和一个私钥,其中私钥用于产生签名,验证者用签名者的公钥验证签名的正确性。
在签名的生成和验证过程之前,都要用密码杂凑函数对待签消息M和待验证消息进行杂凑运算。
数字签名的生成算法
输入参数:
M:待签名的消息摘要(M为加比特长度)
〃:签名者的私钥
7
GB/T29829—2013
输出参数:
r:签名的第一部分,小于"的正整数
s:签名的第二部分,小于"的正整数
说明:
r和s均可看作m/8字节长度的字符串。
数字签名的验证算法
输入参数:
M:待验证的消息摘要(M为加比特长度)
r:签名的第一部分,小于"的正整数
s:签名的第二部分,小于"的正整数
Q:签名者的公钥
输出参数:
Res:验证结果,为“真”表示“验证通过”,为“假”表示“验证不通过”
说明:
r和s均可看作;»/8字节长度的字符串。
SM2-3公钥加密算法
SM2-3可提供消息的机密性。
在SM2公钥加密算法中,公钥用于加密,私钥用于解密。
本部分的SM2公钥加密算法包括两个方面:一方面是发送者用接收者的公钥将信息加密成密文;
另一方面是接收者用自己的私钥对收到的密文进行解密还原成原始信息。
可信计算平台中的SM2公钥加密算法用于加密对称密钥和随机数等敏感信息,公钥加密的明文信
息的字节长度是可变的。
加密算法
输入参数:
M:待加密的明文信息
Q:加密密钥(解密方的公钥)
输出参数:
C:密文字节串,C=C1||C2||C3,其中C1为E(F”)上一个点的字节串表示,C2为与M
长度相同的字节串,C3为长度为m/8的字节串。
解密算法
输入参数:
C:密文比特串C=C1IIC2||C3,
d:解密密钥(解密方的私钥)
输出参数:
V:密文有效信息,为“真”表示“密文有效”,输出M,为“假”表示“密文无效”,不输出M。
M:解密的结果,明文信息(与C2的字节长度相同)。
SM2-2密钥交换协议
密钥交换协议是在两个用户A和B之间建立一个共享秘密密钥的协商过程,通过这种方式能够确
定一个共享秘密密钥的值。
设密钥协商双方为A、B,其密钥对分别为(d.A,Q,\)和(山,QQ,双方需要获得的密钥数据的比特
长度为kleno密钥交换协议分为两个阶段。
8
GB/T29829—2013
第一阶段:产生临时密钥对
用户A
调用密钥对产生算法产生一对临时密钥对「A,Ra),将Ra和A的个人信息Ma发送
给B
用户B
调用密钥对产生算法产生一对临时密钥对(r,,将Rb和B的个人信息Mb发送给A
第二阶段:计算共享的密钥数据
用户A
输入参数:
Qa:用户A的公钥
Qb:用户B的公钥
Ra:用户A的临时公钥
Ma:用户A的个人信息
R,用户B的临时公钥
Mb:用户B的个人信息
〃a:Qa对应的用户A的私钥
rA:RA对应的用户A的临时私钥
klen:需要输出的密钥数据的比特长度
输岀参数:
K:比特长度为恕纽的密钥数据
用户B
输入参数:
Qb:用户B的公钥
Qa:用户A的公钥
Rb:用户B的临时公钥
Mb:用户B的个人信息
Ra:用户A的临时公钥
Ma:用户A的个人信息
6/b:Qb对应的用户B的私钥
厂b:Rb对应的用户B的临时私钥
klen:需要输出的密钥数据的比特长度
输岀参数:
K:比特长度为衣幼的密钥数据
4.2.3SM3
本标准规定密码杂凑算法为SM3O对于给定的长度为沧(怡<2"4)的消息,SM3密码杂凑算法经过
填充、迭代压缩和选裁,生成杂凑值。经预处理过的消息分组长度为512比特,本标准选用的杂凑值长
度为256比特。
对分组后的消息迭代压缩:
输入参数:
M:512比特长度的消息
输出参数:
D:256比特长度的摘要
9
GB/T29829—2013
4.2.4HMAC
消息验证码算法:利用密码杂凑算法SM3,对于给定的消息和验证双方共享的秘密信息产生长度
为t个字节的消息验证码,消息验证码产生过程参考FTPSPUB198中的消息验证码产生过程代。
输入参数:
text:消息
Secret_K:双方共享的秘密信息
KJen:双方共享的秘密信息长度
/:消息验证码的长度,不小于16字节,不大于32字节
输出参数:
digest:/个字节的消息验证码
算法描述:
步骤1:如果KJen=Block_Le?i,则Ko:=,跳转执行步骤4;
步骤2:如果K_len>Block_Len,MlJ对K进行杂凑运算得到L个字节,然后拼接上Block_
Len-L个字节0得到Block_Len个字节的K。,即K°:=SM3(K)||00-00,跳转执
行步骤4;
步骤3:如果K_len<Block_Len,则对Secret_K后面拼接字节0得到Block_Len个字节的
Ko,执行步骤4;
步骤4:Ko㊉ipacl;
步骤5:在步骤4的结果后面拼text,BP(Ko©ifiacl)||text;
步骤6:对步骤5的结果进行杂凑运算,即SM3((K°㊉汕加)||text);
步骤7:K°㊉()pad;
步骤8:把步骤6的结果拼接在步骤7的结果后面,即
(Ko㊉opad)||SM3((K()㊉Rat/)||te.it);
步骤9:对步骤8的结果进行杂凑运算,即
SM3((K0㊉。网〃)||SM3((K°㊉汕||text)}
步骤10:把步骤9结果的高/个字节作为结果输出。
4.2.5SMS4
算法简介
本标准规定对称密码算法为SMS4。该算法是一个分组算法,该算法的分组长度为128比特,密钥
长度为128比特。加密算法与密钥扩展算法都采用32轮非线性迭代结构。解密算法与加密算法的结
构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。
加密算法
输入参数:
M:128比特长度的明文信息
K:128比特长度的密钥信息
输出参数:
C:128比特长度的密文信息
解密算法
输入参数:
C:128比特长度的密文信息
10
GB/T29829—2013
K:128比特长度的密钥信息
输出参数:
M:128比特长度的明文信息
使用模式
本标准规定采用CBC模式,IV由用户自定义。
对于数据的最后一个分组,数据需要填充,方法如下:
a)填充完的数据长度必须是16的整数倍;
b)如果最后一个分组缺少dl个字节(0<6/1<16),则在该组后面填充〃1个字节,每个字节内容
均是d1;
c)如果dl=o则填充16个字节,每个字节内容均是160
4.2.6随机数发生器
本标准不规定随机数生成的具体算法,随机数生成算法由可信密码模块制造商设计实现。所生成
的随机数必须为真随机数,并满足国家商用密码随机数检测要求。
4.3功能原理
4.3.1平台完整性
概述
可信计算密码支撑平台利用密码机制,通过对系统平台组件的完整性度量、存储与报告,确保平台
完整性。
完整性度量、存储与报告
完整性度量与存储是指计算部件的度量值,记录该事件到事件日志,并把度量值记入可信密码模块
内相应的平台配置寄存器(PCR)中。
图4为依次度量两个部件的过程。
图4完整性度量流程
11
GB/T29829—2013
完整性度量与存储应满足如下要求:
a)计算度量值的过程应是执行杂凑运算的过程;
b)杂凑运算输入的数据应为度量者指定的可以表征被度量者特性的数据;
)杂凑运算输出的杂凑值即为被度量者的完整性度量值;
d)度量者应把度量值记入指定的PCR中。记入的办法是:新PCR值=密码杂凑算法(原
PCR值||度量值);
e)应把度量过程信息记录到平台事件日志中。至少应记录:度量者信息、被度量者信息、原PCR
值、度量值、新PCR值、完成时间等;
f)如果一个部件序列中的各部件完整性度量值存储在同一个PCR中,则采用一种专门的压缩存
储方式,即从第一个部件开始,将该部件完整性度量值与目标PCR的已有存储值拼,进行杂
凑运算,然后将所得结果再存储于该PCR中,依次类推,最后一个部件的完整性度量值存储操
作完成后,所得值即为该部件序列存储到PCR中的完整性度量值。
完整性报告是指平台向验证者提供平台或部分部件的完整性度量值的过程。
完整性报告应满足如下要求:
a)平台能够向验证者提供指定PCR值,无需任何授权;
b)平台能够向验证者提供指定PCR值以及对PCR值的签名。签名使用平台身份密钥;
)平台可向验证者提供指定PCR的相关事件日志信息;
d)验证者可通过分析完整性度量事件日志信息判断该PCR值是否来自正确的度量过程;
e)验证者应使用平台身份密钥验证PCR值签名,获得平台完整性报告结果。
4.3.1.3信任链
信任链可以保障平台完整性。以PC为例,平台信任链的建立是以可信度量根为起点,首先对
BIOS的其他部件进行完整性度量,并将度量值存储于可信密码模块的PCR中,按照选择的判断机制判
断BIOS的完整性,若完整性未被破坏,则运行BIOS;并度量初始化程序加载器(InitialProgramLoad
er—IPL)/主引导分区(MasterBootRecord-MBR)的完整性,基于判断机制判断IPL/MBR完整性,
若IPL/MBR完整性没有被破坏,则运行MBR;然后由IPL/MBR度量()S内核的度量与修复部件的完
整性,若该部件完整性未被破坏,则由该部件度量OS内核的完整性,若未被篡改,则运行OS内核。OS
内核启动后基于同样机制检测OS服务完整性,通过信任关系传递,可以确保所启动的系统是可信的。
系统运行时可以设置一个平台防护模块,用于检测应用程序或进程的完整性,确保应用程序或进程的可
信性
若上述过程中,发现某一部件的完整性受到破坏,则报告问题并按照指定策略执行相关操作。
4.3.1.4向外部实体证实平台完整性
平台可向外部实体提供完整性报告,所报告的度量值作为判断平台可信性的依据。
报告完整性度量值时,平台身份密钥应对完整性度量值进行数字签名,接收方通过验证签名有效性
以及校验完整性度量值来判断该平台的可信性。
外部实体可以向平台请求验证平台的完整性。一个参考的验证流程如下:
a)平台按如下方式报告其完整性
1)平台启动后,外部实体向平台发送完整性度量报告的请求;
2)可信密码模块收集PCR的值,使用平台身份密钥(PIK)对PCR的值进行签名;
3)平台将PCR的值,PIK对PCR值的签名和PIK证书发送给验证者。
b)验证者验证平台完整性
1)验证者得到平台发送的PCR值,PIK对PCR值的签名和PIK证书;
12
GB/T29829—2013
2)验证者验证PIK证书;
3)验证者验证PCR值的签名;
4)验证者对PCR的值与平台的完整性基准值进行比较,若相同,则表明当前平台处于可信
状态。
4.3.2平台身份可信
4.3.2.1平台身份标识
可信计算密码支撑平台采用密码模块密钥(EK)标识其身份,在平台所有者授权下,在TCM内部
生成一个SM2密钥对,作为平台身份密钥(PIK),用于对TCM内部的信息进行数字签名,实现平台身
份认证和平台完整性报告,从而向外部证实平台内部数据的可信性。
密码模块密钥(EK)是唯一的,必须被保存在TCM内,仅仅在获取平台所有者操作及中请平台身
份证书时使用,且不得被导岀TCM外部。
密码模块证书符合X.5O9V3标准,在平台使用前由一个可信方签署,确保其可信性,用于建立密码
模块密钥与可信密码模块的一一对应关系。
密码模块证书格式见附录A。
一个可信计算密码支撑平台可以产生多个PIK,每个PTK均与EK绑定,对外代表平台身份。
平台身份证书及其对应的平台加密证书由可信方提供,符合X.5O9V3标准,用于验证平台身份密
钥(PIK)私钥对PCR值的签名,证书格式及说明参见附录A。
平台身份建立
.1获得平台所有权
生成密码模块密钥(EK)后,才可以创建平台所有者,取得平台所
推荐标准
- SN/T 5041-2018 猫泛白细胞减少症检疫技术规范 2018-03-12
- SN/T 5091-2018 商品化试剂盒检测方法 副溶血性弧菌 方法一 2018-03-12
- SN/T 5090.2-2018 商品化试剂盒检测方法 霉菌和酵母菌 方法二 2018-03-12
- SN/T 0695-2018 出口植物源食品中嗪氨灵残留量的测定 2018-03-12
- SN/T 5092-2018 商品化试剂盒检测方法 霍乱弧菌 方法一 2018-03-12
- SN/T 3033-2018 出口燕窝的分子生物学真伪鉴别方法 实时荧光PCR法和双向电泳法 2018-03-12
- SN/T 2521-2018 单核细胞增生李斯特氏菌血清分型方法 2018-03-12
- SN/T 0348.2-2018 出口茶叶中三氯杀螨醇残留量检测方法 第2部分:液相色谱法 2018-03-12
- SN/T 2552.1-2018 出口乳及乳制品卫生微生物学检验方法 第1部分:取样指南 2018-03-12
- SN/T 5046-2018 进出口饲料中丁基羟基茴香醚的测定 气相色谱-质谱法 2018-03-12