Cjdns implements an encrypted IPv6 network using public-key cryptography for address allocation and a distributed hash table for routing