Skip to content

Instantly share code, notes, and snippets.

@carlosascari
Last active September 12, 2016 17:04
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save carlosascari/a9b39736834e138f0a0c1d9cc2c15716 to your computer and use it in GitHub Desktop.
Save carlosascari/a9b39736834e138f0a0c1d9cc2c15716 to your computer and use it in GitHub Desktop.
Acrostic Registration - Registering new users with poetry

Acrostic Registration

Registering new users with poetry

An acrostic is a poem (or other form of writing) in which the first letter (or syllable, or word) of each line (or paragraph, or other recurring feature in the text) spells out a word, message or the alphabet.... As a form of constrained writing, an acrostic can be used as a mnemonic device to aid memory retrieval.

A Person chooses a username; ascari for example.

The number of letters will be the number of lines in the poem, beginning each with a letter from the username chosen.

and behold! the

story unfolds

crazy

as

reality

is told

Effectively registering a Person with the username ascari. The poem alone is used to authenticate the user.

and behold! the
story unfolds
crazy
as
reality
is told

Points to understand

  • A Person is encouraged to create and memorize a poem related to the username they have chosen.
  • A username has a minimum size, say 6. Even if a user only uses a single word for each letter of the poem, the total size of the passphrase will be well over 12 characters.
  • Bruteforcing should never ever succeed as there are infinite ways to encode a single username, and if a attacker targets a unique username, they would still have to deal with the unique nature of a poem created.
  • There is no need to register through email, social logins, etc. The poem itself will uniquely identify the Person.
  • A particular type of poem can be enforced, such as a Haiku-like structure.
  • It is best not to enforce correct grammar and spelling, unless the poem has over 2 words per line.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment