您现在的位置是:首页 > 学习笔记 > 密码学密码学
分组密码
冰山2019-09-13【密码学】人已围观
简介1. 分组密码的模式
1.1分组密码
1.2模式
1.3明文分组和密文分组
2.主要模式
2.1ECB 模式
2.2XOR运算
2.3CBC模式
2.4CFB 模式
2.5OFB 模式
2.6CTR 模式
2.7总结
1. 分组密码的模式
在昨天所说的DES、三重DES、AES都属于分组密码,它们只能加密固定长度的明文,如果需要加密任意长度的明文,就需要对分组密码进行迭代,而分组密码的迭代方法就称为分组密码的“模式”,分组密码的主要模式有ECB、CBC、CFB、OFB、CTR等等。
1.1分组密码
分组密码(blockcipher)是每次只能处理特定长度的一块数据的一类密码算法,这里的一块就称为分组(block),此外,一个分组的比特数就称为分组长度(blocklength)。
例如,DES和三重DES的分组长度都是64比特,这些密码算法一次只能加密64比特的明文,并生成64比特的密文。AES的分组长度可以从128比特、192比特和256比特中进行选择。当选择128比特的分组长度时,AES一次可加密128比特的明文,并生成128比特的密文。
1.2模式
分组密码算法只能加密固定长度的分组,但是我们需要加密的明文长度可能会超过分组密码的分组长度,这时就需要对分组密码算法进行迭代,以便将一段很长的明文全部加密。而迭代的方法就称为分组密码的模式(mode)。
话说到这里,很多读者可能会说:“如果明文很长的话,将明文分割成若干个分组再逐个加密不就好了吗?”事实上可没有那么简单。将明文分割成多个分组并逐个加密的方法称为ECB模式,这种模式具有很大的弱点。这样做会在不经意间产生安全漏洞,因此要记住千万不能使用ECB模式。
模式有很多种类,分组密码的主要模式有以下5种:
ECB模式:Electronic Code Book mode(电子密码本模式)
CBC模式:Cipher Block Chaining mode(密码分组链接模式)
CFB模式:Cipher FeedBack mode(密文反馈模式)
OFB模式:Output FeedBack mode(输出反馈模式)
CTR模式:CounTeR mode(计数器模式)
1.3明文分组和密文分组
明文分组: 是指分组密码算法中作为加密对象的明文。明文分组的长度与分组密码算法的分组长度是相等的。
密文分组: 是指使用分组密码算法将明文分组加密之后所生成的密文。

为了避免图示变得复杂,以后我们将“用分组密码算法加密"简写为“加密",并省略对密钥的描述。
2.主要模式
2.1ECB 模式
ECB(Electronic Code Book, 电子密码本)模式是最简单的加密模式,明文消息被分成固定大小的块(分组),并且每个块被单独加密。每个块的加密和解密都是独立的,且使用相同的方法进行加密,所以可以进行并行计算,但是这种方法一旦有一个块被破解,使用相同的方法可以解密所有的明文数据,安全性比较差。 适用于数据较少的情形,加密前需要把明文数据填充到块大小的整倍数。
使用ECB模式加密时,相同的明文分组会被转换为相同的密文分组,也就是说,我们可以将其理解为是一个巨大的“明文分组-->密文分组"的对应表,因此ECB模式也称为电子密码本模式当最后一个明文分组的内容小于分组长度时,需要用一特定的数据进行填充(padding),让值一个分组长度等于分组长度。
ECB模式是所有模式中最简单的一种,ECB模式中,明文分组与密文分组是一一对应的关系,因此,如果明文中存在多个相同的明文分组,则这些明文分组最终都将被转换为相同的密文分组。这样一来,只要观察一下密文,就可以知道明文中存在怎样的重复组合,并可以以此为线索来破译密码,因此ECB模式是存在一定风险的。

2.2XOR运算
XOR运算,为了可以理解比特序列运算的概念,我们来介绍一下XOR运算。XOR的全称是exclusive or,在中文里叫作异或,尽管名字看起来很复杂,但这种运算本身一点都不难。1个比特(bit)的位运算规则如下:
随机图文
分组密码
1. 分组密码的模式 1.1分组密码 1.2模式 1.3明文分组和密文分组 2.主要模式 2.1ECB 模式 2.2XOR运算 2.3CBC模式 2.4CFB 模式 2.5OFB 模式 2.6CTR 模式 2.7总结密码
1. 密码 1.1 发送者、接收者和窃听者 1.2 加密和解密 1.3 加密实现 1.3.1 密码算法 1.3.2 加密、解密及秘钥 1.4 凯撒密码 1.4.1 凯撒密码的加密 1.4.2 凯撒密码的解密 1.5 密码信息安全常识与威胁 1.5.1 密码信息安全常识数字签名
1.数字签名 1.1 从消息认证码到数字签名 1.2 签名的生成和验证 1.3 非对称加密和数字签名 1.4数字签名的方法 1.5通过RSA实现数字签名 1.5.1 生成数字签名 1.5.2 验证数字签名 1.6 通过椭圆曲线实现数字签名 1.6.1秘钥对称的生成, 并保存到磁盘 1.6.2使用私钥进行数字签名 1.6.3使用公钥验证数字签名 1.7 数字签名无法解决的问题证书
1.证书 1.1 证书的应用场景 1.2 证书标准规范X.509 1.2.1 证书规范 1.2.2 证书格式 1.2.3 CA证书 1.3 公钥基础设施(PKI) 1.3.1 什么是公钥基础设施 1.3.2 PKI的组成要素 1.3.3 各种各样的PKI