GB T 17902.1-1999 信息技术 安全技术 带附录的数字签名 第1部分;概述.pdf

上传人:fatcommittee260 文档编号:231967 上传时间:2019-07-14 格式:PDF 页数:15 大小:923.55KB
下载 相关 举报
GB T 17902.1-1999 信息技术 安全技术 带附录的数字签名 第1部分;概述.pdf_第1页
第1页 / 共15页
GB T 17902.1-1999 信息技术 安全技术 带附录的数字签名 第1部分;概述.pdf_第2页
第2页 / 共15页
GB T 17902.1-1999 信息技术 安全技术 带附录的数字签名 第1部分;概述.pdf_第3页
第3页 / 共15页
GB T 17902.1-1999 信息技术 安全技术 带附录的数字签名 第1部分;概述.pdf_第4页
第4页 / 共15页
GB T 17902.1-1999 信息技术 安全技术 带附录的数字签名 第1部分;概述.pdf_第5页
第5页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、中华人民共和国国家标准信息技术安全技术带附录的数字签名第部分概述发布实施国家质量技术监督局发布前言本标准规定了带附录的数字签名方案适合于我国使用在总标题信息技术安全技术带附录的数字签名下由以下几个部分组成第部分概述第部分基于身份的方案第部分基于证书的方案本标准的附录是标准的附录附录是提示的附录本标准由国家信息化办公室提出本标准由全国信息技术标准化技术委员会归口本标准由复旦大学中科院软件所负责起草本标准主要起草人鲍振东赵一鸣陶仁骥计青引言数字签名机制采用非对称密码技术它可用来提供实体鉴别数据原发鉴别数据完整性和抗抵赖服务有两种数字签名机制若验证进程需要消息作为输入部分这种机制称为带附录的数字签名

2、在计算附录时使用了散列函数规定了这类散列函数若验证进程给出消息及其特定冗余有时也称作消息影子这种机制称为带消息恢复的签名机制规定了这种机制这两种机制不是互斥的具体地说任何带消息恢复的签名机制例如规定的机制可以用来提供带附录的数字签名这种情况下可以对消息的散列权标使用签名进程来产生签名中华人民共和国国家标准信息技术安全技术带附录的数字签名第部分概述国家质量技术监督局批准实施范围系列标准规定了几个任意长度消息的带附录数字签名机制本标准包括了带附录的数字签名的基本原则和要求同时也包括了在该系列标准的所有部分都用到的定义和符号引用标准下列标准所包含的条文通过在本标准中引用而构成为本标准的条文本标准出版

3、时所示版本均为有效所有标准都会被修订使用本标准的各方应探讨使用下列标准最新版本的可能性信息技术安全技术带消息恢复的数字签名方案第部分使用冗余的机制信息技术安全技术带消息恢复的数字签名方案第部分使用散列函数的机制信息技术安全技术散列函数第部分概述信息技术安全技术密码管理第部分使用非对称密码技术的机制概述本标准所规定的机制是基于非对称密码技术的所有非对称数字签名机制涉及三个基本操作产生密钥对的进程每对密钥包括签名密钥和相应的验证密钥使用签名密钥的进程称为签名进程使用验证密钥的进程称为验证进程数字签名的验证需要签名实体的验证密钥所以验证方必须把正确的验证密钥与签名实体或者更准确地讲与部分签名实体的标

4、识数据联系起来如果这种联系是验证密钥自身所固有的这种方案是基于身份的如果不是应该由其他途径提供正确的验证密钥与签名实体间的联系无论使用何种途径这种方案是基于证书的基于证书方案的验证密钥管理超出本标准的范围提供了公开密钥分发的机制待发布术语和定义附录由签名和一个任选文本字段构成的位串赋值赋值是一个数据项它是消息的证据函数或可能是部分消息的证据函数赋值形成签名函数的部分输入无碰撞散列函数满足以下性质的散列函数要找到两个不同的输入使之对应同一输出在计算上是不可行的注计算上的可行性依赖于用户的具体安全要求和环境确定性的与随机值无关非随机化的数字签名参见签名域参数一个在域中所有实体公共的且已知或可访问的

5、数据项散列代码一个散列函数的输出位串散列函数将位串映射成固定长度位串的函数满足以下两个性质对于一个给定的输出要找到其对应的输入在计算上是不可行的对于一个给定的输入要找到对于其输出的第二个输入在计算上是不可行的注计算上的可行性依赖于用户的具体安全要求和环境散列权标散列代码与一个用来识别散列函数和填充方法的任选控制字段的拼接标识数据分配给实体以便标识它的数据项序列包括实体的区分标识符注标识数据可以额外包含诸如签名进程的标识符签名密钥的标识符签名密钥的有效周期密钥使用的约束相关的安全策略参数密钥序号或域参数等数据项消息一个任意长度的位串预签名在签名进程中计算出来的值它是随机值的函数并且与消息无关随机

6、化依赖于随机值随机值预签名进程中签名实体产生的一个秘密的不可预测的值签名签名进程输出的位串注这个位串可能就有签名机制的特定内部结构签名方程一个签名函数的形式签名函数签名进程中由签名密钥和域参数决定的函数一个签名函数把赋值和可能的随机值作为输入并给出签名的第二部分作为输出签名密钥签名进程中实体所特有的并只能由这个实体所使用的秘密数据项签名进程将消息签名密钥和域参数作为输入并输出签名的进程已签名消息一组包含签名不能从签名恢复的部分消息和任选文本字段所组成的数据项注在本标准中整个消息包含在已签名消息中并且消息的任何部分都不能从签名中得到恢复验证函数验证进程中一个由验证密钥决定并给出一个重新计算的证据

7、值作为输出的函数验证密钥一个与实体的签名密钥有关在验证进程中由验证方使用的数据项验证进程一个把已签名消息验证密钥和域参数作为输入把验证签名的结果即有效或无效作为输出的进程证据一个为验证方提供证明的数据项符号和图中使用的图例在中将使用以下符号散列权标重新计算的散列权标随机值消息准备好的部分消息签名的第一部分重新计算的签名的第一部分签名的第二部分赋值签名密钥验证密钥一个或多个域参数的集合预签名重新计算的预签名签名整数除以整数后得到的余数整数与整数模同余即以下是的图中的图例一般模型一个带附录的数字签名机制由以下进程定义密钥产生进程签名进程验证进程在签名进程中签名实体对给定的消息计算其数字签名这个签名

8、和一个任选的文本字段形成附录用来附加在消息上形成已签名消息图已签名消息根据应用由不同方法形成附录并附加在消息上基本要求是验证方可以将正确的签名和消息关联起来给签名进程输入的消息可能是一个待鉴别的原始消息的散列权标在这种情况下附录附加在原始消息上散列函数标识符形成附录中文本字段的必备部分为了成功验证还要求在验证进程之前验证方能够得到该签名的正确验证密钥任选的文本字段可以用来向验证方传送签名方的标识数据或签名方的验证密钥的可鉴别拷贝在某些情况下签名方的标识数据可能应是消息的一部分这样它可以受到签名的保护一个数字签名机制应该满足以下要求只给出验证密钥不知道签名密钥想产生任何消息和该消息的有效签名在计

9、算上是不可行的签名方产生的签名不可以用来产生任何新的消息和该消息的有效签名也不可以用来恢复签名密钥即使对于签名方而言想找到具有相同签名的两个不同消息在计算上是不可行的注计算上的可行性依赖于用户的具体安全要求和环境密钥产生进程数字签名机制的密钥产生进程由以下两个过程组成产生域参数产生签名密钥和验证密钥在建立域时第一个过程运行一次域参数的结果集要用在后继的进程和函数中对于域中的每个签名实体第二个过程都要运行其输出就是签名密钥和验证密钥对于域参数中一个具体的集合将要用的值应以很高的概率不同于以前使用过的值签名进程签名进程需要以下数据项域参数签名密钥消息散列函数标识符任选的其他文本任选的散列函数标识符

10、可以用来绑定签名机制和散列函数见附录带附录的数字签名机制的签名进程由以下过程组成产生预签名为签名准备消息计算证据计算签名第一个过程是任选的一个没有预签名的签名机制称为确定性的一个有预签名的签名机制称为随机化的数字签名的证据是一个数据项它的值在签名进程中确定证据的正确性在验证进程中验证证据作为消息的函数或预签名函数或两者的函数可以计算出来证据与预签名无关或预签名不存在时称它是确定性的一个确定性的证据不必给予验证方验证方可以使用和签名方同样的方法将证据作为消息的一个函数来计算图描述了带确定性证据的签名进程如果证据依赖于预签名称它为随机化的随机化证据的值由签名方计算出来并形成签名的第一部分图描述了带

11、随机化证据的签名进程图带确定性证据的签名进程图带随机化证据的签名进程产生预签名预签名过程是随机化签名机制所需要的它由以下两步组成产生随机值计算预签名第一步的输出是随机值它是一个仅可在签名进程中使用的秘密值对于每个消息在签名密钥的生命周期内以很高的概率不同于以前使用过的值将用来保护签名密钥的秘密性见附录的第二步中通过使用由域参数还可能由签名密钥所共同决定的函数由计算得到预签名其输出是随机值和预签名预签名的计算是独立于消息的因此可以脱机产生随机值和计算相应的预签名并安全地储存起来以便今后在签名进程中使用如果随机值是作为消息和签名密钥的伪随机函数计算得到那么随机化机制的这个特征就不能利用准备消息签名

12、进程可以将部分消息作为计算证据或计算第二部分的签名或两者的输入为此和这两个数据字段就可由消息导出准备消息的进程应当满足以下两个条件中的一个给定和可以重构整个消息要找到两个消息和使得它们的两个导出对与相等在计算上是不可行的特别地在第一种情况中为空或为空或在第二种情况中或或两者是的散列权标计算证据确定性证据是用无碰撞散列函数见图计算出来的的散列权标随机化证据依赖于预签名和后者可任选随机化证据是作为签名计算的一部分而求得的见的描述计算签名在确定性机制中过程的输入是证据签名密钥和部分消息这里可任选这种情况下这一步的输出是签名见图在带确定性证据的随机化机制中这个过程的输入是随机值签名密钥确定性证据和预签

13、名过程的输出是整个签名它或者由组成或者由和两部分组成见图在带随机性证据的随机化机制中这个过程由两步组成第一步计算证据证据依赖于预签名和是任选的如果计算证据时使用了散列函数那么可能需要将散列函数的标识符和散列函数的输出拼接起来见附录在第二步它的输入是随机值签名密钥随机性证据和已准备的部分消息是任选的第二步的输出是签名或者由组成或者由和两部分组成见图验证进程验证进程需要以下数据项域参数验证密钥消息签名散列函数标识符任选的其他文本任选的带附录的数字签名机制的验证进程由以下过程组成为验证准备消息检索证据计算验证函数验证证据为了确定正确的验证密钥为验证准备消息可能涉及从消息中提取签名实体的标识数据如果证

14、据是确定性的验证方将证据的值作为消息的函数来检索图描述了这个验证进程其他情况见图验证方从签名中检索证据第一个验证进程的好处是证据的检索与重新计算可以并行进行图带确定性证据的验证进程准备消息这个过程应该等同于它的输入是消息输出是消息和两部分检索证据确定性证据是通过使用与中签名方一样的无碰撞散列函数计算消息的散列权标而检索得到的若不是确定性证据验证方将从签名的第一部分或验证函数的输出中检索得到随机化证据见图计算验证函数验证函数由签名方的公开密钥决定签名是验证函数的必备输入如果证据是随机化的消息的非空部分作为这步的必备输入见图如果证据是确定性的只有是验证函数的输入见图这个过程的输出是证据的重新计算值

15、即或如果随机化证据不是签名的部分那么它作为这个过程的第二个输出由验证方恢复见图图带随机化证据的验证进程验证证据这一步中要比较两个证据的值一个是用的方法检索的另一个是用的方法重新计算的如果这两个值相等那么验证方就证明了消息的签名是用与验证密钥所对应的签名密钥获得的带两部分签名的随机化机制这一章是对第章和第章所描述模型的改进这些改进适用于由两部分计算得到签名的随机化数字签名机制计算签名在随机化签名机制中计算签名需要以下数据项域参数签名密钥消息的第二部分证据或随机值预签名如果证据是确定性的它是必备的散列函数标识符任选的在随机化签名机制中计算两部分签名需要以下步骤计算签名的第一部分计算赋值计算签名的第

16、二部分对于带确定性证据的机制图描述了这些步骤它是就随机化机制的特殊情况即对图中计算签名框的放大图带确定性证据的随机化机制中签名的计算如果证据是随机化的它形成签名的第一部分图描述了计算签名所需的步骤它是图中计算签名框的放大图把随机化证据作为签名一部分的签名计算要求对于所有的预签名要找到两个消息有相同的证据和赋值在计算上是不可能的在多数随机化数字签名机制中或为空或为空第一种情况下证据或用无碰撞散列函数计算得到在第二种情况为空证据仅依赖于预签名赋值用无碰撞散列函数计算得到除非散列函数由签名机制或域参数唯一确定散列函数的标识符必须包含在赋值中计算签名的第一部分这一步的输入是证据和预签名输出是签名的第一

17、部分这一步的计算按以下方式应该是可逆的给定和验证方应该可以计算出计算赋值这一步的输入是签名的第一部分也可能是部分消息输出是赋值计算签名的第二部分签名函数由签名密钥决定把随机值和赋值作为输入签名的第二部分作为输出在某些签名机制中签名函数可由一个方程式给出该方程式由参数和以及要求解的未知参数所确定计算验证函数计算验证函数需要以下数据项域参数验证密钥签名消息的第二部分任选的散列函数标识符任选的随机化签名机制中的验证计算由以下步骤组成检索赋值重新计算预签名重新计算证据对于带确定性证据的随机化机制图描述了这些步骤它是就随机化机制的特殊情况对图中相应框的放大如果证据是随机化的图描述了它的重新计算它是图中相

18、应框的细分图带确定性证据的随机化机制中验证函数的计算检索赋值这一步等同于它的输出是赋值重新计算预签名这一步由验证密钥决定这一步的其他输入是签名的第二部分和中得到的赋值它的输出是为预签名重新计算的值重新计算证据如果证据是确定性的那么按照的条件验证方可以使用预签名重新计算的值和签名的第一部分决定重新计算值见图如果证据是随机化的那么验证方可以使用和中签名实体一样的计算过程由重新计算的预签名和消息的第一部分任选的决定一个重新计算的证据值见图图把随机化证据作为部分签名的验证函数计算附录标准的附录绑定签名机制和散列函数的安全性注释当数字签名机制使用散列函数时签名机制和散列函数之间应当绑定如果没有这样的绑定

19、入侵者可能会声明使用了一个弱散列函数并不是真正的那个然后伪造一个签名有很多种方法可以用来完成所需的绑定以下选择按风险程度由低到高列出当使用一个特定的签名机制时需要一个特定的散列函数验证进程应当唯一地使用该特定的散列函数的第部分将给出这种选择的一个例子其中机制需要使用允许有一个散列函数的集合并在每次签名中用包含在部分签名计算的散列函数标识符来清楚地表示出所使用的散列函数散列函数标识符是散列代码的扩展它表示如何导出散列代码验证进程应当唯一地使用签名过程中表示的散列函数的第部分给出了这种选择的一个例子允许有一个散列函数的集合并在证书域参数中清楚地表示出所使用的散列函数在证书域的内部验证进程应当唯一地使用证书所示的散列函数在证书域外部则存在由非正规认证机构带来的风险如果可以创建其他证书那么就可以创建其他签名受到攻击的用户就可能与其他证书的认证机构存在争议允许有一个散列函数的集合并用其他方法指明所使用的散列函数如消息或双边协议中指明的散列函数验证进程应当唯一地使用那种方法指明的散列函数但是这里有一个风险就是入侵者可能会使用另一个散列函数来伪造签名数字签名机制的用户应当对各种选择的开销和好处进行风险评估这个评估包括与产生伪造签名的可能性有关的开销附录提示的附录参考文献基于离散算法的公开密钥密码体制和签名机制会刊

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 标准规范 > 国家标准

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1