图表——基于口令的密钥派生标准对比分析

1. 概况

基于口令的密钥派生函数及其应用方面的标准,目前搜索到如下几个标准。

  1. PKCS #5 v2.1: Password-Based Cryptography Standard. RSA Laboratories, 2006.见PKCS#5 (基于口令的密钥标准)笔记》
  2. NIST SP800-132: Recommendation for Password-Based Key Derivation. Part 1: Storage Applications. NIST, 2010. 见NIST SP 800-132(基于口令的密钥导出PBKDF)笔记》
  3. RFC 8018: PKCS #5: Password-Based Cryptography Specification Version 2.1. IETF, 2017. 等同PKCS #5 V2.1。
  4. GM/T 0091-2020: 基于口令的密钥派生规范. 密码行业标准化技术委员会, 2020. 见GMT 0091-2020(基于口令的密钥派生规范)笔记》

图1.1 基于口令的密钥派生函数及其应用方面的标准

2. 对比

2.1 基本情况对比

  • PKCS#5 V2.1:最全,两个PBKDF方案(一个为兼容早期V1.5版本,不安全;另一个更安全,推荐),两个PBES方案,一个PBMAC方案。
  • NIST SP800-132:只有一个PBKDF方案,额外补充使用导出密钥直接/间接保护数据的方案。
  • RFC 8018:照搬PKCS#5。
  • GM/T 0091-2012:挑选PKCS#5的优选方案PBKDF2系列——PBKDF2 + PBES2 + PBMAC1方案;额外补充OID定义、ASN.1语法和结构定义。

表2.1 四个标准基本信息的对比

(RFC8018等同采用PKCS#5 v2.1,故合并)

PKCS#5 v2.1/ RFC8018

NIST SP800-132

GM/T 0091

主体机构

RSA实验室 / IETF

NIST

密标委

发布时间

2006年 / 2017

2010

2020年

密钥派生

PBKDF1

(兼容V1.5,安全性差)

PBKDF2

(推荐)

PBKDF2

PBKDF2

加密方案

PBES1

(兼容V1.5,用PBKDF1)

PBES2

(推荐;使用PBKDF2)

概述PBKDF导出密钥直接/间接保护数据的方案

PBES2

(使用PBKDF2)

MAC方案

PBMAC1

(使用PBKDF2)

不涉及

PBMAC1

(使用PBKDF2)

备注

仅采用PBKDF2

采用PBKDF2系列

图2.1 四个标准的关系

2.2 PBKDF参数对比

表2.2 PBKDF参数对比

(RFC8018等同采用PKCS#5 v2.1,故合并)

PKCS#5 v2.1/ RFC8018

NIST SP800-132

GM/T 0091

PRF

PBKDF1

HASH(MD2、MD5、SHA-1)

PBKDF2

给出实例HMAC-SHA1、HMAC-SHA2

PBKDF1

PBKDF2

实例为HMAC,杂凑函数用FIPS/NIST获准的,如SHA2/SHA3

PBKDF1

PBKDF2

给出一个实例,为HMAC-SM3

盐值salt

>= 64比特

>= 64比特

>= 64比特

迭代次数c

>= 1000

>= 1000

>= 1024

备注

仅使用PBKDF2

仅使用PBKDF2

2.3 PBES参数对比

表2.3 PBES参数对比

(1. RFC8018等同采用PKCS#5 v2.1,故合并;2. NIST SP800-132未列出PBES,故略去)

PKCS#5 v2.1/ RFC8018

GM/T 0091

基础PBKDF

PBES1使用PBKDF1

PBES2使用PBKDF2

PBES1——

PBES2使用PBKDF2

基础

加密方案

PBES1实例DES / RC2 – CBC

PBES2实例AES-CBC-pad

PBES1——

PBES2实例SM4-CBC-pad

盐值salt

>= 64比特

>= 64比特

迭代次数c

>= 1000

>= 1024

备注

仅使用PBES2

2.4 PBMAC参数对比

表2.4 PBMAC参数对比

(1. RFC8018等同采用PKCS#5 v2.1,故合并;2. NIST SP800-132未列出PBES,故略去)

PKCS#5 v2.1/ RFC8018

GM/T 0091

基础PBKDF

使用PBKDF2

使用PBKDF2

基础

MAC方案

实例HMAC-SHA1或HMAC-SHA2

实例HMAC-SM3

盐值salt

>= 64比特

>= 64比特

迭代次数c

>= 1000

>= 1024

备注

仅使用PBES2

posted @ 2021-08-19 17:51  艾米的爸爸  阅读(0)  评论(0)    收藏  举报  来源