des初始置换 代码分析

纯C # includestdio . h # include memory . h # include time . h # includesTD lib . h # define plain _ *初始- 。Includestdio . h # include memory . h # include time . h # IncludesTD lib . h # define plain _ *-2置换table,了解Sbox的工作原理和作用,了解DES的工作模式和填充方法,了解差分密码分析的基本原理 。IP 置换的目的是对输入的64位数据块进行逐位重组,将输出分成L0和R0两部分,每部分长度为32位,表中的数字表示该位置的数据在原始数据中的新数据中的位置 , 即原始数据块的第58位放在新数据的第一位,第50位放在第二位,以此类推,第7位放在第64位 。
【des初始置换 代码分析】
不考虑每个字节的第八位,DES的密钥从64位减少到56位,每个字节的第八位作为奇偶校验位 。生成的56位密钥由下表生成(注意表中没有8位):在每一轮DES中,由56位密钥生成不同的48位子密钥,确定这些子密钥的方式如下:1) 。将56位密钥分成两部分,每部分28位 。2)根据回合数 , 这两部分分别向左移动一位或两位 。

1、 des算法的主要流程DES算法将64位明文输入块变为64位密文输出块 , 使用的密钥也是64位 。整个算法的主要流程图如下:其作用是将输入的64位数据块逐位重组,将输出分成L0和R0两部分 , 每部分长度为32位 。其置换规则见下表 。

22,14,64,56 , 48,40,32,24,16 , 57,49,41,33,25,17,59,51,43,35,27 , 19 , 11 , 61,53,45和31 L0和R0是转置输出的两部分,其中L0是输出的左32位,R0是右32位 。例如,如果置换之前的输入值是D1D2D3......D64,在-2置换之后的结果是R0D57D49...D7 .

2、 des加密算法 des加密算法如下:1 .DES加密算法介绍DES(DataEncryptionStandard)是目前最流行的加密算法之一 。DES是对称的,即它使用相同的密钥加密和解密数据 。DES也是一种分组加密算法,一次处理固定长度的数据段,称为分组 。DES数据包的大小是64位 。如果加密数据长度不是64位的倍数,则可以根据一些特定规则来填充这些位 。
混淆的目的是隐藏任意明文和密文或密钥之间的关系 , 扩散的目的是使明文和密钥中的有效位一起形成尽可能多的密文 。两者结合使得安全性相对较高,DES算法通过一系列的置换和替换操作对明文进行加密 。过程的关键是从给定的初始 key中获取16个子键的功能,为了加密一组明文,每个子密钥被应用于序列中的一系列比特操作中的数据(116),每个子密钥一次,总共重复16次 。

    推荐阅读