密码技术是保护信息安全的主要手段之一。使用密码技术可以防止信息被篡改、伪造和假冒。
加密和认证
加密是把称为“明文”的可读信息转换成“密文”,即不可读信息的过程;解密则是把已加密的信息恢复成“明文”的过程。加密和解密使用密码算法来完成这些工作。密码算法是用于隐藏和显露信息的可计算过程,算法越复杂,结果密文就越安全。在加密技术中,密钥是不可缺少的。密钥是使密码算法按照一种特定方式运行并产生特定密文的值。密钥越大,结果密文越安全。
加密是为了保护数据的安全,但也可用作几乎相反的用途——认证。认证是信息安全的一个重要方面。它主要包括用户认证和信息认证两个方面。前者用于鉴别用户身份,后者用于保证通信双方的不可抵赖性和信息的完整性。
加密算法
加密通信的一般模型如图1所示。密码技术按其密钥(Ke,Kd)管理的方式分为公钥密码体制(Ke≠Kd)和私钥密码体制(Ke=Kd)(也称为非对称密码体制和对称密码体制)。
最著名的私钥密码体制是DES(Data Encryption Standard)。DES是由IBM公司开发的数据加密算法,它的核心是乘积变换。美国于1997年1月将其定为非机密数据的正式数据加密标准。它可有效地防止穷尽搜索攻击。还有一些其他常用的私钥加密算法,如3DES、IDEA等。
采用私钥密码体制加密的信息,其安全性有赖于密钥的保密性,因而密钥的秘密分配和安全管理成了私钥密码体制最重要的问题。针对这一问题,美国的M.E.Hallman、W.Diffie和 R.Merkle于1976年提出了“公开密钥体系”(Public Key System)。此后人们相继提出了一些具体实现方案,其中最著名的是由美国MIT的Rivset、Shemir、Adleman 于1977年实现的RSA算法。RSA算法的优点是大大简化了密钥管理,但也存在一些缺点。例如,公开密钥很有可能被攻击者私自改为自己的公钥,从而轻易获得被攻击对象的一切信息。
公钥密码体制和私钥密码体制各有其优缺点,因此在使用中大都采用这两种密码体制相结合的方法。一般是在对密钥的传输中使用公钥加密体制,而在文件的加密过程中使用私钥加密体制。这种结合不仅有效地保护了密钥,同时也保护了密文,效率得到了很大的提高。
加密和认证的作用
在网络中使用加密算法主要可保护下面几个方面的安全:
* 私有通信
计算机中加密技术最常用于保护计算机用户之间和通信设备之间的通信。如在网络上传输电子邮件时,在发送邮件之前将电子邮件信息加密而接收到这封邮件时通过软件包或一个外部程序来解密这个信息,从而保证邮件内容不被窃取。
* 保护存储文件
加密不只是仅仅在通信中使用,它也可以来保护存储文件,如硬盘中的文件、数据等。
* 用户和计算机的身份认证
计算机使用加密来对用户的身份及信息进行认证,如用户的登录身份认证、数字签名和数字凭证等。
* 安全口令交换
当你登录到你的网络文件服务器或连接到你的因特网服务供应商时,你要提供你的用户名和口令。这两部分信息控制着你对网络的访问,并代表你在网络上的身份,必须保证不被偷听。大部分操作系统都通过将用户名和口令进行加密的方法来保证安全。