عددهای اول راز نگه میدارند
وقتی در اینترنت پیامی میفرستید یا چیزی میخرید، آنچه میفرستید در راهش از رایانههای زیادی میگذرد. هر کسی در این راه ممکن است آن را بخواند. با این حال، پیام قفلشده به مقصد میرسد و فقط کسی که باید، میتواند بازش کند. بخشی از این قفل از عددهای اول ساخته شده است. عددها چطور میتوانند راز نگه دارند؟
از یک طرف آسان، از طرف دیگر سخت
این دو عدد اول را در نظر بگیرید: ۲۱۱ و ۲۴۱. ضرب کردنشان با کاغذ و مداد یک دقیقه وقت میگیرد:
- ۲۱۱ × ۲۴۱ = ۵۰٬۸۵۱
حالا برعکس بروید. کسی عدد ۵۰٬۸۵۱ را به شما میدهد و میگوید: «این حاصلضرب دو عدد اول است. کدام دو عدد؟» راه میانبُری برای برگشتن نیست. فقط میتوانید عددهای اول را به ترتیب امتحان کنید: تقسیم بر ۲، بر ۳، بر ۵، بر ۷، بر ۱۱، بر ۱۳ و همینطور جلو بروید تا یکی بیباقیمانده تقسیم کند. عدد اولِ کوچکتر اینجا ۲۱۱ است که چهلوهفتمین عدد اول است. پس ۴۷ بار امتحان لازم است.
در درس «فقط یک راه برای ساختن» دیدیم که هر عدد فقط به یک شکل از عددهای اول ساخته میشود. پس ۵۰٬۸۵۱ فقط یک جواب دارد: ۲۱۱ × ۲۴۱. جواب آنجاست؛ پیدا کردنش سخت است.
عددهای اول را بزرگتر کنیم
با عددهای اول سهرقمی، ۴۷ بار امتحان یک بعدازظهر طولانی است، نه یک راز. اما این فاصله خیلی زود بزرگ میشود. رایانه دو عدد اولِ سیصدرقمی را در یک چشم به هم زدن در هم ضرب میکند. اما برگشتن از حاصلضربشان، که عددی حدود ششصدرقمی است، کار دیگری است: با همهی روشهایی که امروز میشناسیم، بسیار بیشتر از آن طول میکشد که کسی بتواند صبر کند؛ به گفتهی بیشتر برآوردها میلیونها سال یا بیشتر، حتی اگر رایانههای بسیاری با هم کار کنند.
آدمها امتحانش کردهاند. در سال ۲۰۲۰ گروهی از ریاضیدانها عددی ۲۵۰ رقمی از همین نوع را به دو عدد اولش شکستند. این کار برای یک رایانه حدود ۲٬۷۰۰ سال طول میکشید؛ آن را میان هزاران رایانه پخش کردند. عددهایی که برای قفل کردن پیامها به کار میروند، از این هم خیلی بلندترند.
قفلی که هر کسی میتواند ببندد
این راه یکطرفه نشان میدهد چطور میشود قفلی را جلوی چشم همه به دیگران داد. قفلی را تصور کنید که بیکلید، با یک فشار بسته میشود.
- شما دو عدد اولِ بزرگ میسازید و آنها را پنهان نگه میدارید. آنها را در هم ضرب میکنید و جواب را به همه میگویید.
- هر کسی میتواند با عدد بزرگِ شما پیامی را برایتان قفل کند. مثل این است که قفلِ باز را با یک فشار ببندد.
- برای باز کردنش آن دو عدد اول لازم است، و آنها را فقط شما دارید.
نخستین قفلِ اینچنینی را سه ریاضیدان، رون ریوست، آدی شمیر و لئونارد ادلمن، در سال ۱۹۷۷ منتشر کردند. نامش از حرف اول نام آنها گرفته شده، RSA، و هنوز به کار میرود. (کلیفورد کاکس در بریتانیا همین فکر را در سال ۱۹۷۳ پیدا کرده بود، اما تا سال ۱۹۹۷ آن را راز دولتی نگه داشتند.)
اینکه پیام دقیقاً چطور قفل میشود، ریاضیِ بیشتری از این دوره لازم دارد. اما فکر اصلی همان است که میبینید: ضرب کردن عددهای اول آسان است و برگرداندنش سخت.
در خانه امتحان کنید
- ۱۳ × ۱۷ را حساب کنید. بعد جواب را به یکی از اهل خانه بدهید و بخواهید آن دو عدد اول را پیدا کند. کدامتان زودتر تمام کرد؟
- ۹۱ حاصلضرب دو عدد اول است. کدام دو عدد؟
جوابها: ۱. ۲۲۱. ۲. ۷ × ۱۳ (اول ۲، ۳ و ۵ را امتحان کنید: هیچکدام ۹۱ را نمیشمارند).
واژههای این درس
- RSA - روشی برای قفل کردن پیامها، از سال ۱۹۷۷، که کار میکند چون ضرب کردن دو عدد اولِ بزرگ آسان است و پیدا کردن دوبارهی آنها بسیار سخت
ایدهی اصلی
ضرب کردن دو عدد اول سریع است، اما برگرداندن آنها از روی جواب یعنی امتحان کردن عددهای اول یکی پس از دیگری. با عددهای اولِ صدها رقمی، این کار بسیار بیشتر از آن طول میکشد که کسی بتواند صبر کند، و همین است که پیامها را در اینترنت قفل نگه میدارد.