- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DES_加密解密算法的C实现--实验报告讲述
1?
?
实验一?
1、实验题目?
??
利用C/C++编程实现DES加密算法或MD5加密算法。我选择的是用C++语言实现
?
DES的加密算法。?
2、实验目的?
??
通过编码实现DES算法或MD5算法,深入掌握算法的加密原理,理解其实际应用?
价值,同时要求用C/C++语言实现该算法,让我们从底层开始熟悉该算法的实现过程?
3、实验环境?
操作系统:WIN7旗舰版?
开发工具:Visual?Studio?2010旗舰版?开发语言:C++?
4、实验原理?
?
?
DES加密流程
2?
?
?如上图所示为DES的加密流程,其中主要包含初始置换,压缩换位1,压缩换位2,扩
展置换,S盒置换,异或运算、终结置换等过程。????初始置换是按照初始置换表将64位明文重新排列次序????扩展置换是将原32为数据扩展为48位数据,它主要由三个目的:???1、产生与子密钥相同的长度???2、提供更长的结果,使其在加密过程中可以被压缩???
3、产生雪崩效应,使得输入的一位将影响两个替换?
???S盒置换是DES算法中最核心的内容,在DES中,只有S盒置换是非线性的,它比DES???中其他任何一步都提供更好的安全性?
???终结置换与初始置换相对应,它们都不影响DES的安全性,主要目的是为了更容易将???明文与密文数据一字节大小放入DES的f算法中?
?
DES解密流程与加密流程基本相同,只不过在进行16轮迭代元算时,将子密钥生成的
K的次序倒过来进行迭代运算?
5、实验过程记录?
?
在对DES算法有了清晰的认识后,编码过程中我将其分为几个关键部分分别进行编码,最后将整个过程按顺序执行,即可完成DES的加密,代码的主要几个函数如下:?
//Byte转为Bit?
ByteToBit(ElemType?ch,ElemType?bit[8])?????//Bit转为Byte?
BitToByte(ElemType?bit[8],ElemType?ch)??//初始置换?
InitialEX(ElemType?Inorder[64],ElemType?Disorder[64])?//终结置换?
AntiEx(ElemType?Disorder[64])?//扩展置换?
ExpandEX(ElemType?RightMsg[32],ElemType?ExpandMsg[48])?//16轮迭代加密?
MoveLeft(ElemType?C[28],ElemType?D[28],ElemType?L0[32],ElemType?R0[32])??
3?
?
//16轮迭代解密?
mMoveLeft(ElemType?C[28],ElemType?D[28],ElemType?L0[32],ElemType?R0[32])?
//生成48位子密钥?
GetCD48(ElemType?C[28],ElemType?D[28],ElemType?Secret[48])?//48位明文与子密钥进行异或运算?
XOR(ElemType?ExpandMsg[48],ElemType?Secret[48],ElemType?Result[48])?//S盒四位输出?
getSOut(ElemType?Result[48],ElemType?Sout[32])?//直接置换?
DirExchange(ElemType?Sout[32],ElemType?DirOut[32])?//Li与Ri进行抑或运算?
XORLR(ElemType?DirOut[32],ElemType?Left[32],ElemType?Result[32])??
函数执行次序和调用关系关系如下:?
?
?
6.源代码
?
?
?
//?DES.cpp?:?定义控制台应用程序的入口点。?//??
#include?stdafx.h?#include?function.h?#include?iostream?#includebitset?#includestring?using?namespace?std;??
?
//置换矩阵?
int?IP_EX[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,?15,??7?
};?
?
您可能关注的文档
最近下载
- 高中数学《集合的概念及其基本运算》导学教案.doc VIP
- 人教版八年级下英语单词默写表格(整理打印).pdf VIP
- 九年级下册数学《二次函数》二次函数的性质.doc VIP
- 第一批产学合作协同育人项目简介.doc VIP
- 女性生育力保存PPT课件.pptx VIP
- STEAM跨学科课程整合的理念、模式构建与实施挑战研究.docx VIP
- 产学合作协同育人创新创业教育改革项目申报书模板(包含内容).docx VIP
- 110千伏输电线路工程专业监理实施细则.doc VIP
- 智慧乡村、智慧农业产供销一体化、可追溯平台建设方案.pdf VIP
- 产学合作协同育人教学内容和课程体系改革项目申报书模板—基于计算思维的大学计算机课程思政案例构建与实践(包含申报书内容、合作方案、合作协议).docx
文档评论(0)