图解密码学.第三章

第三章 对称密码

  • 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的部分,则可获得一些与密钥有关的信息
    两者的前提:可以选择任意明文并得到加密结果:选择明文攻击

三重DES

三重DES:为了增加DES的强度,将DES重复三次所得到的算法,也称为TDEA,3DES

上一篇:SQL2008全部数据导出导入两种方法【转】


下一篇:Contest - 第10届“新秀杯”ACM程序设计大赛网络预选赛 赛后信息(晋级名单)