数据加密的术语以及对称加密、非对称加密、数字签名、数字证书的概念软考必会

这篇博客主要讲述数据加密的基本常识,包括数据加密算法的可逆与不可逆,加密方式的对称与不对称,公钥,私钥,数字签名,数字证书。

基本概念

数据加密的术语有:
明文,即原始的或未加密的数据。通过加密算法对其进行加密,加密算法的输入信息为明文和**;
密文,明文加密后的格式,是加密算法的输出信息。加密算法是公开的,而**则是不公开的。密文不应为无**的用户理解,用于数据的存储以及传输;
**,是由数字、字母或特殊符号组成的字符串,用它控制数据加密、解密的过程;
加密,把明文转换为密文的过程;
加密算法,加密所采用的变换方法;
解密,对密文实施与加密相逆的变换,从而获得明文的过程;
解密算法,解密所采用的变换方法。

是不是看的迷迷糊糊,不要紧,后边会详细举例。

加密算法的分类

加密算法分为可逆性加密算法和不可逆行加密算法。

可逆加密

解释: 加密后, 密文可以反向解密得到密码原文.。
可逆加密又分为对称加密和非对称加密

对称加密

文件加密和解密使用相同的**,即加***也可以用作解***
解释: 在对称加密算法中,数据发信方将明文和加***一起经过特殊的加密算法处理后,使其变成复杂的加密密文发送出去,收信方收到密文后,若想解读出原文,则需要使用加密时用的**以及相同加密算法的逆算法对密文进行解密,才能使其回复成可读明文。在对称加密算法中,使用的**只有一个,收发双方都使用这个**,这就需要解密方事先知道加***。
优点: 对称加密算法的优点是算法公开、计算量小、加密速度快、加密效率高。
缺点: 没有非对称加密安全.,传输范围小,必须双方有相同的**,不利于大范围加密传输。
用途: 一般用于保存用户手机号、身份证等敏感但能解密的信息。
常见的对称加密算法有: AES、DES、3DES、Blowfish、IDEA、RC4、RC5、RC6、HS256

可能你还没看懂,举例:
tom要发送一段文本给lucy,
明文: abcdefg
**:123456789
明文+公钥 —》通过加密算法–》得到密文 :ee548ce71f1c978a
lucy拿到密文后解密,要想解密得有加密时**,才能解密,
密文 :ee548ce71f1c978a+**–》通过解密算法得到明文:123456789

上边的**就是一段文本,现在是不是理解**是什么了。
对称加密只有一把**,要想进行数据加密传输,需要双方都有相同的**,不利于数据加密的广泛传输,所以有了非对称加密。

非对称加密

.非对称加密需要两个秘钥来进行加密和解密,这两个秘钥非别是公有秘钥(公钥)和私有秘钥(私钥),公钥与私钥是一对,如果用公钥对数据进行加密,那么就必须用对应的私钥才能解密;同理,如果用私钥对数据进行加密,那么只有用对应的公钥才能解密。
优点: 非对称加密与对称加密相比,便于大范围传输,其安全性更好;
缺点: 非对称加密的缺点是加密和解密花费时间长、速度慢,只适合对少量数据进行加
密。
用途: 一般用于签名和认证。私钥服务器保存, 用来加密, 公钥客户拿着用于对于令牌或
者签名的解密或者校验使用.
常见的非对称加密算法有: RSA、DSA(数字签名用)、ECC(移动设备用)、RS256 (采用SHA‐256 的 RSA 签名)

可能你还没看懂,举例:
tom要发送一段文本给lucy,
明文: abcdefg
lucy公钥:123456789
明文+lucy的公钥 —》通过加密算法–》得到密文 :ee548ce71f1c978a
lucy拿到密文后解密,要想解密只要用自己的私钥就能解密,
密文 :ee548ce71f1c978a+lucy私钥–》通过解密算法得到明文:123456789

数据加密的术语以及对称加密、非对称加密、数字签名、数字证书的概念软考必会
通过私钥可以生成很多公钥,将公钥发给很多人,自己保存私钥就好。

不可逆加密

解释: 一旦加密就不能反向解密得到密码原文.
种类: Hash加密算法, 散列算法, 摘要算法等
用途:一般用于效验下载文件正确性,一般在网站上下载文件都能见到;存储用户敏感
信息,如密码、 卡号等不可解密的信息。
常见的不可逆加密算法有: MD5、SHA、HMAC

数字签名

通过非对称加密可以很好的发送密文,但是有一些问题,
1当tom想给一些人发信息时,用自己的**加密,收到**的那些人可以用tom的公钥解密,但是很多人都有tom的公钥,其他人只要窃取到密文都能解密,所以可以通过方式2每次只给一个目标人发密文解决,但是还有问题。
2当tom给lucy发信息时,可以用lucy的公钥加密发给lucy,lucy接收后用自己的**解密得到明文,但是很多人都有lucy的公钥,有的人可以冒充tom给lucy写信,lucy想确定是谁发来的怎么办呢,于是有了数字签名这一解决方案。

如果甲想给乙发密文,通过数字签名的方式可以这么做:
1.甲先用hash函数对消息进行运算,得到的hash值成为“摘要”,我们就叫它h1吧
2.然后甲用自己私钥对摘要进行加密,生成的密文就叫做“数字签名”,我们就叫它signature吧
3…之后用乙的公钥对消息进行加密,生成的密文就叫secret吧
4.最后把密文secret和signature一起发送给乙
5.乙收到后首先用甲的公钥对signature进行解密,如果能够解密说明消息确实是甲发送的,失败说明不是甲发的
6.然后乙用自己的私钥对密文secret进行解密,并使用相同的hash函数对解密后的结果进行运算,得到一个hash值,我们就叫它h2吧,如果h2=h1,说明消息内容没有被篡改,如果不等于说明消息内容中途被篡改了
流程图如下:
数据加密的术语以及对称加密、非对称加密、数字签名、数字证书的概念软考必会
有了数字签名,我们就可以验证消息来源和消息的完整性了,但是这个过程真的就完美了吗?让我们设想以下场景:如果第三者丙偷偷在乙的电脑用自己公钥替换了甲的公钥,然后用自己的私钥给乙发送消息,这时乙收到的消息其实是被丙冒充的,但是乙却无法察觉,仍认为是甲发送的消息。
为了解决上面这个问题数字证书就出现了。

数字证书

在说数字证书之前,我们首先要搞明白导致发生上面那种情况的根源在哪里?本质上来说就是乙无法区分电脑中公钥到底是谁的,以至于乙会把丙错当成甲,所以我们就要想办法给公钥做身份认证(数字证书),以便能让别人搞清楚公钥到底是谁的。有了数字证书后就可以用以下方式发送消息了:

1.首先甲去找"证书中心"(certificate authority,简称CA),为自己公钥做认证(就好比去公安局办身份证一样)。CA用自己的私钥对甲的公钥和一些其他信息进行加密,生成的东西就叫"数字证书"(Digital Certificate)

数据加密的术语以及对称加密、非对称加密、数字签名、数字证书的概念软考必会
2.甲给乙发送的消息如下:
数据加密的术语以及对称加密、非对称加密、数字签名、数字证书的概念软考必会

3.乙收到消息后用CA的公钥解密甲的数字证书,拿到甲的公钥,然后验证甲的数字签名,后面流程和上面的一样。

如此一来问题就解决了,但是新的问题又出现了:每个人都有一个CA给颁发的数字证书,如果有一百万个人给乙发消息,那么乙就要保存一百万份不同的CA公钥来验证这些人的身份。显然这是不可能接受的,所以就有了“根证书”,里面存储CA公钥来验证所有CA分部颁发的数字证书,乙直接保存一份“根证书”就可以验证所有人的身份了。最后一点就是“根证书”的可靠性有谁来保证呢?确切的来说无法保证,就好像你自己无法证明你是你一样,“根证书”也是如此,只不过CA机构是获得社会绝对认可和有绝对权威的第三方机构,就像政府法院一样,这一点保证了根证书的绝对可靠。如果根证书都有问题那么整个加密体系毫无意义。
文章部分引用:https://blog.****.net/kswkly/article/details/83617944 这篇文章写的很好,可以点击观赏。