Объединяем последовательности 16 пар ключей Cn и Dn в одну CnDn.




В результате перестановки за таблицей получаем последовательности из 48-ми бит:

C1D1 = 1111111 1111111 1000000 0010001 0110001 1011100 1100001 0100101

K1 = 101111 111101 001101 010011 001000 111000 111100 000100

C2D2 = 1111111 1111111 0000000 0100011 1100011 0111001 1000010 1001010

K2 = 101011 110101 101101 011011 000101 100001 001011 011010

C3D3 = 1111111 1111100 0000001 0001111 0001101 1100110 0001010 0101011

K3 = 001011 110111 001111 011001 100101 010011 000101 100101

C4D4 = 1111111 1110000 0000100 0111111 0110111 0011000 0101001 0101100

K4 = 000111 110101 110111 011001 001000 101010 111011 100000

C5D5 = 1111111 1000000 0010001 1111111 1011100 1100001 0100101 0110001

K5 = 000111 110110 100111 011001 011110 001010 110100 010111

C6D6 = 1111110 0000000 1000111 1111111 1110011 0000101 0010101 1000110

K6 = 000111 111110 110110 001101 001011 110100 010010 011010

C7D7 = 1111000 0000010 0011111 1111111 1001100 0010100 1010110 0011011

K7 = 010110 110010 110110 001111 010011 010111 000101 000011

C8D8 = 1100000 0001000 1111111 1111111 0110000 1010010 1011000 1101110

K8 = 011110 011010 110010 101101 101001 101100 000001 101100

C9D9 = 1000000 0010001 1111111 1111111 1100001 0100101 0110001 1011100

K9 = 110110 011011 110010 101100 010100 110100 110001 011010

C10D10 = 0000000 1000111 1111111 1111110 0000101 0010101 1000110 1110011

K10 = 110100 001010 111011 101110 010011 011011 000100 011000

C11D11 = 0000010 0011111 1111111 1111000 0010100 1010110 0011011 1001100

K11 = 111100 001111 111000 100110 101000 010111 010001 101100

C12D12 = 0001000 1111111 1111111 1100000 1010010 1011000 1101110 0110000

K12 = 111000 001011 111101 100110 011010 001001 101010 100110

C13D13 = 0100011 1111111 1111111 0000000 1001010 1100011 0111001 1000010

K13 = 111000 001111 011001 110111 100101 000100 110010 111111

C14D14 = 0001111 1111111 1111100 0000001 0101011 0001101 1100110 0001010

K14 = 111001 011101 011101 110010 000011 110001 101011 010001

C15D15 = 0111111 1111111 1110000 0000100 0101100 0110111 0011000 0101001

K15 = 111001 101101 001111 110011 100100 111110 000101 110001

C16D16 = 1111111 1111111 1100000 0001000 1011000 1101110 0110000 1010010

K16 = 101111 111101 001101 010011 001000 111000 111100 000100

Итерация 1.

Расширяем входное значение до 48 битов для последующего сложения с ключом раунда. Над 32-битным входом выполняется расширяющая перестановка согласно таблице E:

           
           
           
           
           
           
           
           

R0: 1111 1111 0000 0000 0001 1111 1001 1100

Получаем последовательность из 48-ми битным входом:

E(R0): 011111 111110 100000 000000 000011 111111 110011 111001

Произведем операцию XOR (сложение по модулю 2) по формуле E(Rn-1) XOR ключ Kn. На первой итерации это K1 E(R0):

Осуществим S-подстановку за таблицами, преобразуем 6-битовые числа в 4-битовые:

K1 E(R0) = B1B2B3B4B5B6B7B8:

110000 000011 101101 010011 001011 000111 001111 111101

Номер S-блока Исходное число Строка; столбец Значение Двоичное значение
S1   2; 8    
S2   1; 1    
S3   3; 6    
S4   1; 9    
S5   1; 5    
S6   1; 3    
S7   1; 7    
S8   3; 14    

 

S(B1)S(B2)S(B3)S(B4)S(B5)S(B6)S(B7)S(B8):

1111 1101 1000 0111 0111 0010 1010 0110

Выполним функцию перестановки за таблицей P:

       
       
       
       
       
       
       
       

f = P[S(B1)S(B2)S(B3)S(B4)S(B5)S(B6)S(B7)S(B8)]:

1010 0000 1110 1110 1101 0111 1011 0011

Конечный результат после 1 итерации:

L0: 1111 1111 0000 0000 0100 1001 0101 0001

f(R0,K1): 1010 0000 1110 1110 1101 0111 1011 0011

R1 = L0 f(R0,K1):

R1: 0101 1111 1110 1110 1001 1110 1110 0010

L1 = R0: 1111 1111 0000 0000 0001 1111 1001 1100

Итерация 2.

Расширяем входное значение до 48 битов для последующего сложения с ключом раунда. Над 32-битным входом выполняется расширяющая перестановка согласно таблице E:

           
           
           
           
           
           
           
           

R1: 0101 1111 1110 1110 1001 1110 1110 0010

Получаем последовательность из 48-ми битным входом:

E(R1): 001011 111111 111101 011101 010011 111101 011100 000100

Произведем операцию XOR (сложение по модулю 2) по формуле E(Rn-1) XOR ключ Kn. На первой итерации это K2 E(R1):

Осуществим S-подстановку за таблицами, преобразуем 6-битовые числа в 4-битовые:

K2 E(R1) = B1B2B3B4B5B6B7B8:

100000 001010 010000 000110 010110 011100 010111 011110

Номер S-блока Исходное число Строка; столбец Значение Двоичное значение
S1   2; 0    
S2   0; 5    
S3   0; 8    
S4   0; 14    
S5   0; 11    
S6   0; 14    
S7   1; 11    
S8   0; 15    

 

S(B1)S(B2)S(B3)S(B4)S(B5)S(B6)S(B7)S(B8):

0100 1011 0001 0100 1111 0101 1100 0111

Выполним функцию перестановки за таблицей P:

       
       
       
       
       
       
       
       

f = P[S(B1)S(B2)S(B3)S(B4)S(B5)S(B6)S(B7)S(B8)]:

0110 0101 0001 1110 1111 1000 1010 1001

Конечный результат после 2 итерации:

L1: 1111 1111 0000 0000 0001 1111 1001 1100

f(R1,K2): 0110 0101 0001 1110 1111 1000 1010 1001

R2 = L1 f(R1,K2):

R2: 1001 1010 0001 1110 1110 0111 0011 0101

L2 = R1: 0101 1111 1110 1110 1001 1110 1110 0010

Итерация 3.

Расширяем входное значение до 48 битов для последующего сложения с ключом раунда. Над 32-битным входом выполняется расширяющая перестановка согласно таблице E:

           
           
           
           
           
           
           
           

R2: 1001 1010 0001 1110 1110 0111 0011 0101

Получаем последовательность из 48-ми битным входом:

E(R2): 110011 110100 000011 111101 011100 001110 100110 101011

Произведем операцию XOR (сложение по модулю 2) по формуле E(Rn-1) XOR ключ Kn. На первой итерации это K3 E(R2):

Осуществим S-подстановку за таблицами, преобразуем 6-битовые числа в 4-битовые:

K3 E(R2) = B1B2B3B4B5B6B7B8:

111000 000011 001100 100100 111001 011101 100011 001110

Номер S-блока Исходное число Строка; столбец Значение Двоичное значение
S1   2; 12    
S2   1; 1    
S3   0; 6    
S4   2; 2    
S5   3; 12    
S6   1; 14    
S7   3; 1    
S8   0; 7    

 

S(B1)S(B2)S(B3)S(B4)S(B5)S(B6)S(B7)S(B8):

0011 1101 1111 1001 1010 0011 1011 0001

Выполним функцию перестановки за таблицей P:

       
       
       
       
       
       
       
       

f = P[S(B1)S(B2)S(B3)S(B4)S(B5)S(B6)S(B7)S(B8)]:

1000 0111 0010 1001 0110 1111 1101 0111

Конечный результат после 3 итерации:

L2: 0101 1111 1110 1110 1001 1110 1110 0010

f(R2,K3): 1000 0111 0010 1001 0110 1111 1101 0111

R3 = L2 f(R2,K3):

R3: 1101 1000 1100 0111 1111 0001 0011 0101

L3 = R2: 1001 1010 0001 1110 1110 0111 0011 0101

Итерация 4.

Расширяем входное значение до 48 битов для последующего сложения с ключом раунда. Над 32-битным входом выполняется расширяющая перестановка согласно таблице E:

           
           
           
           
           
           
           
           

R3: 1101 1000 1100 0111 1111 0001 0011 0101

Получаем последовательность из 48-ми битным входом:

E(R3): 111011 110001 011000 001111 111110 100010 100110 101011

Произведем операцию XOR (сложение по модулю 2) по формуле E(Rn-1) XOR ключ Kn. На первой итерации это K4 E(R3):

Осуществим S-подстановку за таблицами, преобразуем 6-битовые числа в 4-битовые:

K4 E(R3) = B1B2B3B4B5B6B7B8:

111100 000100 101111 010110 110110 001000 011101 001011

Номер S-блока Исходное число Строка; столбец Значение Двоичное значение
S1   2; 14    
S2   0; 2    
S3   3; 7    
S4   0; 11    
S5   2; 11    
S6   0; 4    
S7   1; 14    
S8   1; 5    

 

S(B1)S(B2)S(B3)S(B4)S(B5)S(B6)S(B7)S(B8):

0101 1000 0111 0101 0101 1001 1000 0011

Выполним функцию перестановки за таблицей P:

       
       
       
       
       
       
       
       

f = P[S(B1)S(B2)S(B3)S(B4)S(B5)S(B6)S(B7)S(B8)]:

1011 0100 0000 1111 1011 1000 0000 0111

Конечный результат после 4 итерации:

L3: 1001 1010 0001 1110 1110 0111 0011 0101

f(R3,K4): 1011 0100 0000 1111 1011 1000 0000 0111

R4 = L3 f(R3,K4):

R4: 0010 1110 0001 0001 0101 1111 0011 0010

L4 = R3: 1101 1000 1100 0111 1111 0001 0011 0101

Итерация 5.

Расширяем входное значение до 48 битов для последующего сложения с ключом раунда. Над 32-битным входом выполняется расширяющая перестановка согласно таблице E:

           
           
           
           
           
           
           
           

R4: 0010 1110 0001 0001 0101 1111 0011 0010

Получаем последовательность из 48-ми битным входом:

E(R4): 000101 011100 000010 100010 101011 111111 110110 100100

Произведем операцию XOR (сложение по модулю 2) по формуле E(Rn-1) XOR ключ Kn. На первой итерации это K5 E(R4):

Осуществим S-подстановку за таблицами, преобразуем 6-битовые числа в 4-битовые:

K5 E(R4) = B1B2B3B4B5B6B7B8:

000010 101010 100101 111011 110101 110101 000110 110011

Номер S-блока Исходное число Строка; столбец Значение Двоичное значение
S1   0; 1    
S2   2; 5    
S3   3; 2    
S4   3; 13    
S5   3; 10    
S6   3; 10    
S7   0; 3    
S8   3; 9    

 

S(B1)S(B2)S(B3)S(B4)S(B5)S(B6)S(B7)S(B8):

0100 0100 1101 0111 0000 0001 1110 1100

Выполним функцию перестановки за таблицей P:

       
       
       
       
       
       
       
       

f = P[S(B1)S(B2)S(B3)S(B4)S(B5)S(B6)S(B7)S(B8)]:

1000 1101 0101 0001 1011 0101 0011 0001

Конечный результат после 5 итерации:

L4: 1101 1000 1100 0111 1111 0001 0011 0101

f(R4,K5): 1000 1101 0101 0001 1011 0101 0011 0001

R5 = L4 f(R4,K5):

R5: 0111 0101 1001 0110 0100 0100 0000 0100

L5 = R4: 0010 1110 0001 0001 0101 1111 0011 0010

Итерация 6.

Расширяем входное значение до 48 битов для последующего сложения с ключом раунда. Над 32-битным входом выполняется расширяющая перестановка согласно таблице E:

           
           
           
           
           
           
           
           

R5: 0111 0101 1001 0110 0100 0100 0000 0100

Получаем последовательность из 48-ми битным входом:

E(R5): 001110 101011 110010 101110 101000 001000 000000 001100

Произведем операцию XOR (сложение по модулю 2) по формуле E(Rn-1) XOR ключ Kn. На первой итерации это K6 E(R5):

Осуществим S-подстановку за таблицами, преобразуем 6-битовые числа в 4-битовые:

K6 E(R5) = B1B2B3B4B5B6B7B8:

001001 010101 000100 100011 100011 111100 010010 010110

Номер S-блока Исходное число Строка; столбец Значение Двоичное значение
S1   1; 4    
S2   1; 10    
S3   0; 2    
S4   3; 1    
S5   3; 1    
S6   2; 14    
S7   0; 9    
S8   0; 11    

 

S(B1)S(B2)S(B3)S(B4)S(B5)S(B6)S(B7)S(B8):

1110 0001 1001 1111 1000 1011 1100 1110

Выполним функцию перестановки за таблицей P:

       
       
       
       
       
       
       
       

f = P[S(B1)S(B2)S(B3)S(B4)S(B5)S(B6)S(B7)S(B8)]:

1001 1101 1111 0010 1111 0011 0110 0001

Конечный результат после 6 итерации:

L5: 1101 1000 1100 0111 1111 0001 0011 0101

f(R5,K6): 1001 1101 1111 0010 1111 0011 0110 0001

R6 = L5 f(R5,K6):

R6: 0100 0101 0011 0101 0000 0010 0101 0100

L6 = R5: 0111 0101 1001 0110 0100 0100 0000 0100

Итерация 7.

Расширяем входное значение до 48 битов для последующего сложения с ключом раунда. Над 32-битным входом выполняется расширяющая перестановка согласно таблице E:

           
           
           
           
           
           
           
           

R6: 0100 0101 0011 0101 0000 0010 0101 0100

Получаем последовательность из 48-ми битным входом:

E(R6): 010000 001010 100110 101010 100000 000100 001010 101000

Произведем операцию XOR (сложение по модулю 2) по формуле E(Rn-1) XOR ключ Kn. На первой итерации это K7 E(R6):

Осуществим S-подстановку за таблицами, преобразуем 6-битовые числа в 4-битовые:

K7 E(R6) = B1B2B3B4B5B6B7B8:

000110 111000 010000 100101 110011 010011 001111 111011

Номер S-блока Исходное число Строка; столбец Значение Двоичное значение
S1   0; 3    
S2   2; 12    
S3   0; 8    
S4   3; 2    
S5   3; 9    
S6   1; 9    
S7   1; 7    
S8   3; 13    

 

S(B1)S(B2)S(B3)S(B4)S(B5)S(B6)S(B7)S(B8):

0001 1001 0001 0000 1111 0001 1010 0101

Выполним функцию перестановки за таблицей P:

       
       
       
       
       
       
       
       

f = P[S(B1)S(B2)S(B3)S(B4)S(B5)S(B6)S(B7)S(B8)]:

0010 0101 0000 1100 0110 1100 1010 0011

Конечный результат после 7 итерации:

L6: 0111 0101 1001 0110 0100 0100 0000 0100

f(R6,K7): 0010 0101 0000 1100 0110 1100 1010 0011

R7 = L6 f(R6,K7):

R7: 0101 0000 1001 1010 0010 1000 1010 0111

L7 = R6: 0100 0101 0011 0101 0000 0010 0101 0100

Итерация 8.

Расширяем входное значение до 48 битов для последующего сложения с ключом раунда. Над 32-битным входом выполняется расширяющая перестановка согласно таблице E:

           
           
           
           
           
           
           
           

R7: 0101 0000 1001 1010 0010 1000 1010 0111

Получаем последовательность из 48-ми битным входом:

E(R7): 101010 000001 010011 110100 000101 010001 010100 001110

Произведем операцию XOR (сложение по модулю 2) по формуле E(Rn-1) XOR ключ Kn. На первой итерации это K8 E(R7):

Осуществим S-подстановку за таблицами, преобразуем 6-битовые числа в 4-битовые:

K8 E(R7) = B1B2B3B4B5B6B7B8:

110100 011011 100001 011001 101100 111101 010101 100010

Номер S-блока Исходное число Строка; столбец Значение Двоичное значение
S1   2; 10    
S2   1; 13    
S3   3; 0    
S4   1; 12    
S5   2; 6    
S6   3; 14    
S7   1; 10    
S8   2; 1    

 

S(B1)S(B2)S(B3)S(B4)S(B5)S(B6)S(B7)S(B8):

1001 1001 0001 0001 0111 1000 0101 1011

Выполним функцию перестановки за таблицей P:

       
       
       
       
       
       
       
       

f = P[S(B1)S(B2)S(B3)S(B4)S(B5)S(B6)S(B7)S(B8)]:

1010 1110 1001 1110 0100 1000 1000 0010

Конечный результат после 8 итерации:

L7: 0100 0101 0011 0101 0000 0010 0101 0100

f(R7,K8): 1010 1110 1001 1110 0100 1000 1000 0010

R8 = L7 f(R7,K8):

R8: 1110 1011 1010 1011 0100 1010 1101 0110

L8 = R7: 0101 0000 1001 1010 0010 1000 1010 0111

Итерация 9.

Расширяем входное значение до 48 битов для последующего сложения с ключом раунда. Над 32-битным входом выполняется расширяющая перестановка согласно таблице E:

           
           
           
           
           
           
           
           

R8: 1110 1011 1010 1011 0100 1010 1101 0110

Получаем последовательность из 48-ми битным входом:

E(R8): 011101 010111 110101 010110 101001 010101 011010 101101

Произведем операцию XOR (сложение по модулю 2) по формуле E(Rn-1) XOR ключ Kn. На первой итерации это K9 E(R8):

Осуществим S-подстановку за таблицами, преобразуем 6-битовые числа в 4-битовые:

K9 E(R8) = B1B2B3B4B5B6B7B8:

101011 001100 000111 111010 111101 100001 101011 110111

Номер S-блока Исходное число Строка; столбец Значение Двоичное значение
S1   3; 5    
S2   0; 6    
S3   1; 3    
S4   2; 13    
S5   3; 14    
S6   3; 0    
S7   3; 5    
S8   3; 11    

 

S(B1)S(B2)S(B3)S(B4)S(B5)S(B6)S(B7)S(B8):

1001 0011 1001 0010 0101 0100 0100 0000

Выполним функцию перестановки за таблицей P:

       
       
       
       
       
       
       
       

f = P[S(B1)S(B2)S(B3)S(B4)S(B5)S(B6)S(B7)S(B8)]:

0100 0100 1101 0100 0100 0001 0000 1010

Конечный результат после 9 итерации:

L8: 0100 0101 0011 0101 0000 0010 0101 0100

f(R8,K9): 0100 0100 1101 0100 0100 0001 0000 1010

R9 = L8 f(R8,K9):

R9: 0001 0100 0100 1110 0110 1001 1010 1101

L9 = R8: 1110 1011 1010 1011 0100 1010 1101 0110

Итерация 10.

Расширяем входное значение до 48 битов для последующего сложения с ключом раунда. Над 32-битным входом выполняется расширяющая перестановка согласно таблице E:

           
           
           
           
           
           
           
           

R9: 0001 0100 0100 1110 0110 1001 1010 1101

Получаем последовательность из 48-ми битным входом:

E(R9): 100010 101000 001001 011100 001101 010011 110101 011010

Произведем операцию XOR (сложение по модулю 2) по формуле E(Rn-1) XOR ключ Kn. На первой итерации это K10 E(R9):

Осуществим S-подстановку за таблицами, преобразуем 6-битовые числа в 4-битовые:

K10 E(R9) = B1B2B3B4B5B6B7B8:

010110 100010 110010 110010 011110 001000 110001 000010

Номер S-блока Исходное число Строка; столбец Значение Двоичное значение
S1   0; 11    
S2   2; 1    
S3   2; 9    
S4   2; 9    
S5   0; 15    
S6   0; 4    
S7   3; 8    
S8   0; 1    

 

S(B1)S(B2)S(B3)S(B4)S(B5)S(B6)S(B7)S(B8):

1100 1110 0001 0001 1001 1001 1001 0010

Выполним функцию перестановки за таблицей P:

       
       
       
       
       
       
       
       

f = P[S(B1)S(B2)S(B3)S(B4)S(B5)S(B6)S(B7)S(B8)]:

1111 0111 1000 1010 1010 0000 0001 0001

Конечный результат после 10 итерации:

L9: 1110 1011 1010 1011 0100 1010 1101 0110

f(R9,K10): 1111 0111 1000 1010 1010 0000 0001 0001

R10 = L9 f(R9,K10):

R10: 0001 1100 0010 0001 1110 1010 1100 0111

L10 = R9: 0001 0100 0100 1110 0110 1001 1010 1101

Итерация 11.

Расширяем входное значение до 48 битов для последующего сложения с ключом раунда. Над 32-битным входом выполняется расширяющая перестановка согласно таблице E:

           
           
           
           
           
           
           
           

R10: 0001 1100 0010 0001 1110 1010 1100 0111

Получаем последовательность из 48-ми битным входом:

E(R10): 100011 111000 000100 000011 111101 010101 011000 001110

Произведем операцию XOR (сложение по модулю 2) по формуле E(Rn-1) XOR ключ Kn. На первой итерации это K11 E(R10):

Осуществим S-подстановку за таблицами, преобразуем 6-битовые числа в 4-битовые:

K11 E(R10) = B1B2B3B4B5B6B7B8:

011111 110111 111100 100101 010111 000010 011001 100010

Номер S-блока Исходное число Строка; столбец Значение Двоичное значение
S1   1; 15    
S2   3; 11    
S3   2; 14    
S4   3; 2    
S5   1; 11    
S6   0; 1    
S7   1; 12    
S8   2; 1    

 

S(B1)S(B2)S(B3)S(B4)S(B5)S(B6)S(B7)S(B8):

1000 1100 1110 0000 1010 0001 0010 1011

Выполним функцию перестановки за таблицей P:

       
       
       
       
       
       
       
       

f = P[S(B1)S(B2)S(B3)S(B4)S(B5)S(B6)S(B7)S(B8)]:

0001 1001 1000 1011 0010 1101 1001 0100

Конечный результат после 11 итерации:

L10: 0001 0100 0100 1110 0110 1001 1010 1101

f(R10,K11): 0001 1001 1000 1011 0010 1101 1001 0100

R11 = L10 f(R10,K11):

R11: 0000 1101 1100 0101 0100 0100 0011 1001

L11 = R10: 0001 1100 0010 0001 1110 1010 1100 0111

Итерация 12.

Расширяем входное значение до 48 битов для последующего сложения с ключом раунда. Над 32-битным входом выполняется расширяющая перестановка согласно таблице E:

           
           
           
           
           
           
           
           

R11: 0000 1101 1100 0101 0100 0100 0011 1001

Получаем последовательность из 48-ми битным входом:

E(R11): 100001 011011 111000 001010 101000 001000 000111 110010

Произведем операцию XOR (сложение по модулю 2) по формуле E(Rn-1) XOR ключ Kn. На первой итерации это K



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: