Cicada 3301؛ معمایی که اینترنت هنوز حلش نکرده

از یک JPEG روی 4chan تا QR Codeهای واقعی، Tor، PGP و Liber Primus؛ داستان یکی از عجیب‌ترین معماهای تاریخ اینترنت که هنوز هم تمام نشده.

Cicada 3301؛ معمایی که اینترنت هنوز حلش نکرده

Cicada 3301؛ معمایی که اینترنت هنوز حلش نکرده

۲۱ شهریور ۱۴۰۵

سلام سلام!

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

اگر دوست دارید این داستان رو ویدیویی هم ببینید، متین عزیز یه ویدیوی خیلی خوب درباره‌ی Cicada 3301 ساخته که پیشنهاد می‌کنم ببینید:

ویدیوی متین درباره‌ی Cicada 3301

حالا بریم سراغ چیزی که به نظرم یکی از خفن‌ترین اتفاقات تاریخ اینترنت بوده.

نه به خاطر اینکه یه «هکر مرموز با هودی» پشتش بوده.

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

همه‌چی با یه عکس شروع شد

۴ ژانویه‌ی ۲۰۱۲.

وسط 4chan یه تصویر منتشر شد.

ظاهرش چیز خاصی نداشت؛ یه متن ساده روی پس‌زمینه سفید که تقریباً می‌گفت:

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

و پایینش:

3301

همین.

اگر یه آدم معمولی تصویر رو می‌دید احتمالاً می‌گفت چه ARG مسخره‌ای و رد می‌شد.

ولی چند نفر فایل JPEG رو دانلود کردن و گفتن:

یه لحظه.

«داخل این تصویر مخفی شده» یعنی واقعاً داخل خود فایل؟

و دقیقاً همین بود.

JPEG فقط یه JPEG نبود

بررسی فایل یه سرنخ مربوط به Caesar cipher بیرون داد.

بعد به تصویر دیگه‌ای رسیدن.

اون تصویر هم در ظاهر یه decoy بود، ولی کلمه‌بازی داخلش به نرم‌افزاری به اسم OutGuess اشاره می‌کرد.

OutGuess برای Steganography استفاده می‌شه.

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

یه عکس معمولی می‌بینی.

ولی داخلش اطلاعات دیگه‌ای خوابیده.

با بیرون کشیدن اطلاعات تصویر، Puzzle تازه شروع شد.

Reddit.

Book Cipher.

متن‌های ادبی.

اعداد اول.

و بعد یه چیز خیلی مهم:

PGP.

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

Cicada یه OpenPGP Key داشت.

Key ID معروفش:

7A35090F

و پیام‌های مهم رو با Private Key مربوط به اون امضا می‌کرد.

این شاید در نگاه اول جزئیات Nerdی به نظر برسه، ولی یکی از جذاب‌ترین بخش‌های کل داستانه.

فرض کنید من فردا یه عکس سیاه منتشر کنم و پایینش بنویسم:

Hello. We have returned.
3301

خب که چی؟

هر کسی می‌تونه اینو بنویسه.

ولی اگر Cicada یه پیام رو با همون کلید تاریخی Sign می‌کرد، می‌شد از نظر رمزنگاری بررسی کرد که پیام توسط دارنده‌ی همون Private Key صادر شده و دستکاری نشده.

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

اسم واقعیشون رو نمی‌دونستیم.

چهره‌شون رو نمی‌دونستیم.

ولی می‌تونستیم بفهمیم:

«این پیام از همون هویتی اومده که پیام قبلی رو منتشر کرده.»

همین مکانیزم سال‌ها بعد هم اجازه داد Fake Cicadaها رو از پیام‌های معتبر جدا کنن. آخرین پیام عمومی شناخته‌شده‌ای که با کلید اصلی Verify می‌شه مربوط به آوریل ۲۰۱۷ه.

بعد یه شماره تلفن واقعی پیدا شد

Puzzle ادامه پیدا کرد و Solverها از Book Cipher به یه شماره تلفن رسیدن.

شماره رو می‌گرفتی و یه پیام ضبط‌شده سرنخ جدید می‌داد.

باید سه عدد اول رو پیدا می‌کردی.

یکی:

3301

و دو تای دیگه ابعاد تصویر اولیه بودن:

509

و:

503

هر سه Prime بودن.

ضربشون:

509 × 503 × 3301
=
845145127

و نتیجه تبدیل شد به:

845145127.com

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

و بعد اینترنت از مانیتور بیرون اومد

سایت یه Countdown داشت.

وقتی Countdown تمام شد، به‌جای Puzzle بعدی یه سری مختصات GPS واقعی روی صفحه ظاهر شد.

آدم‌ها رفتن سراغ مختصات.

و واقعاً چیزی پیدا کردن.

پوسترهایی با لوگوی Cicada.

روی تیر چراغ برق و مکان‌های عمومی.

و روی اون‌ها:

QR Code.

در نقاط مختلف دنیا.

از اروپا تا آمریکا و آسیا.

یعنی یه نفر صرفاً پشت لپ‌تاپش ننشسته بود و Puzzle درست نکرده بود.

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

و اینجا برای من Cicada از:

«یه Puzzle خفن»

تبدیل می‌شه به:

این دیگه چه کوفتیه؟

بعد رسیدیم به Tor

QRها هم پایان کار نبودن.

دوباره Steganography.

دوباره متن و Book Cipher.

یکی از مسیرها از اثر Agrippa ویلیام گیبسون استفاده می‌کرد.

و در نهایت Solverها به یه آدرس:

.onion

رسیدن.

یعنی یه Hidden Service روی شبکه‌ی Tor.

یه بخش مهم ماجرا هم این بود که Cicada نمی‌خواست کسی فقط Solution بقیه رو کپی کنه.

هدف ظاهراً پیدا کردن افرادی بود که خودشون بتونن مسیر رو طی کنن.

برای همین وقتی تعداد مشخصی به مراحل پایانی رسیدن، درها بسته شد.

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

خب، آخرش کسی برد؟

ظاهراً آره.

و اینجا داستان حتی عجیب‌تر می‌شه.

چند نفر گفتن تونستن به بخش خصوصی Cicada وارد بشن.

یکی از معروف‌ترین روایت‌ها متعلق به Solverی با نام Tekknolagiـه که Fast Company سال ۲۰۱۴ باهاش مصاحبه کرد.

طبق روایت اون، پشت مرحله نهایی چیزی شبیه Message Board و Chat وجود داشته و آدم‌هایی درباره‌ی پروژه‌های مرتبط با:

Cryptography،

Privacy،

Anonymity،

و End-to-End Encryption

صحبت می‌کردن.

اون حتی گفته حدود ۲۰ نفر رو در Chat دیده، ولی مهمه که این قسمت رو با بخش‌های رمزنگاری‌شده‌ی Cicada قاطی نکنیم: خبرنگار تونسته هویت و مهارت فنی اون فرد رو بررسی کنه، ولی خودش هم نوشته که ادعاهای مربوط به «داخل Cicada» مستقلاً قابل اثبات نبوده.

پس اینجا از «مدرک قطعی» وارد «روایت نسبتاً معتبر» می‌شیم.

بعد سال بعد دوباره برگشتن

۲۰۱۳.

تقریباً یک سال بعد.

Cicada دوباره شروع کرد.

این بار حتی یه فایل Bootable ISO وارد معما شد.

یه Linux کوچیک رو Boot می‌کردی و سرنخ‌ها از داخل سیستم بیرون می‌اومدن.

موسیقی.

Prime Number.

Twitter.

و کم‌کم یه Alphabet عجیب معرفی شد:

Gematria Primus.

مجموعه‌ای از Runeها که به مقادیر عددی وصل بودن.

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

Liber Primus

سال ۲۰۱۴ رسیدیم به معروف‌ترین شیء کل داستان:

Liber Primus

یعنی تقریباً:

«کتاب اول».

صفحه‌هایی سیاه‌وسفید، پر از Runeهای Gematria Primus، تصاویر عجیب و متن رمزگذاری‌شده.

اگر فقط Alphabet رو بدونی، مشکل حل نمی‌شه.

چون مسئله فقط این نیست که بگی:

ᚠ = F

و تمام.

بخش‌های حل‌شده نشون دادن Cicada از Transformationهای مختلف، عملیات عددی، Prime Numberها، Arithmetic مدولار و روش‌های متفاوت استفاده کرده.

یعنی یه Cipher واحد نداری که بندازیش روی کل کتاب و Enter بزنی.

بعد از این همه سال چقدرش حل شده؟

اینجاش دیوونه‌کننده‌ست.

Liber Primus معمولاً به دو مجموعه تقسیم می‌شه.

LP1:

۱۷ صفحه.

هر ۱۷ صفحه حل شده.

LP2:

۵۸ صفحه.

چندتاش حل شده؟

دو تا.

یعنی:

58 pages
2 solved
56 unsolved

پنجاه‌وشش صفحه هنوز حل قطعی ندارن.

نه اینکه فایل‌ها گم شده باشن.

داریمشون.

Runeها رو داریم.

Alphabet رو هم تا حد زیادی می‌فهمیم.

ولی نمی‌دونیم برای بیشتر صفحات دقیقاً چه transformation یا keyای باید استفاده بشه.

و این فرق بزرگیه.

«خب یه ابرکامپیوتر بندازید روش دیگه»

ای کاش :))

Brute Force وقتی خوبه که بدونی چی رو داری Brute Force می‌کنی.

مثلاً می‌دونی:

AES داریم.

Key length اینه.

Ciphertext اینه.

حالا Keyها رو امتحان می‌کنیم.

ولی در Liber Primus هنوز برای خیلی از صفحات سؤال اینه:

اصلاً Cipher چیه؟

Key از کجا میاد؟

از Primeها؟

از شماره صفحه؟

از Gematria؟

از متن صفحه‌ی قبلی؟

از Artwork؟

چند مرحله Transformation داریم؟

Encryption برای هر صفحه Reset می‌شه یا نه؟

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

پس AI چی؟

اینجاست که به نظرم داستان دوباره جالب شده.

مدل‌های جدید می‌تونن در پیدا کردن Hypothesis، نوشتن Solver، مقایسه‌ی ساختار صفحات و پیدا کردن Patternهایی که آدم ممکنه نبینه خیلی کمک کنن.

ولی یه LLM هم نباید صرفاً صفحه رو ببینه و بگه:

بچه‌ها حلش کردم.

چون یه متن نیمه‌معنادار ساختن خیلی آسون‌تر از شکستن یه Cipher واقعیه.

حل معتبر باید Reproducible باشه.

یعنی بتونی بگی:

Ciphertext این بود.

Key این بود.

Transformation این بود.

این Script رو اجرا کن.

و دقیقاً همین Plaintext رو تحویل بگیر.

برای همین ادعای «AI Cicada رو حل کرد» با حل واقعی فاصله‌ی زیادی داره.

جامعه‌ی فعال CicadaSolvers هنوز هم ۵۶ صفحه‌ی LP2 رو حل‌نشده ثبت می‌کنه.

خب اصلاً چه کسانی پشت Cicada بودن؟

جواب واقعی:

نمی‌دونیم.

CIA؟

NSA؟

GCHQ؟

یه Secret Society؟

یه شرکت خصوصی؟

یه گروه هکر؟

همه‌شون در طول سال‌ها مطرح شدن.

ولی مدرک قطعی برای هیچ‌کدوم وجود نداره.

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

Cryptography،

Security،

Privacy

و فرهنگ Cypherpunk

از بقیه منطقی‌تر به نظر میاد.

چون هم تکنولوژی‌هایی که انتخاب کردن با این فرهنگ جور درمیاد، هم چیزهایی که Solverهای قدیمی از اهداف گروه تعریف کردن بیشتر حول Privacy، Censorship و Cryptography بوده.

ولی هنوز فقط یه Hypothesisـه.

ممکنه هیچ‌وقت نفهمیم.

آیا این‌ها واقعاً خیلی باهوش بودن؟

به نظرم چیزی که Cicada رو ترسناک می‌کنه فقط سخت بودن Cipherها نیست.

طراحی کل سیستمشه.

یه Puzzle ساختن که توش باید:

Steganography بفهمی.

Cryptography بلد باشی.

Linux بلد باشی.

برنامه‌نویسی کنی.

ادبیات بشناسی.

عدد اول بفهمی.

Tor بلد باشی.

موسیقی و Metadata بررسی کنی.

و مهم‌تر از همه:

بفهمی کِی باید از یه حوزه‌ی کاملاً متفاوت استفاده کنی.

و همه‌ی این‌ها باید به اندازه‌ای منسجم طراحی می‌شد که هزاران نفر وارد Puzzle بشن ولی فقط تعداد کمی به تهش برسن.

تازه یه سیستم Authentication هم از روز اول گذاشته بودن که بیش از یک دهه بعد هنوز می‌شه باهاش پیام اصل و تقلبی رو جدا کرد.

این قسمت برای من حتی از Liber Primus خفن‌تره.

و بعد... سکوت

۲۰۱۵ خبری از Puzzle کامل جدید نبود.

۲۰۱۶ دوباره پیامی ظاهر شد که توجه رو برگردوند سمت Liber Primus.

و در ۲۰۱۷ آخرین پیام معتبر شناخته‌شده با کلید تاریخی Cicada منتشر شد.

مضمونش ساده بود:

حواستون به مسیرهای جعلی باشه و امضای PGP رو Verify کنید.

و بعد؟

تقریباً هیچ.

تا امروز هیچ پیام عمومی جدیدی که به‌طور پذیرفته‌شده با همون هویت رمزنگاری‌شده به Cicada اصلی وصل بشه منتشر نشده.

برمی‌گردن؟

هیچ‌کس نمی‌دونه.

شاید کل پروژه سال‌هاست مرده.

شاید اعضاش پراکنده شدن.

شاید هدف Recruitment انجام شده و دیگه کاری ندارن.

یا شاید واقعاً منتظرن کسی Liber Primus رو تموم کنه.

همین آخری از همه جذاب‌تره.

چون تصور کنید بعد از دوازده سال یکی بالاخره اون ۵۶ صفحه رو باز کنه...

و آخرین صفحه به‌جای یه متن فلسفی فقط یه آدرس جدید بده.

یه .onion.

یه Public Key تازه.

یا فقط یه جمله:

Welcome, pilgrim.

اون روز اینترنت برای چند ساعت رسماً تعطیل می‌شه :))

آخرش

Cicada 3301 به نظرم جذابه چون هنوز مجبورمون می‌کنه بین افسانه و مدرک فرق بذاریم.

QR Codeها واقعی بودن.

Puzzleها واقعی بودن.

PGP Key واقعی بود.

Tor Serviceها واقعی بودن.

Liber Primus واقعیه.

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

اما اینکه پشت پرده چه کسی بوده؟

چرا دقیقاً این آدم‌ها رو می‌خواسته؟

و ته Liber Primus چی خوابیده؟

هنوز نمی‌دونیم.

و شاید همین بهتر باشه.

اینترنت امروز خیلی کم چیزی داره که هنوز بشه بهش نگاه کرد و واقعاً گفت:

«نمی‌دونیم.»

تا بلاگ بعدی، بدرود!