DES算法全稱為Data Encryption
Standard,即數(shù)據(jù)加密算法,它是IBM公司于1975年研究成功并公開發(fā)表的。DES算法的入口參數(shù)有三個(gè):Key、Data、Mode。其中
Key為8個(gè)字節(jié)共64位,是DES算法的工作密鑰;Data也為8個(gè)字節(jié)64位,是要被加密或被解密的數(shù)據(jù);Mode為DES的工作方式,有兩種:加密
或解密。
DES算法把64位的明文輸入塊變?yōu)?4位的密文輸出塊,它所使用的密鑰也是64位,其算法主要分為兩步:
1初始置換
其功能是把輸入的64位數(shù)據(jù)塊按位重新組合,并把輸出分為L(zhǎng)0、R0兩部分,每部分各長(zhǎng)3
2位,其置換規(guī)則為將輸入的第58位換到第一位,第50位換到第2位……依此類推,最后一位是原來(lái)的第7位。L0、R0則是換位輸出后的兩部分,L0是輸
出的左32位,R0是右32位,例:設(shè)置換前的輸入值為D1D2D3……D64,則經(jīng)過(guò)初始置換后的結(jié)果為:L0=D58D50……D8;R0=
D57D49……D7。
2逆置換
經(jīng)過(guò)16次迭代運(yùn)算后,得到L16、R16,將此作為輸入,進(jìn)行逆置換,逆置換正好是初始置換的逆運(yùn)算,由此即得到密文輸出。