В чем разница между потоковыми и блочными шифрами?

click fraud protection
...

Потоковые шифры хорошо подходят для аппаратных приложений реального времени.

Шифр - это набор математических правил или алгоритмов, используемых для преобразования читаемого текста или открытого текста в нечитаемый текст или зашифрованный текст. Принципиальное различие между потоковыми шифрами и блочными шифрами заключается в том, что потоковые шифры работают с потоками текста, по одному или одному байту за раз, а блочные шифры работают с блоками текста.

Потоковый шифр

Основная идея потокового шифра состоит в том, чтобы разделить текст на небольшие блоки, длиной в один или один байт, и закодировать каждый блок в зависимости от множества предыдущих блоков. Потоковые шифры используют разные ключи шифрования - значение, которое должно быть введено в алгоритм - для каждого бита или байта, поэтому один и тот же бит или байт создает разный зашифрованный текст при каждом шифровании. Некоторые потоковые шифры используют генератор потока ключей, который производит случайный или почти случайный поток битов. Шифр выполняет логическую операцию, известную как исключающее ИЛИ, между битами в ключевом потоке и битами в открытом тексте для создания зашифрованного текста.

Видео дня

Блочный шифр

Основная идея блочного шифра состоит в том, чтобы разделить текст на относительно большие блоки, обычно длиной 64 или 128 бит, и кодировать каждый блок отдельно. Для каждого блока используется один и тот же ключ шифрования, и именно ключ шифрования определяет порядок, в котором замещение, транспортировка и другие математические функции выполняются на каждом блокировать. Сильные алгоритмы означают, что реконструировать шифр или определить, какие функции были выполнены на каждом блоке и в каком порядке, практически невозможно.

Распространение и путаница

Блочные шифры используют методы, известные как путаница и распространение, для шифрования открытого текста в зашифрованный текст. Идея путаницы состоит в том, чтобы сделать взаимосвязь между ключом шифрования и зашифрованным текстом как можно более сложной. В идеале каждый символ в ключе шифрования должен влиять на каждый символ зашифрованного текста. Напротив, распространение распространяет влияние каждого символа в открытом тексте на несколько символов в зашифрованном тексте, делая шифр менее уязвимым для статистических атак.

Плюсы и минусы

Тот факт, что потоковые шифры шифруют и дешифруют данные по одному биту, означает, что они особенно хорошо подходят для аппаратных приложений реального времени, таких как аудио и видео приложения. Потоковые шифры слабее и менее эффективны, чем блочные шифры, когда дело касается программных приложений, и они реже используются в этой сфере. Блочные шифры легче реализовать в программном обеспечении, поскольку они шифруют данные блоками длины, уже используемой программным обеспечением. Ключ шифрования часто имеет ту же длину, что и размер блока.