GM∕T 0091-2020 基于口令的密钥派生规范.pdf
《GM∕T 0091-2020 基于口令的密钥派生规范.pdf》由会员分享,可在线阅读,更多相关《GM∕T 0091-2020 基于口令的密钥派生规范.pdf(17页珍藏版)》请在咨信网上搜索。
1、ICS 35.040 CCS L 80 中华人民共和国密码行业标准G/T 0091-2020 基于口令的密钥派生规范Password-based key derivation specification 2020-12-28发布2021-07-01实施.i!如Q1. h +二。舍、-。你J、$.、E一,-. 周itwww噜I,!.;与阳n. . :n5 前涂层蜜冒伪国家密码管理局发布G/T 0091-2020 目次前言II 范围2 规范性引用文件-3 术语和定义4 符号和缩略语15 OID定义26 基于口令的密钥派生函数27 基于口令的加密方案.4 7.1 加密操作47.2 解密操作48 基于
2、口令的消息鉴别码48.1 MAC的生成48.2 MAC的验证.附录A(资料性)辅助技术附录B(规范性)ASN.1语法附录C(规范性)ASN.1结构定义四参考文献.11 GM/T 0091-2020 目。吕本文件按照GB/T1. 1-2020 (232 -1) X hLen,输出派生密钥的长度过长停止程序;b) 将派生密钥的长度按hLen个字节进行分块,向下取整,令且为分块数。令r为最后一块的字节数:n = dkLen / hLen, r二dkLen一(n-1) X hLen ; c) 将口令P、盐值S、迭代次数C和块的序号代入到下面定义的函数F中,分别计算出派生密钥的各个块:T1 = F (P
3、, S, c, 1) , T2= F (P, S, c, 2) , Tn= F (P, S, c, n) , 其中,F定义为伪随机函数PRF作用于口令P、盐值S与块序号i的连接串的前C次迭代结果的异或和:F(P, S, C, i) = U1EU2EE Uc 其中:U1 =PRF (P, S 11 INT (i) , U2二PRF(P, U1) , Uc=PRF (P, Uc-1) 这里,INT(i)是整数i的4字节编码,首字节为最高位;d) 连接所有的块,提取前面的dkLen字节作为派生密钥DK:DK= T1 11 T2 1111 Tn e) 输出派生密钥DK。3 GM/T 0091-2020
4、 7 基于口令的加密方案7.1 加密操作7.2 基于口令P的加密操作具体包含以下步骤:a) 选定KDF和基础加密方案(见A.3); b) 选择一个盐值S和一个迭代次数c(见第6章); c) 选择将要在基础加密方案中使用的派生密钥的字节数dkLen;d) 将口令P、盐值S和迭代次剿r 1伊姐也r拍电町、,叫DK=KDF (P, S, c e) 在基础加密方J 本步骤可能N f) 输出密/. 1久,八基UWO8.1 MAC的生成a) 选定密钥派生函数KDF和基础消息鉴别方案(见A.4); b) 选择一个盐值S和-个迭代次数c(选择原则见A.l); c) 选择基础消息鉴别方案中使用的派生密钥的字节长
5、度dkLen;d) 将口令P、盐值S和迭代次数C代人选定的密钥派生函数中,得到一个字节长度为dkLcn的派生密钥DK:DK=KDF (P, S, c, dkLen); e) 在基础消息鉴别方案中使用派生密钥DK生成消息M的消息鉴别码UO 输出消息鉴别码T。盐值S、迭代次数c、密钥长度dkLen和密钥派生函数KDF及基础消息鉴别方案的标识符可用一个算法标识传送给消息验证方(见A.3)。4 G/T 0091-2020 实现者应注意基于口令的密钥派生函数与基于口令的消息鉴别码所使用的口令和盐值需要互相独立,不要相互混淆。8.2 AC的验证基于口令P对消息M进行处理,验证消息鉴别码T的步骤如下:a)
6、获取盐值S和迭代次数C;b) 获取基础消息鉴别方案中派生密钥的字节长度dkLen;C) 将口令P、盐值S和迭代次数C代入选定的密钥派生函数,得到一个字节长度为dkLen的派生密钥DK:DK= KDF Cp, S, c, dkLen); d) 将派生密钥DK运用到基础消息鉴别方案中对消息M进行处理,从而对消息鉴别码T进行验证。如果消息鉴别码通过了验证,则输出正确,否则输出错误。5 G/T 0091-2020 附录A(资料性)辅助技术A.1 盐值和迭代次数A. 1. 1 盐值由于盐值和迭代次数是本文件的关键技术,本附录对其进行深入的讨论。在基于口令的密码中,对于给定的口令,盐值常用来与口令一起生成
7、密钥集,并从密钥集中根据盐值随机选取一个密钥。使用以下的密钥派生函数从密钥集中选择一个密钥:DK二KDF(P, S) 其中,DK是派生密钥,P是口令,S是盐值。这会带来两个好处。a) 攻击者根据口令字典难于计算出所有可能的密钥。例如,假设盐值的长度为64比特,则每个口令能够派生264个密钥。经过一次基于口令的操作后,即使盐值已知,攻击者也只能对口令进行搜索。b) 同一密钥基本不可能被选到两次。如果盐值的长度为64比特,根据生日悖论只有选择了232个密钥后,出现碰撞的概率才会显著提高。因此,不必担心在某些加密和消息鉴别应用中同一个密钥会被重复选用。基于口令的加密方案,当使用口令派生密钥时,加密方
8、只要选择一个很长的、随机性强的盐值,就能满足上述两点。这同样也适用于消息鉴别。但解密方或消息验证方难以确定对方所提供的盐值是否随机。在某种情况下,应用为了利用对同一密钥重复使用所产生的影响,可能使用从另一个基于口令的操作中复制得到的盐值。例如,假设合法的双方交换一条经过80比特长的密钥加密的消息,其中的密钥由合法双方共用的口令和同一个盐值派生得到。攻击者就可能将这个盐值作为一个用于生成40比特长密钥的盐值提供给一个合法方。如果该合法方公开了用40比特长的密钥解密的结果,攻击者就能计算出这个密钥。若这个40比特长密钥正好是那个80比特长的密钥的前半部分,攻击者就很容易计算出密钥的后半部分。为了抵
9、抗这种攻击,应对重复使用同一密钥所产生的影响进行仔细地分析,或者将一些能明确区分不同操作的数据加入盐值。例如,可以用一个非随机的字节来说明一个生成密钥的用途:加密、消息鉴别或其他,然后把这个字节包含到盐值中。6 基于以上论述,对盐值的选择提出f以下建议。a) 在基于口令的加密和消息鉴别方案中,对于一个给定的口令,如果不必考虑对派生密钥(或密钥前缀)的重复使用所产生的影响,则盐值可以随机生成,接收方也不必对其进行详细的格式检查。盐值的长度至少应为8字节(64比特)。b) 如果需要考虑重复使用派生密钥所产生的影响,盐值就应包含一些能明确区分不同操作和不同密钥长度的数据。该数据的长度至少应是8字节,
10、而且接收方应对其进行检查或重新生成。例如,盐值可以包含一个附加的非随机字节来说明派生密钥的用途。或者,用一个结构来描述派生密钥的详细信息(如,加密或鉴别技术,派生密钥的序列号等),并将这个结构的编码包含到盐值中。这种附加数据的特定格式由应用程序来决定。GM/T 0091-2020 注:推荐使用硬件随机数发生器生成盐值(或盐值的随机部分)。如果无法取得一个(伪)随机数生成器来生成盐值(或盐值的随机部分),一种替代的方法是将口令和待处理的消息M代人到一个基于口令的密钥派生函数中。比如说盐值可以通过计算S=KDFCP,M)得到。若消息M的消息空间(如Yesor No)较小,由于生成盐值的数量太少,则
11、不建议采用该替代方法。A.1.2 迭代次数迭代次数通常被用来增加从口令派生密钥的计算代价,从而增加攻击的难度。从计算角度看,迭代次数C通过log2(c)位来增加密码的安全强度,以对抗暴力攻击或字典攻击等基于审判的攻击。为迭代次数选择一个合理的值取决于环境和应用场景。在用户可接受的范围内,迭代次数C应尽可能选择大的,派生密钥的时间尽量长的。在本文件推荐的最小迭代次数是1024。对生成单个密钥来说,并不会产生明显影响,但对口令的穷举攻击却是严重的负担。对于特别重要的密钥,或者从用户感知角度来说,对系统性能不是很挑剔的,推荐10000000的迭代次数。A.2 伪随机函数本文件规定的PBKDF使用一个
12、PRF来派生密钥,PRF可产生伪随机序列,本附录介绍了PRF的一个实例HMAC-SM3,HMAC算法按GB/T15852.2执行。HMAC-SM3为基于SM3密码杂凑算法计算消息鉴别码的函数,可作为一个PRF使用。与计算HMAC相同,该PRF的第一个参数用作HMAC的密钥第二个参数用作HMAC的明文,输出为杂凑值的全部长度。在本文件的PBKDF中密钥就是口令,而明文就是盐值。HMAC-SM3的密钥长度可变,输出长度为32字节(256位)。HMAC-SM3对密钥长度没有限制,但当密钥长度大于256位时,HMAC-SM3把它杂凑到256位。所以,即使很长的派生密钥是由一个密钥经过多个伪随机函数得到
13、,该派生密钥的有效搜索空间最多为256位。对象标识符id-hmacWithSM3标识伪随机函数HMAC-SM3算法:id-hmacWithSM3 OBJECT IDENTIFIER : : = digestAlgorithm(401) 3 1 在Algorithmlden tifier与该OID相关联的参数域应有类型NULLo该对象标识符使用在对象集PBKDF-PRFs。A.3 基础加密方案本文件规定的PBES需要使用一个基础加密方案,本附录介绍了基础加密方案的一个实例SM4CBC,SM4分组密码算法按GB/T32907-2016执行。基础加密方案SM4-CBC的填充方案SM4-CBC-Pad
14、,如下:将消息M和填充串PS连接得到编码消息EM= M 11 PS。其中,填充串PS由16一(11MII mod 16)个值都为16-( 11M 1 1 mod 16)的字节构成,IIMII标识消息M的字节长度,能满足下面的条件之一:PS = Ox01 如果11MII mod 16二15;PS = Ox02 Ox02二如果IIMllmod16=14; PS二Ox10Ox10 Ox10 Ox10 Ox10 Ox10 Ox10 Ox10 Ox10 Ox10 Ox10 Ox10 Ox10 Ox10 Ox10 Ox10如果11MII mod 16二0。编码后的消息长度将为16的倍数,并能将其恢复为消息
15、M。基础加密方案SM4-CBC的初始向量,虽然作为明文传送给解密方,但也要保证初始向量是随机7 G/T 0091-2020 的,初始向量长度为16字节。可以输入口令、盐值、迭代次数和限定密钥长度为16字节,通过本文件定义的PBKDF派生得到密钥,作为初始向量使用。在本条给出的对象标识符预期在对象集合PBES-Encs中应用。A.4 基础消息鉴别方案本文件规定的PBMAC需要使用一个基础消息鉴别方案,本附录介绍了基础消息鉴别方案的一个实例HMAC-SM3,HMAC算法与GB/T15852.2一致,仅杂凑函数使用SM3算法,SM3密码杂凑算法按GB/T32905-2016执行。HMAC-SM3是基
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- GMT 0091-2020 基于口令的密钥派生规范 GM 0091 2020 基于 口令 密钥 派生 规范
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【曲****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【曲****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。