DES加密算法代码详细分解.docx

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验二 DES加密算法 用C语言编写DES算法代码,代码如下: #include stdio.h #include string.h //明文IP置换坐标 int DataIP[] = {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}; char preData[8]; //用户输入的明文 char preKey[8]; //用户输入的密钥 int Data64[64]; //8个明文通过十进制转二进制得到的64bit明文 int Key64[64]; //8个密钥通过十进制转二进制得到的64bit密钥 int DataTemp[64]; //Data64[]通过IP置换得到的64bit明文,用于得到L0和R0 int L0[32],R0[32]; int flagDorK=0; //标志位,如果是1的时候表示明文,是0的时候表示密文 //此段全局变量服务于段雪琦所写所用函数 //PC_1置换坐标表 int PC_1[56] = {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, 7,62,54,46,38,30,22, 14,6,61,53,45,37,29, 21,13,5,28,20,12,4}; //PC_2置换坐标表 int PC_2[48] = {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}; //迭代左移位数数组 int lsi[16]={1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1}; //逆初始置换表IP^-1 int IP_1_Table[64] = {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,50,18,58,26, 33,1,41,9,49,17,57,25, 32,0,40,8,48,16,56,24}; int KeyOutBox[48]={0}; //输出的子密钥数组 int lsinumber=0; //用于记录是第i次加密,lsinumber等于i //sherry第二个函数所用 //f操作中将R0扩展为48位的置换坐标表 int fExpand48[48] = {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,31}; //P变换置换坐标表 int fPChange[32]={16,7,20,21, 29,12,28,17,

文档评论(0)

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

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

1亿VIP精品文档

相关文档