《图解密码技术》 学习笔记3(超精炼有效!!)

Part 1 密码

第三章 对称密码(共享密钥密码)

一、比特的XOR运算

对“1”和“0”作用的运算,两数相同XOR结果是“0”,两数不同XOR结果是“1”.

二、一次性密码本

它的原理是,将明文与一串随机的比特序列进行XOR运算。注意:一次性密码本是无法破译的。

三、DES

首先,DES是一种16轮循环的Feistel网络

Feistel网络中的一轮:大概是这样式儿的

des算法流程图

注意一轮的具体计算步骤为:

1)将输入的数据等分为左右两部分

2)将输入左侧的数据直接发送到输出左侧

3)将输入右侧数据发送到轮函数

4)轮函数根据左侧数据和子密钥(就是每一轮的密钥),计算出一串比特序列。

5)将上一步的比特序列与右侧数据进行XOR运算,并将结果作为加密后的右侧。

注意:因为这样运算,左侧并没有加密,因此在每两轮处理之间交换左右侧数据

四、三重DES

三重DES是为了增强DES强度,将DES重复3次得到的一种密码算法:大概是这样式儿的

Plus:if 所有密钥一样,那结果与普通的DES等价。

if 密钥1 ,3 相同,而密钥2不同,这个三重DES 就称为 DES-EDE2。

if 密钥1,2,3 都不同,三重DES 称为 DES-EDE3。

五、AES的选定

end:Rijndael 的对称密码算法

它是一个多轮算法,每一轮分为SubBytes、ShiftRows、MixColumns 和 AddRoundKey 四步。DES使用 Feistel 网络作为其基础结构,而 Rijndael 使用了 SPN 结构。

首先,Rijndael 的分组长度和密钥长度可以分别以32比特为单位在128比特到256比特的范围内进行选择。不过在AES中,分组长度固定为128比特,密钥长度只有128、192、256比特。

SubBytes:

Rijndael 的输入分组为128比特,也就是16字节。SubBytes就是将16个字节的值 按照一张拥有256个值的替换表 逐个替换另外字节的值

ShiftRows:

将以4字节为单位的行按照一定的规则向左平移,且每一行平移的字节数是不同的。

MixColumns:

对一个4字节的值进行比特运算,将变为另外一个4字节值。

AddRoundKey:

最后将MixColumns的输出轮密钥进行XOR(文章的第一大点)。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

听酱-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值