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

该实验介绍了OpenSSL在加密和认证中的应用,包括对称加密算法如DES对文件lx.txt的加解密,散列函数MD5和SHA256的使用来计算文件哈希值,非对称加密中RSA密钥对的生成及公钥加密和私钥解密,数字签名的生成与验证,以及自签名证书的创建过程。
摘要由CSDN通过智能技术生成

1、实验目的

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

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

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

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

2、实验环境 

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

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

3、实验内容

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

参考资料:

/index.html

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

/index.html

OpenSSL 介绍和使用 - 简书

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对称加密

安装 OpenSSL:登录阿里云服务器,输入命令:yum install openssl openssl-devel -y”

创建lx.txt文件:输入vi lx.txt命令创建 lx.txt 文件,随便写入一段内容,然后输入命令cat lx.txt 查看 lx.txt 文件的内容。

注:使用vi命令后,按i进入编辑,编辑完毕后按ESC,:wq即可保存退出

利用对称加密算法对lx.txt进行加密:输入openssl enc -e -des -in lx.txt -out encrypt.txt -pass pass:666999命令,即将文件内容加密到encrypt.txt文件,输入“cat encrypt.txt”命令可查看加密后的内容。

利用对称加密算法对lx.txt进行解密操作:输入openssl enc -d -des -in encrypt.txt -out decrypt.txt -pass pass:666999 命令,即将encrypt.txt文件的内容解密到decrypt.txt 文件,输入cat decrypt.txt命令可查看解密后的内容。

4.2 散列函数

 计算lx.txt的MD5散列值:输入openssl md5 -out MD5.txt lx.txt命令,再输入cat MD5.txt命令获取lx.txt 的MD5散列值:

计算lx.txt的SHA256散列值:输入命令openssl sha256 -out SHA256.txt lx.txt,再输入命令cat SHA256.txt 即可获取 lx.txt 的 SHA256 散列值:

4.3 非对称加密

创建2048位的公钥密码体制RSA密钥对:首先输入命令“openssl genrsa -out private_key.pem 2048,创建 2048 位的私钥。再输入命令openssl rsa -in private_key.pem -pubout -out public_key.pem,从而生成 2048 位的公钥密码体制 RSA 密钥对。

 利用创建的公钥加密lx.txt:输入openssl rsautl -encrypt -in lx.txt -inkey public_key.pem -pubin -out pb_lx.txt.encrypt命令,加密 lx.txt 文件内容至 pb_lx.txt.encrypt 文件,输入cat pb_lx.txt.encrypt命令可查看加密后的内容。

 私钥进行解密:输入openssl rsautl -decrypt -in pb_lx.txt.encrypt -inkey private_key.pem -out pb_lx.txt.decrypt命令,解密 pb_lx.txt.encrypt 文件内容至 pb_lx.txt.decrypt 文件, 输入cat pb_lx.txt.decrypt命令可查看解密后的内容。

4.4 数字签名

对文件lx.txt进行数字签名:输入openssl dgst -sha1 -sign private_key.pem -out pr_lx.txt.signed lx.txt命令,生成私钥签名。输入“cat pr_lx.txt.signed命令查看文件的内容。

鉴别:输入命令openssl dgst -sha1 -verify public_key.pem -signature pr_lx.txt.signed lx.txt,进行公钥验证签名。

4.5 证书

创建根目录:输入命令“openssl genrsa -out rootCA.key 4096”

创建并自签名根证书:输入命令:openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 365 -out rootCA.crt。其中Province name、Locality name等信息根据实际情况填写即可

创建证书秘钥:输入命令“openssl genrsa -out Yho.com.key 4096”

配置 certificate.conf 文件:输入命令“vi certificate.conf”,输入配置内容:

[req]

default_bits = 4096

prompt = no

req_extensions = req_ext

distinguished_name = dn

[dn]

C = CN

ST = Shaanxi

L = xian

O = Zhongxing

OU =Zhongxing

emailAddress = 2604216829@qq.com

CN = xxx.com

[req_ext]

extendedKeyUsage = serverAuth

subjectAltName = @alt_names

[alt_names]

DNS.1 = xxx.com

IP.1 = 139.224.196.250

 创建签名:输入命令 openssl req -new -key Yho.com.key -config certificate.conf -out Yhoo.com.csr

生成证书:输入命令:openssl x509 -req -in Yhoo.com.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out Yhoo.com.crt -days 365 -sha256 -extfile certificate.conf -extensions req_ext

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值