Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
Топ:
Когда производится ограждение поезда, остановившегося на перегоне: Во всех случаях немедленно должно быть ограждено место препятствия для движения поездов на смежном пути двухпутного...
Генеалогическое древо Султанов Османской империи: Османские правители, вначале, будучи еще бейлербеями Анатолии, женились на дочерях византийских императоров...
Интересное:
Принципы управления денежными потоками: одним из методов контроля за состоянием денежной наличности является...
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Дисциплины:
2020-02-15 | 120 |
5.00
из
|
Заказать работу |
|
|
Данную экспериментальную проверку будем осуществлять, изменяя скорость подбора паролей, и фиксировать время, за которое не будет скомпрометирован пароль, при этом значения P и S изменяться не будут.
- вероятность подбора пароля P=10-3;
- мощность пространства паролей S=1,6*1012
Время, за которое данный пароль не будет скомпрометирован, вычисляется по следующей формуле: T=(P * S) / V
1 Скорость подбора пароля V, паролей /сек-1*105;
T=(10-3*1.6*1012) / 105 = 1600 секунд => 4.44 часа
2 Скорость подбора пароля V, паролей /сек-2*105;
T=(10-3*1.6*1012) / 2*105 = 8000 секунд => 2.22 часа
3 Скорость подбора пароля V, паролей /сек-2,5*105;
T=(10-3*1.6*1012) / 2,5*105 = 6400 секунд => 1.77 часа
4 Скорость подбора пароля V, паролей /сек-3*105;
T=(10-3*1.6*1012) / 3*105 = 5333 секунд => 1.48 часа
При увеличении скорости подбора паролей в два раза время, затраченное на подбор, уменьшается также в два раза.
Для того, что бы точно скомпрометировать пароль за три часа, необходима скорость подбора паролей V=1.5*108 паролей /сек. Время взлома также уменьшается от вида атаки и от степени осведомлённости злоумышленника. Так простейшая программа для взлома паролей архиватора RAR “Advanced RAR Password Recovery” предусматривает 3 типа атаки:
- перебор
- по маске
- по словарю
Сократить время взлома также можно, указав предполагаемую длину или установив её рамки, так же можно указать язык или набор символов, из которых предположительно состоит пароль.
Руководство пользователя
Для начала работы с программой необходимо запустить файл с названием PassGen. После запуска появится окно. Для генерации пароля необходимо нажать на клавишу “GENERIROVANIE”. После чего в окошке появится сгенеррированный пароль. Далее необходимо запомнить пароль и использовать по назначению. При повторном нажатии на клавишу пароль будет сгенерирован вновь. Для выхода из программы необходимо нажать на клавишу “Выход” или нажав на “крестик”.
|
Заключение
В процессе выполнения курсового проекта была разработана программа, генерирующая пароли пользователей. Программа была написана при помощи интегрированной среды разработки Visual C++. Программа соответствует всем функциональным требованиям, заданным на курсовое проектирование. Взаимодействие с пользователем осуществляется с помощью графического интерфейса.
Таким образом, задание на курсовое проектирование было полностью выполнено.
Список использованных источников
1 http://www.diwaxx.ru/hak/index.php
2 http://www.passwords.ru
3 Келецкий Я. Энциклопедия языка Си/ Пер. с англ.- М.: Мир, 1992. -687с.
4 Керниган Б., Ричи Д., Фьюер А. Язык программирования Си. Задачи по языку С/ Пер. с англ. - М.: Финансы и статистика, 1985.-279с.
ПРИЛОЖЕНИЕ А
Алгоритм программы
|
--------------[на лист 2
Рисунок А.1. Алгоритм программы
---------------------------------------[с листа 1
|
Рисунок А.1. Лист №2
ПРИЛОЖЕНИЕ Б
Текст программы
// Password.cpp: implementation of the Password class.
//////////////////////////////////////////////////////////////////////
#include <afx.h>
#include "stdafx.h"
#include "PassGen.h"
#include "Password.h"
#include "Random.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
Password::Password(int l)
{length = l;
passwrd = new char [length+1];
dicstr = new char [length+1];
PassAlfavit = new char [36];
HowMuchn = new int [length];
dicstr[length]='\0';
ValueOfDictionary= 134547;}
Password::~Password()
{delete(passwrd);
delete(dicstr);
delete(PassAlfavit);
delete(HowMuchn);}
void Password::GenAlfavit()
{char symbol='A';
for (int index=0;index<36;index++)
{if (index==26)
symbol='0';
PassAlfavit[index]=symbol;
symbol++;}}
char * Password::GetPassword()
{return passwrd;}
|
void Password::GenPass()
{Random rnd1;
for (int index =0;index<length;index++)
passwrd[index]=PassAlfavit[rnd1.NextR(35)];
passwrd[index]='\0';}
BOOL Password::TestChar()
{ClearMass(length,HowMuchn);
for (int index1=0;index1<length;index1++)
for (int index2=0;index2<length;index2++)
if (passwrd[index1]==passwrd[index2])
HowMuchn[index1]++;
if (HowMuch(length,HowMuchn))
return TRUE;
else return FALSE;}
void Password::ClearMass(int length,int * mass)
{for (int index =0;index<length;index++)
mass[index]=0;}
BOOL Password::HowMuch(int length, int *HowMuch)
{for (int index =0;index<length;index++)
if (HowMuch[index]>1)
return FALSE;
return TRUE;}
BOOL Password::TestDictionary()
{CFile Dictionary;
Try
{Dictionary.Open("length08.txt",CFile.modeRead,NULL);}
catch(CFileException *e)
{Dictionary.Abort(); // close file safely and quietly
e->~CFileException();
MessageBox(0,"Не удается открыть словарь", "ошибка", MB_APPLMODAL|MB_OK|MB_ICONSTOP);
return FALSE;}
for (int index =0;index<ValueOfDictionary;index++)
{Dictionary.Read(dicstr,8);
Dictionary.Seek(2,CFile.current);
if (Compare(length))
return FALSE;}
Dictionary.Close();
return TRUE;}
int Password::Compare(int length)
{for (int index=0;index<length;index++)
if (passwrd[index]!=dicstr[index])
return 0;
return 1;}
ПРИЛОЖЕНИЕ В
Random.cpp
// Random.cpp: implementation of the Random class.
//////////////////////////////////////////////////////////////////////
#include <windows.h>
#include <Winbase.h>
#include <stdlib.h>
#include "stdafx.h"
#include "PassGen.h"
#include "Random.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
Random::Random()
{srand(GetTickCount());}
Random::~Random()
{}
int Random::NextR(int x)
{int rnd1;
rnd1=rand();
srand(rnd1);
rnd1=rand() % x;
return rnd1;}
ПРИЛОЖЕНИЕ Г
PassGenDlg.cpp
// PassGenDlg.cpp: implementation file
#include "stdafx.h"
#include "PassGen.h"
#include "PassGenDlg.h"
#include "Password.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CPassGenDlg dialog
CPassGenDlg::CPassGenDlg(CWnd* pParent /*=NULL*/)
: CDialog(CPassGenDlg::IDD, pParent)
{//{{AFX_DATA_INIT(CPassGenDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);}
void CPassGenDlg::DoDataExchange(CDataExchange* pDX)
{CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CPassGenDlg)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP}
BEGIN_MESSAGE_MAP(CPassGenDlg, CDialog)
//{{AFX_MSG_MAP(CPassGenDlg)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDGEN, OnGen)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPassGenDlg message handlers
BOOL CPassGenDlg::OnInitDialog()
{CDialog::OnInitDialog();
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control}
// If you add a minimize button to your dialog, you will need the code below
// to draw the icon. For MFC applications using the document/view model,
|
// this is automatically done for you by the framework.
void CPassGenDlg::OnPaint()
{if (IsIconic())
{CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);}
else
{CDialog::OnPaint();}}
// The system calls this to obtain the cursor to display while the user drags
// the minimized window.
HCURSOR CPassGenDlg::OnQueryDragIcon()
{return (HCURSOR) m_hIcon;}
void CPassGenDlg::OnGen()
{Password ps (8);
ps.GenAlfavit();
do
{ps.GenPass();
if (!ps.TestChar())
continue;
else
if (ps.TestDictionary())
break;
else
continue;}
while (TRUE);
SetDlgItemText(IDC_EDIT1,ps.GetPassword());}
|
|
Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!