Identicons as Graphical Digital Fingerprints

Fingerprint via public domain clipart How do you uniquely identify a person, without divulging the identity of that person? For example, given a set of personal artifacts, how would I arrange the set of artifacts grouped by the person to which they belonged?

The answer is quite easy, isn’t it (especially given the title of this blog post and the image to the right)? You can look at the fingerprints on the items.

Unless you happened to have a file that mapped the fingerprints to individuals, you won’t know who the comb and mirror belong to, for example, only that they do belong to the same person and not to the person who owns the scissors.

The analogous structure in the world of information theory and computer science is the digital fingerprint, often created via a hash function. MD5 and SHA1 are two of the most commonly used hash functions.

A hash function is a one way algorithm for converting data into a number which for the most part can be used to identify the data without revealing the data. This is why it is common to hash passwords before storing them in a database.

In order to authenticate a user, I don’t need to know the user’s password, I just need to know that the hash I’ve stored corresponds to the password you typed.

Don Park recently invented a system for representing IP Addresses without divulging the actual IP Address via a system of glyphs, which he calls Identicons. This serves as a nice means of identifying commenters on a blog, without divulging their actual IP address, which could be a privacy concern. The following image are some examples of identicons.

Some Identicon Glyphs

What’s interesting to me about identicons is that they have wider uses beyond representing IP addresses. As Don states,

I think identicons have many use cases. One use is embedding them in wiki pages to identify authors. Another is using them in CRM to identify customers. I can go on and on. It’s not just about IP addresses but information that tends to move in ’herds’.

One way to look at identicons is that they are a visual representation of a hash value. They sort of add even more weight to the fingerprint analogy by being visual like a real fingerprint.

For example, for security reasons, many free software providers provide an MD5 checksum of their software binaries. You can see an example of this from the PuTTY download page.

Putty Download Page. Shows links to MD5 Checksums 

The next screenshot shows some actual hash values of exes.

Hash Values

Looking at the first listing, we can see that for pageant.exe, the hash value is 01d89c3cbf5a9fd2606ba5fe3b59a982, kind of a mouthful, right? Another way that could be represented is via an Identicon, which would be more readily recognizable.

Of course, in this situation, the security minded person would use an automated MD5 checksum checker rather than manually confirming the binary. But do you trust your md5 checksum checker? A quick visual confirmation would be a nice additional vote of confidence in this scenario.

If you’re interested in playing with Identicons in .NET, I recommend taking a look at this .NET port of Don Park’s implementation written by Jeff Atwood and Jon Galloway.

I had the pleasure of reviewing the code with Jeff and he’s quite proud of his caching optimization. Rather than caching the Bitmap object, he cashes the PNG output as a MemoryStream instance. That ends up saving a ton of memory.

Technorati tags: , ,

What others have said

Requesting Gravatar... Keyvan Nayyeri Jan 22, 2007 7:34 AM
# Identicons - Graphical Digital Fingerprints
Jeff Atwood and Phil Haack wrote Identicons and an implementation of them in .NET that is done by Jeff
Requesting Gravatar... Don Park Jan 22, 2007 8:47 AM
# re: Identicons as Graphical Digital Fingerprints
Thanks for explaining the concept so well, Phil. You've nailed it.
Requesting Gravatar... Haacked Jan 22, 2007 8:50 AM
# re: Identicons as Graphical Digital Fingerprints
Thanks Don, appreciate it. I just made Identicons the default image for commenters. Thus if a commenter does not have a gravatar, the identicon will show instead.

Right now, gravatars are broken on my site, so everyone will show up as an identicon until I fix it.
Requesting Gravatar... Brandon Jan 22, 2007 11:37 AM
# re: Identicons as Graphical Digital Fingerprints
These are definately cool identifiers.
Requesting Gravatar... Luke Jan 22, 2007 9:25 PM
# re: Identicons as Graphical Digital Fingerprints
I absolutely love the identicon idea. I think this is one of the most compelling concepts in this area I have heard in a while.

I'm currently trying to figure out how to get them working on my site. It's a classinc LAMP setup with Wordpress.
Requesting Gravatar... DotNetKicks.com Jan 23, 2007 9:11 AM
# Identicons as Graphical Digital Fingerprints
You've been kicked (a good thing) - Trackback from DotNetKicks.com
Requesting Gravatar... Gavin Joyce Jan 23, 2007 9:17 AM
# re: Identicons as Graphical Digital Fingerprints
This is a truly great idea and I will be including this in a upcoming project. I'll port it to ruby too if no one else has.
Requesting Gravatar... john doe Jan 25, 2007 9:47 PM
# re: Identicons as Graphical Digital Fingerprints
sounds interesting!!
Requesting Gravatar... you've been HAACKED Mar 19, 2007 1:01 AM
# Identicon Handler For .NET On CodePlex
Identicon Handler For .NET On CodePlex
Requesting Gravatar... Community Blogs Mar 19, 2007 1:44 AM
# Identicon Handler For .NET On CodePlex
A while ago, Jeff Atwood blogged about Identicons for .NET. An Identicon is an anonymized visual glyph
Requesting Gravatar... emilio gorgonzola Mar 19, 2007 2:23 AM
# I just want to see my Identicon thingie
I hope it isn't a swastika like the one above.
Requesting Gravatar... StevenHarman.net Apr 06, 2007 2:22 PM
# Subtext v1.9.5 - Now Testing
Subtext v1.9.5 - Now Testing
Requesting Gravatar... Coding Horror Dec 07, 2007 3:02 AM
# Hashtables and the Pigeonhole Principle
One of the most beloved of all data structures in computer science is the hash table. A hash table is a data structure that associates keys with values. The primary operation it supports efficiently is a lookup: given a...
Requesting Gravatar... Programming Dec 18, 2007 7:27 AM
# Hashtables, Pigeonholes, and Birthdays
One of the most beloved of all data structures in computer science is the hash table . A hash table is
Requesting Gravatar... michigan Dec 29, 2007 2:31 PM
# re: Identicons as Graphical Digital Fingerprints
i wonder if mine will look like the identicon i saw last month on park's site, it was different when i went to the page again just now.
what i love about your site is the identicon is bigger.
do i have to the right to use the identicon in my designs? I would also love to have this availible for people who visit my sites. when will it be availiable for site owners?
Requesting Gravatar... just looking... May 06, 2008 4:18 PM
# re: Identicons as Graphical Digital Fingerprints
Just want to see what it looks like...
Requesting Gravatar... Gavin May 17, 2008 6:47 PM
# re: Identicons as Graphical Digital Fingerprints
I want to see my Identicon as well...
Requesting Gravatar... Lee Jun 18, 2008 3:50 PM
# re: Identicons as Graphical Digital Fingerprints
Well that was a great blog post. Way to "identify" the situation, heh. I've found that my mind has an affinity for remembering numbers, names, and passwords... but I'm sure I'll recognize pictures even easier. Can't wait to see the many ways this could be used.
Requesting Gravatar... will Jun 18, 2008 11:31 PM
# re: Identicons as Graphical Digital Fingerprints
so if I have a gravatar will it show that or an identicon?
Requesting Gravatar... Nik Radford Jun 19, 2008 8:48 AM
# re: Identicons as Graphical Digital Fingerprints
Also just want to see my identicon
Requesting Gravatar... Danijel Jul 08, 2008 2:57 AM
# re: Identicons as Graphical Digital Fingerprints
So 127.0.0.1 will always show up the same identicon? :)
Requesting Gravatar... random ransom Jul 10, 2008 11:10 AM
# re: Identicons as Graphical Digital Fingerprints
1-2-3-test-test-test
Requesting Gravatar... SirHeart Jul 30, 2008 3:59 PM
# re: Identicons as Graphical Digital Fingerprints
just checking it out
However how does one hash a graphic image such as a pic and how reliable or predictible or unique is it ?
Requesting Gravatar... WalterVonBerg Aug 07, 2008 1:25 PM
# re: Identicons as Graphical Digital Fingerprints
i'm so cute
Requesting Gravatar... Identitron Sep 17, 2008 8:31 PM
# re: Identicons as Graphical Digital Fingerprints
Cool idea.
Requesting Gravatar... nicolas Oct 05, 2008 2:32 AM
# re: Identicons as Graphical Digital Fingerprints
what's my identicon?

ahh :-D

What do you have to say?

(will show your gravatar)
Please add 1 and 3 and type the answer here: