Материал: ОИБ БСТ заочн. метод

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

15

Ъ

218

11011010

ы

251

11111011

 

 

 

 

 

 

Ы

219

11011011

ь

252

11111100

 

 

 

 

 

 

Ь

220

11011100

э

253

11111101

 

 

 

 

 

 

Э

221

11011101

ю

254

11111110

 

 

 

 

 

 

Ю

222

11011110

я

255

11111111

 

 

 

 

 

 

Я

223

11011111

пробел

32

00010000

 

 

 

 

 

 

а

224

11100000

 

 

 

 

 

 

 

 

 

Приложение В. Блок подстановки в алгоритме шифрования ГОСТ

28147-89

 

8

 

7

 

6

 

5

 

4

 

3

 

2

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

 

13

 

4

 

6

 

7

 

5

 

14

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

15

 

11

 

11

 

12

 

13

 

8

 

11

 

10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

13

 

4

 

10

 

7

 

10

 

1

 

4

 

9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

1

 

0

 

1

 

1

 

13

 

12

 

2

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

5

 

3

 

7

 

5

 

0

 

10

 

6

 

13

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

 

15

 

2

 

15

 

8

 

3

 

13

 

8

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

10

 

5

 

1

 

13

 

9

 

4

 

15

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

4

 

9

 

13

 

8

 

15

 

2

 

10

 

14

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

9

 

0

 

3

 

4

 

14

 

14

 

2

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

2

 

10

 

6

 

10

 

4

 

15

 

3

 

11

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10

3

 

14

 

8

 

9

 

6

 

12

 

8

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11

14

 

7

 

5

 

14

 

12

 

7

 

1

 

12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12

6

 

6

 

9

 

0

 

11

 

6

 

0

 

7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

13

11

 

8

 

12

 

3

 

2

 

0

 

7

 

15

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

14

8

 

2

 

15

 

11

 

5

 

9

 

5

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

12

 

12

 

14

 

2

 

3

 

11

 

9

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

16

Пример. Пусть 32-битная последовательность имеет вид

100

101

110

010

111

010

000

100

1

1

0

1

0

0

0

1

 

 

 

 

 

 

 

 

Разобьем входную последовательность на 8 блоков по 4 бита. Шестой блок

1100 пропускаем через 6-ой узел подстановки по следующему правилу:

преобразуем двоичное число 1100 к десятичному виду – 12. Заполнение 12-

ой строки для 6-ого узла подстановки равно 9, что в двоичном виде есть

1001. Таким образом, 4-битный блок 1100 заменяется на 1001. Остальные блоки заменяются аналогично.

 

8

7

 

6

 

5

 

4

 

3

 

2

 

1

 

номер узла

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

100

101

 

110

 

010

 

111

 

010

 

000

 

100

 

вход

 

1

1

 

0

 

1

 

0

 

0

 

0

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

11

 

12

 

5

 

14

 

4

 

0

 

9

 

адрес

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

7

 

9

 

15

 

5

 

10

 

14

 

11

 

заполнение

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

001

011

 

100

 

111

 

010

 

101

 

111

 

101

 

результат

 

0

1

 

1

 

1

 

1

 

0

 

0

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Выходная последовательность имеет вид

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

001

 

011

100

111

010

101

111

101

 

 

 

 

0

 

 

1

 

1

 

1

 

1

 

0

 

0

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

17

Приложение Г. Алгоритм шифрования RSA

Алгоритм шифрования RSA относится к криптографическим системам с открытым ключом. Криптосистемы с открытым ключом (асимметричные криптосистемы) были разработаны во второй половине семидесятых годов. В

асимметричных криптосистемах процедуры прямого и обратного криптопреобразования выполняются на различных ключах и не имеют между собой очевидных и легко прослеживаемых связей, позволяющих по одному ключу определить другой. В такой схеме знание только ключа зашифрования не позволяет расшифровать сообщение, поэтому он не является секретным элементом шифра и обычно публикуется участником обмена для того, чтобы любой желающий мог послать ему шифрованное сообщение.

Принцип функционирования асимметричной криптосистемы заключается в следующем:

пользователь А генерирует два ключа - открытый (незасекречен-ный) и

секретный - и передает открытый ключ по незащищенному каналу пользователю Б;

пользователь Б шифрует сообщение, используя открытый ключ шифрования пользователя А;

пользователь Б посылает зашифрованное сообщение пользователю А по незащищенному каналу;

пользователь А получает зашифрованное сообщение и дешифрует его,

используя свой секретный ключ.

Пары {открытый ключ; секретный ключ} вычисляются с помощью специальных алгоритмов, причем ни один ключ не может быть выведен из другого.

Криптографическая система RSA (Rivest-Shamir-Adleman)

Авторами алгоритма RSA, предложенного в 1977 г., являются Р.Риверст

(Rivest), А.Шамир (Shamir) и А.Адлеман (Adleman). Надежность алгоритма

18

основывается на трудности факторизации (разложения на множители)

больших чисел и трудности вычисления дискретных алгоритмов

(нахождения x при известных a, b и n из уравнения ax = b (mod n) ).

Алгоритм RSA состоит из трех частей: генерации ключей, шифрования и расшифрования.

1. Генерация ключей.

Выберем два больших различных простых числа p и q (Натуральное число называется простым, если оно делится только на себя и на 1.) и найдем их произведение

n = pq .

Вычислим функцию Эйлера (n) по формуле

(n) = (p-1)(q-1).

Закрытый ключ d выбираем из условий d < (n) и

d взаимно просто с (n),

т.е. d и (n) не имеют общих делителей.

Открытый ключ e выбираем из условий e < (n) и

de = 1(mod (n)) .

Последнее условие означает, что разность de - 1 должна делить-ся на

(n) без остатка. Для определения числа e нужно подобрать такое число k,

что

de - 1 = (n)*k .

В алгоритме RSA

( e, n ) – открытый ключ,

( d, n ) – секретный ключ.

2. Шифрование.

Исходное сообщение разбивается на блоки Mi одинаковой длины.

Каждый блок представляется в виде большого десятичного числа, меньшего

19

n, и шифруется отдельно. Шифрование блока M (M - десятичное число)

осуществляется по следующей формуле

Me = C (mod n) ,

где C – шифрблок, соответствующий блоку открытого сообщения M.

Шифрблоки соединяются в шифрограмму.

3. Расшифрование.

При расшифровании шифрограмма разбивается на блоки известной длины и каждый шифрблок расшифровывается отдельно по следующей формуле

Cd = M (mod n) .

Источник: https://studfile.net/preview/16440115/