Аналіз алгоритмів потокового шифрування
RC4 не використовує окремо сіль (довільне число використовуване під час криптографічного зв’язку лише один раз) поряд з ключем. Це означає, що якщо один ключ повинен використовуватися протягом довгого часу для шифрування декількох потоків, сама криптосистема, що використовує RC4, повинна комбінувати сіль і довгостроковий ключ для отримання потокового ключа для RC4. Один з можливих виходів… Читати ще >
Аналіз алгоритмів потокового шифрування (реферат, курсова, диплом, контрольна)
Аналогічні алгоритми захисту інформації
RC4 — потоковий шифр, що широко застосовується в різних системах захисту інформації в комп’ютерних мережах (наприклад, у протоколах SSL і TLS, алгоритмі безпеки бездротових мереж WEP). Шифр розроблений компанією RSA Security і для його використання потрібна ліцензія. Алгоритм RC4 будується на основі параметризованого ключем генератора псевдовипадкових бітів з рівномірним розподілом. Довжина ключа може становити від 40 до 2048 біт [1]. Основні переваги шифру — висока швидкість роботи і змінний розмір ключа. RC4 досить вразливий, якщо використовуються не випадкові або пов’язані ключі, один ключовий потік використовується двічі.
Ці фактори, а також спосіб використання можуть зробити криптосистему небезпечною.
RC4 не використовує окремо сіль (довільне число використовуване під час криптографічного зв’язку лише один раз) поряд з ключем. Це означає, що якщо один ключ повинен використовуватися протягом довгого часу для шифрування декількох потоків, сама криптосистема, що використовує RC4, повинна комбінувати сіль і довгостроковий ключ для отримання потокового ключа для RC4. Один з можливих виходів — генерувати новий ключ для RC4 за допомогою геш-функції від довгострокового ключа і оказії. Однак багато додатків, що використовують RC4, просто конкатенують ключ і сіль. Через це і слабкий розклад ключів, використовуваного в RC4, додаток може стати вразливим [1, 2, 3]. Тому він був визнаний застарілим багатьма компаніями, такими як Microsoft. Наприклад, в .NET Framework від Microsoft відсутня реалізація RC4.
В алгоритмі RC4 використовуються два 8-розрядних лічильника і і 8-розрядний блок заміни (S-блок) (рис. 1.1), таблиця замін має розмірність 8×256 і є перестановкою (залежної від ключа) двійкових чисел від 0 до 255.
Алгоритм RC4:
такт роботи першого лічильника:
такт роботи другого лічильника:
комірки таблиці замін S-блоку з адресами і обмінюються своїм вмістом:
обчислення суми вмісту елементів таблиці замін S-блоку з адресами і :
зчитування вмісту комірки таблиці замін S-блоку з адресою Т:
CHAMELEON — потоковий шифр розроблений Р. Андерсоном, його особливістю є висока криптостійкість поєднана з наступними незвичайними для надійного шифру властивостями: незначні зміни в ключі викликають такі ж незначні зміни в гаммі.
Криптосистема має двоступеневу структуру. Перший ступінь — генератор псевдовипадкових 64-розрядних послідовностей. Другий ступінь — S-блок, таблиця замін якого має розмір 512 Кбайт и складається з 64-розрядних слів. Ключова інформація — початкове заповнення генератора ПВП и вміст таблиці замін.
Нехай A, B, C, D сукупність чотирьох 16 розрядних слів, що являють собою 64-розрядний код з виходу генератора ПВП, а S[i] - вміст комірки таблиці замін S-блоку з адресою і. Тоді черговий елемент Y 64-розрядної гамми формується наступним чином:
Таким чином, чотири 16-розрядних слова A, B, C і D з виходу генератора ПВП використовуються для вибору чотирьох 64-розрядних слів з таблиці замін, які для отримання 64-розрядного елемента гамми додаються за модулем два.
Результатом зміни одного біта в комірці таблиці замін являється зміною близько 4 біт на 512 Кбайт сформованої гамми. Зміни знаходяться на тих самих місцях слова, що і змінені біти слова S[i].
TWOPRIME — криптоалгоритм орієнтований на 32-розрядну архітектуру, працює з блоком, розмір якого дорівнює восьми байтам. При використанні як потокового генератора за один такт роботи він виробляє вісім байт вихідної послідовності, яка потім за допомогою операції XOR може шифрувати вхідний потік даних такого ж розміру.
Розмір ключа шифрування 128 біт або 16 байт, що позначаються як.
Ключ ділиться на чотири частини:
Алгоритм має 9 рівнів перетворення.
Перший рівень складається з двох (р, а) циклічних лічильників. Ці лічильники мають внутрішній регістр, який може зберігати будь яке число від 0 р-1. Початкове значення лічильника рівне k, 0? k? p — 1. В момент часу значення регістру рівне:
Лічильник циклічно видає послідовність з кроком і періодом .
Другий рівень алгоритму складається з блоку замін і являється першим не лінійним рівнем. Блок забезпечує перетворення чотирьох байт з виходу лічильника і чотирьох байт з виходу .
Третій рівень здійснює побайтове додавання значень другого рівня та байтів часткових ключів і .
Четвертий рівень виконує лінійні перетворення, забезпечуючі дифузію ключа.
П’ятий рівень здійснює додавання з ключем, але на відмінно від третього рівня, додаються часткові ключі і .
Шостий рівень здійснює лінійне перетворення і слугує для збільшення об'єму інформації. Він приймає восьмирозрядне вхідне значення, а видає 32-розрядне вихідне значення.
Сьомий рівень здійснює лінійний стиск. Ця операція приймає 32-розрядне вхідне значення і видає 8-розрядне вихідне значення. Його особливістю є забезпеченням того, що кожен вихідний байт залежить від восьми вхідних байт, і кожен вхідний байт впливає на два вихідних. Ця функція головним чином призначена для стиснення, але вона також відіграє важливу роль у дифузії.
Розширення даних та їх стиснення призначені для запобігання запуску алгоритму в зворотньому напрямку, а також забезпечує залежність кожного вихідного байту від максимально можливої ??кількості вхідних байт.
Восьмий рівень є нелінійним рівнем з принципом роботи аналогічним другому.
Дев’ятий рівень є рівнем додавання з ключем за допомогою операції XOR. Результатом роботи цього рівня є байти гамующої послідовності. Цей рівень також запобігає запуск алгоритму в зворотному напрямку.
У режимі потокового шифрування вихідна послідовність за допомогою операції XOR підсумовується з блоком відкритого тексту або шифротексту.
Алгоритм WAKE (Word Auto Key Encryption) видає потік 32-бітних слів, які за допомогою XOR можуть бути використані для отримання шифротексту. Для генерації наступного слова ключа використовується попереднє слово шифротексту. Це швидкий алгоритм. WAKE працює в режимі CFB (попередній блок шифрованого тексту шифрується ще раз, і для отримання чергового блоку шифрованого тексту результат додається поразрядно за модулем 2 з блоком вихідного тексту), для генерації наступного слова ключа використовується попереднє слово шифротекста. Алгоритм також використовує S-блок з 256 32-бітових значень. Цей S-блок володіє однією особливою властивістю: старший байт всіх елементів являє собою перестановку всіх можливих байтів, а 3 молодших байти випадкові [5].
Найціннішою якістю WAKE є його швидкість. WAKE чутливий до розкриття обраним відкритим текстом або вибраним шифротекст.
ORYX — потоковий шифр який передбачався для засекречування даних, що передавались в американських мережах стільникового мобільного зв’язку. Автор даного криптоалгоритму залишається не відомим, а сама схема деякий час трималась в секреті.
До складу генератора ПВП ORYX входять три 32-розрядних LFSR А, В і С, а також 8-розрядний S-блок з фіксованою таблицею замін розмірністю 8×256. Ключем є початкове заповнення трьох регістрів LFSR. У експортному виконанні застосовується алгоритм розгортання ключа, який скорочує ключове простір до розміру, легко перевіряється при пошуку ключа повним перебором [6].
Нехай — вміст комірки таблиці замін S-блоку з адресою i,, і — старші байти LFSR А, В і С відповідно. Кожен байт гами у формується таким чином. Алгоритм ORYX [8]:
такт роботи LFSR С;
такт роботи LFSR А, при цьому використовується один з двох різних многочленів залежно від значення біта LFSR С;
такт або два такту роботи LFSR В залежно від значення іншого біта LFSR С;
Обчислення гами:
Криптоаналіз показав, що для розкриття криптоалгоритма потрібно 24 байта відкритого тексту і перебір 216 варіантів початкового заповнення LFSR[5].
COS (Crossing Over Systems) — це сімейство поточних шифрів, розроблене французькими криптографами[7]. Шифри будуються з використанням нелінійних регістрів зсуву і булевих функцій. Розрядність внутрішнього секретного ключа дорівнює 256 біт, а зовнішній ключ може мати розмір 128, 192 і 256 біт. Використовується також несекретний сеансовий ключ довжиною 32 біта.
Будь-який шифр COS складається з n нелінійних регістрів зсуву довжини L і позначається COS (n, L). Шифр оперує блоками розміром 2(n — 1) L бітів.
Аналіз алгоритму SQ1-R
У курсовому проекті буде використано алгоритм SQ1-R. Це — синхронний потоковий криптоалгоритм який є подальшим розвитком підходу, вперше реалізованого в RC4. Основними принципами розробки шифру були: мінімальне використання пам’яті, стійкість до атак, простота реалізації та оптимізація під 64-розрядні процесори. SQ1-R має досить просту структуру і може бути використаний для заміни алгоритмів потокового шифрування, будучи швидким і стійким шифром. SQ1-R використовує S-блоки це — засаднича складова шифрування з симетричними ключами, яка виконує підстановки. По суті це звичайна таблиця підстановки.
Математично даний шифр може бути описаний наступним чином:
.
.
Де — це внутрішній стан шифру, — стан лічильника, SUDF — функція оновлення стану шифру, OGF — функція виходу.