КАТЕГОРИИ: Архитектура-(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
Якщо в хвості потоку кодованих даних залишилося менше, ніж 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; Просмотров: 666; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |