2

我有 PEM 格式的 RSA 公钥和私钥(所有 p、q、e、n、d)。我很想知道:

  • PK11_Sign()和(来自 OpenSSL/Mozilla NSS 库)如何PK11_Verify()与RSA 一起工作?PK11_VerifyRecover()
  • 填充如何应用于要签名的输入消息?

我的问题的上下文是:我看到 PK11_Sign() 在签名期间为我的输入数据添加了一些填充。例如(假设密钥大小为 162 位):

我的输入 = 31323334353036373839
填充输入 = 1FFFFFFFFFFFFFFFF0031323334353036373839

我想知道:

  • 这个填充方案的名称是什么以及它是如何工作的?
  • 上述 OpenSSL 函数的默认填充方案是什么?例如,如果我执行“ openssl rsautl -in input.txt -inkey mykey.pem -out signed.txt”,将使用哪种填充方案?
4

1 回答 1

3
  • PK11_Sign等使用 PKCS#1 v.1.5 签名,其中包括您提到的填充。

  • 填充方案是称为 EMSA-PKCS1-V1_5-ENCODE 的算法的一部分。我不相信它有名字,尽管它可能被非正式地称为“PKCS#1 v.1.5 签名填充”。它在PKCS#1 标准中定义。

  • 根据文档,默认openssl rsautl使用 PKCS#1 v.1.5 签名,这意味着此填充。

于 2011-01-21T11:41:27.817 回答