AES (Advanced Encryption Standard) এনক্রিপশন ও ডিক্রিপশন
AES এনক্রিপশন হলো ইলেকট্রনিক ইনফরমেশন লুকানোর প্রক্রিয়া যেটে FIPS 197-অনুমোদিত ১২৮-বিট, ১৯২-বিট, বা ২৫৬-বিট সিমেট্রিক এনক্রিপশন অ্যালগরिदম ব্যবহার করা হয়।
পটভূমি
- ১৯৯০-এর দশকে US গভর্নমেন্ট বিশ্বব্যাপী ব্যবহার করার জন্য একটি ক্রিপ্টোগ্রাফিক অ্যালগরিদম স্ট্যান্ডার্ডাইজ করতে চাইলো। এটাকে Advance Encryption Standard (AES) বলা হলো।
- অনেক প্রপোজাল জমা দেওয়া হয় এবং বহু বিতর্কের পর Rijndael অ্যালগরিদম নির্বাচিত হয়। Joan Daemen ও Vincent Rijmen আবিষ্কার করেন।
- নতুন অ্যালগরিদমের প্রয়োজন পড়েছিল DES-এর পরিচিত দুর্বলতার কারণে।
- DES-এর ৫৬-বিট কী এক্সহাস্টিভ কী সার্চ আক্রমণের বিপক্ষে নিরাপদ নয়, ৬৪-বিট ব্লকও দুর্বল। AES ১২৮-বিট ব্লক ও ১২৮-বিট কী ব্যবহার করে।
AES স্ট্রাকচারের প্রধান বৈশিষ্ট্য
- ফাইস্টেল স্ট্রাকচার নয়: ফাইস্টেলে হাফ ব্লক অন্য হাফ ব্লককে পরিবর্তন করে এবং হাফগুলো এক্সচেঞ্জ হয়। AES-এ পুরো ডেটা ব্লক প্যারালেল প্রসেস হয় প্রতিটি রাউন্ডে সাবস্টিটিউশন ও পারমিউটেশন দিয়ে।
- কী এক্সপানশন: ইনপুট কী এক্সপ্যান্ড হয়ে ৪৪টি ৩২-বিট ওয়ার্ডের অ্যারে w[i] বনে। চারটি ডিস্টিংক্ট ওয়ার্ড (১২৮-বিট) প্রতিটি রাউন্ডের রাউন্ড কী হিসেবে কাজ করে।
- স্টেজ সমূহ (প্রতি রাউন্ড):
- SubBytes (সাবস্টিটিউশন বাইটস): S-বক্স ব্যবহার করে বাইট-বাই বাইট সাবস্টিটিউশন।
- ShiftRows (শিফট রো): সিম্পল পারমিউটেশন।
- MixColumns (মিক্স কলামস): GF(2⁸) এর ওপর=arithmetic ব্যবহার করে সাবস্টিটিউশন।
- AddRoundKey (অ্যাড রাউন্ড কী): করেন্ট ব্লকের সাথে এক্সপ্যান্ডেড কীর অংশের বিটওয়াইজ XOR।
- রাউন্ড স্ট্রাকচার: এনক্রিপশন ও ডিক্রিপশন দুটোই AddRoundKey স্টেজ দিয়ে শুরু হয়, তারপর ৯টি রাউন্ড (চারটি স্টেজ সব), শেষে ১০ম রাউন্ড (তিনটি স্টেজ)।
- শুধু AddRoundKey স্টেজই কী ব্যবহার করে। এই কারণেই সাইফার শুরু ও শেষে AddRoundKey থাকে। অন্য কোনো স্টেজ শুরু বা শেষে থাকলে সেটি কী ছাড়া রিভার্সিবল, তাই নিরাপত্তা যোগ করবে না।
- AddRoundKey হলো ভার্নাম সাইফারের এক রূপ—একা থাকলে ভয়ঙ্কর নয়। অন্য তিনটি স্টেজ কনফিউশন, ডিফিউশন, নন-লিনিয়ারিটি দেয় কিন্তু কী ব্যবহার করে না তাই একা থাকলে নিরাপত্তা দেয় না।