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

ব্লোফিশ অ্যালগরিদমে সাব-কী জেনারেশন কীভাবে হয়?


ব্লোফিশ (Blowfish) অ্যালগরিদমে সাব-কী জেনারেশন

Blowfish ব্রুস স্নাইয়ার দ্বারা ১৯৯৩ সালে আবিষ্কৃত সিমেট্রিক ব্লক সাইফার। DES বা IDEA-এর বিকল্প। সবচেয়ে জনপ্রিয় ফাইস্টেল নেটওয়ার্ক সাইফারের একটু। ৬৪-বিট ব্লক সাইজ এবং ৪২ থেকে ৪৪৮ বিট ভেরিয়েবল কী দৈর্ঘ্য। অ্যালগরিদমের দুটি অংশ: কী-এক্সপানশন এবং ডেটা-এনক্রিপশন।

সাব-কী আর্কিটেকচার

  • Blowfish সর্বোচ্চ ৪৪৮-বিট কীকে Multiple সাব-কী অ্যারেতে রূপান্তর করে—মোট ১০৪২টি ৩২-বিট ভ্যালু বা ৪১৬৮ বাইট।
  • ১৬-রাউন্ড ফাইস্টেল সিস্টেম, খুব বেশি কী-ডিপেন্ডেন্ট S-বক্স এবং ১৬ ইটারেশন সাপোর্ট করে।
  • প্রতিটি রাউন্ড কী-এন্ড-ডেটা ডিপেন্ডেন্ট সাবস্টিটিউশন এবং কী-ডিপেন্ডেন্ট পারমিউটেশনের সাথে কাস্টোমাইজড।
  • ৩২-বিট ওয়ার্ড ও XOR অপারেশন যোগ দিয়ে ইমপ্লিমেন্ট করা হয়।
  • P-অ্যারে: ১৮টি ৩২-বিট সাব-কী (P1, P2, ..., P18)।
  • ৪টি ৩২-বিট S-বক্স: প্রতিটি ২৫৬ এন্ট্রি (S1,0 ... S1,255, S2,0 ... S4,255)।
  • ইনপুট: ৬৪-বিট ডেটা এলিমেন্ট।

সাব-কী জেনারেশন প্রসেস (Step-by-Step)

  1. কী স্ট্রিং অ্যারে: কী সাইজ ৩২-৪৪৮ বিট (১ থেকে ১৪টি ৩২-বিট ওয়ার্ড)। অ্যারে: K1, K2, ..., Kn (১ ≤ n ≤ ১৪)।
  2. P-অ্যারে ইনিশিয়ালাইজেশন: ১৮টি ৩২-বিট সাব-কী P1, P2, ..., P18।
  3. S-বক্স ইনিশিয়ালাইজেশন: চারটি ৩২-বিট S-বক্স, প্রতিটি ২৫৬ এন্ট্রি।
  4. ফিক্সড স্ট্রিং দিয়ে ইনিশিয়ালাইজ: প্রথমে P-অ্যারে, তারপর চারটি S-বক্স, একটি ফিক্সড স্ট্রিং (Pi-এর হেক্সাডেসিমাল ডিজিট) দিয়ে ইনিশিয়ালাইজ করা হয়।
  5. XOR ওয়াইজ K-অ্যারে: P-অ্যারের প্রতিটি এলিমেন্টকে K-অ্যারের ওয়ার্ড দিয়ে XOR করা হয় (P1 XOR প্রথম ৩২ বিট কী, P2 XOR دوم ৩২ বিট কী, ইত্যাদি)। K-অ্যারে রি-ইউজ করা হয় যতক্ষণ না পুরো P-অ্যারে XORed হয়।
  6. অল-জেরো এনক্রিপশন: বর্তমান P ও S অ্যারে দিয়ে ৬৪-বিট অল-জেরো ব্লক এনক্রিপ্ট করা হয়।
  7. P1, P2 আপডেট: এনক্রিপশনের আউটপুট দিয়ে P1, P2 রিপ্লেস করা হয়।
  8. পুনরাবৃত্তি: পরিবর্তিত সাব-কী দিয়ে আবার এনক্রিপ্ট করে P3, P4 আপডেট, এভাবে চলতে থাকা—P-অ্যারের সব এলিমেন্ট এবং চারটি S-বক্সই আপডেট হওয়া পর্যন্ত।

মোট ইটারেশন

সব সাব-কী তৈরি করতে মোট ৫২১ ইটারেশন দরকার। অ্যাপ্লিকেশনগুলো সাব-কী সংরক্ষণ করে রাখে যাতে বারবার ডেরাইভেশন করতে না হয়।


  1. উইন্ডোজ ১০-এ উইন্ডোজ কী ডিজেবল করার পদ্ধতি

  2. তথ্য নিরাপত্তায় DES কী জেনারেশনের ধাপগুলো কী কী?

  3. C#-এ প্যারামিটার পাসিং (Parameter Passing): ভ্যালু, রেফারেন্স, আউট, প্যারাম অ্যারে

  4. কর্পোরেট নেটওয়ার্ক থেকে Skeleton Key ম্যালওয়্যার দূর করার ধাপে ধাপে গাইড