良许Linux教程网 干货合集 常见加密算法DES、AES和RSA的原理和特点

常见加密算法DES、AES和RSA的原理和特点

今天我将主要总结一下常用的对称性加密算法,包括DES和AES,以及非对称性加密算法RSA。

DES加密算法

1. DES的含义

DES全称为数据加密标准(Data Encryption Standard),是一种使用密钥加密的块算法。它于1977年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),并被授权在非密级政府通信中使用。随后,DES算法在国际上得到了广泛传播和应用。

DES是对称性加密中常见的一种算法。它使用一个64位(bit)的密钥进行加密,当密钥长度超过64位时,多余的位数将被忽略。对称性加密的特点是加密和解密使用相同的密钥。在对称性加密中,通常会按照固定的长度将待加密的字符串划分成块。如果不足一整块,或者刚好在最后有特殊填充字符。

常见的填充模式包括’pkcs5’、’pkcs7’、’iso10126’、’ansix923’和’zero’等类型。同时,DES算法还有不同的模式,例如DES-ECB、DES-CBC、DES-CTR、DES-OFB和DES-CFB。

2. DES算法原理

DES算法的入口参数:Key、Data、Mode。

Key为8个字节共64位,是DES算法的工作秘钥;

Data也为8个字节64位,是要被加密或解密的数据;

Mode为DES的工作方式,有两种:加密或解密。

image-20231202215302368
image-20231202215302368

3.DES加密原理

DES 使用一个 56 位的密钥以及附加的 8 位奇偶校验位,产生最大 64 位的分组大小。这是一个迭代的分组密码,使用称为 Feistel 的技术,其中将加密的文本块分成两半。

使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。DES 使用 16 个循环,使用异或,置换,代换,移位操作四种基本运算。

4.DES算法特点

分组比较短、秘钥太短、密码生命周期短、运算速度较慢。

AES加密算法

1.AES含义

AES,高级加密标准,在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。

严格地说,AES和Rijndael加密法并不完全一样(虽然在实际应用中二者可以互换),因为Rijndael加密法可以支持更大范围的区块和密钥长度:AES的区块长度固定为128 比特,密钥长度则可以是128,192或256比特;

而Rijndael使用的密钥和区块长度可以是32位的整数倍,以128位为下限,256比特为上限。包括AES-ECB,AES-CBC,AES-CTR,AES-OFB,AES-CFB。

2.AES加密原理

AES加密过程涉及到4种操作,分别是字节替代、行移位、列混淆和轮密钥加。解密过程分别为对应的逆操作。由于每一步操作都是可逆的,按照相反的顺序进行解密即可恢复明文。加解密中每轮的密钥分别由初始密钥扩展得到。算法中16个字节的明文、密文和轮密钥都以一个4×4的矩阵表示。

3.AES算法特点

运算速度快,安全性高,资源消耗少

RSA加密算法

1.RSA含义

RSA加密算法是一种非对称加密算法,这种算法非常可靠,密钥越长,它就越难破解。根据已经披露的文献,目前被破解的最长RSA密钥是768个二进制位。

也就是说,长度超过768位的密钥,还无法破解(至少没人公开宣布)。因此可以认为,1024位的RSA密钥基本安全,2048位的密钥极其安全。

2.RSA算法原理

在了解RSA算法原理之前,先了解一下非对称加密的过程:

非对称加密是通过两个密钥(公钥-私钥)来实现对数据的加密和解密的。公钥用于加密,私钥用于解密。对于非对称的加密和解密为什么可以使用不同的密钥来进行,这些都是数学上的问题了。不同的非对称加密算法也会应用到不同的数学知识。接下来就来看看RSA算法是怎么来对数据进行加密的。

image-20231202215217681
image-20231202215217681

下面是RSA算法的加密算法流程图:

image-20231202215222094
image-20231202215222094

3.RSA算法特点

  • 不需要进行密钥传递,提高了安全性
  • 可以进行数字签名认证
  • 加密解密效率不高,一般只适用于处理小量数据(如:密钥)
  • 容易遭受小指数攻击

常见的几种加密算法先总结到这,如果大家对加密的具体过程感兴趣的话,可以自己上网了解更多算法知识~

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
137e00002230ad9f26e78-265×300

A

本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部