0


加密算法 AES和RSA

一,加密

(一)加密基础?

通过互联网发送数据,数据可能会被第三者恶意窃听,造成损失。因此需要给重要的数据进行加密,加密后的数据被称为“密文”。接收方通过解除加密或得原本的数据,把密文恢复为原本数据的操作叫做“解密”。像这样就减少了数据被恶意窃听的风险。

那么加密是怎么操作的呢?

首先计算机会使用1和0这两个数据表示二进制来管理所有数据。虽然数据有多种格式,图片,音频,视频,文档等,但在计算机中都是用二进制来表示。

对计算机来说,数据就是一串有意义的数字。

密文就是通过某种运算使得计算机无法解释的无规律数字。

加密运算用到的“密钥”,就是对数据进行数值运算,把数据变成第三者无法理解的形式的过程。

比如数据a是一串数据,通过“密钥”进行换算变成b,这样对于不知道计算过程的C来说,数据b就无法表示原来数据a的意思。原本a的二进制表示的数字是1,传输过程中却变成了数据b表示数字2,这样由于“密钥”和运算吧原本数据改变,防止第三方简单获取的方式就是加密。

a:01

b:10

“密钥”和运算:1和0互换

01 +“密钥”和运算 = 10

当然实际生产中用到的算法和密钥肯定不是这么简单的。

(二)加密数据算法

加密数据的方法可以分两种,加解密使用相同的密钥的“共享秘钥加密”和分别使用不同密钥的“公开密钥加密”

1,共享秘钥加密 - 对称加密

是什么?

加密解密都使用相同密钥的一种加密方式,由于使用密钥相同,所以也被称作“对称加密"。

实现原理

  1. 对称加密算法采用单密钥加密,在通信过程中,数据发送方将原始数据分割成固定大小的块,经过密钥和加密算法逐个加密后,发送给接收方

  2. 接收方收到加密后的报文后,结合解密算法使用相同密钥解密组合后得出原始数据。

实现算法

实现共享密钥加密算法的有凯撒密码,AES,DES,动态口令,其中AES应用场景最为广泛。

优缺点

效率高,算法简单,系统消耗小,适合加密大量数据。

安全问题

由于使用了相同的秘钥进行加密和解密,一旦秘钥被第三方获取,所传输的信息将

不在安全。

因此需要把密钥安全的送出去,这就是“密钥分配问题”

2,公开密钥加密 - 非对称加密

是什么?

是指加密和解密分别使用不同的密钥的一种加密方法,也被成为“非对称加密”。加密用的密钥称为“公开密钥”,解密用的密钥称为:“私有密钥”。

实现原理

  1. 甲使用乙的公钥并结合相应的非对称算法将明文加密后发送给乙,并将密文发送给乙。

  2. 乙收到密文后,结合自己的私钥和非对称算法解密得到明文,得到最初的明文。

实现算法

实现公开加密算法有RAS算法,椭圆曲线加密算法等,最为广泛的是RSA算法。

优缺点

优:

1,安全性更高 :与共享密钥加密不同的是,公开密钥加密不会出现密钥分配问题。

缺:

1,复杂度高 :因为加密和解密用的是不同密钥,而且无法从一个密钥推导出另一个密钥,且公钥加密的信息只能用同一方的私钥进行解密。

2,解密加密比较耗时:非对称加密的缺点是算法非常复杂,导致加密大量数据所用的时间较长

3,公钥无法自证清白

“公开密钥”无法证明自己的身份,导致“公开密钥”可靠性出现问题。

例如:

正常情况下,A与B交互,A向B发送公钥,B通过A发来的公钥加密,A接收到密文后通过私钥解密。

异常情况:A与B交互,A向B发送公钥的过程中可以被C先截取A的公钥,然后C向B发出公钥,由于“公开密钥”无法自证清白,无法显示自己是由谁生成的,所以B不会发现接收到的“公开密钥”是谁C发送的。

在接下来的传输过程中,B通过C发送的“公开密钥”进行数据加密,会被C“私有密钥”解密后,然后通过A的“公开密钥”加密,在传输给A,A通过自己签发的“私有密钥”解密成功,也不会发现这中间出现了什么问题。

安全性的问题可以通过“数字证书”来解决,“数字证书”本身含有自身信息来表达身份,同时依赖认证中心的信任链条来保证安全性。

二,代码和实例

AES

密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。,目前已被广泛应用。

RSA

RSA公开密钥密码体制是一种使用不同的加密密钥与解密密钥,“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制 。

RSA公开密钥密码体制的原理是:根据数论,寻求两个大素数比较简单,而将它们的乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥 。

备注:

代码实例在以下路径,JS和java的实例,用于前后端密码传输过程中的加解密。

链接:https://pan.baidu.com/s/1wNzBErch3dIa5sxGRiIdMQ

提取码:lvu4

标签: 安全 AES RSA

本文转载自: https://blog.csdn.net/qq_39308071/article/details/128677147
版权归原作者 解决问题no解决代码问题 所有, 如有侵权,请联系我们删除。

“加密算法 AES和RSA”的评论:

还没有评论