分组算法有
㈠ 数据分组算法设计
一种简单方法是首先把80个数字从小到大排列,有现成的排列算法,套用就行了
然后设置一个20次的循环,第一次取数组的1,2,79,80
第二次取3,4,77,78
以此类推
这样如果80个数字是等差数列,那么每组数字和值一定相同
不是等差数列,和值也会很类似
㈡ 04.现代常见分组加密算法
1.Triple DES
2.IDEA
3.RC6
4.RC6
5.ASE
其实就是有3个密钥k1,k2,k3,如果m表示明文,C表示密文,他们是这样操作的:
DES1(m)=>C1
DES2(C1)=>C2
DES3(C3)=>C3
DES密钥太短是其短板,3DES密钥长度为k1+k2+k3 = 56*3 = 168bit
既然都Triple自然就有double,为什么不用Double DES呢?
我们先来看下double des:
首先根据DESC密钥太短的特点,的确是有了double desc,可用中间相遇攻击破解(老师坑爹没讲什么是中间相遇攻击,日后补上),经过加密有2^64个可能的密文,密钥长度为112bit(56+56),所以选择密钥的可能性达到2^112,于是对给定一个明文P加密成密文有2^112/2^64 = 2^48种可能,对于给定两个明文密文对,虚警率降为2^(46-64)=2^-16,用中间相遇攻击大概可用2^57 可暴力破解
那么如何解决中间相遇攻击呢?于是设计出了Triple des,它一共有四种模式:
1.DES-EEE3:3个不同的密钥,顺序用三次加密算法
2.DES-EDE3:3个不同的密钥, 加密-解密-加密
3.DES-EEE2:两个不同的密钥,k1,k2,k1,依次k1加密,k2加密,k1加密
4.DES-EDE2:两个不同的密钥,k1,k2,k1,依次k1加密,k2解密,k1加密
这里我们着重介绍第四种,DES-EDE2
同DES相比有如下特点:
1.3DES安全性高,密钥长度大于DES
2.3DES可抵抗中间相遇攻击
3.可向下兼容,我们设k2=k1,则密钥均为k1,上图中A过程加密后在B过程解密,最后在C过程又加密,相当于仅用k1加密一次,兼容了DES,解密同理
4.相比于DES效率低些
要求:1.效率比3DES高
2.至少和3DES一样安全,数据分组长度128bit
它有如下特点:
1.不属于Feistel结构,属于SP网络
2.加密,解密相似但不对称
3.支持128/32=Nb数据块大小
4.支持128/192/256(/32=Nk)密钥长度
5.结构简单速度快
什么是Feistel结构?
Feistel 的优点在于:由于它是对称的密码结构,所以对信息的加密和解密的过程就极为相似,甚至完全一样。这就使得在实施的过程中,对编码量和线路传输的要求就减少了几乎一半
什么是SP网络结构?
在这种密码的每一轮中,轮输入首先被一个由子密钥控制的可逆函数S作用,然后再对所得结果用置换(或可逆线性变换)P作用,S和P分别被称为混乱层和扩散层,主要起混乱和扩散作用
通过置换和替换迭代加密(最后一轮没有列混淆)