Daten zum DES

Tabellen

unsigned char pc1_table[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 
}; 

unsigned char pc2_table[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 
}; 

unsigned char p_table[32] = { 
16, 7,20,21, 
29,12,28,17,
1,15,23,26, 
5,18,31,10, 
2, 8,24,14, 
32,27, 3, 9, 
19,13,30, 6, 
22,11, 4,25 
}; 

unsigned char ip_table[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 
}; 

unsigned char inv_ip_table[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 
}; 

unsigned char e_table[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, 1 
};

unsigned char sbox_table[8][64] = {  
/* Substitutionsbox 1 */ 
{14,4,13,1,2,15,11,8,3,10,6,12,5,9,0,7, 
0,15,7,4,14,2,13,1,10,6,12,11,9,5,3,8,
4,1,14,8,13,6,2,11,15,12,9,7,3,10,5,0, 
15,12,8,2,4,9,1,7,5,11,3,14,10,0,6,13}, 

 /* Substitutionsbox 2 */  
{15,1,8,14,6,11,3,4,9,7,2,13,12,0,5,10,
3,13,4,7,15,2,8,14,12,0,1,10,6,9,11,5, 
0,14,7,11,10,4,13,1,5,8,12,6,9,3,2,15, 
13,8,10,1,3,15,4,2,11,6,7,12,0,5,14,9},

 /* Substitutionsbox 3 */  
{10,0,9,14,6,3,15,5,1,13,12,7,11,4,2,8, 
13,7,0,9,3,4,6,10,2,8,5,14,12,11,15,1, 
13,6,4,9,8,15,3,0,11,1,2,12,5,10,14,7, 
1,10,13,0,6,9,8,7,4,15,14,3,11,5,2,12}, 

 /* Substitutionsbox 4 */  
{7,13,14,3,0,6,9,10,1,2,8,5,11,12,4,15,
13,8,11,5,6,15,0,3,4,7,2,12,1,10,14,9,
10,6,9,0,12,11,7,13,15,1,3,14,5,2,8,4, 
3,15,0,6,10,1,13,8,9,4,5,11,12,7,2,14}, 

 /* Substitutionsbox 5 */  
{2,12,4,1,7,10,11,6,8,5,3,15,13,0,14,9, 
14,11,2,12,4,7,13,1,5,0,15,10,3,9,8,6, 
4,2,1,11,10,13,7,8,15,9,12,5,6,3,0,14, 
11,8,12,7,1,14,2,13,6,15,0,9,10,4,5,3}, 

/* Substitutionsbox 6 */ 
{12,1,10,15,9,2,6,8,0,13,3,4,14,7,5,11, 
10,15,4,2,7,12,9,5,6,1,13,14,0,11,3,8,
9,14,15,5,2,8,12,3,7,0,4,10,1,13,11,6, 
4,3,2,12,9,5,15,10,11,14,1,7,6,0,8,13}, 

/* Substitutionsbox 7 */ 
{4,11,2,14,15,0,8,13,3,12,9,7,5,10,6,1,
13,0,11,7,4,9,1,10,14,3,5,12,2,15,8,6,
1,4,11,13,12,3,7,14,10,15,6,8,0,5,9,2, 
6,11,13,8,1,4,10,7,9,5,0,15,14,2,3,12},

 /* Substitutionsbox 8 */ 
{13,2,8,4,6,15,11,1,10,9,3,14,5,0,12,7,
1,15,13,8,10,3,7,4,12,5,6,11,0,14,9,2,
7,11,4,1,9,12,14,2,0,6,10,13,15,3,5,8,
2,1,14,7,4,10,8,13,15,12,9,0,3,5,6,11}
}; 

Ablauf einer DES-Verschlüsselung

Plaintext: 
0123456789ABCDEF
00000001 00100011 01000101 01100111 10001001 10101011 11001101
11101111 

Key: 
133457799BBCDFF1
00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001
DES Encryption:
Initial Permutation:
11001100 00000000 11001100 11111111 11110000 10101010 11110000 10101010
DES Round 1:

left : 11001100 00000000 11001100 11111111
right : 11110000 10101010 11110000 10101010

Expansion: 01111010 00010101 01010101 01111010 00010101 01010101
Subkey : 00011011 00000010 11101111 11111100 01110000 01110010
XOR : 01100001 00010111 10111010 10000110 01100101 00100111
S-Box : 0101 1100 1000 0010 1011 0101 1001 0111
f : 00100011 01001010 10101001 10111011

left : 11001100 00000000 11001100 11111111
right new: 11101111 01001010 01100101 01000100

right : 11110000 10101010 11110000 10101010
left new : 11110000 10101010 11110000 10101010

DES Round 2:

left : 11110000 10101010 11110000 10101010
right : 11101111 01001010 01100101 01000100

Expansion: 01110101 11101010 01010100 00110000 10101010 00001001
Subkey : 01111001 10101110 11011001 11011011 11001001 11100101
XOR : 00001100 01000100 10001101 11101011 01100011 11101100
S-Box : 1111 1000 1101 0000 0011 1010 1010 1110
f : 00111100 10101011 10000111 10100011

left : 11110000 10101010 11110000 10101010
right new: 11001100 00000001 01110111 00001001

right : 11101111 01001010 01100101 01000100
left new : 11101111 01001010 01100101 01000100


DES Round 3:

left : 11101111 01001010 01100101 01000100
right : 11001100 00000001 01110111 00001001

Expansion: 11100101 10000000 00000010 10111010 11101000 01010011
Subkey : 01010101 11111100 10001010 01000010 11001111 10011001
XOR : 10110000 01111100 10001000 11111000 00100111 11001010
S-Box : 0010 0111 0001 0000 1110 0001 0110 1111
f : 01001101 00010110 01101110 10110000

left : 11101111 01001010 01100101 01000100
right new: 10100010 01011100 00001011 11110100

right : 11001100 00000001 01110111 00001001
left new : 11001100 00000001 01110111 00001001


DES Round 4:

left : 11001100 00000001 01110111 00001001
right : 10100010 01011100 00001011 11110100

Expansion: 01010000 01000010 11111000 00000101 01111111 10101001
Subkey : 01110010 10101101 11010110 11011011 00110101 00011101
XOR : 00100010 11101111 00101110 11011110 01001010 10110100
S-Box : 0010 0001 1110 1101 1001 1111 0011 1010
f : 10111011 00100011 01110111 01001100

left : 11001100 00000001 01110111 00001001
right new: 01110111 00100010 00000000 01000101

right : 10100010 01011100 00001011 11110100
left new : 10100010 01011100 00001011 11110100


DES Round 5:

left : 10100010 01011100 00001011 11110100
right : 01110111 00100010 00000000 01000101

Expansion: 10111010 11101001 00000100 00000000 00000010 00001010
Subkey : 01111100 11101100 00000111 11101011 01010011 10101000
XOR : 11000110 00000101 00000011 11101011 01010001 10100010
S-Box : 0101 0000 1100 1000 0011 0001 1110 1011
f : 00101000 00010011 10101101 11000011

left : 10100010 01011100 00001011 11110100
right new: 10001010 01001111 10100110 00110111

right : 01110111 00100010 00000000 01000101
left new : 01110111 00100010 00000000 01000101


DES Round 6:

left : 01110111 00100010 00000000 01000101
right : 10001010 01001111 10100110 00110111

Expansion: 11000101 01000010 01011111 11010000 11000001 10101111
Subkey : 01100011 10100101 00111110 01010000 01111011 00101111
XOR : 10100110 11100111 01100001 10000000 10111010 10000000
S-Box : 0100 0001 1111 0011 0100 1100 0011 1101
f : 10011110 01000101 11001101 00101100

left : 01110111 00100010 00000000 01000101
right new: 11101001 01100111 11001101 01101001

right : 10001010 01001111 10100110 00110111
left new : 10001010 01001111 10100110 00110111


DES Round 7:

left : 10001010 01001111 10100110 00110111
right : 11101001 01100111 11001101 01101001

Expansion: 11110101 00101011 00001111 11100101 10101011 01010011
Subkey : 11101100 10000100 10110111 11110110 00011000 10111100
XOR : 00011001 10101111 10111000 00010011 10110011 11101111
S-Box : 0001 0000 0111 0101 0100 0000 1010 1101
f : 10001100 00000101 00011100 00100111

left : 10001010 01001111 10100110 00110111
right new: 00000110 01001010 10111010 00010000
right : 11101001 01100111 11001101 01101001
left new : 11101001 01100111 11001101 01101001


DES Round 8:

left : 11101001 01100111 11001101 01101001
right : 00000110 01001010 10111010 00010000

Expansion: 00000000 11000010 01010101 01011111 01000000 10100000
Subkey : 11110111 10001010 00111010 11000001 00111011 11111011
XOR : 11110111 01001000 01101111 10011110 01111011 01011011
S-Box : 0110 1100 0001 1000 0111 1100 1010 1110
f : 00111100 00001110 10000110 11111001

left : 11101001 01100111 11001101 01101001
right new: 11010101 01101001 01001011 10010000
right : 00000110 01001010 10111010 00010000
left new : 00000110 01001010 10111010 00010000


DES Round 9:

left : 00000110 01001010 10111010 00010000
right : 11010101 01101001 01001011 10010000

Expansion: 01101010 10101011 01010010 10100101 01111100 10100001
Subkey : 11100000 11011011 11101011 11101101 11100111 10000001
XOR : 10001010 01110000 10111001 01001000 10011011 00100000
S-Box : 0001 0001 0000 1100 0101 0111 0111 0111
f : 00100010 00110110 01111100 01101010

left : 00000110 01001010 10111010 00010000
right new: 00100100 01111100 11000110 01111010
right : 11010101 01101001 01001011 10010000
left new : 11010101 01101001 01001011 10010000


DES Round 10:
left : 11010101 01101001 01001011 10010000
right : 00100100 01111100 11000110 01111010

Expansion: 00010000 10000011 11111001 01100000 11000011 11110100
Subkey : 10110001 11110011 01000111 10111010 01000110 01001111
XOR : 10100001 01110000 10111110 11011010 10000101 10111011
S-Box : 1101 1010 0000 0100 0101 0010 0111 0101
f : 01100010 10111100 10011100 00100010

left : 11010101 01101001 01001011 10010000
right new: 10110111 11010101 11010111 10110010
right : 00100100 01111100 11000110 01111010
left new : 00100100 01111100 11000110 01111010


DES Round 11:

left : 00100100 01111100 11000110 01111010
right : 10110111 11010101 11010111 10110010

Expansion: 01011010 11111110 10101011 11101010 11111101 10100101
Subkey : 00100001 01011111 11010011 11011110 11010011 10000110
XOR : 01111011 10100001 01111000 00110100 00101110 00100011
S-Box : 0111 0011 0000 0101 1101 0001 0000 0001
f : 11100001 00000100 11111010 00000010

left : 00100100 01111100 11000110 01111010
right new: 11000101 01111000 00111100 01111000
right : 10110111 11010101 11010111 10110010
left new : 10110111 11010101 11010111 10110010


DES Round 12:

left : 10110111 11010101 11010111 10110010
right : 11000101 01111000 00111100 01111000

Expansion: 01100000 10101011 11110000 00011111 10000011 11110001
Subkey : 01110101 01110001 11110101 10010100 01100111 11101001
XOR : 00010101 11011010 00000101 10001011 11100100 00011000
S-Box : 0111 1011 1000 1011 0010 0110 0011 0101
f : 11000010 01101000 11001111 11101010

left : 10110111 11010101 11010111 10110010
right new: 01110101 10111101 00011000 01011000
right : 11000101 01111000 00111100 01111000
left new : 11000101 01111000 00111100 01111000


DES Round 13:
left : 11000101 01111000 00111100 01111000
right : 01110101 10111101 00011000 01011000

Expansion: 00111010 10111101 11111010 10001111 00000010 11110000
Subkey : 10010111 11000101 11010001 11111010 10111010 01000001
XOR : 10101101 01111000 00101011 01110101 10111000 10110001
S-Box : 1001 1010 1101 0001 1000 1011 0100 1111
f : 11011101 10111011 00101001 00100010

left : 11000101 01111000 00111100 01111000
right new: 00011000 11000011 00010101 01011010
right : 01110101 10111101 00011000 01011000
left new : 01110101 10111101 00011000 01011000


DES Round 14:

left : 01110101 10111101 00011000 01011000
right : 00011000 11000011 00010101 01011010

Expansion: 00001111 00010110 00000110 10001010 10101010 11110100
Subkey : 01011111 01000011 10110111 11110010 11100111 00111010
XOR : 01010000 01010101 10110001 01111000 01001101 11001110
S-Box : 0110 0100 0111 1001 1001 1010 1111 0001
f : 10110111 00110001 10001110 01010101

left : 01110101 10111101 00011000 01011000
right new: 11000010 10001100 10010110 00001101
right : 00011000 11000011 00010101 01011010
left new : 00011000 11000011 00010101 01011010


DES Round 15:

left : 00011000 11000011 00010101 01011010
right : 11000010 10001100 10010110 00001101

Expansion: 11100000 01010100 01011001 01001010 11000000 01011011
Subkey : 10111111 10010001 10001101 00111101 00111111 00001010
XOR : 01011111 11000101 11010100 01110111 11111111 01010001
S-Box : 1011 0010 1110 1000 1000 1101 0011 1100
f : 01011011 10000001 00100111 01101110

left : 00011000 11000011 00010101 01011010
right new: 01000011 01000010 00110010 00110100
right : 11000010 10001100 10010110 00001101
left new : 11000010 10001100 10010110 00001101


DES Round 16:
left : 11000010 10001100 10010110 00001101
right : 01000011 01000010 00110010 00110100

Expansion: 00100000 01101010 00000100 00011010 01000001 10101000
Subkey : 11001011 00111101 10001011 00001110 00010111 11110101
XOR : 11101011 01010111 10001111 00010100 01010110 01011101
S-Box : 1010 0111 1000 0011 0010 0100 0010 1001
f : 11001000 11000000 01001111 10011000

left : 11000010 10001100 10010110 00001101
right new: 00001010 01001100 11011001 10010101
right : 01000011 01000010 00110010 00110100
left new : 01000011 01000010 00110010 00110100


Inverse Initial Permutation:
10000101 11101000 00010011 01010100 00001111 00001010 10110100 00000101


Plaintext : 0123456789ABCDEF
Key : 133457799BBCDFF1
Ciphertext : 85E813540F0AB405