UUID

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索

UUIDUniversally Unique Identifier)とは、Distributed Computing Environment (DCE)の一部としてOpen Software Foundation (OSF)が標準化した、ソフトウェアを一意に識別するための識別子である。UUIDは、分散システム上でどこかが統制を取らずとも、一意に特定可能な識別子の作成を目的としており、UUIDは重複や偶然の一致が起こりえないと確信して用いることができる。なお、UUIDの実装として最も広く使われているのは、マイクロソフトによるGUIDである。

UUIDは16進数の数値で表され、「550e8400-e29b-41d4-a716-446655440000」のように表現する。よく利用されるのは乱数に基づくUUID(UUID version 4)で、この形式のUUIDは2122通り(およそ5.3×1036通り[1])存在する。UUID version 4の場合、正しく生成されていれば、誕生日のパラドックスによっても、生成したあるIDが他で生成されたIDと偶然一致する確率は、1/261である。

UUIDはISO/IEC 11578:1996 "Information technology -- Open Systems Interconnection -- Remote Procedure Call (RPC)"の一部として文書化されている。なお、IETFはUUIDに関してRFC 4122を公開している。

種類(バージョン)[編集]

UUIDは生成方法により種類が存在し、それぞれ異なるバージョンが与えられて区別される。

バージョン1[編集]

MACアドレスとUUIDの生成日時によるもの。通常、MACアドレスが一意であることにより、この種のUUIDは一意であることが保証される。

バージョン4[編集]

乱数によるもの。バージョン番号の識別などに使用されるビットを除くすべてのビットを乱数で生成する。

クロックシーケンス[編集]

いくつかのバージョンのUUID中には、クロックシーケンス(clock sequence、RFC 4122 §4.1.5.)という値にもとづくフィールドがあるが、そのサイズは14ビットとあまり大きくない。従って、ほぼ全てのビットを乱数とするバージョン4以外において、クロックシーケンスの値には初期化以外では乱数を使ってはならず、その名前の通り順番に生成した値を使わなければならない。もし乱数を使ってしまうと、誕生日パラドックスにより重複を起こす可能性を孕んだ実装になってしまう。

脚注[編集]

[ヘルプ]
  1. ^ 2^{122}=5316911983139663491615228241121378304