Арифметико-логическое представление матрицы доступа в дискреционной модели разграничения доступа

А.Б. Сизоненко,

кандидат технических наук, доцент, Краснодарский университет МВД России

АРИФМЕТИКО-ЛОГИЧЕСКОЕ ПРЕДСТАВЛЕНИЕ МАТРИЦЫ ДОСТУПА В ДИСКРЕЦИОННОЙ МОДЕЛИ РАЗГРАНИЧЕНИЯ

ДОСТУПА

ARITHMETIC-LOGICAL REPRESENTATION OF THE ACCESS MATRIX IN A DISCRETIONARY ACCESS CONTROL MODEL

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

Discretionary access control model is considered. Methods for representing logic functions by arithmetic polynomials and algorithms of their receipt are analyzed. Arithmetic methods of representations of Boolean functions is proposed to use for the implementation of access matrix. Algorithm for minimizing the number of members of the modular arithmetic polynomial that describes the system is not completely defined Boolean functions is applied to optimal representation of the access matrix.

Введение

Матрицы доступа содержат набор прав доступа субъектов к объектам и являются основным элементом дискреционной модели разграничения доступа. Руководящие документы требуют осуществлять контроль доступа субъектов к защищаемым ресурсам в соответствии с матрицей доступа в автоматизированных системах с классами защиты 1А, 1Б, 1В, 1Г [5], а для средств вычислительной техники дискреционная модель разграничения доступа применяется с шестого по первый класс защищенности [6]. Матрицу доступа можно свести к таблице истинности и представить системой логических функций. В научной литературе описаны способы реализации логических функций арифметическими полиномами (АП) [2, 4]. Такое представление при программной реализации отличается от традиционной большей гибкостью, производительностью и, в некоторых случаях, более компактным представлением [2, 4]. Целью данной работы является достижение более компактного представления матрицы доступа по сравнению с традиционным табличным представлением путем ее реализации арифметическими полиномами.

1. Описание дискреционной модели разграничения доступа

Рассмотрение проведем на примере модели безопасности Харрисона — Руззо — Ульмана [1], являющейся классической дискреционной моделью, которая реализует произвольное управление доступом субъектов к объектам и контроль за распространением прав доступа.

Формальное описание модели состоит из следующих элементов [1]:

1. Конечное множество прав доступа R = {r0, ..., rd-1}.

2. Конечные множества исходных субъектов S = {s0, к, sk_j} и объектов

O ={o0, к, om_j}. Для того чтобы включить в область действия модели и отношения

между субъектами, принято считать, что все субъекты одновременно являются и объектами — S с O.

3. Исходная матрица доступа M[s, o], каждая ячейка которой содержит права доступа субъектов к объектам, принадлежащих множеству прав доступа R.

4. Конечный набор команд C = {«(x1,..., xk)}, каждая из которых состоит из условий выполнения и интерпретации в терминах перечисленных элементарных операций.

Операция enter вводит право r в существующую ячейку матрицы доступа. Содержимое каждой ячейки рассматривается как множество, т.е. если это право уже имеется, то ячейка не изменяется.

Действие операции delete противоположно действию операции enter. Она удаляет право из ячейки матрицы доступа, если оно там присутствует. Поскольку содержимое каждой ячейки рассматривается как множество, delete не делает ничего, если удаляемое право отсутствует в указанной ячейке.

Операции create subject и destroy subject соответственно создают или удаляют субъект, а операции create object и destroy object соответственно создают или удаляют объект.

Поведение системы моделируется с помощью понятия состояния. Пространство состояний системы образуется декартовым произведением множеств составляющих ее объектов, субъектов и прав — O XSX R. Текущее состояние системы Q в этом пространстве определяется тройкой, состоящей из множества субъектов, множества объектов и матрицы прав доступа М, описывающей текущие права доступа субъектов к объектам, — Q = (S, O, M).

2. Представление систем булевых функций арифметическими полиномами

Произвольный кортеж булевых функций fd (X )* fd_1(X)* •••* f1(X) может быть

единственным образом представлен АП [2]:

2n_1

Y = D(X) = 2cXx2 ...хП,

i=0

где N = (n0 ... n2„ ) — целочисленный вектор коэффициентов АП;

n_1

i = (in_1 in_2 K i0) = 2 i 2u, i e{0,1} — разряды двоичной системы счисления.

u=0

Ц i'6e i = 0,

Xp = \

lxp, йе ip = 1

АП, описывающий систему логических функций, можно получить алгебраическим и матричным способами [2, 4], а также способом последовательной поляризации [8].

Алгебраический способ заключается в реализации следующего алгоритма. Алгоритм 1.

Шаг 1. Получение арифметических полиномов р (X) для каждой булевой функции y}- = fj(X), j = 1,..., d , по формулам замены логических операций на арифметические: x © y = x + у _ 2 xy; x v y = x + y _ xy; x л y = xy;

X = 1_ x.

Шаг 2. Получение арифметических полиномов, взвешенных весами 2j_1 (j = 1..., d).

Шаг 3. Получение искомого арифметического полинома Б(Х) путем суммирования арифметических полиномов, полученных в шаге 2 и приведения подобных слагаемых.

Матричное преобразование выполняется следующим образом:

С = А2 „ • У,

где У — вектор истинности БФ; А — матрица прямого арифметического преобразо-

вания размерности 2п X 2”; Матрица А

А 2” -1 0 - А 2” -1 А2 ” -1

называется п-и кронекеров-

1 0

-1 1

ской степенью А2 п =  А, базовой матрицы А1 =

2 I=1

Матричные преобразования хорошо алгоритмизируются и удобны для практического применения. Однако алгебраический способ недостаточно формализован, что затрудняет его эффективную реализацию средствами вычислительной техники. Для выполнения матричных преобразований необходимо ^ = 3” - 2п операций [9].

В [8] представлен алгоритм получения коэффициентов арифметического полинома методом последовательной поляризации, позволяющий уменьшить количество операций до М = п 2”-1.

Поляризация арифметического полинома по переменной хр будет заключаться в замене всех вхождений инверсной переменной Хр на 1 - хр.

хр  1 - хр .

Можно формализовать процесс поляризации, перейдя к выполнению действий только над коэффициентами, с помощью алгоритма, представленного ниже [8].

Алгоритм 2.

1. Выделение в векторе коэффициентов тех коэффициентов, которым соответствуют термы с инверсной переменной. Выделение осуществляется выполнением операции умножения вектора коэффициентов на инвертированный и транспонированный вектор-столбец из таблицы истинности, соответствующим переменной, по которой происходит поляризация.

2. Умножение полученного в шаге 1 вектора на -1.

3. Сдвиг вектора на 2р разрядов вправо.

4. Сложение вектора с исходным вектором коэффициентов (что соответствует приведению подобных слагаемых в алгебраическом способе представления).

Если т < Утх , где Утх — максимальное значение, принимаемое У, то произвольный кортеж логических функций может быть представлен модулярным арифметическим полиномом [4]:

У = МБ (X) =

где у = |сг|т . Коэффициенты модулярного АП МБ(Х) лежат в области целых неотрицательных чисел, а их числовой диапазон равен значению модуля т [4].

3. Реализация матрицы доступа арифметическими полиномами

Разобьем матрицу доступа на столбцы, соответствующие отдельным объектам, и представим его в виде таблицы истинности (табл. 1).

Таблица 1

Представление матрицы доступа таблицей истинности

+

2п -1

т

£ Номер набора Переменные ( X) Права доступа(Я) У

Хп-1 Х1 Х 0 тй -1 т1 Т0

*0 0 0 0 0 Тй-1

*1 1 0 0 1 тй-1( Х 1) »1( X 2) )2 (т0 Г1

їк к-1 х х х -1 к -1 С3 т1( Хк-1) -1 к (т0 Г-1

к х х х - - - -

2п - 2 1 1 0 - - - -

2п -1 1 1 1 - - - -

Количество переменных возьмем равным:

п = |~1о§2 к],

где |~ ~\ обозначает округление до ближайшего большего целого числа.

В таблице истинности первые к значений будут определены, а на последних 2п - к наборах функция будет не определена. Количество функций будет соответствовать количеству возможных прав доступа субъекта к объекту. Логическая «1» обозначает наличие права, логический «0» — отсутствие. Вектор У является целочисленным, значения которого вычисляются следующим образом:

Г = г-і2^ 1 + ... + т2 + V

Для получения вектора коэффициентов можно применить прямое матричное преобразование (1) либо алгоритм последовательной поляризации (алгоритм 2).

Используя алгоритм, изложенный в [3, 7], можно оптимизировать количество членов арифметического полинома путем доопределения частично заданной системы булевых функций на тех наборах, на которых значение функции не задано.

Алгоритм 3.

Шаг 1. Построим образующую матрицу прямого матричного преобразования, соответствующую количеству переменных.

Шаг 2. Из матрицы уберем столбцы, соответствующие наборам, на которых система булевых функций не определена. Уберем неопределенные наборы и из вектора истинности У . Перемножим полученные образующую матрицу и вектор истинности. Получим вектор-столбец.

Шаг 3. Составим образующую матрицу из вектора-столбца, полученного в шаге

2 в левой части, и удаленных столбцов образующей матрицы.

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

Повторим шаги 2—4 алгоритма, пока не будут доопределены значения функции на всех наборах.

Разберем пример. Пусть дано множество субъектов £ = {*0, ..., *9}, таким образом, к = 10. Множество прав доступа включает право на чтение (тй), запись (»г), выполнение (ех), следовательно, й = 3 . Права доступа субъектов к объекту заданы.

Построим таблицу истинности. Вычислим количество переменных по формуле (2): п = Р 1о§ 210^ = 4. Система булевых функций будет задана на 10 наборах и на 6 будет не определена (табл. 2).

Таблица 2

Пример матрицы доступа

£ Номер набора Переменные (X) Права доступа (Я) У

х3 х2 х1 х 0 Г2 (ех) Г1 (^т) 5-І

*0 0 0 0 0 0 0 0 0 0

*1 1 0 0 0 1 0 1 1 3

*2 2 0 0 1 0 0 0 0 0

3 0 0 1 1 1 0 1 5

*4 4 0 1 0 0 0 0 0 0

*5 5 0 1 0 1 1 1 1 7

*6 6 0 1 1 0 0 1 1 3

*7 7 0 1 1 1 1 0 1 5

*8 8 1 0 0 0 0 0 0 0

*9 9 1 0 0 1 1 1 1 7

10 1 0 1 0 - - - -

11 1 0 1 1 - - - -

12 1 1 0 0 - - - -

13 1 1 0 1 - - - -

14 1 1 1 0 - - - -

15 1 1 1 1 - - - -

Вектор значений, вычисленный по алгоритму 3, будет следующий:

У = [0 30507350701033 1].

Используя алгоритм 2, получим вектор коэффициентов АП:

N =[0 30204310400000 0].

АП будет иметь вид: У = МО( X) = |3 х0 + 2 х1х0 + 4 х2 х0 + 3 х2 х1 + х2 х1 х0 + 4 х3 х0|+.

Если к объекту обращается субъект s3, то, вычислив значение полинома на третьем наборе переменных X = (0011), получим У = ЫЭ(X) = |3 + 2|+ = 510 = 1012, что соответствует матрице доступа.

ЛИТЕРАТУРА

1. Девянин П.Н. Модели безопасности компьютерных систем: учеб. пособие для студ. высш. учеб. заведений. — М.: Академия, 2005. — 144 с.

2. Малюгин В.Д. Параллельные логические вычисления посредством арифметических полиномов. — М.: Наука. Физматлит, 1997. — 192 с.

3. Сизоненко А.Б. Алгоритм построения модулярного арифметического полинома по частично заданной системе булевых функций / Современные направления теоретических и прикладных исследований 2011: сборник научных трудов по материалам международной научно-практической конференции. 15—28.03.2011. Том 2. Технические науки. — Одесса: Черноморье, 2011. — С. 72—75.

4. Финько О.А. Модулярная арифметика параллельных логических вычислений: монография / под ред. В. Д. Малюгина. — М.: Институт проблем управления им.

В. А. Трапезникова РАН; Краснодар: КВИ, 2003. — 224 с.

5. Руководящий документ «Автоматизированные системы. Защита от несанкционированного доступа к информации. Классификация автоматизированных систем и требования по защите информации». Утвержден решением председателя ГТК при Президенте РФ от 30 марта 1992 г.

6. Руководящий документ «Средства вычислительной техники. Защита от несанкционированного доступа к информации. Показатели защищенности от несанкцио-

нированного доступа к информации». Утвержден решением председателя ГТК при Президенте РФ от 30 марта 1992 г.

7. Сизоненко А.Б. Реализация систем частичных булевых функций модулярными арифметическими полиномами // Вестник Воронежского института МВД России. — 2011. — №2. — С. 100—107.

8. Сизоненко А.Б. Получение арифметических полиномов методом последовательной поляризации // Системы управления и информационные технологии. — 2011. — №2.1(44). — С. 169—172.

9. Шалыто А. А. Логическое управление. Методы аппаратной и программной реализации алгоритмов. — СПб.: Наука, 2000. — 747 с.