This invention relates to data processing, and in particular to computer processing of set systems such as can be used in various applications including, for example, broadcast encryption and certificate revocation.
E
Definition 1. A family of subsets CC={S1, . . . ,Sk}over [n] is (n,k,r,t)—exclusive if for any subset R⊂[n] with |R|≦r, we can write [n]\R=∪tj=1Si
The family {Sj
In the example of
Determining the exact tradeoff between n, k, r, and t is a fundamental combinatorial problem with significant applications in computer science.
A
Each client 104 (
The revoked clients 104.1, . . . , 104.r cannot recover the broadcast content B because they do not receive the encryptions of the broadcast key bk with the keys k1, . . . , kr.
In this example, each broadcast includes n-r encryptions at step 230. The number of encryptions can be reduced to at most t if each set Si is associated with an encryption key kS
Since only the non-revoked clients each have one or more of the keys,
only these clients will be able to recover the key bk at step 240 (
for the set Si
Since each subset of t keys can correspond to at most one set [n]\R, we need
or equivalently,
(The lower bound we use here is the same as that given by Lemma 11 in [10], and is unknown to be tight for general n, r, and t. We note that the bounds in that paper are generally not tight.) For instance, their Theorem 12 can be improved by using the sunflower lemma with relaxed disjointness (p. 82 in [6]) instead of the sunflower lemma. This general technique of using exclusive set systems for broadcast encryption in known in the art as the subset-cover framework. In particular, an exclusive set system forms a “subset cover”:
Definition 2. A collection CC(U) of subsets S1, . . . , Sw with Sj⊂U, 1≦j≦w is called a subset cover for U if for any subset P⊂U, there exist indices i1, . . . , imε[1, w] such that:
We call m the size of the covering.
Although problems like set-cover are NP-hard, it turns out that it is very simple to determine if a given collection of subsets forms a cover for a given target set.
Lemma A collection S1, . . . , Sw with Sj, ⊂U, 1≦j≦w forms a subset cover if and only if all the singleton sets (that is, {u} for all uεU) are included among the Sj.
Proof: It is easy to show the “if” direction since for any (finite) subset P⊂U, we have:
and the {u} subsets are among the cover by hypothesis. For the “only if” direction, observe that if P={u}, then the set {u} must necessarily be part of the subset cover. Therefore, for each uεU, we have that {u} is in the subset cover.
Broadcast encryption techniques can be used for secure multicast of privileged content such as premium video, audio, and text content. One may also use broadcast encryption for content protection on external storage devices such as the hard disk of a mobile phone, USB storage devices, Flash cards, CD and DVD ROMs, etc. Other applications include Symmetric Key Infrastructures, and other situations in which a valuable content must be transmitted to multiple recipients in a secure manner.
A
If a certificate 104 is revoked, other parties must be prevented from using the certificate. Validity proof data 104-V is used to ascertain that the certificate is valid. In existing certificate revocation schemes known in the art, such as the one of Micali [12, 13, 14] and subsequently by Aiello et al., [2], in each period m (e.g. each day), certificate authority 610 issues a validation proof cm (possibly over a wireless network or some other type of network) for each non-revoked certificate in the public-key infrastructure. CA's clients 620 (
In the original work of Micali, one validation proof was issued per non-revoked certificate. Thus the overall communication complexity of the system was proportional to n−r where n is the total number of users and r is the number of non-revoked certificates. Aiello et al. observed that instead of instead of having one validity proof apply to an one individual user, one could instead group users together into various subsets Si as in the definition 1 or 2. In
Since each subset Si must be provided with a validity proof cm(Si), the number of total validity proofs may increase, but the communication complexity for transmitting the proofs is now proportional to the t parameter in the underlying subset-cover system, and generally speaking, t<n−r, so the overall communication needed for this approach is less than that needed for the original Micali approach.
Subset covers can be constructed using trees.
If a certificate is revoked, then the corresponding leaf is revoked, i.e. represents a set for which a validity proof must not be provided. Also, each node in the path from the leaf to the root is revoked. In the example of
The tree method of
FREE RIDERS. Most of the prior art on broadcast encryption assumes a stringent security requirement. In particular, any member of the privileged set P can decrypt a broadcast, but no one outside this set should be able to. For many applications this is unnecessary. In particular, the system might be able to tolerate some number of non-privileged users being able to decrypt a broadcast. Such a user is termed a free rider.
We now consider why it is desirable to permit free riders. In many situations, it is conceivable that relaxing the system to allow free riders might decrease other system costs substantially. For example, we may be able to decrease the amount of data communicated during the broadcast—if there are a large number of users to whom data is broadcast, then this might decrease the overall network traffic by a substantial amount. Consider, for example, the subset cover of
The notion of free riders was introduced by Abdalla, Shavit, and Wool [1]. (The bracketed numbers denote references listed at the end of this disclosure before the claims.) The authors of [1] first demonstrate by example that allowing free riders can reduce the amount of data communicated (and hence the overall network traffic) in many situations. Next, they consider the question of how one might be able to arrive at the “optimal” solution that minimizes traffic for a given number of free riders. They observe that this problem is NP complete in the worst case; i.e., it is unlikely for there to be an efficient solution. They even provide theoretical evidence that the task of coming up with an algorithm that provides performance which always closely approximates the optimal solution is also challenging. Next, they suggest some “heuristic” approaches that apply to a broadcast encryption schemes in the subset-cover framework. Finally, they do experiments to analyze the performance of their heuristics on the Complete Subtree method. Their heuristics seem to perform well in these experiments, and they use these results to bolster their claims that free riders are a useful notion in the context of broadcast encryption.
More particularly, [1] defines an f-redundant cover as a cover CC={Si} such that, for each set P⊂U, there is a covering Cf(P)={Si
For a complete subtree method, their heuristic approach is as follows. The covering Cf(P) is initialized to empty. The tree (such as in
[1] notes that this approach works also on non-binary trees.
This approach provides an f-redundant covering in time O(n). However, the authors of [1] do not guarantee that the covering Cf(P) is minimal.
This section summarizes some features of the invention. Other features are described in subsequent sections. The invention is defined by the appended claims, which are incorporated into this section by reference.
In some embodiments of the present invention, an algorithm is provided that computes minimal or near minimal coverings, thus ensuring optimal or near-optimal network traffic. The algorithm is efficient in some embodiments. Our results do not contradict those of Abdalla et al. [1]. In particular, the theory of NP-completeness only makes claims about worst-case scenarios—however, for broadcast encryption, we are interested in what happens for a specific broadcast encryption scheme. For some specific schemes we may be able to efficiently come up with the optimal solution, as we will demonstrate. In some embodiments, our approach works on the Complete-Subtree method. In some embodiments, our method is a (1+ε) approximation algorithm, where ε≧0. In this setting, when ε=0, we have an algorithm that always produces a minimal covering. As ε increases, the covering may no longer be optimal, but there may be an opportunity to compute it faster.
In some embodiments, an optimal or near-optimal set-covering CV(f,P) is computed for a set P of privileged users and at most a predefined number f of revoked users. The covering consists of elements of a predefined set cover CC(U) for the set of all users U. The covering is computed by finding optimal or near-optimal coverings for elements of CC(U) that are proper subsets of U. In some embodiments, possible assignments of free riders to the elements of CC(U) are examined, and an assignment is selected to satisfy some predefined optimality criterion for the total set covering. In some embodiments, only “meeting point” elements are used. A meeting point is an element containing at least two “immediate child” elements each of which contains a revoked user. An immediate child of a “parent” element is a proper subset of the parent element with no intermediate elements (no elements containing the child as a proper subset and being itself a proper subset of the parent). An ordered list MP of meeting points is computed. The list is ordered by the number of elements in a chain from the meeting point to the root. The complete-subtree method is used in some embodiments.
In another aspect of the present invention, a method for computing the Meeting Points in a tree is provided. This method is used for a free riders method or in some other applications.
This summary is not limiting. Other embodiments and variations are within the scope of the invention, as defined by the appended claims.
This section describes some embodiments of the invention. The invention is not limited to such embodiments. In particular, the invention is not limited to particular data structures, algorithms, or complexity bounds. The invention is defined by the appended claims.
Some embodiments of the invention will now be described with reference to broadcast encryption schemes. These techniques can also be used for other applications, e.g. multi-certificate validation as discussed above with respect to
In the following description, numerous details are set forth to provide a more thorough explanation of the present invention. It will be apparent, however, to one skilled in the art, that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form, rather than in detail, in order to avoid obscuring the present invention.
Some portions of the detailed descriptions that follow are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is a method for doing something. The method may require physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussion, it is appreciated that throughout the description, discussions utilizing terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
The present invention also relates to apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing computer instructions. Such a computer program can be transmitted over a network.
The present invention is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the invention as described herein. Computer programs can be stored on a data carrier such as a computer-readable medium. Computer programs ca also be carried by data carrier signals over networks. A computer-readable medium includes any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computer). For example, a machine-readable medium includes read only memory (“ROM”); random access memory (“RAM”); magnetic disk storage media; optical storage media; flash memory devices; electrical, optical, acoustical or other form of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.); etc.
COMPUTATIONAL ASSUMPTIONS. It is known to one of ordinary skill in the cryptographic arts that the security of many cryptographic inventions relies upon making certain computational intractability assumptions; for example, one may try to prove that a cryptosystem is secure so long as it is difficult to decompose a specific number into its prime factors efficiently. The term “computational” is often used in the art to identify this class of cryptographic inventions. The present invention provides a computational scheme for password authenticated key exchange. The term “information theoretic” or “unconditional” is often used in the art in conjunction with schemes that are mathematically seen to meet a specific meaningful security definition without making any type of assumption.
While it is generally preferable from a pure security perspective not to have any computational assumptions whatsoever, there are instances of problems that cannot be solved without making such an assumption (the present invention serves as such an example). Further, it is generally known by those skilled in the art that cryptographic methods can sometimes be made more efficient by incorporating computational assumptions.
It also worth noting that often times one assumption implies another. That is, if one of the assumptions were actually true, then another assumption would be seen to be true by a mathematically logical argument. Typically the means used by those skilled in the art to show such an implication, is a transformation (often known in the art as a reduction) that converts a mechanism for violating the second assumption to a mechanism for violating the first assumption. In such cases, the first assumption is called “stronger” or the second “weaker.” In general, weaker assumptions are preferable.
The issue of computational versus information-theoretic is orthogonal to the methods and apparatus of the present invention. More specifically, the applications of exclusive-set systems can be practiced using either computational or information-theoretic cryptographic mechanisms.
The issue of computational versus information-theoretic, while relevant to many cryptographic inventions, is orthogonal to the methods and apparatus of the present invention. The techniques of the present invention are applied on top of existing broadcast encryption or certificate revocation schemes—while these underlying broadcast encryption and certificate revocation schemes may base security on certain assumptions, the inventions in the present disclosure do not add any additional assumptions.
Use of Mathematical Proofs When Describing Methods. The methods disclosed herein have their basis in fundamental mathematical concepts. The description of the methods herein prescribes that certain algorithmic steps be executed. However, the key questions of whether the steps can indeed be executed and whether executing them leads to a desired result (in this case free rider construct with desired approximation bounds) must be addressed by means of a formal mathematical argument. Familiarity with these arguments is not necessary for implementing or practicing the methods disclosed herein. Such arguments merely enable one skilled in the art to determine that the procedures are indeed correct and lead to the desired outcome. Therefore, for completeness, we have included, where appropriate, these arguments in the present disclosure. However the arguments about the correctness, feasibility, and performance of the schemes themselves should be decoupled from the actual methods and apparatus provided in this disclosure.
In the foregoing, we treat the number of users n as a power of 2. One of ordinary skill in the art will see that one can easily extend our methods to the case of an arbitrary number of users—for example, by letting n be the smallest power of two that is bigger than the number of users; this increases complexity by a factor of at most 2. We use log( ) to denote the base-2 logarithm.
For a vertex v in a tree, let T(v) be the subtree rooted at v, let LV(v) and RV(v) be the left and right children of v respectively, and let L(v) and R(v) denote the subtrees rooted at the left and right child of v, respectively. We use a standard identification of nodes of a complete binary tree 910 (
When analyzing the time complexity of our methods, we assume we work in the RAM model and that arithmetic operations can be done in O(1) time on words of size O(log n). The invention can be practiced in any model of computation, so long as the appropriate algorithmic steps can be carried out. The running time may differ in different computation models.
Let U denote the set of all users, n is the total number of users (i.e. |U|=n), P is the set of privileged users, R is the revoked set at a given time, and r=|R|.
The goal of a broadcast encryption scheme is to transmit an encrypted message M to all users U, such that the members of P can decrypt the message, but the members of R cannot. In some embodiments, even a coalition of users in R who pool together their knowledge cannot determine M. To achieve this aim, the system comprises a set of cryptographic keys KU. Each user u will possess knowledge of a subset Ku of these keys. The user u stores these keys on some type of receiving device (e.g., his cell phone, his DVD player, or his set-top box). Some embodiments focus on the stateless case wherein the receiver keys KU are static. That is, they are assigned during some initialization phase and remain unchanged.
Definition 3 Suppose the collection of sets S1, . . . Sw form a subset cover CC(U) for a set U. Let P be a subset of U. Let i1, . . . , imε[1,w] such that:
Given a non-negative integer f we call {Si
We denote {Si
One remark is in place. Our definition of redundant covers has a superficial difference from the one given in the ASW paper (see (1) above). The choice of what definition to use is immaterial—we can recast all of the results in this disclosure using the ASW definition without any change in performance. Our definition just happens to be more convenient for describing our results. Denoting the ASW f parameter as f′, an f′-redundant cover is an f+-redundant, and vice versa, if f=|P|·(f′−1) or, equivalently, f′=1+f/|P|.
Now, the goal is to minimize the size m of the redundant cover for a given number of free riders f Also, in general we would like m to be relatively small even in the worst case (regardless of the choice of the privileged set P). Some embodiments of the invention include efficient algorithms for computing the optimal or near-optimal f+-redundant cover for the Complete Subtree Method.
In some embodiments, the basic idea is to employ a dynamic program. Suppose that one had an optimal f+-redundant cover obtained using the Complete Subtree Method. For each node v of the complete binary tree 910 (such as that of
If the optimal covering does not consist of the root (i.e. of the set U), then this covering includes a covering for T(2), i.e. for the first n/2 users, including up to f2 free riders, and a covering for T(3) with up to f3 free riders. These two coverings have to be optimal, i.e. the covering induced by the left subtree is an optimal f2+-redundant covering, and the covering induced by the right subtree is an optimal f3+-redundant covering. This allows us to construct the optimal cover CV(f,P) from the covers for the subtrees T(2) and T(3). Roughly, we determine the optimal coverings for all possible f2 values between 0 and f1 for T(2) and do the same for possible f3 values for T(3). We then choose the pair of values ([f2,f3), where f2+f3=f1 that minimizes the covering on the entire tree. The same approach can be used to find optimal coverings for T(2) and T(3). (If the optimal covering for the tree consists of the root, we treat it as a special case, which is easy to detect as f≧r.)
Now we describe one embodiment in more detail. Let v be a vertex in the complete binary tree 910 (such as in
P(v)=P∩U(v).
Now, let T(v, f, P(v), U(v)).size denote the size of the optimal f+-redundant covering CV(f,P(v)) of the set P(v) of the users in the subtree rooted at v. Similarly, let T(v, f, P(v), U(v)).cover denote the collection of covering sets in the optimal f+-redundant covering of the set P(v) of the users in the subtree rooted at v. We will sometimes omit the arguments P(v) and U(v), writing T(v,f) instead of (T(v,f,P(v), U(v)).
Appendices 1 and 2 below (before the claims) illustrate one embodiment of our method. At step 1 in Appendix 1, an initialization is performed (this step is not shown in some other algorithms described below). At step 2, a method OptimalCover is called to find the optimal cover for the root node 1 with at most f free riders. At step 3, the optimal cover is used to perform suitable network transmissions or other suitable processing (for example, the processing described above in connection with
The OptimalCover method is shown in Appendix 2. The input to this method is a node v and the maximum number of allowable free riders fv. We note that there are three simple (overlapping) border cases; these constitute the base cases in the recursion, illustrated at steps 1 and 2 in Appendix 2. First, if f=0 (step 1), then there are no free-riders. In this case, we can employ the standard algorithm given by Naor et al. [20] for covering the associated subtree. See
Second, if P(v) is empty, i.e. all the users in U(v) are revoked, then the optimal covering is empty. If we assigned free riders to U(v), then the covering size would increase to cover the free riders. In this case, the optimal covering can be computed as in the first case because BasicCover(v) will produce an empty covering. The covering size is 0.
For the third border case (step 2), we observe that if rv≦fv (and P(v) is not empty), then the number of free riders we can tolerate equals or exceeds that of the number of revoked users in the subtree. In this case, we can achieve an optimal covering of size 1 by simply allowing all the non-privileged users to be free riders. That is, T(v, f, P(v), U(v)).size=1 and T(v, f, P(v), U(v)).cover=U(v) (we use v and U(v) interchangeably sometimes).
Note that if v a leaf of the tree, then one of these three border cases will apply. In particular, when fv=0 or the leaf is revoked, the first or second case will apply. If fv>0, and the leaf is not revoked, then rv=1 and hence fv≧rv. Therefore, the third case applies.
Step 3 of Appendix 2 is the general inductive case for an internal vertex v for fv>0. Denoting fL=fLv(v),
For a value fL=fLmin that minimizes (5), we have:
T(v,fv).cover=T(LV(v),fLmin).cover ∪ T(RV(v),fv−fLmin).cover (6)
(There may be multiple fL values that minimize (5), and fLmin can be any of these values.)
Evaluation of Efficiency. In some embodiments, the values T(v,fv) are stored in an (2n−1)×(f+1) table TBL1 (
To access the elements of the table, a tree data structure (not shown) is used in some embodiments to represent the complete binary tree 910 (like in
Next, some embodiments initialize the first column (i.e., fv=0) at step 1 of Appendix 1. This could be done by using the standard scheme ([20] or
n+2(n/2)+22(n/22)+ . . . +2log n(n/(2log n))=n log n.
We can actually do better by recycling the work done on the subtrees. Observe that for an interior vertex v, once we compute the values BasicCover(L(v), P(L(v)), U(L(v))) and BasicCover(R(v), P(R(v)), U(R(v))), then we can compute BasicCover(v, P(v), U(v)) in constant time. In particular, if
BasicCover(L(v), P(L(v)), U(L(v)))=U(L(v)) and
BasicCover(R(v), P(R(v)), U(R(v)))=U(R(v)),
then BasicCover(v, P(v), U(v))=U(v). Otherwise,
BasicCover(v, P(v), U(v))=
BasicCover(L(v), P(L(v)), U(L(v))) u BasicCover(R(v), P(R(v)), U(R(v))).
At the leaves we only require O(1) time to compute the optimal basic cover (i.e., for a leaf v, the cover is U(v) is vεP otherwise the cover is empty). Using the above recurrence, we only require O(1) time for the interior vertices. Therefore, we can initialize the first column in O(n) time.
Now, let's consider the main body of the algorithm. At each point in the recursion, the most time-consuming part is in the computation of equation (5) hereinabove (step 3 in Appendix 2). This requires O(fv) work (where fv is the column number). We have to repeat this for each entry in the table. So, the overall running time for the main body is:
This would make the running time of the entire algorithm
O(nf)+O(n)+O(nf2)=O(nf2).
One possible quibble is that technically speaking the inputs to the algorithm are a description of the users, the privileged set, and collection of sets associated with the complete subtree method (which requires at least Ω(n) bits) and a description of f (which requires log f bits); this means that the running time is technically exponential in the size of f. However, this is actually a mirage. The number of free riders f is at most the number of users n. Therefore, the size of f is at most log n. This means the input size is at least Ω(n) bits, and the running time is at most O(n3).
One can do a tighter analysis. Observe that for each node at the lth level (where the root is at the 0th level) when computing the minimum (5), one can get away with O(min{f,n/2l}) work. This is because at the lth level, there are n/2l leaves in each subtree. There is no reason to consider what happens when the number of free riders exceeds the number of leaves. Therefore, we can charge each vertex v at level l, with a cost of O(n/2l). Furthermore, there are 2l vertices at level l. The running time for the most time-consuming step then becomes:
We have to repeat this for all possible values of fv (since all these values will be needed when combining the optimal solutions for each subtree). This gives a run time of O(nf log n). Also, there is no need to maintain f+1 records for each vertex. Instead, we can maintain n/2l entries for each vertex at level l. Initializing the records will require O(n log n) time. The overall worst-case running time of the algorithm under this analysis is then O(nf log n)). This gives a better bound than what we have previously whenever f≧log n. This is likely to be the case for any practical setting of the parameters. For example if n is a billion, then f would have to be more than 30 for the other bound to be more accurate.
In some embodiments, the OptimalCover method does not compute the optimal cover itself but only computes the fLmin values. See Appendix 3, showing the method OptimalCoverSize.
More particularly, in Appendix 3, for each node v, the corresponding Define parameter is set to TRUE (step 1 of Appendix 3). Steps 2-4 of Appendix 3 are similar to the respective steps 1-3 in Appendix 2. The fLmin values are stored in TBL2 at step (4b2) of Appendix 3.
The optimal cover is computed in the method FreeRiders of Appendix 4. At step 1, the set F of the free rider leafs is initialized to an empty set (it can also be initialized to a non-empty set of users who are to receive the broadcast due to some pre-established criteria). At step 2, OptimalCoverSize (Appendix 3) is invoked for node 1 with fv=f Then an array ff[v] of the optimal assignments of free riders is computed, as shown in
At step 4, the tree is traversed top to bottom (e.g. in the Breadth First Search or Depth First Search order). At step (4a), if ff[v]=0, the tree T(v) has no free riders and hence can be skipped. If P(v) is empty, then the tree T(v) can also be skipped because no free riders were assigned to it (see step 2 of Appendix 3). The condition that P(v) is empty can be replaced with TBL2[v, ff[v]].Size=0. Indeed, if the optimal cover size is zero, there are no nodes to cover after the free rider assignments, so no free riders were assigned. At step (4b), if ff[v]≧rv then the optimal f+-redundant cover CV(ff[v],U(v)) consists of node v. Hence, all the revoked nodes in T(v) are added to F, and T(v) is skipped in further traversal.
If v is a leaf, it will be processed in steps (4a) or (4b). Step (4c) thus handles only internal nodes. At this step, the ff values are computed for the children L V(v), RV(v) as discussed above (fLmin for the left child and (ff[V]-fLmin) for the right child).
At step 5, BasicCover(1,P∩F,U) is invoked to compute the optimal covering and its size.
The invention is not limited to the particular implementations of Appendices 1-4. For example, recursion can be avoided in Appendices 2 and 3 if the respective trees are traversed down to top to compute the pertinent values in respective tables TBL1, TBL2.
Some embodiments allow larger than minimal coverings in exchange for reduced computation complexity. Let us denote the minimum covering size as 5 min. For some number ε≧0, we may be able to find a covering of size sε such that:
sε≦(1+ε)smin (7)
In some embodiments, if ε>0, such a covering reduces the amount of computation needed at step 3 of Appendix 2 or step 4 of Appendix 3, as explained in the discussion of the MinSum problem immediately below.
MinSum Problem
The minimum value in equation (5) hereinabove can be found using well known MinSum algorithms. Indeed, for a fixed node v, let us denote
ai=T(LV(v),i).size, biT(LV(v),i).size (8)
Then the minimum in (5) can be written as
where j=fL and i=fv. Finding such minima is the well-known MinSum problem when each of {ai} and {bi} is a decreasing (i.e. non-increasing) sequence in i. In our case, for any node v, the value T(v,fv).size is a decreasing function of fv (not necessarily strictly decreasing, i.e. the function is non-increasing). Indeed, fv is an upper bound on the allowable number of free riders, and the minimum cover size decreases (non-strictly) as the upper bound is relaxed.
Let ε≧0, and let am
ac[i]+bi−c[i]≦(1+ε)minj(aj+bi−j).tm (10)
If ai and bi are as in (8), then c[i]=fLmin (i=fv, and clearly fLmin depends on fv). The time complexity of the c[i] computation is an increasing function of the bound A.
Theorem. If ε≧0, then the time complexity of MinSum is
Proof: The algorithm for this case is already known in the art, and can be found in [16]. It is essentially a direct application of a technique given in [15]. For completeness, we describe the algorithm here. (We remark that our invention can be practiced using any alternate MinSum algorithm, not necessarily the one described below or satisfying the time complexity bound given in this theorem.)
The algorithm uses a subroutine for finding all dominating pairs between a red point set and a blue point set in d-dimensional space. We say that a red point p=(p1, . . . , pd) and a blue point q=(q1, . . . , qd) form a dominating pair if, and only if, pi<qi for all i ε[d]. Here [d] denotes the set of all integers from 1 to d inclusive. The following is Lemma 2.1 of [15].
Lemma 4 Given n red/blue d-dimensional points, we can report all K dominating pairs in
time for any constant εε(0, 1), where
cε=2ε/(2ε−1).
The application of this lemma to MinSum is pointed out in [16]. Let d=δ log(m1+m2) for a sufficiently small constant δ. The idea is to define two point sets {pi} and {qj}:
{pi=(ai−ai−d,ai−ai−d+1, . . . , ai−ai+d)| all i}
{qi=(bj+d,−bj,bj+d−1−bj, . . . ,bj−d−b)| all j}
Then we compute all the dominating pairs between these sets. Because ai+bk−i<ai′+bk−i′ if, and only if, ai−ai′<bk−i′−bk−i, if we have a dominating pair of the form (pi, qk−i), then ai+bk−i=mini=d, . . . , i+d(ai′+bk−i)′. By standard perturbation techniques, we can guarantee that ai′+bk−i′≠ai″+bk−i″ for any i′≠i″. It follows that there can be at most O((m1+m2) min(m1, m2)/d)=O(m1m2/d) dominating pairs, and thus, using Lemma 4, they can all be found in O(m1m2/log(m1+m2)) time, provided δ is a small enough constant. Finally, MinSum can output each entry of its array c by taking a minimum over just O(min(m1,m2)/d) terms, i.e., those provided by the dominating pairs. So the total time is O(m1m2/log(m1+m2)), as desired.
Meeting points. Turning back to the methods of Appendices 2 and 3, further optimization can be achieved as follows.
Suppose now an optimal free rider assignment assigns some maximum allowable number fv
In fact, the value fv
Likewise, consecutive vertices w1, w2, . . . , ws are on a path from w1 to a revoked leaf (ws may or may not be a leaf). The siblings w2′, . . . , ws′ of vertices w2, . . . , ws are unrevoked. The upper bound fw
We will call the node v a “meeting point” (a point of meeting of the paths from revoked nodes vm,ws to the root). More generally, a meeting point is an internal node whose two immediate children are revoked. In addition, revoked leafs will also be called meeting points.
The meeting points can also be defined as follows. Recall that in the art, a Steiner tree T of a subset S of vertices of an unweighted tree TR is the unique minimal-sized tree containing each vertex of S. Suppose we compute the Steiner tree T of the subset R of the complete binary tree 910.
As should be clear from the discussion above in connection with
Appendix 5 shows a method OptimalCoverM(v,fv,ε) which is a modification of the OptimalCover method of Appendix 2. Here ε is as in (10). The method of Appendix 5 traverses just the meeting points at step 3. For each non-leaf meeting point v, the function MPleft(v) returns the lowest height meeting point in v's left subtree L(v). MPright(v) returns the lowest-height meeting point in the right subtree R(v). We note that in any subtree, the lowest-height meeting point is uniquely defined. Indeed, if there were two meeting points v1, v2 of the lowest height, then their paths to the root of the subtree would meet at another meeting point having a still lower height. This is a contradiction because the entire paths to the root of the subtree, and hence the paths' meeting point, must lie in the subtree.
At step (3a) of Appendix 5, we determine the optimal covers OptimalCoverM(x,fL,ε′) and OptimalCoverM(y,fv−fL,ε′) using a parameter ε′ which can be smaller than ε if ε>0. In order to obtain the optimality condition (10) with the ε value for the root (v=1), we may have to use a smaller value ε′ for the subtrees at step (3a). This is further explained below in connection with Appendix 10.
Regarding step (3b) of Appendix 5, the optimal covering for the node v is the union of the covers for nodes x,y together with the siblings of the nodes x,y on the respective paths from x, y to v. (E.g., in
Clearly, |Conodes(x,v)|=height(x)-height(v).
Since the root may or may not be a meeting point, the method of Appendix 1 can be modified as shown in Appendix 6, to first find the lowest-height meeting point vM in the complete binary tree 910 (step 2A of Appendix 6).
Appendix 7 shows a method OptimalCoverSizeM obtained by modifying OptimalCoverSize of Appendix 3. Only step 4 is shown. Appendix 8 shows a method FreeRidersM obtained by modifying FreeRiders of Appendix 4. In both methods, only the meeting points are traversed.
In some embodiments, before the optimal coverings are computed, an ordered list of meeting points is created, in the increasing or decreasing order of heights. The meeting points of the same height can appear in any order. Then the meeting point traversal is more efficient. We will now describe such methods.
Throughout, we will assume that r>1, since if r=1 there is nothing to prove (if there is only one revoked user, we can simply make him a free rider for the optimal solution). We also assume ε≧1.
Method for Finding the Meeting Points
Since r>1, we can root the Steiner tree T (
One embodiment of a method for computing the meeting points is given in Appendix 9. Without loss of generality, we can assume that the revoked set R given to our algorithms is a list of integers in the range {n, n+1, . . . , 2n−1}. See
For illustrative purposes, one may visualize our algorithmic method for computing the meeting points by envisioning a line containing r points (such as the line with four points 10, 13, 14, 15 in
We maintain a sorted list E of edges and the corresponding pairs (a,height(a)). The edges are denoted as e in Appendix 9 (step 2). At step 3, the list is sorted by decreasing heights.
We first establish some properties of MeetingPoints. These properties are included for illustrative purposes to show the algorithm's correctness and the running time requirements. The invention may be practiced without consideration of these properties.
Lemma 5 The nodes in MP are sorted in order of non-increasing height.
Proof: Suppose this is not true. Consider the first vertex u occurring before a vertex v in MP with height(u)<height(v). Then u,v are internal meeting points, so they were added to MP by collapsing some edges e, e′={α,β}εE, respectively. Consider the iteration when u is added to MP, that is, when e is removed from E. Then e′∉E since e′.w=height(v)>height(u)=e.w, and E is sorted, so e′ would have been chosen instead of e. But e′ eventually occurs in E, so there must be an edge e″εE for which e″.a is a descendant of either α or β. But then e″.w>e.w, a contradiction.
Corollary 6 The edges are deleted from E in order of non-decreasing weight.
The next lemma shows that the “line structure” of E is preserved. For an edge E={u,v}, we will write it as (u,v) if u is to the left of v.
Lemma 7 Let V=V(E) denote the nodes occurring in some edge in E during any fixed iteration. The graph G=(VE) is a line, and if u, vεV with u<v (as integers), then u is to the left of v.
Proof: This holds at the end of step (3) by construction. To see that this property is maintained, suppose that in some iteration e=(u, v) is removed from E. Then in step (4c) only two entries of E may be modified, namely, an edge of the form (u′, u) and an edge of the form (v, v′). These edges, if they exist, change to (u′, a(u, v)) and (a(u, v), v′). We will show that u′is to the left of a(u, v). The proof that a(u, v) is to the right of v′ is similar.
Since the property held before e was removed, u′ is to the left of u. Since e was removed before (u′, u), we have height(a(u′, u))>height(a(u, v)) by Corollary 6. It follows that either a(u, v)εR(a(u′, u)), in which case u′ is to the left of a(u, v), or a(u, v)=a(u′, u). But if a=a(u, v)=a(u′, u), it is impossible for u′ to be to the left of u and u to be to the left of v, since the tree is binary so two elements of {u′, u, v} must occur in either L(v) or R(v), and thus their common ancestor of largest height cannot be a. The above properties enable us to analyze the output of MeetingPoints.
Lemma 8 MP is exactly the set of meeting points.
Proof: First, we claim that every meeting point occurs in MP. This is clearly true for the set R, so suppose to the contrary, that some internal meeting point v does not occur in MP. Let v be such a node of maximal height. Further, let pl be the nearest meeting point to v in L(v), and similarly define pr. Then both pl and pr occur in MP since v is of maximal height.
We claim that if the edge (pl, pr) ever occurs in E, then vεMP. Indeed, if not, then either pl or pr is replaced by an ancestor other than v. But since a(pl, pr)=v, any ancestor a of pl or pr is either a descendant or ancestor of v, and since there are no meeting points on the path from pl to v and the path from pr to v other than the endpoints, a must be an ancestor of v. But then the edge contracted when a is added to MP has weight larger than (pl, pr) contradicting Corollary 6.
Finally, we show that (pl, pr) occurs in E. Consider the iteration immediately after pl is added to MP. Then, since pr is later added to MP, there must be some vertex wεT(pr). Since pl is necessarily to the left of w, by Lemma 7 there is an edge (pl,w′)εE. Note that a (pl,w′) is an ancestor of pl, and since pl is closest to v, height(a((pl,w′))≦height(v). It follows that (pl,w′) cannot be deleted from E until pr is added to MP, since height(pr)<height(v). Now we know that pl<w′≦pr as integers, and so height(v)=height(a(pl, pr.))≦height(a(pl, w′)), so that height(v)=height(a(pl, w′)), and as pl can only have one ancestor of a given height, a(pl, w′)=v. This means that w′εR(v) and thus w′=pr, as otherwise pr, would not be the nearest meeting point to v in R(v). Thus (pl, pr)εE, and the proof is complete.
We say that a list of meeting points is ordered if for each meeting point v, its unique closest meeting points pl and pr, in L(v) and R(v) respectively, precede v in the list. The next lemma follows immediately from Lemma 5 and Lemma 8.
Lemma 9 MP is ordered.
We summarize our findings thus far.
Theorem 10 MeetingPoints outputs an ordered list of meeting points in time O(rlog log n).
Proof: From Lemmas 8 and 9, all that is left to show is the time complexity.
Given nodes u and v, it is not hard to see that both a(u, v) and height(a(u,v)) can be computed with O(log log n) operations using a binary search, e.g., by dividing by powers of 2i and checking for equality. Thus, steps (1-3) can be done in O(rlog log n) time. As for step (4), note that |E|=r initially, and in each iteration it drops by one. Further, because of Lemma 7, we know there are at most 2 different e′ encountered in step (4c).
Further, each execution of step (4ciii) can be done in O(log log n) time using standard van Emde Boas trees. Thus, the total time complexity is O(rlog log n).
Method for Computing Optimal and Near-Optimal Freerider Set
Appendix 10 shows a Freerider-Approx method which makes use of the subroutines MeetingPoints and MinSum (see section MinSum hereinabove). We remark that when ε=0 in (10), the MinSum algorithm produces an exact answer in time
If we permit ε>0 it might be possible to obtain a faster algorithm, though the answers may no longer be optimal (but may be close to optimal).
For an integer i and any tree S, we let opt(i,S) denote the optimal cost (the size of the minimum covering) of assigning at most i free riders to the tree S.
A word about the approximation error is in order. Suppose we want an assignment of free riders which has cost at most (1+ε) times that of the optimal assignment. It is clear that any simple path in the Steiner tree T on R has length at most min(r,log n). Put
ε′=ε/(2 min(r,logn)) (11)
as is done at step 2 of Appendix 10. Then if for each dynamic programming step we invoke MinSum with parameter ε′, we can show that the final assignment found by Freerider-Approx is at most (1+ε′) times that of the optimum.
For each vertex vεMP=MeetingPoints(R) with v∉R, we assume that the two meeting points x, y for which v=a(x,y) can be determined in constant time. This is easily achieved by keeping pointers in the implementation of MeetingPoints. For example, each entry in MP for an internal meeting point can include the meeting point, v and indices of the meeting points x and y in MP. The indices can be stored at steps (4a), (4b) in Appendix 9, when e={x,y} is selected and appended to MP. Let MPleft(v) be the operation returning x, and MPright(v) the operation returning y.
In our algorithm each node u has three data fields ru, Au, and Bu associated with it. As before, ru denotes the number of revoked users in the tree T(u). Au[i] is similar to the fields “TBL1[u,i].Size” and “TBL2[u,i].Size” in
Au[i]≦(1+ε′)opt(i,T(u)). (12)
Finally, Bu is a companion array to Au to store the fLmin values. Bu[i] is the fLmin value when at most i free riders are assigned to node u (similar to TBL2[u, i] fLmin in
Au[i]=AMPleft(u)[Bu[i]]+AMPright(u)[i−Bu[i]]. (13)
Observe that |MP|=2r−1.
At step 3 (Appendix 10), the ru value is set to 1 for each revoked node, and Au[0] and Au[1] are set to 0.
At step 4, the internal meeting points are traversed from bottom up in the tree, i.e. in order of decreasing height. This step is similar to step 4 of Appendix 7, but there is no need for recursion. For each meeting point v, the closest left and right meeting points x and y are computed at step (4a) in Appendix 10. At step (4b), each entry Ax[j], 0≦j≦min(f,rv) is incremented by the number of siblings of the nodes between x to v, not including the nodes x and v (the number of such nodes is 0 if x=LV(v)). See the discussion of
At (4c), similar operations are performed on Ay.
At (4d), the fLmin values Bv[j] are computed for each j≦min(f,rv) for ε′.
At (4e), the rv value is computed.
At (4f), for each j such that 0≦j≦min(f,rv), the value Av[j] is computed as the sum of the optimal or near-optimal costs for the left and right children of v for the fLmin value corresponding to j. However, if rv≦f and Av[rv] is not 0, then Av[rv] is set to 1.
Step (5) is performed after the meeting point traversal. This step outputs the total cost as the cost of the near-optimal cover for the lowest-height meeting point for at most f free riders, plus the number of siblings of the nodes starting with that meeting point and up to the root node (including the meeting point).
Step (6) traverses the meeting points to output the free rider assignment. In some embodiments, step (6) is similar to Appendix 8. At step (2A) of Appendix 8, vM could be just set to MP[2r−1]. At step (4a), the condition P(v)=Ø can be replaced with Av[ff[v]]=0. At step (4c1), the fLmin value on the right is simply Bv[ff[v]].
The following theorem states that the FreeRider-Approx method produces a free rider assignment whose cost is at most (1+ε) times the optimum cost. Again, the invention may be practiced without reference to this theorem (or its proof). However, it is included for illustrative purposes to convince one of ordinary skill in the art that the algorithm is indeed correct and works within the specified performance bound.
Theorem 11 Freerider-Approx outputs an assignment of freeriders with cost at most (1+ε) times that of the optimum.
A proof of this theorem, as well as Lemma 12 and Theorem 13 below, can be found in the aforementioned U.S. provisional patent application No. 60/739,657. See also [21].
Lemma 12 For any node v in the complete binary tree scheme and for any non-negative integer i, the cost of optimally assigning at most i free riders to leaves of T(v) is at most log n more than the cost of optimally assigning at most i+1.
Theorem 13 The time complexity of Freerider-Approx is O(r(f2/log f+log log n)) if ε≧0.
While we have provided a method for computing the optimal free-rider set for the complete binary subtree approach, one of ordinary skill in the art will recognize that the same techniques can be applied to other tree-like and non-tree schemes. For example, one can apply the technique to k-ary schemes by “binarizing” them; that is, by replacing a degree-k node with a tree on k-leaves. Similarly, one may apply the techniques to the Subset-Difference Method of Naor, Naor, and Lotspiech as well as the Layered Subset Difference Method of Shamir and Halevy. The main modification is that in the dynamic programming step, for which you just need to be careful if a key involving the joining node should be included.
The methods discussed above can be performed using different types of dedicated and/or general-purpose computer systems, including imbedded systems (such as present in microwave ovens, mobile telephones, and other devices). Such systems may be based on prior art hardware such as present in systems 210, 104, 610, 620 in
The computer system may be a server which includes an external network interface through which an encrypted broadcast (typically comprising a broadcast header which encrypts a broadcast session key using the keys from the broadcast encryption system accessible to the non-revoked users and the free riders, and data content encrypted using the session key) can be sent; and a processor coupled to the external network interface and the memory wherein the processor constructs a broadcast transmission using the keys associated with the non-revoked users and free riders in accordance with the underlying broadcast encryption scheme.
The computer system may include a display device, such as a cathode ray tube (CRT) or liquid crystal display (LCD), coupled to the bus for displaying information to a computer user. An alphanumeric input device, including alphanumeric and other keys, may also be coupled to the bus for communicating information and command selections to the processor. An additional user input device is cursor control, such as a mouse, trackball, trackpad, stylus, or cursor direction keys, coupled to the bus for communicating direction information and command selections to the processor, and for controlling cursor movement on the display.
Note that any or all of the components of the system and associated hardware may be used in the present invention. However, it can be appreciated that other configurations of the computer system may include some or all of the devices.
The invention is not limited to the embodiments discussed above or in the Appendices below. The invention is not limited to algorithms satisfying any particular time complexity bounds, or to using any particular data values. For example, the parameter fLmin can be replaced with fRmin=fv−fLmin. Further, some embodiments use non-binary trees without even binarizing them. In some such embodiments, for each node v, optimal or near-optimal covers are found for the subtrees rooted in the immediate children of v so as to provide an optimal or near-optimal cover for T(v). In some embodiments, a computer system (e.g. a server) obtains computer data representing a set U of entities and a target set P which is a subset of U. The target set P may be the set of the privileged users or, on the contrary, the set of revoked users (e.g. if the server desires to transmit some information, e.g. some advertisement offers, to just the revoked users, or if the server desires to transmit invalidity proofs for invalid certificates). The computer data also represent a set system CC(U). The set system is a set of subsets of U. The set system CC(U) does not have to be a subset cover (as in Definition 2). For example, in some embodiments, the set system CC(U) does not include all the singleton sets (or even does not include any singleton sets), and hence does not provide a covering C(P) for any subset P of U.
Each element Si of the set system may be associated with data (e.g. kS in
The computer data also represents a maximum positive number f of free riders to be allowed in constructing an f+-redundant cover CV=CV(f,P) for the target set P. For example, CV may be T(1,f,P, U). The information represented by the computer data can be represented in different ways. For example, the number f can be specified by the parameter given by (1), and can be computed from that parameter by the computer system.
The computer system then performs a free-rider assignment by designating at least zero and at most f entities of R=U\P as free riders, wherein performing the free-rider assignment comprises, for at least one subset v which is an element of the set system CC(U), and for at least one positive number fv≦f, determining a cost of an fv+-redundant cover of v. A cost of any cover is a non-constant, non-decreasing function of the number of elements in the cover. In some embodiments, the cost of any cover is exactly the number of elements in the cover (the non-decreasing function is the identity function), but other options are also possible.
Determining the cost of the fv+-redundant cover of v comprises:
A. Determining disjoint non-empty subsets x1, x2, . . . which are subsets of v and are elements of the system CC(U). For example, in Appendix 2, step 3, x1 is the set of all users (leafs) in L(v), and x2 is the set of all users in R(v). In Appendix 10, x1 is the set of all users in T(x), and x2 is the set of all users in T(y).
B. Selecting two or more tuples of numbers (f1, f2, . . . ) of non-negative integers f1, f2, . . . , wherein the sum of the numbers in each tuple does not exceed fv, each tuple representing a candidate assignment of at most fi free riders to xi for each i=1, 2, . . . to obtain an fv+-redundant cover of v. For example, in Appendix 2,f1=fL, and f2=fV−fL. In Appendix 10, step (4d) f1 and f2 are indices for which the MinSum finds a minimal (or near-minimal) sum Ax[f1]+Ay[f2]. In Appendices 2 and 10, f1+f2=fv for all combinations of f1 and f2, but in some embodiments the sum of the numbers f1, f2, . . . can be smaller than fv.
C. Selecting, from said tuples, a tuple for which the corresponding candidate assignment provides an optimality cost of an fv+-redundant cover of v, wherein an optimality cost is a cost having a predefined optimality relation to a minimum cost. In some embodiments, the optimality cost is a cost which is at most (1+ε) times the minimum cost, where ε≧0 is predefined. In some embodiments, ε<1.
In some embodiments, the elements v, x1, x2 are meeting points. The meeting points were defined above in the context of tree data structures (
In some embodiments, the operation of determining the disjoint non-empty subsets x1, x2, . . . comprises searching for at least two meeting points of v and finding x1 and x2 as a result of the searching. See, for example, step (4a) in Appendix 7 or 10.
In some embodiments, operations A-C are performed for multiple positive numbers fv, and one of said numbers fv is selected to provide a near-optimal cost for the cover CV(f,P). For example, in Appendix 2, selection of fv corresponds to the selection of fLmin. In Appendix 10, the selection is performed at step (4d).
Some embodiments provide a method for computing an order set MP of meeting points. The meeting points being ordered by their heights, e.g. by non-decreasing or non-increasing heights. A meeting point's height represents a number of elements of CC(U) in a chain of elements beginning with the meeting point and ending with the chain's last element which is not a subset of any element of CC(U), with each element except the last element in the chain being an immediate child of the chain's next element. In some embodiments, the last element is the set U.
In some embodiments, computing the set MP of all the meeting points comprises:
(1) Initializing the set MP to a sequence u1, u2, . . . , ur of elements of CC(U) such that each element ui(i=1, 2, . . . , r) consists of a respective single element of R, where r>1. In the embodiment of Appendix 9, step 1, the sequence is sorted in the order of position (left-to-right) in the complete binary tree (
2) Defining a set E of pairs of elements of CC(U), and initializing the set E to a set of all the pairs of adjacent elements {ui,ui+1}, i=1, . . . , r−1.
3) Removing, from the set E, a pair {ui,ui+1} for which the element a(ui,ui+1) has a maximum height of all pairs in E.
4) For the pair removed, appending the element a(ui, ui+1) to the set MP.
5) If the set E still contains at least one pair comprising an element ui or ui+1 of operation (3), then replacing each such element ui or ui+1 in each such at least one pair with the element a(ui,ui+1) of operation (4).
The invention is not limited to particular data structures or operations. Other embodiments and variations are within the scope of the invention, as defined by the appended claims.
The following references are incorporated herein by reference. The references may or may not be prior art with respect to the present application.
Appendix 1
1. Initialize.
2. T(1,f)←OptimalCover(1,f).
3. Perform network transmissions for the sets in T(1,f).cover as needed.
END OF APPENDIX 1
Appendix 2
OptimalCover(v, fv)
Appendix 3
OptimalCoverSize(v, fv)
Appendix 4
FreeRiders
1. F←Ø.
2. OptimalCoverSize(1, f).
3. ff[1]←f
4. Traverse the tree's internal nodes from the top down (e.g. in the Breadth First Search order). For each internal node v, compute ff for the left and right children LV(v) and RV(v):
(a) If ff[v]=0 or P(v)=Ø, then skip the children of v in tree traversal, and go to the next node in tree traversal (no free riders in T(v)).
(b) If ff[v]≧rv,
Appendix 5
OptimalCoverM(v,fv,ε)
. . .
3. (a) x←MPleft(v), y←MPright(v).
Let fL be a candidate maximum number of free riders for x, and
fv-fL be the candidate maximum number of free riders for y.
Appendix 6
1. Initialize.
2A. Find the meeting point vM of the lowest height.
2B. ToptM←OptimalCoverM(vM, f,ε).
2C. T(1,f).cover←ToptM.cover ∪Conodes(vM).
2D. T(1,f).size←ToptM.size+height(vM).
3. Perform network transmissions for the sets in T(1,f).cover as needed.
END OF APPENDIX 6
Appendix 7
OptimalCoverSizeM(v,fv,ε)
. . .
4. (a) x←MPleft(v), y←MPright(v).
Let fL be a candidate maximum number of free riders for x, and
fv-fL be the candidate maximum number of free riders for y.
Appendix 8
FreeRidersM
1. F←Ø.
2A. Find the meeting point vM of the lowest height.
2B. OptimalCoverSizeM(vM, f,ε).
3. ff[vM]←f.
4. Traverse the tree T(vm) from the top down (e.g. in the Breadth First Search order). Ignore the nodes other than the meeting points. For each meeting point v, compute ff for the left and right meeting points x=MPleft(v) and y=MPright(v):
(a) If ff[v]=0 or P(v)=Ø, then skip the subtree T(v) and go to the next meeting point in tree traversal (no free riders in T(v)).
(b) If ff[v]]≧rv,
Appendix 9
MeetingPoints(R)
1. R←sort(R),MP←R.
2. For each adjacent pair e={ui,ui+1}εR, set e.a=a(ui,ui+1) and e.w=height (e.a).
3. Let E be the list of pairs e sorted in non-increasing order by e.w.
4. While E≠Ø,
Appendix 10
Freerider-Approx (R,f, ε):
The present application claims priority of U.S. provisional patent application No. 60/739,657, filed Nov. 22, 2005, incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
60739657 | Nov 2005 | US |