DES加密算法代码要点.docxVIP

  • 3
  • 0
  • 约 22页
  • 2016-11-17 发布于湖北
  • 举报
实验二 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)

1亿VIP精品文档

相关文档