原创 【博客大赛】ARM开发板实现DES加解密

2013-3-1 17:10 1003 17 17 分类: MCU/ 嵌入式

这是一个简单的课程设计,尚未完成对文件的处理,只是简单的处理数组(图片是从ppt中截取的)。。。。。

 一:DES加解密简介

•DES( Data Encryption Standard)算法,是一种用56位密钥来加密64位数据的方法

1977年得到美国政府的正式许可,然后得到推广;

是使用比较广泛的密钥系统,特别是在保护金融数据的安全中,最初开发的DES用于嵌入式硬件中。

二:DES加解密原理

DES加密算法过程

20130301170645269001.jpg

*       64位明文:将用户要加密的内容以8Bytes为单位进行处理

*       初始变换:采用特定的初始换位表进行换位(例如输入的第58,在输出的时候被置换到第1;输入的是第7,在输出时被置换到第64

*       加密变换16轮:初始换位的64位的输出作为下一次的输入,64位分为左、右两个32,分别记为L0R0,L0R0L16R16,共进行16轮加密变换

*       逆初始变换:进行16轮的加密变换之后,L16R16合成64位的数据,再按照逆初始变换表 进行换位

*       生成16个子密钥:将64位密钥通过压缩换位去掉每个字节的第8,用作奇偶校验,因此,密钥去掉第81624……64位减至56,所以实际密钥长度为56,而每轮要生成48位的子密钥。

DES解密算法过程

20130301170845617001.jpg

w  64位密文:将加密后内容以8Bytes为单位进行处理

w  反(逆初始变换):将逆初始换位表顺序反过来进行换位(例如输入的第58,在输出的时候被置换到第1;输入的是第7,在输出时被置换到第64

w  解密变换16轮:初始换位的64位的输出作为下一次的输入,64位分为左、右两个32,分别记为L0R0,L0R0L16R16,共进行16轮解密变换

w  此处的16key与加密过程中的顺序正好相反

w  反初始变换:进行16轮的解密变换之后,L16R16合成64位的数据,再按照反初始变换表(将初始变换表顺序倒过来)进行换位

w  生成16个子密钥:将64位密钥通过压缩换位去掉每个字节的第8,用作奇偶校验,因此,密钥去掉第81624……64位减至56,所以实际密钥长度为56,而每轮要生成48位的子密钥。

三:ARM开发板实现

DES加解密实现流程

20130301170709922005.jpg

演示:

20130301170715586006.jpg

20130301170721457007.jpg

20130301170726456008.jpg

文章评论0条评论)

登录后参与讨论
我要评论
0
17
关闭 站长推荐上一条 /2 下一条