Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Хранение и защита компьютерной информации. Лабораторный практикум

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
Порядок выполнения работы
1. Для каждого из примеров ниже задать пять вариаций. Сравнить полученные результаты. Ниже представлены шаблоны выполнения.
Шаблон 1
Вывести на экран проверочную и порождающую матрицы для
3
кода Хэмминга с длиной кодового слова 7 = 2 ка исходного сообщения 4 = 7 – 3. Для этого используем коман­ду:
>> [h,g,n,k] = hammgen(3)
Шаблон 2
Использовать явно заданный примитивный полином 1 + x
3
и показать (доказать), что вид проверочной матрицы зависит
x
от выбора примитивного полинома. А также сравнить матрицу h1 с матрицей h из предыдущего примера (шаблона 1).
>> h1 = hammgen(3,[1 0 1 1])
Шаблон 3
А. Получить представления для трех порождающих поли­номов циклического кода (15, 4) – первая из приведенных ниже команд.
Б. Определить порождающий полином с максимальным ве­сом (числом ненулевых коэффициентов) – вторая команда.
В. Доказать, что для циклического кода (15, 4) не существу­ет порождающих полиномов с весом (числом ненулевых коэффи­циентов), равным трем, – третья команда.
>> c1 = cyclpoly(15,4,’all’)
>> c2 = cyclpoly(15,4,’max’)
>> c3 = cyclpoly(15,4,3)
– 1 и длиной бло-
2
+
Шаблон 4
Проверить четность и матрицу генераторов для двоичных ци­клических кодов. Для этого:
а) создать матрицы проверки на четность и генератор для двоичного циклического кода, имеющего длину кодового слова 7 и длину сообщения 4:
41
>> pol = cyclpoly(7,4) >> [parmat,genmat,k] = cyclgen(7,pol)
б) создать матрицу контроля четности, в которой код не яв-
ляется систематическим:
>> parmatn = cyclgen (7, pol, ‘nonsys’ )
в) создать матрицы контроля четности и генератора для (7,
3) двоичного циклического кода:
>> parmat2 = cyclgen (7, ‘1 + x ^ 2 + x ^ 3 + x ^ 4’)
Шаблон 5
Преобразовать проверочную матрицу для кода Хэмминга в со-
ответствующую порождающую матрицу и обратно:
>> parmat = hammgen(3) >> genmat = gen2par(parmat) >> parmat2 = gen2par(genmat) % Результат должен быть
равен parmat
Шаблон 6
Показать три способа вычисления кодового расстояния для
циклического кода (7, 4).
>> n = 7 % Порождающий полином для циклического кода (7,4) >> genpoly = cyclpoly(n,4) >> [parmat, genmat] = cyclgen(n,genpoly) >> wts = [gfweight(genmat,’gen’), gfweight(parmat,’par’),
gfweight(genpoly,n)]
Шаблон 7
Вычислить синдром декодирования. Для кода Хэмминга (7, 4):
>> m = 3 >> n = 2^m-1 >> k = n-m >> parmat = hammgen(m) % Проверочная матрица >> trt = syndtable(parmat) % Таблица декодирования
Пусть принятое кодовое слово – [1 1 0 1 1 0 0]. Путем умножения проверочной матрицы на транспонирован-
ное кодовое слово вычислить синдром декодирования.
42
>> parmat*[1;1;0;1;1;0;0]
ans =
2
3
1
В двоичной системе счисления получили – [0 1 1]. Десятич­ное значение синдрома – 3. Соответствующий вектор ошибок, таким образом, следует брать из четвертой (3 + 1) строки табли­цы декодирования:
>> trt(4,:)
ans =
0 0 0 0 1 0 0
Следовательно, требуется инвертировать пятый разряд при­нятого кодового слова – [1 1 0 1 0 0 0].
2. Запустить Simulink и выбрать раздел Communication Sys-
tem Toolbox. Собрать модель системы передачи дискретных со­общений, состоящую из:
– двоичного генератора Бернулли, генерирующего случай-
ные двоичные числа;
– кодера помехоустойчивого кода (выбрать самим); – двоичного симметричного канала, главная функция кото-
рого – имитация ошибок в дискретном канале;
– декодера помехоустойчивого кода, находящего и исправ-
ляющего ошибки в кодовых комбинациях;
– счетчика ошибок, вычисляющего коэффициент ошибок в полученных кодовых комбинациях путем их сравнения с кодо­выми комбинациями на входе дискретного симметричного дво­ичного канала;
– цифрового дисплея для отображения результатов модели­рования.
На рисунке 5.1 приведен пример модели системы передачи
дискретных сообщений, использующей код Хэмминга.
3. Выполнить моделирование системы передачи для разных
значений вероятности ошибки на бит.
4. Получить результаты – значение вероятности ошибки на бит на выходе системы для заданных значений вероятности ошибки на бит в дискретном канале.
5. Построить графики зависимости вероятности ошибки от значений вероятности ошибки на бит в дискретном канале.
43
Рис. 5.1. Модель системы передачи дискретных сообщений
с использованием кода Хэмминга
6. Заменить двоичный симметричный канал на модель не­прерывного канала связи, включающую в себя модулятор, де­модулятор и непрерывный канал с аддитивным белым Гаус­совским шумом (AWGN Channel). Вид модуляции и параметры непрерывного канала выберете сами, а также поварьируйте ими. Сделайте выводы.
Отчет по работе
Каждый студент составляет отчет о проделанной работе объ-
емом 4-5 с., который должен содержать следующие материалы.
1. Краткое изложение теории.
2. Краткое описание методики проведения лабораторной ра­боты.
3. Исходные данные, расчеты и их результаты.
4. Выводы о проделанной работе.
Контрольные вопросы
1. Как сгенерировать проверочную и порождающую матрицы для кода Хэмминга?
2. Как сгенерировать порождающий полином, проверочную и порождающую матрицы для циклического кода?
3. Как можно выполнить преобразование порождающей ма­трицы в проверочную и обратно?
4. Как рассчитать кодовое расстояние для линейного блоково­го кода?
5. Как сгенерировать таблицу зависимости векторов ошибок от синдрома (таблицы декодирования) для двоичных кодов?
6. Каковы функции основных блоков Communications System
Toolbox?
7. Что представляют собой кодеры и декодеры Communica­tions System Toolbox?
44
Лабораторная работа 6
ПАРОЛЬНАЯ ЗАЩИТА ИНФОРМАЦИИ
Цель работы
Изучить методы парольной защиты информации, создать слу-
чайные пароли для списка пользователей.
Теоретическая часть
Пользователи задают пароли самостоятельно или полу­чают их от системных администраторов. Для снижения де­структивного влияния человеческого фактора необходимо ре­ализовать ряд требований к выбору и использованию паролей (табл. 6.1).
Таблица 6.1
Требования к выбору и использованию паролей
Требование к выбору пароля Получаемый эффект
Установление минимальной длины пароля
Использование в пароле раз­личных групп символов
Проверка и отбраковка паро­ля по словарю
Установление максимального срока действия пароля
Установление минимального срока действия пароля
Ведение журнала истории паролей
Применение эвристическо­го алгоритма, бракующего пароли на основании данных журнала истории
Создает препятствие для злоумышленника подсмотреть или подобрать пароль мето­дом «тотального опробования»
Создает препятствие для злоумышленника подобрать пароль методом «тотального опробования»
Создает препятствие для злоумышленника подобрать пароль по словарю
Создает препятствие для злоумышленника подобрать пароль методом «тотального опробования», в том числе без непосред­ственного обращения к системе защиты (режим offline)
Препятствует попыткам пользователя по­менять пароль на старый после его смены по предыдущему требованию
Гарантирует дополнительную степень за­щиты по предыдущему требованию
Создает препятствие для злоумышленника подобрать пароль по словарю или с исполь­зованием эвристического алгоритма
45
Окончание табл. 6.1
Требование к выбору пароля Получаемый эффект
Ограничение числа попыток ввода пароля
Поддержка режима при­нудительной смены пароля пользователя
Использование задержки при вводе неправильного пароля
Запрет на выбор пароля сами­ми пользователями и автома­тическая генерация паролей
Принудительная смена паро­ля при первой регистрации пользователя в системе
Усложняет задачу злоумышленнику при интерактивном подборе паролей
Гарантирует эффективность требования, ограничивающего максимальный срок действия пароля
Усложняет задачу злоумышленнику при интерактивном подборе паролей
Исключает возможность подобрать пароль по словарю. Если злоумышленнику не из­вестен алгоритм генерации паролей, то он может подбирать пароли только методом «тотального опробования»
Дает гарантию защиты от неправомерного действия системного администратора, у которого есть доступ к паролю в момент создания учетной записи
Рассмотрим примеры.
Пример 1
ес
Дано. Пароль состоит из ш
а
ролей в секунду.
п
сле ка
По
ауза
в v = 5 секунд.
п
преде
О
ждого из m = 3 неправильно введенных паролей идет
лить время перебора всех паролей Т
ти цифр. Скорость перебора s = 10
итог
Решение.
а
вит составляют цифры n = 10.
Алф
а па
Длин Колич
емя пере
Вр
t
= C / s = 10
роля 6 символов
ес
тво вариантов С = nk = 106.
бора всех паролей
5
се
кунд ≈ 1667 минут ≈ 28 часов ≈ 1,2 дня.
k
= 6 (по условию).
:
.
Вр
емя пере
Ответ: Т
46
бора всех паролей при m = 3 и v = 5
T = 5
t /
3 = 166 667секунд ≈ 2778 минут ≈
≈ 46 часов ≈ 1,9 дня.
=t + T = 1,2 + 1,9 = 3,1 дня.
итог
:
Дано. Пароль (алфавит)
ере
бора – не меньше 10 лет.
п
еде
Опр
лить минимальную длину пароля.
Решение.
а
вит составляют символы n = 10.
Алф
а па
Длин
Колич
роля р
ес
тво вариантов
асс
читывает
Пример 2
сос
ся: k
:
тоит из 10 символов. Время
= logn C = lg C.
C = t × s = 10 лет × 10 паролей в секунду =
= 10 × 10 × 365 × 24 × 60 × 60 ≈ 3,15 × 10
Длина п
Ответ: длин
а
роля:
k
= lg (3,15 ∙ 109) = 9,5.
а па
роля должна быть не менее 10 символов.
9
вариантов.
Порядок выполнения работы
1. Определить время перебор – алфавит состоит из n символов; – длин
а па
роля =
k с
имволов;
– скорость перебора = s паролей в секунду.
По
сле ка
ждого из m неправильно введенных паролей идет п
уза в v секунд.
2. Заполнить таблицу в Excel, построить графики зависимо-
стей времени перебора от n, Пример таблицы представлен ниже (числовые значения возьми­те свои) – табл. 6.2.
Исходные данные для определения времени перебора
n k s m v
33 10 100 0 0 26 12 13 3 2 52 6 30 5 10 66 7 20 10 3
59 5 200 0 0 118 9 50 7 12 128 10 500 0 0 150 3 200 5 3 250 8 600 7 3 500 5 1000 10 10
а (табл. 6.2) все
k,
s (три графика) и сделать выводы.
х паролей, если
Таблица 6.2
а-
47
Окончание табл. 6.2
n k s m v
32 9 200 0 12 27 10 50 7 0 50 7 500 0 3 65 5 200 5 3
60 9 600 7 10 110 10 1000 0 2 120 3 100 3 10 160 8 13 5 3 240 7 30 10 0 510 5 20 0 0
3. Определить минимальную длину парол – алфа
вит состоит из n символов;
я (табл. 6.3)
, если:
– время перебора – не меньше t лет; – скорость перебор
а =
s паролей в секунду.
4. Заполнить таблицу в Excel, построить графики зависи-
t,
мостей длины пароля от n,
s (три графика) и сделать выводы.
Пример таблицы представлен ниже (числовые значения возьми­те свои) – табл. 6.3.
Таблица 6.3
Исходные данные для определения минимальной длины пароля
n t s
33 100 100 26 120 13 52 60 30 66 70 20
59 50 200 118 90 50 128 100 500 150 30 200 250 80 600 500 50 1000
32 90 50
27 100 500
50 30 200
65 80 600
60 50 1000 110 100 100
48
n t s
120 120 13 160 60 30 240 70 20 510 50 200
Окончание табл. 6.3
5. Определить количество символов алфавит
а (табл. 6.4)
если:
– длин
роля =
k с
имволов;
а па – время перебора – не меньше t лет; – скорость перебора = s паролей в секунду.
6. Заполнить таблицу в Excel, построить графики зависи-
t,
мостей символов алфавита от k,
s (три графика) и сделать вы-
воды. Пример таблицы представлен ниже (числовые значения возьмите свои) – табл. 6.4.
Таблица 6.4
Исходные данные для определения символов алфавита
k t s
5 100 100 6 120 13
10 60 30
7 70 20
9 50 200 11 90 50 12 100 500
6 30 200
8 80 600 50 50 1000 11 90 50 12 100 500
6 30 200
8 80 600 50 50 1000
5 100 100
6 120 13 10 60 30
7 70 20
9 50 200
,
49
7. Создать случайные пароли для списка пользователей. Сохраняем файл Excel как Книга Excel с поддержкой макросов (*xlsm). Далее сочетанием клавиш Alt + F11 вызываем Micro- soft Visual Basic For Applications. В окне Project щелкаем правой кнопкой мыши, выбираем Insert → Module и вставляем следую­щее:
Function CREATEPASS(Optional LENGTH As Integer = 8,
Optional USE_SYMBOL As Boolean = False) As String
Dim i As Integer Dim simb As String * 1 Dim arrsimb As Integer Dim password As String Randomize If USE_SYMBOL = False Then For i = 1 To LENGTH arrsimb = Int(Rnd * 3) Select Case arrsimb Case 0 simb = Int(Rnd * 9) Case 1 simb = Chr(Int((90 - 65 + 1) * Rnd + 65)) Case 2 simb = Chr(Int((122 - 97 + 1) * Rnd + 97)) End Select password = password & simb Next Else For i = 1 To LENGTH simb = Chr(Int((126 - 33 + 1) * Rnd + 33)) password = password & simb Next End If CREATEPASS = password End Function
Для создания цифробуквенного пароля (рис. 6.1) в ячейке
вводим: =CREATEPASS(10), где 10 – длина пароля. Для фор-
50