"Людина - найвразливіше місце в системі безпеки .."
Характерною особливістю поточних шифрів є побітно обробка інформації. При цьому шифрування і дешифрування може обриватся в довільний момент часу. І як тільки зв'язок відновлено можна продовжувати процедуру без проблем. Шифрування відбувається шляхом логічних операцій над бітом ключа і бітом вихідного тексту. Це відбувається по тому, що скільки б ми не створювали шифруючих бітів, все одно накладатися буде один біт шифрувального на один біт вихідного шляхом комбінації з функцій XOR і заперечень. Класичний приклад шифру Вернама показана на рис.1. Такі шифри відмінно підходять для локальний мереж, де вирішують частину проблем захисту інформації в мережах.
Потокові шифри називають шифри гамування. Також саме шифрування є методом захисту інформації. Ці шифри в рази швидше своїх конкурентів - блокових шифрів, якщо воно реалізовано апаратно. Якщо ж реалізація програмна, тут швидкість може бути навіть менше блокових шифрів. Функція яка формує гаму, керується трёма компонентами:
- Ключ.
- Номер поточного кроку шифрування.
- ближні біти вихідного або зашифрованого тексту від поточної позиції.
Якщо схема формування гами і ключ не секретні, то такий шифр перетворюється в скремблер. Скремблери багато використовуються в системах зв'язку для підвищення характеристик трансльованого сигналу. Частота появи нулів і одиниць в такому сигналі близька до 0,5.
Залежність від номера поточної позиції, якщо і присутня в функції то пасивно. Просто на кожному кроці шифрування виробляються однотипні перетворення де в будь-якому випадку використовують поточний номер в загальному потоці гами. Включення в функцію біт ближній біт вихідного або шифрованого потоку збільшує криптостойкость шифру але при цьому зменшує швидкість шифрування.
Шаблон залежності основних властивостей потокових шифрів показана на рис.2. Це тільки шаблон, потрібно завжди враховувати конкретну ситуацію.
Стійкість шифрів гамування
Атаки на такі шифри, засновані на статистичних особливості гами від прикладу з випадковим потоком гами, або на що повторюють ділянки шифрування гамою. Перший випадок потрібно враховувати проведення різних форм частотного і кореляційного криптоанализа. У другому ж все простіше, так як повторне накладення АБО на новий вихідний блок p2 дає відкритий текст, за допомогою формули:
(P1 XOR g) XOR (p2 XOR g) = p1 XOR p2.
Що б уникнути таких незручних моментів, шифр гамування повинен упиратися на два критерії:
- Гамма, повинна мати дуже хороші статистичні характеристики.
- Період гами повинен перевищувати довжину найбільшого повідомлення, які повинні бути передані і зашифровані за допомогою одного ключа.
У каналах де можливо модифікація даних при передачі, такі шифри беззахисні. Зробивши модифікацію приймаюча сторона не зможе розшифрувати дані. Тому в каналу такого типу потрібно реалізації підтвердження цілісності повідомлення. А це вже реальні загрози інформаційній безпеці.
Лінійні регістри зсуву
АРС є простою схемою потокового шифрування. АРС має від 20 до 100 осередків пам'яті, де знаходяться біти інформації. Біти які знаходяться на даний момент в осередках, мають назву - стан. Для реалізації наступного кроку вироблення біта гами, є цикл.
- Перший біт з потоку надходить на вихід АРС - це вже біт гами.
- Вміст всіх інших осередків зсувається на одну позицію вправо.
- У вільну позицію поміщається новий біт, який записується як результат операції XOR над значеннями осередків з певними номерами.
Напрямок зсуву не має значення. АРС показано на рис.3.
Кількість осередків у пам'яті має назву - розрядність. На початку формування гами, в осередку поміщають ключ. Приклад роботи АРС з розрядністю 3 з операціями над нульовим і другим бітом, з початковим ключем 011 показано на рис.4. При довгій роботі скремблера неминуче виникає зациклення - коли вичерпалися всі можливі варіанти станів АРС, і починає повторюватися. Також виходить що є якийсь період зациклення. Графічно це виглядає в формі топологій, які показано на рис. 4.
Основною проблемою використання АРС в якості шифру це нездатність протидіяти атаці за відомим початкового тексту.
Нелінійні потокові шифри
На сьогодні з відомих є три типи нелінійних шифрів, це фільтруючі, що комбінують і динамічні. Всі вони в основі реалізують АРС. У всіх трьох типах основна мета це отримання більшого періоду гами, стійкості до атак по кореляційним атакам і відкритого тексту. Тип який повинен використовуватися, повинен бути описаний в політиці безпеки підприємства.
Фільтруючі шифри мають найпростішу структуру. Реалізовані за допомогою одного АРС. Значення одержувані від АРС проходять крізь фільтр і потім вже повноцінний біт гами. Це показано на рис.5.
Комбінують шифри реалізовані на основі декількох АРС, де об'єднуються вихідні біти з кожного АРС. Це показано на рис.6. Однією з проблем такого типу шифрів це просочування з одного або декількох АРС бітів в вихідну гаму. Такий тип є кореляційно-стійким, якщо для будь-яких варіантів комбінування АРС значення коефіцієнта кореляції між бітами АРС і вихідним бітом - 1/2.
Цей тип також використовує кілька АРС, але вони об'єднані нема на рівноправних правах, а за схемою начальник-підлеглий. Це показано на рис.7. Такі шифри іноді використовують при контролі віддаленого доступу.
Синхронні потокові шифри
Синхронні потокові шифри (ШПШ) - шифри, де потік ключів генерується незалежно від шифротекста і відкритого тексту. У процесі шифрування генератор потоку ключів дає біти потоку ключів, які ідентичні бітам потоку ключів при процесі дешифрування. При втраті будь-якого знака шифротекста порушується синхронізація між двома генераторами і можливість розшифрувати залишилися шматки тексту. Синхронізація зазвичай реалізується через спеціальні вставні маркери. При втраті знака рассінхрон тексту буде незначно, а саме до наступного маркера. Після нього синхронність знову налаштована. Плюси синхронного шифру:
- Відсутність ефекту поширення помилок (тільки спотворені біти будуть неправильно розшифрування)
- Страхує від будь-яких вставок і видалення шифротекста, так як потік буде рассінхронізірован і будуть виявлені
Мінуси синхронного шифру:
- Вразливий до зміни окремих біт шифрованого тексту. Якщо відомий відкритий текст, то можна змінити біти таким чином, що б расшірованіе було підроблено
Асинхронні потокові шифри
Асинхронні потокові шифри (АПШ) - шифри, де потік ключів реалізується функцією ключа і певного числа знаків шифротекста. Внутрішній стан генератора потоку ключів представляється функцією попередніх N бітів шифротекста. Тому на іншій стороні, розшифрують генератор потоку ключів при прийомі N бітів, автоматично синхронізується з шифрувальним генератором.
Кожне повідомлення починається з випадкового заголовка N бітів. Тема шифрується і передається на розшифровку. Розшифровка буде неправильною, проте потім, після N бітів 2 генератора будуть синхронізовані. Плюси такого шифрування:
- Розмішування статистики відкритого тексту. Кожен знак відкритого тексту впливає на наступний. АПШ може бути більш стійким до атак на основі надмірності відкритого тексту, ніж ШПШ
Мінуси асинхронного шифру:
- Чутливі до розтину повторною
- Поширення помилки (кожному неправильного біту шифротекста є N помилок у відкритому тексті)
Проектування потокових шифрів
Можна виділити 4 основні підходи до проектування потокових шифрів згідно Райнеру Едуард Рюпель:
- Системно-теоретичний метод реалізований на створенні для криптоаналитика складної, раніше недослідженою проблеми
- Інформаційно-технічний підхід реалізований на спробі приховати відкритий текст від криптоаналитика - незалежно від кількості часу витраченого на дешифрування, криптоаналитик не знайде однозначно рішення
- Складно-теоретичний підхід реалізований на складній, але відому проблему
- Рандомізований підхід реалізований на реалізації об'ємної задачі. Наприклад криптограф зашифрує текст на ключі, який складається з вказівок на те, які частини були реалізовані при шифруванні
Для проектування потокових систем Райнер Едуард Рюпель вивів теоретичні критерії:
- Велика лінійна складність
- Довгі періоди вихідних послідовностей
- Дифузія - розсіювання надмірності, розмазування статистики по всьому тексту
- Кожен біт потоку ключів повинен є складним перетворенням безлічі бітів ключа
- Критерій нелінійності для логічних функцій
На сьогодні не доведено, що такі критерії достатні для безпеки потоковий системи шифрування. Також потрібно відзначити, що якщо криптоаналитик має необмежений час і міць обчислювальних машин, то єдиним захищеним потоковим шифром є - одноразовий блокнот.
Атаки на потокові шифри
1. Силові. Атаки засновані на повному переборі можливих варіантів. Складність такого перебору залежить від кількості допустимих вирішимо рішень задачі (розмір ключів, відкритого тексту). При проектуванні систем шифрування, розробники намагаються зробити так, що б такий метод атаки був найефективнішим у порівнянні з іншими видами атак.
- Метод криптоанализа статистичних властивостей шифрувальної гами: спрямований на вивчення вихідний послідовності криптосистеми. Значення наступного біта встановлюється з ймовірністю вище ймовірності випадкового вибору
- Метод криптоанализа складності послідовності: криптоаналитик пробує знайти метод генерувати послідовність таку ж як гамма, однак більш простим методом.
3. Аналітичні методи - Метод працює тоді, коли криптоаналітику відомо опис генератора, відкритий і закритий тексту. Завдання полягає в тому, що б дізнатися початковий ключ. Бувають такі види атак:
- інверсійна
- кореляційна
- на ключову завантаження і реініціалізації
- XSL-атака
Нижче описані варіанти елементів для ІС використання поточних шифрів: