Защита информации и памяти

Для повышения достоверности информации, хранимой на различных уровнях иерархии памяти, применяются дублирование, избыточное кодирование и ограничение доступа. На практике часто используют комбинированное сочетание этих способов.

Дублирование информации заключается в следующем: вся информация (или отдельные ячейки) записывается несколько раз, обычно нечетное число раз (минимум три раза). Информация считывается специальным устройством и сравнивается. Суждение о правильности передачи выносится по совпадению большинства из считанной информации методами «два из трех», «три из пяти» и так далее. Например, кодовая комбинация 01101 при трехразовой записи была частично искажена, поэтому были считаны следующие комбинации: 10101, 01110, 01001. В результате проверки каждой позиции отдельно правильной считается комбинация 01101.

Среди методов защиты от ошибок наибольшее распространение получило избыточное кодирование, позволяющее получить более высокие качественные показатели работы устройств памяти. Его основное назначение - принятие всех возможных мер для того, чтобы вероятность искажений информации была достаточно малой, несмотря на наличие сбоев в работе ЭВМ. Широко применяется метод контроля циклическим избыточным кодом.

Контроль циклическим избыточным кодом – метод, использующий вычисление контрольной суммы и служащий для определения ошибок в передаваемых данных.

Помехоустойчивое кодирование предполагает разработку корректирующих (помехоустойчивых) кодов, обнаруживающих и испра­вляющих определенного рода ошибки, а также построение и реализацию кодирующих и декодирующих устройств и программных механизмов.

В помехоустойчивых кодах, кроме информационных элементов, всегда содержится один или несколько дополнительных элементов, являющихся проверочными. Наличие в кодах избыточной информации позволяет обнаруживать и исправлять (или только обнаруживать) ошибки.

Одной из простейших форм проверки ошибок является метод контроля на четность. Его суть заключается в том, что к каждой кодовой комбинации добавляется один разряд, в который записывается единица, если число единиц в кодовой комбинации нечетное, или ноль, если четное. При декодировании подсчитывается количество единиц в кодовой комбинации. Если оно оказывается четным, то поступившая информация считается правильной, если нет, то ошибочной.

Кроме проверки по горизонтали, контроль на четность и нечетность может проводиться и по вертикали.

Преимущества контроля на четность заключаются в минимальном значении коэффициента избыточности К (для пятиэлементного кода К=0,17) и в простоте его технической реализации, а недостаток – в том, что обнаруживаются ошибки, имеющие только нечетную кратность.

Однако такая методика проверки не может обнаружить ошибки в случае двойного переброса (например, две единицы перебросились в ноль) , что может привести к высокому уровню ошибок.

Двойная проверка на четность/нечетность является усоверше­нствованием одинарной проверки. В этой методике вместо бита четности в каждом символе определяется четность или нечетность целого блока символов. Проверка блока позволяет обнаруживать ошибки как внутри символа, так и между символами. Эта проверка называется также двумерным кодом проверки на четность. Она имеет значительное преимущество по сравнению с одинарной. С помощью такой перекрестной проверки может быть существенно улучшена надежность работы устройства хранения информации.

Еще одной формой проверки ошибок служит подсчет контрольных сумм. Это несложный способ, который обычно применяется вместе с проверкой на четность/нечетность. Сущность его состоит в суммировании численных значений всех ячеек блока памяти. Шестнадцать младших разрядов суммы помещаются в 16-разрядный счетчик контрольной суммы, который вместе с информацией пользователей записывается в память. При считывании выполняются такие же вычисления и сравнивается полученная контрольная сумма с записанной. Если эти суммы совпадают, подразумевается, что блок без ошибок. При этом имеется незначительная вероятность того, что в результате такой проверки ошибочный блок может быть не обнаружен.

Код Хэмминга позволяет не только обнаруживать, но и исправлять ошибки.

Код Хэмминга - метод определения и исправления ошибок при передаче данных, использующий проверочные биты и проверочную сумму.

В этом коде каждая кодовая комбинация состоит из m информа­ционных и k контрольных элементов, так, например, в семиэлементном коде Хэмминга n=7, m=4, k=3 (для всех остальных элементов существует специальная таблица). Контрольные символы 0 или 1 записываются в первый, второй и четвертый элементы кодовой комбинации, причем в первый элемент - в соответствии с контролем на четность для третьего, пятого и седьмого элементов, во второй - для третьего, шестого и седьмого элементов, и в четвертый - для пятого, шестого и седьмого элементов. В соответствии с этим правилом комбинация 1001 будет представляться в коде Хэмминга как 0011001, и в этом виде она будет записываться в ячейку памяти.

При декодировании в начале проверяются на четность первый, третий, пятый и седьмой элементы, результат проверки записывается в первый элемент контрольного числа. Далее контролируется четвертый – седьмой элементы – результат проставляется в младшем элементе контрольного числа. При правильно выполненной передаче контрольное число состоит из одних нулей, а при неправильной - из комбинации нулей и единиц, соответствующей при чтении ее справа налево номеру элемента, содержащего ошибку.

Для устранения этой ошибки необходимо изменить находящийся в этом элементе символ на обратный.

Код Хэмминга имеет существенный недостаток: при обнаружении любого числа ошибок он исправляет лишь одиночные ошибки.

Избыточность семиэлементного кода Хэмминга равна 0,43. При увеличении значности кодовых комбинаций увеличивается число проверок, но уменьшается избыточность кода.

На одном процессоре в защищенном режиме могут параллельно исполняться несколько задач. При этом использование памяти управляется механизмами сегментации и трансляции страниц. Защита памяти каждой выполняемой программы осуществляется с помощью ограничения доступа по чтению-записи. Попытки выполнения недопустимых команд, выхода за рамки отведенного про­странства памяти и разрешенной области ввода/вывода контролируются систе­мой защиты. Процессор предоставляет необходимые аппаратные средства поддержки защиты памяти, а их реальное использование зависит от операционной системы.

При страничной организации памяти для обеспечения целостности, секретности и взаимной изоляции выполняющихся программ предусматриваются различные режимы доступа к страницам, которые реализуются с помощью специальных индикаторов доступа в элементах таблиц страниц.

При сегментной организации памяти для защиты сегментов вводятся различные режимы доступа к сегментам. Из программных сегментов допускается только выборка команд и чтение констант. Запись в программные сегменты может рассматриваться как незаконная и запрещаться системой. Выборка команд из сегментов данных также может считаться незаконной и любой сегмент данных может быть защищен от обращений по записи или по чтению. При сегментной организации памяти наличие базово-граничных пар в дескрипторе таблицы дескрипторов и элементах таблицы дескрипторов пре­дотвращает возможность обращения программы пользователя к таблицам дескрипторов и страниц, с которыми она не связана.

Внешняя память

Классификация накопителей

Для хранения программ и данных в IBM PC-совместимых пер­сональных компьютерах используют различного рода накопители, общая емкость которых, как правило, в сотни раз превосходит емкость оперативной памяти. По отношению к компьютеру нако­пители могут быть внешними и встраиваемыми (внутренними). В первом случае такие устройства имеют собственный корпус и ис­точник питания, что экономит пространство внутри корпуса ком­пьютера и уменьшает нагрузку на его блок питания. Встраиваемые накопители крепятся в специальных мон­тажных отсеках (drive bays) и позволяют создавать компакт­ные системы, кото­рые совмещают в системном блоке все необходимые устрой­ства.

Сам накопитель можно рассматривать как совокупность носи­теля и соответствующего привода. В связи с этим различают на­копители со сменным и несменным носителями. В зависимости от типа носителя все накопители можно подразделить на нако­пители на магнитной ленте и дисковые накопители. Накопители на магнитной ленте в свою очередь бывают двух видов: накопи­тели на полудюймовых девятидорожечных лентах, работающие в старт-стопном режиме, и стриммеры, работающие в потоковом (инерционном) режиме. Накопители на магнитной ленте назы­вают также устройствами последовательного доступа, так как об­ратиться к удаленным фрагментам данных можно только после считывания менее удаленных. Накопители же на дисках, как пра­вило, являются устройствами произвольного доступа, поскольку нужные данные могут быть получены без обязательного прочтения им предшествующих.

По способу записи / чтения информации на носитель дисковые накопители можно подразделить на магнитные, оптические и маг­нитооптические. Среди дисковых накопителей можно выделить:

 накопители на флоппи-дисках;

 накопители на флоптических дисках;

 накопители на несменных жестких дисках (винчестеры);

 накопители на сменных жестких дисках;

 накопители на сменных гибких дисках, использующие эффект Бернулли;

 накопители на магнитооптических дисках;

 накопители на оптических дисках с однократной записью и многократным чтением CD-R;

 накопители на оптических дисках с многократной записью и многократным чтением CD-RW;

 накопители на оптических компакт-дисках CD-ROM (Compact Disk ROM).

Мир накопителей со сменным носителем гораздо шире и многообразнее остальных. В последнее время появились сменные винчестеры, которые чаще всего ис­пользуются в портативных компьютерах. Такое многообразие сменных накопителей связано, видимо, с несколькими причина­ми.

Во-первых, каждый пользователь персонального компьютера знает: какова бы ни была емкость винчестера, наступит время, когда он заполнится до отказа. С другой стороны, чисто теорети­чески емкость накопителя со сменным носителем не имеет предела.

Во-вторых, довольно остро стоит проблема архивирования и резервного копирования накапливаемой инфор­мации. Исторически она решается с использованием сменных носителей.

В-третьих, часто требуется опреде­ленный уровень защиты используемых данных. Разумеется, смен­ные носители – наиболее подходящее средство для обеспечения секретности при хранении частной, служебной и иной закрытой информации. По понятным причинам, подобный способ хране­ния данных исключает необходимость в специальных системах защиты.

В-четвертых, в ряде случаев с помощью сменных носи­телей вопрос переноса нескольких единиц, десятков и даже сотен мегабайт данных решается довольно просто. Это, конечно, дале­ко не все имеющиеся причины, и при желании к ним можно добавить еще несколько.

Наши рекомендации