网络安全基础课程设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录

1课程设计简介 (2)

1.1 课程设计的目的 (2)

1.2 课程设计内容 (2)

2课程设计的整体实现过程 (2)

2.1流程分析 (2)

2.2算法实现代码 (4)

2.3测试与评价 (18)

3心得体会 (20)

4参考文献 (21)

1课程设计简介

1.1 课程设计的目的

在数据加密解密算法中,RSA是典型的双密钥体制,目前均在大量使用。通过实验,让我们充分理解和掌握RSA算法的使用。这种加密算法的特点主要是密钥的变化, RSA同时有两把钥匙,公钥与私钥。同时支持数字签名。数字签名的意义在于,对传输过来的数据进行校验。确保数据在传输工程中不被修改。

1.2 课程设计内容

我们一组设计一个使用RSA算法进行加密解密的系统。并设计操作界面,对输入的明文可以进行加解密以及对指定的文件可以加解密。

2课程设计的整体实现过程

2.1流程分析

甲方构建密钥对,将公钥公布给乙方,将私钥保留。

甲方使用私钥加密数据,然后用私钥对加密后的数据签名,发送给乙方签名以及加密后的数据;乙方使用公钥、签名来验证待解密数据是否有效,如果有效使用公钥对数据解密。

乙方使用公钥加密数据,向甲方发送经过加密后的数据;甲方获得加密数据,通过私钥解密。

2.2算法实现代码

package RSA;

import java.awt.*;

import java.awt.event.*;

import java.util.*;

//定义对话框类

class Rsa_dialog extends Dialog implements ActionListener

{

int message;

Panel panel_dialog;

Button button_queding;

Label label_jinggao;

Rsa_dialog(Frame f,String s,boolean b,String jinggao)

{

super(f,s,b);

panel_dialog=new Panel();

panel_dialog.setLayout(null);

label_jinggao=new Label(jinggao);

panel_dialog.add(label_jinggao);

label_jinggao.setBounds(2, 2, 145, 40);

button_queding=new Button("确定");

panel_dialog.add(button_queding);

button_queding.setBounds(150/2-80/2,44,80,30);

button_queding.addActionListener(this);

add(panel_dialog);

Toolkit tool=getToolkit();

Dimension dim=tool.getScreenSize();

setBounds(dim.width/2-120/2,dim.height/2-150/2,150,120);

addWindowListener(new WindowAdapter( )

{

public void windowClosing(WindowEvent e)

{

message=-1;

setVisible(false);

}

}

);

}

public void actionPerformed(ActionEvent e)

{

if(e.getSource()==button_queding)

{

message=1;

setVisible(false);

}

}

}

class WindowArea extends Frame implements ActionListener {

//定义对话框

Rsa_dialog dialog_p,dialog_q,dialog_mingwen_n;

//定义——选择素数p、q

String string_p,string_q;

long long_p,long_q;

Panel panel_p_q;

TextField textfield_p,textfield_q;

Label label_p,label_q;

//定义——O(n)\nCA-IOS(799054470);

String string_on,string_n;

long long_on,long_n;

Panel panel_on_n;

TextField textfield_on,textfield_n;

Label label_on,label_n;

Button button_on,button_n;

//定义——可选择的整数e

Panel panel_kexuan_e;

Label label_kexuan_e;

TextArea textarea_kexuan_e;

Button button_e;

//定义——选择e

Panel panel_xuanze_e;

Label label_xuanze_e;

TextField textfield_xuanze_e;

//定义——d

String string_e,string_d;

long long_e,long_d;

Panel panel_d;

Label label_d;

TextField textfield_d;

Button button_d;

//定义——公钥

Panel panel_gongyao;

Label label_gongyao_e,label_gongyao_n;

TextField textfield_gongyao_e,textfield_gongyao_n; Button button_gongyao;

//定义——私钥

Panel panel_siyao;

Label label_siyao_d,label_siyao_n;

TextField textfield_siyao_d,textfield_siyao_n;

Button button_siyao;

//定义——加密

long long_jiami_mingwen,long_jiami_miwen;

String string_jiami_mingwen,string_jiami_miwen;

Panel panel_jiami;

TextField textfield_jiami_mingwen,textfield_jiami_miwen; Label label_jiami_mingwen,label_jiami_miwen;

Button button_jiami;

//定义——解密

long long_jiemi_mingwen,long_jiemi_miwen;

String string_jiemi_mingwen,string_jiemi_miwen;

相关文档
最新文档