DES কী জেনারেশন (Key Generation) এর ধাপসমূহ
DES (Data Encryption Standard) হলো একটি ব্লক সাইফার অ্যালগরিদম যা ৬৪-বিট ব্লকে প্লেইনটেক্সট নেয় এবং ৪৮-বিট কী ব্যবহার করে সাইফারটেক্সটে রূপান্তর করে। এটি সিমেট্রিক কী অ্যালগরিদম—এনক্রিপশন ও ডিক্রিপশনে একই কী।
DES ৬৪-বিট প্লেইনটেক্সট নেয় ৬৪-বিট সাইফারটেক্সট তৈরি করে; ডিক্রিপশন সাইটে ৬৪-বিট সাইফারটেক্সট নেয় ৬৪-বিট প্লেইনটেক্সট ফেরত দেয়। একই ৫৬-বিট সাইফার কী এনক্রিপশন ও ডিক্রিপশন দুটি কাজে ব্যবহার হয়।
DES-র কী বৈশিষ্ট্য: অ্যালগরিদম ফিক্সড ও পাবলিক রেকর্ড। কিন্তু বাস্তবায়িত কী প্রেরক ও প্রাপকের মধ্যবর্তী শেয়ার্ড সিক্রেট। DES-র উন্নতি: কী ১২৮ বিটে বাড়ানো, মাল্টি-পাস DES (সাধারণত তিন পাস এনক্রিপশন/ডিক্রিপশন একাধিক কী দিয়ে)।
DES হলো IBM কর্পোরেশনের ১৯৬০-এর দশকের শেষে একটি গবেষণা প্রজেক্টের ফলাফল যেটি LUCIFER নামক একটি সাইফার তৈরি করেছিল। ১৯৭০-এর দশকে LUCIFER দুর্বল করা হয় এবং একাধিক উদ্ভাবন معرفی করা হয়।
অ্যালগরিদম ১৬ রাউন্ড এনক্রিপশন বাস্তবায়ন করে এবং প্রতিটি রাউন্ডের জন্য একটি یونিক কী তৈরি হয়। ধাপগুলো যেতে হলে জানতে হবে: প্লেইনটেক্সটে বিটগুলো ১ থেকে ৬৪ লেবেল করা হয় (১ = মোস্ট সিগনিফিক্যান্ট, ৬৪ = লিস্ট সিগনিফিক্যান্ট)। কী জেনারেশন প্রক্রিয়া:
- রাউন্ড কী জেনারেটর ৫৬-বিট সাইফার কী থেকে সোলहটি ৪৮-বিট কী তৈরি করে। সাইফার কী ৬৪-বিট হিসেবে দেওয়া হয় যেখানে ৮ অতিরিক্ত বিট প্যারিটি বিট—কী জেনারেশন শুরু হওয়ার আগে এগুলো বাতিল করা হয়।
- প্যারিটি বিট ড্রপ (Parity bit drop): প্যারিটি বিটগুলো (বিট ৮, ১৬, ২৪, ৩২...৬৪) ৬৪-বিট কী থেকে বাদ দেওয়া হয় এবং বাকি বিটগুলো পূর্ব-নির্ধারিত নিয়ম অনুযায়ী পারমিউট করা হয় (প্যারিটি বিট ড্রপ টেবিল অনুযায়ী)।
- বাকি ৫৬ বিট কী জেনারেশনের জন্য ব্যবহার হয়।
- পারমুটেশনের পর কীগুলো দুটি ২৮-বিট পার্টে ভাগ করা হয়। প্রতিটি পার্ট বামে এক বা দুই বিট শিফট করা হয় রাউন্ডের ওপর নির্ভর করে।
- রাউন্ড ১, ২, ৯, ১৬-এ শিফটিং ১ বিট, অন্যান্য রাউন্ডে ২ বিট। দুটি পার্ট জোড়া দিয়ে ৫৬-বিট পার্ট তৈরি করা হয়।
- কমপ্রেশন D-বক্স (Compression D-box) এটিকে ৪৮-বিটে রূপান্তর করে। এই ৪৮ বিট একটি রাউন্ডের কী হিসেবে ব্যবহার হয়।
প্যারিটি বিট ড্রপ টেবিল (Parity Bit Drop Table)
| 57 | 49 | 41 | 33 | 25 | 17 | 09 | 01 |
| 58 | 50 | 42 | 34 | 26 | 18 | 10 | 02 |
| 59 | 51 | 43 | 35 | 27 | 19 | 11 | 03 |
| 60 | 52 | 44 | 36 | 63 | 55 | 47 | 39 |
| 31 | 23 | 15 | 07 | 62 | 54 | 46 | 38 |
| 30 | 22 | 14 | 06 | 61 | 53 | 45 | 37 |
| 29 | 21 | 13 | 05 | 28 | 20 | 12 | 04 |
