এমডি 5 ফিক্সড পয়েন্ট রয়েছে যেখানে এমডি 5 (এক্স) == এক্স?


114

এমডি 5 রূপান্তরে কোনও স্থির বিন্দু আছে, মানে কি এরকম এক্স রয়েছে md5(x) == x?


8
কোন এমডি 5 রূপান্তর? গাণিতিক একটি (যে কোনও বিটস্ট্রিং থেকে 128 বিট পর্যন্ত) বা কোনও বাইটস্ট্রিং থেকে 32-চর হেক্সস্ট্রিং (ব্যবহারিক)? উভয়ের জবাব একই যে এটা স্পষ্ট নয় ...
রাফা ডাউগার্ড

4
ওয়েল, তারা হয় একই উত্তর, ঠিক? আমরা জানি কোন অ 128-বিট দীর্ঘ এক্স, যার জন্য বিদ্যমান md5(x) == x, কারণ md5(x) হয় 128 বিট দীর্ঘ। সুতরাং, নির্বিচারে আকারের ইনপুটটির জন্য এমডি 5-তে একটি নির্দিষ্ট পয়েন্ট থাকে এবং যদি কেবল 128-বিট ডোমেনে এমডি 5-তে একটি নির্দিষ্ট পয়েন্ট থাকে।
পল

1
আমি মনে করি না যে এগুলি একই উত্তর হিসাবে ব্যবহারিক 32 টি অক্ষরের জন্য hexstring এটি একটি স্বেচ্ছাসেবী পছন্দ যে আপনি উচ্চতর ক্ষেত্রে [এএফ] বা নিম্ন ক্ষেত্রে [এফ] হেক্স সংখ্যাগুলি উপস্থাপন করুন কিনা। উভয় উপস্থাপনা একই 128-বিট সংখ্যার সাথে সঙ্গতিপূর্ণ তবে MD5 এ ইনপুট হিসাবে সরবরাহ করা হলে তারা বিভিন্ন হ্যাশ দেবে। তাই সম্ভবত একটি নির্দিষ্ট বিন্দু আছে যে পারেন উপস্থাপনা আসলে হয়1-(1/e)*(1/e) ≈ 86.47%
Dušan

উত্তর:


138

যেহেতু MD5 যোগফল 128 বিট দীর্ঘ, যে কোনও নির্দিষ্ট পয়েন্টটি অবশ্যই 128 বিট দীর্ঘ হতে হবে। ধরে নেওয়া যাক যে কোনো স্ট্রিং এর MD5 সমষ্টি অবিশেষে তারপর সম্ভাব্যতা সব সম্ভব অঙ্কের উপর বন্টন করা হয়, যে কোনো প্রদত্ত 128-বিট স্ট্রিং একটি নির্দিষ্ট বিন্দু হয় 1 / 2 128

- এভাবে সম্ভাব্যতা কোনো 128-বিট স্ট্রিং একটি নির্দিষ্ট বিন্দু (1 1 / 2 128 ) 2 128 , তাই সম্ভাব্যতা একটি নির্দিষ্ট বিন্দু আছে 1 - (1 - 1 / 2 128 ) 2 128

সীমা হিসাবে n এর অনন্ত যায় যেহেতু (1 - 1 / এন ) এন হয় 1 / , এবং 2 128 - সবচেয়ে অবশ্যই একটি খুব বড় সংখ্যা, এই সম্ভাবনা প্রায় হুবহু 1 1 / ≈ 63,21%।

অবশ্যই, আসলে জড়িত কোনও এলোমেলোতা নেই - হয় একটি নির্দিষ্ট পয়েন্ট আছে বা আছে না। তবে, আমরা 63৩.২১% আত্মবিশ্বাসী হতে পারি যে একটি নির্দিষ্ট পয়েন্ট রয়েছে। (এছাড়াও, লক্ষ্য করুন যে এই সংখ্যাটি কী স্পেসের আকারের উপর নির্ভর করে না - যদি এমডি 5 এর পরিমাণগুলি 32 বিট বা 1024 বিট হয় তবে উত্তরটি প্রায় 4 বা 5 বিটের চেয়ে বেশি দীর্ঘ হবে) its


11
আপনি যে কোনও স্ট্রিংয়ের MD5 যোগফলটি সমস্ত সম্ভাব্য অঙ্কের উপরে সমানভাবে বিতরণ করেছেন তা অনুমান করতে পারবেন?
অরি পেসাচ

13
হ্যাঁ. বড় সংখ্যা এবং মডুলাস মোটামুটি এলোমেলো বিতরণ। যদি তা না করে তবে আপনার নিয়মিত সংঘর্ষ হবে। এমডি 5 এর প্রকৃতি তার আউটপুট এলোমেলোভাবে বিতরণ করতে বাধ্য করে।
স্টিফান কেন্ডাল

2
আমি আপনার উত্তরটিকে এই উত্তরের ভিত্তি হিসাবে ব্যবহার করেছি: security.stackexchange.com/questions/3851/…
সিজারবি

1
এখানে, একটি সোনার ব্যাজ আছে।
ডেনিস

বাদে এমডি 5 হ'ল ডিটারমিনিস্টিক, এলোমেলো নয়।
পাইরুলেজ

13

আমার নিষ্ঠুর বলের প্রয়াস একটি 12 টি উপসর্গ এবং 12 প্রত্যয় ম্যাচ খুঁজে পেয়েছে।

উপসর্গ 12: 54db1011d76dc70a0a9df3ff3e0b390f -> 54db1011d76d137956603122ad86d762

প্রত্যয় 12: df12c1434cec7850a7900ce027af4b78 -> বি 2f6053087022898fe920ce027af4b78

ব্লগ পোস্ট: https://plus.google.com/103541237243849171137/posts/SRxXrTMdrFN


লিংক কাজ করছে না। গুগল প্লাস এপ্রিলে বন্ধ হয়ে গেছে
টাইপওয়ার

দুঃখিত ... আমি ব্লগ পোস্টটি সংরক্ষণ করি নি এবং গুগল + ব্যাকআপ আমার পক্ষে কাজ করছে না। তবে এখানে আমার গিথুব
টমাস এগেনেস

আপনি কি এ সম্পর্কে নিশ্চিত: উপসর্গ 12: 54db1011d76dc70a0a9df3ff3e0b390f -> 54db1011d76d137956603122ad86d762 আমি md5sumলিনাক্স কমান্ড ব্যবহার করেছি, আমি আলাদা ফলাফল পেয়েছি
থান্ডারফোনিক্স

আপনি এমডি 5সামটি সঠিকভাবে ব্যবহার করছেন তা নিশ্চিত নন। আপনি অনলাইনে এটিও
থমাস এগেনেস ২r

11

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

বিস্তারিতভাবে বলতে গেলে এমডি 5 হ্যাশে 16 বাইট রয়েছে। তার মানে এখানে 2 ^ (16 * 8) = 3.4 * 10 ^ 38 সংমিশ্রণ রয়েছে। যদি 16 বাইট মানের সাথে একটি হ্যাশ গণনা করতে 1 মিলিসেকেন্ড লেগে যায় তবে এই সমস্ত হ্যাশ গণনা করতে 1079028307080606018187070292944.99 বছর সময় লাগবে।


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

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

2
@ নাফ: "কেবলমাত্র প্রতিটি সম্ভাব্য ইনপুট চেষ্টা করতে হবে" - এবং প্রতিটি হ্যাশ চেষ্টা করার চেয়ে এটি সহজ, কীভাবে? বেশ বিপরীত, যেহেতু বেশ কয়েকটি সম্ভাব্য ইনপুট একই আউটপুটটিতে হ্যাশ করতে পারে।
পিসকোভর

1
@ পিসকভোর: নাফ বলতে যা বোঝায় তা আপনি ভুল বুঝতে পেরেছিলেন (এটি আমার এক মিনিটও সময় নিয়েছিল)। এটির একটি পরিষ্কার উপায় এটি হ'ল "যদি কোনও নির্দিষ্ট পয়েন্ট না থাকে তবেই আপনি প্রতিটি সম্ভাব্য ইনপুট চেষ্টা করতে পারবেন (স্পেস 2 ^ 128)"। অন্য কথায়, আপনাকে কেবলমাত্র প্রতিটি সম্ভাবনা চেষ্টা করতে হবে যদি এর আগে কেউ কাজ না করে। সুতরাং 1.08e28 বছর, বা একটি ভাগ্যবান অনুমান!
পি ড্যাডি

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

0

যদিও আমার কাছে হ্যাঁ / কোনও উত্তর নেই, আমার অনুমান "হ্যাঁ" এবং তদুপরি এমন 2 টি 32 টি নির্দিষ্ট পয়েন্ট রয়েছে (বিট-স্ট্রিং ব্যাখ্যার জন্য, চরিত্রের স্ট্রিং ব্যাখ্যার জন্য নয়)। আমি সক্রিয়ভাবে এটি নিয়ে কাজ করছি কারণ এটি দেখতে একটি দুর্দান্ত, সংক্ষিপ্ত ধাঁধা বলে মনে হচ্ছে যাতে প্রচুর সৃজনশীলতার প্রয়োজন হবে (যদি আপনি এখনই নিষ্ঠুর বাহিনী অনুসন্ধানের জন্য স্থির হন না)।

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


এটি সত্যিই আকর্ষণীয়, আপনি এই রাস্তায় নামার সাথে সাথে দয়া করে আপনার অগ্রগতি ভাগ করুন?
ব্যবহারকারী230910

-1

সম্ভবত, তবে এটি অনুসন্ধানে আমাদের তুলনায় আরও বেশি সময় লাগবে বা MD5 এর সাথে আপস করার বিষয়টি জড়িত।


6
এটি ভাঙ্গা হয়নি। তারা যা করতে পেরেছিল তা হ'ল, যুক্তিযুক্ত পরিমাণে 2 টি স্ট্রিং উত্পাদন করে যা একই হ্যাশকে সমান করে। একটি স্ট্রিং উত্পাদন করা এখনও খুব কঠিন যা একটি নির্দিষ্ট হ্যাশের সমান হবে।
কিব্বি

9
একজন এমডি 5 কে কীভাবে আপস করবে তা নিশ্চিত নন, আমি আপনাকে এমডি 5 ("দ্রুত বাদামী শেয়ালটি অলস কুকুরটির উপর দিয়ে লাফিয়ে লাফিয়ে") বললে যে কি হবে তা নয়: = 9e107d9d372bb6826bd81d3542a419d6
কিপ

5
একটি নির্দিষ্ট পয়েন্ট সম্ভবত গণিতের উপর কিছুটা লিভারেজ দেয় যা এমডি 5 এর আরও বিস্তৃত লঙ্ঘন করতে পারে। আমি নিশ্চিত নই যে গ্লোমেক সত্যই 'সম্ভবত' ন্যায্যতা দিতে পারে; আমি কোনও সম্ভাব্যতা ছাড়াই 'সম্ভবত' গ্রহণ করব।
জোনাথন লেফলার

-9

দুটি ব্যাখ্যা আছে, এবং যদি কোনওটিকে বেছে নেওয়ার অনুমতি দেওয়া হয় তবে একটি নির্দিষ্ট পয়েন্ট সন্ধানের সম্ভাবনা বেড়ে যায় ৮১.৫%।

  • ব্যাখ্যা 1: বাইনারি একটি MD5 আউটপুট এর MD5 এর ইনপুট মেলে?
  • ব্যাখ্যা 2: কোনও এমডি 5 আউটপুট এর এমডি 5 হেক্সে কি তার ইনপুটটির সাথে মেলে?

13
হ্যাক্সকে বোঝায় এমডি 5 অ্যালগরিদম সম্পর্কে কিছুই নেই - এটি বাইটগুলি পরিচালনা করে এবং বাইট উত্পাদন করে - তাই আমার মনে হয় পরবর্তী ব্যাখ্যাটি অবৈধ।
নিক জনসন

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

4
হেক্স আসলে কী তা আপনি ভুল ব্যাখ্যা করছেন। আপনি হেক্সে বাইনারি উপস্থাপন করতে পারেন, যেমন আপনি এটি দশমিক বা অষ্টাল বা বেস 3 তে উপস্থাপন করতে পারেন এটি একটি সংখ্যা, এবং বিভিন্ন উপস্থাপনা রয়েছে। সুতরাং, ব্যাখ্যা 1 এবং 2 একই জিনিস। আপনি যা ভাবছেন তা হ'ল চরিত্রের স্ট্রিং প্রতিনিধিত্ব, যা একেবারে একই হেক্স নয় তবে সম্পূর্ণ ভিন্ন বাইনারি মান। আসলে আপনার বিভিন্ন চরিত্রের সেটগুলিতে অনেকগুলি বিভিন্ন হেক্স স্ট্রিং থাকতে পারে। 128-বিট হ্যাশ মানটি "হেক্স" স্ট্রিং হিসাবে উপস্থাপন করা যেতে পারে তবে এটি স্ট্রিংয়ের সমান নয়। স্ট্রিং একই বাইনারি ডেটা নয়।
সংজ্ঞায়িত করে

ডাস্টিন, ব্যাখ্যা 2 এর অর্থ হ'ল ডিসপ্লে স্ট্রিংয়ের MD5।
জোশুয়া

4
এই ধারণাটি নিয়ে একটি বিশাল সমস্যা রয়েছে যদিও এটি সরাসরি আপনার চরিত্রের এনকোডিংয়ের উপর নির্ভর করে। বিভিন্ন এনকোডিং স্কিমা সম্পূর্ণ ভিন্ন ফলাফল সেটের ফলাফল হতে চলেছে। এমনকি MD5 কীভাবে acodingfool.typepad.com/blog/2009/05/the-kembler-identity.html
সংজ্ঞায়িত করেছে

-23

কঠোরভাবে বলতে গেলে, যেহেতু এমডি 5 এর ইনপুটটি 512 বিট দীর্ঘ এবং আউটপুট 128 বিট হয়, তাই আমি সংজ্ঞা দিয়ে এটি অসম্ভব বলব।


4
না, 1 বাইট স্ট্রিংয়ের MD5 বিদ্যমান।
জোশুয়া 15

7
ইনপুট যে কোনও আকার হতে পারে। যদি ইনপুটটি 512 বাইটের চেয়ে কম হয় তবে এটি প্যাডযুক্ত তবে ছোট ইনপুটগুলি এখনও গ্রহণযোগ্য। উইকিপিডিয়া থেকে: "এমডি 5 একটি পরিবর্তনশীল দৈর্ঘ্যের বার্তাটি 128 বিটের স্থির দৈর্ঘ্যের আউটপুটটিতে প্রসেস করে The ইনপুট বার্তাটি 512-বিট ব্লকের (ষোলটি 32-বিট লিটল এডিয়ান ইন্টিজার) বিভক্ত হয়; বার্তাটি প্যাড করা হয় যাতে এর দৈর্ঘ্য 512 দ্বারা বিভাজ্য ""
নাফ

সুতরাং আপনি ধরে নিচ্ছেন যে, বলুন, 0000000001 = 1? আমি তখন তর্ক করব যে প্রশ্নটি ভালভাবে উল্লেখ করা হয়নি, সর্বোত্তম।
অরি পেসাচ

11
MD5 এ ইনপুটটি 128 বিট হতে পারে। এমডি 5 যদি সেই ইনপুটটি প্যাড করতে চায় তবে ভাল, সত্যি বলতে, এটি এমডি 5 এর ব্যবসা। ইনপুটটি এখনও ভালভাবে সংজ্ঞায়িত। তেমনি, আউটপুটটি একটি সু-সংজ্ঞায়িত 128 বিট। যদি (ভাল-সংজ্ঞায়িত) ইনপুট এবং (ভাল-সংজ্ঞায়িত) আউটপুট উভয় একই হয় তবে MD5 (x) = x।
নাফ

2
@ জোশুয়া একটি ফাঁকা স্ট্রিংয়ের এমডি 5 (অর্থাত্ 0 বাইট) এমনকি উপস্থিত রয়েছে
কিপ করুন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.