当前位置:首页 > 密码学与网络安全技术毕业论文
3.密码学
3.1概述
密码学是研究如何通过编码来保证信息的机密性和如何对于密码破译的科学,一个密码系统通常可以完成信息的加密变换和解密变换。加密变换是采用一种算法将源信息变为不可理解的形式,从而起到保密作用。而解密变换则是采用与加密变换相反的过程,利用与加密算法相关的算法将不可理解的信息还原为原来的信息。这两种变换采用的算法分别叫加密算法和解密算法。
通常情况下算法是公开的,为了保证在公开算法的前提下仍然能维持信息的机密性,就必须在加密和解密时引入一个相同或者两个不相同的相关参数。该参数称为密钥。
信息的安全性和算法密钥相关,由于算法的公开性,所有密钥就直接关系到被加密信息的安全性。威胁密码系统安全的是攻击者,攻击者首先通过侦听等手段获得密文,然后试图通过对密文的分析得到明文,所以一旦攻击者拿到密钥,他就可以在密钥变更之前解开一系列的密文。
3.2密钥的分类
通常人们按照在加密过程中使用加密密钥和解密密钥是否相同将密钥分为专用密钥和公开密钥。 3.2.1专用密钥
专用密钥,又称为对称密钥或单密钥,加密和解密时使用同一个密钥,即同一个算法。如DES和MIT的Kerberos算法。单密钥是最简单方式,通信双方必须交换彼此密钥,当需给对方发信息时,用自己的加密密钥进行加密,而在接收方收到数据后,用对方所给的密钥进行解密。当一个文本要加密传送时,该文本用密钥加密构成密文,密文在信道上传送,收到密文后用同一个密钥将密文解出来,形成普通文体供阅读。在对称密钥中,密钥的管理极为重要,一旦密钥丢失,密文将无密可保。这种方式在与多方通信时因为需要保存很多密钥而变得很复杂,而且密钥本身的安全就是一个问题。
对称密钥是最古老的,一般说“密电码”采用的就是对称密钥。由于对称密钥运算量小、速度快、安全强度高,因而如今仍广泛被采用。 3.2.2公开密钥
公开密钥,又称非对称密钥,加密和解密时使用不同的密钥,即不同的算法,虽然两者之间存在一定的关系,但不可能轻易地从一个推导出另一个。有一把公用的加密密钥,有多把解密密钥,如RSA算法。
非对称密钥由于两个密钥(加密密钥和解密密钥)各不相同,因而可以将一个密钥公开,而将另一个密钥保密,同样可以起到加密的作用。
在这种编码过程中,一个密码用来加密消息,而另一个密码用来解密消息。在两个密钥中有一种关系,通常是数学关系。公钥和私钥都是一组十分长的、数字上相关的素数(是另一个大数字的因数)。有一个密钥不足以翻译出消息,因为用一个密钥加密的消息只能用另一个密钥才能解密。每个用户可以得到唯一的一对密钥,一个是公开的,另一个是保密的。公共密钥保存在公共区域,可在用户中传递,甚至可印在报纸上面。而私钥必须存放在安全保密的地方。任何人都可以有你的公钥,但是只有你一个人能有你的私钥。它的工作过程是:“你要我听你的吗?除非你用我的公钥加密该消息,我就可以听你的,因为我知道没有别人在偷听。只有我的私钥(其他人没有)才能解密该消息,所以我知道没有人能读到这个消息。我不必担心大家都有我的公钥,因为它不能用来解密该消息。”
公开密钥的加密机制虽提供了良好的保密性,但难以鉴别发送者,即任何得到公开密钥的人都可以生成和发送报文。数字签名机制提供了一种鉴别方法,以解决伪造、抵赖、冒充和篡改等问题。
进而由对称密钥和非对称密钥产生的加密体制称为对称加密体制和非对称加密体制。
4.密码学在网络安全中的应用
4.1报文鉴别技术
报文鉴别(message authentication)是防御网络攻击的重要技术,是证实收到的报文来自可信源点且未被篡改的过程。
发送方使用一个密钥和特定算法对报文产生一个短小的定长的数据分组(即报文鉴别码MAC),并将它附在报文中。在接收方使用相同的密钥和算法对明文重新计算报文鉴别码,如果新得到的报文鉴别码与报文中的鉴别码相匹配,那么,接收者确信报文未被篡改过,而且确信报文来自期望的发送方。采用报文鉴别码进行报文完整性鉴别的过程如图1所示。 M M C MAC=CK(M))K C 比较
M MAC=CK(M) ) 生成MAC的过程类似于加密过程,但其中的一个主要区别是MAC函数无图 1 报文鉴别的过程
需可逆。由于鉴别函数的这个特性,使得它比加密函数更不易破解。另外,MAC函数产生的鉴别码是一个短小的数据分组,而加密算法一般产生和原函数等长的分组。
散列函数(hash function)是可以用于报文鉴别的一种单向函数,散列函数以一个变长的报文作为输入,产生一个定长的散列码H(M)作为输出,H(M)通常
又称为报文摘要(message digest,MD)。
散列码是报文所有位的函数值,并具有差错检测能力,即报文中任一比特或若干比特都将导致计算散列码的改变。如图2所示,散列函数在用于报文的完整性鉴别时必须与加密配合使用。
发送方 M H 接收方
M E K 图 2 散列函数用于报文鉴别的过程E K(H(M)) EK(H(M))
M H 比较
D 4.2数字签名技术
4.2.1 数字签名概述
数字签名,就是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。
数字签名是非对称密钥加密技术与数字摘要技术的应用。
数字签名了的文件的完整性是很容易验证的(不需要骑缝章,骑缝签名,也不需要笔迹专家),而且数字签名具有不可抵赖性(不需要笔迹专家来验证)。
简单地说,所谓数字签名就是附加在数据单元上的一些数据,或是对数据单元所作的密码变换。这种数据或变换允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性并保护数据,防止被人(例如接收者)进行伪造。它是对电子形式的消息进行签名的一种方法,一个签名消息能在一个通信网络中传输。基于公钥密码体制和私钥密码体制都可以获得数字签名,主要是基于公钥密码体制的数字签名。包括普通数字签名和特殊数字签名。普通数字签名算法有RSA、ElGamal、Fiat-Shamir、Guillou- Quisquarter、Schnorr、Ong-Schnorr-Shamir数字签名算法、Des/DSA,椭圆曲线数字签名算法和有限自动机数字签名算法等。特殊数字签名有盲签名、代理签名、群签名、不可否认签名、公平盲签名、门限签名、具有消息恢复功能的签名等,它与具体应用环境密切相关。显然,数字签名的应用
共分享92篇相关文档