67800

КОДУВАННЯ ВІДКРИТОГО ТЕКСТУ І ДВІЙКОВИХ ДАНИХ

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

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

Інформація, що підлягає зашифруванню і розшифруванню, представляється різними способами, найчастіше у вигляді текстів, записаних в деякому алфавіті. Під кодуванням звичайно розуміють представлення інформації у вигляді знаків (букв алфавіту). Знак – подія або матеріальний об'єкт, виникнення...

Украинкский

2014-09-14

190.5 KB

2 чел.

PAGE   \* MERGEFORMAT 8

Лабораторна робота № 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: , , , , , , , ..

Знаки будь-якого алфавіту можна записати у вигляді двійкової послідовності, тобто в бінарному алфавіті. Для цього достатньо кожен знак алфавіту представити у вигляді двійкового блоку (кодового слова) фіксованої довжини n. При цьому кількість знаків алфавіту не повинна перевершувати число .

Наприклад, цифри для запису чисел в шістнадцятковій системі числення прийнято записувати відповідно до наступної таблиці.

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-код, використовуваний в РС, забезпечує представлення 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

а

q

Б

С

б

...

...

...

с

ё

2

...

...

"

2

B

R

b

r

В

Т

в

...

...

...

т

Є

3

...

...

#

3

C

S

с

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

в

Й

Щ

й

...

...

...

щ

A

...

...

*

:

J

Z

j

z

К

Ъ

к

...

...

...

ъ

·

B

...

...

+

;

K

[

k

{

Л

Ы

л

...

...

...

ы

v

C

...

...

,

<

L

\

l

|

М

Ь

м

...

...

...

ь

D

...

...

-

=

M

]

m

}

Н

Э

н

...

...

...

э

¤|

E

...

...

.

>

N

^

n

~

О

Ю

о

...

...

...

ю

F

...

...

/

?

O

_

о

¤

П

Я

п

...

...

...

я

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

  •  альтернативна кодова таблиця CР-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,1,…,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 РС. Вживання цих кодів викликане не секретністю, а прагненням заощадити на вартості передачі або зберіганні повідомлення. Файли текстів, зображень і програм містять інформацію з властивостями, що сильно відрізняються, і програми їх кодування повинні бути різними. Якщо архіватор добре стискає текст, зовсім не означає, що він так само хороший для стискання зображень або інших даних.

Існує стискання без відновлення і з відновленням. Стискання без відновлення припускає, що передається алфавітно-цифрова інформація, яка тим або іншим способом зменшується в об'ємі і на приймальній стороні приймається стислий об'єм. А при стисканні з відновленням приймач отримує початковий текст за умови, що передавався стислий текст. У загальному випадку, стискання (компресія) даних є процес виділення з початкового інформаційного масиву його інформативної частини шляхом відкидання деяких символів, що несуть мінімальне число цієї інформації. Стискання проводиться до тих пір, поки інформативність зберігається.

Простий спосіб стискання без відновлення для текстової інформації на природній мові, припускає наявність словника заборон, який підтримується мережею і доводиться до всіх абонентів. У нього входять одно-, дво- і трибуквені слова з мінімальною інформативністю, які з тексту виключаються. З тексту, починаючи від кінця слова до початку, видаляють всі голосні і частину приголосних до наявності ще в слові необхідного сенсу. Перші три приголосні несуть 84% інформації.

Якщо інформація представлена в цифровому вигляді, то в цьому випадку задають довжину блоку, до якого необхідно її стиснути.

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

, 10111 00111 11010

Якщо інформація не цифрова, а текстова, то можна використовувати той самий метод, якщо кожну букву закодувати деяким кодом рівномірної довжини.

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

Л

О

М

10111

00111

11010

,


3. Порядок виконання роботи

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. 110001001110000001011111110000001010110111101011001011100010001010

2. 100010100010010110100101101001110100100100100001101010100100101011

3. 010011101100010111111110011001111010010100000110101010010010101100

4. 111100000010101101111010110010111000100010101100010011100000010101

5. 010100010010100101101001111010010100000110111100010001010110001111

6. ADCPQ QWERT ERTYG

7. CBFHD AKJHB  CFGUF

8. SYRGF UHVBF OKJHR

9. LKJBG MCHDF HHHIJ

10.UHGFH ADSFG DFGJG

11. 011100000010111111100000010101101111010110010111000100010101100010

12. 100101110001010001001011001001110100100100100001101010100100101011

13. 010101100010011101100010111111110011001111010010100000110101010010

14. 001011100010001011110000001010110001001110000011110101110110010101

15. 111100010001001010110100111101001010000011010110001100010010100111

16. DFGHL HLJDF  YVDPG

17. PLFDQ CFDSR  LKKQX

18. RSYGF VBFUH OHRKJ

19. HRLKJ  MCHBG SAHIG

20. THGSI VHAKB  WPTHT

21. 100000010101010110010111000100100010011100010101111111000010100111

22. 101010010010101110010010101100010111100000010000001010110111101010

23. 101111000100100111001001011100011010011110100101010101100010011100

24. 000000101011000100010110010011101001001001000000101111111100110011

25. 010111010101100010001001000001101011000110001001000101110011111100

5. Складіть звіт, приєднавши отримані результати.

Вимоги до звіту.

У звіті мають бути приведені:

  1.  Вихідні дані (варіанти завдань);
  2.  Результати і проміжні дані перетворень.
  3.  Відповіді на контрольні питання.

Контрольні питання

  1.  Що розуміють під кодуванням інформації?
  2.  Чим кодування відрізняється від шифрування?
  3.  Як відбувається кодування в бінарному алфавіті?
  4.  Як відбувається кодування в шістнадцятковому алфавіті?
  5.  Суть кодування в коді МТК-2.
  6.  Суть кодування в ASCII-коді.
  7.  Суть кодування в коді RADIX-64.
  8.  Як здійснюється стискання даних?


 

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

10709. Микола Джеря - Нечуй-Левицький Іван 16.56 KB
  Микола Джеря Нечуй-Левицький Іван Понад самим берегом в’ється в траві стежка через усе село. Підеш тією стежкою глянеш кругом себе і скрізь бачиш зеленезелене море верб садків конопель соняшників кукурудзи та густої осоки. От стеляться розложисті як скатерть зел
10710. Маруся Чурай - Костенко Ліна 20.11 KB
  Маруся Чурай Костенко Ліна РОЗДІЛ І Якби знайшлась неопалима книга Під час пожежі у Полтаві 1658 року згоріли всі документи міських судових справ. А можливо серед них могла б знайтися справа Марусі Чурай. Справа ця розглядалася на одному з судів з приводу вбивства козака...
10711. Fata morgana - Коцюбинський Михайло - (З сільських настроїв) - Повість 19.4 KB
  Fata morgana Коцюбинський Михайло З сільських настроїв Повість ЧАСТИНА ПЕРША Проходячи біля зруйнованої сахарні Андрій Волик згадує своє колишнє життя. Він працював на фабриці та отримував кожного місяця 13 карбованців. Тепер сахарня стоїть пусткою але Андрій сподіває...
10712. Три зозулі з поклоном - Тютюнник Григір – Новела - Любові всевишній присвячується 14 KB
  Три зозулі з поклоном Тютюнник Григір – Новела Любові всевишній присвячується Повертаючись додому хлопець помічає що сусідка Марфа Яркова щось дуже пильно його розглядає. Мати пояснює що Марфа любила його батька а він на нього схожий. Потім мати згадує що Марфа за
10713. Місто - Підмогильний Валерян 21.33 KB
  Місто Підмогильний Валерян Частина перша Степан стояв на палубі корабля що плив до Києва по Дніпру оглядав береги прощався подумки з рідним селом селами що виднілися на березі. Він їде до великого міста щоб учитись і жити щоб здійсни ти свою давню мрію. Разом із ним...
10714. Мойсей - Франко Іван 19.03 KB
  Мойсей Франко Іван Автор звертається у пролозі до свого замученого розбитого народу який стоїть на роздоріжжі й не знає куди йти. Саме його майбутнім і тривожиться поет не вірить що судилося йому в сусідів бути гноєм що його долею буде укрита злість облудлива пок
10715. Русский язык богат глаголами и существительными, разнообразен формами, выражающими оттенки чувств и мыслей 24.5 KB
  Сочинение на ГИА 2013 года по тесту 29 1 Напишите сочинениерассуждение раскрывая смысл высказывания Льва Николаевича Толстого: Русский языкбогат глаголами и существительными разнообразен формами выражающими оттенки чувств и мыслей. Глагол и существительное с...
10716. Сочинение по теме Исскуство 27.5 KB
  Сочинение Искусство это творческое осмысление окружающего мира талантливым человеком. Плоды этого осмысления принадлежат не только его создателям а всему человечеству живущему на планете Земля. Бессмертны прекрасные творения древнегреческих скульпторов и архит...
10717. Намагатись бути самим собою - єдиний засіб досягти успіху 29 KB
  Тема: Намагатись бути самим собою – єдиний засіб досягти успіху. Стендаль Світ для тих хто вміє хотіти... Подивіться навкруги... Ви неодмінно побачите навколо себе безліч копій. Озирніться ще разІ помітите що усі люди наче злилис...