PKCS1 OAEP PADDING的理解

OAEP填充过程:

需要准备:

  1. Hash 函数:输出长度为hLen字节的摘要函数;
  2. MGF :掩码产生函数;
  3. 随机数生成函数(用于生成seed,seed长度和hLen相同
  4. RSA密钥对模长k bytes
  5. 明文最大长度mLen小于等于k – 2hLen – 2(2hLen=seedLen+lHash, 2: 00 and 01)
  6. lHash为L, L为可选标识,如果L为空时,取空值HASH;

填充生成过程:

  1. L长度判断,不能超出限制(比如261 – 1 octets for SHA-1);
  2. 如果mLen > k – 2hLen – 2,报错;
  3. L为可选标识,如果L为空时,取空值HASH,结果为lHash;
  4. 产生PS,PS长度k – mLen – 2hLen – 2(2hLen=seedLen+lHash, 2: 00 and 01, mLen 明文长度);
  5. 计算DB = lHash || PS || 0x01 || M
  6. 产生随机seed,长度为hLen;
  7. 计算dbMask = MGF (seed, khLen – 1), 其中k为模长、hLen为seed长度,1为00l;
  8. 计算maskedDB = DB 异或 dbMask
  9. 计算seedMask = MGF (maskedDB, hLen);
  10. 计算maskedSeed = seed 异或 seedMask;
  11. EM = 0x00 || maskedSeed || maskedDB

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值