Шифрующее программное обеспечение

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

Опасность

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

Целью шифрования является предотвращение восстановления исходной информации третьими лицами. Это особенно важно для таких данных, как номера кредитных карт.

Выборы метода шифрования

Существует много алгоритмов шифрования. Наиболее популярные варианты были представлены в National Institute of Standards and Technology (NIST) для Advanced Encryption Standard (AES) конкурса. Победитель, Rijndael, получил 86 голосов, Serpent получил 59 голосов, Twofish 31 голос, RC6 23 голоса и MARS 13 голосов. NIST выбрал Rijndael в качестве образца. Serpent и Rijndael, на самом деле похожи, основная разница в том, что Rijndael более быстрый, а Serpent более безопасный.

Выбор шифрования

Есть несколько факторов, влияющих на выбор алгоритма шифрования, к этим факторам относятся: скорость и безопасность. Самым простым способом шифрования является XOR операция, с постоянным значением k, из каждого байта обычного текста b, для получения шифров значения c.

b XOR k = c

Шифры можно разделить на два основных типа: асимметричные ключи шифрования и симметричные ключи шифрования.

Асимметричные ключи — являются ключевой парой, поскольку состоят из двух ключей: закрытого и открытого. Системы асимметричных ключей основаны на алгоритмах, которые, являются «односторонними» операциями. То есть, шифрование с одним из членов пары ключей можно восстановить (расшифровать) только с помощью другого члена пары. Кроме того, один из членов пары (открытый ключ) не может быть использован для определения другого (закрытого ключа). Такие системы используются для обмена ключами (для последующего использования симметричных ключей шифра), цифровых подписей и тому подобное.

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

Потоковые шифры обычно шифруют текст небольшого размера (бит или байт) за один раз и чаще всего используется для шифрования связи в реальном времени (аудио и видео данных). Этот ключ используется, чтобы установить начальное состояние генератора ключевого потока, код генератора — чтобы зашифровать обычный текст.

Алгоритмы блочного шифра за раз могут зашифровать только один блок байтов с текстом. Продвинутый алгоритм Encryption Standard (AES — производное от алгоритма шифрования Rijndael) представляет собой блочный шифр, который обрабатывает 16 байт за один раз, в то время как его предшественник, Data Encryption Standard algorithm (DES) шифровал блоки из восьми байт.

Распространенной ошибкой любителей шифрования является предположение того, что если метод секретный, то шифр является безопасным. Обычно это не так. Многие алгоритмы шифрования показывают ключ довольно легко, когда выявляется строка одинаковых байт (например, нулей).

Метод будет хорош тем, что не являясь секретным, он будет оставаться безопасным.

Приложения

Шифрование может быть применено к данным разными способами. Общие категории:

  • Disk encryption software (англ.)
  • File/folder encryption (англ.)
  • Database encryption (англ.)
  • Communication encryption software (англ.)

Сетевые транспортные инструменты шифрования

  • Generic (англ.)
  • IPSec based (англ.)

Инструменты шифрования

  • biternal Enigma Encryption (англ.)

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