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

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

作者: 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。

相关文章

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

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

  • 密码学基础之密码学家的工具箱

    《图解密码技术》把以下项重要的密码技术称作“密码学家的工具箱”。 对称密码 公钥密码 单向散列函数 消息认证码 数...

  • 《图解密码技术》读书笔记

    第3章 对称密码(共享密钥密码)--- 用相同的密钥进行加密和解密 XOR(异或) 是最基本的加密运算 DES 是...

  • 密码技术(六)之混合密码

    混合密码  混合密码用对称密码来加密明文,用公钥密码来加密对称密码中所使用密钥。通过使用混合密码系统,就能够在通信...

  • 密码学入门之密码

    最近在研读《图解密码技术》这本书,将有一系列的密码学学习笔记,涉及到密码的相关概念、对称加密、非对称加密、单向散列...

  • 《图解密码技术》笔记

    对称密码 对称密码是一种用相同的密钥进行加密和解密的技术,用于确保信息的机密性。主要是用AES。尽管对称密码能够确...

  • 密码技术的一些笔记

    对称密码 加密和解密时使用同一密钥 公钥密码(非对称密码) 加密和解密时使用不同密钥 恺撒密码: 通过将明文中所使...

  • 对称密钥加密体系 — DES

    对称密钥加密机制即对称密码体系,也称单玥密码体系和传统密码体系。对称密码体系通常分为两大类:分组密码(如DES、A...

  • iOS签名机制02- 对称密码与公钥密钥

    本文思维导图 根据密钥的使用方式,可以将密码分为两类:对称密码 和 公钥密码(非对称密码)。对称密码中,加密用的密...

  • 密码学家的工具箱(golang代码实现)

    本文参考《图解密码技术》第三版    密码学家的工具箱,指六种常用加密方式包括对称密码、非对称密码、单向散列函数、...

网友评论

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

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