讲完古典密码之后,接下来将介绍现代密码。
引入 古典密码——对称密码算法的雏形古典密码的特色:
① 共享同一个密钥:加解密密钥相同,或者由加密密钥很容易得到解密密钥。
② 信息的“搅拌”:搅乱明文26各字母信息,使得明文、密文、密钥之间的统计关系变的混乱。
现代对称密码算法设计核心现代对称密码体制的加解密算法是可以公开的,只要密钥不泄露就行。现代对称密码又可以分为分组密码和序列(流)密码。下面主要是对分组密码进行介绍。
4.1 分组密码 分组密码的定义:分组密码是将明文数据序列按照固定长度进行分组,让后在同一密钥控制下用同一算法逐组进行加密,从而将各个明文分组变成一个长度固定的密文分组的密码。
分组密码的主要特点:
同一密钥
同一加密算法
分组加密
分组长度固定
加密:ci=E(mi),i=1,2,...,c=c1c2...,m=m1m2...
分组密码的数学描述:
将明文消息分组,逐组加密。
将明文消息编码表示后的数学序列x0,x1,...,xi,...划分成长为n的组x=(x0,x1,...,xn-1).
各组(长为n的矢量)分别在密钥k=(k0,k1,...,kt-1).控制变换成输出序列y=(y0,y1,...,ym-1)(长为m的矢量)。
其加密函数E:Vn×K->Vm,Vn和Vm分别是n维和m维矢量空间,K为密钥空间。
明文分组长度为n,密文分组长度为m.
① 若n>m,则称其为有数据压缩的分组密码。
② 若n<m,则称其为有数据扩展的分组密码。
通常取n=m,在二元情况下,明文x和密文y均为二院数字序列。它们的每个分量xi,yi∈GF(2).
常用的分组密码算法:国际一些现行的标准:DES、3DES、IDEA、AES
中国分组密码算法标准(国密算法、商用算法):SM4
分组密码设计原则:① 安全原则
安全性是分组密码设计时应考虑的最重要因素,人们一般将Shannon提出的混淆原则和扩散原则作为保证分组密码安全性的两个基本设计原则。
② 实现原则
硬件实现原则 & 软件实现原则
“雪崩效应”
在密码学中雪崩效应是指加密算法(尤其是块密码和加密散列函数)的一种理想属性。
雪崩效应是指当输入发生最微小的改变(例如:反转一个二进制位)时,也会导致输出的不可区分性改变(输出中每个二进制位50%的概率发生反转)。
合格块密码中,无论密钥或明文的任何细微变化都必须引起密文的不可区分性改变。
目的是抗击敌手对密码系统的统计分析。
扩散的实现方法扩散:就是将明文的统计特性分布到密文中去。
实现方式是使得明文的每一位影响密文中多位的值,等价于说密文中每一位均受明文中多为影响。这时明文的统计特性将被散布到密文中。
因而每一字母在密文中出现的频率比在明文中出现的频率更接近于相等,双字母及多字母出现的频率也更接近于相等。
在二元分组密码中,可对数据重复执行某个置换,再对这一置换作用于某一函数(代换),可获得扩散。(置换+代换)
扩散的目的:使明文和密文之间的统计关系变得尽可能复杂,以使敌手无法得到密钥。
混淆的实现方法混淆:是是密文和密钥之间的统计关系变得尽可能复杂,以使敌手无法得到密钥。
即使敌手能得到密文的一些统计关系,由于密钥和密文之间的统计关系复杂化,敌手也无法获得密钥。