ВВЕДЕНИЕ
В настоящее время безопасность данных становится все более актуальной, именно поэтому важность использования сложных паролей для защиты аккаунтов возрастает с каждым днем.
Киберугрозы становятся все более изощренными, а их масштаб расширяется, для того чтобы на достойном уровне обезопасить свои учетные записи от их влияния необходимо начать с использования сложных паролей.
Пароли на данный момент являются одним из самых слабых мест в системе кибербезопасности, и это не случайно. Большая часть пользователей сети используют легко запоминающиеся пароли, состоящие из слов или последовательностей символов, что оказывается удобным не только для самого пользователя, но и для злоумышленника, ведь это часто приводит к взлому аккаунтов и последующей утечке данных. Использование одного и того же пароля для нескольких учетных записей, ставит данные под еще большую угрозу.
Безопасность аккаунтов пользователей, использующих ресурсы сети Интернет, является одним из главных приоритетов.
1.Основная часть
1.1 Роль криптографии в процессе защиты данных
В самом общем значении «криптография» – это наука о безопасной передаче информации, а в более узком – метод защиты информации путем шифрования, когда исходное сообщение при передаче кодируется в секретный шифр, а при получении – расшифровывается обратно в обычный текст [1].
В контексте генерации паролей криптография играет ключевую роль в обеспечении их безопасности.
Возможности криптографии позволяют защитить данные от несанкционированного доступа и изменения. Влияние криптографии на защиту данных огромное и проявляется во многих аспектах. Криптографические методы защиты позволяют обеспечить основополагающие принципы информационной безопасности: конфиденциальность, целостность и доступность информации.
1.2 Виды шифрования информации
Криптография представляет собой науку о шифровании, поэтому необходимо понять, что такое шифрование данных и какие существуют виды шифрования.
Шифрование — это сокрытие или видоизменение данных таким образом, чтобы другие люди не могли их прочитать или понять [2].
Существует три основных вида шифрования:
симметричное – для кодирования и расшифровки информации используется один и тот же открытый ключ, доступ к которому может получить любой пользователь;
асимметричное – для кодирования и дешифровки используются разные ключи, при этом ключ, который нужен для разгадывания кода, — закрытый, им владеет только получатель;
хеш-функция – это вид шифрования, который не имеет обратной силы, то есть хеш-функцию невозможно раскодировать.
1.3 Разработка программы генерации пароля на языке С++
Программа генерации пароля является важным инструментом для обеспечения безопасности учетных записей по нескольким причинам: генерация уникальных и сложных паролей, повышение безопасности аккаунтов и общего уровня безопасности данных.
Для того, чтобы автоматизировать механизм генерации пароля и повысить безопасность аккаунтов в ходе работы над проектом была создана программа, основываясь на возможностях языка программирования С++, таких как генераторы случайных чисел и функции перемешивания символов в пароле.
Программа выполняет функцию генерации сложного пароля с помощью использования комбинации букв латинского алфавита верхнего и нижнего регистра, также цифр и специальных символов.
Код программы с подробными комментариями представлен ниже:
#include <iostream> // ввод и вывод через стандартный поток
#include <fstream> // работа с файлами
#include <random> // работа с генераторами случайных чисел
#include <Windows.h> // библиотекадляработыс Windows API
using namespace std;
class PassGen {
public:
void displayMessage()
{
int passLength;
int numOfPasswords;
char filename[100]; // массивсимволовдляхраненияименифайла
cout << "Введите длину пароля для генерации: ";
cin >> passLength;
cout << "Введите количество паролей для генерации: ";
cin >> numOfPasswords;
cout << "Введите имя файла для записи: ";
cin >> filename;
ofstream outFile(filename); // открытиефайладлязаписи
for (int k = 0; k < numOfPasswords; k++)
{
char* generatedPassword = passwordGenerator(passLength); // генерацияпароля
outFile << generatedPassword << endl; // записьпаролявфайл
}
outFile.close(); // закрытие файла
cout << "Пароли успешно сгенерированы и записаны в файл " << filename << endl;
}
char* passwordGenerator(int passLength)
{
char alphabet[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*"; // определение алфавита для пароля
char* password = new char[passLength + 1]; // определение массива символов для пароля
random_device rd; // генератор случайных чисел для инициализации других генераторов
mt19937 generator(rd()); // генерация случайных чисел с использованием Mersenne Twister 19937
uniform_int_distribution<int> distribution(0, sizeof(alphabet) - 2); // генерация равномерно распределенных случайных целых чисел в диапазоне
for (int i = 0; i < passLength; i++) {
int index = distribution(generator);
password[i] = alphabet[index];} // добавлениесимволаалфавитавпароль
password[passLength] = '\0'; // определение конца строки в паролях
random_shuffle(&password[0], &password[passLength]); // перемешивание символов в пароле
return password;}
};
int main()
{
SetConsoleCP(1251); // установка кодовой страницы ввода
SetConsoleOutputCP(1251); // установка кодовой страницы вывода
srand(time(NULL)); // инициализация генератора случайных чисел
PassGen pass;
pass.displayMessage(); // запуск функции генерации паролей
return 0;
}
Данная программа позволяет создавать необходимое количество паролей для генерации в текстовый файл, что удобно для хранения и управления большим количеством паролей. Программа генерирует случайные и надежные пароли, которые можно использовать для различных целей, таких как защита личных данных.
Работа разработанной программы представлена на рисунке 1.
Рисунок 1 – Работа программы генерации пароля
Сгенерированные пароли в текстовом файле, рисунок 2.
Рисунок 2 – Сгенерированные пароли с помощью программы на С++
ЗАКЛЮЧЕНИЕ
Криптография играет важную роль в защите информации от незаконного доступа. Разработанная программа генерации паролей поможет использовать надежные пароли для всех важных аккаунтов и их регулярное обновление, обеспечить безопасность личных данных.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ И ЛИТЕРАТУРЫ
Лаборатория Касперского. Что такое криптография? – [Электронный ресурс]. Режим доступа: https://www.kaspersky.ru/resource-center/definitions/what-is-cryptography?ysclid=lwg0jd2udf327036203
Шифрование информации: что это и для чего - методы и способы шифрования данных – [Электронный ресурс]. Режим доступа: https://practicum.yandex.ru/blog/chto-takoe-shifrovanie-informacii