操作在一个密钥作用下从一个消息产生一个消息验证码,MAC验证操作在同一个密钥下验证
MAC 。在基于口令和消息验证策略中,密钥就是口令 。
该节详述的一个策略是:PBMAC1 。
7.1PBMAC1
PBMAC1结合了一个基于口令的密钥导出函数,对于PKCS#5的本版本中应为PBKDF2(5.2节),
和基本的消息验证策略(例子见附录B.3) 。基本消息验证策略的密钥长度和任何其它参数都
依靠于策略 。
7.1.1MAC生成
PBMAC1的MAC生成操作应用一选择的密钥导出函数KDF和一选择的基本消息验证策略,在
口令P下处理消息M以产生一消息验证码T,包括以下步骤:
1. 如第4节所述,选择一盐S和一迭代次数c 。
2. 为基本消息验证函数的导出密钥选择字节长度dkLen 。
3. 应用选择的密钥导出函数于口令P、盐S和迭代次数c,以产生一长度为dkLen字节的
导出密钥DK:
DK=KDF(P,S,c,dkLen) 。
4. 在导出密钥DK作用下,用基本消息验证策略处理消息M,以产生一消息验证码T 。
5. 输出消息验证码T 。
盐S、迭代次数c、密钥长度L、密钥导出函数的标识符,和基本消息验证策略可以一
AlgorithmIdentifier值传递给执行验证的另一方 。
7.1.2MAC验证
PBMAC1的MAC验证操作在口令P的作用下处理消息M以验证一消息验证码T,包括以下步骤:
1. 获取盐S和迭代次数c 。
2. 为基本消息验证方式的导出密钥获取密钥的字节长度dkLen.
3. 应用选择的密钥导出函数于口令P、盐S和迭代次数c,以产生长度为dkLen字节的导
出密钥DK:
DK=KDF(P,S,c,dkLen).
4. 在导出密钥DK下用基本消息验证方式处理消息M以产生一消息验证码T 。
5. 假如消息验证码证实,输出“correct”,否则输出“incorrect” 。
8.安全考虑
基于口令密码术在它能提供的安全上通常受限,非凡在本文档定义的那些方法,离线口令搜
索是可能的情况 。在盐和迭代次数的使用能增加攻击的复杂度的同时,很好地选择口令是基
本的,应把相应的指导原则考虑进去 。假如口令存储的话,口令被很好地保护也是重要的 。
通常,从不同用户的一个口令导出的密钥也应不同,以减少意料之外的干扰的可能性 。对于
使用同一算法的基于口令的加密方法,随机盐已足够确保产生不同的密钥 。在某些其它情况
正如第4节所述的,结构化的盐是必须的 。当选择盐值时第4节中的建议就加以考虑 。
9.作者地址
BurtKaliski
RSALaboratories
20CrosbyDrive
Bedford,MA01730USA
EMail:bkaliski@rsasecurity.com
附录AASN.1语法
该节定义密钥导出函数的ASN.1语法,加密方法、消息认证方法和支撑技术 。这些定义的意
定应用包括PKCS#8和密钥治理、加密数据和集成保护数据的其它语法 。
对象标识符pkcs-5标识OID树的弧,本节中PKCS#5特有的OID从中导出:
rsadsiOBJECTIDENTIFIER::={iso(1)member-body(2)us(840)113549}
pkcsOBJECTIDENTIFIER::={rsadsi1}
pkcs-5OBJECTIDENTIFIER::={pkcs5}
A.1PBKDF1
PBKDF1没有给出对象标识符,PBES1的对象标识符对已有应用已足够,对新的应用推荐使用
PBKDF2 。
A.2PBKDF2
对象标识符id-PBKDF2标识PBKDF2密钥导出函数(5.2节) 。
id-PBKDF2OBJECTIDENTIFIER::={pkcs-512}
在AlgorithmIdentifier中,同该OID相关联的参数域应有类型PBKDF2-params:
PBKDF2-params::=SEQUENCE{
saltCHOICE{
specifiedOCTETSTRING,
otherSourceAlgorithmIdentifier{{PBKDF2-SaltSources}}
},
iterationCountINTEGER(1..MAX),
keyLengthINTEGER(1..MAX)OPTIONAL,
- 基于MPLS的流量工程要求
- Linux下基于DNS的多机均衡负载的实现
- 光以太网基于LAN的WAN
- 支付宝吱口令怎么关闭 停用当前吱口令的方法介绍
- 微信中发语音口令红包具体操作方法
- 基于H.323标准的IP电话附加业务
- 基于VoIP技术的新一代话音业务
- 基于分组网的多媒体视听业务的发展
- 报花名绕口令 绕口令的相关知识
- 支付宝口令红包怎么领取
