এটা বলা কিনা bcrypt অথবা SHA-512 (PBKDF2 মত একটি যথাযথ অ্যালগরিদম প্রেক্ষাপটে) হল চলা উচিত যথেষ্ট । এবং উত্তর হ্যাঁ, উভয়ই অ্যালগরিদম যথেষ্ট সুরক্ষিত যে কোনও লঙ্ঘন একটি বাস্তবায়নের ত্রুটির মাধ্যমে ঘটবে, ক্রিপ্ট্যানালাইসিস নয়।
কোনটি "আরও ভাল" তা জানার জন্য যদি আপনি জেদ করেন তবে SHA-512 এর এনআইএসটি এবং অন্যান্যরা গভীরভাবে পর্যালোচনা করেছেন। এটি ভাল, তবে ত্রুটিগুলি স্বীকৃতি পেয়েছে যে, যদিও বর্তমানে এটি ব্যবহারযোগ্য নয়, তবে নতুন হ্যাশ অ্যালগরিদমের জন্য এসএইচএ -৩ প্রতিযোগিতা তৈরি করেছে। এছাড়াও, মনে রাখবেন যে হ্যাশ অ্যালগরিদমসের অধ্যয়নটি সাইফারের চেয়ে "নতুন" এবং ক্রিপ্টোগ্রাফাররা এখনও সেগুলি শিখছেন।
যদিও সামগ্রিকভাবে Bcrypt ব্লোফিশের মতো ততটা তদন্ত ছিল না, আমি বিশ্বাস করি যে একটি সিফারের উপর ভিত্তি করে সু-বোঝা কাঠামো থাকা কিছুটা অন্তর্নিহিত সুরক্ষা দেয় যা হ্যাশ-ভিত্তিক প্রমাণীকরণের অভাব রয়েছে। এছাড়াও, SHA-2 – ভিত্তিক হ্যাশগুলিকে আক্রমণ করার জন্য একটি সরঞ্জাম হিসাবে সাধারণ জিপিইউগুলি ব্যবহার করা আরও সহজ; এর মেমোরির প্রয়োজনীয়তার কারণে, bcrypt অনুকূল করে তুলতে আরও কিছু বোর্ডের র্যামের সাথে FPGA এর মতো আরও বিশেষ হার্ডওয়্যার প্রয়োজন requires
দ্রষ্টব্য: bcrypt একটি আলগোরিদিম যা অভ্যন্তরীণভাবে ব্লোফিশ ব্যবহার করে। এটি নিজেই কোনও এনক্রিপশন অ্যালগরিদম নয়। এটি অপরিবর্তনীয়ভাবে পাসওয়ার্ডকে অস্পষ্ট করার জন্য ব্যবহৃত হয়, যেমন হ্যাশ ফাংশনগুলি "ওয়ান-ওয়ে হ্যাশ" করতে ব্যবহৃত হয়।
ক্রিপ্টোগ্রাফিক হ্যাশ অ্যালগরিদমগুলি বিপরীত করা অসম্ভব হিসাবে ডিজাইন করা হয়েছে। অন্য কথায়, শুধুমাত্র একটি হ্যাশ ফাংশনের আউটপুট প্রদত্ত, একই হ্যাশ আউটপুট তৈরি করবে এমন বার্তা সন্ধান করতে "চিরকাল" লাগবে। আসলে, একই হ্যাশ মান উত্পন্ন করে এমন কোনও দুটি বার্তা সন্ধানের জন্য এটি গণনামূলকভাবে অপ্রয়োজনীয় হওয়া উচিত। একটি সাইফারের বিপরীতে, হ্যাশ ফাংশনগুলি কোনও কী দ্বারা পরামিতি হয় না; একই ইনপুট সর্বদা একই আউটপুট উত্পাদন করে।
যদি কেউ একটি পাসওয়ার্ড সরবরাহ করে যা পাসওয়ার্ড সারণীতে সঞ্চিত মানটিতে হ্যাশ করে তবে সেগুলি সত্যায়িত হয়। বিশেষত, হ্যাশ ফাংশনটির অপরিবর্তনীয়তার কারণে, ধারণা করা হয় যে ব্যবহারকারী কোনও আক্রমণকারী নয় যা হ্যাশটিকে ধরে ফেলে এবং একটি কার্যকরী পাসওয়ার্ড খুঁজতে এটির বিপরীত ঘটায়।
এখন bcrypt বিবেচনা করুন। এটি পাসওয়ার্ড থেকে একটি "কী উত্পন্ন" কী ব্যবহার করে একটি যাদু স্ট্রিং এনক্রিপ্ট করতে ব্লোফিশ ব্যবহার করে। পরে, যখন কোনও ব্যবহারকারী কোনও পাসওয়ার্ড প্রবেশ করে, কীটি আবার উত্পন্ন হয় এবং যদি সেই কীটি এনক্রিপ্ট করে উত্পাদিত সিফারেক্সট সঞ্চিত সিফারেক্সটেক্সের সাথে মিলে যায় তবে ব্যবহারকারী প্রমাণীকৃত হয়। সিফারেক্সটেক্সটি "পাসওয়ার্ড" সারণীতে সংরক্ষণ করা হয়, তবে উত্পন্ন কীটি কখনও সংরক্ষণ করা হয় না।
এখানে ক্রিপ্টোগ্রাফিটি ভাঙ্গতে কোনও আক্রমণকারীকে সিফারেক্সটেক্স থেকে চাবিটি পুনরুদ্ধার করতে হবে। এটিকে "জ্ঞাত-প্লেইনটেক্সট" আক্রমণ বলা হয়, যেহেতু আক্রমণটি এমন ম্যাজিক স্ট্রিংটি জানে যা এনক্রিপ্ট করা হয়েছে তবে কীটি ব্যবহৃত হয়নি। ব্লোফিশটি ব্যাপকভাবে অধ্যয়ন করা হয়েছে, এবং এখনও কোনও আক্রমণ আক্রমণ করা যায় নি যা আক্রমণকারীকে একক পরিচিত ব্লেডেক্সটসের সাহায্যে চাবিটি সন্ধান করতে পারে।
সুতরাং, ঠিক যেমন অপরিবর্তনীয় অ্যালগরিদম ভিত্তিক ক্রিপ্টোগ্রাফিক হজমের মতো, বিসিআরপিট একটি পাসওয়ার্ড, লবণ এবং খরচ ফ্যাক্টর থেকে একটি অপরিবর্তনীয় আউটপুট উত্পাদন করে। ব্লোফিশের প্রতিরোধের মধ্যে এটির শক্তিটি জানা প্লেটেক্সট আক্রমণের প্রতিরোধের অন্তর্ভুক্ত, যা ডাইজেস্ট অ্যালগরিদমের "প্রথম প্রাক-চিত্র আক্রমণ" এর সাথে সমান। যেহেতু এটি পাসওয়ার্ডগুলি সুরক্ষার জন্য একটি হ্যাশ অ্যালগরিদমের জায়গায় ব্যবহার করা যেতে পারে , তাই বিক্রিপ্টকে বিভ্রান্তিকরভাবে একটি "হ্যাশ" অ্যালগরিদম হিসাবে উল্লেখ করা হয়।
ধরে নিই যে নুনের যথাযথ ব্যবহার দ্বারা রেইনবো টেবিলগুলি ব্যর্থ করা হয়েছে, কোনও সত্যিকারের অপরিবর্তনীয় ফাংশন আক্রমণকারীকে বিচার-ও-ত্রুটিতে কমিয়ে দেয়। এবং আক্রমণকারী যে হারকে ট্রায়াল করতে পারে তা সেই অপরিবর্তনীয় "হ্যাশ" অ্যালগরিদমের গতি দ্বারা নির্ধারিত হয়। যদি একটি হ্যাশ ফাংশনটির একক পুনরাবৃত্তি ব্যবহৃত হয়, তবে আক্রমণকারী একটি সরঞ্জামটি ব্যবহার করে প্রতি সেকেন্ডে কয়েক মিলিয়ন ট্রায়াল করতে পারে যেগুলি $ 1000 এর অর্ডারে খরচ হয়, কয়েক মাসের মধ্যে 8 টি অক্ষর পর্যন্ত সমস্ত পাসওয়ার্ড পরীক্ষা করে।
তবে, ডাইজেস্ট আউটপুটটিকে কয়েক হাজার বার "ফিড ব্যাক" করা হলে সেই হার্ডওয়্যারটিতে একই পাসওয়ার্ডগুলির পরীক্ষা করতে কয়েকশ বছর সময় লাগবে। Bcrypt তার মূল ডেরাইভেশন রুটিনের ভিতরে পুনরাবৃত্তি করে একই "কী শক্তিশালীকরণ" প্রভাব অর্জন করে এবং PBKDF2 এর মতো সঠিক হ্যাশ-ভিত্তিক পদ্ধতি একই কাজ করে; এই ক্ষেত্রে, দুটি পদ্ধতি একই।
সুতরাং, Bcrypt সম্পর্কে আমার প্রস্তাবগুলি অনুমানগুলি থেকে ডেকে আনা 1) যে ব্লাফিশের হ্যাশ ফাংশনগুলির SHA-2 পরিবারের মতো একই স্তরের তদন্ত ছিল এবং 2) যে সাইফারগুলির জন্য ক্রিপ্ট্যানালিটিক পদ্ধতিগুলি হ্যাশ ফাংশনগুলির চেয়ে উন্নত।