Каква е разликата между криптирането на потока и блоковото криптиране?

Криптирането на потока е добро за хардуерните приложения в реално време.

Криптиране на потока

Основната идея на шифъра за потока е да разделим текста на малки блокове, един бит или един байт дълъг и да кодираме всеки блок в зависимост от много предишни блокове. Криптирането на потока използва различен ключ за кодиране, стойност, която трябва да бъде подадена в алгоритъма за всеки бит или байт, така че да се създава различен кодиран текст всеки път, когато се кодира. Някои шифри за потоци използват генератор на ключови потоци, който произвежда bitstream случайно или почти случайно. Шифроването извършва Boolean операция, известна като изключителна OR, между битовете в потока на ключовете и битовете в обикновен текст, за да се получи криптиран текст.

Блокиране на шифроването

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

Дифузия и объркване

Блокирането на криптиране използва техники, известни като объркване и дифузия, за да превърне обикновения текст в криптиран текст. Идеята зад объркването е да се направи връзката между криптиращия ключ и обикновения текст колкото е възможно по-сложна. В идеалния случай всеки знак на криптиращия ключ трябва да окаже влияние върху всеки знак на кодирания текст. Обратно, дифузията разширява влиянието на всеки знак в обикновен текст върху няколко знака в шифровия текст, което прави кодирането по-малко чувствителен към статистически атаки.

Плюсове и минуси

Фактът, че криптирането на потоци криптира и дешифрира информацията едно по едно, означава, че те са особено приспособими към хардуерни приложения в реално време, като аудио и видео приложения. Криптирането на потока е по-слабо и по-малко ефективно от блокираното криптиране, когато става дума за софтуерни приложения и се използва по-рядко в тази област. Блокирането на шифроването е по-лесно за внедряване в софтуера, защото криптира информацията в дължина на блуса, която софтуерът вече използва. Ключът за кодиране често има същата дължина като размера на блока.