开发工具:
文件大小: 5kb
下载次数: 0
上传时间: 2015-07-08
详细说明: DES加密算法,c语言实现。对于每个 64 位长度的明文分组的加密过程如下: ( 1 )初始置换:输入分组按照初始置换表重排次序,进行初始置换。 ( 2 ) 16 轮循环: DES 对经过初始置换的 64 位明文进行 16 轮类似的子加密过程。每一轮的 加密过程步骤如下: 将 64 位明文在中间分开,划分为 2 部分,每部分 32 位,左半部分记为 L ,右半部分记为 R , 以下的操作都是对右半部数据分进行的。 扩展置换:扩展置换将 32 位的输入数据根据扩展置换表扩展成为 48 位的输出数据。 异或运算:将 48 位的明文数据与 48 位的子密钥进行异或运算( 48 位子密钥的产生过程以后 将详细讨论) 。 S 盒置换: S 盒置换是非线性的, 48 位输入数据根据 S 盒置换表置换成为 32 位输出数据。 直接置换: S 盒置换后的 32 位输出根据直接置换表进行直接置换。 经过直接置换的 32 位输出数据作为下一轮子加密过程的 L 部分,这 32 位输出数据与本轮 的 L 部分进行异或操作,结果作为下一轮子加密过程的 R 部分。然后进入下一轮子加密过程, 直到 16 轮全部完成。 ( 3 )终结置换:按照终结置换表进行终结置换, 64 位输出就是密文。 在每一轮的子加密过程中, 48 位的明文数据要与 48 位的子密钥进行异或运算, 子密钥的产生 过程如下: ( 1 )压缩型换位 1 : 64 位密钥根据压缩型换位 1 置换表进行置换,输出的结果为 56 位。 ( 2 )将经过压缩型换位 1 的 56 位密钥数据在中间分开,每部分 28 位,左半部分记为 C ,右 半部分记为 D 。 ( 3 ) 16 轮循环: C 和 D 要经过 16 轮类似的操作产生 16 份子密钥,每一轮子密钥的产生过 程如下: 循环左移: 根据循环左移表对 C 和 D 进行循环左移。 循环左移后的 C 和 D 部分作为下一轮子 密钥的输入数据,直到 16 轮全部完成。 将 C 和 D 部分合并成为 56 位的数据。 压缩型换位 2 : 56 位的输入数据根据压缩型换位 2 表输出 48 位的子密钥,这 48 位的子密钥 将与 48 位的明文数据进行异或操作。 ...展开收缩
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.