є нескінченний потік випадкових (по справжньому, а не псевдовипадкових бітів, ви отримуєте одноразовий блокнот і ідеальну безпеку.
Рис.- 1.1.1. Потоковий шифр
. 1.1 Історія
Про важливість збереження інформації в таємниці знали вже в давні часи, коли з появою писемності з'явилася і небезпека прочитання її небажаними особами.
Існували три основні способи захисту інформації. Перший і них припускав захист чисто силовими методами: охорона документа фізичними особами, передача його спеціальним кур'єром і т. П. Другий спосіб отримав назву «Стеганографія» латино-грецьке поєднання слів, що означають «тайнопис». Він полягав у приховуванні самого факту наявності інформації. Наприклад, використання симпатичних чорнила, які стають видимими лише при певному впливі на папір - яскравий приклад тайнопису. Але він з'явився дещо пізніше. Перші способи приховування інформації були приведені в працях давньогрецького історика Геродота. На голові раба, яка голилися наголо, записувалося потрібне повідомлення. І коли волосся його відростало, раба відправляли до адресата, який знову голив його голову і зчитував отримане повідомлення.
Третій спосіб захисту інформації полягав у перетворенні смислового тексту в якийсь набір хаотичних знаків (або букв алфавіту). Одержувач даного донесення мав можливість перетворити його в той же самий осмислене повідомлення, якщо володів ключем до його побудови. Цей спосіб захисту інформації називається криптографічним (від грецького слова crypto - шифруюч і graf - пишу). За твердженням ряду фахівців криптографія за віком - ровесник єгипетських пірамід. У документах стародавніх цивілізацій - Індії, Єгипту, Месопотамії - є відомості про системи і способах складання шифрувальних систем.
. 1.2 Синхронні потокові шифри
У синхронному потоковому шифрі потік ключів генерується незалежно від потоку повідомлення. Військові називають цей шифр ключовим автоключом (Key Auto-Key, KAK). При шифруванні генератор потоку ключів один за іншим видає біти потоку ключів. При дешифруванні другий генератор потоку ключів один за іншим видає ідентичні біти потоку ключів. Це працює, якщо обидва генератора синхронізовані. Якщо один з них пропускає один із циклів, або якщо біт шифротекста втрачається при передачі, то після помилки кожен символ шифротекста буде розшифрований неправильно.
Якщо таке трапляється, відправник і одержувач повинні повторно синхронізувати свої генератори потоку ключів перш, ніж можна буде продовжити роботу. Що ще гірше, вони повинні виконати синхронізацію так, щоб жодна частина потоку ключів не була повторена, тому очевидне рішення перевести генератор в більш раннє стан не працює.
Позитивна сторона синхронних фільтрів - це відсутність поширення помилок. Якщо при передачі біт змінить своє значення, що набагато ймовірніше його втрати, то тільки зіпсований біт буде дешифрований неправильно. Всі попередні та наступні біти не зміняться.
Генератор повинен видавати один і той же потік ключів і для шифрування, і для дешифрування, отже, вихід генератора повинен бути визначений. Якщо він реалізується на кінцевому автоматі (тобто, комп'ютері), послідовність з часом повториться. Такі генератори потоку ключів називаються періодичними. За винятком одноразових блокнотів всі генератори потоку ключів є періодичними.
Генератор потоку ключів повинен володіти довгим періодом, набагато більш довгим, ніж кількість бітів, які видаються між зміною ключів. Якщо період менше, ніж розмір відкритого тексту, то різні частини відкритого тексту будуть зашифровані однаковим чином, що сильно послаблює безпеку системи. Якщо криптоаналітика відома частина відкритого тексту, він може розкрити частину потоку ключів і використовувати її для подальшого розкриття відкритого тексту. Навіть якщо у аналітика є тільки шифротекст, він може виконати XOR над розділами, шифрованими однаковим потоком ключів, і отримати XOR відповідних ділянок відкритого тексту. При цьому використовуваний алгоритм перетворюється на простий алгоритм XOR з дуже довгим ключем.
Конкретна довжина періоду залежить від програми. Генератор потоку ключів, шифрувальний безперервний канал T1, буде шифрувати 2? біт в день. Період генератора повинен бути на кілька порядків більше цього значення, навіть якщо ключ змінюється щодня. Якщо період має достатню довжину, ключ можна буде міняти раз на тиждень або навіть раз на місяць.
Синхронні потокові шифри також оберігають від будь-яких вставок і вилучень шифротекста, бо вони призводять до втрати синхронізації і будуть негайно виявлені. Однак, вони не захищають повністю від бітових збоїв. Як і при блокових шифрах в режимі CFB, Меллорі може змінити окремі...