对称加密算法(传统加密算法)
加密密匙与解密密匙相同或很容易互相推算出来。整个通信过程完全依赖密匙的保密。
分为两类:序列密码算法(明文单个位/字节为单位运算)和分组密码算法(一组为单位)
具体算法有很多种:DES,Triple DES,IDEA,RC2,RC4,RC6等等
DES是一种分组密码。
DES使用56位的密钥和64位的明文块进行加密。DES算法的分组大小是64位,因此,如果需要加密的明文长度不足64位,需要进行填充;如果明文长度超过64位,则需要使用分组模式进行分组加密。
虽然DES算法的分组大小是64位,但是由于DES算法的密钥长度只有56位,因此DES算法存在着弱点,容易受到暴力破解和差分攻击等攻击手段的威胁。
DES加密流程:
当输入了一条64位的数据之后,DES将通过以下步骤进行加密。
密钥K通常表示为64位,其中有8位是校验位不参与运算,相当于实际的密钥长度为56位,从56位密钥产生出不同的48位的16个子密钥(K1,K2,K3....K16),每轮运算使用一个子密钥。
得到的值称为轮密匙,代表将扩展为48位,然后与48位的密钥进行一个异或操作,得到的48位值通过8个S盒替换为32位,最后再依照P盒置换一次,得到一个32位的值。