首页 购物车 询价
www.GB-GBT.com

[PDF] GM/T 0012-2020 - 自动发货. 英文版

标准搜索结果: 'GM/T 0012-2020'
标准号码内文价格美元第2步(购买)交付天数标准名称状态
GM/T 0012-2020 英文版 1820 GM/T 0012-2020 3分钟内自动发货[PDF] 可信计算可信密码模块接口规范 有效

基本信息
标准编号 GM/T 0012-2020 (GM/T0012-2020)
中文名称 可信计算可信密码模块接口规范
英文名称 Trusted computing -- Trusted computing interface specification of trusted cryptography module
行业 Chinese Industry Standard (推荐)
中标分类 L80
字数估计 133,131
发布日期 2020-12-28
实施日期 2021-07-01
旧标准 (被替代) GM/T 0012-2012
标准依据 国家密码管理局公告第41号
发布机构 国家密码管理局

GM/T 0012-2020: 可信计算可信密码模块接口规范 GM/T 0012-2020 英文名称: Trusted computing -- Trusted computing interface specification of trusted cryptography module 中华人民共和国密码行业标准 代替GM/T 0012-2012 可信计算 可信密码模块接口规范 国家密码管理局 发 布 1 范围 本文件描述了可信密码模块的功能,详细定义了可信密码模块的命令接口。 本文件适用于可信密码模块相关产品的研制、生产、测评与应用开发。 2 规范性引用文件 下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文 件,仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于 本文件。 GB/T 20518 信息安全技术 公钥基础设施 数字证书格式规范 GB/T 29829 信息安全技术 可信计算密码支撑平台功能与接口规范 GB/T 32905 信息安全技术 SM3密码杂凑算法 GB/T 32907 信息安全技术 SM4分组密码算法 GB/T 32915 信息安全技术 二元序列随机性检测方法 GB/T 32918(所有部分) 信息安全技术 SM2椭圆曲线公钥密码算法 5 可信密码模块功能概述 5.1 可信计算平台 可信计算平台主要由TCM和TSM两大部分组成,其功能架构见图1。 注:图1中TCM服务模块和应用软件以灰色图绘制,表示非本文件重点内容。 可信计算平台以可信密码模块为可信根,通过如下三类机制及平台自身安全管理功能,实现平台安 全功能: a) 以可信度量根为起点,计算系统平台完整性度量值,建立计算机系统平台信任链,确保系统平 台可信。 b) 可信报告根标识平台身份的可信性,具有唯一性,以可信报告根为基础,实现平台身份证明和 完整性报告。 c) 基于可信存储根,实现密钥管理、平台数据安全保护功能,提供相应的密码服务。 可信计算平台利用可信密码模块内的密码机制,通过对系统平台组件的完整性度量、存储与报告, 确保平台完整性。 完整性度量与存储是指计算部件的度量值,记录该事件到事件日志,并把度量值记入可信密码模块 内相应的平台配置寄存器(PCR)中。 可信计算密码支撑平台功能原理相关内容按照GB/T 29829相关章节执行。 图2为依次度量两个部件的过程。 完整性度量与存储应满足如下要求: a) 计算度量值的过程应是执行杂凑运算的过程; b) 杂凑运算输入的数据应为度量者指定的可以表征被度量者特性的数据; c) 杂凑运算输出的杂凑值即为被度量者的完整性度量值; d) 度量者应把度量值记入指定的PCR中。记入的办法是:新PCR值=密码杂凑算法(原PCR 值||度量值); e) 应把度量过程信息记录到平台事件日志中。至少应记录:度量者信息、被度量者信息、原PCR 值、度量值、新PCR值、完成时间等; f) 如果一个部件序列中的各部件完整性度量值存储在同一个PCR中,则采用一种专门的压缩存 储方式,即从第一个部件开始,将该部件完整性度量值与目标PCR的已有存储值拼接,进行杂 凑运算,然后将所得结果再存储于该PCR中,依次类推,最后一个部件的完整性度量值存储操 作完成后,所得值即为该部件序列存储到PCR中的完整性度量值。 完整性报告是指平台向验证者提供平台或部分部件的完整性度量值的过程。 完整性报告应满足如下要求: a) 平台能够向验证者提供指定PCR值,无需任何授权; b) 平台能够向验证者提供指定PCR值以及对PCR值的签名。签名使用平台身份密钥; c) 平台可向验证者提供指定PCR的相关事件日志信息; d) 验证者可通过分析完整性度量事件日志信息判断该PCR值是否来自正确的度量过程; e) 验证者应使用平台身份密钥验证PCR值签名,获得平台完整性报告结果。 5.2 可信密码模块 TCM是可信计算密码支撑平台必备的关键基础部件,提供独立的密码算法支撑。TCM 是硬件和 固件的集合,可以采用独立的封装形式,也可以采用IP核的方式和其他类型芯片集成在一起,提供 TCM功能。其结构见图3。 各部件说明: 非易失性存储器:存储永久数据的存储单元; 易失性存储器:TCM运行时临时数据的存储单元; 随机数发生器:生成随机数的单元; 内部总线:可信密码模块内部数据传输的总线; I/O:TCM的输入输出硬件接口; 对称算法引擎:执行对称密码运算的单元; 非对称算法引擎:产生非对称密钥对和执行非对称加/解密、签名运算的单元; HMAC引擎:基于杂凑引擎的计算消息认证码单元; 杂凑算法引擎:执行杂凑运算的单元; 执行引擎:TCM的运算执行单元。 6 可信密码模块功能接口 6.1 通用要求 本章节规定了可信密码模块功能接口的具体命令。本文件所定义的可信密码模块应满足本章节所 有的命令接口。 6.3.3 TCM2_GetTestResult 该命令返回TCM自检结果,outData的结构由厂商自定义。 该命令接口输入和输出参数及说明见表9和表10。 6.4 会话命令 6.4.1 TCM2_StartAuthSession 该命令用于启动一个授权会话,返回会话句柄及tcm初始的nonce值,该命令提供了两种方式建立 会话密钥(sessionKey),会话密钥被用于授权操作和加密参数。 该命令允许用对称或非对称保护方式往 TCM 注入秘密信息。TcmKey的类型决定如何加密 encryptedSalt中的值。从encryptedSalt中解密出来的值用于计算会话密钥(sessionKey)。 注:当tcmKey等于TCM2_RH_NULL,encryptedSalt为空值。 当tcmKey和bind都为TCM2_ALG_NULL,会话密钥设置为空值,当tcmKey不为TCM2_ALG_ NULL,encryptedSalt参数用于计算会话密钥。当bind不是TCM2_ALG_NULL,bind参数的授权值 参与会话密钥的计算。 该命令接口输入和输出参数及说明见表11和表12。 6.4.2 TCM2_PolicyRestart 该命令使增强授权会话返回到初始状态。当TCM返回TCM2_RC_PCR_CHANGED时该命令将 会被使用。该命令不会重置policyID或者策略开始的时间。 该命令接口输入和输出参数及说明见表13和表14。 6.5 对象命令 6.5.1 TCM2_Create 该命令用于创建一个可以被TCM2_Load命令载入TCM 内部的对象,如果命令执行成功,TCM 将创建新对象,并返回对象的创建数据(creationData)、公开部分(outPublic)和加密敏感区域(outPri- vate),返回的数据由调用者负责保存。该对象使用之前需要调用TCM2_Load命令载入TCM。 该命令接口输入和输出参数及说明见表15和表16。 6.5.2 TCM2_Load 该命令用于将一个对象载入 TCM 中,只有当对象的公开部分(TCM2B_PUBLIC)和隐私部分 (TCM2B_PRIVATE)都需要被载入TCM时此命令才被使用。如果只有公开部分被载入TCM,TCM2 _LoadExternal命令将被使用。 此命令将返回被载入对象的句柄和名字,名字是由TCM 计算的inPublic结构的TCMT_PUBLIC 成员的摘要值。 如果对象的隐私数据部分inPrivate.size为0,加载将失败。 该命令接口输入和输出参数及说明见表17和表18。 6.5.3 TCM2_LoadExternal 此命令用于将一个非保护性的对象载入TCM,该命令允许载入对象的公开部分、用于验证签名,或 者既载入对象的公开部分又载入隐私部分,用于加密操作。此命令将返回载入对象的句柄和名字,名字 是摘要算法nameAlg和对象公开数据部分摘要值的级联。 当只载入一个外部对象的公开部分时,允许制定一个对象关联的层级,这样创建票据时可使用正确 的算法,hierarchy参数指定了这个层级,如果对象的公开部分和隐私部分都被载入,hierarchy参数被要 求是TCM2_RH_NULL。 该命令接口输入和输出参数及说明见表19和表20。 6.5.4 TCM2_ReadPublic 该命令返回一个已载入对象的公开数据部分,该对象句柄的使用不需要授权信息。 如果objectHandle引用序列对象,则TCM应返回TCM2_RC_sequence。 该命令接口输入和输出参数及说明见表21和表22。 6.5.5 TCM2_ActivateCredential 该命令给指定的对象关联一个凭证,确保TCM已经认证了该对象的参数。 如果参数activateHandle和 KeyHandle的公开部分和隐私部分都没有被加载,则 TCM 返回 TCM2_RC_AUTH_UNAVAILABLE。 对ActivateHandle的授权要求管理员身份。 与keyHandle关联的密钥用于从secret恢复种子,即加密种子。与activateHandle关联的对象的 名称和恢复的种子在 KDF中用于恢复对称密钥。恢复的种子(而不是名称)在 KDF中用于恢复 HMAC密钥。 HMAC被用来认证输入参数credentialBlob是否与activateHandle相关联,且credentialBlob中的 数据没有被改变。 如果credentialBlob数据的完整性检查成功,credentialBlob被解密,作为输出参数certInfo返回。 该命令接口输入和输出参数及说明见表23和表24。 6.5.6 TCM2_MakeCredential 该此命令允许TCM执行证书颁发机构(CA)在创建包含激活凭据的TCM2B_ID_OBJECT时所需 的操作。 输入参数handle的公开区域要求是存储密钥类型,否则凭证不能被正确的绑定。 该命令接口输入和输出参数及说明见表25和表26。 6.5.7 TCM2_Unseal 该命令返回一个被载入TCM的封装数据对象的相关数据。 这个封装数据对象可是TCM自己产生的,但更有可能是外部创建,通过TCM2_Import导入TCM 的。该命令的返回值通过授权会话加密。 如果封装数据对象属性中的restricted,decrypt或sign位被设置为1,则TCM 返回TCM2_RC_ ATTIBUTES。如果对象的类型不是TCM2_ALG_KEYEDHASH,则TCM返回TCM2_RC_TYPE。 该命令接口输入和输出参数及说明见表27和表28。 6.5.8 TCM2_ObjectChangeAuth 此命令用于更改TCM驻留对象的授权机密。如果命令执行成功,则返回与objectHandle关联的 TCM驻留对象的新专用区域,其中包括新的授权值。此命令不会更改其操作所在的TCM常驻对象的 授权。因此,如果需要,在生成响应HMAC密钥时使用(TCM驻留对象的)旧authValue。 此命令不能改变一个NV索引对象的授权值。 如果NV索引要有新的授权,则使用TCM2_NV_ChangeAuth()完成。 如果要改变一个主要对象的授权值需要调用TCM2_CreatePrimary命令重新创建该对象。 该命令接口输入和输出参数及说明见表29和表30。 6.6 复制命令 6.6.1 TCM2_Duplicate 该命令复制一个已加载的对象使得该对象可以被用在不同的层次上。新的父密钥可能在相同的 TCM中,也可能在不同的TCM中,也可能是TCM2_RH_NULL。该命令只要求新的父密钥的公开部 分被加载。 此命令需要一个策略会话的授权。如果TCM2_PolicyCpHash作为策略的一部分已经被执行,则 策略会话的cpHash值应与命令的cpHash值相等,否则TCM返回TCM2_RC_POLICY_FAIL。 该命令接口输入和输出参数及说明见表31和表32。 6.6.2 TCM2_Rewrap 该命令允许TCM充当复制权限的角色。 如果使用了提供的oldParent的正确授权,则从inSymSeed恢复 HMAC密钥和对称密钥,并用于 完整性检查和对inDuplicate进行解密。根据适用于newParent的方法生成新的保护种子值,并对blob 重新加密并计算新的完整性值。重新加密的blob在outDuplicate中返回,对称密钥在outSymKey中 返回。 该命令接口输入和输出参数及说明见表33和表34。 6.6.3 TCM2_Import 该命令允许一个对象被一个存储密钥的对称加密值加密。加密之后,该对象可被载入,并在一个新 的层级上使用。被导入的对象可被一次或多次加密,或者没有加密。 被导入对象隐私部分的恢复分为三步: a) 如果外层对称加密存在,则进行外层解密:用于产生 HMAC密钥和加密密钥的种子用父密钥 的私钥恢复,这些密钥......
相关标准:     GM/T 0005-2021     GM/T 0013-2021     GM/T 0022-2014
英文版PDF:GM/T 0012-2020     GM/T 0012-2020  GM/T0012  GMT0012   GM/T 0012-2012  GM/T0012  GMT0012   GA/T 1389-2017  GA/T1389  GAT1389