We may enforce an information flow policy by encrypting a protected resource and ensuring that only users authorized by the policy are able to decrypt the resource. In most schemes in the literature that use symmetric cryptographic primitives, each user is assigned a single secret and derives decryption keys using this secret and publicly available information. Recent work has challenged this approach by developing schemes, based on a chain partition of the information flow policy, that do not require public information for key derivation, the trade-off being that a user may need to be assigned more than one secret. In general, many different chain partitions exist for the same policy and, until now, it was not known how to compute an appropriate one.
In this paper, we introduce the notion of a tree partition, of which chain partitions are a special case. We show how a tree partition may be used to define a cryptographic enforcement scheme and prove that such schemes can be instantiated in such a way as to preserve the strongest security properties known for cryptographic enforcement schemes. We establish a number of results linking the amount of secret material that needs to be distributed to users with a weighted acyclic graph derived from the tree partition. These results enable us to develop efficient algorithms for deriving tree and chain partitions that minimize the total amount of secret material that needs to be distributed.
Access control is a fundamental security service in modern computing systems and seeks to restrict the interactions between users of the system and the resources provided by the system. Traditionally, access control is policy-based, in the sense that a policy is defined by the resource owner(s) specifying those interactions that are authorized. An attempt by a user to interact with a protected resource, typically called an access request, is evaluated by a trusted software component, the policy decision point (or authorization decision function), to determine whether the request should be permitted (if authorized) or denied (otherwise). The use of a policy decision point is entirely appropriate when we can assume the policy will be enforced by the same organization that defined it. However, use of third-party storage, privacy policies controlling access to personal data, and digital rights management all give rise to scenarios where this assumption does not hold.
Cryptographic access control provides an alternative way of regulating access to data objects and has attracted considerable attention in recent years. In this setting, data objects are encrypted and appropriate decryption keys are issued to authorized users. Research into cryptographic access control began with the seminal work of Akl and Taylor [1], and has seen a resurgence of interest in recent years. For instance, there has been a considerable amount of research into attribute-based encryption [8,24], which is regularly used to support access control (see [28], for example). Attribute-based encryption is based on asymmetric cryptographic primitives, which means that any user is able to control read access to data (by encrypting), while only authorized users may decrypt. However, access control policies can also be enforced using symmetric cryptographic primitives (often a cheaper alternative to their asymmetric counterparts). Typically, in this scenario, a specific user – the data owner – encrypts all data objects before transmitting them to a storage provider that is only trusted to store data correctly. Users are able to retrieve data objects from the storage provider (in encrypted form) and only authorized users should be able to decrypt them.
In the symmetric setting, the focus of research has been on enforcing information flow policies [7], not least because many access control requirements may be articulated as information flow policies. An information flow policy is defined by a partially ordered set of security labels and a function mapping each user and data object to a security label. A user is authorized to read any data object associated with a security label that is less than or equal to that of the user.
Generally, it is undesirable to explicitly provide a user with all the keys she requires to decrypt protected objects. Instead, a user is given a small number of secrets from which she is able to derive all keys required.2
We could, of course, simply view a set of secrets as a single secret and consider the amount of storage required by that secret. However, it is more convenient for the analysis later in the paper to consider a set of secrets and the number of elements in that set.
Hence, a common feature of cryptographic enforcement schemes for information flow policies is the derivation of decryption keys (since possession of the decryption key for label ℓ implies authorization for the decryption key for any label less than ℓ). Informally, each security label is associated with a secret (which is issued to every user assigned to that security label) from which decryption keys for all subordinate security labels may be derived. The scheme may also publish additional information in order to support key derivation.
Therefore, the challenge is to compute efficiently the secrets and decryption keys associated with each security label, subject to constraints on the size of relevant parameters. Thus a cryptographic enforcement scheme may be characterized by (i) the number of secrets each user is given, (ii) the total number of secrets issued to users, (iii) the amount of auxiliary (public) information required for key derivation, and (iv) the computational effort required for key derivation.
Many schemes in the literature are space-efficient (on the user side) by providing each user with a single secret (see, for example, [2]), the trade-off being that the amount of public information and derivation time may be substantial. Moreover, the public information must either be transmitted to each user or made available on some publicly accessible server, both possibilities giving rise to concerns either about costs of transmission and local storage, or availability and authenticity of the information.
Crampton, Daud and Martin [14] introduced the concept of a chain-based cryptographic enforcement scheme, which requires no public information but may require users to store more than one secret. Subsequent work has established that secure instantiations of chain-based schemes exist [20,21]. Chain-based schemes are based on a decomposition of the poset of security labels into disjoint chains (that are, in some appropriate sense, compatible with the poset). Informally, the secrets associated with the labels in each chain may be derived in a top-down manner and each user is issued with a number of secrets, at most one from each chain. Thus the number of secrets required by a user is no greater than the number of chains in the decomposition, which is significantly better, generally, than the naive solution of supplying each user with every secret for which she is authorized.
The motivation for the work in this paper can be summarized in two observations. First, there are, in general, many different ways to instantiate a chain-based scheme for a given information flow policy, each instantiation being defined by a particular chain partition of the partially ordered set used to specify the policy. The number of secrets and the amount of computation required to derive decryption keys in a given instantiation crucially depends on the chain partition chosen. However, existing work in the literature assumes that the chain partition is given as part of the input to the algorithm that outputs the secrets and decryption keys. One of the questions we address (in Section 5), therefore, is how to compute the “best” chain partition (with respect to some suitable metric) with which to instantiate a chain-based scheme. Our second observation is that each security label has at most one parent in the chain decomposition. The question we address (in Section 3) is whether it is possible to generalize chain-based schemes to tree-based schemes, given that each element in a tree also has at most one parent.
Our first set of contributions is associated with the novel concept of a tree partition of an information flow policy, from which we define the notion of a forest-based cryptographic enforcement scheme for information flow policies. We prove results establishing how the total number of secrets to be issued to users varies with the structure of the forest and demonstrate that an instantiation of our scheme retains the security property of strong key indistinguishability introduced by Freire, Paterson and Poettering [21]. We design and analyze an efficient algorithm for computing a forest that minimizes the total number of issued secrets. This work generalizes our previous work on tree-based enforcement schemes [16]. In addition, the more general framework enables us to simplify the techniques and formal exposition.
Our second set of contributions is based on specializing our generic scheme to chain-based schemes.3
One disadvantage with forest-based schemes is that one cannot, in general, simultaneously minimize the number of secrets issued on a per-user basis and the total number of secrets issued to users. Thus, chain-based schemes are still relevant, even though, in general, a forest-based scheme for the same policy will require fewer secrets in total to be issued.
We prove that the total number of secrets issued is determined by the number of bottom elements of the chains in the chain partition (Lemma 3). This, in turn, allows us to prove (Theorem 3) there exists a chain partition that simultaneously minimizes the number of secrets that need to be issued and the number of chains in the partition (and thus the number of keys each user is required to store). The last result is of practical importance, since the number of chains provides a tight upper bound on the number of secrets required by any user. Moreover, the result is somewhat unexpected, as it is not usually possible to simultaneously minimize two different parameters. Our main contribution (Theorem 4 and Section 5.1) is to develop an efficient algorithm that enables us to find a chain partition such that the total number of distributed secrets and the number of chains are minimized (with respect to all chain partitions). Our algorithm is based on finding a minimum cost flow in a network whose construction is based on the technical results in Sections 3–5.
Overall, then, the contributions of this paper generalize and unify existing work on tree- and chain-based schemes using the novel concept of a tree partition and a forest-based enforcement scheme. Central to our work are the results in Section 4, which enable us to link two different characterizations of the additional secrets required, thereby allowing us to describe existing schemes using trees and chains within a single framework and to generalize tree-based enforcement schemes to forest-based schemes. An important consequence of our results is that there now exist efficient methods for instantiating cryptographic enforcement schemes that require no public information. We thereby provide rigorous foundations for the development of efficient chain-based enforcement schemes.
The remainder of the paper is organized as follows. In Section 2, we provide the relevant background on cryptographic enforcement schemes, and formally identify the problem. We also discuss related work, including preliminary versions of the ideas presented in this paper [15,16]. Then, in Section 3, we formally define a tree partition and a forest-based cryptographic enforcement scheme for an information flow policy. We establish some important results connecting the structure of a given forest and the total number of secrets required by the associated cryptographic enforcement scheme. We also establish that there exist secure instantiations of our scheme and briefly discuss cryptographic primitives that would be suitable for such an instantiation. In Section 4, we use the theoretical results of Section 3 to develop an efficient algorithm for computing the best tree partition, in terms of the total amount of secret material required. In Section 5, we prove that there exists a chain-based enforcement scheme in which no user requires more than w keys, where w is the width of the information flow policy; and that the total number of issued secrets in a chain-based enforcement scheme is determined entirely by the number of bottom elements of the chain partition. These results, however, are not constructive per se. Accordingly, we also develop an efficient algorithm to derive the best chain partition. We conclude the paper in Section 6 with a summary of our contributions and some ideas for future work.
Information flow policies
We first recall some basic definitions from discrete mathematics and establish some notation. We then define what is meant by an information flow policy [7] and discuss how such policies may be enforced using cryptographic mechanisms.
A partially ordered set (or poset) is a pair , where ⩽ is a reflexive, anti-symmetric, transitive binary relation on a finite set X.
We write to indicate and , and we may write whenever .
We say x covers y, or x is a parent of y, denoted , if and there does not exist such that . An element is maximal if it has no parents.
The Hasse diagram of is the directed acyclic graph , where the (directed) edge if and only if . We will also make use of the directed acyclic graph , where if and only if . Representing the covering relation as an acyclic digraph the Hasse diagram provides a minimal amount of information required to reconstruct the full order relation.4
The Hasse diagram is a unique representation of the poset . Conversely, as the Hasse diagram of a poset uniquely represents , we may consider as a “shorthand” for and even loosely say that is a poset.
The in-degree (out-degree, respectively) of node u of a directed graph is the number of nodes v such that (, respectively). A directed graph D is an out-forest if every node of D has in-degree less than or equal to 1.
We say is a forest if is an out-forest. We say is a tree if it is a forest and has a unique maximal element. That is, there is a single node in its Hasse diagram of in-degree 0.
Note that every forest is a disjoint union of trees. Hasse diagrams of a poset, forest and tree are shown in Fig. 1. The edges in these Hasse diagrams (and all others in the paper) are assumed to be directed from top to bottom.
A set is a chain if for all distinct pairs of elements , or . A chain corresponds to a directed path in .
A chain partition of poset is a disjoint union of chains such that every element of belongs to one of the chains. Figure 1(d) depicts a chain partition of the poset in Fig. 1(a).
Let with . Then , where is a derivation chain (from x to y) in of length l. A derivation chain from x to y corresponds to a directed path from x to y in .
We write to indicate that are incomparable, i.e. and . A set is an antichain if for all distinct , . The width of a poset is the cardinality of an antichain of maximum size.
We write to denote and to denote . Note that if and only if .
A linear extension of is a chain such that if then . Every (finite) partial order has at least one linear extension, which may be computed, in linear time, by representing the partial order as a directed acyclic graph and using a topological sort [12, §22.3].
Hasse diagrams of a poset, a forest, a tree, and a chain partition.
In many cases we will use subscripts to denote a function or relation relative to a poset . Thus, for example, we write , we write if and there is no such that , and we write to denote the set .
An information flow policy is a tuple , where:
is a (finite) partially ordered set of security labels;
U is a set of users and O is a set of objects;
is a security function that associates users and objects with security labels.
A user is authorized to read an object if and only if .
Given an information flow policy , we may define an equivalence relation ∼ on U, where, for any , if and only if . We write to denote . Similarly, denotes the set of objects having security label . In other words, user is authorized to read whenever . Henceforth, we will represent an information flow policy as a poset with the tacit understanding that U, O and λ are given.
Cryptographic enforcement
The intuition behind the cryptographic enforcement of information flow policies is to encrypt data objects (using a symmetric encryption algorithm) and distribute appropriate secrets to authorized users (from which encryption keys are derived). Hence, there are two high-level algorithms that every cryptographic enforcement scheme (CES) provides: the first, , is run by the data owner and generates secrets, keys and any public information that is required for deriving decryption keys; the second, , is used to derive decryption keys from secrets and public information. That is, in principle, and have the following functionality.
takes as input an information flow policy .
outputs and , where and respectively determine the secret and encryption key associated with x, and the public information is used as part of the input to the algorithm.
takes as input the information flow policy, , and .
outputs if (and some distinguished failure symbol ⊥ otherwise); in particular, can be derived from .
Prior CES schemes follow the above syntactical framework more or less closely. In particular, different representations of the information flow policy have been used as input to the and algorithms, and some preprocessing may be required in order to produce those representations. Some schemes, for example, simply use the Hasse diagram of the poset [2] as the input to and (part of) the input to , while others use a directed, acyclic graph whose edge set is a superset of and a subset of (and thus contains the same paths as the Hasse diagram) [4,13]. In this work, we transform the information flow policy into a partition of trees.
Part of the specification of ensures the correctness of a scheme. That is, an authorized user belonging to must be able to derive if . In contrast, the security of a CES requires that users cannot derive keys for which they are not authorized, even if they collude by pooling secret information. In particular, a user in where cannot derive . Research in the last 10 years, pioneered by Atallah, Blanton, Frikken and Fazio [2] and Ateniese, de Santis, Ferrara and Masucci [5], has formalized security notions for CESs. Informally, the adversary learns the secrets and keys associated with some set of elements (modeling a group of colluding users) and selects a “target” x in X such that for any (to avoid trivial cases). The adversary may be asked to determine or to determine, given a candidate key r, whether r is or a random element of the key space. These informal scenarios lead to formal concepts of and definitions for key recovery and key indistinguishability [2].5
Note that a scheme in which may be used to compute from whenever (rather than from ) does not possess the key indistinguishability property: the adversary may select x and A such that for some , use x, a, and r (that is, assume ) as inputs to the algorithm, and test the output for equality with . Concerns about key indistinguishability in CESs led to the separation between secrets and keys [2].
We consider the security properties of CESs in more detail in Section 3.2.
Related work
Essentially, designing a cryptographic enforcement scheme comes down to defining (i) what secrets each user will receive, (ii) how users will generate any keys they require to decrypt data objects, and (iii) how secrets and keys are related. Broadly speaking, there are two standard ways of designing a cryptographic enforcement scheme for information flow policies. These methods assume each user is given a single key from which all other relevant secrets and key may be derived, and are distinguished by the information used to derive secrets and keys. The first method, which we will call “node-based”, relies only on secret information known to the user, while the second, which we will call “edge-based”, assumes that some additional information must be made known to all users.6
There are some other types of schemes but each of them suffer from a number of disadvantages (see [17], for example) so research has tended to focus on node- and edge-based schemes.
Informally, a node-based scheme uses one-way functions: for the secret associated with y is some (one-way) function of , the secret associated with x, and , the key associated with y, is some (one-way) function of . Some of the earliest work on cryptographic enforcement of information flow policies used these kinds of techniques [27]. However, in this setting, it is unclear how to distribute secrets such that can be derived from for each of the parents that node y might have, without simultaneously exposing the scheme to collusion attacks.
In an edge-based scheme, public information is associated with each pair where from which can be extracted with knowledge of . Thus, informally, we might define to be , where is some symmetric encryption algorithm with key k contained in . An edge-based scheme can be used for arbitrary posets but requires public information [2].
Research into schemes that allocate a single secret to each user investigated what trade-offs were possible between the number of items of public data and the number of key derivation operations (in the worst case) [3,13]. Some of this work focused on posets with a particular structure (such as chains [3]). Such research was able to define specific data structures and algorithms, and perform exact complexity analyses [3,4,13]. Other work considered arbitrary posets and used results from graph and poset theory to develop analyses that were generic but arguably less useful in specific cases [5]. In all this work, the amount of public information required for key derivation necessarily increases.
A representation of the policy is required as input to the algorithm. Hence, the data owner must publish the policy (or distribute it with the appropriate secrets to every user). The size of the policy is proportional to the number of edges (each representing a piece of public information) used for secret derivation; that is , where n is the cardinality of X (the set of security labels). However, compact representations, using an binary matrix, exist. In the case of edge-based schemes, the data owner must also publish (or otherwise distribute) , which is also proportional in size to the number of edges. However, the size of will be several orders of magnitude bigger than the policy representation (due to the relative sizes of each datum of information). An alternative is to store on a public server. In this case, the server must be on-line and accessible to any user that wishes to run the algorithm. Thus, it may be advantageous to devise schemes that require no public information.
Crampton et al. [14] introduced the idea of cryptographic enforcement schemes, based on chain partitions of the information flow policy, that require no public information. The trade-off with such schemes is that some users may require more than one secret in order to be able to derive all the required encryption keys. Subsequent work established that secure instantiations of such schemes are possible [20,21].
To summarize, informally, the core trade-off made when designing a CES is the amount of public information that is required to assist in the derivation of secrets against the number of additional secrets that are associated with nodes. Broadly speaking, on the one hand one assumes each node is associated with a single secret and defines a “secret-derivation digraph” , where . (In other words, if in there is a derivation path in G, since ; and if there is no derivation path in G, since .) On the other hand, one selects a secret-derivation digraph such that , G is an out-forest, and each node is associated with at least one secret. Then, if , there is some node y such that every user in is given the secret associated with node y and there is a directed path from y to z in G. Table 1 provides a crude comparison of the generic schemes in the literature: E is the set of edges used to derive secrets; d is the length of the longest directed path in ; w is the width of X; n is the cardinality of X.
A high-level comparison of generic cryptographic enforcement schemes
Generic scheme
Edge set
Public information
Derivation time
Secrets per node
Single-step secret derivation
Multi-step secret derivation
Chain-based secret derivation
None
All secrets distributed
None
0
The significant open problem with prior work on chain-based schemes is the assumption that the chain partition is part of the input to the algorithm: there may be many such partitions and it is not immediately obvious how one should select a specific partition in order to optimize characteristics of the corresponding enforcement scheme (an example being to minimize the number of secrets issued). Hence, it seems very natural to ask how difficult it is to compute a “good” chain partition, given that (i) schemes based on chain partitions do not require public information, and (ii) the number of secrets that need to be distributed to users is determined by the choice of chain partition. Our recent work [15] shows that it is possible to compute a minimal chain partition in polynomial time using a minimum cost network flow algorithm.
Crampton et al. [16] made use of the fact that derivation paths are uniquely defined in trees (as well as in chains) to develop the idea of a tree-based cryptographic enforcement scheme. Their work established that it was possible to compute (in polynomial time) an optimal tree for the information flow policy.
Problem overview
While chain-based enforcement schemes require no public information, some users may be required to store more than one secret, unlike the majority of schemes in the literature. The number of secrets required by an instantiation of such a scheme depends on the chain partition chosen. Moreover, a natural extension of the chain-based approach, explored in the current work, is to use a forest related to the poset defining the information flow policy. In this paper, therefore, we explore three questions:
What is the optimal choice of chain partition and can we compute such a partition efficiently?
How do we implement a cryptographic enforcement scheme based on a partition of the information flow policy into trees rather than chains?
What is the optimal choice of tree partition and can we compute such a partition efficiently?
In the next section, we consider the second of these questions, the results of which enable us to answer the other two questions.
Enforcement schemes from tree partitions
In this section, we generalize the approach taken by Crampton et al. [14] for chain-based enforcement schemes, and Crampton et al. [16] for tree-based enforcement schemes. In particular, we introduce the concept of a tree partition of a poset and show how such a partition may be used to construct a cryptographic enforcement scheme for an information flow policy defined by .
Let be a poset, with Hasse diagram . A tree partition of is a poset such that is an out-forest and .
If is a poset, is a tree partition of and , then . However, we may have but . Thus, the problem with a tree partition, in the context of cryptographic enforcement schemes (CESs), is that some authorized labels that were “reachable” by a derivation chain in will no longer be reachable in . Accordingly, we define the notion of forest-based enforcement scheme for a tree partition of .
Given an information flow policy and a tree partition , a forest-based enforcement scheme is a pair , where and:
if then there exists such that ;
if then for all , .
Informally, conditions 1 and 2 correspond to the correctness and security requirements of CESs, respectively. Note that . To see this, suppose, in order to obtain a contradiction, that . Then, by the first property, there exists such that . This implies and thus . By the second property for all we then have . This holds in particular for and we obtain , a contradiction.
Let be a poset and a tree partition of . Then, given , the maximum element (if it exists) in , is the anchor between x and z and denoted by .
Consider the poset and tree partition in Fig. 2. Then we have, for example, and does not exist. If then an enforcement scheme based on this tree partition must ensure the secret for is assigned to u.
Illustration of anchors.
We note the following facts, which we state without proof:
exists iff ;
is a unique maximal element (that is, a maximum element) since is a chain;
if and then there exists a derivation chain in from x to z and (since x is the maximum element in ); and
if and then there exists a derivation chain in from to z and .
Given and a tree partition , we define , where . In Fig. 2, we have, for example, .
For any posetand any tree partitionof,is a forest-based enforcement scheme.
If , then belongs to and . And if then for every we have . □
In other words, given the secrets corresponding to the elements in , a user in can derive the secret for all elements using a derivation chain starting at .
Letbe a poset,be a tree partition of, andbe a forest-based enforcement scheme. Thenfor all.
Suppose, in order to obtain a contradiction, that and . By definition, ; therefore, there must exist such that , and thus . Moreover, so we have ; that is, . Thus y is not the maximal element in , the desired contradiction. □
The following simple lemma characterizes the elements of and will be used to prove Proposition 2 and Theorem 2.
Letbe a tree partition of poset. Then for every x in X and every z in X,if and only if exactly one of the following conditions holds: (i) ; (ii) , z has a parent inand; (iii) and z has no parent in.
Suppose and . Since , z is the maximal element in . Similarly, if z has no parent or , then z is the maximal element in . In either case, and .
Conversely, if , then , by definition, and . Thus, if z has a parent (otherwise, and ). □
Letbe an information flow policy and letbe a tree partition. Thencan be computed in time, where.
By Lemma 2, for all , besides x itself, we add all those elements , , to that are either maximal in or, if not, satisfy . In both cases, we must determine whether for some .
After time preprocessing, we may assume that we have data structures allowing us to check whether in time, and test whether z is a maximal element in (and compute otherwise) in time. Hence, we can compute in time. □
Generic instantiation
The above results enable us to specify the algorithms of a cryptographic enforcement scheme. The construction can be considered a generalization of the one using chains (rather than trees) defined by Freire et al. [21]. When defining and we assume that the information flow policy is presented in the form of a tree partition , and that for the latter a specific forest-based enforcement scheme has been selected (such as ). Further, for the labels of X we assume a numbering convention that follows a (reverse) linear extension ≺ of ⩽; more precisely, we assume that where (in particular, is a minimal element in X and is a maximal element).
Following Freire et al. [21], the cryptographic building block of our construction is a pseudorandom function (PRF), where the key space and the output space are the same set , which we denote by .7
Some communities conceptually identify ‘pseudorandom functions’ with ‘keyed hash functions’, others identify ‘pseudorandom functions’ with (unkeyed) ‘collision-resistant hash functions’, others identify ‘keyed hash functions’ with ‘message authentication codes’ (MACs). When we refer to a PRF we mean a keyed function that behaves like a random function as long as the key remains hidden, following the standard provable security naming convention (e.g., used in [21]).
Following Atallah et al. [2], we use a labeling function to associate each node x in the poset with a unique binary string . We write to denote sampling an element from set X uniformly at random and assigning the result to variable x.
Then, given and , we define the following and algorithms for our enforcement scheme.
Algorithm , on input an information flow policy in the format described above:
For to n do (i.e., count from a maximal label down to a minimal label):
if is maximal in pick a fresh random key ;
otherwise, identify the (unique) parent y of in and assign (where is the PRF key and is the PRF input);
For each output and ; no public information is needed, i.e., .
The general principle of this CES is to derive secrets in a top-down fashion: top nodes (according to ) are assigned random keys, and the keys of all other nodes are deterministically derived from their parent using the PRF. Observe that, as we arranged ≺ to be a linear extension of ⩽ (and thus ), step (1.) of is actually well-defined.
Algorithm , on input the information flow policy, labels , and secret :
Return ⊥ if ;
Identify the (unique) such that and recover from ;
Let be the complete derivation chain in between z and y;
For to m do: ;
Output .
In this instantiation, the same pseudorandom function is used as a secret- and key-generation function; secret values, and values derived from secret values, serve as PRF keys, and fixed strings that uniquely identify the corresponding node are its inputs.
Security analysis
We assess the security of our enforcement scheme using the principles of provable security. We start by formalizing the properties of the cryptographic building block, the pseudorandom function . Our definition is not the most general possible: rather, it is tailored to the requirements of our construction; specifically, we require that the keyspace and the range of the PRF are the same set.
A pseudorandom function (PRF) with keyspace and range is any efficient function . We also write to denote . We define the advantage of an adversary in distinguishing from a random function as
We say that PRF is -indistinguishable from a random function if ϵ upper-bounds the advantage of all distinguishers that run in time at most τ.
In the above definition, denotes the universe of all functions mapping to . Further, writing “” for a function F means that (randomized) algorithm has oracle access to F and terminates outputting value 1. Finally, in Definition 5, F either implements access to a keyed PRF instance , or it implements a completely random function.8
Strictly speaking, as uniformly picking a function from the (infinite) universe is impossible, the right-hand probability of the advantage specification is not well-defined. Rather, we use this notation short-hand for expressing that is executed with access to an oracle that maps inputs to keys, where the latter are sampled uniformly at random in an on-the-fly manner (‘lazy sampling’).
That is, the smaller we can choose ϵ, the closer a particular PRF is to a random function. We discuss some practical candidate functions in Section 3.3.
We next make precise the level of security that we target for our enforcement scheme. Many different cryptographic models for CES with security guarantees of various strengths have been proposed (see [11] for a comparative overview). The notion we target and reproduce below, strong key indistinguishability [21], was not only proven to imply all other notions (i.e., to define the highest level of security),9
[11] show that not all of these implications are strict; in particular strong key indistinguishability is polynomially equivalent to the notion of (plain) key indistinguishability of [2], with tightness loss . Note also our model considers a static setup where the challenge label is fixed a priori. A variant of Definition 6 would consider dynamic adversaries: such an adversary is able to choose the challenge label x during the experiment, rather than having it fixed as one of the experiment’s parameters. However, it has been shown that static and dynamic definitions of strong key indistinguishability are polynomially equivalent [21]; corresponding results for (plain) key indistinguishability have also been obtained [5]. To simplify the exposition, therefore, we restrict our attention to the static case.
but is also, we believe, the most natural and versatile one. It is based on the security experiment defined in Fig. 3, where we use the following notation:
In the experiment we assume that the adversary receives the information flow policy in the same format as the algorithm does.
Security experiment for strong key indistinguishability.
Let be an arbitrary poset. A CES for is -strongly key indistinguishable with respect to static adversaries [21] if, for all , the advantage of all adversaries that interact in experiment and run in time at most τ is bounded by ϵ, where we define
Observe that in this definition the adversary obtains, in principle, all secrets embedded in the system (that is, all and values), excluding only those that would allow distinguishing the challenge key by trivial means (e.g., by invoking the algorithm).
The final step of our analysis is to prove that our forest-based enforcement scheme from the preceding section is strongly key indistinguishable in the sense of Definition 6. More precisely, we have the following result.
For any poset,, and adversarythat runs in time at most τ, there exists a constantand distinguishers,against the underlying PRF such thatand the respective running times are at most. That is, if the PRF is-indistinguishable then our CES construction is-strongly key indistinguishable with.
The argument proceeds using a sequence of hybrid games that interpolate between experiments and . In each hybrid step, if specific conditions are met, we replace one PRF instance by a random function; from the point of view of the adversary, the distance between each two consecutive hybrids is not greater than for a specific PRF distinguisher .
Fix a poset together with a (reverse) linear extension of X, a label , and a CES adversary that runs in time at most τ. We use sequence to define our hybrid experiments: For , we set and define games (in that order) such that if and then the difference between games and is precisely that all PRF invocations with key are replaced by assignments with values drawn uniformly at random from (correspondingly, also the keys considered in lines 2. and 4. are changed). For the remaining indices k, i.e., in case , games and are identical. Let denote for all .
Observe that we replace PRF invocations by random assignments for precisely those labels that do not have a corresponding entry in . Observe also that, as we consider the labels in a suitable order, for all switchings from a PRF to a random function we have that the corresponding PRF key was replaced with a uniform random value before. Thus, the difference between any two consecutive games is bounded by a PRF advantage: by a standard reductionist argument, in the cases , we have
for a specific distinguisher with running time approximately , where is the time required for one PRF evaluation; in addition, whenever we have and hence . Now, by repeated application of the triangle inequality and (1), we have
where and distinguishers are constructed as specified. We now consider games and . In both cases is picked uniformly at random, thus lines 3. and 4. in the experiment implement the same operation. Hence is identical to and . Thus, we obtain
as required. □
Note that by results of [11] it would have sufficed to prove (plain) key indistinguishability of our scheme, as the latter would imply the notion of strong key indistinguishability that we target. Observe however that going this way introduces a tightness loss of . Besides saving this factor, we believe our direct approach is also more intuitive.
On practical instantiations of the PRF component
We now briefly consider how one might instantiate our CES in practice. Although pseudorandom functions are a standard building block in the domain of provable security, corresponding constructions do not explicitly appear in most international cryptographic standards documents (e.g., by ANSI, IEEE, NIST, IETF, etc.). However, certain standardized MACs and block ciphers can be used as a PRF replacement, as we discuss next.
The primary aim of message authentication codes (MACs) is integrity protection and data authentication. A standard result says that any PRF may also be used as a MAC. The converse is in general not true: a good MAC is not automatically a good PRF. Fortunately, however, essentially all standardized MAC constructions are in fact good PRFs, including the popular HMAC [26], CMAC [18], GMAC [19], and PMAC [10] schemes.
In our application, the data input of the PRF and hence of the MAC is the name of a node . For the sake of generality we did not impose any constraints on the format of these names (in particular, strings of arbitrary length are allowed). We note that all of the MAC schemes mentioned above are designed to process arbitrary-length strings, of any format. By consequence, all of them are suitable to securely instantiate our enforcement scheme. However, we point out that if we imposed a constant-length restriction on , then a much simpler PRF than the MACs mentioned above can be used: by the PRF/PRP switching lemma [9], any block cipher (a.k.a. pseudorandom permutation, PRP) also constitutes a PRF, where the input length is equal to the output length and coincides with the cipher’s block size. In particular, if one is satisfied with using 128 bit keys and may require 128-bit labels for elements in X then the AES block cipher can be used without modification as the pseudorandom function of our CES construction. Further, if the target is a security level of 256 bit and one uses 127-bit labels, then the following function would be a suitable PRF:
Selecting a good tree partition
Each poset admits many possible tree partitions and each tree partition gives rise to many possible enforcement schemes. In this section, we investigate which enforcement scheme to select for a given tree partition and which tree partition to select for a given poset. Our analysis is based on the assumption that we wish to minimize the total number of secrets that need to be distributed to users. Thus, given a tree partition and a forest-based enforcement scheme , we define
Note that denotes the number of secrets issued to each for the enforcement scheme . Thus, is the total number of secrets that need to be distributed to users when we apply scheme . By Lemma 1, for a given tree partition , any forest-based enforcement scheme and any , we have ; thus and . Hence, for a given tree partition , we will assume the use of the forest-based enforcement scheme .
Let be an information flow policy and let be a tree partition of . Then we say that is a minimal tree partition of if, for any tree partition of , we have . (In other words, is a tree partition that minimizes the total number of distributed secrets.)
For any tree partition and for all , x must have at most one parent in . Informally, then, to construct a tree partition from , for all we must discard all but (at most) one parent of x in . Hence, if we can associate the choice of parent y for z with an appropriate cost of the edge in , then computing a minimal tree partition can be translated into a problem of selecting a suitable weighted forest.
We now describe how to compute such a cost function. Given an information flow policy , for each pair such that , we define . An illustration of the values taken by is given in Fig. 4(a).
A minimal tree partition of .
For all,.
Let . Then and . Now if , we would have , by transitivity. Thus and hence . Moreover, , since and , and , so the inclusion is strict. □
Define a weight function , where
Note that for any tree partition , z has at most one parent in , so we may write for without ambiguity. Given a tree partition of X, we define the weight function , where
Informally, represents the number of users that will require the secret associated with z, on the one hand if z is maximal in and on the other if edge is used in . We can now prove the main result of this section, which establishes a relationship between and , and thus enables us to define an (efficient) algorithm for computing a minimal tree partition.
Letbe a poset with Hasse diagramand letbe a tree partitionof. ThenMoreover, we can compute a minimal tree partitionofin time.
We first prove (2). Let denote the set of maximal elements in and denote the set of non-maximal elements. By definition,
and we have
where the first summand is due to case (ii) of Lemma 2, the second due to (iii) and the third due to (i). Hence
We next establish the choice of that minimizes . Observe that if z is not a maximal element of X, a minimal tree partition will not have z as a maximal element either. Indeed, suppose z is a maximal element in a tree partition and let y be a parent of z in X. Then , where is obtained from by adding edge to the Hasse diagram of , since ; the inclusion is strict since y is in the first set but not the second. Thus, z is a maximal in if and only if z is maximal in X. It remains to decide on parents in for non-maximal elements in X.
Let be a tree partition and z is not maximal in . Note that . By Proposition 3, we have for . It follows that , the inequality being strict if we assume that at least one user is assigned to each node in X. Thus it suffices to consider only parents of z in X when constructing a minimum tree partition. Moreover, to build , for each non-maximal , we select a parent y of z in X such that for all other parents of z.
Finally, we describe an algorithm for computing a minimum tree partition and analyze its running time. In the first step, compute for each non-maximal z and each parent y of z in . This can be done in time , as in the proof of Proposition 2. In the second step, for every non-maximal z choose, as its parent in a minimal tree partition, a node y such that for all with . The second step will require time . Thus, the total time required is .10
Since we can simplify the total time to . However, we decided to keep to stress that only parents of elements need to be considered to compute a minimum tree partition.
□
We have shown that we can compute a minimal tree partition efficiently. Recall that measures the number of secrets a user in will require to derive all authorized secrets (and keys). We now consider whether it is possible to compute a minimal tree partition that simultaneously bounds . Let be a minimal tree partition of . We will say that is an optimal tree partition of if has the minimum number of minimal elements among all minimal tree partitions. An optimal tree partition with ℓ leaves has the property that no user will require more than ℓ secrets.
For each non-maximal , let be the set of such that and is minimum. Construct a directed acyclic graph H with vertex set X; for every non-maximal , the in-neighborhood of y is , and each maximal has no in-neighbors. Add to H a new vertex r which is an in-neighbor of every . Now apply the polynomial-time algorithm MinLeaf [25], that allows us to find an out-tree rooted at r with minimum number of leaves, i.e., vertices with no out-neighbors. As a result, we obtain, among all tree partitions with minimum number of secrets, one with minimum number of minimal elements. Let denote the set of non-maximal elements in . Then MinLeaf’s runtime is , where . Observe that and . This implies that . Thus, we have the following result.
Given an information flow policy, we can find an optimal tree partitionofin time.
We conclude this section with an example illustrating our results. Let and let for . Then define the poset
where if and only if and . The Hasse diagram for is illustrated in Fig. 1(a). The poset has attracted considerable interest because of its application to “time-bound” access control (see [4,13], for example). In particular, the numbers represent time points or time intervals, and elements in represent contiguous intervals of time (either consecutive points or a sequence of consecutive intervals). A user u assigned the interval is authorized to access any object assigned an interval .
The cardinality of , , , is shown in Fig. 4(a). A tree of minimum weight is shown in Fig. 4(b) and the corresponding values of are shown in Fig. 4(c). It is possible to show that the minimum number of secrets required in total, assuming for each , is if , and if .
Selecting a good chain partition
In this section, we consider chain-based schemes. Recall that a chain partition of a poset is a disjoint union of chains such that every element of belongs to one of the chains. An element z of a chain C is called top (bottom, respectively) if the in-degree (out-degree, respectively) of z in is zero.
We first show that the total number of secrets to be issued in a chain-based enforcement scheme is determined by the bottom elements of the chains in the corresponding chain partition. This in turn implies that there exists a chain partition with a minimum number of secrets issued for which the number of chains is exactly the width of the poset.
For any posetand any chain partitionofwith chains, let chainhave bottom element,. Then
Let comprise elements such that (i.e., ) and observe that is the disjoint union of sets , , where and , . Observe that , . This decomposition of into sets , , will be used in the following derivation.
By Dilworth’s Theorem, a poset of width w of has a chain partition with w chains. Such a chain partition can be obtained in time [23]. Thus, in particular, we can compute w in time . The next theorem can be viewed as a strengthening of Dilworth’s Theorem. In Section 5.1, we will show how to compute a minimal chain partition of width w in polynomial time.
Letbe an information flow policy of width w. Then there exists a minimal chain partition of width w.
Let be a minimal chain partition of X into chains and let B be the set of bottom elements in the chains of . A theorem of Gallai and Milgram asserts that if a chain partition of a poset contains t chains, where , then there exists a chain partition into chains such that the set of bottom elements in is a subset of B [22].11
The result is phrased in the language of digraphs, but every poset may be represented by an equivalent transitive acyclic digraph.
Hence, by iterated applications of the Gallai–Milgram theorem, there exists a chain partition of width w such that the set of bottom elements in is a subset of B. Moreover, by Lemma 3,
As is a minimal chain partition, we conclude that is also a minimal chain partition. □
Letbe an information flow policy. There exists a chain partitionsuch thatis minimized and.
The result follows immediately from Theorem 3 and the fact that is bounded above by the number of chains in for all . □
The above corollary shows that no user requires more than w secrets in a chain-based enforcement scheme.
Returning to our example of , note that the width of is n as the minimal elements form the largest antichain. Thus, any chain partition with n chains requires the same number of secrets. It is not hard to show that this number is , which is minimum possible. Thus the minimal tree partition of (discussed in Section 4) requires approximately half the number of secrets required by the minimal chain partition.
Computing a minimal chain partition
A chain partition imposes stronger constraints than a tree partition. Specifically, each element in a chain partition has at most one parent and one child, whereas a tree partition only requires that each element has at most one parent. Thus, the straightforward algorithm for computing a minimal tree partition cannot be used to compute a minimal chain partition.
Suppose is a poset of width w. In general, a chain partition of has chains. Theorem 3 asserts that there exists a minimal chain partition comprising w chains. We now show how such a chain partition may be constructed. In particular, we show how to transform the problem of finding a minimal chain partition into a problem of finding a minimum cost flow in a network.
Informally, a network is a directed graph in which each edge is associated with a capacity. A network flow associates each edge in a given network with a flow, which must not exceed the capacity of the edge. Networks are widely used to model systems in which some quantity passes through channels (edges in the network) that meet at junctions (vertices); examples include traffic in a road system, fluids in pipes, or electrical current in circuits. Our definitions for networks and network flows follow the presentation of Bang-Jensen and Gutin [6].
A network is a tuple , where:
is a directed graph with vertex set V and edge set A;
such that if and otherwise;
such that if and otherwise;
;
such that .
Intuitively, l and u represent lower and upper bounds, respectively, on how much flow can pass through each edge, and c represents the cost associated with each unit of flow in each edge. The function β represents how much flow should enter or leave the network at a given vertex. If , then the flow going into x should be equal to the flow going out of x. If , then there should be more flow coming out of x than going into x. If , there should be more flow going into x than coming out of x.
Given a network , a function is a feasible flow for if the following conditions are satisfied:
for every ;
for every .
The cost of f is defined to be
Our aim is to find a tree such that is a chain partition of X with precisely w chains that minimizes . To do this, we will construct a network such that the minimum cost flow of corresponds to the desired chain partition. We can then find the minimum cost flow of in polynomial time.
Every top vertex in must have one child and no parent in C, every bottom vertex in C must have one parent and no child in C, and every other vertex in C must have one parent and one child. We cannot represent this requirement directly in a network. However, we can use the vertex splitting procedure [6] to simulate it. Specifically, given poset , define first a directed graph . Let and , and define the vertex set , where . Define the edge set A as follows: for , if and only if either and for some , or and for some such that ; for every we have ; and for every we have .
Then define a network , where
We call this network the network chain-representation of. Note that any feasible flow f for this network must have for all .
Letbe the network chain-representation of an information flow policy. Then the minimum number of secrets issued by a chain-based enforcement scheme forwith w chains is, whereis the minimum cost of a feasible flow in.
Suppose we are given a chain partition .Consider the following flow:
Observe that f is a feasible flow. Indeed, by construction all edges satisfy . In the graph formed by edges with , it is clear that every vertex x has in-degree and out-degree 1, except for s and t. Also, s has in-degree 0 and out-degree w in this graph, and t has in-degree w and out-degree 0. As all edges have or , we have that
for all x, as required. Moreover, the cost of f equals , where B is the set of bottom elements of chains in , which by (3) equals .
Conversely, suppose f is a feasible flow for . Then we define if and only if and . By the construction of and definition of f, it is not hard to see that is a chain partition of X with w chains. By construction of , the cost of f equals , where B is the set of bottom elements of chains in , which by (3) equals . □
We can find a minimum cost flow forintime.
Recall that computing w can be done in time . To compute for each requires time using depth-first search from y in the digraph obtained from by changing orientation of every edge. Thus, to compute for all requires time .
The well-known buildup algorithm (see [6, §4.10.5], for example) finds a minimum cost flow for a network with n vertices and m edges in time , where M denotes the maximum of all absolute values of balance demands on vertices. By construction of , we have that , , and . Thus we get the desired running time. □
Strictly speaking, the buildup algorithm assumes that all lower bounds on edges are 0. In its current form, our network does not satisfy this condition. However, we can satisfy this condition, given , by defining the network , where
Then the minimum cost flow for will have cost exactly less than the minimum cost flow for , and can be transformed into a minimum cost feasible flow f for by setting .
We are now able to prove our main result, for this section which is, essentially, a corollary of Theorem 3 and Lemmas 4 and 5.
Letbe an information flow policy of width w. Then we can find a minimal chain partition comprising w chains in time. In such a chain partition no user requires more than w secrets.
Let denote the minimum number of secrets issued by a chain-based enforcement scheme for X. By Theorem 3, there exists a chain partition that has exactly w chains, for which the corresponding chain-based enforcement scheme only requires secrets. Then by Lemma 4, is equal to the minimum cost of a feasible flow in , the network chain-representation of . By Lemma 5, such a flow can be found in time, and this flow can be easily transformed into the corresponding chain partition . Finally, by definition of , for each and therefore no user requires more than w secrets. □
Concluding remarks
In this paper, we introduced the concept of a tree partition, generalizing prior work on chain partitions and tree-based enforcement schemes. We have proved that it is possible to compute optimal chain and tree partitions for an arbitrary information flow policy in polynomial time. And we have proved that there exist secure instantiations of enforcement schemes based on tree partitions. In short, we have shown that it is possible to construct forest-based cryptographic enforcement schemes for information flow policies efficiently.
Perhaps the most important contribution of our work on cryptographic enforcement schemes based on tree and chain partitions is to provide alternative trade-offs between the parameters of such enforcement schemes. These additional trade-offs provide data owners with a greater range of potential enforcement schemes, enabling them to select the most appropriate for their particular information flow policy and deployment constraints (such as storage and connectivity capabilities of end-user devices). We might, for example, wish to use an existing scheme that requires each device to store a single secret when storage is limited. Alternatively, we might wish to use a chain-based scheme when the distribution of public information is difficult and we wish to impose a small upper bound on the number of secrets that any device needs to store. We might use a tree-based scheme if distribution of public information is difficult and we wish to minimize the amount of data we wish to transmit to the user population.
Another difference between minimal tree-based and chain-based schemes is that computing the former is significantly faster than the latter as the former can essentially be computed by a simple greedy algorithm, while the latter requires a more sophisticated and much slower minimum cost flow algorithm. While still polynomial-time, minimum cost flow algorithms may be too slow when is large.
In future work, we hope to investigate the difficulty of finding a tree partition in which the worst-case derivation time is as similar as possible for all users (whilst still minimizing the number of secrets issued).
References
1.
S.Akl and P.Taylor, Cryptographic solution to a problem of access control in a hierarchy, ACM Trans. Comput. Syst.1(3) (1983), 239–248. doi:10.1145/357369.357372.
2.
M.J.Atallah, M.Blanton, N.Fazio and K.B.Frikken, Dynamic and efficient key management for access hierarchies, ACM Trans. Inf. Syst. Secur.12(3) (2009), Article No. 18. doi:10.1145/1455526.1455531.
3.
M.J.Atallah, M.Blanton and K.B.Frikken, Key management for non-tree access hierarchies, in: SACMAT 2006, 11th ACM Symposium on Access Control Models and Technologies, Proceedings, Lake Tahoe, California, USA, June 7–9, 2006, D.F.Ferraiolo and I.Ray, eds, ACM, 2006, pp. 11–18.
4.
M.J.Atallah, M.Blanton and K.B.Frikken, Incorporating temporal capabilities in existing key management schemes, in: ESORICS, J.Biskup and J.Lopez, eds, Lecture Notes in Computer Science, Vol. 4734, Springer, 2007, pp. 515–530.
5.
G.Ateniese, A.D.Santis, A.L.Ferrara and B.Masucci, Provably-secure time-bound hierarchical key assignment schemes, J. Cryptology25(2) (2012), 243–270. doi:10.1007/s00145-010-9094-6.
6.
J.Bang-Jensen and G.Gutin, Digraphs: Theory, Algorithms and Applications, 2nd edn, Springer, 2009.
7.
D.Bell and L.LaPadula, Secure computer systems: Unified exposition and Multics interpretation, Technical Report MTR-2997, Mitre Corporation, Bedford, Massachusetts, 1976.
8.
J.Bethencourt, A.Sahai and B.Waters, Ciphertext-policy attribute-based encryption, in: IEEE Symposium on Security and Privacy, IEEE Computer Society, 2007, pp. 321–334.
9.
J.Black and P.Rogaway, CBC MACs for arbitrary-length messages: The three-key constructions, in: Advances in Cryptology – CRYPTO 2000, 20th Annual International Cryptology Conference, Proceedings, Santa Barbara, California, USA, August 20–24, 2000, M.Bellare, ed., Lecture Notes in Computer Science, Vol. 1880, Springer, 2000, pp. 197–215.
10.
J.Black and P.Rogaway, A block-cipher mode of operation for parallelizable message authentication, in: Advances in Cryptology – EUROCRYPT 2002, International Conference on the Theory and Applications of Cryptographic Techniques, Proceedings, Amsterdam, The Netherlands, April 28–May 2, 2002, L.R.Knudsen, ed., Lecture Notes in Computer Science, Vol. 2332, Springer, Amsterdam, The Netherlands, 2002, pp. 384–397.
11.
A.Castiglione, A.D.Santis and B.Masucci, Key indistinguishability vs. strong key indistinguishability for hierarchical key assignment schemes. IACR Cryptology ePrint Archive, 2014:752, 2014.
12.
T.H.Cormen, C.E.Leiserson, R.L.Rivest and C.Stein, Introduction to Algorithms, 3rd edn, MIT Press, 2009.
13.
J.Crampton, Practical and efficient cryptographic enforcement of interval-based access control policies, ACM Trans. Inf. Syst. Secur.14(1) (2011), 14.
14.
J.Crampton, R.Daud and K.M.Martin, Constructing key assignment schemes from chain partitions, in: Data and Applications Security and Privacy XXIV, 24th Annual IFIP WG 11.3 Working Conference, Proceedings, Rome, Italy, June 21–23, 2010, S.Foresti and S.Jajodia, eds, Lecture Notes in Computer Science, Vol. 6166, Springer, 2010, pp. 130–145. doi:10.1007/978-3-642-13739-6_9.
15.
J.Crampton, N.Farley, G.Gutin and M.Jones, Optimal constructions for chain-based cryptographic enforcement of information flow policies, in: Data and Applications Security and Privacy XXIX – 29th Annual IFIP WG 11.3 Working Conference, DBSec 2015, Proceedings, Fairfax, VA, USA, July 13–15, 2015, P.Samarati, ed., Lecture Notes in Computer Science, Vol. 9149, Springer, 2015, pp. 330–345. doi:10.1007/978-3-319-20810-7_23.
16.
J.Crampton, N.Farley, G.Gutin, M.Jones and B.Poettering, Cryptographic enforcement of information flow policies without public information, in: Applied Cryptography and Network Security – 13th International Conference, ACNS 2015, Revised Selected Papers, New York, NY, USA, June 2–5, 2015, T.Malkin, V.Kolesnikov, A.B.Lewko and M.Polychronakis, eds, Lecture Notes in Computer Science, Vol. 9092, Springer, 2015, pp. 389–408.
17.
J.Crampton, K.M.Martin and P.R.Wild, On key assignment for hierarchical access control, in: CSFW, IEEE Computer Society, 2006, pp. 98–111.
18.
M.J.Dworkin, SP 800-38B: Recommendation for block cipher modes of operation: The CMAC mode for authentication. Technical report, National Institute of Standards & Technology, Gaithersburg, MD, United States, 2005. http://csrc.nist.gov/publications/nistpubs/800-38B/SP_800-38B.pdf.
19.
M.J.Dworkin, SP 800-38D: Recommendation for block cipher modes of operation: Galois/Counter Mode (GCM) and GMAC. Technical report, National Institute of Standards & Technology, Gaithersburg, MD, United States, 2007. http://csrc.nist.gov/publications/nistpubs/800-38D/SP-800-38D.pdf.
20.
E.S.V.Freire and K.G.Paterson, Provably secure key assignment schemes from factoring, in: Information Security and Privacy – 16th Australasian Conference, ACISP 2011. Proceedings, Melbourne, Australia, July 11–13, 2011, U.Parampalli and P.Hawkes, eds, Lecture Notes in Computer Science, Vol. 6812, Springer, 2011, pp. 292–309.
21.
E.S.V.Freire, K.G.Paterson and B.Poettering, Simple, efficient and strongly KI-secure hierarchical key assignment schemes, in: Topics in Cryptology – CT-RSA 2013 – The Cryptographers’ Track at the RSA Conference 2013. Proceedings, San Francisco, CA, USA, February 25–March 1, 2013, E.Dawson, ed., Lecture Notes in Computer Science, Vol. 7779, Springer, 2013, pp. 101–114.
22.
T.Gallai and A.N.Milgram, Verallgemeinerung eines Graphentheoretischen Satzes von Rédei, Acta Sci. Math.21 (1960), 181–186.
23.
V.K.Garg, Introduction to Lattice Theory with Computer Science Applications, Wiley, 2015.
24.
V.Goyal, O.Pandey, A.Sahai and B.Waters, Attribute-based encryption for fine-grained access control of encrypted data, in: ACM Conference on Computer and Communications Security, A.Juels, R.N.Wright and S.D.C.di Vimercati, eds, ACM, 2006, pp. 89–98.
25.
G.Gutin, I.Razgon and E.J.Kim, Minimum leaf out-branching and related problems, Theor. Comput. Sci.410(45) (2009), 4571–4579. doi:10.1016/j.tcs.2009.03.036.
26.
National Institute of Standards and Technology. FIPS 198-1, The Keyed-Hash Message Authentication Code, Federal Information Processing Standard (FIPS), Publication 198-1. Technical report, Department of Commerce, 2008.
27.
R.S.Sandhu, Cryptographic implementation of a tree hierarchy for access control, Inf. Process. Lett.27(2) (1988), 95–98. doi:10.1016/0020-0190(88)90099-3.
28.
S.Yu, C.Wang, K.Ren and W.Lou, Achieving secure, scalable, and fine-grained data access control in cloud computing, in: INFOCOM 2010. 29th IEEE International Conference on Computer Communications, Joint Conference of the IEEE Computer and Communications Societies, San Diego, CA, USA, 15–19 March 2010, IEEE, 2010, pp. 534–542.