计算机密码学实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
院系:计算机科学学院
专业:网络工程产业班
年级: 2013 课程名称:信息安全
学号: ************ *名:**
指导教师:**
2016年 6 月 6 日
年级 2013级
班号产业班学号 201321093022
专业网络工程姓名刘浏
实验名称 Enigma密码算法
实验
类型
设计型综合型创新型
实验
目的或要求通过使用Enigma密码模拟器,加深对古典密码体制的了解,为深入学习现代密码学奠定基础。
实验原理(算法流程)(1)消息的发送着利用Enigma模拟器进行下列操作:
明文:INFORMATION SECURITY
模拟器参数设置:UKW: B
Walzen: I II V
Ringstellung: F-06 V-22 N-14
Stecker: BG CD ER FV HN IU JK LM OP TY
生成:在转子的起始位置:XWB,生成INFORMA TION SECURITY的密文;同时给出模拟器在此结果时的屏幕截图。
写不完时,可另加附页。)
然后把转子的起始位置设为ABC,求出XWB的密文;同时给出模拟器在此结果时的屏幕截图。
最后把模拟器参数设置,转子的起始位置ABC,XWB的密文,INFORMATION SECURITY的密文发送给接收者。
发送内容:
PPX CTIZJ OCYNE EEADH HA VE
(2)接收者收到信息后:
对XWB 的密文,INFORMATION SECURITY的密文进行解密,给出明文,并且分别给出相应的屏幕截图。
明文为:INFORMA TION SECURITY
组内分工(可选)
实验结果分析及心得体会实验输出截图:
可以清楚地看见签名的信息、公钥产生的值(未完全截图)、私钥的值,以及私钥的签名结果和签名的认证结果。它们的计算方法和产生过程已经在前面讲清楚了,根据写入的消息(明文信息)计算出来的消息摘要、解密数字签名得到的消息摘要(即是本设计中的解密信息)。如果两个消息摘要是一样的则证明RSA 数字签名者的身份的真实性,从而实现了RSA数字签名。
成绩
评定教师签名:
年月日
实验原理(算
法流程)
图1 程序数据流示意图
本实验使用JSP+APPLET+JA V ABEAN技术:
A.程序逻辑结构:
客户端通过浏览器下载APPLET和加密解密算法jar包,把密码加密成密文后发往服务器。
服务器接收到后调用JA V ABEAN组件的方式解密密文,得到密码,连接数据库,查询数据库,对登陆信息中用户名和密码验证。
B.JavaBean组件
JavaBean就是一个Java类,也就意味着,JA V A的一切特性,此JavaBean没有图形显示代码,只是完成基本业务逻辑,JavaBean可以使用JA V A的封装、继承、多态,使用JavaBean 封装许多重复调用的代码,使用JavaBean可以达到显示与业务的分离,显示使用JSP,业务使用JavaBean
JavaBean的优点
(写不完时,可另加附页。)
·提高代码的可复用性
—对于通用的事务处理逻辑,数据库操作等都可以封装在JavaBean中,通过调用
JavaBean的属性和方法可以快速的进行程序设计。
·程序易于开发维护
—实现逻辑的封装,使事务处理和显示互不干扰。
·支持分布式运用
—多用JavaBean,尽量减少java代码和Jsp的混编。
C.Applet组件
Applet或Java小应用程序是一种在Web环境下,运行于客户端的Java程序组件。它也是上世纪90年代中期,Java在诞生后得以一炮走红的功臣之一。通常,每个Applet的功能都比较单一(例如仅用于显示一个舞动的Logo),因此它被称作“小应用程序”。
Applet必须运行于某个特定的“容器”,这个容器可以是浏览器本身,也可以是通过各种插件,或者包括支持Applet的移动设备在内的其他各种程序来运行。与一般的Java应用程序不同,Applet不是通过main方法来运行的。在运行时Applet通常会与用户进行互动,显示动态的画面,并且还会遵循严格的安全检查,阻止潜在的不安全因素(例如根据安全策略,限制Applet对客户端文件系统的访问)。
图2 Applet程序运行图
代码实现与截图展示:
用户登录组建如下所示:
代码如下所示:
import java.awt.*;
import java.applet.Applet;
import java.awt.event.*;
import ng.String;
import com.mima.jiami;
public class abc extends Applet
{
public Label nameLabel,passwardLabel,titleLabel;
public TextField name,passward;
public void init()
{
setLayout(null);
titleLabel = new Label("用户登陆");
titleLabel.setFont(new Font("Times New Roman",Font.BOLD,30));
titleLabel.setBackground(Color.orange);
nameLabel = new Label("用户名:");
nameLabel.setFont(new Font("Times New Roman",Font.BOLD,30));