des算法实现课程设计大学毕设论文
基于利用Matlab语言实现DES加密算法毕业设计

密码学与网络安全课程实验利用Matlab语言实现DES加密算法姓名:ZA 学号:XXXXX一、实验目的1)牢固掌握DES密码算法2)通过编程实现DES算法,深入掌握现代密码算法实现的基本方法3)验证DES算法中各个模块在实现混淆和弥散中的作用二、实验内容要求1)DES算法实现:利用Matlab语言实现DES密码算法,输入64比特明文和56比特密钥,加密得到64比特的密文;2)DES弱密钥验证:观察弱密钥两次加密的结果,与非弱密钥两次加密的结果进行比较;3)DES算法初步应用:尝试加密一个字符串,字符串的长度大于8个字节;4)DES弥散特性分析:试输出每一轮加密得到的比特序列,并比较当初始明文1个比特发生变化时,每一轮加密输出的哪些比特发生变化。
三、实验方案与步骤3.1DES算法实现a)算法实现方案Matlab(矩阵实验室)是一款工程计算用的软件,功能十分强大。
Matlab的计算基于矩阵,而DES算法用矩阵描述是十分简洁方便的。
因此,选用Matlab作为算法实现语言,基于一系列的矩阵变换、运算来实现DES算法的加密。
b)主要功能实现流程及代码解析1)加密程序图1 DES基本结构DES算法的结构非常简单,是一个16次的迭代。
核心是f函数中一系列变换。
根据算法框图,程序步骤主要分为三大部分:1)输入明文和密钥进行字符转换2)产生16轮密钥矩阵3)16轮迭代%%demo5.mclc, clear all;%%%----------第一步输入明文和密钥-------------%M='0123456789ABCDEF';%K='0123456789ABCDEF';%MB=[];for i=1:16Mi=M(i);MBi=['0000',dec2bin(hex2dec(Mi))];MBi=MBi(end-3:end);MBi=[str2num(MBi(1)),str2num(MBi(2)),str2num(MBi(3)),str2num(MBi(4) )];MB=[MB,MBi];endM=MB;%转化为64位二进制明文KB=[];for i=1:16Ki=K(i);KBi=['0000',dec2bin(hex2dec(Ki))];KBi=KBi(end-3:end);KBi=[str2num(KBi(1)),str2num(KBi(2)),str2num(KBi(3)),str2num(KBi(4) )];KB=[KB,KBi];endK=KB;%转化为64位二进制密钥%%%----------第三步产生密钥-------------%PC_1=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,1 9,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61 ,53,45,37,29,21,13,5,28,20,12,4];%PC_1置换矩阵 56位KEY0=K(PC_1);%初始矩阵变换 64 to 56%循环移位>>>>>shift_array=-[1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1];C(1,:)=KEY0(1:28);%C0D(1,:)=KEY0(29:56);%D0for i=2:17C(i,:)=circshift(C(i-1,:)',shift_array(i-1))';%前28位循环移位%circshift是右移移动负数位表示左移D(i,:)=circshift(D(i-1,:)',shift_array(i-1))';%后28位循环移位endPC2=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13, 2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36 ,29,32];Ki=zeros(16,48);%循环移位>>>>>KEY_MAT=[C,D];%17*56KEY_MAT=KEY_MAT(2:17,:);%16*56PC_2=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13 ,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,3 6,29,32];for i=1:16Ki(i,:)=KEY_MAT(i,PC_2);endKEY=Ki;%%%----------第四步 Feistel结构-------------%IP=[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];%IP初始置换矩阵M=M(IP);%初始置换m0_L=M(1:32); %输入的左半部分明文m0_R=M(33:64);%输入的右半部分明文[L,R]=fchange(m0_L,m0_R,1,KEY);mi=[L,R];mi2_hex(1,:)=mi%%进入16轮迭代>for i=2:16[L,R]=fchange(L,R,i,KEY);mi=[L,R];mi2_hex(i,:)=miendIP_1=[40 8 48 16 56 24 64 32 39 7 47 15 55 23 63 31 38 6 46 14 54 22 62 30 37 5 45 13 53 21 61 29 36 4 44 12 52 20 60 28 35 3 43 11 51 19 59 27 34 2 42 10 5018 58 26 33 1 41 9 49 17 57 25];%%IP_1初始逆置换矩阵m16=[R,L];%最后一步进行交换C=m16(IP_1); %IP逆置换[m_hex]=m_2_hex(C)%转化为16进制输出密文%%function [Li,Ri] = fchange(Li_1,Ri_1,m,KEY)%%第i轮f函数的实现输入Ri-1 表示第i-1轮的右半部分密文输出第i轮的密文Ri_1_ex=trm32_to_48(Ri_1);%第一步右半明文进行32to48扩展 OKRi_1_ex2=reshape(Ri_1_ex',1,48);%将扩展的48位变为向量 OKf=bitxor(KEY(m,:),Ri_1_ex2);%与第i轮密钥按位异或f1=reshape(f,6,8)';%变为矩阵 8个6位二进制数 8*6%经过S1盒s=S_box(1);x=2*f1(1,1)+f1(1,6);%S盒纵坐标y=8*f1(1,2)+4*f1(1,3)+2*f1(1,4)+f1(1,5);%S盒横坐标f2=s(x+1,y+1); %取S盒中某一数f2_bin=['0000',dec2bin(f2)];% % 字符串处理f2_bin=f2_bin(end-3:end);f2_1=[str2num(f2_bin(1)),str2num(f2_bin(2)),str2num(f2_bin(3)),str2 num(f2_bin(4))];%省略s2~s8盒Ri_1_P=P_exchange(f2S);%转化为向量并置换运算PRi=bitxor(Li_1,Ri_1_P);%Li_1与f函数后的Ri_1进行按位异或Li=Ri_1;%交换位置end程序见c:\iknow\docshare\data\cur_work\demo5.m。
DES论文

摘要:随着计算机的不断更新换代,计算机网络信息安全要求也不断提升,密码学大量应用于实际生活中,并跟随着实际需要而飞速发展。
在密码学体制中,分组对称密码是一个重要的组成部分,它以feitel网络结构理论为基础,采用迭代分组形式,在提高算法的运行速度,改善了密码的实用性的同时,也大大的提高了密码的安全性,对于我们研究密码学以及展望密码学的发展方向有重要意义。
本文主要讨论的是DES算法的研究,包括与其相关的数学理论,结构流程的描述以及在实际应用Visual C ++6.0平台用C语言实现DES算法。
关键词:DES feitel网络对称密码分组密码abstractWith the continuously renewing of the computer, the requirement of the computer network information security is also continuously improving .Cryptography is largely applied to the practical system ,and the development of the Cryptography is very rapid when it is in need for the practice. The symmetric and block cipher are important part of The Cryptography system . It is based on the feitel network structure theory, using iterative block form, so it can both improve its operation speed of the algorithm and practicability of the ciphers when the security of the ciphers are further developed .knowing it have an important significance for us to study Cryptograph and have a prospect of the Cryptograhy.This thesis is mainly the study the of algorithm of DES, including the related mathematics theory and has a description of the DES structure process .,and implementation the algorithm on the Visual C++6.0 platform .Key world : DES feitel network. symmetric cipher block cipher绪言近年来网络飞速发展,促进了时代的进步,给人们的生活带来了巨大的变化,但同时也带来了巨大的信息安全危机,如何使信息获取得最大的安全性成了紧迫解决的问题,计算机网络中运行良好的通信协议,不仅应该具有有效性,公平性,和完整性,还要具有做够搞的安全性。
DES算法的实现及安全性分析毕业论文

毕业设计论文DES算法的实现及安全性分析毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:日期:学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:日期:年月日导师签名:日期:年月日注意事项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
DES算法实现与分析论文

项目报告:DES 算法的实现与分析组员:柴彦廷121041302雨潇121041316唐均121041328王森121041333王钰121041334熊枫121041337目录1.引言错误!未定义书签。
2.项目研究错误!未定义书签。
2.1框架设计、模块划分错误!未定义书签。
2.2.DES加密技术简介错误!未定义书签。
3.方案设计错误!未定义书签。
3.1明文的输入与转化错误!未定义书签。
3.2S盒及P盒原理简介错误!未定义书签。
3.3子密钥的产生错误!未定义书签。
3.416轮循环加密错误!未定义书签。
4.仿真结果输出错误!未定义书签。
5.DES算法特点总结错误!未定义书签。
6.参考文献错误!未定义书签。
7.程序代码错误!未定义书签。
一、引言项目的选题目的和意义:DES采用分组乘积密码体制,它是由IBM开发,是对早期被称为Lucifer密码体制的改进。
DES在1975年3月17日首次在联邦记录中公布,而且声明对比算法征求意见。
到1977年2月15日拟议中的DES被采纳为“非密级”应用的一个联邦标准。
最初预期DES作为一个标准只能使用10~15年,然而,出于种种原因,可能是DES还没有受到严重的威胁,事实证明了DES要长寿得多。
在其被采用后,大约每隔5年被评审一次。
DES的最后一次评审是在1999年1月。
但是,随着计算机计算能力的提高,由于DES的密钥过短,仅有56位,对DES的成功攻击也屡见报端。
尽管如此,DES的出现是现代密码学历史上非常重要的事件。
它对于我们分析掌握分组密码的基本理论与设计原理仍然具有重要的意义。
本课题是在Matlab的环境下对DES算法的实现和分析,探究DES算法的原理。
二、项目研究2.1、框架设计,模块划分:2.1.1、总体分为三个模块:1、数据初始化:明文的输入(字符串形式)及转化为数字串。
2、产生子密钥3、16轮循环加密及密文输出2.1.2、总体流程图:2.2.DES加密技术简介:DES是一个16轮的Feistel型结构密码,它的分组长度为64比特,用一个56比特的密钥来加密一个64比特的明文串,输出一个64比特的密文串。
DES加密算法实现论文

第一章前言 (2)1.1概述 (2)1.1.1 信息安全的重要性 (2)1.1.2 分组加密算法的知识 (2)1.1.3 DES加密算法简介 (3)1.1.4 本论文工作的意义 (3)1.2 本论文的主要工作 (4)第二章DES加密算法的描述 (5)2.1 DES算法的来历 (5)2.2加密过程 (5)2.3每个循环的详细过程 (7)2.4密钥的产生 (10)2.5 DES的解密 (10)第三章DES算法软件实现的详细设计 (11)3.1 DES加密算法详细设计 (11)3.2 DES解密算法详细设计 (15)3.3 算法函数 (16)第四章测试 (17)4.1测试平台和方法 (17)4.2 正确性测试 (17)第五章DES加密软件工具 (19)5.1人机界面的功能介绍: (19)5.2 状态—事件—响应流程图 (20)5.3.人机界面的效果图 (22)第六章结束语 (24)6.1 体会与收获 (24)6.2 展望 (24)参考文献 (25)附录1算法原代码 (26)附录2人机界面程序代码 (35)致谢 (48)第一章前言1.1概述1.1.1 信息安全的重要性随着计算机网络和Internet的发展,全球信息化己成为人类社会发展的大趋势。
在今天的信息社会里,科学技术的研究和发展及商业等方面,无一不与信息息息相关,数据安全保密问题也日益突出,人们不能靠用降低信息共享度的简单方法来解决问题,唯一可行的方案是积极解决信息共享和网络安全的问题。
由于计算机网络具有联结形式多样性、终端分布不均匀性和网络开放性等特征,致使网络容易受到黑客及恶意软件和其他不轨的攻击,Internet的安全问题已经成为了信息发展的一块绊脚石。
本课题研究的是DES加密算法,本算法是经历20 多年的考验,抗住了多年的密码分析的经典算法。
随着信息技术的发展和越来越广泛的应用,整个社会的运转越来越密切地依赖于信息技术,依赖于各种基础信息系统的正常运转,依赖于储存在信息系统中各种重要信息的正确维护和正常使用。
计算机通信中DES数据加密算法应用论文

计算机通信中DES数据加密算法应用论文计算机通信中DES数据加密算法应用论文一、DES数据加密算法基本原理数据加密的基本过程就是通过对信息铭文进行一定的加密算法得到一个密文,并通过密文在网络介质中进行传播,然后在通信的接收端接受到密文以后通过秘钥获得信息的内容。
DES数据加密算法过程是典型的数据加密方法,具体的实现过程为加密过程和解密过程。
数据加密的标准采用的是美国政府采用的密码体系,加密和解密使用的相同的算法,基本的实现过程是对明文按照64比特块加密,得到64b的密文,加密过程有56b个参考秘钥,19个不同的站。
除了第一站、倒数第一站、倒数第二站有特定规范外,其余的16位均采用完全不同的函数。
其保密性关键在于对于秘钥的保密过程,当前对于DES加密的破译非常的复杂,当前还没有发现比穷举法更好的破解办法,而从理论上讲使用穷举法破解DES加密过程基本上是不可能实现的,因此DES数据加密算法应用于计算式通信有着非常好安全性。
二、DES数据加密算法在计算机通信技术的中的应用1.DES数据加密算法应用于计算机通信的优势。
美国标准局对于DES数据加密算法的评价非常的高,认为该算法能够满足对于数据的加密要求,其用于计算机通信完全能够满足对于信息的保护。
DES数据加密算法对于计算机通信过程中数据的加密具体表现在:首先DES数据加密算法能够提高数据保护的实际效果[2],避免数据在通信过程中被非法窃取和破解,并能够通过算法及时的避免数据在未被擦觉的情况下被篡改,其次是DES数据加密算法的复杂性非常的`高,能够适用于计算机通信技术的应用要求,而且破译的过程非常的困难,进一步地保护的通信数据的安全性,目前对于DES数据加密算法破译的最好办法就是穷举法,即使是美妙计算100万次的计算机也要经过2000年才能找出破解的办法,能够满足当前数据通信的数据安全;第三是尽管DES数据加密算法非常的复杂,但是其安全性并不是依赖于其本身的复杂程度,主要跟其明文加密秘钥系统的有关,因此在应用于计算机通信的多个场景,适用性非常的广;最后是我们分析其加密的历程发现,这种加密的方法可以非常广泛的应用于金融和通信领域,而且很多ATM的加密方式就是以DES数据加密算法为基础的。
毕业设计(论文)-DES加密算法分析

毕业设计(论文)-DES加密算法分析摘要DES数据加密算法是使用最广的分组加密算法,它作为最著名的保密密钥或对称密钥加密算法,在计算机密码学及计算机数据通信的发展过程中起了重要作用。
本次学年论文是主要是学习介绍DES对称密钥数据加密算法,并用c++实现。
DES 算法具有较高的安全性,为我们进行一般的计算机数据传输活动提供了安全保障。
关键词: 加密与解密,DES算法,S-盒目录摘要 ..................................................................... ........................................................................ ... I 目录 ..................................................................... ........................................................................ .. II 第一章引言 ..................................................................... ............................................................ 1 第二章概述 ..................................................................... (2)2.1 加密与解密 ..................................................................... (2)2.2 单钥密码系统 ..................................................................... .. (2)2.3分组密码的总体结构 ..................................................................... (4)2.4分组密码的安全性 ..................................................................... ..................................... 4 第三章 DES算法简介 ..................................................................... .. (5)3.1简介 ..................................................................... . (5)3.2 DES加密标准 ..................................................................... (6)3.2.1 初始置换IP ..................................................................... .. (7)3.2.2 IP-1是IP的逆置换 ..................................................................... (7)3.2.3 DES算法的迭代过程 ..................................................................... (8)3.2.4 子密钥的生成 ..................................................................... (12)3.3 DES算法的解密过程 ..................................................................... ............................... 13 第四章 DES算法用C++语言实现 ..................................................................... .. (14)4.1设置密钥函数des_setkey() ........................................................... . (14)4.2 f函数和S函数f_func()和s_func() ............................................................... . (14)4.3 DES算法的运行函数des_run( ) ............................................................. (16)4.4 DES算法的主函数voidmain() ................................................................. . (18)4.5 DES的加密过程和举例 ..................................................................... (19)4.6 DES算法的分析 ..................................................................... ....................................... 20 参考文献 ..................................................................... .................................................................. 22 结束语 ..................................................................... ......................................................................23 附录1 DES算法用C++实现的源代码 ..................................................................... . (24)II第一章引言密码学是伴随着战争发展起来的一门科学,其历史可以追溯到古代,并且还有过辉煌的经历。
DES加密算法课程设计报告

DES加密算法课程设计报告软件实现流程图开始输入密文和密钥密文和密钥转换成二进制,存储在文件中读出64位密文和密钥 64位密钥进行pc-1置换,生成56位 56位比特串分成左右各28位。
C[i]与D[i],i=0; C[i]与D[i]左移一位或者两位,左移表决定左移位数Ls[16].左移产生C[i+1]与D[i+1] C[i+1]与D[i+1]合并为56位比特串,并进行pc-2置换,产生子密钥keys[i+1],i++; i>15 N Y 节点1加密过程节点 1 64位明文进行IP置换后进行分组Li[32]与Ri[32];i=0 Ri[32]进行E扩展,生成48位比特串。
48位比特串与子密钥keys[i+1]进行异或运算。
得到的48位比特串分为8组,进入8个S盒中,并按照S盒的规则输出8个十进制数将8个十进制数转换为32位比特串。
32位比特串进行P置换,产生新的32位比特串 32位比特串与Li[32]进行异或,产生R(i+1)[32] L(i+1)[32]=Ri[32];i++ N i>15 Y R16[32]在前,L16[32]在后进行合并,合并后进行IP逆置换,即产生密文结束 1开始输入密文和密钥密文和密钥转换成二进制,存储在文件中读出64位密文和密钥 64位密钥进行pc-1置换,生成56位 56位比特串分成左右各28位。
C[i]与D[i],i=0;C[i]与D[i]左移一位或者两位,左移表决定左移位数Ls[16].左移产生C[i+1]与D[i+1] C[i+1]与D[i+1]合并为56位比特串,并进行pc-2置换,产生子密钥keys[i+1],i++; i>15 N Y 节点1加密过程节点 1 64位明文进行IP置换后进行分组Li[32]与Ri[32];i=0 Ri[32]进行E扩展,生成48位比特串。
48位比特串与子密钥keys[i+1]进行异或运算。
得到的48位比特串分为8组,进入8个S盒中,并按照S盒的规则输出8个十进制数将8个十进制数转换为32位比特串。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
59, 51, 43, 35, 27, 19, 11, 3,
61,53, 45, 37, 29, 21, 13, 5,
63,55, 47, 39, 31, 23, 15, 7 };
//结尾置换表
int IP_1[]= { 40, 8, 48, 16, 56, 24, 64, 32,
1) 初始置换IP
这一部分很简单,IP(initial permutation)是一个8x8的置换表:
int IP[]= { 58, 50, 42, 34, 26, 18, 10, 2,
60,52, 44, 36, 28, 20, 12, 4,
62,54, 46, 38, 30, 22, 14, 6,
bitset<48> subKey[16];//存放16轮子密钥
//初始置换表
int IP[]= { 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,
34, 2, 42, 10, 50, 18, 58, 26,
33, 1, 41, 9, 49, 17, 57, 25};
四、关键技术难点分析
在DES算法的实现中,我用C++ STL中的bitset来操作二进制位。 下面是对一个64位 数据进行加密解密的源代码:
bitset<64> key;// 64位密钥
则
内容详实程度
文字表达熟练程度
回答问题准确度
简 短 评 语
教师签名
年月
日
评分等级
备注评分等级有五种:优秀、源自良好、中等、及格、不及格
、课题内容和要求
对称加密就是加密和解密所用的密钥是一样的, 加密的强度很大程度上在于密钥 的强度以及加密算法的保密,最常见的对称加密算法有DES IDEA、RC4 RC5等。本
程序主要采取对数据的位操作的形式,把明密文文件中的内容以字节为单位读取,每
次读取8个byte共65bits,然后使用标准DES的算法依次对读取的64bits明密文进出加
这个程序的关键在DES算法的操作,主要有下的主要步骤:
1.初始置换IP;
2.子密钥Ki的获取;
3.密码函数f;
4.尾置换IP-1;
下面是具体的几个过程:
2) 子密钥Ki的获取
用户输出的密钥是64位的,根据密钥置换表PC-1,将64位变成56位密钥。 (去掉了奇偶校验位)将PC-1置换得到的56位密钥,分为前28位C0和后28位D0,分别对它们进行循环左移,CO左移得到C1 ,D0左移得到D1。将C1和D1合并成56位, 然后通过PC-2表进行压缩置换,得到当前这一轮的48位子密钥K1。然后对C1和D1进行左移和压缩置换,获取下一轮的子密钥……一共进行16轮,得到16个48位的子 密钥。
3) 密码函数f
密码函数f(R, K)接受两个输入:32位的数据和48位的子密钥。然后:
通过表E进行扩展置换,将输入的32位数据扩展为48位;
将扩展后的48位数据与48位的子密钥进行异或运算;
将异或得到的48位数据分成8个6位的块,每一个块通过对应的一个S表产 生一个4位的输出。
其中,每个S表都是4行16列。具体的置换过程如下:把6位输入中的第1位和第6位取出来行成一个两位的二进制数x,作为Si表中的行数(0~3);把6位 输入的中间4位构成另外一个二进制数y,作为Si表的列数(0~15);查出Si表 中x行y列所对应的整数,将该整数转换为一个4位的二进制数。
39, 7, 47, 15, 55, 23, 63, 31,
38, 6, 46, 14, 54, 22, 62, 30,
37, 5, 45, 13, 53, 21, 61, 29,
36, 4, 44, 12, 52, 20, 60, 28,
35, 3, 43, 11, 51, 19, 59, 27,
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 };
根据表中的规定, 将输入的64位明文重新进行排序, 即将第58位放到第1位, 第50位放到第2位……以此类推。初始置换以后得到的是一个64位的输出。
通达学院课程设计
(2016/ 2017学年 第1学期)
题 目:
专业计算机科学与技术(信息安全)
学生姓名
班级学号
指导教师王 波
指导单位计算机学院信息安全系
日期
评分项
优秀
良好
中等
差
遵守机房规章制度
评
上机时的表现
学习态度
程序准备情况
分
程序设计能力
团队合作精神
课题功能实现情况
细
算法设计合理性
用户界面设计
报告书写认真程度
把通过S表置换得到的8个4位连在一起,形成一个32位的数据。然后将该32位数据通过表P进行置换(称为P-置换),置换后得到一个仍然是32位的结果数 据,这就是f(R,K)函数的输出。
4) 尾置换IP-1
合并L16和R16得到一个64位的数据,再经过尾置换后得到的就是64位的 密文。注意:要将L16和R16合并成R16L16(即左右互换)。尾置换表IP-1如下:int IP_1[]= {40, 8, 48, 16, 56, 24, 64, 32,
设计题要求实现DES加密和解密算法,能对文件实现加解密。
二、对设计要求的理解
DES是一个分组密码算法,使用64位密钥(除去8位奇偶校验,实际密钥长度为56位)对64比特的数据分组(二进制数据)加密,产生64位密文数据。DES是一个对称密 码体制,加密和解密使用同意密钥,解密和加密使用同一算法(这样,在硬件与软件设计 时有利于加密单元的重用)。DESK所有的保密性均依赖于密钥。
39, 7, 47, 15, 55, 23, 63, 31,
38, 6, 46, 14, 54, 22, 62, 30,
37, 5, 45, 13, 53, 21, 61, 29,
36, 4, 44, 12, 52, 20, 60, 28,