项目名称 项目六 数字加密与数字签名 时间 2022.12.05
地点 知行楼601软件工程实验室 小组成员
1.理解数字签名的工作原理。
2.掌握数据加密和数字签名之间的区别。
3.掌握一种数据加密算法。
主要仪器设备:
计算机。
实验内容
编程实现加密与解密
实现数字签名
实验结果与分析
不能写与预期一致,每个实验内容应该有输入,对应的输出或展示效果
实验体会
写真实体会

实验(训)项目六 数字加密与数字签名

一、实验目的
1.理解数字签名的工作原理。
2.掌握数据加密和数字签名之间的区别。
3.掌握一种数据加密算法。
二、实验概述
1.数据加密技术:
(1)保证数据的安全传输,采用数据加密将被传输的数据转换为看似杂乱无章的数据。
(2)明文,密文,加密,解密,秘钥,加、解密算法,对称秘钥,非对称秘钥
2.数据签名技术:对网上传输的报文进行签名确认的一种方式
应用于安全技术系统,电子银行,电子证券,电子邮件等。
加密是把明文变成密文,保证数据的安全性。
加签是保证数据来源的可靠性和数据的完整性。
三、实验原理
数据加密:是一门历史悠久的技术,指通过加密算法和加密密钥将明文转变为密文,而解密则是通过解密算法和解密密钥将密文恢复为明文。它的核心是密码学。数据加密目前仍是计算机系统对信息进行保护的一种最可靠的办法。它利用密码技术对信息进行加密,实现信息隐蔽,从而起到保护信息的安全的作用。
数字签名:发送报文时,发送方用一个哈希函数从报文文本中生成报文摘要,然后用自己的私人密钥对这个摘要进行加密,这个加密后的摘要将作为报文的数字签名和报文一起发送给接收方,接收方首先用与发送方一样的哈希函数从接收到的原始报文中计算出报文摘要,接着再用发送方的公用密钥来对报文附加的数字签名进行解密,如果这两个摘要相同、那么接收方就能确认该数字签名是发送方的。

发送方:将需要的发送的消息, 经过hash运算得到摘要信息,使用私钥加密这串摘要,得到数据签名,将明文和数据签名发送给接收方。
接收方:将收到的明文,经过hash运算得到摘要A,将收到的数据签名使用公钥解密得到的摘要B, 将摘要A与摘要B进行比较, 相同说明信息没有被篡改。
将使用RSA算法来实现数据加密和数字签名。


四、安全实验步骤
(一)数据加密
打开网页:https://cloud.codegen.cc/exts/ASymRSA


1.选择秘钥的长度
2.生成秘钥
3.公钥用于加密,私钥用于解密(私钥要保存好)
4.和5. 可以选择输入简单的数据或者上传文件

  1. 加密
  2. 得到加密之后的结果
    (二)数据解密

    1.将刚刚加密得到的数据,放到区域1中解密, 可以得到明文

    将私钥的首个字母改为大写, 再次进行解密, 无法得到原文, 只有公钥相对应的私钥可以解密原文,所有私钥一定要保密好。

使用代码实现:
新建maven工程, 导入依赖


commons-codec
commons-codec
1.14

(三)数字签名
打开网页:https://www.toolnb.com/tools/rsaqmtest.html

1.选择秘钥长度, 生成秘钥对
2.输入需要生成签名的数据
3.生成签名

输入未经篡改的明文和数字签名, 使用公钥可以验证成功

当修改明文时,验证失败,可说明在数据在传输过程中被篡改。

文档更新时间: 2022-12-19 21:27   作者:admin