Файл: Операции, производимые с данными (Основные методы и средства защиты информации).pdf
Добавлен: 23.04.2023
Просмотров: 498
Скачиваний: 1
СОДЕРЖАНИЕ
Глава 1. Данные: понятие, организация, структура
Глава 2. Операции с данными, передача, хранение данных
2.2. Организация хранилищ данных
Глава 3. Основные методы и средства защиты информации
3.1 Физическая защита информации
3.2 Аппаратные средства защиты информации
Введение
Информатика рассматривает информацию, как концептуально связанные между собой сведения, данные, понятия, изменяющие наши представления о явлении или объекте окружающего мира. Наряду с информацией в информатике часто употребляется понятие данные.
Данные могут рассматриваться как признаки или записанные наблюдения, которые по каким-то причинам не используются, а только хранятся. В том случае, если появляется возможность использовать эти данные для уменьшения неопределенности о чем-либо, данные превращаются в информацию. Поэтому можно утверждать, что информацией являются используемые данные.
Информация - это отображение реального мира с помощью сведений (сообщений). Наряду с термином "информация" в информатике используется понятие «данные». Это понятие уже, чем информация, т.к. представляет отрывочные, не связанные между собой сведения. Однако в работе с компьютерными программами чаще употребляется термин "данные".
Данные играют большую роль в развитии мира. Они обеспечивают информационный процесс, позволяя сохранять данные более достоверными и дольше, дают возможность к анализу и изучению. Этим обусловлена актуальность курсовой работы.
Целю работы является изучение данных, а также операций, производимых с данными.
Для достижения цели необходимо решить следующие задачи:
- изучить теоретические основы, понятия «данных»;
- рассмотреть виды данных, их взаимодействие;
- определить какие операции возможно производить с данными;
- осветить основные методы и средства защиты информации
Работа состоит из введения, где дана краткая характеристика работы, трёх глав и заключения, где подводятся итоги проведенного исследования. В первой главе раскрыты способы организации данных, уровни организации данных. Так же подробно разобрана структура данных. Вторая глава посвящена операциям с данными, их перемещению и хранению. Детально представлена организация хранилищ данных. Третья глава раскрывает тему защиты информации. В ней рассмотрены основные методы и средства защиты информации, такие как физическая, аппаратные и программные средства защиты.
Глава 1. Данные: понятие, организация, структура
Данные – поддающееся многократной интерпретации представление информации в формализованном виде, пригодном для передачи, связи или обработки[1].
1.1 Организация данных
Традиционно применяют два способа организации данных:
- текстовые данные – последовательность символов алфавита, представленная в виде кодировки;
- двоичные данные – последовательность байтов. «Двоичная» организация не является способом организации данных как таковым, а лишь термином, объединяющим форматы (формы организации), отличные от текста. Такие данные обычно включают в себя элементы, представленные машинным кодом, числовыми данными, условными кодами, битовыми картами, местоположение других данных (смещения, а также указатели в оперативной памяти), фрагменты текста, сжатые и случайные данные[2].
Согласно общей классификации, выделяют простые и структурированные данные, сформированные группой данных, каждое из которых должна быть простым или структурированным. К первым относят флаги, коды, даты, числа, символы. К вторым - строки, массивы, таблицы, списки, стеки, очереди, множества, записи, файлы[3]. Файлы и базы данных должны обязательно состоять из структурированных элементов. Внешние для программной системы данные также формируются из структурированных элементов.
В языке Паскаль, к примеру, имеются как средства для задания правил формирования структур, так и средства для непосредственного описания данных.
Часто невозможно заранее, до начала работы программы, установить размер структуры данных. Такие данные называются динамическими[4], их размер устанавливается в процессе работы программы. В большинстве языков программирования нельзя задавать динамически изменяемые структуры данных. Программисту крайне важно указывать наибольшее число экземпляров - максимальный размер каждой структуры.
Программист, проектировщик и пользователь имеют разные взгляды на организацию данных, поэтому выделяют три уровня организации данных:
- логическая организация данных: проектный уровень;
- представление данных: уровень языка реализации;
- физическая организация данных: машинный уровень[5].
Логическая организация данных отражает взгляд пользователя на данные. В ее основе лежат требования пользователя и внутренне присущие данным связи. Это наиболее важный уровень абстракции, используемый при представлении данных, поскольку именно требования пользователей определяют облик проектируемой системы. В случае если на этапе проектирования системы удачно выбрана логическая организация данных, изменения системных требований, не приводящие к модификации логической структуры данных, не повлекут за собой реорганизации на более низких уровнях представления данных.
Только на логическом уровне могут применяться формальные методы описания динамически изменяющихся структур.
Например, никакая дополнительная информация о членах семьи не изменит общую логическую структуру семьи:
семья = отец, мать, ребенок
отец = имя, возраст, профессия
мать = имя, возраст, девичья фамилия
ребенок = имя, возраст, пол
Новые данные о членах семьи не нарушают ее общей организации, но могут привести к изменениям в представлении информации.
Описание данных на языке программирования относится к уровню представления данных[6]. Отношения между данными задаются в виде, характерном для конкретного языка. Уровень физической организации связан с системным программным обеспечением. На этом уровне приходится оперировать с границами слов, размерами полей, двоичными кодами и физическими записями[7].
1.2 Структуры данных
Структуры данных являются важной частью разработки программного обеспечения и одной из наиболее распространенных тем для вопросов на собеседованиях с разработчиками. Тем не менее они, в основном, являются просто специализированными форматами для организации и хранения данных[8].
Связные списки. Связный список является одной из самых основных структур данных[9]. Его часто сравнивают с массивом, поскольку многие другие структуры данных могут быть реализованы либо с помощью массива, либо с помощью связного списка. У каждого из них есть свои преимущества и недостатки.
Связный список состоит из группы узлов, которые вместе представляют последовательность. Каждый узел содержит два элемента: фактические данные, которые хранятся и могут быть представлены любым типом данных, и указатель, ссылка, на следующий узел в последовательности[10]. Существуют также дважды связанные списки, в которых каждый узел имеет указатель и на следующий, и на предыдущий элемент в списке[11].
Самые основные операции в связанном списке включают добавление элемента в список, удаление элемента из списка и поиск в списке для элемента.
Стеки. Стек - это базовая структура данных, в которой доступно только добавление или удаление элементов в начале стека[12]. Иногда его сравнивают со стопкой книг. Если необходимо посмотреть книгу в середине стека, сначала необходимо взять книги, лежащие сверху.
Стек считается LIFO (Last In First Out) - это означает, что последний элемент, который добавлен в стек, - это первый элемент, который из него выходит.
Существует три основных операции, которые могут выполняться в стеках: вставка элемента в стек (называемый «push»), удаление элемента из стека (называемое «pop») и отображение содержимого стека (иногда называемого «pip»)[13].
Очереди. Эту структуры можно сравнить с очередью людей в продуктовом магазине: стоящий первым будет обслужен первым.
Если рассматривать очередь с точки доступа к данным, то она является FIFO (First In First Out). Это означает, что после добавления нового элемента все элементы, которые были добавлены до этого, должны быть удалены до того, как новый элемент будет удален.
В очереди есть только две основные операции: enqueue и dequeue. Первая означает вставить элемент в конец очереди, а вторая - удаление переднего элемента[14].
Множества. Множества хранят данные без определенного порядка и без повторяющихся значений. Помимо возможности добавления и удаления элементов, есть несколько других важных функций, которые работают с двумя наборами одновременно:
- Union (Объединение). Объединяет все элементы из двух разных множеств и возвращает результат, как новый набор (без дубликатов);
- Intersection (Пересечение). Если заданы два множества, эта функция вернет другое множество, содержащее элементы, которые имеются и в первом и во втором множестве;
- Difference (Разница). Вернет список элементов, которые находятся в одном множестве, но НЕ повторяются в другом;
- Subset(Подмножество) - возвращает булево значение, показывающее, содержит ли одно множество все элементы другого множества[15].
Мap - это структура данных, которая хранит данные в парах ключ/значение, где каждый ключ уникален. Map иногда называютя ассоциативным массивом или словарем. Такая структура часто используется для быстрого поиска данных. Map’ы позволяют сделать следующее:
- добавление пары в коллекцию;
- удаление пары из коллекции;
- изменение существующей пары;
- поиск значения, связанного с определенным ключом[16].
Хэш-таблица - это структура данных, реализующая интерфейс map, который позволяет хранить пары ключ/значение. Здесь используется хеш-функцию для вычисления индекса в массиве, по которым можно найти желаемое значение. Хеш-функция обычно принимает строку и возвращает числовое значение. Хеш-функция всегда должна возвращать одинаковое число для одного и того же ввода. Когда два ввода хешируются с одним и тем же цифровым выходом - это коллизия[17].
Необходимо, чтобы их было как можно меньше.
Поэтому, когда вводится пара ключ / значение в хеш-таблице, ключ проходит через хеш-функцию и превращается в число. Это числовое значение затем используется в качестве фактического ключа, в котором значение хранится. Когда снова производится попытка получения доступа к тому же ключу, хеширующая функция обработает ключ и вернет тот же числовой результат. Затем число будет использовано для поиска связанного значения[18]. Это обеспечивает очень эффективное время поиска O (1) в среднем.
Двоичное дерево поиска. Дерево - это структура данных, состоящая из узлов. Она имеет следующие характеристики:
- каждое дерево имеет корневой узел (вверху);
- корневой узел имеет ноль или более дочерних узлов;
- каждый дочерний узел имеет ноль или более дочерних узлов и т. д.
Двоичное дерево поиска имеет две характеристики:
- каждый узел имеет до двух детей(потомков);
- для каждого узла его левые потомки меньше текущего узла, что меньше, чем у правых потомков[19].
Двоичные деревья поиска позволяют быстро находить, добавлять и удалять элементы. Способ их настройки означает, что в среднем каждое сравнение позволяет операциям пропускать половину дерева, так что каждый поиск, вставка или удаление занимает время, пропорциональное логарифму количества элементов, хранящихся в дереве.
Префиксное дерево. Бор, луч или дерево префикса - это своего рода дерево поиска. Оно хранит данные в шагах, каждый из которых является его узлом. Префиксное дерево из-за быстрого поиска и функции автоматического дописания часто используют для хранения слов[20].
Каждый узел в префиксном дереве содержит одну букву слова. Необходимо следовать ветвям дерева, чтобы записать слово, по одной букве за раз. Шаги начинают расходиться, когда порядок букв отличается от других слов в дереве или, когда заканчивается слово. Каждый узел содержит букву (данные) и логическое значение, указывающее, является ли узел последним узлом в слове. Целесообразно всегда начинать с корневого узла вверху и двигайтесь вниз.
Двоичная куча - это очередное дерево, в каждом узле которого не более двух детей. Кроме того, это полное дерево. Это означает, что все уровни полностью заполнены до последнего, а последний уровень заполняется слева направо.
Двоичная куча может быть либо минимальной, либо максимальной. В максимальной - ключи родительских узлов всегда больше или равны тем, что у детей. В минимальной - ключи родительских узлов меньше или равны ключам дочерних элементов[21].