这是一个简单的课程设计,尚未完成对文件的处理,只是简单的处理数组(图片是从ppt中截取的)。。。。。
一:DES加解密简介
•DES( Data Encryption Standard)算法,是一种用56位密钥来加密64位数据的方法 ;
•于1977年得到美国政府的正式许可,然后得到推广;
•是使用比较广泛的密钥系统,特别是在保护金融数据的安全中,最初开发的DES用于嵌入式硬件中。
二:DES加解密原理
DES加密算法过程
64位明文:将用户要加密的内容以8Bytes为单位进行处理
初始变换:采用特定的初始换位表进行换位(例如输入的第58位,在输出的时候被置换到第1位;输入的是第7位,在输出时被置换到第64位 )
加密变换16轮:初始换位的64位的输出作为下一次的输入,将64位分为左、右两个32位,分别记为L0和R0,从L0、R0到L16、R16,共进行16轮加密变换 。
逆初始变换:进行16轮的加密变换之后,将L16和R16合成64位的数据,再按照逆初始变换表 进行换位
生成16个子密钥:将64位密钥通过压缩换位去掉每个字节的第8位,用作奇偶校验,因此,密钥去掉第8、16、24……64位减至56位,所以实际密钥长度为56位,而每轮要生成48位的子密钥。
DES解密算法过程
w 64位密文:将加密后内容以8Bytes为单位进行处理
w 反(逆初始变换):将逆初始换位表顺序反过来进行换位(例如输入的第58位,在输出的时候被置换到第1位;输入的是第7位,在输出时被置换到第64位 )
w 解密变换16轮:初始换位的64位的输出作为下一次的输入,将64位分为左、右两个32位,分别记为L0和R0,从L0、R0到L16、R16,共进行16轮解密变换
w 此处的16个key与加密过程中的顺序正好相反
w 反初始变换:进行16轮的解密变换之后,将L16和R16合成64位的数据,再按照反初始变换表(将初始变换表顺序倒过来)进行换位
w 生成16个子密钥:将64位密钥通过压缩换位去掉每个字节的第8位,用作奇偶校验,因此,密钥去掉第8、16、24……64位减至56位,所以实际密钥长度为56位,而每轮要生成48位的子密钥。
三:ARM开发板实现
DES加解密实现流程
演示:
文章评论(0条评论)
登录后参与讨论