همین حالا که در حال خواندن این جمله هستید، یک جنگ پنهان و بیصدا در چند میلیمتری شما جریان دارد. در هر ثانیهای که دکمه خرید یک فروشگاه اینترنتی را لمس میکنید، پسوردی را تایپ میکنید یا در پیامرسانها به دوستتان پیام میدهید، صدها هکر، رباتهای مخرب و حتی آژانسهای امنیتی در تلاشند تا این بستههای اطلاعاتی را وسط راه بربایند. اما چه چیزی مانع آنهاست؟ یک دیواره نامرئی از جنس ریاضیات پیشرفته به نام پروتکلهای رمزنگاری.
واقعیت این است که اینترنت در ذات خود یک شبکه کاملاً ناامن و عریان است؛ فضایی که در آن هر دادهای بدون حفاظ میتواند لو برود. در این میان، الگوریتمهای امنیت شبکه نقش بادیگاردهای جانسخت حریم خصوصی ما را بازی میکنند. آنها دیتای حساس شما را پیش از خروج از دستگاه، داخل یک کلاف سردرگم و غیرقابلنفوذ به نام «متن رمزنگاریشده» میپیچند که باز کردن آن بدون داشتن کلید اختصاصی، حتی برای قویترین ابرکامپیوترهای جهان نیز میلیاردها سال طول میکشد.
اما زیر پوست این قفلهای دیجیتال چه میگذرد؟ ساختار فنی این جادوی مدرن چگونه طراحی شده است؟ در این راهنمای جامع پروتکلهای رمزنگاری، قصد داریم به عمق زیرساختهای امنیت شبکه نفوذ کنیم؛ از کالبدشکافی تفاوتهای بنیادین رمزنگاری متقارن و نامتقارن گرفته تا بررسی پروتکلهای حیاتی وب مثل SSL/TLS، توابع هشِ دیتابیسها و در نهایت، کابوس بزرگی به نام محاسبات کوانتومی که آینده امنیت جهان را تهدید میکند. اگر میخواهید بدانید پادشاهان پنهان دنیای IT چطور از داراییهای دیجیتال و اسرار شما دفاع میکنند، با این کالبدشکافی عمیق همراه باشید.
رمزنگاری چیست و چرا بنیان امنیت دیجیتال است؟
به زبان خیلی ساده، رمزنگاری (Cryptography) علم و هنر پنهان کردن اطلاعات است؛ به طوری که فقط و فقط افراد مجاز (کسانی که کلید را دارند) بتوانند به محتوای اصلی آن دسترسی داشته باشند. کلمهی Cryptography از دو واژهی یونانی Kryptos (به معنی پنهان) و Graphein (به معنی نوشتن) گرفته شده است.
در دنیای آیتی، هر فرآیند رمزنگاری از ۴ رکن اصلی تشکیل میشود:
متن آشکار (Plaintext): دیتای اولیه و خام شما که برای همه قابل خواندن است (مثلاً پسورد شما:
123456).متن رمزنگاریشده (Ciphertext): دیتایی که تغییر شکل یافته و به یک کلاف سردرگم از حروف و اعداد بیمعنی تبدیل شده است (مثلاً پسورد بالا بعد از رمزنگاری:
8f4v9!mQx).مکانیزم یا تابع رمزنگاری: فرآیند ریاضیاتی که متن آشکار را به متن رمز تبدیل میکند.
کلید (Key): یک رشته متنی یا عددی منحصربهفرد که به تابع داده میشود تا قفل اطلاعات را باز یا بسته کند.
یک مثال ملموس: فرض کنید میخواهید یک نامه محرمانه را پست کنید. اگر آن را روی کارت پستال بنویسید، همه بین راه آن را میخوانند (Plaintext). اما اگر نامه را داخل یک صندوقچه فلزی بگذارید و آن را قفل کنید، دیگر کسی نمیتواند محتوای آن را ببیند (Ciphertext). در این سناریو، خودِ صندوقچه مکانیزم دفاعی و آن شیء فلزی کوچک که دست شماست، کلید است.
الگوریتم چیست؟ موتور محرک پروتکلهای امنیتی
بدون وجود الگوریتمها، هیچ قفل دیجیتالی وجود نداشت. اما الگوریتم (Algorithm) چیست؟ به زبان ساده، الگوریتم یک دستورالعمل گامبهگام، منطقی و دقیق برای حل یک مسئله یا انجام یک محاسبه است. همانطور که دستور پخت یک کیک، مراحل پخت آن را قدمبهقدم (۱. آرد را الک کنید، ۲. تخممرغ را اضافه کنید و...) توضیح میدهد، الگوریتم هم به کامپیوتر میگوید که برای رسیدن به یک هدف مشخص، دقیقاً چه کارهایی را به چه ترتیبی انجام دهد.
در حوزه امنیت شبکه، الگوریتم رمزنگاری (Encryption Algorithm) یک فرمول یا تابع ریاضی بسیار پیچیده است که متن آشکار و کلید را به عنوان ورودی (Input) میگیرد، آنها را طبق یک پروتکل و دستورالعمل کاملاً مشخصِ ریاضی در هم ضرب، جابهجا و ترکیب میکند و در نهایت متن رمزنگاریشده را به عنوان خروجی (Output) تحویل میدهد.
انواع الگوریتمها و پروتکلهای رمزنگاری جهان
در یک نگاه کلی، تمام سیستمهای رمزنگاری و امنیتی مدرن در دنیای IT به ۴ دسته اصلی تقسیم میشوند:
الگوریتمهای رمزنگاری متقارن (Symmetric Algorithms)
AES (Advanced Encryption Standard)
ChaCha20
DES (منسوخ شده)
3DES (منسوخ شده)
RC4 (منسوخ شده)
الگوریتمهای رمزنگاری نامتقارن (Asymmetric Algorithms)
RSA (Rivest–Shamir–Adleman)
ECC (Elliptic-Curve Cryptography)
Diffie-Hellman (پروتکل تبادل کلید)
توابع درهمسازی یا هش (Hashing Functions)
SHA-2 (به ویژه SHA-256)
SHA-3
MD5 (منسوخ شده)
SHA-1 (منسوخ شده)
پروتکلهای ترکیبی و کاربردی شبکه (Hybrid Protocols)
SSL/TLS (امنیت لایه انتقال وب - HTTPS)
SSH (اتصال امن به سرورها)
Signal Protocol (رمزنگاری سرتاسری چتها)
بخش اول: کالبدشکافی عمیق الگوریتمهای متقارن (Symmetric ciphers)
۱. الگوریتم AES (Advanced Encryption Standard)؛ دژ نفوذناپذیر دنیای دیجیتال
اگر در دنیای فناوری امروز چیزی به نام «امنیت مطلق» وجود داشته باشد، نام آن AES است. این پروتکل، سوخت اصلی موتورهای امنیتی جهان را تأمین میکند و استاندارد طلایی رمزنگاری متقارن محسوب میشود. اما این الگوریتم چطور به وجود آمد، معماری داخلی آن چگونه بیتها را شخم میزند و چرا هنوز هیچ کامپیوتری در جهان نتوانسته آن را بشکند؟
قصه هک شدن DES و تولد یک پادشاه
در اواخر دهه ۱۹۹۰ میلادی، با افزایش قدرت پردازندهها، الگوریتم استاندارد قبلی دولت آمریکا یعنی DES که از کلیدهای کوتاه ۵۶ بیتی استفاده میکرد، عملاً در برابر حملات Brute Force (تست تمام کلیدهای ممکن) زانو زد و در کمتر از یک روز شکسته شد. این یک بحران ملی برای امنیت دادهها بود.
سازمان استاندارد ملی آمریکا (NIST) یک فراخوان بینالمللی صادر کرد و از تمام دانشمندان و ریاضیدانان بزرگ جهان خواست تا طرحهای خود را برای جایگزینی DES ارسال کنند. پس از ۵ سال ارزیابی فرساینده و تلاش صدها هکر و آژانس امنیتی برای نفوذ به طرحهای پیشنهادی، سرانجام در سال ۲۰۰۱، الگوریتمی به نام Rijndael که توسط دو رمزنگار نابغه بلژیکی به نامهای وینسنت ریمن و جوآن دیمن طراحی شده بود، به عنوان برنده معرفی شد و نام آن را AES گذاشتند.
کالبدشکافی معماری فنی و ساختار Rounds در AES
AES یک الگوریتم رمزنگاری بلوکی (Block Cipher) است. این یعنی دادههای ورودی شما (مثلاً یک فایل متنی یا یک عکس) هر چقدر هم که بزرگ باشند، ابتدا به بلوکهای ثابت ۱۲۸ بیتی (معادل ۱۶ بایت) تقسیم میشوند. اگر بلوک آخر کمتر از ۱۲۸ بیت باشد، الگوریتم با استفاده از استانداردهای Padding بیتهای تصادفی به آن اضافه میکند تا اندازه آن دقیقاً ۱۲۸ بیت شود.
امنیت و قدرت تکاملی AES به طول کلیدهای آن بستگی دارد که در سه سطح استاندارد پیادهسازی میشود:
AES-128: از کلید ۱۲۸ بیتی استفاده میکند و دیتای ورودی را ۱۰ دور شخم میزند.
AES-192: از کلید ۱۹۲ بیتی استفاده میکند و دیتای ورودی را ۱۲ دور شخم میزند.
AES-256: از کلید ۲۵۶ بیتی استفاده میکند و دیتای ورودی را ۱۴ دور شخم میزند (استاندارد نظامی).
اما در هر کدام از این دورها (Rounds) چه جادویی رخ میدهد؟ برخلاف الگوریتمهای قدیمی، AES از ساختار شبکه فایستل استفاده نمیکند، بلکه کل بلوک ۱۶ بایتی داده را در قالب یک ماتریس $4 \times 4$ به نام State قرار میدهد و در هر دور، ۴ مرحله ریاضی بسیار سنگین را روی این ماتریس پیاده میکند:
SubBytes (جانشینی بایتها): در این مرحله، هر بایت از داده درون ماتریس، بر اساس یک جدول ریاضی ثابت و غیرخطی به نام S-Box با یک بایت دیگر تعویض میشود. این کار باعث ایجاد پدیدهای به نام Confusion (سردرگمی) در دادهها میشود تا هکر نتواند هیچ رابطه منطقی بین متن اصلی و متن رمز شده پیدا کند.
ShiftRows (تغییر سطرها): سطر اول ماتریس دستنخورده میماند، سطر دوم یک بایت به سمت چپ شیفت داده میشود، سطر سوم دو بایت و سطر چهارم سه بایت به چپ منتقل میشوند. این کار جایگاه فیزیکی اطلاعات را کاملاً تغییر میدهد.
MixColumns (ترکیب ستونها): ستونهای ماتریس با استفاده از معادلات سخت ریاضی در میدانهای گالوا ($GF(2^8)$) در هم ضرب میشوند. این جادوییترین بخش AES است؛ زیرا باعث میشود که اگر شما حتی یک بیت از متن اصلی را تغییر دهید، در دورهای بعدی کل ستونها دگرگون شوند (پدیده Diffusion یا پخششدگی).
AddRoundKey (اضافه کردن کلید دور): در نهایت، دیتای به دست آمده با یک نسخه مشتقشده از کلید اصلی که مخصوص همان دور تولید شده است، با استفاده از عملیات منطقی XOR ترکیب میشود.
این چرخه بسته به طول کلید، ۱۰ تا ۱۴ بار تکرار میشود تا در نهایت داده خروجی به یک کلاف کاملاً غیرقابلفهم تبدیل شود.
نقاط قوت مطلق (Advantages)
هکناپذیری ریاضی: تعداد حالتهای ممکن برای کلید در AES-256 برابر با $2^{256}$ است. این عدد به قدری غولپیکر است که اگر تمام ابرکامپیوترهای فعلی جهان را به خط کنیم و آنها بتوانند در هر ثانیه میلیاردها میلیارد کلید را تست کنند، باز هم بیشتر از عمر کل جهان هستی طول میکشد تا بتوانند این پروتکل را با روش حمله ترتیبی (Brute Force) بشکنند.
پشتیبانی سختافزاری (AES-NI): شرکتهای بزرگی مثل اینتل و AMD، شتابدهندههای سختافزاری اختصاصی را مستقیماً درون هسته پردازندهها تعبیه کردهاند. این یعنی عملیات رمزنگاری AES با سرعت نور و بدون اشغال کردن ظرفیت اصلی CPU انجام میشود.
انعطافپذیری فوقالعاده: این الگوریتم هم روی سختافزارهای ضعیف (مثل میکروکنترلرها و کارتهای هوشمند) و هم روی ابرسرورهای شبکه با بالاترین راندمان اجرا میشود.
نقاط ضعف و چالشها (Disadvantages)
حملات کانال جانبی (Side-Channel Attacks): خودِ ریاضیاتِ AES هکناپذیر است، اما فیزیکِ پیادهسازی آن چالش دارد. هکرهای پیشرفته با اندازهگیری دقیق میزان مصرف برق پردازنده، نشت امواج الکترومغناطیسی یا مدتزمانی که طول میکشد تا CPU عملیات ریاضی را انجام دهد (Timing Attacks)، میتوانند کلید رمزنگاری را حدس بزنند.
چالش انتقال کلید: به عنوان یک سیستم متقارن، فرستنده و گیرنده باید ابتدا روی یک کلید مشترک توافق کنند. اگر این کلید لو برود، تمام قفلهای AES بیارزش میشوند.
آسیبپذیری در پیادهسازیهای نرمافزاری: اگر برنامهنویس کد مربوط به جداول S-Box را در رم به صورت بهینه ننویسد، حملات تعویض کش (Cache-timing) کل امنیت سیستم را به باد میدهد.
مثالهای واقعی؛ AES کجا ایستاده است؟
BitLocker و FileVault: وقتی قابلیت رمزنگاری دیسک را در ویندوز (BitLocker) یا مک (FileVault) فعال میکنید، تکتک بیتهای هارد دیسک شما با AES-128 یا AES-256 قفل میشوند تا اگر لپتاپ شما دزدیده شد، هیچکس نتواند به اطلاعاتش دسترسی پیدا کند.
امنیت دیتابیسها: سیستمهای مدیریت پایگاه داده بزرگ مانند SQL Server، Oracle و PostgreSQL برای قابلیت رمزنگاری شفاف دادهها (Transparent Data Encryption - TDE) جهت قفل کردن اطلاعات حساس کاربران (مثل شماره کارت یا پسوردها) روی دیسک، تماماً از AES استفاده میکنند.
پروتکلهای ارتباطی مدرن: لایه نهایی حفاظت از دادهها در شبکههای وایفای خانگی مدرن (WPA3)، اتصالات امن وب (TLS 1.3)، و اکثر پروتکلهای نظامی و دولتی جهان بر دوش AES-256 است.
۲. الگوریتم ChaCha20؛ چابک، مدرن و بهینهشده برای دنیای موبایل
در حالی که AES جهان سختافزار را فتح کرده بود، در سال ۲۰۰۸ دانشمند سرشناس دنیای امنیت، دانیل جی برنشتاین (معروف به djb)، الگوریتمی را معرفی کرد که معادلات سرعت را در دستگاههای بدون شتابدهنده سختافزاری به هم ریخت: ChaCha20.
ساختار فنی و مهندسی جریانی ChaCha20
برخلاف AES که یک الگوریتم بلوکی است، ChaCha20 یک رمزنگاری جریانی (Stream Cipher) است. این یعنی منتظر جمع شدن اطلاعات در بلوکهای ۱۲۸ بیتی نمیماند؛ بلکه دادهها را بیتبهبیت یا بایتبهبایت، دقیقاً همان لحظه که تولید میشوند، رمزنگاری میکند.
مهندسی داخلی ChaCha20 بر پایه یک ماتریس $4 \times 4$ از کلمات ۳۲ بیتی (در مجموع ۵۱۲ بیت یا ۶۴ بایت) استوار است. این ماتریس شامل موارد زیر است:
۴ کلمه به عنوان ثابت (Constant) برای جلوگیری از حملات ساختاری.
۸ کلمه برای کلید اصلی (۲۵۶ بیت).
۲ کلمه برای شمارنده (Counter) جهت تضمین اینکه هیچ دو بلوکی مثل هم رمز نشوند.
۲ کلمه برای مقدار اولیه تصادفی (Nonce).
جادوی ChaCha20 در این است که برخلاف پیچیدگیهای ریاضی لایههای AES، این الگوریتم تنها از سه عملیات بسیار ساده و فوقالعاده سریع در سطح پردازنده استفاده میکند که به آن ARX میگویند:
Add (جمع ریاضی)
XOR (یای انحصاری منطقی)
Rotate (چرخش بیتها)
عدد ۲۰ در نام این الگوریتم به این معنی است که این ساختارِ ARX دقیقاً ۲۰ دور به صورت متقاطع روی سطرهای و ستونهای ماتریس تکرار میشود تا دیتای خروجی تولید شود. از آنجا که پردازندهها عاشق عملیاتهای سادهای مثل جمع و XOR هستند، ChaCha20 بدون نیاز به هیچ قطعه سختافزاری خاصی، روی هر CPU ضعیفی با سرعت سرسامآور اجرا میشود.
نقاط قوت مطلق (Advantages)
سرعت نرمافزاری بیرقیب: در دستگاههایی که پردازنده آنها مجهز به شتابدهنده سختافزاری AES نیست (مثل گوشیهای هوشمند ارزانقیمت، تبلتها، یا گجتهای اینترنت اشیاء)، ChaCha20 بیش از ۳ برابر سریعتر از AES اجرا میشود.
مقاومت ذاتی در برابر حملات زمانبندی: از آنجا که عملیاتهای جمع و XOR در پردازندهها همیشه در یک زمان ثابت اجرا میشوند (زمان اجرای آنها به مقدار دیتا بستگی ندارد)، ChaCha20 به طور ذاتی در برابر حملات کانال جانبی زمانبندی (Timing Attacks) مصون است.
مصرف انرژی به شدت پایین: این الگوریتم به دلیل سادگی محاسبات، فشار بسیار کمی به پردازنده میآورد که خروجی مستقیم آن، بهینهسازی مصرف باتری در دستگاههای پرتابل است.
نقاط ضعف و چالشها (Disadvantages)
حساسیت شدید به تکرار Nonce (مقدار تصادفی): بزرگترین و مرگبارترین چالش ChaCha20 این است که اگر برنامهنویس اشتباهاً از یک مقدار Nonce یکسان برای رمزنگاری دو پیام مختلف با یک کلید استفاده کند، هکر با یک تفاضلگیری ساده ریاضی (XOR کردن دو متن رمز شده) میتواند متن اصلی هر دو پیام را بدون داشتن کلید به دست آورد.
عدم بهینگی در سرورهای بزرگ: در سرورهای دیتاسنتر که پردازندههای غولپیکر با چیپستهای اختصاصی AES دارند، ChaCha20 قافیه را از نظر نرخ انتقال داده (Throughput) به AES میبازد.
مثالهای واقعی؛ ChaCha20 کجا ایستاده است؟
سیستمعامل اندروید و مرورگر گوگل کروم: گوگل در سال ۲۰۱۴ اعلام کرد که برای تمام گوشیهای اندرویدی که سختافزار اختصاصی AES ندارند، ترافیک HTTPS مرورگر کروم را سوییچ میکند روی جفتِ پروتکولی ChaCha20-Poly1305. این کار باعث شد لود صفحات وب روی گوشیهای اقتصادی سرعت چشمگیری بگیرد.
پروتکل مدرن WireGuard: پروتکل انقلابی وایگارد که به عنوان نسل جدید VPNها شناخته میشود و سرعت لود آن چندین برابر OpenVPN است، به طور کامل پروتکلهای قدیمی را کنار گذاشته و از ChaCha20 به عنوان موتور اصلی رمزنگاری خود استفاده میکند.
ارتباطات ابری Cloudflare: غول خدمات ابری کلودفلر برای استریم امن ویدیوها و تبادل دیتای سریع بین کاربران موبایل و سرورهایش، به طور گسترده از این الگوریتم استفاده میکند.
کاملاً درست میگویید؛ یک دایرةالمعارف یا راهنمای جامع بدون بررسی دقیق دلایل سقوط و مرگ پروتکلهای قدیمی کامل نمیشود. در دنیای امنیت شبکه، شناخت الگوریتمهای منسوخشده به اندازه الگوریتمهای مدرن اهمیت دارد؛ چرا که به ما میآموزد هکرها با چه روشهایی ساختارهای ریاضی را در هم میشکنند و چرا دیگر نباید به این سیستمهای قدیمی اعتماد کرد.
بیایید بخش الگوریتمهای متقارن را با کالبدشکافی ۳ پروتکل منسوخشده و بسیار معروف دنیای فناوری، یعنی DES، 3DES و RC4 تکمیل کنیم:
۳. الگوریتمهای منسوخشده متقارن؛ درسهایی از سقوط امپراتوریهای قدیمی
در رمزنگاری متقارن، دو عامل اصلی باعث مرگ یک الگوریتم میشود: رشد سرسامآور قدرت پردازشی کامپیوترها (سختافزار) و کشف روزنههای ریاضی جدید در ساختار الگوریتم.
الف) الگوریتم DES (Data Encryption Standard)؛ قربانی طول کلید کوتاه
این پروتکل در سال ۱۹۷۷ توسط شرکت IBM و با همکاری آژانس امنیت ملی آمریکا (NSA) طراحی شد و برای بیش از دو دهه، استاندارد رسمی و جهانی رمزنگاری ترافیکهای مالی و دولتی بود.
ساختار فنی: DES یک الگوریتم رمزنگاری بلوکی بر پایه ساختار «شبکه فایستل» (Feistel Network) بود. این الگوریتم دادهها را در بلوکهای ۶۴ بیتی دریافت میکرد و آنها را در ۱۶ دور تکرار ریاضی شخم میزد.
علت منسوخ شدن: پاشنه آشیل بزرگ DES، طول کلید ۵۶ بیتی آن بود. ۵۶ بیت یعنی این الگوریتم تنها $2^{56}$ (حدود ۷۲ کوادریلیون) حالت ممکن برای کلید داشت. در دهه ۷۰ میلادی، تست کردن این تعداد کلید برای کامپیوترها قرنها طول میکشید. اما در سال ۱۹۹۸، سازمان EFF کامپیوتر ویژهای به نام DES Cracker ساخت که توانست کلید یک پیام رمز شده با DES را ظرف ۵۶ ساعت پیدا کند. در سال ۱۹۹۹ این زمان به کمتر از ۲۲ ساعت رسید. از آنجا که هکرها میتوانستند با روش حمله ترتیبی (Brute Force) تمام کلیدها را در کمتر از یک روز تست کنند، DES رسماً ناامن و منسوخ اعلام شد.
ب) الگوریتم 3DES (Triple DES)؛ تلاش ناکام برای زندهنگه داشتن مرده
پس از سقوط DES، مهندسان شبکه با این چالش روبرو شدند که تعویض تمام سختافزارهای گرانقیمتِ متکی به DES در سراسر جهان هزینهای نجومی دارد. بنابراین یک راهکار موقت و هوشمندانه به نام Triple DES ابداع کردند.
ساختار فنی: این پروتکل دادهها را دور نمیریخت، بلکه بلوکهای داده را ۳ بار پشت سر هم با الگوریتم DES پردازش میکرد. فرآیند آن به صورت مخفف EDE بود: ابتدا داده با کلید اول رمزنگاری میشد (Encrypt)، سپس با کلید دوم رمزگشایی کاذب میشد (Decrypt) و در نهایت با کلید سوم دوباره رمزنگاری میشد (Encrypt). این کار طول کلید اسمی را به ۱۶۸ بیت ($۳ \times ۵۶$) افزایش داد.
علت منسوخ شدن: 3DES دو مشکل بزرگ داشت که باعث مرگش شد:
سرعت به شدت پایین: سه بار تکرار یک الگوریتم قدیمی روی سختافزار، پردازندهها را داغ میکرد و پهنای باند شبکه را به شدت کاهش میداد. AES بیش از ۶ برابر سریعتر از 3DES عمل میکرد.
حملات ریاضی جدید (Sweet32): در سال ۲۰۱۶، دانشمندان یک حمله سایبری به نام Sweet32 را کشف کردند. از آنجا که اندازه بلوکهای 3DES هنوز مثل نسخه قدیمی ۶۴ بیتی بود (نه ۱۲۸ بیتی مثل AES)، هکرها توانستند با مانیتور کردن حجم زیادی از ترافیک شبکه (حدود ۷۸۵ گیگابایت داده)، کلید رمزنگاری را از طریق پدیدهای به نام «تصادم بلوکها» استخراج کنند. سازمان NIST در سال ۲۰۲۳ استفاده از 3DES را در تمام سیستمهای دولتی دنیا رسماً ممنوع و منسوخ اعلام کرد.
ج) الگوریتم RC4 (Rivest Cipher 4)؛ پادشاهی که به سادگیِ خودش باخت
الگوریتم RC4 در سال ۱۹۸۷ توسط رونالد ریواست (یکی از طراحان RSA) ساخته شد. این پروتکل یک رمزنگاری جریانی (Stream Cipher) بود که به دلیل سرعت شگفتانگیزش، محبوبترین پروتکل در زیرساخت اولیه اینترنت و وایفای شد.
ساختار فنی: RC4 بر پایه یک آرایه ۲۵۶ بایتی به نام S-Box کار میکرد. این الگوریتم ابتدا آرایه را بر اساس کلید اصلی به هم میریخت (الگوریتم KSA) و سپس یک جریان بیپایان از بیتهای شبهتصادفی تولید میکرد (الگوریتم PRGA) تا با متن اصلی XOR شوند. کدهای RC4 به قدری کوتاه و ساده بودند که یک برنامهنویس میتوانست آن را در چند خط کد بنویسد.
علت منسوخ شدن: سادگی بیش از حد RC4 کار دستش داد. در اوایل دهه ۲۰۰۰، ریاضیدانان کشف کردند که تولید اعداد تصادفی در RC4 کاملاً تصادفی نیست! بایتهای اولیه جریانی که این الگوریتم تولید میکرد، دارای یک سوگیری آماری (Statistical Bias) شدید بودند؛ یعنی احتمال آمدن برخی بایتها (مثل بایت صفر) بیشتر از بقیه بود.
هکرها با استفاده از این سوگیری، حملات به شدت سریعی را طراحی کردند. به عنوان مثال، در پروتکل امنیتی اولیه وایفای (WEP) که از RC4 استفاده میکرد، هکرها توانستند با شنود چند دقیقه از ترافیک شبکه، رمز وایفای خانه کاربر را در صدم ثانیه به دست آورند. در سال ۲۰۱۵، سازمان IETF با انتشار سند RFC 7465، استفاده از RC4 را در تمام نسخههای پروتکلهای وب (TLS/SSL) به طور کامل ممنوع و منسوخ اعلام کرد.
نظری ثبت نشده است.