Введение

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

Классификация

Существует множество программных продуктов, обеспечивающих шифрование. Программное шифрование использует шифр для сокрытия содержимого в зашифрованном тексте. Один из способов классификации такого программного обеспечения – тип используемого шифра. Шифры можно разделить на две категории: шифры с открытым ключом (также известные как асимметричные шифры) и шифры с симметричным ключом. Программное обеспечение для шифрования может быть основано как на шифровании с открытым ключом, так и на шифровании с симметричным ключом. Другой способ классификации программного шифрования – категоризация по его назначению. При таком подходе программное шифрование можно классифицировать на программы, шифрующие "данные в процессе передачи" и программы, шифрующие "данные в состоянии покоя". Данные в процессе передачи обычно используют шифры с открытым ключом, а данные в состоянии покоя – шифры с симметричным ключом. Шифры с симметричным ключом можно дополнительно разделить на потоковые шифры и блочные шифры. Потоковые шифры обычно шифруют открытый текст по одному биту или байту, и чаще всего используются для шифрования коммуникаций в реальном времени, таких как аудио- и видеоинформация. Ключ используется для установки начального состояния генератора ключевого потока, а выход этого генератора используется для шифрования открытого текста. Алгоритмы блочного шифрования разбивают открытый текст на блоки фиксированного размера и шифруют их по одному. Например, AES обрабатывает блоки по 16 байт, в то время как его предшественник DES шифровал блоки по восемь байт. Существует также известный случай использования PKI для шифрования как данных в процессе передачи, так и данных в состоянии покоя.

Передаваемые данные

Транзитные данные – это данные, передаваемые по компьютерной сети. Когда данные находятся в пути между двумя конечными точками, любая конфиденциальная информация может быть уязвима. Полезные данные (конфиденциальная информация) могут быть зашифрованы для обеспечения конфиденциальности, целостности и подлинности. Часто транзитные данные передаются между двумя сторонами, которые не знакомы друг с другом, например, при посещении веб-сайта. Для установления доверительных отношений и безопасного обмена ключом шифрования, необходимым для защиты обмениваемой информации, был разработан комплекс ролей, политик и процедур – это известная инфраструктура открытых ключей, или PKI. После установления PKI безопасного соединения между конечными точками может быть использован симметричный ключ. Симметричный ключ предпочтительнее асимметричных пар (открытого и закрытого ключей), поскольку симметричное шифрование значительно эффективнее (требует меньше вычислительных ресурсов) асимметричного шифрования. Существуют различные методы шифрования транзитных данных, такие как IPsec, SCP, SFTP, SSH, OpenPGP и HTTPS.

Данные в состоянии покоя

Данные в состоянии покоя — это данные, сохраненные в постоянном хранилище. Данные в состоянии покоя обычно шифруются с использованием симметричного ключа. Шифрование может применяться на различных уровнях стека хранения. Например, шифрование может быть настроено на уровне диска, на разделе диска, на томе (комбинации дисков или разделов), на уровне файловой системы или в приложениях пользовательского пространства, таких как базы данных или другие приложения, работающие в хост-операционной системе. При полном шифровании диска шифруется весь диск (за исключением битов, необходимых для загрузки или доступа к диску при отсутствии незашифрованного загрузочного/презагрузочного раздела). Поскольку диски могут быть разделены на несколько разделов, шифрование разделов позволяет шифровать отдельные разделы диска. Тома, созданные путем объединения двух или более разделов, могут быть зашифрованы с помощью шифрования томов. Файловые системы, состоящие из одного или нескольких разделов, могут быть зашифрованы с использованием шифрования на уровне файловой системы. Каталоги считаются зашифрованными, если зашифрованы файлы, содержащиеся в них. Шифрование файлов шифрует отдельный файл. Шифрование баз данных применяется к данным, предназначенным для хранения, принимая незашифрованную информацию и записывая ее в постоянное хранилище только после шифрования. Шифрование на уровне устройства, термин, который может быть не совсем точным и включает в себя ленточные накопители с поддержкой шифрования, может использоваться для переноса задач шифрования с центрального процессора.

Транзит данных в состоянии покоя

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

Выступление

Производительность программного обеспечения для шифрования измеряется относительно скорости центрального процессора. Таким образом, циклы на байт (иногда сокращенно cpb) – единица измерения, показывающая количество тактовых циклов, необходимых микропроцессору для обработки одного байта данных, – является стандартной единицей измерения. Циклы на байт служат частичным индикатором реальной производительности криптографических функций. Приложения могут предлагать собственное шифрование, называемое нативным, включая приложения баз данных, такие как Microsoft SQL, Oracle и MongoDB, и обычно используют циклы процессора напрямую для повышения производительности. Это часто снижает привлекательность шифрования для предприятий, стремящихся к повышению безопасности и упрощению соблюдения нормативных требований, поскольку влияет на скорость и масштабируемость обработки данных как внутри организаций, так и при взаимодействии с партнерами.