একটি ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশন হল ক্রিপ্টোগ্রাফিতে ব্যবহৃত একটি সংখ্যাসূচক ফাংশন। অ্যাক্রিপ্টোগ্রাফিক হ্যাশ ফাংশন নিরাপত্তা বৈশিষ্ট্যের সাথে হ্যাশ ফাংশনের বার্তা-পাসনার ক্ষমতাকে একীভূত করে।
হ্যাশ ফাংশন শব্দটি কম্পিউটার বিজ্ঞানে প্রায়শই ব্যবহৃত হয়েছে এবং এটি একটি ফাংশন হিসাবে সংজ্ঞায়িত করে যা নির্বিচারে ইনপুটের একটি স্ট্রিংকে স্থির দৈর্ঘ্যের একটি স্ট্রিংকে সংকুচিত করে। যাইহোক, যদি এটি আরও কিছু প্রয়োজনীয়তা পূরণ করে, তাহলে এটি ক্রিপ্টোগ্রাফিক অ্যাপ্লিকেশনগুলির জন্য ব্যবহার করা যেতে পারে এবং তারপর এটিকে ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশন বলা হয়৷
ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশনগুলি ক্রিপ্টোগ্রাফির ক্ষেত্রে সবচেয়ে প্রয়োজনীয় হাতিয়ার এবং সত্যতা, ডিজিটাল স্বাক্ষর, ছদ্ম নম্বর জেনারেশন, ডিজিটাল স্টেগানোগ্রাফি, ডিজিটাল টাইম স্ট্যাম্পিং ইত্যাদির মতো বেশ কয়েকটি সুরক্ষা উদ্দেশ্য পরিচালনা করতে ব্যবহৃত হয়।
হ্যাশ ফাংশন এমন একটি ফাংশন যা ইনপুট হিসাবে যেকোনো দৈর্ঘ্যের কিছু বার্তা নেয় এবং এটিকে হ্যাশ মান, একটি বার্তা ডাইজেস্ট, অ্যাচেকসাম বা ডিজিটাল ফিঙ্গারপ্রিন্ট হিসাবে পরিচিত একটি নির্দিষ্ট দৈর্ঘ্যের আউটপুটে পরিবর্তন করে।
একটি হ্যাশ ফাংশন হল একটি ফাংশন f:D -> R, যেখানে ডোমেন D ={0, 1}*, যা সংজ্ঞায়িত করে যে ডোমেনের উপাদানগুলি পরিবর্তনশীল দৈর্ঘ্যের বাইনারি স্ট্রিং অন্তর্ভুক্ত করে; এবং রেঞ্জ R ={0, 1} n কিছু n>=1 এর জন্য, যা সংজ্ঞায়িত করে যে রেঞ্জের উপাদানগুলি স্থির-দৈর্ঘ্যের বাইনারি স্ট্রিং। অতএব, f হল একটি ফাংশন যা যেকোনো আকারের ইনপুট বার্তা M হিসাবে তৈরি করে এবং n আকারের একটি নির্দিষ্ট-দৈর্ঘ্য হ্যাশ ফলাফল তৈরি করে।
একটি হ্যাশ ফাংশন f কে কম্প্রেশন ফাংশন হিসাবে সংজ্ঞায়িত করা হয় যখন এর ডোমেন D সসীম হয়, যেমন যদি ফাংশন f ইনপুট হিসাবে একটি নির্দিষ্ট দৈর্ঘ্যের বার্তা নেয় এবং একটি সংক্ষিপ্ত স্থির-দৈর্ঘ্য আউটপুট তৈরি করে৷
ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশনের সম্পত্তি
হ্যাশ ফাংশনের বিভিন্ন বৈশিষ্ট্য নিম্নরূপ -
-
কোনো প্রদত্ত ডেটার জন্য একটি হ্যাশ গণনা করা অত্যন্ত সহজ।
-
এটি ইনপুট হিসাবে যেকোনো আকারের তথ্যের একটি ব্লক গ্রহণ করা উচিত।
-
এটি একটি নির্দিষ্ট দৈর্ঘ্যের আউটপুট তৈরি করা উচিত।
-
এটি নির্ধারক এবং দক্ষতার সাথে পুনরুত্পাদনযোগ্য হওয়ার সময় র্যান্ডম ফাংশনের মতো আচরণ করা উচিত৷
-
এটি যেকোন দৈর্ঘ্যের একটি ইনপুট পাওয়া উচিত এবং নির্দিষ্ট দৈর্ঘ্যের একটি এলোমেলো স্ট্রিং আউটপুট করে।
-
অনুরূপ ইনপুট জন্য, H ক্রমাগত একই আউটপুট করা উচিত.
-
যদি M বার্তাটি দেওয়া হয়, তবে এটি কেবল তার সংশ্লিষ্ট ডাইজেস্ট গণনা করা যেতে পারে; যেখানে h বহুপদী সময় O(n) এ গণনা করা যেতে পারে যেখানে n হল ইনপুট বার্তার দৈর্ঘ্য।
-
একটি বার্তা ডাইজেস্ট h দেওয়া হলে, এম সুচথাট H (M) =h আবিষ্কার করা গণনাগতভাবে জটিল। এটি একমুখী বা প্রাক-ইমেজ প্রতিরোধের সম্পত্তি হিসাবে পরিচিত। প্রদত্ত হ্যাশ মান থেকে বার্তা খুঁজে পাওয়ার জন্য এটি প্রযোজ্য নয়।
-
একটি বার্তা M1 দেওয়া হলে, H (M1) =H (M2) সহ অন্য একটি বার্তা M2 ≠ M1 আবিষ্কার করা গণনাগতভাবে অসম্ভব। এটি দুর্বল সংঘর্ষ প্রতিরোধ বা দ্বিতীয় প্রাক-চিত্র প্রতিরোধ বৈশিষ্ট্য হিসাবে পরিচিত।
-
H (M1) =H (M2) স্বতন্ত্র বার্তাগুলির (M1, M2) কোনো সেট খুঁজে পাওয়া গণনাগতভাবে অসম্ভব। এটিকে শক্তিশালী সংঘর্ষ প্রতিরোধের সম্পত্তি হিসাবে সংজ্ঞায়িত করা হয়।