مبانی امنیت ارزهای دیجیتال

الگوریتم «تسهیم راز» شامیر چیست و چرا از کلیدهای دیجیتال محافظت می‌کند؟

رازی برای همه رمزها!
هوشیار ذوالفقارنسب، نویسنده نوشدارو
هوشیار ذوالفقارنسب
زمان مطالعه ۶ دقیقه
صحت سنجی شده

فرض کنید نگران فراموش کردن رمز ۲۰ کاراکتری حساب آنلاین خود هستید؛ آن‌هم حسابی که کلید ورود به ایمیل، حساب‌های بانکی و زندگی دیجیتال شماست. اگر رمز را روی کاغذ می‌نوشتید و آن را به یک نفر می‌سپردید، امکان سوءاستفاده وجود داشت؛ اگر هم فقط خودتان آن را نگه می‌داشتید، یک اتفاق کافی بود تا دسترسی برای همیشه از بین برود.

«تسهیم راز شامیر» برای حل همین مشکل ساخته شده است. این روش یک راز حساس (رمز، متن یا حتی کلید بازیابی) را میان چند سهم مستقل توزیع می‌کند؛ به‌گونه‌ای که هیچ سهمی به‌تنهایی راز را آشکار نکند و تنها با کنار هم قرار گرفتن تعداد مشخصی از سهم‌ها بتوان آن را بازیابی کرد.

تسهیم راز شامیر چیست؟

آدی شامیر (Adi Shamir)، دانشمند علوم کامپیوتر و یکی از طراحان الگوریتم رمزنگاری RSA، این روش را در سال ۱۹۷۹ معرفی کرد. در الگوریتم او، یک راز مانند کلید رمزنگاری به چند «سهم» تبدیل می‌شود. این سهم‌ها را می‌توان میان چند فرد مورد اعتماد یا چند محل امن توزیع کرد.

پیش از ساخت سهم‌ها، دو عدد تعیین می‌شوند:

  • تعداد کل سهم‌ها: چند سهم ساخته شود؟
  • حد آستانه: حداقل چند سهم برای بازیابی راز لازم باشد؟

برای نمونه، در الگوی «۳ از ۵»، پنج سهم ساخته می‌شود. هر سه سهم معتبر می‌توانند راز را بازیابی کنند، اما یک یا دو سهم برای این کار کافی نیست. در اجرای درست الگوریتم، سهم‌های کمتر از حد آستانه اطلاعات مفیدی درباره راز اصلی فاش نمی‌کنند.

نوشدارو پلاس
نوشدارو پلاس

سهم شامیر مانند یک‌سوم رمز عبور نیست. اگر رمز «ABCDEF» را به سه قسمت «AB»، «CD» و «EF» ببریم، هر بخش مقداری از رمز را آشکار می‌کند. سهم شامیر نتیجه یک محاسبه ریاضی است و بخشی خوانا از راز اصلی را در خود ندارد.

شامیر چگونه کار می‌کند؟

برای فهمیدن ایده اصلی، یک خط روی کاغذ را در نظر بگیرید. اگر فقط یک نقطه از این خط را داشته باشیم، نمی‌توانیم بفهمیم خط دقیقاً چگونه رسم شده است؛ زیرا بی‌نهایت خط می‌تواند از یک نقطه عبور کند. اما دو نقطه، یک خط مشخص را تعیین می‌کنند.

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

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

قاعده کلی برای آن‌هایی که عاشق ریاضی هستند، چنین است: اگر برای بازیابی راز به k سهم نیاز داشته باشیم، الگوریتم یک چندجمله‌ای با درجه k-1 می‌سازد. هر سهم یک نقطه از این چندجمله‌ای است و داشتن k نقطه معتبر، امکان بازسازی آن و رسیدن به راز را فراهم می‌کند.

خوب است بدانیم که …

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

آیا شامیر همان رمزنگاری است؟

خیر؛ رمزنگاری و تسهیم راز دو کار متفاوت انجام می‌دهند.

  • رمزنگاری اطلاعات خوانا را با استفاده از یک کلید به داده‌ای ناخوانا تبدیل می‌کند. برای نمونه، یک فایل رمزگذاری‌شده بدون کلید مناسب قابل خواندن نیست.
  • تسهیم راز شامیر معمولاً خود آن کلید را میان چند سهم توزیع می‌کند. بنابراین شامیر فایل‌ها را رمزگذاری نمی‌کند؛ بلکه از رازی محافظت می‌کند که برای باز کردن فایل‌های رمزگذاری‌شده یا بازیابی یک دارایی لازم است.

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

الگوریتم شامیر کجا استفاده می‌شود؟

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

استانداردی به نام SLIP-0039 نیز برای ساخت سهم‌های بازیابی واژه‌ای طراحی شده است. در این روش، هر سهم می‌تواند به‌شکل مجموعه‌ای از کلمات نمایش داده شود تا ثبت و نگهداری آن آسان‌تر باشد. البته همه کیف‌پول‌ها از این استاندارد پشتیبانی نمی‌کنند و سهم‌های ساخته‌شده در یک ابزار ممکن است در ابزار دیگری قابل بازیابی نباشند.

هشدار

عبارت بازیابی ۱۲ یا ۲۴ کلمه‌ای کیف‌پول را با بریدن فهرست کلمات به چند قسمت تقسیم نکنید. این کار تسهیم راز نیست؛ هر قسمت، بخشی از عبارت اصلی را آشکار می‌کند و گم‌شدن یکی از تکه‌ها نیز ممکن است بازیابی را غیرممکن کند.

برای حساب‌های معمولی مانند ایمیل یا فضای ذخیره‌سازی ابری، استفاده از قابلیت رسمی «دسترسی اضطراری» در یک نرم‌افزار معتبر مدیریت رمز عبور معمولاً ساده‌تر و کم‌خطرتر است. این قابلیت به فرد منتخب اجازه می‌دهد با رعایت شرایط تعیین‌شده و گاهی پس از یک دوره انتظار، درخواست دسترسی بدهد.

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

آیا الگوریتم شامیر برای همه مناسب است؟

شامیر «نقطه شکست واحد» را از بین می‌برد؛ یعنی نه یک فرد به‌تنهایی تمام راز را در اختیار دارد و نه نابودی یک نسخه لزوماً به از دست رفتن دسترسی منجر می‌شود. در مقابل، نگهداری و مدیریت چند سهم پیچیدگی بیشتری ایجاد می‌کند. اگر روش بازیابی درست ثبت نشده باشد یا تعداد سهم‌های موجود از حد آستانه کمتر شود، خود مالک نیز دیگر به راز دسترسی نخواهد داشت.

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

در پایان

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

تازه‌ترین مطالب

مطالب پرنگاه

ویدیوهای نوشدارو

ویدیو های بیشتر
مشاهده همه ویدئوها

حکایت‌های کوتاه، حقیقت‌های بزرگ

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

ویدیو های بیشتر

منابع

  1. Adi Shamir, “How to Share a Secret”, Communications of the ACM, Vol. 22, No. 11 (1979)
    https://dl.acm.org/doi/10.1145/359168.359176
  2. SLIP-0039: Shamir's Secret-Sharing for Mnemonic Codes — SatoshiLabs
    https://github.com/satoshilabs/slips/blob/master/slip-0039.md
  3. Shamir's secret sharing — Wikipedia
    https://en.wikipedia.org/wiki/Shamir%27s_secret_sharing