Рекомендуємо, 2024

Вибір Редакції

Різниця між блоковим шифром і потоковим шифром

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

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

Діаграма порівняння

Основа для порівнянняБлоковий шифрШифр потоку
Основний
Перетворює звичайний текст, приймаючи його блок за один раз.
Перетворює текст, приймаючи один байт звичайного тексту одночасно.
Складність
Простий дизайн
Комплекс порівняно
Кількість використаних бітів
64 біта або більше
8 біт
Плутанина і дифузія
Використовує як плутанину, так і дифузіюПокладається тільки на плутанину
Використовуються режими алгоритму
ЄЦБ (електронна книга коду)
CBC (Cipher Block Chaining)
CFB (Cipher Feedback)
OFB (вихідна зворотний зв'язок)
Оборотність
Скасування зашифрованого тексту важке.
Він використовує XOR для шифрування, який можна легко змінити на звичайний текст.
Реалізація
Feistel Cipher
Vernam Cipher

Визначення блокового шифру

Блок Cipher приймає повідомлення і розбиває його на фіксований розмір блоків і перетворює один блок повідомлення в одну мить. Наприклад, ми маємо повідомлення у простому тексті “STREET_BY_STREET”, яке потрібно зашифрувати. Використовуючи шифр bock, "STREET" потрібно спочатку зашифрувати, а потім "_BY_" і нарешті "STREET".
На практиці спілкування відбувається лише в бітах. Таким чином, STREET фактично означає бінарний еквівалент ASCII символу STREET. Згодом будь-який алгоритм шифрує їх; результуючі біти перетворюються назад в їх ASCII еквівалент.

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

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

Визначення потокового шифру

Поточний шифр зазвичай шифрує один байт повідомлення в той момент замість використання блоків. Давайте приведемо приклад, припустимо, що вихідне повідомлення (звичайний текст) - "блакитне небо" в ASCII (тобто текстовий формат). Коли ви перетворюєте ці ASCII в еквівалентні двійкові значення, це дасть вихід у формі 0 і 1. Нехай вона буде перекладена в 010111001.

Для шифрування і дешифрування використовується генератор псевдовипадкових бітів, в якому завантажуються ключ і звичайний текст. Генератор псевдовипадкових бітів створює потік 8-бітових чисел, які, здавалося б, є випадковими, називаються keystream . Нехай вхідний ключ 100101011. Тепер ключ і відкритий текст XORed. Логіку XOR зрозуміло просто.
XOR виробляє вихід 1, коли один вхідний сигнал 0, а другий - 1. Вихідний сигнал 0, якщо обидва входи 0 або обидва входи 1.

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

Основні відмінності між блоковим шифром і потоковим шифром

  1. Техніка блочного шифрування передбачає шифрування одного блоку тексту одночасно, тобто окремо. Аналогічно, розшифруйте текст, прийнявши один блок за іншим. На відміну від цього, технологія Stream шифру передбачає шифрування і дешифрування одного байта тексту за один раз.
  2. Блоковий шифр використовує як плутанину, так і дифузію, в той час як потоковий шифр покладається тільки на плутанину.
  3. Звичайний розмір блоку може бути 64 або 128 біт у блочному шифрі. На відміну від цього, 1 байт (8 біт) за один раз перетворюється в потоковий шифр.
  4. Блоковий шифр використовує режими алгоритму ЕЦБ (Електронна книга коду) і CBC (Cipher Block Chaining) . Навпаки, потік Stream використовує режими CFB (Cipher Feedback) і OFB (Output Feedback) .
  5. Поточний шифр використовує функцію XOR для перетворення звичайного тексту в текст шифру, що є причиною того, чому легко змінити біти XORed. В той час як блоковий шифр не використовує XOR для цього.
  6. Блоковий шифр використовує той самий ключ для шифрування кожного блоку, в той час як потоковий шифр використовує інший ключ для кожного байта.

Висновок:

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

Top