




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、商晴庆 2013210684赵建博 2013210695申文博 20132106761231231 1ApplicationApplicationApplicationApplication 尽可能使密文和加密密钥尽可能使密文和加密密钥之间的统计关系更加复杂,以之间的统计关系更加复杂,以阻止攻击者拥有一些密文的统阻止攻击者拥有一些密文的统计特性。计特性。 使其结构清晰,调理清楚,使其结构清晰,调理清楚,算法为对合运算,便于实现,算法为对合运算,便于实现,运行速度快。运行速度快。 优点优点: :由于它是对称的密码由于它是对称的密码结构,所以对信息的加密和解结构,所以对信息的加密和解密的过程就极为
2、相似,甚至完密的过程就极为相似,甚至完全一样。全一样。 乘积密码是指依次使用两乘积密码是指依次使用两个或者两个以上的基本密码,个或者两个以上的基本密码,所得结果的密码强度将强于单所得结果的密码强度将强于单个密码的强度个密码的强度。 11232 22.12.22.3BUSINSS INFOGRAPHICS2 22.1取得密钥取得密钥等分密钥等分密钥密钥移位密钥移位密钥选取密钥选取迭代迭代1616次次2.16464位密钥,去除位密钥,去除6464位密码中作为奇偶校验位,剩下位密码中作为奇偶校验位,剩下5656位。位。5656位输入密钥分成均等的位输入密钥分成均等的A,BA,B两部分两部分, ,每部
3、分为每部分为2828位。位。按表,在第按表,在第i i次迭代时密钥循环左移相应的的位数。次迭代时密钥循环左移相应的的位数。进行进行1616次迭代,得到次迭代,得到1616个子密钥个子密钥。左右两部分通过置乱合并得到左右两部分通过置乱合并得到5656位,再压缩成位,再压缩成4848位,与明文异或操作。位,与明文异或操作。2.2取得数据取得数据初始换位初始换位数据扩展数据扩展数据压缩数据压缩数据换位数据换位2.2按照置位表进行换位按照置位表进行换位通过通过S S盒,将右盒,将右4848位明文从位明文从6 6* *8 8 变换成变换成4 4* *8=328=32位位6464位均分成左右部分各位均分成
4、左右部分各3232位,并将右位,并将右3232位扩展成位扩展成4848位位进行进行IPIP置换,得到新的置换,得到新的6464位明文位明文取得取得6464位的明文数据块位的明文数据块2.2交换数据交换数据迭代迭代1616次次数据整理数据整理按照表进行按照表进行IPIP逆置换,得到密文逆置换,得到密文进行进行1616次相同的操作次相同的操作将变换好的左右将变换好的左右3232位进行交换位进行交换2.2DESDES解密解密2.3解密可以表示为:解密可以表示为:与加密进行完全相反的操作顺序即可,这也充分体现了对称密码结构的方便性。与加密进行完全相反的操作顺序即可,这也充分体现了对称密码结构的方便性。
5、 12161KKKIPfSWfSWSWfIP 133 32A3这个函数中将输入这个函数中将输入值,值,按照按照TableTable表的顺表的顺序转换序转换,最后赋值到输出函数中最后赋值到输出函数中,是算法是算法中比较重要的一个函数,因为中比较重要的一个函数,因为desdes算法中算法中多次需要表顺序打乱。多次需要表顺序打乱。void Transform(bool void Transform(bool * *Out, bool Out, bool * *In, const char In, const char * *Table, int Number)Table, int Number) f
6、or(int i=0; iNumber; +i) for(int i=0; iNumber; +i) CCi = In Tablei-1 ; CCi = In Tablei-1 ; memcpy(Out, CC, Number); memcpy(Out, CC, Number); B3void DES_Main(char Out8, char In8, const PS_Key PS_Key, bool Type)void DES_Main(char Out8, char In8, const PS_Key PS_Key, bool Type) static bool M64, CC32, s
7、tatic bool M64, CC32, * *Li=&M0, Li=&M0, * *Ri=&M32;/MRi=&M32;/M用于存储用于存储6464位二进制,输入的是位二进制,输入的是8 8位英文。位英文。 ChangeToBit(M, In, 64); ChangeToBit(M, In, 64);/转换转换 Transform(M, M, IP_Table, 64); / Transform(M, M, IP_Table, 64); /按表进行换位。按表进行换位。 if( Type = ENCRYPT )/ if( Type = ENCRYPT )/判断
8、是否加密判断是否加密 for(int i=0; i16; +i) for(int i=0; i=0; -i) for(int i=15; i=0; -i) memcpy(CC, Li, 32); memcpy(CC, Li, 32); F_funchange(Li, ( F_funchange(Li, (* *PS_Key)i);PS_Key)i); Xor(Li, Ri, 32); Xor(Li, Ri, 32); memcpy(Ri, CC, 32); memcpy(Ri, CC, 32); Transform(M, M, IPR_Table, 64); Transform(M, M, I
9、PR_Table, 64); ChangeToByte(Out, M, 64); ChangeToByte(Out, M, 64); 函数现将输入的函数现将输入的8 8位数值进行转换位数值进行转换 ChangeToBit(M, In, 64)ChangeToBit(M, In, 64),再开始初始置,再开始初始置换,接着判断是否加密,加密时,按加密换,接着判断是否加密,加密时,按加密步骤,解密时,执行加密相反步骤。步骤,解密时,执行加密相反步骤。C3输入了输入了3232位的位的R R边之后,通过边之后,通过E E表的转换,表的转换,再与密钥进行异或操作,再通过再与密钥进行异或操作,再通过S S
10、盒的置盒的置换换 最后最后P P表转换。这个函数通过表转换。这个函数通过DESDES_MAIN_MAIN调用而使用,这个函数完成了调用而使用,这个函数完成了DESDES大部分操作。大部分操作。void F_funchange(bool In32, const bool Ki_table48)void F_funchange(bool In32, const bool Ki_table48) static bool MR48; static bool MR48; Transform(MR, In, E_Table, 48); Transform(MR, In, E_Table, 48); Xor
11、(MR, Ki_table, 48); Xor(MR, Ki_table, 48); S_Change(In, MR); S_Change(In, MR); Transform(In, In, P_Table, 32); Transform(In, In, P_Table, 32); D3利利用对字符串的赋值来实现,先将用对字符串的赋值来实现,先将InIn将被将被移走的数赋值到一个保持的数移走的数赋值到一个保持的数CCCC中,然后中,然后将将InIn除去移走的位数移给除去移走的位数移给InIn,然后将开始,然后将开始保存的数赋值给保存的数赋值给InIn的右边几位。的右边几位。void Roll
12、Right(bool void RollRight(bool * *In, int Number, int loop)In, int Number, int loop) memcpy(CC, In, loop); memcpy(CC, In, loop); memcpy(In, In+loop, Number-loop); memcpy(In, In+loop, Number-loop); memcpy(In+Number-loop, CC, loop); memcpy(In+Number-loop, CC, loop); E3ChangeToBitChangeToBit中,将中,将ByteB
13、yte转换成转换成8 8位机器码,位机器码,同理同理ChangeToByteChangeToByte将将8 8位机器码转换为位机器码转换为1 1个个字母。字母。void ChangeToBit(bool void ChangeToBit(bool * *Out, const char Out, const char * *In, int Bs)In, int Bs) for(int i=0; iBs; +i) for(int i=0; i3(i&7) & 1; Outi = (Ini3(i&7) & 1; void ChangeToByte(char void ChangeToByte(char * *Out, const bool Out, const bool * *In, int Bs)In, int Bs) memset(Out, 0, Bs3); memset(Out, 0, Bs3); for(int i=0; iBs; +i) for(int i=0; i3 |= Ini3 |= Ini3; i3; i3; i3; ij; +i,Out+=8,In+=8) DES_Main(Out, In, &MiniKey0, Type);DES_Main
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新企业会计准则变化综述
- 公司用水安全管理制度
- 农业上市公司管理制度
- 2025标准化的服装分销合同
- 张载仁学的伦理学研究
- 安徽省合肥市2024-2025学年高二下册3月检测数学试卷附解析
- 2025届山东省临沂市郯城县中考二模数学试卷含答案
- 母体孕期暴露与哺乳期营养对生殖系统发育的影响-洞察阐释
- 2024年邯郸曲周县选聘农村党务工作者真题
- 南丰县县城学校教师选调笔试真题2024
- (2025)纪检监察业务知识考试题及含答案
- 网络安全技术实操技能考核试题及答案
- 国家保安员模拟试题及答案(附解析)
- 2025届广东省佛山市南海中学七下数学期末学业水平测试试题含解析
- DB31/T 1402-2023养老机构认知障碍照护单元设置和服务要求
- 湖南省长沙市师大附中教育集团2025年数学七下期末综合测试试题含解析
- 出租车租凭合同协议书
- GB/T 24217-2025洗油
- 血管通路介入治疗
- 《分析化学》期末考试试卷(A)及答案
- GMP基础知识(新员工培训)
评论
0/150
提交评论