The present invention relates to effecting revocation in methods and systems that implement Direct Anonymous Attestation (DAA). DAA is a cryptographic mechanism that enables remote authentication of a user while preserving privacy under the user's control. Revocation means to terminate a previously-legitimate user's privilege to a system, when the user does not suit the system any more.
The specific DAA scheme set out in detail herein also forms the subject of our co-pending U.S. patent application Ser. No. ______, Attorney docket No. 200703082-2, which is hereby incorporated by reference in its entirety.
As DAA scheme involves three types of entities: a DAA issuer, DAA signer, and DAA verifiers (herein respectively, Issuer, Signer, and Verifier). The Issuer is in charge of verifying the legitimacy of Signers to become members of a particular group (typically, all group members will possess a particular characteristic) and of issuing a membership credential, in the form of a signature of a Signer DAA secret, to each legitimate Signer to serve as an Issuer attestation of the Signer's group membership. A Signer can then prove its group membership to a Verifier by signing its membership credential to form a ‘DAA signature’. The Verifier can verify the Signer's membership credential from this DAA signature but he cannot learn the identity of the Signer.
The original DAA scheme, (described in the paper: “Direct anonymous attestation” E. Brickell, J. Camenisch, and L. Chen; Proceedings of the 11^{th }ACM Conference on Computer and Communications Security, pages 132-145. ACM Press, 2004 and herein incorporated by reference in its entirety) employs the Camenisch-Lysyanskaya signature scheme under the strong RSA assumption. The original DAA scheme also uses the Fiat-Shamir heuristic to turn knowledge proofs into signatures; this heuristic is described in the paper “How to prove yourself: Practical solutions to identification and signature problems” by A. Fiat and A. Shamir.—Advances in Cryptology; CRYPTO '86, volume 263 of LNCS, pages 186-194. Springer, 1987.
Although the original DAA scheme was devised for implementation by a Trusted Platform Module (‘TPM’—an on-board hardware security component with limited storage space and communication capability that is intended to provide roots of trust for a host computing platform) with Signer computation shared between the TPM and host, this scheme and other DAA schemes can be applied in many situations and are not limited to situations where the Signer's role is divided between two entities.
A form of DAA scheme based on bilinear maps has recently been proposed and is described in the paper “A New Direct Anonymous Attestation Scheme from Bilinear Maps” Ernie Brickell, Liqun Chen and Jiangtao Li; Proceedings of Trust 2008, Villach/Austria, March 2008. This bilinear-map DAA scheme uses the Camenisch-Lysyanskaya signature scheme under the Lysyanskaya, Rivest, Sahai, and Wolf assumption.
As already indicated, the present invention is concerned with effecting revocation in the context of DAA. Of course, if a system, such as one implementing a DAA scheme, possesses the property of user privacy whereby it allows all users to access the system anonymously, efficiently revoking a user is inherently going to be problematic as revocation and anonymity are in conflict with each other.
Currently, there are three types of revocation solution are known for DAA. In the original DAA paper, two solutions were proposed:
In order to find whether a DAA signature was signed by a black-listed Signer, the Verifier must require the Signer to use a specific basename in his DAA signature, which destroys the interesting property of unlinkability.
A third solution has recently proposed by Brickell and Li (see ‘Enhanced Privacy ID: A Direct Anonymous Attestation Scheme with Enhanced Revocation Capabilities’ 6th Workshop on Privacy in the Electronic Society (WPES), Alexandria, Va., October 2007), In this solution, in each DAA signature, a Signer is required to prove, in a zero-knowledge proof manner, that his private signing key is not listed in a black list maintained by a revocation manager. However, if the black list is quite large, which may well be the case, each DAA signature will be unduly large and complicated.
According to one aspect of the present invention, there is provided a cryptographic method in which an Issuer, on assessing a Signer as a currently legitimate member of a group associated with a public/private key pair of the Issuer, uses a disguised secret of the Signer and the group-associated private key to generate a credential, in the form of a signature of the Signer's secret, the Signer subsequently signing the credential and providing the signed credential to a Verifier to prove, on the basis of the group-associated public key, Issuer attestation of the Signer's group membership without the identity of the Signer being revealed; the method comprising the Issuer, acting at intervals through Issuer computing apparatus:
Other aspects of the invention are set out in the appended claims.
Embodiments of the invention will now be described, by way of non-limiting example, with reference to the accompanying diagrammatic drawings of embodiments of the invention, in which:
FIG. 1 is a diagram giving an overview of the main operations of Setup, Join, Sign and Verify phases of a DAA method based on bilinear maps; and
FIG. 2 is a diagram illustrating the general architecture of a DAA revocation method embodying the invention as applied to the DAA method of FIG. 1.
Embodiments of the invention are described below both for the original DAA scheme set out in the paper by Brickell, Camenisch Chen referenced above, and for the bilinear-map based DAA scheme described in above-mentioned paper by Brickell, Li, and Chen.
In order to facilitate an understanding of the invention, a detailed description will be first be given of an existing DAA scheme which employs a known revocation solution; the enhanced bilinear-map based DAA scheme has been chosen for this purpose as it is most simply explained. Some details will first be given of various underlying techniques and principles that are utilized by the enhanced bilinear-map based DAA scheme.
As indicated above, the example DAA scheme to be described below make use of a bilinear map e: G×G→G, where G and G denotes two groups of prime order q. The map e satisfies the following properties:
The following papers, hereby incorporated by reference, give further information on bilinear maps and how to construct an admissible bilinear map from the Tate pairing:
By way of example, an admissible bilinear map useable in the DAA scheme described below can be formed from the Tate pairing as follows:
e(P;Q)=f(P;φ(Q)),
where e is an admissible bilinear map.
In the following, various protocols to prove knowledge of and relations among discrete logarithms are used. The notation used to describe these protocols is that introduced by Camenisch and Stadler [J. Camenisch and M. Stadler. “Efficient group signature schemes for large groups” In Advances in Cryptology—CRYPTO '97, volume 1296 of LNCS, pages 410-424. Springer, 1997] for various proofs of knowledge of discrete logarithms and proofs of the validity of statements about discrete logarithms. For example:
PK{(a;b):y_{1}=(g_{1})^{a}(h_{1})^{b}̂y_{2}=(g_{2})^{a}(h_{2})^{b}}
denotes a proof of knowledge of integers a and b such that y_{1}=(g_{1})^{a}(h_{1})^{b }and y_{2}=(g_{2})^{a}(h_{2})^{b}, where y_{1}; g_{1}; h_{1}; y_{2}; g_{2}; h_{2 }are elements of some groups G_{1}=(g_{1})=(h_{1}) and G_{2}=(g_{2})=(h_{2}) and all parameters other than a and b are known to the verifier. Using this notation, a proof of knowledge protocol can be simply described.
In the random oracle model, such proof of knowledge protocols can be turned into signature schemes using the Fiat-Shamir heuristic (see paper referenced above); a signature on a message m obtained in this way is denoted hereinafter as:
SPK{(a):y=z^{a}}(m).
Put generally, a signature proof of knowledge (SPK) is a cryptographic primitive which makes use of a special digital signature on a given message to prove possession of some secret knowledge by the signer.
The DAA methods set out hereinafter uses the Camenisch-Lysyanskaya (CL-LRSW) signature scheme under the Lysyanskaya, Rivest, Sahai, and Wolf (LRSW) assumption (see the paper “Signature schemes and anonymous credentials from bilinear maps”, J. Camenisch and A. Lysyanskaya; Advances in Cryptology, CRYPTO '04, volume 3152 of LNCS, pages 56-72. Springer, 2004). Unlike most signature schemes, the CL-LRSW signature scheme uses bilinear maps and allows for efficient protocols to prove knowledge of a signature and to obtain a signature on a secret message based on proofs of knowledge.
The CL-LRSW signature scheme can be summarized as follows:
Two groups G=(g) and G=(g) of prime order q are chosen and an admissible bilinear map e between G and G. Next choose x←Z_{q }and y←Z_{q}, and set the public key as (q, 9, G, g, G, e, X, Y) and the secret key as (x, y), where X=g^{x }and Y=g^{y}. For simplicity, in the present description, the exponentiation operation h^{a }for hεG and an integer a outputs an element in G.
On input message m, the secret key (x, y), and the public key (q, g, G, g, G, e, X, Y), choose a random aεG, and output the signature σ=(a, a^{y}, a^{x+mxy}).
On input the public key (q, g, G, g, G, e, X, Y), the message m, and the signature σ=(a, b, c) on m, check whether the following equations hold
e(Y,a)?=e(g,b), (herein “CL-LRSW Check I”)
e(X,a)·e(X,b)^{m}?=e(g,c) (herein “CL-LRSW Check II”)
Observe that from a signature σ=(a, b, c) on a message m, it is easy to compute a different signature σ′=(a′, b′, c′) on the same message m without the knowledge of the secret key; this is done simply by choosing a random number rεZ_{q }and computing a′:=a^{r}, b′:=b^{r}, c′:=c^{r}. A signature formed in this way by exponentiation of the components of an original CL-LRSW signature using a random exponent, is referred to herein as an Alternative CL-LRSW signature; the term is also used where the exponentiation of the original CL-LRSW signature components is more complex (see below) while still enabling the application of the CL-LRSW Checks I & II.
FIG. 1 depicts interactions between the entities that participate in the enhanced bilinear-map based DAA system now to be described. More particularly, the system comprises a first computing apparatus 10 associated with an Issuer; at least one second computing apparatus 11 associated with a Signer; and at least one third computing apparatus 12 associated with a Verifier. The computing apparatus 10, 11 and 12 are typically based around general-purpose processors executing stored programs but may include dedicated cryptographic hardware modules. The computing apparatus 10, 11 and 12 inter-communicate as needed via, for example, the internet or other network, though it is also possible that at least some of the entities actually reside on the same computing platform.
In a primary application, the Signer computing apparatus 11 is a host computer (“Host”) with a built-in trusted platform module (“TPM”) which can be implemented either in hardware or in software. However, for the purposes of the present overview, the Signer computing entity 11 will be treated as unitary.
In general terms, the Issuer is responsible for providing attestation that an approved Signer is a legitimate member of a particular group (and therefore possesses a particular characteristic); the Issuer does this by providing an approved Signer (characterized by a secret f) with a credential in the form of a CL-LRSW signature on f (f being kept secret by the Signer and only provided in disguised form to the Issuer as a Signer-secret dependent quantity F=g^{f}). The Signer then uses an Alternative form of the CL-LRSW signature credential (derived using a random exponent r) to prove to a Verifier that the Signer has been approved by the Issuer, this process involving a signature proof of knowledge (SPK) by the Signer of f and r. Furthermore, in order to enable a particular Verifier to link together its interactions with a particular Signer, the Signer may generate a quantity B from a basename value bsn_{v }of the Verifier, as well as a further quantity K=B^{f}, and then provide both B and K to the Verifier; the value of K then enables linkability by the Verifier for the particular Signer concerned. K can also be used to check for revocation of the Signer's credential.
In more detail, the DAA method illustrated in FIG. 1 comprises four phases, namely: Setup 20, Join 30, Sign 40 and Verify 50.
During the Setup phase 20, the Issuer generates and stores a private key (step 21), and establishes system parameters which it publishes in a complementary public key (step 22). The public/private key pair is associated with the group for which the Issuer is to provide membership attestation—if the Issuer has attestation responsibility for more than one group, then the Issuer generates a respective key pair for each group (for simplicity, in the following, only one group and associated key pair will be considered).
During the Join phase 30, in a step 31, the Signer generates its secret f and the derivative Signer-secret dependent quantity F=g^{f }where g is a system parameter; the Signer also generates a signature proof of knowledge (SPK) of f for F=g^{f}. The Signer then sends the SPK signature (including F) to the Issuer (arrow 32). In step 33, the Issuer checks the SPK signature to confirm the Signer's knowledge of f, and then computes a CL-LRSW signature on f as the Signer's credential (assuming that the Issuer is willing to grant group membership to the Signer). This CL-LRSW signature credential is then passed to the Signer (arrow 34) which stores it as a secret after, optionally, verifying the credential (step 35) by applying the CL-LRSW checks.
During the Sign phase 40, the Signer attests itself to the Verifier by providing an anonymous form of its credential that the Verifier can verify is based on the credential provided by the Issuer for the Signer with secret f. More particularly, in step 41 the Signer computes an Alternative CL-LRSW signature by exponentiating the components of its CL-LRSW signature credential by random value r. The Signer also computes B from the basename value bsn_{v }of the Verifier and then computes K=B^{f}. In step 42, the Signer computes a signature proof of knowledge (SPK) of f and r for f & r satisfying both the CL-LRSW Check II (see above) and K=B^{f}. The Signer sends the SPK signature, including the Alternative CL-LRSW signature and B & K, to the Verifier (arrow 43).
During the Verify phase 50, in step 51 the Verifier checks the received SPK signature to confirm Signer's knowledge of f and r. The Verifier also checks that the received Alternative CL-LRSW signature is a valid CL-LRSW signature on f—as the CL-LRSW Check II has been effectively included in the check on the SPK signature (the values of f and r being ones that satisfy Check II), the Verifier need only further effect CL-LRSW Check I. In step 52 the Verifier checks that the received value of B is correctly based on the Verifier's basename value bsn_{v }thereby confirming that the received value of K is in respect of itself and the Signer characterized by f (because the SPK signature was bound to a value of f satisfying K=B^{f}). The Verifier then checks K against a rogue list of values of K that correspond to revoked credentials.
It will be appreciated that the foregoing is only an overview and does not include certain details such as the messages on which the SPK signatures are formed. It should also be noted that not all elements of the FIG. 1 DAA method are essential; for example, in the Join phase, the Signer can prove its knowledge of f by means other than a signature proof of knowledge, such as by using a short signature scheme. The generation of the quantities B and K using the basename value bsn_{v }of a Verifier to enable linkability by the Verifier, may also not be needed in certain applications; however, in the full description given below of the enhanced bilinear-map based DAA system, even where linkability is not required, B and K are still generated (but with B being created as a random element in G) as these quantities are needed for implementing the known revocation solution to be described.
The following description is given for a unitary Signer for reasons of clarity, it being understood that it is also possible to split the operations effected by the Signer between a Signer TPM and Host.
Let l_{q}, l_{H }and l_{φ} be three security parameters, where l_{q }is the size of the order q of the groups and l_{H }is the output length of the hash function used for Fiat-Shamir heuristic, and l_{φ} is the security parameter controlling the statistical zero-knowledge property.
The Issuer, who has attestation responsibility for a given group, chooses two groups G=(g) and G=(g) of prime order q and an admissible bilinear map e between G and G, i.e., e: G×G→G (it will, of course, be appreciated that the use of the word ‘group’ in relation to G and G is in the mathematical sense and such usage is not to be confused with the less formal usage of ‘group’ earlier in the sentence regarding the group whose membership is to be attested to). The Issuer then chooses x←Z_{q }and y←Z_{q }uniformly at random, and computes X:=g^{x }and Y:=g^{y}. The Issuer sets the public key associated with the membership group, the group public key, as (q, g, G, g, G, e, X, Y) and its corresponding private key as (x, y) and publishes the group public key. Note that the correctness of the group public key can be verified by checking whether each element is in the right group.
Let H(*) and H_{G}(*) be two collision resistant hash functions such that:
H: {0, 1}*→{0, 1}^{l}^{H }
H_{G}: {0, 1}*→G.
(One way of constructing H_{G }is use a collision resistant hash function H_{2}(w) which maps the value w to an element in F_{p}_{2}; to compute H_{G}(w), compute H_{2}(w)^{(p2-1)/q}. Other ways of constructing H_{G }will be apparent to persons skilled in the art).
It is assumed that the Signer and the Issuer have established a one-way authentic channel, i.e., the Issuer is sure that it is talking to the right Signer.
With (q, g, G, g, G, e, X, Y) be the group public key, K_{I }a long-term public key of the Issuer, and ‘DAAseed’ a seed for computing the secret key of the Signer.
The Join protocol comprises the following steps:
f:=H(DAAseed∥K_{I})mod q, F:=g^{f},
SPK {(f):F=g^{f}}(n_{I}∥n_{T})
:=H(q∥g∥g∥A∥Y∥F∥T∥n_{I}∥n_{T}).
s_{f}:=r_{f}+·f mod q.
?=H(q∥g∥g∥X∥Y∥F∥∥n_{I}∥n_{T}).
a:=g^{r}, b:=a^{y}, c:=a^{x}F^{rxy}.
(Note that the quantities r, r_{f}, S_{f}, n_{T}, and are newly generated in Sign and their values are not carried over from Join).
The Signer has a membership private key (f, a, b, c). Let m be the input message the Signer wants to sign (as in the original DAA scheme, m is preferably presented as b∥m′ where b=0 means that the message m′ is generated by the Signer and b=1 means that m′ was input to the Signer). Further, let bsn_{v }be a basename value provided by the Verifier, and n_{v}ε{0, 1}^{l}^{H }be a nonce chosen by the Verifier. The signing algorithm involves the following steps:
B←^{R}G or B:=H_{G}(1∥bsn_{v}).
K:=B^{f}.
a′:=a^{r′}, b′:=b^{r′}, c′=c^{r′r−1 }
v_{x}:=e(X,a′), v_{xy}:=e(X,b′), v_{s}:=e(g,c′).
A:=e(X,a) B:=e(X,b), C:=e(g,c),
v_{x}:=A^{r′}, v_{xy}=B^{r′}, v_{s}:=C^{r′r−1}.
SPK{(r,f):(v_{s})^{r}=v_{x}(v_{xy})^{f}K=B^{f}}(n_{v}∥n_{T}∥m)
T_{1}:=(v_{s})^{r}^{r}(v_{xy})^{−r}^{f}, T_{2}:=B^{r}^{f}.
:H(q∥g∥g∥X∥Y∥a′∥b′∥c′∥v_{x}∥v_{xy}∥v_{s}∥B∥K∥T_{1}∥T_{2}∥m∥n_{T}∥n_{v})
s_{r}:=r_{r}+·r mod q, s_{f}:=r_{f}+·f mod q
To verify candidate signature σ=(B, K, a′, b′, c′, , s_{r}, s_{f}, n_{T}) on a message formed from m and the two nonces n_{V }and n_{T}, the Verifier, given the group public key (q, g, G, g, G, e, X, Y) proceeds as follows:
e(Y,a′)?=e(g,b′), K?εG.
_{x}:=e(X,a′), _{xy}:=e(X,b′), _{s}:=e(g,c′).
_{1}:=(_{s})^{s}^{r}(_{xy})^{−s}^{f}(_{x}, _{2}:=B^{s}^{f}
In the above described bilinear-map based DAA scheme, it will be apparent that if the Verifier possesses a quantity which he believes is the Signer's DAA secret f (because it has been comprised in some way), then it is a simply matter for the Verifier to check whether the quantities B and K in the Signer's SPK are related as K ?=B^{f }and, if so, to treat f as compromised; this is carried out in step 2 of the Verify phase.
It will be apparent from the foregoing, that a DAA Issuer creates each Signer credential by using the Issuer's private key and, indirectly, a secret of the Signer concerned (the Issuer's private key and the Signer's secret being respectively (x, y) and f in the above-described bilinear-map based DAA scheme).
In revocation methods embodying the present invention, the Issuer updates his private and public keys at intervals, preferably regular; at each update of his keys the Issuer also correspondingly updates each DAA credential it holds unless, from the Issuer's knowledge, a Signer is no longer a legitimate group member in which case the Issuer refuses to update the credential concerned. Credential updating requires the Issuer to have stored, during the initial Join phase executed with the relevant Signer, one or more Signer-specific quantities used or generated by the Issuer during its Join-phase computations. The Issuer publishes his updated public key and makes each updated DAA credential available to the corresponding Signer. Subsequent Sign phase signings by a Signer are effected on the basis of the Signer's updated credential and subsequent Verify phase verifications by the Verifier are effected using the updated public key of the Issuer; if a Signer's DAA credential has not been updated in correspondence with the updating of the Issuer's public key, verification of the Signer's DAA signature by the Verifier will fail thereby giving effect to revocation of the Signer's group membership.
Details of how the Issuers private key and a Signer's DAA credential are updated by the Issuer will now be given both for the original RSA based DAA scheme and for the above-described bilinear-map based DAA scheme, starting with the latter.
In this DAA scheme, the Issuer's private key is (x, y) and its public key includes (g, X=g^{x}, Y=g^{y}); the Signer's secret is f, F=g^{f}, and the corresponding DAA credential is (a, b=a^{y}, c=a^{{x+xyf}}) for a randomly generated a.
As depicted in FIG. 2, during the Join phase 30 for each Signer, the Issuer stores (step 37) at least element c of the newly-computed credential (a, b, c); typically, the Issuer will store the complete credential and the Signer-secret dependent quantity F. To effect the periodic updating, the Issuer first updates its private key by deriving a new value for x, (here called x″), and replaces the previous value for x (here called x′) in its private key with x″ (step 61); the value x″, and a related value β used subsequently in updating the Issuer's public key, can be derived, for example, by randomly choosing x″ and computing β=x″/x′, or by randomly choosing β and then computing x″=x′β. The Issuer then updates its public key by replacing the previous value X′ of X with the value X″=X′^{β} (step 62).
In the foregoing, in determining the value of β (where x″ is chosen at random) or x″ (where β is chosen at random), rather than x′ being the previous value of x, x′ could be the original value of x—the two being different for updates beyond the first).
For each currently legitimate Signer, the Issuer updates the Signer's credential (a, b, c) by replacing the previous value c′ of the credential element c with c″=c′^{β} (step 63). The Issuer then publishes X″ to replace the previous value X′ of X in its public key (step 64), and for each updated credential, makes c″ available to the corresponding Signer to enable the Signer to update its copy of the credential by replacing the previous value c′ of c with c″ (step 65). The Signer may optionally wish to verify that the updated credential is an CL-LRSW signature on f associated with the Issuer's new public key; if so, the Signer carries out the CL-LRSW Checks I and II in respect of signature (a, b, c=c″) and f.
The updating of the credential element c′ to c″, can be effected in a number of different ways, the above being just one possibility. For example, if the random value r generated during the Join phase is stored along with the Signer-secret dependent quantity F and credential element a rather than c, then c″ can be computed as a^{x″}F^{rx″y}.
In respect of updating the Issuer's private key, the Issuer can instead of replacing x′ with x″, update his private key by replacing the previous value y′ of y with a new value y″, or even by updating both x and y; changing the value of x while leaving that of y unchanged is preferred as it is more efficient, since the value of b does not have to be changed. Of course, if the value of y is changed, then the quantity Y of the Issuer' public key must also be updated as well as the element b of the credential of each currently legitimate Signer.
Reference is directed to the above mentioned paper by Brickell, Camenisch, and Chen for details of the RSA-based scheme; the present explanation of how the Issuer's private key and a DAA credential can be updated uses the same notation as in that paper. In the RSA-based DAA scheme, the Issuer's private key is the factorization of a modulus n, and its public key includes (R_{0}, R_{1}, S, Z, n); the Signer's secret is (f_{0}, f_{1}) and the corresponding credential is (e, A, v), such that the equation A^{e}(R_{0})^{f}^{0}(R_{1})^{f}^{1}S^{v}=Z holds; the credential is a Camenisch-Lysyanskaya signature on (f_{0}, f_{1}).
During the Join phase for each Signer, the Issuer stores at least: the disguised form of the Signer's secret provided by the Signer to the Issuer (i.e. the Signer-secret dependent quantity U=(R_{0})^{f}^{0}(R_{1})^{f}^{1}S^{v′} mod n), the quantity e, and the quantity {circumflex over (v)} or v″; additionally or alternatively to storing U and v″ individually, the quantity US^{v″} can be stored. Typically, the Issuer will store N_{I}, US^{v″} and the triple (e, A, v″). To update the Issuer's private key and the DAA credential of each currently-legitimate Signer, the Issuer simply chooses a new value for Z, here called Z″, and, for each currently-legitimate Signer computes a new value for A, here called A″, as:
The Issuer then publishes Z″ to replace the value of Z in its previously published public key; the Issuer also publishes a new non-interactive proof that R_{0}, R_{1}, S, Z, g, and h are computed correctly i.e. that g, hε(g′), S, Zε(h) and R_{0}, R_{1}ε(S). For each updated credential, the Issuer makes the newly computed value A″ available to the corresponding Signer to enable the Signer to update its credential by replacing the previous value of A with A″.
Rather than using stored values of e and v″ to compute A″, it would be possible to generate new values for e and {circumflex over (v)} (and then compute a new value for v″); the Issuer would of course need to make the new values of e and v″ available to the Signer concerned.
As regards how an updated DAA credential element can be made available to the corresponding Signer, two example ways in which this can be done are given below, it being appreciated that other ways are also possible:
Significant advantage of the above-described embodiments of the revocation method of the invention, are that compared with the existing solutions, the above-described embodiments:
It will be appreciated that many variants are possible to the detail of the DAA methods described without thereby affecting the general form of the steps involved in the described embodiments of the invention (albeit some of the computational details may vary). It will also be appreciated that where the revocation method embodying the present invention is implemented for a DAA scheme, then that scheme need not include any of the steps associated with other revocation methods.