现代共享密钥密码体制的加解密算法是公开的,只要密钥不泄露就行了。它有两个目标:
分组密码(block cipher)是现代密码学中的重要体制之一,也是应用最广泛、影响最大的一种密码体制。其主要任务是提供数据保密性,也可以用在伪随机数生成器、序列密码、认证码和哈希函数的构造中。
分组密码又称为对称密码,具有加解密速度快、安全性好的特点。得到了许多密码芯片的支持,在许多研究和应用领域中得到了广泛的应用
分组密码的原理是将明文消息经过编码表示后的二进制序列 P 1 , P 2 . . . P i P_1,P_2...P_i P1,P2...Pi划分为若干个固定长度(长为m)的组 p = ( p 0 , p 1 , . . . , p m − 1 ) p=(p_0,p_1,...,p_{m-1}) p=(p0,p1,...,pm−1),各组分别在密钥 k = ( k 0 , k 1 , . . . , k t − 1 ) k=(k_0,k_1,...,k_{t-1}) k=(k0,k1,...,kt−1)的控制下转换成长度为n的密文分组 c = ( c 0 , c 1 , . . . c n − 1 ) c=(c_0,c_1,...c_{n-1}) c=(c0,c1,...cn−1)。其本质是一个从明文空间(m长的比特串的集合)P到密文空间(n长的比特串的集合) C C C的一一映射
1、分组长度要足够打
当分组长度较小时,攻击者可以通过穷尽明文空间,得到密码变换的规律,难以抵挡选择明文攻击
2、密钥量要足够大
密钥量小,攻击者可以有效通过穷尽密钥,对密文进行解密,以得到有意义的明文,难以抵御唯密文攻击
3、密码变换要足够复杂
使攻击者除了穷尽攻击以外,找不到其他有效的数学破译方法
4、加密和解密运算要简单
便于软件和硬件实现,性能好
5、无数据扩展或压缩
扩散,是指要将算法设计成明文每一个比特的变化尽可能地影响到输出密文序列地变化,以便隐蔽明文地统计特性,形象地称为雪崩效应。
扩散的另一个意思是密钥每一位的影响尽可能迅速地扩展到较多的密文比特中去。即扩散的目的是希望密文中的任一比特都要尽可能与明文、密钥相关联,或者说明文和密钥中任何一比特值发送改变,都会在某种程度上影响到密文值得变化,以防止将密钥分解成若干个孤立得小部分,然后被各个击破
扩散技术差的举例
00000000 --> 00000001
00000001 --> 00000011
扩散技术好的举例
00000000 --> 01001101
00000001 --> 10110111
混乱,指在加解密变换过程中明文、密钥以及密文之间的关系尽可能地复杂化,以防密码破译者采用解析法(即通过建立并求解一些方程)进行破译攻击
混乱可以用“搅拌机”来形象地解释,将一组明文和一组密钥输入到算法中,经过充分混合,最后变成密文。同时要求,执行这种“混乱”作业地每一步都必须是可逆的,即明文混乱以后能得到密文,反之,密文经过逆向的混乱操作后能恢复出明文(按照混乱原则,分组密码算法应有复杂的非线性因素)
乘积密码就是扩散和混乱两种基本密码操作的组合变换,这样能够产生比各自单独使用时更强大的密码系统。选择某个较为简单的密码变换(包含多个基本密码),在密钥控制下以迭代方式多次利用它进行加密变换,就可以达到预期的扩散和混乱效果。乘积密码有助于利用少量的软硬件资源实现较好的扩散和混乱效果,再通过迭代方法,达到预期设计效果,这种思想在现代密码设计中使用非常广泛
用简单算法的乘积来近似表达复杂的替代变换
优点
加解密相似,只需要一个逆转的密钥编排算法,加解密算法部分完全一致
轮函数不必可逆(轮函数是分组密码中单轮加解密函数)
Feistel网络结构介绍(F表示轮函数,ki表示每一轮的子密钥)
加密过程(i 代表轮数)
将明文分割成左右两半:( L 0 , R 0 L_0, R_0 L0,R0)
L i + 1 = R i L_{i+1} = R_i Li+1=Ri
R i + 1 = L i ⊕ F ( R i , K i ) R_{i+1} = L_i ⊕ F(R_i,K_i) Ri+1=Li⊕F(Ri,Ki)解密过程(i = n, n-1, … , 0)
R i = L i + 1 R_i = L_{i+1} Ri=Li+1
L i = R i + 1 ⊕ F ( L i + 1 , K i ) L_i = R_{i+1} ⊕ F(L_{i+1},K_i) Li=Ri+1⊕F(Li+1,Ki)
( L 0 , R 0 L_0, R_0 L0,R0)为解密后的明文
SP网络是由多重S变换和P变换组合成的变换网络,它是乘积密码的一种,其基本操作时S变换(代换)和P变换(置换),前者称为S盒,后者称为P盒。S盒起到混乱作用,P盒起到扩散的作用,SP网络的构造及S盒、P盒的构造如下图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pMuyoqdv-1650801527730)(./images/10/10-4.png)]
SP网络也具有雪崩效应,雪崩效应指输入明文或密钥即使只有很小的变化,也会导致输出(密文)产生巨大的变化现象。