张芹 网络安全结课论文文档格式.docx

上传人:b****1 文档编号:5622905 上传时间:2023-05-05 格式:DOCX 页数:26 大小:224.12KB
下载 相关 举报
张芹 网络安全结课论文文档格式.docx_第1页
第1页 / 共26页
张芹 网络安全结课论文文档格式.docx_第2页
第2页 / 共26页
张芹 网络安全结课论文文档格式.docx_第3页
第3页 / 共26页
张芹 网络安全结课论文文档格式.docx_第4页
第4页 / 共26页
张芹 网络安全结课论文文档格式.docx_第5页
第5页 / 共26页
张芹 网络安全结课论文文档格式.docx_第6页
第6页 / 共26页
张芹 网络安全结课论文文档格式.docx_第7页
第7页 / 共26页
张芹 网络安全结课论文文档格式.docx_第8页
第8页 / 共26页
张芹 网络安全结课论文文档格式.docx_第9页
第9页 / 共26页
张芹 网络安全结课论文文档格式.docx_第10页
第10页 / 共26页
张芹 网络安全结课论文文档格式.docx_第11页
第11页 / 共26页
张芹 网络安全结课论文文档格式.docx_第12页
第12页 / 共26页
张芹 网络安全结课论文文档格式.docx_第13页
第13页 / 共26页
张芹 网络安全结课论文文档格式.docx_第14页
第14页 / 共26页
张芹 网络安全结课论文文档格式.docx_第15页
第15页 / 共26页
张芹 网络安全结课论文文档格式.docx_第16页
第16页 / 共26页
张芹 网络安全结课论文文档格式.docx_第17页
第17页 / 共26页
张芹 网络安全结课论文文档格式.docx_第18页
第18页 / 共26页
张芹 网络安全结课论文文档格式.docx_第19页
第19页 / 共26页
张芹 网络安全结课论文文档格式.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

张芹 网络安全结课论文文档格式.docx

《张芹 网络安全结课论文文档格式.docx》由会员分享,可在线阅读,更多相关《张芹 网络安全结课论文文档格式.docx(26页珍藏版)》请在冰点文库上搜索。

张芹 网络安全结课论文文档格式.docx

它的特点是文件加密和解密使用相同的密钥,即加密密钥也可以用作解密密钥,这种方法在密码学中叫做对称加密算法。

对称加密算法使用起来简单快捷,密钥较短,且破译困难。

除了数据加密标准(DES),另一个对称密钥加密系统是国际数据加密算法(IDEA)它比DES的加密性好,而且对计算机功能要求也没有那么高。

IDEA加密标准邮PGP系统使用。

(2)非对称密码技术 1976年,美国学者Dime和llenman为解决信息公开传送和密钥管理问题,提出一种新的密钥交换协议,允许在不安全的媒体上的通讯双方交换信息,安全地达成一致的密钥,这就是公开密钥系统。

相对于“对称加密算法这种方法也叫非对称加密算法。

”与对称加密算法不同,非对称加密算法需要两个密钥;

公开密钥和私有密钥。

公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;

如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。

因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法非对称加密算法实现机密信息交换的基本过程是:

甲方生成一对密钥并将其中的把作为公用密钥向其它方公开得到该公用密钥的乙方使用该密钥对机密信息进行加密后发送给甲方;

甲方再用自己保存的另一把专用密钥以加密后的信息进行解密。

甲方只能用其专用密钥解密由其公用密钥加密后的任何信息。

非对称加密算法的保密性比较好,它消除了最终用户交换密钥的需要,但加密和解密花费时间速度慢,它不适合一截对文件加密而只适用于对少量数据进行加密。

PGP模型是一种基于公钥原理的加密模型,使用者用公钥加密其数据,任何知道公钥的用户都可以把自己的数据加入加密包之中,但只有使用初始的解密私钥才可将密文解密。

PGP可以无缝地集成在各种网络应用服务的客户端或服务端里,自动根据用户的配置和文件信息。

对接收和发送的数据实现加密、解密、签名和认证。

用户可以将公开密钥上传到PGP提供的密钥服务器上,也可在自己建立一个密钥服务器供员工使用,同时也可以通过直接连接的方式使用一方或多方约定的公钥。

PGP将解密用的私钥,加密的私钥和公钥分开。

当发送者用PGP加密一段明文时,PGP首先压缩明文,然后建立一个一次性会话密钥,加密刚才压缩后的明文,产生密文。

再用接收者的公开密钥加密刚才的一次性会话密钥,随同密文一同传输给接收方。

接收方首先用私有密钥解密,获得一次性会话密钥,也就是公钥。

然后用这个公钥加密密文。

这样即使公钥在传输阶段被窃取。

只要解密私钥处于一个安全的状态下,那么即使破解者知道了公钥,也只能往PGP包里添加自己的数据。

而无法破解已经加入PGP封包的密文。

即使在破解都知道了公钥和加密私钥的情况下,对于已经加入PGP密文,也无法正确破解.

PGP使用加密以及校验的方式,提供了多种的功能和工具,帮助您保证您的电子邮件、文件、磁盘、以及网络通讯的安全。

PGP不是一种完全的非对称加密体系,它是个混合加密算法,它是由一个对称加密算法、一个非对称加密算法、一个单向散列算法以及一个随机数产生器组成的。

目录

第一章密码学的概述1

1.1密码学的发展1

1.2密码系统的操作过程1

1.3数字签名2

第二章PGP的概述及功能和算法3

2.1PGP的密钥管理3

2.2PGP的算法分析3

2.2.1认证算法3

2.2.2加密算法4

2.2.3保密和认证5

第三章对称加密算法6

3.1对称密钥密码体制及管理6

3.2DES和AES的算法6

第四章公开加密算法10

4.1公开密钥密码体制及管理10

4.2RSA算法11

第五章IDEA算法分析及其VC++实现12

5.1IDEA算法概述12

5.2IDEA算法原理及实现17

第六章结论18

参考文献19

第一章

密码学的概述

1.1密码学的发展

密码学是一门古老而深奥的学科,它对一般人来说是陌生的。

长期以来,它只在很小的范围,如军事、外交和情报等部门使用。

密码学是以认识密码变换的本质、研究密码保密与破译的基本规律为对象的学科。

随着计算机网络和计算机通信技术的发展,密码学得到前所未有的重视并迅速普及和发展起来。

为了保证这些信息的私密性、完整性、真实性,必须使用技术手段对其进行处理。

密码学包括两个对立又统一的分支;

密码编码和密码分析学。

密码学的发展可以分为两个阶段,传统密码学和计算机密码学。

传统密码学的基本思想是;

把要发送的消息进行各种变换后进行存储和传输,授权的接收者用相应的变换恢复成明文,不合法的截收者对明文不可见或不理解,从而达到保护信息安全的目的。

早在4000年前,古埃及就开始使用密码传递消息。

计算机密码学的发展也可分为两个阶段。

第一阶段称为传统方法的计算机密码学阶段。

在此阶段,计算机密码工作者继续沿用传统密码学的基本概念,那就是:

解密是加密的简单逆过程,两者所用的密钥是可以简单地互相推导的,因此无论加密密钥还是解密密钥都必须严格保密。

1949年Shannon建立的对称密钥密码系统模型,为密码学成为一门科学奠定了理论基础。

密码技术结合数学、计算机科学、电子与通信等诸多学科,不仅具有保证信息机密性的信息加密功能,而且具有数字签名、身份验证、秘密分存和系统安全等功能。

使用密码技术不仅可以保证信息的机密性,而且可以保证信息的完整性和确定性,防止信息被篡改、伪造和假冒。

随着技术的进步,加密正逐步被集成到系统和网络中,如正在发展的下一代网际协议IPV6中就用到了数据加密技术。

硬件方面,Intel公司正在研制用于单机和服务器主板的加密协处理器等。

1.2密码系统的操作过程

通常一个密码体制可以表达为一个五元组(M,C,K,E,D),其中:

(1)M是可能明文的有限集称为明文空间

(2)C是可能密文的有限集称为密文空间

(3)K是一切可能密钥构成的有限集称为密钥空间

(4)对于密钥空间的任一密钥有一个加密算法和相应的解密算法使得Ek:

M->

C和Dk:

C->

M分别为加密和解密函数,且满足Dk(Ek(M))=M

1.3数字签名

数字签名的基本原理:

实际上是附加在数据单元上的一些数据或是对数据单元所作的密码变换,这种数据或变换能使数据单元的接收者确认数据单元的来源和数据的完整性,并保护数据,防止被人(如接收者)伪造。

签名机制的本质特征是该签名只有通过签名者的私有信息才能产生,也就是说,一个签名者的签名只能唯一地由他自己产生。

当收发双方发生争议时,第三方(仲裁机构)就能够根据消息上的数字签名来裁定这条消息是否确实由发送方发出,从而实现抗抵赖服务。

另外,数字签名应是所发送数据的函数,即签名与消息相关,从而防止数字签名的伪造和重用。

(1)使用对称加密和仲裁者实现数字签名

(2)使用公开密钥体制进行数字签名

公开密钥体制的发明,使数字签名变得更简单,它不再需要第三方去签名和验证。

签名的实现过程如下:

A用他的私人密钥加密消息,从而对文件签名;

A将签名的消息发送给B;

B用A的公开密钥解消息,从而验证签名;

(3)使用公开密钥体制与单向散列函数进行数字签名。

利用单向散列函数,产生消息的指纹,用公开密钥算法对指纹加密,形成数字签名。

过程描述如下:

A使消息M通过单向散列函数H,产生散列值,即消息的指纹或称消息验证码;

A使用私人密钥对散列值进行加密,形成数字签名s;

A把消息与数字签名一起发送给B;

B收到消息和签名后,用A的公开密钥解密数字签名s;

再用同样的算法对消息运算生成散列值;

B把自己生成的散列值与解密的数字签名相比较,看是否匹配,从而验证签名。

第二章PGP的概述及功能和算法

2.1PGP的密钥管理

PGP的简介:

PGP最初是由菲利浦.齐默尔曼(Philip.Zimmermann)开始编写的、用于保护电子通信隐私的加密软件。

PGP也使用了RSA公开密钥加密算法,它的第一版在1991年完成。

随后Zimmermann把它送给了一位朋友。

这位朋友把PGP在国际互联网上公布出来。

短短的几天之内,PGP系统就被世界各地的文件传输服务器相继拷贝,传播开去。

PGP软件有3个主要的功能:

(1)使用强大的IDEA加密算法对存储在计算机上的文件加密。

经加密的文件只能由知道密钥的人解密阅读。

(2)使用公开密钥加密技术对电子邮件进行加密。

经加密的电子邮件只有收件人本人才能解密阅读。

(3)使用公开密钥加密技术对文件或电子邮件作数字签名,鉴定人可以用起草人的公开密钥鉴别真伪。

PGP使用了4种类型的密钥:

一次性会话对称密钥、公钥、私钥和基于口令短语的对称密钥

(1)产生会话密钥,使用CAST-128本身来产生随机的128-bit数字。

将128-bit的密钥和两个做为明文的64-bit块作为输入,CAST-128用密码反馈模式加密这两个64-bit块,并将密文块连接起来形成128-bit的会话密钥。

两个做为明文输入到随机数发生器的64-bit块来自于128-bit的随机数据流。

这个随机数据流的产生是以用户的击键为基础的,击键时间和健值用于产生随机数据流。

(2)密钥标识符

在PGP中,加密的消息与加密的会话密钥一起发送给消息的接收者。

会话密钥是使用接收者的公钥加密的,因此,只有接收者才能够恢复会话密钥,从而解密消息。

如果接收者只有一个公钥/私钥对,接收者就会自动知道用哪个密钥来解密会话密钥。

但如上所述,一个用户可能拥有多个公钥/私钥对,这此情况下,接收者如何知道会话密钥是使用哪个公钥加密的呢?

一个简单的办法就是:

消息的发送者将加密会话密钥的公钥与消息一起传过去,接收者验证收到的公钥确实是自己的以后,进行解密操作。

但这样做的会造成空间的浪费,因为RSA的密钥很大,可能是几百个十进行位组成。

PGP的采用的解决办法是为每个公钥分配一个密钥ID,并且很有可能这个密钥ID在用户ID内是惟一的。

与每个公钥关联的密钥ID包含公钥的低64位。

也就是说,公钥KUa的密钥ID是(KUamod264)。

这个长度足以保证密钥发生重复的概率非常小.

2.2PGP的算法分析

算法(Algorithm)是解题的步骤,可以把算法定义成解一确定类问题的任意一种特殊的方法。

在计算机科学中,算法要用计算机算法语言描述,算法代表用计算机解一类问题的精确、有效的方法。

算法+数据结构=程序,求解一个给定的可计算或可解的问题,不同的人可以编写出不同的程序,来解决同一个问题,这里存在两个问题:

一是与计算方法密切相关的算法问题;

二是程序设计的技术问题。

算法和程序之间存在密切的关系。

分析算法可以预测这一算法适合在什么样的环境中有效地运行,对解决同一问题的不同算法的有效性作出比较.

2.2.1认证算法

认证过程:

1、发送方创建消息2、发送方生成消息的160位的散列码3、用发送方私钥对散列进行RSA加密,加到消息上4、传输数据5、接收方用发送方的公钥对加密部分进行RSA解密6、接收方将剩余数据生成160位散列码7、生成散列进行比较,如果匹配,则认证成功.

认证算法结构流程图

2.2.2加密算法

加密过程:

1、发送方创建消息2、生成128位随机码作为会话密钥(IDEA密钥)3、用IDEA密钥对消息进行IDEA加密,得密文4、用接收方公钥对IDEA密钥进行RSA加密,加到密文上5、传输数据6、接收方用私钥解密出IDEA密钥7、用IDEA密钥解密剩余数据获得消息.

保密算法结构流程图

2.2.3保密和认证

同时使用保密和认证时,发送方用自己的私钥加密消息,然后通过PGP保密算法,用接收方公钥加密IDEA密钥;

接收方接到密文通过自己的私钥,解密IDEA密钥,再解密消息,接收方用发送方的公钥解密消息后,剩余码通过散列运算再与解密消息比较。

第三章对称加密算法

3.1对称密钥密码体制及管理

所谓对称密钥密码体制,即加密密钥与解密密钥相同的,或虽然不同,但是由其中的任意一个可以很容易地推导出别一个。

对称密钥密码体制的优点是加密强度高,可以经受较高级破译力量的分析和攻击,但它的密钥必须通过可靠的途径传递,密钥的管理成为影响系统安全的关键因素。

对称加密是公钥加密出现之前可使用的惟一一种加密机制,现在它也仍然是最常用的两个机制之一。

对称密钥密码体制的特征是:

用于加密和解密的密钥是一样的或者容易相互推出。

根据密码算法对明文信息的加密模式不同,对称密钥密码体制可分为序列密码和分级密码两大类。

前者每次只加密一个比特,加密所得的密文不仅与最初给定的密码算法和密钥有关,同时也是被处理的数据段在明文中所处的位置的函数;

而后者则先将信息序列分组,每次处理一个组,加密所得到的密文仅与给定的密码算法和密钥有关,与被处理的明文数据段在整个明文中所处的位置无关。

现代的对称密钥密码体制以分组密码为重点。

对称密码体制的密钥管理的基本概念

(1)会话密钥(SessionKey):

当两个端系统要相互通信时,它们建立一个逻辑连接。

在逻辑连接期间,使用一个一次性的密钥来加密所有的用户数据,这个密钥我们称之为会话密钥。

其在会话结束后失效。

(2)永久密钥(permanentKey)为了分配会话密钥,在两个实体之间使用永久密钥.

3.2DES和AES的算法

1.ES算法、算法描述

首先把明文分成若干个64-bit的分组,算法以一个分组作为输入,通过一个初始置换(IP)将明文分组分成左半部分(L0)和右半部分(R0),各为32-bit。

然后进行16轮完全相同的运算,这些运算我们称为函数f,在运算过程中数据与密钥相结合。

经过16轮运算后,左、右两部分合在一起经过一个末转换(初始转换的逆置换IP-1),输出一个64-bit的密文分组。

DES算法流程如图所示。

DES算法

(1)

DES算法大致可以分成四个部分;

初始置换、迭代过程、逆置换和子密钥生成。

DES使用56位密钥并对64位的输入数据块进行加密。

先对64位的密钥进行变换,密钥经过去掉其第8、16、24、……、64位减至56位,去掉的那8位被视为奇偶校验位,不含密钥信息,所以实际密钥长度为56位。

DES算法加密时把明文以64位为单位分成块。

64位数据经初始变换后被置换,然后进行16轮加密迭代:

64位经过初始置换的数据被分为左右两半部分,每部分32位,密钥与右半部分相结合,然后再与左半部相结合,结果作为新的右半部分;

结合前的右半部分作为新的左半部分。

这一系列步骤组成一轮,这种轮换要重复16次。

最后一轮之后,进行一置换运算,它是初始置换的逆。

为了将32位的右半部分与56位的密钥相结合,需要两个变换:

通过重复某些位将32位的右半部分扩展为48位,而56位密钥则通过选择其中的某些位则减少至48位;

在每轮处理中,密钥也经过了左移若干位和置换,都要从56位的密钥中得出一个惟一的轮次密钥。

最后,输入的64位原始数据转换成64位看起来被完全打乱了的输出数据,即用密钥把每一块明文转化成同样64位的密文数据。

DES算法是对称的,既可用于加密又可用于解密。

解密时的过程和加密时相似,但密钥的顺序正好相反。

S-盒置换,将48-bit输入转为32-bit的输出,过程如下:

48-bit组被分成8个6-bit组,每一个6-bit组作为一个S盒的输入,输出为一个4-bit组。

其方式是:

6-bit数的首、末两位数决定输出项所在的行;

中间的四位决定输出项所在的列。

例如:

假设第6个S-盒的输入为110101,则输出为第3行第10列的项(行或列的记数从0开始),即输出为4-bit组0001。

S6:

  12,1,10,15,9,2,6,8,0,13,3,4,14,7,5,11,

  10,15,4,2,7,12,9,5,6,1,13,14,0,11,3,8,

  9,14,15,5,2,8,12,3,7,0,4,10,1,13,11,6,

4,3,2,12,9,5,15,10,11,14,1,7,6,0,8,13,

扩展转换P-置换

32123451672021

45678929122817

89101112131152326

1213141516175183110

161718192021282414

202122232425322739

2425262728291913306

28293031321

密钥通常表示为64-bit,但每个第8位用作奇偶校验,实际的密钥长度为56-bit。

在DES的每一轮运算中,从56-bit密钥产生出不同的48-bit的子密钥(K1,K2……K16)。

首先,由64-bit密钥经过一个置换选择(PC-1)选出56-bit并分成两部分(以C、D分别表示这两部分),每部分28位,然后每部分分别循环左移1位或2位(从第1轮到第16轮,相应左移位数分别为:

1、1、2、2、2、2、2、2、1、2、2、2、2、2、2、1)。

再将生成的56-bit组经过一个另一个置换选择(PC-2),舍掉其中的某8个位并按一定方式改变位的位置,生成一个48-bit的子密钥Ki。

AES的算法

AES加密例程开始是拷贝16字节的输入数组到一个名为State(态)的4×

4字节矩阵中。

(参见Figure4)。

AES加密算法取名为Cipher,它操作State[],其过程描述的伪代码参见Figure5。

在规范中,加密算法实现的一个预备的处理步骤被称为AddRoundKey(轮密钥加)。

AddRoundKey用密钥调度表中的前四行对State矩阵实行一个字节一个字节的异或(XOR)操作,并用轮密钥表w[c,r]异或输入State[r,c]。

  举个例子,如果State矩阵的第一行保存的字节是{00,44,88,cc},第一列密钥调度表是{00,04,08,0c},那么新的State[0,2]值是用w[2,0](0x08或0x80)异或State[0,2](0x88)的结果:

10001000

00001000XOR

10000000AES算法的主循环对State矩阵执行四个不同的操作,在规范中被称为SubBytes(字节替换)、ShiftRows(行位移变换)、MixColumns(列混合变换)和AddRoundKey。

除了每次循环AddRoundKey都被调用并使用密钥调度表的下面四行外,AddRoundKey与预备处理步骤中的AddRoundKey相同。

SubBytes例程是一个代替操作,它将State矩阵中的每个字节替换成一个由Sbox决定的新字节。

比如,如果State[0,1]的值是0x40如果你想找到它的代替者,你取State[0,1]的值(0x40)并让x等于左边的数字(4)并让y等于右边的数字(0)。

然后你用x和y作为索引进到Sbox表中寻找代替值,如Figure2所示。

  ShiftRows是一个置换操作,它将State矩阵中的字节向左旋转。

Figure6示范了ShiftRows如何操作State[]。

State的第0行被向左旋转0个位置,State的第1行被向左旋转1个位置,State的第2行被向左旋转2个位置,而State的第3行被向左旋转3个位置。

第四章公开加密算法

4.1公开密钥密码体制及管理

1976年,斯坦福大学的Diffie和Hellman为解决密钥管理问题,在他们的奠基性工作“密码学研究的新方向”一文中,提出一种密钥交换协议,允许在不安全的媒体上通信双方交换信息,安全地达成一致的密钥。

在此新思想的基础上,很快出现了“非对称密钥密码体制”,即“公开密钥密码体制”。

对算法设计者来说,公开密钥密码体制的设计比对称密钥密码体制的设计具有更大的挑站性,因为公开密钥为攻击算法提供一定的信息。

目前所使用的公开密钥密码体制的安全性基础主要是数学中的难解问题。

最流行的有两大类;

一类是基于大整数因子分解问题的,这一类主要包括RSA体制、Rabin体制等;

另一类是基于离散对数问题的,例如,椭圆曲线密码体制和EIGamal体制等。

公开密钥最主要的特点就是加密和解密使用不同的密钥,每个用户保存着一对密钥。

公开密钥PK和秘密密钥SK。

因此,这种体制又被称为双钥或非对称密钥密码体制。

在这种体制中,PK是公开信息,用做加密密钥,而SK需要由用户自己保密,用做解密密钥和。

加密算法E和解密算法D也都是公开的。

虽然SK与PK是成对出现的,但却不能根据PK计算出SK.

RSK是从所周知的非对称公共密码系统的典型。

自1977年提出后,广为流行,并易于理解和操作,目前它已被ISO推荐为公开密钥数据加密标准。

公开密钥体制的密钥管理1、公开密钥体制的特点:

公钥可以通过一定的途径获得,私钥只有通信一方自己保存,管理相对简单。

应注意对公钥的完整性保证。

2、公钥管理的模式公钥证书分布式密钥管理

(1)公钥证书公钥证书是由一个可信的人或机构签发的,它包括证书持有人的身份标识、公钥等信息,并由证书颁发者对证书签字。

(2)分布式密钥管理在某些情况下,集中的密钥管理方式是不可能的,比如:

没有通信双方都信任的CA。

用于PGP的分布式密钥管理,采用了通过介绍人(introducer)的密钥转介方式。

4.2RSA算法

RSA算法的思路如下:

为了产生两个密钥,先取两个大素数,p和q。

为了获得最大程度的安全性,两数的长度一样。

计算乘积n=p*q,然后随机选取加密密钥e,使e和(p-1)*(q-1)互素。

最后用欧几里得(Euclidean)扩展算法计算解密密钥d,d满足e*d≡1mod((p-1)*(q-1)),即d≡e-1mod(p-1)(q-1)。

则e和n为公开密钥,d是私人密钥。

两个大数p和q立即丢弃,不让任何人知道。

加密消息时,首先将消息分成比n小的数据分组(采用二进制数,选到小于n的2的最大次幂),设mi表示

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2