图解密码学.第三章

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

图解密码学.第三章
第三章对称密码
XOR运算
⼀次性密码本
DES
三重DES
AES
Rijindael
1.XOR运算
XOR运算,中⽂简称异或
0 XOR 0 = 0
1 XOR 0 = 1
1 XOR 1 = 0
相同为0不同为1 运算符号:⊕
A 0 1 0 0 1 1 0 0
B 1 0 1 0 1 0 1 0 ⊕
1 1 1 0 0 1 1 0 A ⊕ B
因为 XOR 相同两个数字运算为0
所以 A⊕B⊕B = A 即对同⼀⽐特序列进⾏两次XOR运算就能便会原来
2.⼀次性密码本-不会被破译的密码
⼀次性密码本的加密
⾸先将消息按ascii编码 转换成⽐特序列,在随机⽣成和消息等长的⽐特序列(XOR密钥)和消息进⾏XOR运算,加密结束
⼀次性密码本解密
将密⽂和XOR密钥进⾏运算,得到明⽂
⼀次性密码本⽆法破译:因为即使还原出正确的单词也⽆法判断是否就是明⽂,因为在破译的过程中有很多可以被理解的打你
因此,⼀次性密码本是⽆条件安全的:在理论上⽆法破译
为什么没被使⽤
密钥配送问题:发送密⽂就要放能破解密⽂的密钥,但是不能保证密钥发送时不被监听,但如果有⽅式能安全的将密钥发送过去,为什么不直接发送明⽂呢?
密钥保存问题:密钥长度和密钥长度等长,为了防⽌被破译,要妥善保管密钥,但是保护了和明⽂⼀样长的密钥,为什么不直接不保护明⽂呢?
密钥重⽤:不能重⽤过去的随机⽐特,⼀旦泄露,过去的通信都被泄露
密钥同步:不能错位,错位的信息⽆法揭秘
3.DES
DES 是对称密码,现在DES能够被暴⼒破解,除了⽤它解密以前的密⽂,不应该再使⽤DES
将64⽐特明⽂加密成64⽐特密⽂的对称密码算法,密钥长度56⽐特,每隔7⽐特设置错误检验⽐特
以64⽐特为单位进⾏加密,64称为⼀组,分组,分组为单位进⾏处理的密码算法称为分组密码
模式:当数据超过⼀组,需要加密算法进⾏迭代时,迭代的具体⽅式称为模式
DES的结构(Feistel⽹络)
加密的各个步骤称为轮
DES是⼀种16轮循环的Feistel⽹络
⽹络中的⼀轮
整体流程:
DES 输⼊数据为64⽐特,将输⼊数据等分为左右两侧,每侧均为32⽐特⼦密钥指本轮加密所使⽤的密钥,每⼀轮需要使⽤⼀个不同的⼦密钥
轮函数f:
1.根据右侧和⼦密钥创建出对左侧加密的⽐特序列
2.将论函数输出与左侧XOR运算,结果为加密后的左侧
3.右侧直接输出
以上为⼀轮
每轮完成后需要进⾏左右对调,三轮两次
解密将上述步骤重新运⾏⼀次即可解密
差分分析:改变⼀部分明⽂并分析密⽂如何随之改变,通过改变明⽂密⽂所产⽣的偏差,可以获得破译密码的线索。

线性分析:思路(将明⽂与密⽂对应的⽐特进⾏XOR计算其结果为零的概率),如果密⽂具备⾜够随机性,则任意选择⼀些明⽂和密⽂的对应⽐特XOR结果为零的概率应为1/2,如果找到⼤幅度偏离1/2的部分,则可获得⼀些与密钥有关的信息
两者的前提:可以选择任意明⽂并得到加密结果:选择明⽂攻击
4.三重DES
三重DES:为了增加DES的强度,将DES重复三次所得到的算法,也称为TDEA,3DES
三重DES的加密机制如图所⽰:
由于DES的密钥实质是56⽐特,因此三重DES的密钥 56*3 = 168
三重DES:加密-》解密-》加密⽬的:兼容普通DES
密钥1 和 3 相同,密钥2不同时称为DES-EDE2
三种密钥都不同,称为DES-EDE3
三重DES的解密
5.AES
在2000年选出Rijndael的对称密码算法,确定其为AES
免费
通过竞争实现标准化
什么是Rijndael
分组长度和密钥长度可以32⽐特为单位,在128到256之间进⾏选择,
但是AES规格中,分组长度:128⽐特;密钥长度:128,192,256⽐特三种
Rijndael加密和解密
由多个轮构成
⼀轮分为:SubBytes, ShiftRows, MixColumns, AddRoundKey
称为SPN结构
输⼊分组128⽐特,16字节
SubBytes
流程:以每个字节的值(0~255的任意值)为索引,从⼀张拥有256个值的替换表(S-Box)查找出对应值的处理。

将1字节的值替换成另⼀个字节的值
ShiftRows
流程:以四字节为单位的⾏,按照⼀定的规则向左评议,且每⼀⾏平移的字节数不同
MixColumuns
流程:对⼀个4字节的值进⾏⽐特运算,将其变为另外⼀个4字节值
AddRoundKey
流程:将上⼀输出与轮密钥进⾏XOR
以上为⼀轮,Rijndael需要10-14轮计算。

相关文档
最新文档