Основната разлика между блоков шифър и поточен шифър е, че блоковият шифър криптира и декриптира блок от текста в даден момент. От друга страна, поточно шифроване криптира и декриптира текста, като взема един байт от текста в даден момент.
Сравнителна таблица
Основа за сравнение | Блоков шифър | Поточен шифър |
---|---|---|
Основен | Преобразува обикновения текст, като взима неговия блок в даден момент. | Преобразува текста, като взема един байт от обикновения текст едновременно. |
Сложност | Прост дизайн | Комплекс сравнително |
Брой използвани битове | 64 бита или повече | 8 бита |
Объркване и дифузия | Използва както объркване, така и дифузия | Разчита се само на объркване |
Използвани са алгоритми | ЕЦБ (Електронна книга с кодове) CBC (Cipher Block Chaining) | CFB (обратна връзка за шифрите) OFB (Обратна връзка за изход) |
реверсивност | Обръщането на криптиран текст е трудно. | Той използва XOR за криптиране, което може лесно да се обърне към обикновения текст. |
изпълнение | Feistel Cipher | Vernam Cipher |
Дефиниция на блоков шифър
Block Cipher отнема съобщение и го разбива на фиксиран размер на блокове и превръща един блок от съобщението в един миг. Например, имаме съобщение в обикновен текст „STREET_BY_STREET“, което трябва да бъде криптирано. Използвайки bock шифър, "STREET" трябва първо да бъде криптиран, последван от "_BY_" и най-накрая "STREET".
В действителност комуникацията се осъществява само в бита. Следователно STREET всъщност означава двоичен еквивалент на ASCII символа на STREET. Впоследствие всеки алгоритъм ги криптира; получените битове се трансформират обратно в техния ASCII еквивалент.
Очевиден проблем при използването на блоковите шифри е повтарящ се текст, за който се генерира същият шифър. Следователно, това би дало намек за криптоаналитик, което го прави по-лесно да разберат повтарящите се низове от обикновен текст. В резултат на това той може да разкрие цялото съобщение.
За да се преодолее този проблем , се използва режимът на веригиране . В тази техника предходният блок от шифров текст се смесва с текущия блок, така че за неясен текст на шифъра, това избягва повтарящите се шаблони на блокове със същото съдържание.
Дефиниция на Stream Cipher
Stream Cipher обикновено криптира един байт на съобщението в този момент вместо да използва блокове. Да вземем за пример, да предположим , че оригиналното съобщение (обикновен текст) е „синьо небе“ в ASCII (т.е. текстов формат). Когато преобразувате тези ASCII в еквивалентни двоични стойности, той ще даде на изхода в 0 и 1 форма. Нека бъде преведен на 010111001.
За криптиране и декриптиране се използва генератор на псевдослучайни битове, в който се зареждат ключ и обикновен текст. Генераторът на псевдослучайни битове създава поток от 8-битови числа, които на пръв поглед са случайни, известни като keystream . Нека входният ключ е 100101011. Сега ключът и откритият текст са XORed. Логиката на XOR е лесна за разбиране.
XOR произвежда изход 1, когато един вход е 0, а другият е 1. Изходът е 0, ако или двата входа са 0 или и двата входа са 1.
Объркването е метод, който гарантира, че шифров текст не дава представа за оригиналния обикновен текст.
Дифузията е стратегия, използвана за увеличаване на излишъка на обикновения текст, като го разпространява по редове и колони.
Ключови различия между блоковата шифър и поточния код
- Техниката на блоково шифриране включва криптиране на един блок от текст едновременно. По същия начин декриптирайте текста, като вземете един блок след друг. За разлика от тях, технологията Stream шифър включва криптиране и декриптиране на един байт от текста в даден момент.
- Блокираният шифър използва както объркване, така и дифузия, докато потокът се основава само на объркване.
- Обичайният размер на блока може да бъде 64 или 128 бита в блоковия шифър. В противовес на 1 байт (8 бита) в даден момент се преобразува в поток шифър.
- Блокираният шифър използва режимите на алгоритъма на ЕЦБ (Електронна кодова книга) и CBC (Cipher Block Chaining) . Напротив, Stream cipher използва режимите на алгоритъма CFB (Cipher Feedback) и OFB (Output Feedback) .
- Stream cipher използва функцията XOR за преобразуване на обикновен текст в шифров текст, което е причината, поради която е лесно да се обърнат бита XORed. Докато блок шифър не използва XOR за това.
- Блокираният шифър използва един и същ ключ за шифроване на всеки блок, а поточният шифър използва различен ключ за всеки байт.
Заключение:
Block Cipher и Stream Cipher се различават по начина, по който обикновен текст се шифрова и декриптира. Идеята зад блоковия шифър е да се раздели на обикновен текст на блокове, по-нататъшно криптиране на тези блокове. Докато поток шифър конвертира обикновен текст малко по малко, подобно на поток.