数字签名实验openssl
openssl
OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上。
OpenSSL 是一个开源项目,其组成主要包括一下三个组件:
-
openssl:多用途的命令行工具
-
libcrypto:加密算法库
对称加密:
提供了8种对称加密算法,其中7种是分组加密算法,仅有的一种流加密算法是RC4。这7种分 组加密算法分别是AES、DES、Blowfish、CAST、IDEA、RC2、RC5
非对称加密:
实现了4种非对称加密算法,包括DH算法、RSA算法、DSA算法和椭圆曲线算法(EC)。
-
libssl:加密模块应用库,实现了ssl及tls
两种运行模式:交互模式和批处理模式。
实验目的
过实验理解数字摘要、数字签名原理与应用
实验步骤
1. 创建明文文档plain.txt,写入内容。
2. 计算plain.txt的哈希值,输出到文件digest.txt。
3. 利用RSA算法对摘要进行签名。
(1)创建1024位的RSA私钥,写入文件rsprivatekey.pem,同时用3DES加密,设置密码。
(2)从文件rsprivatekey.pem中提取公钥,写入文件rsapublickey.pem.
(3)利用上述私钥对摘要digest.txt进行签名,生成签名文档signature.bin
实验过程
1.在openssl/bin下创建明文文档plain.txt,写入内容
2. 计算plain.txt的哈希值,输出到文件digest.txt。\
sha1
3. 利用RSA算法对摘要进行签名。
(1)创建1024位的RSA私钥,写入文件rsprivatekey.pem,同时将私钥用3DES加密,并设置密码。
(2)从文件rsprivatekey.pem中提取公钥,写入文件rsapublickey.pem.
(3)利用上述私钥对摘要digest.txt进行签名,生成签名文档signature.bin
输入之前设置的密码1234
4. 对签名signature.bin进行公钥验证。(rsautl--L)