Come segno OpenSSL / Mozilla NSS RSA e verificare (funzioni PK11_Sign, PK11_Verify, PK11_VerifyRecover) lavoro?
-
16-10-2019 - |
Domanda
ho il mio RSA pubbliche e chiavi private (tutti p, q, e, n, d) in formato PEM. Sono curioso di sapere:
- Come
PK11_Sign()
,PK11_Verify()
ePK11_VerifyRecover()
( dalla libreria OpenSSL / Mozilla NSS ) lavoro con RSA? - Come l'imbottitura viene applicata al messaggio di input da firmare?
Il contesto della mia domanda è: ho visto PK11_Sign () aggiunge un po 'di imbottitura per i miei dati di input durante la firma. Ad esempio (data la dimensione della chiave è 162 bit):
my input = 31323334353036373839 padded input = 1FFFFFFFFFFFFFFFF0031323334353036373839
vorrei sapere:
- Qual è il nome di questo sistema di imbottitura e indicazioni su come funziona?
- Qual è lo schema imbottitura di default per quanto sopra funzioni OpenSSL menzionati? Per esempio, se mi esibisco "
openssl rsautl -in input.txt -inkey mykey.pem -out signed.txt
", quale schema di imbottitura sarà utilizzato?
Soluzione
-
PK11_Sign
ecc utilizza PKCS # 1 firme v.1.5, che comprende l'imbottitura si parla. -
Lo schema di imbottitura è parte del algoritmo chiamato EMSA-PKCS1-v1_5-ENCODE. Io non credo che abbia un nome, anche se potrebbe essere informalmente chiamato "PKCS # 1 v.1.5 firma imbottitura". Essa è definita in PKCS # 1 di serie .
-
Secondo la documentazione il valore predefinito per
openssl rsautl
è quello di utilizzare PKCS # 1 firma v.1.5, che implica questa imbottitura.