- •Самарский государственный архитектурно-строительный университет
- •Алгоритм кодирования и декодирования Хаффмена
- •Порядок выполнения самостоятельной работы
- •Контрольные вопросы
- •Дискреционная модель политики безопасности
- •Порядок выполнения самостоятельной работы
- •3.1. Дискреционная матрица доступов.
- •Контрольные вопросы
- •Подсистемы парольной аутентификации пользователей
- •Порядок выполнения самостоятельной работы
- •4.2. Таблица двоичного представления кодов
- •4.3. Таблица вариантов
- •Контрольные вопросы
- •Методы криптографической защиты информации
- •Шифрование методом Цезаря
- •Простая моноалфавитная замена
- •Метод простой перестановки
- •Алгоритм Гамильтона
- •Шифрование методом гаммирования
- •Порядок выполнения самостоятельной работы
- •Контрольные вопросы
- •Вычисление контрольной суммы сообщения
- •Алгоритм вычисления контрольной суммы
- •Порядок выполнения самостоятельной работы
- •Ассиметричное шифрование
- •Алгоритм шифрования rsa
- •Алгоритм формирования ключевой пары пользователем а
- •Шифрование и дешифрование сообщений в криптосистеме rsa
- •Действия получателя а
- •Действия отправителя b
- •Действия пользователя a
- •Порядок выполнения самостоятельной работы
- •Библиографический список
4.2. Таблица двоичного представления кодов
символ |
код | ||||||||
|
|
128 |
64 |
32 |
16 |
8 |
4 |
2 |
1 |
А |
65 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
4.3. Таблица вариантов
Вариант |
P |
V |
T |
Используемые группы символов пароля |
1 |
10-4 |
15 паролей/мин |
2 недели |
1. Цифры (0-9) 2. Латинские строчные буквы (a-z) |
2 |
10-5 |
3 паролей/мин |
10 дней |
1. Латинские прописные буквы (A-Z) 2. Русские строчные буквы (а-я) |
3 |
10-6 |
10 паролей/мин |
5 дней |
1. Русские прописные буквы (А-Я) 2. Специальные символы. |
4 |
10-7 |
11 паролей/мин |
6 дней |
1. Цифры (0-9) 2. Латинские прописные буквы (A-Z) |
5 |
10-4 |
100 паролей/день |
12 дней |
1. Русские прописные буквы (А-Я) 2. Латинские строчные буквы (a-z) |
6 |
10-5 |
10 паролей/день |
1 месяц |
1. Русские строчные буквы (а-я) 2. Специальные символы. |
7 |
10-6 |
20 паролей/мин |
3 недели |
1. Цифры (0-9) 2. Русские строчные буквы (а-я) |
8 |
10-7 |
15 паролей/мин |
20 дней |
1. Латинские строчные буквы (a-z) 2. Латинские прописные буквы (A-Z) |
9 |
10-4 |
3 паролей/мин |
15 дней |
1. Русские прописные буквы (А-Я) 2. Русские строчные буквы (а-я) |
10 |
10-5 |
10 паролей/мин |
1 неделя |
1. Цифры (0-9) 2. Специальные символы. |
11 |
10-6 |
11 паролей/мин |
2 недели |
1. Цифры (0-9) 2. Русские прописные буквы (А-Я) |
12 |
10-7 |
100 паролей/день |
10 дней |
1. Латинские строчные буквы (a-z) 2. Русские прописные буквы (А-Я) |
13 |
10-4 |
10 паролей/день |
5 дней |
1. Цифры (0-9) 2. Латинские строчные буквы (a-z) |
14 |
10-5 |
20 паролей/мин |
6 дней |
1. Латинские прописные буквы (A-Z) 2. Русские строчные буквы (а-я) |
15 |
10-6 |
15 паролей/мин |
12 дней |
1. Русские прописные буквы (А-Я) 2. Специальные символы. |
Пример 4.1. Расчет задачи для варианта 15
Вариант |
P |
V |
T |
Используемые группы символов пароля |
15 |
10-6 |
15 паролей/мин |
12 дней |
1. Русские прописные буквы (А-Я) 2. Специальные символы. |
Р = 10-6 ; V = 15 паролей/мин ; T = 12 дней.
А =32+10=42.
. Чтобы найти L, будем возводить число 42 в степень L=1,2,3,… и результат каждый раз будем сравнивать с числом 43200000000, пока не выполним требуемое неравенство. В ходе итерации было получено L=8, при котором S=9682650000000, что на порядок больше .
Сформируем пароли с учетом их длины, равной 8 и известного множества символов, получим:
-
Пароли
К!О”T#$K
АДРЕСС)!
СОЛЬ%%*O
Для расчетов удобно применять следующую программу на языке С++ в системе VisualStudio2008:
#include "stdafx.h"
#include <iostream>
using namespace std;
#include <conio.h>
int main()
{
int V,T,L=0;
double A,A1=1;
float S;
float P;
/* P - вероятность взлома; V – скорость взлома (число паролей в минуту);
T – время действия пароля; А – число парольных символов;
L – искомая длина пароля; S - пространство взлома (число возможных
паролей).
*/
cout<<"\n Enter P, V, T ,A\n";
cin>>P>>V>>T>>A; // ввод исходных данных
cout<<"\n P = "<<P<<" V = "<<V<<" T = "<<T<<" A = "<<A<<"\n";
// печать для проверки
S=V*T*60*24*12/P;
cout<<"\n S = "<<S;
while(A1<S)
{
L++;
A1=A1*A; // степени А
}
cout<<"\n A1 = "<<A1;
cout<<"\n L = "<<L;
getch();
return 0;
}