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

فهرست مطالب

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

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

فصل اول: از شنل‌های سرخ تا ماشین‌های تایپ جادویی؛ طلوع یک نیاز تاریخی

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

در روم باستان، ژولیوس سزار، امپراتور قدرتمند، با یک چالش بزرگ روبرو بود. او باید فرمان‌های جنگی را برای ژنرال‌هایش در سرزمین‌های دوردست می‌فرستاد، اما پیک‌ها ممکن بود در راه دستگیر شوند. سزار ترفند ساده اما هوشمندانه‌ای به کار برد. او به کاتبانش دستور داد جای حروف را در الفبا تغییر دهند. مثلاً هر حرف را سه پله به جلو ببرند؛ بنابراین حرف A به D تبدیل می‌شد، B به E و الی آخر. از نظر ریاضی، این یک شیفت ساده بود که با فرمول C=(P+3)(mod26) نشان داده می‌شود. اگر پیام به دست دشمن می‌افتاد، آن‌ها فقط مشتی حروف بی‌معنی می‌دیدند. این روش که بعدها به «رمز سزار» معروف شد، یکی از اولین قدم‌های بشر در دنیای رمزنگاری بود.

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

آلمانی‌ها مغرورانه معتقد بودند انیگما غیرقابل نفوذ است. اما در سوی دیگر میدان، در عمارتی در بلچلی پارک انگلستان، ریاضیدان نابغه‌ای به نام «آلن تورینگ» همراه با تیمش در حال ساخت یک هیولای الکترونیکی بودند. تورینگ ماشینی به نام «بامب» (Bombe) ساخت که در واقع پدرجد کامپیوترهای امروزی بود. این دستگاه توانست با سرعت بالا، الگوهای ریاضی پنهان در پیام‌های آلمانی‌ها را پیدا کند و رمز انیگما را بشکند.

این رویداد تاریخی یک پیام واضح برای بشریت داشت: برای پنهان کردن رازها، دیگر نمی‌توان به چرخ‌دنده‌ها و ماشین‌های مکانیکی اعتماد کرد؛ بشر برای بقا در عصر جدید، به قدرت بی‌نهایت ریاضیات نیاز داشت.

فصل دوم: پاسدار قدرتمند بانک‌ها و هارد دیسک‌ها؛ آشنایی با شوالیه AES

با ورود به عصر کامپیوتر، حجم اطلاعاتی که باید مخفی می‌شدند به شدت افزایش یافت. دولت‌ها و بانک‌ها نیاز به یک استاندارد قوی داشتند. در دهه ۱۹۷۰، الگوریتمی به نام DES (Data Encryption Standard) معرفی شد. اما با پیشرفت کامپیوترها، DES ضعیف و ضعیف‌تر شد تا اینکه هکرها توانستند در کمتر از ۲۴ ساعت آن را بشکنند!

اینجا بود که در اواخر دهه ۹۰ میلادی، دولت آمریکا یک مسابقه جهانی برگزار کرد تا یک جایگزین فولادی پیدا کند. دو ریاضیدان بلژیکی به نام‌های «ژوان دایمن» و «وینسنت رایمن»، الگوریتمی را ارائه کردند که در این مسابقه پیروز شد و نامش به AES (Advanced Encryption Standard) تغییر یافت.

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

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

به این روش در دنیای کامپیوتر، «رمزنگاری متقارن» (Symmetric Encryption) می‌گویند. کلمه “متقارن” به این معناست که کلیدی که برای قفل کردن (رمزگذاری) استفاده می‌شود، دقیقاً همان کلیدی است که برای باز کردن (رمزگشایی) به کار می‌رود.

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

کجا از AES استفاده می‌کنیم؟

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

فصل سوم: جادوی دو کلیده؛ افسانه شاهکار ریاضی به نام RSA

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

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

اینجا بود که در سال ۱۹۷۷، سه دانشمند نابغه در دانشگاه MIT به نام‌های رون ریوست (Rivest)، آدی شامیر (Shamir) و لئونارد آدلمن (Adleman)، جادویی به نام RSA را خلق کردند که دنیای اینترنت را برای همیشه تغییر داد.

RSA چگونه این غیرممکن را ممکن کرد؟

آن‌ها مفهوم انقلابیِ «رمزنگاری نامتقارن» (Asymmetric Encryption) را معرفی کردند. در این سیستم، ما دیگر یک کلید نداریم، بلکه دو کلید داریم که با یک پیوند ریاضیِ عمیق به هم متصل‌اند: یکی «کلید عمومی» و دیگری «کلید خصوصی».

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

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

تنها یک نفر در دنیا می‌تواند درِ این صندوق را باز کند: صاحب آمازون که «کلید خصوصی» را در اختیار دارد. این کلید در گاوصندوقی امن در سرورهای آمازون مخفی شده است و هرگز از آنجا خارج نمی‌شود.

این جادو بر پایه یک مسئله بسیار ساده اما در عین حال لاینحل ریاضی استوار است: فاکتورگیری اعداد اول.

ضرب کردن دو عدد اول بسیار بزرگ در یکدیگر بسیار آسان است. فرمول آن چیزی شبیه به این است: N=p×q.

فرض کنید عدد p و q هر کدام ۳۰۰ رقم دارند. کامپیوتر در کسری از ثانیه آن‌ها را ضرب می‌کند و عدد N (که ۶۰۰ رقم دارد) را به دست می‌آورد. این عدد N بخشی از همان «کلید عمومی» است که به همه داده می‌شود.

اما حالا فرض کنید هکری این عدد ۶۰۰ رقمی را می‌بیند و می‌خواهد بفهمد کدام دو عدد اول در هم ضرب شده‌اند تا این عدد به دست آمده است. پیدا کردن این فاکتورها (یعنی همان اعداد p و q که کلید خصوصی هستند) برای قدرتمندترین ابرکامپیوترهای جهان نیز میلیون‌ها سال طول می‌کشد!

کجا از این جادو استفاده می‌کنیم؟

هر بار که در بالای مرورگر خود (کنار آدرس سایت) علامت یک قفل بسته را می‌بینید و آدرس سایت با HTTPS شروع می‌شود، در حال استفاده از RSA (یا فرزندان مدرن‌تر آن مثل ECC) هستید. بدون RSA، تجارت الکترونیک، خرید با کارت بانکی در اینترنت و ورود امن به ایمیل‌ها کاملاً غیرممکن بود.

فصل چهارم: اثر انگشت دیجیتال و کارآگاهان دنیای سایبری؛ ورود به قلمرو SHA

تا اینجا یاد گرفتیم که چگونه پیام‌ها را پنهان کنیم. اما گاهی اوقات هدف ما پنهان کردن پیام نیست؛ بلکه می‌خواهیم مطمئن شویم هیچ‌کس در بین راه، حتی یک نقطه یا ویرگول به پیام ما اضافه یا کم نکرده است. به این مفهوم در امنیت، «یکپارچگی داده‌ها» (Data Integrity) می‌گویند. اینجا پای خانواده SHA (Secure Hash Algorithm) به میان می‌آید.

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

الگوریتم‌های هش (Hash) شبیه یک چرخ‌گوشت جادویی یا یک دستگاه تولید اثر انگشت کار می‌کنند. فرض کنید یک کتاب هزار صفحه‌ای (مثلاً شاهنامه فردوسی) دارید. شما کل متن این کتاب را وارد الگوریتم SHA-256 می‌کنید. الگوریتم پس از پردازش، به شما یک رشته متنی با طول ثابت (دقیقاً ۲۵۶ بیت یا ۶۴ کاراکتر در مبنای ۱۶) تحویل می‌دهد. مثلاً چیزی شبیه به این:

5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8

این رشته، «اثر انگشت دیجیتال» یا «هش» آن کتاب است. ویژگی‌های جادویی این دستگاه چیست؟

۱. حساسیت پروانه‌ای: اگر در صفحه ۵۰۰ آن کتاب، فقط یک نقطه به آخر جمله‌ای اضافه کنید و دوباره آن را وارد الگوریتم کنید، خروجی به دست آمده کاملاً و ۱۰۰٪ با خروجی قبلی متفاوت خواهد بود. به این ترتیب، به راحتی می‌توان فهمید که کسی در فایل دست برده است.

۲. خیابان یک‌طرفه: این مهم‌ترین ویژگی هش است. شما نمی‌توانید از روی آن رشته ۶۴ کاراکتری، دوباره متن کتاب را به دست بیاورید! درست همان‌طور که نمی‌توانید گوشت چرخ‌کرده را دوباره تبدیل به گاو کنید یا از روی اثر انگشت یک نفر، چهره او را نقاشی کنید.

کجا از این کارآگاه استفاده می‌کنیم؟

یکی از حیاتی‌ترین کاربردهای SHA در ذخیره «رمز عبور» (Password) شماست. در روزهای ابتدایی اینترنت، سایت‌ها رمزهای عبور کاربران را به صورت متن ساده (Plaintext) در پایگاه داده خود ذخیره می‌کردند. اگر هکری سایت را هک می‌کرد، فایلی شامل میلیون‌ها نام کاربری و رمز عبور واقعی را به دست می‌آورد که فاجعه‌بار بود!

امروزه، سایت‌های استاندارد هرگز رمز عبور شما را ذخیره نمی‌کنند. وقتی شما ثبت‌نام می‌کنید و رمز MySecret123 را وارد می‌کنید، سایت آن را به الگوریتم SHA می‌دهد و فقط «اثر انگشت» یا «هش» آن رمز را در سرور خود ذخیره می‌کند. دفعه بعد که می‌خواهید وارد شوید، شما رمز را می‌زنید، سایت دوباره هش آن را می‌گیرد و با هش ذخیره شده مقایسه می‌کند. اگر یکی بود، در باز می‌شود. حالا اگر سایت هک شود، هکر فقط مشتی اثر انگشت (هش) به دست می‌آورد که نمی‌تواند آن‌ها را به رمز واقعی تبدیل کند!

علاوه بر این، در دنیای مدرن ارزهای دیجیتال مانند بیت‌کوین (Bitcoin)، الگوریتم SHA-256 نقش قلب تپنده سیستم را بازی می‌کند. ماینرها (استخراج‌کنندگان بیت‌کوین) در واقع کامپیوترهای قدرتمندی هستند که شبانه‌روز در حال حدس زدن خروجی‌های این الگوریتم هستند تا امنیت شبکه بلاک‌چین را تامین کنند و پاداش بگیرند.

فصل پنجم (جمع‌بندی): نبردی که هرگز پایان نمی‌یابد و نگاهی به آینده

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

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

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

اگر آن روز فرا برسد و ما آماده نباشیم، تمام قفل‌های اینترنت شکسته خواهد شد، تمام حساب‌های بانکی باز خواهند شد و تمام رازهای دیجیتال ما برملا می‌شوند. اما نگران نباشید! قفل‌سازان نیز دست روی دست نگذاشته‌اند. هم‌اکنون دانشمندان در سراسر جهان در حال توسعه شاخه جدیدی به نام «رمزنگاری پسا-کوانتومی» (Post-Quantum Cryptography) هستند؛ الگوریتم‌هایی با ریاضیات آن‌چنان پیچیده و درهم‌تنیده که حتی کامپیوترهای کوانتومی نیز نتوانند آن‌ها را بشکنند.

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