آپ کو جاوا میں خفیہ کاری کے بارے میں جاننے کی ضرورت ہے



یہ مضمون آپ کو جاوا میں خفیہ کاری کے بارے میں تفصیلی اور جامع معلومات فراہم کرے گا اور مثالوں کے ساتھ اس کا استعمال کیسے کریں۔

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

جاوا میں خفیہ کاری کا تعارف

خفیہ کاری کا اطلاق ہمارے ڈیٹا (جیسے متون ، گفتگو کے اشتہار کی آواز) کی حفاظت کے لئے کیا جاتا ہے ، خواہ وہ کمپیوٹر پر بیٹھا ہو یا اسے انٹرنیٹ پر بھیجا جائے۔ حالیہ خفیہ کاری کی ٹیکنالوجیز کسی بھی محفوظ کمپیوٹنگ ماحول کے لئے ضروری عنصر ہیں۔





خفیہ کاری کی سیکیورٹی کا بنیادی کردار سائف ٹیکسٹ (انکرپٹڈ ٹیکسٹ) پیدا کرنے کے لئے الگورتھم کی صلاحیت میں ہے جو اس کے اصلی سادہ متن میں پلٹنا سخت ہے۔ چابیاں کا استعمال بھی ہماری معلومات کو محفوظ رکھنے کے طریقوں کی حفاظت کا ایک اور درجہ پیدا کرتا ہے۔ ایک کلید کچھ معلومات ہے ، جو صرف ان لوگوں کو اجازت دیتا ہے جو اس کو روک کر پیغام کو انکوڈ اور ڈیکوڈٹ کرسکتے ہیں۔

جاوا میں خفیہ کاری اور ڈکرپشن



توازن خفیہ کاری الگورتھم

توازن الگورتھم ایک ہی کلید کو خفیہ کاری اور ڈکرپشن کے لئے استعمال کرتے ہیں۔ اس طرح کے الگورتھم صرف بلاک وضع میں کام کر سکتے ہیں (جو اعداد و شمار کے فکسڈ سائز بلاکس پر کام کرتا ہے) یا اسٹریم وضع (جو بٹس یا ڈیٹا کے بائٹس پر کام کرتا ہے)۔ اس طرح کے الگورتھممواصلات نیٹ ورکس (جیسے TLS ، ای میلز ، فوری پیغامات ، وغیرہ) میں ڈیٹا انکرپشن ، فائل انکرپشن اور منتقل کردہ ڈیٹا کو خفیہ کرنا جیسے ایپلی کیشنز کے لئے بھی عام طور پر استعمال کیا جاتا ہے۔

غیر متناسب (یا عوامی کلید) خفیہ کاری الگورتھم

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



کسی بھی بنیادی انکرپشن سکیم کو محفوظ طریقے سے تشکیل کرنے کے ل it ، یہ بہت ضروری ہے کہ اس طرح کے تمام پیرامیٹرز (کم سے کم) صحیح طریقے سے تیار کیے گئے ہیں:

  • صحیح الگورتھم کا انتخاب ضروری ہے۔
  • مناسب کام کے لئے صحیح طریقہ کار کا انتخاب کرنا
  • ضرورت کے مطابق صحیح پیڈنگ اسکیم کا انتخاب کرنا
  • اس کے مطابق صحیح چابیاں اور ان کے سائز کا انتخاب کرنا
  • خفیہ نگاری سے محفوظ سی ایس پی آرنگ کے ساتھ ابتداء درست کریں۔

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

جوابدہ اور شیف کے مابین فرق

کلاس درجہ بندی کا تعارف ، بہت زیادہ بوجھ والے کنسٹرکٹرز / طریقوں اور اسی طرح بہت ساری پیچیدگیاں شامل کرنا ، جو اس کو غیر ضروری بنا دیتے ہیں۔ کاش جاوا بنیادی تشکیلات کو پیچیدہ نہ بنائے اور مائیکروسافٹ جیسے آسان طرز تعمیر کو استعمال کرے ، جہاں ایسے تمام پیرامیٹرز ایک ہی طبقے کے SymmetricAggithm اور AsymmetricAlgorithm کے دائرے میں ہوتے ہیں۔ پہلے تین پیرامیٹرز کی وضاحت کے ل For (الگورتھم ، آپریشن کا طریقہ کار اور بھرتی اسکیم) ، ایک سائفر آبجیکٹ تبدیلی کی تار استعمال کرتا ہے۔

  • دائیں الگورتھم کا انتخاب

ایک تبدیلی والے تار میں بلا شبہ ایک کریپٹوگرافک الگورتھم کا نام شامل ہے۔ توازن اور غیر متناسب خفیہ کاری کے درمیان ، یہاں 11 الگورتھم (مختلف PBWithAnd مجموعہ کے بارے میں نہیں) ہیں ، جو معیاری الگورتھم نام دستاویزات کے مطابق بیان کیے جا سکتے ہیں۔ ان میں سے صرف دو (ہر ایک کے لئے ، متوازی اور غیر متناسب انکرپٹ) اصل میں مکمل طور پر محفوظ ہیں۔

جاوا اور سی ++ میں کیا فرق ہے؟

باقی الگورتھم یا تو ضرورت سے زیادہ ٹوٹ چکے ہیں (ڈی ای ایس ، آر سی 2 ، وغیرہ) یا دراڑیں (آر سی 5) سطح پر آنا شروع ہو گئیں ہیں ، جس سے یہ کافی سی پی یو طاقت کے ذریعہ توڑ پزیر ہوجاتا ہے۔ سیکیورٹی کے ذہن رکھنے والا ایک ڈویلپر شاید این آئی ایس ٹی کی خصوصیات کو نہیں پڑھ سکتا ہے ، اور نہ ہی خفیہ نگاری کی کمیونٹی میں تازہ ترین واقعات اور تحقیق کی پیروی کرسکتا ہے۔ وہ ٹوٹا ہوا یا خطرناک الگورتھم ، ڈائجسٹ یا چھدم بے ترتیب جنریٹر اٹھا سکتے ہیں۔

ہمیشہ کے لئے:

  1. توازن الگورتھم: AES / AESWrap بلاک سائفر استعمال کیا جاتا ہے۔

  2. غیر متناسب الگورتھم: RSA استعمال کیا جاتا ہے۔

  • آپریشن کا انداز

آپریشن کا طریقہ کار تبدیلی کا ایک حصہ ہے اور یہ صرف سائپرز کو روکنے کے لئے ہی متعلق ہے۔ جب ہم غیر متنازعہ سائفرز کا استعمال کرتے ہیں تو ، ای سی بی کو آپریشن کے موڈ کے طور پر استعمال کریں ، جو بنیادی طور پر پردے کے پیچھے ایک ہیک ہوتا ہے ، یعنی اس قدر کو نظرانداز کریں۔ جاوا فراہم کرنے والے جیسے سن جے سی ای ، سن پی کے سی ایس 11 توازن اور غیر متناسب الگورتھم کے لئے ای سی بی وضع میں پہلے سے طے شدہ ہیں۔ یہ غیر متناسب الگورتھم کے ل a اچھی بات ہوسکتی ہے ، لیکن بلاک سائفروں کے لئے برا خیال ہے۔

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

جیسا کہ اوپر دیا گیا ہے ، AES الگورتھم کو ECB موڈ کے ساتھ استعمال کیا جائے گا ، جس سے ری پلے حملے بہت آسان ہوجاتے ہیں۔ نئی ترقی کے ل if ، اگر پرانے کام میں بہتری لانے کا معمولی سا امکان موجود ہو تو ، ہمیں متعلقہ ڈیٹا (AEAD) موڈ (مثال کے طور پر GCM اور CCM) کے ساتھ تصدیق شدہ خفیہ کاری کا استعمال کرنا چاہئے۔ ہمارے پاس توثیق کا ٹیگ ہے جس میں پوری 128 بٹس لمبائی ہے۔ اگر ہم غیر تصدیق شدہ وضع استعمال کرتے ہیں تو ہم سیف ٹیرکس کی توثیق کرنے کیلئے میک کے ساتھ سی بی سی یا سی ٹی آر کا استعمال کرتے ہیں۔

  • مناسب بھرتی اسکیم کا انتخاب

عام بلاک سائفر طریقوں کو بنیادی خفیہ کاری الگورتھم کے بلاک سائز کے ایک سے زیادہ ہونے کے لئے سادہ متن کی لمبائی کی ضرورت ہوتی ہے ، جو شاذ و نادر ہی ہوتا ہے۔ اس طرح ، ہمیں کچھ بھرنے کی ضرورت ہے۔جاوا پروگرام ہمیں توازن والے خفیہ کاری کے لئے تین مختلف اسکیمیں مہیا کرتا ہے ، ایک نو پیڈنگ ، جو ناقابل قبول ہے اور دوسرا ISO10126 پیڈنگ جو 2007 کے بعد واپس لیا گیا ہے)۔

لہذا ، واحد موزوں آپشن پی کے سی ایس 5 پیڈنگ کا استعمال ہے۔ آپریشن کے کچھ طریقوں (مثال کے طور پر سی بی سی موڈ) اور پی کے سی ایس 5 پیڈنگ پیڈنگ اسکیم کا مرکب پیڈ اوریکل کے حملوں کا باعث بن سکتا ہے۔ کسی گندگی کی اسکیم کا ذکر نہ کرنا اس طرح کی اسکیم فراہم کرنے سے کہیں زیادہ خطرناک ہے جو صرف کچھ خاص قسم کے حملوں کے لئے ہی حساس ہے۔ آپریشن کے AEAD طرز کی سب سے زیادہ سفارش کی جاتی ہے کہ آپ اس بات کا یقین کریں کہ آپ ان حملوں سے محفوظ رہیں۔

  • غیر متناسب الگورتھم

غیر متناسب الگورتھم میں ، ہمارے پاس دو بھرتی اسکیموں میں سے انتخاب کرنے کا اختیار موجود ہے۔ یہ یقینی بنانا ضروری ہے کہ صرف OAEPWithAndPadding اسکیمیں ہی استعمال ہوں۔ ہضم ہونے کی صورت میں ، براہ کرم SHA1 یا SHA256 / 384/512 استعمال کریں۔ ماسک جنریشن فنکشن (ایم جی ایف) کے لئے ، براہ کرم ایم جی ایف 1 کی بھرتی کو بطور مخصوص استعمال کریں۔ پی کے سی ایس 1 پیڈنگ آر ایس اے کے ساتھ 1998 سے سائپر ٹیکسٹ حملوں [6] کا خطرہ ہے۔

یہاں ہم 'Cipher.getInstance' کے طریقہ کار میں تبدیلی کو استعمال کرنے کے صحیح طریقے کے بارے میں بات کرتے ہیں۔

جاوا میں سیریلائزیشن کا کیا استعمال ہے؟
  • سڈول خفیہ کاری

  • غیر متناسب خفیہ کاری

کسی بھی انکرپشن اسکیم کا سیکیورٹی سطح براہ راست اس کی کلید کے سائز کے متناسب ہوتا ہے۔ کلیدی لمبائی اتنی لمبی ہونی چاہئے کہ جو بھی طاقتور حملہ کرتا ہے وہ بیک وقت ناقابل عمل ہوجاتا ہے ، اس میں کمپیوٹیشنل فزیبلٹی کو ذہن میں رکھنے کے ل enough بھی بہت کم ہونا چاہئے۔ اس کے علاوہ ، ہمیں اس بات پر بھی غور کرنے کی کوشش کرنی ہوگی کہ اگلے 30 سالوں میں کمپیوٹیشنل ترقی کو کس چیز کا سامنا ہے۔

اس کے ساتھ ، ہم جاوا کے مضمون میں خفیہ کاری کے اختتام پر پہنچے ہیں۔ مجھے امید ہے کہ آپ کو خفیہ کاری اور ڈیکریپشن کا اندازہ ملا ہے اور یہ جاوا میں کیوں استعمال ہوتا ہے۔

چیک کریں ایڈوریکا کے ذریعہ ، ایک قابل اعتماد آن لائن سیکھنے والی کمپنی جس کی دنیا بھر میں 250،000 سے زیادہ مطمئن سیکھنے والوں کے نیٹ ورک ہیں۔ ایڈورکا کا جاوا J2EE اور SOA ٹریننگ اور سرٹیفیکیشن کورس طلباء اور پیشہ ور افراد کے لئے ڈیزائن کیا گیا ہے جو جاوا ڈویلپر بننا چاہتے ہیں۔ کورس آپ کو جاوا پروگرامنگ میں آغاز فراہم کرنے اور ہائبرنیٹ اور اسپرنگ جیسے جاوا کے مختلف فریم ورکوں کے ساتھ ساتھ جاوا کے دونوں بنیادی خیالات کے ساتھ تربیت دینے کے لئے ڈیزائن کیا گیا ہے۔

ہمارے لئے ایک سوال ہے؟ برائے کرم اس 'جاوا میں خفیہ کاری' بلاگ کے تبصرے سیکشن میں اس کا تذکرہ کریں اور ہم جلد از جلد آپ کے پاس مل جائیں گے۔