第三章——分组密码
来源:互联网 发布:淘宝网九块九包邮女装 编辑:程序博客网 时间:2024/06/05 04:42
1:设计原则
1) 分组长度和密钥长度——明文分组长度和密钥长度尽可能大
2) 扰乱原则——应使得密钥和明文以及密文之间的依赖关系相当复杂
3) 扩散原则——应使得密钥的每一位影响密文的许多位
针对实现的原则——软件实现和硬件实现
2:评估——安全性、性能、算法和实现特性
3:分组密码常见的设计方法
1) Feistel结构
明文P=LR,L是P的左边n位,R是P的右边n位;进行r轮完全相同的运算,第i轮的运算为 Li=Ri-1 Ri=Li-1(异或)F(Ri-1,Ki);F()是轮函数,K1...Kr是由种子密钥生成的子密钥
方法特点
(1) 加解密是完全一样的,除了所使用的子密钥的顺序正好相反,有利于硬件实现
(2) 扩散比较慢,至少要两轮才能改变输入的每一位,从而导致轮数比较多
2) SPN结构
Xi-1到Xi需要经历两层,第一层为S层(替换层,起扰乱作用);第二层为P层(置换层,起扩散作用)
该方法扩散快,但加解密通常不相似
4:数据加密标准(DES)
明文分组为64位、有效密钥56位、输出密文64位的,具有16轮迭代的分组对称密码算法,DES由初始置换、16轮迭代和初始逆置换组成
存在争议的几点
1) S-盒的设计准则
2) 56的有效密钥太短
3) 弱密钥和半弱密钥
4) 代数结构存在互补对称性
5:高级加密标准(AES)
三种可选的密钥长度,且密钥长度决定轮数Nr
密钥长度为128,轮数为10;密钥长度为192,轮数为12;密钥长度为256,轮数为14
1) 给定一个明文M,将State初始化为M,并将轮密钥与State异或(轮密钥的长度=分组长度*(Nr+1))
2) 对前Nr-1轮中的每一轮,用S-盒进行一次替换(SubBytes);对替换的结果State做行移位操作(ShiftRows);再对State做列混合变换(MixColumns),然后进行AddRoundKey操作
3) 最后一轮进行SubBytes、ShiftRows和AddRoundKey操作
4) 将State定义为密文C
注意S-盒的构造过程;xy——映射为逆——转换为二进制表示、并进行放射变化得到(需用到11000110)
行移位变换——第一行保持不动,第二行循环左移一个字节,第三行循环左移两个字节,第四行循环左移三个字节
列混合变换——把每一列看成一个四项多项式,再与固定多项式a(x)进行模x^4+1乘法运算
AES的解密:需要用到逆S-盒,以及InvShiftRows变换和InvMixColumns变换
6:分组密码的工作模式
1) 电子本模式(ECB模式):直接利用加密算法分别对每个明文分组使用相同密钥进行加密(容易暴露明文数据的固有格式)
2) 链接模式(CBC模式):加密算法的输入是当前的明文分组Mi和上一次产生的密文分组Ci-1的异或,输出为密文分组Ci
3) 密码反馈模式(CFB模式):加密函数处理结果的最高s位与明文的第一个分组M1进行异或产生密文分组C1;同时,移位寄存器的值向左移动s位,并用C1替换寄存器的最低s位
4) 输出反馈模式(FOB模式)
5) 计数器模式(CTR模式):将一个计数器输入到寄存器中,对寄存器中的值进行加密后与明文M异或得到密文;每一个分组完成加密后,计数器都要增加某个常数
具有随机访问特性、高效率
- 第三章——分组密码
- 分组密码——DES加密算法
- 分组密码——DES与工作模式
- 分组密码
- 分组密码
- 密码编码学初探——分组密码的工作模式
- 【密码学】分组密码:DES密码
- 密码编码学初探——分组加密技术(DES&AES)
- 三个分组密码算法
- 分组密码算法分析
- 分组密码算法分析
- 分组密码加密模式
- 分组密码算法分析
- 密码学之分组密码
- RC5分组密码算法
- 分组密码算法
- 分组密码工作模式
- 【寒江雪】分组密码模式
- 飞思卡尔推出四款脚位相容的64位处理器
- redis 事件处理
- 从来没有一种工作叫钱多、事少、离家近(转)
- mastudio 使用webpage来获取输出网页
- ibatis的一些优点
- 第三章——分组密码
- GDB远程调试
- Android JNI 头文件的生成
- ORACLE数据库NLS_CHARACTERSET和NLS_NCHAR_CHARACTERSET区别
- 为UITableViewCell增加按钮及处理按钮事件的方法
- 红尘陌上,为谁一抹忧伤:QQ伤感日志
- Hibernate联合主键下,主键生成策略
- C2504 base class undefined
- VS2010测试功能之旅:编码的UI测试(3)-操作对象的识别原理