(一)实验目的
通过实验理解数字摘要、数字签名原理与应用
补充:# 用SHA1算法计算文件file.txt的哈西值,输出到stdout
openssl dgst -sha1 file.txt
# 用SHA1算法计算文件file.txt的哈西值,输出到文件digest.txt
openssl sha1 -out digest.txt file.txt
用DES3算法的CBC模式加密文件plaintext.doc,
# 加密结果输出到文件ciphertext.bin
openssl enc -des3 -salt -in plaintext.doc -out ciphertext.bin
# RSA
# 产生1024位RSA私匙,用3DES加密它,口令为trousers,
# 输出到文件rsaprivatekey.pem
openssl genrsa -out rsaprivatekey.pem -passout pass:trousers -des3 1024
# 从文件rsaprivatekey.pem读取私匙,用口令trousers解密,
# 生成的公钥匙输出到文件rsapublickey.pem
openssl rsa -in rsaprivatekey.pem -passin pass:trousers -pubout -out rsapubckey.pem
# 用公钥匙rsapublickey.pem加密文件plain.txt,
# 输出到文件cipher.txt
openssl rsautl -encrypt -pubin -inkey rsapublickey.pem -in plain.txt -out cipher.txt
(二)实验步骤
1. 创建明文文档plain.txt,写入内容。
2. (打开bin目录下的exe文件运行)计算plain.txt的哈希值,输出到文件digest.txt。
注意这个地方是sha1 =是数字1而不是字母L
3. 利用RSA算法对摘要进行签名。
(1)创建1024位的RSA私钥,写入文件rsaprivatekey.pem,同时用3DES加密,设置密码。
(2)从文件rsaprivatekey.pem中提取公钥,写入文件rsapublickey.pem.
(3)利用上述私钥对摘要digest.txt进行签名,生成签名文档signature.bin
4.对签名signature.bin进行公钥验证。
两者进行对比: