Cryptography OpenSSL/Mozilla NSS RSA签名和验证(PK11_签名、PK11_验证、PK11_验证恢复函数)是如何工作的?

Cryptography OpenSSL/Mozilla NSS RSA签名和验证(PK11_签名、PK11_验证、PK11_验证恢复函数)是如何工作的?,cryptography,openssl,rsa,mozilla,nss,Cryptography,Openssl,Rsa,Mozilla,Nss,我有PEM格式的RSA公钥和私钥(都是p、q、e、n、d)。我很想知道: PK11\u-Sign()、PK11\u-Verify()和PK11\u-VerifyRecover()(来自OpenSSL/Mozilla NSS库)如何与RSA协同工作 如何将填充应用于要签名的输入消息 我的问题的背景是:我看到PK11_Sign()在签名过程中为我的输入数据添加了一些填充。例如(给定密钥大小为162位): 我的输入=313233343533036373839 填充输入=1FFFFFFFFFFF00

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

  • PK11\u-Sign()
    PK11\u-Verify()
    PK11\u-VerifyRecover()
    (来自OpenSSL/Mozilla NSS库)如何与RSA协同工作
  • 如何将填充应用于要签名的输入消息
我的问题的背景是:我看到PK11_Sign()在签名过程中为我的输入数据添加了一些填充。例如(给定密钥大小为162位):

我的输入=313233343533036373839 填充输入=1FFFFFFFFFFF0031323334353036373839 我想知道:

  • 这个填充方案的名称是什么,以及它如何工作的指针
  • 上述OpenSSL函数的默认填充方案是什么?例如,如果我执行“
    openssl rsautl-in input.txt-inkey mykey.pem-out signed.txt
    ”,将使用哪个填充方案
      • PK11_-Sign
        etc.使用PKCS#1 v.1.5签名,其中包括您提到的填充

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

      • 根据
        openssl rsautl
        的默认值,它使用PKCS#1 v.1.5签名,这意味着这种填充

      my input = 31323334353036373839 padded input = 1FFFFFFFFFFFFFFFF0031323334353036373839