ICSL中华人民共和国国家标准GB/TXXXXX—XXXX信息技术安全技术带消息恢复的数字签名方案第3部分:基于离散对数的机制Informationtechnology―Securitytechniques—Digitalsignatureschemesgivingmessagerecovery—Part3:Discretelogarithmbasedmechanisms(ISO/IEC9796-3:2006,Informationtechnology—Securitytechniques—Digitalsignatureschemesgivingmessagerecovery—Part3:Discretelogarithmbasedmechanisms,IDT)(报批稿)(本稿完成日期:2016-12-3)XXXX-XX-XX发布XXXX-XX-XX实施目次前言V引言VI1范围12规范性引用文件13术语和定义14缩略语、符号和约定44.
1缩略语和符号44.
2转换函数和掩码生成函数54.
3附图说明55签名机制和杂凑函数之间的绑定56带消息恢复的数字签名构架66.
1进程66.
2参数生成进程66.
2.
1域参数66.
2.
2用户密钥76.
3签名生成进程76.
4签名验证进程77带消息恢复的数字签名总体模型77.
1要求77.
1.
1域参数87.
1.
2冗余类型87.
2函数和进程总结87.
3用户密钥生成进程87.
4签名生成进程97.
4.
1进程97.
4.
2生成随机数和预签名107.
4.
3拆分消息117.
4.
4生成数据输入117.
4.
5计算签名117.
4.
6组成已签消息117.
5签名验证进程117.
5.
1进程117.
5.
2开启已签消息127.
5.
3签名大小的验证137.
5.
4预签名的恢复137.
5.
5输入数据或者消息的恢复137.
5.
6杂凑权标的重新计算(可选)137.
5.
7校验签名138NR(Nyberg-Rueppel消息恢复签名)138.
1域参数和用户密钥138.
2签名生成进程138.
2.
1输入和输出138.
2.
2生成随机数和预签名(有限域计算)148.
2.
3生成数据输入148.
2.
4计算签名(模n的算术运算)148.
2.
5组成已签消息148.
3签名验证进程148.
3.
1输入和输出148.
3.
2签名大小的验证148.
3.
3恢复预签名(有限域计算)148.
3.
4恢复数据输入或者消息158.
3.
5校验签名159ECNR(椭圆曲线Nyberg-Rueppel消息恢复签名)159.
1域参数和用户密钥159.
2签名生成进程159.
2.
1输入和输出159.
2.
2生成随机数和预签名(椭圆曲线计算)159.
2.
3生成数据输入159.
2.
4计算签名(模n的算术运算)159.
2.
5组成已签消息169.
3签名验证进程169.
3.
1输入和输出169.
3.
2签名大小的验证169.
3.
3恢复预签名(椭圆曲线计算)169.
3.
4恢复数据输入或者消息169.
3.
5校验签名1610ECMR(椭圆曲线Miyaji消息恢复签名)1610.
1域参数和用户密钥1710.
2签名生成进程1710.
2.
1输入和输出1710.
2.
2生成随机数和预签名(椭圆曲线计算)1710.
2.
3计算签名(模n的算术运算)1710.
2.
4组成已签消息1710.
3签名验证进程1710.
3.
1输入和输出1710.
3.
2签名大小的验证1810.
3.
3恢复预签名(椭圆曲线计算)1810.
3.
4恢复数据输入或者消息1810.
3.
5校验签名1811ECAO(椭圆曲线Abe-Okamoto消息恢复签名)1811.
1域参数1811.
2用户密钥1811.
3签名生成进程1911.
3.
1输入和输出1911.
3.
2生成随机数和预签名(椭圆曲线计算)1911.
3.
3拆分消息和生成数据输入1911.
3.
4计算签名(模n的算术运算)1911.
3.
5组成已签消息2011.
4签名验证进程2011.
4.
1输入和输出2011.
4.
2签名大小的验证2011.
4.
3恢复预签名(椭圆曲线计算)2011.
4.
4恢复数据输入2011.
4.
5校验签名2012ECPV(椭圆曲线Pintsov-Vanstone消息恢复签名)2112.
1域参数和用户参数2112.
2签名生成进程2112.
2.
1输入和输出2112.
2.
2生成随机数和预签名(椭圆曲线计算)2112.
2.
3拆分消息和生成数据输入2212.
2.
4计算签名(模n的算术运算)2212.
2.
5组成已签消息2212.
3签名验证进程2212.
3.
1输入和输出2212.
3.
2签名大小的验证2312.
3.
3恢复预签名(椭圆曲线计算)2312.
3.
4恢复数据输入2312.
3.
5校验签名2313ECKNR(椭圆曲线KCDSA/Nyberg-Rueppel消息恢复签名)2313.
1域参数和用户参数2313.
2签名生成进程2413.
2.
1输入和输出2413.
2.
2生成随机数和预签名(椭圆曲线计算)2413.
2.
3生成数据输入2413.
2.
4计算签名(模n的算术运算)2413.
2.
5组成已签消息2413.
3签名验证进程2413.
3.
1输入和输出2413.
3.
2签名大小的验证2513.
3.
3恢复预签名(椭圆曲线计算)2513.
3.
4恢复数据输入或者消息2513.
3.
5校验签名25附录A(资料性附录)数学转换26附录B(规范性附录)转换函数28附录C(规范性附录)掩码生成函数(密钥导出函数)31附录D(资料性附录)数据输入生成方式实例32附录E(规范性附录)ASN.
1模块33附录F(资料性附录)算例35附录G(资料性附录)机制特点总结50附录H(资料性附录)方案的对应性52参考文献53前言本部分按照GB/T1.
1-2009给出的规则起草.
GB/TXXXXX《信息技术安全技术带消息恢复的数字签名方案》分为两个部分:——第2部分:基于大数分解的机制——第3部分:基于离散对数的机制本部分为GB/TXXXXX的第3部分.
本部分等同采用ISO/IEC9796-3:2006《信息技术安全技术带消息恢复的数字签名方案第3部分:基于离散对数机制》及ISO/IEC9796-3/Cor.
1《信息技术安全技术带消息恢复的数字签名方案第3部分:基于离散对数机制勘误表1》,对GB15851-1995《信息技术安全技术带消息恢复的数字签名方案》进行修订:本部分补充规定了生成密钥进程;除带消息恢复的数字签名构架外,本部分新定义了六种数字签名方案,并对每种签名方案的签名和验证方法进行了规定;本部分补充规定了杂凑函数的用法;本部分部分签名方案增加使用椭圆曲线或有限域;本部分新增对完全和部分消息恢复的说明;本部分新增规范性引用文件;本部分使用8个新增附录替换原附录A和B,用于描述密钥导出函数及数字签名方案的说明实例等.
本部分所涉密码算法符合国家密码管理局的相关要求.
本部分由全国信息安全技术标准化技术委员会(SAC/TC260)提出并归口.
请注意本文件的某些内容可能涉及专利,本文件的发布机构不承担识别这些专利的责任.
本部分起草单位:西安西电捷通无线网络通信股份有限公司、无线网络安全技术国家工程实验室、WAPI产业联盟、中国电子技术标准化研究院、重庆邮电大学、中国电子科技集团公司第三十研究所、国家密码管理局商用密码检测中心、国家无线电监测中心检测中心、北京大学深圳研究生院、天津市无线电监测站、中国人民解放军信息安全测评认证中心、北京计算机技术及应用研究所、福建省无线电监测站、国家信息技术安全研究中心、北京数字认证股份有限公司、中国电信集团公司、工业和信息化部宽带无线IP标准工作组等.
本部分主要起草人:王月辉、杜志强、李琴、曹军、黄振海、李大为、宋起柱、许玉娜、张璐璐、龙昭华、冷冰、李明、铁满霞、张变玲、李楠、朱跃生、李广森、颜湘、张国强、童伟刚、万洪涛、高德龙、朱正美、陈志宇、葛培勤、侯鹏亮、巩汉臣、许福明、高波、郑骊、王姣、韩丽.
引言数字签名机制可以提供实体鉴别,数据源鉴别,不可抵赖和数据完整性服务.
数字签名机制满足以下要求:如果只有公开验证密钥,没有私有签名密钥,对任何给定的消息生成一个有效的签名在计算上是不可行的;签名方已生成的签名既不能用来为一个新消息生成一个有效的签名,也不能用来恢复签名密钥;甚至对于签名者,找到带有相同签名的两个不同的消息在计算上也是不可行的.
大部分签名机制是基于非对称密码技术,包括下列三个基本操作:生成密钥对的进程,每个密钥对包括一个私有签名密钥和相对应的公开验证密钥;使用私有签名密钥的进程,称作签名生成进程;使用公开验证密钥的进程,称作签名验证进程.
数字签名机制有两类:对于给定的私有签名密钥,签名者对相同消息的签名是相同的,这种机制称为非随机的(或确定的)[参考ISO/IEC14888-1];对于给定的消息和给定的私有签名密钥,每个签名处理进程生成的签名是不同的,这种机制称为随机的.
本部分规定了随机的数字签名机制.
数字签名方案也可以分成下列两类:当整个消息需要存储和/或随着签名一起传输时,该方案称作"带附录的签名方案"[参考ISO/IEC14888];从签名中可以恢复整个或者部分消息时,该方案称作"带消息恢复的签名方案".
如果消息足够短,那么整个消息可以包括在签名里,通过签名验证进程从签名中可以恢复出来.
否则消息的一部分可以包括在签名里,余下部分存储起来或随着签名一起传输.
本部分规定的机制提供完整或者部分恢复,目的在于降低存储和传输管理.
本部分包括六个签名方案.
本部分规定的方案使用杂凑函数杂凑整个消息.
ISO/IEC10118规定了杂凑函数.
在本部分中规定的一些方案使用有限域上的椭圆曲线一个群.
ISO/IEC15946-1:2002描述了基于有限域上的椭圆曲线实现密码系统的数学背景和基本技术.
信息技术安全技术带消息恢复的数字签名方案第3部分:基于离散对数的机制范围本部分规定了六种带消息恢复功能的数字签名方案.
这些方案的安全性是基于定义在有限域或有限域上的椭圆曲线的离散对数问题的难度.
本部分也定义了在杂凑权标里的一个可选控制字段,其能够增强签名的安全性.
本部分规定了随机机制.
在本部分里规定的机制能够完全或者部分恢复消息.
注:带附录的基于离散对数的数字签名方案参考ISO/IEC14888-3.
规范性引用文件下列文件对于本文件的应用是必不可少的.
凡是注日期的引用文件,仅注日期的版本适用于本文件.
凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件.
ISO/IEC10118(所有部分)信息技术安全技术杂凑函数(Informationtechnology—Securitytechniques—Hash-functions)ISO/IEC15946-1信息技术安全技术基于椭圆曲线的密码技术第1部分总则(Informationtechnology—Securitytechniques—Cryptographictechniquesbasedonellipticcurves—Part1:General)ISO/IEC15946-5信息技术安全技术基于椭圆曲线的密码技术第5部分椭圆曲线生成(Informationtechnology―Securitytechniques―Cryptographictechniquesbasedonellipticcurves―Part5:Ellipticcurvegeneration)术语和定义下列术语和定义适用于本文件.
数据输入datainput取决于完整消息或部分消息的八位位组串,其组成了签名生成进程的一部分输入.
域参数domainparameter常见且已知的或者可以被域中所有实体访问的数据项.
[ISO/IEC14888-1:1998]注:域参数集合可以包括数据项,诸如杂凑函数标识,杂凑权标的长度,消息中可恢复部分的最大长度,有限域参数,椭圆曲线参数,或者其它能够表明域的安全策略的参数.
椭圆曲线ellipticcurve椭圆曲线点P=(x,y)与所定义的无穷远点o构成椭圆曲线点集合,其中x,y是给定有限域上的域元素,其满足给定的非奇异、三次方椭圆曲线方程.
[ISO/IEC15946-1:2002]注:给定有限域上的椭圆曲线的数学定义,参考A.
4.
显式给定有限域explicitlygivenfinitefield[0,p–1]上的e元组集合,其中p为素数,e≥1,并能计算出乘法表.
注1:给定有限域上的数学定义,参考A.
3.
注2:有限域的更多细节参考ISO/IEC15946-1:2002.
杂凑码hash-code杂凑函数输出的八位位组串.
注:改编自ISO/IEC10118-1:2000.
杂凑函数hash-function将八位位组字符串映射为固定长度的八位位组字符串的函数,该函数满足下列两特性:对于给定输出,找出映射为该输出的输入,在计算上是不可行的;对于给定输入,找出映射为同一输出的第二个输入,在计算上是不行的.
注1:改编自ISO/IEC10118-1:2000.
注2:计算上的可行性取决于特定安全要求和环境.
注3:为了达到本部分的目的,ISO/IEC10118-2和ISO/IEC10118-3中描述的杂凑函数具有如下限制:在ISO/IEC10118中描述的杂凑函数将比特串映射成比特串,而在本部分里,杂凑函数将八位位组串映射成八位位组串.
因此在本部分中使用的杂凑函数输出长度在比特上只能是8的倍数,八位位组串和比特串之间的映射受到OS2BSP和BS2OSP的影响.
杂凑权标hash-token一个杂凑码与一个可选的控制字段拼接而成的消息,该控制字段可用于标识所指杂凑函数和填充方法.
[ISO/IEC14888-1:1998]注:除非杂凑函数是由签名机制或由域参数唯一确定的,否则必须给出带有杂凑函数标识符的控制字段.
消息message任意有限长度的八位位组串.
参数生成进程parametergenerationprocess给出输出域参数和用户密钥的进程.
预签名pre-signature用于签名生成进程计算的八位位组串,此八位位组串是对随机数发生器生成的随机数进行运算的结果,与消息无关.
私有签名密钥privatesignaturekey一种特定于某一实体的秘密数据项,在签名生成进程中只能由该实体使用.
公开验证密钥publicverificationkey一种数据项,在数学上与私有签名密钥相对应,可为所有实体所知,并由验证方在签名验证进程中使用.
随机的randomized取决于随机数发生器.
随机数发生器randomizer在预签名生成进程中由签名实体生成的秘密整数,其不被其它实体所知.
注:改编自ISO/IEC14888-1:1998.
签名signature签名生成进程生成的一个八位位组串和整数对.
用于提供鉴别.
注:改编自ISO/IEC14888-1:1998.
签名生成进程signaturegenerationprocess输入消息、签名密钥和域参数,输出签名的进程.
注:改编自ISO/IEC14888-1:1998.
签名验证进程signatureverificationprocess其输入为已签署的消息、验证密钥和域参数,其输出为恢复后的消息(如果有效)的进程.
注:改编自ISO/IEC14888-1验证进程的定义.
已签消息signedmessage一组由签名中不能恢复的消息部分、签名以及可选的文本字段等数据项组成的集合.
[ISO/IEC14888-1:1998]用户密钥userkeys一组私有签名密钥和公开验证密钥的数据项.
缩略语、符号和约定缩略语和符号下列缩略语和符号适用于本文件.
A实体,通常是签名方B实体,通常是验证方d数据输入(八位位组串)d′可恢复的数据输入(八位位组串)E显式给定有限域上的的椭圆曲线ECAO椭圆曲线Abe-Okamoto消息恢复签名ECKNR椭圆曲线KCDSA/Nyberg-Rueppel消息恢复签名ECMR椭圆曲线Miyaji消息恢复签名ECNR椭圆曲线Nyberg-Rueppel消息恢复签名ECPV椭圆曲线Pintsov-Vanstone消息恢复签名F显式给定有限域G基础组(有限域元素/椭圆曲线点)产生器Hash,Hash1,Hash2杂凑函数h(被截取的)杂凑权标(八位位组串)h′可恢复的(被截取的)杂凑权标(八位位组串)K随机数(整数)KDF密钥派生函数(与MGF同义)Lclr不可恢复部分的八位位组数(整数)Ldat数据输入的八位位组数(整数)LF显式有限域F的八位位组数(非负整数)Lrec可恢复部分的八位位组(最大)数(整数)Lred(添加的)冗余八位位组数(整数)L(x)整数x或八位位组串x的八位位组数(非负整数)LHash杂凑函数Hash输出的八位位组数(非负整数)M消息(八位位组串)Mclr消息的不可恢复部分(八位位组串)Mrec消息的可恢复部分(八位位组串)M′已恢复消息(八位位组串)M′clr接收到的消息的不可恢复部分(八位位组串)M′rec消息的已恢复部分(八位位组串)MGF掩码生成函数NRNyberg-Rueppel消息恢复签名n群G的阶(素数)o椭圆曲线的无穷远点P取决于密钥生成机制的元素,采用密钥生成机制I,那么P=G,采用密钥生成机制II,P=YA[参考7.
3]p素数Π预签名(八位位组串)Π′已恢复的预签名(八位位组串)Q取决于密钥生成机制的元素,采用密钥生成机制I,那么Q=YA,采用密钥生成机制II,Q=G[参考7.
3]q素数方幂r签名的第一部分(八位位组串)r′已恢复签名的第一部分(八位位组串)s签名的第二部分(整数)s′已恢复签名的第二部分(整数)xA实体A的私有签名密钥YA实体A的公开验证密钥{0,1}*有限比特串集合{0,1}8*有限八位位组串集合{0,1}长度的比特串集合,为非负整数{0,1}8长度的八位位组串集合,为非负整数[a,b]整数x的集合,a≤x≤b,其中a和b均为整数|x|比特串x的长度|X|集合X的基数[x]八位位组串x的最左侧-比特,当8>L(x)时,右侧填充0[x]八位位组串x的最右侧-比特,当8>L(x)时,左侧填充0xmodn模n的算术计算,r∈[0,n1],(xr)除以n,x是整数xyx和y的按位异或运算xy比特串x和比特串y的级联XYX和Y的笛卡尔乘积转换函数和掩码生成函数下列转换函数和掩码生成函数适用于本文件.
BS2IP将比特串转换为整数[参考B.
2]BS2OSP将比特串转换为八位位组串[参考B.
1]EC2OSP将椭圆曲线转换为八位位组串[参考B.
6]FE2IP将有限域元素转换为整数[参考B.
4]FE2OSP将有限域元素转换为八位位组串[参考B.
5]I2BSP将整数转换为比特串[参考B.
2]I2OSP将整数转换为八位位组串[参考B.
3]MGF1掩码生成函数1[参考C.
2]MGF2掩码生成函数2[参考C.
3]OS2BSP将八位位组串转换为比特串[参考B.
1]OS2ECP将八位位组串转换为椭圆曲线[参考B.
6]OS2FEP将八位位组串转换为有限域元素[参考B.
5]OS2IP将八位位组串转换为整数[参考B.
3]附图说明第7章附图使用如下说明数字签名消息恢复的签名的生成和验证进程.
进程的步骤进程的步骤强制数据流可选数据流签名机制和杂凑函数之间的绑定本部分规定的签名机制要求进行杂凑函数Hash的选择.
ISO/IEC10118规定了杂凑函数.
在使用时需要将签名机制和杂凑函数进行绑定.
如果没有这种绑定,攻击者可以使用较弱的杂凑函数(不是实际使用的),因此攻击者可以仿造签名.
数字签名机制的使用者必须权衡实现绑定的不同方式的成本与效益,并做出评估.
评估也必须包括可能存在的仿造签名的成本评估.
注1:本部分使用的杂凑函数Hash的一个安全要求是"抗碰撞".
注2:有很多方式能够实现上述的绑定.
以下选项按照危险程度的递增列出:特殊的签名机制需要特殊的杂凑函数.
验证进程应该使用此杂凑函数.
ISO/IEC14888-3给出了上述选项的实例:DSA机制要求使用专用的杂凑函数3(即SHA-1,在ISO/IEC10118-3定义);允许一套杂凑函数,在证书域参数里明确指定使用的杂凑函数.
在证书域里,验证进程也应该使用此证书里说明的杂凑函数.
在证书域之外,如果权威机构(CAs)不遵循用户的策略,威胁就会增加.
例如,外部CA生成一个证书,允许使用其它的杂凑函数,签名伪造的问题可能出现.
在这种情况下,被误导的验证方可能与此CA产生分歧;允许一套杂凑函数,使用其它方式指定杂凑函数,例如,在消息或者双向协商里指定.
验证方应该使用此指定的杂凑函数.
但是攻击者可能使用另一个杂凑函数仿造签名,所以存在威胁.
注3:上述c)中的"其它方式"可以是把杂凑函数标识符的形式包括在八位位组串d中.
如果d中包括杂凑函数标识符,甚至当验证方接受使用足够弱的杂凑函数(其能够导致消息被发现)的时候,攻击者也不能欺骗地把相同八位位组d1的签名重复使用在对不同八位位组d2的签名上.
但是在使用弱杂凑函数的情况下,攻击者依旧能够发现一个对"随机的"d1的新签名.
注4:通过要求在d1中出现指定的结构,就能够防止注3中提到的产生一个对"随机的"d1的签名攻击.
例如,对d1做个长度限制,使其远远小于签名机制的能力.
对于许多数字签名机制,尽管在消息中没有包括杂凑函数标识符,如果掩码生成函数MGF是基于杂凑函数的,那么d1的长度限制也能够阻止攻击者重复使用已存在的签名.
上述是假设弱杂凑函数是"一般目的"的杂凑函数,而不是专为仿造签名而设计的.
带消息恢复的数字签名构架进程第6.
2到6.
4节包括了本部分规定的六种签名方案的总体模型的高级描述.
总体模型的详细描述在第7中.
本部分规定的数字签名方案有如下进程:参数生成进程;签名生成进程;签名验证进程.
参数生成进程域参数参数分为两部分:域参数和用户密钥.
域参数包括定义有限群的参数,如有限域的一个乘法群或者有限域上的椭圆曲线的一个加法群,以及其它常见且已知的或者可以被域中所有实体访问的公共信息.
与密码方案中规定的域参数一样,也必须规定下面的参数:使用的数字签名方案标识符;冗余类型;(可选的)杂凑函数Hash;用户密钥生成进程.
有限域上的椭圆曲线的一个加法群的实现以及数学背景参考ISO/IEC15946-1.
构建有限域上的椭圆曲线的方法参考ISO/IEC15946-5.
用户密钥每个实体都有自己的公开和私有密钥.
实体A的用户密钥包括:私有签名密钥xA;公开验证密钥YA;(可选的)其它信息,由实体A规定,用于签名生成/验证进程.
注1:用户密钥只在规定的域参数集的上下文中有效.
注2:签名验证方可能要求确保域参数和公开验证密钥是有效的,否则尽管进行了签名验证,也不能保证达到了预期的安全.
签名方也可能要求确保域参数和公开验证密钥是有效的,否则攻击者可能生成被验证的签名.
签名生成进程签名生成进程需要以下的数据项:域参数;签名方A的私有签名密钥xA;消息M.
本部分中规定的所有方案,签名生成进程包括如下处理:拆分消息;(可选的)计算冗余,或者计算消息摘要;有限群的计算,或者是有限域的乘法群或者是有限域上的椭圆曲线的加法群;基点G的群阶求模计算;组成已签消息.
签名生成进程的输出是(r,s)对,其组成A对消息M的数字签名.
签名验证进程签名验证进程需要以下的数据项:域参数;签名方A的公开验证密钥YA;不可恢复的消息M′clr(如果存在).
接收到的消息M的签名,其使用八位位组串r′和整数s′表示.
本部分中规定的所有方案,签名验证进程包括如下处理:签名大小验证;有限群的计算,或者是有限域的乘法群或者是有限域上的椭圆曲线的加法群;基点G的群阶求模计算;恢复数据输入或者消息;签名检查.
如果所有处理成功,验证方接受签名,否则拒绝.
带消息恢复的数字签名总体模型要求域参数希望应用本部分规定的数字签名机制的用户应该选择以下的数字签名方案的域参数:显式给定有限域F,或者显式给定有限域F上的椭圆曲线E;F或者E的基点G的阶n.
为了实现带消息恢复的数字签名机制,在用户间就上述选择达成一致是必要的.
注1:n的大小影响机制的安全性,所以它的选择需要满足安全目的.
注2:方案使用的两个可能的群通常用作乘法表示(有限域的乘法群)和加法表示(椭圆曲线的点构成的群).
在第7章,为了方便表达,使用了乘法表示.
注3:显式给定有限域的定义,参考A.
3.
注4:显式给定有限域上的椭圆曲线的定义,参考A.
4.
注5:与椭圆曲线有关的有效实施和密码技术,参考ISO/IEC15946-1:2002.
冗余类型用户选择的冗余类型是:自然冗余;填充冗余,或者两者兼之.
为了实现带消息恢复的数字签名机制,在用户间就上述冗余达成一致是必要的.
如果用户选择填充冗余,填充冗余的八位位组数,Lred,应该是固定的.
带有填充冗余的消息可以被消息或者可恢复消息的杂凑权标所构建.
如果用户选择自然冗余,Lred,应该设置为0.
带有自然冗余的消息意味着消息包括诸如ASCII码的冗余或者消息的冗余在一些应用里可以隐性验证.
自然或者填充冗余可以是达成一致的任何事物,能够被通信双方校验.
包括自然和填充冗余的整个冗余应该比应用里规定的某个最小值大.
总的来说,单独的自然冗余只能用来完整的消息恢复.
函数和进程总结本部分规定的签名方案能够恢复消息.
更准确地说,做为签名验证进程一部分,签名生成函数输入的一部分数据可以从签名中恢复出来.
签名方案包括以下函数和进程:用户密钥生成进程;签名生成进程;签名验证进程.
用户密钥生成进程使用下述两种方式计算公开验证密钥和私有签名密钥(签名实体必须保证私有签名密钥是秘密的):密钥生成进程I如果域参数集合是有效的,可以使用下面的步骤生成私有签名密钥和与之对应的公开验证密钥:在集合[1,n–1]中选择随机或伪随机整数xA.
xA必须防止未经授权的泄露,而且其必须是不可预测的;计算YA=GxA;密钥对即为(YA,xA),其中YA用于公开验证密钥,xA用于私有签名密钥.
算法统一表示为P=G和Q=YA.
密钥生成进程II如果域参数集合是有效的,可以使用下面的步骤生成私有签名密钥和与之对应的公开验证密钥:在集合[1,n–1]中选择随机或伪随机整数e.
计算xA,满足xA在[1,n–1]区间,xAe=1modn.
xA和e必须防止未经授权的泄露,而且其必须是不可预测的;计算YA=Ge;密钥对即为(YA,xA),其中YA用于公开验证密钥,xA用于私有签名密钥.
算法统一表示为P=YA和Q=G.
在使用公开验证密钥之前,验证方需要确保公开验证密钥的有效性和所属.
有效性可以通过多种方式获得,参考6.
6.
2.
注1:有些方案私有签名密钥xA的范围是[1,n–2].
注2:密钥生成I是比较流行,经常使用的方式.
在有些环境下,求模运算代价比较高,密钥生成II可能更有优势.
签名生成进程进程图1描述了签名生成进程,包括以下处理:生成随机数和预签名;拆分消息;生成数据输入;计算签名;组成已签消息.
注:图1中显示的域参数只是做为示例使用,每个方案可能要求与方案相关的域参数.
图1签名生成进程生成随机数和预签名在签名计算之前,签名实体必须有一个可用的,新鲜的,秘密的随机数.
这个随机数是一个整数k,(1≤k≤n–1).
签名方案的实现者必须确保满足以下要求:同一个随机数用于两个不同消息的签名的可能性是非常小的;已经使用过的随机数值不会被泄露,一旦使用过,这些随机数会被销毁.
首先,通过随机数发生器生成一个随机数,整数k.
然后对随机数进行运算生成预签名Π(八位位组串).
在任何随机数签名方案里,签名生成进程中,预签名都是一个中间数据项.
预签名是一个公开数据项,随机数的值只是在此次签名生成进程里有效.
注1:使用后的随机数,如果后续泄露,就会给私钥带来威胁.
使用过的随机数不会再被签名方或验证方使用,所以必须安全地清除.
如果同一个随机数用于两个不同的消息签名,或者签名使用的随机数被泄露,那么从签名中恢复私钥是可能的.
注2:通过随机数发生器生成随机数以及预签名的计算可以离线进行.
在上述情况下,随机数必须安全存储以便签名生成进程将来使用.
拆分消息消息M被拆分成消息的可恢复部分Mrec和不可恢复部分Mclr,它们的八位位组数分别使用Lrec和Lclr表示.
生成数据输入数据输入函数的输入是带有填充冗余的可恢复消息Mrec,或者是带有自然冗余的可恢复消息Mrec.
输入可选地包括不可恢复部分Mclr,长度Lrec和Lclr.
在使用填充冗余的情况下,数据输入包括杂凑权标.
杂凑权标由杂凑码自己或者与链接在杂凑码后面的杂凑函数标识符一起组成,杂凑码通过杂凑(可恢复部分)消息计算得出.
杂凑权标是否包括杂凑函数标识符是由域参数控制的.
数据输入函数的输出是八位位组串d.
香港ceranetworks提速啦是成立于2012年的十分老牌的一个商家这次给大家评测的是 香港ceranetworks 8核16G 100M 这款产品 提速啦老板真的是豪气每次都给高配我测试 不像别的商家每次就给1核1G,废话不多说开始跑脚本。香港ceranetworks 2核2G 50G硬盘20M 69元/月30M 99元/月50M 219元/月100M 519元/月香港ceranetwork...
CheapWindowsVPS是一家成立于2007年的老牌国外主机商,顾名思义,一个提供便宜的Windows系统VPS主机(同样也支持安装Linux系列的哈)的商家,可选数据中心包括美国洛杉矶、达拉斯、芝加哥、纽约、英国伦敦、法国、新加坡等等,目前商家针对VPS主机推出5折优惠码,优惠后最低4GB内存套餐月付仅4.5美元。下面列出几款VPS主机配置信息。CPU:2cores内存:4GB硬盘:60G...
至今为止介绍了很多UCLOUD云服务器的促销活动,UCLOUD业者以前看不到我们的个人用户,即使有促销活动,续费也很少。现在新用户的折扣力很大,包括旧用户在内也有一部分折扣。结果,我们的用户是他们的生存动力。没有共享他们的信息的理由是比较受欢迎的香港云服务器CN2GIA线路产品缺货。这不是刚才看到邮件注意和刘先生的通知,而是补充UCLOUD香港云服务器、INTELCPU配置的服务器。如果我们需要他...