Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Алгоритми створення ланцюжків




Перше завдання, з яким ми зіткнемося при шифруванні даних криптоалгоритмом, – це дані з довжиною, нерівній довжині 1 блоку криптоалгоритму. Ця ситуація матиме місце практично завжди.

Перше питання:

– Що можна зробити, якщо ми хочемо зашифрувати 24 байти тексту, якщо використовується криптоалгоритм з довжиною блоку 8 байт?

Послідовно зашифрувати три рази по 8 байт і скласти їх у вихідний файл так, як вони лежали в початковому.

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

Друге питання:

– А що коли даних не 24, а 21 байт? Не шифрувати останні 5 байт або чимось заповнювати ще 3 байти, – а потім при дешифруванні їх викидати.

Перший варіант взагалі нікуди не годиться, а другий застосовується, але чим заповнювати?

Для вирішення цих проблем і були введені в криптосистеми алгоритми створення ланцюжків (англ. chaining modes). Найпростіший метод ми вже в принципі описали. Це метод ECB (Electronic Code Book). Шифрований файл тимчасово розділяється на блоки, рівні блокам алгоритму, кожен з них шифрується незалежно, а потім із зашифрованих пакетів даних компонується в тій же послідовності файл, який віднині надійно захищений криптоалгоритмом. Назву алгоритм отримав через те, що через свою простоту він широко застосовувався в простих портативних пристроях для шифрування – електронних шифрокнижках. Схема даного методу наведена на рис. 4.1.


Рисунок 4.1 - Метод ECB

 

 

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

Вказаним вище недоліком цієї схеми є те, що при повторі у вихідному тексті однакових символів протягом більш, ніж 2*N байт (де N – розмір блоку криптоалгоритму), у вихідному файлі будуть присутні однакові зашифровані блоки. Тому, для "потужнішого" захисту великих пакетів інформації за допомогою блокових шифрів застосовуються декілька оборотних схем "створення ланцюжків". Всі вони майже рівнозначні за криптостійкістю, кожна має деякі переваги і недоліки, що залежать від вигляду вихідного тексту.

Всі схеми створення ланцюжків засновані на ідеї залежності результуючого зашифрованого блоку від попередніх, або від позиції його у вихідному файлі. Це досягається за допомогою блоку "пам'яті" – пакету інформації довжиною рівною довжині блоку алгоритму. Блок пам'яті (до нього застосовують термін IV –англ. Initial Vector) обчислюється за певним принципом зі всіх блоків, що вже пройшли шифрування, а потім накладається за допомогою якої-небудь оборотної функції (зазвичай XOR) на оброблюваний текст на одній із стадій шифрування. В процесі розшифровування на приймальній стороні операція створення IV повторюється на основі прийнятого і розшифрованого тексту, внаслідок чого алгоритми створення ланцюжків повністю оборотні.

Два найбільш поширені алгоритми створення ланцюжків – це CBC і CFB. Їх структура приведена на рис. 4.2 і 4.3 відповідно. Метод CBC отримав назву від англійської абревіатури Cipher Block Chaining – об'єднання в ланцюжок блоків шифру, а метод CFB – від Cipher FeedBack – зворотний зв'язок за шифроблоком.

Рисунок 4.2 - Метод CBC

 

Рисунок 4.3 - метод CFB

 

Ще один метод OFB (англ. Output FeedBack – зворотний зв'язок за виходом) має дещо іншу структуру (вона зображена на рис. 4.4): у ньому значення, яке накладається на шифрований блок, не залежить від попередніх блоків, а лише від позиції шифрованого блоку (у цьому сенсі він повністю відповідає скремблерам), і через це він не поширює перешкоди на подальші блоки. Вочевидь, що всі алгоритми створення ланцюжків однозначно відновлювальні.


Рисунок 4.4 - метод OFB

Таблиця 4.1 - Порівняння характеристик методів створення ланцюжків

Метод Шифрування блоку залежить від Спотворення одного біта при передачі Чи кодується некратне блоку число байт без доповнення? На вихід криптосистеми поступає
ECB   поточного блоку псує весь поточний блок ні вихід криптоалгоритму
CBC   всіх попередніх блоків псує весь поточний і все подальші блоки ні вихід криптоалгоритму
CFB   всіх попередніх блоків псує один біт поточного блоку і всі подальші блоки так XOR маска з вихідним текстом
OFB   позиції блоку у файлі псує лише один біт поточного блоку так XOR маска з вихідним текстом
Поделиться:





Читайте также:

Актуальність створення програмно-методичного комплексу
Алгоритми арифметичних операцій над цілими невід’ємними числами у десятковій системі числення.
Алгоритми пошуку інформації
Алгоритмизация и программирование. Технологии программирования. Языки программирования высокого уровня. 1 страница
Алгоритмизация и программирование. Технологии программирования. Языки программирования высокого уровня. 2 страница
Алгоритмизация и программирование. Технологии программирования. Языки программирования высокого уровня. 3 страница
Алгоритмизация и программирование. Технологии программирования. Языки программирования высокого уровня. 4 страница
Алгоритмизация и программирование. Технологии программирования. Языки программирования высокого уровня. 5 страница
Алгоритмизация и программирование. Технологии программирования. Языки программирования высокого уровня. 6 страница






Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...