PKCS1 PSS PADDING的理解

PSS填充过程:

 

需要准备:

  1. Hash 函数:输出长度为hLen字节的摘要函数;
  2. MGF :掩码产生函数;
  3. 随机数生成函数(可选,用于生成salt,salt长度用sLen表示,由密钥模长和摘要算法结果长度决定,sLen最大长度:sLen = nLen-hLen-2,(2代表最后的0xbc和padding2的0x01);
  4. emBits 至少8hLen + 8sLen + 9(9的含义0xBC 8位,另外一位是至少还应该包含一个字节)

参数:

emLen EM 的字节长度 = emBits / 8 向上取整;

填充padding1固定8字节0x00;

填充padding2若干个0x00后面跟着一个0x01;其长度为至少为1字节(0x01);

dbMask、DB长度一致:(emLen - sLen - hLen - 1)字节,(1代表最后的0xbc);

填充生成过程:

  1. 生成消息M 的Hash值,mHash = Hash(M)
  2. 生成伪随机字节串作为salt,得到M’= padding1|| mHash || salt 的数据块,M’长度
  3. 生成M’ 的Hash值,H = Hash(M’)
  4. 构造数据块DB = padding2|| salt
  5. 计算H 的MGF值:dbMask = MGF(H, emLen - hLen - 1)
  6. 计算maskedDB = DB xor dbMask
  7. 将maskedDB 的最左8*emLen - emBits设为0
  8. EM = maskedDB || H || 0xbc

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值