Key generation in Google App Engine
Keys in App Engine are based on:

The keys of the ancestor entities of the entity, if any.
The kind name of the entity.
Either an auto-generated integer id or a user-assigned key_name. The integer IDs are allocated in generally-increasing blocks to various instances of the application, so that they can be guaranteed to be unique but are not guaranteed to actualy get assigned to entities in a monotonically increasing fashion.

The keys do not use anything like a universally unique ID.
If you guys ever used Google App Engine. It generates a key for every single instance of a model created. It's pretty neat.
I'm looking into building something like that. Do they do it so that the key is based on the content? Or do they just take a random choice from a-zA-Z0-9 for like 50 times and build a string out of it? That sounds reasonable because the chances that 2 key would be the same would be lower than 1/10^89.