Take the 2-minute tour ×
Computer Science Stack Exchange is a question and answer site for students, researchers and practitioners of computer science. It's 100% free, no registration required.

IPv6 addresses in the form of 862A:7373:3386:BF1F:8D77:D3D2:220F:D7E0 are much harder to memorize or even transcribe than the 4 octets of IPv4.

There have been attempts to mitigate this, making IPv6 addresses somehow more memorable.

Is there an intentionally-weak hashing function which could be reversed to find that the phrase, say, "This is relatively benign and easy to spot if the phrase is bent so as to be not worth paying" would hash to a target IPv6 address? The hash would, of course, have many colliding inputs to choose from, and a potentially more memorable sentence, such as this example phrase, could be automatically offered.

I guess there are two parts: First a weak hash with good distribution in both directions. Second is an algorithm for selecting memorable phrases from among the many collisions (short, consisting of words from a specified language, perhaps even following a simplified grammar).

Although the hash function would need to be weak, I don't doubt that the effort is still significant - however, once the phrase is known, the computation of the hash to the target address is very quick.

EDIT

I found this related idea, Piphilology, for memorizing some digits of π:

How I wish a drink, alcoholic of course, after the heavy lectures involving quantum mechanics!

share|improve this question
2  
Does the function have to be defined over the whole address space, or can part of the address be selected for memorability? Does the transformation have to be doable by a human on the spot? Should redundancy be baked it to detect errors? –  Gilles Jul 15 '12 at 18:29
    
The whole address space is preferred. It can require a computer to compute the hash. Redundancy would be neat! (But don't human language words have a fair amount of redundancy baked in already?) –  uosɐſ Jul 15 '12 at 18:32
1  
Why not just use the domain name? IP addresses aren't for human consumption in the first place, and adding some computer-requiring memory aide doesn't sound so hot. –  vonbrand Jan 28 '13 at 22:58
    
Because domain names require registration and a lookup. Domain names are fine, but we still use IPv4 addresses for certain things - why isn't there still that same use but for IPv6 addresses? –  uosɐſ Jan 29 '13 at 3:24
add comment

1 Answer

It sounds like you have two use cases:

  • Given a phrase, it will hash to a unique IPv6 address
  • Given an IPv6 address, multiple phrases can hash to it (colliding inputs). Corollary: Given an IPv6 address, general multiple memorable phrases, which the user can choose from.

I believe you would have to roll your own solution here. IPv6 addresses are long enough that you probably have to use a function like SHA1 to be able to cover the address space.

To maximize the number of colliding phrases, you could try ignoring vowels, or the hundred most common words.

share|improve this answer
1  
SHA1 would work for the first use case but not the second use case (you can't invert SHA1 in any reasonable amount of time; given a 128-bit value, you can't find an input that hashes to it in any reasonable amount of time). –  D.W. Dec 18 '13 at 8:01
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.