Ini pertanyaan yang sangat bagus. Saya tidak percaya itu dianggap cukup terburu-buru untuk menggunakan UUID di mana-mana. Saya belum menemukan penelitian yang solid.
Sebuah saran: injak dengan sangat hati-hati di sini, dan ketahui kriptografi Anda dengan baik. Jika Anda menggunakan UUID 128-bit, 'efek ulang tahun' memberi tahu kami bahwa kemungkinan tabrakan setelah Anda menghasilkan sekitar 2 ^ 64 kunci, asalkan Anda memiliki 128 bit entropi di setiap kunci .
Sebenarnya agak sulit untuk memastikan bahwa inilah masalahnya. Keacakan yang sebenarnya dapat dihasilkan dari (a) peluruhan radioaktif (b) kebisingan radio latar belakang acak, sering terkontaminasi kecuali Anda berhati-hati (c) kebisingan elektronik yang dipilih dengan tepat, misalnya diambil dari dioda Zener yang bias balik. (Saya sudah bermain dengan yang terakhir, dan itu berfungsi seperti pesona, BTW).
Saya tidak akan mempercayai pernyataan seperti "Saya belum pernah melihat ini dalam satu tahun penggunaan", kecuali jika pengguna telah menghasilkan sesuatu yang mendekati 2 ^ 64 (mis. Sekitar 10 ^ 19) kunci, dan memeriksa semuanya terhadap satu sama lain, sebuah latihan non-sepele.
Masalahnya adalah ini. Katakanlah Anda hanya memiliki 100 bit entropi, ketika membandingkan kunci Anda dengan semua kunci lain yang dihasilkan orang lain di ruang kunci yang sama. Anda akan mulai melihat tabrakan di sekitar 2 ^ 50 yaitu. sekitar 10 ^ 15 kunci. Peluang Anda melihat tabrakan jika Anda telah mengisi basis data Anda dengan hanya 1000 miliar kunci masih dapat diabaikan. Dan jika Anda tidak memeriksa, nanti Anda akan mendapatkan kesalahan tak terduga yang merayap ke dalam database berukuran baris-peta Anda. Ini bisa menggigit keras.
Kenyataan bahwa ada beberapa pendekatan untuk menghasilkan UUID tersebut harus menimbulkan kekejangan sesaat. Ketika Anda menyadari bahwa beberapa generator menggunakan proses 'benar-benar acak' dengan entropi yang cukup untuk UUID tipe 4, Anda harus sangat khawatir kecuali Anda telah dengan cermat memeriksa konten entropi generator. (Kebanyakan orang tidak akan melakukan ini, atau bahkan tahu bagaimana caranya; Anda mungkin mulai dengan suite DieHarder). JANGAN mengacaukan pembuatan nomor pseudorandom dengan pembuatan nomor acak.
Sangat penting bagi Anda untuk menyadari bahwa entropi yang Anda masukkan adalah entropi yang Anda miliki, dan hanya mengganggu kunci dengan menerapkan fungsi kriptografi tidak mengubah entropi. Mungkin tidak jelas secara intuitif bahwa jika seluruh ruang saya terdiri dari angka 0 dan 1, konten entropi sama dengan dua string berikut, asalkan mereka satu-satunya dua pilihan: "Ini adalah string yang benar-benar sangat kompleks. 293290729382832 * ! @@ # & ^% $$), m} "dan" DAN SEKARANG UNTUK SESUATU YANG SANGAT BERBEDA ". Masih ada dua opsi.
Keacakan sulit untuk dilakukan dengan benar, dan hanya percaya bahwa "para ahli telah melihatnya, oleh karena itu tidak apa-apa" mungkin tidak cukup. Ahli kriptografi (dan ada beberapa di antaranya yang benar-benar cakap) adalah orang pertama yang mengakui bahwa mereka sering keliru. Kami memercayai hati, DigiNotar, dll.
Saya pikir Paul Tomblin sedang berhati-hati. 2c saya