22. A computer-implemented method of allowing access for a user to a relying party (RP), mediated by an identity provider (IdP), comprising: receiving a request to access the RP from the user, the request comprising a second representation of an access token, the second representation of the access token being modifiable by the user based on a first representation of the access token issued to the user by the IdP, the second representation of the access token being unlinkable to the first representation of the access token by the RP and the IdP individually, and the second representation of the access token being unlinkable to the first representation of the access token by the RP and the IdP in collusion; if the first representation of the access token is publicly verifiable, verifying, by a processor, the second representation of the access token; and providing access to the user upon successful verification of the second representation of the access token; if the first representation of the access token is privately verifiable by the IdP, presenting the second representation of the access token to the IdP for verification; and providing access to the user if the IdP successfully verifies the second representation of the access token.
23. The method of claim 22 , wherein the request is for anonymous access at the RP, and the anonymous access is unlinkable to any previous and future access at the RP.