Visual RFC.
ALL RFCs / RFC 6920
Read the RFC ↗

RFC 6920 / START HERE

Hash-based names, before the details

Named Information (ni) names use a hash: a short, fixed-size digest calculated from defined bytes. The nih form means Named Information for Humans.

RFC 6920 standardizes digest-based URI names and related binary and human-speakable formats. A name identifies data; a retrieval method finds a possible copy.

The idea in one picture

  1. Object bytes

  2. Digest name

  3. Check a copy

A simplified picture of the idea; the chapters explain the actual mechanisms.

Why it exists

Copies on different servers can share a content name. A client that chooses to check the returned bytes can detect a mismatch without treating the storage server as the author. This RFC supplies naming formats and an HTTP mapping, not a universal retrieval service.

A familiar example

A published example names the 12 bytes Hello World! with SHA-256 and unpadded base64url. The same bytes keep their name at another location. A matching digest does not prove who supplied the reference name or encrypt the object.

Helpful background

You can start here without reading another RFC. If these ideas are unfamiliar, these short introductions may help.

What you’ll learn next

Begin with chapter one, or choose a topic.

  1. Name bytes with a digestNamed Information uses a hash function to turn defined input bytes into a digest, a fixed-size value that can be carried in a name.
  2. Compare content names, not hostsTwo names identify the same thing only when their decoded digest algorithm, length and binary value match.
  3. Find a copy through HTTPThe ni name identifies data. A retrieval mapping supplies an HTTP or HTTPS location where a copy might be found.
  4. Check content type and raw bytesThe ct query parameter describes the expected media type. The application must also define which bytes are hashed.
  5. Pack a compact binary nameA binary name uses one header octet followed by the digest bytes. The suite identifier selects the algorithm and truncation length.
  6. Read a human-speakable nameThe nih scheme uses lowercase hexadecimal digest text, optional hyphen groups and an optional checkdigit to help people copy or speak a name.
  7. Keep integrity and trust separateMatching bytes to a name is useful only within an application trust model. A hash name does not identify its author or hide the object.
Start with chapter one →

This introduction explains RFC 6920 (2013). Read the original RFC ↗