Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шифры (Орлов).docx
Скачиваний:
21
Добавлен:
24.03.2015
Размер:
39.95 Кб
Скачать

Blowfish (Дешифрование)

Входные данные:

fe b2 6d 97

Левая часть шифра L[0] = 1111111010110010

Подключ Р6 = 0101011010001110

Новая правая часть R[1] = 1010100000111100

S[1][10] = 1001100001101010

S[2][8] = 0101100111100111

S[3][3] = 1101000011100000

S[4][12] = 0001101001001011

Выход функции F[R1] = 0011110011111100

Правая часть данных [R0] = 0110110110010111

Новая левая часть данных L[1] = 0101000101101011

Подключ Р5 = 1101101101100010

Новая правая часть R[2] = 1000101000001001

S[1][8] = 0101111010000010

S[2][10] = 0100110110110101

S[3][0] = 0101100010000010

S[4][9] = 1100000110010000

Выход функции F[R2] = 1011011001000101

Правая часть данных [R1] = 1010100000111100

Новая левая часть данных L[2] = 0001111001111001

Подключ Р4 = 1100110011000010

Новая правая часть R[3] = 1101001010111011

S[1][13] = 1101111011010101

S[2][2] = 0101110001100000

S[3][11] = 0110010111111001

S[4][11] = 1110110100100111

Выход функции F[R3] = 0100101111110011

Правая часть данных [R2] = 1000101000001001

Новая левая часть данных L[3] = 1100000111111010

Подключ Р[3] = 1100110001010101

Новая левая часть данных L[4] = 0000110110101111

S[1][0] = 0100000100011100

S[2][13] = 1110100011010111

S[3][10] = 1111000001110111

S[4][15] = 1110011001000001

Выход функции F[L4] = 1011111111000101

Правая часть данных [R3] = 1101001010111011

Новая правая часть данных [R4] = 0110110101111110

Подключ Р[2] = 1000110111010000

Правая часть расшифровки = 1110000010101110

Левая часть данных L[4] = 0000110110101111

Подключ Р[1] = 1001111100000001

Левая часть расшифровки = 1001001010101110

Результат в 16-ричной форме:

92 ae e0 ae

Iceberg (Шифрование)

Входные данные:

8c ae ad a5

Блок данных = 10001100 10101110 10101101 10100101

Ключ:

80 ab aa a8 a2 a8 a0 a4

Ключ = 10000000 10101011 10101010 10101000 10100010 10101000 10100000 10100100

Генерация подключей:

1. Вращение влево на 3 бита (в коде 16)

0 5 5 d 5 5 4 5 1 5 4 5 0 5 2 4

0000 0101 0101 1101 0101 0101 0100 0101 0001 0101 0100 0101 0000 0101 0010 0100

2. Битовая перестановка P64 (в коде 16)

0 b 0 9 0 8 0 9 5 a 5 c 4 d 6 9

0000 1011 0000 1001 0000 1000 0000 1001 0101 1010 0101 1100 0100 1101 0110 1001

3. Замена S0 (в коде 16)

d e d 4 d f d 4 a 5 a 6 9 0 c 4

1101 1110 1101 0100 1101 1111 1101 0100 1010 0101 1010 0110 1001 0000 1100 0100

4. Битовая перестановка P64 (в коде 16)

c a 8 2 1 c 9 e 7 e 9 8 f 2 d b

1100 1010 1000 0010 0001 1100 1001 1110 0111 1110 1001 1000 1111 0010 1101 1011

5. Вращение влево на 3 бита (промежуточный подключ IK1)

5 4 1 0 e 4 f 3 f 4 c 7 9 6 d e

0101 0100 0001 0000 1110 0100 1111 0011 1111 0100 1100 0111 1001 0110 1101 1110

1. Вращение влево на 3 бита (в коде 16)

a 0 8 7 2 7 9 f a 6 3 c b 6 f 2

1010 0000 1000 0111 0010 0111 1001 1111 1010 0110 0011 1100 1011 0110 1111 0010

2. Битовая перестановка P64 (в коде 16)

f b c 3 f a 8 0 f 1 a 2 7 1 a 6

1111 1011 1100 0011 1111 1010 1000 0000 1111 0001 1010 0010 0111 0001 1010 0110

3. Замена S0 (в коде 16)

8 e 6 2 8 5 f d 8 7 5 3 1 7 5 c

1000 1110 0110 0010 1000 0101 1111 1101 1000 0111 0101 0011 0001 0111 0101 1100

4. Битовая перестановка P64 (в коде 16)

d b f 8 1 e 2 f 4 b 1 2 3 b 0 5

1101 1011 1111 1000 0001 1110 0010 1111 0100 1011 0001 0010 0011 1011 0000 0101

5. Вращение влево на 3 бита (промежуточный подключ IK1)

d f c 0 f 1 7 a 5 8 9 1 d 8 2 e

1101 1111 1100 0000 1111 0001 0111 1010 0101 1000 1001 0001 1101 1000 0010 1110

6. Подключ IK1’ (в коде 16)

0 0 c d c 9 9 b

0000 0000 1100 1101 1100 1001 1001 1011

6. Подключ IK2’ (в коде 16)

b 8 c 7 2 8 a 7

1011 1000 1100 0111 0010 1000 1010 0111

7. Раундовый ключ RK1’ (в коде 16)

0 0 b 6 b 1 1 2

0000 0000 1011 0110 1011 0001 0001 0010

7. Раундовый ключ RK2’ (в коде 16)

e c 8 6 3 c f 6

1110 1100 1000 0110 0011 1100 1111 0110

Шифрование данных

Раунд1

Данные: 8 c a e a d a 5

-----(код 2) 1000 1100 1010 1110 1010 1101 1010 0101

1.1. Замена S0 для данных (код 16): f 6 5 b 5 0 5 a

-----(код 2) 1111 0110 0101 1011 0101 0000 0101 1010

1.2. Битовая перестановка P8 (код 16): de 67 44 66

-----(код 2) 11011110 01100111 01000100 01100110

1.3. Замена S1 (код 16): 5 8 9 b 0 0 9 9

-----(код 2) 0101 1000 1001 1011 0000 0000 1001 1001

1.4. Битовая перестановка P8 (код 16): 64 a7 0 a5

-----(код 2) 01100100 10100111 00000000 10100101

1.5. Замена S0 (код 16): c 9 5 1 d d 5 a

-----(код 2) 1100 1001 0101 0001 1101 1101 0101 1010

1.6. Битовая перестановка P32 (код 16): f 4 9 e 1 2 2 f

-----(код 2): 11110100100111100001001000101111

1.7. Замена S1 (код 16): 2 0 6 8 a f f 2

-----(код 2) 0010 0000 0110 1000 1010 1111 1111 0010

1.8. Сложение ^ п.1.7 и раундового ключа RK1 (код 16):

2 0 d e 1 e e 0

-----(код 2) 0010 0000 1101 1110 0001 1110 1110 0000

1.9. Битовая перестановка P4 (в коде 16): 1 0 e d 2 d d 0

-----(код 2) 0001 0000 1110 1101 0010 1101 1101 0000

1.10. Битовая перестановка P32 – результат шифрования первого раунда

3 e 8 6 2 5 c 4

-----(код 2) 00111110100001100010010111000100

Раунд2

2.1. Замена S0 для данных (код 16): 2 b f c 3 a 6 9

-----(код 2) 0010 1011 1111 1100 0011 1010 0110 1001

2.2. Битовая перестановка P8 (код 16): 2b fc 2e 69

-----(код 2) 00101011 11111100 00101110 01101001

2.3. Замена S1 (код 16): f 7 2 3 f 8 9 6

-----(код 2) 1111 0111 0010 0011 1111 1000 1001 0110

2.4. Битовая перестановка P8 (код 16): df b ec 96

-----(код 2) 11011111 00001011 11101100 10010110

2.5. Замена S0 (код 16): 0 8 d e b 6 4 c

-----(код 2) 0000 1000 1101 1110 1011 0110 0100 1100

2.6. Битовая перестановка P32 (код 16): 9 8 5 f 4 5 a 8

-----(код 2): 10011000010111110100010110101000

2.7. Замена S1 (код 16): 6 e d 2 0 d 1 e

-----(код 2) 0110 1110 1101 0010 0000 1101 0001 1110

2.8. Сложение ^ п.2.7 и раундового ключа RK2 (код 16):

8 2 5 4 3 1 e 8

-----(код 2) 1000 0010 0101 0100 0011 0001 1110 1000

2.9. Битовая перестановка P4 (в коде 16): 4 1 a 8 3 2 d 4

-----(код 2) 0100 0001 1010 1000 0011 0010 1101 0100

2.10. Битовая перестановка P32 – результат шифрования

9 e 0 1 6 1 8 3

-----(код 2) 10011110000000010110000110000011

Результат шифрования:

9e 1 61 83