Globally Unique Identifier

במחשבים, Globally Unique Identifier (GUID; בעברית: מזהה ייחודי גלובלי) או Universal Unique Identifier (UUID; בעברית: מזהה ייחודי אוניברסלי), הוא מספר פסאודו אקראי המשמש לזיהוי ייחודי של אובייקט בכל הקשר בו הוא עשוי להופיע. קיימים <math>2^{122}</math> מזהים כאלה כך שאף על פי שייתכן שמזהה מסוים יוגרל פעמיים הסבירות לכך נמוכה מאוד. הסבירות ששני מזהים זהים שהוגרלו יופיעו באותו הקשר קטנה אף יותר.

המונח UUID נטבע על ידי קבוצת Open Software foundation .. המונח GUID הומצא לראשונה על ידי חברת מיקרוסופט לשימוש בשיטה במערכות חלונות. כיום, משתמשים בשני המונחים כמילים נרדפות אף על פי שהשם GUID נפוץ יותר. האלגוריתמים מוגדרים בתקן ISO/IEC [http://www.iso.ch/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=2229 11578:1996] ובתקן ISO/IEC [http://www.iso.ch/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=36775 9834-8:2005]

== מבנה ==
GUID הוא מספר באורך 16 בתים (128 סיביות). נהוג לכתוב את המזהה בבסיס הקסדצימלי מוקף בסוגריים מסולסלים. לדוגמה, המזהה מורכב ממספר הגרסה שלו, מהזמן בו נוצר ומזהה ייחודי כלשהו.
* גרסה 1 – בגרסתו הראשונה של האלגוריתם המזהה הייחודי היה כתובת ה-MAC של המחשב עליו נוצר. שימוש בגרסה זו מאפשר לאתר את המחשב עליו נוצר ה-GUID. משיקולים של שמירת הפרטיות נזנח השימוש בגרסה זו לטובת גרסאות חדשות יותר.
* גרסה 2 – בגרסה זו מחושב המזהה הייחודי באמצעות שימוש בכתובת ה-MAC ומזהה הקשור לדומיין אליו משתייך המחשב.
* גרסה 3 – בגרסה זו מחושב ה-GUID באמצעות שימוש בפונקציית הגיבוב MD5 על מזהה ייחודי כלשהו של המחשב (למשל URI, FQDN או OID).
* גרסה 4 – בגרסה זו מחושב המזהה הייחודי על ידי שימוש במחולל מספרים פסאודו-אקראיים כלשהו.
* גרסה 5 – אופן השימוש בגרסה 5 זהה לאופן השימוש בגרסה 3 פרט לשימוש בפונקציה SHA1 במקום הפונקציה MD5.

== שימושים ==
כיוון שמספר המזהים האפשריים הוא עצום ניתן לזהות באופן ייחודי אובייקטים דומים אך לא זהים באמצעות GUID. כך למשל, גרסאות שונות של אובייקטי COM יכולות לקבל שם זהה אך יבדלו ביניהן באמצעות ה-GUID שלהן. GUID יכול גם לשמש כמפתח בבסיסי נתונים או בטבלאות גיבוב ללא צורך בפתרון התנגשויות. קבצים של מערכת ההפעלה חלונות (כגון קובצי Word ,Excel וקובצי ASF) מזוהים על ידי GUID.

== בטיחות ==
כיוון שבעת חישוב ה-GUID מוגרלות 122 סיביות מתוך 128 הסיביות באופן פסאודו-אקראי הסיכוי ליצירת שני מזהים זהים הוא <math>x=1/2^{122}</math>. כדי להעריך גודל זה ניתן להשתמש בחישוב מפרדוקס יום ההולדת הקובע כי הסיכוי להתנגשות לאחר יצירה של n מזהים הוא: <math>p(n)\approx 1-e^{-\tfrac{n^2}}</math>. אם נחשב את ההסתברות להתנגשות לאחר יצירת <math>2^{46}</math> מזהים (מספר הכוכבים ביקום המוכר מוערך ב-<math>5 \times 10^{22}</math>) נקבל כי ההסתברות היא כ-<math>4\times 10^{-10}</math> – הסתברות נמוכה מאוד.

על אף שהסיכוי להגריל באופן אקראי את אותו מזהה נמוכה מאוד, אין הדבר מגן על המערכת מפני האקר המנסה לנחש את המספר הבא. למעשה, בהינתן סדרה של מספרים ונוסחת החישוב בה משתמשים, קל לנחש מה יהיה המזהה הבא שיתקבל. משום כך, אין להשתמש ב-GUID בישומים קריפטוגרפיים.

== מחוללי מזהים ברשת ==
* [http://www.randomguid.com Online random GUID מחולל מזהים באתר randomguid.com] 
* [http://www.google.com/ig/directory?q=guid&hl=en&root=%2Fig&dpos=top&url=hosting.gmodules.com/ig/gadgets/file/113392228650073491842/generateGuid-newguidNet2.xml תוסף ל־iGoogle המאפשר לחולל מזהים ייחודיים]
* [http://www.guidgen.com Online מחולל מזהים באתר GuidGen.com]

== קישורים חיצוניים ==
<div style="direction: ltr;">
* [http://betterexplained.com/articles/the-quick-guide-to-guids/ The Quick Guide to GUIDs] Better explained website.
* [http://www.ietf.org/rfc/rfc4122.txt A Universally Unique IDentifier (UUID) URN Namespace (IETF RFC 4122)]
* [http://www.itu.int/ITU-T/studygroups/com17/oid.html International Standard "Generation and registration of Universally Unique Identifiers (UUIDs) and their use as ASN.1 Object Identifier components"] (ITU-T Rec. X.667 | ISO/IEC 9834-8, freely available)
* [http://www.opengroup.org/onlinepubs/9629399/apdxa.htm Syntax and semantics of the DCE variant of Universal Unique Identifiers (UUIDs)]
</div>
*[http://www.iso.ch/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=36775 תקן ISO/IEC 9834-8:1995]
*[http://www.iso.ch/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=2229 תקן ISO/IEC 11578:1996]
* [http://www.famkruithof.net/uuid/uuidgen?typeReq=-1 אתר המחשב את הזמן בו נוצר GUID מגרסה 1]

== הערות שוליים ==

קטגוריה:קידוד נתונים