Проверка соответствия ориентированного графа алгебраической решётке | ПДМ. 2018. № 41. DOI: 10.17223/20710410/41/6

Проверка соответствия ориентированного графа алгебраической решётке

Рассмотрена проблема проверки изоморфности ориентированного графа диаграмме некоторой решётки. Исследованы три типа конечных решёток, используемых в моделях разграничения доступа. Построен алгоритм проверки соответствия ориентированного графа прямому произведению решётки подмножеств и линейной решётки. Алгоритм основан на анализе структуры двух множеств: множества вершин, покрывающих ровно одну вершину, и множества атомарных вершин. Доказано, что вычислительная сложность алгоритма проверки не превосходит O(n3).

The check of the correspondence of the directed graph to the algebraic lattice.pdf Введение Работа посвящена проблеме поиска решётки, соответствующей заданному орграфу G. Данная проблема находит применение при построении и оптимизации структур, на которых строится политика безопасности компьютерных систем [1]. Можно выделить два случая: 1) Орграф G может быть дополнен до диаграммы некоторой решётки без добавления новых вершин. Необходимо определить соответствующую ему решётку. При этом под дополнением графа понимается построение его транзитивного замыкания - пополнение графа всеми дугами, соединяющими достижимые вершины. 2) Для построения диаграммы некоторой решётки необходимо дополнить орграф G как вершинами, так и рёбрами. В этом случае необходимо определить минимальную решётку, диаграмма которой включает данный орграф. Минимизируется число элементов решётки. Остановимся на первой задаче, которая частично связана с пятой проблемой Бирх-гофа [2]. Различные вопросы, касающиеся графов, соответствующих решёткам, рассматриваются в [3 - 7]. Во всех этих работах авторы исходят из существования некоторой решётки, строят соответствующей ей граф и проводят его исследования. Актуальной представляется и обратная задача - исследовав свойства графа, сопоставить ему некоторую решётку. Нас интересует решётка, полученная в результате прямого произведения решётки подмножеств и линейной решётки. Основная цель исследования - построение и оценка вычислительной сложности алгоритма проверки соответствия ориентированного графа такой решётке. 1. Решёточный граф Определение 1. Частично упорядоченное множество S называется решёткой, если для любых двух его элементов x,y e S в множестве S можно найти их точную верхнюю и точную нижнюю грани: sup{x,y},inf{x,y} e S. Орграф G = (V, E), не содержащий ориентированных циклов, задаёт отношение частичного порядка на множестве своих вершин: v1 ^ v2 (v1, v2 e V) тогда и только тогда, когда в орграфе существует ориентированный путь p(v1,v2). Очевидно, что полученное множество не всегда является решёткой. Определение 2. Ориентированный граф будем называть решёточным, если его вершины образуют решётку с отношением порядка «^», порождённым ориентированными путями орграфа. Имея в распоряжении матрицу смежности орграфа, несложно доказать следующий факт. Теорема 1. Трудоёмкость проверки, является ли орграф решёточным, не превышает O(n4). Рассмотрим далее некоторые частные решения задачи восстановления решётки. На сегодняшний день в моделях безопасности компьютерных систем получили широкое распространение три решётки: 1) Линейная решётка. Под линейно упорядоченным множеством B понимается множество, для любых двух элементов которого определено отношение порядка. Как легко показать, такое множество образует решётку: если a ^ b, то sup{a,b} = a и inf{a,b} = b. Решётка данного вида является наиболее распространённой в системах защиты информации, она описывает уровни доступа к данным. Если B = {0,1,..., m - 1}, то линейная решётка обозначается SL(m). 2) Решётка подмножеств. Пусть задано множество A мощности n. Рассмотрим множество всех его подмножеств 2a = {X : X С A}. Введём на множестве 2A отношение порядка: VX1,X2 e 2A (X1 ^ X2 ^ X1 D X2). Легко доказать, что отношение Xl D X2 есть отношение нестрогого порядка, а множество 2A частично упорядоченное: так, не для любой пары элементов определено отношение порядка. Наибольшую нижнюю и наименьшую верхнюю грани определим на основе операций пересечения и объединения множеств: inf{Xl,X2} = Xl П X2, sup{Xl,X2} = Xl U X2. Также нетрудно доказать, что (2A, D, U, П) -решётка. Примерами её использования в реальных компьютерных системах может служить множество атрибутов файла и зависимость выходной величины от подмножества множества входных элементов. Если A = {1, 2,... , n}, то решётка подмножеств обозначается SX(n) и содержит 2n элементов. 3) MLS-решётка- прямое (декартово) произведение первых двух решёток. Алгебраическая решётка используется в моделях безопасности для задания уровней секретности информации и уровней доверия к пользователям и называется решёткой ценностей. Рассмотрим задачу проверки соответствия указанным решёткам заданного решёточного графа. Для этого потребуется ряд определений и теорема об изоморфности MLS-решётке. 2. Исследование MLS-решётки Из определения решётки нетрудно вывести, что любое конечное подмножество решётки имеет точную верхнюю и нижнюю грани. В частности, точную верхнюю и нижнюю грань имеет любое подмножество конечной решётки S (в частности, вся S). Обозначим sup S = I, inf S = O - таким образом, любой элемент конечной решётки S меньше или равен I и больше или равен O. Определение 3. Будем говорить, что элемент y решётки S покрывает элемент x этой решётки (обозначается y У x), если y > x и не существует такого z G S, что y > z > x. Интервалом [x,y] для элементов x,y G S, x ^ y, называется множество таких элементов z G S, что x ^ z ^ y. Таким образом, y покрывает x в точности тогда, когда интервал [x, y] содержит лишь сами элементы x и y. Лемма 1. Пусть S - конечная решётка, x,y G S, x < y. Тогда найдётся такой z G [x, y], что z У x. Доказательство. Пусть y не покрывает x. Тогда по определению можно построить такой yl, что x < yl < y. По построению yl G [x, y]. Если yl также не покрывает x, можем аналогично построить y2, такой, что x < y2 < yl. При этом, поскольку yl < y, y2 также лежит в интервале [x,y]. Продолжая аналогичные построения, получаем цепочку yl > y2 > y3 > ... различных элементов, лежащих в интервале [x,y]. Но поскольку решётка S конечна, в интервале [x, y] может лежать лишь конечное число различных элементов, то есть в какой-то момент мы не сможем построить очередной yi. Это означает, что yi-l покрывает x. ■ Заменив в доказательстве знаки всех неравенств, можно сформулировать двойственное утверждение: в любом интервале [x, y] конечной решётки S, x < y, найдётся такой z G [x, y], что z y. Определение 4. Элемент a G S называется атомарным элементом решётки S, имеющей инфинум O = inf S, если a У O. Отметим, что атомарные элементы не могут покрывать отличных от O элементов решётки, так как если атомарный элемент a покрывает какой-то отличный от O элемент b, то a > b > O и a не покрывает O. Определение 5. Пусть S, S' - решётки. Отображение ф : S ^ S' называется порядковым гомоморфизмом решёток, или изотонным отображением, если х ^ у влечёт за собой ф(х) ^ ф(у) для любых x, y Е S. Таким образом, изотонное отображение сохраняет порядок элементов решётки. Определение 6. Прямым произведением решёток A и B называется решётка S = A х B, определённая на декартовом произведении множеств A и B следующим образом. Для а, а' Е A, 6, 6' Е B полагаем (а, 6) ^ (а', 6') в точности тогда, когда а ^ а' и 6 ^ 6'. При этом супремумом и инфинумом элементов (а, 6), (а', 6') Е A х B будут соответственно (8ир{а,а'}, sup{6,6'}) и (inf{а, а'}, inf{6,6'}). Если решётки A и B имеют нижние грани, то inf(A х B) = (inf A,inf B). Отметим, что элемент (а, 6) решётки A х B покрывает элемент (а', 6') той же решётки в том и только в том случае, когда а >- а', 6 = 6' или а = а', 6 >- 6'. (1) Действительно, если выполнена, например, первая пара условий, то (а, 6) > (а', 6') и если найдётся такой (х,у) Е A х B, что (а, 6) > (х,у) > (а', 6'), то а > х > а', что противоречит условию а >- а'. Обратно, предположим, что для (а, 6) > (а', 6') условие (1) не выполняется. Тогда либо а > а', 6 > 6', либо 6 = 6', но а не покрывает а', либо а = а', но 6 не покрывает 6'. В первом случае (а, 6) ^ (а, 6') > (а',6'), во втором случае найдётся такой х Е A, что а > х > а', и тогда (а, 6) > (х, 6) > (а', 6'), аналогично в третьем случае (а, 6) > (а, у) > (а', 6') для такого у Е B, что 6 > у > 6'. Так или иначе, получаем, что при невыполнении условия (1) элемент (а, 6) решётки A х B не может покрывать её элемент (а', 6'). Определение 7. Решётки S и S' называются изоморфными, если существует биективное изотонное отображение ф : S ^ S'. Это отображение называется изоморфизмом решёток S и S'. Любая линейная решётка B при |B | = m изоморфна решётке SL(m). Любая решётка 2a при |A| = n изоморфна решётке SX(n). Отметим также, что если решётка A изоморфна A', а B изоморфна B', то и A х B изоморфна A' х B' - их изоморфизм получается как прямое произведение изоморфизмов решёток-сомножителей. Напомним, что цепью в частично упорядоченном множестве S называется его вполне упорядоченное подмножество; так, конечная цепь длины m представляет собой набор элементов 61,... ,6m, таких, что 61 ^ 62 ^ ... ^ 6m. Будем говорить, что элементы 61,..., 6m последовательно покрывают друг друга, если 61 - 62 - ... - 6m. Теорема 2. Конечная решётка S изоморфна MLS-решётке, то есть прямому произведению полной решётки подмножеств на линейную решётку SX(n) х SL(m) для некоторых m, n ^ 1, тогда и только тогда, когда она удовлетворяет следующим трём условиям: 1) |S| = 2nm; 2) если m ^ 2, то в точности n +1 элементов решётки S являются атомарными; в случае m = 1 атомарны в точности n элементов S; 3) каждый элемент решётки S, кроме указанных далее n+m элементов, покрывает по крайней мере два других. Исключения из этого условия составляют цепь из m последовательно покрывающих друг друга элементов S, начинающаяся с её инфинума O (каждый из них, кроме O, покрывает лишь предшествующий элемент цепи), а также n атомарных элементов, не входящих в эту цепь. Доказательство. Проверим сначала выполнение условий 1-3 для решётки T(n,m) = SX(n) х SL(m). Условие 1 следует из того, что |SX(n)| = 2n, |SL(m)| = m. При m =1 атомарными элементами решётки T(n, 1) = SX(n) х SL(1) = SX(n) являются в точности 1-элементные подмножества множества N = {1,... , n}, которых ровно n, что даёт выполнение условия 2. Покажем, что при m =1 все элементы решётки SX(n), кроме атомарных и O (соответствующего пустому множеству), покрывают по крайней мере два других элемента SX(n) (ранее показано, что атомарные элементы покрывают только O). Действительно, такие элементы являются k-элементными подмножествами множества N, k ^ 2. Из определения покрытия следует, что k-элементное множество покрывает все свои (k - 1)-элементные подмножества. Число таких подмножеств равно Cfc-1 = k ^ 2, что и требуется. Таким образом, при m =1 условия 2 и 3 проверены. Проверим условие 2 для решётки T(n,m) при m ^ 2. Из условия (1) следует, что элемент (a, b) Е T(n, m) является атомарным (то есть покрывает (0, 0)) тогда и только тогда, когда a атомарен в SX(n) и b = 0, либо a = 0 и b атомарен в SL(m). Таким образом, атомарными в T(n, m) являются в точности n +1 элементов ({1}, 0),... , ({n}, 0), (0,1), что доказывает выполнение условия 2. Осталось проверить выполнение условия 3 при m ^ 2. Прежде всего заметим, что указанная в условии цепь из m последовательно покрывающих друг друга элементов получится, если рассмотреть элементы (0, 0),... , (0, m - 1). Действительно, согласно условию (1), (0, k) У (a, b) для некоторого (a, b) Е T(n, m) равносильно тому, что a = 0 (так как a - 0 невозможно) и b - k, то есть (a, b) = (0, k - 1) -предыдущий элемент цепи. Таким образом, указанные элементы действительно образуют цепь и каждый элемент цепи (кроме (0, 0), являющегося инфинумом T(n,m)) покрывает ровно один элемент T(n, m) (предыдущий элемент цепи). Покажем, что все элементы T(n,m), кроме её инфинума, атомарных элементов и элементов рассмотренной выше цепи, покрывают по крайней мере два других элемента T(n, m). Пусть (a, b) Е T(n, m) - такой элемент (a С N, b Е {0,..., m - 1}). По построению это равносильно тому, что |a| ^ 2 при b = 0 и a = 0 при b ^ 1. В первом случае, как мы видели при рассмотрении случая m =1, найдутся такие x,y Е SX(n), x = y, что a У x, a У y. Тогда (a, 0) У (x, 0) и (a, 0) У (y, 0). Во втором случае найдётся хотя бы один x Е SX(n), такой, что a У x (возможно, x = 0), и тогда (a,b) У (x,b) и (a, b) У (a, b - 1). Докажем теперь обратное утверждение теоремы - если решётка S удовлетворяет условиям 1-3 при некоторых m, n ^ 1, то она изоморфна SX(n) х SL(m). Обозначим через A = {a0,...,an} множество атомарных элементов S (A = {a1, . . . , an} в случае m = 1). Если m = 1, указанная в условии 3 цепь по построению состоит только из элемента O = inf S. В случае m ^ 2 эта цепь включает в себя m элементов, из которых ровно один (следующий за O) является атомарным; без ограничения общности считаем, что это a0. Обозначим эту цепь B = {b0,..., bm-1}, b0 - b1 - ... - bm-1 (при этом b0 = O, b1 = a0). Обозначим A* = A \ {a0} (A* = A при m = 1). Отметим, что, независимо от значения m, | A* | = n. Зададим отображение ^ : S B следующим образом. Каждому элементу s Е S сопоставим упорядоченную пару, состоящую из подмножества всех элементов A*, меньших или равных s, а также максимального элемента цепи B, меньшего или равного s: ^(s) = ({a Е A* : a ^ s}, max{b Е B : b ^ s}). Докажем, что отображение ^ является изоморфизмом решёток. Покажем сначала, что ф изотонно. Пусть р,р' e S, р ^ р'. Обозначим ф(р) = (P, b), ф(р') = (P', b'). Если для некоторого a e A* выполнено a e P, то a ^ p ^ p' и a e P'. Отсюда P С P'. Далее, из b ^ р следует b ^ р', поэтому b ^ b'. Тогда (P, b) ^ (P',b') в решётке 2A* x B. Покажем, что ф инъективно. Пусть ф(р) = ф(р') = (L,bj) для р,р' e S, выведем отсюда, что р = р'. Доказательство будем вести индукцией по сумме |L| + j. При |L| + j = 0 имеем ф(р) = ф(р') = (0,0), откуда следует, что в S нет ни одного атомного элемента, меньше или равного р или р'. Но тогда р = р' = О, так как если, например, р > О, то по лемме 1 в S найдётся элемент, меньший или равный р и покрывающий О. Пусть утверждение выполнено для всех |L| + j < k, k > 0. Покажем его выполнение при |L| + j = k. Предположим противное: ф(р) = ф(р') = (L, bj), но р = р'. Обозначим q = sup(L U {bj}) (поскольку р = р', без ограничения общности можно полагать q = р). По построению получаем q ^ р (супремум элементов из L U {bj} меньше или равен их верхней грани) и, с учётом неравенства, q < р. Тогда по лемме 1 в интервале [q,р] найдётся такой элемент r, что r У q. Заметим, что, исходя из построения q, ф^) ^ (L, bj). Тогда ввиду доказанной изотонности ф получаем ф^) = (L,bj) в силу неравенства q ^ р и затем ф(г) = (L, bj) в силу неравенств q ^ r ^ р. Поскольку L = 0 или bj = О, имеем q = О, а значит, r не атомарен. Кроме того, r e B, так как каждый элемент B, отличный от О, покрывает предшествующий в цепи, поэтому q также лежит в B, и ф(г) = ф^), поскольку ф(г) = (• , r), а ф(q) = (• ,q). Тогда по условию 3 теоремы r покрывает по крайней мере два разных элемента S, и найдётся такой t e S, t = q, что r У t. При этом ф(£) ^ ф(г) = (L, bj), но ф(^) = (L, bj), так как в противном случае получим t ^ q (из тех же соображений, из которых р ^ q), и тогда r > t > q, что противоречит тому, что r покрывает q. Таким образом, получили, что ф(t) < (L,bj). Обозначим ф^) = (M, bj) < (L,bj). Из последнего неравенства следует, что |M | + i < k. Тогда для любой верхней грани t' множества M U {bj}, меньше или равной t, из t' ^ t ввиду изотонности ф получим ф(^) ^ (M, bj). С другой стороны, для t', являющегося верхней гранью M U {bj}, по построению ф(^) ^ (M,bj). Отсюда ф(^) = (M, bj) = ф(£), и t' = t в силу предположения индукции. Заметим теперь, что t является верхней гранью (M, bj) по построению. Тогда sup(M, bj) ^ t и из проведёных рассуждений следует, что t = sup(M, bj). Но q также является верхней гранью M U {bj}, и тогда q ^ sup(M, bj) = t. Получаем r > q > t (t = q по построению), а это противоречит тому, что r покрывает t. Инъективность ф доказана. Сюръективность ф следует из его инъективности (дающей ^(S)| = |S|) и условия 1 теоремы (дающего |S| = |2A* x B|). Таким образом, ф задает изоморфизм решёток S и 2A* x B, последняя из которых изоморфна SX(n) x SL(m). ■ Сделаем замечание о структуре рассматриваемых теоремой 2 решёток, которое понадобится в дальнейшем. Следствие 1. Решётки SX(n) x SL(2) и SX(n + 1), n ^ 1, эквивалентны. Доказательство. Применим к решётке S = SX(n) x SL(2) прямое утверждение теоремы 2. Согласно условию 1, |S| = 2n • 2 = 2n+1. Согласно условию 2, S содержит ровно n +1 атомарных элементов. Наконец, указанная в условии цепь из двух элементов, помимо О, содержит элемент, покрывающий его, то есть атомарный. Таким образом, согласно условию 3, исключениями из правила, согласно которому каждый элемент S должен покрывать два других её элемента, являются в точности O и все атомарные элементы S. Теперь, применяя к S обратное утверждение теоремы 2, получаем с учётом доказанного, что S изоморфна SX(n +1) х SL(1), то есть SX(n + 1). ■ Оценим сложность проверки указанных в теореме 2 условий при определении структуры данной конечной решётки S. Решётку будем полагать заданной её матрицей инцидентности, то есть матрицей, для каждой пары элементов решётки указывающей, какой из них больше (либо что они несравнимы). Теорема 3. Для проверки изоморфизма конечной решётки S, заданной своей матрицей инцидентности, произведению решёток SX(n) х SL(m) при каких-либо (неизвестных заранее) m, n ^ 1 достаточно выполнить O(|S|2) операций. Доказательство. Будем проверять выполнение условий теоремы 2 для каких-либо m, n. Для этого определим элементы решётки S, покрывающие ровно один её элемент (а также определим инфинум S), затем выделим среди них атомарные элементы (что даст возможное значение n) и определим, удовлетворяют ли оставшиеся m элементов указанной в условии 3 теоремы 2 структуре. Обозначим множество элементов S, покрывающих ровно один другой её элемент, через P. Покажем, что для определения принадлежности заданного элемента p £ S множеству P достаточно совершить два прохода по набору L(p) = {q £ S : q < p} элементов S, строго меньших p (они получаются из строки, соответствующей p в матрице инцидентности S). При этом если таких элементов нет (L(p) = 0), то p = O. Если такой элемент только один, то L(p) = {O} и p атомарен, так как если бы нашёлся такой q £ S, что p > q > O, то O,q £ L(p). Множество атомарных элементов S обозначим A. Рассмотрим случай |L(p)| ^ 2. Заметим, что p £ P тогда и только тогда, когда в множестве L(p) содержится его супремум (который p и покрывает). Действительно, если r = sup L(p), r £ L(p), то r < p, и если найдётся такой s £ S, что r < s < p, то по построению s £ L(p), и тогда s ^ r - противоречие, означающее, что r p. При этом для любого другого r' £ L(p), r' = r, получается r' < r < p, что делает невозможным r' - p. Обратно, пусть в L(p) содержится ровно один элемент r, покрываемый p. Тогда в L(p) не найдётся элемента, большего r, так как если s > r, s £ L(p), то p > s > > r и p не покрывает r. Предположим сначала, что r является верхней гранью L(p). Тогда r = supL(p) (как и требуется), так как в противном случае найдётся меньшая верхняя грань r' = sup L(p), но тогда из r £ L(p) следует r ^ r' - противоречие. Если же предположить, что r не является верхней гранью L(p), придём к противоречию. Действительно, в этом случае в L(p) найдётся элемент s, s = r, не меньший чем r. По замечанию к лемме 1 тогда получим, что в интервале [s,p] найдётся такой элемент r', что r' - p. При этом из r' > s следует r' = r, и приходим к противоречию с тем, что p покрывает лишь один элемент решётки S. Итак, мы показали, что условие p £ P равносильно тому, что множество L(p) содержит свой супремум (достаточно проверить содержание им своей верхней грани, так как в предыдущем абзаце показано, что любая верхняя грань L(p), лежащая в L(p), является его супремумом). Построим алгоритм, проверяющий условие наличия верхней грани множества L(p) в нём самом. За первый проход по множеству L(p) находится его максимум q (элемент множества L(p), не меньший никакого другого элемента этого множества). За второй проход проверяем, является ли найденный максимум q верхней гранью L(p), сравнивая его с остальными элементами. Если q не является верхней гранью L(p), то L(p) не содержит своей верхней грани, так как если r - верхняя грань L(p), r Е L(p), r = q, то r > q, что противоречит максимальности q. Итак, два прохода по множеству L(p) для каждого элемента p Е S позволяют определить принадлежность p Е P для всех p и, таким образом, дают множество P. Если все элементы P атомарны, то, согласно условию 2 теоремы 2, возможны лишь случаи m = 1 или 2 (второй из которых сводится к первому ввиду доказанной в следствии теоремы 2 изоморфности решёток SX(n +1) и SX(n) х SL(2)). В этом случае берём, согласно условию 2 теоремы 2, n = |A| - 1, и если |S| = 2n, то, применяя теорему с m =1, получаем, что S изоморфна SX(n). Если же |S| = 2n, то, согласно условию 1 теоремы 2 (n определяется условием 2 однозначно), S не может быть изоморфна никакому произведению полной решётки подмножеств на линейную. Рассмотрим случай, когда не все элементы P атомарны. Обозначим B* = P \ A. Предполагая изоморфность S нужному прямому произведению, из условия 2 теоремы 2 вновь получаем n = |A| - 1 и, согласно условию 3, m = |B*| +2 (к неатомарным элементам P добавляется один атомарный, входящий в цепь из условия 3, и O). Теперь можем проверить равенство из условия 1: |S| = 2nm - если оно не выполнено, то требуемого изоморфизма нет. Если это равенство выполнено, осталось проверить, что элементы B* образуют указанную в условии 3 цепь, последовательно покрывая друг друга. Для этого на этапе построения записываем элементы B* в массив, индексированный количеством элементов S, меньших заданного элемента B*. Покажем, что если элементы B* образуют требуемую цепь, эти индексы не могут совпадать друг с другом и образуют полный набор целых чисел от 2 до m. Действительно, если B * = {b2,... , bm-1}, O - b1 - b2 - b3 - ... - bm-1, где b1 - атомарный элемент, входящий в цепь, то каждый bi превосходит i элементов O, b1, b2,... , bi-1. Для того чтобы показать, что bi не может превосходить никаких других элементов S, предположим противное и выберем минимальный bi, превосходящий какой-то элемент, кроме указанных. Обозначим такой элемент q. Тогда по замечанию к лемме 1 найдётся элемент r Е [q,bi], такой, что r - bi. При этом r = bi-1, так как в противном случае q ^ r < bi-1, что противоречит минимальности выбранного bi. Но тогда получаем, что bi покрывает два разных элемента из S (r и bi-1) -противоречие с условием 3 теоремы 2. Итак, если указанные условия на индексы элементов B* не выполнены, то S не изоморфна требуемому прямому произведению. Если условия выполнены, то для проверки условия 3 теоремы 2 и доказательства изоморфизма S решётке SX(n) х SL(m) с вычисленными выше n, m остаётся лишь проверить, что каждый следующий элемент массива больше предыдущего (что делается прямыми сравнениями за один проход по массиву). Действительно, в этом случае элементы B* образуют цепь и каждый следующий элемент покрывает предыдущий, так как если p > q, но p не покрывает q, то есть p > r > q для некоторого r Е S, то L(p) D L(q) U {q, r} и |L(p)| ^ |L(q)| + 2, но по условиям на индексы |L(p)| = |L(q)| + 1. Отдельно нужно рассмотреть минимальный элемент b2 Е B* (с индексом 2 и соответствующей мощностью |L(b2)|), который должен покрывать не другой элемент B*, а элемент, не входящий в рассмотренный массив. Для него L(b2) = {O,b1} при некотором b1 Е S. Множество L(b2) имеет верхнюю грань b1 > O, и тогда, как доказано выше, b2 У b1. При этом b1 У O, так как в противном случае найдётся такой r Е S, что bl > r > O, и тогда O,bl,r G L(b2), что противоречит условию |L(b2)| = 2. Таким образом, недостающий фрагмент O b l b2 цепочки O b l ... bm- ;l построен. Как видно из доказательства, для проверки изоморфизма требуется совершить два прохода по матрице инцидентности решётки S и некоторое количество существенно меньших по трудоёмкости операций. ■ 3. Алгоритмы восстановления решётки В терминологии теории графов определение 3 формулируется следующим образом: вершина vl решёточного графа G покрывает вершину v2 этого же орграфа, если в транзитивном замыкании графа G существует дуга (v l,v2) и не существует ориентированного пути p(v l,v2), такого, что |p(vl,v2)| > 1. Атомарная вершина (определение 4) имеет одну и только одну исходящую дугу, причём эта дуга должна вести в сток (вершину без исходящих дуг) орграфа. Будем говорить, что решёточный граф соответствует решётке S, если он порождает решётку, изоморфную решётке S. Переформулируем теорему 2 в терминах теории графов. При этом заметим, что так как исследуемый орграф решёточный, то сток t в нём существует и единственен. Теорема 4. Решёточный граф соответствует MLS-решётке S = SX(n l) х SL(n2) тогда и только тогда, когда: 1) число вершин орграфа n = 2ni n2; 2) все вершины орграфа покрывают по крайней мере две других, кроме вершин x l,... , xni, t, t l,... , tn2- l. Если n2 = 1, вершины tj (j = 1,... , n2 - 1) отсутствуют. При этом: - t - сток орграфа; - вершины x l,... , xni, t l,... , tn2- l покрывают ровно одну вершину; - вершины жl,... , xni, t l атомарные; Пусть C = P \ A - множество вершин, покрывающих ровно один элемент, но не являющихся атомарными. вершины tn2- l У ... У t l У t образуют цепь последовательно покрывающих друг друга вершин. Для проверки соответствия решёточного графа решётке подмножеств теорема 4 может быть переформулирована следующим образом. Теорема 5. Решёточный граф соответствует решётке подмножеств SX (n l) тогда и только тогда, когда он удовлетворяет следующим трём условиям: 1) число вершин орграфа n = 2ni; 2) число атомарных вершин равно log2 n = n ; 3) все вершины, кроме атомарных и стока, покрывают не менее двух других. Представим алгоритм 1 проверки указанных в теореме 4 условий для определения структуры заданного решёточного графа. Пусть решёточный граф G задан матрицей достижимости M+ размерности n х n. Требуется получить ответ на вопрос, соответствует ли орграф G некоторой MLS-решётке S = SX (n l) х SL(n2). Для этого необходимо найти вершины орграфа G, покрывающие ровно одну вершину. Пусть эти вершины образуют множество P, |P | = = p. Среди вершин множества P необходимо найти атомарные. Обозначим множество этих вершин A, |A| = а. Очевидно, что должны выполняться следующие равенства: n2 = 1 , n2 > 1. Алгоритм 1. Определение структуры решёточного графа Вход: решёточный граф G задан матрицей достижимости M+ размерности n х n; вспомогательный массив V размерности n. Выход: соответствует ли орграф G некоторой MLS-решётке S = SX(nl) х SL(n2)? 1: Сформируем множества P, A и C. Для этого 2: Для всех вершин vi орграфа G 3: По строке i матрицы достижимости совершим проход и найдём максимальный элемент среди тех, которые формируют множество L(vi); обозначим его v* (напомним, что vj ^ vfc ^ [M+]jk = 1). 4: Ещё за один проход по i-й строке матрицы проверим, что v* является верхней гранью для L(vi) ([M+]*j = 1 для всех vj G L(vi)). 5: Если в i-й строке матрицы единичный элемент один (он же является верхней гранью), то 6: vi G P и vi G A. 7: Если единичных элементов более одного и верхняя грань найдена, то 8: vi G P и vi G C. Пополним элемент массива [V]q вершиной vi, где индекс q - это мощность множества L(vi). 9: Проанализируем множества P и A. Возможны два случая. 10: Если A = P, то все вершины множества P атомарны. Тогда nl = p, n2 = 1. 11: Если n = 2p (условие 1 теоремы 4), то 12: требуемого соответствия нет, 13: иначе 14: орграф G соответствует решётке подмножеств S = XS(p) (или эквивалентной MLS-решётке S = XS(p - 1) х LS(2) (следствие 1)). 15: Если A С P, то 16: не все вершины множества P атомарны. Тогда n1 = a - 1, n2 = p - a + 2. 17: Если n = 2a-l(p - a + 2) (условие 1 теоремы 4), то 18: требуемого соответствия нет, 19: иначе 20: Если все элементы массива V в диапазоне индексов от 2 до n2 - 1 содержат ровно одну вершину, каждая следующая вершина этого массива в заданном диапазоне покрывает предыдущую, вершина [V]2 покрывает некоторую атомарную вершину из множества A, то 21: орграф G соответствует MLS-решётке S = XS(a - 1) х LS(p - a + 2), 22: иначе 23: требуемого соответствия нет. Прокомментируем шаги 2-10 алгоритма 1. В них L(vi) = {vj : vi > vj} -множество вершин, до которых существует ориентированный путь из вершины vi. Для этих вершин [M+]ij = 1, то есть множество L(vi) определяется единичными недиагональными элементами строки i матрицы достижимости. При доказательстве теоремы 3 показано, что для проверки принадлежности вершины vi множеству P достаточно выяснить, содержит ли множество L(vi) свою верхнюю грань. Если |L(vi)| = 1, то vi - атомарная вершина. После того как множества P, A и C сформированы, необходимо проанализировать их структуру (шаги 11-25 алгоритма 1). Пояснений требует случай, когда A С P и n = 2a-1(p - а + 2) (шаг 22). В этой ситуации остаётся проверить, что все вершины из множества C образуют указанную в условии 2 теоремы 4 цепь, последовательно покрывая друг друга. Это означает, что число вершин, в которые существует ориентированный путь из вершины Vi, для всех вершин множества C уникально. Более того, эти величины образуют полный набор чисел в диапазоне от 2 до n2 - 1 (см. доказательство теоремы 3). Для проверки этого факта на этапе построения множества C каждую его вершину v необходимо продублировать в массив, индексированный числом вершин, в которые существует ориентированный путь из v (это число единиц в строке i матрицы достижимости, или мощность множества L(vi)). Индексы k этого массива меняются от 2 до n2 - 1. Каждый элемент массива должен содержать ровно одну вершину. Если указанное условие не выполнено, то искомого соответствия нет. Иначе осталось проверить, что каждая следующая вершина массива покрывает предыдущую: vifc+1 У . Для этого достаточно, чтобы [M+]ifc+1ifc = 1. Отдельно необходимо рассмотреть вершину vi2, которая должна покрывать не другую вершину множества C, а некоторую атомарную вершину из множества A (что также проверяется по матрице достижимости: [M+]i2j = 1 для некоторой вершины vj Е A). Замечание 1. Алгоритм 1 очевидным образом можно адаптировать для проверки соответствия решёточного графа решётке подмножеств. Замечание 2. Трудоёмкость проверки соответствия решёточного графа, заданного матрицей смежности, некоторой MLS-решётке S = XS(n1) х LS(n2) при неизвестных заранее n1 и n2 в общем случае не превосходит O(n3), где n - число вершин орграфа. Действительно, в теореме 3 доказано, что сложность проверки не превосходит O(n2) для матрицы инцидентности исследуемой решётки. При теоретико-графовой интерпретации эта матрица совпадает с матрицей достижимости M+ орграфа. Если исследуемый решёточный граф задан матрицей смежности, то трудоёмкость повышается до O(n3), так как «узким» местом проверки будет алгоритм Уоршелла, позволяющий построить матрицу достижимости. Следует заметить, что при оценке трудоёмкости алгоритмов операции по формированию множеств считались линейными, тогда как трудоёмкость подобных операций существенно зависит от реализации структур данных. Теоремы 2 и 3 позволили построить алгоритм проверки соответствия решёточного графа MLS-решётке (в частном случае, решётке подмножеств). Исследуем случай линейной решётки. Теорема 6. Трудоёмкость проверки соответствия решёточного графа некоторой линейной решётке не превосходит O(n3). Доказательство. Для проверки соответствия решёточного графа линейной решётке достаточно показать, что любая пара вершин сравнима, то есть для любой пары вершин существует ориентированный путь, их соединяющий. Очевидно, трудоёмкость алгоритма определяется алгоритмом Уоршелла построения матрицы достижимости. ■ Заключение Доказано, что задача восстановления решётки ценностей по орграфу разрешима за полиномиальное время. Этот факт существенен при построении систем разграничения доступа, основанных на мандатной модели безопасности [8], так как гарантирует получение результата за приемлемое время. Авторы выражают благодарность Ю. С. Ракицкому за полезные замечания и предложения в процессе подготовки статьи.

Ключевые слова

граф, теория 'решёток, мандатное разграничение доступа, graph, lattice theory, mandatory access control

Авторы

ФИООрганизацияДополнительноE-mail
Белим Сергей ВикторовичОмский государственный университет им. Ф. М. Достоевскогодоктор физико-математических наук, профессор, заведующий кафедрой информационной безопасностиbelimsv@omsu.ru
Богаченко Надежда ФедоровнаОмский государственный университет им. Ф. М. Достоевскогокандидат физико-математических наук, доцент, доцент кафедры информационной безопасностиnfbogachenko@mail.ru
Всего: 2

Ссылки

Belim S., Bogachenko N., and Ilushechkin E. An analysis of graphs that represent a role-based security policy hierarchy // J. Computer Security. 2015. V. 23. No. 5. P. 641-657.
Birkhoff G. Lattice Theory. N.Y.: Amer. Math. Soc. Colloquium Publ., 1967.
Jakubik J. On isomorphisms of graphs of lattices // Czechoslovak Math. J. 1985. V. 35. No. 2. P. 188-200.
Mainetti M. Arguesian identities in linear lattices // Adv. Math. 1999. No. 144. P. 50-93.
Mainetti M. and Yan C. H. Geometric identities in lattice theory // J. Combinatorial Theory. Ser.A. 2000. No. 91. P. 411-450.
Felsner S. and Knauer K. B. Distributive lattices from graphs // Proc. VI Jornadas de Matematica Discreta y Algoritmica. Lleida, 2008. P. 11-23.
Bertet K. The dependence graph of a lattice // Proc. CLA, Malaga, Spain, 2012. P. 223-231.
Belim S. V., Bogachenko N. F., Kabanov A. N., and Rakitskiy Yu. S. Using the Decision Support Algorithms Combining Different Security Policies // Dynamics of Systems, Mechanisms and Machines (Dynamics). 15-17 Nov. 2016. IEEE Xplore. http://ieeexplore.ieee.org/ document/7818976/.
 Проверка соответствия ориентированного графа алгебраической решётке | ПДМ. 2018. № 41. DOI: 10.17223/20710410/41/6

Проверка соответствия ориентированного графа алгебраической решётке | ПДМ. 2018. № 41. DOI: 10.17223/20710410/41/6