计算机网络实验报告9 加密,数字签名与证书

实验8 加密、数字签名与证书

1. 实验目的

  • 了解对称加密、非对称加密体制概念

  • 了解散列函数、数字签名和数字证书的概念和理论

  • 掌握基于Openssl的对称加密、密钥对的创建和应用

  • 掌握基于Openssl数字签名和数字证书的创建和应用

2. 实验环境

  • 硬件要求:阿里云云主机ECS 一台。

  • 软件要求:Linux/ Windows 操作系统

3. 实验内容

OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上。

参考资料:

https://www.openssl.org/

https://gitee.com/mirrors/openssl?utm_source=alading&utm_campaign=repo#download

https://www.openssl.org/

https://www.jianshu.com/p/fb2ae3dc7986

3.1对称加密

安装Openssl,并准备任意内容的文本文档lx.txt,利用对称加密算法对lx.txt进行加密和解密操作。

3.2 散列函数

计算lx.txt的MD5和SHA256散列值

3.3 非对称加密

创建2048位的公钥密码体制RSA密钥对。利用创建的公钥加密lx.txt,私钥进行解密操作

3.4 数字签名

对文件lx.txt进行数字签名并鉴别

3.5 证书

使用openssl创建自签名证书

4. 实验结果与分析

4.1 对称加密

4.1.1 安装Openssl。
yum install Openssl Openssl devel -y

4.1.2 创建lx.txt文件,并在文件中输入内容。

输入以下代码进入内容编辑界面,输入所要输出的内容,按ESC,并键入:wq退出编辑界面。

vi lx.txt

在退出编辑界面之后,输入以下代码进行查看所输入的内容。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DmwUmoMz-1685008855297)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20230525155653065.png)]

4.1.3 利用对称加密算法对lx.txt进行加密操作。

输入以下代码,将lx.txt中的内容加密到encrypt.txt中,并利用cat encrypt.txt查看加密之后的文件的内容。

openssl enc -e -des -in lx.txt -out encrypt.txt -pass pass:218562409

4.1.4 利用对称加密算法进行解密。

输入以下代码,将encrypt.txt中的内容解密到文件decrypt.txt中,同样运用cat decrypt.txt进行查看。

openssl enc -d -des -in encrypt.txt -out decrypt.txt -pass pass:218562409

4.2 散列函数

4.2.1 计算lx.txt的MD5散列值。

运行以下代码进行计算MD5的散列值,并将计算后的值存入MD5.txt中,运用cat MD5.txt进行查看。

openssl md5 -out MD5.txt lx.txt

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6TyYTdFQ-1685008855298)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20230525161054689.png)]

4.2.2 计算lx.txt的SHA256散列值。

运行以下代码进行计算SHA256的散列值,并将计算后的值存入SHA256.txt中,运用cat SHA256.txt进行查看。

openssl sha256 -out SHA256.txt lx.txt

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zBcaRxr1-1685008855299)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20230525161654510.png)]

4.3 非对称加密

4.3.1 创建2048位的公钥密码体制RSA密钥对。

输入以下代码进行创建2048位的私钥。

openssl genrsa -out private_key.pem 2048

再输入以下代码进行创建2048位的公钥密码体制RSA密钥对。

openssl rsa -in private_key.pem -pubout -out public_key.pem
4.3.2 利用创建的公钥加密lx.txt。

输入以下代码,将lx.txt中的内容通过创建的公钥加密到pb_lx.txt.encrypt文件中,并利用cat进行查看。

openssl rsautl -encrypt -in lx.txt -inkey public_key.pem -pubin -out pb_lx.txt.encrypt

4.3.3 利用创建的私钥进行解密操作

输入以下代码,将pb_lx.txt.encrypt中加密的内容通过创建的私钥进行解密,将内容解密到文件pb_lx.txt.decrypt中并利用cat进行查看。

openssl rsautl -decrypt -in pb_lx.txt.encrypt -inkey private_key.pem -out pb_lx.txt.decrypt

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IHLsQrpz-1685008855300)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20230525163322214.png)]

4.4 数字签名

4.4.1 对文件lx.txt进行数字签名

输入以下代码,对文件lx.txt生成私钥签名,并运用cat进行查看。

openssl dgst -sha1 -sign private_key.pem -out pr_lx.txt.signed lx.txt

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HviN2Eyl-1685008855300)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20230525163744195.png)]

4.4.2 对文件lx.txt的数字签名进行鉴别

输入以下代码,进行公钥验证签名。

openssl dgst -sha1 -verify public_key.pem -signature pr_lx.txt.signed lx.txt

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7vpwuL6t-1685008855300)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20230525164029603.png)]

4.5 证书

使用openssl创建自签名证书

4.5.1 创建根目录。
openssl genrsa -out rootCA.key 4096

在这里插入图片描述

4.5.2 创建并自签名根证书。
openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 365 -out rootCA.crt

4.5.3 创建证书密钥
openssl genrsa -out xju.com.key 4096

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1992LSYH-1685008855301)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20230525170255211.png)]

4.5.4 配置 certificate.conf 文件.
vi certificate.conf

4.5.5 创建签名
openssl req -new -key xju.com.key -config certificate.conf -out xju.com.csr

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pzhiWW7c-1685008855301)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20230525173912905.png)]

4.5.6 生成证书
openssl x509 -req -in xju.com.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out xju.com.crt -days 365 -sha256 -extfile certificate.conf -extensions req_ext

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oddt5OI8-1685008855301)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20230525174050849.png)]

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
实验目的: 1. 了解加密数字签名证书的基本概念; 2. 熟悉 OpenSSL 工具的使用; 3. 掌握 OpenSSL 工具生成证书加密数字签名的方法。 实验环境: - 操作系统:Windows 10; - 工具软件:OpenSSL实验步骤: 1. 生成自签名证书 使用 OpenSSL 工具生成自签名证书的命令为: ``` openssl req -new -x509 -keyout server.key -out server.crt -days 365 ``` 这条命令将生成一个自签名的证书,其中: - `-new` 表示生成一个新的证书请求; - `-x509` 表示生成自签名证书; - `-keyout` 表示生成的私钥文件名; - `-out` 表示生成的证书文件名; - `-days` 表示证书有效期天数。 2. 加密与解密 使用 OpenSSL 工具进行加密和解密的命令为: ``` openssl enc -aes-256-cbc -in plaintext.txt -out ciphertext.enc -pass pass:password openssl enc -d -aes-256-cbc -in ciphertext.enc -out plaintext.txt -pass pass:password ``` 这两条命令分别表示加密和解密操作,其中: - `-aes-256-cbc` 表示使用 AES-256 算法加密; - `-in` 表示输入文件名; - `-out` 表示输出文件名; - `-pass` 表示加密和解密所用的密码。 3. 数字签名与验证 使用 OpenSSL 工具进行数字签名和验证的命令为: ``` openssl dgst -sha256 -sign private.key -out signature.sha256 plaintext.txt openssl dgst -sha256 -verify public.key -signature signature.sha256 plaintext.txt ``` 这两条命令分别表示数字签名和验证操作,其中: - `-sha256` 表示使用 SHA-256 算法签名; - `-sign` 表示使用私钥进行签名; - `-out` 表示输出签名文件名; - `-verify` 表示使用公钥进行验证; - `-signature` 表示签名文件名。 实验结果: 通过 OpenSSL 工具生成了自签名证书,并使用该证书进行加密和解密操作,同时也使用 OpenSSL 工具进行了数字签名和验证操作。 实验结论: OpenSSL 工具是一个功能强大的加密工具,可以方便地生成证书、进行加密、解密、数字签名和验证等操作。在实际开发中,可以使用 OpenSSL 工具来保障数据的安全性和完整性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值