首先是对数字证书系统和密码学扫下盲。
通常所说的数字证书系统,基本就是说的PKI体系。PKI全称为公钥基础设施,是一个基于X.509标准证书管理系统。它能为所有网络应用提供加密和数字签名服务以及所必须的密钥和证书管理。它的公钥加密标准共有15项,部分标准已经撤销或做了合并。
PKI组成一般有:认证中心(CA),数字证书库(LDAP),密钥备份与恢复系统,证书作废系统,应用程序的API接口。其中认证中心包含了注册服务器,注册机构(RA),认证中心服务器。
数字证书保存在数字证书库。它是网络用户的身份标示,包含了ID,公钥,颁发机构的数字签名等内容。其形式也分为好多种,主要有X.509公钥证书,SPKI证书,PGP证书等。X.509证书是我们平时最常见的,所以我们俗称的数字证书,通常是指X.509公钥证书。可以结合【数字证书系统】思维导图理解。
再谈谈密码学,要说清楚密码学,厚厚一本大书都可能说不清。这里只是提及几个基本的密码学常用术语与概念。
首先是加密/解密算法。加密/解密算法通俗讲,就是对数据内容进行改变的一系列手段(复杂的分组,行列线性变换等操作)。首先我们将加密算法分成这样两类:一类是通过加密后,可以通过解密算法还原回来的。一类是通过加密后,我们无法再还原回原来的内容了。
我们通常把可以还原的加密叫做可逆加密,不可以还原的叫做单向加密或不可逆加密。单向加密一般用于验证数据的完整性。如:MD5算法,SHA算法。
那么可逆的加密我们又分为了对称加密与非对称加密。我们可以根据它们使用的密钥个数来区别。对称加密中,无论是加密和解密用的都是一个密钥。非对称的加密中,加密和解密是分别使用不同的密钥来进行的。我们称之为:公钥与私钥。私钥加密过的内容,可以用公钥解密,反之亦然。公钥一般是指公开发布的,任何人都可以拿到。私钥是特定用户私人持有的,需要严格保密。对称加密还可以细分成流密码加密,分组密码加密。甚至还可以再往下分。这里就不继续往下介绍了。有兴趣的读者可以自行查阅密码学相关资料。
对称加密的常用算法有:RC4,SEAL,DES,AES等。特点:效率高,安全级别相对低。
非对称机密的常用最典型算法:RSA算法。特点:效率地,不适合大文件加密,安全级别相对高。
所以我们在实际的使用中,通常是把2种加密算法结合在一起使用的。
办理过网银的人,一般都会得到银行给你一个U盘一样的东东,这个东东就是银行给你的数字证书。一般包含了用户的私钥与公钥,还有hash算法,一个密钥生产算法,ID,身份信息等。通常还会安装一个软件,里面包含了银行机构的公钥。下面我们讲讲这里面几个东东的作用。
HASH算法是一个散列计算函数,是数字签名的核心技术。通过某个散列函数,可以把用户相关信息进行计算得到一串字符串。
用户私钥是用来对上一个步骤中生成的字符串进行加密用的。加密后的内容,就是我们通常说的数字签名。你没有看错,它其实就是签名。
密钥生成算法或者叫密钥生成器。它会在每次交易时候自动生成一个对称密钥。聪明的读者应该知道,交易过程中的数据,是用它来进行加密的。
用户公钥,用户一般不会使用它。是给对方使用的,用来解密用户生成的数字签名。
除了用户有公钥和私钥,交易的对方也会有公钥和私钥。下面就以我们平时与银行交易的这一过程为例子,说说数字证书在这一过程中是如何发挥作用的。