des算法加密流程

TIME:2019-03-15   click: 250 次


对称算法最具代表性的是IBM公司提出的DES算法,该算法自1977年被确定为商用数据加密标准后,得到了普遍应用。

DES算法是一个分组算法,它以64位分组对数据进行加解密。它的密钥长度是56位,由8个字节组成,每字节的第8位用来奇偶校验。密钥可是随意的56位比特块,且能在随意时候变化,其中特别少的56位比特块被当做是弱密钥,在使用中要躲避这些弱密钥。全部的保密性靠密钥。DES算法的一般过程如下图所示:

ͼƬ1.png

①初始置换:是按确定的矩阵来换位,这个部分与密钥没有关系。初始置换把明文(密文)分组分为左半部分与右半部分,两个部分都是32位长。

②子密钥生成:外部输入的56位密钥借置换与位移生成加密、解密所需的16个48位的子密钥。这16个子密钥分别用在乘积变换中的16轮运算。

③乘积变换:该过程与密钥有关系,且比较复杂,是加解密过程的关键。该过程有线性与非线性两种变换。该过程由多次复杂的替代与置换,将原来输入的数据组打乱,增大了非规律性,及系统分析的难度。乘积变换将进行16轮都相同的运算,在运算中数据与密钥相结合,最终得到32位长的左、右半部分。

④末置换:是初始置换的逆变换,与密钥没有关系。乘积变换生成的左右两个半部分合在一起,经过末置换后生成64位的密文(明文)。

DES算法最主要的优点是:可靠性较高、加解密速度快、算法易实现、通用性强。主要缺点是:密钥位数少、算法有对称性、易被穷尽法攻击、密钥管理复杂。

有些密钥会导致生成一样的16个子密钥,这些子密钥叫作弱密钥。当密钥是全0、全1或一半是全0、一半是全1时,会出现这种情况。

有些密钥把明文加密成一样的密文,这些密钥只产生2个不一样的子密钥,而不是生成16个不一样的子密钥,这些子密钥叫半弱密钥。

有些密钥只生成4个不一样的子密钥,这些子密钥叫可能的弱密钥。

上一篇:pgp是什么 下一篇:非对称密码算法有哪些