AES: یہ کیا ہے، ہم آہنگ خفیہ کاری الگورتھم اور کہاں استعمال ہوتا ہے

مصنف: IT Sectr اشاعت: 2026-04-02 مطالعے کا وقت: 9 منٹ

AES (Advanced Encryption Standard) ایک ہم آہنگ بلاک سائفر الگورتھم ہے جسے 2001 میں قومی ادارہ برائے معیارات و ٹیکنالوجی امریکہ (NIST) نے باضابطہ معیار کے طور پر اپنایا۔ AES نے فرسودہ DES کی جگہ لی اور اس کے بعد سے بینکاری نظاموں سے لے کر موبائل ایپلی کیشنز تک دنیا میں سب سے زیادہ پھیلا ہوا خفیہ کاری الگورتھم بن گیا۔ NIST (2023) کے مطابق، AES 256 بٹ کلید کے لیے 2^256 آپریشنز کے مساوی تحفظ فراہم کرتا ہے، جو اسے جدید مکمل تلاش حملوں سے محفوظ بناتا ہے۔ NIST FIPS 197، 2023

اہم نکات

  • AES ایک ہم آہنگ بلاک سائفر ہے جس کا بلاک سائز 128 بٹ اور کلیدیں 128، 192 یا 256 بٹ ہیں۔
  • GCM موڈ موبائل ایپلی کیشنز کے لیے تجویز کردہ AES آپریشن موڈ ہے، جو تصدیق شدہ خفیہ کاری فراہم کرتا ہے۔
  • AES-256 زیادہ سے زیادہ تحفظ کی سطح والا ورژن ہے، جو انتہائی حساس ڈیٹا کے تحفظ کے لیے تجویز کیا جاتا ہے۔
  • ہارڈویئر ایکسلریشن — AES-NI پروسیسر ہدایات جدید آلات پر 10 GB/s تک کی رفتار سے خفیہ کاری کو قابل بناتی ہیں۔
  • Android اور iOS AES کے لیے بلٹ ان API فراہم کرتے ہیں: Android Keystore اور iOS CryptoKit ہارڈویئر ایکسلریشن سپورٹ کے ساتھ۔

AES کیا ہے؟

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 معیار کی تاریخ

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 خفیہ کاری کیسے کام کرتی ہے

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 کی رمزی قوت

AES کی وہ اہم خصوصیت جو اس کی رمزی قوت کو یقینی بناتی ہے وہ برفانی تودے کا اثر ہے۔ سادہ متن یا کلید میں ایک بٹ تبدیل کرنے سے تقریباً 50% خفیہ متن کے بٹس تبدیل ہو جاتے ہیں، جو AES کو تفریقی اور لکیری رمز کشائی کے خلاف انتہائی مزاحم بناتا ہے۔ SubBytes (S-box کے ذریعے غیر خطیت) اور MixColumns (Galois فیلڈ ضرب کے ذریعے پھیلاو) کا امتزاج ایسی ریاضیاتی پیچیدگی پیدا کرتا ہے کہ خفیہ متن کا کچھ حصہ جاننے کے باوجود کلید کو مکمل تلاش سے تیزی سے حاصل نہیں کیا جا سکتا۔ NIST تجزیہ (2018) کے مطابق، AES-128 پر سب سے مشہور حملہ — biclique حملہ — مؤثر کلید کی لمبائی کو صرف 2 بٹ کم کرتا ہے (126.2 بٹ تک)، جو حملہ آور کو کوئی عملی فائدہ نہیں دیتا۔ AES-256 کے لیے، مکمل تلاش سے آگے کوئی عملی طور پر قابل عمل حملہ موجود نہیں ہے۔

AES کلید کے سائز اور تحفظ کی سطحیں

AES تین کلیدی سائز کو سپورٹ کرتا ہے، ہر ایک مخصوص رمزی قوت کی سطح کے مطابق ہے۔ کلید کے سائز کا انتخاب تحفظ، کارکردگی اور ڈیوائس کے وسائل کی ضروریات کو متاثر کرتا ہے۔

کلید کا سائزراؤنڈز کی تعدادتحفظ کی سطحاستعمال
AES-12810128 بٹتجارتی ایپلی کیشنز، TLS
AES-19212192 بٹسرکاری نظام (SECRET)
AES-25614256 بٹ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 آپریشن موڈز

AES بلاک سائفر کے طور پر مقررہ سائز (128 بٹ) کے بلاکس کو خفیہ کرتا ہے۔ صوابدیدی لمبائی کے ڈیٹا کو خفیہ کرنے کے لیے آپریشن موڈز استعمال کیے جاتے ہیں۔ موڈ کا انتخاب تحفظ کو شدید متاثر کرتا ہے: غلط موڈ AES کی طاقت کو کالعدم کر سکتا ہے۔

  • ECB (Electronic Codebook) — سب سے آسان اور سب سے غیر محفوظ موڈ۔ ہر بلاک ایک ہی کلید سے آزادانہ طور پر خفیہ کیا جاتا ہے۔ ایک جیسے سادہ متن کے بلاک ایک جیسے خفیہ متن کے بلاک بناتے ہیں، جس سے ڈیٹا کی ساخت کی بازیابی ممکن ہوتی ہے۔ تمام جدید تحفظ کے معیارات میں ممنوع۔ موبائل ایپلی کیشنز میں ECB کبھی استعمال نہ کریں۔
  • CBC (Cipher Block Chaining) — ہر پچھلا خفیہ متن بلاک اگلے کے لیے ابتدائیہ ویکٹر (IV) کے طور پر استعمال ہوتا ہے۔ ہر پیغام کے لیے بے ترتیب IV درکار ہے۔ غلط نفاذ پر padding oracle حملوں کا شکار۔ فائل خفیہ کاری کے لیے موزوں ہے لیکن ڈیٹا کی سالمیت کے لیے MAC (HMAC) درکار ہے۔
  • GCM (Galois/Counter Mode) — موبائل ایپلی کیشنز کے لیے تجویز کردہ موڈ۔ تصدیق شدہ خفیہ کاری (AEAD) فراہم کرتا ہے: ایک ہی آپریشن میں خفیہ کاری + سالمیت کی تصدیق۔ کلیدی سلسلہ بنانے کے لیے کاؤنٹر اور تصدیق کے لیے Galois فیلڈ ضرب استعمال کرتا ہے۔ GCM کو ہر پیغام کے لیے منفرد nonce (12 بائٹ) درکار ہے۔ NIST کی طرف سے تجویز کردہ، TLS 1.2/1.3 اور Android Keystore میں استعمال ہوتا ہے۔
  • CCM (Counter with CBC-MAC) — CTR + CBC-MAC پر مبنی ایک متبادل AEAD موڈ۔ GCM سے سست اور متوازی پروسیسنگ کو سپورٹ نہیں کرتا۔ ZigBee اور 802.11 (Wi-Fi) پروٹوکولز میں استعمال ہوتا ہے۔ موبائل ایپلی کیشنز کے لیے GCM ترجیح ہے۔

موبائل پروجیکٹس کے لیے 12 بائٹ nonce کے ساتھ AES-256-GCM استعمال کریں۔ GCM بیک وقت دو مسائل حل کرتا ہے: ڈیٹا خفیہ کاری اور تصدیق، جو padding oracle اور chosen ciphertext حملوں کو روکتا ہے۔ Android Keystore اور iOS CryptoKit اضافی رمزی ابتدائیات کی ضرورت کے بغیر AES-GCM کو مقامی طور پر سپورٹ کرتے ہیں۔ GCM کے ساتھ کام کرتے وقت، ایک ہی کلید کے ساتھ nonce کو دوبارہ کبھی استعمال نہ کرنا اہم ہے — یہ خفیہ کاری کے تحفظ کو مکمل طور پر تباہ کر دیتا ہے۔ ہر خفیہ کاری کے لیے ایک نیا بے ترتیب nonce بنائیں اور اسے خفیہ متن کے ساتھ محفوظ کریں۔

موبائل ایپلی کیشنز میں AES کا نفاذ

Jetpack Security استعمال کرتے ہوئے Android پر محفوظ AES-256-GCM نفاذ کی ایک مثال دیکھتے ہیں۔ نیچے دیا گیا کوڈ مکمل چکر دکھاتا ہے: MasterKey کے ذریعے AES-256 کلید بنانا، اضافی تصدیق شدہ ڈیٹا (AAD) کے ساتھ ایک سٹرنگ کو خفیہ اور ڈی کرپٹ کرنا۔

kotlin
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+ تکرار کا استعمال کرتے ہوئے صارف کے پاس ورڈ کے ساتھ اضافی خفیہ کاری استعمال کریں۔

CryptoKit کے ذریعے iOS پر AES

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 اتنا قابل بھروسہ ہے کہ یہ امریکی حکومت کی خفیہ دستاویزات کو خفیہ کرنے کے لیے استعمال ہوتا ہے۔

AES-128 اور AES-256 میں کیا فرق ہے؟

AES-128 128 بٹ کلید استعمال کرتا ہے اور 10 خفیہ کاری راؤنڈ انجام دیتا ہے۔ AES-256 256 بٹ کلید اور 14 راؤنڈ استعمال کرتا ہے، جو اسے توڑنے میں 2^128 گنا زیادہ مشکل بناتا ہے۔ موبائل ایپلی کیشنز کے لیے، کم سے کم کارکردگی کے فرق کی وجہ سے AES-256 تجویز کیا جاتا ہے۔

سب سے محفوظ AES موڈ کون سا ہے؟

AES-256-GCM سب سے محفوظ اور تجویز کردہ موڈ ہے۔ GCM تصدیق شدہ خفیہ کاری (خفیہ کاری + سالمیت کی تصدیق) فراہم کرتا ہے۔ ECB موڈ ممنوع ہے، CBC کو علیحدہ MAC درکار ہے۔ GCM موبائل ایپلی کیشنز کے لیے ڈی فیکٹو معیار ہے۔

کیا AES کو توڑا جا سکتا ہے؟

نظریاتی طور پر، AES کو مکمل تلاش سے توڑا جا سکتا ہے، لیکن AES-256 کے لیے 2^256 کوششوں کی ضرورت ہوگی — قابل مشاہدہ کائنات میں ایٹموں کی تعداد سے زیادہ۔ AES-256 پر کوئی عملی حملہ موجود نہیں ہے۔ سائیڈ چینل حملے (Spectre، Meltdown) AES نہیں توڑتے بلکہ میموری سے کلیدیں چراتے ہیں، لہذا ہارڈویئر کلید ذخیرہ اہم ہے۔

Android پر موبائل ایپ میں AES کیسے استعمال کریں؟

AndroidX Security لائبریری استعمال کریں: KeyScheme.AES256_GCM کے ساتھ MasterKey.Builder Android Keystore میں ایک محفوظ کلید بناتا ہے، اور EncryptedSharedPreferences AES-256-GCM کے ذریعے تمام ڈیٹا خود بخود خفیہ کرتا ہے۔ کوئی دستی رمز نہیں — API بطور ڈیفالٹ محفوظ ہے، ڈیویلپر کی غلطیوں کے خطرے کے بغیر۔

خلاصہ

  • AES سب سے زیادہ پھیلا ہوا اور ثابت شدہ ہم آہنگ خفیہ کاری الگورتھم ہے، جسے 2001 میں NIST نے معیاری بنایا۔
  • AES-256 اگلے 20-30 سالوں کے لیے کوانٹم حملوں کے خلاف مارجن کے ساتھ زیادہ سے زیادہ تحفظ فراہم کرتا ہے۔
  • GCM موڈ موبائل ایپلی کیشنز کے لیے واحد تجویز کردہ موڈ ہے: ایک ہی آپریشن میں خفیہ کاری + تصدیق۔
  • Android Keystore اور iOS Secure Enclave — ہارڈویئر ذخیرہ جو AES کلیدوں کو ایپلی کیشن سے الگ کرتا ہے۔
  • Jetpack Security (Android) اور CryptoKit (iOS) دستی رمز کے بغیر محفوظ AES-256-GCM نفاذ فراہم کرتے ہیں۔
  • GCM کے لیے Nonce (IV) ہر خفیہ کاری کے لیے منفرد ہونا چاہیے — دوبارہ استعمال تحفظ کو مکمل طور پر تباہ کر دیتا ہے۔
  • سفارش: تمام حساس ڈیٹا کے لیے Android پر EncryptedSharedPreferences اور iOS پر CryptoKit کے ذریعے AES-256-GCM استعمال کریں۔

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں