رادیوی قدیمی

در جستجوی اعداد تصادفی؛ چرا داده‌های پیش‌بینی‌ناپذیر برای زندگی ما حیاتی هستند؟

پنج‌شنبه ۴ مرداد ۱۴۰۳ - ۲۲:۳۰مطالعه 11 دقیقه
دنیای ما به اعداد تولید‌شده به روش تصادفی وابسته است و بدون این اعداد، تناسب زندگی مدرن مختل خواهد شد؛ اما چرا یافتن این اعداد بسیار مهم است؟
تبلیغات

خلاصه مقاله:

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

چند دوست تلاش کردند تا به بهترین شکل منظور خود را به فروشنده برسانند: «یک رادیوی پرخش‌خش! می‌دانید، از آن رادیوها که با چرخاندن پیچشان ناگهان مقدار زیادی پارازیت پخش می‌کنند.» فروشنده حتی نمی‌دانست در واکنش به این درخواست چه بگوید. مدز هار به یاد می‌آورد: «او احتمالا فکر می‌کرد ما کاملا دیوانه‌ایم.»

سال ۱۹۹۷ بود که مدز هار و دوستانش در جستجوی یک فروشگاه «ریدیوشک» در برکلی کالیفرنیا بودند. اغلب رادیوهای موجود برای فروش، مجهز به فیلترهای نویز بودند که صدهای خش‌خش را که آن‌ها به دنبالش بودند، حذف می‌کردند. پس از اندکی چانه‌زنی، فروشنده به هار و دوستانش اجازه داد تا به یکی از ارزان‌ترین دستگاه‌هایی که پشت فروشگاه داشت، گوش دهند.

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

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

رادیوی قدیمی
هار و دوستانش در یک رادیوی قدیمی به دنبال اعداد تصادفی بودند.

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

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

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

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

در نهایت، آن رادیوی خاکستری کوچک، هار و دوستانش را پولدار نکرد. صنعت بازی آنلاین در آن زمان برای کارآفرینان جوان در نوزادی خود به سر می‌برد؛ اما مولد عدد تصادفی ساخت آن‌ها همچنان به‌کار می‌آید. هار این مولد را در وب‌سایت random.org در دسترس عموم قرار داد که از آن زمان برای تولید اعداد تصادفی به کار می‌رود و بازدیدکنندگان زیادی دارد. او می‌گوید:

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

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

مثلا مردم از وب‌سایت ما برای آزمایش مواد مخدر و انتخاب تصادفی کارمندان استفاده می‌کنند. این وب‌سایت همچنین قابلیت انتخاب رمز عبور تصادفی را دارد؛ و در نهایت برخی سرویس‌های قمار آنلاین نیز به آن وابسته‌اند.

حتی یک نفر مدعی بود که هر هفته از وب‌سایت برای انتخاب موسیقی خودرویش از میان ۷۰۰ مجموعه‌ی سی‌دی کمک می‌گیرد.

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

شاید فکر کنید اگر هرگز در لاتاری شرکت نکنید یا قصد شرکت در آزمایش بالینی را نداشته باشید، اعداد تصادفی اهمیتی برایتان نخواهند داشت، اما در اشتباهید.

توپ‌های عددی
اعداد تصادفی نقش مهمی در زندگی ما دارند.

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

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

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

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

حرکت این لامپ‌های گدازه و ماده‌ی روغنی حبابی درون آن پیش‌بینی‌پذیر نیست؛ بنابراین دوربین می‌تواند تصاویر تصادفی از حباب‌ها را در بازه‌های مختلف ثبت کند و سپس این تصاویر به مجموعه‌ای از اعداد تصادفی کمابیش مبتنی بر شکل و موقعیت حباب‌ها تبدیل شوند. این ایده در ابتدا توسط شرکتی به نام سیلیکون گرافیکس (Silicon Graphics) در اواخر دهه‌ی ۱۹۹۰ پیشنهاد شد و یکی از روش‌های متعددی است که کلودفلر برای تولید اعداد تصادفی و امنیت اطلاعات به کار می‌برد.

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

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

لامپ گدازه‌ای
چگونگی حرکت مواد در لامپ‌های گدازه‌ پیش‌بینی‌پذیر نیست.

در سال ۲۰۱۶، نیویورک تایمز به مثال یک گیمر کامپیوتر جوان اشاره کرد که روشی را برای تولید مولد اعداد تصادفی در ماینکرفت ابداع کرده بود. این گیمر نوعی مسابقه را برای دوستانش در دنیای ماینکرفت ساخته بود، اما هدف او طراحی دامی در بازه‌های تصادفی بود تا زمینه را برای خطای شرکت‌کننده‌ها در بازی فراهم کند. او تصمیم گرفت حصارهایی را بسازد و درون آن‌ها گاو‌های مجازی به نام موشروم را محصور کند؛ زیرا گاوها در یک الگوی تصادفی حرکت می‌کنند. هر گاه یک موشروم روی یکی از صفحات فشاری که گیمر در زمین حصارها نصب کرده بود، راه می‌رفت، یک دام در بازی تودرتویی که گیمر طراحی کرده بود، فعال می‌شد.

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

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

پژوهشگرها روش‌هایی را برای شناسایی مولدهای اعداد غیرتصادفی دارند. برای مثال می‌توان به تحلیل‌های آماری اشاره کرد؛ این تحلیل‌ها به جستجوی توالی‌هایی اختصاص دارند که در آن‌ها یک عدد بیشتر از یک مقدار مشخص تکرار می‌شود. برای مثال تعداد زیادی عدد ۳ دیده می‌شوند. البته این معیار باز هم کافی نیست. اگر توالی شما «۱۲۳۱۲۳۱۲۳۱۲۳۱۲۳۱۲۳» باشد چه می‌توان گفت؟ در این صورت می‌توان گفت تعداد زیادی عدد سه داریم، اما این اعداد بیشتر از دو و یک تکرار نشده‌اند. با این‌حال یک الگوی فوق‌العاده آشکار برای دنباله وجود دارد که غیرتصادفی‌بودن آن را افشا می‌کند.

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

وقتی مولدهای اعداد تصادفی کار خود را به درستی انجام ندهند، می‌توان انتظار داشت افراد خرابکار از آن‌ها سوء‌استفاده کنند. به گزارش وایرد در سال ۲۰۱۷، یک هکر روسی به افرادی دسترسی داشت که از فعالیت ماشین‌های سکه‌ای در کازینوها فیلم‌برداری می‌کردند. بر اساس نتایج هر بازی او قادر بود عملکرد مولدهای عدد تصادفی داخل ماشین‌ها را پیش‌بینی کند و بنابراین مقدار پرداختی آن‌ها را به دست بیاورد.

 تقریبا یک دهه پیش، پژوهشگرهای امنیت در دانشگاه کمبریج از جمله مورداک متوجه شدند که کلاه‌بردارها می‌توانند با پیش‌بینی اعداد تصادفی تولیدشده درون کارت‌های اعتباری EMV از مردم پول سرقت کنند. چنین اعدادی برای تصدیق تراکنش هنگام خرید کالا در فروشگاه ضروری هستند؛ اما مشخص شد که می‌توان اعداد ورودی را پیش‌بینی کرد و به این ترتیب کارت اعتباری یک شخص را بدون نیاز به اجازه‌ی او جعل کرد. چنین کلاه‌برداری‌هایی امروز هم در جریان هستند.

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

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

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

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

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

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

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

باید اشاره کرد که قطعا هار و همکارانش در random.org می‌توانند انگیزه‌ی نسبتا زیادی برای تغییر نتایج وب‌سایت داشته باشند، بااین‌حال او تأکید دارد که آن‌ها هرگز این کار را نمی‌کنند؛ چرا که برخلاف آرمان‌ها و اهدافشان است؛ اما به هر حال چنین تردیدی منصفانه محسوب می‌شود؛ زیرا امکان اعمال تغییر در نتایج وجود دارد. صرف‌نظر از اینکه مولد عدد تصادفی چقدر عالی باشد، باید باز هم به شخصی که آن را راه‌اندازی کرده است، اعتماد کنید. هار می‌گوید:

همیشه مقداری اعتماد در فرآیند لازم است. شما باید به آن باور داشته باشید.
مقاله رو دوست داشتی؟
نظرت چیه؟
داغ‌ترین مطالب روز
تبلیغات

نظرات