文档库 最新最全的文档下载
当前位置:文档库 › 实现加密解密程序

实现加密解密程序

实现加密解密程序
实现加密解密程序

目录

一.摘要 (1)

二.网络安全简 (2)

安全技术手段 (3)

三.现代密码技术分类 (3)

1.对称密码体制 (4)

2.非对称密码体制 (4)

四.RSA加密解密体制 (5)

1.RSA公钥密码体制概述 (5)

2.RSA公钥密码体制的安全性 (6)

3.RSA算法工作原理 (6)

五.实现RSA加密解密算法 (7)

六.RSA的安全性 (11)

七.结语 (13)

实现加密解密程序

摘要:随着计算机网络的广泛应用,网络信息安全的重要性也日渐突出,计算机信息的保密问题显得越来越重要,无论是个人信息通信还是电子商务发展,都迫切需要保证Internet网上信息传输的安全,需要保证信息安全;网络安全也已经成为国家、国防及国民经济的重要组成部分。密码技术是保护信息安全的最主要手段之一。使用密码技术可以防止信息被篡改、伪造和假冒。加密算法:将普通信息(明文)转换成难以理解的资料(密文)的过程;解密算法则是其相反的过程:由密文转换回明文;密码机包含了这两种算法,一般加密即同时指称加密与解密的技术。

关键字:密码技术、加密算法、解密算法、密码机、RSA

正文

一、网络安全简介

网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。网络安全从其本质上来讲就是网络上的信息安全。从广义来说,凡是涉及到网络上信息的保密性、完整性、可用性、真实性和可控性的相关技术和理论都是网络安全的研究领域。网络安全是一门涉及计算机科学、网络技术、通信技术、密码技术、信息安全技术、应用数学、数论、信息论等多种学科的综合性学科。

网络安全的具体含义会随着“角度”的变化而变化。比如:从用户(个人、企业等)的角度来说,他们希望涉及个人隐私或商业利益的信息在网络上传输时受到机密性、完整性和真实性的保护,避免其他人或对手利用窃听、冒充、篡改、抵赖等手段侵犯用户的利益和隐私。

二、安全技术手段

物理措施:保护网络关键设备(如交换机、路由器、服务器、大型计算机等),制定严格的网络安全规章制度,采取防火、防辐射、安装不间断电源(UPS)等措施。

访问控制:对用户访问网络资源的权限进行严格的认证和控制。例如,进行用户身份认证,对口令加密、更新和鉴别,设置用户访问目录和文件的权限,控制网络设备配置的权限,等等。

数据加密:加密是保护数据安全的重要手段。数据加密是对网络中传输的数据进行加密,到达目的地后再解密还原为原始数据,保障信息被人截获后不能读懂其含义,目的是防止非法用户截获后盗用信息。防止计算机网络病毒,安装网络防病毒系统。

其他措施:其他措施包括信息过滤、容错、数据镜像、数据备份和审计等。近年来,围绕网络安全问题提出了许多解决办法,例如防火墙技术等。防火墙技术是通过对网络的隔离和限制访问等方法来控制网络的访问权限,从而保护网络资源。防火墙不仅仅是路由器、堡垒主机、或任何提供网络安全的设备的组合,防火墙是安全策略的一个部分。其他安全技术包括密钥管理、数字签名、认证技术、智能卡技术和访问控制等等。

安全策略建立全方位的防御体系,甚至包括:告诉用户应有的责任,公司规定的网络访问、服务访问、本地和远地的用户认证、拨入和拨出、磁盘和数据加密、病毒防护措施,以及雇员培训等。所有可能受到攻击的地方都必须以同样安全级别加以保护。仅设立防火墙系统,而没有全面的安全策略,那么防火墙就形同虚设。

三、现代密码技术分类

根据密钥类型不同将现代密码技术分为两类:一类是对称加密(秘密钥匙加密)系统,另一类是公开密钥加密(非对称加密)系统。

1.对称密码体制

对称密码体制是一种传统密码体制,也称为私钥密码体制。在对称加密系统中,加密和解密采用相同的密钥。因为加解密密钥相同,需要通信的双方必须选择和保存他们共同的密钥,各方必须信任对方不会将密钥泄密出去,这样就可以实现数据的机密性和完整性。对于具有n个用户的网络,需要n(n-1)/2个密钥,在用户群不是很大的情况下,对称加密系统是有效的。但是对于大型网络,当用户群很大,分布很广时,密钥的分配和保存就成了问题。

在对称密钥密码体系中,也许对不同的信息使用不同的密钥,但都面临密钥管理

的难题。由于每对通讯方都必须使用异于他组的密钥,当网络成员的数量增加时,密钥数量成二次方增加。更尴尬的难题是:当安全的通道不存在于双方时,如何建立一个共有的密钥以利安全的通讯?如果有通道可以安全地建立密钥,何不使用现有的通道。这个矛盾是长年以来密码学无法在真实世界应用的阻碍。

2.非对称密码体制

非对称密码体制也叫公钥加密技术,是针对私钥密码体制的缺陷被提出来的。相对于对称密钥密码体系,最大的特点在于加密和解密使用不同的密钥。由于加密和解密是相对独立的,加密和解密会使用两把不同的密钥,加密密钥向公众公开,谁都可以使用,解密密钥只有解密人自己知道,非法使用者根据公开的加密密钥无法推算出解密密钥,故其可称为公钥密码体制。假如一个人选择并公布了他的公钥,另外任何人都可以用这一公钥来加密传送给那个人的消息。私钥是秘密保存的,只有私钥的所有者才能利用私钥对密文进行解密。

公开密钥系统通常是复合式的,内含一个高效率的对称密钥算法,用以加密信息,再以公开密钥加密对称钥匙系统所使用的钥匙,以增进效率。

(1)解决大规模网络应用中密钥的分发和治理问题

采用分组密码、序列密码等对称密码体制时,加解密双方所用的密钥都是秘密的,而且需要定期更换,新的密钥总是要通过某种秘密渠道分配给使用方,在传递的过程中,稍有不慎,就轻易泄露。公钥密码加密密钥通常是公开的,而解密密钥是秘密的,由用户自己保存,不需要往返交换和传递,大大减少了密钥泄露的危险性。同时,在网络通信中使用对称密码体制时,网络内任何两个用户都需要使用互不相同的密钥,只有这样,才能保证不被第三方窃听,因而N个用户就要使用N(N–1)/2个密钥。采用公钥密码体制,N个用户只需要产生N对密钥。由此可见,只有公钥密码才能方便、可靠地解决大规模网络应用中密钥的分发和治理问题。

(2)实现网络中的数字签名机制

长期以来的日常生活中,对于重要的文件,为了防止对文件的否认,伪造,篡改等等的破坏,传统的方法是在文件上手写签名。但是在计算机系统中无法使用手写签名,而代之对应的数字签名机制。数字签名应该能实现手写签名的作用,其本质特征就是仅能利用签名者的私有信息产生签名。对称密钥技术由于其自身的局限性,无法提供网络中的数字签名。这是因为数字签名是网络中表征人或机构的真实性的重要手

段,数字签名的数据需要有惟一性、私有性,而对称密钥技术中的密钥至少需要在交互双方之间共享,因此,不满足惟一性、私有性,无法用做网络中的数字签名。相比之下,公钥密码技术由于存在一对公钥和私钥,私钥可以表征惟一性和私有性,而且经私钥加密的数据只能用与之对应的公钥来验证,其他人无法仿冒,所以,可以用做网络中的数字签名服务。当它被验证时,它也能被信任的第三方(如法官)在任一时刻证实只有私有信息的唯一把握者才能产生此签名。其特点:签名是可信的,签名是不能伪造的,签名是不可重用的,签名后的文件是不能更改的,签名是不能否认的。

四、RSA加密解密体制

1.RSA公钥密码体制概述

RSA算法于1977年由美国麻省理工学院的RonalRivest、AdiShamir、LenAdleman 三位年轻教授提出。该算法利用了数论领域的一个事实:把两个大质数相乘生成一个合数是件十分容易的事情,但要把一个合数分解为两个质数却十分困难,是一种分组密码体制。合数分解问题目前仍然是数学领域尚未解决的一大难题,至今没有任何高效的分解方法。它无需收发双方同时参与加密过程,且非常适合于电子函件系统的加密。

RSA建立方法如下:首先随机选两个大素数p、q,计算n=p%26#8226;q;计算欧拉函数φ(n)=(p-1)(q-1);任选一个整数e为公开加密密钥,由e求出秘密解密密钥加密/解密:将明文分成长度小于位的明文块m,加密过程是:c=E(m,e)=modn 解密过程是:m=D(c,d)=modn

2.RSA公钥密码体制的安全性

RSA的安全性依靠于大整数的因式分解问题。实际上,人们推测RSA的安全性依靠于大整数的因式分解问题,但谁也没有在数学上证实从c和e计算m需要对n进行因式分解。可以想象可能会有完全不同的方式去分析RSA。然而,假如这种方法能让密码解析员推导出d,则它也可以用作大整数因式分解的新方法。最难以令人置信的是,有些RSA变体已经被证实与因式分解同样困难。甚至从RSA加密的密文中恢复出某些特定的位也与解密整个消息同样困难。

由于进行的都是大数计算,使得RSA最快的情况也比DES慢上100倍,无论是软件还是硬件实现。速度一直是RSA的缺陷。一般来说只用于少量数据加密。3.RSA算法工作原理

首先,找出三个数,p,q,r,其中p,q是两个相异的质数,r是与(p-1)(q-1)互质的数......p,q,r这三个数便是privatekey接着,找出m,使得

rm==1mod(p-1)(q-1).....这个m一定存在,因为r与(p-1)(q-1)互质,用辗转相除法就可以得到了.....再来,计算n=pq.......m,n这两个数便是publickey编码过程是,若资料为a,将其看成是一个大整数,假设a=n的话,就将a表成s进位(s%26lt:=n,通常取s=2^t),则每一位数均小于n,然后分段编码......接下来,计算

b==a^mmodn,(0%26lt:=b若p,q是相异质数,rm==1mod(p-1)(q-1),a是任意一个正整数,b==a^mmodpq,c==b^rmodpq,则c==amodpq证实的过程,会用到费马小定理,叙述如下:m是任一质数,n是任一整数,则n^m==nmodm%26lt:证实%26gt:因为rm==1mod(p-1)(q-1),所以rm=k(p-1)(q-1)+1,其中k是整数因为在modulo中是preserve乘法的(x==ymodzandu==vmodz=%26gt:xu==yvmodz),所以

c==b^r==(a^m)^r==a^(rm)==a^(k(p-1)(q-1)+1)modpq

(1)假如a不是p的倍数,也不是q的倍数时:

则a^(p-1)==1modp(费马小定理)=%26gt:

a^(k(p-1)(q-1))==1modpa^(q-1)==1modq(费马小定理)=%26gt:

a^(k(p-1)(q-1))==1modq所以p,q均能整除a^(k(p-1)(q-1即

a^(k(p-1)(q-1))==1modpq即a^(k(p-1)(q-1))==1modpq=%26gt:

c==a^(k(p-1)(q-1)+1)==amodpq

(2)假如a是p的倍数,但不是q的倍数时:

则a^(q-1)==1modq(费马小定理)=%26gt:a^(k(p-1)(q-1))==1modq

=%26gt:c==a^(k(p-1)(q-1)+1)==amodq=%26gt:q|c-a

因p|a=%26gt:c==a^(k(p-1)(q-1)+1)==0modp=%26gt:p|c-a

所以,pq|c-a=%26gt:c==amodpq

(3)假如a是q的倍数,但不是p的倍数时,证实同上

(4)假如a同时是p和q的倍数时:

则pq|a=%26gt:c==a^(k(p-1)(q-1)+1)==0modpq=%26gt:pq|c-a

=%26gt:c==amodpq

这个定理说明a经过编码为b再经过解码为c时,a==cmodn(n=pq)但我们在做编码解码时,限制0%26lt:=a

做到编码解码的功能。

五、实现RSA加密解密算法

文件分别命名为gjsRSA.h、gjsRSA.cpp,实现了数据的加密和解密过程,是本程序的核心部分,也是RSA加密算法的关键。该部分程序基于RSA加解密原理,生成互素的两个大数p、q,得到Φ(n);生成与Φ(n)互素的数e,然后利用Euclid 算法计算得到d。最后实现加密过程ci=mi^e(modn)(a),反过来也可以实现解密mi=ci^d(modn)(b)。

具体代码如下:

#include

#include

#include

#include

#include

using namespace std;

inline unsigned long RsaEncryption(unsigned long OL,

const unsigned long NMAX,

const unsigned long e,

vector &vc1,

vector &vc2)//加密

{

vector::iterator it1;

static unsigned long d(1);

unsigned long m_prime;

while(((e*d) % OL) !=1)

{

d += 1;

}

cout<<"d..."<

for(it1 = vc1.begin(); it1 !=vc1.end(); it1++) {

m_prime = *it1;

for(unsigned int i = 1; i < e; i++)

{

m_prime %= NMAX;

m_prime = *it1 * m_prime;

}

m_prime %= NMAX;

vc2.push_back(m_prime);

}

vc1.clear();

return d;

}//解密

inline unsigned long RsaDeciphering(unsigned long d,

const unsigned long NMAX,

vector &vc2,

vector &vc3) //解密{

unsigned long m_prime;

vector v3, v4;//v4记录

vector::iterator it1, it2;

for(it1 = vc2.begin(); it1 !=vc2.end(); it1++)

{

m_prime = *it1;

for(unsigned int i = 1; i < d; i++)

{

m_prime %= NMAX;

m_prime = *it1 * m_prime;

}

m_prime %= NMAX;

vc3.push_back(m_prime);

}

vc2.clear();

return 0;

}//解密

int main()

{

unsigned long NMAX(0), OL(0);

unsigned long p, q,e, d(1); //这里d选取3

unsigned long shujv;

int x(0);

vector vc1, vc2, vc3;

vector::iterator it1;

cout<<"请输入私有密钥p,q和公开密钥 e..."<

cin>> p>> q>> e;

while(p%2 ==0 || q%2 ==0)

{

cout<<"请输入私有密钥p,q和公开密钥 e..."<

cin>>p>>q>>e;

}

NMAX = p*q;

OL = (p-1)*(q-1);

cout<<"请输入要进行加密的个数x"<

cin>>x;

for(int i = 0; i < x; i++)

{

cin>>shujv;

vc1.push_back(shujv);

}

cout<<"需要加密的数据:"<

for(it1 = vc1.begin(); it1 != vc1.end(); it1++) {

cout<<*it1<<" ";

}

cout<

d = RsaEncryption(OL, NMAX, e, vc1, vc2);

cout<<"已经加密的数据:"<

for(it1 = vc2.begin(); it1 != vc2.end(); it1++) {

cout<<*it1<<" ";

}

cout<

RsaDeciphering(d, NMAX, vc2, vc3);

cout<<"已经解密的数据:"<

for(it1 = vc3.begin(); it1 != vc3.end(); it1++) {

cout<<*it1<<" ";

}

cout<

return 0;

}

RSA的安全性

不能证明RSA密码破译等同于大数因子分解

速度问题提高p?q将使开销指数级增长

至少有9个明文,加密后不变,即m e mod n=m

普通用户难于选择p、q。对p、q的基本要求:

p、q不相同,即不要太接近,又不能差别太大

p-1、q-1都有大素数因子,增加猜测φ(r) 难度

Gcd( p-1,q-1)应当小

结语:网络安全是当今网络社会焦点中的焦点,病毒、黑客的猖獗使身处今日网络社会的人们感到谈网色变,无所适从。但我们必须清楚地认识到,安全问题的解决不可能一蹴而就。现代的电脑加密技术就是适应网络安全的需要应运而生的,它为一般的电子商务活动提供了安全保障,如在网络中进行文件传输、电子邮件往来和进行合同文本的签署等。在网络安全方面,除了加密外我们别无选择。

致谢

首先,我很感谢刘老师给带我们一起学习了网络与信息安全这门课程,并且指导我们进行了课程实验以及课程设计上机实践,通过对这门课的学习我学会了很多专业知识;也很感谢刘老师给了我们一个有选择性的课程设计题目,我们通过对各种问题的解决,更提高了分析问题、解决问题的能力以及实践动手能力;最后也很感谢我身边的所有朋友对我的帮助,在我学习中遇到困难的时候是他们给了我大力的支持。参考书目:

[1]《信息安全概论》高等教育出版社段云所等编著

[2]《计算机系统安全》重庆出版社卢开澄等编著

[3]《计算机密码应用基础》科学出版社朱文余等编著

[4]《密码分析学》北京:清华大学出版社冯登国编著

[5]嬴政天下.加密算法之RSA算法

文件加密与解密实验报告

HUNAN UNIVERSITY 程序设计训练——文件加密与解密 报告 学生姓名X X X 学生学号20110102308 专业班级建环308 指导老师何英 2012-07-01至 2012-07-13

一、程序设计目的和要求 (3) 二、程序设计内容 (4) 1、总体设计 (4) 1.1主控选择模块 (4) 1.2加密模块 (4) 1.3解密模块 (4) 2、流程图 (5) 三模块详细说明 (6) 四、测试数据及其结果 (7) 五、课程设计总结 (8) 六、附录 (9) 附录1:参考文献 (9) 附录2:程序源代码 (9)

一、程序设计目的和要求 1、目的:为保证个人数据资料不被他人窃取使用,保护个人隐私及个人文件。设计一个基于c语言的文本文件加密及解密软件,可以方便对文本文件的加密与解密。本设计实现了文本文件的解密及解密,运行软件之后只需输入任意一个文本文件的文件名及后缀名即可对该文本文件进行加密或解密操作。本设计的加密与解密系统,使用了面向各类文件的方法,运用Microsoft Visual C++ 6.0实现具有加密、解密、帮助信息、读取文本文件、显示结果、退出等功能的文件加密与解密系统。 2、要求: (1)从键盘输入要进行加密的一行字符串或者需要加密的文件名。 (2)显示菜单: (3)选择菜单,进行相应的操作。加密方法是设置一加密字符串以及对文件的哪些部分进行加密;加密是将原始文件加密并保存到文件中;解密是将加了密的文件还原并保存到文件中,同时应比较与原始文件的一致性; 3、其他要求 (1)变量、函数命名符合规范。 (2)注释详细:每个变量都要求有注释说明用途;函数有注释说明功能,对参数、返回值也要以注释的形式说明用途;关键的语句段要求有注释解释。

文件加密与解密—Java课程设计报告

JAVA课程设计题目:文件的加密与解密 姓名: 学号: 班级: 日期:

目录 一、设计思路 (3) 二、具体实现 (3) 三、运行调试与分析讨论 (8) 四、设计体会与小结 (11) 五、参考文献 (12) 六、附录 (12)

一、设计思路 自从Java技术出现以业,有关Java平台的安全性用由Java技术发展所引发的安全性问题,引起了越来越多的关注。目前,Java已经大量应用于各个领域,研究Java的安全性对于更好地利用Java具有深远的意义。使用Java的安全机制设计和实现安全系统更具有重要的应用价值。 本课程设计,主要实践Java安全中的JCE模块,包括密钥生成,Cipher对象初始化、加密模式、填充模式、底层算法参数传递,也涉及文件读写与对象输入输出流。 二、具体实现 本系统通过用户界面接收三个参数:明文文件、密文文件、口令。采用DES加密算法,密码分组链(Cipher Block Chaining,CBC)加密模式,PKCS#5-Padding的分组填充算法。因为CBC涉及到底层算法参数的解密密钥的传递,所以将明文文件中的字节块以密封对象(Sealed Object)的方式加密后,用对象流输出到密文文件,这样就将密文、算法参数、解密密钥三都密封到一个对象中了。口令的hash值作为产生密钥的参数。设计流程图如下所示: 文件加密与解密设计流程图

本系统中,包含Default,Shares,SecretKey,EncAndDec四个包共6个类组成。定义的几个参数:MAX_BUF_SIZE为每次从文件中读取的字节数,也是内存缓冲区的大小;加密算法为DES;加密模式是密码分组链(CBC)模式;分组填充方式是PKCS#5Padding。包和类结构图如下所示: 本课程设计,包和类结构图: 以下为包中的类的方法实现说明 Package Shares类结构图

信息安全加密实验报告

重庆交通大学实验报告 班级:计信专业2012级2班 学号: 631206060232 姓名:娄丽梅 实验项目名称:DES加解密程序设计与实现 实验项目性质:设计性(验证性) 实验所属课程:信息安全 实验室(中心):软件实验室 指导教师:米波 实验完成时间: 2014 年12月11日

一、实验目的 1、理解DES加密与解密的程序设计算法思想。 2、编写DES加密与解密程序,实现对明文的加密与解密,加深对数据加密与解密的理解,掌握DES加密算法思想,提高网络安全的编程能力。 二、实验主要内容及原理 (一)实验内容 1、掌握DES算法; 2、编写DES算法。 (二)实验原理 1、初始置换 初始置换在第一轮运算之前执行,对输入分组实施如下表所示的变换。此表应从左向右、从上向下读。在将这64位数据分为左右两部分,每部分分别为32位,将左32位留下,将右32位按照下表进行排列 2、密钥置换 一开始,由于不考虑每个字节的第8位,DES的密钥由64位减至56位。每个字节第8位可作为奇偶校验位以确保密钥不发生错误。接着,56位密钥被分成两部分,每部分28位。然后,根据轮数,这两部分分别循环左移l位或2位。在DES的每一轮中,从56位密钥选出48位子密钥(Sub Key)。 3、S盒置换 当产生了48位密钥后就可以和右边32位明文进行异或运算了,得到48位的密文。 再经过下论的S盒跌带,其功能是把6bit数据变为4bit数据,每个S盒是一个4行、16列的表。盒中的每一项都是一个4位的数。S盒的6个位输入确定了其对应的输出在哪一行哪一列。 4、P盒置换 S盒代替运算后的32位输出依照P盒进行置换。该置换把每输入位映射到输出位,任意一位不能被映射两次,也不能被略去,这个置换叫做直接置换。 5、再次异或运算 最后,将P盒置换的结果与最初的64位分组的左半部分异或,然后左、右半部分交换,接着开始另一轮。 6、当进行到16轮后,最终进行一次末置换,形成密文

Flash型单片机的加密与解密

Flash型单片机的加密与解密 厂商利用单片机进行产品开发时,都会关心其代码和数据的保密性。考虑到用户在编写和调试代码时所付出的时间和精力,代码的成本是不言而喻的。 早期的单片机,代码是交给芯片制造商制成掩膜ROM。有两种加密的机制,一是彻底破坏读取代码的功能,无论是开发者还是使用者都永远无法读取其中的内容。从安全上来说,这种方式很彻底 ,但是已经无法检查ROM中的代码了。另一种方法是不公开读取方法,厂商仍可以读取代码。这种方式留有检查代码的可能性,但是并不能算是一种真正的“加密”,被破解的可能性是存在的。 客观地讲,一方面希望加密很彻底,而另外一方面又希望留有检查代码的可能,这是相互矛盾 的要求。 自Flash技术得到广泛应用以来,各类单片机制造商纷纷采用了多种不同的芯片加密方法,对比掩膜ROM芯片来说,Flash ROM在线可编程特性使得芯片的加密和解密方式变得更加灵活和可靠。在Flash型单片机中,芯片的加密和解密工作都是通过对Flash ROM的编程来完成的,由于用户程序可以在线地改写ROM的内容,可以编写一套加密和解密的小程序,随用户程序下载到芯片中,通过运行该程序,在线修改Flash ROM的内容,对芯片进行加密和解密,使整个的加解密过程更为简单灵活。 Freescale公司的HCS12单片机采用的加解密思路有一定的典型性,我们对此作了一些研究,现以MC9S12DP256单片机为例,介绍Flash型单片机的加密解密方法。 BDM Freescale公司的很多单片机都借用一种被称为后台调试模式(Background Debug Mode,BDM)作为下载和调试程序的接口。 BDM是一种单线调试模式,芯片通过一个引脚与编程器进行通信。在HCS12系列单片机中,内部都置有标准的BDM调试模块。该模块的有三种作用: 1) 对内部存储器的读写。将用户程序下载到目标芯片中或是将存储器中的数据读出。 2) 对单片机工作方式和资源进行配置。部分涉及到单片机工作方式和资源配置的寄存器只能在特殊模式下由编程器发送BDM命令来修改。 3) 程序调试。利用BDM模块可以读写内存和CPU内部寄存器,调试程序。 在HCS12单片机未加密的状态下,使用BDM硬件命令可以将Flash ROM中的程序读出或将新的程序写入。BDM命令可以由独立的硬件系统来送出,我们一般称此类系统为BDM编程器。 BDM编程器的时序协议是公开的,任何人都可以根据协议设计硬件、编写程序,实现BDM编程器的功能。使用BDM接口,编程器可以很容易的访问到目标系统的存储器,这给程序调试和烧写带来了很大

数据加密实验报告

实验报告 课程:计算机保密_ _ 实验名称:数据的加密与解密_ _ 院系(部):计科院_ _ 专业班级:计科11001班_ _ 学号: 201003647_ _ 实验日期: 2013-4-25_ _ 姓名: _刘雄 _ 报告日期: _2013-5-1 _ 报告评分:教师签字:

一. 实验名称 数据加密与解密 二.运行环境 Windows XP系统 IE浏览器 三.实验目的 熟悉加密解密的处理过程,了解基本的加密解密算法。尝试编制基本的加密解密程序。掌握信息认证技术。 四.实验内容及步骤 1、安装运行常用的加解密软件。 2、掌握加解密软件的实际运用。 *3、编写凯撒密码实现、维吉尼亚表加密等置换和替换加解密程序。 4、掌握信息认证的方法及完整性认证。 (1)安装运行常用的加解密软件,掌握加解密软件的实际运用 任务一:通过安装运行加密解密软件(Apocalypso.exe;RSATool.exe;SWriter.exe等(参见:实验一指导))的实际运用,了解并掌握对称密码体系DES、IDEA、AES等算法,及非对称密码体制RSA等算法实施加密加密的原理及技术。 ?DES:加密解密是一种分组加密算法,输入的明文为64位,密钥为56位,生成的密文为64位。 ?BlowFish:算法用来加密64Bit长度的字符串或文件和文件夹加密软件。 ?Gost(Gosudarstvennyi Standard):算法是一种由前苏联设计的类似DES算法的分组密码算法。它是一个64位分组及256位密钥的采用32轮简单迭代型加密算法. ?IDEA:国际数据加密算法:使用128 位密钥提供非常强的安全性; ?Rijndael:是带有可变块长和可变密钥长度的迭代块密码(AES 算法)。块长和密钥长度可以分别指定成128、192 或256 位。 ?MISTY1:它用128位密钥对64位数据进行不确定轮回的加密。文档分为两部分:密钥产生部分和数据随机化部分。 ?Twofish:同Blowfish一样,Twofish使用分组加密机制。它使用任何长度为256比特的单个密钥,对如智能卡的微处理器和嵌入在硬件中运行的软件很有效。它允许使用者调节加密速度,密钥安装时间,和编码大小来平衡性能。 ?Cast-256:AES 算法的一种。 (同学们也可自己下载相应的加解密软件,应用并分析加解密过程) 任务二:下载带MD5验证码的软件(如:https://www.wendangku.net/doc/3b16322931.html,/downloads/installer/下载(MySQL):Windows (x86, 32-bit), MSI Installer 5.6.11、1.5M;MD5码: 20f788b009a7af437ff4abce8fb3a7d1),使用MD5Verify工具对刚下载的软件生成信息摘要,并与原来的MD5码比较以确定所下载软件的完整性。或用两款不同的MD5软件对同一文件提取信息摘要,而后比较是否一致,由此可进行文件的完整性认证。

java文件加密解密课程设计

软件学院 课程设计报告书 课程名称面向对象程序设计 设计题目文本文档的加密与解密 专业班级财升本12-1班 学号 1220970120 姓名王微微 指导教师徐娇月 2013年 1 月

1 设计时间 2013年1月14日-2013年1月18日 2 设计目的 面向对象程序设计是一门实践性很强的计算机专业基础课程。通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。 3 设计任务 对文件进行加密解密 4 设计内容 4.1 需求分析 (1)给定任意一个文本文件,进行加密,生成另一个文件。 (2)对加密后的文件还原。 4.2 总体设计 4.2.1 包的描述 导入了java.awt; java.awt.event; java.io; javax.swing等包。 4.2.2 类的描述 Myframe类;E1类。其中Myframe类继承Frame类;可以扩展Frame的功能并且可以实例化的多种功能,这个类也实现了ActionListener这个接口,它是Java中关于事件处理的一个接口,ActionListener用于接收操作事件的侦听器接口。对处理操作事件感兴趣的类可以实现此接口,而使用该类创建的对象可使用组件的addActionListener 方法向该组件注册。在发生操作事件时,调用该对象的actionPerformed 方法。 4.3 页面设计

图4.3-1 显示页面 代码实现: addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } });

AES加密解密实验报告

信息安全工程课程 实验报告 AES加密解密的实现 课程名称:信息安全工程 学生姓名:黄小菲 学生学号: 3112041006 专业班级:系统工程2038班 任课教师:蔡忠闽 2012年11月22日

目录 1.背景 (1) 1.1 Rijndael密码的设计标准: (1) 1.2 设计思想 (1) 2.系统设计 (2) 2.1系统主要目标 (2) 2.2功能模块与系统结构 (2) 2.2.1字节替换SubByte (2) 2.2.2行移位ShiftRow (2) 2.2.3 列混合MixColumn (3) 2.2.4 轮密钥加AddRoundKey (4) 2.2.5 逆字节替换 (4) 2.2.6逆行移位InvShiftRow (4) 2.2.7 逆列混淆 (4) 3 加密模式 (5) 3.1 电子密码本ECB模式 (5) 3.2加密块链模式CBC模式 (6) 4 系统功能程序设计 (8) 4.1基本加密部分 (8) 4.1.1字节替换 (8) 4.1.2行移位 (8) 4.1.3列混合 (9) 4.1.4轮密钥加 (9) 4.1.5密钥扩展 (10) 4.1.6逆字节替换 (11) 4.1.7逆行移位 (11) 4.1.8逆列混合 (12) 4.1.9加密 (12) 4.1.10解密 (13) 5 实验结果 (14) 5.1 需要加密文件 (14) 5.2 实验加密解密结果 (15) 6 参考资料 (16)

1.背景 AES,密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。AES 有一个固定的128位的块大小和128,192或256位大小的密钥大小。Rijndael算法汇聚了安全性、效率高、易实现性和灵活性等优点,是一种较DES更好的算法。 该算法为比利时密码学家Joan Daemen和Vincent Rijmen所设计,结合两位作者的名字,以Rijndael之命名之,投稿高级加密标准的甄选流程。(Rijdael的发音近于"Rhine doll"。)AES在软体及硬件上都能快速地加解密,相对来说较易于实作,且只需要很少的记忆体。作为一个新的加密标准,目前正被部署应用到更广大的范围. 1.1 Rijndael密码的设计标准: ①抵抗所有已知的攻击。 ②在多个平台上速度快,编码紧凑。 ③设计简单。 当前的大多数分组密码,其轮函数是Feistel结构。 Rijndael没有这种结构。 Rijndael轮函数是由3个不同的可逆均匀变换 1.2 设计思想 ?分组和密钥长度可变,各自可独立指定为128、192、256比特。 ?状态 ?算法中间的结果也需要分组,称之为状态,状态可以用以字节为元素的矩阵 阵列表示,该阵列有4行,列数N b为分组长度除32 ?种子密钥 ?以字节为元素的矩阵阵列描述,阵列为4行,列数N k为密钥长度除32

加密技术及密码破解实验报告

第九章、实验报告 实验一、设置Windows启动密码 一、实验目的:利用Windows启动密码保存重要文件。 二、实验步骤: 1、在Windows XP系统中选择开始——运行,在打开输入框中“syskey.exe”,点击确定,打开“保证Windows XP账户数据库的安全”对话框。 2、单击【更新】,打开【启动密码】对话框,然后输入密码,在【确认】文本框中再次输入密码,单击【确定】

实验二、为word文档加密解密 一、实验目的:保护数据的安全 二、实验步骤: 1、打开一个需要加密的文档,选择【工具】——【选项】——【安全性】然后输入想要设置打开文件时所需的密码 2、单击【高级(A)】打开加密类型对话框,选中【加密文档属性】复选框,单击【确定】。

3、打开文件的【确认密码】对话框,输入打开文件时需要的密码,单击【确定】,随即打开【确认密码】对话框,输入密码。 4、保存文件后,重新打开Word文档,打开【密码】,输入打开文件所需的密码,单击【确定】输入修改的密码,单击【确定】 破解word密码 (1)安装Advanced Office Password Recovery软件,安装完成后打开需要破解的word 文档,进行暴力破解,结果如图所示: 实验三、使用WinRAR加密解密文件

一.实验目的:加密文件,保证文件的安全性。 二.实验步骤: 1、在需要加密的文件夹上右击,选中【添加到压缩文件】打开【压缩文件名和参数】 2、选中【压缩文件格式】组合框中的【RAR】并在【压缩选项】中选中【压缩后删除源文件】然后切换到【高级】,输入密码,确认密码。 3、关闭对话框,单击确定,压缩完成后,双击压缩文件,系统打开【输入密码对话框】 破解WinRAR加密的文件 (1)安装Advanced RAR Password Recovery软件,打开WinRAR加密文件,进行暴力破解,获得密码。结果如图:

DES加密算法实验报告

苏州科技学院 实验报告 学生姓名:杨刘涛学号:1220126117 指导教师:陶滔 刘学书1220126114 实验地点:计算机学院大楼东309 实验时间:2015-04-20 一、实验室名称:软件实验室 二、实验项目名称:DES加解密算法实现 三、实验学时:4学时 四、实验原理: DES算法由加密、子密钥和解密的生成三部分组成。现将DES算法介绍如下。1.加密 DES算法处理的数据对象是一组64比特的明文串。设该明文串为m=m1m2…m64 (mi=0或1)。明文串经过64比特的密钥K来加密,最后生成长度为64比特的密文E。其加密过程图示如下:

图2-1:DES算法加密过程 对DES算法加密过程图示的说明如下: 待加密的64比特明文串m,经过IP置换(初始置换)后,得到的比特串的下标列表如下: 表2-1:得到的比特串的下标列表

该比特串被分为32位的L0和32位的R0两部分。R0子密钥K1(子密钥的生成将在后面讲)经过变换f(R0,K1)(f变换将在下面讲)输出32位的比特串 f1,f1与L0做不进位的二进制加法运算。运算规则为: f1与L0做不进位的二进制加法运算后的结果赋给R1,R0则原封不动的赋给L1。L1与R0又做与以上完全相同的运算,生成L2,R2……一共经过16次运算。最后生成R16和L16。其中R16为L15与f(R15,K16)做不进位二进制加法运算的结果,L16是R15的直接赋值。 R16与L16合并成64位的比特串。值得注意的是R16一定要排在L16前面。R16与L16合并后成的比特串,经过置换IP-1(终结置换)后所得比特串的下标列表如下: 表2-2:置换后所得比特串的下标列表 经过置换IP-1后生成的比特串就是密文e。 变换f(Ri-1,Ki): 它的功能是将32比特的输入再转化为32比特的输出。其过程如图2-2所示:

常见格式文件的加密和解密

常用格式文件的加密解密方法 庆云县水务局项目办 二〇一二年五月二十三日

目录 0、引子 1 1、新建word文件的加密方法1 1.1任务1 1.2基本步骤1 1.3示范1 2、原有word文件的加密方法4 3、Excel文件的加密方法 4 3.1任务4 3.2基本步骤4 3.3示范4 4、CAD文件的加密方法 5 4.1任务5 4.2基本步骤6 4.3示范6 5、文件的解密方法8 5.1任务8 5.2基本步骤8 5.3示范8

0、引子 我们的日常工作,往往是处理一些文字、表格和图纸。最常用的文件格式有word、excel和CAD。怎样加密、解密这些格式的文件,是我们常遇到的问题。由于文件的加密、解密方法大致一样,所以,这里只介绍这三种文件的加密解密方法。其它格式的文件加密解密,可以参照进行。 加密解密文件需要知道文件格式的后缀名,后缀名又称文件扩展名,是操作系统用来标志文件格式的一种机制。通常来说,一个扩展名是跟在主文件名后面的,由一个分隔符分隔。如文件名“readme.txt”中,readme是主文件名,.txt为扩展名,表示这个文件被认为是一个纯文本文件。常见文档类型及其后缀名和打开方式详见下表。 常见文档类型及其后缀名和打开方式: 1、新建word文件的加密方法 1.1任务 对新建word文档1(未曾保存)进行加密 1.2基本步骤 ①打开菜单“文件”→②点击“另存为”选项→③点击“工具”按钮→④选定“安全措施选项(C)”→⑤输入密码→⑥确定→⑦再次输入密码→⑧确定→⑨保存。 1.3示范 ①打开菜单“文件”:点击菜单栏最左侧的“文件”按钮,弹出“文件”下拉列表; ②点击“另存为”选项:点击“文件”下拉列表的“另存为”选项,弹出“另存为”对话框,如图1所示。

DES加密与解密C实现+实验报告

DES加密与解密算法 课程名称:工程实践 学生姓名: xxxx 学生学号: xxxx 专业班级: xxxx 任课教师: xxxx 论文提交日期: xxxx

DES加密与解密算法 摘要 本世纪五十年代以来,密码学研究领域出现了最具代表性的两大成就。其中之一就是1971年美国学者塔奇曼(Tuchman)和麦耶(Meyer)根据信息论创始人香农(Shannon)提出的“多重加密有效性理论”创立的,后于1977年由美国国家标准局颁布的数据加密标准。 DES密码实际上是Lucifer密码的进一步发展。它是一种采用传统加密方法的区组密码。它的算法是对称的,既可用于加密又可用于解密。 1977年1月,美国政府颁布:采纳IBM公司设计的方案作为非机密数据的正式数据加密标准(DES枣Data Encryption Standard)。 目前在这里,随着三金工程尤其是金卡工程的启动,DES算法在POS、ATM、磁卡及智能卡(IC卡)、加油站、高速公路收费站等领域被广泛应用,以此来实现关键数据的保密,如信用卡持卡人的PIN的加密传输,IC卡与POS间的双向认证、金融交易数据包的MAC校验等,均用到DES算法。 关键词:DES算法,加密,解密

Abstract This century since fifty time, cryptography research field is the most representative of the two Achievement. One was the 1971 USA scholar Tuchman (Tuchman) and Meyer (Meyer) based on information theory founder Shannon (Shannon) proposed "multiple encryption effectiveness theory" was founded, in 1977 after the National Bureau of standards promulgated by the America data encryption standard.The DES password is actually a further development of the Lucifer password. It is a traditional encryption method of block cipher. The algorithm is symmetric, which can be used for encryption and decryption can be used. In 1977 January, the government promulgated American: adopted IBM design as a non official data confidential data encryption standard (DES - Data Encryption Standard). At present here, along with three gold project especially golden card project startup, DES algorithm in POS, ATM, magnetic card and intelligent card (IC card), gas station, highway toll station and other fields are widely used, so as to realize the security of key data encryption transmission, such as credit card holders PIN, IC card and POS mutual authentication, financial transaction data package of MAC check and so on, are used in DES algorithm. Keywords: DES algorithm, encryption, decryption

文件加解密处理程序文件

程序设计报告 ( 2012 /2013 学年第一学期) 题目:文件加解密处理程序 专业 学生姓名 班级学号 指导教师燕俐 指导单位计算机系统结构与网络教学中心日期 2012.12.10~12.21

一、课题容及要求 1.功能要求 编写一个对文件(由数字或字母组成)进行加密解密的程序。可以将所需要的容(整个文件或者输入的一行字符)加密,也可以将存储的加密文件翻译回来。例如加密时可以将选取容的每个字符依次反复加上”49632873”中的数字,如果围超过ASCII码值的032(空格)—122(‘z’),则进行模运算(既N%122).解密与加密的顺序相反。 2.菜单要求: 从键盘输入要进行加密的一行字符串或者需要加密的文件名。显示菜单: 1.设置加密方法 2.加密 3.解密 4.显示原始文件和解密文件 选择菜单,进行相应的操作。加密方法是设置一加密字符串以及对文件的哪些部分进行加密;加密是将原始文件加密并保存到文件中;解密是将加了密的文件还原并保存到文件中,同时应比较与原始文件的一致性;显示是将文件在屏幕上显示出来,供人工校对。 3. 程序设计参考思路: (1)定义原始文件sourse.txt、加密文件result.txt和还原文件recall.txt (2) 程序模块及函数功能: (1)在屏幕上显示文件 void printtxt(); (2)加密void encode(); (3)解密void decode(); (4)文件比较void cmptxt(); 4.需要的知识: (1)文件读取写入操作语言 (2)字符串的处理,如何对字符进行加减操作,并保证加减后的数值处于某一围之(模运算) (3)了解加解密的基本原理 二、需求分析

asp加密文件解密破解方法

asp加密文件解密破解方法 asp加密文件解密破解方法 asp加密文件解密破解方 网上有很多好的程序,但为了商业用途,有一些asp程序的文件是加密了的,如果他加密的方式不是很麻烦的话,那么是可以解密的。目前网上使用较多而且方便的加密就是脚本编码器(SRCENC.EXE)加密,这种加密方法破解比较容易,在文章的尾部有破解方法。本人尝试使用这种方法成功破解。 目前对ASP程序的加密方法主要有三种:脚本编码器(SRCENC.EXE)加密、组件加密、自编程序加密,下面我们就来展开介绍这三种加密方法…… 如今,用ASP技术构建的网站随处可见。由于ASP脚本是在服务器上解释执行的(无法编译),因此你辛苦开发出来的ASP代码,很容易被人拷去任意修改,如何保护ASP源代码呢?这是每个ASP站长都会遇到的难题,网上求解这类问题的帖子非常多,下面我们就来谈谈ASP程序的加密方法。 一、如何加密ASP程序? 目前对ASP程序的加密方法主要有三种:脚本编码器(SRCENC.EXE)加密、组件加密、自编程序加密,下面我们就来展开介绍这三种加密方法。 1、使用微软的MS Script Encode进行加密 微软提供了脚本编码器MS Script Encode(sce10chs.exe下载地址点击下载sce10chs.exe),可以对ASP程序进行加密。这是一个简单的命令行工具,其执行文件是SRCENC.EXE,需要在DOS下运行。它只加密页面中嵌入的脚本代码,把网页中之间的ASP代码转换成不可读的乱码,其他部分则保持原样不变。加密后的程序,必须使用Internet Explorer 5.0以上版本才能正常浏览。 用SRCENC加密之后,文件中被加密过的部分将变成只读类型,假如你修改了加密部分(哪怕只改动一个字),就会导致整个文件不能使用。对于VBScript,加密后在源文件的第一行会显示: