Laboratornaya_rabota_1_MSA



6

 

Министерство образования и науки Российской Федерации

Федеральное государственное бюджетное образовательное учреждение высшего образования

Югорский государственный университет

 

 

 

 

 

Лабораторная работа № 1 по теме:

«Количественная оценка стойкости парольной защиты»

 

 

 

Выполнил: студент группы 1531б

Михайлов C.А.

______________

(подпись)

 

Проверил: Гончаренко О.В.

 

______________

(подпись)

 

 

 

 

 

Ханты-Мансийск 2016

Оглавление

1.   Задание   3

2.   Основная часть   4

3.   Вывод   6

 

 

1. Задание

Цель: Реализация простейшего генератора паролей, обладающего требуемой стойкости к взлому.

Задание 1. Вычислить мощность алфавита паролей А, соответствующую вашему варианту.

Задание 2. Вычислить нижнюю границу S* для заданных P, V, T.

Задание 3. Зная мощность алфавита паролей А, вычислить минимальную длину пароля L, при котором выполняется условие S*<=AL.

Задание 4. Реализовать на языке программирования программу, реализующую генератор паролей с характеристиками, соответствующими варианту. Программа должна формировать случайную последовательность символов длины L, должны использоваться символы из тех групп, которые соответствуют варианту.

Задание 5. Оформить отчет по лабораторной работе согласно Правилам оформления отчетов.

Таблица 1 Задание

P

V

T

Используемые группы символов пароля

10-4

25 паролей / час

2 месяца

Маленькие латинские буквы (az); цифры (0-9)

 

2. Основная часть

Пусть A – мощность алфавита паролей (количество символов, которые могут быть использованы при составлении пароля). Например, если при составлении пароля могут быть использованы только малые английские буквы, то A=26.

L – длина пароля.

Pвероятность подбора пароля злоумышленником

S=AL – число всевозможных паролей длины L, которые можно составить из символов алфавита A.

V – скорость перебора паролей злоумышленником.

T – максимальный срок действия пароля.

Тогда, вероятность P в течение срока его действия Т определяется по следующей формуле: P=(V*T)/S=(V*T)/AL.

S* целочисленное значение нижней границы. S*=[(V*T)/P], где []-целая часть взята с округлением вверх.

Задание 1.

Мощность алфавита паролей в соответствии с заданием:

A = 26+10 = 36

Задание 2.

Нижняя граница S* находится следующим образом:

V = 25 паролей/час = 600 паролей/день

T = 2 месяца = 60 дней

S* = [(V*T)/P] = [600*60/10-4] = 360*106

Задание 3.

А зная нижнюю границу S*, можно вычислить минимальную длину пароля L, при котором выполняется условие S* <= AL:

S* <= AL

logAS* <= L

L >= logAS*

L >= log36 360*106= 5,498

L = 6

Задание 4.

Листинг:

#include <iostream>

#include <cstdlib>

#include <ctime>

 

using namespace std;

 

int main() {

   // Инициализация генератора случайных чисел

   srand(time(NULL));

   

   // Используемые группы символов пароля

   char alphabet[] = {

      ‘0’,‘1’,‘2’,‘3’,‘4’,‘5’,‘6’,‘7’,‘8’,‘9’,

      ‘a’,‘b’,‘c’,‘d’,‘e’,‘f’,‘g’,‘h’,‘i’,‘j’,‘k’,‘l’,‘m’,‘n’,‘o’,‘p’,‘q’,‘r’,‘s’,‘t’,‘u’,‘v’,‘w’,‘x’,‘y’,‘z’,

      

   };

   

   // Мощность алфавита паролей

   int A =36;

   

   // Длина пароля

   int L = 6;

   

   for (int i = 0; i < L; i++) {

      // Каждый раз выбираем случайное число, берем от него остаток от деления на мощность алфавита,

      // чтобы не вылезти за границы, и выбираем символ с таким номер из алфавита

      cout << alphabet[rand() % A];

   }

   // Выводим конец строки

   cout << endl;

   

   // Задерживаем закрытие программы по завершению работы

   system(«pause«);

   

   return 0;

}

Результат работы программы представлен на рисунке 1.

Рисунок 1 – Результат работы программы

 

3. Вывод

В данной работе был также реализован простейший генератор паролей, обладающих требуемой стойкости к взлому.

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *