شیڈو ساکس دستاویزات

اے ای اے ڈی

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

درج ذیل AEAD سائفرز کی سفارش کی جاتی ہے۔ کمپلینٹ شیڈو ساکس کے نفاذ کو AEAD_CHACHA20_POLY1305 کو سپورٹ کرنا چاہیے۔ ہارڈ ویئر AES ایکسلریشن والے آلات کے نفاذ کو AEAD_AES_128_GCM اور AEAD_AES_256_GCM بھی نافذ کرنا چاہیے۔

 

 

 

نام

عرف

کلیدی سائز

نمک کا سائز

نانس سائز

ٹیگ سائز

AEAD_CHACHA20_POLY1305

chacha20-ietf-poly1305

32

32

12

16

AEAD_AES_256_GCM

aes-256-gcm

32

32

12

16

AEAD_AES_128_GCM

aes-128-gcm

16

16

12

16

ملاحظہ کیجیے IANA AEAD رجسٹری نام کی اسکیم اور تفصیلات کے لیے۔

کلیدی اخذ

ماسٹر کلید براہ راست صارف سے ان پٹ ہوسکتی ہے یا پاس ورڈ سے تیار کی جاسکتی ہے۔

HKDF_SHA1 ایک ایسا فنکشن ہے جو ایک خفیہ کلید، ایک غیر خفیہ سالٹ، ایک معلوماتی سٹرنگ لیتا ہے، اور ایک ذیلی کلید تیار کرتا ہے جو خفیہ طور پر مضبوط ہے چاہے ان پٹ خفیہ کلید کمزور ہو۔

HKDF_SHA1(کلید، نمک، معلومات) => ذیلی کلید

معلومات کی تار تیار کردہ ذیلی کلید کو ایک مخصوص ایپلیکیشن سیاق و سباق سے جوڑتی ہے۔ ہمارے معاملے میں، یہ کوٹس کے بغیر سٹرنگ "ss-subkey" ہونا چاہیے۔

ہم HKDF_SHA1 کا استعمال کرتے ہوئے پہلے سے مشترکہ ماسٹر کلید سے فی سیشن ذیلی کلید حاصل کرتے ہیں۔ پہلے سے مشترکہ ماسٹر کلید کی پوری زندگی میں نمک منفرد ہونا چاہیے۔

تصدیق شدہ خفیہ کاری/ڈیکرپشن

AE_encrypt ایک فنکشن ہے جو ایک خفیہ کلید، ایک غیر خفیہ نونس، ایک پیغام لیتا ہے، اور سائفر ٹیکسٹ اور ایک تصدیقی ٹیگ تیار کرتا ہے۔ ہر درخواست میں دی گئی کلید کے لیے Nonce منفرد ہونا چاہیے۔

AE_encrypt(key, nonce, message) => (ciphertext, tag)

 

AE_decrypt ایک ایسا فنکشن ہے جو ایک خفیہ کلید، غیر خفیہ نونس، سائفر ٹیکسٹ، ایک تصدیقی ٹیگ لیتا ہے، اور ایک اصل پیغام تیار کرتا ہے۔ اگر ان پٹ میں سے کسی کے ساتھ چھیڑ چھاڑ کی گئی ہے تو، ڈکرپشن ناکام ہو جائے گی۔

AE_decrypt(key, nonce, ciphertext, tag) => پیغام

ٹی سی پی

ایک AEAD انکرپٹڈ TCP سٹریم فی سیشن ذیلی کلید حاصل کرنے کے لیے تصادفی طور پر تیار کردہ نمک کے ساتھ شروع ہوتا ہے، اس کے بعد کسی بھی تعداد میں انکرپٹڈ ٹکڑوں کا استعمال ہوتا ہے۔ ہر ٹکڑے میں درج ذیل ڈھانچہ ہوتا ہے:

[انکرپٹڈ پے لوڈ کی لمبائی][لمبائی ٹیگ][انکرپٹڈ پے لوڈ][پے لوڈ ٹیگ]

 

پے لوڈ کی لمبائی 2x0FFF پر کیپ شدہ ایک 3 بائٹ بڑے اینڈین غیر دستخط شدہ عدد ہے۔ اعلی دو بٹس محفوظ ہیں اور صفر پر سیٹ ہونا ضروری ہے۔ پے لوڈ اس لیے 16*1024 - 1 بائٹس تک محدود ہے۔

پہلا AEAD انکرپٹ/ڈیکرپٹ آپریشن 0 سے شروع ہونے والی گنتی نونس کا استعمال کرتا ہے۔ ہر انکرپٹ/ڈیکرپٹ آپریشن کے بعد، نونس کو ایک سے بڑھایا جاتا ہے گویا یہ ایک غیر دستخط شدہ لٹل اینڈین انٹیجر ہے۔ نوٹ کریں کہ ہر TCP حصہ میں دو AEAD انکرپٹ/ڈیکرپٹ آپریشنز شامل ہیں: ایک پے لوڈ کی لمبائی کے لیے، اور ایک پے لوڈ کے لیے۔ اس لیے ہر ٹکڑا غیر کو دو بار بڑھاتا ہے۔

ٹی سی پی

ایک AEAD انکرپٹڈ TCP سٹریم فی سیشن ذیلی کلید حاصل کرنے کے لیے تصادفی طور پر تیار کردہ نمک کے ساتھ شروع ہوتا ہے، اس کے بعد کسی بھی تعداد میں انکرپٹڈ ٹکڑوں کا استعمال ہوتا ہے۔ ہر ٹکڑے میں درج ذیل ڈھانچہ ہوتا ہے:

[انکرپٹڈ پے لوڈ کی لمبائی][لمبائی ٹیگ][انکرپٹڈ پے لوڈ][پے لوڈ ٹیگ]

 

پے لوڈ کی لمبائی 2x0FFF پر کیپ شدہ ایک 3 بائٹ بڑے اینڈین غیر دستخط شدہ عدد ہے۔ اعلی دو بٹس محفوظ ہیں اور صفر پر سیٹ ہونا ضروری ہے۔ پے لوڈ اس لیے 16*1024 - 1 بائٹس تک محدود ہے۔

پہلا AEAD انکرپٹ/ڈیکرپٹ آپریشن 0 سے شروع ہونے والی گنتی نونس کا استعمال کرتا ہے۔ ہر انکرپٹ/ڈیکرپٹ آپریشن کے بعد، نونس کو ایک سے بڑھایا جاتا ہے گویا یہ ایک غیر دستخط شدہ لٹل اینڈین انٹیجر ہے۔ نوٹ کریں کہ ہر TCP حصہ میں دو AEAD انکرپٹ/ڈیکرپٹ آپریشنز شامل ہیں: ایک پے لوڈ کی لمبائی کے لیے، اور ایک پے لوڈ کے لیے۔ اس لیے ہر ٹکڑا غیر کو دو بار بڑھاتا ہے۔

اپنا 5 دن کا مفت ٹرائل شروع کریں۔