come in different varieties called key types. Typically this type is included at the beginning of a key, delimited by an at- sign (@). Sometimes they are prefixed with ":freenet". The types are:
- CHK: The Content Hash Key is the workhorse on which other key types build. Every document has a corresponding hash value that serves as it's key. Two equal documents have equal hashes, so if different people insert the same document, this yields the same CHK. At the same time the hash function is built so that two different documents are very very unlikely to have the same hash (and therefore CHK). For all practical purposes, there is a one-to-one correspondence of CHKs to documents. All the other key types usually redirect to a CHK. So fundamentally, all real content is behind a CHK. Example: CHK@wQYjaBkpulyIBq4sbvyDL2NZ7ToPAwI,qW4hMEc6NWsx-T-etpfPAg
- KSK: These are fully free-form, so can be used to tag nice, descriptive names to content. By loose convention they are seen as a hierarchic system, with levelseparateded by slashes. When you request a KSK, the Cryptographic Hash? of the keyword is computed. The CHK corresponding to this hash is retrieved, and the data pointed to by that CHK is another CHK to which you're being redirected. Example: KSK@plays/Shakespeare/Coriolanus
- SSK: A Signed Subspace Key consists of a prefix specifying the subspace, followed by a free-form name placing the key inside the subspace. Actually each subspace has two prefixes associated with it, one used for inserting, the other for retrieval of keys. The insert prefix is normally kept secret, while the retrieval prefix is given out freely. This achieves that only the holder(s) of the secret prefix may put content into the subspace, while everybody may get content out.
This kind of keys works somewhat like PGP Key pairs. You give one of them away, and the other you must keep in secret, for you will use it to insert things inside yourName Spacece" (See the next question).