AES (Advanced Encryption Standard) ایک ہم آہنگ بلاک سائفر الگورتھم ہے جسے 2001 میں قومی ادارہ برائے معیارات و ٹیکنالوجی امریکہ (NIST) نے باضابطہ معیار کے طور پر اپنایا۔ AES نے فرسودہ DES کی جگہ لی اور اس کے بعد سے بینکاری نظاموں سے لے کر موبائل ایپلی کیشنز تک دنیا میں سب سے زیادہ پھیلا ہوا خفیہ کاری الگورتھم بن گیا۔ NIST (2023) کے مطابق، AES 256 بٹ کلید کے لیے 2^256 آپریشنز کے مساوی تحفظ فراہم کرتا ہے، جو اسے جدید مکمل تلاش حملوں سے محفوظ بناتا ہے۔ NIST FIPS 197، 2023
اہم نکات
AES (Advanced Encryption Standard) ایک ہم آہنگ بلاک سائفر ہے جسے بیلجیئم کے ماہرینِ رمز Joan Daemen اور Vincent Rijmen نے Rijndael کے نام سے تیار کیا۔ 2001 میں، NIST نے پانچ سال کی عوامی جانچ اور تجزیہ کے بعد Rijndael کو نئے امریکی خفیہ کاری معیار کے مقابلے کا فاتح منتخب کیا۔ AES مقررہ سائز (128 بٹ) کے ڈیٹا بلاکس پر کام کرتا ہے اور تین کلیدی لمبائیوں کو سپورٹ کرتا ہے: 128، 192 اور 256 بٹ۔ تبدیلی کے راؤنڈز کی تعداد کلید کی لمبائی پر منحصر ہے: 128 بٹ کے لیے 10 راؤنڈ، 192 بٹ کے لیے 12 اور 256 بٹ کے لیے 14 راؤنڈ۔ ہر راؤنڈ میں چار آپریشنز شامل ہیں: SubBytes (S-box کے ذریعے غیر خطی بائٹ متبادل)، ShiftRows (چکری قطار منتقلی)، MixColumns (ستون مکسنگ) اور AddRoundKey (راؤنڈ کلید XOR)۔
AES کی ترقی 1997 میں شروع ہوئی جب NIST نے DES کو تبدیل کرنے کے لیے ایک مقابلے کا اعلان کیا، جس کی 56 بٹ کلید 1998 میں خصوصی ڈیوائس Deep Crack پر 22 گھنٹوں میں توڑ دی گئی تھی۔ مختلف ممالک کے پندرہ الگورتھمز نے حصہ لیا، جن میں Serpent (برطانیہ)، Twofish (امریکہ) اور RC6 (امریکہ) شامل تھے۔ 1999 کے فائنل تک 5 امیدوار باقی رہ گئے۔ Rijndael تمام پلیٹ فارمز (8 بٹ مائیکروکنٹرولرز سے 64 بٹ سرورز تک) پر تیز رفتاری، رمز کشائی کے خلاف مزاحمت اور کمپیکٹ ہارڈویئر نفاذ کے امتزاج کی وجہ سے جیت گیا۔ 2006 سے، AES امریکی حکومتی نظاموں میں SECRET اور TOP SECRET درجہ بند ڈیٹا کو خفیہ کرنے کے لیے استعمال ہو رہا ہے۔ آج، AES تمام بڑے پروٹوکولز میں شامل ہے: TLS 1.2/1.3، IPsec، SSH، Wi-Fi WPA2/WPA3 اور Bluetooth BR/EDR۔
AES 128 بٹ (16 بائٹ) کے بلاکس میں ڈیٹا پر کارروائی کرتا ہے، جو state نامی 4x4 بائٹ میٹرکس کی شکل میں منظم ہوتا ہے۔ ہر خفیہ کاری راؤنڈ determistic تبدیلیوں کا ایک سلسلہ انجام دیتا ہے جو اجتماعی طور پر برفانی تودے کا اثر پیدا کرتے ہیں: ان پٹ ڈیٹا کا ایک بٹ تبدیل کرنے سے آؤٹ پٹ بٹس کا تقریباً 50% تبدیل ہو جاتا ہے۔ یہ اثر AES کو تفریقی اور لکیری رمز کشائی — بلاک سائفر توڑنے کے بنیادی طریقوں — کے خلاف مزاحم بناتا ہے۔
عمل AddRoundKey سے شروع ہوتا ہے — ابتدائی کلید کا state کے ساتھ XOR۔ پھر راؤنڈز انجام دیے جاتے ہیں: SubBytes ہر state بائٹ کو S-box (متبادل جدول) کی قدر سے بدل دیتا ہے۔ ShiftRows دوسری قطار کو 1 مقام، تیسری کو 2، چوتھی کو 3 چکری طور پر منتقل کرتا ہے — یہ ستونوں کے درمیان مکسج کو یقینی بناتا ہے۔ MixColumns ہر state ستون کو Galois فیلڈ GF(2^8) میں ایک مقررہ میٹرکس سے ضرب دیتا ہے، ہر آؤٹ پٹ بائٹ کو ستون کے چاروں ان پٹ بائٹس پر منحصر بناتا ہے۔ AddRoundKey Key Expansion کے ذریعے اصل کلید سے حاصل کردہ اگلی راؤنڈ کلید کے ساتھ XOR کرتا ہے۔ آخری راؤنڈ میں MixColumns آپریشن نہیں ہوتا۔ ڈی کرپشن الٹ ترتیب میں InvSubBytes، InvShiftRows، InvMixColumns اور AddRoundKey کا استعمال کرتی ہے۔ موبائل ڈیویلپرز کے لیے AES کی اندرونی ساخت کو سمجھنا ضروری نہیں ہے — یہ جاننا کافی ہے کہ مناسب پیرامیٹرز کے ساتھ پلیٹ فارم کے بلٹ ان API کو صحیح طریقے سے کیسے کال کیا جائے۔
AES کی وہ اہم خصوصیت جو اس کی رمزی قوت کو یقینی بناتی ہے وہ برفانی تودے کا اثر ہے۔ سادہ متن یا کلید میں ایک بٹ تبدیل کرنے سے تقریباً 50% خفیہ متن کے بٹس تبدیل ہو جاتے ہیں، جو AES کو تفریقی اور لکیری رمز کشائی کے خلاف انتہائی مزاحم بناتا ہے۔ SubBytes (S-box کے ذریعے غیر خطیت) اور MixColumns (Galois فیلڈ ضرب کے ذریعے پھیلاو) کا امتزاج ایسی ریاضیاتی پیچیدگی پیدا کرتا ہے کہ خفیہ متن کا کچھ حصہ جاننے کے باوجود کلید کو مکمل تلاش سے تیزی سے حاصل نہیں کیا جا سکتا۔ NIST تجزیہ (2018) کے مطابق، AES-128 پر سب سے مشہور حملہ — biclique حملہ — مؤثر کلید کی لمبائی کو صرف 2 بٹ کم کرتا ہے (126.2 بٹ تک)، جو حملہ آور کو کوئی عملی فائدہ نہیں دیتا۔ AES-256 کے لیے، مکمل تلاش سے آگے کوئی عملی طور پر قابل عمل حملہ موجود نہیں ہے۔
AES تین کلیدی سائز کو سپورٹ کرتا ہے، ہر ایک مخصوص رمزی قوت کی سطح کے مطابق ہے۔ کلید کے سائز کا انتخاب تحفظ، کارکردگی اور ڈیوائس کے وسائل کی ضروریات کو متاثر کرتا ہے۔
| کلید کا سائز | راؤنڈز کی تعداد | تحفظ کی سطح | استعمال |
|---|---|---|---|
| AES-128 | 10 | 128 بٹ | تجارتی ایپلی کیشنز، TLS |
| AES-192 | 12 | 192 بٹ | سرکاری نظام (SECRET) |
| AES-256 | 14 | 256 بٹ | TOP SECRET، مالیاتی شعبہ |
عملی اصول: موبائل ایپلی کیشنز کے لیے بطور ڈیفالٹ AES-256 استعمال کریں۔ AES-NI سپورٹ والے جدید آلات پر AES-128 اور AES-256 کے درمیان کارکردگی کا فرق 10-15% سے زیادہ نہیں ہے، لیکن تحفظ کی سطح دوگنی ہو جاتی ہے۔ کوانٹم تجزیہ (Grassl et al.، 2016) کے مطابق، AES-128 کو توڑنے کے لیے Grover الگورتھم کے ذریعے 2^77 کوانٹم آپریشنز درکار ہوں گے، جبکہ AES-256 کے لیے 2^149 درکار ہوں گے، جو AES-256 کو اگلے 20-30 سالوں کے لیے کوانٹم حملوں کے خلاف مزاحم بناتا ہے۔ یہاں تک کہ AES-128 بھی تجارتی منظرناموں کی اکثریت کے لیے کافی تحفظ فراہم کرتا ہے: Bruce Schneier کے اندازے کے مطابق 128 بٹ کلید کو مکمل تلاش سے توڑنے کے لیے کائنات میں موجود توانائی سے زیادہ درکار ہوگی۔ تاہم، تحفظ کے معیارات (GDPR، HIPAA، PCI DSS) اکثر واضح طور پر AES-256 کا تقاضا کرتے ہیں، لہذا پروڈکشن پروجیکٹس میں زیادہ سے زیادہ کلید کی لمبائی استعمال کرنی چاہیے۔
AES بلاک سائفر کے طور پر مقررہ سائز (128 بٹ) کے بلاکس کو خفیہ کرتا ہے۔ صوابدیدی لمبائی کے ڈیٹا کو خفیہ کرنے کے لیے آپریشن موڈز استعمال کیے جاتے ہیں۔ موڈ کا انتخاب تحفظ کو شدید متاثر کرتا ہے: غلط موڈ AES کی طاقت کو کالعدم کر سکتا ہے۔
موبائل پروجیکٹس کے لیے 12 بائٹ nonce کے ساتھ AES-256-GCM استعمال کریں۔ GCM بیک وقت دو مسائل حل کرتا ہے: ڈیٹا خفیہ کاری اور تصدیق، جو padding oracle اور chosen ciphertext حملوں کو روکتا ہے۔ Android Keystore اور iOS CryptoKit اضافی رمزی ابتدائیات کی ضرورت کے بغیر AES-GCM کو مقامی طور پر سپورٹ کرتے ہیں۔ GCM کے ساتھ کام کرتے وقت، ایک ہی کلید کے ساتھ nonce کو دوبارہ کبھی استعمال نہ کرنا اہم ہے — یہ خفیہ کاری کے تحفظ کو مکمل طور پر تباہ کر دیتا ہے۔ ہر خفیہ کاری کے لیے ایک نیا بے ترتیب nonce بنائیں اور اسے خفیہ متن کے ساتھ محفوظ کریں۔
Jetpack Security استعمال کرتے ہوئے Android پر محفوظ AES-256-GCM نفاذ کی ایک مثال دیکھتے ہیں۔ نیچے دیا گیا کوڈ مکمل چکر دکھاتا ہے: MasterKey کے ذریعے AES-256 کلید بنانا، اضافی تصدیق شدہ ڈیٹا (AAD) کے ساتھ ایک سٹرنگ کو خفیہ اور ڈی کرپٹ کرنا۔
import androidx.security.crypto.MasterKey
import androidx.security.crypto.EncryptedSharedPreferences
val masterKey = MasterKey.Builder(context)
.setKeyScheme(MasterKey.KeyScheme.AES256_GCM)
.build()
val securePrefs = EncryptedSharedPreferences.create(
context,
"secure_prefs",
masterKey,
EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,
EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM
)
fun storeSecureData(key: String, value: String) {
securePrefs.edit().putString(key, value).apply()
}
fun readSecureData(key: String): String? {
return securePrefs.getString(key, null)
}
اس حل کی اہم خصوصیت یہ ہے کہ AES-256-GCM دو سطحوں پر استعمال ہوتا ہے: کلید-قدر جوڑوں (PrefValueEncryptionScheme) کو خفیہ کرنے کے لیے اور کلیدی ناموں کی حفاظت کے لیے (PrefKeyEncryptionScheme nonce دوبارہ استعمال کے خلاف مزاحم AES-256-SIV استعمال کرتا ہے)۔ MasterKey AES-256-GCM الگورتھم کا استعمال کرتے ہوئے بنائی جاتی ہے اور Android Keystore میں محفوظ ہوتی ہے، جو Trusted Execution Environment والے آلات پر ہارڈویئر سے محفوظ ہوتا ہے۔ ہارڈویئر سپورٹ (TEE) کے بغیر آلات پر، کلید Bouncy Castle کے ذریعے خفیہ کی جاتی ہے، جو SharedPreferences میں محفوظ کرنے سے اب بھی زیادہ محفوظ ہے۔
بڑی ڈیٹا مقداروں (مثلاً تصاویر یا فائلیں) کی براہ راست خفیہ کاری کے لیے، AndroidX Security سے EncryptedFile کے ذریعے AES-256-GCM استعمال کریں۔ کلید برآمد (مثلاً بیک اپ کے لیے) کے لیے، PBKDF2 کے ساتھ 100000+ تکرار کا استعمال کرتے ہوئے صارف کے پاس ورڈ کے ساتھ اضافی خفیہ کاری استعمال کریں۔
iOS پر، AES آپریشنز CryptoKit فریم ورک (Swift 5.0+) کے ذریعے منظم ہوتے ہیں۔ AES-256 کلید SymmetricKey(size: .bits256) کے ذریعے بنائی جاتی ہے اور Secure Enclave میں محفوظ ہوتی ہے — ایک ہارڈویئر رمزی پروسیسر جو مرکزی CPU اور آپریٹنگ سسٹم سے الگ ہوتا ہے۔ CryptoKit دو AES نفاذ فراہم کرتا ہے: AES.GCM (تجویز کردہ) اور AES.CBC (پرانے فارمیٹس کے ساتھ پسماندہ مطابقت کے لیے)۔ خفیہ کاری seal() طریقہ کے ذریعے انجام دی جاتی ہے، جو ڈیٹا، کلید اور nonce (12 بائٹ) لیتا ہے، اور AES.GCM.SealedBox لوٹاتا ہے — ایک ساخت جس میں خفیہ متن اور تصدیقی ٹیگ ہوتا ہے۔ ڈی کرپشن open() کے ذریعے ہوتی ہے۔ Apple CommonCrypto کو براہ راست استعمال نہ کرنے کی سختی سے سفارش کرتا ہے: CryptoKit خود بخود بہترین پیرامیٹرز منتخب کرتا ہے، سائیڈ چینل حملوں سے بچاتا ہے، اور Apple Silicon پروسیسرز پر AES-NI ہارڈویئر ایکسلریشن استعمال کرتا ہے۔ Secure Enclave والے آلات پر، کلیدیں ہارڈویئر ماڈیول سے کبھی باہر نہیں نکلتیں، مکمل ایپلی کیشن سمجھوتہ ہونے پر بھی چوری کو روکتی ہیں۔ کلید کی ترتیب کے لیے، withUnsafeBytes طریقہ استعمال کریں اور پھر kSecAttrAccessible = kSecAttrAccessibleWhenUnlockedThisDeviceOnly خصوصیت کے ساتھ SecItemAdd کے ذریعے Keychain میں محفوظ کریں۔
اکثر پوچھے گئے سوالات
AES ایک الگورتھم ہے جو خفیہ کلید کا استعمال کرتے ہوئے پڑھنے کے قابل ڈیٹا کو بائٹس کے ناقابل پڑھنے سیٹ میں تبدیل کرتا ہے۔ ڈیٹا کو اس کی اصل شکل میں واپس لانے کے لیے اسی کلید کی ضرورت ہوتی ہے۔ AES اتنا قابل بھروسہ ہے کہ یہ امریکی حکومت کی خفیہ دستاویزات کو خفیہ کرنے کے لیے استعمال ہوتا ہے۔
AES-128 128 بٹ کلید استعمال کرتا ہے اور 10 خفیہ کاری راؤنڈ انجام دیتا ہے۔ AES-256 256 بٹ کلید اور 14 راؤنڈ استعمال کرتا ہے، جو اسے توڑنے میں 2^128 گنا زیادہ مشکل بناتا ہے۔ موبائل ایپلی کیشنز کے لیے، کم سے کم کارکردگی کے فرق کی وجہ سے AES-256 تجویز کیا جاتا ہے۔
AES-256-GCM سب سے محفوظ اور تجویز کردہ موڈ ہے۔ GCM تصدیق شدہ خفیہ کاری (خفیہ کاری + سالمیت کی تصدیق) فراہم کرتا ہے۔ ECB موڈ ممنوع ہے، CBC کو علیحدہ MAC درکار ہے۔ GCM موبائل ایپلی کیشنز کے لیے ڈی فیکٹو معیار ہے۔
نظریاتی طور پر، AES کو مکمل تلاش سے توڑا جا سکتا ہے، لیکن AES-256 کے لیے 2^256 کوششوں کی ضرورت ہوگی — قابل مشاہدہ کائنات میں ایٹموں کی تعداد سے زیادہ۔ AES-256 پر کوئی عملی حملہ موجود نہیں ہے۔ سائیڈ چینل حملے (Spectre، Meltdown) AES نہیں توڑتے بلکہ میموری سے کلیدیں چراتے ہیں، لہذا ہارڈویئر کلید ذخیرہ اہم ہے۔
AndroidX Security لائبریری استعمال کریں: KeyScheme.AES256_GCM کے ساتھ MasterKey.Builder Android Keystore میں ایک محفوظ کلید بناتا ہے، اور EncryptedSharedPreferences AES-256-GCM کے ذریعے تمام ڈیٹا خود بخود خفیہ کرتا ہے۔ کوئی دستی رمز نہیں — API بطور ڈیفالٹ محفوظ ہے، ڈیویلپر کی غلطیوں کے خطرے کے بغیر۔
خلاصہ
ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے
IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔
مزید پڑھیں