কম্পিউটার

MD5 অ্যালগরিদম কিভাবে কাজ করে?


থিমের বার্তা ডাইজেস্ট গণনা করার জন্য নিম্নলিখিত পদক্ষেপগুলি সম্পাদিত হয় যা নিম্নরূপ -

  • ধাপ 1 - প্যাডিং বিট যোগ করুন − বার্তাটি এমনভাবে চালিয়ে যাওয়া বা প্যাড করা হয় যাতে বিটগুলিতে এর মোট দৈর্ঘ্য 448 মডুলো 512-এর সাথে সামঞ্জস্যপূর্ণ হয়। এই ক্রিয়াকলাপটি ক্রমাগতভাবে প্রয়োগ করা হয় এমনকি বিটে বার্তাটির দৈর্ঘ্য 448 মডুলো 512-এর সাথে সঙ্গতিপূর্ণ হলেও। 448 + 64 =512, তাই বার্তাটি এমনভাবে প্যাড করা হয়েছে যে এর দৈর্ঘ্য এখন 512-এর একটি পূর্ণসংখ্যা গুণক 64 বিট কম।

  • ধাপ 2 - দৈর্ঘ্য যোগ করুন − মূল বার্তা M-এর বিটগুলিতে দৈর্ঘ্যের একটি 64 বিট বিবরণ (প্যাডিং বিটগুলি ঢোকানোর আগে) ধাপ 1 এর ফলাফলে যোগ করা হয়েছে। যদি মূল বার্তাটির দৈর্ঘ্য 264 =184 467 440 73 709 551 এর চেয়ে বেশি হয় 616, তাই বার্তা M-এর দৈর্ঘ্যের শুধুমাত্র নিম্ন ক্রম 64 বিট ব্যবহার করা হয়।

    অতএব, ক্ষেত্রের মূল বার্তা M modulo 264 এর দৈর্ঘ্য অন্তর্ভুক্ত। এইবিটগুলি দুটি 32 বিট শব্দ হিসাবে যোগ করা হয়েছে এবং প্রথমে লো-অর্ডার (সর্বনিম্ন উল্লেখযোগ্য) শব্দ যোগ করা হয়েছে। ধাপ 1 এবং ধাপ 2 এর ফলাফল হল একটি বার্তা যার মধ্যে একটি দৈর্ঘ্য রয়েছে বিট যা 512 বিটের একটি পূর্ণসংখ্যা।

  • ধাপ 3 - MD বাফার শুরু করুন − একটি 128-বিট বাফার MD5 হ্যাশ অ্যালগরিদমের মধ্যবর্তী এবং শেষ ফলাফল ধরে রাখতে ব্যবহার করা যেতে পারে। বার্তা ডাইজেস্ট মূল্যায়ন করতে একটি চার-শব্দের বাফার (A, B, C, এবং D) ব্যবহার করা যেতে পারে। অতএব, প্রতিটি A, B, C, D হল একটি 32-বিট রেজিস্টার।

    এই রেজিস্টারগুলি হেক্সাডেসিমেল, লো-অর্ডার বাইটে প্রথম −

    নিম্নলিখিত মান পর্যন্ত বুট হয়

    শব্দ A:01 23 45 67

    শব্দ B:89 ab cd ef

    শব্দ C:fe dc ba 98

    শব্দ D:76 54 32 10

  • ধাপ 4 - 512 বিট (16-শব্দ) ব্লকে বার্তা প্রক্রিয়া করুন - একটি কম্প্রেশন ফাংশন প্রক্রিয়াকরণের চার রাউন্ড অন্তর্ভুক্ত করে। প্রতিটি রাউন্ড একটি ইনপুট তৈরি করে বর্তমান 512-বিট ব্লক প্রক্রিয়া করা হচ্ছে (Yq ) এবং 128-বিট বাফার মান ABCD এবং বাফারের উপাদান আপডেট করুন।

    এটি চারটি সহায়ক ফাংশন বর্ণনা করতে পারে যা প্রতিটি ইনপুট হিসাবে তিনটি 32-বিট শব্দ তৈরি করে এবং একটি 32-বিট শব্দ আউটপুট হিসাবে তৈরি করে৷

    F (X, Y, Z) =XY v না ​​(X) Z

    G (X, Y, Z) =XZ v Y নয় (Z)

    H (X, Y, Z) =X xor Y xor Z

    I (X, Y, Z) =Y xor (X v না ​​(Z))

    প্রতিটি বিট পজিশনে, F শর্তসাপেক্ষ হিসেবে কাজ করে:যদি X তাহলে Y অন্য Z। ফাংশন F কে XY এর পরিবর্তে + ব্যবহার করে উপস্থাপন করা যেতে পারে এবং X(Z) এর অনুরূপ বিট অবস্থানে কখনই 1 থাকবে না।

  • ধাপ 5 - আউটপুট − বার্তা ডাইজেস্ট A, B, C, D সহ একটি আউটপুট তৈরি করেছে। চূড়ান্ত রাউন্ড থেকে আউটপুট হল 128-বিট হ্যাশ ফলাফল বা মেসেজ ডাইজেস্ট যা মেসেজের সমস্ত টি 512-বিট ব্লককে ক্রমবর্ধমানভাবে প্রক্রিয়াকরণ করার পরে এটি অর্জন করতে পারে। .


  1. অ্যান্ড্রয়েডে সীমাবদ্ধতা লেআউট কীভাবে কাজ করে?

  2. YouTube অ্যালগরিদম কীভাবে কাজ করে?

  3. উইন্ডোজ রেজিস্ট্রি কি এবং এটি কিভাবে কাজ করে?

  4. কিভাবে ইনস্টাগ্রামের অ্যালগরিদম কাজ করে?