网站大量收购闲置独家精品文档,联系QQ:2885784924

DES算法实现课程设计.doc

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DES算法实现课程设计

哈尔滨理工大学 课 程 设 计 题  目:  网络安全课程设计 DES算法实现 院、 系:计算机科学与技术学院 网络工程系 班 级: 3 学 号: 3 姓  名: 2 同组成员: 指导教师: 一.系统设计的目标 DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法,作为算法的DES称为数据加密算法(Data Encryption Algorithm,DSA),已与作为标准的DES区分开来。DES密码实际上是Lucifer密码的进一步发展。它是一种採用传统加密方法的区组密码。它的算法是对称的,既可用於加密又可用於解密。对称算法又叫传统密码算法:加密密钥能够从解密密钥中推算出来,反过来也成立。对称算法要求发送者和接收者在安全通信之前,协商一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都能对消息进行加解密。 对称算法的加密和解密表示为:EK(M)=C??????DK(C)=M DES算法是这样工作的:如Mode為加密,则用Key 去把数据Data进行加密, 生成Data的密码形式(64位)作為DES的输出结果;如Mode為解密,则用Key去把密码形式的数据Data解密,还原為Data的明码形式(64位)作為DES的输出结果。在通信网络的两端,双方约定一致的Key,在通信的源点用Key对核心数据进行DES加密,然后以密码形式在公共通信网(如电话网)中传输到通信网络的终点,数据到达目的地后,用同样的Key对密码数据进行解密,便再现了明码形式的核心数据。这样,便保证了核心数据(如PIN、MAC等)在公共通信网中传输的安全性和可靠性。 四.系统实现: 设置密钥 获取子密钥: void SetKey(char KeyIn[8]) { int i=0; static bool KeyBit[64]={0}; // 密钥二进制存储空间 static bool *KiL=KeyBit[0],*KiR=KeyBit[28]; // 前28,后28共56 ByteToBit(KeyBit,KeyIn,64); // 把密钥转为二进制存入KeyBit TablePermute(KeyBit,KeyBit,PC1_Table,56); // PC1表置换 56次 for(i=0;i16;i++) { LoopMove(KiL,28,Move_Table[i]); // 前28位左移 LoopMove(KiR,28,Move_Table[i]); // 后28位左移 TablePermute(SubKey[i],KeyBit,PC2_Table,48); // 二维数组 SubKey[i]为每一行起始地址 // 每移一次位进行PC2置换得 Ki 48位 } } DES加密的实现: void PlayDes(char MesOut[8],char MesIn[8]) // 执行DES加密 { // 字节输入 Bin运算 Hex输出 int i=0; static bool MesBit[64]={0}; // 明文二进制存储空间 64位 static bool Temp[32]={0}; static bool *MiL=MesBit[0],*MiR=MesBit[32]; // 前32位 后32位 ByteToBit(MesBit,MesIn,64); // 把明文换成二进制存入MesBit TablePermute(MesBit,MesBit,IP_Table,64); // IP置换 for(i=0;i16;i++) // 迭代16次 { BitsCopy(Temp,MiR,32); // 临时存储 F_Change(MiR,SubKey[i]); // F函数变换 Xor(MiR,MiL,32); // 得到Ri BitsCopy(MiL,Temp,32); // 得到Li } TablePerm

文档评论(0)

zhuwenmeijiale + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档