Тема: Разработка формата файлового контейнера для безопасного хранения данных с применением криптографической защиты на основе алгоритмов с открытым кодом
Закажите новую по вашим требованиям
Представленный материал является образцом учебного исследования, примером структуры и содержания учебного исследования по заявленной теме. Размещён исключительно в информационных и ознакомительных целях.
Workspay.ru оказывает информационные услуги по сбору, обработке и структурированию материалов в соответствии с требованиями заказчика.
Размещение материала не означает публикацию произведения впервые и не предполагает передачу исключительных авторских прав третьим лицам.
Материал не предназначен для дословной сдачи в образовательные организации и требует самостоятельной переработки с соблюдением законодательства Российской Федерации об авторском праве и принципов академической добросовестности.
Авторские права на исходные материалы принадлежат их законным правообладателям. В случае возникновения вопросов, связанных с размещённым материалом, просим направить обращение через форму обратной связи.
📋 Содержание
1 Анализ существующих решений
1.1 Архиваторы
1.1.1 Формат tar
1.1.2 Формат ZIP
1.1.3 Архиватор WinZip
1.1.4 Архиватор 7-Zip
1.1.5 Архиватор WinRAR
1.2 Шифрование диска и виртуальные зашифрованные диски . . . .
1.2.1 Шифрование диска Windows Bitlocker
1.2.2 Шифрование диска OSX FileVault
1.2.3 Шифрование диска VeraCrypt
1.3 Медиаконтейнеры
1.3.1 Формат WAV
1.3.2 Формат M.PEG-4
1.3.3 Формат Matroska
1.3.4 Формат TIFF
1.4 Другие контейнеры
1.4.1 Формат РЕ (ЕХЕ файлы)
1.4.2 Формат ISO-образ
1.4.3 Формат IM.G
1.4.4 Базы данных
2 Шифрование
2.1 Симметричные алгоритмы шифрования
2.1.1 Алгоритм DES
2.1.2 Алгоритм ГОСТ 28147-89
2.1.3 Алгоритм AES
2.2 Режимы шифрования симметричного блочного шифрования . . .
2.2.1 Режим шифрования ЕСВ
2.2.2 Режим шифрования СВС
2.2.3 Режим шифрования CFB
2.2.4 Режим шифрования OFB
2.3 Асимметричное шифрование
2.3.1 Алгоритм RSA
3 Описание разработанного файлового формата контейнера
3.1 Общее строение контейнера
3.1.1 Хранение файлов
3.1.2 Директория
3.1.3 Подпись
3.2 Выбор алгоритма шифрования
3.3 Выбор библиотеки для шифрования
3.3.1 Библиотека OpenSSL
3.3.2 Библиотека Crypto++
3.3.3 Библиотека Botan
3.4 Выбор дополнительных библиотек
3.5 Библиотека CryptoPP
3.5.1 Заголовочный файл cryptopp/aes.h
3.5.2 Заголовочный файл cryptopp/files.h
3.5.3 Заголовочный файл cryptopp/filters.h
3.5.4 Заголовочный файл cryptopp/modes.h
3.5.5 Заголовочный файл cryptopp/osrng.h
3.5.6 Заголовочный файл cryptopp/rsa.h
3.6 Библиотека Boost
3.6.1 Заголовочный файл boost/filesystem.hpp
3.6.2 Заголовочный файл boost/serialization.hpp
4 Описание разработанной библиотеки
4.1 Заголовочный файл crypt.h
4.2 Заголовочный файл rsa.h
4.3 Заголовочный файл container.h
4.4 Сборка библиотеки с помощью СМаке
4.5 Сборка библиотеки под операционную систему Android
4.5.1 Установка NDK
4.5.2 Компиляция разработанной библиотеки CryptoContainer . .
4.5.3 Компиляция библиотеки CryptoPP
4.5.4 Компиляция библиотек из набора Boost 55
4.5.5 Подключение библиотек к проекту 56
Заключение 59
Список использованных источников 60
ПРИЛОЖЕНИЕ А Исходный код программы 64
📖 Введение
Криптография применяется как для защиты информации, обрабатываемой в ЭВМ. или хранящейся в ней, так и для закрытия информации пере¬даваемой по различным каналам связи. Криптографическое преобразование как метод защиты от несанкционированного доступа к данным имеет долгую историю. В данный момент разработано огромное количество различным методов шифрования, созданы теоретические и практические основы их применения. Большее число этих методов может быть успешно использовано и для шифрования данных.
Использование шифрования стало в настоящий момент особо актуально. Расширилось использование компьютерных сетей по которым передаются огромные объемы приватных данных, требующие надежной защиты. Также необходимо защитить уже хранимую информацию от несанкционированного доступа.
В данный момент существует множество программ, обеспечивающих шифрование данных, как проприетарных так и с открытым исходным кодом.
Проприетарное программное обеспечение является закрытым для пользователя, он не знает как оно работает, если там какие либо лазейки для третьих лиц или эта программа вообще не отправляет его данные третьим лицам. Ну и конечно же в большинстве своем проприетарное программное обеспечение является платным. Открытое программное обеспечение является бесплатным, но доступные решения являются громоздкими или не отвечают современным требованиям к защите информации.
Целью выпускной квалификационной работы создание формата файлового контейнера для безопасного хранения данных с применением криптографической защиты на основе алгоритмов с открытым кодом. Требовалось было разработать структуру контейнера для максимальной защиты данных и удобства работы с ним, отвечающий современным стандартам шифрования и являющийся полностью открытым. Так же необходимо разработать библиотеку с простым API для работы с этим форматом данных.
Для достижения поставленной цели в работе ставились следующие за¬дачи:
- анализ существующего программного обеспечения, выбор средств реализации криптографического файлового контейнера;
- разработка спецификации формата контейнера для безопасного хранения данных;
- создание API для использования возможностей разработанного файлового контейнера;
- реализация кроссплатформенной библиотеки для работы с крипто-графическим файловым контейнером;
- проверка работоспособности библиотеки.
Результатом выпускной квалификационной работы является кроссплатформенная программная библиотека с открытым исходным кодом для работы с криптографическим файловым контейнером. Разработанная программная библиотека обеспечивает следующие возможности:
- создание, открытие и редактирование файлового контейнера;
- выбор алгоритма и размер ключа для симметричного и ассиметричного шифрования.
✅ Заключение
Для достижения поставленной цели в ходе выполнения работы были решены следующие задачи:
- произведен анализ существующего программного обеспечения, выбор средств реализации криптографического файлового контейнера;
- разработана спецификация формата контейнера для безопасного хранения данных;
- разработан API для использования возможностей созданного файлового контейнера
- реализована кроссплатформенная библиотека для работы с крипто-графическим файловым контейнером;
- изучены особенности библиотеки CryptoPP, набора библиотек Boost и стандартной шаблонной библиотеки языка C++ (C++14);
- проведена проверка работоспособности библиотеки.



