先来无聊的发展史:
DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法,1977年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),并授权在非密级政府通信中使用,随后该算法在国际上广泛流传开来。需要注意的是,在某些文献中,作为算法的DES称为数据加密算法(Data Encryption Algorithm,DEA),已与作为标准的DES区分开来。
加密大概思路图:
1.将56byte的密钥通过算法得到16个不同的密钥
2.把要加密的数据使用16个不同的密钥通过,16轮相同的算法加密
细节(以8byte的加密数据,10byte的密钥为例子):
1.密钥加密:
先将10byte的密钥替换顺序
替换后的数据分为两组
进行一次轮交换
结果:
将处理后的10byte密钥再取:
第一轮的子密钥:
第二轮的轮密钥:
将第一轮的轮交换的数据再轮交换,也就是轮交换两次
后面同理;
2.DES轮过程(对数据加密的地方):
左半部分的就是右半部分
右半部分通过算法:
扩展一倍,和轮密钥亦或,替代(将8byte替换为4byte),置换
1.扩展
2.亦或
3.替代(将8byte替换为4byte):
这步操作很重要
将8byte数据分为两组,取外侧,取内侧,组成二进制,翻译成10进制,作为表的行和列。得到表中的数据转换为二进制就是处理后的4byte
处理后的左右各4byte(左:原右边的4byte;右:右边处理后的数据,就是上边):
经过交换,再替换混淆得到密文
【附】