GB/T36644-2018

信息安全技术数字签名应用安全证明获取方法

Informationsecuritytechnology—Methodsforobtainingsecurityattestationsfordigitalsignatureapplications

本文分享国家标准信息安全技术数字签名应用安全证明获取方法的全文阅读和高清PDF的下载,信息安全技术数字签名应用安全证明获取方法的编号:GB/T36644-2018。信息安全技术数字签名应用安全证明获取方法共有29页,发布于2019-04-01
  • 中国标准分类号(CCS)L80
  • 国际标准分类号(ICS)35.040
  • 实施日期2019-04-01
  • 文件格式PDF
  • 文本页数29页
  • 文件大小2.19M

以图片形式预览信息安全技术数字签名应用安全证明获取方法

信息安全技术数字签名应用安全证明获取方法


国家标准 GB/T36644一2018 信息安全技术 数字签名应用安全证明获取方法 Informationsecuritytechnology一 Methodsforobtainingseeurityattestationsfordigitalsignatureapplieatons 2018-09-17发布 2019-04-01实施 国家市场监督管理总局 发布 币国国家标准化管理委员会国家标准
GB/36644一2018 目 次 前言 引言 范围 2 规范性引用文件 术语和定义 缩略语 数字签名应用安全证明获取 概述 5.2私钥拥有属性的安全证明获取 5.2.1证明时刻确定的私钥拥有属性安全证明获取时效模型 5.2.2证明时刻不确定的私钥拥有属性安全证明获取时效模型 5.2.3私钥拥有属性安全证明获取过程 具体的私钥拥有属性安全证明获取流程 5.3公钥有效性的安全证明获取 总则 5.3.1 5.3.2拥有者的公钥有效性安全证明获取 l0 ll1 5.3.3验证者的公钥有效性安全证明获取 公钥有效性验证过程 5.3.4 1l 5.!数字签名的生成时间安全证明获取 1l 总则 5.4.1 1l 从TTsA获取时间的方式获取签名生成时间证明 1 5,4.2 用验证方提供的数据获得签名生成时间证明 20 5.4.3 附录A(资料性附录)SM2签名算法公钥有效性获取流程 24 参考文献 25
GB/36644一2018 前 言 本标准按照GB/T1.1一2009给出的规则起草 请注意本文件的某些内容可能涉及专利 本文件的发布机构不承担识别这些专利的责任 本标准由全国信息安全标准化技术委员会(SAC/TC260)提出并归口 本标准起草单位:科学院数据与通信保护研究教育中心,科学院软件研究所,重庆大学 本标准主要起草人:王跃武、刘丽敏、吕娜、张严、荆继武、雷灵光、牛莹姣、刘志娟、向宏、夏晓峰、 周垄、夏鲁宁
GB/T36644一2018 引 言 参与数字签名生成或验证的实体取决于过程的真实性,该真实性可以通过获取私钥拥有属性的安 全证明、公钥有效性的安全证明、数字签名的生成时间来保证 本标准旨在规定一套数字签名应用安全 证明获取方法,用以规范数字签名应用安全证明过程,主要应用于需要提供数字签名生成过程安全性和 对签名生成时间有明确要求的签名应用场景 本标准在制定的过程中参考了NISTSP800-89《数字签名应用安全保证获取建议》和NISTSP 800-102《数字签名适时性证明获取建议》 本标准与两个参考标准在技术内容上保持一致,但忽略了其 与美国具体的签名算法标准相关部分,强调了安全证明获取的一般过程 此外,本标准将参考标准中与 密码相关的术语和规定改成了与我国密码政策相符的规定 IN
GB/36644一2018 信息安全技术 数字签名应用安全证明获取方法 范围 本标准规定了一套数字签名应用安全证明获取方法,用以规范数字签名应用安全证明过程 本标准适用于需要提供数字签名生成过程安全性和对签名生成时间有明确要求的签名应用场景 规范性引用文件 下列文件对于本文件的应用是必不可少的 凡是注日期的引用文件,仅注日期的版本适用于本文 件 凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件 信息安全技术公钥基础设施时间戳规范 GB/T205202006 GB/T250692010信息安全技术术语 GB/T32918.1一2016信息安全技术SM2椭圆曲线公钥密码算法第1部分:总则 GB/T32918.2一2016信息安全技术SM2椭圆曲线公钥密码算法第2部分;数字签名算法 术语和定义 GB/T250692010界定的以及下列术语和定义适用于本文件 3.1 公钥有效性证明attestationofpubliekeyvaliaity 证明用于验证签名的公钥的有效性的证据 3.2 私钥拥有属性安全证明attestationofprivatekeypossession 证明声称的签名者确实实际拥有用于生成签名的私钥的证据 3.3 证明消息attestationmessage 用于获取私钥拥有属性安全证明的,具有特定格式的消息 3.4 证明签名 attestatiomsignature 作用于证明消息的数字签名 3.5 证明时间attestationtimme 私钥拥有属性安全证明获取的时间 3.6 证明水平attestationlevel 私钥拥有属性安全证明的可信程度,分为高、中、低三个层次,依赖于证明获取的手段
GB/T36644一2018 3.7 请求验证签名signatureinquestiom 请求私钥拥有属性安全证明的一个签名 3.8 签名生成时间证明attestationofsignaturetimelimess 证明一个数字签名确实是在一个时间点之前、之后或者是在两个时间点之间生成的证据 3.9 时间戳机构timestampauthority 用来产生和管理时间戳的权威机构 [GB/T20520一2006,定义3.37 3.10 可信时间戳机构 trustedtimestammpauthority 被签名者、验证者以及其他签名依赖方相信的时间戳机构 缩略语 下列缩略语适用于本文件 TsP;时间截戳数据包(TimeStampPacket TsT;时间戳令牌(TimstampToken)y TTP;可信第三方(TrustedThirdParty TTsA;可信时间戳机构(TrustedTimeStampAuthority 数字签名应用安全证明获取 S 5.1概述 本标准凡涉及密码算法的相关内容,按国家有关法规实施;凡涉及到采用密码技术解决保密性、完 整性、真实性、不可否认性需求的须遵循密码相关国家标准和行业标准 本标准明确了获取数字签名生成和验证环节的有效性证明方法 每一个数字签名者都拥有一对公 私钥对,并且该签名者就是这对公私钥对的拥有者 私钥用于数字签名的生成,公钥用于数字签名的验 证过程 数字签名生成、验证过程的安全证明获取包括;私钥拥有属性的安全证明获取、公钥有效性的 安全证明获取和数字签名的生成时间安全证明获取 私钥的拥有者是指被授权使用公私钥对中的私钥来进行数字签名生成的实体 生成的数字签名可 以被对应的公钥进行验证 被授权使用私钥生成签名并不意味着拥有者确实知道正确的私钥 因此 在拥有者进行数字签名之前,需要获取私钥拥有属性的安全证明 根据签名公私钥对生成方式的不同,私钥被知道的方式可以分为如下5种 拥有者自己生成和维护公私钥对.仅由拥有者知道私钥 a b) 拥有者在TTP的帮助下生成公私钥对,但是私钥只能由拥有者知道; 公私钥对由TTP生成后提供给拥有者,拥有者和TTP同时知道私钥 c 公私钥对采用方式a)生成,生成后提供给充当密钥服务器的TTP,这样拥有者和TTP同时知 d 道私钥 公私钥对采用方式b)生成,生成后提供给充当密钥服务器的TTP,这样拥有者和充当密钥服 务器的TP同时知道私钥 后三种方式下,需要建立在TTP不会用私钥生成数字签名的信任之上 公私钥对拥有者、签名验
GB/36644一2018 证者以及其他签名依赖方要能够共享这个信任 方式e),d),e)相对于方式a),b),其私钥拥有属性安 全证明的可信程度较低 私钥拥有属性安全证明的使用场景如下: 公私钥对拥有者在签名生成之前或者同时需要获得私钥拥有属性的安全证明; 验证者接受数字签名之前或者同时需要获得私钥拥有属性安全证明 此场景下,在获得私钥 拥有属性安全证明之前,要完成生成签名的公私钥对拥有者的身份鉴别 TTP向其他各方提供公私钥对拥有者的私钥拥有属性安全证明 此场景下,TTP在获得私钥 拥有属性安全证明之前,要首先完成拥有者的身份鉴别 获取的私钥拥有属性安全证明是有时效性的 以下私钥拥有属性安全证明获取时效模型可以用于 私钥拥有属性安全证明水平评估 5.2私钥拥有属性的安全证明获取 5.2.1证明时刻确定的私钥拥有属性安全证明获取时效模型 私钥拥有属性安全证明的获取要在一个特定的时间点完成,该时间点被称为证明时刻 随着时间 的流逝,可能会发生一些事件,对私钥拥有属性安全证明产生负面影响 随着时间流逝的增加,发生这 些事件的概率也将增加,安金证明水早将会因为这些事件的发生而降低 因此合理地推断证明时刻之 -段时间,证明水平是必要的 后 图1描述了私钥拥有属性安全证明的证明水平随时间变化的模型 签名依赖方所在的组织可以根 据该模型对安全证明的证明水平做出判断 在图1中,l为私钥拥有属性安全证明的证明时刻 a,b c的值由签名依赖方所在的组织根据自己的安全需求选择 证明水平 高 时间 1+h I十he 图1私钥拥有属性安全证明水平随时间变化的通用模型 和b是1八前后的两个时间段,在这个模型中,一a和t十力这两个时间点内,获得的私钥拥有属 性安全证明具有高的证明水平 签名依赖方所在的组织根据安全策略,选择不同的a,值控制对证明 的信任程度 是tA十b之后的一个时间段,在这段时间内,私钥拥有属性安全证明的证明水平逐渐从高降到 低 在'十b十c之后的时间里,私钥拥有属性安全证明的证明水平一直为低 在私钥拥有属性安全证明的证明水平降为低之后,如果仍需要高的证明水平,需要重新进行私钥拥 有属性安全证明的获取 5.2.2证明时刻不确定的私钥拥有属性安全证明获取时效模型 理想情况下,证明时刻是一个确定的值 然而,实际应用中,准确地确定证明时刻存在一定的困难, 通常会用一个估计值代替 这个估计值是用一个包含证明生成时刻的一个时间段表示 证明时刻不确 定的私钥拥有属性安全证明如图2所示
GB/T36644一2018 证明水平 高/中 时间 a- +(-切 t(h-)+e 图2基于证明时刻估值的私钥拥有属性安全证明时效模型 a.b,的定义同5.2.1,其他参数定义如下 证明签名的生成时刻; 被依赖方信任超前于,的证明生成时刻 被依赖方信任滞后于t,的证明生成时刻; 和ta之间的差值; 指定的证明时刻,并且应满足ti<1八<.,为了方便起见,可以指定=ti,或者tA=t ,b,c 和d,由签名依赖方或者其所在的组织,在考虑如下因素的基础上确定: 的值根据组织策略对数字签名的安全证明的要求确定,同时还要考虑所采用的私钥拥有 a.bc 属性安全证明获取过程的难易程度; 的值应该小于a和b中最小值的一半,即d<1/2min(a,b),并且d的确定还要考虑签名获 取时刻a的误差估计 此外,d的确定还要考虑安全证明在网络上安全传输的时间 根据估计的私钥拥有属性安全证明获取时刻'A,依赖方可以确定不同时间的证明水平的级别 如 图2所示,在tA一 -d)和tA+(b-d)时刻内,获取的安全证明具有高或者中的证明水平,这取决于 -(a 安全证明的获取过醒 l+(6一d)之后,证明水平逐步降低,在+(w一d)十 时刻,安全证明水平降 到低 之后,安全证明水平将一直为低 如果策略要求需要高的安全证明水平,则需要重新获得安全 证明 具体的安全证明时效模型参数确定见5.2.4 5.2.3私钥拥有属性安全证明获取过程 5.2.3.1总则 私钥拥有属性安全证明可以用如下一种或多种方法得到 私钥拥有者用私钥签发一个新的数字签名,然后用其对应的公钥进行验证; a b 重新生成一次公私钥对,然后把它与拥有者当前拥有的公私钥对进行比对; 用公私钥对中的一个密钥重新生成另一个密钥,然后将新生成的密钥与拥有者拥有的对应密 钥进行充分地比对 重新生成密钥的私钥拥有属性安全证明获取方法,只适用于公私钥对拥有者或者被拥有者信任可 以知道私钥信息的TTP 公私钥对拥有者获取私钥拥有属性安全证明可以独立完成,或者与TTP合作完成 TTP获取私钥拥有属性安全证明需要与公私钥对拥有者合作完成 签名依赖方可以从TTP获取私钥拥有属性安全证明,或者与拥有者合作获取证明 私钥拥有属性安全证明获取的时刻要尽可能精确地被记录下来 确定证明获取的精确时刻可以有
GB/36644一2018 多个时间源 以下是一些可信程度依次降低的时间源: 由获取私钥拥有属性安全证明的实体、实体所在的组织以及其他依赖各方所信任的TTP提供 可信时间戳作为时间源; 由获取私钥拥有属性安全证明的实体认可其精度的一个时钟作为时间源; 由精度不可知的时钟作为时间源 无论采用何种时间源,都需要让证明依赖方知道,以判断证明获取时间的可信性 5.2.3.2利用数字签名获取私钥拥有属性安全证明 5.2.3.2.1证明消息 利用数字签名获取私钥拥有属性安全证明是指用验证特定格式消息数字签名的方式来获取私钥拥 有属性安全证明,该方法适用于公私钥对拥有者、TTP或者其他依赖方获得私钥拥有属性安全证明 当采用数字签名方式获得私钥拥有属性安全证明时,获取证明的实体将会被分配给一个拥有属性 安全证明消息,简称为证明消息 然后由私钥拥有者对该消息进行签名,该签名称为证明签名 证明消息应包括下列信息 a 签名者身份标识; 潜在的验证者身份标识 b 时间截令牌TsT,该TsT由所有依赖方都信任的可信时间戳机构(TTsA)生成 TST可以 c 由签名者从TTsA获取,也可以由潜在的验证者从TTsA获取,之后传给签名者 所有依赖 方都应认可TTSA的签名安全强度; d -个验证者提供的随机数(nonce)值 如果选择了 e,则nonce值的随机性要等于或者超 o7nce 过要获取证明的私钥的随机性 如果证明消息不包含TST,而依赖方又要求在验证证明签名 时,记录证明时间,则nonce值需要包含一个由验证者提供的时间戳,标示该nonce值提供给 证明消息的时间 证明消息中私钥对应的公钥展示信息不是必要的 但是该公钥展示信息的包括与否,要严格根据 如下的描述决定 如果生成证明签名的签名者能够在获取证明消息之前,成功展示公钥,该公钥信息可以从证明 消息中去除 如果证明消息中包含TST,公钥展示应在TST标示的时刻之前 如果没有TST,公钥展示应 nonce值中包含的时刻之前;如果没有TST,并且once值中不包含时间,应出示能够被各方 在 信任的证据证明公钥展示在证明签名生成之前 公钥可以以一个包含时间戳的证书展示; 公钥还可以以签名者此前签发的一个签名的方式展示 该签名签发所用的私钥应与获取证明 的私钥一致,即可以用相同的公钥验证 该签名的签发时间要早于证明消息发送给签名者的 时间; 公钥展示还可以在证明签名验证者向签名者提供 值之前,向验证者公开公钥的方式 71o71ce 实现 如下附加信息可以包含在证明签名签发之后的证明消息里 个明确的标识,表示该消息是用来获取私钥拥有属性安全证明的; nonce值,noce 证明签名签发者提供的 值包含一个随机部分,其随机性不低于或者要高于获 取证明的私钥; 或其他的由证明签名签发者提供给验证者的数据 任何包含了上述所需信息的消息,都可以用来作为证明消息 证明消息被要获取证明的私钥进行
GB/T36644一2018 签名生成证明签名 证明签名需要在TST, 值或者以其他形式提供的时刻立即生成 .nce 5.2.3.2.2指定证明时间 在证明签名成功验证后,需要给证明时间指定一个值 证明时间的指定受证明消息的格式影响,同时也受包括证明签名生成时间t的和.的选择的 影响 如5.2.2所述1是超前或者等于证明签名生成时刻的一个时间点 t的几种可能赋值如下 如果证明消息中包括了来自依赖方信任的TTSA的时间戳,则时间戳中的时间可以作为赋 a 值的候选; b 如果证明消息中包含了验证者提供时间,例如, 值中包含的时间,则该时间可以作为t noce 赋值的候选; 如果证明消息中包含一个验证者提供的 no7nce 值,并且记录了 nonce值第一次提供给证明签 名签发者的时间,则该时间可以作为t赋值的候选 依赖方从上述的1赋值候选中选择他们认为最可信的时间源为4赋值 在可信程度相等的情况 下,应该优先选择最晚的时间为t赋值 如522所述是滞后或者等于证明签名生成时刻的一个时间点 /的儿种可能赋值如下 如果证明签名生成时刻被包含在一个所有依赖方都信任的TTsA签发的TST内,则包含在 TsT中的时间可以作为t,赋值的候选 如果验证者记录了证明签名的接收时间,则该记录的时间可以作为,赋值的候选; 如果验证者记录了证明签名被验证的时间,则该记录的时间可以作为t赋值的候选 依赖方从上述的去赋值候选中选择他们认为最可信的时间源为t,赋值 在可信程度相等的情况 下,应该优先选择最早的时间为t赋值 如果证明签名已被成功验证通过,并且依赖方已经确定了证明时间的误差精度d,则可以按照如下 的方法估计证明时间t 如果t一tid,则私钥拥有属性安全证明没有获得,不用赋值给证明时间tA 如果证明签名不能被验证通过,则私钥拥有属性安全证明没有获得,不用赋值给证明时间t 5.2.3.2.3指定初始证朋水平 证明签名被验证通过和证明时间指定完成后,需要指定证明的初始水平 证明初始水平指定按如 下方法完成: 如果证明时间t是从依赖方信任的TTSA提供的TST中获得,那么最初的证明水平被置 a 于高 如果证明时间tA不是从依赖方信任的TTSA提供的TST中获得,而是从证明签名验证者提 b 供的一个精度被依赖方信任的时间源获得,那么最初的证明水平被置于中; 如果证明时间1A不是从依赖方信任的TTSA提供的TST中获得,而是从证明签名验证者提 供的一个时间源获得,并且该时间源的精度对依赖方不可知,那么最初的证明水平被置于低 5.2.3.3通过密钥再生获取私钥拥有属性安全证明 密钥再生可以由公私钥对拥有者或者被提供公私钥对的TTP完成 密钥再生要在与原始密钥对生成环境不同的环境下,用不同于原始密钥对生成方法的方法生成一 个或者一对密钥 在后续再次获取私钥拥有属性安全证明时,密钥再生可以采用与第一次密钥再生相
GB/36644一2018 同的环境和流程完成 私钥拥有属性安全证明获取只有在再生的密钥与拥有者拥有的密钥相同的情况下才能获取 密钥再生的过程与具体的签名算法相关,可以参考对应的算法标准 通过密钥再生获取私钥拥有属性安全证明,同样需要指定证明时间和初始证明水平,具体过程见 5.2.3.2.2和5.2.3.2.3 5.2.3.4普通签名的私钥拥有属性安全证明确定 本部分描述如何判断一个普通消息签名所对应的私钥拥有属性安全证明水平 普通消息一般不会 充分满足5.2.3中的证明消息的各项要求 可以用签发该普通消息签名的私钥的私钥拥有属性安全证 明来确定该普通消息签名的安全证明水平 普通消息签名安全证明获取可以在其对应私钥的私钥拥有属性安全证明的证明时间之前,同时或 者之后生成 普通消息签名的生成时间用!,表示 !,可能有一个确定的值,或者是一个取值范围,或者是完全不 确定的一个值 如果1,有一个具有充分精度的值,并且对应私钥的私钥拥有属性安全证明已经获取,则 可以根据5.1.1中的时效模型,按照如下的方法确定该普通消息签名的安全证明水平 如果(t一(a一d))<1.<(t十(b一d)),那么该普通消息签名的安全证明水平等于获取的私 钥拥有属性安全证明的初始证明水平 如果(tA+(b-d))(+ +(b-d)+c),那么该普通消息签名的安全证明水平为低 如果t,没有一个确定的值,则该普通消息签名的安全证明水平被确定为低 5.2.4具体的私钥拥有属性安全证明获取流程 5.2.4.1公私钥对拥有者获取私钥拥有属性安全证明 公私钥对拥有者可以用如下一种或多种方法获取私钥拥有属性安全证明: 公私钥对拥有者采用证明签名获取私钥拥有属性安全证明 aa 公私钥对拥有者需要完成以下内容 1 确定适当的d值,例如,可以按照5,2.2中的时效模型,在确定完合适的a,b,值的基础 上,确定d值; 确定一个可信的t值; 22 生成一个新的用于获取私钥拥有属性安全证明的证明消息 3 用要获取证明的私钥对证明消息签名,生成证明签名 4 5 用对应的公钥验证证明签名 如果验证成功 6 为!确定一个可信的值; 当t十时,按照本标准前面的规定确定证明时间和初始证明水平 b)公私钥对拥有者采用证明签名从TTP获取私钥拥有属性安全证明 1)公私钥对拥有者要确定适当的d值,例如,可以按照5.2.2中的时效模型,在确定完合适 的a,b,c值的基础上,确定d值; 2)如果TTP负责证明时间的分配,则d值要让TTP知道 3)公私钥对拥有者和/或TTP要确定一个被公私钥对拥有者信任的值 4)公私钥对拥有者生成一个新的用于获取私钥拥有属性安全证明的证明消息
GB/T36644一2018 5)公私钥对拥有者用要获取证明的私钥对证明消息签名,生成证明签名; 6)公私钥对拥有者将证明消息、,证明签名和其他必要的数据发送给TTP 7)TTP用对应的公钥验证证明签名 8 如果验证通过 需要通知公私钥对拥有者,证明签名验证成功; 公私钥对拥有者和/或TTP要为确定一个拥有者信任的值; 如果GB/36644一2018 再生密钥的情况下,TTP应承诺不使用拥有者的密钥对知识生成数字签名 这种信任应由公私钥对拥 有者,潜在签名验证者,以及其他各依赖方共享 其中,使用证明签名的方法是首选方法 TTP使用如下一种或多种方法从公私钥对拥有者处获取私钥拥有属性安全证明 TTP通过验证证明签名的方法从公私钥对拥有者处获取私钥拥有属性安全证明 a l)确定适当的d值,例如,可以按照5.2.2中的时效模型,在确定完合适的d,b,值的基础 上,确定值; 22 公私钥对拥有者生成一个新的私钥拥有属性安全证明的证明消息; 33 公私钥对拥有者用要获取证明的私钥对证明消息签名,生成证明签名 ! 公私钥对拥有者提供证明消息、证明签名以及其他必要的数据给TTP; 5 TTP为确定一个可信的值; 6 TTP用要获取证明的私钥对应的公钥验证证明签名 77 如果验证成功: TTP为!确定一个可信的值; 如果GB/T36644一2018 确定适当的d值,例如,可以按照5.2.2中的时效模型,在确定完合适的a,b,值的基础 上,确定d值; 公私钥对拥有者要提供新的证明消息、证明签名和其他必要的数据给验证者; 2 3 验证者要为确定一个可信的值; 验证者用要获取证明的私钥对应的公钥验证证明签名 4 如果证明签名验证通过 5 验证者要为t确定一个可信的值 如果1<!;d,则拒绝TTP提供的私钥拥有属性安全证明; 如果TTP提供的tg一t的上限值GB/36644一2018 公私钥对由拥有者自己生成:拥有者采用认定的方法生成公私钥对, a b 公私钥对由拥有者与TTP合作生成;拥有者在TTP的帮助下,采用认定的方法生成公私 钥对; 拥有者采用明确的过程验证公钥有效性;拥有者通过执行一个明确的验证过程获得公钥有效 性的安全证明,具体的验证过程见5.3.4 d TTP采用明确的过程验证公钥有效性;拥有者要收到证明,证明TTP确实通过一个明确的验 证过程获得公钥有效性的安全证明,具体的验证过程见5.3.4 TTP的验证结果要提供给拥 有者; 公私钥对由TTP生成.TTP生成公私钥对,并将其提供给拥有者 如果采用了该方式,应该 采用一个公钥有效性的验证过程,验证过程可以是拥有者按照上述方法e)进行,也可以是 TTP按照上述方法d)进行 其中,方法a)或者b)与方法c)或者d)的结合可以获得更为有效的安全证明 拥有者或者其代理需要知道,具体采用了上述哪种方法来获得公钥有效性的安全证明,以确定获得 的公钥有效性安全证明是否满足拥有者的要求 5.3.3验证者的公钥有效性安全证明获取 签名的验证者获取签发者在签名时所使用的公私钥对中的公钥有效性的安全证明,可以通过采用 如下三种方法: 验证者采用明确的过程验证公钥有效性:验证者通过执行一个明确的验证过程获得公钥有效 性的安全证明,具体的验证过程见5.3.4 TTP采用明确的过程验证公钥有效性;验证者要收到证明,证明rTP确实通过一个明确的验 b 证过程获得公钥有效性的安全证明.具体的验证过程见5.3.4.TTP的验证结果要提供给验 证者 TTP重新生成公钥:验证者要收到证明,证明TTP确实采用了一种可信的途径生成或者重新 生成公钥,并且验证了公私钥对的一致性 其中,前两种方法应该优先采用 签名验证者或其可信代理在进行签名验证之前,要知道采用了何种方法来获取公钥的有效性证明 以确定这样的证明是否能够满足验证者的要求 5.3.4公钥有效性验证过程 公钥有效性验证是通过一个明确的过程,检查公钥的数学特性是否符合要求 公钥的有效性验证 过程不需要知道对应的私钥信息,因此,验证可以由任何人在任何地点进行 具体验证过程与算法标准 关系密切,应参考相应的签名算法标准实施 公钥有效性证明包括必要的参数有效性证明 5.4数字签名的生成时间安全证明获取 5.4.1总则 签名生成时间是数字签名的一个重点关注因素,如私钥拥有属性安全证明获取需要签名的生成时 间证明 数字签名生成时间证明获取利用可信时间戳机构TTSA提供的时间戳和/或签名验证者提供 的时间相关数据实现 TTsA的建立和管理不在本标准的讨论范围内 5.4.2从rIsA获取时间的方式获取签名生成时间证明 5.4.2.1时间戳数据包(ISP)的格式 从被签名者和验证者信任的TTsA获取时间是获取签名生成时间证明的一个重要方式 时间戳 1
GB/T36644一2018 数据包(TSP)是该方式获取签名生成时间证明的主要数据结构 TSP的格式具体描述如下: 其中,逗号用来分割不同的数据,而不是数据格式的一部分 TSP=timesta a amped_data,imestamp-igmaureTs TSP由时间截数据及其数字签名构成 数字签名是由TTsA的私钥对时间截数据的签名 b SIGTsA(timestampedl_dlata imestamp_signatureTT% 数字签名算法SIGrTsN是一个使用在时间戳数据上的数字签名操作,签名私钥为TTSA的数 字签名私钥,该私钥只被用于对时间戳数据生成数字签名 imestamped_dlata=user _supplie/_in/fo,TTSA_supp/lie_in/fo,/imestamp 其中 -wppind_in/o用户提供信息,是一个实体在向TTsA请求时间截时提供的信息 1 Serr -supplied_inf在实际应用中可以为空 如果提供了此信息,该信息将被TTSA在 Ser 生成时间戳签名时使用,而不需要在传递时间戳数据包时返回给请求者 若使用了该信 息,应保证在一个实体要验证timestam_signatureT ,时,该信息是可见的, TTsA_sub力lied_info:TTsA提供信息,是TTsA在生成timestam力_signatureT,时采 用的额外信息 TTSA_supb/ied_info在实际应用中可能为空 只要该部分信息能够在 签名时,被重新生成,其中的任何一部分都可以从时间戳数 验证tiesam_ignalureTm 据包中删除; 时间截timestam包含时间和(可能)的其他信息 3 因此,由TTSA生成的通用的TSP格式如下 TSP=user_supplied_info,TTS.A_sup力lied_info,timestam力,SIGrs(user_su力plied_info TTSA_su力lied_info,timestam 其中,4ser_su力pied_in/fo和TTSA_suppied_info可能为空 TTSA可能广播一个TsP或针对提出请求的实体回应一个TsP,具体如下 当TTSA广播 TsP时,TSP中的用户提供信息为空,数字签名imestam_signaturerrs 在TTSA提供信息(可能为空)和时间戳的基础 上生成,TSP随后被组装和广播 在TTSA提 供信息中,被所有TSP 的既定接收者共知的部分可以从传输的TSP中删除 -个实体请求一个时间截时,请求实体提供用户提供信息(可能为空)给TTSA 数字签名 timestamp_signatureTTs在用户提供信息、TTSA提供信息中(可能为空)和时间戳的基础上生 成 在生成签名的基础上,将数字签名timestam户_signatureTTs和时间戳数据组装成 TSP,然后发送给请求的实体 被所有既定接收者共知的部分TTSA提供信息,还有以其他方 式告知验证实体的用户提供信息,可以从返回的TSP的时间戳数据域中删除 5.4.2.2 用从TIsA申请的TSP提供签名生成时间证明 5.4.2.2.1实体A向TSA提供用户信息(可选的)获得TSP 对于一个实体A,有四种不同的方案使其从一个受信任的TTSA获得一个TSP,然后将TSP,消息 M)、和签名组合,并将其加人数据的有效载荷,发送到接收实体B,提供签名消息的生成时间证明 在5.4.2.2所描述的4个方案中,签名生成由实体A或者TTSA采用一个认定的数字签名算法生 成 SIG()表示实体A用其私钥生成的签名,SIGrrsn()表示TTSA使用其私钥生成的签名 SIG(O 使用实体A的公开签名验证密钥验证,SIGrTs()使用TTsA的公开签名验证密钥验证 以下讨论,假 定实体A和B都已成功地验证所有收到的签名 第1个方案描述如下 实体A可以直接从TTsA语求一个时间戳,或者实体A使用TTSA广插的时间戳(即,实体A没 有明确地从一个TTSA请求时间截),提供数字签名的生成时间证明,具体过程如图3所示 12
GB/36644一2018 TTA I 的)use sP 3D-MTsPSGxw,TsP o 图3实体A向TIsA提供用户信息(可选的)获得IsP 该方案的具体流程描述如下 一个实体A可以明确地向TTSA发送一个时间戳请求 如果请求被发送请求消息包含期望 a 的用户提供信息4ser_supplied_info; TTSA发送TSP到实体A(或广播一个TSP,随后被实体A获得),其中TSP定义同5.4.2.1 b 具体可以分为以下三种情况 1 如果实体A在第一步被发送了请求信息,则时间戳数据timestamped_data包含用户提 供信息user_su户plied_in/fo; 如果实体A没有在第一步发送请求信息,即广播方式发送TSP,则在TsP采用广播的形 2 式下,用户提供信息为空; 如果实体A和TTSA之间存在双方协议,则下列信息可以从TTSA传输的TSP数据中 3 去除 用户提供信息user_supplied_info中的任何一部分信息可以被去除,如果实体A已 经知道该信息; TTSA提供信息中TTSA_supplied_info中的任何一部分信息可以被去除,只要实 体A知道该信息,或者该信息能够被实体A确定 但是,任何从发送的TSP数据中删除的信息应包含在生成/验证数字签名timestamp_signar tureTrs,时所用的时间戳数据中 在接到从TTSA发送的TSP时,实体A应该 1 检查传输的部分用户提供信息 _info是否正确 、tsersulied 2)使用TTSA的公开签名验证密钥验证数字签名timestamp_signatureTTsA 实体A签名(M,TSP),组装数据D,并将其发送到实体B 三MTSP .sIG,(M.TsP) 其中,TSP同5.4.2.1中规定,组装数据D分为如下两种情况 如果用户提供信息中的任何一部分信息从来自TTSA的TSP中被删除,那么整个用户提 供信息要在组建数据D时回填到TSP中,除非实体A和实体B存在相互协定,使得被删 除的部分能够被实体B知道或者重新生成 在存在部分信息删除的情况下,整个用户提 供信息4ser_su户plied_info应该包含在生成/验证数字签名 和 tinmestamp_signatureTTsA 中 SIGA(,TSP)所用的时间戳数据 timestamped_data" 如果TTSA提供信息TTSA _supplied_info中的任何一部分信息从来自TTsA的TSP 中被删除,那么整个TTSA提供信息要在组建D时回填到TSP中,除非实体A和实体B 之间存在双方协定,可以让B能够确定出这些信息 在这种情况下,如果实体B已知或 者可以确定TTSA提供信息,那么它的任何部分信息可以从实体A传输的TSP数据中 删除 然而,整个TTSA提供信息TTSA_suppliedl_info应该包含在生成/验证数字签 名timestamp_signaturerTTs和sIG(M,TsP)所用的时间戳数据timestamped_data中 d)在收到D时,实体B按照如下步骤进行操作 13
GB/T36644一2018 1) 用TTsA的公钥验证数字签名timestam户_signaturerTsa; 2)用A的公钥验证数字签名sSIG,(M,TSP 上述两个步骤执行的先后顺序无关,但要保证这两个验证成功 通过完成第4步的核查,实体B获取如下证明 消息M可能在收到TSP之前或者之后组装; 数字签名sG,(M,TsP)在TsP中的时间戳表示的时间之后被生成 D 在TSP中的时间戳表示的时间之后被组装 如果需要一个更为精确的SIGM,TSP)生成时间证明,第二个可信的时间戳是必要的,见 5.4.2.3 5.4.2.2.2实体A向IISsA提供消息M的Hash值获得TSP 实体A可以在向TTSA请求时间戳时,可以提供M的Hash值,提供数字签名的生成时间证明, 具体过程如图4所示 用H表示生成的M的Hash值 TTA Ao " A 3.D-A,TSP,SIG(AM,TSPy 图4实体A向TISA提供M1的HHash值获得SP a 实体A在向TTSA的时间戳请求中发送H,即用户提供信息由H和其他信息other_info组 成 其中,other_info可能空 b TTSA向实体A回送一个TSP TSP由时间截数据及其数字签名组成 与5.4.2.2.1方案不同的是,用户提供信息" u.ser_suu plied_info中包括了消息M的Hash值H 如果实体A和TTSA之间存在双方协定,下列消息可以从传送的TSP数据中去除 1 -supplied_inf的任何部分信息可以被删除,只要实体A已知该信息; ser 2)TTsA-/hlind-ini的任何部分信息可以被剔除,只要实体A已知该信息.或者能够 被实体A确定 虽然这些信息可以从TSP传输信息中被删除,但完整的user_supplied_inf和TTSA Su imesta川peddlata plie_info要被包括在imest 中,用于生成如下的签名及其验证 amped_data) imestam/-ignaturers以=sIGrrs.(Gimese 在收到从TTSA中发送的TSP时,实体A应该 检查传送的用户信息是否正确; 用TTSA的公钥验证imestamp_sigatweTTsa 实体A签名M,TSP),组装D,并将其发送到实体B D=M,TSP,sIG(M,TSP 其中,TSP在第2步中规定 如果4ser_u户pliel_info中的任何一部分信息从来自TTSA的TsSP中被删除,那么整个 4ser_su力p/ie_in/要在组建D时回填到TSP中,除非实体A和实体B存在双方协定,使得 B可以确定这些信息 一般情况下,D中传输的TSP中的下列信息可以被删除 14
GB/36644一2018 1) H可以被删除,因为它可以被实体B重新)计算得到; 2 任何在user_supplied_info中的other_info,只要能够被B知道或者确定则可以被 删除; 但整个4ser_su力p/ied_info应该包含在生成/验证timesam_signatureTrs和sIG(M. TsP)所用的1imestamped_data中 如果TTSA_supplied_info中的任何一部分信息从来自TTSA的TSP中被删除,那么整个 TTSA_suppied_info要在组建D时回填到TSP,除非实体A和实体B存在双方协定,可以 让B能够确定出这些信息 在这种情况下,如果实体B已知或者可以决定TTSA_supblied in/fo,那么它的任何部分信息可以从实体A传输的TSP数据中删除 然而,整个TTSA 、和sIG,(M,TsSP)所用的tim su力plied_in/o应该包含在生成/验证/imesamp_ignatwreTTsa pedl_dlata中 estam d 在收到D后,B需完成以下内容: 1)实体B计算H'=Hash(M),如果H是D的一部分,验证H’=H,否则,将H'插人 4ser_supplied_info,以支持验证timestam_signatureTrs和sIGx(M,TSP); 用TTsA的公开签名验证密钥验证timestamp 2 _S1g71atureTsA; 3)用A的公开签名验证密钥验证sIG(M,TSP) 上述步骤执行的先后顺序无关,但要保证这两个验证成功 通过完成第4步的核查,实体B获取如下证明 在TTSA获取的TSP中的时间戳表示的时间之前M被组装,H被生成; 在TSP中的时间戳表示的时间之后M没有被改动过 SIG,(M,TSP)在TSP中的时间戳表示的时间之后被生成 D在TSP中的时间戳表示的时间之后被组装 如果需要一个更为精确的sIGAM,TSP)生成时间,第二个可信的时间戳是必要的,具体见 5.4.2.3 5.4.2.2.3实体A向TsA提供M的数字签名值获得IsP 实体A可以在向TTSA请求时间戳时,提供一个M的数字签名,提供数字签名适时性证明,具体 过程如图5所示 TTA O9 nher 一 G 司 3DMTSP,SIG(AM,TSP 图5实体A向IISA提供M的数字签名值获得ISP 该方案的各个过程描述如下 实体A在一个时间戳请求中向TTSA发送sIG(M),以及其他可能的信息,即;4ser a su力blied_info=sIG(M),other_in/fo,other_info可能为空 b)TTSA向实体A回送一个TSP: TSP=timestan npel_daa, timesam力_s7gnatureIsA 15
GB/T36644一2018 其中 user-supplied_info=sIG.(M),other-infon timestamped_data -supplied_inJfo,TTsAsupplied_in/fo,timestamp .Ser sIGrrs(user_supplied_info,TsA_suplied_info,times timestam_signalureTs tam 如果实体A和TTSA之间存在双方协定,下列消息可以从传送的TSP数据中去除 .li ee _info中的任何部分信息可以被删除,只要实体A已经该信息,然而,如果 user_supl sIG(M)从TSP中被删除,它应该在TSP被送往实体B时回填到TSP中; 2 TTSA_supplied_info中的任何部分信息可以被删除只要实体A已知该信息或者能够 被实体A确定; 虽然这些信息可以从TSP传输信息中被去除,但完整的user_su力lied_info和TTsA_su力 lied_info要被包括在timestamed_data中,用于生成如下的签名及其验证 limestam/_signatureTs=sIGTs(timestamped_daka. 在收到从TTSA中发送的TSP时,实体A应该;首先检查传送的4ser_supplied_inf是否正 确;其次用TTSA的公钥验证timestamp_signatureTsa; 实体A签名(M,TSP),组装D,并且将其发送到B =M,TSP,sIG,(M,TsP) TSP在第2步中定义 如果4ser_su户plied_info中的任何一部分信息从来自TTSA的TSP中被删除,那么整个 ppAlied_no要在组建D时回填到TsP中,除非实体A和实体B存在相互协定,被鹏 4ser_Sup 除的部分能够被实体B知道或者重新生成 在存在部分信息删除的情况下,整个" serSup- 和SIGM,TSP)所用的times- lied_info应该包含在生成/验证imestamp -signatureTsA tamped_data中 如果TTsA_su力bied_info中的任何一部分信息从来自TTsA的TsP中被删除,那么整个 TTSA_supblied_info要在组建D时回填到TSP中,除非实体A和实体B存在双方协定,可 以让B能够确定出这些信息 在这种情况下,如果实体B已知或者可以确定TTSA su力plied_in/fo,那么它的任何部分信息可以从实体A传输的TSP数据中删除 然而,整个 TTSA liedinfo 应该包含在生成/验证imesamp_signatweTT和sIG(M,TSP)所 _suppl 用的timestamn uped_data中 d 实体B在收到D时,需要完成以下内容 1用A的公钥验证SsIG(M),SIG.(M)通过D中的TSP得到 22) 用TTSA的公钥验证imestamp_signaturerTs; 3)用实体A的公钥验证SIGA(M,TSP) 上述步骤执行的先后顺序无关,但要保证这些验证成功 通过完成第4步的核查,实体B获取如下证明 M和sIGM),在TSP中的时间戳表示的时刻之前生成,并且sIG.(M)被包含在TTsA 签过名的iestamped_data中 在TsP中的时间截表示的时间之后M没有被改动过 sIGA(M,TSP)在TSP中的时间戳表示的时间之后生成 在TsP中的时间戳表示的时间之后组装 D 如果需要一个更为精确的sIG,(M,TsP)生成时间,第二个可信的时间戳是必要的,见5.4.2.3 5.4.2.2.4由实体B向TTsA提供M的数字签名获得IsP 实体B可以向TTSA提供其收到的A对消息M的数字签名,提供数字签名的生成时间证明,具体 16
GB/36644一2018 过程如图6所示 TTA I.D-MSGA 图6由实体B向IIsA提供M的数字签名获得ISP 该方案的各个过程描述如下 实体A签名消息M,组装D并将其发送到实体B. a D=M,sIG(M 实体B可以用实体A的公钥,验证SIGx(M),并且可以根据自己的需要,记录从A处收到签 名的大致时间 实体B在一个时间戳请求中发送sIGx(M)(和其他可能的信息)给TTsA,即awer_wppliedl _info=sIG,(M),other_info,other_info可以为空 TA返回一个TSP给实体B d -data,timetanp-ignatureTs TSP= timestamee 其中: user_sulied_info=sIG,(M),other_info. 4ser_u少ied_info,TTSA_supplied_info,timestamp timestampedl_data SIGTTSAuu. -w/plinl_no plied_info,TTSA tines timestamp_signatureTTs八 4ser_s4 tan 如果B和TTsA之间存在一个双方协定,则下列信息可以从向实体B传送的TsP中删除 4ser_su力p/lied_info中的任意部分信息可以被删除,如果实体B已经该信息 2 TTsA_supplied_inf中的任意部分信息可以被删除,只要实体B已知该信息或者能够 确定该信息; 虽然这些信息可以从TSP传输信息中被去除,但完整的4ser_su力blied_info和TTs.A_su力 lied_info要包含在生成/验证timestamp_signatureTs的所用的timesamped data中 d)在收到TSP时,实体B需完成以下内容 检查传送的" aer-supplied_in是香正确 1 22) 用TTSA的公钥验证timestam力_gnaturersa; 3)如果SIGM)没有在被送往TTSA之前被验证,用A的公钥验证 上述步骤执行的先后顺序无关,但要保证这些验证成功 通过完成第4步的核查,实体B获取如下证明 M和sIG(M)在TsP中的时间戳表示的时刻之前生成; SIGM)包含于timestampe(_data中,并且被TTSA签名 这些证据[即M,SIGA(M,TSP]可以被呈送给任何信任TTSA的第三方 5.4.2.3采用第二个IsP获取更为精细的签名生成时间证明 5.4.2.3.1基本方案 如果可以从TTSA获得另外一个TSP,就可以获取更精确的签名生成时间,第二个TSP请求可以 17
GB/T36644一2018 由实体A和实体B发出 如果第二个TSP请求尽可能接近实体A的第一个时间戳数据包的签名生成 时间,证明的精度将会更大 在下列的方案中,最初的步骤由5,4.2.2.15.4.2.2.3规定,并且完成了如下信息表示的变换 a 4ser_suppliel_info变成4ser_supplied_infos b _w/pliedl-n/9之内的ahwr-im变成whrr-m/ 在user TTSA_supb/ied_info变成TTSA_supb/lied_info c timestam力变成timestam力; d TTsA变成TTsAi e TsP变成TsP fD) 下面的方案描述中引人了两个TTsA:TTSA,和TTsA: TTsA.可能与TTSA是同一个TTsA 5.4.2.3.2由实体A请求第二个TsP 两个TSP都可以由实体A获得 TTSAs提供的TSP应同时被实体A和实体B信任,并且被任 何需要信任签名生成时间的第三方信任 该方案如图7所示,第一个TSP由5.4.2.2.1,5.4.2.2.2或者5.4.2.2.3规定的程序获得,之后实体A 请求第二个TSP 前两个步骤即a),b)同5.4.2.2.15.4.2.2.3的规定相同,其余步骤如下 Y -5.DMMTSPTSP 图7由实体A请求第二个时间戳 实体A在第二个TsP请求中,生成签名;sIG,(M,TSP)(可能包括其他的信息),并将其发 a -supplied_info;-sIG,(M,TsP),olher_info.,oher-info.可能 送到TTSA,,即ser_ 为空 TSP的定义与在5.4.2.2.1,5.4.2.2.2和5.4.2.2.3中的TSP的定义相同 TTSA,向实体A返回TSP b TSP=timestamped_datag,timestam_sigature7 'TTsA 其中: 4ser_supblied_info=sIG,(M,TSP),other_info imestamped_data=user _supplied_in/o,TTSA_supplied_in/o ,tim1esta1力 =SIG user r_su户plie/_info.,TTSA_suppied_info.,times timestam力_S7gnat4rerTsA rTTsA tamp 如果在实体A和TTSA之间存在双方协议,下列信息可以从TTsA传送的TSP中被删除 14ser_supp/lied_info,的任何一部分信息可以被删除,只要实体A知道这些信息 然而 如果sIGA(M,TsP从TSP数据中被删除,A应在向实体B发送TsP,时,回填给 rSP中 2 TTSA_supplied_info的任何信息可以被删除,只要该信息被实体A知道或者能够被实 18
GB/36644一2018 体A确定 如果上述部分信息可以从传输的TSP中删除,那么完整的4ser_supplied_info和TTSA SIG suplied_info应包含在生成和验证timestam力-signatureTs rTTsA,timestamped daa)所使用的timestampe_data数据中 在从TTSA.收到TSP后,实体A应该;a)检查4ser_suplied_info的传输部分是否正确; b)用TTsA 的公共验证密钥验证timestamp_signaturerrsA; 实体A装配D,并将其发送到实体B D=M,TSP,TSP 其中,TSP同5.4.,2.2部分的定义,TsP在第4部分确定 注意,如果sIG(M,TSP)没有包 含于从TTSA.传出的timestamped -data.中,它要包含于用于组装D的TSP中 如果部分信息从来自TTsAs的TSP中被删除,那么完整的user_supplied_info和TTSA “pied_ -.u/pind info,要被添加进TSP并且完整的4ser _in/o和TTSA_supplied ,除非实体A和实体B之间存在相互协定,可以确定出这些信息 info2,要被添加进TSP 列信息可以从D中的TSP和TSP中去除 TSP中的4ser_su户plied_info的任意部分,如果实体B知道或者能够被实体B确定; o,的任意部分,如果实体B知道或者能够被实体B确定 TSP中的user_supplied_info TsP中的TTSA_supblied_info的任意部分,如果实体B知道或者能够被实体B确定 TsP中的TTSA_supblied_info,的任意部分,如果实体B知道或者能够被实体B确定 任何被从传输的数据中删除的信息要在生成和验证如下等式时,被包含进合适的 imestamed_data(timestamed_data和/或timestambed_data,域,以能生成/验证如下 timestamp_signaturesN SIGrTsAtimestamped_data1); imestam力_signalureT SIGrsA.timestamped_data2); eTTSA sIGA(M,TSP 在收到D后,实体B需完成以下内容: 如果5.4.2.2.2中的方案被使用,实体B计算H‘=Hash(M) 如果H在传输的TSP中 被收到,实体B验证H‘=H;否则实体B在验证timestamp_signature 和SIGA(M TTSA TSP)时,直接设H‘=H; 用TTSA的公钥验证timestam力_signatureT TSP 用A的公钥验证SIG(M 用TTSA 的公钥验证imestamp_signatwreTT 上述步骤执行的先后顺序无关,但要保证这些验证成功 通过第6步的验证,在5.4.2.2方案获取的签名生成时间证明的基础上,还可以获得额外的如 下证明 SIG(M,SP)在 timestamp和timestam表示的时刻之间被生成,并且包括在TTSA 进行签名的timestamped_datae中 在时间戳timestamp表示的时间后数据包D被组装 5.4.2.3.3由实体B请求第二个TSP 实体B在收到实体A的数据包D,并验证相关的签名(见5.4.2.2.15.4.2.2.3中的第4部分)之 后,发起第二个TsP请求 提供第一个TSP的TTSA(TTSAi)应被实体A和实体B所信任,但是提 供第二个TSP的TTSATTsA.)可以只需要被实体B所信任 通常,任何一方,只要依赖于SIGa(M. TSP)的生成时刻,就应同时信任两个TTSAs 19
GB/T36644一2018 图8给出了实体B在收到D后,请求第二个TSP的情形 前四个步骤即a),b),c),d)如5.4.2.2.1~ 5.4.2.2.3所描述,后续步骤具体过程描述如下: TTA TTA. N 3DMTSP,SIG(MTSP 图8由实体B请求第二个时间戳 a 实体B从D中获得sSIGA(M,TsP)(可能有其他信息),并将其发送到TTSA.,请求第二个 TSP 即;user_supplied_info=SIGM,TSP). ,other_infog,other_info-可能为空 b TTSA,返回TSP给实体B: TSP=limestamped_data2,tiestamp_signatureTTss 其中 user_su力lied_info=sIG,(M,TSP,),other_info timesamed_data;=4ser_upplied_in/fo;,TTSA_su力plied_in/fo;,timestamp SIGrsuser_suppliedl_info!,TTSA_supplied_infog,time timestam_sigatureTIsA stam2 如果实体B和TTsA之间存在双方协议,下列的信息可以被从TTsA,向实体B回传的TSP 中删除 _supplied_info中的任意部分,只要该部分被实体B知道; 1 4Ser 2) TTsA_su力p/ied_in/fo,中的任意部分,只要该部分被实体B知道,或者能够被实体B 确定; 如果上述信息可以被从传输的TSP 中删除,但是在生成和验证签名timestam) SIG ra)时,完整的4ser_su户plied_info和TTSA rTsNtimestamped_da6 7gnatureIs xupplie_info,信息还是要被包含在1iestamped_daag中 实体B随后,1)验证4ser_su力plied_in/fo的传输部分是正确的;2)用TTsA,的公钥验证tim estamp_signatureT eTTsNe 通过第7步,在5.4.2.2方案获取的签名生成时间证明的基础上,还可以获得额外的如下证明: 签名SIG(M,TsP)在时间戳timestamp和imestamp标示的时刻之间生成 证据[即M,TSP,SIGM,TSP和TSP]可以被提供给任何相信TTSA、的第三方 5.4.3用验证方提供的数据获得签名生成时间证明 5.4.3.1 基本方案 除了使用可信时间戳服务,实体A还可以采用如下方法,向验证者(实体B)提供签名生成时间的 证据: 将验证者提供的新鲜值和其他数据联合; a 20
GB/36644一2018 b)对上述联合消息进行签名 下述方案中利用" ?值来帮助获取签名的生成时间证明 该nonce值是一个随时间变化的值 71once 被表示成一个不能忽略时间变化的字符串 例如,once值可以由如下三个部分组成 使用经认定的随机比特发生器(RBG)生成一个随机值作为nonce值 对用于获取once 值的RBG的安全强度要等于或大于有关数字签名的过程安全强度 RBG的安全强度要 在随机值生成之前确定 RBG的输出长度要等于或大于有关数字签名的过程安全强度要 求 比如,如果数字签名过程中的安全强度为112位,RBG的输出的长度应至少 12位). 一个有足够精度的时间源,表示不同的时间 -个单调递增的序列数 如果只是一个时间源和一个单调递增序列被用于生成nomce值,而没有一个随机数,则序列号要只 能在时间源变化时被重新设定(例如,时间源可显示日期,但不显示时间,所以要附加一个序列号,并且 一天内不重复) 当用一个nonee值时,一般要采用 raddoo2ce 在5.4.3.1和5.4.3.2所描述的方案中,设定;Nonce是一个验证方提供的nonce(即;由实体B提 供) D是由实体A向实体B传送的数据,其中包括消息M和各种时间截和/或数字签名 ; 让SIG(O 表示由实体A用一个认定的哈希丽数和一个认定的数字签名算法生成的一个数字签名 sIGx()由实 体A的公钥进行验证 讨论假定所有的实体A和B都成功地验证了所有的数字签名 每个方案附一 个图来描述方案中的信息流动,每一个消息的数字表示文字描述中的步骤,步骤内部的消息流动并不表 示在图中 基本方案的流程如图9所示 1Noce 2.D-SIGNe 图9用验证方提供的数据获得签名的生成时间证明的基本方案 该方案的具体流程描述如下 实体B发送一个新生成的Nonce给实体A: a 实体A签名(M.Nonce),组装消息D并将其发送给实体B,其中 b D=M,SIG(M,Nonce) 在收到消息D后,实体B用实体A的公钥验证sIG,(M,Nonce) c 由第3步的验证,实体B可以获得证明如下 M可能在从实体B收到Nonce值后或者前组装; SIG(M,Nonce)在实体A收到Nonce值后生成; D在实体A收到Nonce值后被组装 5.4.3.2用IsP获得更高的证明精度 5.4.3.2.1实体A请求一个时间戳 实体A在发送一个消息给实体B时,请求一个TSP 提供TSP的TTSA应被通信双方所信任 图10描述了方案流程 方案描述如下: 实体B发送一个新生成的Nonce值给实体A a b)实体A生成SIG(M,Nonce)(可能有其他信息)并将其在一个时间戳请求中发送给TTSA 即;4ser-supplied_info=sIGM,Nonce),oher_in/o oher_info可以为空 TTsA返回一个TSP实体A: 21
GB/T36644一2018 TSP tinmestamped_cata,timestam1_signatureTTsA 其中: 4ser_suplied_info SIGAM,Nonce),other_info user_supplied_info,TsA_supplied_info,timestamp timestampedl_data imestamp_signatureTTs=SIGrrsaser -upphied_in/o,TTsA_upplied_nfo,thime tamp. 如果实体A和TTsA之间存在相互协定,以下的信息可以从向TTsA传输的TsSP数据中 删除 1 任何一部分user_suplied_info可以被删除,只要他被实体A知道 然而,如果sIG M,Nonce)被从TSP删除,它应重新添加到向实体B发送的TSP中 任何TTSA_upplied_in/的部分信息可以被制除,如果这些信息被实体A知道或者能 2 够被实体B确定 即使这些信息可以被从user_supblied_info和TTSA_suplied_info中删除,但是完整的 -su力plied_inf和TTSA_supplied_info信息要在签名生成/验证时被包括进times 4se tamped_data中 在从TTSA收到TsP时,实体A要;l)确认4ser_supplied_info的传输部分是否正确;2)利 用TTSA的公钥验证timestam力_signatureTTsA TTA l.NoXe B 4DMTSP 图10实体A请求一个时间戳 d 实体A组装数据包D并把它发送给实体B D=M,TSP 其中:TSP在第3步中被确定 如果4ser_u户plied_in/fo的部分信息被从来自TTSA的TSP中除去,完整的4ser-suppliedl _inf的信息要被加人组装D的TSP中 除非实体A和实体B之间存在相互协定,使得B 能够知道或者确定这些信息 在这种情况下,任何 user_su力lied_info的部分信息可以被从 传送到实体B的TSP中去除,如果这些信息能够被实体B知道或者确定 然而,完整的4ser _suppliedl_info信息要被包括在签名 imestam户_sigatwres和SIG,(M,Nonce) 生成和 中 验证依赖的timestamped_data 如果TTSA_suplied_info的部分信息被从来自TTSA的TSP中除去,完整的TTSA_su lied_info的信息要被加人组装D的TsP中 任何rTSA_su力plied_info的部分信息可以 被从传送到实体B的TSP中去除,如果这些信息能够被实体B知道或者确定 然而,完整的 和SIG(M,Noce TTSA_supplied_info信息要被包括在签名time estam力_signatureTTsA" 生成和验证依赖的timestamped_data中 在收到D后,实体B作如下的事情 1 用实体A的公钥验证sIG(M,Nonce); 22
GB/36644一2018 22 用TTSA的公钥验证timnestamp_signatureTTs 上述步骤执行的先后顺序无关紧要,但要保证这两个验证成功 除了如在5.4.3.2中描述的证明外,第5步的验证还可以获得如下证明 SIG(M,Nonce)在Nonce值和TSP表示的时刻之间生成 5.43.2.2由实体B请求一个时间戳 实体B可以在收到实体A发送的消息应答D后,向TTSA提出TSP请求 图描述了方案流程 该方案类似于5.4.2.2.4中的方案,唯一的不同之处为从实体B送往实体 A的Nonce值 实体B提供的Nonce值可能包括一个时间源(双方实体A和B都信任),在这种情况 下,None值标示的时刻和TsP标示的时刻将建立一个时间区间,在此区间内该签名生成 TTA 1.Noce' 2D=M.,SIG,( 图11 实体B请求一个时间戳 前三个步骤如5.4.3.2.1中描述 在实体B验证sIG(M,Nomce)之后的流程描述如下 实体B发送SIG(M,None)和其他信息给TTsA,发起一个时间戳请求,即 a sIGA(M). ,other_info other_info可能为空 -upplin user ied_info bTTSA返回TSP给实体B TsP timestamped_dlata,timestam力_signatureTs 其中: tu.ser -“pphied_inf=sG,(M,None),her-_info. tiestaped_lata supplied_info,TTSA_supplied_info,tiestamp. 4Ser sIGs,user_su力plied_info,TTsA_supplied_info,times timnestam力_signalureTs tam 如果在实体A和实体B之间存在协定,则下列的信息可以从TTSA发送到实体B的TSP中 删除 任何user_su力plied_info的部分信息,如果它被实体B知道; 1D 2)任何TTSA_supplied_info的部分信息,当这些信息可以被实体B知道或者确定 即使上述信息可以被从传输的TSP数据中删除,完整的" .e -supplie_in/f和TTSA_su lied_info应该包括在timestam力_signatureT=sGTs,(timestamed_data签名的tim etamped_dala中 实体B 1 检查传输的4ser_supplied_in/fo部分信息是否正确 用TTSsA的公钥验证timesam_sigatureTs 22 除了5.4.3.2.1中描述的签名生成时间证据外,实体B还可以通过上述c)得到如下信息: sIGM,Nonce)在times 3tamp_signatureTTs的时间戳表示的时刻之前生成 23
GB/T36644一2018 附 录 A 资料性附录) S2签名算法公钥有效性获取流程 以下是对sM2签名算法公钥有效性获取具体流程的描述 该流程仅作为一个示例,不同的算法要 根据各自算法标准指定的关键参数验证过程制定相应的公钥有效性获取流程 SM2签名算法公钥有 效性获取具体流程根据GB/T32918.1一2016和GB/T32918.22016制定,具体过程如下 根据GB/T32918.1一2016中5.2.2或5.3.2描述的椭圆曲线系统参数验证过程,对签名算法 a 采用的椭圆曲线系统的参数进行验证,若验证输出“无效”结果,则公钥有效性获取过程失败 根据GB/T32918.1一2016中6.2.1或6.2.2描述的公钥有效性验证过程,对签名算法的公钥 b 进行验证,若验证输出“无效”结果,则公钥有效性获取过程失败 24
GB/36644一2018 参考文献 [1]GB/T15851一1995带恢复的数字签名方案(idIsO/IEC9796;1991 [2] GB/T17902.1一1999带附录的数字签名第1部分;概述(idtIsO/IEC14888-1:1998) [3 GB/T17902.2一2005带附录的数字签名第2部分;基于身份的机制(idtIsO/IEC14888- 2:1998 [4]GB/T17902.3一2005带附录的数字签名第3部分:基于证书的机制(idtIsO/IEC14888- 3:1998 [5]GB/T25064一2010信息安全技术公钥基础设施电子签名格式规范 [时sM2椭圆曲线公钥密码算法.htp:/ //www.oscca.gov.cn/UpFile/2010122214822692.pdf [7]NISTSP80089 ReeommendationforObtainingAssurancesforDigitalSignatureAppli cations [8NISTSP800102RecommendationforDigitalSignatureTimeliness

信息技术学习、教育和培训在线课程
上一篇 本文分享国家标准信息技术学习、教育和培训在线课程的全文阅读和高清PDF的下载,信息技术学习、教育和培训在线课程的编号:GB/T36642-2018。信息技术学习、教育和培训在线课程共有59页,发布于2019-04-01
信息技术满文名义字符、变形显现字符和控制字符使用规则
本文分享国家标准信息技术满文名义字符、变形显现字符和控制字符使用规则的全文阅读和高清PDF的下载,信息技术满文名义字符、变形显现字符和控制字符使用规则的编号:GB/T36645-2018。信息技术满文名义字符、变形显现字符和控制字符使用规则共有37页,发布于2019-04-01 下一篇
相关推荐