Download presentation
1
RC4 Stream Cipher
2
چکيده در اين سمینار به معرفی و تشريح الگوريتم رمز دنباله ای RC4 می پردازيم و کاربردهای آن را بيان می کنيم. همچنين به تحليل آن پرداخته و نکات ضعف و قوت آن را بررسی می نماييم. در نهايت به پياده سازی های مختلف آن اشاره ای خواهيم داشت. RC4 Stream Cipher
3
مطالب ارائه شده مقدمه تشريح الگوريتم ويژگيها کاربردها پياده سازی تحليل
RC4 Stream Cipher
4
انواع سيستمهای رمز سيستم های رمز بلوکی سيستم های رمز دنباله ای
سيستم های رمز کليد عمومی RC4 Stream Cipher
5
سيستم رمز ورنام تنها سيستم رمزنگاری امن بدون شرط شناخته شده، سيستم رمز One-Time-Pad است که پايه سيستم های رمز دنباله ای محسوب می شود. در اين سيستم، متن آشکار با دنباله کليد، XOR شده تا متن رمز شده بدست آيد. دنباله کليد بايد کاملا تصادفی باشد و برای هر بار رمزنگاری از يک کليد جديد استفاده شود. طول کليد بسيار زياد است. RC4 Stream Cipher
6
تاريخچه RC4 مخفف Rivest Cipher #4 و يا Ron’s Code #4 است.
در سال 1987 ميلادی، توسط Ron Rivest (از مبتکران سيستم RSA) ابداع شد. Rivest سعی داشت با مخفی نگاه داشتن الگوريتم رمز، آن را از معرض حملات، مصون بدارد. در تاريخ 9 سپتامبر 1994، ايميلی به صورت ناشناس، بر روی Mailing List مربوط به Cyperpunk منتشر شد که محتوای آن، تشريح الگوريتم RC4 بود! RC4 Stream Cipher
7
تشريح الگوريتم رمزگذاري رمزگشايي RC4 Stream Cipher
8
تعيين حالت اوليه از روي كليد
توليد دنباله کليد KSA (Key Scheduling Algorithm) تعيين حالت اوليه از روي كليد PRGA (Pseudo – Random Generation Algorithm) تعيين دنباله كليد با توجه به حالت اوليه RC4 Stream Cipher
9
علائم اختصاري P: دنباله متن آشكار C: دنباله متن رمز شده Z: دنباله كليد
K: كليد رمز L: طول كليد رمز بر حسب بايت (طول K) N: طول يك كلمه (word) بر حسب بيت i, j : شمارندههاي n بيتي S: آرايه تايي حالت RC4 Stream Cipher
10
KSA آرايه S با جايگشت هماني مقداردهي مي شود. در يك حلقه 2^nتايي :
i از صفر تا 2^n – 1 تغيير مي كند j بر اساس آرايه S، كليد K، شمارنده i و مقدار قبلي خود، تغيير مقدار مي دهد. دو عنصر شماره i و شماره j از آرايه S با هم جابجا مي شوند. RC4 Stream Cipher
11
شبه کد KSA Initialization: For i from 0 to S[i]=i Scrambling:
j = j + S[i] + k[i mod L] Swap (S[i] , s[j] ) RC4 Stream Cipher
12
PRGA در ابتداي اين الگوريتم، شمارنده هاي i و j برابر صفر هستند.
در يك حلقه بي نهايت، آرايه S بور مي خورد: شمارنده i، هر بار يكي افزايش مي يابد. شمارنده j با مقدار S[i] جمع مي شود S[j] و S[i] با يكديگر جابجا مي شوند. مقدار آرايه S در خانه شماره S[i]+S[j]، به عنوان n بيت از دنباله كليد به خروجي مي رود. RC4 Stream Cipher
13
شبه کد 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
14
مقادير متداول n معمولاً برابر 8 انتخاب مي شود. اگر چه كاهش n براي سيستم هاي آزمايشی و افزايش آن براي بالا بردن امنيت امكانپذير است. طول كليد، L، مي تواند از 1 تا 256 بايت (از 8 تا 2048 بيت با پله هاي 8 بيتي) باشد. انتخاب L از 5 بايت تا 16 بايت متداول است. RC4 Stream Cipher
15
ويژگیها (1) هر عضو آرايه حالت، حداقل يك بار جابجا مي شود.
دانستن مكان يك مقدار خاص در آرايه حالت، دشوار است. دانستن مكان عضو خروجي (به عنوان دنباله كليد) از آرايه حالت، دشوار است. آرايه حالت S به آرامي همراه با زمان تغيير مي كند. شمارنده I تضمين مي كند كه همه عناصر آرايه تغيير مي كنند. شمارنده j تضمين مي كند كه عناصر به صورت تصادفي تغيير كنند. RC4 Stream Cipher
16
ويژگیها (2) الگوريتم مي تواند در 256^2*256! (حدود 2^1700) حالت مختلف باشد. حالت اوليه در بيت قرار دارد. از آنجا كه S يك جايگشت است، حالت اوليه به طور موثر بيت دارد كه به ازاي طول كلمه n=8، حدود 1700 بيت اطلاعات مي شود. هر كليد در سيستم RC4 فقط يك بار استفاده مي شود. سرعت اجراي الگوريتم رمز RC4، 10 برابر سرعت اجراي DES است. RC4 Stream Cipher
17
ويژگیها (3) دانستن تمام M بيت حالت در يك لحظه مشخص، موجب برملا شدن دنباله خروجي در تمام لحظات آينده و در نتيجه شكسته شدن سيستم مي شود. تعيين كليد K از روي حالت اوليه دشوار است. اگرچه براي شكستن سيستم نيازي به آن نيست. پيش بيني دوره تناوب RC4 دشوار و وابسته به كليد است. در هر حال، تحقيقات نشان ميدهد كه دوره تناوب در حالت عادي بسيار بزرگ است. [11] RC4 Stream Cipher
18
ويژگیها (4) در مقابل حمله هاي تحليل حالت، ضعيف است.
از هر 256 كليد، يكي ضعيف است. به طوري كه به ازاي آن مي توان حالاتي را يافت كه تحت آن شرايط، يك يا چند بايت توليد شده با بخش كوچكي از كليد، به شدت همبستگي دارد. الگوريتم نسبت به حملات خطي و تفاضلي اين است. (ادعاي RSADSI) به شدت غيرخطي است. RC4 Stream Cipher
19
ويژگیها (5) اگر چه پياده سازيهاي سخت افزاري و نرم افزاري RC4 ميسر است، RC4 ايده آل براي پياده سازي نرم افزاري است. دنباله كليد، مستقل از متن آشكار است. به نظر نمي رسد كه هيچ دوره كوچكي داشته باشد. چنانچه جابجايي را از مراحل توليد دنباله كليد حذف كنيم، دنباله كليد متناوب با دوره خواهد بود. پياده سازي نشان مي دهد براي يافتن كليد در WEP، حدوداً به 5 ميليون بسته اطلاعاتي نياز است. RC4 Stream Cipher
20
كاربردها SSL WEP (استاندارد امنيتي IEEE 802.11) Lotus Notes
Secure Oracle SQL كامپيوترهاي Apple ... RC4 Stream Cipher
21
WEP (1) استاندارد IEEE كه به Wi-Fi معروف است براي ارتباط در شبكه هاي LAN به كار مي رود. امنيت اين سيستم توسط استاندارد WEP (Wired Equivalent protocol) تامين مي شود. الگوريتم WEP به گونه اي انتخاب شد كه نيازهاي زير را تامين نمايد: تا حد قابل قبولي قوي باشد و بتواند نيازهاي كاربران را برآورده سازد. همزماني خودكار داشته باشد. دستگاه های بی سيم، ممكن است مرتباً پوشش داده شوند يا نشوند. كارايي محاسباتي داشته باشد. قابل صادرات به كشورهاي غيرامريكايي باشد. اختياري باشد. RC4 Stream Cipher
22
WEP (2) براي تأمين اهداف مذکور، سيستم رمز RC4 انتخاب شد.
با اين سيستم، محرمانگي و تماميت پيام حفظ مي شود. استفاده از احراز هويت اختياري است و به طور پيش فرض، به كار نمي آيد. بردار اوليه عمر مفيد كليد خصوصي را افزايش داده و خود همزماني سيستم را تامين مي سازد. به منظور بالا بردن امنيت سيستم، بردار اوليه با هر پيام تغيير مي كند. RC4 Stream Cipher
23
WEP (3) توزيع کليد تعيين نشده است. احراز هويت يک طرفه است.
از سيستم رمز RC4 استفاده می نمايد. کليد 40 بیتی می باشد. رمزنگاری بین دو ايستگاه می باشد. RC4 Stream Cipher
24
WEP (4) RC4 Stream Cipher
25
WEP (5) RC4 Stream Cipher
26
WEP (6) RC4 Stream Cipher
27
پياده سازي پياده سازي سخت افزاری پياده سازي نرم افزاری
RC4 Stream Cipher
28
پياده سازي سخت افزاری در سال 2003
طول كليد از 8 تا 128 بيت به دلخواه كاربر روي FPGA انجام و با زبان VHDL در حداكثر فركانس 64 MHz نرخ بیت 176 Mbit/sec RC4 Stream Cipher
29
پياده سازي نرم افزاری تنها محاسبات بايتي انجام مي شود
256 بايت حافظه برای نگهداری آرايه حالت، L بايت براي نگهداري كليد و 3 بايت براي نگهداري شمارنده هاي i و j و طول كليد نیاز است. به جز جمع و مقداردهي، تنها، عمل باقيمانده تقسيم بر 256 صورت می گیرد. RC4 Stream Cipher
30
پياده سازی روی پردازنده های مختلف
OpenSSL 0.9.7d (openssl speed rc4) Processor Throughput (MB/s) Athlon XP GHz 198 Opteron GHz (32-bit) 163 Opteron GHz (64-bit) 135 Pentium GHz 120 RC4 Stream Cipher
31
نکات مربوط به بهينه سازی
استفاده از 11 ثبات، كه AMD64 امكان آن را فراهم كرده است. ثباتهاي 64 بيتي تنظيم دستي دستورها به جاي تنظيم خودكار استفاده از دستورهاي Direct path single به جاي Direct path Double و Vector path RC4 Stream Cipher
32
تحلیل (1) حدس حالت عدم توازن برخي بيت هاي دنباله كليد كليد ضعيف ....
RC4 Stream Cipher
33
تحلیل (2) چنانچه دركليد خصوصي k[0]+k[1]=0 (بايت صفر و بايت يك) باشد آنگاه بايت اول خروجي (دنباله كليد) با احتمال 2^-2.85 برابر k[2]+3 خواهد بود. اين مساله مي تواند كمك خوبي براي تحليلگران باشد و فضاي جستجو را كاهش دهد. تحليلگران مي توانند به اندازه دو بايت اطلاعات با احتمال 2^ به جاي 2^-16 بدست آورند و بنابراين طول مؤثر كليد را حدود 5 بيت كاهش دهند. RC4 Stream Cipher
34
تحلیل (3) چنانچه كه در آن S0 نشان دهنده حالت اوليه است، آنگاه Z1 (بايت دوم خروجی دنباله کليد)، با احتمال يك، صفر خواهد بود. RC4 Stream Cipher
35
تحلیل (4) با حالت اوليه تصادفي دلخواه، مقدار دومين خروجي از دنباله كليد (Z1) با احتمال 2/(2^n) برابر صفر خواهد بود. (دو برابر احتمال عادي) RC4 Stream Cipher
36
تحلیل (5) «تمايزدهنده در فضاي چندجمله اي» «حالتهاي قابل پيش بيني»
«همبستگي خروجي» ... RC4 Stream Cipher
37
تحلیل (6) - WEP طولاني بودن دوره استفاده از كليد كوتاه بودن طول IV
عدم كارايي CRC ... RC4 Stream Cipher
38
نتيجه گيري دراين سمینار با سيستم رمز RC4 كه از سيستم هاي رمز دنباله اي است آشنا شديم. تاريخچه اين سيستم عملاً نشان مي دهد كه با مخفي سازي الگوريتم، امنيت بدست نمي آيد. اين سيستم مزايايي دارد كه ازمهمترين آنها مي توان به سادگي و سرعت اجراي آن اشاره كرد. به طوري كه سرعت RC4، 10 برابر سرعت DES است. اما اين سيستم در مقابل حملات، بسيار آسيب پذير است و نمي تواند امنيت مناسبي ايجاد نمايد. با اين حال هنوز از اين سيستم در برخي كاربردها استفاده مي شود. كد پياده سازي نرم افزاری اين سيستم رمز، يك برنامه نمونه از آن، چند مقاله پيرامون اين الگورتيم و حملاتي كه عليه آن انجام شده است را مي توانيد در cd همراه اين مقاله مشاهده نماييد. RC4 Stream Cipher
39
مراجع [1] تنن بام، « شبکه های کامپيوتری » ، ترجمه پدرام، ملکيان، زارع پور، انتشارات نص، ويراست چهارم، 2003، صفحات 767 تا 769. [2] [3] Rick Wash, ‘Lecture Notes on Stream Ciphers and RC4’ [4] Thomas G. Xydis Ph.D., Simon Blake-Wilson, ‘Security Comparison: BluetoothTM Communications vs ’, 2001 [5] ‘Overview of IEEE b Security’, Sultan Weatherspoon, Network Communications Group, Intel Corporation [6] RC4 Stream Cipher
40
مراجع [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 [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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.