دونوں نام AEAD ساخت ہیں، دونوں معیاری ہیں، اور موجودہ x86 سرور پر ان میں سے کوئی بھی نظر آنے والی محنت کے بغیر ایک گیگا بٹ لنک بھر دے گا۔ انتخاب اسی وقت بے ترتیب ہونا چھوڑ دیتا ہے جب آپ اس سرور سے نکلتے ہیں: سستے راؤٹر، پرانے فون اور مجازی آلات میں اکثر AES تیز رفتار نہیں ہوتی، اور وہاں فرق بڑا ہے۔ اس لیے موازنہ یہ نہیں کہ کون سا سائفر تیز ہے، بلکہ یہ کہ کون سا سائفر اس اینڈ پوائنٹ سیٹ پر اچھا چلتا ہے اور پروٹوکول انتخاب پیش کرتا ہے یا نہیں۔

ایک ہی کام، مختلف کور

دونوں ساختیں ایک ہی مرحلے میں رازداری اور سالمیت دیتی ہیں اور متعلقہ ڈیٹا کی تصدیق کرتی ہیں، اسی لیے VPN پروٹوکول انہیں ڈیٹا چینل کے لیے استعمال کرتے ہیں۔ فرق اندر ہے: AES-GCM کاؤنٹر موڈ میں AES بلاک سائفر ہے جس میں GF(2^128) پر کثیر رکنی تصدیق کنندہ ہے، جبکہ ChaCha20-Poly1305 256 بٹ کلید والا اسٹریم سائفر ہے جس میں الگ ایک بار تصدیق کنندہ ہے۔

آپریشنل طور پر اہم بات مشترک ہے: دونوں nonce کے دوبارہ استعمال پر تباہ کن طور پر ناکام ہوتے ہیں، دونوں کو ہر کلید کے لیے nonce جگہ کا انتظام چاہیے، اور کوئی بھی ایسے ساتھی کو درست نہیں کرتا جو غلط چیز کی تصدیق کرے۔ AES-256-GCM کہنے والا پروفائل CHACHA20-POLY1305 کہنے والے سے زیادہ محفوظ نہیں؛ عمل درست ہو تو دونوں مضبوط ہیں۔

AES-GCM کہاں جیتتا ہے

زیادہ تر جدید CPU پر AES کے لیے مخصوص ہدایات ہیں: x86 پر AES-NI، ARMv8 پر کریپٹو توسیعات، اور حالیہ POWER اور RISC-V ڈیزائنوں پر مساوی۔ جب یہ موجود ہوں تو GCM ہر سائیکل طبقے میں کئی بلاک متوازی چلاتا ہے اور سافٹ ویئر عمل بے معنی ہو جاتا ہے۔ یہ سرورز، ڈیسک ٹاپ اور موجودہ فونز کے لیے عام حالت ہے، اور اسی لیے ڈیٹا سینٹر میں AES استعمال کریں کی نصیحت معقول ڈیفالٹ ہے۔

مسئلہ دوسرے درجے کی حالت ہے۔ مخصوص ہدایات کے بغیر سافٹ ویئر میں AES سست ہے، اور جدول پر مبنی سافٹ ویئر عمل ہی وہ ہیں جن کی cache وقت کے مسائل کی طویل تاریخ ہے۔ جس مجازی مشین میں چلنے والے VPN مرکز کا میزبان مہمان کو AES جھنڈے نہیں دکھاتا وہ بالکل یہی حالت ہے، اور میزبان CPU میں خصوصیت ہونے کی وجہ سے یہ آسانی سے نظر انداز ہو جاتا ہے۔

یہ دیکھیں کہ عمل واقعی کیا دیکھتا ہے، نہ کہ CPU کیا معاونت کرتا ہے: Linux پر grep -o aes /proc/cpuinfo | head -1، یا ہائپر وائزر کے CPU ماڈل میں مساوی خصوصیت کا جھنڈا۔

ChaCha20-Poly1305 کہاں جیتتا ہے

ChaCha20 قابل نقل سافٹ ویئر میں تیز ہے کیونکہ یہ صرف جمع، گردش اور XOR استعمال کرتا ہے، اور اس کے عمل ڈیزائن کے مطابق راز پر منحصر جدول تلاش سے بچتے ہیں۔ AES تیز رفتار کے بغیر آلے پر یہ ٹھوس فائدہ ہے، اور اسی لیے WireGuard نے اسے چنا: WireGuard پروٹوکول کی تفصیل ChaCha20-Poly1305 کو بغیر متبادل کے اس کا ڈیٹا سائفر بتاتی ہے۔

وہ ایک انتخاب مفید بات کہتا ہے: جہاں AES تیز کیا گیا ہو وہاں WireGuard AES-GCM کے مقابلے میں کچھ تھروپٹ چھوڑ دیتا ہے، اور اس کے مصنفین نے فون، گھریلو راؤٹر اور کنٹینر میزبانوں پر پیش گوئی کے قابل رویے کے بدلے یہ قبول کیا۔ اگر آپ کا بیڑا زیادہ تر چھوٹے ARM ڈبے ہیں تو یہ تبادلہ آپ کے حق میں ہے۔

الٹ حالت مصروف x86 مرکز ہے، جہاں AES-NI کے ساتھ AES-GCM تیز تر اور بہتر معاونت یافتہ راستہ ہے، اور جہاں ChaCha20 ہر گیگا بٹ پر قابل پیمائش CPU خرچ کرتا ہے۔ کوئی بھی ساخت کمزوری نہیں؛ سوال یہ ہے کہ آپ کا ہارڈ ویئر کسے سستے میں چلاتا ہے۔

آپ کا پروٹوکول واقعی کیا چننے دیتا ہے

ProtocolWhat you get
WireGuardChaCha20-Poly1305 only; no negotiation
OpenVPN 2.5 and laterData channel negotiated from data-ciphers: AES-256-GCM, AES-128-GCM, CHACHA20-POLY1305
IPsec / IKEv2AES-GCM as a combined-mode transform, or ChaCha20-Poly1305 where both peers implement it
OpenVPN control channelTLS decides; TLS 1.3 offers AES-GCM and ChaCha20-Poly1305 suites

OpenVPN میں تقسیم پر توجہ دیں: کنٹرول چینل اور ڈیٹا چینل الگ الگ بات چیت کیے جاتے ہیں، اس لیے TLS کے لیے آپ جو سوٹ دیکھتے ہیں وہ آپ کے پے لوڈ کی حفاظت کرنے والے سائفر کے بارے میں کچھ نہیں کہتا۔ سیشن خلاصہ دونوں بتاتا ہے، اور دونوں میں سے صرف ایک پڑھنا الجھن کا عام ذریعہ ہے۔

OpenVPN میں ڈیٹا چینل کا سائفر دونوں سروں کی data-ciphers فہرست سے آتا ہے۔ اگر سرور کی فہرست اور کلائنٹ کی فہرست نہ ملے تو کنکشن یا تو data-ciphers-fallback کی اجازت والی چیز پر واپس جاتا ہے یا مکمل ناکام ہوتا ہے، اور یہ ناکامی عام طور پر غلط تہہ پر ڈالی جاتی ہے۔ دونوں طرف ایک ہی فہرست رکھیں، پھر فہرست کی ترتیب مانے جانے کا فرض کرنے کے بجائے لاگ میں طے شدہ نتیجہ کی تصدیق کریں۔

تعیناتی کے تین حقائق سے فیصلہ کریں

پہلا، کیا اینڈ پوائنٹس میں AES تیز رفتار ہے؟ اگر ہر ساتھی کے پاس ہو تو AES-GCM سستا انتخاب اور زیادہ تر برقرار رکھی گئی تشکیلات میں ڈیفالٹ ہے۔ اگر قابل ذکر حصہ چھوٹے راؤٹر یا پرانے فون ہوں تو ChaCha20-Poly1305 بیڑے کی دم کو گنجائش کی حد بننے سے روکتا ہے۔

دوسرا، کیا پروٹوکول انتخاب پیش کرتا ہے؟ WireGuard کے ساتھ فیصلہ آپ کی جگہ ہو چکا ہے، اور مفید کام یہ یقینی بنانا ہے کہ ارد گرد کے اوزار خاموشی سے کچھ اور نہ رکھ رہے ہوں۔ OpenVPN اور IPsec کے ساتھ جواب ایک تشکیلاتی سطر اور درج کرنے والا طے شدہ نتیجہ ہے۔

تیسرا، کیا دونوں سرے متفق ہو سکتے ہیں؟ جو سائفر ایک ساتھی نافذ نہیں کرتا وہ کارکردگی کا فیصلہ نہیں، رکاوٹ ہے۔ اسی لیے ساتھیوں کی فہرست کسی بھی بینچ مارک سے زیادہ اہم ہے: مخلوط بیڑے کو صلاحیتوں کا اشتراک چاہیے، تیز ترین مشین کی ترجیح نہیں۔

اگر آپ پیمائش کریں تو آلہ، اینڈ پوائنٹ اور بوجھ یکساں رکھیں اور ایک چیز بدلیں۔ مختلف علاقوں کے دو سرورز کا موازنہ کرنے والا امتحان راستہ ناپتا ہے، سائفر نہیں، اور لیپ ٹاپ کی پیمائش ایسے کنٹینر میزبان کے بارے میں کچھ نہیں کہتی جس کے CPU جھنڈے چھپائے گئے ہوں۔ موازنہ کریں، پھر لکھیں کہ واقعی کون سا سائفر طے ہوا: وہ ریکارڈ بینچ مارک سے زیادہ قیمتی ہے۔

متعلقہ مضامین