مبانی امنیت شبکه - صفحه اصلی | وب
Download
Report
Transcript مبانی امنیت شبکه - صفحه اصلی | وب
1
مبانی امنیت شبکه
گردآوری :محمدعلی عظیمی
2
بخش دوم :رمزنگاری
گردآوری :محمدعلی عظیمی
3
تعاریف اولیه رمزنگاری
" :"Cryptographyاز زبان يوناني گرفته شدهاست و وقتيكه واژه به واژه (تحتاللفظي) ترجمه شود،
"نوشتن محرمانه" معني ميدهد.
پياماصلي plaintextيا cleartextناميده ميشود.
رمزنگاری محتويات پيام به نحوي كه محتواي آن را از بيگانگان مخفي كند ،پنهانكردن ()Encryption
ناميده ميشود.
پيامپنهانشده (رمزشده) ciphertextناميده ميشود .به فرآيند بازيابي plaintextاز
،ciphertextآشكارسازي Decryptionگفته ميشود.
در فرآيندهاي پنهان سازي و آشكار سازي به طور معمول از كليد استفاده ميشود و روش رمزنگاري بهگونهاي
است كه آشكارسازي تنها با دانستن كليد مناسب ميتواند انجام شود.
4
تعاریف اولیه رمزنگاری
: Cryptographyرمزنگاري هنر يا علم محرمانه نگاهداشتن پيامها است.
:Cryptanalysisشكستن رمز Breakingهنر شكستن رمز كنندهها ميباشد؛
بدين معني كه plaintextبدون دانستن كليد مناسب بازيابي شود.
cryptanalystها وظيفه cryptanalysisرا عهده دار ميباشند.
رمز نگاري با تمام جنبههاي پيغامرساني امن ،تصديق ،Authenticationامضاهاي
ديجيتالي ،پول الكترونيكي وديگر كاربردها سر وكار دارد Cryptology .يك شاخه از
رياضيات است كه پايههاي رياض ي روشهاي پنهان سازي (رمز نگاري) را مطالعه و
بررس ي ميكند.
5
اصول شش گانه کرکهف:
-1سیستم رمزنگاری اگر نه به لحاظ تئوری که در عمل غیرقابل شکست باشد.
-2سیستم رمزنگار باید هیچ نکته پنهان و محرمانه ای نداشته باشد؛ بلکه تنها چیزی که باید
سری نگهداشته شود ،کلید رمز است .این اصل را اصل اساس ی کرکهف می گویند .طراح
سیستم رمزنگار نباید جزئیات سیستم خود را ،حتی از دشمنان مخفی نگهدارد.
ً
ً
-3کلید رمز باید به گونه ای قابل انتخاب باشد که اوال بتوان به راحتی آن را عوض کرد و ثانیا
بتوان آن را به خاطر سپرد و نیازی به یادداشت کردن کلید رمز نباشد.
-4متون رمز نگاری شده باید از طریق خطوط تلگراف قابل مخابره باشد.
-5دستگاه رمزنگاری یا اسناد رمزشده باید توسط یک نفر قابل حمل و نقل باشد.
-6سیستم رمزنگاری باید به سهولت قابل راه اندازی و استفاده باشد .یعنی نباید به آموزش
های مفصل و رعایت فهرست بزرگی از قواعد و دستورالعمل ها نیاز داشته باشیم.
6
استدالل اصل اساس ی
ً
این که جزئیات الگوریتم را پنهای نکنیم و اساسا پنهان کردن چاره نفوذ نکردن بر
آن سیستم نیست را کرکهف به صورت زیر استدالل می کند:
هرگاه کلید در اثر خیانت یا سهل انگاری یا هر دو عامل و یا هر عامل دیگر لو
برود ،با تغییر کلید رمز جلوی ضرر گرفته می شود ولی افشای جزئیات یک
سیستم و نفوذ در آن ،هیچ چیزی در آن باقی نمی گذارد و تنها راه ،تغییر سریع
سیستم رمزنگاری است .البته این تغییر هرگز در زمان کوتاه و به راحتی امکان
پذیر نمی باشد.
هرگاه روش ی برای سال ها در معرض افکار پژوهشگران و متخصصان این فن
باشد ،با روش های علمی و عملی به چالش کشیده شود و هیچ تالش ی در
شکستن آن به ثمر نرسد ،می توان فقط احتمال داد که روش به قدر کافی
محکم و امن بوده است.
7
طبقهبندي الگوريتمهاي رمزنگاري
الگوريتمهاي رمزنگاري به دو دستة "بر پاية كليد" و غيركليدي تقسيم ميشوند
الگوريتمهاي غیركليدي هم شامل توابع درهمسازي و روشهاي رمزنگاري كالسيك و سنتي.
دو دسته از الگوريتمهاي پنهانسازي برپايةكليد موجودند :متقارن Symmetricو
ن (ياكليد عمومي) .الگوريتمهاي متقارن براي encryptionو decryptionاز
نامتقار
يك كليد استفاده ميكنند در حاليكه الگوريتمهاي نامتقارن براي پنهان سازي وآشكار سازي
از كليدهاي متفاوت استفاده ميكنند.
الگوريتمهاي متقارن ميتوانند به دو دسته رمزكنندههاي جرياني Stream cipherو
رمزكنندههاي بلوكي block cipherتقسيم شوند .رمز كنندههاي جرياني ميتوانند در
هر زمان يك بيت ًاز plaintextرا رمزكنند ،در حاليكه رمزكنندههاي بلوكي تعدادي
بيت ميگیرند (نوعا 64بيت در رمزكنندههاي پيشرفته) وآنها را به عنوان يك واحد جدا
رمز ميكنند.
8
9
حمله Brute Force
تست کردن همه کلید های ممکن تا زمانی که تبدیل درست متن اصلی شده به متن
رمز شده بدست آید.
یک حمله پایه ای وابسته به طول کلید است.
فرض می شود که متن اصلی را در اختیار دارد.
10
Assuming 1E12
Decryptions / sec
10
11
رمزشكني و حمالت عليه سيستمهاي رمزنگاري
حمالت عليه سيستمهاي رمزنگاري ،روشهايي هستند كه رمزشكن ممكن است به كار ببرد
تا امنيت يك رمزكننده را بشكند يا به آن نفوذ كند .هنوز طبقهبندي سراسري براي اين
روشها وجود ندارد .در حال حاضر ،حمالت در درجة اول با میزان اطالعات در دسترس
حملهكننده يا محدوديتهاي روي حمله و سپس با استراتژيهايي كه از اطالعات در
دسترس استفاده ميكنند ،دستهبندي ميشوند.
.1
حمله Ciphertext-only
وضعيتي است كه حملهكننده چیزي دربارة محتويات پيام نميداند و بايد فقط از Ciphertextبه
آن پي ببرد.
در عمل ،ممكن است كه دربارة Plaintextبتوان حدسهايي زد ،چرا كه انواع زيادي از پيامها
داراي سرآيند با شكل ثابتي هستند .هنوز هم نامههاي معمولي و اسناد به طريق قابل پيشبيني شروع
ميشوند.
براي مثال ،حمالت كالسيك زيادي از تحليل فركانس ي Ciphertextاستفاده ميكنند ،هر چند كه،
اين روش در برابر رمزكنندههاي پيشرفتة خوب كارآمد نيست .سيستمهاي رمزنگاري پيشرفته در برابر
حمالت Ciphertext-onlyضعيف نيستند ،چراكه گاهي اوقات آنها با فرض اضافهشدهاي كه
پيام حاوي بعض ي خصوصيات آماري ميباشد در نظر گرفته ميشوند.
12
.2
حملة Known-Plaintext
.3
در اين وضعيت ،حملهكننده ميداند يا ميتواند Plaintextرا براي بعض ي بخشهاي
Ciphertextحدس بزند.
كار رمزگشايي باقيماندة بلوكهاي Ciphertextبا استفاده از اين اطالعات صورت ميگیرد.
اين کار ممكن است به وسيله تشخيص كليد مورد استفاده براي رمزكردن داده ،يا از طريق تعدادي
ميانبر انجام شود.
يكي از بهترين حمالت شناختهشدة مدرن Known-plaintextرمزشكني خطي عليه
رمزكنندههاي بلوكي ميباشد.
حملة Chosen-Plaintext
در اين حالت ،حملهكننده قادر به داشتن رمزشدة هر متن دلخواه با كليد ناشناخته ميباشد.
عمل الزم ،مشخصكردن كليد استفاده شده براي رمزكردن ميباشد.
يك مثال از اين حمله "رمزشكني تفاضلي" Differential Cryptanalysisاست كه ميتواند
عليه رمزكنندههاي بلوكي به كار گرفته شود (و در بعض ي حاالت عليه توابع درهمسازي نیز استفاده
ميشود).
بعض ي سيستمهاي رمزنگاري ،بهطورمشخص ،RSAنسبت به حمالت Chosen-Plaintext
آسيبپذير هستند.
13
.4
حملة Man-in-the-middle
اين حمله مربوط به ارتباطات رمزنگاري و قراردادهاي مبادلة كليد ميباشد.
ايده اين است كه هنگاميكه دو طرف Aو Bدر حال مبادلة كليد براي ارتباط امن
ً
ميباشند (مثال با استفاده از )Diffie-Hellman؛ دشمن خودش را روي خط
ارتباطي بین Aو Bقرار ميدهد .دشمن سپس سيگنالهايي را كه Aو Bبه يكديگر
ميفرستند قطع ميكند و يك مبادلة كليد به صورت جداگانه با Aو Bانجام
ميدهد.
A و Bبه كار خود خاتمه ميدهند در حاليكه از دو كليد متفاوت استفاده ميكنند
كه هر كدام نزد دشمن شناخته شدهاست .دشمن سپس ميتواند هر ارتباطي از Aرا
با كليدي كه با Aمشترك است رمزگشايي كند و مكاتبه را با رمزكردن آن با كليدي
كه با Bبه اشتراك گذاشته است ،به Bبفرستد .هر دوي Aو Bفكر خواهند كرد
كه آنها به صورت امن در حال مكاتبه هستند ،اما درحقيقت دشمن همه چیز را در
كنترل خود آورده است.
راه معمول براي جلوگیري از حملة ،Man-in-the-middleاستفاده از يك
سيستم رمزنگاري كليد عمومي با توانايي ارائه امضاهاي ديجيتالي ميباشد.
14
.5حمله عليه سختافزار زير اليه
در چند سال اخیر از آنجاييكه"وسايل رمزنگاري متحرك" Mobile crypto
استفادة وسيع قرار گرفتهاند ،يك دستة جديد
devicesكوچك و كوچكتر ،مورد ً
از حمالت ظهور پيدا كردهاند كه مستقيما پيادهسازي سختافزاري سيستم رمزنگاري
را هدفگیري ميكنند.
حمالت از دادههايي كه از اندازهگیريهاي خيلي ظريف از وسيلة مزبور در زمانهاي
ً
مشخص ،مثال در زمان رمزكردن بدست ميآيد استفاده ميكنند و اطالعات كليد را از
اين اندازهگیريها محاسبه ميكنند.
.6نقص و خرابی در سيستمهاي رمزنگاري Faults in cryptosystems
" نقص در سيستمهاي رمزنگاري" ميتواند منجر به رمزشكني و حتي افشاي كليد
محرمانه گردند.
اين مساله روشن شده است كه بعض ي الگوريتمها با ايجاد نقصهاي كوچك در
محاسبات داخلي بد رفتار ميكنند .به عنوان مثال ،در پيادهسازي معمول ،RSA
اعمال مربوط به كليد خصوص ي ،در برابر اين دسته از حمالت آسيبپذير ميباشد.
نشان داده شدهاست كه با ايجاد يك بيت خطا در مكان مناسب ميتوان تجزية پيمانه
را کشف كرد (بدينوسيله كليد خصوص ي هم آشكار ميشود).
15
استراتژيهاي حمله
.1
.2
.3
.4
.5
( Brute-Forceهمچنین "جستجوي كليد سراسري" Exhaustive
)key search
( Codebookمفهوم "شكستن كد" Codebreakingكالسيك) .در
اين حمله ،دشمن سعي ميكند كه يك ليست يا يك كتاب از تمام تبديالت
ممكن بین Plaintextو Ciphertextبا يك كليد مجزا ايجاد كند .يك
راه مقابله داشتن اندازة بلوك بزرگ ميباشد.
شكستن رمز تفاضلي :Differential cryptanalysisدر اين استراتژي
هدف ،يافتن تشابه آماري بین مقادير كليد و تبديالت رمزكننده ميباشد.
شكستنرمز خطي :Linear cryptanalysisهدف ،يافتن يك تخمین
خطي براي S-boxهاي موجود در رمزكننده و استفاده از آن براي يافتن
كليد ميباشد.
Meet-in-the-Middle
16
استراتژيهاي حمله
.6
.7
.8
.9
.10
:Key Scheduleانتخاب كليدهايي كه تأثیرات معلومي را در مراحل مختلف
رمزكردن بهجاي ميگذارند.
ً
( Birthdayمعموال يك حمله عليه :)hashبا استفاده از پارادوكس روز تولد انجام
ميشود ،ايده اين است كه يافتن دو مقدار كه با هم تطبيق داشته باشند از يافتن تطبيق
با يك مقدار مشخص ،سادهتر است .پارادوكس اصلي بدين صورت ميباشد كه در يك
كالس درس تنها با 23دانشآموز با احتمال 50درصد ،حداقل 2نفر متولد يك روز
هستند.
تشابه Correlation
:Dictionaryاز يك ليست با كليدهاي خيلي محتمل ،سعي در يافتن كليد ًمورد نظر
صورت ميگیرد (درواقع يك راه براي بهبود Brute-forceميباشد) .معموال براي يافتن
يك كلمة عبور استفاده ميشود بدين نحوكه يك فرهنگ از كلمههاي عبور متداول،
ايجاد شده و روي آن Brute-Forceانجام ميشود.
:Replayتعدادي از بلوكها يا پيامهاي Ciphertextضبط و ذخیره ميگردد و
سپس در زمان مناسب دوباره فرستاده ميشود.
17
امنیت غير مشروط
امنیت محاسباتی
رمزنگاری در صورتی امنیت غیر مشروط است که متن رمزشده تولید شده
شامل اطالعات کافی برای پیدا کردن متن اصلی نباشد .اهمیتی ندارد که چه
حدی از متن رمزشده در اختیار باشد یا چقدر محاسبات الزم است ،در هز
صورت امکان پیدا کردن متن اصلی نباشد.
اگر بدون توجه به میزان قدرت پردازش ی در دسترس ،نتوان الگوریتم رمز را
شکست .زیرا متن رمز شده اطالعات کافی برای بدست آوردن متن اصلی را نمی
دهد.
بجز الگوریتم one-time padهیچ الگوریتم رمزی امنیت غیر مشروطی
وجود ندارد.
با توجه به منابع محاسباتی محدود (بطور مثال زمان مورد نیاز برای شکستن رمز
بیشتر از عمر جهان باشد) الگوریتم رمز نمی تواند شکسته شود.
18
کاربرد رمزنگاری
ً
عموما الگوريتمهاي متقارن براي اجرا شدن روي يك كامپيوترخيلي سريعتر از انواع نامتقارن
هستند.
ً
در عمل ،اين الگوريتمها غالبا با همديگر استفاده ميشوند .بدين ترتيب که يك الگوريتم كليد
عمومي مورد استفاده قرار ميگیرد تا يك كليد رمزنگاري تصادفي را رمزكند و كليد تصادفي
مورد استفاده قرار ميگیرد تا پيام حقيقي (واقعي) را با استفاده از يك الگوريتم متقارن
رمزكند .اين عمل گاهي رمز كردن پيوندي يا تركيبي ناميده ميشود.
رمزنگاري عالوه بر محرمانگي ،Confidentialityهمچنین ميتواند خواص امنيتي زير را
فراهم كند:
تصديق : Authenticationبه طرفي كه اطالعات را ميفرستد اعتبار و رسميت ميدهد.
جامعيت :Integrityاطمينان ميدهد كه اطالعات در هنگام انتقال تغيیر نيافته است.
عدم انكار :Non-Repudiationمانع از انكار يك طرف كه پيامي فرستاده يا عملي را انجام داده
است ،ميشود.
19
مديريت كليد
بسياري از حمالت عليه الگوريتمهاي متقارن و نامتقارن بر روي مديريت كليد انجام
ميگیرد .مديريت كليد شامل عمليات توليد ،انتقال و نگهداري كليد ميباشد و نگهداري
كليد شامل عمليات بروزرساني ،ذخیره و پشتيبانگیري از كليد ميباشد.
توليد كليد
براي توليد كليد به صورت تصادفي ،بهترين روش ،استفاده از "مولدهاي اعداد
شبهتصادفي" ميباشد .اين مولدها توابع يكطرفهاي ميباشند كه از يك عدد تصادفي
كوچك ،رشتة تصادفي بزرگتري ميسازند؛ بهنحويكه حدسزدن عدد تصادفي توليد شده
بسيار مشكل ميباشد .استاندارد (ANSI X9.17تجديدنظرشده) يك روش براي توليد
كليدهاي تصادفي درون يك سيستم پيشنهاد نمودهاست .در اين روش ،از الگوريتم رمزنگاري
DESاستفاده ميشود
20
انتقال كليد
در الگوريتمهاي متقارن ،كليد توليد شده بايد به صورت امن به طرف مقابل انتقال
يابد.
از روشهاي معمول انتقال كليدهاي الگوريتمهاي متقارن استفاده از الگوريتمهاي
نامتقارن و روش رمزنگاري كوانتومي ميباشد.
رمزنگاري كوانتمي در مراحل تحقيقاتي و آزمايشگاهي قرار دارد .اين رمزنگاري بر اساس
قوانین كوانتوم استوار است و تضمین ميكند كه كليد منتقلشده با استفاده از اين
روش ،قابل كشف توسط شخص سومي نيست.
الگوريتمهاي نامتقارن نیز يكي از روشهاي انتقال كليد ميباشند ،با استفاده از كليد
عمومي طرف مقابل ،دادهها رمز و فرستاده ميشوند.
يك راهحل ،تكهتكهكردن كليد و فرستادن جداگانة هريك از قسمتها بر روي كانالهاي
متفاوت است؛ براي مثال يك بخش بر روي خط تلفن ،يك بخش توسط نامة
الكترونيكي و بخش ي نیز ميتواند توسط پست انتقال يابد.
21
تاييد صحت كليد
طرف دريافتكنندة كليد ،بايد از صحت كليد منتقلشده اطمينان يابد.
رمزنگاري كوانتومي قراردادهايي را براي بررس ي صحت كليد منتقلشده دارد.
در الگوريتمهاي نامتقارن ،شخص رمزكنندة كليد بايد به صحت كليد عمومي طرف
مقابل اطمينان يابد كه اين كار از طريق CAامكانپذير است.
طرف دريافتكنندة كليد نیز بايد به صحت فرستندة آن مطمئن باشد .دراين حالت،
شخص رمزكننده ميتواند از امضاي ديجيتالي استفاده كند.
براي بررس ي خطاهاي انتقال نیز ميتوان از توابع درهمسازي استفاده نمود.
22
نگهداري كليد
بعد از مرحلة انتقال ،كليدها در سيستم بايد بهدرستي نگهداري شوند.
نگهداري صحيح شامل بهروزرساني بهموقع كليدها ،ذخیرة امن آنها و پشتيبانگیري از
كليدها ميباشد.
بهروزرساني كليد به معني تغيیر كليد با استفاده از يك فرآيند غیرقابل برگشت
ميباشد .براي اين كار ،يك تابع يكطرفه الزم است كه توسط آن بتوان از كليد قديمي
كليد جديد را بدست آورد .امنيت كليد جديد به همان اندازة امنيت كليد قديمي
خواهد بود .درحقيقت اگر طرف سومي به كليد قديمي دسترس ي داشته باشد ،ميتواند
كليد جديد را نیز توليد كند.
ذخیرة كليد نیز بايد بهصورت امن ،ممكن باشد .امروزه كارتهاي هوشمند و حافظههاي
فقط-خواندني كه بخش ي از كليد را حمل ميكنند ،ابزارهاي مطمئني براي ذخیرة
كليدها هستند.
23
رمزكنندههاي بلوكي
يك دستة بسيار مهم از الگوريتمهاي رمزنگاري" ،رمزكنندههاي بلوكي" Block
ً
Ciphersميباشند .اين رمزكنندهها در هر زمان ،تعدادي بيت ميگیرند (نوعا 64بيت
در رمزكنندههاي پيشرفته) وآنها را به عنوان يك واحد مستقل رمز ميكنند .در شكل زير
چگونگي استفاده از رمز نگاري متقارن مشاهده ميشود.
24
مزايا و معايب رمزنگاري كليد متقارن
مزايا:
سريع ميباشند.
به سادگي در سخت افزار پيادهسازي ميشوند.
به طور گسترده استفاده ميشوند.
معايب:
براي هر فرد تازه وارد بايد يك كليد جديد توليد و نگهداري شود تا بتواند به مبادلة اطالعات بپردازد (n
نفر 2-n)/2 (nكليد نياز دارند).
كليد محرمانه بايد از طريق يك كانال مطمئن (امن) مبادله شود.
بايد كليد با طول ثابت استفاده شود.
در صورت استفاده از الگوريت ضعيف قابل شنود است.
تالش و زحمت بيشتري براي تأييد فرستنده نياز است.
به يك منطق ادارةكليد ( )key managementنياز است.
25
رمزكنندههاي جرياني Stream Ciphers
"رمزكنندههاي جرياني" يك دستة مهم از الگوريتمهاي رمزنگاري متقارن ميباشند كه روي
يك بيت ،بايت و يا كلمة (كامپيوتر) از پيام plaintextدر يك زمان عمل ميكنند و به اين
دليل در كاربردهايي كه با يك جريان داده روبرو هستند مناسب ميباشند.
يك رمزكنندة جرياني شامل يك ماشین حالت است كه در هر گذر حالت يك بيت از
ً
ي
اطالعات را خارج ميكند .اين جريان بيتهاي خروجي معموال "كليد جار " Running
keyيا "جريانكليد" Keystreamناميده ميشود.
عمل رمزكردن با XORكردن جريانكليد و پيام plaintextانجام می شود.
در اين رمزكنندهها تعدادي از مكانیزمهاي "پسخورد" (فيدبك) پيادهسازي ميشود ،به
نحوي كه كليد به طور دائمي تغيیر ميكند .بنابراين گفته ميشود كه رمزكنندههاي جرياني
حافظهدار هستند .ماشین حالت بهكاررفته در اين رمزكنندهها مانند يك مولد اعداد
شبهتصادفي است .هر چه اعداد تصادفي بهتر و نزديك به واقعيت توليد شوند ،رمزكنندة
جرياني استفادهكننده از آن نیز امنتر خواهد بود.
26
الگوریتم های رمزنگاری کالسیک
حروف متن اصلی با حروف دیگر یا اعداد یا سمبل های دیگری
جایگزین می شود.
اگر متن اصلی به صورت ترتیبی از بیت ها ظاهر شود ،ترتیب بیت ها
در متن اصلی با ترتیب بیت های رمز شده جایگزین می شود.
27
الگوریتم رمزنگاری Caesar
حروف متن اصلی با حروف دیگر یا اعداد یا سمبل های دیگری جایگزین می شود.
در Caesarهر حرف از حروف الفبا با سه حرف جلوتر در حروف الفبا جایگزین می
شود .برای مثال:
j
k l m n o p q r s t u v
w x y z
d e f g h i j k l m n o p q r s t u v w x y
z a b c
پیام اصلی :
متن رمز شده:
phhw
me meet
a b c d e f g h i
party after
sduwb
toga
the
diwhu wkh wrjd
ph
28
الگوریتم رمزنگاری Caesar
اگر به هر حرف مقداری عددی انتساب داده شود( ،)a=0, b=1,.., z=25می
توان الگوریتم را به صورت زیر نشان داد:
C= E(P)= (p+3) modulo 26
بصورتی که pبیان گر حرفی (عددی بین 0تا )25و ) C=E(Pبرابر با متن رمزشده
معادل آن است.
الگوریتم رمزگشایی به صورت زیر است:
P=D(C)=(C-3) modulo 26.
29
Caesar الگوریتم رمزنگاری
: انتقال انجام شده
a b c d e f g h i j k l m n o p q r s t u v w x y z
D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
: انتساب عدد به هر حرف
a b c d e f g h i j k l m
0 1 2 3 4 5 6 7 8 9 10 11 12
n o p q r s t u v w x y Z
13 14 15 16 17 18 19 20 21 22 23 24 25
: الگوریتم رمزنگاری جایگذاری تک حرفی
C = E(P) = (P + k) mod (26)
p = D(C) = (C – k) mod (26)
30
شکستن الگوریتم Caesar
تنها 26کلید ممکن وجود دارد!
حمله brute force
با داشتن متن رمزشده میتوان همه جابجایی های را بررس ی کرد.
مثال :متن رمز شده " "GCUA VQ DTGCMرا رمزگشایی
کنید.
31
الگوریتم رمزنگاری Monoalphabetic
فراتر از فقط جابجایی حروف است.
ترتیب حروف را به صورت دلخواه به هم میزند.
هر حرف از متن اصلی به حرفی متفاوت از متن رمزشده نگاشت می
شود.
کلید رمزنگاری می تواند هر جایگشتی از 26حرف الفبا باشد.
A
T
B
H
C
E
D
I
E
L
F
S
G
A
H
R
I
V
J
B
K
C
L
D
M
F
N
G
O
J
P
K
Q
M
R
N
S
O
T
P
U
Q
V
U
W
W
X
X
Y
Y
Z
Z
32
“THE HILLS ARE ALIVE” :کلید
33
امنیت الگوریتم رمزنگاری Monoalphabetic
در این حالت تعداد کلیدهای ممکن برایر زیر است:
26! = 403291461126605635584000000 keys
=4 x E26 Keys
اما باز هم با داشتن این تعداد کلید امنیت کافی برقرار نمی شود.
مشکل خصوصیات زبان است
34
تکرار حروف و شکستن رمز
میزان استفاده از حروف الفبایی یکسان نیست.
در زبان انکلیس ی حرف eبیش از همه حروف کاربرد دارد.
و سپس حروف پرکاربرد دیگر عبارتند از A ،O ،I ،N ،R ،Tو S
سایرحروف به ندرت استفاده می شوند.
Q ،K ،J ،Zو X
می توان جدولی از فرکانس استفاده تکی ،دوتایی و سه تایی از حروف تهیه
کرد.
35
فرکانس استفاده از حروف زبان انگلیس ی
36
استفاده در شکستن رمز
جایگزینی در monoalphabeticتغییری در فرکانس استفاده
حروف ایجاد نمی کند.
محاسبه فرکانس ظهور حروف استفاده در متن رمزشده
مقایسه فرکانس با مقادیر
جدول حروف دوتایی و سه تایی کمک می کند.
مثالی از شکستن رمز
:متن رمزشده
UZQSOVUOHXMOPVGPOZPEVSGZWSZOPFPESXUDBMETSXAIZ
VUEPHZHMDZSHZOWSFPAPPDTSVPQUZWYMXUZUHSX
EPYEPOPDZSZUFPOMBZWPFUPZHMDJUDTMOHMQ
فرکانس استفاده از حروف را محاسبه کنید
P 13.33
H 5.83
F 3.33
B 1.67
C 0.00
Z 11.67
D 5.00
W 3.33
G 1.67
K 0.00
S 8.33
E 5.00
Q 2.50
Y 1.67
L 0.00
U 8.33
V 4.17
T 2.50
I 0.83
N 0.00
O 7.50
X 4.17
A 1.67
J 0.83
R 0.00
M 6.67
37
38
مثالی از شکستن رمز
به نظر می رسد Pو Zبه جای eو tقرار گرفته اند
به نظر می رسد ZWبه جای thو در نتیجه ZWPبه جای the
استفاده شده است.
با روش آزمون و خطا متن زیر بدست می آید:
it was disclosed yesterday that several
informal but
direct contacts have been made with political
representatives of the vietcong in moscow
شکستن رمزنگاری Monoalphabeticبیان کننده فرکانس استفاده از حروف
بوده وبه همین دلیل شکستن آن ساده می باشد.
39
ساختار الگوریتم رمزنگاری Feistel
ً
عموما همه رمزکننده های بلوکی دارای ساختاری هستند که اولین بار توسط H. Feistelاز IBM
در سال 1973مطرح شد
پارامترها
• سایز بلوک :هرچه سایز بلوک بزرگ تر باشد(بقیه پارامترها ثابت هستند) امنیت بیشتر می
شود ،اما سرعت رمزگشایی و رمزنگاری کاهش پیدا می کند .سایز بلوک 64بیتی ،سایز منطقی
است.
• سایز کلید :هرچه سایز کلید بزرگ تر باشد ،امنیت بیشتر می شود ،اما ممکن است سرعت
رمزنگاری و رمزگشایی کاهش پیدا کند .طول کلید معمول در الگوریتم مدرن 128بیت است.
• تعداد دورها :ایده اصلی در رمزنگاری Feistelاین است که یک دور الگوریتم امنیت کافی
بوجود نمی آورد ،اما استفاده از چندین دور امنیت را افزایش می دهد .تعدا دور متداول 16
دور است.
40
(+)
(+)
(+)
41
ساختار الگوریتم رمزنگاری Feistel
الگوریتم تولید زیرکلید :پیچیدگی بیشتر در این الگوریتم ،شکستن رمز را مشکل تر می کند.
پروسه رمزگشایی :متن رمزشده به عنوان وردی به الگوریتم وارد می شود .اما زیرکلید ها با
ترتیب معکوس استفاده می شوند به این صورت که Knدر مرحله اول و درمرحله دوم و در پایان در
آخرین دور استفاده می شود.
42
ساختار رمزهای فیستل
معموال الگوریتمهای رمزنگاری از ساختاری تبعیت می کنند که
توسط فیستل در سال 1973در IBMپیشنهاد شد.
رمزهای فیستل به انتخاب پارامترهای زیر بستگی دارند
43
ساختار رمزهای فیستل
طول قطعه (بلوک)
طول کلید
تعداد دورها
الگوریتم تولید زیرکلیدها
هر چه پیچیده تر باشد ،تحلیل هم سخت تر می شود.
سرعت رمزنگاری/رمزگشایی
تابع دور )(Round function
سادگی تحلیل
44
45
مکان دستگاه های رمزنگاری
قوی ترین و معمول ترین رویکرد در مقابله با حمالت رمزنگاری
است
در راستای استفاده از رمزنگاری باید بدانیم چه چیزی رمز می
شود و پروسه رمزنگاری در کجا اتفاق می افتد .دو راه حل وجود
دارد:
.1رمزنگاری لینک
.2رمزنگاری انتها به انتها
46
47
رمزنگاری لینک
در انتهای هر سمت لینک آسیب پذیر ،دستگاه رمزنگاری وجود دارد.
کل ترافیک بر روی لینک امن است.
این رویکرد در شبکه های بزرگ نیاز به تعداد زیادی دستگاه های رمزنگاری
دارد.
هر پیام با رسیدن به سوییچ باید رمزگشایی شود .بدلیل اینکه هر سوییچ باید
آدرس مبدا و مقصد را از headerبسته برای مسیریابی بسته استخراج
کند ،بسته در سوییچ باید رمزگشایی شود .در نتیجه پیام در سوییچ آسیب
پذیر است.
48
رمزنگاری انتها به انتها
پروسه رمزنگاری در دو سیستم انتهایی انجام می شود.
این راه حل امنیت داده های کاربر را تضمین می کند.
البته از الگوی ترافیکی حفاظت نمی شود ،زیرا header
بسته بصورت متن ساده ارسال می شود.
49
چندین رمزکننده های بلوکی متقارن مهم
DES
IDEA
RC5
RC6
AES
50
DES
DESداده های 64بیتی را به عنوان ورودی گرفته و با
استفاده از کلید 56بیتی در 16دور بلوک های 64بیتی رمزشده را
در خروجی تولید می کند.
51
.1
بر روی بلوک پیام اصلی جایگشت اولیه ( )IPانجام می شود و L0,R0را
تولید می کند.
.2
L0,R0از 16مرحله جایگشت وجانشینی و XORعبور می کند.
.3
خروجی هر دور در رمزنگاری:
Li = Ri−1
)Ri = Li−1 ⊕ f (Ri−1,Ki
خروجی هر دور در رمزگشایی:
Ri−1 = Li
) Li−1 = Ri ⊕ f (Ri−1,Ki) = Ri ⊕ f (Li,Ki
جایگشت معکوس ( )IP-1بر روی خروجی آخرین دور انجام شده و پیام
رمزشده تولید شود.
52
53
54
تولید کلید
.1
.2
.3
.4
با در نظر نگرفتن بیت های هشتم از کلید 64بیتی ،کلید 56بیتی ایجاد می
شود(. )k8,k16,k24,k32,k40,k48,k56,k64(.جدول )3.1
کلید 56بیتی به دو نیمه 32بیتی تقسیم شده ،سپس بر اساس شماره دور ،هر نیمه
یک یا دو واحد به چپ شیفت داده می شود(جدول )3.2وهر نیمه (1 ≤ i ≤ )Ci,Di
،16به عنوان ورودی به دور بعد وارد می شود.
نیمه های ) (Ci,Diبهم متصل شده و بر روی آنها جایگشت (PC2جدول )3.3انجام
می شود که نتیجه آن کلیدی 48بیتی است)K1, K2, . . . , K16(.
در نهایت برای هر یک از 16دور در ،DESیک کلید متفاوت 48بیتی تولید می شود.
هر کلید برای رمزنگاری در یک دور به کار میرود.
55
مثال
.1
کلید 64بیتی ورودی شامل 8بیت توازن
.2
محتوای رجیستر بر اساس جدول : 3.1
C0 = bcd1a45 D0 = d22e87f
.3
با انجام عمل شیفت به چپ بر روی C0و ِ D0داریم:
C1 = 79a348b D1 = a45d0ff
.4
با ورود بلوک ) (C1||D1به جدول 3.3داریم:
K1 = 27a169e58dda
.5
از شیفت یک بیت به چپ C1||D1داریم:
.6
بر اساس جدول 3.3در دور دوم داریم:
.7
از شیفت یک بیت به چپ C2||D2داریم:
.8
بر اساس جدول 3.3در دور سوم داریم:
K = 581fbc94d3a452ea
(C2||D2) = f346916 48ba1ff
K2 = da91ddd7b748
(C3||D3) = cd1a456 22e87fd
K3 = 1dc24bf89768
K1 = 27a169e58dda K2 = da91ddd7b748 K3 = 1dc24bf89768 K4 = 2359ae58fe2e
K6 = 116e39a9787b K7 = c535b4a7fa32 K8 = d68ec5b50f76
K5 = b829c57c7cb8
K9 = e80d33d75314 K10 = e5aa2dd123ec K11 = 83b69cf0ba8d K12 = 7c1ef27236bf
K13 = f6f0483f39ab K14 = 0ac756267973 K15 = 6c591f67a976 K16 = 4f57a0c6c35b
56
57
58
رمزنگاری در DES
.1
بر روی بلوک 64بیتی جایگشت اولیه( )IPانجام می شود(جدول .)3.4سپس بلوک داده
به دو بلوک 32بیتی داده Liو Riتقسیم می شود.
.2
Riبه 48بیت بسط و جایگشت( ) ) E(Riداده می شود(.جدول )3.5
.3
کلید مرحله ای Kiبا بلوک بسط داده شده از دور قبل XORمی شود .بطوریکه
Γi=E(Ri-1) ⊕ Ki :1 ≤ i ≤ 15
.4
48بیت به 8تا Si-boxوارد شده و 32بیت خروجی تولید میکند 48.بیت به هشت
بلوک 6بیتی تقسیم می شود و هر بلوک وارد یک Si-boxمیشود .هر Si-boxیک
جدول حاوی 4سطر و 16ستون است(.جدول )3.6
59
.5
اگر بلوک 6بیتی ورودی را با Aنشان دهیم Si(A) ،به این صورت
تعریف میشود :اولین و آخرین بیت Aبیانگر شماره سطر از ماتریس Siو 4
بیت میانی بیانگر شماره ستون از ماتریس Siاست.
.6
برای مثال با وردی ( )101110به ،S5اولین و آخرین بیت( )10به معنای سطر
دوم و 4بیت میانی ( )0111به معنای ستون هفتم است و = )S510 (0111
))S52 (7) = 8 (hexadecimal
6تا چهار بیت خروجی S-boxبا هم ترکیب شده و Ωiرا تولید می
کند.
60
.5
جایگشت جدول Ωi ،3.7را به ) P(Ωiنگاشت می کند
.6
) P(Ωiبا XOR ،Liشده ،سپس جای Liو Riبا هم عوض
می شود.
.7
جایگشت معکوس جایگشت اولیه ( )IP-1طبق جدول 3.8انجام
می شود.
61
مثال
پیام اصلی 64بیتی X = 3570e2f1ba4682c7
کلید 64بیتی از مثال قبل K = 581fbc94d3a452ea
کلیدهای دوره اول و دوم از مثال قبل
.1
K1 = 27a169e58dda , K2 = da91ddd76748
پیام اصلی Xبه دو بلوک L0و R0شکسته شده و بر اساس جدول 3.4روی آن جایگشت انجام می
شود
L0 = ae1ba189 , R0 = dc1f10f4
دور اول:
.2
.3
32 R0بیتی بر اساس جدول 3.5به ) 48E(R0بیتی بسط داده می شود.
E(R0) = 6f80fe8a17a9
) E(R0با کلید مرحله اول XORمی شود.
Γ1 = E(R0) ⊕ K1= 4821976f9a73
62
48بیت Γ1به هشت بلوک 6بیتی تقسیم شده و وارد s-boxمی شود که خروجی
آن برابر Ω1= a1ec961cاست.
.4
.5
مقدار جایگشت Ω1بر اساس جدول 3.7برابر با P(Ω1) = 2ba1536cاست.
.6
R1 = P(Ω1) ⊕ L0 = 85baf2e5
.7
L1 = R0بنابراین داریمL1 = dc1f10f4 :
دور دوم:
.8
R1به E(R1)= c0bdf57a570bبسط داده می شود.
.9
) E(R1با کلید دوره دوم XORمی شود.
•
Γ2 = E(R1) ⊕ K2 = 1a2c28ade043
63
.10
Γ2وارد s-boxشده و خروجی آن برابر Ω1= 1ebcebdfاست.
.11
مقدار جایگشت Ω1بر اساس جدول 3.7برابر با P(Ω2) = 5f3e39f7است.
.12
R2 = P(Ω2) ⊕ L1 = 83212903
.13
L2 = R1 = 85baf2e5
.14
L2و R2به هم متصل شده و بر اساس جدول جایگشت معکوس می شود.
•
Y = IP−1(R2||L2) = d7698224283e0aea
64
65
66
67
68
رمزگشایی در DES
رمزگشایی در DESمشابه رمزنگاری است با این تفاوت که کلید های دوره
ای با ترتیب عکس استفاده میشوندK1,…,K15,K16 .
مثال
.1
رمزگشایی پیام رمز شده ( y=d7698224283e0aeaاز مثال قبل)
دور او ل:
.2
بر اساس جدول y ،3.4به دو بلوک تقسیم شده
.3
R2 = 83212903 L2 = 85baf2e5
بسط L2به E(L2)= c0bdf57a570bبر اساس جدول 3.5
69
.4
XORکردن ) E(L2با K2
.5
Γ2 = E(L2) ⊕ K2= 1a2c28ade043
ورود 48 Γ2بیتی به s-boxو خروج 32 Ω2بیتی
Ω2 = 1ebcebdf
بر اساس جدول P(Ω2 ) = 5f3e39f7 3.7
.6
دور دوم:
.7محاسبه L1=P(Ω2 ) ⊕ R2 = dc1f10f4 ،L1
.8بسط L1بر اساس جدولE(L1) = 6f80fe8a17a9 ،3.5
.9
XORکردن با کلید دوره اول
Γ1 = E(L1) ⊕ K1= 4821976f9a73
70
.10
.11
.12
.13
.14
.15
ورود 48 Γ1بیتی به s-boxو خروج 32 Ω1بیتی
Ω1 = a1ec961c
بر اساس جدول P(Ω1 ) = 2ba1536c 3.7
محاسبه L0و ، R0
L0 = P(Ω1 ) ⊕ R1 = ae1ba189 و R0 = L1 = dc1f10f4
اتصال L0وR0
L0||R0 = ae1ba189dc1f10f4
اعمال جدول 3.8و محاسبه چایگشت معکوس
X = IP−1(L0||R0)= 3570e2f1ba4682c7
71
استاندارد رمزگذاری داده DES
مرور
در سال 1974توسط IBMتوليد شد
پس از انجام تغییراتی توسط ،NSAدر سال NIST 1976آن را پذيرفت.
اساس الگوريتم تركيبي از عمليات جايگزيني و جایگشت ميباشد.
مشخصات:
طول كليد 56بيت
طول قطعههاي ورودي و خروجي 64 :بيت
تعداد دورها 16 :دور
الگوريتمهاي رمزگذاري و رمزگشايي عمومي هستند ,ولي مباني رياض ي و اصول طراحي آنها فاش نشد.
در گذشته بسیار پر استفاده بود.
72
DESامن نيست!
در ژانویه 1999این الگوریتم توسط آزمون جامع فضای کلید در
23ساعت شکسته شد!
بیش از 1000هزار کامپیوتر بر روی اینترنت هر یک بخش کوچکی از کار
جستجو را انجام دادند.
منظور از آزمون جامع فضای کليد همان جستجوی کامل کليد با
استفاده از روش Brute Forceمی باشد.
به الگوریتمهای امن تر با طول کلید باالتر نیاز داریم.
عالوه بر اين DESطراحی شفاف و روشن ندارد.
73
استاندارد رمزگذاری دادهDES
قطعه 64بیتی متن واضح
زیر کلید دور
تولید زیر کلیدهای 48
بیتی از کلید اصلی 56
بیتی برای هر دور
دور1
دور2
دور15
دور16
کلید 56بیتی
قطعه 64بیتی متن رمزشده
74
DES یک دور از
توسط زمانبندی کلید
.تولید میشود
Li (32 bit)
Ri (32 bit)
Ki (48 bit)
“round key”
f
“round function”
Li+1
Ri+1
75
76
یک دور از DES
اعمال انجام شده در هر دور:
Li = Ri-1
)Ri = Li-1 XOR F(Ri-1, Ki
77
DES رمزFeistel ساختار
X
(64)
Initial Permutation
(32)
(32)
+
F
+
F
(48)
(48)
K2
+
F
(48)
K3
…
+
F
(48)
K16
Initial Permutation-1
Y
(64)
Key Scheduler
K1
(56)
K
78
DES تابع دور
32
expansion
48
Ki کلید دوره
48
6 to 4 6 to 4 6 to 4 6 to 4 6 to 4 6 to 4 6 to 4 6 to 4
S-box S-box S-box S-box S-box S-box S-box S-box
32
permutation
79
DES تابع دور
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
S1
S2
S3
S4
S5
S6
S7
S8
P
80
Key-schedule
Permuted
choice
48
bits
Di-1 (28 bit)
شیفت به چپ
PC2
Ki
Ci-1 (28 bit)
Ci (28 bit)
Di (28 bit)
81
زمانبندی کلید
K
(56)
Permuted Choice 1
(28)
(28)
Left shift(s)
Left shift(s)
(28)
K1
(48)
Permuted Choice 2
Left shift(s)
(48)
Left shift(s)
Permuted Choice 2
…
K2
(28)
ً
هر بیت کلید حدودا در
دور16 دور از14
.استفاده میشود
82
توانمندي DES
اندازه كليد
56 بيت داراي كل فضاي حالت 256 = 7.2 * 1016
حمله آزمون جامع هرچند مشكل ,ولي امكانپذير است
آخرين گزارش ثبت شده در سال 1999نشان از كشف كليد در طول 22ساعت داده
اند!
حمله زماني
پياده سازي DESرا مورد هدف قرار مي دهند
الگوريتم براي ورودي هاي مختلف در زمانهاي متفاوت پاسخ مي دهد
بيشتر در كارتهاي هوشمند مشكل زا مي شوند
83
Time to break a code (106 decryptions/µs)
84
ویژگیهای مطلوب در الگوریتم رمزنگاری
رمزگذاری آسان
رمزگشایی آسان
سرعت باالی رمزگذاری و رمزگشایی
diffusion and confusion
دیگر ویژگیها برای کاربردهای خاص:
کارت هوشمند :نیاز به حافظه و قدرت پردازش کم
85
Diffusion and Confusion
( Confusionدرهمی)
متن رمز باید به نحو پیچیده ای به متن واضح و کلید وابسته باشد.
هدف آن است که تعیین ارتباط ویژگیهای آماری متن رمز و متن واضح مشکل باشد.
( Diffusionانتشار)
هر بیت متن واضح باید بر هر بیت متن رمز تاثیر داشته باشد.
هر بیت کلید باید بر هر بیت متن رمز تاثیر داشته باشد.
هدف پنهان سازی ویژگیهای آماری متن واضح است.
86
مباني رمزنگاري کليد عمومي
ً
رمزنگاري کليد عمومي اساسا با انگیزه رسيدن به دو هدف طراحي
شد:
حل مساله توزيع کليد در روشهای رمزنگاری متقارن
امضاي ديجيتال
ديفي و هلمن اولین راه حل را در 1976ارايه دادند.
87
رمزنگاري کليد عمومي
کليد هاي رمزگذاری و رمزگشايي متفاوت اما مرتبط هستند.
رسيدن به کليد رمز گشايي از کليد رمزگذاری از لحاظ محاسباتي
ناممکن مي باشد.
ً
رمزگذاری امري همگاني ميباشد و اساسا نيازي به اشتراک گذاشتن
اطالعات محرمانه ندارد.
رمز گشايي از طرف ديگر امري اختصاص ي بوده و محرمانگي پيامها
محفوظ ميماند.
88
رمزگذاری کليد عمومي2-
براي رمز نگاري کليد عمومي گامهاي زير را برميداريم:
.1
.2
.3
.4
هر کاربر يک زوج کليد رمزگذاری و رمز گشايي توليد ميکند.
کاربران کليد رمزگذاری خود را به صورت عمومي اعالن ميکنند درحالي
که کليد رمز گشايي مخفي ميباشد.
همگان قادر به ارسال پيام رمز شده براي هر کاربر دلخواه با استفاده
از کليد رمزگذاری (عمومي) او ميباشند.
هر کاربر ميتواند با کمک کليد رمزگشايي (خصوص ي) پيامهايي که با
کليد رمزگذاری (عمومي) او رمز شده رمزگشايي کند.
89
رمزگذاری کليد عمومي
90
مقايسه رمزنگاري مرسوم و رمزنگاري کليد عمومي1-
رمزنگاري مرسوم ()Conventional Cryptography
استفاده از يك كليد يکسان و مخفي براي رمزگذاري و
رمزگشايي
معايب
مشكل مديريت كليدها
نياز به توافق بر روي كليد پيش از برقراري ارتباط
براي ارتباط nنفر باهم به n(n-1)/2كليد احتياج
داريم
عدم پشتيباني از امضاء الكترونيكي
مزايا
با اين وجود از الگوريتمهاي رمزنگاری با كليد عمومي سريعK9
تر
است
K4
K3
K2
K1
K5
K6
K8
K10
K7
91
مقايسه رمزنگاري مرسوم و رمزنگاري کليد
عمومي2-
رمزگذاری مرسوم
براي امن بودن بايد:
كليد سری ،مخفي نگه داشته شود.
رسيدن به پيام واضح از روي متن رمز شده از نظر محاسباتي نا ممکن
باشد.
اطالع از الگوريتم و داشتن نمونههايي از پيغام رمز شده براي تعيین كليد
كافي نباشد.
مقايسه رمزگذاری مرسوم و رمزگذاری
کليد عمومي3-
92
ملزومات امنيتي(رمزگذاری با كليد عمومي)
تنها يكي از دو كليد بايد مخفي بماند
رسيدن به پيام واضح از روي متن رمز شده حتي با داشتن کليد عمومي
از نظر محاسباتي نا ممکن باشد.
اطالع از الگوريتم ،داشتن يكي از كليدها و نیز دراختيار داشتن نمونه
پيغامهای رمزشده براي تعيین كليد دوم كافي نباشد.
93
جايگزيني يا تكميل؟
از نظر كاربردي ،رمزگذاری با كليد عمومي بيش از آنكه جايگزيني براي
رمزگذاری مرسوم باشد ,نقش مكمل آنرا براي حل مشکالت توزيع
كليد بازي مي كند.
94
!Misconceptions
دو تصور اشتباه ديگر درباره الگوريتمهای کليد عمومی
رمزنگاری با کليد عمومی امن تر است!
در هر دو روش رمزنگاری امنيت به طول کليد وابسته است.
مسئله توزيع کليد در رمزنگاری با کليد عمومی برطرف شده است
چگونه مطمئن شويم کليد عمومی لزوما متعلق به شخص ادعاکننده است؟!
پس توزيع کليد عمومی آسانتر است ،ولی بديهی نيست.
95
كاربردهاي رمزگذاری کليد عمومي
دسته بندي كلي كاربردها
رمزگذاری /رمز گشايي :براي حفظ محرمانگي
امضاء رقمي :براي حفظ اصالت پيام و معین نمودن فرستنده
پيام (پيوند دادن پيام با امضاء کننده)
توزيع كليد :براي توافق طرفین روي كليد جلسه مخفي پيش از
برقراری ارتباط
96
جايگاه عملي رمزگذاری کليد عمومي
کليدهاي اين نوع از الگوريتمها بسيار طوالني تر از الگوريتمهاي مرسوم (کليد
خصوص ي) ميباشند.
الگوريتم RSAبا پيمانه 1024بيتي امنيتی در حد الگوريتمهای متقارن با
کليدهای 80بيتي دارد.
سرعت الگوريتمهاي کليد عمومي از الگوريتمهاي رمزگذاری مرسوم پايین تر
است.
ً
RSA تقريبا 1000بار کند تر از رمزهاي کليد سری (با امنيت يکسان) ميباشد.
97
جايگاه عملي رمزگذاری کليد عمومي
امروزه کاربرد اين الگوريتمها به حل مساله توزيع کليد و
امضاي ديجيتال محدود ميشود.
(مطابق اهداف و انگیزه هاي اوليه طراحي)
98
حمالت به رمزنگاری کلید عمومی
جستجوی فراگیر )(Brute force
محاسبه کلید خصوص ی از کلید عمومی
اثبات نشده که غیر ممکن است!
حمله پیام احتمالی ()Probable-message attack
مخصوص رمزنگاری کلید عمومی
99
كليات الگوريتم رمز نگاري RSA
كليات
توسط Rivest-Shamir -Adlemanدر سال 1977در MITارائه شد
مشهورترين و پركاربردترين الگوريتم رمزگذاری كليدعمومي
مبتني بر توان رساني پيمانه ايي
استفاده از اعداد طبيعي خيلي بزرگ
امنيت آن ناش ي از دشوار بودن تجزيه اعداد بزرگ ،که حاصلضرب دو عامل اول
بزرگ هستند ،می باشد.
مستندات مربوط به آن تحت عنوان PKCSاستاندارد شده است.
Public Key Cryptography Standards
100
نمادگذاري RSA
: Nپيمانه محاسبات
:eنماي رمزگذاری
:dنماي رمزگشايي
:Mپيام ،عدد صحيح متعلق به Z N
y
xe modN
تابع :RSAتالباتبتابتا بتا
x
ي
modسي yسيس
تابع معکوس :سيNسي
d
101
کلید عمومی :
(n حاصل ضرب دو عدد اول pو )q
ً
ل
(e کلید رمز ،نسبتا او با ))φ(n) = (p − 1)(q − 1
کلید خصوص ی:
( d کلید رمزگشایی) d ≡ e−1 (mod φ(n)) ،
رمزنگاری:
c ≡ me (mod n)
رمزگشایی:
m ≡ cd (mod n)
)cd ≡ (me)d ≡ med ≡ m (mod n
در پیاده سازی سخت افزاری 1000 RSAمرتبه از DESکندتر است .امنیت RSA
به سختی عمل فاکتور گیری اعداد بزرک بستگی دارد .در حال حاضر nباید عددی
بزرگ تر از 129رقمی باشد.
102
103
RSA مبانی رياض ی
. دو عدد اول ميباشندq وp
. اول استN ) که نسبت بهN تعداد اعداد(کوچکتر از:(N)
N pq
N p 1 q 1
gcd( N , e) 1
d e 1 mod N
C M e mod N
M C mod N M
d
e d
{e,n}:کلید عمومی
{d,n} :کلید خصوص ی
mod N
104
قراردادها و پروتکل RSA
هم فرستنده و هم گیرنده مقدار Nرا ميدانند
فرستنده مقدار eرا ميداند
تنها گیرنده مقدار dرا ميداند
کليد عمومی )N , e( :
کليد خصوص ی )N, d( :
نيازمنديها:
محاسبه Meو Cdآسان باشد
محاسبه dبا دانستن کليد عمومی غیرممكن باشد
105
مثال-RSA
p = 17, q = 11, n = p*q= 187
(n) = 16*10 =160, pick e=7, d.e=1 mod (n) d = 23
106
روشهاي کارا براي محاسبه نما
براي محاسبه ) ab (mod Nالگوريتمهاي متفاوتي ابداع شده
است...
فرض کنيد bkbk-1…b0نمايش مبناي 2عدد bباشد.
بنابراين خواهيم داشت:
2i
a
2i
bi 0
a a
b
bi 0
2i
2i
a modn a modn a modn modn
bi 0
bi 0
b
107
الگوريتم توان و ضرب
:بر اين مبنا ميتوان الگوريتم زير را طراحي نمود
c 0; d 1
for i k downto0
do c c 2
d d 2 modn
if bi 1
then c c 1
d d a modn
return d
108
مثال عددي الگوريتم توان و ضرب
نتيجه الگوريتم توان رساندن سريع پيمانه ايي براي ab mod nکه مقادير b،aو nعبارتند از:
a=7,b=560=(1000110000)2,n=561
109
حمالت ممکن بر RSA
حمله آزمون جامع()Brute Force
طول كليد با پيدايش هر نسل جديد از پردازنده ها افزايش مي يابد ،ضمن اينكه قدرت
پردازش ي هكرها زياد مي شود!
طول کليد معادل تعداد بيتهای پيمانه محاسبات( )Nمی باشد.
حمالت رياض ي
تجزيه Nو در نتیجه محاسبه )(N
محاسبه ) (Nبه صورت مستقیم
محاسبه dبدون استفاده از )(N
حمله زماني
زمان اجراي عمليات رمزگذاری يا واگشايي رمز ميتواند اطالعاتي را در مورد کليد افشاء
کند.
110
RSA حمالت رياض ي
: ) (پيوستStanford در دانشگاهDan Boneh مقاله
Twenty Years of Attacks on the RSA Cryptosystem
1999
111
راههاي مقابله با حمله زماني بهRSA
استفاده از توان رساندن با زمان ثابت محاسباتي.
تابع بايد به ازای همه وروديها زمان ثابتی به طول بيانجامد
اضافه كردن تاخیرهاي تصادفي
قرار دادن اعمال اضافی و گمراه کننده در بین محاسبات
ضرب کردن متن رمزشده در يک عدد تصادفی قبل از عمليات به توان رسانی
تحليلگر از ساختار بيتی متنی که به توان می رسد ،مطلع نيست و اين حمله زمانی را
برای او غیرممکن می سازد