加密、解密理论篇

加密、解密理论篇

以下简单谈论以下关于加密和解密中的一些基本概念。

可逆

可逆其实从字面就可以理解,也就是说可以进行逆向工程,简单来说就是:对于加密后的字符通过某种与加密算法相对应的算法就可以将加密后的字符进行还原。

举栗:

现有原数据”123456”通过算法A进行加密得到“NHUSWS516”,紧接着通过算法B就可以把加密后得到的“NHUSWS516”转换为原数据”123456”。

可逆对称加密

如何理解对称加密?首先要知道加密肯定需要一个密码。对称加密是可逆加密中的一种形式,简单来说对称加密就是加密时使用的密码(密钥)可以用来解密(你可能会想密码不能用来解密搞什么?这就是下边要说的非对称加密)。

举栗:

现有原数据”123456”通过密码(密钥)”qqqqw”来加密后得到“HUHTWE425”,如果想要通过“HUHTWE425”得到原数据那么就必须要知道密码(密钥)”qqqqw”才可以。

如下图帮助你更好的理解:

PS:以上图中所说的加密密钥和解密密钥是相同的。

可逆非对称加密

非对称加密也是可逆加密的一种形式,与对称加密不同的是它具有两个密码,这两个密码被称为“密钥对”,一个是公钥(Public Key)另一个是私钥(Private Key)。简单来说就是使用其中一个密钥加密一段数据后就只能被密钥对中的另一个密钥解开,否则该密码无解。如下图中的“密钥1”和“密钥2”就是一个“密钥对”,在加密的时候我们使用了其中一个密钥来进行,解密的时候我们只能使用另一个来解密。这两个是可以相互进行的,也就是“密钥1”加密的数据可以使用“密钥2”解开,反之“密钥2”加密的数据可以使用“密钥1”来解开。

公钥和私钥

这里的公钥和私钥是相对的概念,算法在生成这个“密钥对”的时候并不会指出哪一个是公钥哪一个是私钥。自己用来加密数据的叫做私钥,交给另一个人用来解密的叫做公钥。

非对称加密的使用场景

非对称加密的应用核心就在于“数字签名”的验证,何为数字签名?这里你可以从实际中的签名来理解,签名并不单纯指用笔写上自己的名字,就目前有很多种签名方式,例如:盖章、指纹(手印)等都是签名。数字签名则是签名的另一种形式,在信息传输和交互的过程中如何确定我的数据就是特定人发送的,而没有被中途被拦截篡改?那就需要签名了,我签上了我的名字则代表数据是我发送的,签的这个名就是指的我们使用其中一个密钥来加密一段数据,那么另一个密钥用途是干嘛的?你可以想我写上了自己的名字(加密),对方在接收的时候如何验证这个名字就是我写的而不是别人伪造的?那就是另一个密钥干的活了,一方在使用其中一个密钥进行签名(加密)后,另一方则可以使用另一个密钥来对其进行验证(解密),如果是伪造或者中途被篡改另一方使用的密钥一定是解不开的(除非是一方的密钥泄露,否则是无法伪造的)。

下图帮助你理解:

如下图小刘给小王发送消息,小刘有一个Key是QWE小王的则是ASD,发信息时首先小刘通过QWE对数据进行了签名(加密),可以理解为在数据上签上了QWE(好比用笔把这个名字写下来),则代表我是小刘,接收者小王拿到数据后使用他的ASD来验证看是不是小刘发来的消息,如果数据是通过QWE来签名(加密)的则小王可以使用ASD解开,反之则不行。双反是可以相互验证的即一方加密另一方可以解密 。

举栗:

一般在一些下载站上都会提供一个文件的MD5值,通过获取自己下载的文件的MD5进行核对,一致说明文件没有被篡改。

不可逆

通过上边的可逆加密就好理解这个不可逆加密了,也就是说只是单向的,加密后无法解密。常见的MD5、SHA1都是不可逆的。

最后

以上阐述了几个常见名次以及对其解释,仅代表我个人看法。