কম্পিউটার

কিভাবে নিরাপদ হ্যাশ অ্যালগরিদম কাজ করে?


সিকিউর হ্যাশ অ্যালগরিদম (SHA) ন্যাশনাল সিকিউরিটি এজেন্সি (NSA) দ্বারা উদ্ভাবিত হয়েছিল এবং 1993 সালে ন্যাশনাল ইনস্টিটিউট অফ স্ট্যান্ডার্ড অ্যান্ড টেকনোলজি (NIST)-এর মাধ্যমে ইউ.এস. ফেডারেল ইনফরমেশন প্রসেসিং স্ট্যান্ডার্ড (FIPS PUB 180) হিসাবে প্রকাশিত হয়েছিল৷

SHA MD4 অ্যালগরিদমের মতো অনুরূপ বিল্ডিং ব্লকগুলির উপর নির্ভর করে এবং ভাগ করে। SHA-এর ডিজাইন একটি নতুন প্রক্রিয়া চালু করেছে যা 16-শব্দের বার্তা ব্লক ইনপুটকে কম্প্রেশন ফাংশনে 80-শব্দ ব্লকে অন্যান্য জিনিসের মধ্যে বিকাশ করে।

SHA-এর প্রক্রিয়াকরণ নিম্নরূপ কাজ করে -

ধাপ 1প্যাডিং বিট যোগ করুন − মূল বার্তাটি প্যাড করা হয়েছে এবং এর সময়কাল 448 মডিউল 512-এর সাথে সামঞ্জস্যপূর্ণ। প্যাডিং ক্রমাগত সন্নিবেশ করা হয় যদিও বার্তাটির ইতিমধ্যেই কাঙ্ক্ষিত দৈর্ঘ্য রয়েছে। প্যাডিং-এ একটি একক 1 এর পরে 0 বিটের অপরিহার্য সংখ্যা রয়েছে৷

ধাপ 2দৈর্ঘ্য যোগ করুন − একটি 64-বিট ব্লক একটি স্বাক্ষরবিহীন 64-বিট পূর্ণসংখ্যা হিসাবে বিবেচিত হয় (প্রথমে সবচেয়ে প্রয়োজনীয় বাইট), এবং মূল বার্তার দৈর্ঘ্য নির্ধারণ করে (পদক্ষেপ 1 এ প্যাডিংয়ের আগে), বার্তাটিতে যোগ করা হয়। সম্পূর্ণ বার্তার দৈর্ঘ্য 512 এর গুণিতক।

ধাপ 3বাফার শুরু করুন − বাফারটিতে 32 বিটের পাঁচটি (5) রেজিস্টার রয়েছে যা A, B, C, D, এবং E দ্বারা নির্দেশিত। এই 160-বিট বাফারটি কম্প্রেশন ফাংশনের অস্থায়ী এবং চূড়ান্ত ফলাফলগুলিকে প্রভাবিত করতে ব্যবহার করা যেতে পারে। এই পাঁচটি রেজিস্টার নিম্নলিখিত 32-বিট পূর্ণসংখ্যাতে শুরু করা হয়েছে (হেক্সাডেসিমেল নোটেশনে)।

A =67 45 23 01

B =ef cd ab 89

C =98 ba dc fe

D =10 32 54 76

E =c3 d2 e1 f0

রেজিস্টার A, B, C, এবং D আসলে MD5 অ্যালগরিদমে ব্যবহৃত চারটি রেজিস্টারের মতই। কিন্তু SHA-1-এ, এই মানগুলি বড়-এন্ডিয়ান বিন্যাসে সংরক্ষিত হয়, যা সংজ্ঞায়িত করে যে শব্দের সবচেয়ে প্রয়োজনীয় বাইটটি নিম্ন-ঠিকানা বাইট অবস্থানে অবস্থিত। তাই আরম্ভের মান (হেক্সাডেসিমেল স্বরলিপিতে) নিম্নলিখিত হিসাবে ঘটে -

শব্দ A =67 45 23 01

শব্দ B =ef cd ab 89

শব্দ C =98 ba dc fe

শব্দ D =10 32 54 76

শব্দ E =c3 d2 e1 f0

পদক্ষেপ 4৷ − 512-বিট ব্লকে বার্তা প্রক্রিয়া করুন − কম্প্রেশন ফাংশনটি 20টি অনুক্রমিক ধাপে বিভক্ত যেখানে প্রক্রিয়াকরণের চারটি রাউন্ড রয়েছে যেখানে প্রতিটি রাউন্ড 20টি ধাপ নিয়ে গঠিত৷

চারটি রাউন্ড গঠনগতভাবে একে অপরের মতো একই পার্থক্য শুধুমাত্র প্রতিটি রাউন্ডের জন্য একটি আলাদা বুলিয়ান ফাংশন প্রয়োজন, যা এটি f1, f2, f3, f4 এবং চারটি একাধিক সংযোজন ধ্রুবক Kt (0 ≤t ≤79) হিসাবে সংজ্ঞায়িত করতে পারে যা বিবেচনাধীন ধাপের উপর ভিত্তি করে।

ধাপ 5 - আউটপুট − চূড়ান্ত 512-বিট বার্তা ব্লক টি প্রক্রিয়া করার পরে (মেসেজটি টি 512-বিট ব্লকে বিভক্ত করা হয়েছে) এবং এটি একটি 160-বিট বার্তা ডাইজেস্ট পেতে পারে।


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

  2. আইটিউনস ব্যাকআপ ফটোগুলি অন্তর্ভুক্ত করে? কিভাবে iTunes কাজ করে?

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

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