PKCS #5: 基于口令的密码系统规范 版本2.0( 七 )


prfAlgorithmIdentifier{{PBKDF2-PRFs}}DEFAULTalgid-hmacWithSHA1}
类型PKDF2-params域有以下含义:
- salt指定盐值,或盐值的来源 。它应是一字节串,或是其OID在集合PBKDF2-SaltSources
的一算法ID,被PKCS#5保留给将来的版本 。
Salt-Source方法被设计用于指示如何产生盐值,作为算法ID中的参数和应用数据,或两者
皆有 。例如,它可能指示盐值产生于从指定有关导出密钥的具体信息的结构的编码,如第4节所
建议的 。有些信息可能被带到别处,比如在加密算法ID 。但是,这些功能被延迟到PKCS#5的将
来版本 。
在该节中,一应用可能通过在指定的选择中选择盐值的非凡解释,达到节4.1提到的好处 。
PBKDF2-SaltSourcesALGORITHM-IDENTIFIER::={...}
- iterationCount指定迭代次数 。答应的最大迭代次数依靠于实现 。期待实现轮廓(profile)
进一步约束范围 。
- keyLength,可选项,是导出密钥的字节长度 。答应的最大密钥长度依靠于实现;期待实现
轮廓(profile)进一步约束范围 。提供该域只为了方便使用 。假如顾虑一盐值用不同密钥长
度的操作的相互干扰???
- prf标识下层的伪随机函数 。它应是一算法ID,其OID在集合PBKDF2-PRFs,在PKCS#5的
该版本应包括id-hmacWithSHA1(见附录B.1.1)和其它任何由应用定义的OID 。
PBKDF2-PRFsALGORITHM-IDENTIFIER::=
{{NULLIDENTIFIEDBYid-hmacWithSHA1},...}
缺省的伪随机函数是HMAC-SHA-1:
algid-hmacWithSHA1AlgorithmIdentifier{{PBKDF2-PRFs}}::=
{algorithmid-hmacWithSHA1,parametersNULL:NULL}
A.3PBES1
依据密钥导出函数有下层散列函数和下层的块密码算法,使用不同的对象标识符标识
PBES1加密方法(6.1节),总结在下表:
散列函数 块密码算法 OID
MD2DESpkcs-5.1
MD2RC2pkcs-5.4
MD5DESpkcs-5.3
MD5RC2pkcs-5.6
SHA-1DESpkcs-5.10
SHA-1RC2pkcs-5.11
pbeWithMD2AndDES-CBCOBJECTIDENTIFIER::={pkcs-51}
pbeWithMD2AndRC2-CBCOBJECTIDENTIFIER::={pkcs-54}
pbeWithMD5AndDES-CBCOBJECTIDENTIFIER::={pkcs-53}
pbeWithMD5AndRC2-CBCOBJECTIDENTIFIER::={pkcs-56}
pbeWithSHA1AndDES-CBCOBJECTIDENTIFIER::={pkcs-510}
pbeWithSHA1AndRC2-CBCOBJECTIDENTIFIER::={pkcs-511}
对每一个OID,在AlgorithmIdentifier中同该OID相关联的参数域应具有类型
PBEParameter:
PBEParameter::=SEQUENCE{
saltOCTETSTRING(SIZE(8)),
iterationCountINTEGER}
类型PBEParameter的域有以下含义:
- salt指定盐值,一八字节串 。
- iterationCount指定迭代次数 。
A.4 PBES2
对象标识符id-PBES2标识PBES2加密方法(6.2节) 。
id-PBES2OBJECTIDENTIFIER::={pkcs-513}
对每一个OID,在AlgorithmIdentifier中同该OID相关联的参数域应具有类型PBES2-params:
PBES2-params::=SEQUENCE{
keyDerivationFuncAlgorithmIdentifier{{PBES2-KDFs}},
encryptionSchemeAlgorithmIdentifier{{PBES2-Encs}}}
类型PBES2-params的域有以下含义:
-keyDerivationFunc标识下层的密钥导出函数 。它应是一算法ID,其OID在集合PBES2-KDFs
中,对本版本的PKCS#5应包括id-PBKDF2(附录A.2) 。
PBES2-KDFsALGORITHM-IDENTIFIER::=
{{PBKDF2-paramsIDENTIFIEDBYid-PBKDF2},...}
-encryptionScheme标识下层的加密方法 。它应是一算法ID,其OID在集合PBES2-Encs,它
的定义留给应用程序 。例示的下层加密方法在附录B.2中给出 。
PBES2-EncsALGORITHM-IDENTIFIER::={...}
A.5 PBMAC1
对象标识符id-PBMAC1标识PBMAC1消息认证方法(节7.1) 。
id-PBMAC1OBJECTIDENTIFIER::={pkcs-514}
在AlgorithmIdentifier中同该OID相关联的参数域应具有类型PBMAC1-params:
PBMAC1-params::=SEQUENCE{