1 / 49

رمزنگاري كليد عمومي

رمزنگاري كليد عمومي. بهروز ترك‏لاداني ladani@eng.ui.ac.ir. 1. اهداف. آشنا يي با مفاه ي م و کاربردها ي رمزنگار ي کل ي د عموم ي مقا ي سه روشها ي رمزنگار ي کل ي د عموم ي با رمز نگار ي متقارن بررسی يک نمونه از کاربرد کليد عمومی در روش توزيع کليد DH. فهرست مطالب.

mahala
Download Presentation

رمزنگاري كليد عمومي

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. رمزنگاري كليد عمومي بهروز ترك‏لاداني ladani@eng.ui.ac.ir 1

  2. اهداف • آشنايي با مفاهيم و کاربردهاي رمزنگاري کليد عمومي • مقايسه روشهاي رمزنگاري کليد عمومي با رمز نگاري متقارن • بررسی يک نمونه از کاربرد کليد عمومی در روش توزيع کليدDH

  3. فهرست مطالب • مباني رمزنگاري کليد عمومي • مقايسه رمزنگاري متقارن و رمزنگاري کليد عمومي • كاربردهاي رمزنگاري کليد عمومي • توابع يك طرفه • معرفي چند الگوريتم کليد عمومي • پيوست ها

  4. مباني رمزنگاري کليد عمومي • رمزنگاري کليد عمومي اساساً با انگيزه رسيدن به دو هدف طراحي شد: • حل مساله توزيع کليد • امضاي ديجيتال • ديفي و هلمن اولين راه حل را در 1976 ارايه دادند.

  5. رمزنگاري کليد عمومي • کليد هاي رمزگذاری و رمزگشايي متفاوت اما مرتبط هستند. • رسيدن به کليد رمزگشايي از کليد رمزگذاری از لحاظ محاسباتي ناممکن مي باشد. • رمزگذاری امري همگاني ميباشد و اساساً نيازي به اشتراک گذاشتن اطلاعات محرمانه ندارد. • رمز گشايي از طرف ديگر امري اختصاصي بوده و محرمانگي پيامها محفوظ ميماند.

  6. رمزگذاری کليد عمومي • براي رمز نگاري کليد عمومي گامهاي زير را برميداريم: • هر کاربر يک زوج کليد رمزگذاری و رمز گشايي توليد ميکند. • کاربران کليد رمزگذاری خود را به صورت عمومي اعلان ميکنند درحالي که کليد رمز گشايي مخفي ميباشد. • همگان قادر به ارسال پيام رمز شده براي هر کاربر دلخواه با استفاده از کليد رمزگذاری (عمومي) او ميباشند. • هر کاربر ميتواند با کمک کليد رمزگشايي (خصوصي) پيامهايي که با کليد رمزگذاری (عمومي) او رمز شده رمزگشايي کند.

  7. رمزگذاری کليد عمومي

  8. مقايسه رمزنگاري مرسوم و رمزنگاري کليد عمومي • رمزنگاري مرسوم (کليد خصوصي) • استفاده از يك كليد يکسان و مخفي براي رمزگذاري و رمزگشايي • مشكل مديريت كليدها • نياز به توافق بر روي كليد پيش از برقراري ارتباط • براي ارتباط n نفر باهم به n(n-1)/2 كليد احتياج داريم • عدم پشتيباني از امضاء الكترونيكي • سريع‌‌تر از الگوريتمهاي رمزگذاری با كليد عمومي

  9. مقايسه رمزنگاري مرسوم و رمزنگاري کليد عمومي • رمزگذاری مرسوم (کليد متقارن) • براي امن بودن بايد: • كليد مخفي نگه‌ داشته شود. • رسيدن به پيام واضح از روي متن رمز شده از نظر محاسباتي نا ممکن باشد. • اطلاع از الگوريتم و داشتن نمونه‌هايي از پيغام رمز شده براي تعيين كليد كافي نباشد.

  10. مقايسه رمزنگاري مرسوم و رمزنگاري کليد عمومي • ملزومات امنيتي(رمزگذاری با كليد عمومي) • تنها يكي از دو كليدبايد مخفي بماند • رسيدن به پيام واضح از روي متن رمز شده حتي با داشتن کليد عمومياز نظر محاسباتي نا ممکن باشد. • اطلاع از الگوريتم، داشتن يكي از كليدها و نيز دراختيار داشتن نمونهپيغام‌های رمزشده براي تعيين كليد دوم كافي نباشد.

  11. جايگزيني ياتكميل؟ • از نظر كاربردي، رمزگذاری با كليد عمومي بيش از آنكه جايگزيني براي رمزگذاری مرسوم باشد, نقش مكمل آنرا براي حل مشکلات توزيع كليدبازي مي كند.

  12. Misconceptions! • دو تصور اشتباه درباره کليد عمومی • رمزنگاری با کليد عمومی امن تر است! • در هر دو روش رمزنگاری امنيت به طول کليد وابسته است. • مسئله توزيع کليد در رمزنگاری با کليد عمومی برطرف شده است • چگونه مطمئن شويم کليد عمومی لزوما متعلق به شخص ادعاکننده است؟! • توزيع کليد عمومی آسانتر است، ولی بديهی نيست.

  13. نمادها و قراردادها • کليد عمومي: کليد رمزگذاری • اين کليد را براي شخص a با KUa نشان ميدهيم. • کليد خصوصي: کليد رمز گشايي • اين کليد را براي شخص a باKRa نشان ميدهيم.

  14. محرمانگي و احراز هويت به صورت همزمان رمزگذاری کليد عمومي: محرمانگي و احراز هويت به صورت همزمان

  15. كاربردهايرمزگذاری کليد عمومي • دسته بندي كلي كاربردها • رمزگذاری/ رمز گشايي : براي حفظ محرمانگي • امضاء رقمي : براي حفظ اصالت پيام و معين نمودن فرستنده پيام (پيوند دادن پيام با امضاء کننده) • توزيع كليد : براي توافق طرفين روي كليد نشست مخفي

  16. کاربردهاي برخي الگوريتمهاي کليد عمومي

  17. جايگاه عمليرمزگذاری کليد عمومي • کليدهاي اين نوع از الگوريتمها بسيار طولاني تر از الگوريتمهاي مرسوم (کليد متقارن) ميباشند. • الگوريتم RSA با پيمانه 1024 بيتي امنيتی در حد الگوريتمهای متقارن با کليدهای 80 بيتي دارد. • سرعت الگوريتمهاي کليد عمومي از الگوريتمهاي رمزگذاری مرسوم پايين تر است. • RSA تقريباً 1000بار کند تر از رمزهاي کليد متقارن (با امنيت يکسان) ميباشد.

  18. جايگاه عمليرمزگذاری کليد عمومي امروزه کاربرد اين الگوريتمها به حل مساله توزيع کليد و امضاي ديجيتال محدود ميشود. (مطابق اهداف و انگيزه هاي اوليه طراحي)

  19. توابع يكطرفه • تابع يک طرفه: تابع f(.) را يک طرفه گوييم اگر يافتن مقدار ورودي تابع از روي مقدار خروجي از لحاظ محاسباتي ناممکن باشد. • يک تابع يک طرفه همانند ماشين چرخ گوشت عمل ميکند! • از روي خروجي (گوشت چرخ شده ) نمي توان ورودي را بازسازي کرد.

  20. دريچه • اما در برخي کاربردها نياز داريم تا ورودي تابع يک طرفه را معين کنيم... • وجود يک دريچه در تابع: اطلاعات اضافي که با دانستن آنها ميتوانيم تابع را به روشي کارا معکوس کنيم.

  21. توابع يكطرفه دريچه دار • مجموعه اي از توابع معكوس پذير fk(.) به طوريكه : • محاسبه y= fk(x) با دانستن k و x آسان باشد • محاسبه fk-1(y) x=با دانستن k و y آسان باشد • محاسبه fk-1(y) x= با دانستن y و مخفي بودن k امكانپذير نباشد

  22. توابع يكطرفه دريچه دار به عنوان يک ابزار • توابع يك طرفه دريچه دار ابزارهاي مناسبي براي طراحي الگوريتمهاي رمزگذاری و امضاي ديجيتال ميباشند. • در حقيقت ثابت ميشود وجود توابع يك طرفه دريچه دار شرط لازم و کافي براي وجود الگوريتمهاي رمزگذاری و امضاي ديجيتال امن ميباشد.

  23. كليات الگوريتم رمز نگاريRSA • كليات • توسط Adleman- Shamir- Rivestدر سال 1977 در MIT ارائه شد • مشهورترين و پركاربردترين الگوريتم رمزگذاری كليد عمومي • مبتني بر توان رساني پيمانه ايي • استفاده از اعداد طبيعي خيلي بزرگ • امنيت آن ناشي از دشوار بودن تجزيه اعداد بزرگ، که حاصلضرب دو عامل اول بزرگ هستند، می باشد. • مستندات مربوط به آن تحت عنوان PKCS استاندارد شده است.

  24. نمادگذاريRSA • N : پيمانه محاسبات • e: نمايرمزگذاری • d: نماي رمزگشايي • M: پيام ، عدد صحيح متعلق به • تابع RSA: دريچه تابع همان d ميباشد. • تابع معکوس:

  25. مباني رياضي RSA • مي خواهيم: Med mod N = M • يك نتيجة فرعي از قضية اولر: • اگر دو عدد اول p و q و دو عدد صحيح m و n داشته باشيم به نحوي كه n=p.q و 0< m < n ، داريم: mk.(n)+1 mod n = mk.(p-1)(q-1)+1 mod n = m mod n كه در آن k يك عدد صحيح دلخواه و (n)تعداد اعداد کوچکتر از n است که نسبت به n اول هستند ((n)=(p-1)(q-1)) . • بنابر اين بايد داشته باشيم: e.d = k. (n)+1 يا به عبارت ديگر e.d = 1 (mod (n) ) • بنابر اين بايد gcd((n), e) =1

  26. RSA Key generation

  27. RSA Encryption and Decryption

  28. قراردادها و پرتکل RSA • هم فرستنده و هم گيرنده مقدار N را مي‌دانند • فرستنده مقدار e را مي‌داند • کليد عمومی : (N , e) • تنها گيرنده مقدار d را مي‌داند • کليد خصوصی : (N, d) • نيازمنديها: • محاسبه Me و Cd آسان باشد • محاسبه d با دانستن کليد عمومی غيرممكن باشد

  29. RSA -مثال p = 17, q = 11, n = p*q= 187 (n) = 16*10 =160, pick e=7, d.e=1 mod (n)  d = 23

  30. روشهاي کارا براي محاسبه نما • براي محاسبه ab (mod N) الگوريتمهاي متفاوتي ابداع شده است. • فرض کنيد bkbk-1…b0 نمايش مبناي 2 عدد b باشد. • بنابراين خواهيم داشت:

  31. الگوريتم توان و ضرب • بر اين مبنا ميتوان الگوريتم زير را طراحي نمود:

  32. مثال عددي الگوريتم توان و ضرب • نتيجه الگوريتم توان رساندن سريع پيمانه ايي برايab mod n که مقادير a،b و n عبارتند از: • a=7,b=560=(1000110000)2,n=561

  33. حملات وارد بر RSA • حمله آزمون جامع(Brute Force) • طول كليد با پيدايش هر نسل جديد از پردازنده ها افزايش مي يابد، ضمن اينكه قدرت پردازشي هكرها زياد مي شود! • طول کليد معادل تعداد بيتهای پيمانه محاسبات(N) می باشد. • حملات رياضي • تجزيه پيمانه N • محاسبه (N) براي N هاي بزرگ • محاسبه d • حمله زماني • زمان اجراي عمليات رمزگذاری يا واگشايي رمز ميتواند اطلاعاتي را در مورد کليد افشاء کند.

  34. حملات رياضي RSA • مقاله Dan Bonehدر دانشگاه Stanford (پيوست) : • Twenty Years of Attacks on the RSA Cryptosystem 1999

  35. راه حل براي حملات رياضي • قبل از اعمال تابع RSA پيام را پيش پردازش مينماييم. • الگوريتم OAEP: Optimal Asymmetric Encryption Padding (استاندارد PKCS#1 V.2) با کمک اعمال توابع درهم ساز ومقادير تصادفي پيام را پردازش ميکند. (پيوست 3)

  36. راههاي مقابله با حمله زمانيبه RSA • استفاده از توان رساندن با زمان ثابت محاسباتي. • اضافه كردن تاخيرهاي تصادفي • قرار دادن اعمال اضافی و گمراه کننده در بين محاسبات

  37. الگوريتم Diffie Hellman • براي تبادل کليد. • امنيت برمفروضات DH • بر روي مقادير p و  توافق ميکنند. • qيک عدد اول و يک مولد براي اين عدد ميباشد.

  38. α , q : عمومی کليد مشترک عبارت است از الگوريتم Diffie - Hellman Alice Bob مقدار تصادفيXA را انتخاب ميکند مقدار تصادفيXB را انتخاب ميکند

  39. حمله مرد ميانی • مهاجم به عنوان کانال ارتباطي ميان طرفين عمل ميکند. • حمله فعال محسوب ميشود • الگوريتم Diffie-Hellman را تهديد می کند.

  40. YA YK’ YK YB حمله مردي در ميانه Alice Kevin Bob Bob گمان ميکند کليد K2 را با Alice به اشتراک گذاشته است Alice گمان ميکند کليد K1 را با Bob به اشتراک گذاشته است

  41. پيوست ها

  42. پيوست 1 توابع يک طرفه

  43. توابع يک طرفه • تعريف: تابع f(.) را يک طرفه گوييم اگر: • طول ورودي و خروجييکسان باشد. • f(.)در زمان چند جمله ايي قابل محاسبه باشد. • f-1(.) در زمان چند جمله اي تصادفي قابل محاسبه نباشد. • توجه: • تابعf(.) لزوماً يک به يک نيست. • مقدار y و w لزوماً يکسان نيست.

  44. سختي معکوس پذيري… براي n هاي به اندازه کافي بزرگ ماشينM تابع f(.)را حد اکثر بر رويn-k از ورودي ها معکوس ميکند. براي هر ماشين تورينگ M براي هر ثابت طبيعيk احتمال بر روي فضاي زير محاسبه ميشود: انتخابهاي ماشين M انتخاب تصادفيw

  45. پيوست 1 حملات رياضي RSA

  46. Factoring Large integer • Open Problem: Is breaking RSA as hard as factoring: Fact: Let N,e be an RSA public key. Given the private key d, one can efficiently factor the modulus N=pq, Conversely, given the factorization of N, one can efficiently recover d.

  47. Low Private Exponent • Fast decryption requires small d. • Theorem(M. Wiener) • Let N=pq with qp2q. Let dN0.25/3. Given N,e with ed=1 mod (N), Marvin can efficiently recover d. • Solutions. • Large e: using N,e , where e= e+t(N) for some large t . Usually, eN1.5 is sufficient. • Using CRT to accelerate decryption. However, given N,e, there exists an attack to factor N in O(min(dp1/2, dq1/2)). Hence dp,dq cannot be too small.

  48. پيوست 3 Optimal Asymmetric Encryption Padding

  49. M 0k1 r G H s t OAEP r:مقدار تصادفي M: پيام :0k1يک رشته شامل k1 عدد صفر G و H : توابع در هم ساز در انتها دو رشته s و t به هم الحاق شده و به تابع RSA خورانده ميشوند. با دانستن s و t به راحتی عمليات معکوس ميشوند. r = H(s) + t M|| 0k1 = G(r) + s

More Related