[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [tor-talk] Let's make Onion Addresses Meaningful To Humans

Sounds like an interesting idea. Another potential solution is Namecoin, which supports mapping memorable .bit addresses to .onion addresses. In theory, the only way to seize/censor a .bit address is a 51% attack. I believe there are already some .onion addresses using .bit addresses.

On 2/24/2012 4:36 AM, Ahmed Hassan wrote:
Hello Folks,

I have a cool idea to make onion addresses memorable. That will have no
effect on its authenticity and security.

First, I need to define some terms I will use in this email.

Î*_{e}: is any English (or any other language) word.

D*: is a set of all English words (or any other language again) in

D*_{N}: N means the location of element Î* in D*.

For example, if D* = { 'cat', 'hat' ,'rat' }.
D*_{0} returns 'cat', and D*_{'cat'} returns 0

max(D*): is a total number of words in a dictionary D*.

I hope you didn't get confused at this point.

Onion address needs to be converted to decimal instead of base 32 to
make it easier to implement.

Let's say I have already have a value of onion address converted to a
decimal. That number is 2025107508922.

I will take that number and convert it to number in base max(D*).

If we have 51236 words in English dictionary, the result of that
conversion will be only 3 digits numbers. The numbers after conversion
are the following:


Here is a wolframalpha conversion link

I used dash "-" instead of colons ":" to separate the converted digits.
It's easier to make it work with the URL (URL uses colon to separate
address from port) , and easier to convert to the original value.

We will take 711, 22133 and 48918 and return the Î*_{e} from D*. Where
Î*_{e} is an English word, and D* is a dictionary.

So, D*_{771}: returns Î*_{e}', and D*_{22133}: returns different
Î*_{e}'' and so on.

At the end we will have something like that:

Î*_{e}'  -  Î*_{e}''  -  Î*_{e}^(3).onion

If Î*_{e}' is equal to 'cat',  Î*_{e}'' ( '' means another word) is
equal to 'rat' and  Î*_{e}^(3) is equal to 'hat'. The final result will
be something like this


To convert back again to the original SHA hash value, all we have to do
is to return a number from D*_{Î*_{e}} for each word, and convert it
back again to the original base.

Users will not have an option to explicitly choose onion domain name,
but they will have an option to generate a lot of keys, and choose
something they like.

tor-talk mailing list