计算机密码学实验报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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));

相关文档
最新文档