zoomit

دیوار آنتروپی؛‌ چگونه چند لامپ ساده جلوی هک‌شدن اینترنت را می‌گیرند؟

دیوار آنتروپی؛‌ چگونه چند لامپ ساده جلوی هک‌شدن اینترنت را می‌گیرند؟

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

بیایید این موضوع را با یک مثال ساده بیشتر توضیح دهیم:

تصور کنید که شما و یکی از دوستانتان تصمیم می‌گیرید به سینما بروید و فیلمی را تماشا کنید، اما نمی‌خواهید فرد ناشناس (مثلاً هکر) بفهمد که به تماشای چه فیلمی می‌روید؛ چون ممکن است به هر ترتیب مانع از برنامه‌ی دوستانه‌ی شما شود.

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

ازآنجاکه در حال حاضر فقط دو فیلم برای تماشا وجود دارد، یکی را A و دیگری را B برچسب‌گذاری می‌کنید. در حضور دوستتان، یک سکه را بالا می‌اندازید و پاسخ شیر یا خط بودن آن را با هم مشاهده می‌کنید. سپس جدول زیر را ترتیب می‌دهید که نشان می‌دهد بسته به فیلمی که انتخاب کرده‌اید و باتوجه‌به شیر یا خط بودن سکه، چه پیامی ارسال خواهید کرد.

فیلم

سکه

پیام

A

شیر

در دشت‌های اسپانیا باران می‌بارد

A

خط

در هرتفورد، هیرفورد و همپشایر طوفان به‌ندرت رخ می‌دهد

B

شیر

در هرتفورد، هیرفورد و همپشایر طوفان به‌ندرت رخ می‌دهد

B

خط

در دشت‌های اسپانیا باران می‌بارد

بنابراین اگر فیلم B را انتخاب کنید و سکه شیر آمده باشد، به دوستتان پیام می‌دهید: «در هرتفورد، هیرفورد و همپشایر طوفان به‌ندرت رخ می‌دهد». دوستتان در زمان بالا انداختن سکه در کنار شما بوده و می‌داند پاسخ این بخش چیست. پس از روی جدول متوجه می‌شود که باید برای تماشای فیلم B آماده شود.

نکته اینجا است که هکر، نتیجه‌ی بالا انداختن سکه را نمی‌داند. او فقط می‌تواند بگوید ۵۰ درصد احتمال خط و ۵۰ درصد احتمال شیر آمدن سکه وجود دارد. بنابراین جمله‌ی «در هرتفورد…» به او کمکی نخواهد کرد. نتیجه؟ اطلاعات هکر در همان سطح ابتدایی باقی می‌ماند، زیرا ۵۰ درصد احتمال دارد شما فیلم A و ۵۰ درصد احتمال دارد فیلم B را انتخاب کرده باشید.

تمامی رمزنگاری‌ها بر اساس نامتقارن بودن اطلاعات انجام می‌شوند

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

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

نقش حرکات حباب‌های رنگی لامپ‌های لاوا

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

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

بااین‌حال، کامپیوترها طوری طراحی شده‌اند که بر اساس یک ورودی داده‌شده، خروجی‌های منطقی (لاجیکال) و قابل‌ پیش‌بینی ارائه می‌کنند. به‌عبارتی، کامپیوترها با این هدف ساخته نمی‌شوند که داده‌های تصادفی مورد نیاز را برای ایجاد کلیدهای رمزگذاری غیرقابل‌ پیش‌بینی تولید کنند.

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

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

چرا کامپیوترهای عادی نمی‌توانند اعداد تصادفی ایجاد کنند؟

کامپیوترها براساس منطق کار می‌کنند. برنامه‌های کامپیوتری نیز مبتنی بر دستورات «اگر، سپس» یا if-then توسعه داده می‌شوند: اگر شرط خاصی برآورده شد، این عمل خاص را انجام بده. پس ورودی یکسان به برنامه‌ها معادل با بار خروجی یکسان خواهد بود.

کامپیوترها به‌دلیل قابل‌ پیش‌بینی بودنشان مفید هستند

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

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

چگونه کامپیوتر ورودی‌های تصادفی دنیای واقعی را به داده‌های رندوم تبدیل می‌کند؟

برنامه‌های نرم‌افزاری مولد اعداد شبه‌تصادفی (PRNG) به این منظور توسعه داده می‌شوند که ورودی غیرقابل‌ پیش‌بینی را بگیرند و از آن برای تولید خروجی‌های غیرقابل‌ پیش‌بینی استفاده کنند. از لحاظ تئوری، یک PRNG خوب می‌تواند خروجی‌های تصادفی نامحدودی از یک ورودی تصادفی تولید کند.

اما این الگوریتم‌های مولد اعداد، شبه‌تصادفی نامیده می‌شوند نه تصادفی؛ زیرا خروجی‌های آن‌ها به دو دلیل اصلی کاملاً رندوم نیستند:

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

به همین دلیل الگوریتم به‌طور مداوم به ورودی‌های تصادفی جدید نیاز دارد. یک ورودی تصادفی با عنوان «سید رمزنگاری» (Cryptographic Seed) شناخته می‌شود.

مولد امن اعداد شبه‌تصادفی رمزنگاری

یک مولد امن اعداد شبه‌تصادفی رمزنگاری یا CSPRNG در واقع یک PRNG است که استانداردهای دقیق‌تری را رعایت می‌کند و به‌تبع رمزنگاری ایمن‌تری ارائه می‌دهد. به‌طور خلاصه، مولد امن اعداد شبه‌تصادفی لزوماً دو گام مهم نسبت به PRNG جلوتر است:

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

مولد امن اعداد شبه‌تصادفی رمزنگاری همانند PRNG به داده‌های رندوم (سیدهای رمزنگاری) به‌عنوان نقطه‌ی شروع فرایند تولید داده‌های تصادفی بیشتر نیاز دارد.

منبع : زومیت

مشاهده بیشتر
دانلود نرم افزار

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا