আমি সম্প্রতি 2013-04-29 এ একটি বিএসডি আলোচনা গ্রুপে একটি পোস্ট পেয়েছি
http://openbsd-archive.7691.n7.nabble.com/Why-does-OpenBSD-use-CVS-td226952.html
যেখানে পোস্টার দাবি করেছে:
গিট রিবেস ব্যবহার করে আমি একবার হ্যাশের সংঘর্ষে পড়েছি।
দুর্ভাগ্যক্রমে, তিনি তার দাবির পক্ষে কোনও প্রমাণ সরবরাহ করেন না। তবে আপনি তার সাথে যোগাযোগ করার চেষ্টা করতে এবং এই অনুমিত ঘটনা সম্পর্কে তাকে জিজ্ঞাসা করতে চান।
তবে আরও সাধারণ স্তরে, জন্মদিনের আক্রমণে একটি SHA-1 হ্যাশের সংঘর্ষের সুযোগ পাউ (2, 80) এ 1 হয়।
এটি প্রচুর শোনাচ্ছে এবং বিশ্বের সম্মিলিত সমস্ত গিট সংগ্রহস্থলে উপস্থিত পৃথক ফাইলগুলির সংস্করণগুলির সংখ্যার চেয়ে এটি অবশ্যই অনেক বেশি।
তবে এটি কেবলমাত্র সংস্করণগুলিতে প্রযোজ্য যা প্রকৃতপক্ষে সংস্করণ ইতিহাসে থেকে যায়।
যদি কোনও বিকাশকারী রিবাইজিংয়ের উপর খুব বেশি নির্ভর করে, প্রতিবার কোনও শাখার জন্য একটি রিবেস চালানো হলে, সেই শাখার সমস্ত সংস্করণে (বা শাখার পুনর্বাসিত অংশ) সমস্ত কমিট নতুন হ্যাশ পাবে। প্রতিটি ফাইল "গিট ফিল্টার-শাখা" দিয়ে পরিবর্তিত হয় একই ক্ষেত্রে এটি সত্য। সুতরাং, "রিবেস" এবং "ফিল্টার-শাখা" সময়ের সাথে সাথে উত্পন্ন হ্যাশগুলির সংখ্যার জন্য বড় গুণক হতে পারে, যদিও সেগুলি সবই রাখা হয় না: ঘন ঘন, প্রত্যাবর্তনের পরে (বিশেষত একটি শাখা "পরিষ্কার করার উদ্দেশ্যে" ), মূল শাখাটি ফেলে দেওয়া হয়।
তবে যদি সংঘর্ষটি পুনরায় বা ফিল্টার-শাখার সময় ঘটে তবে এটির বিরূপ প্রভাবও পড়তে পারে।
আর একটি বিষয় হ'ল গিট সংগ্রহস্থলগুলিতে হ্যাশ সংস্থাগুলির মোট সংখ্যার অনুমান করা এবং তারা পা (2, 80) থেকে কতটা দূরে রয়েছে তা দেখুন।
ধরা যাক আমাদের প্রায় 8 বিলিয়ন লোক রয়েছে এবং তাদের সকলেই গিট চালাবেন এবং তাদের জিনিসগুলি প্রতি ব্যক্তি 100 গিট সংগ্রহস্থলে সংস্করণযুক্ত রাখবেন। আসুন 'ধরে নেওয়া যাক গড় ভাণ্ডারটিতে 100 টি কমিট এবং 10 টি ফাইল রয়েছে এবং প্রতিশ্রুতি অনুযায়ী files ফাইলগুলির মধ্যে একটি মাত্র রয়েছে।
প্রতিটি সংশোধনের জন্য আমাদের কাছে গাছের বস্তু এবং কমিট অবজেক্টের জন্য কমপক্ষে একটি হ্যাশ থাকে। একসাথে পরিবর্তিত ফাইলের সাথে আমাদের কাছে প্রতি সংস্করণে 3 টি হ্যাশ রয়েছে এবং এইভাবে সংগ্রহস্থল প্রতি 300 হ্যাশ রয়েছে।
৮ বিলিয়ন লোকের 100 টি সংগ্রহস্থলের জন্য এটি পা (2, 47) দেয় যা পাও (2, 80) থেকে এখনও দূরে is
যাইহোক, এটিতে উল্লিখিত অনুমিত গুণিত প্রভাবটি অন্তর্ভুক্ত নয়, কারণ কীভাবে এই অনুমানের মধ্যে এটি অন্তর্ভুক্ত করা যায় তা সম্পর্কে আমি অনিশ্চিত। সম্ভবত এটি সংঘর্ষের সম্ভাবনাগুলি যথেষ্ট পরিমাণে বাড়িয়ে তুলতে পারে। বিশেষত যদি খুব দীর্ঘ সংগ্রহস্থল যা লম্বা প্রতিশ্রুতিবদ্ধ ইতিহাস (লিনাক্স কার্নেলের মতো) অনেক লোক ছোট ছোট পরিবর্তনের জন্য পুনর্বাসিত হয়, যা তবুও সমস্ত আক্রান্ত কমিটের জন্য বিভিন্ন হ্যাশ তৈরি করে।
I've been informed by the git Gods that the chances of a SHA1 collision is the same as the Earth being sucked up into the black hole created by the CERN accelerator. If this is indeed true, then there's no need for that extra memcmp.
, উত্স: lwn.net/Articles/307281