430 likes | 676 Views
چکيده. در اين سمینار به معرفی و تشريح الگوريتم رمز دنباله ای RC4 می پردازيم و کاربردهای آن را بيان می کنيم. همچنين به تحليل آن پرداخته و نکات ضعف و قوت آن را بررسی می نماييم. در نهايت به پياده سازی های مختلف آن اشاره ای خواهيم داشت. مطالب ارائه شده. مقدمه تشريح الگوريتم ويژگيها
E N D
چکيده در اين سمینار به معرفی و تشريح الگوريتم رمز دنبالهای RC4 میپردازيم و کاربردهای آن را بيان میکنيم. همچنين به تحليل آن پرداخته و نکات ضعف و قوت آن را بررسی مینماييم. در نهايت به پيادهسازیهای مختلف آن اشارهای خواهيم داشت. RC4 Stream Cipher
مطالب ارائه شده • مقدمه • تشريح الگوريتم • ويژگيها • کاربردها • پياده سازی • تحليل RC4 Stream Cipher
انواع سيستمهای رمز • سيستمهای رمز بلوکی • سيستمهای رمز دنبالهای • سيستمهای رمز کليد عمومی RC4 Stream Cipher
سيستم رمز ورنام • تنها سيستم رمزنگاری امن بدون شرط شناخته شده، سيستم رمز One-Time-Pad است که پايه سيستمهای رمز دنبالهای محسوب میشود. • در اين سيستم، متن آشکار با دنباله کليد، XOR شده تا متن رمز شده بدست آيد. • دنباله کليد بايد کاملا تصادفی باشد و برای هر بار رمزنگاری از يک کليد جديد استفاده شود. • طول کليد بسيار زياد است. RC4 Stream Cipher
تاريخچه RC4 • مخفف Rivest Cipher #4 و يا Ron’s Code #4 است. • در سال 1987 ميلادی، توسط Ron Rivest (از مبتکران سيستم RSA) ابداع شد. • Rivest سعی داشت با مخفی نگاه داشتن الگوريتم رمز، آن را از معرض حملات، مصون بدارد. • در تاريخ 9 سپتامبر 1994، ايميلی به صورت ناشناس، بر روی Mailing List مربوط به Cyperpunk منتشر شد که محتوای آن، تشريح الگوريتم RC4 بود! RC4 Stream Cipher
تشريح الگوريتم • رمزگذاري • رمزگشايي RC4 Stream Cipher
توليد دنباله کليد • KSA (Key Scheduling Algorithm) تعيين حالت اوليه از روي كليد • PRGA (Pseudo – Random Generation Algorithm) تعيين دنباله كليد با توجه به حالت اوليه RC4 Stream Cipher
علائم اختصاري • P: دنباله متن آشكار • C: دنباله متن رمز شده • Z: دنباله كليد • K: كليد رمز • L: طول كليد رمز بر حسب بايت (طول K) • N: طول يك كلمه (word) بر حسب بيت • i, j : شمارندههاي n بيتي • S: آرايه تايي حالت RC4 Stream Cipher
KSA • آرايه S با جايگشت هماني مقداردهي مي شود. • در يك حلقه 2^nتايي : • i از صفر تا 2^n – 1 تغيير ميكند • j بر اساس آرايه S، كليد K، شمارنده i و مقدار قبلي خود، تغيير مقدار مي دهد. • دو عنصر شماره i و شماره j از آرايه S با هم جابجا ميشوند. RC4 Stream Cipher
شبه کد KSA Initialization: For i from 0 to S[i]=i Scrambling: For i from 0 to j = j + S[i] + k[i mod L] Swap (S[i] , s[j] ) RC4 Stream Cipher
PRGA • در ابتداي اين الگوريتم، شمارندههاي i و j برابر صفر هستند. • در يك حلقه بينهايت، آرايه S بور ميخورد: • شمارنده i، هر بار يكي افزايش مييابد. • شمارنده j با مقدار S[i] جمع ميشود • S[j] و S[i] با يكديگر جابجا ميشوند. • مقدار آرايه S در خانه شماره S[i]+S[j]، به عنوان n بيت از دنباله كليد به خروجي مي رود. RC4 Stream Cipher
شبه کد PRGA Initialization: i = 0 j = 0 Generation Loop: Repeat i = (i+1) mod 2^n j = (j + S[i]) mod 2^n Swap (S[i] , S[j]) t = S[i] +S[j] Output z = S[t] Until Length (key Stream) >= Length (Plaintext) RC4 Stream Cipher
مقادير متداول • n معمولاً برابر 8 انتخاب ميشود. اگر چه كاهش n براي سيستمهاي آزمايشی و افزايش آن براي بالا بردن امنيت امكانپذير است. • طول كليد، L، مي تواند از 1 تا 256 بايت (از 8 تا 2048 بيت با پلههاي 8 بيتي) باشد. انتخاب L از 5 بايت تا 16 بايت متداول است. RC4 Stream Cipher
ويژگیها (1) • هر عضو آرايه حالت، حداقل يك بار جابجا ميشود. • دانستن مكان يك مقدار خاص در آرايه حالت، دشوار است. • دانستن مكان عضو خروجي (به عنوان دنباله كليد) از آرايه حالت، دشوار است. • آرايه حالت S به آرامي همراه با زمان تغيير ميكند. • شمارنده I تضمين ميكند كه همه عناصر آرايه تغيير ميكنند. • شمارنده j تضمين ميكند كه عناصر به صورت تصادفي تغيير كنند. RC4 Stream Cipher
ويژگیها (2) • الگوريتم مي تواند در 256^2*256! (حدود 2^1700) حالت مختلف باشد. • حالت اوليه در بيت قرار دارد. از آنجا كه S يك جايگشت است، حالت اوليه به طور موثر بيت دارد كه به ازاي طول كلمه n=8، حدود 1700 بيت اطلاعات مي شود. • هر كليد در سيستم RC4 فقط يك بار استفاده ميشود. • سرعت اجراي الگوريتم رمز RC4، 10 برابر سرعت اجراي DES است. RC4 Stream Cipher
ويژگیها (3) • دانستن تمام M بيت حالت در يك لحظه مشخص، موجب برملا شدن دنباله خروجي در تمام لحظات آينده و در نتيجه شكسته شدن سيستم ميشود. • تعيين كليد K از روي حالت اوليه دشوار است. اگرچه براي شكستن سيستم نيازي به آن نيست. • پيش بيني دوره تناوب RC4 دشوار و وابسته به كليد است. در هر حال، تحقيقات نشان ميدهد كه دوره تناوب در حالت عادي بسيار بزرگ است. [11] RC4 Stream Cipher
ويژگیها (4) • در مقابل حملههاي تحليل حالت، ضعيف است. • از هر 256 كليد، يكي ضعيف است. به طوري كه به ازاي آن ميتوان حالاتي را يافت كه تحت آن شرايط، يك يا چند بايت توليد شده با بخش كوچكي از كليد، به شدت همبستگي دارد. • الگوريتم نسبت به حملات خطي و تفاضلي اين است. (ادعاي RSADSI) • به شدت غيرخطي است. RC4 Stream Cipher
ويژگیها (5) • اگر چه پيادهسازيهاي سختافزاري و نرمافزاري RC4 ميسر است، RC4 ايدهآل براي پيادهسازي نرمافزاري است. • دنباله كليد، مستقل از متن آشكار است. • به نظر نمي رسد كه هيچ دوره كوچكي داشته باشد. • چنانچه جابجايي را از مراحل توليد دنباله كليد حذف كنيم، دنباله كليد متناوب با دوره خواهد بود. • پيادهسازي نشان ميدهد براي يافتن كليد در WEP، حدوداً به 5 ميليون بسته اطلاعاتي نياز است. RC4 Stream Cipher
كاربردها • SSL • WEP (استاندارد امنيتي IEEE 802.11) • Lotus Notes • Secure Oracle SQL • كامپيوترهاي Apple • ... RC4 Stream Cipher
WEP (1) استاندارد IEEE 802.11 كه به Wi-Fi معروف است براي ارتباط در شبكههاي LAN به كار ميرود. امنيت اين سيستم توسط استاندارد WEP (Wired Equivalent protocol) تامين ميشود. الگوريتم WEP به گونهاي انتخاب شد كه نيازهاي زير را تامين نمايد: • تا حد قابل قبولي قوي باشد و بتواند نيازهاي كاربران را برآورده سازد. • همزماني خودكار داشته باشد. دستگاههای بیسيم، ممكن است مرتباً پوشش داده شوند يا نشوند. • كارايي محاسباتي داشته باشد. • قابل صادرات به كشورهاي غيرامريكايي باشد. • اختياري باشد. RC4 Stream Cipher
WEP (2) • براي تأمين اهداف مذکور، سيستم رمز RC4 انتخاب شد. • با اين سيستم، محرمانگي و تماميت پيام حفظ مي شود. • استفاده از احراز هويت اختياري است و به طور پيش فرض، به كار نمي آيد. • بردار اوليه عمر مفيد كليد خصوصي را افزايش داده و خود همزماني سيستم را تامين مي سازد. • به منظور بالا بردن امنيت سيستم، بردار اوليه با هر پيام تغيير ميكند. RC4 Stream Cipher
WEP (3) • توزيع کليد تعيين نشده است. • احراز هويت يک طرفه است. • از سيستم رمز RC4 استفاده می نمايد. • کليد 40 بیتی می باشد. • رمزنگاری بین دو ايستگاه می باشد. RC4 Stream Cipher
WEP (4) RC4 Stream Cipher
WEP (5) RC4 Stream Cipher
WEP (6) RC4 Stream Cipher
پيادهسازي • پيادهسازيسخت افزاری • پيادهسازينرم افزاری RC4 Stream Cipher
پيادهسازيسخت افزاری • در سال 2003 • طول كليد از 8 تا 128 بيت به دلخواه كاربر • روي FPGA انجام و با زبان VHDL • در حداكثر فركانس 64 MHzنرخ بیت 176 Mbit/sec RC4 Stream Cipher
پيادهسازينرم افزاری • تنها محاسبات بايتي انجام ميشود • 256 بايت حافظه برای نگهداری آرايه حالت، L بايت براي نگهداري كليد و 3 بايت براي نگهداري شمارندههاي i و j و طول كليدنیاز است. • به جز جمع و مقداردهي، تنها، عمل باقيمانده تقسيم بر 256 صورت می گیرد. RC4 Stream Cipher
پياده سازی روی پردازنده های مختلف RC4 Stream Cipher
نکات مربوط به بهينه سازی • استفاده از 11 ثبات، كه AMD64 امكان آن را فراهم كرده است. • ثباتهاي 64 بيتي • تنظيم دستي دستورها به جاي تنظيم خودكار • استفاده از دستورهاي Direct path single به جاي Direct path Double و Vector path RC4 Stream Cipher
تحلیل (1) • حدس حالت • عدم توازن برخي بيتهاي دنباله كليد • كليد ضعيف • .... RC4 Stream Cipher
تحلیل (2) • چنانچه دركليد خصوصي k[0]+k[1]=0 (بايت صفر و بايت يك) باشد آنگاه بايت اول خروجي (دنباله كليد) با احتمال 2^-2.85 برابر k[2]+3 خواهد بود. اين مساله ميتواند كمك خوبي براي تحليلگران باشد و فضاي جستجو را كاهش دهد. تحليلگران ميتوانند به اندازه دو بايت اطلاعات با احتمال 2^-10.85 به جاي 2^-16 بدست آورند و بنابراين طول مؤثر كليد را حدود 5 بيت كاهش دهند. RC4 Stream Cipher
تحلیل (3) چنانچه كه در آن S0 نشان دهنده حالت اوليه است، آنگاه Z1 (بايت دوم خروجی دنباله کليد)، با احتمال يك، صفر خواهد بود. RC4 Stream Cipher
تحلیل (4) • با حالت اوليه تصادفي دلخواه، مقدار دومين خروجي از دنباله كليد (Z1) با احتمال 2/(2^n) برابر صفر خواهد بود. (دو برابر احتمال عادي) RC4 Stream Cipher
تحلیل (5) • «تمايزدهنده در فضاي چندجملهاي» • «حالتهاي قابل پيشبيني» • «همبستگي خروجي» • ... RC4 Stream Cipher
تحلیل (6) - WEP • طولاني بودن دوره استفاده از كليد • كوتاه بودن طول IV • عدم كارايي CRC • ... RC4 Stream Cipher
نتيجه گيري • دراين سمینار با سيستم رمز RC4 كه از سيستمهاي رمز دنبالهاي است آشنا شديم. تاريخچه اين سيستم عملاً نشان مي دهد كه با مخفيسازي الگوريتم، امنيت بدست نميآيد. اين سيستم مزايايي دارد كه ازمهمترين آنها ميتوان به سادگي و سرعت اجراي آن اشاره كرد. به طوري كه سرعت RC4، 10 برابر سرعت DES است. اما اين سيستم در مقابل حملات، بسيار آسيبپذير است و نمي تواند امنيت مناسبي ايجاد نمايد. با اين حال هنوز از اين سيستم در برخي كاربردها استفاده مي شود. • كد پيادهسازي نرمافزاری اين سيستم رمز، يك برنامه نمونه از آن، چند مقاله پيرامون اين الگورتيم و حملاتي كه عليه آن انجام شده است را ميتوانيد در cd همراه اين مقاله مشاهده نماييد. RC4 Stream Cipher
مراجع • [1]تننبام، « شبکههای کامپيوتری » ، ترجمه پدرام، ملکيان، زارعپور، انتشارات نص، ويراست چهارم، 2003، صفحات 767 تا 769. • [2] http://www.Wikipedia.org/ • [3] Rick Wash, ‘Lecture Notes on Stream Ciphers and RC4’ • [4] Thomas G. Xydis Ph.D., Simon Blake-Wilson, ‘Security Comparison: BluetoothTM Communications vs. 802.11’, 2001 • [5] ‘Overview of IEEE 802.11b Security’, Sultan Weatherspoon, Network Communications Group, Intel Corporation • [6] http://www.vocal.com/ RC4 Stream Cipher
مراجع • [7] ‘Hardware implementation of the RC4 stream cipher’, Kitsos, P. Kostopoulos, G. Sklavos, N. Koufopavlou, O. Dept. of Electr. & Comput. Eng., Patras Univ., Greece, 2003. • [8] ‘rc4-amd64 : RC4 implementation for AMD64’, Marc Bevand, November 1, 2004. • [9] ‘APPLIED CRYPTOGRAPHY : Protocols, Algorithms, and Source Code in C’, Schneier, 2nd ed, pp. 397-398. • [10] ‘Attacks on RC4’, Fluhrer, Mantin, Shamir. • [11] Mister, S., Tavares, S.: Cryptanalysis of rc4-like ciphers. In Tavares, S., Meijer, H., eds.: Selected Areas of Cryptography (SAC '98). Volume 1556 of LNCS., SpringerVerlag, 1999. RC4 Stream Cipher