网络安全课程设计资料Word文件下载.docx
- 文档编号:16112920
- 上传时间:2022-11-20
- 格式:DOCX
- 页数:19
- 大小:130.24KB
网络安全课程设计资料Word文件下载.docx
《网络安全课程设计资料Word文件下载.docx》由会员分享,可在线阅读,更多相关《网络安全课程设计资料Word文件下载.docx(19页珍藏版)》请在冰豆网上搜索。
2012年11月----2012年12月
枣庄学院信息科学与工程学院制
一.系统设计的目标
随着信息化的发展,人们在信息传递,数据共享等方面的要求越来越高。
但与此同时,数据的保密、个人的隐私保护也越来越困难,迫使人们不得不采取相应的措施来提高信息的安全性。
在此条件下,加密技术应运而生。
加密作为一把系统安全的钥匙,是实现信息安全的重要手段之一,正确的使用加密技术可以确保信息的安全。
人们所熟悉的加密技术很多,比如数字签名、版权注册、软盘加密、软件锁等等。
本人的设计思想是利用文件夹的加密来实现对软件或文件的安全加密。
在此设计基础上编写了一个程序,该软件操作简单方便,适用于个人PC上对文件的加密。
用户可自选密钥对重要文件或可执行程序进行加密,防止未授权用户窃密。
本文描述了利用文件夹的加密来实现对文件或程序的保护方案。
采用了“对称式”加密技术即采用文件逐字节与密码异或方式对文件或可执行程序加密。
选用C++编程语言,设计了一个加密程序,该程序不拘泥于花俏的界面,仅使用了一个简单的对话框,具有简单实用的特点。
在该方案的实现中,由于使用了可靠的密码学算法,使软件加密的强度大大提高。
二.系统原理:
1.RC4加密算法原理:
RC4加密算法是大名鼎鼎的RSA三人组中的头号人物RonRivest在1987年设计的密钥长度可变的流加密算法簇。
之所以称其为簇,是由于其核心部分的S-box长度可为任意,但一般为256字节。
该算法的速度可以达到DES加密的10倍左右。
RC4算法的原理很简单,包括初始化算法和伪随机子密码生成算法两大部分。
假设S-box长度和密钥长度均为为n。
先来看看算法的初始化部分(用类C伪代码表示):
for(i=0;
i<
n;
i++)
s=i;
j=0;
{
j=(j+s+k)%256;
swap(s,s[j]);
}
在初始化的过程中,密钥的主要功能是将S-box搅乱,i确保S-box的每个元素都得到处理,j保证S-box的搅乱是随机的。
而不同的S-box在经过伪随机子密码生成算法的处理后可以得到不同的子密钥序列,并且,该序列是随机的:
i=j=0;
while(明文未结束)
++i%=n;
j=(j+s)%n;
sub_k=s((s+s[j])%n);
得到的子密码sub_k用以和明文进行xor运算,得到密文,解密过程也完全相同。
由于RC4算法加密是采用的xor,所以,一旦子密钥序列出现了重复,密文就有可能被破解。
关于如何破解xor加密,请参看BruceSchneier的AppliedCryptography一书的1.4节SimpleXOR,在此我就不细说了。
那么,RC4算法生成的子密钥序列是否会出现重复呢?
经过我的测试,存在部分弱密钥,使得子密钥序列在不到100万字节内就发生了完全的重复,如果是部分重复,则可能在不到10万字节内就能发生重复,因此,推荐在使用RC4算法时,必须对加密密钥进行测试,判断其是否为弱密钥。
但在2001年就有以色列科学家指出RC4加密算法存在着漏洞,这可能对无线通信网络的安全构成威胁。
以色列魏茨曼研究所和美国思科公司的研究者发现,在使用“有线等效保密规则”(WEP)的无线网络中,在特定情况下,人们可以逆转RC4算法的加密过程,获取密钥,从而将己加密的信息解密。
实现这一过程并不复杂,只需要使用一台个人电脑对加密的数据进行分析,经过几个小时的时间就可以破译出信息的全部内容。
专家说,这并不表示所有使用RC4算法的软件都容易泄密,但它意味着RC4算法并不像人们原先认为的那样安全。
这一发现可能促使人们重新设计无线通信网络,并且使用新的加密算法。
三.系统功能分析:
图1:
系统功能图
四.系统实现:
设计的核心部分仍是算法的核心部分,根据des算法的原理,建立相关的变量,和函数,完成对8位字符的加密,解密。
而对于文件的加密与解密只需要在文件的读取时,按加密的位数读取然后调用算法,加密后保存到一个文件,一直到文件的末尾,从而实现文件的加密。
而解密是加密的逆过程,只要将密钥按反顺序使用即可,算法一致,调用的函数也都一样。
1.功能要求
(1)设计操作界面;
(如图3)
图3
(2)对输入的明文可以进行加解密;
(如图4)
(3)对指定的文件可以加解密。
(图5)
对文件夹进行解密:
(图6)
详细设计
字符加解密数据流图
字符加解密数据流图(7)
一层数据流图(8)
二层数据流图(9)
附录:
源程序代码:
RC4算法的实现:
voidRC4:
:
swap(baseType*i,baseType*j)
{
baseTypetemp;
temp=*i;
*i=*j;
*j=temp;
}
s_box(baseType*s,char*key,intkeyLen)
inti=0,j=0;
for(i=0;
i<
256;
i++)
s[i]=i;
{
j=(j+s[i]+key[i%keyLen])%256;
swap(&
s[i],&
s[j]);
}
encryption(char*src,char*key,intkeyLen,intsrcLen)
inti=0,j=0,k=0,index=0;
baseTypes[256];
:
memset((void*)s,0,256);
s_box(s,key,keyLen);
srcLen;
++j%=256;
k=(k+s[j])%256;
s[j],&
s[k]);
index=(s[j]+s[k])%256;
src[i]^=s[index];
我写的代码:
字符串解密:
char*key=newchar;
m_key.GetWindowText(key,255);
CStringstrKey("
"
256);
strKey.Format("
%s"
key);
if(strKey.IsEmpty())
MessageBox("
你还没有输入密钥!
"
NULL,MB_OK);
return;
char*src=newchar;
m_detStr.GetWindowText(src,100);
CStringstrSrc("
101);
strSrc.Format("
strSrc);
if(strSrc.IsEmpty())
请输入你要加密的字符串!
rc4.encryption(src,key,(int)strlen(key),(int)strlen(src));
m_srcStr.SetWindowText(src);
字符串加密:
char*key=newchar;
m_srcStr.GetWindowText(src,100);
m_detStr.SetWindowText(src);
到上面那部分
打开文件:
CStringlpszFilter="
textfile(*.txt)|*.txt|Microsoftdoc(*.doc)|*.doc|DataFiles(*.xlc;
*.xls)|*.xlc;
*.xls|AllFiles(*.*)|*.*||"
;
CStringreadBuf("
1000);
CStringlpszDefExt="
.txt"
CStringlpszFileName="
*.txt"
char*ch1=newchar;
charch[9];
memset((void*)ch,0,9);
charstr[200];
memset((void*)str,0,200);
CFileDialog*fileOpen=newCFileDialog(true,lpszDefExt,lpszFileName,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,lpszFilter,NULL);
if(!
fileOpen->
DoModal())
Openfailly!
CStringfilePath=fileOpen->
GetPathName();
m_srcFile.SetWindowText(LPCTSTR(filePath));
保存文件:
CFileDialog*fileSave=newCFileDialog(false,lpszDefExt,lpszFileName,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,lpszFilter,NULL);
CFilecFile;
fileSave->
failed!
CArchivear(&
cFile,CArchive:
load);
CStringfilePath=fileSave->
m_detFile.SetWindowText
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络安全 课程设计 资料