67799

КОДИРОВАНИЕ ОТКРЫТОГО ТЕКСТА И ДВОИЧНЫХ ДАННЫХ

Лабораторная работа

Информатика, кибернетика и программирование

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

Русский

2014-09-14

203 KB

2 чел.

PAGE   \* MERGEFORMAT 7

Лабораторная работа № 1

Тема: КОДИРОВАНИЕ ОТКРЫТОГО ТЕКСТА И ДВОИЧНЫХ ДАННЫХ

Цель работы – изучить принципы кодирования и преобразования данных при передаче информации в системах секретной связи.

Краткие теоретические сведения.

1. Кодирование информации

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

Под кодированием обычно понимают представление информации в виде знаков (букв алфавита). Знак – событие или материальный объект, возникновение (наличие) которого трактуется субъектами условленным заранее образом.

Алфавит – конечное множество знаков, используемых для кодирования информации.

Текст – упорядоченный набор из элементов алфавита.

В качестве примеров, используемых в информационных системах, можно привести следующие варианты алфавитов:

- алфавит из 33-х знаков, содержащий 32 буквы русского (украинского) алфавита и пробел;

- бинарный алфавит, состоящий из двух знаков: {0,1};

- шестнадцатеричный алфавит: {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}.

- алфавит из 256 символов, входящих в стандартный код ASCII и т.п.

1.1 Двоичный код

В большинстве криптосистем требуется, чтобы текст, подлежащий зашифрованию, был представлен в двоичном алфавите, т.е. представлял собой строку битов. Это связано с тем, что компьютер может различить только нулевое и единичное состояние бита, то есть он работает в двоичной системе счисления. Фактически бит унаследовал своё название от английского "BInary digiT" (двоичная цифра).

Сочетанием двоичных цифр (битов) можно представить любое значение. Значение двоичного числа определяется относительной позицией каждого бита и наличием единичных битов. Например, восьмибитовое число, содержащее все единичные биты:

1 1 1 1 1 1 1 1

Разрядные единицы (позиции) – степени 2: , , , , , , , .

Знаки любого алфавита можно записать в виде двоичной последовательности, т.е. в бинарном алфавите. Для этого достаточно каждый знак алфавита представить в виде двоичного блока (кодового слова) фиксированной длины . При этом количество знаков алфавита не должно превосходить число .

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

0

1

2

3

4

5

6

7

0000

0001

0010

0011

0100

0101

0110

0111

8

9

A

B

C

D

E

F

1000

1001

1010

1011

1100

1101

1110

1111

1.2 Код МТК-2

В прошлом практически все средства связи имели возможность использовать код. МТК-2 – международный телеграфный код. Был принят в СССР в 1963 году. Код МТК-2 основан на международном телеграфном коде № 2, рекомендованном Международным консультативным комитетом по телефонии и телеграфии в 1932 году.

Код МТК-2 – пятибитовый, включает в себя тридцать две пятибитовые комбинации.

Код МТК-2 – трёхрегистровый, использует три разных регистра: <РУС> – русский регистр (регистр кириллицы), <ЛАТ> – латинский регистр, <ЦИФ> – цифровой регистр.

Конкретная кодовая комбинация может соответствовать то одному, то другому символу текста, в зависимости от наличия перед ней специальных кодовых слов, которые называются регистровыми комбинациями. Эти комбинации имеют соответственно следующий вид: <РУС> – 00000, <ЛАТ> – 11111, <ЦИФ> – 11011. (В международном коде 00000 не используется).

В принципе, каждый знак текста можно представлять парой кодовых слов, из которых первое слово является регистровой комбинацией:

"Л" = 00000 01001, "(" = 11011 01001, "L" = 11111 01001.

Букв Ъ и Ё нет; вместо буквы Ч использовали цифру 4.

С целью сокращения длины сообщения, в коде МТК-2 можно использовать регистры экономнее, задавая регистровую комбинацию, лишь при необходимости отмены действия предыдущей регистровой комбинации. Иными словами, регистровая комбинация влияет на все следующие за ней кодовые слова, кроме другой регистровой комбинации.

Код МТК-2

Десятичный код

Двоичный

код

ЛАТ

РУС

ЦИФ

Десятичный код

Двоичный

код

ЛАТ

РУС

ЦИФ

24

11000

A

А

29

11101

Q

Я

1

19

10011

B

Б

?

10

01010

R

Р

4

14

01110

C

Ц

:

20

10100

S

С

'

18

10010

D

Д

1

00001

T

Т

5

16

10000

E

Е

3

28

11100

U

У

7

22

10110

F

Ф

Э

15

01111

V

Ж

=

11

01011

G

Г

Ш

25

11001

W

В

2

5

00101

H

Х

Щ

23

10111

X

Ь

/

12

01100

I

И

8

21

10101

Y

Ы

6

26

11010

J

Й

Ю

17

10001

Z

З

+

30

11110

K

К

(

0

00000

Буквы русские

9

01001

L

Л

)

31

11111

Буквы латинские

7

00111

M

М

.

27

11011

Цифры

6

00110

N

Н

,

4

00100

Пробел

3

00011

O

О

9

8

01000

Перевод строки

13

01101

Р

П

0

2

00010

Возврат каретки

1.3 Код ASCII

Среди кодов, применяемых в современных компьютерных системах, распространен код ASCII (англ. American Standard Code for Information Interchangeамериканский стандартный код для обмена информацией; по-английски произносится [а́ски]), который используется для внутреннего представления символьной информации в операционной системе MS DOS, в Блокноте операционной системы Windows’xx, а также для кодирования текстовых файлов в Интернет.

Во время создания большинства операционных систем никто не позаботился предусмотреть возможность представления информации в программах на других языках, отличных от английского. Так как в большинстве систем символы описываются 8-ю битами, то нет никакого способа расширить ASCII ещё больше. Способ создания новых символов в ASCII — это просто создание расширенных ASCII реализаций. Именно так кириллица была введена в ASCII. Расширенный 8-битовый ASCII-код, используемый в PC, обеспечивает представление 256 символов, включая символы для национальных алфавитов. Первые 128 битовых комбинаций расширенного кода ASCII совпадают со стандартным ASCII, а остальные 128 используются для представления национальных алфавитов, псевдографики и специальных символов.

Таблица кодов ASCII состоит из 16 столбцов и 16 строк; каждая строка и столбец пронумерованы в шестнадцатеричной системе счисления цифрами от 0 до F. Шестнадцатеричное представление символа в ASCII-коде складывается из номера столбца и номера строки, в которых располагается символ. Так, например, ASCII-код символа 1 есть число 3116, что по правилам перевода означает 1100012. В двоичной системе код представляется восемью разрядами, т.е. двоичный ASCII-код символа 1 есть 001100012. 

Таблица кодов ASCII делится на две части: столбцы с номерами от 0 до 7 составляют стандарт кода – неизменяемую часть; столбцы с номерами от 8 до F являются расширением кода и используются, в частности, для кодирования символов национальных алфавитов. В столбцах с номерами 0 и 1 находятся управляющие символы, которые используются, в частности, для управления принтером. Столбцы с номерами от 2 до 7 содержат знаки препинания, арифметических действий, некоторые служебные символы, а также заглавные и строчные буквы латинского алфавита. Пустые ячейки означают, что они не используются, а ячейки с многоточием содержат символы, которые умышленно не показаны.

Таблица кода ASCII

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

0

...

...

0

@

P

'

р

А

Р

а

...

...

...

р

Ё

1

...

...

!

1

A

Q

a

q

Б

С

б

...

...

...

с

ё

2

...

...

"

2

B

R

b

r

В

Т

в

...

...

...

т

Є

3

...

...

#

3

C

S

c

s

Г

У

г

...

...

...

у

є

4

...

...

$

4

D

T

d

t

Д

Ф

д

...

...

...

ф

Ї

5

...

...

%

5

E

U

e

u

Е

Х

е

...

...

...

х

ї

6

...

...

&

6

F

V

f

v

Ж

Ц

ж

...

...

...

ц

Ў

7

...

...

'

7

G

W

g

w

З

Ч

з

...

...

...

ч

ў

8

...

...

(

8

H

X

h

x

И

Ш

и

...

...

...

ш

°

9

...

...

)

9

I

Y

i

y

Й

Щ

й

...

...

...

щ

A

...

...

*

:

J

Z

j

z

К

Ъ

к

...

...

...

ъ

·

B

...

...

+

;

K

[

k

{

Л

Ы

л

...

...

...

ы

C

...

...

,

<

L

\

l

|

М

Ь

м

...

...

...

ь

D

...

...

-

=

M

]

m

}

Н

Э

н

...

...

...

э

¤

E

...

...

.

>

N

^

n

~

О

Ю

о

...

...

...

ю

F

...

...

/

?

O

_

o

¤

П

Я

п

...

...

...

я

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

  •  альтернативная кодовая таблица CP-866
  •  международный стандарт ISO 8859
  •  кодовая таблица фирмы Microsoft CP-1251 (кодировка Windows)
  •  кодовая таблица, применяемая в ОС Unix  KOI 8-r.

2. Преобразование кодированных данных

2.1 Кодирование двоичных данных в RADIX-64

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

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

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

Можно поступить и по-другому. Можно разбить битовый поток на четырёхбитовые комбинации и заменить каждую тетраду на свою букву латинского алфавита, в соответствии с кодом МТК-2. В итоге, битовое представление шифртекста удлинится, алфавит текста будет состоять только из 16 букв, однако поставленная задача решена.

Подобная техника кодирования, называемая преобразованием в символьный формат (формат RADIX-64) применяется в сетевых технологиях. Порой возникают затруднения в пересылке программ, ключей, шифртекста и других бинарных файлов по системам связи, допускающим лишь текстовые сообщения, например, в почте UNIX. Для этого файлы превращают в текст формата RADIX-64. Все графические образы комбинаций RADIX-64 являются печатаемыми, представляются шестибитовыми комбинациями и подобраны так, чтобы в потоке данных отсутствовали символы, управляющие работой систем почтовой обработки.

Битовый поток разбивается на шестибитовые комбинации, после чего соответствующие графические символы кода RADIX-64 заменяются на комбинации любого другого кода, допустимого в системе связи, например, кода ASCII.

Если шестибитовую комбинацию рассматривать как запись десятичного числа в двоичной системе счисления, то комбинациям 0,1,2,…,25 соответствуют заглавные буквы латинского алфавита A,B,…,Z, а комбинациям 26, 27,…,51 – прописные буквы латинского алфавита. Комбинации 52,…,61 предназначены для изображения цифр 0,…,9. Последние две комбинации 62,63 соответствуют знакам + и /. Это увеличивает длину бинарного сообщения лишь на треть, в то время как привычная для программистов шестнадцатеричная запись удваивает его.


Код RADIX-64

Значение

Код

Двоичный

код

Значение

Код

Двоичный

код

Значение

Код

Двоичный

код

0

A

000000

21

V

010101

42

q

101010

1

B

000001

22

W

010110

43

r

101011

2

C

000010

23

X

010111

44

s

101100

3

D

000011

24

Y

011000

45

t

101101

4

E

000100

25

Z

011001

46

u

101110

5

F

000101

26

a

011010

47

v

101111

6

G

000110

27

b

011011

48

w

110000

7

H

000111

28

c

011100

49

x

110001

8

I

001000

29

d

011101

50

y

110010

9

J

001001

30

e

011110

51

z

110011

10

K

001010

31

f

011111

52

0

110100

11

L

001011

32

g

100000

53

1

110101

12

M

001100

33

h

100001

54

2

110110

13

N

001101

34

i

100010

55

3

110111

14

O

001110

35

j

100011

56

4

111000

15

P

001111

36

k

100100

57

5

111001

16

Q

010000

37

l

100101

58

6

111010

17

R

010001

38

m

100110

59

7

111011

18

S

010010

39

n

100111

60

8

111100

19

T

010011

40

o

101000

61

9

111101

20

U

010100

41

p

101001

62

+

111110

63

/

111111

2.2 Сжатие информации

В открытых сетях, в виду огромных объемов проходящей информации, производится её сжатие. Многочисленный класс кодов представлен средствами сжатия данных, наподобие программ архивации ARC, ARJ, ICE, ZIP и сжатия дисков на IBM PC. Употребление этих кодов вызвано не секретностью, а стремлением сэкономить на стоимости передачи или хранения сообщения. Файлы текстов, изображений и программ содержат информацию с сильно отличающимися свойствами и программы их кодирования должны быть разными. Если архиватор хорошо сжимает текст, вовсе не значит, что он так же хорош для сжатия изображений или других данных.

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

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

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

Весь текст разбивается на блоки не больше заданной длины, а затем производится сложение блоков по модулю 2 и передается их сумма:

, 10111 00111 11010

Если информация не цифровая, а текстовая, то можно использовать тот же метод, если каждую букву закодировать некоторым кодом равномерной длины.

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

М

Е

Л

10111

00111

11010

,


Порядок выполнения работы

1. Изучить краткие сведения о методах кодирования текста и двоичных данных.

2. Текст, выбранный из следующего списка согласно варианту:

  1.  It’s very nice to meet you again exactly at 21 o’clock.
  2.  I’ll be glad to see you in London at 19.00. (Привет).
  3.  C’est un message a 3 grouppes: щ23уж 12qwц дgfr3.
  4.  Сообщаю, что 3+2=2+3=(7-1)-1 always right.
  5.  Для боссановы характерна сложная гармония (progressive style).
  6.  Il faut profiter de la vie, mon fils. (Есть такое мнение).
  7.  ----- 1. Security=защита /охрана/криптостойкость.
  8.  +++asdf-pqwe-1234-йфук-щегк+++(криптограмма).
  9.  Вылетайте 29 февраля рейсом QWR13.
  10.  You should visit Ukraine 25.04 (Я там живу).
  11.  Примите три группы шифртекста: щ23уж 15qwц дgfч3.
  12.  zyjxy=Для боссановы характерна простая мелодия и размер 1/2.
  13.  0123456789ABCDEF=(шестнадцатеричные цифры).
  14.  S’est une chanson qui nous rassemble… (Yves Montan 1965).
  15.  ewr vgu dft sod +47+(конец сообщения).
  16.  Ferzeigen Sie, eine frage bitte… спросите по-русски, я вас пойму.
  17.  Q1ЯФЭF 345670Ч (,-Ь/) - произошел сбой в линии связи.
  18.  Let us talk about cryptography (об асимметричной, конечно).
  19.  Сколько вам лет? I am 21 years old. Мне тоже.
  20.  Sorry, please, который час? – 12 часов, 29 минут, 58 секунд.
  21.  Я буду ожидать c 15 до 17 часов. (but not very much long)
  22.  Обратите внимание на смену пароля: 0+267fjd=ietc.
  23.  A communication channel 35 is secret (до первой передачи).
  24.  xxyy-F325-CBNK-704P = повторим ещё раз.
  25.  Секретное сообщение: Dnjv ckexf tjgj cneg bnfr +7+9.

1) Записать в коде МТК-2.

2) Представить в виде последовательности шестнадцатеричных цифр, перераспределив биты по 4. (При необходимости, дополнить конец текста нулевыми битами до длины кратной четырем.)

3) С помощью таблицы ASCII-кода а) закодировать сообщение, используя шестнадцатеричное представление кода; б) закодировать исходное сообщение непосредственно.

3. Текст из предыдущего списка представить в символьном виде в формате RADIX-64 (при необходимости, дополните конец текста нулевыми битами до длины кратной шести).

4. Подобрать метод сжатия следующих сообщений и подготовить их для передачи:

1. 1100010011100000010111111100000010101101111010110010111000100010

2. 1000101000100101101001011010011101001001001000011010101001001010

3. 0100111011000101111111100110011110100101000001101010100100101011

4. 1111000000101011011110101100101110001000101011000100111000000101

5. 0101000100101001011010011110100101000001101111000100010101100011

6. ADCPQ QWERT ERTYG

7. CBFHD AKJHB CFGUF

8. SYRGF UHVBF OKJHR

9. LKJBG MCHDF HHHIJ

10.UHGFH ADSFG DFGJG

11. 0111000000101111111000000101011011110101100101110001000101011000

12. 1001011100010100010010110010011101001001001000011010101001001010

13. 0101011000100111011000101111111100110011110100101000001101010100

14. 0010111000100010111100000010101100010011100000111101011101100101

15. 1111000100010010101101001111010010100000110101100011000100101001

16. DFGHL HLJDF  YVDPG

17. PLFDQ CFDSR  LKKQX

18. RSYGF VBFUH OHRKJ

19. HRLKJ  MCHBG SAHIG

20. THGSI VHAKB  WPTHT

21. 1000000101010101100101110001001000100111000101011111110000101001

22. 1010100100101011100100101011000101111000000100000010101101111010

23. 1011110001001001110010010111000110100111101001010101011000100111

24. 0000001010110001000101100100111010010010010000001011111111001100

25. 0101110101011000100010010000011010110001100010010001011100111111

5. Составьте отчёт, приобщив полученные результаты.

Требования к отчету.

В отчете должны быть приведены:

  1.  Исходные данные (варианты заданий);
  2.  Результаты и промежуточные данные преобразований.
  3.  Ответы на контрольные вопросы и их обоснование.

Контрольные вопросы

  1.  Что понимают под кодированием информации?
  2.  Чем кодирование отличается от шифрования?
  3.  Как происходит кодирование в бинарном алфавите?
  4.  Как происходит кодирование в шестнадцатиричном алфавите?
  5.  Суть кодирования в коде МТК-2.
  6.   Суть кодирования в ASCII-коде.
  7.  Суть кодирования в коде RADIX-64.
  8.  Как осуществляется сжатие данных?


 

А также другие работы, которые могут Вас заинтересовать

57336. Правила дорожнього руху для пішоходів на багатосмуговій дорозі. Урок ОБЖ з використанням інтерактивних технологій 56 KB
  Мета: на основі набутих знань закріпити знання правил дорожнього руху; ознайомити учнів із елементами багатосмугової дороги; розвивати творчі здібності дітей уміння аналізувати мислити доводити думку; виховувати увагу спостереження.
57338. Метеорологические опасные явления и защита от них 152 KB
  Интенсивные нисходящие потоки воздуха представляющие собой холодный воздух вытесняют теплый воздух вблизи земной поверхности вверх тем самым усиливая восходящие потоки в грозовом облаке.
57339. ІНФОРМАТИКА. ПОНЯТТЯ ІНФОРМАЦІЇ І ПОВІДОМЛЕННЯ. ІНФОРМАЦІЯ І ІНФОРМАЦІЙНІ ПРОЦЕСИ 93.5 KB
  Корисність актуальність достовірність обєктивність або субєктивність розпізнаваність повнота повна або неповна нематеріальність проте інформація може виявлятися лише через матеріальні процеси сигнали...
57343. Цветок - генеративный орган растения 50.5 KB
  Папки с индивидуальными заданиями и заготовками для команд мягкий цветок проектор с экраном ноутбук магниты папка-скоросшиватель для стихов цитаты о цветах и вырезанные из цветных листов цветы для украшения кабинета.