Ноу Інти, лекція, потокові шифри і генератори псевдовипадкових чисел

Ноу Інти, лекція, потокові шифри і генератори псевдовипадкових чисел


Мал. 8.3. Загальна структура секретної системи, що використовує симетричне шифрування

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

Противник, швидше за все, може перехопити зашифроване повідомлення, так як передбачається, що воно передається по відкритому каналу зв'язку. В цьому випадку криптоаналитик противника може спробувати розкрити шифротекст. Будемо припускати, що відправник і одержувач повідомлення використовують досить надійний шифр. і що ймовірність його розтину невисока. В цьому випадку безпеку шифрування повністю залежить від безпеки ключа. Розкриття ключа призведе до розкриття даних, що передаються. Таким чином, ключ повинен зберігатися в секреті до тих пір, поки він використовується для закриття даних. Тому для початкового розподілу ключів необхідний надійний канал зв'язку.

Таким чином, принциповою є надійність каналу передачі ключа учасникам секретних переговорів. Найнадійнішим способом початкового розподілу ключів є обмін ключами при особистій зустрічі абонентів мережі передачі даних. Для доставки ключів можна також використовувати спеціальних кур'єрів. Якщо в обміні секретними повідомленнями планується участь невеликої кількості сторін, наприклад, двох або трьох, то обидва зазначених способу цілком припустимі. Якщо ж кількість взаємодіючих абонентів велике, то задача розподілу ключів перетворюється на справжню проблему.

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

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

Фахівцями розроблені спеціальні процедури (або протоколи), які дозволяють центру розподілу ключів доставляти користувачам ключі для проведення окремих сеансів зв'язку (сеансові ключі). На жаль, всі протоколи з використанням симетричного шифрування мають ті чи інші недоліки. Розглянемо один з можливих протоколів обміну ключами.

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

  1. Абонент А звертається в Центр і запитує сеансовий ключ для зв'язку з абонентом Б.
  2. У Центрі створюється випадковий сеансовий ключ. Зашифровуються дві копії цього сеансового ключа - одна з використанням секретного ключа абонента А, інша - з використанням секретного ключа абонента Б. Потім обидві зашифровані копії пересилаються з Центру абоненту А.
  3. Абонент А розшифровує свою копію сеансового ключа і пересилає другу зашифровану копію абоненту Б.
  4. Абонент Б розшифровує свою копію сеансового ключа.
  5. Абоненти А і Б використовують отриманий сеансовий ключ для секретного обміну інформацією.

Зазначений протокол досить простий і може бути автоматизований за допомогою, наприклад, програми передачі даних. Однак наведена процедура розподілу сеансових ключів має кілька явних недоліків.

Першим недоліком даної системи є те, що Центр бере участь у всіх обмінах. Збої в роботі Центру перешкоджатиме роботі всієї системи.

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

Ці та інші недоліки алгоритмів симетричного шифрування виявилися розробниками телекомунікаційних мереж при перших спробах побудови захищених систем передачі даних в 70-х роках XX століття. Рішенням проблеми розподілу ключів (а також деяких інших серйозних проблем) стало використання несиметричних алгоритмів шифрування, з якими ми почнемо знайомитися вже в наступній лекції.

Ключові терміни

CTR - режим роботи блочного шифру, який дозволяє генерувати ключі при потоковому шифрування інформації.

LFSR (linear feedback shift register) - лінійний зсувний регістр зі зворотним зв'язком.

OFB - режим роботи блочного шифру, який дозволяє генерувати ключі при потоковому шифрування інформації.

Алгоритм RC4 - алгоритм генерації псевдовипадкових чисел. Може використовуватися для генерації ключів при потоковому шифруванні.

Лінійний зсувний регістр зі зворотним зв'язком (linear feedback shift register - LFSR) - варіант зсувного регістру зі зворотним зв'язком. Зворотній зв'язок в такому регістрі реалізується просто як сума по модулю 2 всіх (або деяких) бітів регістра.

Зсувний регістр зі зворотним зв'язком складається n-бітного зсувного регістру і пристрої зворотного зв'язку. Коли потрібно витягти біт. всі біти регістра зсуваються вправо на одну позицію. Новий крайній зліва біт визначається функцією зворотного зв'язку від інших бітів. Зсувні регістри зі зворотним зв'язком можуть застосовуватися для отримання потоку псевдовипадкових біт.

короткі підсумки

Для генерації ключового потоку при потоковому шифруванні можуть використовуватися зсувні регістри зі зворотним зв'язком. Зсувний регістр зі зворотним зв'язком складається n-бітного зсувного регістру і пристрої зворотного зв'язку. Коли потрібно витягти біт. всі біти регістра зсуваються вправо на одну позицію. Новий крайній зліва біт визначається функцією зворотного зв'язку від інших бітів. Зсувні регістри зі зворотним зв'язком можуть застосовуватися для отримання потоку псевдовипадкових біт.

Можна використовувати будь-який блоковий алгоритм. наприклад AES або ГОСТ 28147-89, для поточного шифрування інформації, використовуючи режими OFB і CTR блокових шифрів. Ці режими дозволяють на основі блочного алгоритму шифрування з використанням секретного ключа генерувати потік ключової інформації, який потім може використовуватися в якості гами при шифруванні.

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

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

Набір для практики

Питання для самоперевірки

  1. Перерахуйте основні характеристики, переваги і недоліки кожного з розглянутих в лекції генераторів псевдовипадкових чисел.
  2. Яким чином можуть використовуватися для отримання псевдовипадкових чисел зсувні регістри зі зворотним зв'язком? Поясніть їх принцип роботи.
  3. Яким чином блоковий шифр в режимі OFB може бути використаний для поточного шифрування даних?
  4. Як організовується режим CTR блочного шифру?
  5. У чому різниця між генераторами випадкових і псевдовипадкових чисел?
  6. Чи можна використовувати генератор справжніх випадкових чисел для отримання гами при потоковому шифруванні. Чому?
  7. Для яких криптографічних цілей можуть бути використані генератори справжніх випадкових чисел?
  8. Які проблеми виникають при управлінні секретними ключами в системах обміну шифрованими повідомленнями?

Вправи для самоперевірки

  1. Визначте перші 16 біт псевдослучайной послідовності, отриманої за допомогою генератора ПСЧ на основі лінійного зсувного регістру, зображеного на малюнку, якщо початкове значення регістра наступне:
    • b4 = 0, b3 = 0, b2 = 0, b1 = 1.
    • b4 = 1, b3 = 1, b2 = 0, b1 = 1.

Ноу Інти, лекція, потокові шифри і генератори псевдовипадкових чисел

  • Визначте період псевдовипадкових послідовностей, одержуваних за допомогою генератора ПСЧ на основі зсувного регістру зі зворотним зв'язком з вправи 1.
  • Продовжіть обчислення псевдослучайной послідовності за алгоритмом RC4, розпочате в "Поточні шифри і генератори псевдовипадкових чисел. Частина 2" (n = 4. Ключ - послідовність чисел 1, 2, 3, 4, 5, 6) і знайдіть z6. z7. z8. z9 і z10.
  • Проведіть обчислення псевдослучайной послідовності за алгоритмом RC4 (n = 4) і знайдіть z1. z2. z3. z4 і z5. В якості секретного ключа використовуйте послідовність: 4, 3, 2, 1.