实验1:实现DES密码体制2

实验1:实现DES密码体制2

ID:42472425

大小:112.50 KB

页数:4页

时间:2019-09-15

实验1:实现DES密码体制2_第1页
实验1:实现DES密码体制2_第2页
实验1:实现DES密码体制2_第3页
实验1:实现DES密码体制2_第4页
资源描述:

《实验1:实现DES密码体制2》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验1:实现DES密码体制高达院系计算机科学与技术学号姓名任课教师实验地点实验课表现刘杨学院实验室—出動、表现得分操作结果得分指导教师实验时间实验报告得分刘杨实验总分一、实验目的1.编写程序实现DES的加、解密:1)编程构造DES的密钥;2)应用上述获得的密钥将文件或文件夹或图片进行加、解密。2.用DES算法实现口令的安全二、实验内容1.DES算法回顾Des算法是对8字节64bit的明文加密成为64bit的密文。算法过程为:先做一次初始置换,然后对置换后的64位进行16轮的操作,操作完成后的结果在做一次逆置换得到最后的密文。其中每一轮的操

2、作为:将64位分为左32位和右32位,将右32位直接作为此轮操作结果的左32位。其中右32位经过扩展置换成为48位,这个48位再与此轮的子密钥进行异或操作,将形成的48位经过一个p-box形成32位,这个32位与初始的左32位进行异或的到这一轮操作结果的右32位。一轮完成。子密钥的生成:2•程序设计使用C++,将des封装成类。class_declspec(dllexport)Des{public:Des();~Des();boolDes_Go(char*Out,char*In,longdatalen,constchar*Key,intk

3、eylen,boolType=ENCRYPT);private:/*!@brief标准DES加/解密*/staticvoidDES(charOut[8J,charIn[8J,constPSubKeypSubKey,boolType);//标准DES加J/解密/*!@brief设置密钥*/staticvoidSetKey(constchar*Key,intlen);//设置密钥/*!@brief设置子密钥*/staticvoidSetSubKey(PSubKeypSubKey,constcharKey[8]);//设置子密钥/*!@brie

4、ff函数*/staticvoidF_func(boollnl32J,constboolKi[48J);//f函数/*!@briefS盒代替*/staticvoidS_func(boolOut[32],constboolIn[48]);//S盒代替/*!@brief变换*/staticvoidTransform(bool*Out,bool*In,constchar*Table,intlen);//变换/*!@brief异或*/staticvoidXor(bool*InA,constbool*InB,intlen);//异或/*!@brief

5、循环左移*/staticvoidRotateL(bool*In,intlen,intloop);//循环左移/*!@brief字节组转换成位组*/staticvoidByteToBit(bool*Out,constchar*In,intbits);//字节组转换成位组/*!@brief位组转换成字节组*/staticvoidBitToByte(char*Out,constbool*In,intbits);//位组转换成字节组};boolDes::Des_Go(char:}:Out,char*In,longdatalen,constchar

6、*Key,intkeylen,boolType){if(!(Out&&In&&Key&&(datalen=(datalen4-7)&0xfffffff8)))returnfalse;SetKey(Key,keylen);for(longi=0,j=datalen»3;i

7、4],tmp[32],*Li=&M[0],*Ri=&M[32];ByteToBit(M,In,64);Transform(M,M,IP_Table,64);if(Type=ENCRYPT){for(inti=0;i<16;++i){memcpy(tmp,Ri,32);F_func(Ri,(*pSubKey)[i]);Xor(Ri,Li,32);memcpy(Li,tmp,32);}}else{for(inti=15;i>=0;-i){memcpy(tmp,Li,32);F_func(Li,(*pSubKey)[i]);Xor(Li,Ri,

8、32);memcpy(Ri,tmp,32);}}Transform(M,M,IPR_Table,64);BitToByte(Out,M,64);三、实验结果“C:UsersddDeskt

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

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

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