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

DES-এ S-বক্সের ভূমিকা কী?

DES-এ S-বক্সের ভূমিকা

DES (Data Encryption Standard) হলো NIST (National Institute of Standards and Technology) দ্বারা প্রবর্তিত একটি সিমেট্রিক-কী ব্লক সাইফার। DES ফেডারাল রেজিস্টারে জানুয়ারি ১৯৭৭ সালে FIPS 46 হিসেবে প্রকাশিত।

NIST DES-কে অনু শ্রেণির সফটওয়্যারে ব্যবহারের জন্য স্ট্যান্ডার্ড হিসেবে প্রস্তাব করেন। প্রকাশ পর থেকে DES সবচেয়ে ব্যাপকভাবে ব্যবহৃত সিমেট্রিক-কী ব্লক সাইফার। পরে NIST নতুন স্ট্যান্ডার্ড (FIPS 46-3) জারি করে ট্রিপল DES (DES সাইফার তিনবার রিপিট) ভবিষ্যতের সফটওয়্যারের জন্য অনুমোদন দেন।

DES-র ৬৪-বিট ব্লক সাইজ এবং বাস্তবায়নে ৫৬-বিট কী ব্যবহার হয় (সম্পূর্ণ ৬৪ বিট কী থেকে ৮ প্যারিটি বিট বাদ দেওয়া হয়)। DES একটি সিমেট্রিক ক্রিপ্টোসিস্টেম, cụ thể ১৬-রাউন্ড ফেইস্টেল সাইফার।

এনক্রিপ্ট হওয়া ব্লক একটি ইনিশিয়াল পারমুটেশন (IP) এর অধীন হয়, তারপর একটি জটিল কী-নির্ভর কম্পিউটেশন, এবং শেষে একটি পারমুটেশন যা ইনিশিয়াল পারমুটেশনের বিপরীত (IP⁻¹)। পারমুটেশন হলো একটি ফাংশন দ্বারা বাস্তবায়িত অপারেশন যা পজিশন j-র এলিমেন্টকে পজিশন k-তে স্থানান্তর করে। কী-নির্ভর কম্পিউটেশনকে সহজে ফাংশন f (সাইফার ফাংশন) এবং ফাংশন KS (কী শিডিউল) দ্বারা প্রকাশ করা যায়।

ফাংশন F-এ S-বক্সের ভূমিকা

সাবস্টিটিউশন একটি গ্রুপ S-বক্স দ্বারা বাস্তবায়িত হয়। এটানে আটটি S-বক্স থাকে। প্রতিটি ৬ বিট ইনপুট নেয় এবং ৪ বিট আউটপুট দেয়:

  • বক্স Sᵢ-র ইনপুটের প্রথম ও চূড়ান্ত বিট একটি ২-বিট বাইনারি নম্বর তৈরি করে যাতে চারটি সাবস্টিটিউশন (Sᵢ-র টেবিলের চারটি সারি) থেকে একটি নির্বাচন করা হয়।
  • মাঝপথের চারটি বিট ষোলশ কলাম থেকে একটি নির্বাচন করে।
  • সারি ও কলাম দ্বারা নির্বাচিত সেলের ডেসিমেল মান তার ৪-বিট রিপ্রেজেন্টেশনে রূপান্তরিত হয় আউটপুট হিসেবে।
  • উদাহরণ: S1-এ ইনপুট 011001 হলে, সারি = 01, কলাম = 1100 (১২)। সারি ১, কলাম ১২-র মান ৯, তাই আউটপুট = 1001।

S-বক্সের নীতিমালা (Design Principles)

  • প্রতিটি S-বক্সে ৬ বিট ইনপুট এবং ৪ বিট আউটপুট থাকতে হবে।
  • S-বক্সের কোনো আউটপুট বিট ইনপুট বিটের লিনিয়ার ফাংশনের খুব নিকট হওয়া উচিত নয়। (S-বক্সগুলো DES-এ একমাত্র নন-লিনিয়ার উপাদান এবং তাদের নন-লিনিয়ারিতাই অ্যালগরিদমের শক্তি।)
  • S-বক্সের প্রতিটি "সারি" সকল সম্ভাব্য আউটপুট ধারণ করতে হবে। (এটি আউটপুট র‍্যান্ডমাইজ করে।)
  • যদি একটি S-বক্সের দুটি ইনপুট শুধু এক বিটে পার্থক্য করে, তবে তাদের আউটপুট কমপক্ষে দুটি বিটে পার্থক্য করতে হবে।
  • যদি দুটি ইনপুট নির্দিষ্টভাবে মাঝপথের দুটি বিটে পার্থক্য করে, তবে আউটপুট কমপক্ষে দুটি বিটে পার্থক্য করতে হবে।
  • যদি দুটি ইনপুট প্রথম দুটি বিটে পার্থক্য করে কিন্তু চূড়ান্ত দুটি বিটে সম্মত হয়, তবে দুটি আউটপুট অবশ্যই ভিন্ন হতে হবে।
  1. তথ্য নিরাপত্তায় DES কী জেনারেশনের ধাপগুলো কী কী?

  2. DES-এর 변형গুলো কী?

  3. সি ভাষায় টোকেন (C Tokens) কী?

  4. C#-এ কমেন্ট (Comments) কী?