信息安全技术主要是为了保证数据在传输、存储和处理过程中的安全性,也即保证存储的数据和在信道中流动的数据不被窃取、篡改和破坏,从而保证数据的一致性、真实性、完整性和保密性。为了实现这一目的,密码技术是一种不可缺少的技术手段。
7.3.1 密码学概述
密码学是一门古老而深奥的学科,早在四千年前,古埃及人就开始使用密码来保密传递信息。两千多年前,罗马国王恺撒就开始使用目前称为“恺撒密码”的密码系统。但是密码技术直到20世纪40年代才有重大的突破和发展。特别是20世纪70年代后期,由于计算机和电子通信的广泛使用,现代密码学得到了空前的发展。
1.密码学的含义
密码学是研究加密和解密变换的一门科学。它包含两个分支,一是密码编码学,另一个是密码分析学。密码编码学是对信息进行编码,实现隐蔽信息的一门学科;密码分析学是研究分析破译密码的学科,即在未知密钥的情况下,从密文推出明文或密钥的技术。密码学正是在这种破译和反破译的过程中发展起来的。
2.密码系统中的几个概念
(1)明文。将可懂的文本称为明文。
(2)密文。将明文变换成的不可懂的文本称为密文。
(3)加密。把明文变换成密文的过程叫加密。
(4)解密。把密文变换成明文的过程叫解密。
(5)密钥。是由使用密码体制的用户随机选取的,密钥成为唯一能控制明文与密文之间变换的关键,它通常是一个随机字符串。
(6)密码体制。完成加密和解密的算法称为密码体制。在计算机上实现的数据加密算法,其加密或解密变换是由一个密钥来控制的。
密码体制从原理上可分为两大类:对称密钥密码体制和非对称密钥密码体制,或称单钥密码体制和双钥密码体制。下面分别介绍这两种密码体制。
7.3.2 对称密钥密码体制
在对称密钥密码体制中,解密算法是加密算法的逆运算,加密密钥和解密密钥相同,加密密钥能从解密密钥中推算出来,反之亦然。最具有代表性的就是著名的美国IBM公司研制的数据加密标准(Data Encryption Standard,即DES)。
1.数据加密标准DES
DES是对称加密算法中最具代表性的算法。DES算法原是IBM公司为保护产品的机密而研制成功的,后被美国国家标准局和国家安全局选为数据加密标准,并于1977年颁布使用。DES可以对任意长度的数据加密,实际可用密钥长度为56比特。对称加密算法使用同一个密钥来加密和解密信息,其加密过程和解密过程。
加密过程的第一步是产生密钥,然后把密钥和要加密的数据(称之为明文)应用于选定的对称密钥算法,然后产生加密好的数据(称之为密文)。解密过程刚好相反,把密文和相同的对称密钥应用于对称密钥算法,则结果为原来的明文信息。所以,对称密钥算法提供了一种保护信息机密性的途径。
2.对称加密技术的优缺点
对称加密技术(DES)的最大优势是加/解密速度快,适合于对大数据量进行加密,但密钥管理困难。对称加密技术要求通信双方事先交换密钥,当系统用户多时,例如,在网上购物的环境中,商户需要与成千上万的购物者进行交易,若采用简单的对称密钥加密技术,商户需要管理成千上万的密钥与不同的对象通信,除了存储开销以外,密钥管理是一个几乎不可能解决的问题。另外,双方交换密钥时,还会遇到密钥传送的安全性问题。还有,密钥通常会经常更换,更为极端的是,每次传送都使用不同的密钥,对称技术的密钥管理和发布都是远远无法满足使用要求的。为了弥补对称密钥密码体制存在的不足,出现了非对称密钥密码体制。
7.3.3 非对称密钥密码体制
非对称密钥密码体制最主要的特点就是加密和解密使用不同的密钥,每个用户保存着一对密钥——公开密钥和秘密密钥。因此,这种体制又称为双钥或公开密钥密码体制。在公钥加密算法下,公钥是公开的,任何人都可以用公钥加密信息,再将密文发送给私钥拥有者;私钥是保密的,用于解密其接收的经公钥加密过的信息。典型的公钥加密算法如RSA,是目前使用比较广泛的加密算法。
1.RSA算法
1977年,Rivest、Shamir和Adleman三人实现了公开密钥密码体制,并以三个人名字的首字母命名,简称RSA公开密钥体制。RSA算法是一种建立在大数分解和素数检测的理论基础之上的。RSA的保密性在于大数的分解难度上,如果大数分解成功,则RSA也就无保密性可言了。其加密过程和解密过程。
2.公开密钥技术(RSA)的优缺点
公开密钥技术解决了密钥的发布和管理问题,商户可以公开其公开密钥,而保留私有密钥。购物者可以用人人皆知的公开密钥对发送的信息进行加密,安全地传送给该商户,然后由商户用自己的私有密钥进行解密。虽然公钥体制消除了秘密密钥共享的问题,但并没有一个完整的解决方案,仍然有很多的缺点。相对于对称密钥算法来说,公钥算法计算速度非常慢。另外,公钥算法也要求一种使公钥能广为发布的方法和体制,所以把公钥算法和对称算法结合起来不失为一种最佳的选择。
7.3.4 PGP加密技术
PGP(Pretty Good Privacy)是由美国的Phil Zimmermann于20世纪90年代初开发的。他创造性地把RSA公钥体系和传统加密体系结合起来,并且在数字签名和密钥认证管理机制上有巧妙的设计,它是一个完整的电子邮件安全软件包,包括加密、认证、数字签名和压缩等技术。因此PGP成为目前几乎最流行的公钥加密软件包。
1.PGP的功能
(1)加密文件
PGP采用国际数据加密算法IDEA(International Date Encryption Algorithm)加密文件,只有知道加密密钥的人才可以解密文件。IDEA是目前已公开的算法中最好的且安全性最强的分组密码算法。
(2)密钥生成
PGP可以生成秘密密钥和公开密钥,有512,768和1024位三种长度供选择。PGP中利用RSA公开密钥密码体制。
(3)密钥管理
PGP有生成密钥、删除密钥、查看密钥、抽取密钥、编辑密钥和对密钥签名等各种功能。这样PGP就帮助用户建立和维护了一个小型的数据库,其中包含有联系人的公开密钥等,便于用户与他们通信。
(4)收发电子函件
利用PGP可以将要发送的电子函件加密,也可以将收到的电子函件解密。
(5)数字签名
PGP可以用做数字签名,也可以校验别人的签名。数字签名的原理就是签名者用自己的秘密密钥对签名加密,然后别人就可以用他的公开密钥去验证签名。
(6)认证密钥
PGP可以给别人的公开密钥做数字签名。
2.PGP的工作过程
PGP利用随机产生的对称密钥(IDEA算法)对明文加密,然后用RSA算法再对该对称密钥加密。收件人收到邮件后,先用RSA算法解密出这个随机对称密钥,再用IDEA算法解密邮件本身。这样的链式加密既有RSA体系的保密性,又有IDEA算法的快捷性。