• 大小: 9KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-06-05
  • 语言: C/C++
  • 标签: DES  

资源简介

上课写的数据加密算法,用C语言实现DES算法加解密。要求是输入16位16进制的明文,16位的密钥加密。解密运算与加密不同的只是Key的使用顺序相反。亲测样例已过。

资源截图

代码片段和文件信息

//16轮DES 加解密算法

#include 
#include 

//初始置换IP
int IP[64] = { 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
};
//逆初始置换IP_1
int IP_1[64] = { 40 8 48 16 56 24 64 32
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-48
//E-边上两列为扩展内容中间32bit为原文
int E_Table[48] = { 31 0 1 2 3 4
3 4 5 6 7 8
7 89101112
111213141516
151617181920
192021222324
232425262728
2728293031 0 
};

//置换函数P  
int P_Table[32] = { 16 7 20 21 29 12 28 17
1 15 23 26 5 18 3110
2 8 24 14 32 27 3 9
19 13 30 6 22 11 4 25
};

//S盒 压缩48-32
//8个s盒 
//6进4出 一与最后2bit选择行,中间4个选列,110011 3行9列;s1中为11即1011;

int S[8][4][16] = {
// S1   

1441312151183106125907
0157414213110612119538
4114813621115129731050
1512824917511314100613

// S2   

1518146113497213120510
3134715281412011069115
0147111041315812693215
1381013154211671205149

// S3   

1009146315511312711428
1370934610285141211151
1364981530111212510147
1101306987415143115212

// S4   

7131430691012851112415
1381156150347212110149
1069012117131513145284
3150610113894511127214

// S5   

2124171011685315130149
1411212471315015103986
4211110137815912563014
1181271142136150910453

// S6   

1211015926801334147511
1015427129561131401138
9141552812370410113116
4321295151011141760813

// S7   

4112141508133129751061
1301174911014351221586
1411131237141015680592
6111381410795015142312

// S8   

1328461511110931450127
1151381037412561101492
7114191214206101315358
2114741081315129035611

};

//子密钥生成——置换选择1 
int PC_1[56] = { 5648403224168
0574941332517
915850423426
1810259514335
62544638302214
6615345372921
1356052443628
201242719113 
};

//子密钥生成-置换选择2  
int PC_2[48] = { 1316102304
227145209
221811

评论

共有 条评论