密码体制由5个部分组成(见图):①明文空间。它是全体明文的集合。②密文空间
。它是全体密文的集合。③密钥空间
。它是全体密钥的集合。其中每一个密钥
均由加密密钥
和解密密钥
组成,即
。④加密算法
。它是一族由
到
的加密变换。⑤解密算法
。它是一族由
到
的解密变换。
对于每一个确定的密钥,加密算法将确定一个具体的加密变换,解密算法将确定一个具体的解密变换,而且解密变换就是加密变换的逆变换。对于明文空间中的每一个明文
,加密算法
在密钥
的控制下将明文
加密成密文
:
解密算法在密钥
的控制下由密文
解密出同一明文
:
如果一个密码体制的,或由其中一个很容易推出另一个,则称为单密钥密码体制、对称密码体制或传统密码体制。否则称为双密钥密码体制。进而,如果在计算上
不能由
推出,这样将
公开也不会损害
的安全,于是便可将
公开。这种密码体制称为公开密钥密码体制,简称公钥密码体制。公钥密码体制的概念于1976年由美国学者W.迪菲(W.Diffie)和M.赫尔曼(M.Hellman)提出。它的出现是密码发展史上的一个里程碑。
根据明密文的划分和密钥的使用不同,可将密码体制分为分组密码体制和序列密码体制。
设为明文,分组密码将
划分为一系列的明文块
,通常每块包含若干位或字符,并且对每一块
都用同一个密钥
进行加密。即:
式中。
序列密码将明文和密钥都划分为位或字符的序列,并且对于明文序列中的每一位或字符都用密钥序列中的对应分量来加密,即:
式中。
分组密码每一次加密一个明文块,而序列密码每一次加密一位或一个字符。分组密码和序列密码在实际系统中都有广泛应用。序列密码是要害部门使用的主流密码,而商用领域则多用分组密码。
根据加密算法在使用过程中是否变化,可将密码体制分为固定算法密码体制和变化算法密码体制。
设为加密算法,
为密钥,
为明文,
为密文,如果把明文加密成密文的过程中加密算法固定不变,即:
,则称其为固定算法密码体制。
如果在加密过程中加密算法也不断变化,即:
式中互不相同,则称其为变化算法密码体制。
由于加密算法在加密过程中可受密钥控制而不断变化,显然可以极大地提高密码的强度。更进一步,若能使加密算法朝着越来越好的方向演变进化,那么密码就成为一种自发展的、渐强的密码,称其为演化密码。
用表示加密算法
的强度,则这一演化过程可表为:
式中为加密算法的设计演化阶段。在这一阶段中,加密算法的强度尚不够强,不能实际使用,因此要求密码算法的安全性越变越好。这一过程在实验室进行。为新生密码,它是密码已经成熟的标志。
为密码的工作阶段,而且在工作过程中仍不断地演化变化。由于密码算法不断变化,可以极大地提高密码系统的安全性。这就是演化密码的思想。