信息安全领域中常见的几个概念

谈到信息安全,加密和解密是人们首先想到的话题。一般人对加密都会有一定认识。加密就是通过密钥把明文转换成不可识别的密文。把密文发送给接收方后,接收者用同样的密钥把密文再转换成可读的明文。这种加密和解密方法就是密码学里的对称加密。


对称加密(Symmetric cryptography)

对称加密的特点是加密和解密使用的是同一组密钥。对称加密的安全性由加密算法和密钥长度决定。常用的加密算法有AES、DES、3DES和IDEA等等。目前比较常用的是AES(Advanced Encryption Standard)算法,它是由美国国家标准与技术研究院(NIST)于2001年11月26日发布的。密码管理软件KeePass和PassXYZ都是用的这个算法。

对称加密的优点是安全快速,在一定情况下还可以使用硬件算法进行加速。因为这些特点,对称加密被广泛地使用在大量数据的加密应用中。但对称加密所面临的最大问题是密钥的传输。如果无法安全传输密钥,再强大的加密算法也无用武之地。


非对称加密(Asymmetric cryptography)

为了解决对称加密中密钥传输的问题,科学家们发明了非对称加密算法。非对称加密的思想最早由瑞夫·墨克(Ralph C. Merkle)在1974年提出。之后在1976年,惠特菲尔德·迪菲(Whitfield Diffie)与马丁·赫尔曼(Martin Hellman)两位学者建立了非对称加密算法的基本理论。常见的非对称加密算法有RSA、ElGamal和ECC等。

非对称加密的过程与对称加密类似,但包括两组不同的密钥而不是一组。非对称加密主要有两个用途:文件加密和数字签名。


1. 文件加密


如上图所示,Alice要与Bob等人通信。Alice使用非对称加密工具产生一对密钥。这对密钥包括公钥(Public Key) 和私钥(Private Key) 。私钥是秘密的,不可以泄露给其他人,公钥是公开的,Alice可以通过任意途径发送给通信的对方。当Bob等人拿到Alice的公钥后就可以用这个公钥来加密文件发送回给Alice。这些经公钥加密的密文只有用Alice的私钥才能解开。这就是非对称加密文件的过程。


2. 数字签名(Digital Signatures)

如果将上述非对称加密的过程反过来,Alice使用自己的私钥加密文件,然后发送给Bob等人,由于私钥只有Alice本人持有,Bob等人可以确认收到的文件是由Alice本人发送的且没有被他人更改过,这就是数字签名。数字签名的目的不是加密,而是确保文件的完整性和确认文件的发送者。

非对称加密解决了信息安全领域中非常关键的两个问题就是:1. 密钥传输,和2.发送者身份的确认问题。

虽然非对称加密作用非常大,但也存在缺陷和漏洞。非对称加密的主要缺陷是加密效率低,解决这个问题的方法是使用混合加密和哈希算法。在使用非对称加密用作数字签名时,对签名者的身份认证也是存在漏洞的,目前的主要解决办法是使用数字证书。


混合加密

非对称加密最大的问题就是计算复杂造成效率欠佳。使用非对称加密来加密大量数据是不可行的。通常的做法是在加密过程中产生一个临时的对称密钥。这个密钥是用来加密通信中的数据的,而这个密钥的传输则可以使用非对称加密来实现。这样综合了两种加密方式的优点后,就是一种较为完美的解决方案了。

前面我们提到过非对称加密有两个主要用途:加密数字签名。我们可以用混合加密的方法来提高加密时的效率。对于数字签名,当我们对一个较大的文件进行签名时,也会有加密算法效率的问题,这时一般会用到哈希算法来解决这个问题。


哈希算法(Hash)

讲到对大文件的签名,就要讲一下哈希算法。大家可能在浏览网页时看到过哈希这个词。哈希算法也译作散列函数。它的作用就是把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值。这个散列值在英文中经常会用指纹(fingerprint)一词来表示,意思是这个值就像人的指纹一样,可以用文件的指纹来确认这个文件。通过哈希计算出来的散列值与原数据是一一对应的。对大文件的签名通常是对这个大文件的哈希值进行签名,而不是对文件本身进行签名。这样的话数字签名的效率就不会受到非对称加密的效率影响了。当我们下载文件时,特别是大文件,通常会提供文件的MD5或SHA256哈希值,然后用文件的哈希值来校验下载文件的完整性。


数字证书和身份认证

再来看看非对称加密在使用身份认证中存在的漏洞。前面讲过,Alice可以通过使用私钥加密文件来用作数字签名。如果另外一个人冒充Alice用自己产生的公钥和私钥来和Bob通信,Bob是无法分辨收到的公钥和文件是否真的是Alice发给他的,除非有办法能帮Bob证明收到的公钥是Alice的。这个就是公钥的身份认证和数字证书要解决的问题。 



公钥的身份认证通常是由第三方认证机构来完成的。如图所示,Alice可将自己的身份资料和公钥一起提供给认证机构,认证机构核实后会用自己的私钥来加密Alice的身份资料和她的公钥。前面讲过,由私钥加密的文件其实就是数字签名。这个由认证机构签名的文件就是Alice的数字证书。Bob如果用Alice的数字证书来进行通信,Bob可以相信数字证书里的公钥是Alice的。这里还有一个问题就是Bob在使用Alice的数字证书时需要用到认证机构的公钥来解开数字证书。在哪里能获取认证机构的公钥呢?由于非对称加密的广泛使用,目前大多数认证机构的公钥都已经随操作系统一起发行了。也就是说,一般系统就带有认证机构的公钥。


在国内有些服务还没有完全使用操作系统所提供的信任链,这时就需要一个额外的步骤,就是下载所用服务的根证书。比如下图中的12306就是一个明显的例子。想要正确的使用12306网站,需要先安装根证书。这个根证书就是用来认证在交易中使用到的公钥。 

其他生活中使用对称或非对称加密的场景

除了12306的例子,我们在日常生活中还有哪些时候用到了这些加密、解密的方法呢?


银行U盾

相信很多人都在使用各个银行发行的U盾吧。U盾就是使用非对称加密来保证银行和用户之间的通信是可信的和保密的。一般U盾存有银行分配给客户的私钥和银行本身的证书。客户使用私钥加密数据起到身份认证的作用。使用银行证书里的公钥加密数据起到数据加密的作用。所有认证机构颁发的数字证书都是有期限的,这也是为什么您的U盾需要定期更换新证书的原因。


支付宝、微信以及网络交易

中国的网络支付和网购都非常发达。人们常用的网络支付手段,如支付宝和微信等,都是建立在上面所提到的密码学概念之上的。


虚拟货币和比特币

像比特币这类的虚拟货币正是在非对称加密和数字身份认证技术的逐渐成熟基础上发展起来的。


总结

非对称加密在信息安全领域有着非常重要的作用。它解决了两个关键的问题,密钥传输和数字签名。为了解决密钥传输和提高整体的加密效率,通常会使用混合加密方法。为了提高数字签名的效率,通常会计算文件的哈希值,然后对哈希值进行数字签名。为了在网络交易中认证的双方的身份,通常会使用数字证书而不是直接使用对方的公钥。如果您对上述网络信息安全相关的概念有所了解,这对您个人信息的安全管理将会有较大的帮助。

Copyright © 2019-2059 HuWeiDun.Cn All rights reserved.
软著登字第4248884号 冀ICP备19021017号