Consider an SDR solution where users are associated with the leaves of a complete binary tree T. Every node v in T has a secret key K(v), which is known to each of v's descendents. The root node of T also has a secret key X, and each non-root node has a key that is derived from X, such that, for each node v, if X(v) is the key for v, then L(X(v)) is the key for v's left child and R(X(v)) is the key for v's right child, where L and R are (different) one-way hash functions. For each leaf node v, we store at v the X(u) key values for each sibling u of the path from v to the root. We then define set differences the same as in the SDR method, where S[v,w] is the set that is rooted at node v but excludes the subtree rooted at node w. The difference between this scheme and SDR, however, is that the way we assign a key for S[v,w] is to use f(K(v),X(v)), where f is a one-way function.