美文网首页工作
图解密码技术学习-第三章 对称密码(共享密钥密码)

图解密码技术学习-第三章 对称密码(共享密钥密码)

作者: JMasche | 来源:发表于2016-09-07 22:26 被阅读224次

    必要的基础知识

    编码

    将现实世界的内容(文字、图片、视频等所有的信息)转换成比特序列的过程就叫做编码。例如,ASC||编码

    XOR(异或)

    XOR运算是很基础的比特运算。只有当运算两个运算数不相同时,结果才是1;如果两个运算数相同,则结果是0。具体如下:
    0 XOR 0 = 0
    0 XOR 1 = 1
    1 XOR 0 = 1
    1 XOR 1 = 0

    为什么要在密码技术中把XOR作为必要的基础知识呢?
    我们把上面的运算式的等号和XOR互换一个位置,再从右往左读:
    0 = 0 XOR 0
    0 = 1 XOR 1
    1 = 0 XOR 1
    1 = 1 XOR 0

    我们能看到什么呢?就是A和B的异或结果C,再和B异或一次,就等于A
    这对于密码来说,就相当于加密和解密:
    加密:明文 XOR 密钥 = 密文
    解密:密文 XOR 密钥 = 明文

    一次性密码本

    一次性密码本是不能破译的,但也无法真正使用

    一次性密码本原理

    原理还是比较简单的,假设明文就是64比特的比特序列。随机生成等长的64比特的密钥,然后再和明文做异或运算。解密的时候,再用密文和密钥做一次异或运算就可以了。

    一次性密码本是无法破译的

    这里的破译是指,哪怕计算机的计算能力无限强大也无法破译。原因肯定不是出在密钥没有被暴力破解,而是说即使计算出来了也无法判断它是否正确
    举个例子,原文是midnight,有可能破译出midnignht、mistress等等

    一次性密码本为什么没有被使用

    • 密钥问题。一次性密码本的密钥特点是,密钥和明文等长;密钥由于是随机生成,所以密钥需要很好的保存;密钥无法重用。
      简单的说:密钥跟明文等长的情况下,面临着和明文一样的发送、保存问题,那么这跟保存明文有什么区别呢?相当于制作、发送、保存了两份明文。
      所以一次性密码本没有实用价值。

    流密码

    一次性密码本诞生了一个概念:流密码,这么叫法是因为是针对每个比特进行加密的。流密码是用伪随机数生成器产生的比特序列。

    DES

    概述

    DES ( Data Encryption Standard ),是一种对称密码,目前此密码已经能够被破解。

    加解密原理

    • 分组密码。其实就是将明文按照固定长度分割,然后针对每个分组进行加密。
    • 模式。由于分组密码只能针对固定长度进行加密,所以就会涉及到对多个分组的迭代加密。迭代的具体方式被称为模式。
    • DES结构(Feistel网络)
      • 每一轮有个子密钥。
      • 一轮分组64比特,分成两个分组。
      • 子密钥跟轮函数获得的输出,跟左侧32比特的明文进行异或,获得一个加密的左边密文。
      • 右边不经过任何处理直接使用。
      • 左右合并获得一轮加密后的密文输出。
    • 多轮加密
      第一轮的左侧加密,右侧没有加密。
      第二轮的左侧是第一轮的右侧,第二轮的右侧是第一轮加密后的左侧。
      以此类推
    • 解密。由于加密其实就是异或,所以解密实际上是用每一轮的子密钥,再异或一次即可。

    三重DES

    • 因为DES是可以被暴力破解的,所以三重DES就是增加了DES强度。其实就是重复三次得到的加密算法。
    • 简单的说,有三个密钥,明文分别用三个DES密钥进行 " 加密 -> 解密 -> 加密 " 得到密文。
    • 第二步不是加密,而是解密,主要原因就是为了兼容普通DES。假设第一步加密和第二步解密的密钥是相同的,前两步的结果相当于明文。第三步再进行加密,就相当于普通的DES。
    • 解密的过程其实就是反过来再加密一把即可。
    • 目前还有银行机构在使用此加密算法,但是处理速度不高,且安全性问题逐渐被暴露。

    AES

    概述

    AES (Advanced Encryption Standard)。这其实就是一种标准的名称,是美国标准化机构NIST选定的密码算法。
    当时是公开竞标的,也就是说其实AES有多种候选算法,最终选定的是Rijndael。

    AES加解密的特点

    • 同样是分组加解密。分组长度是128bit,也就是16字节。
    • 加密第一步,针对每个分组逐个字节的进行SubBytes的操作。笼统的说,就是每个字节根据256个值的替换表,将当前字节替换成另外一个字节。
    • 加密第二步,以单个字节为单位进行ShiftRows处理,就是将字节有规律的打乱。
    • 加密第三部,再以4字节为单位进行MixColumns处理,就是进行比特运算变成另外的4个字节。
    • 加密第四步,还是4字节为单位与轮密钥进行XOR运算。至此一轮运算就结束了。
    • 解密的过程就是加密的逆向过程。

    当前对称密码算法的应用

    DES已经不推荐使用,三重DES目前只有兼容性场景才使用,目前认定使用的算法就是AES。

    相关文章

      网友评论

        本文标题:图解密码技术学习-第三章 对称密码(共享密钥密码)

        本文链接:https://www.haomeiwen.com/subject/rapesttx.html