des算法matlab程序,DES算法的Matlab实现
DES算法的Matlab实现
选择扩展运算E + 选择压缩运算S 置换运算P 4 84 84 84 8 4 84 84 84 83 23 23 23 24 84 84 84 83 23 23 23 23 23 23 23 2 《通信保密与信息安全》《通信保密与信息安全》实验报告实验报告 一、一、 实验目的实验目的 1、 通过本实验掌握 DES 的基本原理; 2、 了解实现 DES 的具体运算步骤; 3、 了解 DES 的实现方法; 二、二、 实验内容实验内容 在 MATLAB 语言环境下根据课程学习的具体步骤编写 DES 的加密解密程序,并且 进行加密解密的运算。 三、三、 算法描述流程图算法描述流程图 DES 为对称密钥密码算法,加密密钥与解密密钥相同。该算法每次可对 64 位明 文进行加密计算,同样,解密也可对 64 位密文进行解密。加密时,首先让 64 位明文 M 进行初始置换 IP,得到 M0。分成左右各 32 位字符串,为 M0=(L0,R0) 。之后进 行 16 轮函数 F 运算,并在每轮后左右进行处理并对换。最后将(L15,R15)进行一次 逆置换,得到明文 M 对应的密文。在 F 函数中,包含四部操作:选择扩展运算;与 密钥模加运算;选择压缩运算和置换运算。整个运算满足 Feistel 结构如下: DES 的密钥生成过程满足下面的流程图: 四、四、 实验步骤实验步骤 1. 算法源程序 注:由于篇幅有限,这里只列出 DES 加密部分的程序: function [CS]=dess(MB,KB) %以字符串形式输入的明文和密钥 %转换成 01 数字串 M=MB; K=KB; 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,4 8,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,3 1,23,15,7]; E=[32, 1, 2, 3, 4, 5; 4, 5, 6, 7, 8, 9; 8, 9,10,11,12,13; 12,13,14,15,16,17; 16,17,18,19,20,21; 20,21,22,23,24,25; 24,25,26,27,28,29; 28,29,30,31,32,1]; S1=[14, 4, 13, 1, 2, 15, 11, 8, 3, 10, 6, 12, 5, 9, 0, 7; 0, 15, 7, 4, 14, 2, 13, 1, 10, 6, 12, 11, 9, 5, 3, 8; 4, 1, 14, 8, 13, 6, 2, 11, 15, 12, 9, 7, 3, 10, 5, 0; 15, 12, 8, 2, 4, 9, 1, 7, 5, 11, 3, 14, 10, 0, 6, 13]; S2=[15, 1, 8, 14, 6, 11, 3, 4, 9, 7, 5, 13, 12, 0, 5, 10; 3, 13, 4, 7, 15, 2, 8, 15, 12, 0, 1, 10, 6, 9, 11, 5; 0, 14, 8, 11, 10, 4, 13, 1, 5, 8, 12, 6, 9, 3, 2, 15; 13, 8, 10, 1, 3, 15, 4, 2, 11, 6, 7, 12, 0, 5, 14,9]; S3=[10, 0, 9, 14, 6, 3, 15, 5, 1, 13, 12, 7, 11, 4, 2, 8; 13, 7, 0, 9, 3, 4, 6, 10, 2, 8, 5, 14, 12, 11, 15, 1; 13, 6, 4, 9, 8, 15, 3, 0, 11, 1, 2, 12, 5, 10, 14, 7; 1, 10, 13, 0, 6, 9, 8, 7, 4, 15, 14, 3, 11, 5, 2, 12]; S4=[7, 13, 14, 3, 0, 6, 9, 10, 1, 2, 8, 5, 11, 12, 4, 15; 13, 8, 11, 5, 6, 15, 0, 3, 4, 7, 2, 12, 1, 10, 14, 9; 10, 6, 9, 0, 12, 11, 7, 13, 15, 1, 3, 14, 5, 2, 8, 4; 3, 15, 0, 6, 10, 1, 13, 8, 9, 4, 5, 11, 12, 4, 2, 14]; S5=[2, 12, 4, 1, 7, 10, 11, 6, 8, 5, 3, 15, 13, 0, 14, 9; 14, 11, 2, 12, 4, 7, 13, 1, 5, 0, 15, 10, 3, 9, 8, 6; 4, 2, 1, 11, 10, 13, 7, 8, 15, 9, 12, 5, 6, 3, 0, 14; 11, 8, 12, 7, 1, 14, 2, 13, 6, 15, 0, 9, 10, 4, 5, 3]; S6=[12, 1, 10, 15, 9, 2, 6, 8, 0, 13, 3, 4, 4, 7, 5, 11; 10, 15, 4, 2, 7, 12, 9, 5, 6, 1, 13, 14, 0, 11, 3, 8; 9, 14, 15, 5, 2, 8, 12, 3, 7, 0, 4, 10, 1, 13, 11, 6; 4, 3, 2, 12, 9, 5, 15, 10, 11, 14, 1, 7, 6, 0, 8, 13]; S7=[4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1; 13, 0, 11, 7, 4, 9, 1, 10, 14, 3, 5, 12, 2, 15, 8, 6; 1, 4, 11, 13, 12, 3, 7, 14, 10, 15, 6, 8, 0, 5, 9, 2; 6, 11, 13, 8, 1, 4, 10, 7, 9, 5, 0, 15, 14, 2, 3, 12]; S8=[13, 2, 8, 4, 6, 15, 11, 1, 10, 9, 3, 14, 5, 0, 12, 7; 1, 15, 13, 8, 10, 3, 7, 4, 12, 5, 6, 11, 0, 14, 9, 2; 7, 11, 4, 1, 9, 12, 14, 2, 0, 6, 10, 13, 15, 3, 5, 8; 2, 1, 14, 7, 4, 10, 8, 13, 15, 12, 9, 0, 3, 5, 6, 11]; P=[16,7,20,21,29,12,28,17,1,15,23,26,5,18,31,10,2,8,24,14,32,27,3,9,19,13,30,6,22, 11,4,25]; PC1=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52, 44,36,63,55,47,39,31,23,15,
更多推荐

所有评论(0)