c实现des加密算法

c实现des加密算法

ID:35937510

大小:273.50 KB

页数:13页

时间:2019-04-26

c实现des加密算法_第1页
c实现des加密算法_第2页
c实现des加密算法_第3页
c实现des加密算法_第4页
c实现des加密算法_第5页
资源描述:

《c实现des加密算法》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、程序设计文档(一)设计原理:本次作业是完成DES加密算法的。DES加密算法是用64位明文和64位密钥进行相关的运算得到。具体的实现步骤为:1)将输入的明文字符转为64位的二进制代码2)将输入的密钥字符转为64位的二进制代码3)将64位明文二进制进行位变换4)将变换后的明文二进制分为左右两个32数组5)将32位右数组扩展为48位数组6)将64位密钥进行除奇偶转换变成56位数组7)将56位数组等分为ab两个数组8)将a,b两个数组分别进行移位9)将移位后的ab两个数组进行合并成56位数组10)将合并后的56位数组变换成48位数组11)在第10步生成的48位数组和

2、第5步生成的48位进行异或得到新的48位数组12)新的48位数组进行s盒变换后得到32位数组13)将32位数组进行变换得到新的32位数组14)新的32位数组和明文的左数组进行异或得到新的右数组,原来的右数组变成新的左数组15)回到第5步一共迭代16次16)最后将右左数组合并成64位数组17)64位数组进行变换得到新的64位数组18)将64位数组变换成8个字符这次作业要求用类的思想来解决,不过我没有很好的把加密算法抽象成类的概念,只是把整个大的加密算法当成一个类,每次加密都是一个类,所有的子函数都作为算法类的公有函数。或许可以把明文抽象成一个类,密文又抽象成一

3、个类,把他们共有的函数作为这个类的公有函数;又或许把几个函数作为一个类的公有函数,但是这样只是采用了类的形式而已并非很好的运用类的思想。本次作业采取的是第一个把整个大的加密算法当为一个类的方法。(二)设计工作流程(三)程序代码#include#includeusingnamespacestd;classwangxianDES{public:voidsr(chara[8]);//将输入的字符转入shur字符数组里去voidmwerjinzhi();//明文进行二进制转换,并放入mingwen[64]数组里voidmerjin

4、zhi();//密钥进行二进制转换,并放入miyue[64]数组里voidbmingwen();//64位初始明文进行移位变换,并放入mingwenbianhuan[64]数组里voidfenmingwen();//变换后的明文分为r和l两个32位数组,放入mingwenr[32]和mingwenl[32]voidkuozhan();//r数组由32位扩展到48位,放到mingwenrk[48]voidcjo();//64位密钥除去奇偶位变成56位,放到miyuecjo[56]voiddf();//将56位密钥等分成a和b两个28位的数组,放到miyuea[

5、28]和miyueb[28]voidayw(intn);//a数组进行移位voidbyw(intn);//b数组进行移位voidhb();//将移位后的a和b数组合并,放到miyuehb[56]voidbh();//合并后将56位数组变换成48位数组,放到miyuehbh[48]voidtyh();//将扩展后的r数组和合并后的48位数组进行异或运算,放到yh[48]voids();//对48位数据进行s盒变换,得到32位数据放到sbh[32]voidsh();//sbh[32]的数据再变换放到szbh[32]里voidzyh();//将szbh[32]和m

6、ingwenl[32]异或放到mingwenr[32]里voidzhb();//最后将mingwenr[32]和mingwenl[32]合并到zh[64]里voidzzz();//zh[64]再变换放到aaa[64]里intaaa[64];private:charshur[8];//定义了所需要的数组,具体用途上边函数注释里提到intbhs[8],mingwen[64],mingwenbianhuan[64],mingwenl[32],mingwenr[32],mingwenrk[48],miyue[64],miyuecjo[56],miyuea[28],m

7、iyueb[28],miyueyw[16],miyuehb[56],miyuehbh[48],yh[48],sbh[32],szbh[32],zhong[32],zh[64];};intmwbhjz[64]={58,50,42,34,26,18,10,2,60,52,44,36,28,20,12,4,62,54,46,38,30,22,14,6,64,56,48,40,32,24,16,8,57,49,41,33,25,17,9,1,59,51,43,35,27,19,11,3,61,53,45,37,29,21,13,5,63,55,47,39,31,23

8、,15,7};//明文变换所用到的变换矩阵intmw

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。