a-id

anonymous cryptographic secure identifier



Use case:

1) Site administrator Victor chooses a secret key K and shares it with no one.

2) Site user Alice asks Victor for an anon-id that only she can use.

3) Victor gives Alice the pair A;H, where H is a random number and A = hash(K;H;K).

4) When Alice uses her anon-id, Victor displays A on the site leaderboard.

5) Another site user Mallory sees A and sends Victor the pair A;H'.

6) Victor accepts Mallory's pair A;H' for any H' if and only if A = hash(K;H';K), which is virtually impossible unless H' = H.


 Create ?? ← Verify


An anon-id is composed of two parts: an a-id (public, username, 16 characters) and an h-id (private, password, 32 characters).

Once an anon-id is created, the a-id can be displayed and, only together with the h-id, can be validated.

As long as the h-id is not compromised, it is virtually impossible to validate an anon-id solely from the public a-id.

This enables each user to build a reputation within a website/app using their provided a-id, with the assurance that these anonymous identifiers are extremely difficult to forge.

This demo can be used to gauge the difficulty of finding a valid anon-id by guessing its h-id.

Examples of websites using this concept of anonymous identifiers on their leaderboards: Cross-Pollinator, AlgoDeduce.

Note that the actual a-id representation (image or avatar) can vary to fit the website/app graphic design.


a-id Python implementation on GitHub. Enjoy!