Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Транспортне кодування

Оскільки системи шифрування даних часто використовуються для кодування текстової інформації: листування, рахунків, платежів електронної комерції, і при цьому криптосистема має бути абсолютно прозорою для користувача, то над вихідним потоком криптосистеми часто здійснюється транспортне кодування, тобто додаткове кодування (не шифрування!) інформації винятково для забезпечення сумісності з протоколами передачі даних.

Річ у тому, що на виході криптосистеми байт може приймати всі 256 можливих значень, незалежно від того чи був вхідний потік текстовою інформацією чи ні. А при передачі поштових повідомлень багато систем орієнтовано на те, що допустимі значення байтів тексту лежать у вужчому діапазоні: всі цифри, розділові знаки, алфавіт латиниці плюс, можливо, національної мови. Перші 32 символи набору ASCII служать для спеціальних цілей. Для того, щоб вони і деякі інші службові символи ніколи не з'явилися у вихідному потоці використовується транспортне кодування.

Найбільш простий метод полягає в записі кожного байта двома шістнадцятковими цифрами-символами. Так байт 252 буде записаний двома символами 'FC'; байт з кодом 26, що потрапляє на спеціальний символ CTRL-Z, буде записаний двома допустимими символами '1A'. Але ця схема дуже надлишкова: у одному байті передається лише 4 біта інформації.

Насправді практично в будь-якій системі комунікації без проблем можна передавати близько 68 символів (латинський алфавіт рядковий і прописний, цифри і розділові знаки). З цього виходить, що цілком реально створити систему з передачею 6 біт в одному байті (26<68), тобто кодувати 3 байти довільного вмісту 4-мя байтами з виключно дозволених (так званих друкарських) символів. Подібна система була розроблена і стандартизована на рівні протоколів мережі Інтернет – це система Base64 (стандарт RFC1251).

Процес кодування перетворить 4 вхідних символу у вигляді 24-бітової групи, обробляючи їх зліва направо. Ці групи потім розглядаються як 4 сполучених 6-бітових групи, кожна з яких транслюється в одиночну цифру алфавіту base64. При кодуванні base64 вхідний потік байтів має бути впорядкований старшими бітами вперед.

Кожна 6-бітова група використовується як індекс для масиву 64-х друкарських символів. Символ, на який вказує значення індексу, поміщається у вихідний рядок. Ці символи вибрані так, щоб бути універсальними і виключають символи, що мають спеціальне призначення (".", CR, LF).

Вихідний потік (закодовані байти) повинен мати довжину рядків не більше 76 символів. Всі ознаки переходу рядка і інші символи, відсутні в таблиці 4.2, мають бути проігноровані декодером base64. Серед даних символи, не перераховані в табл. 4.2, повинні говорити про помилку передачі даних, і, відповідно, програма-декодер повинна сповістити користувача про неї.

 

 

Таблиця 4.2 - Алфавіт Base64

Зна-чення Код Зна-чення Код Зна-чення Код Зна- чення Код
  A   R   i   z
  B   S   j    
  C   T   k    
  D   U   l    
  E   V   m    
  F   W   n    
  G   X   о    
  H   Y   p    
  I   Z   q    
  J   а   r    
  K   b   s    
  L   с   t   +
  M   d   u   /
  N   e   v запов-нювач =
  O   f   w    
  P   g   x    
  Q   h   y    

 

Якщо в хвості потоку кодованих даних залишилося менше, ніж 24 біта, справа додаються нульові біти до утворення цілого числа 6-бітових груп. А до кінця 24-бітової групи може залишатися лише від 0 до 3-х невистачаючих 6-бітових груп, замість кожної з яких ставиться символ-заповнювач "=". Оскільки весь вхідний потік є цілим числом 8-бітових груп (тобто, просто байтних значень), то можливі лише такі випадки:

1) вхідний потік закінчується рівно 24-бітовою групою (довжина файлу кратна 3). В такому випадку вихідний потік закінчуватиметься чотирма символами Base64 без будь-яких додаткових символів;

2) "хвіст" вхідного потоку має довжину 8 біт. Тоді в кінці вихідного коду будуть два символи Base64, з додаванням двох символів "=";

3) "хвіст" вхідного потоку має довжину 16 біт. Тоді в кінці вихідного стоятимуть три символи Base64 і один "="

Оскільки символ "=" є хвостовим заповнювачем, його поява в тілі листа може означати лише те, що кінець даних досягнутий. Але спиратися на пошук символу "=" для виявлення кінця файлу невірно, оскільки, якщо кількість переданих бітів кратна 24, то у вихідному файлі не з'явиться жодного символу "=".

4.7 Загальна схема симетричної криптосистеми

Загальна схема симетричної криптосистеми з врахуванням всіх розглянутих пунктів зображена на рис. 4.8.

Рисунок 4.8 - Схема симетричної криптосистеми

 

 

<== предыдущая лекция | следующая лекция ==>
Хешування паролів | Загальні відомості про асиметричні криптоалгоритми
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 655; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.041 сек.