江南大学现代远程教育考试大作业信息安全概论.doc
- 文档编号:88792
- 上传时间:2022-10-02
- 格式:DOC
- 页数:8
- 大小:159.50KB
江南大学现代远程教育考试大作业信息安全概论.doc
《江南大学现代远程教育考试大作业信息安全概论.doc》由会员分享,可在线阅读,更多相关《江南大学现代远程教育考试大作业信息安全概论.doc(8页珍藏版)》请在冰豆网上搜索。
江南大学现代远程教育考试大作业
考试科目:
《信息安全概论》
一、大作业题目(内容)
题目:
基于信息隐藏的加密通信软件(或系统)
目的:
当前人们在工作和生活中过度依赖QQ、微信等即时通信手段,甚至用其传输商业和单位机密信息,这很容易造成信息泄漏。
为此,急需一种保障类似通信安全的方法和软件。
要求实现的功能:
(1)实现基本通信;
(2)实现加密传输,对待传输的敏感数据进行先加密后隐藏。
将加密后的敏感数据隐写到用户选定的图片中去,第三方无论通过什么途径获得该图片,保证信息都是安全的,从而实现了对敏感信息通信传输的安全保障;(3)逆向解密。
获得图片加密特性,通过解密算法获取图片隐写信息。
大作业具体要求:
1.项目必须为一个基本完整的设计;
2.项目设计报告书旨在能够清晰准确地阐述(或图示)该项目(或方案);
3.作品报告采用A4纸撰写。
除标题外,所有内容必需为宋体、小四号字、1.25倍行距;
4.项目设计报告逻辑严明、条理清晰。
5.项目设计报告不少于5页;
6.在规定时间以报告形式提交。
基于加密的即时通信系统设计
1.1.系统功能概述
根据自己的实际水平,以及即时聊天的流程需求,基于安全的即时聊天系统应该由服务器端模块、客户端模块、RSA加密解密模块、DES加密解密模块、数字签名和验证模块5部分组成。
根据实际情况,服务端和客户端除了主界面的设计不一样之外,其余的RSA加密解密模块、DES加密解密模块、数字签名和验证模块都采用一样的设计。
各功能模块的设计如下:
(1)服务器模块服务端模块有消息显示文本框、消息发送文本框、显示具体的加密消息等功能
(2)客户端模块客户端模块有消息显示文本框、消息发送文本框、显示具体的加密消息,以及连接相应的服务器的IP地址等功能
(3)RSA加密解密模块RSA加密解密模块可以生成RSA密钥对,对数据进行加密、解密,公钥、私钥的导出等功能。
(4)DES加密解密模块DES加密解密模块可以生成DES密钥,对数据进行加密、解密,对密钥进行导出等功能。
(5)数字签名和验证模块数字签名和验证模块可以对数据利用MD5WithRSA进行数字签名,并且对签名进行验证。
1.2.系统需求分析
关于即时通信方式,现在社会上流行很多软件,如风靡全中国的QQ,以及世界上也广为流行的MSN。
我们就暂且不谈论这些巨大商业型的即时通信软件。
基于学习的原则,此次设计的基于安全的即时通信系统具有以下基本功能:
良好的操作界面。
界面设计良好,操作简单,容易上手,人机交互界面友好。
实现加密解密功能。
能够对数据进行RSA非对称加密解密,DES对称加密解密。
实现数字签名功能。
能够对数据进行数字签名,验证信息的完整性和安全性。
系统运行稳定,安全可靠,出现错误可以提示相应的错误信息。
系统退出。
该系统整体上看,分为五个模块:
服务器模块、客户端模块、RSA加密解密模块、DES加密解密模块、数字签名以及签名验证模块。
整个基于安全的即时通信软件的功能结构如下图所示:
2.各模块简介
2.1服务器端模块
服务器模块,实现对客户端的链接请求,可以显示发送的信息,发送的加密信息等内容:
服务器端实现密钥传递,消息传递,线程启动等代码:
定义输入输出流如下:
publickeyThread(SocketsRSA,SocketsDES)throwsIOException{
ObjOSDES=newObjectOutputStream(sDES.getOutputStream());//DES密钥的输出流
ObjOSRSA=newObjectOutputStream(sRSA.getOutputStream());//服务器端的RSA公钥输出流
ObjISRSA=newObjectInputStream(sRSA.getInputStream());//接收客户端的RSA公钥输入流
}
初始化个通信端口,并启动接受监听线程:
try{
serverKeyRSA=newSKey_RSA();//生成服务器端RSA密钥
SKey_DESskeyDES=newSKey_DES();
keyDES=skeyDES.getSecretKey();//生成DES密钥
serverMsg=newServerSocket(msgPort);//通信端口
serverRSA=newServerSocket(RSAPort);//RSA钥匙传递端口
serverDES=newServerSocket(DESPort);//DES密钥传递端口new
keyThread(serverRSA.accept(),serverDES.accept()).start();
newrecThread(serverMsg.accept()).start();//启动接收监听线程
}
catch(Exceptione){
System.out.println(“server.accept:
”+e);
}
服务器端选择“显示加解密信息”单选框时,消息显示框显示的经过加密的消息的代码如下:
实现代码如下:
if(detailShow.isSelected()){
msgShowArea.append(“接收到的加密信息:
”+byteToBinary(eData)+“\n”);
msgShowArea.append(“接收到的加密签名:
”+byteToBinary(eSData)+“\n”);
msgShowArea.append(“MD5WithRSA签名信息:
”+byteToBinary(sData)+“\n”);
2.2客户端模块
客户端模块实现对服务器端的链接如下:
privatevoidconnectServer(StringserverAddress){//连接服务器
try{
clientMsg=newSocket(serverAddress,msgPort);
clientRSA=newSocket(serverAddress,RSAPort);
clientDES=newSocket(serverAddress,DESPort);
if(clientMsg.isBound()==true&&
clientRSA.isBound()==true&&
clientDES.isBound()==true){
msgShowArea.append(“成功连接服务器!
”+“\n”);
newkeyThread(clientRSA,clientDES).start();//接收密钥线程
newrecThread(clientMsg).start();//接收信息线程}else{
msgShowArea.append(“连接失败!
”+“\n”);}
}catch(Exceptione){
System.out.println(“连接出错:
”+e);
}
}
客户端保存相应的密钥的代码如下,以下只是其中一个例子:
2.3RSA加密解密模块
该模块主要是利用JAVA自带的SECURITY安全库中的方法进行密钥的生成和管理,以及对数据进行加密,解密。
RSA对数据的加密如下:
2.4DES加密解密模块
DES密钥的生成如下:
2.5数字签名模块
对数据进行签名
———————————————
8
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 江南 大学 现代远程教育 考试 作业 信息 安全 概论