Overview
ISO/IEC 9834-8:2014 (also published as ITU‑T Rec. X.667) defines the format, generation rules and operational procedures for universally unique identifiers (UUIDs) and their use within the international object identifier (OID) tree under the joint UUID arc. The standard specifies how to construct 128‑bit (16‑octet) UUIDs, how to represent them (binary, hexadecimal with hyphens, or as a single integer for OIDs/ASN.1), and how UUIDs can be embedded in OID and URN namespaces without requiring centralized registration.
Key technical topics and requirements
- UUID size and representations: UUIDs are 128 bits (16 octets). Representation formats include binary, hexadecimal with field hyphens, and a single unsigned integer value for OID use.
- Generation mechanisms: Three generation mechanisms are standardized:
- Time‑based - uses a UTC‑based timestamp (a 60‑bit clock with 100 ns granularity), clock sequence and node values to ensure uniqueness across systems and time.
- Name‑based - derives a UUID by hashing a globally unambiguous name (text) together with a namespace.
- Random‑number‑based - constructs a UUID largely from pseudo‑random or true random bits.
- Uniqueness guarantees and performance: Correctly implemented time‑based UUIDs are either guaranteed unique (over long time spans) or extremely likely unique depending on the mechanism. The standard supports high allocation rates (up to 10 million UUIDs per second per machine).
- Fields, ordering and validation: Definitions for UUID fields (time, clock sequence, node), variant bits, version bits, transmission byte order, comparison/ordering rules and guidance on validity checks.
- Use in OIDs and URNs: Rules for using a UUID as the primary integer label in a Joint UUID arc of the international OID tree, and for forming URNs from UUIDs.
- Informative annexes: Algorithms for efficient time‑based generation, properties of name‑based UUIDs, guidance on generating random numbers, and a sample C implementation.
Practical applications and who uses this standard
- Systems architects and developers implementing distributed systems, identity management, database keys, IoT device identifiers, transaction IDs, or any application needing globally unique identifiers.
- Registry operators and organizations that administer OID arcs who want to allow UUID‑based subarcs without central registration.
- Developers implementing URN schemes or protocols that rely on standardized UUID formats and comparison semantics.
- Security and infrastructure teams that require reproducible, interoperable UUID generation across platforms.
Related standards and pointers
- ISO/IEC 9834 (other parts) - procedures for OID registration authorities.
- ISO/IEC 8802‑3 - referenced for MAC address (node) allocation when used with time‑based UUIDs.
- ITU‑T Rec. X.667 - identical text to ISO/IEC 9834‑8:2014.
Keywords: ISO/IEC 9834-8:2014, UUID generation, universally unique identifier, OID, URN, time-based UUID, name-based UUID, random UUID, object identifier, UUID standard.