Data processing apparatus including a programmable processor programmed to control said apparatus as a user station used by a user U to generate a plurality of private encryption keys KeyU,i, said user station communicating with a plurality of certifying stations, each of said certifying stations being controlled to publish related information, said related information identifying particular rights certified to said user U, so that a corresponding public key KeyU,sum(i)*P of said user U can be determined by a party communicating with said user U from said published related information with assurance that at least rights asserted by said user U have been certified by corresponding ones of said certifying authorities CA, but said party cannot claim that other rights were asserted, said related information including a certificates CERTU,i for said user U, wherein CERTU,i is (rU,i+rCAi)*P, wherein P is a published point in a group [P], and wherein rU,i is a random integer known only to said user U and rCAi is a random integer generated by an ith one of said certifying stations;
- said processor controlling said apparatus to:
- a) transmit a point rU,i*P in said group [P] to at least an ith one of said certifying stations to request particular rights certified by said ith certifying station;
- b) receive at least one encrypted integer Ii from said ith certifying station, wherein;
- Ii=rCAi+H(Mi)KeyCAi;
- and wherein
- H(Mi) is an integer derived from a message Mi in accordance with a publicly known algorithm H, and rCAi is a random integer generated by, and KeyCAi is a private key of said ith certifying station;
- c) generate at least one private key KeyU,i as:
- KeyU,i=rU,i+Ii=rU,i+rCAi+H(Mi)KeyCAi;
- whereby
- d) said user can generate a private key KeyU,sum(i) to communicate while asserting only a selected subset of rights
- KeyU,sum(i)=sum(KeyU,i)=sum(rU,i+rCAi+H(Mi)KeyCAi)
- summed over asserted rights;
- and whereby
- e) said communicating party can compute said user's public key KeyU,sum(i)*P, summed over asserted rights, as
- KeyU,sum(i)*P=sum[+](CERTU,i[+]H(Mi)KeyCAi*P)=sum[+]((rU,i+rCAi)*P+H(Mi)KeyCAi*P)=sum(rU,i+rU,i+H(Mi)KeyCAi)*P
- from knowledge of H, messages Mi, [P], said public keys KeyCAi*P, and certificates CERTU,i.