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

боднар / Lab 3 DES

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

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:

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)]:

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:

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

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

K9E(R8) = B1B2B3B4B5B6B7B8:

101011 001100 000111 111010 111101 100001 101011 110111

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

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

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

Значение

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

S1

101011

3; 5

9

1001

S2

001100

0; 6

3

0011

S3

000111

1; 3

9

1001

S4

111010

2; 13

2

0010

S5

111101

3; 14

5

0101

S6

100001

3; 0

4

0100

S7

101011

3; 5

4

0100

S8

110111

3; 11

0

0000

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:

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)]:

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:

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

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

K10E(R9) = B1B2B3B4B5B6B7B8:

010110 100010 110010 110010 011110 001000 110001 000010

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

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

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

Значение

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

S1

010110

0; 11

12

1100

S2

100010

2; 1

14

1110

S3

110010

2; 9

1

0001

S4

110010

2; 9

1

0001

S5

011110

0; 15

9

1001

S6

001000

0; 4

9

1001

S7

110001

3; 8

9

1001

S8

000010

0; 1

2

0010

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:

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)]:

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:

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

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

K11E(R10) = B1B2B3B4B5B6B7B8:

011111 110111 111100 100101 010111 000010 011001 100010

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

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

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

Значение

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

S1

011111

1; 15

8

1000

S2

110111

3; 11

12

1100

S3

111100

2; 14

14

1110

S4

100101

3; 2

0

0000

S5

010111

1; 11

10

1010

S6

000010

0; 1

1

0001

S7

011001

1; 12

2

0010

S8

100010

2; 1

11

1011

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:

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)]:

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:

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

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. На первой итерации это K12 E(R11):

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

K12E(R11) = B1B2B3B4B5B6B7B8:

011001 010000 000101 101100 110010 000001 101101 010100

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

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

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

Значение

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

S1

011001

1; 12

9

1001

S2

010000

0; 8

9

1001

S3

000101

1; 2

0

0000

S4

101100

2; 6

7

0111

S5

110010

2; 9

9

1001

S6

000001

1; 0

10

1010

S7

101101

3; 6

10

1010

S8

010100

0; 10

3

0011

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

1001 1001 0000 0111 1001 1010 1010 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 0001 1110 1010 0100 1100 0000 0011

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

L11: 0001 1100 0010 0001 1110 1010 1100 0111

f(R11,K12): 1011 0001 1110 1010 0100 1100 0000 0011

R12 = L11 f(R11,K12):

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