Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

боднар / Lab 3 DES

.docx
Скачиваний:
3
Добавлен:
23.02.2016
Размер:
280.22 Кб
Скачать

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

111100

2; 14

5

0101

S2

000100

0; 2

8

1000

S3

101111

3; 7

7

0111

S4

010110

0; 11

5

0101

S5

110110

2; 11

5

0101

S6

001000

0; 4

9

1001

S7

011101

1; 14

8

1000

S8

001011

1; 5

3

0011

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:

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

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:

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

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

000010

0; 1

4

0100

S2

101010

2; 5

4

0100

S3

100101

3; 2

13

1101

S4

111011

3; 13

7

0111

S5

110101

3; 10

0

0000

S6

110101

3; 10

1

0001

S7

000110

0; 3

14

1110

S8

110011

3; 9

12

1100

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:

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

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:

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

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

001001

1; 4

14

1110

S2

010101

1; 10

1

0001

S3

000100

0; 2

9

1001

S4

100011

3; 1

15

1111

S5

100011

3; 1

8

1000

S6

111100

2; 14

11

1011

S7

010010

0; 9

12

1100

S8

010110

0; 11

14

1110

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:

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

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:

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

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

000110

0; 3

1

0001

S2

111000

2; 12

9

1001

S3

010000

0; 8

1

0001

S4

100101

3; 2

0

0000

S5

110011

3; 9

15

1111

S6

010011

1; 9

1

0001

S7

001111

1; 7

10

1010

S8

111011

3; 13

5

0101

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:

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

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:

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

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-битовые:

K8E(R7) = B1B2B3B4B5B6B7B8:

110100 011011 100001 011001 101100 111101 010101 100010

Номер S-блока

Исходное число

Строка; столбец

Значение

Двоичное значение

S1

110100

2; 10

9

1001

S2

011011

1; 13

9

1001

S3

100001

3; 0

1

0001

S4

011001

1; 12

1

0001

S5

101100

2; 6

7

0111

S6

111101

3; 14

8

1000

S7

010101

1; 10

5

0101

S8

100010

2; 1

11

1011

Соседние файлы в папке боднар