OpenSSL数字签名实验
实验目的
通过实验理解数字摘要、数字签名原理与应用
实验步骤
-
创建明文文档plain.txt,写入内容。
-
计算plain.txt的哈希值,输出到文件digest.txt。
-
利用RSA算法对摘要进行签名。
-
创建1024位的RSA私钥,写入文件rsaprivatekey.pem,同时用3DES加密,设置密码。
-
从文件rsaprivatekey.pem中提取公钥,写入文件rsapublickey.pem.
-
利用上述私钥对摘要digest.txt进行签名,生成签名文档signature.bin
-
-
对签名signature.bin进行公钥验证。
实验过程
- 在openssl/bin下创建明文文档plain.txt,写入内容。
- 计算plain.txt的哈希值,输出到文件digest.txt。
$ openssl sha1 -out digest.txt plain.txt
-
利用RSA算法对摘要进行签名。
-
创建1024位的RSA私钥,写入文件rsaprivatekey.pem,同时将私钥用3DES加密,并设置密码。
openssl genrsa -out rsaprivatekey.pem -passout pass:123456 -des3 1024
- 从文件rsaprivatekey.pem中提取公钥,写入文件rsapublickey.pem.
openssl rsa -in rsaprivatekey.pem -passin pass:123456 -pubout -out rsapublickey.pem
- 利用上述私钥对摘要digest.txt进行签名,生成签名文档signature.bin
openssl rsautl -sign -inkey rsaprivatekey.pem -in digest.txt -out signature.bin
- 对签名signature.bin进行公钥验证。
openssl rsautl -verify -inkey rsapublickey.pem -pubin -keyform PEM -in signature.bin