这篇文章不解释具体的概念定义而是以通俗易懂的语言来解读数字签名与数字证书,我们先来理一理需要用到的知识点。
算法基础
摘要算法
摘要算法是单向算法,明文只能转换成密文,密文却无法转换成明文,这种算法也叫HASH算法,如SHA1,MD5,CRC等。可以这样理解,几乎很难找到两个不同的明文能生成同一个摘要。所以摘要算法能够用于验证数据的完整性,防篡改。
一般在软件发布时会同时公布软件的摘要信息,用户下载软件后再自行计算一次摘要,如果和发布者公布的值一致,则认为该软件由发布者发布未经更改过。
对称加密
即加密和解密都用同样的密钥,如 AES,DES。
非对称加密
非对称加密即有两个密钥,一个用于加密(私钥),一个用于解密(公钥),并且是成对出现。用一个加密后需用另一个解密。公钥是公开的(大家都能看到),而私钥只能自己知道。常见的算法是RSA。
RSA算法的原理是基于这样的数学事实:两个大质数相乘得到的大数难以被因式分解。即一个大数很难被因式分解。
对称加密和非对称加密的作用都是对明文进行保护,但是他们都面临着一个问题,怎样分发密钥才安全?对称加密需要在网络中传输密钥显然不安全,而非对称加密确没有该问题。由于非对称密钥的公钥是公开的,所以即使在网络中传输也无所谓,所以现在互联网上大多都使用的非对称加密。但是这又产生了新的问题,怎样保证公钥的真实性,如果通信中有中间人存在,并且它伪造了通信呢?带着这些问题&#x