Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

ویرایش: حمیدرضا شهریاری

Presentasi serupa


Presentasi berjudul: "ویرایش: حمیدرضا شهریاری"— Transcript presentasi:

1 ویرایش: حمیدرضا شهریاری
رمزگذاری كليد عمومي ویرایش: حمیدرضا شهریاری

2 اهداف آشنايي با مفاهيم و کاربردهاي رمزنگاري کليد عمومي
مقايسه روشهاي رمزنگاري کليد عمومي با رمز نگاري مرسوم (کليد خصوصي) بررسی يک نمونه از کاربرد کليد عمومی در مکانيسم توزيع کليدDH

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

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

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

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

7 نیازمندیهای رمزنگاری کلید عمومی
از نظر محاسباتی برای طرف B تولید یک زوج کلید (کلید عمومی KUb و کلید خصوصی KRb ) آسان باشد. برای فرستنده تولید متن رمز آسان باشد: برای گیرنده رمزگشایی متن با استفاده از کلید خصوصی آسان باشد:

8 نیازمندیهای رمزنگاری کلید عمومی
از نظر محاسباتی تولید کلید خصوصی (KRb) با دانستن کلید عمومی (KUb) غیر ممکن باشد. بازیابی پیام M با دانستن KUb و C غیر ممکن باشد. ( ویژگی تقارنی ) از هر یک از کلیدها میتوان برای رمزکردن استفاده کرد. در این صورت از کلید دیگر برای رمزگشایی استفاده میشود.

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

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

11 مقايسه رمزنگاري مرسوم و رمزنگاري کليد عمومي-1
مقايسه رمزنگاري مرسوم و رمزنگاري کليد عمومي-1 رمزنگاري مرسوم (Conventional Cryptography) استفاده از يك كليد يکسان و مخفي براي رمزگذاري و رمزگشايي معايب مشكل مديريت كليدها نياز به توافق بر روي كليد پيش از برقراري ارتباط براي ارتباط n نفر باهم به n(n-1)/2 كليد احتياج داريم عدم پشتيباني از امضاء الكترونيكي مزايا با اين وجود از الگوريتمهاي رمزنگاری با كليد عمومي سريع‌‌تر است K1 K4 K2 K3 K5 K6 K7 K8 K9 K10

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

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

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

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

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

17 فهرست مطالب مباني رمزگذاری کليد عمومي
مقايسه رمزگذاری مرسوم و رمزگذاری کليد عمومي كاربردهاي رمزگذاری کليد عمومي معرفي چند الگوريتم کليد عمومي لغت نامه پيوست ها

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

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

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

21 حملات به رمزنگاری کلید عمومی
جستجوی فراگیر (Brute force) محاسبه کلید خصوصی از کلید عمومی اثبات نشده که غیر ممکن است! حمله پیام احتمالی (Probable-message attack) مخصوص رمزنگاری کلید عمومی

22 فهرست مطالب مباني رمزگذاری کليد عمومي
مقايسه رمزگذاری مرسوم و رمزگذاری کليد عمومي كاربردهاي رمزگذاری کليد عمومي معرفي چند الگوريتم کليد عمومي لغت نامه پيوست ها

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

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

25 مبانی رياضی RSA (N): تعداد اعداد(کوچکتر ازN) که نسبت به N اول است.
p و q دو عدد اول ميباشند. (N): تعداد اعداد(کوچکتر ازN) که نسبت به N اول است. کلید عمومی: {e,n} کلید خصوصی: {d,n}

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

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

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

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

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

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

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

33 راههاي مقابله با حمله زماني به RSA
استفاده از توان رساندن با زمان ثابت محاسباتي. تابع بايد به ازای همه وروديها زمان ثابتی به طول بيانجامد اضافه كردن تاخيرهاي تصادفي قرار دادن اعمال اضافی و گمراه کننده در بين محاسبات ضرب کردن متن رمزشده در يک عدد تصادفی قبل از عمليات به توان رسانی تحليلگر از ساختار بيتی متنی که به توان می رسد، مطلع نيست و اين حمله زمانی را برای او غيرممکن می سازد

34 الگوريتم Diffie Hellman
براي تبادل کليد مورد استفاده قرار می گيرد طرفين بر روي مقادير و توافق ميکنند. qq يک عدد اول و ha يک مولد (عدد اولی که توانهانش اعداد از 1 تا q -1 را توليد کند) براي اين عدد مي باشد. امنیت روش مبتنی بر مشکل بودن لگاریتم گسسته است.

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

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

37 حمله مرد میانی A K B YA YK’ YK YB
B گمان ميکند کليد K2 را با A به اشتراک گذاشته است A گمان ميکند کليد K1 را با B به اشتراک گذاشته است

38 پايان فصل 5

39 لغت نامه Public Key كليد عمومي Authentication احراز هويت
Message Integrity اصالت پيام Cipher Text پيام رمز شده Plain Text پيام واضح Binding پيوند دادن Modulus پيمانه One Way Function تابع يک طرفه Factorization تجزيه Modular Exponentiation توان رساني پيمانه ايي Probabilistic Polynomial Time چندجمله اي تصادفي Trapdoor دريچه Decryption رمز گشايي Encryption رمز نگاري Factor عامل Session Key كليد جلسه Confidential محرمانه Man In The Middle مرد ميانی Conventional مرسوم Infeasible ناممکن Exponent نما One to One يک به يک

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

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

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

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

44 کاربردهاي برخي الگوريتمهاي کليد عمومي
توزيع كليد امضاء رقمي رمزگذاری/ رمز گشايي الگوريتم RSA × Diffie Hellman DSS


Download ppt "ویرایش: حمیدرضا شهریاری"

Presentasi serupa


Iklan oleh Google