Parallel module for cryptographic file protection
Parallel module for cryptographic file protection
Abstract
This article examines the development of a parallel module for cryptographic protection of files. The main objective of the research is to improve the performance and security level of data processing systems by distributing the computational load among several cores or nodes. The work analyses existing solutions and algorithms of cryptographic protection such as AES, TripleDES and Twofish. Particular attention is paid to the implementation of parallel computing for data encryption and decryption, which allows to significantly accelerate the information processing. The testing methodology included planning and development of test scenarios, conducting tests on real data and analysing the obtained results. The testing was conducted on a hardware and software platform including Intel Core i5 10400 processor, 4 AMD Radeon R7 Performance Series R748G2606U2S-U DDR4 – 8 GB 2666 RAM modules and Samsung SSD 860 EVO 500GB M.2 data storage. The results show that parallel encryption and decryption perform on average 2.81 times faster than serial encryption and parallel decryption performs 2.57 times faster. Performance and security analysis confirms that the developed module provides reliable cryptographic protection and meets modern requirements to data processing systems. The use of parallel computing in cryptography opens up new opportunities for increasing the efficiency of data handling and ensuring its security.
1. Введение
Криптографическая защита информации является одной из самых важных задач в современном мире, где информация стала важнейшим ресурсом. Благодаря разработке параллельного модуля для криптографической защиты файлов можно значительно улучшить производительность и обеспечить высокий уровень безопасности данных. Это особенно важно в современном мире, где утечка информации может привести к серьезным последствиям как для частных лиц, так и для организаций и государств.
Применение параллельных вычислений для шифрования и дешифрования файлов позволит эффективно использовать ресурсы многопроцессорных и многоядерных систем, что приведет к увеличению скорости работы с данными. Это также повысит уровень защиты информации, так как параллельные алгоритмы криптографической защиты могут быть более надежными и сложными для взлома. Таким образом, разработка параллельного модуля для криптографической защиты файлов является важным шагом в обеспечении безопасности информации и повышении производительности систем обработки данных.
Криптография – наука о методах защиты информации от несанкционированного доступа. С ее помощью защищают данные, используя различные методы шифрования. История криптографии насчитывает тысячелетия, начиная с простых методов замены символов и перестановки букв и заканчивая современными алгоритмами, такими как AES и RSA. Развитие криптографии тесно связано с развитием человеческой цивилизации и с появлением новых технологий, таких как компьютеры и информационные технологии. Криптография остается актуальной и важной для обеспечения безопасности данных в современном мире.
Современные методы криптографической защиты файлов играют важную роль в обеспечении безопасности информации. Основные методы включают в себя симметричное и асимметричное шифрование. Симметричное шифрование использует один ключ для шифрования и расшифрования, например, AES . Асимметричное шифрование использует пару ключей: открытый для шифрования и закрытый для расшифровки, например, RSA. Также применяется гибридное шифрование, объединяющее оба метода.
Хэширование является еще одним важным методом, основанным на хэш-функциях, которые преобразуют данные в фиксированную строку. Это позволяет проверять целостность файлов и обнаруживать подделки, а также использоваться для хранения паролей и проверки подлинности. Различные хэш-функции, такие как MD5 , SHA-1 и SHA-256 , имеют уникальные особенности и применения в зависимости от требований безопасности.
Цифровые подписи используются для подтверждения подлинности и целостности файлов путем хеширования и шифрования. Они обеспечивают непротиворечивость информации и защиту от изменений в процессе передачи.
Контейнеры с защищенным доступом позволяют шифровать и ограничивать доступ к конфиденциальной информации, обеспечивая безопасность данных. Один из распространенных методов защиты контейнеров – симметричное шифрование с использованием одного ключа для шифрования и расшифрования данных.
Параллельные вычисления позволяют выполнять операции над данными одновременно, используя множество вычислительных ресурсов. Это ускоряет обработку данных и выполнение сложных вычислительных задач. Важно разделить задачу на подзадачи, распределить их между вычислительными узлами или ядрами процессора. Параллельные вычисления могут быть использованы для ускорения шифрования файлов. Для эффективного управления задачами используются параллельные программные библиотеки.
Однако возникают сложности с синхронизацией данных и доступом к общим ресурсам, для решения которых применяются методы синхронизации. Важно разработать эффективные алгоритмы распределения нагрузки между вычислительными узлами, учитывая особенности вычислительных ресурсов и требования к производительности. Применение параллельных вычислений требует анализа задачи и выбора подходящих методов и инструментов.
В современном мире, где информация является важнейшим ресурсом, обеспечение ее безопасности становится первостепенной задачей. Разработка параллельного модуля для криптографической защиты файлов позволяет значительно улучшить производительность и надежность систем обработки данных. Использование параллельных вычислений в криптографии открывает новые возможности для защиты информации и повышения эффективности работы с данными.
2. Структура разработанного модуля
Разработка параллельного модуля для криптографической защиты файлов с использованием таких алгоритмов, как AES, TripleDES и Twofish , позволяет существенно повысить производительность и уровень безопасности систем обработки данных.
AES (Advanced Encryption Standard) является симметричным алгоритмом шифрования, который обеспечивает высокий уровень защиты и быструю обработку данных. Он работает с блоками данных размером 128 бит и поддерживает различные длины ключей (128, 192 и 256 бит). Алгоритм AES использует несколько раундов преобразований для шифрования данных, что делает его устойчивым к различным видам атак. В нашем модуле реализация AES основана на использовании режима шифрования CBC и генерации уникального вектора инициализации для каждого шифрования.
Twofish – это один из самых надежных и устойчивых к атакам алгоритмов шифрования. Он поддерживает ключи различной длины и блочные размеры данных 128 бит. Алгоритм Twofish использует преобразования Галуа и подстановки байтов для повышения стойкости к криптоанализу, что обеспечивает высокую производительность при шифровании файлов различных размеров и типов.
TripleDES является модификацией оригинального алгоритма DES (Data Encryption Standard). Он использует три последовательных прохода DES для шифрования данных, что значительно увеличивает стойкость алгоритма. Несмотря на появление более мощных алгоритмов, TripleDES остается надежным методом шифрования, обеспечивающим защиту данных на высоком уровне.
Параллельный модуль для криптографической защиты файлов, названный «ParallelEncryptionModule», предоставляет возможность параллельного шифрования и дешифрования файлов с использованием алгоритмов AES, TripleDES и Twofish. Модуль также включает модульные тесты для проверки его функциональности.
Структура модуля «ParallelEncryptionModule» обеспечивает четкое разделение компонентов и функциональности, что позволяет эффективно разрабатывать, поддерживать и тестировать систему. Основные компоненты модуля включают:
1. Algorithms: реализация алгоритмов шифрования AES, TripleDES и Twofish.
2. EncryptionManager: управление процессами шифрования и дешифрования файлов.
3. KeyManagement: управление ключами шифрования и дешифрования.
4. ParallelProcessing: механизмы параллельной обработки данных.
Интеграция параллельного модуля с файловым менеджером является ключевым аспектом его архитектуры. Файловый менеджер предоставляет удобный пользовательский интерфейс для работы с файлами и управляет операциями копирования, перемещения и удаления файлов.
Архитектура файлового менеджера построена на принципах модульности и разделения ответственности. В его структуре присутствуют следующие компоненты:
1. Commands: реализация пользовательских команд.
2. Converter: преобразование данных.
3. DB: управление базой данных.
4. Icons: иконки для отображения файлов и папок.
5. Models: модели данных файловой системы.
6. Services: дополнительные сервисы.
7. View: файлы пользовательского интерфейса.
8. ViewModels: связь моделей и представлений.
9. app.xaml: главный объект приложения.
10. readme.md: документация по файловому менеджеру.
Файловый менеджер взаимодействует с параллельным модулем для шифрования и дешифрования файлов. Пользователь выбирает файлы и ключ шифрования для зашифровки или зашифрованные файлы и ключ дешифрования для расшифровки. Параллельный модуль выполняет операции с использованием выбранного алгоритма, обеспечивая криптографическую защиту данных. Файловый менеджер предоставляет удобный интерфейс для работы с зашифрованными и расшифрованными файлами, что делает управление данными простым и эффективным.
Рисунок 1 - Диаграмма класса программного модуля
Основные элементы класса «EncryptionDialogueViewModel» включают поля, конструкторы, свойства и методы. Поля включают «private RelayCommand _encryptByPassword» для выполнения шифрования по паролю, «private RelayCommand _encryptByPublicKey» для выполнения шифрования по открытому ключу, «private bool _encryptionMode» для режима шифрования (по умолчанию включен), «private readonly File _model» для модели файла, который подлежит шифрованию, «private readonly string[] _files» для массива файлов, предназначенных для шифрования, и «private KeyStorage _selectedKey» для выбранного ключа шифрования.
Конструкторы включают «public EncryptionDialogueViewModel(File model)» для инициализации с моделью файла и «public EncryptionDialogueViewModel(string[] files)» для инициализации с массивом файлов. Свойства включают «public Visibility EncryptionByPassword { get; }» для видимости опции шифрования по паролю, «public Visibility EncryptionByPublicKey { get; }» для видимости опции шифрования по открытому ключу, «public RelayCommand EncryptByPasswordCommand { get; }» для команды шифрования по паролю, «public RelayCommand EncryptByPublicKeyCommand { get; }» для команды шифрования по открытому ключу, «public RelayCommand EncryptActionCommand { get; }» для команды выполнения шифрования, «public RelayCommand SelectKeyCommand { get; }» для команды выбора ключа, «public KeyStorage SelectedKey { get; set; }» для выбранного ключа шифрования, «public List<EncryptionAlgorithms> EncryptionAlgorithmComboBox { get; }» для списка доступных алгоритмов шифрования, «public object SelectedItem { get; set; }» для выбранного элемента (файл или ключ), «public bool DeleteFile { get; set; }» для флага удаления файла после шифрования, «public string Password { get; set; }» для пароля шифрования, и «public string RepeatedPassword { get; set; }» для подтверждения пароля.
Методы включают «private void SelectKey(object obj)» для выбора ключа, «private void Encrypt(object obj)» для выполнения шифрования, «private void EncryptByPublicKey(object obj)» для шифрования по открытому ключу, «private void EncryptByPassword(object obj)» для шифрования по паролю и «private bool IsPasswordMatch()» для проверки совпадения паролей.
Класс «EncryptionDialogueViewModel» обеспечивает функциональность для управления операциями шифрования файлов в диалоговом окне приложения. Он предоставляет команды и свойства, необходимые для взаимодействия с пользователем и выполнения различных операций шифрования. Этот класс используется в диалоговом окне шифрования файлов, позволяя пользователям выбрать метод шифрования (по паролю или открытому ключу), задать необходимые параметры (ключ или пароль), и выполнить операцию шифрования. Также он обеспечивает обработку ошибок и проверку корректности введенных данных, таких как совпадение паролей.
Диаграмма иллюстрирует структуру класса, показывая его поля, конструкторы, свойства и методы, что помогает понять внутреннюю логику и функциональность «EncryptionDialogueViewModel» в контексте приложения «ParallelEncryptionModule».
Рисунок 2 - Главное окно файлового менеджера с отображением контекстного меню шифрования и дешифрования
Рисунок 3 - Окно шифрования файла
3. Тестирование и анализ результатов
Тестирование разработанного параллельного модуля для криптографической защиты файлов проводилось с целью оценки его производительности, надежности и безопасности. Методология тестирования включала несколько этапов. На этапе планирования тестирования были определены цели и задачи тестирования, а также составлен план тестирования. Далее были разработаны тестовые случаи, представляющие собой сценарии тестирования для проверки функциональности модуля. На этапе проведения тестов тестовые сценарии были выполнены на реальных данных. Затем проведен анализ результатов, включающий сравнение полученных результатов с ожидаемыми значениями. В случае выявления дефектов проводилось их устранение и повторное тестирование.
Основные цели тестирования включали проверку функциональности, надежности, производительности и безопасности разработанного модуля.
Загрузка и отображение файлов и папок проводилось с использованием различных наборов данных. Модуль успешно загружал и корректно отображал файлы и папки, что подтверждало его функциональность и надежность.
Навигация по файловой системе была протестирована на различных структурах каталогов. Модуль обеспечивал быструю и корректную навигацию, что подтверждало удобство использования и эффективность интерфейса.
В проекте «ParallelEncryptionModule» для реализации параллельного модуля шифрования файлов использованы различные подходы для распараллеливания. Задачи шифрования и дешифрования файлов разделены на независимые потоки выполнения. Каждый поток отвечает за обработку определенного участка данных или выполнение конкретной операции, что позволяет использовать преимущества многопоточности и распараллеливать вычисления, увеличивая производительность и эффективность модуля. Для предотвращения возможных конфликтов и гонок при доступе к общим ресурсам, таким как файлы или память, применяются механизмы синхронизации, такие как мьютексы, семафоры или блокировки, что гарантирует корректное взаимодействие между потоками и защиту общих ресурсов от некорректного доступа.
Данные и задачи распределяются между потоками таким образом, чтобы сбалансировать нагрузку и обеспечить равномерное использование ресурсов. Например, при шифровании нескольких файлов они разделяются между потоками, чтобы каждый поток обрабатывал свой блок данных. Используются механизмы управления потоками и пулом потоков для эффективной работы с потоками, что позволяет контролировать создание, выполнение и завершение потоков, а также повторное использование потоков для минимизации накладных расходов на создание и уничтожение потоков. При параллельной обработке данных предусмотрена обработка ошибок и исключений. В случае возникновения ошибок, таких как неправильные данные или ошибки в работе алгоритмов шифрования, они корректно обрабатываются и предоставляется информация об ошибке пользователю.
Рисунок 4 - Параллельные процессы шифрования и дешифрования
Тестирование шифрования и дешифрования файлов проводилось с использованием алгоритмов AES, TripleDES и Twofish. Результаты показали высокую производительность и надежность модуля. Параллельное шифрование и дешифрование работало в среднем в 2.81 раза быстрее, чем последовательное шифрование, а параллельное дешифрование – в 2.57 раза быстрее.
Функция удаления файлов была протестирована на различных наборах данных. Модуль успешно удалял файлы, что подтверждало его функциональность и удобство использования.
Для сравнения разработанного модуля с существующими решениями были рассмотрены несколько популярных программ для шифрования файлов. Модуль продемонстрировал конкурентоспособные характеристики по следующим критериям: функциональность, удобство использования, безопасность и производительность. Модуль обладает всеми необходимыми функциональными возможностями для шифрования и дешифрования файлов, а также расширенными функциями. Он имеет интуитивно понятный интерфейс и удобные средства навигации. Модуль использует современные алгоритмы шифрования и методы защиты ключей. Он обеспечивает высокую производительность при шифровании и дешифровании файлов.
Тестирование проводилось на аппаратно-программной платформе, включающей процессор Intel Core i5 10400 , 4 модуля оперативной памяти AMD Radeon R7 Performance Series R748G2606U2S-U DDR4 – 8 ГБ 2666 и хранилище данных Samsung SSD 860 EVO 500GB M.2.
Анализ производительности и безопасности показал, что время выполнения последовательного и параллельного шифрования и дешифрования файлов различного размера значительно улучшилось при использовании параллельного модуля. Приложение эффективно использовало системные ресурсы при выполнении операций шифрования и дешифрования пяти файлов объемом 1 ГБ каждый, что подтверждало эффективность работы параллельных операций. Оценка стойкости алгоритмов шифрования показала, что используемые алгоритмы обладают высокой стойкостью и не содержат известных уязвимостей. Это гарантировало надежную защиту шифрованных данных от несанкционированного доступа и восстановления исходных данных без соответствующего ключа.
Результаты анализа производительности и безопасности подтверждают, что разработанный модуль обладает высокой производительностью и надежной криптографической защитой, соответствуя требованиям к современным системам обработки данных.
4. Заключение
В данной статье была рассмотрена разработка параллельного модуля для криптографической защиты файлов с использованием алгоритмов AES, TripleDES и Twofish. Проведенные исследования и тестирования подтвердили высокую производительность и надежность разработанного модуля. Использование параллельных вычислений позволяет значительно ускорить процесс шифрования и дешифрования данных, что особенно актуально в условиях современного мира, где защита информации становится первостепенной задачей.
Разработанный модуль успешно интегрируется с файловым менеджером, обеспечивая удобный пользовательский интерфейс и эффективное взаимодействие с файлами. Он предоставляет все необходимые функциональные возможности для шифрования и дешифрования файлов, а также дополнительные функции для удобства использования и управления ключами.
Анализ производительности и безопасности показал, что параллельное шифрование и дешифрование работают в среднем в 2.81 раза быстрее, чем последовательное шифрование, а параллельное дешифрование – в 2.57 раза быстрее. Это подтверждает эффективность использования параллельных вычислений в криптографии. Тестирование проводилось на современном аппаратно-программном обеспечении, что также свидетельствует о применимости модуля в реальных условиях.
Перспективы дальнейшего развития включают интеграцию дополнительных алгоритмов шифрования и оптимизацию существующих для еще большей производительности и надежности. Также возможно расширение функциональности модуля, включая разработку новых методов управления ключами и улучшение интерфейса пользователя. Продолжение исследований в области параллельных вычислений и их применения в криптографии позволит создать еще более эффективные и безопасные системы для защиты данных в будущем.