分组密码介绍综述
人类进入大数据时代,信息变成了人类的财富,是人类生存、活动和进步的重要资源。我们通常所说的人与人之间信息的交换,其实就是语言、文字、图像、数据和符号等的相互交流或传递。任何一个国家、党派乃至一个小团体,为了自己的利益,都要在内部交换信息。但许多信息除合法的授权者外,不想也不能让其他任何人知道,这就产生了密码通信。图1.1.1表示一般的密码通信系统模型。
图1.1.1中,信息的原生态称为明文(用m表示),明文的产生处称为明文
源,明文的接收处称为明文宿,将明文变换为不可懂的信息(隐藏态),此时的信息称为密文(用表示),由明文变换为密文的过程称为加密,反之称为解密或脱密。加密时采用的所有加密算法总体称为加密算法空间,而解密时采用的所有解密变换总体称为解密算法空间或脱密算法空间。控制加密算法Ek,变化的关键信息或参数k称为加密密钥,所有加密密钥组成加密密钥源,控制解密算法Dka,变化的关键信息或参数k,称为解密钥,所有解密密钥组成解密密钥源。密钥是加密密钥和解密密钥统,记k=(k。+ka)。
明文源
明文源明文成加密变换密文c
k
k.
解密密钥源
加密密钥源
保密通道密钥理中保密通道
解密变换明文m
公开信道
明文宿
密文c
图1.1.1密码通信系统模型
分组密码加解密过程由图1.1.2所示。图中,M=(mnm?m.…m1为
明文组,C=(CnC?C….Cn-1)为对应的密文组,K=(knk?k?..k-1为
密钥,E和Dx分别为密钥K决定的加密变换和解密变换。记
F。={X=(xox?X?…Xn-1)|x?∈F?l,将F中的元素X既看作一个向量,又看作是整数环Z中整数X|=∑”二=1x;q?-i-1的q进制表示。在以下讨
论中,一般假定a=2。
K=(kk?k?…k)立
M=(m,m;m.…ma)加变换
C=(cC:C……Cm)公开信道
K=(k。k:k.…k)
M=(mm;m…m)解密变换
M=(mm;m…m)
D
图1.1.2分组密码加密和解密过程
由密码体制的定义可知,在分组密码体制中,加密变换空间为
E={E|E:
F→F,是——映射,KeK}
解密变换空间为
D={Dv|Dv:
F→F2是——映射,KeK}
E和D均为2”阶对称群Sn,的一个子集。如果E=S?#,那么对
于任一E∈E,即使已知n对明密文(M;,C;),C;=E(M;),i=1,2,n,
对每个M?{M;li=1.2.3.n破译者只能知道
E(M)≠C;,i=1,2,3……,n,E(M)≠C;,i=1,2,3,…,n,而对E不能做
出任何判断。因为E可以是S?n中的任一置换,而在S?的(2)!
个置换中有(2”-n)!个置换都可以满足
C?=E(M;),i=1,2,3……n,所以当n比较大时(如n=64)时,破
译者无法对E做进一步的推测。
但是,实际上不可能使密钥空间K取最大值E=S?’。例如当n=6
时,IS?nl=(2”)!≈22?6,可见对很小的n=6,就至少需要用296bit的
密钥才能得到所有可能的置换。所以要使E=S?是不切合实际的。一般情
况下,E只能是对称群E=S?n中一个很小的子集。
如何构造一个分组密码体制,确切地讲,如何由密钥空间K中任一密钥K确定密码变换E和Dk呢?一种方法是利用某些简单的函数来定义
E和Dv。例如,在单表代替密码的构造中,我们曾经讨论过用矩阵法
构造代替密码(即分组密码)的密码变换E和D,它们是F26→F26的可逆线性变换。因为每个密钥K是Z?上任意n阶可逆方阵,不难推出,加密变换空间E=解密变换空间D所含的变换个数为
(26”-2°)(26”-21)(26”-22)...(26”-2n-1)
尽管这个数字随n指数的增长而增长。但是,只要知道