DES এর কাজ करने की प्रक्रिया
DES (Data Encryption Standard) একটি ব্লক সাইফার। এর এনক্রিপশন প্রসেস দুটি পারমিউটেশন (P-বক্স)—ইনিশিয়াল ও ফাইনাল পারমিউটেশন—এবং ১৬টি ফাইস্টেল রাউন্ড থেকে গঠিত। প্রতিটি রাউন্ডে সাইফার কী থেকে একটি আলাদা ৪৮-বিট রাউন্ড কী তৈরি হয়।
DES-এর দুই মৌলিক বৈশিষ্ট্য
- সাবস্টিটিউশন (Substitution / Confusion)
- ট্রান্সপোজিশন (Transposition / Diffusion)
DES একটি সিমেট্রিক ক্রিপ্টোসিস্টেম। একটি ব্লকে প্রথমে ইনিশিয়াল পারমিউটেশন (IP), তারপর কী-নির্ভর জটিল গণনা, এবং সর্বশেষে IP-এর বিপরীত পারমিউটেশন (IP⁻¹) প্রয়োগ করা হয়।
DES-এর প্রধান ধাপসমূহ
১. ইনিশিয়াল পারমিউটেশন (IP)
- এনক্রিপশন শুরুতেই একবার প্রয়োগ হয়। ৬৪-বিট ব্লকে ভাগ করা প্লেইনটেক্সটের প্রতিটি ব্লকে IP প্রয়োগ করা হয়। এটি ট্রান্সপোজিশনের একটি ধাপ।
২. ১৬টি রাউন্ড (Rounds)
- DES ১৬টি রাউন্ড ব্যবহার করে। প্রতিটি রাউন্ড একটি ফাইস্টেল সাইফার।
- রাউন্ড ইনপুট হিসেবে পূর্বের রাউন্ডের Li-1 এবং Ri-1 নেয়, এবং আউটপুট হিসেবে Li ও Ri তৈরি করে যা পরবর্তী রাউন্ডে যায়।
- প্রতিটি রাউন্ডে দুটি সাইফার কম্পোনেন্ট থাকে: মিক্সার (Mixer) ও সোয়াপার (Swapper)।
- সোয়াপার বাম ও ডান হাফ একে অপরের সাথে বদলায়। মিক্সার XOR অপারেশন দ্বারা ইনভার্ট করা যায়। সমস্ত নন-ইনভার্টিবল কম্পোনেন্ট ফাংশন f(Ri-1, Ki)-এ অন্তর্ভুক্ত থাকে।
৩. ফাইনাল পারমিউটেশন (FP)
- ১৬টি রাউন্ড শেষে ফাইনাল পারমিউটেশন প্রয়োগ করা হয়। এটি একটি টেবিল-ভিত্তিক সরল ট্রান্সপোজিশন।
- উদাহরণ: ৪০ নম্বর ইনপুট ১ নম্বর আউটপুট বিট হয়ে যায়।
- ফাইনাল পারমিউটেশনের আউটপুট হলো ৬৪-বিট এনক্রিপ্টেড ব্লক।
| ৪০ | ৮ | ৪৮ | ১৬ | ৫৬ | ২৪ | ৬৪ | ৩২ | ৩৯ | ৭ | ৪৭ | ১৫ | ৫৫ | ২৩ | ৬৩ | ৩১ |
| ৩৮ | ৬ | ৪৬ | ১৪ | ৫৪ | ২২ | ৬২ | ৩০ | ৩৭ | ৫ | ৪৫ | ১৩ | ৫৩ | ২১ | ৬১ | ২৯ |
| ৩৬ | ৪ | ৪৪ | ১২ | ৫২ | ২০ | ৬০ | ২৮ | ৩৫ | ৩ | ৪৩ | ১১ | ৫১ | ১৯ | ৫৯ | ২৭ |
| ৩৪ | ২ | ৪২ | ১০ | ৫০ | ১৮ | ৫৮ | ২৬ | ৩৩ | ১ | ৪১ | ৯ | ৪৯ | ১৭ | ৫৭ | ২৫ |
৪. DES ডিক্রিপশন (DES Decryption)
- DES খুব জটিল, কিন্তু ডিক্রিপশনে একই অ্যালগরিদম কাজ করে—শুধু কী পোर्शनগুলো রিভার্স অর্ডারে ব্যবহার করা হয়।
- এনক্রিপশনে কী K যদি K₁, K₂, K₃… K₁₆-এ ভাগ করা হয়, তবে ডিক্রিপশনে সেটি K₁₆, K₁₅, K₁₄… K₁ ক্রমে ব্যবহার করা হয়।
- টেবিল ভ্যালু, অপারেশন ও তাদের সিকোয়েন্স এমনভাবে বাছাই করা হয়েছে যে অ্যালগরিদমটি রিভার্সিবল হয়।