طرح به اشتراک گذاری راز Shamir

سناریویی را در نظر بگیرید که در آن باید صندوق بانکی را ایمن کنید. بدون کلید کاملاً غیرقابل نفوذ در نظر گرفته می شود که در همان روز اول کار به شما داده می شود. هدف شما ذخیره ایمن کلید است.

فرض کنید تصمیم دارید کلید را همیشه نزد خود نگه دارید و در صورت نیاز به فضای ذخیره سازی دسترسی داشته باشید. اما شما به سرعت متوجه خواهید شد که چنین راه حلی در عمل مقیاس خوبی ندارد، زیرا هر بار که ذخیره سازی را باز می کنید، حضور فیزیکی شما لازم است. در مورد تعطیلاتی که به شما قول داده بودند چطور؟ علاوه بر این، این سوال حتی ترسناک تر است: اگر تنها کلید خود را گم کنید چه؟

با در نظر گرفتن تعطیلات خود، تصمیم می گیرید یک کپی از کلید تهیه کنید و آن را به کارمند دیگری بسپارید. با این حال، می دانید که این نیز ایده آل نیست. با دو برابر کردن تعداد کلیدها، احتمال سرقت کلید را نیز دو برابر می کنید.

در ناامیدی، نسخه تکراری را از بین می‌برید و تصمیم می‌گیرید کلید اصلی را به دو نیم کنید. اکنون، شما فکر می کنید که دو فرد مورد اعتماد با قطعات کلید باید به صورت فیزیکی حضور داشته باشند تا کلید را جمع کنند و طاق را باز کنند. این بدان معنی است که یک دزد باید دو قطعه را بدزدد که دو برابر دزدیدن یک کلید دشوارتر است. با این حال، به زودی متوجه می شوید که این طرح خیلی بهتر از یک کلید نیست، زیرا اگر کسی نیمی از کلید را گم کند، کلید کامل قابل بازیابی نیست.

مشکل را می توان با یک سری کلید و قفل اضافی حل کرد، اما این روش به سرعت نیاز دارد много کلید و قفل شما تصمیم می گیرید که طراحی ایده آل این است که کلید را به اشتراک بگذارید تا امنیت به طور کامل به یک شخص متکی نباشد. همچنین به این نتیجه رسیدید که باید مقداری آستانه برای تعداد قطعات وجود داشته باشد تا اگر یک قطعه گم شود (یا اگر شخصی به تعطیلات برود)، کل کلید فعال بماند.

چگونه یک راز را به اشتراک بگذاریم

این نوع طرح مدیریت کلیدی توسط آدی شامیر در سال 1979 هنگام انتشار آثارش مورد توجه قرار گرفت "چگونه یک راز را به اشتراک بگذاریم". مقاله به طور خلاصه توضیح می دهد که به اصطلاح طرح به اشتراک گذاری راز Shamir طرح آستانه برای تقسیم مؤثر یک مقدار مخفی (مانند یک کلید رمزنگاری) به طرح به اشتراک گذاری راز Shamir قطعات. سپس، حداقل زمانی که و تنها زمانی طرح به اشتراک گذاری راز Shamir از طرح به اشتراک گذاری راز Shamir قطعات مونتاژ شده اند، شما به راحتی می توانید راز را بازیابی کنید طرح به اشتراک گذاری راز Shamir.

از نقطه نظر امنیتی، ویژگی مهم این طرح این است که مهاجم نباید مطلقاً چیزی بداند مگر اینکه حداقل چیزی را داشته باشد. طرح به اشتراک گذاری راز Shamir قطعات. حتی حضور طرح به اشتراک گذاری راز Shamir قطعات نباید هیچ اطلاعاتی ارائه دهند. ما به این ملک می گوییم امنیت معنایی.

درونیابی چند جمله ای

طرح آستانه شمیر طرح به اشتراک گذاری راز Shamir بر اساس مفهوم ساخته شده است درونیابی چند جمله ای. اگر با این مفهوم آشنا نیستید، در واقع بسیار ساده است. در واقع، اگر تا به حال نقاطی را روی یک نمودار رسم کرده اید و سپس آنها را با خطوط یا منحنی به هم متصل کرده اید، قبلاً از آن استفاده کرده اید!

طرح به اشتراک گذاری راز Shamir
از طریق دو نقطه می توانید تعداد نامحدودی چند جمله ای درجه 2 رسم کنید. برای انتخاب تنها یکی از آنها، به یک نقطه سوم نیاز دارید. تصویر: ویکیپدیا

چند جمله ای را با درجه یک در نظر بگیرید، طرح به اشتراک گذاری راز Shamir. اگر بخواهید این تابع را روی یک نمودار رسم کنید، به چند نقطه نیاز دارید؟ خوب، ما می دانیم که این یک تابع خطی است که یک خط را تشکیل می دهد و بنابراین حداقل به دو نقطه نیاز دارد. سپس یک تابع چند جمله ای با درجه دو را در نظر بگیرید، طرح به اشتراک گذاری راز Shamir. این یک تابع درجه دوم است، بنابراین حداقل سه نقطه برای رسم نمودار مورد نیاز است. چند جمله ای با درجه سه چطور؟ حداقل چهار امتیاز و به همین ترتیب، و غیره.

نکته جالب در مورد این ویژگی این است که با توجه به درجه تابع چند جمله ای و حداقل طرح به اشتراک گذاری راز Shamir نقاط، ما می توانیم نقاط اضافی برای این تابع چند جمله ای استخراج کنیم. ما برون یابی این نکات اضافی را می نامیم درونیابی چند جمله ای.

ساختن یک راز

شاید قبلاً متوجه شده باشید که این همان جایی است که نقشه هوشمندانه شامیر وارد عمل می شود. بیایید راز خود را بگوییم طرح به اشتراک گذاری راز Shamir - آیا طرح به اشتراک گذاری راز Shamir. می توانیم بچرخیم طرح به اشتراک گذاری راز Shamir به نقطه ای از نمودار طرح به اشتراک گذاری راز Shamir و یک تابع چند جمله ای با درجه ایجاد کنید طرح به اشتراک گذاری راز Shamir، که این نکته را برآورده می کند. بگذارید آن را به خاطر بیاوریم طرح به اشتراک گذاری راز Shamir آستانه قطعات مورد نیاز ما خواهد بود، بنابراین اگر آستانه را روی سه قطعه قرار دهیم، باید یک تابع چند جمله ای با درجه دو انتخاب کنیم.

چند جمله ای ما شکل خواهد داشت طرح به اشتراک گذاری راز Shamirجایی که طرح به اشتراک گذاری راز Shamir и طرح به اشتراک گذاری راز Shamir - اعداد صحیح مثبت به طور تصادفی انتخاب شده اند. ما فقط یک چند جمله ای با درجه می سازیم طرح به اشتراک گذاری راز Shamir، جایی که ضریب آزاد است طرح به اشتراک گذاری راز Shamir - این راز ماست طرح به اشتراک گذاری راز Shamirو برای هر یک از موارد بعدی طرح به اشتراک گذاری راز Shamir در شرایط یک ضریب مثبت تصادفی انتخاب شده وجود دارد. اگر به مثال اصلی برگردیم و فرض کنیم که طرح به اشتراک گذاری راز Shamir، سپس تابع را دریافت می کنیم طرح به اشتراک گذاری راز Shamir.

در این مرحله می‌توانیم با اتصال قطعاتی تولید کنیم طرح به اشتراک گذاری راز Shamir اعداد صحیح منحصر به فرد در طرح به اشتراک گذاری راز Shamirجایی که طرح به اشتراک گذاری راز Shamir (چون راز ماست). در این مثال، ما می خواهیم چهار قطعه را با آستانه سه توزیع کنیم، بنابراین به طور تصادفی امتیاز ایجاد می کنیم. طرح به اشتراک گذاری راز Shamir و برای هر یک از چهار نفر معتمد، متولیان کلید، یک امتیاز بفرستید. ما نیز این را به مردم اطلاع دادیم طرح به اشتراک گذاری راز Shamir، زیرا این اطلاعات عمومی محسوب می شود و برای بازیابی ضروری است طرح به اشتراک گذاری راز Shamir.

بازیابی راز

ما قبلاً در مورد مفهوم درونیابی چند جمله ای و چگونگی زیربنای طرح آستانه شامیر بحث کرده ایم. طرح به اشتراک گذاری راز Shamir. وقتی هر سه نفر از چهار متولی بخواهند بازیابی کنند طرح به اشتراک گذاری راز Shamir، آنها فقط نیاز به درون یابی دارند طرح به اشتراک گذاری راز Shamir با نکات منحصر به فرد خودش برای این کار می توانند امتیاز خود را مشخص کنند طرح به اشتراک گذاری راز Shamir و چند جمله ای درونیابی لاگرانژ را با استفاده از فرمول زیر محاسبه کنید. اگر برنامه نویسی برای شما واضح تر از ریاضیات است، پس اساساً pi یک عملگر است for، که همه نتایج را ضرب می کند و سیگما است for، که همه چیز را جمع می کند.

طرح به اشتراک گذاری راز Shamir

طرح به اشتراک گذاری راز Shamir

در طرح به اشتراک گذاری راز Shamir ما می توانیم آن را به این صورت حل کنیم و تابع چند جمله ای اصلی خود را برگردانیم:

طرح به اشتراک گذاری راز Shamir

چون ما این را می دانیم طرح به اشتراک گذاری راز Shamir، بهبود طرح به اشتراک گذاری راز Shamir به سادگی انجام می شود:

طرح به اشتراک گذاری راز Shamir

استفاده از محاسبات اعداد صحیح ناامن

اگرچه ما ایده اصلی شامیر را با موفقیت به کار برده ایم طرح به اشتراک گذاری راز Shamir، ما با مشکلی مانده ایم که تا به حال از آن چشم پوشی کرده ایم. تابع چند جمله ای ما از محاسبات اعداد صحیح ناامن استفاده می کند. توجه داشته باشید که به ازای هر نقطه اضافی که مهاجم در نمودار تابع ما به دست می آورد، امکانات کمتری برای نقاط دیگر وجود دارد. وقتی تعداد نقاط فزاینده ای را برای یک تابع چند جمله ای با استفاده از حساب اعداد صحیح رسم می کنید، می توانید این را با چشمان خود ببینید. این برای هدف امنیتی اعلام شده ما اثر معکوس دارد، زیرا مهاجم باید مطلقاً چیزی بداند تا زمانی که حداقل نداشته باشد طرح به اشتراک گذاری راز Shamir قطعات

برای نشان دادن اینکه مدار حسابی اعداد صحیح چقدر ضعیف است، سناریویی را در نظر بگیرید که در آن مهاجم دو امتیاز را به دست آورد. طرح به اشتراک گذاری راز Shamir و اطلاعات عمومی را می داند که طرح به اشتراک گذاری راز Shamir. از این اطلاعات او می تواند استنباط کند طرح به اشتراک گذاری راز Shamir، برابر با دو، و مقادیر شناخته شده را به فرمول وصل کنید طرح به اشتراک گذاری راز Shamir и طرح به اشتراک گذاری راز Shamir.

طرح به اشتراک گذاری راز Shamir

سپس مهاجم می تواند پیدا کند طرح به اشتراک گذاری راز Shamir، با احتساب طرح به اشتراک گذاری راز Shamir:

طرح به اشتراک گذاری راز Shamir

از آنجایی که ما تعریف کردیم طرح به اشتراک گذاری راز Shamir به عنوان اعداد صحیح مثبت به طور تصادفی انتخاب شده، تعداد محدودی ممکن است طرح به اشتراک گذاری راز Shamir. با استفاده از این اطلاعات، مهاجم می تواند استنباط کند طرح به اشتراک گذاری راز Shamir، زیرا هر چیزی بزرگتر از 5 انجام خواهد داد طرح به اشتراک گذاری راز Shamir منفی. از آنجایی که ما مشخص کرده ایم این درست است طرح به اشتراک گذاری راز Shamir

سپس مهاجم می تواند مقادیر ممکن را محاسبه کند طرح به اشتراک گذاری راز Shamirجایگزین کردن طرح به اشتراک گذاری راز Shamir в طرح به اشتراک گذاری راز Shamir:

طرح به اشتراک گذاری راز Shamir

با گزینه های محدود برای طرح به اشتراک گذاری راز Shamir مشخص می شود که انتخاب و بررسی مقادیر چقدر آسان است طرح به اشتراک گذاری راز Shamir. در اینجا فقط پنج گزینه وجود دارد.

حل مسئله با محاسبات اعداد صحیح ناامن

برای از بین بردن این آسیب پذیری، Shamir استفاده از محاسبات مدولار را پیشنهاد می کند طرح به اشتراک گذاری راز Shamir بر طرح به اشتراک گذاری راز Shamirجایی که طرح به اشتراک گذاری راز Shamir и طرح به اشتراک گذاری راز Shamir - مجموعه تمام اعداد اول.

بیایید به سرعت به یاد بیاوریم که محاسبات مدولار چگونه کار می کند. ساعت با عقربه ها مفهومی آشناست. او از یک ساعت استفاده می کند طرح به اشتراک گذاری راز Shamir. به محض اینکه عقربه ساعت از دوازده گذشت، به یک برمی گردد. یکی از ویژگی های جالب این سیستم این است که به سادگی با نگاه کردن به ساعت نمی توان نتیجه گرفت که عقربه ساعت چند دور انجام داده است. با این حال، اگر بدانیم که عقربه ساعت 12 و چهار بار گذشته است، می‌توانیم تعداد ساعت‌های گذشته را با استفاده از یک فرمول ساده مشخص کنیم. طرح به اشتراک گذاری راز Shamirجایی که طرح به اشتراک گذاری راز Shamir مقسوم‌کننده ما است (اینجا طرح به اشتراک گذاری راز Shamir), طرح به اشتراک گذاری راز Shamir ضریب (در اینجا چند بار مقسوم علیه بدون باقی مانده به عدد اصلی وارد می شود طرح به اشتراک گذاری راز Shamir)، آ طرح به اشتراک گذاری راز Shamir باقیمانده است که معمولاً یک تماس اپراتور مدول را برمی‌گرداند (اینجا طرح به اشتراک گذاری راز Shamir). دانستن همه این مقادیر به ما امکان می دهد معادله را حل کنیم طرح به اشتراک گذاری راز Shamir، اما اگر ضریب را از دست بدهیم، هرگز نمی توانیم مقدار اولیه را بازیابی کنیم.

ما می توانیم نشان دهیم که چگونه این امر امنیت طرح ما را با اعمال این طرح در مثال قبلی و استفاده از آن بهبود می بخشد. طرح به اشتراک گذاری راز Shamir. تابع چند جمله ای جدید ما طرح به اشتراک گذاری راز Shamirو نکات جدید طرح به اشتراک گذاری راز Shamir. اکنون نگهدارنده های کلید می توانند بار دیگر از درونیابی چند جمله ای برای بازسازی تابع ما استفاده کنند، فقط این بار عملیات جمع و ضرب باید با کاهش مدول همراه باشد. طرح به اشتراک گذاری راز Shamir (به عنوان مثال طرح به اشتراک گذاری راز Shamir).

با استفاده از این مثال جدید، فرض کنیم مهاجم دو مورد از این نکات جدید را یاد گرفته است. طرح به اشتراک گذاری راز Shamirو اطلاعات عمومی طرح به اشتراک گذاری راز Shamir. این بار مهاجم بر اساس تمام اطلاعاتی که دارد توابع زیر را خروجی می دهد که در آن طرح به اشتراک گذاری راز Shamir مجموعه ای از تمام اعداد صحیح مثبت است، و طرح به اشتراک گذاری راز Shamir نشان دهنده ضریب مدول است طرح به اشتراک گذاری راز Shamir.

طرح به اشتراک گذاری راز Shamir

حالا مهاجم ما دوباره پیدا می کند طرح به اشتراک گذاری راز Shamir، محاسبه می کند طرح به اشتراک گذاری راز Shamir:

طرح به اشتراک گذاری راز Shamir

سپس دوباره تلاش می کند طرح به اشتراک گذاری راز Shamirجایگزین کردن طرح به اشتراک گذاری راز Shamir в طرح به اشتراک گذاری راز Shamir:

طرح به اشتراک گذاری راز Shamir

این بار او یک مشکل جدی دارد. مقادیر از دست رفته فرمول طرح به اشتراک گذاری راز Shamir, طرح به اشتراک گذاری راز Shamir и طرح به اشتراک گذاری راز Shamir. از آنجایی که تعداد نامتناهی ترکیب از این متغیرها وجود دارد، او نمی تواند اطلاعات اضافی را به دست آورد.

ملاحظات امنیتی

طرح اشتراک مخفی شامیر پیشنهاد می کند امنیت از دیدگاه تئوری اطلاعات. این بدان معنی است که ریاضیات حتی در برابر مهاجمی با قدرت محاسباتی نامحدود مقاوم است. با این حال، مدار همچنان حاوی چندین مشکل شناخته شده است.

مثلاً طرح شامیر ایجاد نمی کند قطعاتی که باید بررسی شوندیعنی افراد می توانند آزادانه قطعات جعلی ارائه دهند و در بازیابی راز صحیح دخالت کنند. یک نگهدارنده قطعه متخاصم با اطلاعات کافی حتی می تواند با تغییر قطعه دیگری تولید کند طرح به اشتراک گذاری راز Shamir به صلاحدید خود این مشکل با استفاده از طرح های به اشتراک گذاری راز قابل تاییدمانند طرح فلدمن.

مشکل دیگر این است که طول هر قطعه با طول راز مربوطه برابر است، بنابراین تعیین طول راز آسان است. این مشکل را می توان با بی اهمیتی حل کرد لایه گذاری مخفی با اعداد دلخواه تا یک طول ثابت.

در نهایت، مهم است که توجه داشته باشیم که نگرانی های امنیتی ما ممکن است فراتر از خود طراحی باشد. برای برنامه های رمزنگاری دنیای واقعی، اغلب تهدید حملات کانال جانبی وجود دارد که در آن مهاجم سعی می کند اطلاعات مفیدی را از زمان اجرای برنامه، حافظه پنهان، خرابی ها و غیره استخراج کند. اگر این یک نگرانی است، در طول توسعه باید به دقت به استفاده از اقدامات حفاظتی مانند توابع و جستجوهای زمان ثابت، جلوگیری از ذخیره حافظه در دیسک و تعدادی از ملاحظات دیگر که خارج از محدوده این مقاله هستند، توجه شود.

نسخه ی نمایشی

بر این صفحه یک نمایش تعاملی از طرح اشتراک مخفی شامیر وجود دارد. تظاهرات بر اساس کتابخانه ssss-js، که خود یک پورت جاوا اسکریپت برنامه محبوب است YYYY. توجه داشته باشید که محاسبه مقادیر بزرگ طرح به اشتراک گذاری راز Shamir, طرح به اشتراک گذاری راز Shamir и طرح به اشتراک گذاری راز Shamir ممکن است مدتی طول بکشد.

منبع: www.habr.com

اضافه کردن نظر