PKCS#5研究——第三部分 基于口令的消息认证方案

仅有一个基于口令的消息认证方案PBMAC1,如下表。

表5.1 基于口令的加密方案PBES1和PBES2对比

hLen为HASH函数的输出长度)

项目

PBMAC1.

使用的PBKDF

PBKDF2

使用的密码算法

HMAC

(底层HASH使用SHA1和SHA2)

使用

推荐

 

7.1 PBMAC1

7.1.1 PBMAC1 generation

函数:C = PBMAC1-Generate (M, P, S, c dkLen)

功能:基于口令的加密方案PBES1的加密算法

输入参数:

  1. M:消息。
  2. P:口令,任意长度的字符串(通常为ASCII 或UTF-8字符)。
  3. S:盐值,8字节。无需保密,增加密文多变性。
  4. c:迭代次数,越大越好,建议不小于1000。
  5. dkLen:导出密钥的字节长度。

内部参数:

  1. MAC:HMAC-SHA1或HMAC-SHA2。

返回数据:

  1. T:消息检验码。

执行步骤:

步骤1:生成导出密钥,DK = PBKDF:2 (P, S, c, dkLen)。

步骤2:生成消息检验码T = MAC(DK, M)。

步骤3:输出消息检验码T

7.1.2 PBMAC1 verification

函数:C = PBMAC1-Verify (M, P, S, c, dkLen, T)

功能:基于口令的加密方案PBES1的加密算法

输入参数:

  1. M:消息。
  2. P:口令,任意长度的字符串(通常为ASCII 或UTF-8字符)。
  3. S:盐值,8字节。无需保密,增加密文多变性。
  4. c:迭代次数,越大越好,建议不小于1000。
  5. dkLen:导出密钥的字节长度。
  6. T:消息检验码。

内部参数:

  1. MAC:HMAC-SHA1或HMAC-SHA2。

返回数据:

  1. ret:TRUE为验证通过,FALSE为验证失败。

执行步骤:

步骤1:生成导出密钥,DK = PBKDF2 (P, S, c, dkLen)。

步骤2:生成消息检验码T1= MAC(DK, M)。

步骤3:比较T1和T,两者相同则返回ret = TRUE,否则返回ret = FALSE。

 

猜你喜欢

转载自blog.csdn.net/samsho2/article/details/83987045