欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    信息安全实验报告(共16页).doc

    • 资源ID:13544204       资源大小:407.50KB        全文页数:16页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    信息安全实验报告(共16页).doc

    精选优质文档-倾情为你奉上院 系: 计算机科学学院 专 业:计算机科学与技术年 级: 09级 课程名称: 信息安全 学号姓名: () () 指导教师: 孟博 2012年 5月 1日年级 09级 班号 计科二班 学号  专业计算机科学与技术 姓名  实验名称  Engima密码算法实验类型设计型综合型创新型实验目的或要求  通过使用Engima密码模拟器,加深对古典密码体制的了解,为深入学习现代密码学奠定基础。实验原理(算法流程) 一、实验原理1981年,谢尔比乌斯发明了Engima。Engima加密电子机械看起来是一个装满了复杂而精致的元件的盒子。它有三个部分:键盘、转子和显示器,键盘、转子和显示器由电线相连,转子本身也集成了6条线路(在实物中是26条)。Engima加密的关键:不是一种简单替换密码,而是“复式替换密码”。通过Engima密码模拟器,我们可以了解古典密码体制由p、c、k、D五个部分组成。分别代表:所有可能明文的有限集,所有可能密文的有限集,密钥空间,加密函数,解密函数。同时知道明文通过加密得到密文,密文通过解密得到原始明文。二、实验步骤1、使用消息的发送者利用Engima模拟器进行下列操作:明文:INFORMATION SECURITY模拟器参数设置:UKW: BWalzen: I II VRingstellung: F-06 V-22 N-14 Stecker: BG CD ER FV HN IU JK LM OP TY如图所示:(写不完时,可另加附页。)实验原理(算法流程)   生成:在转子的起始位置:XWB,生成INFORMATION SECURITY的密文。如图所示:然后把转子的起始位置设为ABC,求出XWB的密文;如图所示: 最后把模拟器参数设置,转子的起始位置ABC,XWB的密文,INFORMATION SECURITY的密文发送给接收者。 (写不完时,可另加附页。)组内分工(可选)无实验结果分析及心得体会三、实验结果分析实验内容以及上述实验步骤是按照Engima密码算法一步步进行得到结果。通过参数设置可以将一个明文加密成一个密文,发送给接受者以后,接受者进行解密得到明文。其中,参数的设置起到了关键性的作用。四、心得体会通过本次实验了解了古典密码体制,对Engima密码算法有了详细和系统的了解,在惊叹Engima机精密的设计这一古典密码加密的巅峰之作时,对密码的加密解密有了大概的认知。成绩评定教师签名: 年 月 日备注:源代码附后,源代码要求有注释说明年级 09级 班号 计科二班 学号  专业计算机科学与技术 姓名  实验名称  基于RSA的数字签名实现实验类型设计型综合型创新型实验目的或要求掌握RSA算法的基本原理,通过用RSA算法对实际数据进行加密和解密来深刻了解RSA的运行原理。对数字签名有所了解,理解和掌握MD5算法,以及如何利用RSA和MD5算法来实现数字签名。 实验原理(算法流程)  一、实验原理 公钥密码体制中,解密和加密密钥不同,解密和加密可分离,通信双方无须事先交换密钥就可建立起保密通信,较好地解决了传统密码体制在网络通信中出现的问题.另外,随着电子商务的发展,网络上资金的电子交换日益频繁,如何防止信息的伪造和欺骗也成为非常重要的问题.数字签名可以起到身份认证,核准数据完整性的作用.目前关于数字签名的研究主要集中基于公钥密码体制的数字签名.公钥密码体制的特点是:为每个用户产生一对密钥(PK和SK);PK公开,SK保密;从PK推出SK是很困难的;A,B双方通信时,A通过任何途径取得B的公钥,用B的公钥加密信息.加密后的信息可通过任何不安全信道发送.B收到密文信息后,用自己私钥解密恢复出明文.RSA公钥密码体制到目前为止还是一种认可为安全的体制. RSA算法和用RSA算法实现数字签名的理论,以及它们在实际应用中的实现.二、RSA算法流程RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。 RSA的算法涉及三个参数,n、e1、e2。 其中,n是两个大质数p、q的积,n的二进制表示时所占用的位数,就是所谓的密钥长度。 e1和e2是一对相关的值,e1可以任意取,但要求e1与(p-1)*(q-1)互质;再选择e2,要求(e2*e1)mod(p-1)*(q-1)=1。 n及e1),(n及e2)就是密钥对。 RSA加解密的算法完全相同,设A为明文,B为密文,则:A=Be1 mod n;B=Ae2 mod n; e1和e2可以互换使用,即: A=Be2 mod n;B=Ae1 mod n;(写不完时,可另加附页。)实验原理(算法流程)   三、主要代码实现 /*密码生成组件。*/class KeyPanel extends JPanelKeyPanel(String str)JLabel label = new JLabel(str);JTextField fileText = new JTextField(35);JButton chooseButton = new JButton("随机产生");this.add(label);this.add(fileText);this.add(chooseButton);clickAction ca = new clickAction(this);chooseButton.addActionListener(ca);/返回生成的密码public String getKey()JTextField jtf = (JTextField)this.getComponent(1);return jtf.getText();private class clickAction implements ActionListenerclickAction(Component c)cmpt = c;public void actionPerformed(ActionEvent event)tryKeyGenerator kg = KeyGenerator.getInstance("DES");kg.init(56);Key ke = kg.generateKey();byte bytK1 = ke.getEncoded();ke = kg.generateKey();byte bytK2 = ke.getEncoded();ke = kg.generateKey();byte bytK3 = ke.getEncoded();JPanel jp = (JPanel)cmpt;JTextField jtf = (JTextField)jp.getComponent(1);jtf.setText(getByteStr(bytK1)+getByteStr(bytK2)+getByteStr(bytK3);catch(Exception e)e.printStackTrace();/*输入密码的字符形式,返回字节数组形式。如输入字符串:AD67EA2F3BE6E5AD返回字节数组: * 173,103,234,47,59,230,229,173 */private byte getKeyByStr(String str)byte bRet = new bytestr.length()/2;for(int i=0;i<str.length()/2;i+)Integer itg =new Integer(16*getChrInt(str.charAt(2*i) + getChrInt(str.charAt(2*i+1);bReti = itg.byteValue();return bRet;(写不完时,可另加附页。)组内分工(可选)无实验结果分析及心得体会四、实验结果新建一个密钥文件:生成:key1.pri和key1.pub新建一个明文文件mingwen.txt并输入xtiqjy进行加密过程:实验结果分析及心得体会将密文解密的结果存入output.txt该文件中。确定后打开output.txt得到解密后的内容为:xtiqjy即为加密的内容。编程实现MD5算法:(源码附后)1、新建要加密的文件 input.txt 输入xtiqjy,随机产生密码:加密后生成:input.txt.tdes文件。2、选择第1步生成的文件,用同样的密码解密:选择保存文件output.txt后: 实验结果分析及心得体会生成output.txt文件,进行解密得到output.txt内容为:xtiqjy五、心得体会通过本次试验初步掌握RSA算法的基本原理,通过用RSA算法对实际数据进行加密和解密来深刻了解RSA的运行原理。并且对数字签名有所了解,进一步掌握MD5算法,以及如何利用RSA和MD5算法来实现数字签名。成绩评定教师签名: 年 月 日备注:源代码附后,源代码要求有注释说明年级 09级 班号 计科二班 学号  专业计算机科学与技术 姓名  实验名称基于B/S三层体系结构的用户身份验证系统的设计与开发实验类型设计型综合型创新型实验目的或要求 基于B/S三层体系结构,实现用户身份验证。能够熟练应用加密解密算法,基本掌握身份验证的整个流程。实验原理(算法流程)  一、实验原理  本实验使用JSP+APPLET+JAVABEAN技术:A. 程序逻辑结构:客户端通过浏览器下载APPLET和加密解密算法jar包,把密码加密成密文后发往服务器。服务器接收到后调用JAVABEAN组件的方式解密密文,得到密码,连接数据库,查询数据库,对登陆信息中用户名和密码验证。B. JavaBean组件JavaBean就是一个Java类,也就意味着,JAVA的一切特性,此JavaBean没有图形显示代码,只是完成基本业务逻辑,JavaBean可以使用JAVA的封装、继承、多态,使用JavaBean封装许多重复调用的代码,使用JavaBean可以达到显示与业务的分离,显示使用JSP,业务使用JavaBeanJavaBean的优点·提高代码的可复用性 对于通用的事务处理逻辑,数据库操作等都可以封装在JavaBean中,通过调用JavaBean的属性和方法可以快速的进行程序设计。·程序易于开发维护 实现逻辑的封装,使事务处理和显示互不干扰。·支持分布式运用 多用JavaBean,尽量减少java代码和Jsp的混编。C. Applet组件Applet或Java小应用程序是一种在Web环境下,运行于客户端的Java程序组件。它也是上世纪90年代中期,Java在诞生后得以一炮走红的功臣之一。通常,每个Applet的功能都比较单一(例如仅用于显示一个舞动的Logo),因此它被称作“小应用程序”。Applet必须运行于某个特定的“容器”,这个容器可以是浏览器本身,也可以是通过各种插件,或者包括支持Applet的移动设备在内的其他各种程序来运行。与一般的Java应用程序不同,Applet不是通过main方法来运行的。在运行时Applet通常会与用户进行互动,显示动态的画面,并且还会遵循严格的安全检查,阻止潜在的不安全因素(例如根据安全策略,限制Applet对客户端文件系统的访问)。(写不完时,可另加附页。)实验原理(算法流程)运行环境:运行Windows操作系统的PC机,具有Java语言编译环境。MSSqlServer2005(选用Tomcat 6.0.14搭建 WEB服务器)。本实验需要4个JSP网页页面文件分别为:登陆页面login.jsp ·在此处使用了Applet小程序实现的信息输入并实现对密码进行加密。信息验证页面login_conf.jsp·在此使用了JavaBean技术,在Jsp代码中实现调用JavaBean类,包括解密类(jiemi)和数据库连接类(SqlBean)登陆成功主页面login_success.jsp登陆失败提示页面login_failure.jsp编写java文件Applet程序abc.java编写连接数据库类SqlBean.java加密类 jiami.java解密类jiemi.java二、实验流程 图1 程序数据流示意图 实验原理(算法流程)三、关键代码import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.*;public class Login extends JFrame implements ActionListener JLabel titleLabel,nameLabel,passwordLabel; JTextField nameTextField; JPasswordField passwordField; JButton btnOk,btnCanel; JRadioButton emptyRadBtn,managerRadBtn; static String UserName, LoginPassword;/主界面设计部分 public Login() super("登录"); this.setSize(335, 245); this.setVisible(true); this.setBounds(300, 300,335, 245); titleLabel=new JLabel("登陆系统"); titleLabel.setFont(new Font("华文行楷",30,30); nameLabel=new JLabel("用户姓名:"); nameLabel.setFont(new Font("",15,15); passwordLabel=new JLabel("用户密码:"); passwordLabel.setFont(new Font("",15,15); nameTextField=new JTextField(10); nameTextField.setFont(new Font("",12,12); passwordField=new JPasswordField(10); passwordField.setFont(new Font("",12,12); btnOk=new JButton("确定"); btnCanel=new JButton("取消"); btnOk.addActionListener(this); btnCanel.addActionListener(this); btnOk.addActionListener(this); btnCanel.addActionListener(this);JPanel p1=new JPanel(),p2=new JPanel(),p3=new JPanel(),p4=new JPanel(),p5=new JPanel();p1.add(titleLabel); p2.add(nameLabel); p2.add(nameTextField); p3.add(passwordLabel); p3.add(passwordField);实验原理(算法流程)/关联数据库部分代码private void connectDB() String user=nameTextField.getText();char password=passwordField.getPassword();tryClass.forName("sun.jdbc.odbc.JdbcOdbcDriver");catch(Exception e)JOptionPane.showMessageDialog(null, "连接数据库失败!", "错误",JOptionPane.ERROR_MESSAGE);String url="jdbc:odbc:Driver=MicroSoft Access Driver (*.mdb);DBQ=DBLogin.mdb"tryConnection con=DriverManager.getConnection(url,"","");Statement st=con.createStatement();ResultSet rs=st.executeQuery("SELECT * FROM TestLogin WHERE UserName='"+user+"'");while(rs.next()UserName=rs.getString("UserName");LoginPassword=rs.getString("PassWord");st.close();con.close();catch(Exception e)JOptionPane.showMessageDialog(null, "读取数据失败!", "错误", JOptionPane.ERROR_MESSAGE);if(user.toLowerCase().equals(UserName.toLowerCase()&&isPasswordCorrect(password)new TestWin();hide();elseJOptionPane.showMessageDialog(null, "登录失败!", "警告", JOptionPane.ERROR_MESSAGE);nameTextField.setText("");passwordField.setText("");组内分工(可选)无实验结果分析及心得体会四、实验结果登陆页面:验证:(数据库服务器采用Access2003)登录成功:实验结果分析及心得体会登录失败:数据存储内容:实验结果分析及心得体会五、实验心得通过本次试验练习使用JavaEE编写登陆系统,并实现数据库查找功能,反馈给客户端。同时对数据进行加密后传输,使得信息在传递过程中的安全得到保障。本次试验虽然使用JavaEE自身函数自带库对数据进行加密,但对三层加密系统的工作流程也有所了解也熟悉,可谓收获不小。成绩评定教师签名: 年 月 日备注:源代码附后,源代码要求有注释说明专心-专注-专业

    注意事项

    本文(信息安全实验报告(共16页).doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开