77范文网 - 专业文章范例文档资料分享平台

DES加密算法课程设计报告(3)

来源:网络收集 时间:2019-01-05 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

7、点击返回按钮,返回主界面

8、点击退出按钮,退出程序,程序结束。

11

密文对密钥敏感性的测试

在明文不变的情况下,通过对密钥改变一位和多位进行密文对密钥敏感

性的测试,观察密文的改变情况。下面给出部分数据和分析结果。 例:明文:20082374

密钥:1:abcdefgh ,2:bbcdefgh 3:abddefgh 4:accdefgh 5:abcdefgi 6:abcdefgg

7:abcdefhg 8:abcdeffh 9:abcdefhh 10:abcdeggh 11:abcdeegh 这下密钥均是相对于密钥“abcdefgh”改变一位,得到的密文如下:

01:11100011 00001001 11010000 10111000 00101101 01101011 00011101 00111101 02:01101001 01111100 10001101 00111010 00101110 01000011 11000101 00011110 03:00010110 01011100 10100010 00100111 01101111 11100000 11110000 11000001 04:11100011 00001001 11010000 10111000 00101101 01101011 00011101 00111101 05:11100011 00001001 11010000 10111000 00101101 01101011 00011101 00111101 06:10100110 01000000 10111000 11100110 11100010 01101111 00101001 01111101 07:11110101 00011010 10110101 11100011 01010001 01110000 10100011 11001110 08:11100011 00001001 11010000 10111000 00101101 01101011 00011101 00111101 09:11111000 10100101 00010010 10011010 00010111 01100111 11111101 00010100 10:11100011 00001001 11010000 10111000 00101101 01101011 00011101 00111101 11:10010100 00011100 10110000 01001110 00110010 01111101 00000100 01101111 通过对类似的一百组数据进行比较和分析,密钥改变一位,密文改变的位数分别有28位、34位、34位、39位、0位、27位、31位、33位、25位、24位等等。

通过一系列的测试,对密钥改变一位,密文的位数改变范围为0~34,密钥改变一位而密文不改变的概率几乎为零,改变位数在20位以上的占95%以上。 下面对密钥改变两位测试, 例:明文20082374

密钥:1:abcdefgh ,2:bacdefgh 3: abdcefgh 4:abcdefhg5:abcdffgh6:abccdfgh

7:abbdefhh8:abbdefgg9:acddefgh10:abcddegh11:abcceegh

密文:

01:11100011 00001001 11010000 10111000 00101101 01101011 00011101 00111101 02:01101001 01111100 10001101 00111010 00101110 01000011 11000101 00011110 03:00001010 11010100 11010101 10001100 00010010 00011001 10101000 10101000 04:11110101 00011010 10110101 11100011 01010001 01110000 10100011 11001110 05:01010001 01011000 10001011 00101110 01111010 10010011 01001001 01100111 06:10111010 00110111 10101110 01001101 11001101 01000011 01010111 00011110 07:11111000 10100101 00010010 10011010 00010111 01100111 11111101 00010100 08:10100110 01000000 10111000 11100110 11100010 01101111 00101001 01111101 09:00010110 01011100 10100010 00100111 01101111 11100000 11110000 11000001 10:10010100 00011100 10110000 01001110 00110010 01111101 00000100 01101111 01:11100011 00001001 11010000 10111000 00101101 01101011 00011101 00111101 11:00011000 11010010 00001100 01101011 01011111 00110001 01001100 01001001

通过对类似数据进行比较分析,对密钥改变2位,密文的位数变化情况为:26位、35位、35位、33位、32位、25位、25位、39位、30位、38位等。 对密钥改变两位,密文的位数改变范围为大致为:25~39位。

12

分析结果:

标准DES加密算法密文对密钥十分敏感,密文改变一位或者几位,都会是相应的密文改变二十几位,大部分情况下密文位数的改变在半数以上,也就是改变的位数超过32位。由于标准DES加密算法对于密钥十分敏感,所以使用这种算法加密的安全性取决于密钥,密钥的复杂程度和密钥的安全性决定了加密的数据的安全性。

编程体会

通过这次课程设计,用程序实现了标准DES加密与解密算法。谈到编程体会与收获,最主要的一个收获就是对DES算法的深入理解和掌握。由于要编写代码实现DES算法,因此对于DES算法的每一个细节可以说是了如指掌了,每一个步骤总是推敲了一遍又一遍,找到最为简洁而清晰的实现方法。例如,在编写的过程中,我参考了一些网上的代码,那些代码在DES的十六轮加密与解密循环的实现上,竟然硬生生每一次循环写一次代码,为每一次循环中出现的变量定义了十六次,虽然思路清晰,确使得程序变得异常的庞大,增大很大的内存开销,使得程序执行的效率就不高。我在处理解密与解密的循环时,由于,第一次循环使用的数据是第一次分组的数据,与之后的数据在形式上相同,但表达上却不相同,因此,对于加密与解密的十六轮循环,我单独处理第一次循环,然后利用统一的表达方式和变量进行余下的十五轮循环,第十五轮循环结束的时候,就产生了用于产生密文或明文的最后的左部和右部数据。 通过这次课程设计,另外一个收获就是提高了自己编程能力,在编程实现DES算法的时候,需要进行大量的代码编写工作,这使得我编写代码的能力有了大大的提高,差错纠错的能力也相应的得到了提高。 最后是感谢和老师的教诲。

13

核心源代码

1、加密过程(JiaMi.cpp)

// JiaMi.cpp : implementation file //

#include \#include \#include \

#ifdef _DEBUG

#define new DEBUG_NEW #undef THIS_FILE

static char THIS_FILE[] = __FILE__; #endif

#include \

/////////////////////////////////////////////////////////////////////////////

// JiaMi dialog

JiaMi::JiaMi(CWnd* pParent /*=NULL*/) : CDialog(JiaMi::IDD, pParent) {

//{{AFX_DATA_INIT(JiaMi) m_Mingwen = _T(\ m_Miyao = _T(\ m_Miwen = _T(\

m_outputMiwen = _T(\ //}}AFX_DATA_INIT }

void JiaMi::DoDataExchange(CDataExchange* pDX) {

CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(JiaMi)

DDX_Control(pDX, IDC_LIST1, m_output); DDX_Text(pDX, IDC_Mingwen, m_Mingwen); DDX_Text(pDX, IDC_Miyao, m_Miyao); DDX_Text(pDX, IDC_Miwen, m_Miwen);

DDX_Text(pDX, IDC_outMiwen, m_outputMiwen); //}}AFX_DATA_MAP }

14

BEGIN_MESSAGE_MAP(JiaMi, CDialog) //{{AFX_MSG_MAP(JiaMi)

ON_BN_CLICKED(IDC_back, Onback) ON_BN_CLICKED(IDC_JiaMi, OnJiaMi) //}}AFX_MSG_MAP END_MESSAGE_MAP()

// JiaMi message handlers

BOOL JiaMi::OnInitDialog() {

CDialog::OnInitDialog();

m_output.ModifyStyle(0,LVS_REPORT); DWORD style= m_output.GetExStyle(); style=style^LVS_EX_CHECKBOXES;

m_output.SetExtendedStyle(style|LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT);

m_output.InsertColumn(0,\循环轮数\ m_output.InsertColumn(1,\子密钥\ m_output.InsertColumn(2,\左部(Li)\ m_output.InsertColumn(3,\右部(Ri)\ // TODO: Add extra initialization here

return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE }

void JiaMi::Onback() {

// TODO: Add your control notification handler code here ShowWindow(SW_HIDE); CDESDlg dlg; dlg.DoModal(); }

void JiaMi::OnJiaMi() {

// TODO: Add your control notification handler code here /*64位明文的输入:将明文和密钥转换成二进制并显示*/ FILE *fp1,*fp2; int i,j,k; int str[8];

char mingwen[8],miyao[8]; //存储从文件中读取的明文和密钥 int mingwenB[64],miyaoB[64]; //存储64位二进制的明文和密钥 fp1=fopen(\

15

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库DES加密算法课程设计报告(3)在线全文阅读。

DES加密算法课程设计报告(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/405766.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: