Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Криптографічні методи захисту.doc
Скачиваний:
76
Добавлен:
02.05.2014
Размер:
331.26 Кб
Скачать

5.2 Структура шифраторів

Розглянемо тепер, з чого повинно полягати УКЗД, щоб виконувати ці непрості функції :

  1. Блок управління – основний модуль шифратора, який «завідує» роботою всіх інших. Зазвичай реалізується на базі мікроконтролера, зараз їх пропонується немало і можна вибрати відповідний. Головне – швидкодія і достатня кількість внутрішніх ресурсів, а також зовнішніх портів для підключення всіх необхідних модулів.

  1. Контроллер системної шини ПК( наприклад, РCI). Через нього здійснюється основний обмін даними між УКЗД і комп'ютером.

  1. Незалежний пристрій(ЗУ), що запам'ятовує, – зазвичай на базі мікросхем флэш-пам'яті. Воно повинне бути достатнє ємким (декілька мегабайт) і допускати велике число циклів запису. Тут розміщується програмне забезпечення мікроконтролера, яке виконується при ініціалізації пристрою( тобто коли шифратор перехоплює управління при завантаженні комп'ютера).

  1. Пам'ять журналу. Теж є незалежне ЗУ; це дійсно ще одна флэш-мікросхема: щоб уникнути можливих колізій пам'ять для програм і для журналу не повинні об'єднуватися.

  1. Шифропроцессор (або декілька) – це спеціалізована мікросхема або мікросхема програмованої логіки РLD – Рrogrammable Logic Device. Власне, він і шифрує дані. Докладніше про це небагато пізніше.

  1. Генератор випадкових чисел. Зазвичай є якимсь пристроєм, що дає статично випадковий шум. Це може бути шумовий діод. А перед використанням за спеціальними правилами білий шум перетвориться в цифрову форму.

  1. Блок введення ключової інформації. Забезпечує захищений прийом ключів з ключового носія, через нього також вводиться інформація про користувача для вирішення питання «свой/чужой».

  1. Блок комутаторів. Крім перерахованих вище основних функцій, УКЗД може по велінню адміністратора безпеці відключати можливість роботи із зовнішніми пристроями: дисководами, CD-ROM, паралельними і послідовними портами, шиною USB і т.д. Якщо користувач працює з настільки важливою інформацією, що її не можна ні друкувати, ні копіювати, УКЗД при вході на комп'ютер заблокує всі зовнішні пристрої, включаючи навіть мережеву карту.

5.3 Шифропроцессор

Шифрування в УКЗД повинне виконуватися так, щоб стороннім неможливо було дізнатися ключі і яким-небудь чином вплинути на алгоритми, що реалізовуються. Іноді буває корисно засекретити і правила перетворення ключів. Тому шифропроцессор логічно складається з декількох структурних одиниць :

  1. Обчислювач – набір регістрів, суматорів, блоків підстановки і т.п., зв'язаних між собою шинами передачі даних. Власне, він і виконує криптографічні дії, причому повинен робити це максимально швидко. На вхід обчислювач отримує відкриті дані, які слід зашифрувати, і ключ шифрування, який, як відомо, є випадковим числом. А шифрування – це складне математичне перетворення, тому його результат теж дуже схожий на вибір випадкових величин (спробуйте стиснути зашифрований файл яким-небудь архіватором – при використанні серйозного алгоритму захисту це буде неможливо).

  1. Блок управління. Насправді це апаратна реалізована програма, що управляє обчислювачем. Якщо з якої-небудь причини програма змінитися, його робота почне давати збой. Це чревато, наприклад, появою даних у відкритому вигляді замість зашифрованого (хоча це крайній випадок; вірогідніше отримання такої шифровки, яку ні ви самі, ні хто-небудь ще вужчий не розшифрує ніколи). Тому програма винна не тільки надійно зберігатися і стійко функціонувати, але і регулярно перевіряти сама себе. До речі, зовнішній блок управління(описаний вище) теж періодично посилає їй контрольні завдання. На практиці для більшої упевненості ставлять два шифропроцессора. Які постійно порівнюють свої результати (якщо вони не співпадають, шифрування доведеться повторити). Все це потрібно для забезпечення незмінності алгоритму шифрування.

  1. Буфер введення-висновку необхідний для підвищення продуктивності пристрою: поки шифрується перший блок даних, завантажується наступний і т.д. Те ж саме відбувається і на виході. Така конвейєрна передача даних серйозно збільшує швидкість шифрування.