آزمایشگاه آزاد؛ بدون نیاز به ورود
دیفیهلمن؛ دو راز و یک کلید مشترک
الیس و باب یک پایهٔ عمومی و دو راز جدا دارن. هرکدوم پایه رو به توان راز خودش میرسونه و باقیماندهٔ تقسیم بر ۳۵۹ رو میفرسته. بعد هر نفر نتیجهای رو که گرفته دوباره با راز خودش حساب میکنه؛ آخرش باید به یک عدد مشترک برسن.
آزمایش رو شروع کنبرای شروع پایهٔ عمومی رو روی ۵، راز الیس رو روی ۱۰ و راز باب رو روی ۱۵ بذار. مدل کلید مشترک رو ۱۳۳ حساب میکنه و میگه دو طرف به یک نتیجه رسیدن.
آزمایشگاه در حال آماده شدنه…
حالا خودت امتحان کن
هر بار فقط یک چیز رو تغییر بده تا اثرش رو ببینی. قبل از اجرا، نتیجه رو حدس بزن.
دو راه، یک کلید
پایهٔ عمومی رو ۵، راز الیس رو ۱۰ و راز باب رو ۱۵ بذار. دو عددی رو که فرستاده میشن و عدد کلید مشترک رو از شکل و خروجیها بخون.
حدست چیه؟ فکر میکنی الیس و باب در پایان به یک عدد میرسن؟
توضیح نتیجه رو ببین
الیس ۱۰۷ و باب ۱۴۶ رو میفرستن؛ بعد هر دو به کلید ۱۳۳ میرسن و خروجی یکسانبودن کلید ۱۰۰٪ میشه. در این نمونهٔ کوچیک، جستوجوی عدد ارسالی الیس هم ۱۱ آزمون طول میکشه.
با عوضشدن یک راز چه میشه؟
پایه رو ۵ و راز باب رو ۱۵ ثابت نگه دار. راز الیس رو یک بار ۱۰ و بار دیگه ۲۰ بذار؛ کلید مشترک و تعداد آزمونها رو مقایسه کن.
حدست چیه؟ اگر فقط راز الیس عوض بشه، عدد کلید همون میمونه یا تغییر میکنه؟
توضیح نتیجه رو ببین
با راز الیسِ ۱۰، کلید ۱۳۳ و تعداد آزمون ۱۱ه؛ با راز ۲۰، کلید ۹۸ و تعداد آزمون ۲۱ میشه. در هر دو حالت خروجی میگه دو طرف به یک کلید رسیدهن؛ آزمونها فقط جستوجوی سادهٔ همین مثال کوچیک رو نشون میدن.
اگر رازها جابهجا بشن چی؟
پایه رو ۵ بذار و اول رازهای الیس و باب رو ۱۰ و ۱۵ تنظیم کن. بعد فقط جاشون رو عوض کن: الیس ۱۵ و باب ۱۰.
حدست چیه؟ با جابهجایی رازها، کلید مشترک تغییر میکنه؟
توضیح نتیجه رو ببین
در هر دو حالت کلید ۱۳۳ میمونه، ولی دو عدد ارسالی جاشون عوض میشه. دلیلش اینه که حاصلضرب دو راز با جابهجایی تغییر نمیکنه؛ تعداد آزمونهای جستوجو هم میتونه فرق کنه.
پشت این حرکت چه خبره؟
چه چیزی فرستاده میشه؟
A=g^a mod p;B=g^b mod p
پایهٔ عمومی رو هر دو میدونن، اما رازهای هر نفر پیش خودش میمونه. هر طرف پایه رو با راز خودش ترکیب میکنه و فقط نتیجهٔ پیمانهای رو میفرسته.
چرا نتیجه یکی میشه؟
K=B^a mod p=A^b mod p=g^(ab) mod p
الیس عدد باب رو با راز خودش دوباره به توان میرسونه و باب هم عدد الیس رو با راز خودش. در حساب پیمانهای هر دو در نهایت به همان حاصل میرسن؛ رنگ فقط راهی تصویری برای دیدن عددهاست.
چرا این مثال برای امنیت واقعی نیست؟
p=359;g=publicColor mod p;a=aliceSecret;b=bobSecret
اینجا پیمانه فقط ۳۵۹ه و حسابگر میتونه راز رو با چندصد آزمون پیدا کنه. این کوچیکی کمک میکنه ایده رو ببینی، ولی رمز امن نمیسازه؛ پایهٔ صفر یا یک هم خروجی مفیدی نمیده.
سؤالت رو بپرس، جوابش رو هم ببین
وقتی توی چت دربارهٔ یک مفهوم درس میخونی، دستیار هوش مصنوعی میتونه شبیهسازی مرتبط رو کنار توضیحش نشون بده. پارامترها رو تغییر میدی و با کمک توضیح بعدی، نتیجه رو بهتر میفهمی.
شروع یادگیری با چتبرای ادامه در چت، وارد مسیر شروع و ورود میشی. نتیجهٔ این آزمایش به چت منتقل نمیشه.
نمونهٔ نمایشی از آموزش در چت
چطور دو نفر بدون فرستادن رازهاشون به یک عدد مشترک میرسن؟
هر نفر پایهٔ عمومی رو با راز خودش حساب میکنه و نتیجه رو میفرسته. بعد نتیجهٔ طرف مقابل رو دوباره با راز خودش ترکیب میکنه؛ بهخاطر قانون توانها، هر دو در پایان به یک مقدار میرسن. در این صفحه پیمانه خیلی کوچیکه و جستوجو سادهست، پس فقط برای فهم ایده ازش استفاده کن.
سؤالهای رایج
چرا کلید نهایی دو طرف یکی میشه؟
هر دو پایهٔ یکسانی دارن و رازهای خودشون رو روی نتیجهٔ طرف مقابل اعمال میکنن. ترتیب دو راز در حاصلضرب توانها فرقی نمیکنه، پس مقدار پیمانهای نهایی یکی میشه.
باقیماندهٔ تقسیم بر ۳۵۹ یعنی چی؟
هر عددی که از توانگیری درمیآد، بر ۳۵۹ تقسیم میشه و فقط باقیمانده نگه داشته میشه. به این حساب، حساب پیمانهای میگن.
عدد آزمونهای شنودگر چی رو نشون میده؟
در این مدل، حسابگر توانهای ممکن رو یکییکی امتحان میکنه تا عددی رو پیدا کنه که الیس فرستاده. چون پیمانه فقط ۳۵۹ه، این جستوجو کوچیکه و دربارهٔ امنیت رمزنگاری واقعی چیزی ثابت نمیکنه.
میشه از رنگ مشترک بهعنوان رمز واقعی استفاده کرد؟
نه. عددها اینجا کوچک و به رنگ نگاشت شدن تا حساب دیده بشه؛ برای ساخت کلید واقعی باید از روشها و پارامترهای استاندارد استفاده کرد.