কম্পিউটার টিউটোরিয়াল

তথ্য নিরাপত্তায় ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশন (Cryptographic Hash Function) কী?

ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশন (Cryptographic Hash Function) কী?

ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশন হলো ক্রিপ্টোগ্রাফিতে ব্যবহৃত একটি গাণিতিক ফাংশন। এটি হ্যাশ ফাংশনের মেসেজ-পাসিং ক্ষমতাকে নিরাপত্তা বৈশিষ্ট্যের সাথে সংযোজিত করে।

হ্যাশ ফাংশন টার্ম কম্পিউটার সায়েন্সে די দিন থেকে ব্যবহৃত হচ্ছে এবং এর অর্থ: একটি ফাংশন যা আর্বিট্রারি ইনপুট স্ট্রিংকে একটি ফিক্সড-লেন্থ আউটপুট স্ট্রিং-এ কমপ্রেস করে। কিন্তু যদি এটি কিছু অতিরিক্ত শর্ত পূরণ করে, তবে এটি ক্রিপ্টোগ্রাফিক অ্যাপ্লিকেশনের জন্য ব্যবহার করা যায় এবং তখন এটাকে ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশন বলা হয়।

ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশনের গুরুত্ব

ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশন ক্রিপ্টোগ্রাফি ক্ষেত্রে সবচেয়ে গুরুত্বপূর্ণ টুল। এটি பல নিরাপত্তা উদ্দেশ্য पूरा করতে ব্যবহৃত হয়: প্রামাণিকতা (authenticity), ডিজিটাল সিগনেচার, সিউডোর‍্যান্ডম নম্বর জেনারেশন, ডিজিটাল স্টেগানোগ্রাফি, ডিজিটাল টাইম স্ট্যাম্পিং ইত্যাদি।

হ্যাশ ফাংশন সংজ্ঞা

একটি হ্যাশ ফাংশন হলো একটি ফাংশন যা যেকোনো দৈর্ঘ্যের মেসেজ ইনপুট হিসেবে নেয় এবং সেটিকে একটি ফিক্সড-লেন্থ আউটপুটে রূপান্তর করে যা হ্যাশ ভ্যালু, মেসেজ ডাইজেস্ট, চেকসাম, বা ডিজিটাল ফিঙ্গারপ্রিন্ট নামে পরিচিত।

গাণিতিক রূপে: একটি হ্যাশ ফাংশন f: D → R, যেখানে ডোমেইন D = {0, 1}* (বাইনারি স্ট্রিং ভেরিয়েবল লেন্থ) এবং রেঞ্জ R = {0, 1}ⁿ কিছু n ≥ 1-এর জন্য (ফিক্সড-লেন্থ বাইনারি স্ট্রিং)। তাই f হলো একটি ফাংশন যা আকার n-র একটি ফিক্সড-লেন্থ হ্যাশ রেজাল্ট h আউটপুট হিসেবে দেয় যেকোনো সাইজের মেসেজ M ইনপুট হিসেবে নিলে।

যখন ডোমেইন D ফিনাইট (finite), তখন একটি হ্যাশ ফাংশন f কে কমপ্রেশন ফাংশন (compression function) বলা হয়—অর্থাৎ ফিক্সড-লেন্থ মেসেজ ইনপুট নেয় এবং ছোট ফিক্সড-লেন্থ আউটপুট তৈরি করে।

ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশনের বৈশিষ্ট্য (Properties)

  • যেকোনো দেয়া ডেটার জন্য হ্যাশ গণনা করা অত্যন্ত সহজ।
  • যেকোনো সাইজের ইনফরমেশন ব্লক ইনপুট হিসেবে গ্রহণ করতে হবে।
  • ফিক্সড-লেন্থ আউটপুট তৈরি করতে হবে।
  • ডিটারমিনিস্টিক (deterministic) ও দক্ষতার সাথে রিপ্রোডসিবল (reproducible) হলে র‍্যান্ডম ফাংশনের মতো আচরণ করতে হবে।
  • যেকোনো লেন্থের ইনপুট গ্রহণ করে ফিক্সড লেন্থের র‍্যান্ডম স্ট্রিং আউটপুট দেবে।
  • একই ইনপুটের জন্য H সবসময় একই আউটপুট তৈরি করবে।
  • ওয়ান-ওয়ে / প্রি-ইমেজ রেজিস্ট্যান্স (One-way / Pre-image resistance): মেসেজ M দিয়ে হ্যাশ h সহজে বের করা যায় (পলিনোমিয়াল টাইম O(n), n = ইনপুট লেন্থ)। কিন্তু হ্যাশ h দিয়ে M বের করা যাতে H(M)=h হয়—কম্পিউটেশনালি অসম্ভব। অর্থাৎ দেয়া হ্যাশ ভ্যালু থেকে মেসেজ বের করা যাবে না।
  • ইয়াক 콜িশন রেজিস্ট্যান্স / সেকেন্ড প্রি-ইমেজ রেজিস্ট্যান্স (Weak collision resistance / Second pre-image resistance): দেয়া মেসেজ M1-র জন্য, অন্য মেসেজ M2 ≠ M1 খুঁজে বের করা যাতে H(M1) = H(M2) হয়—কম্পিউটেশনালি অসম্ভব।
  • স্ট্রং কলিশন রেজিস্ট্যান্স (Strong collision resistance): যেকোনো দুটি ভিন্ন মেসেজ (M1, M2) খুঁজে বের করা যাতে H(M1) = H(M2) হয়—কম্পিউটেশনালি অসম্ভব।
  1. তথ্য নিরাপত্তায় পাসওয়ার্ড স্যাল্টিং (Password Salting) কী?

  2. তথ্য নিরাপত্তায় SHA (Secure Hash Algorithm) কী?

  3. তথ্য নিরাপত্তাতে হ্যাশ ফাংশনের কী কী প্রয়োজনীয়তা?

  4. তথ্য নিরাপত্তাতে IDEA (International Data Encryption Algorithm) কী?