এমডি 5 হ্যাশ মানগুলি কীভাবে বিপরীত হয় না?


92

একটি ধারণা যা আমি সবসময় ভাবছিলাম তা হ'ল ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশন এবং মানগুলির ব্যবহার। আমি বুঝতে পারি যে এই ফাংশনগুলি একটি হ্যাশ মান উত্পন্ন করতে পারে যা বিপরীত করা অনন্য এবং কার্যত অসম্ভব, তবে আমি যা সর্বদা ভাবছিলাম তা এখানে:

যদি আমার সার্ভারে থাকে তবে পিএইচপি-তে আমি উত্পাদন করি:

md5("stackoverflow.com") = "d0cc85b26f2ceb8714b978e07def4f6e"

আপনি যখন MD5 ফাংশনের মাধ্যমে একই স্ট্রিংটি চালান, আপনি আপনার পিএইচপি ইনস্টলেশনতে একই ফলাফল পাবেন। কিছু প্রারম্ভিক মান থেকে কিছু মান উত্পাদন করতে একটি প্রক্রিয়া ব্যবহার করা হচ্ছে।

এর অর্থ এই নয় যে ঘটছে তা ডিকনস্ট্রাক্ট করার এবং হ্যাশটির মানটিকে বিপরীত করার কোনও উপায় আছে?

এই ফাংশনগুলি সম্পর্কে কী এমন ফলাফল যা ফলস্বরূপ স্ট্রিংগুলি পুনরায় সন্ধান করা অসম্ভব করে তোলে?


54
উদাহরণস্বরূপ অবিবর্তনীয় মানটির একটি সাধারণ উদাহরণ হ'ল মডুলো। উদাহরণস্বরূপ 10% 3 = 1, তবে আপনি 1 থেকে 10 টি বিপরীত করতে পারবেন না এটি 4 হিসাবেও হতে পারে
গ্যাব রয়ের

57
আপনি যদি ডেটাটি পুনর্গঠন করতে পারেন তবে আপনি এখন পর্যন্ত সবচেয়ে দক্ষ লসলেস কম্প্রেশন অ্যালগোরিদম পেয়ে যাবেন :)
ড্যান ডিপ্লো

উত্তর:


205

ইনপুট উপাদানটি একটি অসীম দৈর্ঘ্য হতে পারে, যেখানে আউটপুট সর্বদা 128 বিট দীর্ঘ হয়। এর অর্থ হ'ল অসীম সংখ্যক ইনপুট স্ট্রিং একই আউটপুট উত্পন্ন করবে।

যদি আপনি একটি এলোমেলো সংখ্যা বেছে নেন এবং এটি 2 দিয়ে ভাগ করেন তবে কেবলমাত্র বাকীটি লিখে রাখেন, আপনি যথাক্রমে 0 বা 1 - এমনকি বা বিজোড় পাবেন। এটি 0 বা 1 নেওয়া এবং আসল নম্বর পাওয়া সম্ভব?


4
বলা চলে, সংখ্যা -> বাকি বা স্ট্রিং -> এমডি 5 কোনওটিই "ইনজেকশন ফাংশন" নয়।
ফেডেরিকো এ রামপনি

ফেডেরিকো, নিশ্চয়ই আপনি বোঝাতে চাইছেন যে উভয়ই দ্বিপাক্ষিক ফাংশন নয়? তারা উভয়ই ইনজেকশনযুক্ত।
মিহাই লিম্বান

10
মোওচা: ইনজেক্টিভ মানে 1 থেকে 1। এমডি 5 অবশ্যই 1 থেকে 1 নয়, কারণ ডোমেনটি ব্যাপ্তির চেয়ে বড়। লক্ষ্য করার মতো অন্য একটি বিষয় হ'ল এমডি 5 চেকসাম দেওয়া হলেও এটির মধ্যে একটি স্ট্রিংও পাওয়া খুব শক্ত। স্পষ্টকরণের জন্য উত্তরে যুক্ত করার উপযুক্ত হতে পারে।
বায়োজিঙ্ক

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

4
আমি পরামর্শ দিচ্ছি যে আপনার উত্তরটি মূল পয়েন্টটি সম্বোধন করে না। বায়োজিঙ্ক যেমন উল্লেখ করেছেন, সুরক্ষিত পাসওয়ার্ড হ্যাশটির জন্য গুরুত্বপূর্ণ তা হ'ল আপনি আউটপুট তৈরির কোনও ইনপুট খুঁজে পাচ্ছেন না, এটি নয় যে আপনি আসল ইনপুটটি খুঁজে পাবেন না। এই নোটটিতে, MD5 এটি যতটা নিরাপদ হতে পারে ততটা নিরাপদ নয় ( en.wikedia.org/wiki/MD5# কালিশন_ভ্যালেনাবিলিটিস )।
মাইক পেলি

53

এমডি 5 এর মতো হ্যাশ ফাংশনগুলি যদি বিপরীতমুখী হয় তবে ডেটা সংক্ষেপণের অ্যালগরিদমের ইতিহাসে এটি ওয়াটারশেড ইভেন্ট হত! এটি সহজেই দেখা যায় যে MD5 যদি বিপরীতমুখী হয় তবে স্বেচ্ছাসেবী আকারের তথ্য স্বেচ্ছাসেবী খণ্ডগুলি কোনও 128 বিট দ্বারা কোনও তথ্য বিনষ্ট না করে প্রতিনিধিত্ব করতে পারে। সুতরাং আপনি মূল বার্তাটির আকার নির্বিশেষে 128 বিট সংখ্যা থেকে মূল বার্তাটি পুনর্গঠন করতে সক্ষম হয়েছিলেন।


9
আপনি কেবল এমডি 5 পেতে পারলে লিনাক্স ডিস্ট্রোগুলি ডাউনলোড করা কত তাড়াতাড়ি মনে করুন :)
কলিন পিকার্ড

16
@ কলিন পিকার্ড: আমরা লিনাক্সকে আর ডিস্রস করে ডাউনলোড করব না , আমরা সেগুলি লিখে রাখব । :)
tzot

30

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

এই ফাংশনটি বিবেচনা করুন (পিএইচপি সংকেত হিসাবে, প্রশ্ন হিসাবে):

function simple_hash($input) {
     return bin2hex(substr(str_pad($input, 16), 0, 16));
}

এটি কিছু স্পেস যুক্ত করে, যদি স্ট্রিং খুব ছোট হয় এবং তারপরে স্ট্রিংয়ের প্রথম 16 বাইট নেয়, তবে এটিকে হেক্সাডেসিমাল হিসাবে এনকোড করে। এটির এমডি 5 হ্যাশের সমান আউটপুট আকার রয়েছে (32 হেক্সাডেসিমাল অক্ষর বা 16 বাইট যদি আমরা বিন 2hex অংশ বাদ দিই)।

print simple_hash("stackoverflow.com");

এটি আউটপুট দেবে:

737461636b6f766572666c6f772e636f6d

এই ফাংশনটিতে এমডি 5 এর জন্য কোডির উত্তর দ্বারা হাইলাইটের মতো একই অ-ইনজেকটিভিটি সম্পত্তি রয়েছে: আমরা যে কোনও আকারের স্ট্রিংগুলিতে (যতক্ষণ না তারা আমাদের কম্পিউটারে ফিট করে) পাস করতে পারি, এবং এটি কেবল 32 হেক্স-ডিজিটের আউটপুট তৈরি করবে। অবশ্যই এটি ইনজেকশন হতে পারে না।

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

ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশনটির জন্য গুরুত্বপূর্ণ অনুমানগুলি হ'ল:

  • প্রদত্ত হ্যাশ উত্পাদনকারী কোনও স্ট্রিং খুঁজে পাওয়া শক্ত (প্রিমাইজ প্রতিরোধ)
  • প্রদত্ত স্ট্রিংয়ের মতো একই হ্যাশ উত্পাদনকারী কোনও পৃথক স্ট্রিং খুঁজে পাওয়া শক্ত (দ্বিতীয় প্রিমাইজ প্রতিরোধ)
  • একই হ্যাশ (সংঘর্ষ প্রতিরোধ) এর সাথে কোনও জোড় স্ট্রিং পাওয়া শক্ত

অবশ্যই আমার simple_hashফাংশন এই শর্তগুলির কোনওটিই পূরণ করে না। (প্রকৃতপক্ষে, আমরা যদি ইনপুট স্পেসটিকে "16-বাইট স্ট্রিং" এ সীমাবদ্ধ রাখি তবে আমার ফাংশনটি ইনজেকশন হয়ে যায়, এবং এটি দ্বিতীয়-প্রিমিয়াম প্রতিরোধী এবং সংঘর্ষ প্রতিরোধীও প্রমাণযোগ্য))

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

আসল প্রশ্নের উত্তর দিতে:

এই ফাংশনগুলি সম্পর্কে কী এমন ফলাফল যা ফলস্বরূপ স্ট্রিংগুলি পুনরায় সন্ধান করা অসম্ভব করে তোলে?

এমডি 5 (এবং অন্যান্য হ্যাশ ফাংশন Merkle-Damgard নির্মাণের উপর কার্যকরভাবে কার্যকরভাবে) কী হিসাবে বার্তাটি একটি এনক্রিপশন অ্যালগরিদম প্রয়োগ করে এবং "প্লেইন পাঠ্য" হিসাবে কিছু স্থির মান হিসাবে ব্যবহার করে, ফলে সিফেরেক্সটকে হ্যাশ হিসাবে ব্যবহার করে। (তার আগে, ইনপুটটি প্যাডযুক্ত এবং ব্লকগুলিতে বিভক্ত হয়, এই প্রতিটি ব্লক পূর্ববর্তী ব্লকের আউটপুট এনক্রিপ্ট করতে ব্যবহৃত হয়, বিপরীত গণনা রোধ করতে এর ইনপুট দিয়ে এক্সওরড হয়))

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

MD5- এর মতো হ্যাশ ফাংশন এবং প্রিমেজ আক্রমণ (একক-ব্লক হ্যাশ স্ট্রিং সহ, জিনিসগুলি সহজ করার জন্য) আপনার কাছে কেবল আপনার এনক্রিপশন ফাংশনের ইনপুট এবং আউটপুট রয়েছে, তবে কীটি নয় (এটি আপনি খুঁজছেন)।


4
হ্যাঁ, আমি জানি যে এটি বেশ দেরি করা উত্তর, তবে স্বীকৃত উত্তরটি এভাবে দাঁড়ানো উচিত নয়।
পাওলো ইবারম্যান

আমি মনে করি আপনার সমালোচনাগুলির কিছু যোগ্যতা রয়েছে তবে আপনি প্রকৃত প্রশ্নের উত্তর দিতে ব্যর্থ হয়েছিলেন "এই ফাংশনগুলি সম্পর্কে এটি কী যা ফলস্বরূপ স্ট্রিংগুলি প্রত্যাহার করতে অসম্ভব করে তোলে?" আপনার উত্তরে একটি ক্রিপ্টোগ্রাফিক হ্যাশ থাকা উচিত এমন গুণাবলীর উপর দৃষ্টি নিবদ্ধ করে তবে এমডি 5 কীভাবে সেগুলি প্রয়োগ করা হয় তার শূন্য ব্যাখ্যা রয়েছে। এটি এমডি 5 সমষ্টি গণনা করার জন্য আপনি সঠিক অ্যালগরিদমটি এখানে বর্ণনা করতে পারেন যে এটি কীভাবে বিপরীতমুখী নয় তবে অন্যান্য উত্তরগুলি নিতি-গ্রিটিজে না গিয়ে আরও সহজ ব্যাখ্যা দেয়।
অটোডিড্যাক্ট

(ধারাবাহিক ...) ২. এই ব্যাখ্যাগুলি একটি মৌলিক সমস্যা দেখাতে "ম্যাথ" ব্যবহার করে যার কারণে এই জাতীয় ক্রিয়াকলাপগুলি তথ্য আলগা করে এবং অপরিবর্তনীয় হয়ে যায়।
অটোডিড্যাক্ট

4
@ সন্দীপদত্ত আমি এই সম্পর্কে কিছু অনুচ্ছেদ যুক্ত করেছি।
পাওলো ইবারম্যান

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

18

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


12

MD5 একটি অনন্য হ্যাশ মান তৈরি করে না; MD5 এর লক্ষ্যটি হ'ল উত্সের একটি ছোট্ট পরিবর্তনের উপর ভিত্তি করে উল্লেখযোগ্যভাবে পরিবর্তিত একটি মান উত্পাদন করা।

যেমন,

"hello" -> "1ab53"
"Hello" -> "993LB"
"ZR#!RELSIEKF" -> "1ab53"

(অবশ্যই এটি বাস্তব এমডি 5 এনক্রিপশন নয়)

বেশিরভাগ হ্যাশ (সমস্ত না থাকলে )ও অ-অনন্য; পরিবর্তে, তারা যথেষ্ট অনন্য , সুতরাং একটি সংঘর্ষ অত্যন্ত অসম্ভব, তবে এখনও সম্ভব।


8

হ্যাশ অ্যালগরিদম ভাবার একটি ভাল উপায় হ'ল ফটোশপের একটি চিত্রের আকার পরিবর্তন করার কথা ভাবুন ... বলুন আপনার কাছে এমন একটি চিত্র রয়েছে যা 5000x5000 পিক্সেল এবং তারপরে আপনি এটিটিকে মাত্র 32x32 এ আকার দিন। আপনার কাছে যা আছে তা এখনও মূল চিত্রের উপস্থাপনা তবে এটি অনেক ছোট এবং চিত্র আকারের কিছু অংশকে এটি ছোট আকারে ফিট করার জন্য কার্যকরভাবে "ফেলে দেওয়া" করেছে। সুতরাং আপনি যদি সেই 32x32 চিত্রটি 5000x5000 অবধি পুনরায় আকার দিতে চান তবে আপনার কাছে পাওয়া সমস্ত বিষয় ঝাপসা mess তবে কোনও 32x32 চিত্রটি এত বড় না বলে তাত্ত্বিকভাবে ধারণা করা যায় যে অন্য চিত্রটি একই পিক্সেলগুলি তৈরি করতে আকার হ্রাস করতে পারে!

এটি কেবল একটি সাদৃশ্য তবে এটি হ্যাশ কী করছে তা বুঝতে সহায়তা করে।


4
চিত্র-আকার পরিবর্তন একটি ক্ষতিকারক প্রক্রিয়া হলেও মূল 5000 বা 5000 মাপের আকারে একটি চিত্র তৈরি করা এখনও খুব সহজ যা (আবার সঙ্কুচিত ফাংশন প্রয়োগ করার সময়) একই 32 × 32 চিত্রটিতে হ্রাস পাবে। একটি ভাল হ্যাশ ফাংশনের জন্য এই জাতীয় প্রিমেজ সন্ধান করা শক্ত হওয়া উচিত ।
পাওলো ইবারম্যান

4

হ্যাশের সংঘর্ষ সম্ভবত আপনি যা ভাবেন তার চেয়ে অনেক বেশি। এটি কেন তা আরও বেশি করে বোঝার জন্য জন্মদিনের প্যারাডক্সটি একবার দেখুন ।


4
সম্ভাব্য জন্মদিনের মানগুলি হ'ল 2 ^ 8 এবং 2 ^ 9 এর মধ্যে। একটি 128-বিট হ্যাশটিতে 2 ^ 128 এর সম্ভাব্য মান রয়েছে - 2 ^ 120 গুণ অনেক বেশি। হ্যাঁ, সংঘর্ষগুলি আপনার অন্তর্ভুক্ত হওয়ার চেয়ে বেশি সম্ভাবনা রয়েছে তবে এগুলি এখনও জ্যোতির্বিজ্ঞানের দ্বারা অসম্ভব।
টিম কেটিং

হ্যাশের সংঘর্ষে ভাল সুযোগ পেতে আপনার প্রায় 2 ^ 64 টি বিভিন্ন মান প্রয়োজন। এখনও বেশ কিছু।
পাওলো ইবারম্যান

4

সম্ভাব্য ইনপুট ফাইলগুলির সংখ্যা 128-বিট আউটপুটগুলির সংখ্যার চেয়ে বড় হওয়ায়, প্রতিটি সম্ভাব্যকে স্বতন্ত্রভাবে একটি MD5 হ্যাশ নির্ধারণ করা অসম্ভব।

ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশন ডেটা অখণ্ডতা বা ডিজিটাল স্বাক্ষর (দক্ষতার জন্য স্বাক্ষরিত হ্যাশ) পরীক্ষার জন্য ব্যবহৃত হয়। মূল ডকুমেন্ট পরিবর্তন করার অর্থ আসল হ্যাশ পরিবর্তিত নথির সাথে মেলে না।

এই মানদণ্ডগুলি কখনও কখনও ব্যবহৃত হয়:

  1. প্রিমেজ প্রতিরোধের: প্রদত্ত হ্যাশ ফাংশন এবং প্রদত্ত হ্যাশের জন্য, এই ফাংশনের জন্য প্রদত্ত হ্যাশ রয়েছে এমন একটি ইনপুট খুঁজে পাওয়া শক্ত হওয়া উচিত।
  2. দ্বিতীয় প্রাক প্রাক প্রতিরোধের: প্রদত্ত হ্যাশ ফাংশন এবং ইনপুটগুলির জন্য, একই হ্যাশ সহ একটি দ্বিতীয়, পৃথক, ইনপুট পাওয়া শক্ত হওয়া উচিত।
  3. সংঘর্ষ প্রতিরোধের: প্রদত্ত ক্রিয়াকলাপের জন্য, একই হ্যাশ সহ দুটি পৃথক ইনপুট খুঁজে পাওয়া শক্ত হওয়া উচিত।

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

সংখ্যা 3 বোঝায় সংখ্যা 2।

বিশেষত MD5 হিসাবে, এটি ত্রুটিযুক্ত হিসাবে দেখানো হয়েছে: এমডি 5 এবং অন্যান্য হ্যাশ ফাংশন কীভাবে ভাঙ্গবেন


2

তবে এখানেই রামধনু টেবিলগুলি খেলতে আসে। মূলত এটি কেবলমাত্র একটি বৃহত পরিমাণের মানগুলি পৃথকভাবে হ্যাশ করা হয় এবং তারপরে ফলাফলটি ডিস্কে সংরক্ষণ করা হয়। তারপরে বিপরীতমুখী বিটটি একটি খুব বড় টেবিলটিতে একটি অনুসন্ধান করতে "ঠিক" "

স্পষ্টতই এটি সমস্ত সম্ভাব্য ইনপুট মানগুলির একটি উপসেটের পক্ষে সম্ভবপর তবে আপনি যদি ইনপুট মানের সীমাটি জানেন তবে এটির অঙ্কন করা সম্ভব।


আঃ হ্যাঁ আমি হ্যাশ টেবিলগুলিতে জেফের পোস্টটি পড়তে উপভোগ করেছি ( কোডিংহরর.com / blog / archives / 000949.html ) এবং এই থ্রেডটি ধারণাটি বুঝতে সহায়তা করেছে।
বারফুন

2

চীনা বিজ্ঞানী দুটি পৃথক স্ট্রিংয়ের মধ্যে দ্বন্দ্ব তৈরি করতে "নির্বাচিত-উপসর্গ সংঘর্ষ" নামে একটি উপায় খুঁজে পেয়েছেন।

এখানে একটি উদাহরণ রয়েছে: http://www.win.tue.nl/hashclash/fastcoll_v1.0.0.exe.zip
উত্স কোড: http://www.win.tue.nl/hashclash/fastcoll_v1.0.0। 5_সোর্স.জিপ


2

সর্বাধিক ভোট দেওয়া উত্তরগুলির অর্থ কী তা বোঝার সর্বোত্তম উপায় হ'ল এমডি 5 অ্যালগরিদমকে ফিরিয়ে আনার চেষ্টা করা। আমার মনে আছে আমি কিছু বছর আগে MD5crypt অ্যালগরিদমটি ফিরিয়ে দেওয়ার চেষ্টা করেছি , মূল বার্তাটি পুনরুদ্ধার করার জন্য নয় কারণ এটি স্পষ্টত অসম্ভব, তবে কেবল একটি বার্তা উত্পন্ন করার জন্য যা মূল হ্যাশের মতো একই হ্যাশ তৈরি করে। এটি, অন্তত তাত্ত্বিকভাবে, আমাকে লিনাক্স ডিভাইসে লগইন করার একটি উপায় প্রদান করবে যা ব্যবহারকারীকে সংরক্ষণ করেছিল: / etc / passwd ফাইলটিতে পাসওয়ার্ডটি আসলটি ব্যবহার না করে উত্পন্ন বার্তা (পাসওয়ার্ড) ব্যবহার করে। যেহেতু উভয় বার্তায় একই ফলস্বরূপ হ্যাশ থাকবে তাই সিস্টেমটি আমার পাসওয়ার্ডটিকে (মূল হ্যাশ থেকে উত্পন্ন) বৈধ হিসাবে স্বীকৃতি দেবে। এটি মোটেই কাজ করেনি। বেশ কয়েক সপ্তাহ পরে যদি আমি সঠিকভাবে মনে করি তবে লবণের ব্যবহারপ্রাথমিক বার্তায় আমাকে হত্যা করেছে। আমাকে কেবল একটি বৈধ প্রাথমিক বার্তা তৈরি করতে হয়নি, তবে একটি সল্টযুক্ত বৈধ প্রাথমিক বার্তা, যা আমি কখনই করতে সক্ষম হইনি। তবে এই পরীক্ষা থেকে আমি যে জ্ঞান পেয়েছি তা দুর্দান্ত ছিল।


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

1

যেহেতু বেশিরভাগই ইতিমধ্যে বলেছেন যে MD5 পরিবর্তনশীল দৈর্ঘ্যের ডেটা স্ট্রিমগুলিকে ডেটা নির্দিষ্ট দৈর্ঘ্যের অংশে হ্যাশ করার জন্য তৈরি করা হয়েছিল, তাই একক হ্যাশ বহু ইনপুট ডেটা স্ট্রিম দ্বারা ভাগ করা হয়।

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


0

সংজ্ঞা দ্বারা হ্যাশ (ক্রিপ্টোগ্রাফিক হ্যাশ) ফাংশন: অবিচ্ছিন্ন হওয়া উচিত নয়; সংঘর্ষ হওয়া উচিত নয় (কমপক্ষে সম্ভব)।

আপনার প্রশ্নটি নিবন্ধ করুন: এটি একটি উপায় হ্যাশ। ইনপুট (দৈর্ঘ্যের নির্বিশেষে) একটি নির্দিষ্ট আকারের আউটপুট উত্পন্ন করবে ( তথ্য সঙ্কুচিত (হারিয়েছে) এবং বিপরীত রূপান্তরগুলি থেকে উত্পন্ন করা কার্যত সম্ভব নয়।

MD5- এ অতিরিক্ত তথ্য: এটি সংঘর্ষের পক্ষে ঝুঁকিপূর্ণ। সম্প্রতি এই নিবন্ধটি দিয়ে গেছে, http://www.win.tue.nl/hashclash/Nostradamus/

ক্রিপ্টো হ্যাশ বাস্তবায়নের জন্য উত্স কোড খোলে (MD5 এবং SHA) মজিলা কোডে পাওয়া যাবে। (ফ্রিবিএল লাইব্রেরি)।


0

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

উদাহরণস্বরূপ , হ্যাশ গণনা করতে আমি কোন পাঠ্য ব্যবহার করেছি তা জানতে http://gdataonline.com/seekhash.php এ নিম্নলিখিত হ্যাশ কোডটি ব্যবহার করে দেখুন

aea23489ce3aa9b6406ebb28e0cda430

আহ, হ্যাঁ, একটি সাধারণ 7-অক্ষরের শব্দের হ্যাশ। সাদা শব্দ এবং বিরামচিহ্নযুক্ত 11-শব্দের এই গানের লিরিকটি বের করার জন্য এখন এটি ব্যবহার করুন: 9f2c08d4e6158bd4854b15be50c8daa8। কয়েক মিলেনিয়ায় দেখা হবে।
টিম কেটিং

6fba2bbab8a8366309bf67c7df12c622? ইঙ্গিত: এটি ম্যাক ওএস এক্সের একটি নির্দিষ্ট সংস্করণের OEM সংস্করণ হতে পারে!
স্ক্র্যাণ্ড 21

@ টিম কেটিং, @ শের্যান্ড: হ্যাশ অ্যালগরিদমগুলির দুর্বলতাটি কেবল দেখানো, কারণ একটি স্ট্রিংয়ের হ্যাশ সর্বদা একই থাকে আমাদের আসল স্ট্রিংটি বের করার জন্য অগত্যা অ্যালগরিদমকে ক্র্যাক করার দরকার নেই।
বাবর

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

0

f (x) = 1 অপরিবর্তনীয়। হ্যাশ ফাংশনগুলি অপরিবর্তনীয় নয়।

আসলে কারও কাছে হ্যাশ ডেটার অনিয়ন্ত্রিত অনুলিপি রয়েছে কিনা তা নির্ধারণের তাদের কার্য সম্পাদনের জন্য এটি প্রয়োজন । এটি ব্রুট ফোর্স আক্রমণগুলিতে সংবেদনশীলতা নিয়ে আসে, যা আজকাল বেশ শক্তিশালী, বিশেষত MD5 এর বিপরীতে।

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

যাইহোক, এটি উপেক্ষা করে যে বীজ থেকে উত্পাদিত যুক্তিসঙ্গত প্লেইন টেক্সট passwordঅনেক বেশি, বীজ দ্বারা উত্পাদিত অন্য তুলনায় অনেক বেশি সম্ভবত Wsg5Nm^bkI4EgxUOhpAjTmTjO0F!VkWvysS6EEMsIJiTZcvsh@WI$IH$TYqiWvK!%&Ue&nk55ak%BX%9!NnG%32ftud%YkBO$U6oযে কেউ দাবি করেন যে দ্বিতীয়টি সম্ভবত সম্ভাবনাযুক্ত হ'ল।

একইভাবে, আপনি যদি দুটি সম্ভাব্য পাসওয়ার্ডের মধ্যে সিদ্ধান্ত নেওয়ার চেষ্টা করছেন passwordএবং Wsg5Nm^bkI4EgxUOকিছু গণিতবিদ আপনার বিশ্বাস করায় এটি করা ততটা কঠিন নয়।


আপনি আপনার সর্বাধিক সিফারগুলি কী কী স্ট্রিম জ্ঞান সহ কেবল ডেটা এক্সওর পাবেন ? এটি স্ট্রিম সাইফারদের ক্ষেত্রে সত্য, তবে ব্লক সাইফারগুলিও রয়েছে এবং তারা এইভাবে কাজ করে না।
পাওলো ইবারম্যান

-5

আমি সমস্ত বিভিন্ন যুক্তি পছন্দ করি। স্পষ্টতই হ্যাশ মানগুলির আসল মান হ'ল পাসওয়ার্ডের মতো স্ট্রিংয়ের জন্য মানব-অপঠনযোগ্য স্থানধারীদের সরবরাহ করা। এটির কোনও নির্দিষ্ট বর্ধিত সুরক্ষা সুবিধা নেই। ধরে নিই কোনও আক্রমণকারী হ্যাশ পাসওয়ার্ড সহ একটি টেবিলটিতে অ্যাক্সেস পেয়েছে, সে / সে পারবে:

  • নিজের পছন্দমতো একটি পাসওয়ার্ড হ্যাশ করুন এবং টেবিলে অধিকার লেখার / সম্পাদনা করতে থাকলে পাসওয়ার্ড টেবিলের ভিতরে ফলাফল রাখুন।
  • সাধারণ পাসওয়ার্ডগুলির হ্যাশ মানগুলি উত্পন্ন করে এবং পাসওয়ার্ড সারণীতে অনুরূপ হ্যাশ মানগুলির অস্তিত্ব পরীক্ষা করে।

এক্ষেত্রে দুর্বল পাসওয়ার্ডগুলি কেবল ধাবিত হয়েছে তা দ্বারা সুরক্ষিত করা যায় না।


"হ্যাশ মানগুলি" এর আসল মান হ'ল মানব-অপঠনযোগ্য স্থানধারীদের সরবরাহ করা নয়। যদি 'পাসওয়ার্ড 1' 'নব্যাল'-এ চলে যায় তবে হ্যাশটি পঠনযোগ্য এবং অর্থবহ হলেও, এটি কি এখনও একইভাবে মানটিকে গোপন করে না ? তদ্ব্যতীত, পাসওয়ার্ডগুলি একটি খারাপ উদাহরণ, কারণ সেগুলি হ্যাশ করা উচিত নয়। ধরে নিই যে আক্রমণকারীটির ডেটাবেসটিতে লিখিত অ্যাক্সেস ছিল, এটি অবশ্যই একটি সম্ভাবনা। তবে মনে হচ্ছে আপনি কেবল এই জাতীয় হ্যাশিং ফাংশনগুলির জন্য যথাযথ ব্যবহারটি বাদ দিচ্ছেন, উপরের উত্তরগুলিতে একটি উদাহরণ বর্ণিত হয়েছে - বার্তার অখণ্ডতা। আমি আজ এই থ্রেডে আসার কারণেই আসলে।
শেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.