计算机网络的核心是数据资源,网络安全的核心自然就是保护数据资源。对数据资源的保护,首先体现在对数据的被动保护措施上,也就是对数据包含信息的机密性保护上。
数据加密就是要按照某种规律将数据变换形式,使非授权者即使能够获取,也无法理解其中包含的信息的含义。数据加密的两个要素是:密钥和加密算法。
加密算法是数学函数,而数据加密就是通过加密算法,将直接可读的数据报文(称为明文或明码)转换成不能直接理解的密文(又称密码)的过程,其数学描述为
其中,Ke为加密密钥;M为明文;C为密文;E为加密算法。
解密过程是加密过程的反过程,就是通过解密算法,将密文转换成明文的过程,其数学描述为
其中,Kd为解密密钥;D为解密算法;M为明文;C为密文。在网络中,信息加密传输的过程如图7-1所示。
图7-1 信息加密传输示意图
对于一个密码体制来说,加密算法和解密算法都是公开的,而对于一次加解密过程,密钥则是保密的。根据密钥的使用方式,密码体制可以分为对称密码体制和非对称密码体制。
1.对称密码体制
对称密码体制就是用于加密的密钥和用于解密的密钥是相同的,或者两者存在着明确的数学关系。对称密码体制要求设计出一种算法,能在密钥控制下,将n位明文快速变换成唯一的n位密文,并且这种变换过程是可逆的——即解密过程。对称密码体制分为两类:一次只对明文中的单个位或字节加密称为序列密码或流密码;一次对明文的一组位进行加密称为分组密码,这些位组称为分组,分组的长度通常为64或128。
对称密钥加密体制要求通信双方在安全信道建立之前约定要使用的密钥。
目前,对称密码体制的密码算法主要有以下四种。
(1)数据加密标准(DES):1980年12月美国国家标准协会(ANSI)正式采用这个算法作为美国商用加密算法。它能将64位分组,用64位密钥,进行十六轮代换和置换加密形成密文。由于该加密算法在穷举攻击下比较脆弱,因此出现了多重DES算法,如二重DES和三重DES,即用DES算法进行多次加密。
(2)高级加密标准(AES):2000年10月,美国国家标准局正式采用比利时人提出的Rijndael作为AES标准的加密算法。AES的分组长度和密钥长度都可以有3种选择:128位、192位和256位。相比DES,AES的密钥更长,抗攻击能力强,算法的实现更简单,并且在所有的平台上都表现良好。
(3)序列密码RC4:是RSA公司在1987年设计的一种可变密钥长度、面向字节的序列密码算法。被用于SSL/TLS(安全套接字/传输层安全协议)标准和IEEE802.1无线局域网中的WEP协议。对于密钥长度128位以上的RC4,其安全性很高。
(4)其他对称加密算法有IDEA,Blowfish,CLIPPER等。
2.非对称密码体制
非对称密码体制就是用于加密的密钥和用于解密的密钥是不相同的。发送者使用加密密钥Ke和加密算法E对要发送的明文M进行加密,产生密文C,发送出去;接收者使用解密密钥Kd和解密算法D,对密文C进行解密,得到原来的明文M。其中Ke和Kd是不同的,并且加密密钥Ke是公开的,而解密密钥Kd是保密的,Ke被称为公钥,Kd被称为私钥。因此非对称加密算法又被称为公开密钥加密算法。
非对称加密体制同样要求加密算法和解密算法及公钥是公开的,但无法从公钥推导出私钥。非对称公钥体制不要求通信双方事先传递密钥或有任何约定就能完成保密通信,并且密钥管理方便,可实现防止假冒和抵赖。但非对称密码算法复杂,加密解密速度没有对称密码算法加密解密快。
使用最广泛的非对称密码算法是RSA(Rivest-Shamir-Adleman),1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出,因而得名。它是一种分组密码算法,其安全性的前提假设是:对极大整数做因数分解是非常困难的,比如很容易得到两个素数的乘积,但该乘积分解成素数就很困难,尤其是当乘积很大时。因此,RSA的密钥的长度一般推荐为1024位。
非对称密码算法还有Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)。其中Elgamal是另一种常用的非对称加密算法,它的优势之一是每次交换密钥时都使用一组新值。而使用RSA算法时,如果攻击者获得了私钥,那么他不仅能解密之前截获的消息,还能解密之后的所有消息。(www.xing528.com)
对称密码算法的优势是算法相对简单,加密解密快,其劣势是密码分发困难,在通信双方建立可靠信道之前,需要有一个可靠的方法分发密码,这在复杂的互联网环境下是比较难做到的。而非对称密码算法的优势则是密码分发简单,因为需要分发的是公钥,而公钥不需要保密,其缺点是算法复杂,计算量大,不适合大量数据加密。
3.密钥管理
数据加密相当于给数据加上了一把锁,而密钥相当于钥匙,因此,密码体制不仅需要好的密钥和好的加解密算法,还需要好的密钥管理。
密钥管理包括从密钥的生成到密钥的销毁的各个方面。主要表现于管理体制、管理协议和密钥的生成、分配、更换等。
(1)密钥生成。
密钥长度应该足够长。一般来说,密钥长度越大,对应的密钥空间就越大,攻击者使用穷举猜测密码的难度就越大。通常由自动密钥设备生成随机性好的比特串,然后通过在线或离线的交互协商方式实现密钥生成,如密码协议等。对公钥密码体制来说,密钥生成更加困难,因为密钥必须满足某些数学特征。
(2)密钥分配。
密钥分配包括密钥分发和密钥验证两个过程。X9.17标准描述了两种密钥:密钥加密密钥和数据密钥。密钥加密密钥加密其他需要分发的密钥,而数据密钥只对信息流进行加密。密钥加密密钥一般通过手工分发。为增强保密性,也可以将密钥分成许多不同的部分然后用不同的信道发送出去。
通过密钥分发,通信双方得到密钥,还需要验证密钥是否正确有效。密钥附着一些检错和纠错位来传输,当密钥在传输中发生错误时,能很容易地被检查出来,并且如果需要,密钥可被重传。
(3)密钥更新。
当密钥需要频繁地改变时,频繁进行新的密钥分发的确是困难的事,一种更容易的解决办法是从旧的密钥中产生新的密钥,有时称为密钥更新。可以使用单向函数更新密钥。如果双方共享同一密钥,并用同一个单向函数进行操作,就会得到相同的结果。
(4)密钥存储。
密钥可以存放在安全设施好的存储器中,如存储在智能卡中;也可以加密存放。
(5)备份密钥。
密钥的备份可以采用密钥托管、秘密分割、秘密共享等方式。
(6)密钥有效期。
加密密钥不能无限期使用,有以下有几个原因:密钥使用时间越长,它泄露的机会就越大;如果密钥已泄露,那么密钥使用越久,损失就越大;密钥使用越久,人们花费精力破译它的诱惑力就越大;对用同一密钥加密的多个密文进行密码分析一般比较容易。
不同用途的密钥应有不同的有效期。
(7)销毁密钥。
如果密钥必须替换,旧钥就必须销毁,密钥必须物理地销毁。即使不再使用的密码,也不能泄露,因为新旧密码体制可能会有某种联系,旧的密码可以被用来研究针对新密码体制的攻击方法。
随堂练习
对称密码体制的“对称”指的是什么?
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。