গিটের সাথে হশের সংঘর্ষ


175

গিট ব্যবহার করার সময় আমার যদি হ্যাশ সংঘর্ষ হয় তবে আসলে কী ঘটবে?

উদাহরণস্বরূপ, আমি একই শ 1 চেকসামের সাহায্যে দুটি ফাইল পরিচালনা করতে পরিচালিত করেছি, এটি কি লক্ষ্য করবে বা কোনও ফাইলকে দূষিত করবে?

এর সাথে বেঁচে থাকার জন্য গিটের উন্নতি হতে পারে, বা আমাকে কি নতুন হ্যাশ অ্যালগরিদমে পরিবর্তন করতে হবে?

(দয়া করে এটি কতটা অসম্ভব তা নিয়ে আলোচনা করে এই প্রশ্নটিকে প্রতিফলিত করবেন না - ধন্যবাদ)


26
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
কুর্জেড মেটাল

16
একেবারে না। ড্যান বার্নস্টেইনের উদ্ধৃতি দিতে: "শিক্ষাবিদরা SHA-1 সংঘর্ষের আক্রমণটি এখনও চালায়নি এটি একটি সামান্য historicalতিহাসিক দুর্ঘটনা" - এখন যে SHA-3 প্রতিযোগিতাটি শেষ হয়েছে, প্রাসঙ্গিক লোকেরা তাদের মনোনিবেশ করার একটা ভাল সম্ভাবনা রয়েছে একটি সংঘর্ষ উত্পাদন করতে পরিচিত আক্রমণ ব্যবহার করে। মার্ক স্টিভেনস কেবল 2 ^ 61 অপারেশন হিসাবে অসুবিধাটি অনুমান করে। খুব শীঘ্রই একটি SHA-1 সংঘর্ষ প্রদর্শিত হবে; এটি অদ্ভুত যে এটি ইতিমধ্যে ঘটেনি।
পল ক্রোলে

27
@ কুজেজেড মেটাল: সিইআরএন-তে ব্ল্যাকহোল তৈরি করার সুযোগ রয়েছে (দুটি প্রোটন যথাযথভাবে সংঘর্ষে নেমেছিল (10 ^ -15 মিটার)), তবে এই ব্ল্যাকহোলটি পৃথিবীটিকে চুষে ফেলবে না, হকিং বিকিরণের কারণে এটি তাত্ক্ষণিকভাবে বাষ্প হয়ে যাবে ... সুতরাং চুষিয়ে নেওয়া থেকে এসএএএ 1 এর সংঘর্ষের সম্ভাবনা অনেক বড় ... কেবলই বলা হচ্ছে ...
জা-সি


17
অবাক করার মতো বিষয় যে আপনি বিশেষভাবে লোকদের গিটের সংঘর্ষের অপ্রিয়তার বিষয়ে আলোচনা না করতে বলেছেন এবং প্রায় প্রত্যেকেই গিট সংঘর্ষের অপছন্দ সম্পর্কে কথা বলেছেন। এই লোকদের জীবনের জন্য স্ট্যাকওভারফ্লো নিষিদ্ধ করা উচিত!
ইউকিও ফুকুজাওয়া

উত্তর:


108

10 চাঁদে পরমাণু বাছাই করা হচ্ছে

একটি SHA-1 হ্যাশ হ'ল একটি 40 হেক্স অক্ষরযুক্ত স্ট্রিং ... যা চরিত্র প্রতি 40 বিটের 4 বিট ... 160 বিট। এখন আমরা জানি 10 বিটগুলি প্রায় 1000 (সঠিক হতে 1024) এর অর্থ 1000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 বিভিন্ন এসএএ-1 হ্যাশ রয়েছে ... 10 48

এর সমতা কী? ঠিক আছে, চাঁদ প্রায় 10 47 পরমাণু নিয়ে গঠিত। সুতরাং যদি আমাদের 10 টি চাঁদ থাকে ... এবং আপনি এলোমেলোভাবে এই চাঁদগুলির একটিতে একটি পরমাণু বাছুন ... এবং তারপরে এগিয়ে যান এবং আবার তাদের উপর এলোমেলো একটি পরমাণু বেছে নিন ... তবে সম্ভবত একই পরমাণুটি আপনি দুবার বেছে নেবেন , দুটি প্রদত্ত গিট কমিটের একই SHA-1 হ্যাশ হওয়ার সম্ভাবনা কি।

এটি প্রসারিত করে আমরা প্রশ্নটি জিজ্ঞাসা করতে পারি ...

সংঘর্ষের বিষয়ে উদ্বিগ্ন হওয়ার আগে আপনার ভাণ্ডারটিতে কয়টি কমিট দরকার?

এটি তথাকথিত "জন্মদিনের আক্রমণ" এর সাথে সম্পর্কিত, যার পরিবর্তে "জন্মদিনের প্যারাডক্স" বা "জন্মদিনের সমস্যা" বোঝায়, যা উল্লেখ করে যে যখন আপনি একটি নির্দিষ্ট সেট থেকে এলোমেলোভাবে বাছাই করেন, আপনি সম্ভবত অবাক হওয়ার চেয়ে বেশি অবাক হওয়ার আগে কয়েকটি চমকপ্রদ প্রয়োজন দুবার কিছু বাছাই করা। তবে "আশ্চর্যজনকভাবে কিছু" এখানে খুব আপেক্ষিক শব্দ।

জন্মদিনের প্যারাডক্স সংঘর্ষের সম্ভাবনার উপর উইকিপিডিয়ায় একটি সারণী রয়েছে । 40 টি চরিত্রের হ্যাশটির জন্য কোনও প্রবেশ নেই। তবে 32 এবং 48 অক্ষরের জন্য প্রবেশের একটি বিভাজন আমাদের 5 * 10 22 গিটের পরিসীমাতে স্থির করে একটি সংঘর্ষের 0.1% সম্ভাবনার জন্য কমিট করে। এটি পঞ্চাশ হাজার বিলিয়ন বিলি বিভিন্ন কমিট, বা পঞ্চাশ জেটটাকমিটস its , আপনি নিজের সংঘর্ষের যে কোনও 0.1% সুযোগে পৌঁছার আগেই।

এই কমিটগুলির জন্য একা হ্যাশের বাইট যোগফলটি এক বছরের জন্য পৃথিবীতে উত্পন্ন সমস্ত ডেটার চেয়ে বেশি ডেটা হবে, যার অর্থ এটি ইউটিউব ভিডিও প্রবাহের চেয়ে দ্রুত কোড বেরিয়ে নেওয়া দরকার। সে জন্য শুভকামনা। : ডি

এর মুল বক্তব্যটি হ'ল যে কেউ যদি ইচ্ছাকৃতভাবে সংঘর্ষের কারণ না সৃষ্টি করে, এলোমেলোভাবে ঘটনার সম্ভাবনাটি এত অল্পই ছোট যে আপনি এই বিষয়টিকে উপেক্ষা করতে পারবেন

"তবে যখন সংঘর্ষ হয় তখন আসলে কী ঘটে?"

ঠিক আছে, ধরুন অসম্ভব ঘটেছে, বা ধরুন যে কেউ ইচ্ছাকৃতভাবে SHA-1 হ্যাশ সংঘর্ষের জন্য উপযুক্ত হয়েছে । তাহলে কি হয়?

সেই ক্ষেত্রে আছে একটি দুর্দান্ত উত্তর রয়েছে যেখানে কেউ এটি ব্যবহার করেছিলেন । আমি এই উত্তরটি থেকে উদ্ধৃত করব:

  1. যদি একটি ব্লব ইতিমধ্যে একই হ্যাশ সহ উপস্থিত থাকে তবে আপনি কোনও সতর্কতা পাবেন না। সবকিছু ঠিক আছে বলে মনে হচ্ছে, তবে আপনি যখন চাপ দিবেন, কেউ ক্লোন করে, বা আপনি প্রত্যাবর্তন করেন, আপনি সর্বশেষতম সংস্করণটি হারাবেন (উপরে বর্ণিত বর্ণনার সাথে মিল রেখে)।
  2. যদি কোনও গাছের বস্তু ইতিমধ্যে উপস্থিত থাকে এবং আপনি একই হ্যাশ দিয়ে একটি অঙ্কুর তৈরি করেন: যতক্ষণ না আপনি ধাক্কা দেওয়ার চেষ্টা করেন বা কেউ আপনার ভান্ডারটিকে ক্লোন করে না ফেলে যতক্ষণ না সমস্ত কিছু স্বাভাবিক মনে হবে। তারপরে আপনি দেখতে পাবেন যে রেপোটি দুর্নীতিগ্রস্থ।
  3. যদি কোনও প্রতিশ্রুতিবদ্ধ বস্তু ইতিমধ্যে বিদ্যমান থাকে এবং আপনি একই হ্যাশ দিয়ে ব্লব তৈরি করেন: # 2 এর মতো - দুর্নীতিগ্রস্থ
  4. যদি কোনও ব্লব ইতিমধ্যে উপস্থিত থাকে এবং আপনি একই হ্যাশ দিয়ে একটি প্রতিশ্রুতিবদ্ধ অবজেক্ট তৈরি করেন তবে "রেফ" আপডেট করার সময় এটি ব্যর্থ হবে।
  5. যদি কোনও ব্লব ইতিমধ্যে বিদ্যমান থাকে এবং আপনি একই হ্যাশ দিয়ে একটি গাছের বস্তু তৈরি করেন। প্রতিশ্রুতি তৈরি করার সময় এটি ব্যর্থ হবে।
  6. যদি কোনও গাছের বস্তু ইতিমধ্যে উপস্থিত থাকে এবং আপনি একই হ্যাশ দিয়ে একটি প্রতিশ্রুতিবদ্ধ বস্তু তৈরি করেন তবে "রেফ" আপডেট করার সময় এটি ব্যর্থ হবে।
  7. যদি কোনও গাছের বস্তু ইতিমধ্যে উপস্থিত থাকে এবং আপনি একই হ্যাশ দিয়ে একটি গাছের বস্তু তৈরি করেন তবে সবকিছু ঠিক আছে বলে মনে হবে। আপনি যখন প্রতিশ্রুতিবদ্ধ হন, সমস্ত সংগ্রহস্থল ভুল গাছটিকে উল্লেখ করবে।
  8. যদি কোনও প্রতিশ্রুতিবদ্ধ বস্তু ইতিমধ্যে উপস্থিত থাকে এবং আপনি একই হ্যাশ দিয়ে একটি প্রতিশ্রুতিবদ্ধ বস্তু তৈরি করেন তবে সবকিছু ঠিক আছে বলে মনে হবে। কিন্তু আপনি যখন প্রতিশ্রুতিবদ্ধ হন, তখন কমিট কখনই তৈরি হবে না এবং হেড পয়েন্টারটি পুরানো কমিটে সরানো হবে।
  9. যদি কোন কমিট অবজেক্টটি ইতিমধ্যে উপস্থিত থাকে এবং আপনি একই হ্যাশ দিয়ে একটি ট্রি অবজেক্ট তৈরি করেন, কমিট তৈরি করার সময় এটি ব্যর্থ হবে।

আপনি দেখতে পারেন কিছু ক্ষেত্রে ভাল হয় না। বিশেষত ক্ষেত্রে # 2 এবং # 3 আপনার ভাণ্ডারগুলিকে বিভ্রান্ত করে। তবে, মনে হয় যে ত্রুটিটি সেই সংগ্রহস্থলের মধ্যেই থাকে এবং আক্রমণ / উদ্ভট অসম্ভবতা অন্যান্য সংগ্রহস্থলগুলিতে প্রচার করে না।

এছাড়াও মনে হয় ইচ্ছাকৃত সংঘর্ষের বিষয়টি সত্যই হুমকি হিসাবে স্বীকৃতি পেয়েছে, এবং উদাহরণস্বরূপ গিটহাব এটি প্রতিরোধের জন্য ব্যবস্থা নিচ্ছে


22
সংখ্যাগুলি সঠিক কিনা তা আমি জানি না, তবে অসম্ভাব্যতা এবং মজার
কথাটি

4
আমি 10 চাঁদ সন্ধান করতে এবং এটি ব্যবহার করে দেখতে এখন নাসার সাথে যোগাযোগ করছি। আমাদের যদি 10 চাঁদ না থাকে তবে কেউ এটি কাজ করে কিনা তা বলে না;)
উত্সারেশ কুমার

2
একটি আসল পাঠ্য ফাইলের একটি এলোমেলো প্রতিশ্রুতি সংঘর্ষের সুযোগটি শূন্যের মতো খুব ভাল, খুব কমই। তবে এই উত্তরটি পুরোপুরি এড়িয়ে যায় যে কেউ চেষ্টা করে ইচ্ছাকৃতভাবে সংঘর্ষ তৈরি করতে পারে। আক্রমণে থাকা SHA-1 হ্যাশ সহ, এটি একটি বরং গুরুত্বপূর্ণ কারণ হয়ে উঠছে।
মার্টেন বোদেউয়েস

7
ভোট কমিয়ে দেওয়ার কারণ: খুব সুন্দরভাবে বলেছেন, তবে সম্ভাবনার অর্থ এখানে একেবারেই কিছুই নয়। লোটো জয়ের বিষয়ে আপনি একই কথা বলতে পারেন তবে লোকে এখানে এবং প্রতিদিনের ভিত্তিতে লোটো জিততে পারে। সুতরাং লোটো সংস্থাটি সত্যিই কেবল এটি বলতে পারে না: সুযোগটি ছোট তাই আমাদের জ্যাকপটটি আসলে প্রদান করার বিষয়ে চিন্তা করা উচিত নয়। এখানে ওপি-র প্রশ্নটি হল: যখন ছোট্ট সুযোগটি ঘটে তখন কী হয় এবং আপনি তার উত্তর দিতে ব্যর্থ হন।
ইউকিও ফুকুজাওয়া

3
@ ফুকুজাওয়্যুকিওতে 2 ^ 48 লটারির টিকিট প্রিন্ট করা নেই, তবে - কেবলমাত্র মিলিয়ন (সম্ভবত বছরে 200 মিলিয়ন মোট .. কে জানে?), এবং একটি বিজয়ী লটারি রয়েছে। সম্ভাবনা অনেক বেশি, এবং কিছু লটারির টিকিটের জন্য বিজয়ী টিকিট সর্বদা মুদ্রিত থাকে; সুতরাং, বিজয়ী অনিবার্য (যদি না বিজয়ী টিকিটটি দুর্ঘটনাক্রমে ভুল জায়গায় প্রতিস্থাপন না করা হয়)। এছাড়াও, আমি বহু বছর আগে ছদ্ম-বাস্তববাদী লটারির টিকিট গেমটি তৈরি করেছি: লটারি.পি । বলা বাহুল্য, আপনি সময়টির 99% হারান।
dylnmc

67

যদি দুটি ফাইলের গিটের সমান হ্যাশ সমষ্টি থাকে তবে এটি সেই ফাইলগুলিকে অভিন্ন হিসাবে বিবেচনা করবে। একেবারেই অসম্ভব ক্ষেত্রে এমনটি ঘটে, আপনি সর্বদা একটি প্রতিশ্রুতি ফিরে পেতে পারেন এবং ফাইলে কোনও কিছু পরিবর্তন করতে পারেন যাতে তারা আর সংঘর্ষ না করে ...

"শা -২66 সম্পর্কে ভাবতে শুরু করছেন?" থ্রেডে লিনাস টোরভাল্ডসের পোস্টটি দেখুন ? গিট মেইলিং তালিকায়


4
"যদি দুটি ফাইলের গিটের সমান হ্যাশ সমষ্টি থাকে তবে এটি সেই ফাইলগুলিকে অভিন্ন হিসাবে বিবেচনা করবে।" এটি আসলে একটি সঠিক উত্তর। যাইহোক, আপনার কাছে ক্লাস্টোফার এই বিবৃতিটির কোনও উত্স আছে? আপনার লিঙ্কটি আমার পক্ষে কাজ করছে না।
টিয়াগো

3
তবে আপনি হ্যাশের সংঘর্ষের নমুনাগুলির সংগ্রহ সহ কোনও প্রকল্পে কাজ করলে এটি একেবারেই অসম্ভব নয়।
ডুমজঙ্কি

6
@ জবিশপ না এটি করেনি। যদি আপনার কাছে হ্যাশের সংঘর্ষের প্রমাণ থাকে তবে আপনার তাত্ক্ষণিক খ্যাতি থাকবে। এটি পোস্ট করতে ভুলবেন না! আপনি যদি আমাকে এক সপ্তাহের মধ্যে গিটের মধ্যে তৈরি একটি পূর্ণ আকারের SHA-1 হ্যাশ সংঘর্ষ দেখায় তবে আমি সত্যই ভাল হারলেম বিয়ারের ক্রেট প্রেরণ করব। মনে রাখবেন এটি পৃথক হ্যাশ সংঘর্ষ হতে হবে, ইতিমধ্যে অন্য কোথাও উদ্ধৃত নয় (এটি এখনও কেউ পোস্ট করেন নি, তবে এখনও)।
মার্টেন বোদেউয়েস

7
+1 এখন পর্যন্ত একমাত্র উত্তর যা আসলে প্রশ্নের উত্তর দেয়। বাকিরা কেবল "ছোট্ট সুযোগ" সম্পর্কে উদ্রেক করছে যা এটি হতে পারে, যা প্রতিটি বিকাশকারী ইতিমধ্যে জানে।
ইউকিয়ো ফুকুজাওয়া

2
লিনাস আইটি সুরক্ষার বিষয়ে আলোচনা সম্পর্কে খুব সতর্ক থাকুন - তিনি এর আগেও ভুল হয়েছিলেন এবং সে সম্পর্কে তিনি ভুল। যদি কেউ ইচ্ছামত SHA-1 সংঘর্ষ তৈরি করতে পারে তবে একজন এটিকে সমস্ত ধরণের মায়েমের জন্য ব্যবহার করতে পারে যেমন বৃত্তাকার ইতিহাস তৈরি করা যা গিট সার্ভার এবং ক্লায়েন্টদের ক্র্যাশ করতে পারে।
DomQ

26

এই প্রশ্নের উত্তর সঠিকভাবে "তবে" দিয়ে দেওয়া কেন এটি সমস্যা নয় তা ব্যাখ্যা না করেই সম্ভব নয়। হ্যাশ আসলে কী তা আসলেই ভাল জড়িত না হওয়া ছাড়া এটি করা সম্ভব নয়। কোনও সিএস প্রোগ্রামে আপনাকে যে সাধারণ ক্ষেত্রে প্রকাশ করা হতে পারে তার চেয়ে এটি জটিল।

এখানে তথ্য তত্ত্বের একটি প্রাথমিক ভুল ধারণা রয়েছে। আপনি কিছু পরিমাণ (অর্থাত্‍ একটি হ্যাশ) বাদ দিয়ে যদি অল্প পরিমাণে তথ্যকে একটি বিশাল পরিমাণে হ্রাস করেন তবে তথ্যের দৈর্ঘ্যের সাথে সরাসরি সম্পর্কিত সংঘর্ষের সম্ভাবনা থাকবে। সংক্ষিপ্ত তথ্য, এটি সম্ভবত কম হবে। এখন, সংঘর্ষের সিংহভাগ সংঘটিত হবে জিব্বার, যা তাদের প্রকৃতপক্ষে ঘটবে এমন সম্ভাবনা তৈরি করে (আপনি কখনই জিব্বারিশে পরীক্ষা করতে পারবেন না ... এমনকি বাইনারি চিত্রও কিছুটা কাঠামোগত)। শেষ পর্যন্ত, সম্ভাবনাগুলি দূরবর্তী। আপনার প্রশ্নের উত্তর দেওয়ার জন্য, হ্যাঁ, গিট তাদের সাথে একই রকম আচরণ করবে, হ্যাশ অ্যালগরিদম পরিবর্তন করা কোনও উপকারে আসবে না, এটি কোনও ধরণের "দ্বিতীয় চেক" নেবে, তবে শেষ পর্যন্ত, আপনার আরও "অতিরিক্ত চেক" ডেটা প্রয়োজন হবে হিসাবে ডেটা দৈর্ঘ্য 100% নিশ্চিত হতে ... মনে রাখবেন আপনি 99.99999 হতে হবে .... সত্যিকারের দীর্ঘ সংখ্যায় .... আপনার বর্ণনার মতো সাধারণ চেক সহ নিশ্চিত। SHA-x ক্রিপ্টোগ্রাফিকভাবে শক্তিশালী হ্যাশ, যার অর্থ সাধারণত ইচ্ছাকৃতভাবে দুটি উত্স ডেটা সেট তৈরি করা একে অপরের কাছে খুব সিমিলার এবং একই হ্যাশ তৈরি করা সাধারণভাবে কঠিন নয়। ডেটা পরিবর্তনের এক বিটটি হ্যাশ আউটপুটটিতে একাধিক (যথাসম্ভব যতটা সম্ভব) পরিবর্তনের বিট তৈরি করা উচিত, যার অর্থ হ্যাশ থেকে সম্পূর্ণ সেটটিতে কাজ করা খুব কঠিন (তবে যথেষ্ট অসম্ভব নয়)) সংঘর্ষগুলি এবং এর মাধ্যমে সংঘর্ষের সেটটি থেকে মূল বার্তাটি বের করে দেয় - কয়েকটি ব্যাতিক্রমী হবে, এবং বার্তাগুলির দৈর্ঘ্য যদি কোনও উল্লেখযোগ্য দৈর্ঘ্য হয় তবে সেগুলির মধ্যে এখনও একটি বিশাল সংখ্যা যাচাই করার দরকার নেই। একটি ক্রিপ্টো হ্যাশ এর খারাপ দিকটি হ'ল তারা সাধারণভাবে গণনা করতে ধীর হয়।

তো, গিটের পক্ষে এর অর্থ কী? বেশি না. হ্যাশগুলি খুব কমই করা হয় (অন্য কিছুর তুলনায়) যে তাদের গণ্য শাস্তি অপারেশন সামগ্রিকভাবে কম হয়। সংঘর্ষের জোড়ায় আঘাত হানার সম্ভাবনা এতটা কম, এটি তাত্ক্ষণিকভাবে আবিষ্কার হওয়ার এবং তাত্ক্ষণিক শনাক্ত হওয়ার সম্ভাবনা নয় (যেমন আপনার কোডটি সম্ভবত হঠাৎ বিল্ডিং বন্ধ করে দেবে), ব্যবহারকারীকে সমস্যাটি ঠিক করার অনুমতি দেয় (পুনর্বিবেচনার ব্যাক আপ, এবং পরিবর্তনটি আবার করুন এবং সময় পরিবর্তনের কারণে আপনি প্রায় অবশ্যই একটি আলাদা হ্যাশ পাবেন যা হ্যাশকে গিট খাওয়ায়)। যদি আপনি গিটে স্বেচ্ছাসেবী বাইনারিগুলি সংরক্ষণ করে থাকেন তবে এটি আপনার পক্ষে আসল সমস্যা হওয়ার সম্ভাবনা বেশি রয়েছে, এটি প্রাথমিক ব্যবহারের মডেলটি যা সত্য তা নয়। যদি আপনি এটি করতে চান ... আপনি সম্ভবত একটি traditionalতিহ্যগত ডাটাবেস ব্যবহার করা ভাল off

এটি সম্পর্কে চিন্তা করা ভুল নয় - এটি একটি খুব ভাল প্রশ্ন যে প্রচুর লোকেরা "এতটা অসম্ভব যে এটি" ভাবা উচিত নয় "হিসাবে ছাড়িয়ে যায় - তবে এটি এর চেয়ে সত্যিই কিছুটা জটিল। যদি এটি ঘটে থাকে তবে এটি খুব সহজেই সনাক্তযোগ্য হওয়া উচিত, এটি কোনও সাধারণ কর্মপ্রবাহে নিঃশব্দ দুর্নীতি হবে না।


4
you'll almost certainly get a different hash because of the time change, which also feeds the hash in gitহ্যাশটি কেবল কোনও ফাইলের বিষয়বস্তুর উপর ভিত্তি করে নয়?
ফ্রেডওভারফ্লো

4
একটি ব্লবের হ্যাশ কোনও ফাইলের সামগ্রীর উপর ভিত্তি করে (একটি ছোট্ট বিট মেটাডাটা সহ) তবে কমিটের হ্যাশ (যা তাত্ত্বিকভাবে সংঘর্ষেও পারে) বর্তমান সময়ের পাশাপাশি গাছের হ্যাশ ধারণ করে, লেখক, পিতামাতার হ্যাশগুলি ইত্যাদি কমিট করে তবে যাইহোক, @ স্টিভ উল্লেখ করেছেন যে ছোট জিনিসগুলির সংঘর্ষ হওয়ার সম্ভাবনা কম এবং কমিট একটি ছোট জিনিস।
সিডিসন 37

1
মনে করবেন না যে আমি "সংক্ষিপ্ততর ডেটা, কম সম্ভাবনা [সংঘর্ষ] হবে" এর সাথে একমত agree যদি আপনি সংক্ষিপ্ত হ্যাশ বোঝাতে চান তবে আপনি প্রতিটি হ্যাশ = উচ্চতর সংঘর্ষের সম্ভাবনায় সম্ভাব্য হ্যাশগুলি = আরও ইনপুট মানচিত্রের সেটটি হ্রাস করছেন। যদি আপনি সংক্ষিপ্ত বার্তাগুলি হ্যাশিং করে বোঝাতে চান তবে এটি কেবলমাত্র এই অর্থে সত্য যে সম্ভাব্য ইনপুটগুলির সংখ্যা ব্যবহৃত অক্ষরের সংখ্যা দ্বারা সীমাবদ্ধ, যা মনে হয় এতো স্পষ্ট মনে হয় আমি অবশ্যই আপনার পয়েন্টটি মিস করছি?
বেসিক

আমি কখনই "ভেরি সিমিলার" পয়েন্টটি ভাবিনি, যা সত্যিই ভাল পয়েন্ট। মূলত এর অর্থ হ'ল একই হ্যাশটির সাথে 2 টি কমিট করার জন্য আপনাকে প্রতিটি ফাইলের অক্ষরের একটি উল্লেখযোগ্য অংশ পরিবর্তন করতে হবে (ফাইলের নাম, পাথ এবং ফাইলগুলির সংখ্যা উল্লেখ না করা)।
পিটারনয়েটস

1
@ পিটারনুয়েটস না, একটি স্বেচ্ছাসেবী প্রাথমিক ফাইল থেকে একটি নির্দিষ্ট হ্যাশ পেতে, আপনাকে সাধারণত ফাইলটিতে তথ্য বিট সংখ্যার সমান পরিমাণে পরিবর্তন করতে হবে, অর্থাত্ 160 টি বিটের জন্য রয়েছে SHA-1। তবে কোন বিট পরিবর্তন করতে হবে সে সম্পর্কে তথ্যও এখানে গণনা করে, সুতরাং ফাইলটি যত দীর্ঘ হবে, আপনি যদি সঠিকগুলি চয়ন করেন তবে আপনাকে কম বিট পরিবর্তন করতে হবে। হাইপোথিটিক্যালি, দৈর্ঘ্যের একটি ফাইল 2 ^ 160 বাইটের উপরে দেওয়া হয়েছে, আপনি একটি বিট পরিবর্তন করে প্রায় কোনও হ্যাশ পেতে পারেন, যেহেতু সেই বিটের অবস্থানটি 160 বিটের বেশি তথ্য বহন করে!
এম ক্লোস্টার

10

এর সাথে বেঁচে থাকার জন্য গিটের উন্নতি হতে পারে, বা আমাকে কি নতুন হ্যাশ অ্যালগরিদমে পরিবর্তন করতে হবে?

সংঘর্ষগুলি যে কোনও হ্যাশ অ্যালগরিদমের পক্ষে সম্ভব, সুতরাং হ্যাশ ফাংশন পরিবর্তন করা সমস্যাটিকে অন্তর্ভুক্ত করে না, এটি কেবল এটি হওয়ার সম্ভাবনা কম করে। সুতরাং আপনার তখন একটি ভাল হ্যাশ ফাংশন চয়ন করা উচিত (এসএইচএ -১ ইতিমধ্যে রয়েছে, তবে আপনাকে বলা হবে না :)


আমার মনে হয় আপনি "বেশি সম্ভাবনা" বা "কম সম্ভাবনা" বলতে চাইছেন, তাই না? নিশ্চিত তুমি আউটপুটে কম বাইট সহ একটি হ্যাশ অ্যালগরিদম পরিবর্তন পারে তা , কিন্তু আপনি কি ঠিক তাই বোঝাতে চাইছেন না? :)
মাইকেলK

2
এসএএএ -1 এই অর্থে ভাঙা হয়েছে যে ইচ্ছাকৃতভাবে হ্যাশ সংঘর্ষ তৈরি করা সম্ভব হবে। আমি মনে করি এটি ইতিমধ্যে 2012 সালেও ছিল। সুতরাং অন্য একটি হ্যাশে পরিবর্তন করা যা আরও সুরক্ষিত এবং বৃহত্তর রাষ্ট্র এবং আউটপুট অবশ্যই একটি পার্থক্য তৈরি করবে।
মার্টেন বোদেউইস

9

আপনি " গিট কীভাবে কোনও ব্লাবের সাথে SHA-1 সংঘর্ষটি পরিচালনা করবে? " এ একটি ভাল গবেষণা দেখতে পাবেন ।

যেহেতু একটি SHA1 সংঘর্ষ এখন সম্ভব (যেমন আমি এই উত্তরটি জঞ্জাল.ওয়ের সাথে উল্লেখ করেছি ), জেনে নিন যে গিট 2.13 (কিউ 2 2017) SHA-1 বাস্তবায়নটির "সংঘর্ষ তৈরির সনাক্তকরণের চেষ্টা" আবিষ্কার করে বর্তমান পরিস্থিতির উন্নতি / প্রশমন করবে মার্ক স্টিভেন্স (সিডাব্লুআই) এবং ড্যান শুমো (মাইক্রোসফ্ট) দ্বারা

দেখুন f5f5e7f , প্রতিশ্রুতি 8325e43 , প্রতিশ্রুতি c0c2006 , প্রতিশ্রুতি 45a574e , প্রতিশ্রুতি 28dc98e (16 মার্চ 2017) জেফ কিং ( peff) দ্বারা
(দ্বারা একীভূত junio সি Hamano - gitster- মধ্যে কমিট 48b3693 , 24 মার্চ 2017)

Makefile: করা DC_SHA1 ডিফল্ট করা

আমরা ডিফল্টরূপে ওপেনএসএসএল লাইব্রেরি থেকে SHA1 প্রয়োগ ব্যবহার করতাম।
সাম্প্রতিক "ছিন্নবিচ্ছিন্ন" ঘোষণার পরে আমরা যেমন সংঘর্ষের আক্রমণগুলির বিরুদ্ধে সাবধান হওয়ার চেষ্টা করছি, তার পরিবর্তে ডিসিএসএএচএ 1 প্রয়োগের জন্য লোকদের উত্সাহিত করতে ডিফল্টটিকে স্যুইচ করুন।
যারা ওপেনএসএসএল থেকে বাস্তবায়নটি ব্যবহার করতে চান তারা OPENSSL_SHA1=YesPleaseচলমান অবস্থায় " make" স্পষ্টভাবে এটি জানতে চাইতে পারেন ।

আমাদের আসলে গিট-অবজেক্টের সংঘর্ষ নেই, তাই আমরা সবচেয়ে ভাল যা করতে পারি তা হল পরীক্ষার শা -1 এর মাধ্যমে ছড়িয়ে ছিটিয়ে থাকা একটি পিডিএফ চালানো। এটি সংঘর্ষের চেকটি ট্রিগার করে মারা যায়।


গিটার সাথে বাঁচতে উন্নত করা যায়, বা আমাকে কি নতুন হ্যাশ অ্যালগরিদমে পরিবর্তন করতে হবে?

গিট 2.16 (Q1 2018) সহ ডিসেম্বর 2017 আপডেট করুন : বিকল্প এসএইচএ সমর্থন করার জন্য এই প্রচেষ্টা চলছে: দেখুন " কেন গিট আরও আধুনিক এসএইচএ ব্যবহার করেন না? "।

আপনি অন্য হ্যাশ অ্যালগরিদম ব্যবহার করতে সক্ষম হবেন: SHA1 আর গিটের জন্য একমাত্র নয়।


গিট 2.18 (Q2 2018) নথি যা প্রক্রিয়া করে।

প্রতিশ্রুতি দেখুন 5988eb6 , প্রতিশ্রুতি 45fa195 (26 মার্চ 2018) লিখেছেন Æভার আরনফজুরি বজরমসন ( avar)
(দ্বারা একীভূত junio সি Hamano - gitster- মধ্যে কমিট d877975 , 11 এপ্রিল 2018)

ডক hash-function-transition : শ্যাটার্ডের অর্থ কী তা ব্যাখ্যা করুন

গিটের অনুশীলনে SHAttered আক্রমণটির অর্থ কী তা বোঝানোর চেষ্টা।
গ্রন্থটির পূর্ববর্তী সংস্করণে এই নির্দিষ্ট আক্রমণটির জন্য ইতিমধ্যে গিটের যা কিছু প্রশমিত হয়েছে তা উল্লেখ করা যায়নি, যা শ্যাটার গবেষকরা দাবি করেছেন যে ক্রিপ্টানালিটিক সংঘর্ষের আক্রমণ সনাক্ত করবে।

আমি কিছু সংক্ষেপে ভুল পেয়েছি, তবে যতদূর আমি জানি এই নতুন পাঠটি গিটারে SHA-1 এর সাথে বর্তমান পরিস্থিতির সঠিকভাবে সংক্ষিপ্তসার করেছে। অর্থাত্ গিটটি সত্যই আর SHA-1 ব্যবহার করে না, এটি কঠোর-SHA-1 ব্যবহার করে (তারা ঠিক একই আউটপুট 99.99999999999 ...% উত্পাদন করে)।

সুতরাং পূর্ববর্তী পাঠ্যটি ভুলভাবে ভুল ছিল:

[...] [SHAttered] এর ফলাফল হিসাবে, SHA-1 কে আরও ক্রিপ্টোগ্রাফিকভাবে নিরাপদ হিসাবে বিবেচনা করা যায় না [...]

বিষয়টি তেমন নয়। SHAttered এর বিরুদ্ধে আমাদের প্রশমন রয়েছে, তবে আমরা এটির দিকে কাজ করা বুদ্ধিমানের বিবেচনা করিNewHash SHA-1 বা কঠোর-SHA-1 এর মধ্যে ভবিষ্যতের দুর্বলতার উচিত ।

সুতরাং নতুন ডকুমেন্টেশন এখন পড়ে:

গিট ভি ২.১.৩.০ এবং পরবর্তীকালে ডিফল্টরূপে শক্ততর SHA-1 প্রয়োগে চলে গেছে, যা SHAttered আক্রমণে ঝুঁকিপূর্ণ নয়।

এইভাবে গিট ইতিমধ্যে কার্যকরভাবে একটি নতুন হ্যাশে স্থানান্তরিত হয়েছে যা SHA-1 নয় এবং তার দুর্বলতাগুলি ভাগ করে না, তার নতুন হ্যাশ ফাংশনটি কেবল SHAttered দ্বারা প্রকাশিত দুটি পিডিএফ ব্যতীত সমস্ত জ্ঞাত ইনপুটগুলির জন্য ঠিক একই আউটপুট উত্পাদন করতে ঘটে গবেষকরা, এবং নতুন বাস্তবায়ন (সেই গবেষকদের দ্বারা লিখিত) ভবিষ্যতের ক্রিপ্টানালিটিক সংঘর্ষের আক্রমণ সনাক্ত করার দাবি করেছে।

নির্বিশেষে, SHA-1 এর কোনও বৈকল্পিককে একটি নতুন হ্যাশে স্থানান্তরিত করা বুদ্ধিমানের হিসাবে বিবেচিত। SHA-1 এ ভবিষ্যতে আক্রমণগুলি ভবিষ্যতে প্রকাশিত হবে না এর কোনও গ্যারান্টি নেই, এবং এই আক্রমণগুলি কার্যকরভাবে হ্রাস পেতে পারে না।

যদি SHA-1 এবং এর রূপগুলি সত্যই ভেঙে ফেলা হয় তবে গিটের হ্যাশ ফাংশনটিকে আর কোনও ক্রিপ্টোগ্রাফিকভাবে সুরক্ষিত হিসাবে বিবেচনা করা যায় না। এটি হ্যাশ মানগুলির যোগাযোগের উপর প্রভাব ফেলবে কারণ আমরা বিশ্বাস করতে পারি না যে প্রদত্ত একটি হ্যাশ মান স্পিকারের উদ্দেশ্যে চিহ্নিত সামগ্রীর পরিচিত ভাল সংস্করণকে উপস্থাপন করে।

দ্রষ্টব্য: এখন একই ডকুমেন্ট (Q3 2018, গিট 2.19) স্পষ্টভাবে "নতুন হ্যাশ" কে SHA-256 হিসাবে উল্লেখ করেছে : দেখুন " গিট আরও আধুনিক এসএইচএ কেন ব্যবহার করে না? "।


4
এখানে একমাত্র শালীন উত্তর বা মন্তব্য। সংক্ষিপ্তসারটি - যদিও অত্যন্ত অসম্ভব, এটি সম্ভব। এগুলি সংঘটন এড়াতে তাত্ক্ষণিকভাবে অজ্ঞাত পরিচয়যুক্ত এবং একটি ফাইল টুইট করার মাধ্যমে প্রতিকার করা হবে (একটি মন্তব্য সহ)। ইচ্ছাকৃত শোষণগুলি অপ্রাসঙ্গিক বলে মনে করা হয়, কারণ কেউ ঠিক "ব্যাড কোড" অনায়াসে চেক করতে পারত - এবং এমন কিছু রয়েছে যা প্রক্রিয়াগতভাবে স্বাক্ষর এবং ইচ্ছাকৃতভাবে টানা অনুরোধগুলি এলোমেলো জিনিসগুলিকে এলোমেলোভাবে পরীক্ষা করতে বাধা দেয়।
ব্র্যাড

5

গুগল এখন দাবি করেছে যে শর্ত -১ এর সংঘর্ষ নির্দিষ্ট পূর্বশর্তের অধীনে সম্ভব: https://security.googleblog.com/2017/02/annoucing-first-sha1-collision.html

যেহেতু গিট ফাইলের অখণ্ডতা পরীক্ষা করতে SHA-1 ব্যবহার করে, এর অর্থ এই যে গিটের মধ্যে ফাইল অখণ্ডতা আপোষযুক্ত।

আইএমও, গিটকে অবশ্যই আরও ভাল হ্যাশিং অ্যালগরিদম ব্যবহার করা উচিত কারণ ইচ্ছাকৃত সংঘর্ষ এখন সম্ভব।


2
এছাড়াও, কম্পিউটার সুরক্ষা সম্পর্কিত লিনাসের কথায় বিশ্বাস না করা বুদ্ধিমানের কাজ হবে। তিনি এর আগেও ভুল হয়ে গিয়েছিলেন এবং তিনি এর থেকেও ভুল's (উদাহরণস্বরূপ, একটি SHA-1 সংঘর্ষের ওরাকল সার্ভার এবং ক্লায়েন্টকে ক্র্যাশ করার জন্য একটি বিজ্ঞপ্তি প্রতিশ্রুতিবদ্ধ ইতিহাস তৈরি করতে দেয়)
DomQ

2

একটি হ্যাশ সংঘর্ষ এতটাই সম্ভাবনা নেই যে এটি নিছক মন ফুঁকছে! বিশ্বজুড়ে বিজ্ঞানীরা একটি অর্জনের জন্য প্রচুর চেষ্টা করছেন, কিন্তু এখনও তা পরিচালনা করেননি। এমডি 5 এর মতো নির্দিষ্ট অ্যালগরিদমের ক্ষেত্রে তারা সফল হয়েছিল।

মতভেদ কি?

SHA-256 এ 2 ^ 256 সম্ভাব্য হ্যাশ রয়েছে। এটি প্রায় 10 ^ 78 । বা আরও গ্রাফিক হতে গেলে সংঘর্ষের সম্ভাবনা প্রায়

1: 100 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000

লটারি জেতার সুযোগ প্রায় 1: 14 মিও । SHA-256 এর সাথে সংঘর্ষের সুযোগটি টানা 11 দিন লটারি জয়ের মতো !

গাণিতিক ব্যাখ্যা: 14 000 000 ^ 11 ~ 2 ^ 256

অধিকন্তু, মহাবিশ্বে প্রায় 10 ^ 80 পরমাণু রয়েছে। SHA-256 সংমিশ্রণের চেয়ে এটি 100 গুণ বেশি।

সফল MD5 সংঘর্ষ

এমনকি MD5 এর জন্য সম্ভাবনাও ক্ষুদ্র। যদিও, গণিতবিদরা একটি সংঘর্ষ তৈরি করতে সক্ষম হয়েছেন:

d131dd02c5e6eec4 693d9a0698aff95c 2fcab5 8 712467eab 4004583eb8fb7f89
55ad340609f4b302 83e4888325 7 1415a 085125e8f7cdc99f d91dbdf280373c5b
d8823e3156348f5b ae6dacd436c919c6 dd53e2  487da03fd 02396306d248cda0
e99f33420f577ee8 ce54b67080 a 80d1e c69821bcb6a88393 96f965 2 b6ff72a70

একই MD5 আছে

d131dd02c5e6eec4 693d9a0698aff95c 2fcab5 0 712467eab 4004583eb8fb7f89
55ad340609f4b302 83e4888325 এফ 1415a 085125e8f7cdc99f d91dbd7280373c5b
d8823e3156348f5b ae6dacd436c919c6 dd53e2 3 487da03fd 02396306d248cda0
e99f33420f577ee8 ce54b67080 2 80d1e c69821bcb6a88393 96f965 a b6ff72a70

এর অর্থ এই নয় যে এমডি 5 এখন কম নিরাপদ কারণ এর অ্যালগরিদম ফাটল পড়েছে। আপনি উদ্দেশ্যে MD5 সংঘর্ষ তৈরি করতে পারেন, তবে দুর্ঘটনাক্রমে MD5 সংঘর্ষের সম্ভাবনা এখনও 2 ^ 128, যা এখনও অনেক বেশি।

উপসংহার

সংঘর্ষের বিষয়ে আপনার একক উদ্বেগ হওয়ার দরকার নেই। হ্যাশিং অ্যালগরিদমগুলি ফাইলের সাদৃশ্যটি যাচাই করার দ্বিতীয় নিরাপদ উপায়। একমাত্র নিরাপদ উপায় বাইনারি তুলনা।


4
এই উত্তরটি বেশিরভাগ SHA-256 সম্পর্কে আলোচনা করে যা অপ্রাসঙ্গিক যেহেতু প্রশ্নটি SHA-1 সম্পর্কে ছিল। কোনও SHA-256 এর সংঘর্ষের অপ্রতুলতা দেখানো গণিতটি SHA-1 এর তুলনায় অনেক বেশি আশাবাদী still এটি এখনও খুব অসম্ভব, তবে একটি SHA-1 উত্তরটি আরও প্রাসঙ্গিক হত।
অ্যান্ড্রু অরনট

@ অ্যান্ড্রুআরনট SHA-256 এবং SHA-1 এর মধ্যে কোনও প্রাসঙ্গিক পার্থক্য নেই। SHA-1 2 ^ 128 বার দুর্বল, তবে এটিরও কিছু আসে যায় না। এটি এখনও ভাঙ্গনযোগ্য নয়, সুতরাং আমার উত্তরটি এত ভুল স্থান পেল না ।
bytecode77

4
SHA-1 প্রকৃতপক্ষে ভেঙে গেছে সুতরাং এটি "এখনও ব্রেকযোগ্য নয়" বলাও ভুল also প্রদত্ত SHA-1 আসলে ভাঙা, কেউ সনাক্ত না করে বিষয়বস্তু প্রতিস্থাপন করতে ইচ্ছাকৃতভাবে গিটের শ -1 অ্যালগরিদম আক্রমণ করতে পারে। SHA-256 এখনও ভাঙ্গা হয়নি, তাই এটি আরও সুরক্ষিত হবে। সুতরাং, সম্ভাব্য গিট সংঘর্ষগুলি সম্পর্কে একটি প্রশ্নের উত্তর দেওয়া ভালভাবে SHA-1 এ রাখা হবে।
অ্যান্ড্রু আরনট

"এর অর্থ এই নয় যে এমডি 5 এখন কম নিরাপদ কারণ এর অ্যালগরিদম ফাটল পড়েছে।" আবার আসবেন? আপনি কি এই বাক্যটি ব্যাখ্যা করতে পারেন?
মার্টেন বোদেউয়েস

উত্তরের কারণ: কারণ এমন লোকদের মধ্যে প্রচুর বিভ্রান্তি রয়েছে যারা কম্পিউটারের সাথে পরিচিত নন এবং তারা ওয়েবে অনুসন্ধান থেকে এখানে অবতরণ করেন। "এনক্রিপশন বনাম কম্পিউটিং পাওয়ার" সম্পর্কে ভ্রান্ত ধারণাগুলি আপনার অভিজ্ঞতার তুলনায় আপনার ধারণা থেকে বেশি সাধারণ তাই আমি এটিকে অতিরিক্ত তথ্য হিসাবে সম্বোধন করেছি।
bytecode77


1

আমি সম্প্রতি 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

যাইহোক, এটিতে উল্লিখিত অনুমিত গুণিত প্রভাবটি অন্তর্ভুক্ত নয়, কারণ কীভাবে এই অনুমানের মধ্যে এটি অন্তর্ভুক্ত করা যায় তা সম্পর্কে আমি অনিশ্চিত। সম্ভবত এটি সংঘর্ষের সম্ভাবনাগুলি যথেষ্ট পরিমাণে বাড়িয়ে তুলতে পারে। বিশেষত যদি খুব দীর্ঘ সংগ্রহস্থল যা লম্বা প্রতিশ্রুতিবদ্ধ ইতিহাস (লিনাক্স কার্নেলের মতো) অনেক লোক ছোট ছোট পরিবর্তনের জন্য পুনর্বাসিত হয়, যা তবুও সমস্ত আক্রান্ত কমিটের জন্য বিভিন্ন হ্যাশ তৈরি করে।


মজাদার. +1 টি। : আমি উপরে উল্লেখ হিসাবে, এই সমস্যাটি অবশেষে চলে যাবে stackoverflow.com/a/47838703/6309
VonC
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.