অনুশীলনে SHA সংঘর্ষের সম্ভাবনা উপেক্ষা করা কি নিরাপদ?


209

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

  • ফাইল সংখ্যা
  • একক ফাইলের আকার

এটিকে শূন্য বলে ধরে আমরা এই সম্ভাবনাটি কতটা উপেক্ষা করতে পারি?


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

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

2
@ হিস্টো হিস্টভ: যদি আমরা ধরে নিই যে হ্যাশ কীটি ছদ্ম র্যান্ডম সংখ্যা (যা তাত্ত্বিকভাবে সঠিক) তবে এক বিলিয়ন 128-বিট কী-এর সংঘর্ষের সম্ভাবনা 2.9 * 10 ^ -30 হয় gives আপনি এটিকে "মিনিস্কুল "ও বলতে পারেন না, এটি এর চেয়ে কমও কম;)
মোজুবা

3
@ মোজুবা: আরও ভাল, সে 256-বিট হ্যাশ সম্পর্কে জিজ্ঞাসা করছে।
মাইকেল বর্গওয়ার্ট

এফডাব্লুআইডাব্লু: জিআইটি সংস্করণ নিয়ন্ত্রণ ব্যবস্থা ফাইলগুলি তাদের সামগ্রী SHA দ্বারা সনাক্ত করে।
স্নেমার্চ

উত্তর:


385

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

আমরা যদি আউটপুটের আকার সঙ্গে একটি "নিখুঁত" হ্যাশ ফাংশন আছে এন , এবং আমরা আছে পি হ্যাশ বার্তা (ব্যক্তি বার্তা দৈর্ঘ্য গুরুত্বপূর্ণ নয়), তারপর সংঘর্ষের সম্ভাবনা সম্পর্কে পি 2 /2 এন +1 (এই প্রায় সঠিক পরিমাপ যা "ছোট" পি এর জন্য বৈধ , অর্থাত্ 2 এন / 2 এর চেয়ে যথেষ্ট ছোট )। উদাহরণস্বরূপ, SHA-256 ( n = 256 ) এবং এক বিলিয়ন বার্তা ( পি = 10 9 ) দিয়ে তবে সম্ভাবনা প্রায় 4.3 * 10 -60

একটি গণ-হত্যাকারী মহাকাশ পাথর গড়ে প্রায় 30 মিলিয়ন বছরে একবার ঘটে। এটি পরবর্তী সেকেন্ডে প্রায় 10 -15-এ ঘটে এমন কোনও ঘটনার সম্ভাবনা বাড়ে । এটা 45 মাত্রার রয়েছে SHA-256 সংঘর্ষের বেশী সম্ভবপর নির্দেশে। সংক্ষেপে বলা হয়েছে, আপনি যদি SHA-256 সংঘর্ষকে ভয়ঙ্কর মনে করেন তবে আপনার অগ্রাধিকারগুলি ভুল।

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

অবশ্যই, উপরোক্ত সমস্ত অনুমান করে যে SHA-256 একটি "নিখুঁত" হ্যাশ ফাংশন, যা প্রমাণিত হওয়া থেকে অনেক দূরে। তবুও, SHA-256 বেশ শক্তিশালী বলে মনে হচ্ছে।


12
এটি একটি খুব ভাল উত্তর, ধন্যবাদ! তবে, যদি সংঘর্ষের ক্ষেত্রে একটি পারমাণবিক বিদ্যুৎকেন্দ্রটি বিস্ফোরিত হয় এবং এটি আপনার উপর নির্ভর করে, আপনি কি এই ঝুঁকি নেবেন? আপনি যদি পুরোপুরি ঠিক থাকেন তবে আমরা ঝুঁকি নিতে পারি, কারণ সভ্যতাটি ধ্বংস হওয়ার সম্ভাবনা 45 মাপের বেশি orders রাইট?
হিস্তো হ্রিস্টভ

46
@ হিস্টো আমি মনে করি হ্যাঁ, কেউই এই ঝুঁকি নিতে পারে। পারমাণবিক বিদ্যুৎকেন্দ্রটির অন্য জিনিসগুলির কারণে ইতোমধ্যে বিস্ফোরণের খুব বেশি সম্ভাবনা রয়েছে যেমন যান্ত্রিক ব্যর্থতা, এটি নির্মাণে মানুষের ত্রুটি বা এটি চালনার সময় অপারেটরের ত্রুটি, এবং আমরা ইতিমধ্যে সেই সম্ভাবনাগুলি নিচ্ছি। যদি SHA-256 সংঘর্ষগুলি কেবলমাত্র পারমাণবিক ঘটনার কারণ হয়ে দাঁড়ায় তবে আমরা অবশ্যই এতক্ষণে এগুলির ঠিক শূন্যই থাকতাম।
রোমান স্টারকভ

27
foxnews.com/science/2013/02/11/… আমি SHA512 সম্পর্কে ভাবতে শুরু করব।
ডাস্টিন ওরেপা

37
SHA-256 সংঘর্ষের অভিজ্ঞতা লাভ করার আগে আমি অনেক আগেই গ্রহাণু দ্বারা নিশ্চিহ্ন হয়ে যাব এই বিষয়টি আমি সহজেই বিশ্রাম নিতে পারি।
অ্যারোনএলএস

10
দুঃখিত, আপনি তথাকথিত "জন্মদিনের প্যারাডক্স" এ অনুপস্থিত রয়েছেন। "সুন্দর টেবিল "টি আরও ভালভাবে দেখুন, এটি আপনার ভাবনার মতো কাজ করে না। আমি যে টেবিলটিতে দেব তার পরিসংখ্যানগুলির জন্য, এটি "4.3 * 10 ^ -60" এবং সারি "128 বিট" লেবেলযুক্ত একটি কলামের "10 ^ 9" মান হবে (তবে টেবিলটি 10 ​​^ -18 এর নিচে যায় না )।
টমাস পর্নিন

47

সংঘর্ষের সম্ভাবনা ফাইলগুলির আকারের উপর নির্ভর করে না, কেবল তাদের সংখ্যার উপর।

এটি জন্মদিনের প্যারাডক্সের একটি উদাহরণ । উইকিপিডিয়া পৃষ্ঠাটি সংঘর্ষের সম্ভাবনার একটি অনুমান দেয়। আপনি যদি সংখ্যাটি চালান, আপনি দেখতে পাবেন যে পৃথিবীতে কখনও উত্পাদিত সমস্ত হার্ডডিস্ক SHA-256 এর জন্য 0.01% এমনকি সংঘর্ষের সম্ভাবনা পাওয়ার জন্য পর্যাপ্ত 1MB ফাইল ধরে রাখতে পারে না।

মূলত, আপনি কেবল সম্ভাবনাটিকে উপেক্ষা করতে পারেন।


5
আমি উপসংহারের সাথে একমত হতে পারি না। হ্যাঁ, কোনও হার্ডিস্ক এই সংখ্যক ফাইল সংরক্ষণ করতে পারে না, তবে আপনি পরিস্থিতিটির ভুল ব্যাখ্যা করেন IM সংঘর্ষের জন্য দুটি ফাইলই লাগে। যদিও সম্ভাবনা খুব কম তবে এটি এখনও ঘটতে পারে।
ধারালো

11
@ শার্পতুথ: না, আমি পরিস্থিতিটি ভুলভাবে উপস্থাপন করছি না। আপনার এবং আপনারা সকলেই একই দিনে সড়ক দুর্ঘটনায় মারা যাওয়ার সম্ভাবনা খুব কম, তবে এটি এখনও ঘটতে পারে (এবং এটি SHA-256 সংঘর্ষের চেয়ে অনেক বেশি)) তবুও আপনি সেই সম্ভাবনাটিকে উপেক্ষা করছেন।
মাইকেল বর্গওয়ার্ট

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

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

3
আপনি যদি মেমরি থেকে প্রতিটি আনতে ভুল ডিস্কের সম্ভাবনা যাচাই করেন না বা ডিস্ক থেকে পড়েন (যার কোনও SHA-256 সংঘর্ষের চেয়ে অনেক বেশি সম্ভাবনা থাকে) তবে আপনি সম্ভাব্যতাগুলি পুরোপুরি বুঝতে পারবেন না।
ক্রিস্টোফ

17

প্রথমত, এটি শূন্য নয়, তবে শূন্যের খুব কাছাকাছি

মূল প্রশ্নটি আসলে যদি সংঘর্ষ ঘটে তবে কী ঘটে ? যদি উত্তরটি হয় "পারমাণবিক বিদ্যুৎ কেন্দ্রটি বিস্ফোরিত হবে" তবে আপনার সংঘর্ষের সম্ভাবনাটি উপেক্ষা করা উচিত নয়। বেশিরভাগ ক্ষেত্রে পরিণতিগুলি ততটা মারাত্মক নয় এবং তাই আপনি সংঘর্ষের সম্ভাবনাটিকে উপেক্ষা করতে পারেন।

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


... অনুলিপিগুলির # দ্বারা নয়, সমস্ত কপি হজম করে ডেটাসেটের # টি।
Andreas Spindler

1
এটি ভুল, সফ্টওয়্যার চলার কপির সংখ্যা অপ্রাসঙ্গিক। একমাত্র বিষয়টি হ'ল প্রক্রিয়াজাত হওয়া স্বতন্ত্র ফাইলগুলির সংখ্যা এবং জন্মদিনের প্যারাডক্স গণনার জন্য গণিত is
ডার্ক বেস্টার

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


@ গ্রিনটি ট্রি আপনি যে বিষয়টির সাথে লিঙ্ক করেছেন সেটি হ'ল ইচ্ছাকৃতভাবে কারুকাজের সংঘর্ষ সম্পর্কে।
শার্পথুথ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.