ایک ایسے منظر نامے پر غور کریں جہاں آپ کو بینک والٹ محفوظ کرنے کی ضرورت ہے۔ اسے بغیر کسی چابی کے بالکل ناقابل تسخیر سمجھا جاتا ہے، جو آپ کو کام کے پہلے ہی دن دی جاتی ہے۔ آپ کا مقصد کلید کو محفوظ طریقے سے ذخیرہ کرنا ہے۔
ہم کہتے ہیں کہ آپ چابی کو ہر وقت اپنے پاس رکھنے کا فیصلہ کرتے ہیں، ضرورت کے مطابق اسٹوریج تک رسائی فراہم کرتے ہیں۔ لیکن آپ کو جلد ہی احساس ہو جائے گا کہ اس طرح کا حل عملی طور پر ٹھیک نہیں ہے، کیونکہ جب بھی آپ اسٹوریج کھولتے ہیں تو آپ کی جسمانی موجودگی ضروری ہوتی ہے۔ آپ سے جس چھٹی کا وعدہ کیا گیا تھا اس کا کیا ہوگا؟ اس کے علاوہ، سوال اور بھی خوفناک ہے: اگر آپ اپنی واحد چابی کھو دیں تو کیا ہوگا؟
آپ کی چھٹی کو ذہن میں رکھتے ہوئے، آپ کلید کی ایک کاپی بنانے اور اسے دوسرے ملازم کے سپرد کرنے کا فیصلہ کرتے ہیں۔ تاہم، آپ سمجھتے ہیں کہ یہ بھی مثالی نہیں ہے۔ چابیاں کی تعداد کو دوگنا کرنے سے، آپ چابی کی چوری کے امکانات کو بھی دوگنا کر دیتے ہیں۔
مایوسی میں، آپ ڈپلیکیٹ کو تباہ کرتے ہیں اور اصل کلید کو نصف میں تقسیم کرنے کا فیصلہ کرتے ہیں۔ اب، آپ سوچیں گے کہ چابی جمع کرنے اور والٹ کھولنے کے لیے دو قابل اعتماد افراد کو چابی کے ٹکڑوں کے ساتھ جسمانی طور پر موجود ہونا پڑے گا۔ اس کا مطلب ہے کہ چور کو دو ٹکڑے چوری کرنے کی ضرورت ہے، جو ایک چابی چوری کرنے سے دوگنا مشکل ہے۔ تاہم، آپ کو جلد ہی احساس ہو جائے گا کہ یہ سکیم صرف ایک چابی سے زیادہ بہتر نہیں ہے، کیونکہ اگر کوئی آدھی چابی کھو دیتا ہے تو پوری چابی واپس نہیں مل سکتی۔
مسئلہ کو اضافی چابیاں اور تالے کی ایک سیریز کے ساتھ حل کیا جا سکتا ہے، لیکن اس نقطہ نظر کی فوری ضرورت ہوگی۔ много چابیاں اور تالے. آپ فیصلہ کرتے ہیں کہ مثالی ڈیزائن کلید کا اشتراک کرنا ہوگا تاکہ سیکیورٹی مکمل طور پر ایک شخص پر انحصار نہ کرے۔ آپ یہ بھی نتیجہ اخذ کرتے ہیں کہ ٹکڑوں کی تعداد کے لیے کچھ حد ہونا ضروری ہے تاکہ اگر ایک ٹکڑا کھو جائے (یا اگر کوئی شخص چھٹی پر جاتا ہے) تو پوری کلید کام کرتی رہے۔
راز بانٹنے کا طریقہ
اس قسم کی کلیدی انتظامی اسکیم کے بارے میں آدی شامیر نے 1979 میں سوچا جب اس نے اپنا کام شائع کیا۔ . مضمون مختصر طور پر نام نہاد کی وضاحت کرتا ہے
ایک خفیہ قدر (جیسے ایک خفیہ کلید) کو مؤثر طریقے سے تقسیم کرنے کے لیے تھریشولڈ اسکیم
حصے پھر، جب اور صرف جب کم از کم
کی
حصوں کو جمع کیا جاتا ہے، آپ آسانی سے راز کو بحال کر سکتے ہیں
.
سیکورٹی کے نقطہ نظر سے، اس اسکیم کی ایک اہم خاصیت یہ ہے کہ حملہ آور کو بالکل کچھ نہیں معلوم ہونا چاہیے جب تک کہ اس کے پاس کم از کم
حصے یہاں تک کہ موجودگی
حصوں کو کوئی معلومات فراہم نہیں کرنا چاہئے. ہم اس پراپرٹی کو کہتے ہیں۔ سیمنٹک سیکورٹی.
کثیر الجہتی انٹرپولیشن
شمیر تھریشولڈ اسکیم
تصور کے ارد گرد بنایا کثیر الجہتی انٹرپولیشن. اگر آپ اس تصور سے واقف نہیں ہیں، تو یہ حقیقت میں کافی آسان ہے۔ درحقیقت، اگر آپ نے کبھی گراف پر پوائنٹس بنائے ہیں اور پھر انہیں لائنوں یا منحنی خطوط سے جوڑ دیا ہے، تو آپ اسے پہلے ہی استعمال کر چکے ہیں!

دو پوائنٹس کے ذریعے آپ ڈگری 2 کے کثیر ناموں کی لامحدود تعداد کھینچ سکتے ہیں۔ ان میں سے صرف ایک کو منتخب کرنے کے لیے، آپ کو تیسرے پوائنٹ کی ضرورت ہے۔ مثال:
ڈگری ایک کے ساتھ کثیر الثانی پر غور کریں،
. اگر آپ اس فنکشن کو گراف پر پلاٹ کرنا چاہتے ہیں تو آپ کو کتنے پوائنٹس کی ضرورت ہے؟ ٹھیک ہے، ہم جانتے ہیں کہ یہ ایک لکیری فنکشن ہے جو ایک لائن بناتا ہے اور اس لیے اسے کم از کم دو پوائنٹس کی ضرورت ہوتی ہے۔ اگلا، ڈگری دو کے ساتھ ایک کثیر الثانی فعل پر غور کریں،
. یہ ایک چوکور فنکشن ہے، لہذا گراف کو پلاٹ کرنے کے لیے کم از کم تین پوائنٹس کی ضرورت ہے۔ ڈگری تین کے ساتھ کثیر الثانی کے بارے میں کیا خیال ہے؟ کم از کم چار پوائنٹس۔ وغیرہ وغیرہ۔
اس خاصیت کے بارے میں واقعی اچھی چیز یہ ہے کہ، کثیر الثانی فعل کی ڈگری کو دیکھتے ہوئے اور کم از کم
پوائنٹس، ہم اس کثیر الثانی فعل کے لیے اضافی پوائنٹس حاصل کر سکتے ہیں۔ ہم ان اضافی نکات کو ایکسٹراپولیشن کہتے ہیں۔ کثیر الجہتی انٹرپولیشن.
راز بنانا
آپ پہلے ہی سمجھ چکے ہوں گے کہ یہیں سے شامیر کی چالاک اسکیم کام آتی ہے۔ آئیے اپنا راز بتاتے ہیں۔
ہے -
. ہم پلٹ سکتے ہیں۔
گراف پر ایک نقطہ پر
اور ڈگری کے ساتھ ایک کثیر الثانی فعل کے ساتھ آئیں
، جو اس نکتے کو پورا کرتا ہے۔ آئیے آپ کو یاد دلاتے ہیں۔
مطلوبہ ٹکڑوں کی ہماری حد ہوگی، لہذا اگر ہم حد کو تین ٹکڑوں پر سیٹ کرتے ہیں، تو ہمیں ڈگری دو کے ساتھ ایک کثیر الثانی فعل کا انتخاب کرنا چاہیے۔
ہمارے کثیر القومی کی شکل ہوگی۔
جہاں
и
- تصادفی طور پر منتخب کردہ مثبت عدد۔ ہم صرف ڈگری کے ساتھ ایک کثیر الجہتی تشکیل دے رہے ہیں۔
، جہاں مفت عددی سر
- یہ ہمارا راز ہے۔
، اور اس کے بعد کے ہر ایک کے لیے
شرائط تصادفی طور پر منتخب کردہ مثبت گتانک ہے۔ اگر ہم اصل مثال کی طرف لوٹتے ہیں اور فرض کرتے ہیں۔
، پھر ہمیں فنکشن ملتا ہے۔
.
اس مقام پر ہم جوڑ کر ٹکڑے پیدا کر سکتے ہیں۔
میں منفرد عدد
جہاں
(کیونکہ یہ ہمارا راز ہے)۔ اس مثال میں، ہم تین کی حد کے ساتھ چار ٹکڑوں کو تقسیم کرنا چاہتے ہیں، لہذا ہم تصادفی طور پر پوائنٹس پیدا کرتے ہیں۔
اور چار بھروسہ مند لوگوں میں سے ہر ایک کو ایک پوائنٹ بھیجیں، جو کلید کے محافظ ہیں۔ ہم لوگوں کو یہ بھی بتاتے ہیں۔
چونکہ اسے عوامی معلومات سمجھا جاتا ہے اور بازیابی کے لیے ضروری ہے۔
.
راز کی بازیافت
ہم نے پہلے ہی کثیر الجہتی انٹرپولیشن کے تصور پر تبادلہ خیال کیا ہے اور یہ کس طرح شمیر کی دہلیز اسکیم کو زیر کرتا ہے۔
. جب چار میں سے کوئی تین ٹرسٹیز بحال کرنا چاہیں۔
، انہیں صرف انٹرپولیٹ کرنے کی ضرورت ہے۔
اپنے منفرد پوائنٹس کے ساتھ۔ ایسا کرنے کے لیے، وہ اپنے نکات کا تعین کر سکتے ہیں۔
اور مندرجہ ذیل فارمولے کا استعمال کرتے ہوئے Lagrange انٹرپولیشن پولنومیل کا حساب لگائیں۔ اگر پروگرامنگ آپ کے لیے ریاضی سے زیادہ واضح ہے، تو pi بنیادی طور پر ایک آپریٹر ہے۔ for، جو تمام نتائج کو ضرب دیتا ہے، اور سگما ہے۔ for، جو ہر چیز کو جوڑتا ہے۔


میں
ہم اسے اس طرح حل کر سکتے ہیں اور اپنا اصل کثیر الثانی فعل واپس کر سکتے ہیں:

چونکہ ہم یہ جانتے ہیں۔
، بحالی
آسانی سے کیا:

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

حملہ آور پھر تلاش کر سکتا ہے۔
، گنتی
:

چونکہ ہم نے وضاحت کی ہے۔
تصادفی طور پر منتخب کردہ مثبت عدد کے طور پر، ممکن کی ایک محدود تعداد ہے۔
. اس معلومات کا استعمال کرتے ہوئے، حملہ آور اندازہ لگا سکتا ہے۔
، چونکہ 5 سے زیادہ کچھ بھی کرے گا۔
منفی جب سے ہم نے فیصلہ کیا ہے یہ سچ نکلا ہے۔ 
حملہ آور پھر ممکنہ اقدار کا حساب لگا سکتا ہے۔
تبدیل کرنا
в
:

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

اب ہمارے حملہ آور کو دوبارہ مل گیا ہے۔
، حساب لگانا
:

پھر وہ دوبارہ کوشش کرتا ہے۔
تبدیل کرنا
в
:

اس بار اسے ایک سنگین مسئلہ درپیش ہے۔ فارمولہ غائب اقدار
,
и
. چونکہ ان متغیرات کے مجموعہ کی لامحدود تعداد ہے، وہ کوئی اضافی معلومات حاصل نہیں کر سکتا۔
سیکیورٹی کے تحفظات
شمیر کی خفیہ شیئرنگ اسکیم بتاتی ہے۔ معلومات کے نظریہ کے نقطہ نظر سے سیکورٹی. اس کا مطلب ہے کہ ریاضی لامحدود کمپیوٹنگ طاقت کے حامل حملہ آور کے خلاف بھی مزاحم ہے۔ تاہم، سرکٹ میں اب بھی کئی معلوم مسائل موجود ہیں۔
مثال کے طور پر شامیر کی سکیم نہیں بنتی چیک کرنے کے لئے ٹکڑے، یعنی، لوگ آزادانہ طور پر جعلی ٹکڑے پیش کر سکتے ہیں اور صحیح راز کی بازیابی میں مداخلت کر سکتے ہیں۔ کافی معلومات کے ساتھ ایک دشمن ٹکڑا کیپر تبدیل کرکے ایک اور ٹکڑا بھی پیدا کرسکتا ہے۔
آپ کی اپنی صوابدید پر. یہ مسئلہ استعمال کرکے حل کیا جاتا ہے۔ قابل تصدیق خفیہ شیئرنگ اسکیمیں، جیسے فیلڈ مین کی اسکیم۔
ایک اور مسئلہ یہ ہے کہ کسی بھی ٹکڑے کی لمبائی متعلقہ راز کی لمبائی کے برابر ہوتی ہے، اس لیے راز کی لمبائی کا تعین کرنا آسان ہے۔ اس مسئلے کو معمولی سے حل کیا جاسکتا ہے۔ بھرتی ایک مقررہ لمبائی تک صوابدیدی نمبروں کے ساتھ خفیہ۔
آخر میں، یہ نوٹ کرنا ضروری ہے کہ ہمارے سیکورٹی خدشات خود ڈیزائن سے آگے بڑھ سکتے ہیں۔ حقیقی دنیا کی کرپٹوگرافک ایپلی کیشنز کے لیے، اکثر سائیڈ چینل حملوں کا خطرہ ہوتا ہے جہاں حملہ آور ایپلی کیشن کے عمل کے وقت، کیشنگ، کریش وغیرہ سے مفید معلومات نکالنے کی کوشش کرتا ہے۔ اگر یہ ایک تشویش ہے تو، ترقی کے دوران حفاظتی اقدامات جیسے فنکشنز اور مستقل وقت کی تلاش، میموری کو ڈسک میں محفوظ ہونے سے روکنے، اور اس مضمون کے دائرہ کار سے باہر کی متعدد دیگر باتوں پر احتیاط سے غور کیا جانا چاہیے۔
Демо
پر شمیر کی خفیہ شیئرنگ اسکیم کا ایک انٹرایکٹو مظاہرہ ہے۔ لائبریری کی بنیاد پر مظاہرہ ، جو خود مقبول پروگرام کا جاوا اسکرپٹ پورٹ ہے۔ . نوٹ کریں کہ بڑی قدروں کا حساب لگانا
,
и
کچھ وقت لگ سکتا ہے۔
ماخذ: www.habr.com
