Globally Unique Identifier

במחשבים, Globally Unique Identifier (GUID; בעברית: מזהה ייחודי גלובלי) או Universal Unique Identifier (UUID; בעברית: מזהה ייחודי אוניברסלי), הוא מספר פסאודו אקראי המשמש לזיהוי ייחודי של אובייקט בכל הקשר בו הוא עשוי להופיע. קיימים 2 122 {\displaystyle 2^{122}} מזהים כאלה כך שאף על פי שייתכן שמזהה מסוים יוגרל פעמיים הסבירות לכך נמוכה מאוד. הסבירות ששני מזהים זהים שהוגרלו יופיעו באותו הקשר קטנה אף יותר. המונח UUID נטבע על ידי קבוצת Open Software foundation (אנ').. המונח GUID הומצא לראשונה על ידי חברת מיקרוסופט לשימוש בשיטה במערכות חלונות. כיום, משתמשים בשני המונחים כמילים נרדפות אף על פי שהשם GUID נפוץ יותר. האלגוריתמים מוגדרים בתקן ISO/IEC 11578:1996 ובתקן ISO/IEC 9834-8:2005 GUID הוא מספר באורך 16 בתים (128 סיביות). נהוג לכתוב את המזהה בבסיס הקסדצימלי מוקף בסוגריים מסולסלים. לדוגמה, {3F2504E0-4F89-11D3-9A0C-0305E82C3301} המזהה מורכב ממספר הגרסה שלו, מהזמן בו נוצר ומזהה ייחודי כלשהו. גרסה 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 הסיביות באופן פסאודו-אקראי הסיכוי ליצירת שני מזהים זהים הוא x = 1 / 2 122 {\displaystyle x=1/2^{122}} . כדי להעריך גודל זה ניתן להשתמש בחישוב מפרדוקס יום ההולדת הקובע כי הסיכוי להתנגשות לאחר יצירה של n מזהים הוא: p ( n ) ≈ 1 − e − n 2 2 x {\displaystyle p(n)\approx 1-e^{-{\tfrac {n^{2}}{2x}}}} . אם נחשב את ההסתברות להתנגשות לאחר יצירת 2 46 {\displaystyle 2^{46}} מזהים (מספר הכוכבים ביקום המוכר מוערך ב- 5 × 10 22 {\displaystyle 5\times 10^{22}} ) נקבל כי ההסתברות היא כ- 4 × 10 − 10 {\displaystyle 4\times 10^{-10}} – הסתברות נמוכה מאוד. על אף שהסיכוי להגריל באופן אקראי את אותו מזהה נמוכה מאוד, אין הדבר מגן על המערכת מפני האקר המנסה לנחש את המספר הבא. למעשה, בהינתן סדרה של מספרים ונוסחת החישוב בה משתמשים, קל לנחש מה יהיה המזהה הבא שיתקבל. משום כך, אין להשתמש ב-GUID בישומים קריפטוגרפיים. Online random GUID מחולל מזהים באתר randomguid.com (אורכב 18.12.2014 בארכיון Wayback Machine) תוסף ל־iGoogle המאפשר לחולל מזהים ייחודיים Online מחולל מזהים באתר GuidGen.com The Quick Guide to GUIDs Better explained website. A Universally Unique IDentifier (UUID) URN Namespace (IETF RFC 4122) 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) Syntax and semantics of the DCE variant of Universal Unique Identifiers (UUIDs) תקן ISO/IEC 9834-8:1995 תקן ISO/IEC 11578:1996 אתר המחשב את הזמן בו נוצר GUID מגרסה 1 Globally Unique Identifiers (GUIDs) באתר מיקרוסופט Universal Unique Identifier באתר The Open Group מבנה GUID באתר MSDN ייחודיות מזהים באתר מיקרוסופט תיאור של שיטת המספור עבור מזהים ייחודיים כלליים (GUID) של קוד המוצר ב-Office 2003 Description of the numbering scheme for the product code GUIDs in Office 2000 Description of the numbering scheme for product code GUIDs for Office XP programs