رمز گذاری و رمزگشایی

—        رمز نگاری چیست؟

—        تاریخچه

—        اهداف

—        اجزای سیستم رمز نگاری

—        انواع روشهای رمزنگاری مبتنی بر کلید

—        رمزگذاری کلید عمومی

—        کاربردهای رمزنگاری کلید عمومی

—        مثالی از رمز گذاری کلید عمومی

—        جایگاه عملی رمز گذاری کلید عمومی

—        الگوریتم rsa

—        تاریخچه

—        نحوه تعریف کلیدهای عمومی و خصوصی

—        روش پنهان و آشکار سازی

—        مثال

—        شکستن الگوریتم

—        راههای مقابله با حمله زمانی به rsa

رمز نگاری  Encryption

—        عبارتست از کدگذاری داده ها بوسیله یک الگوریتم خاص به نحوی که کاربر نتواند بدون داشتن کلید رمز گشایی داده ها را بخواند.

دوره هاي تکامل رمزنگاري

—        دوران باستان

            600 قبل از ميلاد مسيح تا 450 ميلادي

—        مصر، چين، هند، بين النهرين، بابل و يونان

—        عهد عتيق جديد (کلاسيک)

            ميلاد مسيح تا 500 ميلادي

—        پارس (ايران)

—        دوره رنسانس در اروپا

—        پس از جنگ جهاني دوم تا قرن بيستم

مراحل تکامل رمزنگاري

—        سيستم هاي جانشيني و جابجايي

◦          سيستم جانشيني سزار و جابجايي Skytale

—        سيستم هاي مکانيکي و الکترونيکي

◦          ماشينهاي روتور هاگلين و انيگما

—        انتشار مقالات Shannon (1948-1949)

—        تکامل سريع در ميکروالکترونيک

—        تبديل هنر رمزشناسي به علم رمزشناسي

—        ابداع رمزنگاري کليد متقارن

—        ابداع رمزنگاري کليد همگاني

کاربردهاي علم رمز

—        کاربردهاي سياسي و نظامي

—        مخابرات

◦          شبکه سيار

◦          شبکه محلي بي سيم

—        اينترنت

◦          تجارت الکترونيک

◦          پست الکترونيکي

—        کارت هوشمند

◦          کارت اعتباري

◦          کارت سوخت

اجزای سیستم رمز نگاری

—        کلید رمز نگاری

—        الگوریتم رمز نگاری

—        کلید رمز گشایی

—        الگوریتم رمز گشایی

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

الگوریتم RSA نمونه رمزنگاری نامتقارن است.

انواع روشهای رمزنگاری مبتنی بر کليد:

—        الگوريتمهای کليد متقارن:

—        رمز گذاری و رمز برداری با يک کليد انجام می گيرد.

                                                  

—        الگوريتمهای کليد نامتقارن (کليد عمومی):

—        هر فرد يک کليد عمومی و يک کليد خصوصی دارد.

—        دفی هلمن و RSA نمونه ای از اين الگوريتمها ست.

—        کاربرد در امضای ديجيتال.

—        کليدهاي اين نوع از الگوریتمها  (نامتقارن) بسيار طولاني تر از الگوریتمهاي مرسوم (کليد متقارن) ميباشند.

كاربردهايرمزنگاری کليد عمومي

  • دسته بندي كلي كاربردها

–        رمزگذاری/ رمز گشايي : براي حفظ محرمانگي

–        امضاء رقمي : براي حفظ اصالت پيام و معين نمودن فرستنده پيام (پيوند دادن پيام با امضاء کننده)

–        توزيع كليد : براي توافق طرفين روي كليد جلسه مخفي

جايگاه عملي رمزنگاری کليد عمومي 

  • کليدهاي اين نوع از الگوريتمها بسيار طولاني تر از الگوريتمهاي مرسوم (کليد پنهان) ميباشند.

–        الگوريتم RSA با پيمانه 1024 بيتي امنيتی در حد الگوريتمهای متقارن  با کليدهای 80 بيتي دارد.

  • سرعت الگوريتمهاي کليد عمومي از الگوريتمهاي رمزگذاری مرسوم پايين تر است.

–        RSA تقريباً 1000بار کند تر از رمزهاي کليد پنهان (با امنيت يکسان) ميباشد.

رمز نگاری RSA

كليات

     توسط Adleman- Shamir- Rivestدر سال 1977 در MIT ارائه شد

    مشهورترين و پركاربردترين الگوريتم رمزگذاری كليد عمومي

      مبتني بر توان رساني پيمانه ايي

      استفاده از اعداد طبيعي خيلي بزرگ

      امنيت آن ناشي از دشوار بودن تجزيه اعداد بزرگ، که حاصلضرب دو عامل اول بزرگ هستند، می باشد.

     مستندات مربوط به آن تحت عنوان PKCS استاندارد شده است.

نحوه تعریف کلیدهای عمومی و خصوصی

1-      دو عدد بزرگ (هر چه بزرگتر بهتر) اول به نام هاي p و q را انتخاب مي کنيم، بهتر است اين اعداد از لحاظ سايز نزديک به يکديگر باشند.

2- عدد ديگري بنام n را معادل با حاصلضرب p در q تعريف مي کنيم : n = p x q

3- عدد چهارم يعني m را معادل حاصلضرب p-1 در q-1 تعريف مي کنيم : (m = (p-1) x (q-1

4-عدد e را که از m کوچکتر است آنگونه پيدا مي کنيم که بزرگترين مقسوم عليه مشترک اين دو يک باشد به عبارتي نسبت به هم اول باشند.

5- عددي مانند d را پيدا کنيم که باقيمانده حاصلضرب d در e تقسيم بر m مساوي عدد 1 باشد، يعني : (d x e) mod m = 1

حال پس از طي اين مراحل مي توانيم از e و n بعنوان کليد عمومي و از d و n بعنوان کليد اختصاصي استفاده کنيم.

مثالی از نحوه تعریف کلید های عمومی و خصوصی

11=p

3=q

N=33

M=(p-1)*(q-1)=20

E=3

(d*e)mod m=1    1,2,3,4,5……                  7*3=21

(3,33) کلید عمومی                         (33,7)کلید خصوصی

 

روش پنهان کردن و آشکار کردن برای کد کردن اطلاعات

 

فرستنده

 M

 C=Me mod n

گیرنده

C

M=Cd mod n

نکته: هرچقدر اعداد اولیه بزرگتر باشند احتمال شکستن رمز در مدت زمان محدود ناچیزتر می‌شود.

شکستن الگوریتم

آيا متني که توسط الگوريتم RSA بصورت رمز شده و مخفي درآمده است قابل شکسته شدن است؟ اين سئوالي است که اغلب راجع به همه روشهاي رمز کردن اطلاعات پرسيده مي شود. واقعيت آن است که همه روشهاي رمز کردن قابل شکستن است، اما نکته مهم آن است که در چه مدت زمان و با چه امکاناتي اين اطلاعات بايد رمزگشايي شوند. در ارتباط با الگوريتم RSA بايد گفت روشهاي محدودي براي شکستن متن رمز شده توسط آن وجود دارد که در اينجا به مواردي از آن اشاره مي کنيم.

تجزيه n به عوامل اول
اولين روش آن است که بتوان کليد خصوصي را حدس زد و يا پيدا کرد، در اين صورت هکر مي تواند تمامي متن هاي تهيه شده با کليد عمومي را رمزگشايي کند و بخواند و يا مي تواند از امضاي الکترونيک صاحب کليد استفاده کند. فرض را بر اين مي گذاريم که فردي که قصد حدس زدن کليد خصوصي را دارد، از جمله افرادي است که کليد عمومي را دارا است. در اين حالت او n و e را در دسترس دارد.

حال اولين قدم براي اين آقاي هکر آن است که بتواند از روي عدد n عاملهاي p و q را حدس بزند. اين مشکلترين قسمت کار است که محاسبات رياضي و بررسي هاي انجام داده شده نشان مي دهد اگر عدد n مثلا" 155 رقم داشته باشد (RSA-155) در آن صورت با قوي ترين کامپيوتر هاي موجود بيش از 7 ماه زمان لازم است تا بتوان عوامل اول تشکيل دهنده n را مشخص کرد. الگوريتم هاي رياضي بدست آمده نشان مي دهد که اعداد بزرگ اگر عوامل اول کوچکتري داشته باشند، ساده تر تجزيه مي شوند تا اعداد بزرگي که عوامل اول بزرگتري دارند.

بدست آوردن روش موثر براي محاسبه ريشه e ام
با توجه به روش رمز کردن شما با داشتن کليد عمومي nو e و استفاده از فرمول C = Me mod n مي توانيد حروف را رمز کنيد. اما با نگاهي به فرمول مي توان دريافت که کافي است شما بتوانيد ريشه e ام C mod n را بدست آوريد در آن صورت شما مي توانيد به عدد m نزديک شويد و کاراکتر اوليه برسيد.

نکته مهم آن است که شما در اينجا کليداي را کشف نکرده ايد و فقط توانسته ايد کاراکتر را بدست آوريد، ضمن آنکه بنظر نمي رسد که در حال حاضر کسي از اين روش براي رمز گشايي استفاده کند چرا که به مراتب دشوار تر از روش اول است. اين روش فقط براي مواردي که e عدد کوچک باشد کاربرد آزمايشگاهي و آموزشي دارد و در رمزکردن هاي معمولي به هيچ وجه مورد استفاده موفقيت آميز حتي در زمانهاي طولاني ندارد.

حدس زدن پيام
براي باز کردن رمز پيامهايي که با الگوريتم RSA رمز شده اند، روشهاي محاسبه رياضي عملا" راه به جايي نمي برند، اين است که در مواردي که متن کوچک باشد شايد حدس زدن متن اصلي ساده ترين روش براي رمزگشايي باشد. ارسال پيام هاي کوتاه دو يا سه کلمه اي و تشخيص ساده آنها توسط هکر مي تواند به او کمک کند که از روي پيام رمزگشايي شده کليد خصوصي شما را حدس بزند. در اين گونه موارد کافي است تعداد زيادي کلمات يا بيت هاي اتفاقي Random) )در انتهاي پيام بگذاريد تا هکر نتواند پيام شما را حدس بزند.

راههاي مقابله با حمله زماني به  RSA

—        استفاده از توان رساندن با زمان ثابت محاسباتي.

—        تابع بايد به ازای همه وروديها زمان ثابتی به طول بيانجامد

—        قرار دادن اعمال اضافی و گمراه کننده در بين محاسبات

—        ضرب کردن متن رمزشده در يک عدد تصادفی قبل از عمليات به توان رسانی

—        اضافه كردن تاخيرهاي تصادفي

 

آیا این پاسخ به شما کمک کرد؟

 پرینت این مقاله

در همین زمینه

مقايسه لایه های مدل OSI و مدل TCP/IP

چکيده مدل مرجع OSI و مدل مرجع TCP/IP نقاط مشترك زیادی دارند. هر دوی آنها مبتنی بر...

روش بدست آوردن آپی در کلاس های مختلف

روش بدست آوردن آی پی در کلاس ها: در این مجموعه قصد دارم یک توضیح اجمالی درباره آی پی ،کلاس ها ی...

شبکه هاي بي سيم مش

از آنجا که قرارداد بين‌المللي پستي و زيربناي ارتباطات الکترونيکي در اينترنت اغلب براساس مخابرات...

کلاس C

چندی پیش درباره بدست آوردن رنج آی پی ها آموزش کلی را خدمت دوستان عزیز ارائه دادم. حال در اینجا...

پیمایش موقعیت در شبکه های حسگر بی سیم

خلاصه شبکه حسگر بی سیم یک تکنولوژی جدید است که ممکن است با مهیا ساختن دریافت اطلاعات در هر جا،...