1、 信息科学与工程学院信息科学与工程学院 课程设计任务书课程设计任务书 题题 目目: RC4 加密算法加密算法的实现的实现 学 号: 姓 名: 专 业: 计算机网络技术 课 程: 计算机网络安全教程 指导教师: 职称: 教 师 完成时间: 2012 年 11 月-2012 年 12 月 一.系统设计的目标 随着信息化的发展,人们在信息传递,数据共享等方面的要求越来越高。但与此同 时,数据的保密、个人的隐私保护也越来越困难,迫使人们不得不采取相应的措施来提 高信息的安全性。在此条件下,加密技术应运而生。加密作为一把系统安全的钥匙,是 实现信息安全的重要手段之一,正确的使用加密技术可以确保信息的安全
2、。 人们所熟悉的加密技术很多,比如数字签名、版权注册、软盘加密、软件锁等等。 本人的设计思想是利用文件夹的加密来实现对软件或文件的安全加密。在此设计基础上 编写了一个程序,该软件操作简单方便,适用于个人 PC 上对文件的加密。用户可自选 密钥对重要文件或可执行程序进行加密,防止未授权用户窃密。 本文描述了利用文件夹的加密来实现对文件或程序的保护方案。采用了“对称式” 加密技术即采用文件逐字节与密码异或方式对文件或可执行程序加密。选用 C+编程语 言,设计了一个加密程序,该程序不拘泥于花俏的界面,仅使用了一个简单的对话框, 具有简单实用的特点。在该方案的实现中,由于使用了可靠的密码学算法,使软件
3、加密 的强度大大提高。 二.系统原理: 1. RC4 加密算法原理: RC4 加密算法是大名鼎鼎的 RSA 三人组中的头号人物 Ron Rivest 在 1987 年设计的密钥长度可变的流加密算法簇。之所以称其为簇,是由于其核心部分的 S -box 长度可为任意,但一般为 256 字节。该算法的速度可以达到 DES 加密的 10 倍左右。 RC4 算法的原理很简单, 包括初始化算法和伪随机子密码生成算法两大部分。 假设 S-box 长度和密钥长度均为为 n。先来看看算法的初始化部分(用类 C 伪代 码表示): for (i=0; iGetPathName(); m_srcFile.SetWin
4、dowText(LPCTSTR(filePath); 保存文件: CString lpszFilter=“text file (*.txt)|*.txt|Microsoft doc (*.doc)|*.doc|Data Files (*.xlc;*.xls)|*.xlc; *.xls|All Files (*.*)|*.*|“; CString lpszDefExt=“.txt“; CString lpszFileName=“*.txt“; CFileDialog *fileSave=new CFileDialog( false, lpszDefExt, lpszFileName, OFN_H
5、IDEREADONLY | OFN_OVERWRITEPROMPT, lpszFilter, NULL ); CFile cFile; if(!fileSave-DoModal() MessageBox(“failed!“,NULL,MB_OK); return; CArchive ar( CString filePath=fileSave-GetPathName(); m_detFile.SetWindowText(filePath); if(cFile.Open(LPCTSTR(filePath),CFile:modeCreate|CFile:modeWrite)=0) MessageBo
6、x(“Open failly!“,NULL,MB_OK); return; 文件加密: char key256; :memset(void *)key, ,256); char ch101; :memset(void *)ch, ,101); m_key.GetWindowText(key,strlen(key); CString key1; key1.Format(“%s“,key); if(key1.IsEmpty() MessageBox(“你还没有输入密钥!“,NULL,MB_OK); return; CString srcFilePath(“ “,200); m_srcFile.GetWindowText(srcFilePath); if(srcFilePath.IsEmpty() MessageBox(“你还没有选择源文件“,NULL,MB_OK); return; CFi