如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第二章加密技术基本原理从第一章的中可以看出,加密技术是保护网络信息安全的一种重要手段,因此我们有必要了解加密技术的基本原理,以便更有效的研究加密算法。保护信息的安全是十分重要的,然而信息的丢失不容易被发现。同时它又是具有时间性的。同一信息在不同的时间里的价值也是不一样的,有时候获得信息的时间比信息本身还重要。一般说来,数据库收集或存储的大量数据,或在传输过程中的数据,由于传输中的公共信道和存储的计算机系统非常脆弱,容易受到两种形式的攻击:一种是从传输信道上截取信息,或从存储的载体上偷窃或拷贝信息,我们称之为被动攻击,其结果是导致数据的暴露和对私有权的侵犯;另一种是对在传输过程中或对存储的数据进行非法删除、更改或插入等操作,这称之为主动攻击,其结果可能引起数据或文件的混乱,严重时可能导致信息处理系统完全失控。对于这两种可能遭受到的攻击除了制定法律外,还需要有合适的保护措施。密码技术就是一种有效的方法。事实证明,这也是最经济可行的方法,它是的在一种潜在不安全的环境中保证通信的安全。正是因为密码对于通信安全的极端重要性,所以应该强调说,不安全的密码技术比没有还要坏。因为它给人们已安全的假象。2.1基本概念什么是密码?简单地说它就是一组含有参数k的变换E。设已知信息m,通过变换Ek得密文c,即cEkm这个过程称之为加密,参数k称之为密钥。加密算法E确定之后,由于密钥k不同,密文c也不同。当然不是所有含参数k的变换都可以作为密码,它要求计算Ekm不困难,而且若第三者不掌握密钥k,即使截获了密文c,他也无法从c恢复信息m,也就是反过来从c求m极为困难。以后称m为明文。通信双方一为发信方,或简称发方,另一方为收信方或简称收方。传统的保密通信机理可用图2.1表示。从密文c恢复明文m的过程称之为解密。解密算法D是加密算法E的逆运算,解密算法也是含参数k的变换。传统密码加密用的密钥k与解密用的密钥k是相同的,所以有时也叫对称密码。通信双方用的密钥k是通过秘密方式有双方私下约定产生的,只能由通信双方秘密掌握。如果丢失了密钥,则密码系统不攻自破。密钥的重要性可想而知。加密技术的安全性对产品起着至关重要的作用。加密技术的安全性依赖于一个数学问题的难解性。为了解释数学问题的难解性,我们引入算法的概念。一个算法是描述解决一个问题的步骤。例如一个简单的两数相加的算法就是,输入两数a和b,相加后输出它们的和ab。现在,一个数学问题的难解性即为了解决问题要花很长时间进行快速运算,并且运算时间与输入值的大小有关。当今的加密体制有两类基本的加密算法:对称密钥系统又称保密密钥和公钥密码系统又称公开密钥/私有密钥。公钥密码系统与使用单独的密钥不同,它使用相互关联的一对密钥,通过一些数学运算,使用一个密钥加密的不论什么东西都只能用另一个密钥解开。通常自己保存其中一个密钥为”私有密钥”,公开另一个密钥即”公开密钥”。2.2对称密钥加密体制在对称密钥加密中,使用同样的密钥对数据进行加密和解密见图2.1。它被称为对称密钥加密,因为在加密和解密时使用同样的密钥。它称为保密密钥加密是因为需要对密钥保密。对称密码又包含三类:古典密码、流密码和分组密码。古典密码的算法有简单代换、多表代换、同态代换、多码代换和密码乘积等;流密码的算法有混沌密码、量子密码、RC-4和同步流密码等;分组密码的算法有DESdataencryptionstandard、IDEAInternationalDataEncryptionAlgorithmMMS、Blowfish等。下面主要介绍DES加密算法。2.2.1DES加密算法DESDataEncryptionStandard是由IBM公司在70年代发展的,于1976年11月被美国政府采用。DES随后被美国国家标准局和美国国家标准协会承认。它一直是国际上商用保密通信和计算机通信的最常用的加密算法。DES是一种分组密码。它用64比特的密钥对64比特的明文加密,其中密钥只有56比特有效,有8位是奇偶较验位,在算法中不起作用。使用56位密钥并对64位的数据块进行加密。DES对64位的输入数据块进行16轮编码。在每轮编码时,一个48位的”每轮”密钥值由56位的完整密钥得出来。在每轮编码过程中,64位数据和每轮密钥值被输入到一个称为”S”盒中,由一个压码函数对数位进行编码。另外,在每轮编码开始、过后以及每轮之间,64位数码被以一种特别的方式置换数位顺序被打乱。在每一步处理中都要从56位的主密钥中得出一个唯一的轮次密钥。最后,输入的64位原始数据被转换成64位看起来被完全打乱了的输出数据,但可以用解密算法实质上是加密过程的逆过程将其转换回输入时的状态。当然,这个解密过程要使用加密数据时使用的同样的密钥。假定明文m和密钥k都是64比特的0,1符号串。设mm1m2……m64kk