DES加密程序代码(有比较详细的讲解).docVIP

  • 1
  • 0
  • 约2.8万字
  • 约 14页
  • 2017-02-09 发布于重庆
  • 举报
DES加密程序代码(有比较详细的讲解)

DES ??一、准备 ??? 首先,头文件与宏定义。 C代码 #include?stdio.h ?? #include?memory.h ?? #include?time.h ?? #include?stdlib.h ?? ?? #define?PLAIN_FILE_OPEN_ERROR?-1 ?? #define?KEY_FILE_OPEN_ERROR?-2 ?? #define?CIPHER_FILE_OPEN_ERROR?-3 ?? #define?OK?1?????? #include stdio.h #include memory.h #include time.h #include stdlib.h #define PLAIN_FILE_OPEN_ERROR -1 #define KEY_FILE_OPEN_ERROR -2 #define CIPHER_FILE_OPEN_ERROR -3 #define OK 1??? ??? 其次,对基本数据类型进行typedef。 ?? ?这句是不可以少的,请养成良好习惯,不然以后如果你要修改基本数据类型,累死你。??? C代码 typedef?char?ElemType;?? typedef char ElemType; ??? ????而后,是初始置换表,逆初始置换表,S-Box等已知数据。???? C代码 ?//初始置换表IP ??明文置换 int?IP_Table[64]?=?{??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, ?? ?????????????????????????????????56,48,40,32,24,16,8,0, ?? ?????????????????????????????????58,50,42,34,26,18,10,2, ?? ?????????????????????????????????60,52,44,36,28,20,12,4, ?? ?????????????????????????????????62,54,46,38,30,22,14,6};? ?? //逆初始置换表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}; ?? ?? //扩充置换表E ?? int?E_Table[48]?=?{31,?0,?1,?2,?3,?4, ?? ??????????????????3,??4,?5,?6,?7,?8, ?? ??????????????????7,??8,9,10,11,12, ?? ??????????????????11,12,13,14,15,16, ?? ??????????????????15,16,17,18,19,20, ?? ??????????????????19,20,21,22,23,24, ?? ??????????????????23,24,25,26,27,28, ?? ??????????????????27,28,29,30,31,?0}; ?? ?? //置换函数P ??S盒出来的32位进行移位 int?P_Table[32]?=?{15,6,19,20,28,11,27,16, ?? ??????????????????0,14,22,25,4,17,30,9, ?? ??????????????????1,7,23,13,31,26,2,8, ?? ??????????????????18,12,29,5,21,10,3,24}; ?? ?? //S盒 ?? int?S[8][4][16]?=//S1 ?? ???????

文档评论(0)

1亿VIP精品文档

相关文档