




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
密码学课程设计实验报告院 系 计算机科学与技术 学院 专 业 信息安全 班 级 0703 学 号 xxxxxxxxxx 姓 名 xxxxxx 指导教师 xxxxxxxx 2010 年 3 月 18 日目录第一部分一、实验目的二、实验环境及工具三、实验内容四、实验原理五、实验过程65.1设计思路65.2程序的实现部分11六、程序测试126.1制定测试方案126.2测试效果12七、源代码13第二部分一、实验目的14二、实验环境及工具14三、实验内容14四、实验原理14五、实验过程145.1设计思路145.2程序的流程图17六、程序测试196.1制定测试方案196.2测试效果20七、源代码20第三部分实验总结21第一部分三圈DES的差分攻击一、实验目的通过课程设计,使学生进一步熟悉密码算法以及算法安全性的基本概念和原理;培养学生将密码理论和技术应用于实际的能力,使学生具备实施数据加/脱密和基本的密码分析的能力。二、实验环境及工具操作系统Microsoft windows XP Home Edition 版本2002 Service Pack3IDE环境Microsoft Visual C+ 6.0 (SP6)硬件环境Intel(R)Atom CPU N270 1.60GHz,0.99GB的内存物理地址扩展三、实验内容题目:三圈DES的差分攻击;要求:设计必需的界面环境,(1) 输入明文及其对应的密文,产生相应的密钥(2) 设计有好的窗口显示实验结果四、实验原理DES加密算法中的各种置换和扩展对差分没有影响,只有S盒可以阻挡差分;设 X=X1X2,Y=Y1Y2,其中X1和X2是S盒的六位输入,Y1和Y2是相应的四位输出即X1-S=Y1,X2-S=Y2;那么我们就可以以X为行索引,以Y为列索引建立一个64*16的二维矩阵,矩阵中的元素为可能的X值,我们把这个矩阵称作S盒的差分表,如下表所示:YXX011415016263我们一共可以构造八个差分表,下面我们给出三圈DES的加密过程(省略了IP置换):在选择明文攻击的情况下我们很容易保证R0=0,那么我们就可以得到下列式子:-11) A=E(L3);2) B=P(R3L0)由于L3、R3、L0在选择明文攻击时都是可求的,所以A、B也是可求的。由于A是S盒的输入B是S盒的输出,我们又能求得A、B所以我们通过查差分表就可以把A局限在一个较小的范围内(在这个范围内穷举是可行的),又由于K3=AC= AE(L3),所以子密钥K3也被局限到了一个较小的范围内而DES的主密钥K的穷举时间是K3的256倍,所以穷举K也是可行的。五、实验过程5.1设计思路其实具体的算法已经在实验原理中给出了,我就是按照此原理设计了一个CAttack类用来进行差分攻击,下面是它的头文件:/ Attack.h: interface for the CAttack class./#if !defined(AFX_ATTACK_H_5C3E3C22_41EC_4D03_8249_6A9D80ECFA07_INCLUDED_)#define AFX_ATTACK_H_5C3E3C22_41EC_4D03_8249_6A9D80ECFA07_INCLUDED_#if _MSC_VER 1000#pragma once#endif / _MSC_VER 1000#include DES.h#define PLAINTEXT00#define PLAINTEXT11#define ENCRYPTOGRAPH02#define ENCRYPTOGRAPH13#define PLAINTEXT24#define PLAINTEXT35#define ENCRYPTOGRAPH26#define ENCRYPTOGRAPH37class CAttack : public CDESpublic:CAttack();virtual CAttack();/*/名称:InitAttack/功能:初始化8个S盒的差分表/ 参数:/返回:/ 备注:/更新:2010/3/10/作者:王凤伟/*void InitAttack();/*/名称:TryAttack/功能:进行差分攻击/ 参数:key:out 返回破解出来的密钥/返回:成功为TURE,否则为FALSE/ 备注:成功为TURE,否则为FALSE/更新:2010/3/10/作者:王凤伟/*BOOL TryAttack(CString &key);/*/名称:SetData/功能:设置破解参数/ 参数:nFlag:in 参数标志/ str:in 参数值/返回:成功为TURE,否则为FALSE/ 备注:/更新:2010/3/10/作者:王凤伟/*BOOL SetData(UINT nFlag,CString& str);protected:/*/名称:CalcDelta/功能:计算各个差分值/ 参数:byPlaintext0:in 明文串0/ byEncryptograph0:in 密文串0/ byPlaintext1:in 明文串1/ byEncryptograph1:in 密文串1/返回:/ 备注:/更新:2010/3/10/作者:王凤伟/*void CalcDelta(BYTE byPlaintext0,BYTE byEncryptograph0,BYTE byPlaintext1,BYTE byEncryptograph1);/*/名称:BitToUint/功能:二进制位串到整型数据的转换/ 参数:byt:in 二进制串/ len:in 二进制串的长度/返回:转换结果/ 备注:/更新:2010/3/10/作者:王凤伟/*UINT BitToUint(BYTE byt,UINT len);/*/名称:UintToBit/功能:整型数据到二进制位串的转换/ 参数:byt:out 二进制串/ len:in 二进制串的长度/ n:in 整数/返回:/ 备注:/更新:2010/3/10/作者:王凤伟/*void UintToBit(BYTE byt,UINT len,UINT n);/*/名称:CalcSubkey/功能:计算所有可能的子密钥K3/ 参数:R:in 密文的右半部分/ delX:in x的差分/ delY:in y的差分/ subkey:out可能的子密钥/返回:/ 备注:/更新:2010/3/10/作者:王凤伟/*void CalcSubkey(BYTE R,BYTE delX,BYTE delY,CList subkey);/*/名称:CalcSubkey/功能:穷举56位主密钥/ 参数:/返回:成功为TURE,否则为FALSE/ 备注:/更新:2010/3/10/作者:王凤伟/*BOOL CalcMainKey();/*/名称:Conjoin/功能:求子密钥交集的函数key2=key2交key1/ 参数:key2in/out:子密钥key2集合/ key1in:子密钥key1集合/返回:/ 备注:/更新:2010/3/10/作者:王凤伟/*void Conjoin(CList key2,CList key1);protected:CList m_s86416;/ 用于保存差分表CList m_Key18;/ 用于保存可能子密钥集合的链表CList m_Key28;/ 用于保存可能子
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 班组每月安全培训表内容课件
- 家庭类型分类课件
- 外卖店铺运营课件
- 气修技术技能测试题及答案
- 高级技术考试题库及答案
- 工商银行2025台州市秋招群面案例总结模板
- 农业银行2025景德镇市秋招群面案例总结模板
- 2025年3D打印技术的快速成型效率
- 交通银行2025锡林郭勒盟秋招无领导模拟题角色攻略
- 2025年3D打印技术的成本效益分析
- 共享服务中心(HRSSC)课件
- 非贸项下对外付汇的政策解读和实操疑难解答课件
- 工程结构检测鉴定与加固第1章工程结构检测鉴定与加固概论课件
- 高中心理健康课程《人际关系-寝室篇》课件
- 数字色彩课件
- 一年级上册科学课件-第一单元 走近科学 复习课件-鄂教版(共23张PPT)
- 煤矿现场急救技术
- 电力系统继电保护课程设计报告-三段式距离保护
- 香港永久性居民在内地所生中国籍子女赴香港定居申请表
- 学习的基本理论
- 天津市新版就业、劳动合同登记名册
评论
0/150
提交评论