Generazione, firma e verifica dei certificati digitali

Quindi ecco una domanda dal mio progetto.

In this task, we will use OpenSSL to generate digital signatures. Please prepare a file (example.txt) of any size. Also prepare an RSA public/private key pair. Then do the following: 1. Sign the SHA256 hash of example.txt; save the output in example.sha256. 2. Verify the digital signature in example.sha256. 3. Slightly modify example.txt, and verify the digital signature again. Please describe how you performsd the above three operations (eg, the exact commands that you used, etc.). Describe what you observed and explain your observations. Please also explain why digital signatures are useful in general. 

Quindi, faccio quanto segue.

1.Creare una coppia di chiavi privata / pubblica

 openssl genrsa -out private.pem 1024 

2. Estrazione di chiave pubblica.

 openssl rsa -in private.pem -out public.pem -outform PEM -pubout 

3. Crea hash dei dati.

 echo 'data to sign' > example.txt openssl dgst -sha256  hash 

4. Firma l’hash utilizzando la chiave privata in un file chiamato example.sha256

 openssl rsautl -sign -inkey private.pem -keyform PEM -in hash > example.sha256 

5. Verifica il file (esempio.txt) e la firma digitale (esempio.sha256)

 openssl dgst -sha256 -verify public.pem -signature example.sha256 example.txt 

Dopo aver fatto tutto questo, ricevo un messaggio di errore che dice ” Errore di verifica

Per favore correggimi se ho sbagliato qualcosa da qualche parte.

     Generazione di una coppia di chiavi privata / pubblica.
     1. openssl genrsa -out private.pem 1024
     2. openssl rsa -in private.pem -out public.pem -outform PEM -pubout
    
    
     Cartello.
     openssl dgst -sha256 -sign private.pem -out SLA.txt.sha256 SLA.txt 
    
     Verificare
     openssl dgst -sha256 -verify public.pem -signature SLA.txt.sha256 SLA.txt