DES与AES
本文发布于633天前,本文最后更新于633 天前,其中的信息可能已经过时,如有错误请留言或评论。

DES

DES(Data Encryption Standard)是一种对称加密算法,它采用分组密码的方式对明文进行加密,将明文分为64位一组,并使用一个64位的密钥进行加密。DES算法中最重要的部分是F函数,它是一个将32位数据作为输入,输出32位数据的函数,用于在加密过程中对每个64位明文分组进行加密处理。

F函数的具体实现是将32位数据通过一系列的置换、替换和异或运算,以及与密钥进行的运算,生成一个32位的输出结果。这个过程涉及到多个操作,下面简单介绍一下这些操作的作用。

  1. 扩展置换(Expansion permutation) 这个操作将32位数据扩展为48位,并通过一系列置换使得每一位的输入数据能够影响到下一步的S盒替换。这个置换可以将32位数据扩展为48位。
  2. 密钥混合(Key mixing) 在扩展置换之后,将扩展后的32位数据与48位的子密钥进行异或运算,得到一个48位的结果。这个运算是将密钥与明文混合,使得明文分组的加密结果能够受到密钥的影响。
  3. S盒替换(S-box substitution) 将48位数据划分为8个6位的数据块,然后将每个数据块输入到一个不同的S盒中进行替换操作,每个S盒输入6位数据,输出4位数据。S盒替换是DES算法中最重要的操作之一,它将输入数据块转换为输出数据块,将密文块加密得到一个更安全的输出结果。
  4. P盒置换(Permutation) 将替换后的32位数据重新排列,以便将后续的左右数据块混合起来。这个置换操作可以将输出结果的位数重新排列,以改变位数(此处指的是32位是顺序发生了改变)。
  5. 异或运算(XOR) 将P盒置换的结果与左数据块进行异或运算,以产生右数据块,这样就完成了F函数的操作。

总的来说,F函数通过一系列的置换、替换和异或运算,以及与密钥进行的运算,将32位数据转换为32位的输出结果。在加密过程中,F函数被重复使用16次,每次使用时使用一个不同的48位子密钥进行加密。通过这种方式,可以使得DES算法能够对64位明文分组进行高效、安全的加密处理。

AES

AES(Advanced Encryption Standard)是一种对称密钥加密算法,是目前应用最广泛的加密算法之一。它是由美国国家标准技术研究所(NIST)于2001年发布,用来取代早期的DES算法和后来的3DES算法。AES算法采用128、192或256位的密钥对输入数据进行加密,加密后的数据与原始数据长度相同,是一种块加密算法,每次加密的数据块大小为128位。

AES算法的核心是S盒、行变换和列变换。S盒是一个固定的、非线性的替换盒,它将输入数据中的每一个8位字节映射到一个新的8位字节上,这个映射关系是由S盒中的一组固定的表格决定的。AES算法采用了一个128位的S盒,这个S盒由一系列非线性运算和置换操作组成,能够实现非常高强度的加密保护。

行变换是一个简单的置换操作,它将输入数据中的每一行进行移位操作。对于128位的数据块,第一行不做变换,第二行向左移动一位,第三行向左移动两位,第四行向左移动三位。这个行变换的目的是增加数据的随机性和复杂性,使得加密后的数据更难以被破解。

列变换是AES算法的另一个核心操作,它将输入数据中的每一列看作一个四元组,然后对这个四元组进行一系列变换操作。列变换由一个固定的矩阵操作组成,该矩阵中包含了一系列乘法和加法操作。列变换的目的是增加数据的随机性和复杂性,使得加密后的数据更难以被破解。

AES算法的加密过程包括以下步骤:

  1. 密钥扩展:根据输入的密钥,生成一系列轮密钥,用于加密和解密过程中的每一个轮次。
  2. 初始轮:将输入数据与第一个轮密钥进行异或操作,得到一个中间结果。
  3. 循环轮:执行9次循环轮操作,每次循环中都包括S盒操作、行变换和列变换。在每个循环轮中,中间结果将与一个新的轮密钥进行异或操作,得到下一个中间结果。
  4. 最后一轮:执行最后一轮操作,包括S盒操作、行变换和列变换。在最后一轮操作中,中间结果将与最后一个轮密钥进行异或操作,得到加密后的数据。

AES算法的解密过程与加密过程相似,只是密钥的使用顺序相反。解密过程包括以下步骤:

  1. 密钥扩展:根据输入的密钥,生成一系列轮密钥,用于加密和解密过程中的每一个轮次。
  2. 初始轮:将输入数据与最后一个轮密钥进行异或操作,得到一个中间结果。
  3. 循环轮:执行9次循环轮操作,每次循环中都包括逆列变换、逆行变换和逆S盒操作。在每个循环轮中,中间结果将与一个新的轮密钥进行异或操作,得到下一个中间结果。
  4. 最后一轮:执行最后一轮操作,包括逆列变换、逆行变换和逆S盒操作。在最后一轮操作中,中间结果将与第一个轮密钥进行异或操作,得到解密后的数据。

总之,AES算法是一种非常强大和安全的加密算法,它采用了一系列复杂的运算和变换操作,使得加密后的数据非常难以被破解。同时,由于AES算法采用了块加密的方式,因此它适用于对大量数据进行加密保护,被广泛应用于各种安全场景中,如金融、通信、电子商务等。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇